本明細書の図において概略的に説明され、示されているように、本実施形態のコンポーネントが、多種多様な異なる構成で配置および設計されるということが、容易に理解されるであろう。したがって、図で提示された本実施形態の装置、システム、方法、およびコンピュータ・プログラム製品の実施形態に関する以下の詳細な説明は、特許請求される実施形態の範囲を制限するよう意図されておらず、選択された実施形態を単に代表している。
本明細書全体を通じて、「選択された実施形態」、「1つの実施形態」、または「実施形態」への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれるということを意味する。したがって、本明細書全体を通じてさまざまな場所に現れる「選択された実施形態」、「1つの実施形態では」、または「実施形態では」という語句は、必ずしも同じ実施形態を指していない。
示された実施形態は、全体を通じて類似する部分が類似する数字によって指定される図面を参照することによって、最もよく理解されるであろう。以下の説明は、単なる例示を意図しており、本明細書において特許請求される実施形態と一致するデバイス、システム、およびプロセスの特定の選択された実施形態を単に示す。
人工知能コンピュータ・システムの分野では、自然言語システム(IBM Watson(TM)人工知能コンピュータ・システムまたは他の自然言語システムあるいはその両方など)は、システムによって取得された知識に基づいて自然言語を処理する。自然言語を処理するために、システムは、知識のデータベースまたはコーパスから得られたデータを使用してトレーニングされるが、得られた結果は、さまざまな理由のために、正しくないか、または不正確である可能性がある。
人工知能(AI)のサブセットである機械学習(ML:Machine learning)は、アルゴリズムを利用して、データから学習し、このデータに基づいて予知を作成する。AIとは、機械が情報に基づいて、特定のテーマにおける成功の可能性を最大化する決定を行うことができる場合の知能のことを指す。より詳細には、AIは、問題を解決して適切な推奨を提供するように、データ・セットから学習することができる。認知計算は、コンピュータ科学および認知科学の混合である。認知計算は、自己学習アルゴリズムを利用し、最小限のデータ、視覚認識、および自然言語処理を使用して問題を解決し、人間のプロセスを最適化する。
AIおよび関連する推論の中心には、類似性の概念がある。自然言語およびオブジェクトを理解するプロセスは、関係の観点からの推論を必要とし、これは困難である可能性がある。静的構造および動的構造を含む構造は、特定の限定された入力に対して決定された出力または動作を指示する。より詳細には、決定された出力または動作は、構造内の明確な関係または固有の関係に基づく。この構成は、選択された環境および条件にとって十分であることがある。しかし、動的構造が本質的に変更を受け、それに応じて、出力または動作が変更を受けることがあるということが理解される。オブジェクトを効率的に識別し、自然言語を理解し、この識別および理解ならびに構造に対する変更に応じてコンテンツを処理するための既存の解決策は、実用レベルでは極めて困難である。
チャットボットは、事前に計算された語句および聴覚またはテキストに基づく信号を使用することによって、双方向の人間の会話をシミュレートする人工知能(AI)プログラムである。チャットボットは、顧客サービスのサポートのために、電子プラットフォームにおいてますます使用されるようになっている。1つの実施形態では、チャットボットは、インテリジェントな仮想エージェントとして機能してよい。各チャットボットの体験は、ユーザの動作および対話システムの動作から成る一連のコミュニケーションで構成され、この体験は、特徴的な挙動パターンを含んでいる。将来のチャットボット体験を改良するための変更を保証し得るチャットボットの要素を確認するために、チャットボットの対話が評価され、診断を受け得るということが、当技術分野において理解される。そのような評価は、挙動のパターンを識別する。これらのパターンを学習することによって、より詳細には、パターンの異なる特性を識別することによって、チャットボット・プログラムは、チャットボットの指標および将来のチャットボット体験を改善するように改良または修正され得る。
チャットボットの評価の1つの態様は、一連の対話が挙動においてどのように異なるかを識別するための、基礎になる対話の調査を目的とする。対話は、一連のコミュニケーションから成り、対話のトレース(例えば、トレース)が対話の特性決定になる。1つの実施形態では、これらのトレースに基づいて対話がクラスタ化される。調査は、対話の1つのセットを伴うが対話の他のセットを伴わない論理仕様を発見することによって、対応する説明を生成する。1つの実施形態では、調査は、修正または改善されることができるチャットボット・プラットフォームにおける異常を検出することがあり得る。したがって、対応する図面と共に本明細書において詳細に説明されるシステム、コンピュータ・プログラム製品、および方法は、複数の対話間の違いを説明し、チャットボット・プラットフォームの失敗を軽減して対話体験を改善するように対話プログラム・コードを改良することに焦点を合わせる。
図1を参照すると、人工知能(AI)プラットフォームおよび対応するシステム(100)の概略図が示されている。図に示されているように、サーバ(110)が、ネットワーク接続(例えば、コンピュータ・ネットワーク(105))を経由して複数のコンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)と通信して提供される。サーバ(110)は、バスを経由してメモリと通信するプロセッシング・ユニット(例えば、プロセッサ)を使用して構成される。サーバ(110)は、対話システム(160)(本明細書では、チャットボットとしての仮想対話エージェント(162)と共に示されている)に動作可能に結合されたAIプラットフォーム(150)、知識ベース(170)と共に示されている。ユーザが仮想エージェント(例えば、ディスプレイ(130)上のチャットボット(132))の表現とインターフェースをとることができるようにするために、コンピュータ画面またはスマートフォンなどの視覚ディスプレイ(130)が提供されている。図1では視覚ディスプレイが示されているが、ディスプレイ(130)が、音声インターフェース(例えば、マイクロホンおよびスピーカ)、オーディオビデオ・インターフェースなどの他のインターフェースに置き換えられるか、または補完されるということが理解されるべきである。
AIプラットフォーム(150)は、ネットワーク(105)に動作可能に結合され、コンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)のうちの1つまたは複数からの仮想対話エージェント(162)との対話をサポートする。より詳細には、コンピューティング・デバイス(180)、(182)、(184)、(186)、および(188)は、1つまたは複数の有線データ通信リンクまたは無線データ通信リンクあるいはその両方を介して、互いに、および他のデバイスまたはコンポーネントと通信し、各通信リンクは、ワイヤ、ルータ、スイッチ、送信器、受信器などのうちの1つまたは複数を含んでよい。このネットワーク構成では、サーバ(110)およびネットワーク接続(105)は、通信の検出、認識、および解決を可能にする。サーバ(110)の他の実施形態は、本明細書に示されている以外のコンポーネント、システム、サブシステム、またはデバイス、あるいはその組み合わせと共に使用されてよい。
AIプラットフォーム(150)は、本明細書では対話システム(160)に動作可能に結合されて示され、種々のソースから入力(102)を受信するように構成される。例えば、対話システム(160)は、ネットワーク(105)を経由して入力を受信し、データ・ソース(170)(本明細書では知識ベースまたは情報のコーパスとも呼ばれる)を活用して出力または応答のコンテンツを作成してよい。
図に示されているように、データ・ソース(170)は、会話ログ・ファイル(記録とも呼ばれる)のライブラリ(172A)を使用して構成され、各ログ・ファイルは仮想対話エージェントとの対話を記録する。実施形態例によれば、各会話ログ(例えば、ログ・ファイル)は、ユーザと仮想エージェントの間の電子プラットフォーム内の対話を含む、チャットボットからの(過去の)トレースの記録である。トレースは、1つまたは複数の対話イベント(状態変数とも呼ばれる)を含む。例として、休暇を予約するためのチャットボット・プラットフォームとの関連において、対話イベントまたは状態変数は、出発の日時などのフィールドを含んでよく、状態変数のインスタンス化は、出発の日時に関してユーザによって入力された情報またはデータであってよい。そのようなチャットボットの他の状態変数は、帰りの日時、目的地、車両のレンタル、ホテルの予約などを含んでよい。
本明細書において示されるように、第1のライブラリA(172)は、ログ・ファイル0(174A,0)およびログ・ファイル1(174A,1)を含む複数のログ・ファイルを含む。2つのログ・ファイルのみが示されているが、この数は制限と見なされるべきではない。実際に、ライブラリ(172A)が数百個または数千個のログ・ファイルを含むことがあるということが企図される。ログ・ファイル0(174A,0)およびログ・ファイル1(174A,1)は、本明細書ではトレース0(176A,0)およびトレース1(176A,1)としてそれぞれ示されている対応するトレースと共に示されている。同様に、各トレースは、挙動特性値(BCV:behavior characteristic value)および1つまたは複数の対話イベントを含む(状態変数のインスタンス化を含む)。例えば、トレース0(176A,0)およびトレース1(176A,1)は、それぞれ対応する挙動特性値BCV0(176A,0,B)およびBCV1(176A,1,B)と共に示されている。図1では、トレース0(176A,0)が対話イベント0(178A,0)と共に示されており、トレース1(176A,1)が対話イベント1(178A,1)と共に示されている。自動化された仮想対話エージェント(162)は、状態変数の各々をクエリとしてユーザに提起してよく、ユーザは、状態変数のインスタンス化の形態で応答を提供する。
図1さらに示されているように、データ・ソース(170)は、第2のライブラリB(172B)および第3のライブラリC(172C)を使用して構成される。データ・ソース(170)は3つのライブラリ(172A、172B、および172C)と共に示されているが、ライブラリが組み合わせられるか、または任意の数のライブラリに分割されるということ、および追加のライブラリがアクセスされるということが理解されるべきである。例えば、ライブラリB(172B)およびライブラリC(172C)が単一のライブラリに組み合わせられてよい。代替として、ライブラリB(172B)およびライブラリC(172C)のいずれかまたは両方が、複数のライブラリを含んでよい。ライブラリB(172B)は、パターン仕様、および任意に、パターン仕様に関連付けられた加重値(WV:weighted value)をそれぞれ含んでいる複数のファイルを含む。図に示されているように、ライブラリB(172B)は、関連する加重値WVB,0(176B,0)を伴うパターン仕様0(174B,0)、関連するWVB,1(176B,1)を伴うパターン仕様1(174B,1)、および関連するWVB,N(176B,N)を伴うパターン仕様N(174B,N)を含んでいる。図に示されているように、ライブラリC(172C)は、変数仕様、および任意に、変数仕様に関連付けられた加重値(WN)を含んでいる複数のファイルを含む。図に示されているように、ライブラリC(172C)は、関連するWVC,0(176C,0)を伴う変数仕様0(174C,0)、関連するWVC,1(176C,1)を伴う変数仕様1(174C,1)、および関連するWVC,N(176C,N)を伴う変数仕様N(174C,N)を含んでいる。3つのファイルと共に示されているが、ライブラリB(172B)およびライブラリC(172C)の各々は、より少ないファイル、または数十個、数百個、または数千個のファイルを含むより多いファイルを含んでよい。
ライブラリB(172B)のファイルのパターン仕様(例えば、パターン仕様0(174B,0)、パターン仕様1(174B,1)、パターン仕様N(174B,N))は、時間条件を伴ってよく、例えば時相論理を使用してよい。実施形態例では、ライブラリB(172B)のパターン仕様(174B,0、174B,1、...174B,N)のうちの、各々ではないとしても、1つまたは複数に、線形時相論理(LTL:linear temporal logic)が使用される。例えば、LTLは、会話のトレースを通じて常に保持する条件、別の条件の後に続くか、または別の条件によって先行される条件、あるいはLTLの他の例であってよい。ライブラリC(172C)のファイルの変数仕様(174C,0、174C,1、...174C,N)は、典型的にはチャットボットなどの仮想エージェントとの対話またはトランザクションに含まれる情報(または状態変数)のフィールドを含んでよい。ライブラリB(172B)およびライブラリC(172C)のファイルの加重値(WV)は任意である。実施形態例では、関連するパターン仕様または変数仕様の認識された重要性に応じて、異なる加重値が異なるパターン仕様および変数仕様に割り当てられる。実施形態例では、加重値は、0~1の範囲内であり、その間の10分の1または100分の1の任意の倍数あるいはその両方を含む。
ネットワーク(105)と通信するさまざまなコンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)は、対話システム(160)へのアクセス・ポイントを含んでよい。AIプラットフォーム(150)が、ローカルおよびグローバル(例えば、インターネット)を含む任意のサイズの環境内で動作し得るように、ネットワーク(105)は、さまざまな実施形態では、ローカル・ネットワーク接続およびリモート接続を含んでよい。さらに、AIプラットフォーム(150)は、文書、ネットワーク・アクセス可能なソース、または構造化されたデータ・ソース、あるいはその組み合わせから抽出されたか、またはこれらで表された、さまざまな知識を使用可能にすることができるバックエンド・システムとして機能する。このようにして、何らかのプロセスがAIプラットフォーム(150)にデータを追加し、AIプラットフォーム(150)は、要求を受信し、それに応じて応答するための、入力インターフェースも含む。
図に示されているように、コンテンツは、知識ベース(170)を介してAIプラットフォーム(150)に動作可能に結合された1つまたは複数のログ・ファイル(「記録」と互換的に使用される)の形態であってよい。コンテンツのユーザは、ネットワーク(105)へのネットワーク接続またはインターネット接続を介して、AIプラットフォーム(150)および動作可能に結合された対話システム(160)にアクセスしてよく、自然言語入力をAIプラットフォーム(150)に提出してよく、AIプラットフォーム(150)は、知識ベース(170)およびAIプラットフォーム(150)を構成するツールを活用することによって、入力に関連する出力応答を効果的に決定してよい。
AIプラットフォーム(150)は、本明細書では、対話システム(160)および対応する仮想エージェント(例えば、チャットボット)(162)をサポートするための複数のツールと共に示されており、より詳細には、対話システム(160)および仮想エージェント(162)の体験の性能を改善することを目的とするツールと共に示されている。AIプラットフォーム(150)は、仮想エージェント(162)とインターフェースをとり、その性能の改善をサポートするための複数のツールを使用する。これらのツールは、トレース・マネージャ(152)、クラスタ・マネージャ(154)、サンプリング・マネージャ(156)、検索マネージャ(158)、および出力マネージャ(164)を含む。
トレース・マネージャ(152)は、会話ログ・ファイルのトレースの対話イベントを、状態変数のインスタンス化を含んでいる複数の構文解析されたイベントに構文解析する。トレース・マネージャ(152)は、トレースから挙動特性をさらに抽出し、各挙動特性値をトレースの各々に割り当てる。本明細書において示されるように、トレース0(176A,0)が対応する挙動特性値(BCV0)(176A,0,B)と共に示されており、トレース1(176A,1)が対応する挙動特性値(BCV1)(176A,1,B)と共に示されている。
クラスタ・マネージャ(154)は、各結果値へのトレースの各挙動特性値の近接性に基づいて、トレースを複数のクラスタ(またはグループ)にクラスタ化する。複数のクラスタは、第1の結果を表す第1の結果値に関連付けられた第1のクラスタおよび第1の結果と異なる(および任意に反対の)第2の結果を表す第2の結果値に関連付けられた第2のクラスタを含む。第1および第2の結果は、例えば、それぞれ対話の完了の成功および対話の完了の失敗であってよい。第1のクラスタにクラスタ化されたトレースは、第1の結果値に最も近い(例えば、同一の)各挙動特性値を有し、一方、第2のクラスタにクラスタ化されたトレースは、第2の結果値に最も近い(例えば、同一の)各挙動特性値を有する。例えば、休暇を予約するために使用されるチャットボットの場合、第1の結果値は、休暇の予約が成功した(挙動特性値が0に等しい)という結果を表してよく、一方、第2の結果値は、休暇の予約が成功しなかった(挙動特性値が1に等しい)という結果を表してよい。実施形態例では、第1および第2の結果値は0および1である。上記の例は2つの結果を含むが、実施形態が3つ以上の結果、例えば、目的地の宿泊施設(例えば、リゾート地)の予約が成功したが、旅行(例えば、航空便)が予約されなかったという第3の結果を含むということが理解されるべきである。
実施形態によれば、サンプリング・マネージャ(156)は、さらなる処理のために、第1のクラスタのトレースのサブセットおよび第2のクラスタからのトレースのサブセットを選択する。サンプリング・マネージャ(156)は、多数の会話ログ・ファイルからのトレースがクラスタ化される場合に特に役立つ。サンプリング・マネージャ(156)は、ランダム・サンプリングを含む、任意のサンプリング技術を使用してサンプリングしてよい。サンプリング・マネージャは、従来技術において知られているため、さらに詳細に説明されない。
検索マネージャ(158)は、サンプリングされたトレースの複数の構文解析されたイベント(または状態変数)を探索する。実施形態例では、検索マネージャ(158)は、優先モジュール(158A)および対照性チェッカー(contrast checker)(158B)を含む。優先モジュール(158A)は、ライブラリB(172B)にアクセスして、パターン仕様および関連する加重値(例えば、関連するWVB,0(176B,0)を伴うパターン仕様0(174B,0))を選択し、ライブラリC(172C)にアクセスして、変数仕様および関連する加重値(例えば、関連するWVC,0(176C,0)を伴う変数仕様0(174C,0))を選択する。検索マネージャ(158)の優先モジュール(158A)は、時間条件を伴う選択されたパターン仕様および選択された変数仕様を、第1のクラスタのサンプル・トレースの構文解析されたイベントに適用し、選択された変数仕様に対応する構文解析されたイベントが選択されたパターン仕様の時間条件を満たす、第1のクラスタのサンプル・トレースの第1の比率を決定する。検索マネージャ(158)の優先モジュール(158A)は、同じ時間条件を伴う同じ選択されたパターン仕様および同じ選択された変数仕様を、第2のクラスタのサンプル・トレースの構文解析されたイベントにさらに適用し、選択された変数仕様に対応する構文解析されたイベントが選択されたパターン仕様の時間条件を満たさない、第2のクラスタのサンプル・トレースの第2の比率を決定する。
検索マネージャ(158)の対照性チェッカー(158B)は、通常は0~1の値であり、その間の10分の1または100分の1の任意の倍数を含めて任意にプログラマによって事前に決定される対照性しきい値が満たされているかどうかを、第1のクラスタのトレースの第1の比率および第2のクラスタのトレース第2の比率に基づいて判定する。対照性しきい値の満足度の判定は、実施形態例によれば、第1の比率および第2の比率を掛け合わせて積を計算し、計算された積が対照性しきい値以上であるかどうかを評価することを含む。1つまたは複数の加重値が考慮される場合、対照性しきい値の満足度の判定は、別の実施形態例によれば、第1の比率、第2の比率、および加重値を掛け合わせて加重積を計算し、計算された加重積が対照性しきい値以上であるかどうかを評価することを含む。
出力マネージャ(164)は、実施形態例によれば、視覚ディスプレイ(130)上の読み出しのための出力(164A)を提供する。別の実施形態によれば、出力マネージャ(164)は、検索マネージャ(158)と共に検索に使用される変数仕様に関連して、対話システム(160)、および実施形態例では、対話システム(160)の自動化された仮想対話エージェント(162)を、自動的に改良する。実施形態によれば、対話システムの改良は、検索マネージャ(158)と共に検索に使用される変数仕様に関して、対話内のチェックポイントを選択的に課すことを含む。別の実施形態によれば、対話システム(160)の改良は、仮想エージェント(162)によって提起されたクエリを変更することを含む。この改良は、出力マネージャ(164)によって自動的に実施されることができ、またはプログラマによって実施されてもよい。
ログ・ファイル(記録)が受信されたときに、トレース・マネージャ(152)は、さまざまなプロトコルを使用して、単語、語句、符号、および記号などの能記、ならびに能記が表すもの(明示的意味または暗示的意味)との間の関係に基づいてトレース内のコンテンツを識別することを含めて、受信されたログ・ファイルの対応するトレースの対話イベントを構文解析することができる。トレース・マネージャ(152)は、本明細書では、人工知能プラットフォーム(150)内に組み込まれたツールとして示されており、実施形態によれば、自然言語処理プロトコルを利用する。
受信されたログ・ファイルのトレースは、IBM Watson(R)サーバ(110)および対応する人工知能プラットフォーム(150)によって処理されてよい。本明細書において示されるように、トレース・マネージャ(152)は、さまざまな推論アルゴリズムを使用して、トレースの言語に対して分析を実行する。おそらく、適用される数百または数千もの推論アルゴリズムが存在しており、それらの各々が異なる分析(例えば、比較)を実行する。例えば、一部の推論アルゴリズムは、受信されたトレースおよびデータのコーパスの発見された部分の言語内の用語および同義語の一致を調べてよい。1つの実施形態では、トレース・マネージャ(154)は、電子通信を単語ベクトル表現に処理し、通信内の特徴を識別して抽出する。単語ベクトル表現の使用または電子記録を処理するための代替のプラットフォームのいずれによろうと、NLマネージャ(152)は、トレースの構文解析されたイベントおよび挙動特性を識別しようとして電子記録を処理する。1つの実施形態では、プラットフォームは、電子記録内の、名詞、動詞、形容詞、句読、句読点などの文法的構成要素を識別する。同様に、1つの実施形態では、1つまたは複数の推論アルゴリズムは、電子記録の言語内の時間的特徴または空間的特徴を調べることがあり得る。
一部の実施形態例では、サーバ(110)は、インターナショナル・ビジネス・マシーンズ・コーポレーション(ニューヨーク州アーモンク)から提供されるIBM Watson(R)システムであってよく、このシステムは、以下で説明される実施形態例のメカニズムを使用して拡張されている。
サンプリング・マネージャ(156)は、形成されたクラスタからのトレースに対するサンプリングを含む。サンプリングはランダムであってよく、または従来技術において知られたサンプリング技術を含む、任意のサンプリング技術を含んでよい。実施形態では、第1の選択された数のサンプル・トレースが第1のクラスタに割り当てられ、第2の選択された数のサンプル・トレースが第2のクラスタ(クラスタ1)に割り当てられる。
検索マネージャ(158)は、クラスタの形成および評価から利用された情報が対照性しきい値を満たすかどうかを評価する。対照性チェッカー(158B)は、第1および第2のクラスタの比率を互いに掛けて積値を提供するように動作する。任意に、対照性チェッカー(158B)は、積値に1つまたは複数の加重係数を掛けて、加重積を決定する。実施形態によれば、加重係数の各々は、0~1の範囲内であり、その間の10分の1または100分の1のすべての倍数を含む。実施形態によれば、加重係数は、例えばパターン仕様に割り当てられた重要性に基づく、パターン仕様の加重係数である。別の実施形態によれば、加重係数は、例えば変数仕様に割り当てられた重要性に基づく、変数仕様の加重係数である。例えば、出発日の満足度に関連する変数仕様はプログラマにとって高い重要性を有してよく、したがって、1に近い加重値が割り当てられてよく、車両のレンタルの満足度に関連する変数仕様は低い重要性を有してよく、したがって、0に近い加重値が割り当てられてよい。1つの実施形態では、パターン仕様または変数仕様あるいはその両方への加重の適用は省略されるか、または1に設定されてよい。同様に、1つの実施形態では、加重の値は構成可能であってよい。
対照性しきい値が割り当てられる。任意に、対照性チェッカー(158B)が対照性しきい値を割り当てるが、対照性しきい値はプログラマによって割り当てられてもよい。実施形態例では、対照性しきい値は、0~1の範囲内の任意のインクリメント(例えば、10分の1、100分の1など)を含む、0~1の範囲内の値である。検索マネージャ(158)の対照性チェッカー(158B)は、加重積が対照性しきい値を満たす(例えば、対照性しきい値以上である)かどうかを判定する。
加重積が対照性しきい値を満たす場合、出力マネージャ(164)は、対話システムの性能を改善するために、構文解析されたイベントに関連して、仮想エージェントに対する改良に対応する出力を作成する。一方、加重積が対照性しきい値を満たさない場合、AIプラットフォーム(150)またはプログラマは、例えば、新しい対照性しきい値を割り当て、ステップ(412)および(432)に戻ることと、別のパターン仕様または変数仕様あるいはその両方を選択することと、プロセスを終了することとを含む、継続するためのさまざまなステップを選択してよい。
以下で集合的にAIツールと呼ばれるトレース・マネージャ(152)、クラスタ・マネージャ(154)、サンプリング・マネージャ(156)、検索マネージャ(158)、および出力マネージャ(164)は、サーバ(110)の人工知能プラットフォーム(150)内で具現化されているか、または統合されているように示されている。AIツールは、ネットワーク(105)を経由してサーバ(110)に接続された別のコンピューティング・システム(例えば、190)内で実装されてよい。どこで具現化されても、AIツールは、対話ログの記録を評価し、対話ログの記録のトレースの対話イベントを構文解析されたイベントに構文解析し、トレースから挙動特性を抽出して値を挙動特性に割り当て、トレースをクラスタ化し、クラスタ化されたトレースをサンプリングし、サンプリングされたトレースに関して、対照性しきい値が満たされているかどうかを判定するように機能する。
選択された実施形態例では、トレース・マネージャ(152)は、NL処理を適用して、受信された対話ログの記録のトレースの挙動特性を識別するように構成されてよい。例えば、トレース・マネージャ(152)は、構文分析を実行してよく、この分析は、対象の文の構文解析を伴い、この構文解析は文法的用語および発話の部分を示す。1つの実施形態では、トレース・マネージャ(152)は、Slot Grammar Logic(SGL)パーサーを使用して構文解析を実行してよい。トレース・マネージャ(152)は、1つまたは複数の学習方法を適用し、検出されたコンテンツを既知のコンテンツと照合して、値を決定し、挙動特性に割り当てるように構成されてもよい。
人工知能プラットフォーム(150)を利用できる情報処理システムの種類は、ハンドヘルド・コンピュータ/携帯電話(180)などの小型のハンドヘルド・デバイスから、メインフレーム・コンピュータ(182)などの大型のメインフレーム・システムに及ぶ。ハンドヘルド・コンピュータ(180)の例としては、パーソナル・デジタル・アシスタント(PDA:personal digital assistants)、パーソナル・エンターテイメント・デバイス(MP4プレイヤー、ポータブル・テレビ、およびコンパクト・ディスク・プレイヤー)が挙げられる。情報処理システムの他の例としては、ペンまたはタブレット・コンピュータ(184)、ラップトップまたはノートブック・コンピュータ(186)、パーソナル・コンピュータ・システム(188)、およびサーバ(190)が挙げられる。図に示されているように、さまざまな情報処理システムが、コンピュータ・ネットワーク(105)を使用して一緒にネットワーク化されることができる。さまざまな情報処理システムを相互接続するために使用されることができるコンピュータ・ネットワーク(105)の種類としては、ローカル・エリア・ネットワーク(LAN:Local Area Networks)、無線ローカル・エリア・ネットワーク(WLAN:WirelessLocal Area Networks)、インターネット、公衆交換電話網(PSTN:PublicSwitched Telephone Network)、他の無線ネットワーク、および情報処理システムを相互接続するために使用されることができる任意の他のネットワーク・トポロジーが挙げられる。情報処理システムの多くは、ハード・ドライブまたは不揮発性メモリあるいはその両方などの、不揮発性データ・ストアを含む。情報処理システムの一部は、別々の不揮発性データ・ストアを使用し得る(例えば、サーバ(190)は不揮発性データ・ストア(190A)を利用し、メインフレーム・コンピュータ(182)は不揮発性データ・ストア(182A)を利用する)。不揮発性データ・ストア(182A)は、さまざまな情報処理システムの外部にあるコンポーネントであることができ、または情報処理システムのうちの1つの内部にあることができる。
人工知能プラットフォーム(150)をサポートするために採用される情報処理システムは、さまざまな形態をとってよく、その一部が図1に示されている。例えば、情報処理システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、または他の形状因子のコンピュータもしくはデータ処理システムの形態をとってよい。加えて、情報処理システムは、パーソナル・デジタル・アシスタント(PAD)、ゲーミング・デバイス、ATMマシン、携帯電話デバイス、通信デバイス、またはプロセッサおよびメモリを含む他のデバイスなどの、他の形状因子を選択してよい。加えて、他のアーキテクチャが採用されてもよいということが理解されるため、情報処理システムは、ノース・ブリッジ/サウス・ブリッジ・コントローラ・アーキテクチャを必ずしも具現化する必要がない。
アプリケーション・プログラム・インターフェース(API:ApplicationProgram Interface)は、当技術分野において、2つ以上のアプリケーション間の中間のソフトウェアとして理解されている。図1に示されて説明された人工知能プラットフォーム(150)に関して、ツール(152)、(154)、(156)、(158)、および(164)のうちの1つまたは複数、ならびにそれらに関連する機能をサポートするために、1つまたは複数のAPIが利用されてよい。図2を参照すると、ツール(152)、(154)、(156)、(158)、および(164)、ならびにそれらに関連するAPIを示すブロック図(200)が提供されている。図に示されているように、複数のツールがAIプラットフォーム(205)内に組み込まれており、ツールは、API0(212)に関連付けられたトレース・マネージャ(252)、API1(222)に関連付けられたクラスタ・マネージャ(254)、API2(232)に関連付けられたサンプリング・マネージャ(256)、API3(242)に関連付けられた検索マネージャ(258)、およびAPI4(262)に関連付けられた出力マネージャ(264)を含む。APIの各々は、1つまたは複数の言語およびインターフェース仕様で実装されてよい。API0(212)は、トレースの対話イベントを構文解析するための機能的サポートを提供し、トレースの挙動特性を決定し、API1(222)は、トレースをクラスタ化するための機能的サポートを提供し、API2(232)は、トレースをサンプリングするための機能的サポートを提供し、API3(242)は、構文解析されたイベントを検索(例えば、探索)するための機能的サポートを提供し、API4(262)は、対話システムを改良することを含む、出力に対する機能的サポートを提供する。図に示されているように、API(212)、(222)、(232)、(242)、および(262)の各々は、APIオーケストレータ(260)(または、オーケストレータ・レイヤ(orchestration layer)と呼ばれる)に動作可能に結合されており、APIオーケストレータ(260)は、当技術分野において、別々のAPIを透過的につなぐための抽象レイヤとして機能すると理解される。実施形態では、別々のAPの機能が結合されるか、または組み合わせられてよい。そのため、本明細書に示されたAPIの構成は、限定的と見なされるべきではない。したがって、本明細書において示されるように、ツールの機能は、それらのAPIによって具現化されるか、またはサポートされてよい。
図3を参照すると、チャットボット・プラットフォームなどの対話システムの会話ログ・ファイル(本明細書では、記録とも呼ばれる)を処理し、対応するトレースにクラスタ化プロセスを施すためのプロセスを示すフローチャート(300)が提供されている。図に示されているように、会話ログ・ファイルの形態での入力が、処理するために受信される(302)。会話ログ・ファイルは、例えば、製品販売、サービスの購入、顧客サービス、情報取得などを含む、さまざまな種類のトランザクション、対話、および活動に関連してよい。実施形態例によれば、各会話ログ・ファイルは、ユーザと仮想エージェントとの間の電子プラットフォーム内の対話を含む、チャットボットからのトレースの記録である。記録は、テキスト、音声、ビデオ、オーディオビデオなどのさまざまな形態であってよい。
トレースは、1つまたは複数の対話イベント(状態変数のインスタンス化(または値)とも呼ばれる)を含む。例として、休暇を予約するためのチャットボット・プラットフォームとの関連において、状態変数は、出発の日時、帰りの日時、目的地、ホテルでの宿泊、車両(例えば、自動車)のレンタルなどのフィールドであってよい。トレースは、出発の日時、帰りの日時、目的地、ホテルでの宿泊、車両のレンタルなどに関してユーザによって入力された情報またはデータを表す対話イベント(または状態変数のインスタンス化)を含む。例えば、自動化された仮想対話エージェントは、状態変数の各々をクエリとしてユーザに提起してよく、ユーザは、応答またはインスタンス化を提供する。
会話ログは、ログのクラスタ化を容易にし、可能にするために、人工知能(AI)プラットフォーム(図1のAIプラットフォーム(150)など)による処理の対象になる。より詳細には、実施形態例によれば、AIプラットフォームは、会話ログ・ファイルのトレースの対話イベント(または状態変数のインスタンス化)を構文解析されたイベントに構文解析し(304)、トレースから(例えば、構文解析されたイベントから(304)、または全体としてトレースから)挙動特性を抽出し、挙動特性値をトレースの各々に割り当てる(306)。実施形態によれば、挙動特性は、トランザクション、対話、または他の活動の完了の成功(または完了の失敗)である。
AIプラットフォームは、トレースの挙動特性値と結果値との近接性に基づいて、トレースにクラスタ化プロセスをさらに施す(308)。実施形態例によれば、ステップ(308)で形成された各クラスタに、クラスタのうちの1つの各結果値と同じまたは類似する挙動特性値を有する会話ログが追加される。出力は、複数のクラスタ(例えば、クラスタ0、クラスタ1、...クラスタN)である(310)。実施形態例では、形成されるクラスタの数は、少なくとも2つであり、2つであることが好ましいが、この数は限定的と見なされるべきではない。
図4を参照すると、図3で形成されたクラスタを検索するための、およびより詳細には、クラスタに割り当てられたトレースの構文解析されたイベントを評価するためのプロセスを示すフローチャート(400)が提供されている。図4の目的のために、2つのクラスタ(すなわち、クラスタ0およびクラスタ1)が示されている。形成されたクラスタのうちのどちらか1つに割り当てられるトレースは膨大な数になることがあり、そのため、クラスタの分析のためにトレースのサンプリングが適用されるということが理解される。そのため、検索分析のためにAI学習プログラムが活用され、クラスタ0およびクラスタ1の各々からのトレースのサンプリングを識別する(402)。実施形態例では、検索分析は、分析の対象になる各クラスタのトレースまたはトレースのサンプリングを含む、図3のフローチャート(300)に従って形成されたクラスタ0およびクラスタ1を対象にする(例えば、ステップ(310)を参照)。図4に示されているように、クラスタの分析は並列に行われてよい。代替の実施形態では、第1および第2のクラスタからトレースを交互またはランダムに選択し、評価することを含む、直列の方法または他の方法もしくは順序でクラスタの分析が行われてよい。
ステップ(404)および(424)で、例えばクラスタ0およびクラスタ1などのクラスタから、トレースがサンプリングされる。サンプリングはランダムであってよく、または従来技術において知られたサンプリング技術を含む、任意のサンプリング技術を含んでよい。実施形態では、第1の選択された数のサンプル・トレースが第1のクラスタ(クラスタ0)に割り当てられ(404)、第2の選択された数のサンプル・トレースが第2のクラスタ(クラスタ1)に割り当てられる(424)。第1のクラスタに関して、第1のクラスタ(クラスタ0)のサンプル・トレース用の第1のサンプル・トレース集計変数Wが初期化される(406)。第1のクラスタ(クラスタ0)に割り当てられるサンプル・トレースの数が識別され、変数WTotalに割り当てられる(408)。その後、第1のクラスタに対応するトレース評価変数が初期化される(410)。ステップ(410)に続いて、第1のクラスタのパターン仕様の評価が実施され、変数Xが、適用される対応する時相論理を満たす第1のクラスタ内のサンプル・トレースの数を表し、変数Zが、適用される対応する時相論理を満たさない第2のクラスタ内のサンプル・トレースの数を表す。
第1のクラスタと同様に、第2のクラスタが処理を受ける。図に示されているように、第2のクラスタ(クラスタ1)のサンプル・トレース用の第2のサンプル・トレース集計変数Yが初期化される(426)。第2のクラスタ(クラスタ1)に割り当てられるサンプル・トレースの数が識別され、変数YTotalに割り当てられる(428)。それに応じて、サンプリングからのトレースが各クラスタに割り当てられ、対応するクラスタおよび論理変数が定義されて初期化される。
ステップ(412)での第1のクラスタの評価には、時間条件を伴うパターン仕様および構文解析されたイベントに対応する変数仕様を選択することと、選択されたパターン仕様の時間条件に関して、選択された変数仕様に対応する構文解析されたイベントを評価することとを含む、2つの態様がある。実施形態では、ステップ(412)での評価は、サンプリングに基づく推論を使用して、選択されたパターン仕様の線形時相論理(LTL)の形態での条件(または特性)を検索する。ステップ(412)でのパターン仕様の評価は、会話のトレースを通じて常に保持する条件、別の条件の後に続くか、または別の条件によって先行される条件などの、抽出するための時間条件の種類を表明することを含む。パターン仕様は、パターン仕様のライブラリから選択されることができる。ライブラリ内のパターン仕様の各々は、加重値(例えば、確率分布)に関連付けられることができる。同様に、変数仕様は、同じライブラリまたは異なるライブラリから選択されることができる。実施形態では、考慮するためのパターン仕様および変数仕様、ならびに検索された特性において、例えば確率分布を介して関連付けられた加重値(例えば、好ましさ)の選択は、構成可能である。
ステップ(412)での第1のクラスタ(クラスタ0)に関して、選択されたパターン仕様の時間条件が、サンプル・トレース(例えば、トレースW)の選択された変数仕様に対応する少なくとも1つの構文解析されたイベントに当てはまるかどうかの判定が行われる。例えば、選択された変数仕様に対応する構文解析されたイベントに適用される選択されたパターン仕様は、構文解析されたイベント(または状態変数)に対する線形時相論理(LTL)の実施を含んでよい。実施形態によれば、パターン仕様は、対話イベントの完了の成功などの第1の条件がクラスタ0の結果につながるかどうかであってよい。例えば、ステップ(412)は、結果が例えば予約の成功である第1のクラスタ(クラスタ0)のサンプル・トレースの結果に関して、旅行の出発時間(状態変数のインスタンス化)のユーザの仕様を満たすことが成り立つかどうかの判定を含んでよい。ステップ(412)での判定に対する肯定的応答の後に、トレース論理集計変数Xのインクリメントが続き(414)、Xは、パターン仕様の論理を満たすクラスタ0のサンプル・トレースを表す。しかし、ステップ(412)での判定に対する否定的応答の場合、(414)でトレース論理集計変数Xはインクリメントされない。ステップ(412)での否定的応答に続いて、またはステップ(412)での肯定的応答の場合、ステップ(414)に続いて、トレース集計変数Wがインクリメントされる(416)。その後、第1のクラスタ内のサンプル・トレースの各々が評価されたかどうかが判定される(418)。ステップ(418)での否定的応答の後に、第1のクラスタ(クラスタ0)からサンプリングされたトレースの処理を続行するために、ステップ(412)に戻ることが続く。しかし、ステップ(418)での肯定的応答は、クラスタのパターン仕様および変数仕様に関して、第1のクラスタ(クラスタ0)に割り当てられたトレースのサンプリングが評価されたということを示す。図に示されているように、第1のクラスタ0の比率(比率0)が評価され(420)、本明細書では、パターン仕様を満たしたサンプル・トレースの数Xおよび第1のクラスタに割り当てられたサンプル・トレースの数の値の比率(すなわち、X/WTotal)として示されている。実施形態では、比率0は、0~1の範囲内であり、その間の10分の1または100分の1のすべての倍数を含む。
第1のクラスタと同様に、第2のクラスタ(クラスタ1)からサンプリングされたトレースも、第1のクラスタ(クラスタ0)のトレースと同じパターン仕様および同じ変数仕様の対象になるが、この場合は、選択された変数仕様に対応する選択された構文解析されたイベントがパターン仕様を満たさない、第2のクラスタ(クラスタ1)に割り当てられたサンプル・トレースの比率を識別する。第2のクラスタ(クラスタ1)に関して、ステップ(432)で、ステップ(412)で選択された同じ変数仕様に対応する構文解析されたイベントに対して、選択されたパターン仕様(すなわち、ステップ(412)の同じパターン仕様)が成り立つかどうかを評価するための判定が実施される。例えば、選択された変数仕様に適用されるパターン仕様は、選択された変数仕様に対応する構文解析されたイベントに対する線形時相論理(LTL)の実施を含んでよい。実施形態によれば、パターン仕様は、対話イベントの完了の成功などの第1の条件がクラスタ1の結果につながるかどうかであってよい。例えば、ステップ(432)は、結果が例えば予約の失敗である第2のクラスタ(クラスタ1)のサンプル・トレースの結果に関して、旅行の出発時間(状態変数のインスタンス化)のユーザの仕様を満たすことが成り立つかどうかの判定を含んでよい。
ステップ(432)での判定に対する肯定的応答(例えば、予約の失敗の結果に関して、旅行の出発日のユーザの仕様の満足度が成り立たないという決定)の後に、トレース論理集計変数Zのインクリメントが続き(434)、Zは、パターン仕様の論理を満たさないサンプル・トレースを表す。しかし、ステップ(432)での判定に対する否定的応答の後に、トレース論理集計変数Zのインクリメントは続かない。ステップ(432)での否定的応答またはステップ(434)でのインクリメントに続いて、トレース集計変数Yがインクリメントされる(436)。その後、第2のクラスタ(クラスタ1)のすべてのサンプル・トレースが評価されたかどうかが判定される(438)。ステップ(438)での否定的応答の後に、第2のクラスタ(クラスタ1)に割り当てられたサンプル・トレースの処理を続行するために、ステップ(432)に戻ることが続く。しかし、ステップ(438)での肯定的応答は、クラスタのパターン仕様および変数仕様に関して、第2のクラスタからサンプリングされたトレースが評価されたということを示す。図に示されているように、第2のクラスタ(クラスタ1)の比率1が評価され(440)、本明細書では、選択された変数仕様に関する選択されたパターン仕様を満たさなかったサンプル・トレースの数および第2のクラスタ(クラスタ1)に割り当てられたサンプル・トレースの数の値の比率(すなわち、Z/YTotal)として示されている。実施形態では、比率1は、0~1の範囲内であり、その間の10分の1または100分の1のすべての倍数を含む。
図4のフローチャート(400)は、1つの選択されたパターン仕様および1つの選択された変数仕様に関して上で説明された。実施形態では、フローチャート(400)のステップは、パターンおよび変数仕様の他の組み合わせに対して繰り返されてよい。
図5を参照すると、クラスタの形成および評価を活用し、対照性しきい値を満たす対照性パターンがトレース内に存在するかどうかを判定し、存在する場合は仮想対話エージェントを改良するためのプロセスを示すフローチャート(500)が提供されている。対照性パターンは、図4で評価されたように、第1のクラスタ(クラスタ0)の第1の比率(比率0)、および第2のクラスタ(クラスタ1)の第2の比率(比率1)に基づく値を有する。実施形態例では、第1および第2の比率が掛け合わされて、積値をもたらす(502)。ステップ(504)で、ステップ(502)の積値に、1つまたは複数の加重係数が掛けられ、対照性パターンの値を表す加重積を決定する。実施形態によれば、加重係数の各々は、0~1の範囲内であり、その間の10分の1または100分の1のすべての倍数を含む。実施形態によれば、加重係数は、例えばパターン仕様に割り当てられた重要性に基づく、パターン仕様の加重係数である。別の実施形態によれば、加重係数は、例えば変数仕様に割り当てられた重要性に基づく、変数仕様の加重係数である。例えば、出発日の満足度に関連する変数仕様はプログラマにとって高い重要性を有してよく、したがって、1に近い加重値が割り当てられてよく、車両のレンタルの満足度に関連する変数仕様は低い重要性を有してよく、したがって、0に近い加重値が割り当てられてよい。1つの実施形態では、パターン仕様または変数仕様あるいはその両方への加重の適用は省略されるか、または1に設定されてよい。同様に、1つの実施形態では、加重の値は構成可能であってよい。
ステップ(506)で、対照性しきい値が割り当てられる。実施形態例では、対照性しきい値は、0~1の範囲内の値として選択され、0~1の範囲内の任意のインクリメント(例えば、10分の1、100分の1など)を含む。対照性しきい値は、プログラマによって、またはAIプラットフォーム(150)によって選択されてよい。その後、実施形態例では加重積として上で説明された対照性パターンの値が対照性しきい値を満たす(例えば、対照性しきい値以上である)かどうかが判定される(508)。判定(508)に対する肯定的応答の後に、対話システムの性能を改善するために、構文解析されたイベントに関連して、仮想エージェントに対する改良に対応する出力を作成することが続く(510)。ステップ(508)での判定に対する否定的応答の後に、続行するための1つまたは複数の選択肢の決定(512)が続く。選択肢は、例えば、新しい対照性しきい値を割り当て、ステップ(508)に戻ることと、別のパターン仕様または変数仕様あるいはその両方を選択し、図4のフローチャート(400)に戻ることと、プロセスを終了することとを含む。
対照性しきい値は、例えば満足度および複雑さを含む、さまざまな要因に基づくことができる。満足度は、検索された特性が入力された会話のトレースと一致する程度を計算することを含み、1つの実施形態では、入力セット間の差異を強調することを最大化する。加えて、満足度は、入力トレースに対してLTL特性の一致および不一致をチェックすることを含む。対照性評価の複雑さの側面は、より少ない命題を含むことに関して低複雑度の仕様への動機を与え、検索された特性の範囲内で簡潔さおよび解釈可能性も促進する。
図3~5のフローチャートに示された方法を含む、本明細書に記載された例示的な方法は、トレースのセット間の差異を表す時間的特性の形態で出力を作成する。実施形態例によれば、列挙されたステップに従って、計画言語(例えば、PDDL)などの、トレースがどのように生成されるかを説明する領域知識の使用可能性を評価するという決定が行われる。前述したように、実施形態例は、認識された重要性に応じて加重値をパターン仕様および変数仕様に割り当てることを含む。PDDLは、計画問題を記述するために一般に使用される計画言語の一例である。PDDLは、開始状態および目標状態を含む一連の状態を伴う環境から成る。このモデルは、開始状態から目標状態までの経路(例えば、トレース)を見つけることを目指す。したがって、本明細書において示されたように、グループの挙動間の特徴的なパターンが自動的に抽出され、対応する対照性の説明が検索され、選択的な変更のためにチャットボット・プラットフォームに適用される。
本明細書において示され、説明された実施形態は、特に対話システムの性能を改善することに関連して、会話の対話記録を処理して分析するために、インテリジェントなコンピュータ・プラットフォームと共に使用するためのコンピュータ・システムの形態であってよい。プロセッシング・ユニットは、メモリに動作可能に結合され、人工知能プラットフォームと通信する。
図1~5に示された会話ログ・ファイルおよび記録の処理の態様は、図1に示されて説明されたように、1つまたは複数の機能的ツールを使用する。機能的ツール(152)、(154)、(156)、(158)、および(164)、ならびにそれらに関連する機能の態様は、単一の位置でコンピュータ・システム/サーバにおいて具現化されてよく、または1つの実施形態では、計算リソースを共有するクラウドベースのシステム内で構成されてよい。図6を参照すると、図3~5に関して上で説明されたプロセスを実施するためにクラウドベースのサポート・システムと通信するコンピュータ・システム/サーバ(602)(以下では、ホスト(602)と呼ばれる)の例を示すブロック図(600)が提供されている。ホスト(602)は、他の多数の汎用または専用のコンピューティング・システム環境または構成と共に動作可能である。ホスト(602)と共に使用するのに適することがあり得る周知のコンピューティング・システム、環境、または構成、あるいはその組み合わせの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、ならびにこれらのシステム、デバイス、およびこれらと同等のもののいずれかを含むファイル・システム(例えば、分散ストレージ環境および分散クラウド・コンピューティング環境)が挙げられるが、これらに限定されない。
ホスト(602)は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含んでよい。ホスト(602)は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境で実行されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置されてよい。
図6に示されているように、ホスト(602)は、汎用コンピューティング・デバイスの形態で示されている。ホスト(602)のコンポーネントは、1つまたは複数のプロセッサまたはプロセッシング・ユニット(604)(例えば、ハードウェア・プロセッサ)、システム・メモリ(606)、およびシステム・メモリ(606)を含むさまざまなシステム・コンポーネントをプロセッサ(604)に結合するバス(608)を含んでよいが、これらに限定されない。バス(608)は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、およびさまざまなバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、複数の種類のバス構造のいずれかのうちの1つまたは複数を表す。そのようなアーキテクチャの例としては、ISA(Industry Standard Architecture)バス、MCA(MicroChannel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnects)バスが挙げられるが、これらに限定されない。ホスト(602)は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、ホスト(602)によってアクセスできる任意の使用可能な媒体であってよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体を含む。
メモリ(606)は、ランダム・アクセス・メモリ(RAM:random accessmemory)(630)またはキャッシュ・メモリ(632)あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。単に例として、取り外し不可、不揮発性の磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために、ストレージ・システム(634)を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、1つまたは複数のデータ媒体インターフェースによってバス(608)に接続することができる。
例えば、一連の(少なくとも1つの)プログラム・モジュール(642)を含むプログラム/ユーティリティ(640)がメモリ(606)に格納されるが、これに限定されず、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの組み合わせの各々は、ネットワーク環境の実装を含んでよい。プログラム・モジュール(642)は、一般に、実施形態の機能または方法あるいはその両方を実行して、論理(例えば、時相論理)を活用し、自動化された仮想対話エージェントの性能を改善することができる。例えば、プログラム・モジュールのセット(642)は、図1で説明されたツール(152)、(154)、(156)、(158)、および(164)を含んでよい。
ホスト(602)は、キーボード、ポインティング・デバイスなどの1つまたは複数の外部デバイス(614)、ディスプレイ(624)、ユーザがホスト(602)と情報をやりとりできるようにする1つまたは複数のデバイス、またはホスト(602)が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組み合わせと通信してもよい。そのような通信は、入出力(I/O:Input/Output)インターフェース(622)を介して行うことができる。さらに、ホスト(602)は、ローカル・エリア・ネットワーク(LAN:local area network)、一般的な広域ネットワーク(WAN:widearea network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組み合わせなどの1つまたは複数のネットワークと、ネットワーク・アダプタ(620)介して通信することができる。図示されているように、ネットワーク・アダプタ(620)は、バス(608)を介してホスト(602)の他のコンポーネントと通信する。実施形態では、分散ファイル・システム(図示されていない)の複数のノードは、I/Oインターフェース(622)を介して、またはネットワーク・アダプタ(620)を介して、ホスト(602)と通信する。図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、ホスト(602)と併用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
本文書では、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」という用語は、一般に、RAM(630)、キャッシュ(632)、ならびに取り外し可能ストレージ・ドライブおよびハード・ディスク・ドライブに取り付けられたハード・ディスクなどのストレージ・システム(634)を含むメイン・メモリ(606)などの媒体を指すために使用される。
コンピュータ・プログラム(コンピュータ制御論理とも呼ばれる)は、メモリ(606)に格納される。コンピュータ・プログラムは、ネットワーク・アダプタ(620)などの通信インターフェースを介して受信されてもよい。そのようなコンピュータ・プログラムは、実行された場合、コンピュータ・システムが、本明細書で説明された本実施形態の特徴を実行できるようにする。特に、コンピュータ・プログラムは、実行された場合、プロセッシング・ユニット(604)が、コンピュータ・システムの機能を実行できるようにする。したがって、そのようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ダイナミックまたはスタティック・ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-onlymemory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasableprogrammable read-only memoryまたはフラッシュ・メモリ)、磁気ストレージ・デバイス、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波または他の自由に伝搬する電磁波、導波管または他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本実施形態の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体を実行するか、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行するか、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行するか、あるいはリモート・コンピュータ上またはサーバもしくはサーバのクラスタ上で全体を実行してよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、実施形態の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路をカスタマイズすることによって、コンピュータ可読プログラム命令を実行してよい。
実施形態では、ホスト(602)はクラウド・コンピューティング環境のノードである。従来技術において知られているように、クラウド・コンピューティングは、最小限の管理上の手間またはサービス・プロバイダとのやりとりで迅速にプロビジョニングおよび解放することができる、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含んでよい。そのような特徴の例は次のとおりである。
オンデマンドのセルフ・サービス:クラウドのコンシューマは、サーバの時間、ネットワーク・ストレージなどの計算機能を、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的に、一方的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する標準的なメカニズムを通じてアクセスされる。
リソース・プーリング:プロバイダの計算リソースは、マルチテナント・モデルを使用して、複数のコンシューマにサービスを提供するためにプールされており、さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。コンシューマは通常、提供されるリソースの正確な場所に関して制御することも知ることもないが、より高いレベルの抽象化では、場所(例えば、国、州、またはデータセンター)を指定できることがあるという点で、場所に依存しないという感覚がある。
迅速な弾力性:機能は、迅速かつ弾力的に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できるこれらの機能は、コンシューマにとって、無制限であるように見えることが多く、任意の量をいつでも購入できる。
測定されるサービス:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した任意の抽象化のレベルでの計測機能を活用することによって、リソースの使用を自動的に制御および最適化する。リソースの使用状況は、監視、制御、および報告され、利用されるサービスのプロバイダとコンシューマの両方に透明性を提供することができる。
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションを使用する機能である。それらのアプリケーションに、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェースを介して、さまざまなクライアント・デバイスからアクセスできる。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能をも含む、基礎となるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):コンシューマに提供されるこの機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、コンシューマが作成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎となるクラウド・インフラストラクチャを管理することも制御することもないが、展開されたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):コンシューマに提供されるこの機能は、処理、ストレージ、ネットワーク、および他の基本的な計算リソースのプロビジョニングする機能であり、コンシューマは、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを展開して実行できる。コンシューマは、基礎となるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御することができる。
展開モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。このクラウド・インフラストラクチャは、この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般市民または大規模な業界団体に利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データおよびアプリケーションのポータビリティを可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって固有の実体を維持したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合体である。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。
ここで図7を参照すると、例示的なクラウド・コンピューティング・ネットワーク(700)が示されている。図に示されているように、クラウド・コンピューティング・ネットワーク(700)は、クラウドのコンシューマによって使用されるローカル・コンピューティング・デバイスが通信し得る1つまたは複数のクラウド・コンピューティング・ノード(710)を含むクラウド・コンピューティング環境(750)を含む。これらのローカル・コンピューティング・デバイスの例として、パーソナル・デジタル・アシスタント(PDA)または携帯電話(754A)、デスクトップ・コンピュータ(754B)、ラップトップ・コンピュータ(754C)、または自動車コンピュータ・システム(754N)、あるいはその組み合わせが挙げられるが、これらに限定されない。ノード(710)内の個別のノードは、互いにさらに通信してよい。ノード710は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境(700)は、クラウドのコンシューマがローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。図7に示されたコンピューティング・デバイス(754A~N)の種類は、例示のみが意図されており、クラウド・コンピューティング環境(750)は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
ここで図8を参照すると、図7のクラウド・コンピューティング・ネットワークによって提供される機能的抽象レイヤのセット(800)が示されている。図8に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図に示されているように、ハードウェアおよびソフトウェア・レイヤ(810)、仮想化レイヤ(820)、管理レイヤ(830)、およびワークロード・レイヤ(840)、ならびに対応する機能が提供されている。
ハードウェアおよびソフトウェア・レイヤ(810)は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム(一例を挙げると、IBM(R)zSeries(R)システム)、RISC(Reduced Instruction Set Computer)アーキテクチャ・ベース・サーバ(一例を挙げると、IBM pSeries(R)システム)、IBM xSeries(R)システム、IBM BladeCenter(R)システム、ストレージ・デバイス、ネットワークおよびネットワーク・コンポーネントが挙げられる。ソフトウェア・コンポーネントの例としては、ネットワーク・アプリケーション・サーバ・ソフトウェア(一例を挙げると、IBM WebSphere(R)アプリケーション・サーバ・ソフトウェア)、およびデータベース・ソフトウェア(一例を挙げると、IBM DB2(R)データベース・ソフトウェア)が挙げられる(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの管轄区域で登録されているInternational Business Machines Corporationの商標である)。
仮想化レイヤ(820)は、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントなどの仮想的実体を提供できる抽象レイヤを備える。
1つの例では、管理レイヤ(830)は、リソース・プロビジョニング、計測および価格設定、ユーザ・ポータル、サービス・レイヤ管理、ならびにSLA計画および実行の機能を提供してよい。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよび他のリソースの動的調達を行う。計測および価格設定は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドのコンシューマおよびタスクの識別情報の検証を行うと共に、データおよび他のリソースの保護を行う。ユーザ・ポータルは、クラウド・コンピューティング環境へのアクセスをコンシューマおよびシステム管理者に提供する。サービス・レイヤ管理は、必要なサービス・レイヤを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス・レイヤ合意(SLA:Service Level Agreement)計画および実行は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
ワークロード・レイヤ(840)は、クラウド・コンピューティング環境が利用できる機能の例を示している。このレイヤから提供されるワークロードおよび機能の例としては、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想クラスルーム教育の配信、データ解析処理、トランザクション処理、ならびに仮想対話エージェント管理が挙げられるが、これらに限定されない。
本明細書では、自然言語入力を評価し、対応する通信において質問を検出し、会話ログの記録を処理して、回答またはサポートするコンテンツあるいはその両方を使用して検出された質問を解決し、対話システムの性能を改善するために使用される出力を生成するためのシステム、方法、装置、およびコンピュータ・プログラム製品が開示されているということが理解されるであろう。
本実施形態のうちの特定の実施形態が示されて説明されたが、本明細書の内容に基づいて、実施形態およびより広い態様から逸脱することなく変更および修正が行われてよいということが、当業者にとって明らかであろう。したがって、添付の特許請求の範囲は、実施形態の真の思想および範囲内にあるすべてのそのような変更および修正を、その範囲内に包含する。さらに、実施形態が添付の特許請求の範囲のみによって定義されるということが理解されるべきである。導入された請求項要素に特定の数が意図される場合、そのような意図が特許請求の範囲内で明示的に記載され、そのような記載がない場合、そのような制限は存在しないということが、当業者によって理解されるであろう。非限定的な例に関する理解の補助として、以下の添付の特許請求の範囲は、請求項要素を導入するための「少なくとも1つ」および「1つまたは複数」という導入的語句の使用を含んでいる。しかし、そのような語句の使用は、同じ請求項が導入的語句「1つまたは複数」または「少なくとも1つ」および「a」または「an」などの不定冠詞を含んでいる場合でも、不定冠詞「a」または「an」による請求項要素の導入が、そのような導入された請求項要素を含んでいるいずれかの特定の請求項を、1つのそのような要素のみを含んでいる実施形態に制限するということを意味すると解釈されるべきではなく、同じことが、特許請求の範囲における定冠詞の使用にも当てはまる。
本実施形態は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。加えて、本実施形態の選択された態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアの態様またはハードウェアの態様あるいはその両方を組み合わせる実施形態の形態をとってよく、これらはすべて、本明細書では、一般に「回路」、「モジュール」、または「システム」と呼ばれることがある。さらに、本実施形態の態様は、プロセッサに本実施形態の態様を実行させるためのコンピュータ可読プログラム命令を含むコンピュータ可読ストレージ媒体に具現化されたコンピュータ・プログラム製品の形態をとってよい。このようにして具現化された、開示されたシステム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせは、意図の識別および識別された意図に関連する対応する応答を使用して質問を解決するために、人工知能プラットフォームの機能および動作を改良するよう機能する。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ダイナミックまたはスタティック・ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、磁気ストレージ・デバイス、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波または他の自由に伝搬する電磁波、導波管または他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本実施形態の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体を実行するか、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行するか、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行するか、あるいはリモート・コンピュータ上またはサーバもしくはサーバのクラスタ上で全体を実行してよい。後者のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続を、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行うことができる。一部の実施形態では、本実施形態の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路をカスタマイズすることによって、コンピュータ可読プログラム命令を実行してよい。
本実施形態の態様は、本明細書において、実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装されるということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
また、コンピュータ可読プログラム命令は、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するように、コンピュータ実装プロセスを生成すべく、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに読み込まれ、それによって、一連の動作可能なステップを、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行させるものであってもよい。
図内のフローチャートおよびブロック図は、本実施形態のうちのさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、モジュール、セグメント、または命令の部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、指定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装されるということにも留意されたい。
本明細書では、例示の目的で特定の実施形態が説明されたが、実施形態の思想および範囲から逸脱することなくさまざまな変更が行われてよいということが理解されよう。特に、さまざまなコンピューティング・プラットフォームによって、または複数のデバイスにわたって、自然言語処理が実行されてよい。さらに、データ・ストレージまたはコーパスあるいはその両方が、局在するか、遠隔に存在するか、または複数のシステムにわたって分散されてよい。したがって、実施形態の保護の範囲は、以下の特許請求の範囲およびそれらと同等のもののみによって制限される。