(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-24
(54)【発明の名称】自然言語で書かれたテキスト記述からの実行可能プロセスの作成方法、システム、プログラム
(51)【国際特許分類】
G06F 8/30 20180101AFI20221116BHJP
G06N 20/10 20190101ALI20221116BHJP
【FI】
G06F8/30
G06N20/10
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022510864
(86)(22)【出願日】2020-09-01
(85)【翻訳文提出日】2022-02-17
(86)【国際出願番号】 IB2020058135
(87)【国際公開番号】W WO2021048690
(87)【国際公開日】2021-03-18
(32)【優先日】2019-09-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【復代理人】
【識別番号】100091568
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】稲垣 猛
(72)【発明者】
【氏名】南 彩
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BB02
5B376BB05
5B376BB08
5B376BB09
5B376BB13
5B376BC32
5B376BC47
5B376FA13
(57)【要約】
自然言語で書かれたテキスト記述から実行可能プロセスを作成方法、装置、プログラムであって、自然言語で書かれたテキスト文書から命題の集合を抽出し、抽出された命題の集合に基づいてテキスト文書から式の集合を抽出し、次いで式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成し、状態遷移グラフをソフトウェア・アプリケーションに変換する。
【特許請求の範囲】
【請求項1】
自然言語で書かれたテキスト記述から実行可能プロセスを作成する方法であって、
自然言語で書かれたテキスト文書から命題の集合を抽出することと、
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出することと、
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成することと、
前記状態遷移グラフをソフトウェア・アプリケーションに変換することと
を含む、方法。
【請求項2】
前記テキスト文書から命題の集合を抽出することが、
前記テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクすることと、
前記テキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクすることと、
機械学習プロセスによって、各文のマスクした部分を命題クラスにマッピングすることと
を含む、請求項1に記載の方法。
【請求項3】
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出することが、
機械学習プロセスによって命題の前記集合の間の関係を抽出することと、
前記関係を表す論理式の集合を条件付きステートメントとして生成することと
を含む、請求項1に記載の方法。
【請求項4】
前記テキスト文書の第1の文中で生じる論理式と、前記テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出することをさらに含む、請求項4に記載の方法。
【請求項5】
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成することが、
命題の前記集合内の各命題について、命題値のすべての可能な状態を表すプロセス・フロー・ツリーを構築することと、
前記プロセス・フロー・ツリー内のすべての経路に対する制約として式の前記集合を適用することと、
前記プロセス・フロー・ツリーを最適化することと
を含む、請求項1に記載の方法。
【請求項6】
前記状態遷移グラフをソフトウェア・アプリケーションに変換することが、前記状態遷移グラフで表される命題変数についての値を決定するコンピュータ実行可能ロジックを生成することを含む、請求項1に記載の方法。
【請求項7】
重要なキーワードの事前定義された辞書、命題クラス定義、および式クラス定義を受け取ることをさらに含む、請求項1に記載の方法。
【請求項8】
自然言語で書かれたテキスト記述から実行可能プロセスを作成するための装置であって、コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作可能に結合されたコンピュータ・メモリとを備え、前記コンピュータ・プロセッサによって実行されるとき、
自然言語で書かれたテキスト文書から命題の集合を抽出するステップと、
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出するステップと、
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成するステップと、
前記状態遷移グラフをソフトウェア・アプリケーションに変換するステップと
を装置に実施させるコンピュータ・プログラム命令が前記メモリ内に配設される、装置。
【請求項9】
前記テキスト文書から命題の集合を抽出するステップが、
前記テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクすることと、
前記テキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクすることと、
機械学習プロセスによって、各文のマスクした部分を命題クラスにマッピングすることと
を含む、請求項8に記載の装置。
【請求項10】
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出するステップが、
機械学習プロセスによって命題の前記集合の間の関係を抽出することと、
前記関係を表す論理式の集合を条件付きステートメントとして生成することと
を含む、請求項8に記載の装置。
【請求項11】
前記テキスト文書の第1の文中で生じる論理式と、前記テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出することをさらに含む、請求項10に記載の装置。
【請求項12】
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成するステップが、
命題の前記集合内の各命題について、命題値のすべての可能な状態を表すプロセス・フロー・ツリーを構築することと、
前記プロセス・フロー・ツリー内のすべての経路に対する制約として式の前記集合を適用することと、
前記プロセス・フロー・ツリーを最適化することと
を含む、請求項8に記載の装置。
【請求項13】
前記状態遷移グラフをソフトウェア・アプリケーションに変換するステップが、前記状態遷移グラフで表される命題変数についての値を決定するコンピュータ実行可能ロジックを生成することを含む、請求項8に記載の装置。
【請求項14】
重要なキーワードの事前定義された辞書、命題クラス定義、および式クラス定義を受け取るステップをさらに含む、請求項8に記載の装置。
【請求項15】
自然言語で書かれたテキスト記述から実行可能プロセスを作成するためのコンピュータ・プログラム製品であって、コンピュータ可読媒体上に配設され、実行されるとき、
自然言語で書かれたテキスト文書から命題の集合を抽出するステップと、
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出するステップと、
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成するステップと、
前記状態遷移グラフをソフトウェア・アプリケーションに変換するステップと
をコンピュータに実施させるコンピュータ・プログラム命令を含む、コンピュータ・プログラム製品。
【請求項16】
前記テキスト文書から命題の集合を抽出するステップが、
前記テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクすることと、
前記テキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクすることと
機械学習プロセスによって、各文のマスクした部分を命題クラスにマッピングすることと
を含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出するステップが、
機械学習プロセスによって命題の前記集合の間の関係を抽出することと、
前記関係を表す論理式の集合を条件付きステートメントとして生成することと
を含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項18】
前記テキスト文書の第1の文中で生じる論理式と、前記テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出することをさらに含む、請求項17に記載のコンピュータ・プログラム製品。
【請求項19】
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成するステップが、
命題の前記集合内の各命題について、命題値のすべての可能な状態を表すプロセス・フロー・ツリーを構築することと、
前記プロセス・フロー・ツリー内のすべての経路に対する制約として式の前記集合を適用することと、
前記プロセス・フロー・ツリーを最適化することと
を含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項20】
前記状態遷移グラフをソフトウェア・アプリケーションに変換するステップが、前記状態遷移グラフで表される命題変数についての値を決定するコンピュータ実行可能ロジックを生成することを含む、請求項15に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の分野はデータ処理であり、より詳細には、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための方法、装置、および製品である。
【背景技術】
【0002】
1948年のEDVACコンピュータ・システムの開発は、コンピュータ時代の始まりとしてしばしば引用される。その時以来、コンピュータ・システムは極めて複雑なデバイスに進化してきた。今日のコンピュータは、EDVACなどの初期のシステムよりもずっと高度である。コンピュータ・システムは典型的には、ハードウェアおよびソフトウェア構成要素、アプリケーション・プログラム、オペレーティング・システム、プロセッサ、バス、メモリ、入力/出力デバイスなどの組合せを含む。半導体処理およびコンピュータ・アーキテクチャの進歩によってコンピュータの性能がますます高まるにつれて、より高度なコンピュータ・ソフトウェアが、より高い性能のハードウェアを活用するように進化しており、その結果、わずか数年前よりもずっと強力なコンピュータ・システムが、今日もたらされている。
【0003】
コンピュータは作業を自動化するためにますます使用されている。しかしながら、一定の作業は、自然言語で書かれた文書に依拠し、したがって人間の介入を必要とする。たとえば、オンライン・ヘルプ・セッション中にアシスタントとチャットするとき、アシスタントは、ヘルプ・マニュアルまたはトラブルシューティング仕様書を参照し得る。別の例として、保険の補償範囲に関して保険外交員に電話をかけるとき、外交員は、補償範囲についての質問に回答するために参照する保険証書を有し得る。こうした作業をコンピュータで実装された人工知能(AI)で自動化するために、AIが理解し得るコンピュータ・コードに自然言語文書を変換することは難しく、時間がかかることがある。
【発明の概要】
【0004】
本発明による一実施形態は、テキスト記述から実行可能プロセスを作成する方法であって、自然言語で書かれたテキスト文書から命題(proposition)の集合を抽出することと、命題の集合に応じて、テキスト文書から式(formula)の集合を抽出することと、式の集合によって制約される命題値決定経路(proposition value determination path)の集合を含む状態遷移グラフを作成することと、状態遷移グラフをソフトウェア・アプリケーションに変換することとを含む方法を対象とする。
【0005】
本発明による別の実施形態は、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための装置であって、コンピュータ・プロセッサと、コンピュータ・プロセッサに動作可能に結合されたコンピュータ・メモリとを備え、コンピュータ・プロセッサによって実行されるとき、自然言語で書かれたテキスト文書から命題の集合を抽出するステップと、命題の集合に応じて、テキスト文書から式の集合を抽出するステップと、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成するステップと、状態遷移グラフをソフトウェア・アプリケーションに変換するステップを装置に実施させるコンピュータ・プログラム命令がコンピュータ・メモリ内に配設される装置を対象とする。
【0006】
本発明によるさらに別の実施形態は、自然言語で書かれたテキスト記述から実行可能プロセスを作成するためのコンピュータ・プログラム製品であって、コンピュータ可読媒体上に配設され、実行されるとき、自然言語で書かれたテキスト文書から命題の集合を抽出するステップと、命題の集合に応じて、テキスト文書から式の集合を抽出するステップと、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成するステップと、状態遷移グラフをソフトウェア・アプリケーションに変換するステップをコンピュータに実施させるコンピュータ・プログラム命令を含むコンピュータ・プログラム製品を対象とする。
【0007】
本発明による様々な実施形態では、テキスト文書から命題の集合を抽出することは、テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクすることと、テキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクすることと、機械学習プロセスによって、各文のマスクした部分を命題クラス(proposition class)にマッピングすることとを含み得る。
【0008】
本発明による様々な実施形態では、命題の集合に応じて、テキスト文書から式の集合を抽出することは、命題の集合の間の関係を抽出することと、関係を表す論理式(logical formula)の集合を条件付きステートメントとして生成することとを含み得る。いくつかの実施形態では、命題の集合に応じて、テキスト文書から式の集合を抽出することは、テキスト文書の第1の文中で生じる論理式と、テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出することをさらに含み得る。
【0009】
本発明による様々な実施形態では、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成することは、命題の集合内の各命題について、命題値のすべての可能な状態を表すプロセス・フロー・ツリーを構築することと、プロセス・フロー・ツリー内のすべての経路に対する制約として式の集合を適用することと、プロセス・フロー・ツリーを最適化することとを含み得る。
【0010】
本発明による様々な実施形態では、状態遷移グラフをソフトウェア・アプリケーションに変換することは、状態遷移グラフで表される命題変数についての値を決定するコンピュータ実行可能ロジックを生成することを含む。
【0011】
本発明の上記および他の目的、特徴、および利点が、添付の図面に示される本発明の例示的実施形態の以下のより具体的な説明から明らかとなり、同様の参照番号は、一般に本発明の例示的実施形態の同様の部分を表す。
【0012】
次に、添付の図面を参照しながら、本発明の実施形態が単に例として説明される。
【図面の簡単な説明】
【0013】
【
図1】本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的ネットワーク環境の図である。
【
図2】本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的コンピュータのブロック図である。
【
図3】本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的システムのブロック図である。
【
図4】本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的方法のフローチャートである。
【
図5】本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的方法のフローチャートである。
【
図6】本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的方法のフローチャートである。
【
図7】本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的方法のフローチャートである。
【
図8】本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的方法のフローチャートである。
【発明を実施するための形態】
【0014】
本発明による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的方法、装置、および製品が、
図1から始まる添付の図面を参照しながら説明される。
図1は、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するように構成されたシステムのネットワーク図を示す。
図1のシステムは、管理者(102)から自然言語で書かれた文書(101)を受け取り、受け取った文書から実行可能プロセスを作成する、自然言語処理のために構成されたサーバ(106)を含む。サーバ(106)はまた、管理者(102)から、文書(101)内の重要な意味を有するキーワードを含む辞書(109)、ならびに自然言語パターンを認識する際に有用なパターン規則(110)の集合も受け取る。
【0015】
サーバ(106)は、文書(101)内の各文から命題および式を抽出する。命題を抽出することは、キーワードの辞書内のリストされた語によって識別される重要なキーワードと、正規表現規則などの規則によって表される文字シーケンス・パターンとをマスクすることを含む。次いで、命題が機械学習を使用して抽出され、表現のパターンが認識され、命題に命題クラスでラベル付けされる。式を抽出することは、抽出した命題の間の関係を機械学習によって抽出することと、命題の間の条件付きステートメントとして論理式を出力することとを含む。
【0016】
次に、サーバ(106)は、抽出した式の制約下で命題値決定経路を作成する。状態遷移グラフとして表されるツリー・フロー図が、各命題の値のすべての可能な状態を表すように構築される。ツリー・フロー図中の経路は、命題の真または偽の値に従って分岐する。抽出した論理式はすべての経路に適用され、条件を満たさない経路は無効にされる。残りの経路は、命題変数の値の如何に関わらず同一の終了ノードとなる重複する経路を除去することによって最適化される。
【0017】
次いで、サーバ(106)は、状態遷移グラフをソフトウェア・アプリケーションなどの実行可能プロセスに変換する。アプリケーションは、状態遷移フローグラフに従って命題変数の値を1つずつ決定する方式を提供する。たとえば、命題に関連する照会をユーザに尋ねることによって値が決定される。ユーザは、与えられる回答に応じて様々な質問のシーケンスを得ることになる。
【0018】
実行可能プロセスがサーバ(106)によって作成された後、サーバ(106)またはサーバ(106)と通信している別のサーバ(108)上のアプリケーション・プログラム・インターフェース(API)が、ネットワーク(100)を介するサーバ(106)上の実行可能プロセスへのアクセスをエンド・ユーザ(103)に提供し得る。たとえば、クライアント・コンピュータ(105)上のユーザ・インターフェース(UI)が、APIを通じて実行可能プロセスにアクセスし得る。1つの例示的な使用では、文書(101)はヘルプ・マニュアルまたは保守マニュアルであり得、実行可能プロセスは、本明細書では「チャットボット」アプリケーションと呼ばれる、メッセージング・アプリケーション、ウェブサイト、モバイルappを介する、または電話を介する自然言語でのユーザ(103)との会話(またはチャット)をシミュレートし得る人工知能(AI)ソフトウェアであり得る。別の例示的使用では、文書(101)は保険証書であり得、実行可能プロセスは、ユーザ(103)が保険金請求の範囲を確認するのを援助する自動請求評価アプリケーションであり得る。
【0019】
ネットワーク(100)は、1つまたは複数のローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、パーソナル・エリア・ネットワーク、メッシュ・ネットワーク、セルラ・ネットワーク、インターネット、イントラネット、または他のネットワークおよびそれらの組合せを含み得る。ネットワーク(100)は、1つまたは複数のワイヤード接続、ワイヤレス接続、またはそれらの組合せを含み得る。
図1に示される例示的システムを構成するサーバおよび他のデバイスの構成は、限定のためのものではなく、説明のためのものである。本発明の様々な実施形態による、有用なデータ処理システムは、当業者には思い浮かぶように、
図1に図示されていない追加のサーバ、ルータ、他のデバイス、およびピア・ツーピア・アーキテクチャを含み得る。そのようなデータ処理システム内のネットワークは、当業者には思い浮かぶように、たとえばTCP(伝送制御プロトコル)、IP(インターネット・プロトコル)、HTTP(ハイパーテキスト転送プロトコル)、WAP(ワイヤレス・アクセス・プロトコル)、HDTP(ハンドヘルド・デバイス・トランスポート・プロトコル)、およびその他を含む、多くのデータ通信プロトコルをサポートし得る。本発明の様々な実施形態は、
図1に示されるものに加えて、様々なハードウェア・プラットフォーム上で実装され得る。
【0020】
本発明に従って、自然言語で書かれたテキスト記述から実行可能プロセスを作成することは、一般にコンピュータ、すなわち自動コンピューティング機械で実装される。
図1のシステムでは、たとえば、サーバ(106)、サーバ(108)、およびクライアント・コンピュータ(105)はすべて、少なくともある程度はコンピュータとして実装される。したがって、さらに説明するために、
図2は、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するように構成された例示的コンピュータ(152)を備える自動コンピューティング機械のブロック図を示す。
図2のコンピュータ(152)は、少なくとも1つのコンピュータ・プロセッサ(156)または「CPU」、ならびに高速メモリ・バス(166)およびバス・アダプタ(158)を通じてプロセッサ(156)およびコンピュータ(152)の他の構成要素に接続されるランダム・アクセス・メモリ(168)(「RAM」)を含む。
【0021】
本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するためのコンピュータ・プログラム命令のモジュールである自然言語プロセッサ(126)がRAM(168)内に記憶される。機械学習を使用して自然言語から命題を抽出するのに有用なコンピュータ・プログラム命令のモジュールである命題自然言語処理モデル(130)もRAM(168)内に記憶される。機械学習を使用して自然言語から式または命題の間の論理関係を抽出するのに有用なコンピュータ・プログラム命令のモジュールである式自然言語処理モデル(131)もRAM(168)内に記憶される。式によって制約されるように命題決定経路を表す状態遷移グラフを生成するためのコンピュータ・プログラム命令のモジュールである状態遷移グラフ・ジェネレータ(132)もRAM(168)内に記憶される。
【0022】
オペレーティング・システム(154)もRAM(168)内に記憶される。本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するように構成されたコンピュータで有用なオペレーティング・システムは、当業者には思い浮かぶように、UNIX(R)(TM)、Linux(TM)、Microsoft XP(TM)、AIX(TM)、IBM(R)のi5/OS(TM)、およびその他を含む。
図2の例でのオペレーティング・システム(154)、NLP(126)、命題NLPモデル(130)、式NLPモデル(131)、STGジェネレータ(132)がRAM(168)内に示されているが、そのようなソフトウェアの多くの構成要素は典型的には、たとえばハード・ドライブ記憶デバイス(170)上などの不揮発性メモリ内にも記憶される。NLP(126)の出力、すなわち命題(171)、式(172)、およびSTG(173)も、たとえばハード・ドライブ(170)上などの不揮発性メモリ内に記憶され得る。
【0023】
図2のコンピュータ(152)は、拡張バス(160)およびバス・アダプタ(158)を通じてプロセッサ(156)およびコンピュータ(152)の他の構成要素に結合されたハード・ドライブ・アダプタを含む。ハード・ドライブ・アダプタは、ハード・ドライブ(170)の形態の不揮発性データ・ストレージをコンピュータ(152)に接続する。本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するように構成されたコンピュータで有用なハード・ドライブ・アダプタは、当業者には思い浮かぶように、Integrated Drive Electronics(「IDE」)アダプタ、Small Computer System Interface(「SCSI」)アダプタ、およびその他を含む。不揮発性コンピュータ・メモリはまた、当業者には思い浮かぶように、光ハード・ドライブ、電気消去可能プログラマブル読取り専用メモリ(いわゆる「EEPROM」または「フラッシュ」メモリ)、RAMドライブなどとして実装され得る。
【0024】
図2の例示的コンピュータ(152)は1つまたは複数の入力/出力(「I/O」)アダプタ(178)を含む。I/Oアダプタは、たとえば、コンピュータ・ディスプレイ画面などのディスプレイ・デバイスへの出力を制御するためのソフトウェア・ドライバおよびコンピュータ・ハードウェア、ならびにキーボードやマウスなどのユーザ入力デバイス(181)からのユーザ入力を通じて、ユーザ指向入力/出力を実装する。
図2の例示的コンピュータ(152)はビデオ・アダプタ(209)を含み、ビデオ・アダプタ(209)は、ディスプレイ画面やコンピュータ・モニタなどのディスプレイ・デバイス(180)へのグラフィック出力のために特別に設計されたI/Oアダプタの一例である。ビデオ・アダプタ(209)は、高速ビデオ・バス(164)、バス・アダプタ(158)、およびやはり高速バスであるフロント・サイド・バス(162)を通じてプロセッサ(156)に接続される。
【0025】
図2の例示的コンピュータ(152)は、他のコンピュータ(197)とのデータ通信、およびデータ通信ネットワーク(100)とのデータ通信用の通信アダプタ(167)を含む。そのようなデータ通信は、当業者には思い浮かぶように、RS-232接続を通じて、ユニバーサル・シリアル・バス(「USB」)などの外部バスを通じて、IPデータ通信ネットワークなどのデータ通信ネットワークを通じて、および他の方式で、シリアルに実施され得る。通信アダプタは、あるコンピュータが、直接的に、またはデータ通信ネットワークを通じてデータ通信を別のコンピュータに送る、ハードウェア・レベルのデータ通信を実装する。本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するように構成されたコンピュータで有用な通信アダプタの例には、ワイヤード・ダイヤルアップ通信用のモデム、ワイヤード・データ通信用のイーサネット(R)(IEEE802.3)アダプタ、およびワイヤレス・データ通信用の802.11アダプタが含まれる。
【0026】
さらに説明するために、
図3は、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的システムについてのシステム図を示す。
図3に示される例示的システムは、ユーザのはい/いいえの回答が実行可能プロセスでのある状態から次の状態への遷移のための基礎を与える、「チャットボット」アプリケーションまたは他のアプリケーションのために構成され得る。
【0027】
図3のシステムでは、コンピュータ・システム(352)が、自然言語プロセッサ(301)、ストレージ(370)、およびテキスト文書(315)を含み、テキスト文書(315)は、先に論じたように、実行可能プロセスがそれから作成されるべきマニュアル、仕様書、または他の自然言語文書であり得る。自然言語プロセッサ(301)は、テキスト文書(315)を入力として受け入れるキーワード・タグ付けモジュール(325)を含む。キーワード・タグ付けモジュール(325)は、先に論じたように、キーワード辞書からキーワードを識別し、識別したキーワードを抽象タグで置換する。自然言語プロセッサ(301)は、キーワード・タグ付けモジュール(325)からキーワード表現を入力として受け入れ、命題クラス定義に基づいて文書(315)の自然言語表現から命題(305)を抽出する命題機械学習モデル(330)をさらに含む。命題(305)はストレージ(370)内に記憶される。自然言語プロセッサ(301)は、命題機械学習モデル(330)から命題クラス表現を受け入れ、式クラス定義に基づいて、命題変数の間の条件付きステートメントを表す式(307)を抽出する式機械学習モデル(335)をさらに含む。式(307)はストレージ(370)内に記憶される。自然言語プロセッサ(301)は、式機械学習モデル(335)から式クラス表現を受け入れ、状態遷移グラフ(309)を生成するSTGジェネレータ(340)をさらに含み、状態遷移グラフ(309)は、たとえばSCXMLファイルの形態であり得る。
【0028】
図3のシステムは、コンピュータ(352)と同一の機械上、またはコンピュータ・ネットワークを介して通信する別々の機械上に実装されるサーバ(390)をさらに含む。サーバ(390)は、SCXMLファイル(309)を入力として取り、各状態で与えられる入力に基づいてファイルを解析してプロセスを実行するSCXML実行エンジン(350)を含む。サーバ(390)は、質問を生成し、ユーザの回答を受け取るREpresentational State Transfer (REST) API serverサーバなどのAPIサーバ(355)をさらに含み、次いでユーザの回答は、SCXML実行エンジン(350)に中継され、実行可能プロセスでの次の状態が決定される。APIサーバ(355)は、クライアント・デバイス(397)上のUIロジック(360)と通信し、ユーザによって与えられた回答を取得し得る。たとえば、UIロジック(360)は、ブラウザ(365)または他のユーザ・インターフェース・アプリケーション内に組み込まれ得る。
【0029】
さらに説明するために、
図4は、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための例示的方法を示すフローチャートを示す。
図4の方法は、テキスト文書(415)から命題の集合を抽出すること(402)を含む。本明細書では、命題は「真」または「偽」の値を有するブール変数である。命題は、キーワードによって表されるエンティティを含む。たとえば、「保険契約を結んだ人の年齢は18歳未満である(age of the insured person is less than 18 years old)」は、命題に適用される人に応じて真または偽の値を有する命題である。テキスト文書(415)は、実行可能プロセスがそれから作成されるべき自然言語文書である。たとえば、テキスト文書(415)は、自動保険金請求処理アプリケーションのための保険証書などの文書であり得る。別の例では、テキスト文書(415)は、「チャットボット」などの自動ヘルプ・アプリケーションのための保守マニュアルまたはユーザ・マニュアルである。
【0030】
テキスト文書から命題の集合を抽出すること(402)は、ユーザからテキスト文書(415)を受け取ることと、自然言語処理(NLP)および機械学習技術を使用してキーワードや語句などのエンティティを検出することとによって実施され得る。NLPおよび機械学習技術を使用してキーワードや語句などのエンティティを検出することは、たとえば
図3の命題機械学習モデル(330)によって実施され得る。キーワードの集合が、キーワードを識別するためにユーザによって供給される辞書(425)で提供され得る。辞書(425)は、テキスト文書(415)内の重要な意味を有するキーワードを含む。語句は、自然言語パターンを識別する際に有用な表現規則(435)の集合に基づいて検出され得る。表現規則(435)もユーザによって供給され得る。テキスト文書(415)内の各文について、識別されたキーワードおよび語句を抽象タグで置換することによって命題が抽出される。抽象タグを使用して命題を表現するために命題クラスが使用され得る。エンティティの実際の表現(名前)を省略することにより、命題クラスは、エンティティのジェネリック・プロパティを記述する。たとえば、上記の例に関連する命題クラスはT0_AGE_LESS_THAN_T1であり、T0およびT1はエンティティについての抽象タグであり、T0は「person」であり、T1は「18 years」である。命題クラスは、実際のエンティティ・キーワードが供給されるときに命題となる。各命題クラスはユーザによって定義され、与えられ得る。
【0031】
図4の方法はまた、命題の集合に応じて、テキスト文書から式の集合を抽出すること(404)をも含む。本明細書では、式は、複数の命題変数の値の間の関係を表す。式と共に、各命題変数はその値を自由に有さず、他の命題変数の値によって制約される。抽出された式の集合内の各論理式は、命題変数、論理演算子、および条件付きステートメントを含み得る。命題の集合に応じて、テキスト文書から式の集合を抽出すること(404)は、NLPおよび機械学習技術を使用してテキスト文書の文中の論理エンティティの間の論理関係を決定することによって実施され得る。NLPおよび機械学習技術を使用してテキスト文書の文中の論理エンティティの間の論理関係を決定することは、式機械学習モデル(335)によって実施され得る。たとえば、条件付きステートメントはA->Bと書かれ、ただしAおよびBは命題変数であり、式A->Bは、「Aが真である場合、Bは真であるべきである」として命題変数値の可能な組合せを制約する。命題を抽象タグで置換することによって式を表現するために式クラスが使用され得る。式クラスは、命題を指定することなく命題の間の論理関係を表す。したがって、抽象タグは命題変数を表す。各式クラスはユーザによって定義され、与えられ得る。
【0032】
図4の方法はまた、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)をも含む。状態は、命題値の順序付きの組合せである。状態遷移グラフは、変数の値を決定することによって、ある状態から別の状態へのすべての可能な遷移を表す。状態遷移グラフのノードは状態を表し、エッジは、接続された2つのノードの間の状態遷移に対応する変数の値を表す。式の制約下で、可能な遷移は限定される。この制約された遷移グラフはプロセスの状態遷移グラフと呼ばれる。言い換えれば、状態遷移グラフは、命題の値の決定によるプロセス・フロー分岐である。状態遷移グラフを表す標準出力フォーマットの一例は、イベントによる状態の間の遷移を表すState Chart eXtensible Markup Language (SCXML)である。たとえば、チャットボット・アプリケーションの使用事例では、状態は会話の状態を表し、自動保険金請求評価の使用事例では、状態は確認進行の状態を表す。
【0033】
式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)は、ツリー・フロー図を構築することによって実施され、ツリー・フロー図では、それぞれ第1の命題変数が開始ノードであり、「真」のエッジおよび「偽」のエッジがそれぞれ、別の関連する命題変数に接続され、関連する命題変数のそれぞれの「真」のエッジおよびそれぞれの「偽」エッジが、さらに別の命題変数等に接続され、あらゆる経路についてプロセスを完了する最終ノードに達するまで以下同様である。式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)は、各経路内のすべての状態について結果決定を確認することを含む。
【0034】
上記の例を続けて、抽出された以下の式の集合を考慮する。
W0->W1
W0=T0_AGE_LESS_THAN_T1
W1=HAVE_T2
T0=person
T1=18 years
T2=clinical examination
【0035】
次に、式W2->0が得られるような、W0に依存する第3の命題変数W2を考慮する。3つの命題変数(W0, W1, W2)がある場合、システムは以下のように23=8つの状態を有する:(0,0,0), (1,0,0), (0,1,0), (0,0,1), (1,1,0), (1,0,1), (0,1,1),(1,1,1)
【0036】
式W2->W0を仮定すると、以下の結果が導出されるが、2つの経路(2番目と4番目)は、W0が偽であるときW2が真であるので「Abnormal end」となる。
1. Start->(0)->(0,0)->(0,0,0)->Normalend
2.Start->(0)->(0,0)->(0,0,1)->Abnormal end
3.Start->(0)->(0,1)->(0,1,0)->Normal end
4.Start->(0)->(0,1)->(0,1,1)->Abnormal end
5.Start->(1)->(1,0)->(1,0,0)->Normal end
6.Start->(1)->(1,0)->(1,0,1)->Normal end
7. Start->(1)->(1,1)->(1,1,0)->Normalend
8.Start->(1)->(1,1)->(1,1,1)->Normal end
【0037】
異常終了の2つの経路は無効にされ、6つの有効な経路が残る。トラブルシューティング診断プロセスまたは保険金請求確認プロセスの例では、各変数の値が1つずつ決定され、経路が式の条件を満たさない場合、その経路は、未解決ケース(たとえば、未解決問題診断)や拒絶ケース(たとえば、拒絶保険金請求)などの異常ケースと見なされる。
【0038】
図4の方法はまた、状態遷移グラフをソフトウェア・アプリケーションに変換すること(408)をも含む。状態遷移グラフをソフトウェア・アプリケーションに変換すること(408)は、状態遷移グラフに従って命題変数の値を1つずつ決定するソフトウェア・アプリケーションを生成することによって実施され得る。状態遷移グラフに従って命題変数の値を1つずつ決定することは、命題についての「真」または「偽」の値を決定するためにユーザ・インターフェース(UI)で提供されるはい/いいえの質問に命題クラスをマッピングすることによって実施され得る。状態遷移グラフをソフトウェア・アプリケーションに変換すること(408)は、SCXML実行エンジン(350)によってSCXMLファイルを解析することを含み得、SCXMLファイルは、UI logic(360)によって、SCXML実行エンジン(350)とインターフェースされるAPIサーバ(355)上のAPIに対するUIリソース要求を通じてアクセスされ得る。
【0039】
たとえば、チャットボット・アプリケーションの使用事例では、命題変数の値を決定するソフトウェア・アプリケーションを生成することは、命題値を決定するためにはい/いいえの質問をユーザに尋ねるチャットボット・アプリケーションを生成すること、自動保険金請求評価の使用事例では、保険金請求の自動確認用の入力フォームを生成することを含み得る。ソフトウェア・アプリケーションが、ユーザと、アプリケーションがそれから作成されるテキスト文書の必要に従って生成され、本開示で与えられる例に限定されないことを当業者は理解されよう。
【0040】
さらに説明するために、
図5は、テキスト文書から命題の集合を抽出すること(402)と、命題の集合に応じて、テキスト文書から式の集合を抽出すること(404)と、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)と、状態遷移グラフをソフトウェア・アプリケーションに変換すること(408)とを含む、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成する例示的方法を示すフローチャートを示す。
【0041】
しかしながら、
図5の方法は、テキスト文書から命題の集合を抽出すること(402)が、テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクすること(502)を含む点で、
図4の方法とは異なる。テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクすること(502)は、辞書(425)内で見つかったキーワードを抽象タグで置換するキーワード・タグ付けモジュール(325)によって実施され得る。最初に、ユーザは、文書内で特別な重要性を有するキーワードをマークアップするための辞書を準備する。「特別な重要性」という語は、これらのキーワードが命題を構成する主要なエンティティであることを意味する。キーワードは、変形スペリングを吸収するように標準形を有し得る。
【0042】
図5の方法では、テキスト文書から命題の集合を抽出すること(402)は、テキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクすること(504)をさらに含む。テキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクすること(504)は、NLP(301)によって、テキスト文書(415)内の文中の正規表現を識別するために表現規則(435)を使用して実施され得る。辞書内のすべての数字を登録することを避けるために、正規表現が、年齢の実際の数値の如何に関わらず年齢表現をマークアップするために使用される。
【0043】
たとえば、NLP(126)に対する入力が文書の文である場合、テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクすること(502)により、かつテキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクすること(504)により、NLP(301)は、マスクした文と、マスクした部分の、表面形および標準形とのマッピング・データとを作成する。たとえば、入力が
"Persons whose age is less thaneighteen years should have clinical exam"である場合、出力は、
"T0 whose age is less than T1 shouldhave T2” where
T0=Persons(person)
T1=eighteen years(18 years)
T2=clinical exam(clinical examination)
ここで、表記T#=表面形(標準形)が使用される。
【0044】
図5の方法では、テキスト文書から命題の集合を抽出すること(402)は、機械学習プロセスにより、各文のマスクした部分を命題クラスにマッピングすること(506)をさらに含む。命題は、例文でマークアップされるキーワードを含む領域内で表される。機械学習プロセスにより、各文のマスクした部分を命題クラスにマッピングすること(506)は、命題機械学習モデル(330)によって、命題の表現のパターンを認識し、命題に命題クラスでラベル付けするために機械学習アルゴリズムを使用して実施され得る。キーワードが既にマスクされている場合、識別された正規表現も文中でマスクされる。マスクされた部分の、表面および形とのマッピング・データと、命題ラベルも出力される。
【0045】
命題クラスは典型的には、ユーザによって定義され、論理的にジェネリックである。たとえば、命題クラスは、年齢の表現の変形を単一のクラスに分類する。命題クラスは、真または偽の値を有するべきであり、真または偽を反転する論理演算を可能にする。たとえば、[T0_AGE_LESS_THAN_T1]は、T0の年齢がT1未満である場合に真である。[!T0_AGE_LESS_THAN_T1]の値が真であることは、T0の年齢がT1以上であることを意味する。ここで「!」という記号は論理反転(NOT)演算として使用される。これらのラベルは命題変数と呼ばれる。たとえば、前のステップの出力が以下のように入力される場合、
"T0 whose age is less than T1 shouldhave T2", where T0=Persons(person), T1=eighteen years(18 years),T2=clinical exam(clinical examination)
出力は、
"W0 should W1", where
W0="T0 whose age is less thanT1",(T0_AGE_LESS_THAN_T1)
W1="have T2"(HAVE_T2)
T0=Persons(person)
T1=eighteen years(18 years)
T2=clinical exam(clinical examination)
【0046】
さらに説明するために、
図6は、テキスト文書から命題の集合を抽出すること(402)と、命題の集合に応じて、テキスト文書から式の集合を抽出すること(404)と、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)と、状態遷移グラフをソフトウェア・アプリケーションに変換すること(408)とを含む、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成する例示的方法を示すフローチャートを示す。
【0047】
しかしながら、
図6の方法は、命題の集合に応じて、テキスト文書から式の集合を抽出すること(404)が、機械学習プロセスにより、命題の集合の間の関係を抽出すること(602)を含む点で、
図4の方法とは異なる。式は、命題の間の条件付きステートメントとして表される。機械学習プロセスにより、命題の集合の間の関係を抽出すること(602)は、式機械学習モデル(335)によって、抽出した命題および命題内のエンティティの間の関係を識別するために機械学習を使用して実施され得る。
【0048】
図6の方法では、命題の集合に応じて、テキスト文書から式の集合を抽出すること(404)は、関係を表す論理式の集合を条件付きステートメントとして生成すること(604)をさらに含む。関係を表す論理式の集合を条件付きステートメントとして生成すること(604)は、実行可能プロセスによって実装される論理式を出力する。論理式は、命題変数と、論理演算子AND(「&」)、OR(「|」)、NOT(「!」)、および条件付きステートメント・シンボル(「->」)とを含む。条件付きステートメントは「A->B」と書かれ、ただしAおよびBは命題変数であり、式A->Bは、「Aが真である場合、Bは真であるべきである」として命題変数値の可能な組合せを制約する。
【0049】
たとえば、マスクされた文「W0 should W1」中の命題変数W0およびW1を考慮し、マッピング・データは以下を含む。
W0="T0 whose age is less thanT1"(T0_AGE_LESS_THAN_T1)
W1="have T2"(HAVE_T2)
T0=Persons(person)
T1=eighteen years(18 years)
T2=clinical exam(clinical examination)
関係を表す論理式の集合を条件付きステートメントとして生成すること(604)の出力は以下の論理式である。
"W0->W1", where mapping dataincludes
W0="T0 whose age is less thanT1"(T0_AGE_LESS_THAN_T1)
W1="have T2"(HAVE_T2)
T0=Persons(person)
T1=eighteen years(18 years)
T2=clinical exam(clinical examination)
テキスト文書(415)内の複数の文を1つずつ処理することにより、式の集合が取得される。
【0050】
いくつかの実施形態では、
図6の方法は、テキスト文書の第1の文中で生じる論理式と、テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出すること(606)をさらに含む。いくつかの状況では、テキスト文書(415)の相異なる文中で生じる式の集合内の相異なる式中の命題変数の間の関係を識別する必要があり得る。たとえば、代名詞または関係代名詞を処理する必要、または別の文中の補助ステートメントを参照することによって完成し得る不完全なステートメントを処理する必要があり得る。これらの2つは、1つの文が完全な式を生み出さず、完全な式が複数の文の組合せで構成されるという意味で同じである。テキスト文書の第1の文中で生じる論理式と、テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出すること(606)は、別の文を参照する補助表現をマークすることによって実施され得る。たとえば、前の文中の同一の命題変数に対する参照を識別するためにPREVIOUSタグが使用され、このタグの検出時に、後方を参照することによって不完全な式が完成し得ることが想定され得る。
【0051】
たとえば、別々に生じる以下の2つの文を考慮する。
1:"W0 must have undergone W1"
2:"The W1 must have taken place inW3"
このケースでは、2つの式が抽出される。
1:W0->W1
2:PREVIOUS_THE_W1->W2
【0052】
しかしながら、ステートメント2も考慮する必要があるので、ステートメント1のみから式を作成することでは不十分である。したがって、テキスト文書の第1の文中で生じる論理式と、テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出すること(606)により、以下の2つの式が生成される。
W0->W1
W0&W1->W2
【0053】
別の例として、以下の2つの文を考慮する。
1:"W0 when W1"
2:"This restriction is not applied toW2"
以下の式が抽出される。
1:W1->W0
2:W2->PREVIOUS_VOID_FORMULA
【0054】
ステートメント1とステートメント2との間で識別される関係に鑑みて、テキスト文書の第1の文中で生じる論理式と、テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出すること(606)により、以下の式が生成される。
!W2&W1->W0
【0055】
さらに説明するために、
図7は、テキスト文書から命題の集合を抽出すること(402)と、命題の集合に応じて、テキスト文書から式の集合を抽出すること(404)と、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)と、状態遷移グラフをソフトウェア・アプリケーションに変換すること(408)とを含む、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成する例示的方法を示すフローチャートを示す。
【0056】
しかしながら、
図7の方法は、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)が、命題の集合内の各命題について、命題値のすべての可能な状態を表すプロセス・フロー・ツリーを構築すること(702)を含む点で、
図4の方法とは異なる。命題変数の集合から、開始ノードを作成し、第1の変数を選択し、変数の真および偽の値を表す2つのノードを作成することによって、ツリー・フローが構築される。これらのノードが開始ノードに接続される。2つの新しいノードまでの2つの経路が、変数の値を真または偽のどちらかと決定することにより、ユーザ入力またはフォーム入力によって動的に選択される。N+1番目のステップとして、N番目のステップによって作成されたあらゆるノードについて、N番目の変数の真または偽の値に従って2つの新しいノードを関連付ける。それにより、N+1番目のステップは、N番目のステップで生成された2
N個のノードに2つの新しいノードを接続することによって2
(N+1)個の新しいノードを生成する。Nが命題変数の数に達するまで、このプロセスが反復される。次に、すべてのエッジ・ノード(Mが変数の数であるとして、2
M個のノードが生成される)が、プロセスの正常完了を表す最終ノードに接続される。
【0057】
こうしたステップを用いて、2M倍に拡張するツリー図が作成され、拡張のエッジのすべてのノードが終了ノードに接続される。上記の例を用いて、以下のグラフが取得される。
1. Start->(0)->(0,0)->(0,0,0)->Normalend
2.Start->(0)->(0,0)->(0,0,1)->Normal end
3.Start->(0)->(0,1)->(0,1,0)->Normal end
4.Start->(0)->(0,1)->(0,1,1)->Normal end
5.Start->(1)->(1,0)->(1,0,0)->Normal end
6.Start->(1)->(1,0)->(1,0,1)->Normal end
7. Start->(1)->(1,1)->(1,1,0)->Normalend
8.Start->(1)->(1,1)->(1,1,1)->Normal end
【0058】
図7の方法では、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)が、プロセス・フロー・ツリー内のすべての経路に対する制約として式の集合を適用すること(704)をさらに含む。プロセス・フロー・ツリー内のすべての経路に対する制約として式の集合を適用すること(704)は、式の条件を満たさない無効な経路をなくすことによって実施され得る。あらゆる式は変数値に対する制約を宣言する。上記で構築された変数値状態遷移経路の間で、条件を満たさない経路が除外されるべきである。プロセス・フロー・ツリー内のすべての経路に対する制約として式の集合を適用すること(704)は、各変数の値によって開始ノードから終了ノードまでのすべての経路を表すことと、無効な遷移を含む経路を除外することとによって実施され得る。上記の例を式「W2->W0」と共に使用して、(0,x,1)を有する2番目および4番目の経路が除外されるべきである(ただし、W1の値は結果に無関係であり、したがって「x」で表される)。経路が除外されるとき、異常終了ノードが作成され、遷移フローが異常終了ノードに接続される。ここで、流れ図は、正常終了および異常終了の2つの終了ノードを有する。異常終了ノードは、未解決ケース(たとえば、チャットボット・アプリケーションでの未解決問題診断)または拒絶ケース(たとえば、自動請求確認アプリケーションでの拒絶保険金請求)を表す。したがって、プロセス・フロー・ツリーは以下に更新される。
1.Start->(0)->(0,0)->(0,0,0)->Normal end
2. Start->(0)->(0,0)->(0,0,1)->Abnormalend
3.Start->(0)->(0,1)->(0,1,0)->Normal end
4.Start->(0)->(0,1)->(0,1,1)->Abnormal end
5.Start->(1)->(1,0)->(1,0,0)->Normal end
6.Start->(1)->(1,0)->(1,0,1)->Normal end
7.Start->(1)->(1,1)->(1,1,0)->Normal end
8. Start->(1)->(1,1)->(1,1,1)->Normalend
【0059】
図7の方法では、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)は、プロセス・フロー・ツリーを最適化すること(706)をさらに含む。プロセス・フロー・ツリーを最適化すること(706)は、正常終了または異常終了のどちらかとなる変数値の組合せを決定することによって実施され、経路上の変数の値が終了結果に影響を及ぼさない場合、その経路が切り取られ、変数値の不要な決定が省略される。たとえば、上記のすべての経路の中で、
上記のすべての経路の中で、以下のように、必要な経路は3つだけである。
1'. Start->(0)->(0,x,0)->Normalend
2'. Start->(0)->(0,x,1)->Abnormalend
8'. Start->(1)->Normal end
【0060】
すなわち、W0が偽であり、W2が偽であるとき、式の制約は、W1の値の如何に関わらず満たされる。したがって、経路1および3は1つの経路(経路1’)に削減され得る。W0が偽であり、W2が真であるとき、式の制約は、W1の値の如何に関わらず決して満たされない。したがって、経路2および4は1つの経路(経路2’)に削減され得る。W0が真であるとき、式の制約は、W1およびW2の値の如何に関わらず満たされ得る。したがって、経路5~8は1つの経路(経路8’)に削減され得る。このプロセス・フロー・ツリーが状態遷移グラフとして出力される。
【0061】
さらに説明するために、
図8は、テキスト文書(415)から命題の集合を抽出すること(402)と、命題の集合に応じて、テキスト文書から式の集合を抽出すること(404)と、式の集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成すること(406)と、状態遷移グラフをソフトウェア・アプリケーションに変換すること(408)とを含む、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成する例示的方法を示すフローチャートを示す。
【0062】
しかしながら、
図8の方法は、状態遷移グラフをソフトウェア・アプリケーションに変換すること(408)が、状態遷移グラフで表される命題変数についての値を決定するコンピュータ実行可能ロジックを生成すること(802)を含む点で、
図4の方法とは異なる。表される命題変数についての値を決定するコンピュータ実行可能ロジックを生成すること(802)は、たとえばState Chart XML(SCXML) State Machine Notation for ControlAbstractionなどのコンピュータ実行可能フォーマットに状態遷移グラフを変換することによって実施され得る。実行可能プロセスは開始ノードから開始する。次のノードに遷移するために、現ノードを別のノードに接続するエッジによって表される命題の値を決定しなければならない。たとえば、チャットボットの使用事例では、このことは、チャットボットがその命題に関連する質問を尋ねることによって実施され得る。各質問は、あらゆる命題クラスに対応する質問を有する事前定義された質問テンプレートを使用することによって生成され得る。命題クラスに対応する質問テンプレートの一例が表1に示されている。
【0063】
【0064】
T0_AGE_LESS_THAN_T1などの命題クラスは、T#を実際の値に置換した後に命題となる。上記で論じた命題機械学習モデルおよび式機械学習モデルは、文の部分にこれらの命題クラス・ラベルでラベル付けするようにトレーニングされる。命題クラス・ラベルは、抽象タグT#をマッピングされたデータからの実際の値で置換することによって命題となる。たとえば、上記で論じた例示的な抽出された命題は、
W0="T0 whose age is less thanT1"(T0_AGE_LESS_THAN_T1), where:
T0=Persons(person)
T1=eighteen years(18 years)
【0065】
実際の命題は「person_AGE_LESS_THAN_18 years」である。したがって、この命題テンプレートについての例示的質問テンプレートは「Is age of T0 less than T1?」であり得る。生成されたソフトウェア・アプリケーションで現れる実際の質問は、ユーザに「Is age of person less than 18 years?」という質問を提起し得る。したがって、作成されたソフトウェア・アプリケーションは、実行可能状態遷移グラフを使用して、式によって制約され、命題変数の値によって決定された経路を横切り、命題変数の値は、ユーザ・インターフェースでユーザに提起された質問にはい/いいえの回答として取得される。
【0066】
保険金請求確認の別の使用事例では、請求フォーム入力またはデータベースが読み取られ、命題の値が決定される。このケースでは、抽象タグT#の実際の値が使用されて、データベースに対するSQL照会が作成され、またはたとえばJavaScript Object Notation(JSON)フォーマットで表される入力フォームの要求が読み取られ得る。
【0067】
前述の説明に鑑みて、本発明の実施形態による、自然言語で書かれたテキスト記述から実行可能プロセスを作成することの利点には以下が含まれることを読者は認識されよう。
・機械学習およびNLP技術を活用することにより、本発明は、人間が行うのと同様に、文脈構造を論理的推論で認識する方式によって、書かれた自然言語を理解する
・自然言語で書かれたテキスト文書が、自然言語プロセッサによって、人間による監視をほとんど行わずに実行可能プロセスに変換され得る
・自然言語で書かれたテキスト文書が、人間がまず自然言語記述をプログラミング言語に変換することを必要とせずに、実行可能ロジックに直接的に変換され得る
・ビジネス慣行、オペレーション・マニュアルなどを支配する、自然言語で書かれたテキスト文書が既に存在しているので、これらの手順を実装する実行可能プロセスが、こうした文書から直接的に作成され得る
【0068】
本発明の例示的実施形態は、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための、完全に機能するコンピュータ・システムの文脈で主に説明される。しかしながら、任意の適切なデータ処理システムと共に使用するための、コンピュータ可読記憶媒体上に配設されたコンピュータ・プログラム製品でも本発明が具体化されることを当業者の読者は認識されよう。そのようなコンピュータ可読記憶媒体は、磁気媒体、光媒体、または他の適切な媒体を含む、機械可読情報のための任意の記憶媒体であり得る。そのような媒体の例には、当業者には思い浮かぶように、ハード・ドライブまたはディスケット内の磁気ディスク、光ドライブ用のコンパクト・ディスク、磁気テープ、その他が含まれる。適切なプログラミング手段を有する任意のコンピュータ・システムが、コンピュータ・プログラム製品で具体化された本発明の方法のステップを実行できることを当業者は直ちに認識されよう。本明細書で説明される例示的実施形態の一部はコンピュータ・ハードウェア上にインストールされ、実行されるソフトウェアを指向するが、それでも、ファームウェアまたはハードウェアとして実装される代替実施形態が十分に本発明の範囲内にあることも当業者は認識されよう。
【0069】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含み得る。
【0070】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し、記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組合せであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下が含まれる。ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、命令が記録されたパンチ・カードや溝の中の隆起構造などの機械的に符号化されたデバイス、および前述の任意の適切な組合せ。本明細書では、コンピュータ可読記憶媒体は、電波または他の自由伝播電磁波、導波路または他の伝送媒体を通じて伝播する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、ワイヤを通じて伝送される電気信号など、本質的に一時的信号であると解釈されるべきではない。
【0071】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体内に記憶するためにコンピュータ可読プログラム命令を転送する。
【0072】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語や類似のプログラミング言語などの従来の手続型プログラミング言語とを含む1つまたは複数のプログラミング言語の任意のの組合せで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ、および部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され、または接続が外部コンピュータに対して(たとえば、インターネット・サービス・プロバイダを使用してインターネットを通じて)行われ得る。いくつかの実施形態では、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによってコンピュータ可読プログラム命令を実行し得る。
【0073】
本発明の態様は、本開示の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、フローチャート図またはブロック図あるいはその両方の中のブロックの組合せが、コンピュータ可読プログラム命令によって実装されることを理解されよう。
【0074】
こうしたコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令により、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに与えられ、機械が作り出され得る。こうしたコンピュータ可読プログラム命令はまた、命令を有するコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブルデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示し得るコンピュータ可読記憶媒体内に記憶され得る。
【0075】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するように、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実施させて、コンピュータ実装プロセスが生成され得る。
【0076】
図中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、指定の論理的機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表し得る。いくつかの代替実装では、ブロック内に記載の機能は、図に記載されている以外の順序で発生し得る。たとえば、連続して示される2つのブロックは、実際には、ほぼ同時に実行され、またはブロックは、関係する機能に応じて、時には逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せが、指定の機能または動作を実施し、あるいは専用ハードウェアおよびコンピュータ命令の組合せを実施する専用ハードウェア・ベースのシステムによって実装されることにも留意されよう。
【0077】
上記の説明から、本発明の真の思想から逸脱することなく、本発明の様々な実施形態で修正および変形が行われることを理解されよう。本明細書の説明は、例示のためのものに過ぎず、限定的な意味に解釈されるべきではない。本発明の範囲は、以下の特許請求の範囲の言い回しのみによって限定される。
【手続補正書】
【提出日】2022-03-14
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータの情報処理により、自然言語で書かれたテキスト記述から実行可能プロセスを作成する方法であって、
自然言語で書かれたテキスト文書から命題の集合を抽出することと、
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出することと、
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成することと、
前記状態遷移グラフをソフトウェア・アプリケーションに変換することと
を含む、方法。
【請求項2】
前記テキスト文書から命題の集合を抽出することが、
前記テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクすることと、
前記テキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクすることと、
機械学習プロセスによって、各文のマスクした部分を命題クラスにマッピングすることと
を含む、請求項1に記載の方法。
【請求項3】
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出することが、
機械学習プロセスによって命題の前記集合の間の関係を抽出することと、
前記関係を表す論理式の集合を条件付きステートメントとして生成することと
を含む、請求項1に記載の方法。
【請求項4】
前記テキスト文書の第1の文中で生じる論理式と、前記テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出することをさらに含む、請求項
3に記載の方法。
【請求項5】
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成することが、
命題の前記集合内の各命題について、命題値のすべての可能な状態を表すプロセス・フロー・ツリーを構築することと、
前記プロセス・フロー・ツリー内のすべての経路に対する制約として式の前記集合を適用することと、
前記プロセス・フロー・ツリーを最適化することと
を含む、請求項1に記載の方法。
【請求項6】
前記状態遷移グラフをソフトウェア・アプリケーションに変換することが、前記状態遷移グラフで表される命題変数についての値を決定するコンピュータ実行可能ロジックを生成することを含む、請求項1に記載の方法。
【請求項7】
重要なキーワードの事前定義された辞書、命題クラス定義、および式クラス定義を受け取ることをさらに含む、請求項1に記載の方法。
【請求項8】
コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作可能に結合されたコンピュータ・メモリとを備えた、自然言語で書かれたテキスト記述から実行可能プロセスを作成するための
装置であって、
自然言語で書かれたテキスト文書から命題の集合を抽出する
手段と、
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出する
手段と、
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成する
手段と、
前記状態遷移グラフをソフトウェア・アプリケーションに変換する
手段と
含む、装置。
【請求項9】
前記テキスト文書から命題の集合を抽出する
手段が、
前記テキスト文書の各文中で、事前定義された辞書内にリストされたキーワードをマスクする
手段と、
前記テキスト文書の各文中で、事前定義された表現規則によって表される文字シーケンス・パターンをマスクする
手段と、
機械学習プロセスによって、各文のマスクした部分を命題クラスにマッピングする
手段と
を含む、請求項8に記載の装置。
【請求項10】
命題の前記集合に応じて、前記テキスト文書から式の集合を抽出する
手段が、
機械学習プロセスによって命題の前記集合の間の関係を抽出する
手段と、
前記関係を表す論理式の集合を条件付きステートメントとして生成する
手段と
を含む、請求項8に記載の装置。
【請求項11】
前記テキスト文書の第1の文中で生じる論理式と、前記テキスト文書の第2の文中で生じる別の論理式との間の関係を抽出する
手段をさらに含む、請求項10に記載の装置。
【請求項12】
式の前記集合によって制約される命題値決定経路の集合を含む状態遷移グラフを作成する
手段が、
命題の前記集合内の各命題について、命題値のすべての可能な状態を表すプロセス・フロー・ツリーを構築する
手段と、
前記プロセス・フロー・ツリー内のすべての経路に対する制約として式の前記集合を適用する
手段と、
前記プロセス・フロー・ツリーを最適化する
手段と
を含む、請求項8に記載の装置。
【請求項13】
前記状態遷移グラフをソフトウェア・アプリケーションに変換する
手段が、前記状態遷移グラフで表される命題変数についての値を決定するコンピュータ実行可能ロジックを生成する
手段を含む、請求項8に記載の装置。
【請求項14】
重要なキーワードの事前定義された辞書、命題クラス定義、および式クラス定義を受け取る
手段をさらに含む、請求項8に記載の装置。
【請求項15】
請求項1~7の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項16】
請求項15に記載の前記コンピュータ・プログラムを、コンピュータ可読記憶媒体に記憶した、記憶媒体。
【国際調査報告】