自然言語ユーザインタフェースを漸進的に開発する装置及び方法
【課題】迅速かつ柔軟な自動応答の生成装置及び方法を提供すること。
【解決手段】自然言語ユーザインタフェース生成装置は、ユーザ端末からの会話文の入力に対応した会話文の出力における会話の状況、会話の動作及びそれらの関係を示すコンピュータ上での処理動作をノードとエッジで表現する知識構造の記憶手段と、知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答手段とを備え、応答手段は、対話制御手法を実施するために、ノードに属する要素のうち少なくとも二つの要素の間の関係において、処理動作の流れを示す関係及び処理動作に必要な関係を対話ルールとして記憶する対話構造記憶手段と、記憶した要素に対して知識構造における関連付けの有無を判別する判別手段と、判別手段による判別の結果に応じて、対話構造記憶手段に記憶された二つの要素の間の関係を変更する変更手段と、を備える。
【解決手段】自然言語ユーザインタフェース生成装置は、ユーザ端末からの会話文の入力に対応した会話文の出力における会話の状況、会話の動作及びそれらの関係を示すコンピュータ上での処理動作をノードとエッジで表現する知識構造の記憶手段と、知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答手段とを備え、応答手段は、対話制御手法を実施するために、ノードに属する要素のうち少なくとも二つの要素の間の関係において、処理動作の流れを示す関係及び処理動作に必要な関係を対話ルールとして記憶する対話構造記憶手段と、記憶した要素に対して知識構造における関連付けの有無を判別する判別手段と、判別手段による判別の結果に応じて、対話構造記憶手段に記憶された二つの要素の間の関係を変更する変更手段と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自然言語ユーザインタフェースを漸進的に開発する装置及び方法に関する。より具体的には、自然言語によるユーザのメッセージに対応して自動的に応答するプログラム等において、ユーザインタフェースを漸進的に開発する装置及び方法に関する。
【背景技術】
【0002】
従来、自然言語対話を用いて、自然言語によるユーザのメッセージに対応して自動的に応答するコンピュータ・プログラムとして、対話エージェント、おしゃべりボット、人工無脳、自動対話、自然言語ユーザインタフェース、音声対話等が知られている。一例としては、利用者が入力したテキスト等に対応して自然言語の対話を行うチャットボットと言われるプログラムが存在する。これらは、ユーザが入力したメッセージからキーワードを抽出し、データベース中のワードにマッチした応答を行うプログラムである。ユーザによって入力された情報を状況特定データと照合して入力された情報に対応する状況特定データを判断し、入力された情報に対応する状況特定データに得点を加算して状況特定データが属する状況データの評価点数を集計する。そして、評価点数の集計状況に応じて入力された情報に対して応答すべき状況データを判断して、応答出力生成手段により応答すべき状況データに関連付けられた出力形式に従って応答データを生成して出力処理するシステムが開示されている(特許文献1参照)。
【0003】
また、従来の対話エージェント技術では、複雑な対話スクリプトについては、応答動作を個別にプログラムし、単純な対話スクリプトについては、人間の発話を機械の制御データに変換する等、データを準備するだけでよい枠組みが考えられてきた(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−172280号公報
【特許文献2】特開2003−116182号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の自然言語対話ユーザインタフェース技術においては、十分に話題を絞り込み、それに応じた適切な対話制御手法と対話ルール記述方法を設計する必要があった。この必要性が満たされない場合、例えば、話題に適合しない対話制御手法を設計すると、対話ルール群の規模が膨大になる、自然言語解析処理の能力不足により確認のための対話ばかりになってしまう等、メンテナンスや実行に支障が出る場合があった。この必要性を満たすために、話題ごとに異なる対話制御手法を備える自然言語対話システム等を用意することも可能であるが、このようなシステムにおいては、複数の制御手法を含むシステムを構成するためのコストが必要であることは明らかであり、さらにシステムを更新するためには、蓄積された対話ルールを再構築又は変換するコストが必要となるという課題があった。
【0006】
換言すれば、従来技術又はその組み合わせにおいては、自然言語対話ユーザインタフェースを長期間運用すると、個別の対話ルール等の自然言語解析処理の能力向上を図ったとしても、システム全体としてのメンテナンス及び実行コストのために、全体性能の向上のメリットを十分には享受できなかった。従って、対話の柔軟性や対話のスムーズさを実現することに関して、さらなる改良が必要であった。
【0007】
本発明は、上記課題を解決するために、システムの活動によってその構成要素を外部から取り込む等の手法を有する、自己創出性を備えた知識構造を用いて、対話ルールの構築コスト及び変換コストを削減し、自然言語対話におけるユーザへの応答を迅速にすることを目的とする。
【0008】
さらに、本発明は、既存の対話ルールデータに従来の解釈が可能なまま新たな意味関係を定義することのできる知識構造を実装し、対話の柔軟性や対話のスムーズさを向上することを目的とする。
【課題を解決するための手段】
【0009】
発明者は、知識構造に含まれる頂点だけでなく辺をも修飾する辺を表現しうる拡張意味ネットワークを備え、柔軟性と拡張性に優れた知識構造を用いる対話エージェントの開発に成功し、またこの対話エージェントのためのスクリプト作成を支援する方法及びプログラムの開発にも成功した結果、2008年01月18日付け出願の特願2008−009458、発明の名称「自然言語対話エージェントの知識構造構成方法、知識構造を用いた自動応答の作成方法及び自動応答作成装置」及び2008年03月18日付け出願の特願2008−068786、発明の名称「自然言語対話エージェントのためのスクリプト作成支援方法及びプログラム」を出願するに至った。さらに、発明者は、自動的な応答を作成するために、状況と動作の関係を表現しうる拡張意味ネットワークの知識構造を用いて、ユーザからのメッセージにコンピュータが迅速に応答できる自然言語対話システムの開発に成功し、このシステムのための対話制御手法の開発を進展させ、本発明の方法及び装置を開発するに至った。
【0010】
本発明では、以下のような解決手段を提供する。
【0011】
(1) 自然言語ユーザインタフェースを生成する装置であって、ユーザ端末からの会話文の入力に対応した会話文を出力する対話エージェントシステムにおいて会話の状況、会話の動作及びそれらの関係を示すコンピュータ上での処理動作をノードとエッジで表現する知識構造の記憶手段と、前記知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答手段とを備え、前記応答手段は、前記対話制御手法を実施するために、前記ノードに属する要素のうち少なくとも二つの前記要素の間の関係において、前記処理動作の流れを示す関係及び前記処理動作に必要な関係を前記対話ルールとして記憶する対話構造記憶手段と、前記記憶した要素に対して前記知識構造における関連付けの有無を判別する判別手段と、前記判別手段による判別の結果に応じて、前記対話構造記憶手段に記憶された前記二つの要素の間の関係を変更する変更手段と、を備える装置。
【0012】
本発明に係る自然言語ユーザインタフェースを生成する装置は、例えば、コンピュータを用いて自然言語ユーザインタフェースを生成するプログラム等を実施することにより、具現化することが可能である。自然言語ユーザインタフェースは、例えば対話スクリプト等の形態で提供することができる。
【0013】
本発明に係る自然言語ユーザインタフェースを生成する装置は、知識構造の記憶手段として、詳細を後述する拡張意味ネットワークを用いることができる。
【0014】
本発明に係る自然言語ユーザインタフェースを生成する装置は、詳細を後述する対話スクリプト記述言語を用いることにより、対話ルールの構築・変換コストを削減することができる。
【0015】
本発明に係る自然言語ユーザインタフェースを生成する装置は、さらに、拡張意味ネット知識構造のエッジ修飾機能を利用して、既存対話ルールデータに対する従来の解釈を可能としたまま、新たな意味関係を定義することができる。具体的には、新たな意味解釈を含む、対話ルールデータに対する解釈は、次のような対話制御手法を用いて、得ることができる。
[A]有限状態(finite state)ベースの対話制御手法
[B]フレーム(frame)ベースの対話制御手法
[C]エージェント(agent)ベースの対話制御手法
【0016】
これらの対話制御手法は、個々に対話ルールと関連付けられ、入力された対話データに対して、共通の知識構造を用いて同時に実行することが可能である。すなわち、本発明に係る自然言語ユーザインタフェースを生成する装置においては、単一の知識構造中に、同一の対話ルールデータに対して、異なる種類の新たな対話制御エンジンが解釈可能な関係情報を、矛盾なく表現することができる。
【0017】
本発明に係る自然言語ユーザインタフェースを生成する装置は、所定の対話ルール及び所定の対話制御手法を予め関連付けて含む応答手段とし、上述の[A]、[B]又は[C]のいずれかの対話処理手法を含む応答手段を、少なくとも二つ用いて、自然言語による対話を行うことができる。従って、単一の対話制御手法を用いる場合と比較して、本発明においては、自然言語対話におけるユーザへの応答をより迅速かつ柔軟にすることができる。
【0018】
このようにすることで、本発明においては、異なる複数の対話制御手法に対して単一の知識構造が対応できるので、それらを同時に利用するシステムを構築・運用するコストを軽減することが可能になる。例えば、最新の自然言語処理解析技術を用いた対話制御手法を、本発明に係る自然言語ユーザインタフェースを生成する装置に導入する場合でも、導入される新手法と従来技術による対話制御手法とを共存できるので、新規手法を容易に導入することが可能になる。
【0019】
本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造を作成する記憶部は、コンピュータ資源に含まれ、主記憶又は仮想記憶として用いうる半導体メモリ等の電気的記憶手段、磁気ディスク等の磁気的記憶手段、光磁気ディスク等の光学的記憶手段等を適宜含む。
【0020】
本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造の構成方法は、状況と動作の両者を要素とする言語の集合である知識構造を用意すること、及び典型的には状況を始点とし動作を終点とする関係もまた前記知識構造の要素でありうることにおいて、従来技術と共通点を有する。すなわち、公知のグラフ構造等を用いて、従来技術に係る始点と終点とにより関係を記述する手法は、本発明においても同様に用いることができる。ここに、グラフ構造を用いる知識構造の表現手法においては、始点及び終点は「頂点」又は「ノード」等と呼ばれ、始点から終点への関係は「辺」又は「エッジ」等と呼ばれる。
【0021】
従来技術に係るグラフ理論においては、始点又は終点の集合を用意し、始点及び終点の組み合わせを用いて辺の集合を用意する。すなわち、辺は始点から終点に向かって定義される。これに対して、本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造に属する要素の関連付けは、頂点と辺を特に区別せずに要素を用意し、二つの要素の組み合わせにおいて、始点及び終点が共に空要素である組み合わせを頂点として扱い、始点及び終端が共に空要素でない組み合わせを辺として扱う。すなわち、知識構造に属する二つの要素を組み合わせることにより、当該組み合わせが頂点及び辺として取り扱われる。
【0022】
拡張意味ネットワークは、このようにして二つの要素を組み合わせることによりグラフ構造の頂点又は辺を表す手法である。
【0023】
本発明に係る自然言語ユーザインタフェースを生成する装置が用いる知識構造においては、知識構造に属する二つの要素を組み合わせれば頂点でも辺でもありうる。具体的には、終点は状況でもよく動作でもよく、あるいは状況と動作の関係でもよい。この点において、本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造に属する要素の関連付けは、従来技術にない特徴を有する。すなわち、状況と状況の関連付け、状況と動作の関連付け、動作と動作の関連付け、さらにこれらの関連付けを一つの関係とする動作と一つの関係との関連付け等を実施することが可能になる。従って、本発明に係る自然言語ユーザインタフェースを生成する装置においては、従来の意味ネットワークに加えて、拡張意味ネットワークを提供することにより、知識構造に含まれる要素同士の関連付け及び要素と関係の関連付け等を柔軟に実施することが可能になる。
【0024】
本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造をグラフ構造を用いて表現することにおいては、従来技術と同様の始点から終点への関連付けに加えて、関連付けを表す辺を修飾する辺を表現しうる。すなわち、辺の終点は辺でもありうる。このような、従来技術を拡張した拡張意味ネットワークを用いて、本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造の構成方法は、意味又は記憶の構造を表すための知識構造を構成しうる。
【0025】
(2) 前記知識構造の記憶手段は、前記状況、前記動作及び前記関係に関するクラスの前記要素として、処理のクラス、データのクラス、変数のクラス、属性のクラスを含み、前記知識構造は会話の場、会話履歴、会話文脈を要素に有する集合である談話構造を含み、前記変数のクラスは前記会話の場を始点とする関連付けを有し、前記属性のクラスは修飾対象と同一の始点との関連付け及び終点としての修飾対象との関連付けを有し、前記処理のクラスは前記知識構造に属する要素を始点及び終点とする関連付けを有し、前記データのクラスは静的データとの関連付けを有する、(1)に記載の自然言語ユーザインタフェースを生成する装置。
【0026】
処理のクラス、データのクラス、変数のクラス、及び属性のクラスはいずれも、グラフ構造における頂点として扱われる。処理のクラスは、具体的な処理を実施するための処理頂点を含む。処理のクラスに属する処理頂点の実体、すなわち処理のインスタンスは、コンピュータ処理可能な文字情報に対する処理を適宜含む。
【0027】
データのクラスは、静的にデータを格納するためのデータ頂点を含む。データのインスタンスは、コンピュータ処理可能な文字コードの集まり等を適宜含む。
【0028】
変数のクラスは、動的データの参照先を示す変数頂点を含む。変数のインスタンスは、自然言語ユーザインタフェースとしての対話スクリプトの実行の諸段階における変数を適宜含む。
【0029】
属性のクラスは、対話スクリプト要素に意味を与える属性頂点を適宜含む。属性のインスタンスは、対話スクリプト要素に含まれる文字情報等の上位概念等を適宜含む。具体的には、本発明に係る自然言語ユーザインタフェースとしての対話スクリプトの作成方法は、例えば、同一の用語「時計」に対する属性のインスタンスとして、「時間を計測するための道具」又は「装飾目的の贅沢品」等を適宜関連付けてもよく、それぞれの属性のインスタンスに基づいて、対話スクリプトにおける前記用語「時計」の意味を変化させうる。
【0030】
また、処理の流れの関係、及び処理に必要な関係はいずれも、グラフ構造における辺として扱われる。
処理の流れの関係は、始点と終点とを関連付けるフロー辺を含む。フロー辺は終点を修飾するために用いられる。
処理に必要な関係は、処理に必要な情報を示す属性辺を含む。属性辺は、フロー辺に意味を与えるために用いられる。すなわち、属性辺はフロー辺を修飾するために用いられる。より具体的には、フロー辺を用いて示される関係に対して、属性辺を用いて前記関係の全体が特定の情報源からの伝聞であること、すなわち話者と情報源との関係を用いて前記関係を修飾してもよい。
本発明に係る自然言語ユーザインタフェースとしての対話スクリプトの作成方法は、グラフ構造における頂点及び辺を用い、これらの関係を修飾するステップを用いることにより、間接話法等の複雑な対話スクリプトの作成が可能である。
【0031】
談話構造は、特に、コンピュータ処理可能な文字コードを用いて表現される会話文脈を要素に有する集合を含む。
会話の場は、具体的には、パーソナルコンピュータ、携帯電話等のネットワーク端末を介して接続した複数のユーザが相互に文字情報又は音声情報等の交換を実質的にリアルタイムに実施しうる、チャットルームサービスやネットワーク会議システム等のサービスを含む。
【0032】
(3) 前記応答手段は、有限状態ベースの対話制御手法、フレームベースの対話制御手法又はエージェントベースの対話制御手法のいずれかを前記対話制御手法として実施し、前記有限状態ベースの対話制御手法は、前記対話制御手法をクラスを用いて記述されるスクリプトである対話スクリプトとして記述し、前記フレームベースの対話制御手法は、前記対話制御手法を意味フレームとして記述し、前記エージェントベースの対話制御手法は、前記対話制御手法をエージェント動作として記述する、(1)に記載の自然言語ユーザインタフェースを生成する装置。
【0033】
前述のように、応答手段に含まれる対話制御手法としては、有限状態ベースの対話制御手法、フレームベースの対話制御手法、及びエージェントベースの対話制御手法が挙げられる。
【0034】
有限状態ベースの対話制御手法は、対話制御手法を、クラスを用いて記述されるスクリプトである対話スクリプトとして、記述することができる。例えば、有限状態ベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、予め所定の処理頂点、辺修飾属性及びフロー辺を用意し、ユーザからの入力に応じて所定の動作を実施することができる。
【0035】
フレームベースの対話制御手法は、対話制御手法を意味フレームとして記述することができる。例えば、フレームベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、意味フレームの構成要素等を辿ることを表すエッジ、及び意味フレームのスロット等を表すノードを用いて、拡張意味ネットワークの形式で格納される知識構造にアクセスすることができる。
【0036】
エージェントベースの対話制御手法は、対話制御手法をエージェント動作として記述することができる。例えば、エージェントベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、話題を絞り込む属性概念等を辿ることを表すエッジ、及び分類概念等を表すノードを用いて、拡張意味ネットワークの形式で格納される知識構造にアクセスすることができる。
【0037】
このようにすることで、本発明においては、複数の応答手段を用いて自然言語対話タスクを実行することで、自然言語対話におけるユーザへの応答をより迅速かつ柔軟にすることができる。さらに、本発明においては、異なる複数の対話制御手法に対して単一の知識構造が対応できるので、それらを同時に利用するシステムを構築・運用するコストを軽減することが可能になる。
【0038】
(4) ユーザ端末からの会話文のデータ入力を受け付ける会話文入力受付手段をさらに備え、前記応答手段はそれぞれの判別手段において、前記受け付けられた会話文の内容に応じて、前記関連付けの有無の判別を行う、(1)に記載の自然言語ユーザインタフェースを生成する装置。
【0039】
会話文のデータ入力を受け付ける会話文入力受付手段は、ユーザ端末から受信した会話文を入力として受け付ける。この会話文は、文字コードの集まり、画像としての文字情報、デジタル化された音声等を適宜含む。文字コードの集まりは、ユーザ端末が備えるキーボード等を用いてユーザが入力して送信する文字コードを含む。画像としての文字情報から文字コードへの変換、又はデジタル化された音声から文字コードへの変換は、文字認識又は音声認識として適宜設計しうる。文字コードに変換された会話文に含まれる単語を抽出することにおいては、当技術分野の周知技術である形態素解析等を用いることができる。
【0040】
本発明に係る自然言語ユーザインタフェースを生成する装置は、会話文入力受付手段を備えることにより、後続の対話スクリプト作成に用いる文字コードとして、会話文を受け付けることができる。
【0041】
ユーザによる用語の入力のための手段は、適宜、ネットワーク端末等を用いうるが、これに限らず、携帯電話やネットワーク接続可能なデジタルカメラ等でもよい。
【0042】
本発明に係る自然言語ユーザインタフェースを生成する装置が会話文入力受付手段を備えることにより、前述の判別手段は、記憶した要素に加えて、受け付けられた会話文の内容に対して知識構造における関連付けの有無を判別することが可能である。すなわち、判別手段は、当該会話文の内容に含まれる単語を、知識構造記憶手段が記憶しうるクラスに属する要素として扱い、当該要素に対して知識構造における関連付けの有無を判別することが可能である。
【0043】
このようにすることで、本発明に係る自然言語ユーザインタフェースを生成する装置は、新たに会話文として受け付けたデータ入力を、知識構造における関連付けの有無の判別に用いることができる。すなわち、本発明に係る自然言語ユーザインタフェースを生成する装置は、知識構造に記憶した処理のクラスに属する応答手段を用いて、受信した会話文を処理できる。
【0044】
処理のクラスに属する応答手段は、例えば、特定のキーワードにヒットすること、任意のキーワードにヒットすること、選択肢に分岐すること、及びユーザが送信した文字情報を変数に保存すること等を適宜含むことができる。処理のクラスに属する応答手段を用いて受信した用語を処理することは、受信した用語を始点とし、この始点と関連付けうる終点として処理頂点を決定することを含む。具体的には、状況を特定するための用語を処理するための文字列処理関数等を実行することを含む。
【0045】
処理の結果の成功又は失敗を判別することは、決定した処理頂点において受信した状況を特定するための用語が処理できないことを失敗と判別することを含む。これに限らず、文字列処理関数等を予め用意し、それぞれの文字列処理関数ごとに処理しうる文字情報を限定してもよい。具体的には、標準語を用いて応答する文字列処理関数及び方言を用いて応答する文字列処理関数等を予め用意する場合に、ユーザが方言を用いる発言を送信することに応答して、標準語の文字列処理関数を処理頂点として用語を処理することを失敗と判定してもよく、方言の文字列処理関数を処理頂点として用語を処理することを成功と判定してもよい。
【0046】
本発明に係る自然言語ユーザインタフェースを生成する装置は、受信した用語を処理するための応答手段を選択することにより、文字列処理のための機能を分類した応答手段等を用意し、効率的に対話スクリプトを作成することができる。さらに、処理結果を判別することにより、当該用語に対する処理の成功又は失敗を判別しうる。
【0047】
本発明に係る自然言語ユーザインタフェースを生成する装置は、応答手段を決定することにおいては、ランダムな選択規則、最初又は最後に用いられた応答手段を選択する規則、最も以前又は最近に用いられた応答手段を選択する規則、談話構造と最も関連性の高い応答手段を選択する規則から選ばれる規則に基づいて選択するステップを用い、動作を特定するための用語を決定しうる。
【0048】
状況を特定するための用語は、単語、文節、文等の、拡張意味ネットワークにおける頂点又は辺に格納されうる語句であればよい。
【0049】
あるいは、本発明に係る自然言語ユーザインタフェースを生成する装置が用いることのできる拡張意味ネットワークは、用語の実体をインスタンスとして扱い、インスタンスとして扱う用語のクラスを定義して当該クラスを頂点又は辺に格納してもよい。これにより、用語等の実体が巨大なデータであっても、拡張意味ネットワークにおける頂点又は辺は、クラス定義の語句又は記号を表すデータでありうる。従って、本発明に係る自然言語ユーザインタフェースを生成する装置が生成可能な自動応答の作成方法は、応答を作成するためのコンピュータ・プログラムのメモリ消費量を抑えて動作を安全に維持しうる。
【0050】
また、動作を特定するための用語の決定は、談話構造と最も関連性の高い要素を選択する規則を含み、所定の規則から適宜選択しうる。これにより、本発明に係る自然言語ユーザインタフェースを生成する装置は、内容が的確な対話応答を作成できると共に、非論理的応答を含む自動応答も作成することが可能になり、ユーザの立場から見た対話応答の単調さを避けることが可能である。
【0051】
(5) 自然言語ユーザインタフェースを生成する方法であって、コンピュータに、ユーザ端末からの会話文の入力に対応した会話文を出力する対話エージェントシステムにおける会話の状況、会話の動作及びそれらの関係を示す前記コンピュータ上での処理動作をノードとエッジで表現する、知識構造の記憶ステップと、前記知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答ステップと、を含むコンピュータ・プログラムを実行させ、前記応答ステップは、前記対話制御手法を実施するために、前記ノードに属する要素のうち少なくとも二つの前記要素の間の関係において、前記処理動作の流れを示す関係及び前記処理動作に必要な関係を前記対話ルールとして記憶する対話構造記憶ステップと、前記記憶した要素に対して前記知識構造における関連付けの有無を判別する判別ステップと、前記判別ステップによる判別の結果に応じて、前記対話構造記憶ステップにおいて記憶された前記二つの要素の間の関係を変更する変更ステップと、を含む方法。
【0052】
このようにすることで、当該方法を実施することにより、(1)と同様の効果が期待できる。本発明に係る自然言語ユーザインタフェースを生成する方法は、例えば、コンピュータを用いて実行する自然言語ユーザインタフェース生成プログラムとして提供することができる。
【発明の効果】
【0053】
本発明によれば、システムの活動によってその構成要素を外部から取り込む等の手法を有する、自己創出性を備えた知識構造を用いて、対話ルールの構築コスト及び変換コストを削減し、自然言語対話におけるユーザへの応答を迅速にすることが可能な自然言語ユーザインタフェースを生成する装置及び方法を提供することができる。
また、本発明によれば、既存の対話ルールデータに従来解釈が可能なまま新たな意味関係を定義することのできる知識構造を実装し、対話の柔軟性や対話のスムーズさを向上することが可能になる。
【図面の簡単な説明】
【0054】
【図1】本発明及び従来技術の一実施形態に係る、知識構造の基本構造における要素の関係を示す図である。
【図2】本発明の一実施形態に係る自然言語ユーザインタフェース生成システムの構成を示す図である。
【図3】本発明の好適な実施形態の一例に係る、知識構造のデータ構造を表す図である。
【図4】本発明の一実施形態に係る、自然言語ユーザインタフェース生成システムによる対話スクリプト作成と知識構造との関係を示す図である。
【図5】本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置が生成する、対話エージェントの動作を説明するためのフロー図である。
【図6】本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置が生成する、応答処理の動作を説明するためのフロー図である。
【図7】本発明の一実施形態に係る、応答処理において、メッセージの処理のために実行される有限状態ベースの対話制御手法による応答モジュールの動作を説明するためのフロー図である。
【図8】本発明の一実施形態に係る、有限状態ベースの対話制御手法における対話応答のための知識構造の例を示す図である。
【図9】本発明の一実施形態に係る、有限状態ベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。
【図10】本発明の一実施形態に係る、有限状態ベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。
【図11】本発明の一実施形態に係る、有限状態ベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。
【図12】本発明の一実施形態に係る、自然言語ユーザインタフェース生成のための共通概念を例示する図である。
【図13】本発明の一実施形態に係る、有限状態ベースの対話制御手法による対話ルールの例を示す図である。
【図14】本発明の一実施形態に係る、フレームベースの対話制御手法による自然言語ユーザインタフェース530を生成する例を示す図である。
【図15】本発明の一実施形態に係る、フレームベースの対話制御手法における対話応答のための知識構造の例を示す図である。
【図16】本発明の一実施形態に係る、エージェントベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。
【図17】本発明の一実施形態に係る、エージェントベースの対話制御手法における対話応答のための知識構造の例を示す図である。
【図18】本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置の応答モジュールに含まれる対話ルールの全体像を例示する図である。
【発明を実施するための形態】
【0055】
以下、本発明の実施形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【0056】
本実施形態は、コンピュータ及びその周辺装置に適用される。本実施形態における各部は、コンピュータ及びその周辺装置が備える、ハードウェア及び該ハードウェアを制御するソフトウェアによって構成される。
【0057】
上記ハードウェアには、制御部としてのCPU(Central Processing Unit)の他、記憶部、通信装置、表示装置及び入力装置が含まれる。記憶部としては、例えば、メモリ(RAM:Random Access Memory、ROM:Read Only Memory等)、ハードディスクドライブ(HDD:Hard Disk Drive)及び光ディスク(CD:Compact Disk、DVD:Digital Versatile Disk等)ドライブが挙げられる。通信装置としては、例えば、各種有線及び無線インターフェース装置が挙げられる。表示装置としては、例えば、液晶ディスプレイ、プラズマディスプレイ等の各種ディスプレイが挙げられる。入力装置としては、例えば、キーボード及びポインティング・デバイス(マウス、トラッキングボール等)が挙げられる。
【0058】
上記ソフトウェアには、上記ハードウェアを制御するコンピュータ・プログラムやデータが含まれる。コンピュータ・プログラムやデータは、記憶部により記憶され、制御部により適宜実行、参照される。また、コンピュータ・プログラムやデータは、通信回線を介して配布されることも可能であり、CD−ROM等のコンピュータ可読媒体に記録して配布されることも可能である。
【0059】
[拡張意味ネットワークの構造]
図1は、本発明及び従来技術の一実施形態に係る、知識構造の基本構造における要素の関係を示す図である。
【0060】
まず、意味又は記憶の構造を表すためのモデルに用いられる、公知の意味ネットワークの形式について説明する。
【0061】
図1(b)は、意味ネットワークを表すグラフ構造を示す図である。辺e(93)は、始点vs(91)及び終点vd(92)で定義され、始点から終点に向かう矢印で表される。意味ネットワークは次の数式1から数式3を用いて表される形式を有する。
【数1】
【数2】
【数3】
式中、SN:意味ネットワーク(Semantic Network)
VSN:意味ネットワークに含まれる頂点(Vertex)の集合
ESN:意味ネットワークに含まれる辺(Edge)の集合
v:頂点の集合Vの要素
e:辺の集合Eの要素
vs:始点
vd:終点
である。
【0062】
数式1は、意味ネットワークが頂点の集合VSN及び辺の集合ESNで構成されることを表す。数式2は、頂点の集合VSN要素vを有することを表す。数式3は、辺の集合ESNは辺の要素eを有し、辺の要素eは始点vs及び終点vdで定義され、始点vs及び終点vdは頂点の集合VSNに属することを表す。
【0063】
次いで、本発明に係る自然言語ユーザインタフェースを生成する装置が用いることのできる拡張意味ネットワークの形式について説明する。
【0064】
図1(a)は、拡張意味ネットワークを表すグラフを示す図である。辺ee(83)は始点es(81)及び終点ed(82)で定義され、始点から終点に向かう矢印で表される。辺ei(85)は始点ec(84)を有して終点は辺ee(83)である。拡張意味ネットワークは次の形式を有する。
【数4】
式中、ASN:拡張意味ネットワーク(Augmented Semantic Network)
EASN:拡張意味ネットワークの集合
e:集合Eの要素である拡張組要素
es:始点
ed:終点
null:空要素
である。
【0065】
数式4は、二項の組を構成するes、edが要素集合EASNの要素か、あるいは空要素nullであることを表す。さらに、拡張意味ネットワークは、次の要素集合を有する。
【数5】
【数6】
【数7】
式中、ASNVE:拡張意味ネットワークASNの構成要素
Ev:拡張意味ネットワークにおける頂点の集合
Ee:拡張意味ネットワークにおける辺の集合
である。
【0066】
数式5は、拡張意味ネットワークが頂点の集合Ev及び辺の集合Eeを構成要素とすることを表す。数式6は、頂点の集合Evは拡張組要素es、edが両方とも空要素であるときの要素e(es,ed)を含むことを表す。数式7は、辺の集合Eeは拡張組要素es、edが辺の集合Evに属するときの要素e(es,ed)を含むことを表す。
【0067】
数式6及び数式7は、共通して要素e(es,ed)を用いて表現される。すなわち、拡張意味ネットワークにおいては、要素に含まれる辺の終点が終点edだけではなく辺e(es,ed)でもありうることにおいて、公知の意味ネットワークとの相違点を有する。従って、拡張意味ネットワークにおいては、図1(a)に示したように、始点ec(84)から始まる辺ei(85)の終点を辺ee(83)としうる。
【0068】
上記拡張意味ネットワーク及び公知の意味ネットワークにおいては、頂点が概念や事象を格納するために用いられ、頂点を結ぶ辺がそれらの関係の意味付けを格納するために用いられることは共通している。また、頂点や辺の具体的な意味は外部から与えることにおいても共通である。
【0069】
上記拡張意味ネットワークにおいては、辺を辺の接続対象にできるという自由度を発生させることができる。これにより、本発明に係る自然言語ユーザインタフェース生成装置10が用いることのできる対話スクリプトの作成は、知識構造に属する複数の要素を用いて、従来よりも要素間の関連付けの拡張性を広範に確保し、要素間の関連付けを用いて従来よりも柔軟な応答を生成する対話スクリプトを作成しうる。
【0070】
[頂点及び辺のクラス]
表1に、具体的な頂点及び辺のクラスを例示する。これらに限らず、本発明に係る自然言語ユーザインタフェース生成方法に用いることが可能な、グラフ構造における頂点及び辺を定義できる。表1に示す頂点及び辺はいずれも頂点のクラス、辺のクラスとして取り扱い、それぞれの実体を個別に定義することが可能である。
【0071】
処理のクラスは、具体的な処理を実施するための処理頂点を含む。処理のクラスに属する処理頂点の実体、すなわち処理のインスタンスは、コンピュータ処理可能な文字情報に対する処理を適宜含む。
データのクラスは、静的にデータを格納するためのデータ頂点を含む。データのインスタンスは、コンピュータ処理可能な文字コードの集まり等を適宜含む。
変数のクラスは、動的データの参照先を示す変数頂点を含む。変数のインスタンスは、対話スクリプトの実行の各段階における変数を適宜含む。
属性のクラスは、対話スクリプト要素に意味を与える属性頂点を適宜含む。属性のインスタンスは、対話スクリプト要素に含まれる文字情報等の上位概念等を適宜含む。具体的には、本発明に係る自然言語ユーザインタフェース生成方法は、同一の用語「時計」に対する属性のインスタンスとして、「時間を計測するための道具」又は「装飾目的の贅沢品」等を適宜関連付けてもよく、それぞれの属性のインスタンスに基づいて、対話スクリプトにおける前記用語「時計」の意味を変化させる。
また、処理の流れの関係、及び処理に必要な関係は、いずれも、グラフ構造における辺として扱われる。
【0072】
処理の流れの関係は、始点と終点とを関連付けるフロー辺を含む。フロー辺は終点を修飾するために用いられる。
処理に必要な関係は、処理に必要な情報を示す属性辺を含む。属性辺は、フロー辺に意味を与えるために用いられる。すなわち、属性辺はフロー辺を修飾するために用いられる。より具体的には、フロー辺を用いて示される関係に対して、属性辺を用いて関係の全体が特定の情報源からの伝聞であること、すなわち話者と情報源との関係を用いて関係を修飾してもよい。
【0073】
本発明に係る自然言語ユーザインタフェース生成方法は、グラフ構造における頂点及び辺を用い、これらの関係を修飾するステップを用いることにより、間接話法等の複雑な対話スクリプトの作成が可能である。
【表1】
【0074】
[自然言語ユーザインタフェース生成システム20の構成]
図2は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成システム20の構成を示す図である。自然言語ユーザインタフェース生成システム20は、自然言語ユーザインタフェース生成装置10、対話エージェント装置50、ユーザ端末60及びネットワーク38等を含む。ネットワーク38はイントラネットでもよく、インターネット等でもよい。ユーザ端末60は、パーソナルコンピュータ、携帯電話端末等のネットワーク接続可能な端末を含む。
【0075】
対話エージェント装置50は、本発明に係る自然言語ユーザインタフェース生成装置10により作成されるスクリプトを実行し、ユーザに対する自動対話を実行するために用いられる。
【0076】
自然言語ユーザインタフェース生成装置10は、応答手段110及び知識構造記憶手段160を備える。
【0077】
知識構造記憶手段160は、本発明に係る自然言語ユーザインタフェース生成方法のための知識構造を記憶するために用いられる、知識構造の記憶手段である。具体的には、知識構造記憶手段160は、対話エージェント装置50における会話の状況、会話の動作及びそれらの関係を示す、コンピュータ処理可能な情報と情報に対する処理動作とを、ノード(頂点)とエッジ(辺)で表現して記憶するために用いられる。加えて、知識構造記憶手段160は、ユーザから送信された文言に含まれる任意の語句、自然言語ユーザインタフェース生成装置10が対話スクリプトの生成のために用いる知識及び語句、作成された応答に含まれる任意の語句、及び自然言語の分野における生成文法規則及び語句の頻度等の派生的な情報を、適宜記憶してもよい。
【0078】
応答手段110は、複数の対話ルールと対話制御手法の組を予め関連付けて実行するために用いられる。応答手段110は、対話構造記憶手段111、判別手段112及び変更手段113を備える。本実施形態において、応答手段110は、詳細を後述する、次のような対話制御手法を実装するために用いられる。
[A]有限状態(finite state)ベースの対話制御手法
[B]フレーム(frame)ベースの対話制御手法
[C]エージェント(agent)ベースの対話制御手法
【0079】
対話構造記憶手段111は、自然言語による対話構造を記憶するために用いられる。詳細には、対話構造記憶手段111は、少なくとも二つの要素の間の関係において、処理動作の流れを示す関係及び処理動作に必要な関係を、対話ルールとして記憶するために用いられる。
【0080】
判別手段112は、記憶した要素に対して知識構造記憶手段160における関連付けの有無を判別するために用いられる。
【0081】
変更手段113は、判別手段による判別の結果に応じて、対話構造記憶手段111に記憶された二つの要素の間の関係を変更するために用いられる。
【0082】
すなわち、本実施形態の自然言語ユーザインタフェース生成装置10において、対話構造記憶手段111、判別手段112及び変更手段113が連携して動作することにより、自然対話に対する特定の対話ルールに従って、知識構造に格納される二つの要素間の関係を変更することが可能になる。
【0083】
図2に示す応答手段110が複数の対話制御手法を実装する場合には、それらの複数の対話制御手法は、いずれも、共通の知識構造記憶手段160に記憶される、自然言語ユーザインタフェース生成方法のための知識構造にアクセスすることができる。
【0084】
このようにすることで、本発明に係る自然言語ユーザインタフェース生成装置10は、応答手段110を用いて知識構造記憶手段160にアクセスし、自然言語による対話応答のための自然言語ユーザインタフェースを生成することができる。
【0085】
図2にはネットワーク38を介して相互に接続する複数機器を示したが、これに限らず、自然言語ユーザインタフェース生成装置10、対話エージェント装置50及びユーザインタフェース(図示せず)の機能を1台の機器に備えてもよい。
【0086】
本発明の一実施形態に係る、自然言語ユーザインタフェース生成システム20を用いることにより、ユーザの入力に応答する自然言語ユーザインタフェースを生成するシステムを提供することができる。
【0087】
[知識構造のデータ構造]
図3は、本発明の一実施形態に係る、知識構造のデータ構造を表す図である。すなわち、図3に示す知識構造データ構造260は、図2に示した知識構造記憶手段160が本発明に係る知識構造を記憶するために用いられる。
【0088】
図3に示す知識構造データ構造260は、識別子261により個別に識別されるデータの一つについて関連付けられる、始点262、終点264、ラベル266、ポインタ268等を含む。これらに限らず、知識構造データ構造260に含まれ関連付けられる情報は適宜設計してもよい。また、識別子261は、記憶されるデータを識別しうる形式であれば数字でも文字でもよく、適宜設計してもよい。
【0089】
始点262及び終点264は、知識構造データ構造260に記憶されるデータの他のデータとの修飾の関係を示す。一つの識別子を有するデータに対して始点262及び終点264の一つずつが定義されてもよく、複数が提起されてもよく、空白でもよい。始点262及び終点264がいずれも空白であることは、そのデータが拡張意味ネットワークにおける頂点であることを示すので、拡張意味ネットワークにおいて取り扱いうるデータに含まれる。
【0090】
ラベル266は、識別子261により個別に識別されるデータの一つについて、予め拡張意味ネットワークにおいて予約されるか、又はユーザにより定義される領域である。予約は、より具体的には、拡張意味ネットワークにおいて取り扱われる要素にクラスを定義し、要素が追記される等の拡張意味ネットワークの動作において生成される要素同士の関係を予め定義するためのものである。
【0091】
例えば、予約されるクラスの定義には次のものが用いられうる。
(クラス1)vroot:全知識要素の開始点
(クラス2)vusr:ユーザのクラス
(クラス3)vact:動作のクラス
(クラス4)vins:インスタンス化関係のクラス
【0092】
vrootは、全知識要素の開始点であり、他の任意の要素を定義するための始点でありうる。vusrは、次に説明する動作クラスを目的やユーザに応じて整理するためのクラスである。vactは、本発明の実施形態に係る自動対話応答生成システムが実施する対話応答等の動作を知識要素に含めるためのクラスである。vinsは、本発明の実施形態に係る自動対話応答生成システム等において、メモリ上に配置されたデータの集合等の実体を示すためのクラスである。例えば、基本的な応答動作をとりまとめる頂点ubrは、クラスvusrのインスタンスである枝u_iによってvrootから接続され定義される。基本的な動作であるkeyword、relation、message等は、それぞれクラスvartのインスタンスである枝によって頂点ubrから接続され定義される。頂点ubrや基本的な動作を表す頂点のラベル266には、ユーザ端末から送信された文字列等の知識DBを人が管理する際に認識しやすい説明文字が含まれる。
【0093】
ポインタ268は、一つの識別子を有するデータであって、上述の始点262、終点264、又はラベル266以外の情報を含むデータを知識構造記憶手段160に記憶し、取り扱うことができるようにするためのものである。例えば、当業に公知の文字列処理関数等は、ポインタ268に当該関数を関連付けることにより、知識構造記憶手段160に取り込むことが可能になる。
【0094】
本発明に係る自然言語ユーザインタフェース生成装置10は、知識構造データ構造260を備える知識構造記憶手段160を用いて、自然言語による対話応答において取り扱いうるデータ、及び自然言語ユーザインタフェースの生成とは特に関連性のない一般的な文字列処理関数等を、いずれも知識構造記憶手段160に取り込んで使用することができる。
【0095】
[自然言語ユーザインタフェース生成システム20と知識構造との関係]
図4は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成システム20による対話スクリプト作成と知識構造との関係を示す図である。具体的には、図4に示す対話スクリプト作成支援システム200は、図2に示した自然言語ユーザインタフェース生成装置10を用いて実行可能な多様なコンピュータ・プログラムと、知識構造230とからなる。このコンピュータ・プログラムは、例えば、自然言語ユーザインタフェース生成装置10に含まれるコンピュータ装置等が適宜備えるメモリデバイス等(図示せず)に格納される。
【0096】
また、当該コンピュータ・プログラムは、システムの基本入出力等の動作に係るカーネル202、サーバを介してクライアントとクライアントが会話をする枠組みの名称であるインターネット・リレー・チャット(Internet Relay Chat、IRCと略称)のためのセッション管理204、IRCにおけるチャネル管理206、208を含む。
【0097】
チャネル管理206、208は、一人のユーザに一つのチャネル管理を割り当ててもよく、一人のユーザに複数のチャネル管理を割り当ててもよい。ユーザとチャネル管理との対応関係は特に問わない。チャネル管理206、208は、これらに限らず、任意の数のチャネル管理を設けてもよい。それぞれのチャネル管理により制御されうる応答等の数は適宜設計しうる。
【0098】
また、当該コンピュータ・プログラムは、チャネル管理206により制御されうる基本応答210、発言制御応答212、ヘルプ応答214、時間応答216等を適宜含み、また、チャネル管理208により制御されうる基本応答218、発言制御応答220、時間応答222等を適宜含む。これらは個別に機能を有する応答モジュールであり、それぞれの応答モジュールの機能は適宜設計しうる。
【0099】
基本応答210、218は対話応答におけるユーザからの入力に対する基本的な応答を生成することを含み、具体的には、対話の開始又は終了の時点における典型的な応答の生成等を含む。発言制御応答212、220は対話応答においてユーザに長文の回答をタイミングよく提示する等の、制約を有する応答の生成を含む。ヘルプ応答214は、ユーザからの操作説明要求等に応じて適宜ヘルプ情報等の応答を生成することを含む。時間応答216、222は、対話の経過時間又はシステムの稼働時刻等に基づく応答の生成を含み、具体的には、終了時にユーザに対して「30分使用しました」等の経過時間を送信するために用意すること、又は年始にユーザに対して「本年もよろしくお願いします」等の時候の挨拶等を送信するために用意すること等を含む。
【0100】
さらに、当該コンピュータ・プログラムは、基本応答210、218、発言制御応答212、220等を用いて知識構造230にアクセスしうる。知識構造230は、図3に示したように、識別子261により識別されるデータを含む。
【0101】
本発明の一実施形態に係る対話スクリプト作成支援システム200は、チャネル管理を介して知識構造230にアクセスすることにより、すでに知識構造230に記憶されたデータを用いて対話応答のためのデータを生成し、生成した対話応答を知識構造230に記憶することが可能である。
【0102】
[対話エージェントの動作]
図5は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置10が生成する、対話エージェントの動作を説明するためのフロー図である。具体的には、対話エージェントは、図2に示した対話エージェント装置50において動作することができるが、これに限らず、対話エージェントは、本発明に係る自然言語ユーザインタフェース生成システム20のいずれかのコンピュータ資源において動作してもよい。
【0103】
対話エージェントは、システムを初期化するステップ(S100)において、システムの内部変数等を初期化する。
【0104】
次いで、対話エージェントは、メッセージ入力をチェックするステップ(S102)において、ユーザからのメッセージ入力の有無を調べ、検出できたことを判定するステップ(S104)においてメッセージを検出できた場合はステップ(S108)に分岐し、検出できない場合はステップ(S106)に分岐する。
【0105】
自発的な処理を実行するステップ(S106)においては、対話エージェントは、記憶媒体の空き容量計算等の、ユーザからのメッセージ入力等とは直接に関係のない処理や、ユーザが対話によるタスク実行に行き詰まったときに次に行うべき項目をガイドする等の処理を実行し、ステップ(S102)に戻る。
【0106】
応答処理を実行するステップ(S108)においては、対話エージェントは、ユーザからのメッセージ入力への応答処理を実行する。
【0107】
終了指示が出たことを判定するステップ(S110)においては、対話エージェントは、ユーザからの終了指示の有無を判定する。具体的には、ユーザは対話応答サービス等の使用を終了することをコマンドの送信等により通知してもよい。あるいは、ユーザが「/終了」等のメッセージを対話応答サービス等に送信することにより、冒頭の「/」を対話エージェントが識別し、以後の文字情報を動作のための制御命令と解釈し、終了指示として扱ってもよい。終了指示のための情報の送受信は適宜設計しうる。終了指示が出た場合は終了し、終了指示が出ていない場合はステップ(S102)に戻る。
対話エージェントは、上述のように動作することにより、ユーザからの終了指示が出るまでの期間に繰り返してステップ(S108)を用い、応答処理を実行することができる。
【0108】
[応答処理の動作]
図6は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置10が生成する、応答処理の動作を説明するためのフロー図である。この応答処理は、図5の前述の対話エージェントの動作において、ステップ(S108)の一つとして実行される。
【0109】
応答処理は、ステップ(S120)において、ユーザから送信されたメッセージをmとする時に、当該メッセージmが発言されたチャネルに対応するチャネル管理構造を取得する。このチャネル管理構造をcとする。具体的には、チャネル管理構造cは、図4を用いて前述の、チャネル管理206、208等においてチャネルを相互に区別するための情報、基本応答等の応答モジュールの情報等を適宜含む。
【0110】
次いで応答処理は、ステップ(S122)において、チャネル管理構造cを取得できたかどうかを判定する。取得できた場合はステップ(S124)に進み、できない場合は動作を終了する。
【0111】
次いで応答処理は、ステップ(S124)において、チャネル管理構造cに設定された応答モジュールの集合をRとし、ステップ(S126)において集合Rが空集合であるかどうかを判定する。空集合である場合は動作を終了し、空集合でない場合はステップ(S128)に進む。具体的には、応答モジュールの集合Rは、図4の基本応答210、発言制御応答212等を適宜含む。
【0112】
次いで応答処理は、ステップ(S128)において、応答モジュールの集合Rから応答モジュールを一つ取り出しrとする。さらに、ステップ(S130)において、応答モジュールrを用いてメッセージmの処理を試みる。ステップ(S132)において、この処理が成功したかどうかを判定し、成功した場合は応答処理を終了し、成功しない場合はステップ(S126)に戻る。
【0113】
本発明に係る応答処理は、上述のように動作することにより、メッセージmの受信を契機として応答モジュールを用いて対話応答を生成することができる。
【0114】
[応答モジュールの動作]
図7は、本発明の一実施形態に係る、応答処理において、メッセージの処理のために実行される有限状態ベースの対話制御手法による応答モジュールの動作を説明するためのフロー図である。応答モジュールは、図6の応答処理の動作に含まれるステップ(S130)において実行される。
応答モジュールは、ステップ(S140)において、メッセージmが発言されたチャネルに対応するチャネル管理構造cを取得する。
次いで、応答モジュールは、ステップ(S142)において、現在の位置をチャネル管理構造cから取得する。位置は、具体的には、図3を用いて前述の、知識構造に含まれる識別子261を用いてもよく、それぞれのチャネル管理構造が独自に番号付け等を実施してもよく、適宜設計しうる。この位置をctxとする。
【0115】
次いで、応答モジュールは、ステップ(S144)において、位置ctxが空要素(null)であるかどうかを判定し、空要素である場合はステップ(S146)に進み、空要素でない場合はステップ(S148)に進む。具体的には位置が空要素であることは、当該対話ルールがまだ実行を開始していないこと、又は新規に対話ルールの文脈が生成されること等を意味する。
ステップ(S146)において、応答モジュールは位置ctxに対話ルールの文脈を設定する。具体的には、知識構造における有限状態ベースの対話制御手法の対話ルールの始点でありうる要素を位置ctxに関連付ける。
【0116】
次いで、応答モジュールは、ステップ(S148)において、位置ctxを始点とし、この始点から出るフロー辺の先に、メッセージmにヒットする語をラベルとする頂点からのびるフロー辺の先の処理頂点を集合Rとする。具体的には、始点として用語「レストラン」が設定され、ユーザがメッセージとして「2人で金曜日の晩に食事したい」という文言を送信した場合に、この文言に含まれる「2人」「金曜日」等の用語をラベルとする頂点からのびるフロー辺の先の処理頂点として、具体的なレストランの名称等を応答すること、又は金曜日に訪問しやすい繁華街等の名称を応答すること、又は2人以上の予約に対する優待サービスの情報を応答すること等からなる処理頂点の集合を関連付ける。
【0117】
次いで、応答モジュールは、ステップ(S150)において、処理頂点の集合が空集合であるかどうかを判定し、空集合である場合は応答モジュールを終了し、空集合でない場合はステップ(S152)に進む。
次いで、応答モジュールは、ステップ(S152)において、処理頂点の集合から処理頂点を一つ取り出しrとする。処理頂点の集合Rから処理頂点rを一つ取り出すための規則は、ランダムな選択規則、最初又は最後に抽出された要素を選択する規則、最も以前又は最近に抽出された要素を選択する規則、談話構造と最も関連性の高い要素を選択する規則から選ばれる規則に基づいて選択されうる。
【0118】
次いで、応答モジュールは、ステップ(S154)において、処理頂点rに関連付けられる関数を実行する。この関連付けは、ポインタを介する関数の呼び出し等でもよい。具体的には、この処理頂点は、スクリプトの進捗状況を記憶することでもよく、ユーザへの応答を出力することでもよく、適宜設計しうる。ステップ(S154)の後は、応答モジュールの実行は終了する。
本発明に係る応答モジュールは、上述のように動作することにより、処理頂点rを用いて対話応答を生成するための関数を実行しうる。
【0119】
[複数の応答手段]
本実施形態において、本発明に係る自然言語ユーザインタフェース生成装置10は、所定の対話ルールと所定の対話制御方法とを組み合わせ、所定の対話制御手法を複数用いて、共通の知識構造にアクセスし、自然言語による対話応答のためのユーザインタフェースを生成することができる。具体的には、自然言語ユーザインタフェース生成装置10は、応答手段110に複数の所定の対話制御手法を実装し、応答手段110は共通の知識構造記憶手段160にアクセスして、自然言語による対話応答のためのユーザインタフェースを生成することができる。このように動作する応答手段110に実装できる対話制御手法としては、以下が挙げられる。
[A]有限状態(finite state)ベースの対話制御手法
[B]フレーム(frame)ベースの対話制御手法
[C]エージェント(agent)ベースの対話制御手法
【0120】
本発明に係る自然言語ユーザインタフェース生成装置10は、例えば、図5に示したステップ(S108)又はステップ(S106)の動作において、前述の[A][B]又は[C]の対話制御手法のいずれか又は複数を組み合わせて用いることができる。別の実施形態において、前述の対話制御手法を選択することは、詳細フロー図である図6に含まれるステップ(S128)において、応答モジュールを一つ取り出すこととして行うことができる。すなわち、本発明に係る自然言語ユーザインタフェース生成装置10は、所定の対話ルールと所定の対話制御方法とを組み合わせた応答モジュールを、複数用いて、共通の知識構造にアクセスし、自然言語による対話応答のためのユーザインタフェースを生成することができる。
【0121】
有限状態ベースの対話制御手法は、対話制御手法を、クラスを用いて記述されるスクリプトである対話スクリプトとして、記述することができる。例えば、有限状態ベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、予め所定の処理頂点、辺修飾属性及びフロー辺を用意し、ユーザからの入力に応じて所定の動作を実施することができる。
【0122】
フレームベースの対話制御手法は、対話制御手法を意味フレームとして記述することができる。例えば、フレームベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、意味フレームの構成要素等を辿ることを表すエッジ、及び意味フレームのスロット等を表すノードを用いて、拡張意味ネットワークの形式で格納される知識構造にアクセスすることができる。
【0123】
エージェントベースの対話制御手法は、対話制御手法をエージェント動作として記述することができる。例えば、エージェントベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、話題を絞り込む属性概念等を辿ることを表すエッジ、及び分類概念等を表すノードを用いて、拡張意味ネットワークの形式で格納される知識構造にアクセスすることができる。
【0124】
このようにすることで、本発明に係る自然言語ユーザインタフェース生成装置10においては、複数の対話処理ユニットを用いて応答モジュールを動作させ、自然言語対話におけるユーザへの応答をより迅速かつ柔軟にすることができる。さらに、本発明に係る自然言語ユーザインタフェース生成装置10においては、異なる複数の対話制御手法に対して単一の知識構造記憶手段160が対応できるので、知識構造の運用及び維持等に関連するシステム構築及び運用コストを軽減することが可能になる。
【0125】
以下、本発明に係る自然言語ユーザインタフェース生成装置10の応答モジュールの動作に関し、前述の[A]有限状態ベースの対話制御手法、[B]フレームベースの対話制御手法、及び[C]エージェントベースの対話制御手法のそれぞれを説明する。
【0126】
最初に、有限状態ベースの対話制御手法における応答処理及び応答モジュールの例、及びこの対話制御手法を用いる応答の生成例を示す。次いで、この生成例と比較して、フレームベースの対話制御手法及びエージェントベースの対話制御手法における応答の生成例を示す。
【0127】
[有限状態ベースの対話制御手法]
[処理のクラス]
表2に、応答モジュールとして選択しうる基本処理頂点を例示する。これらに限らず、予め用意する処理頂点は適宜設計しうる。
【表2】
【0128】
本実施形態において、ユーザからの入力を反復出力し、選択肢に分岐する処理頂点「CFM」は以下のように動作しうる。
(CFM−1)処理中のCFMインスタンスから引数属性辺vをたどり、確認内容格納先cを得る。
(CFM−2)処理中のCFMインスタンスから引数属性辺smをたどり、処理頂点aの取得を試みる。
(CFM−3)処理頂点aが見つかった場合、実行する。
(CFM−4)処理中のCFMインスタンスから引数属性辺fmtをたどり、データ頂点dの取得を試みる。
(CFM−5)データ頂点dが見つかった場合、その文字列でcの内容を整形してユーザに応答する。
(CFM−6)システムが管理する現在のコンテキストを、処理中のCFMインスタンスに変更する。
【0129】
本実施形態において、スクリプトの進捗状況を変数に保存する処理頂点「SVC」は以下のように動作しうる。
(SVC−1)処理中のSVCインスタンスから引数属性辺vをたどり、コンテキスト格納先cを得る。
(SVC−2)対話スクリプト内の進捗位置である現在のコンテキストをシステムから取得し、cに格納する。
(SVC−3)コンテキストが設定されていた場合、成功及び即時実行属性の付いたフロー辺が処理中のSVCインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
(SVC−4)コンテキストが設定されていなかった場合、失敗及び即時実行属性の付いたフロー辺が処理中のSVCインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
【0130】
本実施形態において、ユーザの最終発言を変数に保存する処理頂点「SVT」は以下のように動作しうる。
(SVT−1)処理中のSVTインスタンスから引数属性辺vをたどり、ユーザ発言格納先tを得る。
(SVT−2)ユーザが最後に発言した文字列の先頭トークンをシステムから取得し、tに格納する。
(SVT−3)即時実行属性の付いたフロー辺が処理中のSVCインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
【0131】
本実施形態において、何もしない処理頂点「NOP」は以下のように動作しうる。
(NOP−1)処理中のNOPインスタンスから引数属性辺smをたどり、処理頂点aの取得を試みる。
(NOP−2)処理頂点aが見つかった場合、実行する。通常は回答頂点が処理頂点として構成されるので、応答メッセージを出力する処理を行うことになる。
(NOP−3)システムが管理する現在のコンテキストを、処理中のNOPインスタンスに変更する。
(NOP−4)即時実行属性の付いたフロー辺が処理中のSVCインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
【0132】
本実施形態において、スクリプトを終了する処理頂点「QUI」は以下のように動作しうる。
(QUI−1)処理中のQUIインスタンスから引数属性辺smをたどり、処理頂点aの取得を試みる。
(QUI−2)処理頂点aが見つかった場合、実行する。通常は回答頂点が処理頂点として構成されるので、応答メッセージを出力する処理を行うことになる。
(QUI−3)処理中のSVCインスタンスから引数属性辺vをたどり、コンテキスト参照先cの取得を試みる。
(QUI−4)コンテキスト参照先cが見つかった場合、システムが管理する現在のコンテキストを、cに変更する。
(QUI−5)コンテキスト参照先cが見つからなかった場合、システムが管理する現在のコンテキストをリセットする。
【0133】
表3に、基本処理頂点以外の、固有処理頂点を例示する。
【表3】
【0134】
一実施形態において、固有処理頂点CSMSは以下のように動作しうる。
(CSMS−1)処理中のCSMSインスタンスから引数属性辺vをたどり、コンテキスト参照先cを得る。
(CSMS−2)処理中のCSMSインスタンスから引数属性辺v2をたどり、処理対象選択メッセージ頂点格納先mを得る。
(CSMS−3)処理中のCSMSインスタンスから引数属性辺v3をたどり、選択メッセージ検索語参照先sを得る。
(CSMS−4)コンテキストcから選択メッセージ辺で到達可能な処理頂点の集合をSMとする。
(CSMS−5)集合SMから文字列データに検索語sを含む処理頂点smを検索する。
(CSMS−6)処理頂点smが見つかった場合、smをmに格納し、成功及び即時実行属性の付いたフロー辺が処理中のCSMSインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
(CSMS−7)処理頂点smが見つからなかった場合、失敗及び即時実行属性の付いたフロー辺が処理中のCSMSインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
【0135】
一実施形態において、固有処理頂点CSMDは以下のように動作しうる。
(CSMD−1)処理中のCSMDインスタンスから引数属性辺vをたどり、処理対象選択メッセージ頂点参照先mを得る。
(CSMD−2)処理中のCSMDインスタンスから引数属性辺v2をたどり、コンテキスト参照先cを得る。
(CSMD−3)コンテキストcから選択メッセージ辺で到達可能な処理頂点の集合をSMとする。
(CSMD−4)集合SMの要素数が2以上である場合、処理対象選択メッセージ頂点mを削除する。
(CSMD−5)削除した場合、処理中のCSMSインスタンスから成功属性の付いた選択メッセージ辺が接続されていれば、そのたどり先の処理頂点を実行する。
(CSMD−6)削除しなかった場合、処理中のCSMSインスタンスから失敗属性の付いた選択メッセージ辺が接続されていれば、そのたどり先の処理頂点を実行する。
(CSMD−7)システムが管理する現在のコンテキストを、cに変更する。
【0136】
一実施形態において、固有処理頂点CSMPは以下のように動作しうる。
(CSMP−1)処理中のCSMPインスタンスから引数属性辺vをたどり、処理対象選択メッセージ頂点参照先mを得る。
(CSMP−2)処理中のCSMPインスタンスから引数属性辺v2をたどり、新しい選択メッセージ文字列の参照先nを得る。
(CSMP−3)処理中のCSMPインスタンスから引数属性辺v3をたどり、コンテキスト参照先cを得る。
(CSMP−4)処理中のCSMPインスタンスから引数属性辺smをたどり、処理頂点aの取得を試みる。
(CSMP−5)処理頂点aが見つかった場合、実行する。
(CSMP−6)処理対象選択メッセージ頂点mの文字列データを新しい選択メッセージ文字列nで置き換える。
(CSMP−7)システムが管理する現在のコンテキストを、cに変更する。
【0137】
[データのインスタンス]
データ頂点はそのインスタンスのラベル文字列に静的データを格納する。変数頂点は変数ごとにそれぞれ頂点を定義する。この頂点のインスタンス辺の終点に動的データを設定する。
【0138】
表4に文字列データを、表5に変数頂点を例示する。これらに限らず、静的データは適宜設計しうる。
【表4】
【表5】
【0139】
[辺修飾属性のクラス]
辺修飾属性インスタンスはフロー辺を修飾し、その意味を修飾する。
【0140】
表6に、基本的な属性頂点を例示する。これらのインスタンスは辺であり、その終点に修飾対象を設定する。通常修飾対象は辺であり、その場合、これらインスタンス辺の始点は修飾対象辺の始点と同じに設定する。
【0141】
属性頂点は、それぞれを小円内の1文字に略記して図示してもよい。例えば、処理フローを即座に移動する属性頂点IMMを小円内の1文字「i」で、処理が成功した場合にフローを移動する属性頂点SUCを小円内の1文字「s」で図示してもよい。
【表6】
【0142】
[フロー辺のインスタンス]
フロー辺のインスタンスは処理を進めることを示す。このインスタンスは属性修飾を受けることができる。このインスタンスの始点と終点は処理頂点のインスタンスである。
【0143】
[属性辺のクラス]
属性辺のインスタンスは処理頂点の処理実行に必要な情報を提供する。表7に、基本的な属性辺を例示する。これらのインスタンスは属性付与対象の頂点や辺を始点に、属性値を終点に設定する。
【表7】
【0144】
[対話応答の例]
図8は、本発明の一実施形態に係る、有限状態ベースの対話制御手法における対話応答のための知識構造の例を示す図である。図8に示す対話応答のための知識構造は、アプリオリオントロジーノード300、ユーザノード340、動作ノード350〜370、データノード380を含む。
【0145】
アプリオリオントロジーノード300は、図3を用いて示した知識DBデータ構造における、予約されるクラスの定義に対応する。すなわち、本発明に係る拡張意味ネットワークに含まれるクラスの定義を含み、グラフ構造においては始点でありうる頂点である。アプリオリオントロジーノード300は、全知識要素の開始点を表すクラスroot301、ユーザ関係のクラスを表すuser310、動作関係のクラスを表すaction320、及びインスタンス関係のクラスを表すinstance330を含む。
【0146】
ユーザノード340は、本発明に係る自然言語ユーザインタフェース生成装置10又は自然言語ユーザインタフェース生成サービス等を用いるユーザによる対話スクリプトのための、基本的なルールを表す。図8に示す、有限状態ベースの対話制御手法における対話応答においては、ユーザノード340は、有限状態ベースの対話制御手法のノード(finite state)として表される。また、ユーザノード340は、root301を始点とする辺302の終点でありうる。
【0147】
例えば、ユーザの発話により、本発明に係る自然言語ユーザインタフェース生成方法により作成された応答ルールを知識構造に格納した自動応答システムが動作を開始することは、root301を始点とする関連付けである辺302の終点として、ユーザノード340を発話がなされたチャンネルに結び付けられた応答モジュールが参照することを意味する。ここで、通常一つのチャンネルに結び付けられた応答モジュールは複数あり、辺302の始点としてのroot301及び終点としてのユーザノード340の関係は、それらの中に「finite state」という応答モジュールがあった場合に参照されることになる。
【0148】
次いで、動作のクラスaction320に属する動作関係辺である、ユーザノード340を始点とする辺342、344、346を用いることにより、終点である動作ノード350、360、370に動作クラスを生成することができる。具体的には、ユーザからの発話等が予め用意したキーワードと一致するかどうかを調べるための動作クラスkeywordを格納する動作ノード(350)、ユーザからの発話又は予め用意した応答等のメッセージを送信するための動作のクラスmessageを格納する動作ノード(370)、キーワードとメッセージとの関連の有無を判定するための動作のクラスrelationを格納する動作ノード(360)等を生成しうる。
【0149】
さらに、インスタンス関係のクラスinstance330に属するインスタンス関係を用いて、動作ノード350、360、370を始点とする辺を生成することにより、データノード380に属する文字情報352、372に対話応答のための文字情報が格納されうる。例えば、処理のインスタンスkeywordを格納する動作ノード(350)を始点とする辺の終点に、文字情報352として「カレー」を格納しうる。ここで、データノード380に属する文字情報352及び372の間に、文字情報352を始点とし、文字情報372を終点とする関連付けが行われ、当該関連付けを動作のクラスrelationを格納する動作ノード(360)が辺362を用いて修飾することが定義される場合に、本発明に係る自然言語ユーザインタフェース生成方法の実施装置等は、文字情報352との関連付けを有する文字情報372として「食べたいですね」等の応答を生成しうる。
【0150】
このようにして、知識構造に含まれるノード及びノードに属する処理頂点等の間に、予め関連付けを行うことにより、本発明に係る自然言語ユーザインタフェース生成方法の実施装置等は、ユーザによる発話又は文字情報の送信等を契機として、対話応答を生成しうる。
【0151】
本発明に係る自然言語ユーザインタフェース生成方法の実施装置等が生成する対話応答は、予め定義したクラスに属する動作又はデータ等のインスタンスを適宜選択することにより、従来技術のように全ての用語を逐一検索することなく、対話応答を迅速に生成しうる。
【0152】
ユーザのクラス310による動作の開始は、上述のような対話のための発話に限らず、知識構造にクラス又はインスタンスを追加するものであってもよい。すなわち、ユーザノード340に「edit reply」等の応答を編集する動作頂点を用意してユーザが呼び出し、キーワードのヒットの判定方法等を適宜編集してもよい。これにより、本発明に係る自然言語ユーザインタフェース生成方法においては、対話スクリプトは自身を変更することが可能である。
【0153】
[自然言語ユーザインタフェースを生成する例]
図9、図10及び図11は、本発明の一実施形態に係る、有限状態ベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。図9、図10及び図11は、いずれも拡張意味ネットワークに基づく同一のグラフと、グラフの特定の部分を参照して説明するための符号を含む。図9、図10及び図11に含まれる円形は、上述の拡張意味ネットワークにおける頂点を表し、矢印は修飾辺を表す。1文字「i」、「s」又は「f」を含む小円は、それぞれ「即時」、「成功」、「失敗」を表す属性頂点である。修飾辺の近傍における文字列「sm」、「v(又はv2等の数字の添え字を伴う)」又は「fmt」は、それぞれ、出力メッセージを伴う属性辺、処理の引数となる変数を伴う属性辺、又は所定の書式を伴う属性辺である。
【0154】
図9に示す自然言語ユーザインタフェース生成例400は、表2における基本処理頂点、表3における固有処理頂点、表4における静的データ、表5における変数頂点、表6における属性頂点、表7における属性辺を適宜含む。
【0155】
また、図9に示す自然言語ユーザインタフェース生成例400は、図8の対話応答のための知識構造における、データノード380でありうる。換言すれば、ユーザからの入力をキーワードとして受信することに応答して作成される対話応答は、図8に示した対話応答のための知識構造を用いて、データノード380として出力されうる。
【0156】
図9を用い、自然言語ユーザインタフェース生成例400に含まれる、ユーザからの入力を受信することに応答して作成される対話応答の、初期の段階を例示する。
【0157】
処理頂点410は、表2における、文脈が初期位置にあるときにキーワードを格納しうる処理頂点KWであり、文字列データkwを含む。具体的には、当該キーワードはユーザから受信した入力としての文字列等である。例えば、文字列データkwは「選択メッセージを変更」等の文字列である。
【0158】
本発明に係る対話応答のための知識構造は、処理頂点KWと関連付けを有する処理頂点SVC(411)を用意する。処理頂点SVC(411)は、文字列データkwの受信に応答して開始した時点で既に行われている対話応答の進捗状況を適宜記憶する。
【0159】
次いで、本発明に係る対話応答のための知識構造は、処理頂点411と関連付けを有する変数頂点<CTX>(412)、処理頂点QUI1(413)、処理頂点NOP1(414)を用意する。
【0160】
変数頂点<CTX>(412)は、処理頂点SVC(411)における進捗状況の記憶のために用意される変数である。
【0161】
処理頂点QUI1(413)及び処理頂点NOP1(414)は、処理頂点SVC(411)に応答して即時実行されうる。図中には、即時実行を文字「i」を含む小円で示す。
【0162】
処理頂点SVC(411)の動作において、対話の進捗状況(コンテキスト)が未定義であった場合には処理頂点QUI1(413)が選択され、定義されていた場合には処理頂点NOP1(414)が選択される。図中には、失敗を文字「f」を含む小円で、成功を文字「s」を含む小円で示す。
【0163】
処理頂点QUI1(413)は、対話スクリプト追跡コンテキストから離脱する動作を実施し、静的データm1(415)を関連させる。処理頂点QUI1(413)から静的データm1(415)への辺は、表7に示した辺SMに属するインスタンスsmであり、具体的には抽出された文字列を応答メッセージとして示す動作を行う。例えば、静的データm1(415)は「選択肢に移動してください。」等のエラーメッセージである。
【0164】
処理頂点NOP1(414)は、後続の処理頂点等への関連付けのために用意される。さらに、処理頂点NOP1(414)は静的データm2(416)に関連付けられ、辺のインスタンスsmにより、静的データm2(416)が応答メッセージとしてユーザに示される。例えば、静的データm2(416)は「選択メッセージを指定してください。」等のメッセージである。
【0165】
次いで、本発明に係る対話応答のための知識構造は、処理頂点417に属するキーワードのインスタンスwld1に、ユーザからの入力を格納する。wld1は、表2における任意のキーワードを格納する処理頂点クラスWLDのインスタンスである。さらに、本発明に係る対話応答のための知識構造は、処理頂点SVT1(418)においてユーザからの入力を変数頂点<MSG>(424)に格納し、この変数頂点<MSG>(424)に格納されたユーザからの入力が、本対話スクリプトが開始されたコンテキストから選択メッセージを検索できたか否かを、処理頂点CSMS(423)において判定する。処理頂点CSMS(423)は、変数頂点<MSG>(424)から検索語を取得し、変数頂点<CTX>(425)に保存された本スクリプト開始時のコンテキストから検索語を含む選択メッセージを検索し、変数頂点<LRP>(426)に検索された選択メッセージの処理頂点を保存する。具体的には、この検索された選択メッセージの処理頂点は変更対象である対話スクリプトで選択肢到達時にメッセージを応答する等の処理であり、後続の処理頂点CFM1(427)により参照される。
【0166】
図9に示す自然言語ユーザインタフェース生成例400においては、ユーザの発言を変数に保存する処理頂点SVT1(418)を含む処理頂点の関連付けには、処理頂点NOP2(419)を介して前述の処理頂点NOP1(414)に戻る関連付け、及び処理頂点NOP3(421)を介して前述の処理頂点NOP1(414)に戻る関連付けを含む。
【0167】
前者の、処理頂点NOP2(419)を介して前述の処理頂点NOP1(414)に戻る関連付けは、例えば、検索語を含む選択メッセージが<CTX>に接続されていないことに応答し、この入力を処理頂点CSMS(423)において即時に失敗「f」と判定して処理頂点NOP2(419)と関連付け、静的データm3(420)として「選択メッセージが見つかりませんでした」等のメッセージをユーザに送信し、静的データm2(416)を再度ユーザに示す動作等を含む。
【0168】
後者の、処理頂点NOP3(421)を介して前述の処理頂点NOP1(414)に戻る関連付けは、例えば、以下の段階を含む。ユーザの入力がコンテキスト<CTX>のいずれかの選択メッセージに含まれる場合に、この入力を処理頂点CSMS(423)において、即時に成功「s」と判定し、かつコンテキスト<CTX>から最初に検索された選択メッセージの処理頂点を、変数頂点<LRP>(426)に保存する。後続の処理頂点CFM1(427)は、静的データm4(428)を用いてユーザに処理対象の選択メッセージを確認するメッセージを示し、確認を行ったこと(はい)を意味する選択肢を動作頂点sry1(430)に関連付け、かつ選択メッセージ検索をやり直すキーワード(いいえ)を動作頂点srn1(429)に関連付ける。動作頂点srn1(429)は、処理頂点CFM1(427)の選択候補のキーワードの一つであり、ユーザがこれを選ぶことによって動作頂点srn1(429)に対話スクリプト実行処理のコンテキストが移動する。動作頂点srn1(429)は処理頂点NOP3(421)への関連付けを有し、静的データm6(422)として「選択メッセージを指定しなおします」等のメッセージがユーザに送信され、静的データm2(416)を再度ユーザに示す処理頂点NOP1(416)の動作等を行う。
【0169】
これらのように、本発明に係る自然言語ユーザインタフェース生成例400には、ユーザの入力に応答して、処理頂点CSMS(423)等の成功又は失敗の判定に基づいて条件分岐し、処理段階を遡及する関連付けを含んでもよい。
【0170】
次いで、図10を用い、自然言語ユーザインタフェース生成例401に含まれる、ユーザからの入力を受信することに応答して作成される対話応答の、別の部分を例示する。拡張意味ネットワークに基づくグラフは、図9と同一である。
【0171】
ユーザからの発言を保存する処理頂点SVT2(450)は、変数頂点<MSG>(451)にユーザの発言を保存し、即時に後続の処理頂点CFM4(452)を実行する。例えば、変数頂点<MSG>(451)には、新しい選択メッセージである「どこの場所にしましょうか?」が保存される。
【0172】
選択肢に分岐する処理頂点CFM4(452)は、変数頂点<MSG>(451)、本対話スクリプトを中断する選択肢(やめる)である(sra)(454)、「これでよいですか?」等のユーザへの確認を促すメッセージ応答に結び付けられた処理頂点m12(455)、応答等におけるユーザ入力文字列の成形に係る処理頂点str(456)、確認を行ったこと(はい)を意味する選択肢である処理頂点sry4(457)、入力をやり直すこと(いいえ)を意味する選択肢である処理頂点srn3(458)等への関連付けを有する。具体的には、選択肢に分岐する処理頂点CFM4(452)は、変数頂点<MSG>(451)をstr(456)で整形してm12(455)のメッセージと共に応答してユーザに確認を求め、ユーザの回答が「はい」であった場合にはsry4(457)に分岐し、「いいえ」であった場合はsrn3(458)へ分岐しメッセージ入力をやり直し、「やめる」であった場合は(sra)(454)へ分岐しこの選択メッセージ変更のための対話スクリプトを中断する。
【0173】
処理頂点sry4(457)は、後続の処理頂点CSMP(459)を実行するよう動作する。
【0174】
処理頂点CSMP(459)は静的データm14(460)との関連付けを有する。具体的には、処理頂点CSMP(459)は、静的データm14(460)に結び付けられた「変更しました」等のメッセージを出力し、ユーザに送信する。
【0175】
また、処理頂点CSMP(459)は、変更対象の既存の選択メッセージ処理頂点を保存するための変数頂点<LRP>(461)との関連付けを有する。例えば、当該選択メッセージ頂点は、カレー店の場所をユーザに確認する対話スクリプトの選択メッセージ「場所はどこですか?」等でもよい。
【0176】
また、処理頂点CSMP(459)は、メッセージを出力する変数頂点<MSG>(462)との関連付けを有し、<LRP>(461)に指し示された選択メッセージ処理頂点に結び付ける文字列を<MSG>(462)で指し示されたものに変更する。
【0177】
さらに、処理頂点CSMP(459)は、スクリプトの進捗状況を保存する変数頂点<CTX>(463)との関連付けを有し、選択メッセージ変更の対話処理を開始した時点のコンテキスト状態に復帰し本対話スクリプトを終了する。
【0178】
次いで、図11及び表8に、自動対話の実行例であるダイアログが経過する処理頂点と、自動対話スクリプトの内部の動作を除く端末装置等に表示されうる文字列との対応の一例を示す。拡張意味ネットワークに基づくグラフは、図9及び図10と同一であり、重複する箇所は説明を省略する。
【0179】
表8は、文脈の初期位置においてユーザによる入力を格納する処理頂点kw(410)に応答し、時間の経過と共に自動対話及びユーザの入力からなる対話が進行することを表す。
【0180】
選択メッセージの削除を行うかどうか確認する処理頂点CFM2(470)は、確認に対する回答の選択肢をメッセージと共に応答する動作を実行する。具体的には、「削除しますか?」というメッセージと共に、「はい」、「いいえ」、及び/又は「やめる」の選択肢がユーザに応答される。
【0181】
表8に示した処理頂点が順次動作することにより、ユーザの端末装置等には、ユーザの入力及び自動対話の出力が表示される。
【0182】
これらにより、本発明に係る自動対話をユーザは利用して、所望の出力を得られる。
【表8】
【0183】
一実施形態において、前述の表8に示した一連の対話により、カレーに関する対話スクリプトが変更され、次回ユーザが「カレー食べたい」と発言した際に、本発明に係る自然言語ユーザインタフェース生成プログラム等による自動対話は、「どこの場所にしましょうか?(六本木/その他)」と応答しうる。このように、本発明に係る自然言語ユーザインタフェース生成プログラム等は、それ自身が対話スクリプト編集機能又は対話スクリプト編集機能の一部でありうる。
【0184】
本発明に係る自然言語ユーザインタフェースは、本発明に係る対話応答の知識構造に含まれ拡張意味ネットワークに属する頂点及び辺を組み合わせ、柔軟かつ幅広い拡張性をもって構成することができる。上述の例に限らず、本発明に係る自然言語ユーザインタフェース生成方法及びその実施装置等を用いることにより、複雑な対話スクリプトの作成を効率的に支援することが可能になる。
【0185】
[自然言語ユーザインタフェース生成のための共通概念の例]
図12は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成のための共通概念を例示する図である。
【0186】
図12に例示する共通概念500は、ノード501〜511を含み、それぞれのノードには、「カレー」「地域」「種類」「場所A」「場所B」「場所C」「インド全般」「南インド専門」「レストランA」「レストランB」「レストランC」等のノードデータが割り当てられる。図12に例示する共通概念500においては、ノードとノードとの間のエッジは、特定のノードの間に設定することが可能であるが、ユーザ入力に対する応答等は未定義である。
【0187】
以下、本発明に係る、これらのノード及びエッジを用いてユーザインタフェースを生成する方法の実施形態を示す。
【0188】
[有限状態ベースの対話制御手法による応答の生成例]
図13は、本発明の一実施形態に係る、有限状態ベースの対話制御手法による対話ルールの例を示す図である。
【0189】
図13に例示する自然言語ユーザインタフェース520は、図8に示した、有限状態ベースの対話制御手法における対話応答のための知識構造における、データノード380に対する動作ノード(350〜370)の動作を、ノード間のエッジとして表している。すなわち、自然言語ユーザインタフェース520は、共通概念500に含まれるノード501〜511に対する応答が、表2乃至表7に示した頂点及び辺を用いて生成できることを表す。
【0190】
なお、図13において、「REL」という辺のクラスはノード間の過渡的関係(フロー辺)を示し、「SEL」というエッジのクラスは動作の選択を示す。例えば、共通概念500におけるノード501に対応する、「KW”カレー”」というノードが、特定のキーワードである「カレー」にヒットするときに、自然言語ユーザインタフェース520は、動作の選択を示す「SEL」ノードのいずれかに動作を移動させ、移動先のノードに関係づけられるMSGノードに従って、例えば「場所はどこですか」又は「種類は何ですか」というメッセージを、ユーザに示すことができる。
【0191】
[フレームベースの対話制御手法による応答の生成例]
図14は、本発明の一実施形態に係る、フレームベースの対話制御手法による自然言語ユーザインタフェース530を生成する例を示す図である。
【0192】
図14において、「FRM」という辺のクラスは意味フレームの構成要素を辿ることを示し、「CND」という辺のクラスは意味フレームのスロットの候補を辿ることを示し、「REP」という辺のクラスは応答する際のメッセージを辿ることを示し、「SLT」というノードは意味フレームのスロットを示す。例えば、共通概念500におけるノード501に対応する、「KW”カレー”」というノードが、特定のキーワードである「カレー」にヒットするときに、自然言語ユーザインタフェース530は、ユーザの発言を自然言語解析技術を用いて分析し、スロットである地域あるいは種類に関すると推測される語句をそれぞれ取り出す。もし取り出した語句が各スロットの候補語句とマッチする場合は、そのスロットの値をその語句で確定する。これらの処理の後に未確定のスロットが残っている場合は、さらに適切な応答を続け、ユーザ発言を促し、その発言からのスロット値確定をさらに試みる。これらの応答には、未確定のスロットに関する情報が不足していることをユーザに伝えるものや、未確定スロットの候補をリストして選択を依頼するもの等が含まれる。全てのスロットが確定された場合、REL辺による制約を満たすMSGを選択し、ユーザに回答を行う。
【0193】
図15は、本発明の一実施形態に係る、フレームベースの対話制御手法における対話応答のための知識構造の例を示す図である。すなわち、図15に示す対話応答のための知識構造は、図8に示した有限状態ベースの対話制御手法による対話応答のための知識構造と同様に、アプリオリオントロジーノード300、ユーザノード340、動作ノード350〜370、データノード380を含む。有限状態ベースの対話制御手法との差異は、ユーザノード340として意味フレーム(frame)を含み、動作ノード(350〜370)として、意味フレームの構成要素を辿る「FRM」辺、意味フレームのスロットを示す「SLT」ノード等を含むことである。
【0194】
[エージェントベースの対話制御手法における応答の生成例]
図16は、本発明の一実施形態に係る、エージェントベースの対話制御手法による自然言語ユーザインタフェース540の生成を例示する図である。
【0195】
図16において、「TOP」、「CON」、「GEO」、「CUI」、及び「RST」というノードのクラスは、それぞれ、特定の話題、特定の分類概念、特定の地名、特定の料理名、特定の飲食店名にヒットすることを表す。また、図16において、「OBJ」、「FLT」、「CND」、及び「RES」という辺のクラスは、それぞれ、データの目的を辿ること、話題を絞り込む属性概念を辿ること、属性概念の選択候補を辿ること、及び属性概念による絞込み結果を辿ることを表す。例えば、共通概念500におけるノード501に対応する、「TOP”カレー”」というノードが、特定のキーワードである「カレー」にヒットするときに、自然言語ユーザインタフェース540は、飲食店の推薦を行うエージェントを起動する。このエージェントは自然言語ユーザインタフェース540における対話ルールから、カレー店を特定する場合には地域と種類に関する絞込みが可能であるという知識を入手し、エージェントが持つ独自の対話機能を用いて地域と種類に関する詳細情報の取得を試みる。不自然でない範囲でそのような対話を行ったあと、地域と種類に関する情報が得られた場合はその情報を用いて、そうでない場合はランダムに候補を選んでユーザに飲食店を推薦する。
【0196】
図17は、本発明の一実施形態に係る、エージェントベースの対話制御手法における対話応答のための知識構造の例を示す図である。すなわち、図17に示す対話応答のための知識構造は、図8に示した有限状態ベースの対話制御手法による対話応答のための知識構造と同様に、アプリオリオントロジーノード300、ユーザノード340、動作ノード350〜370、及びデータノード380を含む。有限状態ベースの対話制御手法との差異は、ユーザノード340としてエージェント(agent)を含み、動作ノード(350〜370)として、特定の話題を示す「TOP」ノード、話題を絞り込む属性概念を辿る「FTL」辺、特定の分類概念を示す「CON」ノード等を含むことである。
【0197】
図18は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置10の応答モジュールに含まれる対話ルールの全体像を例示する図である。
【0198】
図18に示す対話ルール550は、図13に示した有限状態ベースの対話制御手法による対話ルール、図14に示したフレームベースの対話制御手法における対話ルール、及び図16に示したエージェントベースの対話制御手法による対話ルールが、いずれもユーザノード561に含まれ、共通の動作ノード562及びデータノード563を用いて同時に動作可能であることを表している。すなわち、本発明に係る自然言語ユーザインタフェースを生成する装置及び方法においては、単一の知識構造中に、同一の対話ルールデータに対して、異なる種類の新たな対話制御手法が解釈可能な関係情報を、矛盾なく表現することができる。
【0199】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【符号の説明】
【0200】
10 自然言語ユーザインタフェース生成装置
20 自然言語ユーザインタフェース生成システム
38 ネットワーク
50 対話エージェント装置
60 ユーザ端末
83、85 辺
82、84 始点
81、85 終点
110 応答手段
111 対話構造記憶手段
112 判別手段
113 変更手段
160 知識構造記憶手段
200 対話スクリプト作成支援システム
230 知識構造
260 知識DBデータ構造
300 アプリオリオントロジーノード
340 ユーザノード
350、360、370 動作ノード
380 データノード
【技術分野】
【0001】
本発明は、自然言語ユーザインタフェースを漸進的に開発する装置及び方法に関する。より具体的には、自然言語によるユーザのメッセージに対応して自動的に応答するプログラム等において、ユーザインタフェースを漸進的に開発する装置及び方法に関する。
【背景技術】
【0002】
従来、自然言語対話を用いて、自然言語によるユーザのメッセージに対応して自動的に応答するコンピュータ・プログラムとして、対話エージェント、おしゃべりボット、人工無脳、自動対話、自然言語ユーザインタフェース、音声対話等が知られている。一例としては、利用者が入力したテキスト等に対応して自然言語の対話を行うチャットボットと言われるプログラムが存在する。これらは、ユーザが入力したメッセージからキーワードを抽出し、データベース中のワードにマッチした応答を行うプログラムである。ユーザによって入力された情報を状況特定データと照合して入力された情報に対応する状況特定データを判断し、入力された情報に対応する状況特定データに得点を加算して状況特定データが属する状況データの評価点数を集計する。そして、評価点数の集計状況に応じて入力された情報に対して応答すべき状況データを判断して、応答出力生成手段により応答すべき状況データに関連付けられた出力形式に従って応答データを生成して出力処理するシステムが開示されている(特許文献1参照)。
【0003】
また、従来の対話エージェント技術では、複雑な対話スクリプトについては、応答動作を個別にプログラムし、単純な対話スクリプトについては、人間の発話を機械の制御データに変換する等、データを準備するだけでよい枠組みが考えられてきた(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−172280号公報
【特許文献2】特開2003−116182号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の自然言語対話ユーザインタフェース技術においては、十分に話題を絞り込み、それに応じた適切な対話制御手法と対話ルール記述方法を設計する必要があった。この必要性が満たされない場合、例えば、話題に適合しない対話制御手法を設計すると、対話ルール群の規模が膨大になる、自然言語解析処理の能力不足により確認のための対話ばかりになってしまう等、メンテナンスや実行に支障が出る場合があった。この必要性を満たすために、話題ごとに異なる対話制御手法を備える自然言語対話システム等を用意することも可能であるが、このようなシステムにおいては、複数の制御手法を含むシステムを構成するためのコストが必要であることは明らかであり、さらにシステムを更新するためには、蓄積された対話ルールを再構築又は変換するコストが必要となるという課題があった。
【0006】
換言すれば、従来技術又はその組み合わせにおいては、自然言語対話ユーザインタフェースを長期間運用すると、個別の対話ルール等の自然言語解析処理の能力向上を図ったとしても、システム全体としてのメンテナンス及び実行コストのために、全体性能の向上のメリットを十分には享受できなかった。従って、対話の柔軟性や対話のスムーズさを実現することに関して、さらなる改良が必要であった。
【0007】
本発明は、上記課題を解決するために、システムの活動によってその構成要素を外部から取り込む等の手法を有する、自己創出性を備えた知識構造を用いて、対話ルールの構築コスト及び変換コストを削減し、自然言語対話におけるユーザへの応答を迅速にすることを目的とする。
【0008】
さらに、本発明は、既存の対話ルールデータに従来の解釈が可能なまま新たな意味関係を定義することのできる知識構造を実装し、対話の柔軟性や対話のスムーズさを向上することを目的とする。
【課題を解決するための手段】
【0009】
発明者は、知識構造に含まれる頂点だけでなく辺をも修飾する辺を表現しうる拡張意味ネットワークを備え、柔軟性と拡張性に優れた知識構造を用いる対話エージェントの開発に成功し、またこの対話エージェントのためのスクリプト作成を支援する方法及びプログラムの開発にも成功した結果、2008年01月18日付け出願の特願2008−009458、発明の名称「自然言語対話エージェントの知識構造構成方法、知識構造を用いた自動応答の作成方法及び自動応答作成装置」及び2008年03月18日付け出願の特願2008−068786、発明の名称「自然言語対話エージェントのためのスクリプト作成支援方法及びプログラム」を出願するに至った。さらに、発明者は、自動的な応答を作成するために、状況と動作の関係を表現しうる拡張意味ネットワークの知識構造を用いて、ユーザからのメッセージにコンピュータが迅速に応答できる自然言語対話システムの開発に成功し、このシステムのための対話制御手法の開発を進展させ、本発明の方法及び装置を開発するに至った。
【0010】
本発明では、以下のような解決手段を提供する。
【0011】
(1) 自然言語ユーザインタフェースを生成する装置であって、ユーザ端末からの会話文の入力に対応した会話文を出力する対話エージェントシステムにおいて会話の状況、会話の動作及びそれらの関係を示すコンピュータ上での処理動作をノードとエッジで表現する知識構造の記憶手段と、前記知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答手段とを備え、前記応答手段は、前記対話制御手法を実施するために、前記ノードに属する要素のうち少なくとも二つの前記要素の間の関係において、前記処理動作の流れを示す関係及び前記処理動作に必要な関係を前記対話ルールとして記憶する対話構造記憶手段と、前記記憶した要素に対して前記知識構造における関連付けの有無を判別する判別手段と、前記判別手段による判別の結果に応じて、前記対話構造記憶手段に記憶された前記二つの要素の間の関係を変更する変更手段と、を備える装置。
【0012】
本発明に係る自然言語ユーザインタフェースを生成する装置は、例えば、コンピュータを用いて自然言語ユーザインタフェースを生成するプログラム等を実施することにより、具現化することが可能である。自然言語ユーザインタフェースは、例えば対話スクリプト等の形態で提供することができる。
【0013】
本発明に係る自然言語ユーザインタフェースを生成する装置は、知識構造の記憶手段として、詳細を後述する拡張意味ネットワークを用いることができる。
【0014】
本発明に係る自然言語ユーザインタフェースを生成する装置は、詳細を後述する対話スクリプト記述言語を用いることにより、対話ルールの構築・変換コストを削減することができる。
【0015】
本発明に係る自然言語ユーザインタフェースを生成する装置は、さらに、拡張意味ネット知識構造のエッジ修飾機能を利用して、既存対話ルールデータに対する従来の解釈を可能としたまま、新たな意味関係を定義することができる。具体的には、新たな意味解釈を含む、対話ルールデータに対する解釈は、次のような対話制御手法を用いて、得ることができる。
[A]有限状態(finite state)ベースの対話制御手法
[B]フレーム(frame)ベースの対話制御手法
[C]エージェント(agent)ベースの対話制御手法
【0016】
これらの対話制御手法は、個々に対話ルールと関連付けられ、入力された対話データに対して、共通の知識構造を用いて同時に実行することが可能である。すなわち、本発明に係る自然言語ユーザインタフェースを生成する装置においては、単一の知識構造中に、同一の対話ルールデータに対して、異なる種類の新たな対話制御エンジンが解釈可能な関係情報を、矛盾なく表現することができる。
【0017】
本発明に係る自然言語ユーザインタフェースを生成する装置は、所定の対話ルール及び所定の対話制御手法を予め関連付けて含む応答手段とし、上述の[A]、[B]又は[C]のいずれかの対話処理手法を含む応答手段を、少なくとも二つ用いて、自然言語による対話を行うことができる。従って、単一の対話制御手法を用いる場合と比較して、本発明においては、自然言語対話におけるユーザへの応答をより迅速かつ柔軟にすることができる。
【0018】
このようにすることで、本発明においては、異なる複数の対話制御手法に対して単一の知識構造が対応できるので、それらを同時に利用するシステムを構築・運用するコストを軽減することが可能になる。例えば、最新の自然言語処理解析技術を用いた対話制御手法を、本発明に係る自然言語ユーザインタフェースを生成する装置に導入する場合でも、導入される新手法と従来技術による対話制御手法とを共存できるので、新規手法を容易に導入することが可能になる。
【0019】
本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造を作成する記憶部は、コンピュータ資源に含まれ、主記憶又は仮想記憶として用いうる半導体メモリ等の電気的記憶手段、磁気ディスク等の磁気的記憶手段、光磁気ディスク等の光学的記憶手段等を適宜含む。
【0020】
本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造の構成方法は、状況と動作の両者を要素とする言語の集合である知識構造を用意すること、及び典型的には状況を始点とし動作を終点とする関係もまた前記知識構造の要素でありうることにおいて、従来技術と共通点を有する。すなわち、公知のグラフ構造等を用いて、従来技術に係る始点と終点とにより関係を記述する手法は、本発明においても同様に用いることができる。ここに、グラフ構造を用いる知識構造の表現手法においては、始点及び終点は「頂点」又は「ノード」等と呼ばれ、始点から終点への関係は「辺」又は「エッジ」等と呼ばれる。
【0021】
従来技術に係るグラフ理論においては、始点又は終点の集合を用意し、始点及び終点の組み合わせを用いて辺の集合を用意する。すなわち、辺は始点から終点に向かって定義される。これに対して、本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造に属する要素の関連付けは、頂点と辺を特に区別せずに要素を用意し、二つの要素の組み合わせにおいて、始点及び終点が共に空要素である組み合わせを頂点として扱い、始点及び終端が共に空要素でない組み合わせを辺として扱う。すなわち、知識構造に属する二つの要素を組み合わせることにより、当該組み合わせが頂点及び辺として取り扱われる。
【0022】
拡張意味ネットワークは、このようにして二つの要素を組み合わせることによりグラフ構造の頂点又は辺を表す手法である。
【0023】
本発明に係る自然言語ユーザインタフェースを生成する装置が用いる知識構造においては、知識構造に属する二つの要素を組み合わせれば頂点でも辺でもありうる。具体的には、終点は状況でもよく動作でもよく、あるいは状況と動作の関係でもよい。この点において、本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造に属する要素の関連付けは、従来技術にない特徴を有する。すなわち、状況と状況の関連付け、状況と動作の関連付け、動作と動作の関連付け、さらにこれらの関連付けを一つの関係とする動作と一つの関係との関連付け等を実施することが可能になる。従って、本発明に係る自然言語ユーザインタフェースを生成する装置においては、従来の意味ネットワークに加えて、拡張意味ネットワークを提供することにより、知識構造に含まれる要素同士の関連付け及び要素と関係の関連付け等を柔軟に実施することが可能になる。
【0024】
本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造をグラフ構造を用いて表現することにおいては、従来技術と同様の始点から終点への関連付けに加えて、関連付けを表す辺を修飾する辺を表現しうる。すなわち、辺の終点は辺でもありうる。このような、従来技術を拡張した拡張意味ネットワークを用いて、本発明に係る自然言語ユーザインタフェースを生成する装置の知識構造の構成方法は、意味又は記憶の構造を表すための知識構造を構成しうる。
【0025】
(2) 前記知識構造の記憶手段は、前記状況、前記動作及び前記関係に関するクラスの前記要素として、処理のクラス、データのクラス、変数のクラス、属性のクラスを含み、前記知識構造は会話の場、会話履歴、会話文脈を要素に有する集合である談話構造を含み、前記変数のクラスは前記会話の場を始点とする関連付けを有し、前記属性のクラスは修飾対象と同一の始点との関連付け及び終点としての修飾対象との関連付けを有し、前記処理のクラスは前記知識構造に属する要素を始点及び終点とする関連付けを有し、前記データのクラスは静的データとの関連付けを有する、(1)に記載の自然言語ユーザインタフェースを生成する装置。
【0026】
処理のクラス、データのクラス、変数のクラス、及び属性のクラスはいずれも、グラフ構造における頂点として扱われる。処理のクラスは、具体的な処理を実施するための処理頂点を含む。処理のクラスに属する処理頂点の実体、すなわち処理のインスタンスは、コンピュータ処理可能な文字情報に対する処理を適宜含む。
【0027】
データのクラスは、静的にデータを格納するためのデータ頂点を含む。データのインスタンスは、コンピュータ処理可能な文字コードの集まり等を適宜含む。
【0028】
変数のクラスは、動的データの参照先を示す変数頂点を含む。変数のインスタンスは、自然言語ユーザインタフェースとしての対話スクリプトの実行の諸段階における変数を適宜含む。
【0029】
属性のクラスは、対話スクリプト要素に意味を与える属性頂点を適宜含む。属性のインスタンスは、対話スクリプト要素に含まれる文字情報等の上位概念等を適宜含む。具体的には、本発明に係る自然言語ユーザインタフェースとしての対話スクリプトの作成方法は、例えば、同一の用語「時計」に対する属性のインスタンスとして、「時間を計測するための道具」又は「装飾目的の贅沢品」等を適宜関連付けてもよく、それぞれの属性のインスタンスに基づいて、対話スクリプトにおける前記用語「時計」の意味を変化させうる。
【0030】
また、処理の流れの関係、及び処理に必要な関係はいずれも、グラフ構造における辺として扱われる。
処理の流れの関係は、始点と終点とを関連付けるフロー辺を含む。フロー辺は終点を修飾するために用いられる。
処理に必要な関係は、処理に必要な情報を示す属性辺を含む。属性辺は、フロー辺に意味を与えるために用いられる。すなわち、属性辺はフロー辺を修飾するために用いられる。より具体的には、フロー辺を用いて示される関係に対して、属性辺を用いて前記関係の全体が特定の情報源からの伝聞であること、すなわち話者と情報源との関係を用いて前記関係を修飾してもよい。
本発明に係る自然言語ユーザインタフェースとしての対話スクリプトの作成方法は、グラフ構造における頂点及び辺を用い、これらの関係を修飾するステップを用いることにより、間接話法等の複雑な対話スクリプトの作成が可能である。
【0031】
談話構造は、特に、コンピュータ処理可能な文字コードを用いて表現される会話文脈を要素に有する集合を含む。
会話の場は、具体的には、パーソナルコンピュータ、携帯電話等のネットワーク端末を介して接続した複数のユーザが相互に文字情報又は音声情報等の交換を実質的にリアルタイムに実施しうる、チャットルームサービスやネットワーク会議システム等のサービスを含む。
【0032】
(3) 前記応答手段は、有限状態ベースの対話制御手法、フレームベースの対話制御手法又はエージェントベースの対話制御手法のいずれかを前記対話制御手法として実施し、前記有限状態ベースの対話制御手法は、前記対話制御手法をクラスを用いて記述されるスクリプトである対話スクリプトとして記述し、前記フレームベースの対話制御手法は、前記対話制御手法を意味フレームとして記述し、前記エージェントベースの対話制御手法は、前記対話制御手法をエージェント動作として記述する、(1)に記載の自然言語ユーザインタフェースを生成する装置。
【0033】
前述のように、応答手段に含まれる対話制御手法としては、有限状態ベースの対話制御手法、フレームベースの対話制御手法、及びエージェントベースの対話制御手法が挙げられる。
【0034】
有限状態ベースの対話制御手法は、対話制御手法を、クラスを用いて記述されるスクリプトである対話スクリプトとして、記述することができる。例えば、有限状態ベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、予め所定の処理頂点、辺修飾属性及びフロー辺を用意し、ユーザからの入力に応じて所定の動作を実施することができる。
【0035】
フレームベースの対話制御手法は、対話制御手法を意味フレームとして記述することができる。例えば、フレームベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、意味フレームの構成要素等を辿ることを表すエッジ、及び意味フレームのスロット等を表すノードを用いて、拡張意味ネットワークの形式で格納される知識構造にアクセスすることができる。
【0036】
エージェントベースの対話制御手法は、対話制御手法をエージェント動作として記述することができる。例えば、エージェントベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、話題を絞り込む属性概念等を辿ることを表すエッジ、及び分類概念等を表すノードを用いて、拡張意味ネットワークの形式で格納される知識構造にアクセスすることができる。
【0037】
このようにすることで、本発明においては、複数の応答手段を用いて自然言語対話タスクを実行することで、自然言語対話におけるユーザへの応答をより迅速かつ柔軟にすることができる。さらに、本発明においては、異なる複数の対話制御手法に対して単一の知識構造が対応できるので、それらを同時に利用するシステムを構築・運用するコストを軽減することが可能になる。
【0038】
(4) ユーザ端末からの会話文のデータ入力を受け付ける会話文入力受付手段をさらに備え、前記応答手段はそれぞれの判別手段において、前記受け付けられた会話文の内容に応じて、前記関連付けの有無の判別を行う、(1)に記載の自然言語ユーザインタフェースを生成する装置。
【0039】
会話文のデータ入力を受け付ける会話文入力受付手段は、ユーザ端末から受信した会話文を入力として受け付ける。この会話文は、文字コードの集まり、画像としての文字情報、デジタル化された音声等を適宜含む。文字コードの集まりは、ユーザ端末が備えるキーボード等を用いてユーザが入力して送信する文字コードを含む。画像としての文字情報から文字コードへの変換、又はデジタル化された音声から文字コードへの変換は、文字認識又は音声認識として適宜設計しうる。文字コードに変換された会話文に含まれる単語を抽出することにおいては、当技術分野の周知技術である形態素解析等を用いることができる。
【0040】
本発明に係る自然言語ユーザインタフェースを生成する装置は、会話文入力受付手段を備えることにより、後続の対話スクリプト作成に用いる文字コードとして、会話文を受け付けることができる。
【0041】
ユーザによる用語の入力のための手段は、適宜、ネットワーク端末等を用いうるが、これに限らず、携帯電話やネットワーク接続可能なデジタルカメラ等でもよい。
【0042】
本発明に係る自然言語ユーザインタフェースを生成する装置が会話文入力受付手段を備えることにより、前述の判別手段は、記憶した要素に加えて、受け付けられた会話文の内容に対して知識構造における関連付けの有無を判別することが可能である。すなわち、判別手段は、当該会話文の内容に含まれる単語を、知識構造記憶手段が記憶しうるクラスに属する要素として扱い、当該要素に対して知識構造における関連付けの有無を判別することが可能である。
【0043】
このようにすることで、本発明に係る自然言語ユーザインタフェースを生成する装置は、新たに会話文として受け付けたデータ入力を、知識構造における関連付けの有無の判別に用いることができる。すなわち、本発明に係る自然言語ユーザインタフェースを生成する装置は、知識構造に記憶した処理のクラスに属する応答手段を用いて、受信した会話文を処理できる。
【0044】
処理のクラスに属する応答手段は、例えば、特定のキーワードにヒットすること、任意のキーワードにヒットすること、選択肢に分岐すること、及びユーザが送信した文字情報を変数に保存すること等を適宜含むことができる。処理のクラスに属する応答手段を用いて受信した用語を処理することは、受信した用語を始点とし、この始点と関連付けうる終点として処理頂点を決定することを含む。具体的には、状況を特定するための用語を処理するための文字列処理関数等を実行することを含む。
【0045】
処理の結果の成功又は失敗を判別することは、決定した処理頂点において受信した状況を特定するための用語が処理できないことを失敗と判別することを含む。これに限らず、文字列処理関数等を予め用意し、それぞれの文字列処理関数ごとに処理しうる文字情報を限定してもよい。具体的には、標準語を用いて応答する文字列処理関数及び方言を用いて応答する文字列処理関数等を予め用意する場合に、ユーザが方言を用いる発言を送信することに応答して、標準語の文字列処理関数を処理頂点として用語を処理することを失敗と判定してもよく、方言の文字列処理関数を処理頂点として用語を処理することを成功と判定してもよい。
【0046】
本発明に係る自然言語ユーザインタフェースを生成する装置は、受信した用語を処理するための応答手段を選択することにより、文字列処理のための機能を分類した応答手段等を用意し、効率的に対話スクリプトを作成することができる。さらに、処理結果を判別することにより、当該用語に対する処理の成功又は失敗を判別しうる。
【0047】
本発明に係る自然言語ユーザインタフェースを生成する装置は、応答手段を決定することにおいては、ランダムな選択規則、最初又は最後に用いられた応答手段を選択する規則、最も以前又は最近に用いられた応答手段を選択する規則、談話構造と最も関連性の高い応答手段を選択する規則から選ばれる規則に基づいて選択するステップを用い、動作を特定するための用語を決定しうる。
【0048】
状況を特定するための用語は、単語、文節、文等の、拡張意味ネットワークにおける頂点又は辺に格納されうる語句であればよい。
【0049】
あるいは、本発明に係る自然言語ユーザインタフェースを生成する装置が用いることのできる拡張意味ネットワークは、用語の実体をインスタンスとして扱い、インスタンスとして扱う用語のクラスを定義して当該クラスを頂点又は辺に格納してもよい。これにより、用語等の実体が巨大なデータであっても、拡張意味ネットワークにおける頂点又は辺は、クラス定義の語句又は記号を表すデータでありうる。従って、本発明に係る自然言語ユーザインタフェースを生成する装置が生成可能な自動応答の作成方法は、応答を作成するためのコンピュータ・プログラムのメモリ消費量を抑えて動作を安全に維持しうる。
【0050】
また、動作を特定するための用語の決定は、談話構造と最も関連性の高い要素を選択する規則を含み、所定の規則から適宜選択しうる。これにより、本発明に係る自然言語ユーザインタフェースを生成する装置は、内容が的確な対話応答を作成できると共に、非論理的応答を含む自動応答も作成することが可能になり、ユーザの立場から見た対話応答の単調さを避けることが可能である。
【0051】
(5) 自然言語ユーザインタフェースを生成する方法であって、コンピュータに、ユーザ端末からの会話文の入力に対応した会話文を出力する対話エージェントシステムにおける会話の状況、会話の動作及びそれらの関係を示す前記コンピュータ上での処理動作をノードとエッジで表現する、知識構造の記憶ステップと、前記知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答ステップと、を含むコンピュータ・プログラムを実行させ、前記応答ステップは、前記対話制御手法を実施するために、前記ノードに属する要素のうち少なくとも二つの前記要素の間の関係において、前記処理動作の流れを示す関係及び前記処理動作に必要な関係を前記対話ルールとして記憶する対話構造記憶ステップと、前記記憶した要素に対して前記知識構造における関連付けの有無を判別する判別ステップと、前記判別ステップによる判別の結果に応じて、前記対話構造記憶ステップにおいて記憶された前記二つの要素の間の関係を変更する変更ステップと、を含む方法。
【0052】
このようにすることで、当該方法を実施することにより、(1)と同様の効果が期待できる。本発明に係る自然言語ユーザインタフェースを生成する方法は、例えば、コンピュータを用いて実行する自然言語ユーザインタフェース生成プログラムとして提供することができる。
【発明の効果】
【0053】
本発明によれば、システムの活動によってその構成要素を外部から取り込む等の手法を有する、自己創出性を備えた知識構造を用いて、対話ルールの構築コスト及び変換コストを削減し、自然言語対話におけるユーザへの応答を迅速にすることが可能な自然言語ユーザインタフェースを生成する装置及び方法を提供することができる。
また、本発明によれば、既存の対話ルールデータに従来解釈が可能なまま新たな意味関係を定義することのできる知識構造を実装し、対話の柔軟性や対話のスムーズさを向上することが可能になる。
【図面の簡単な説明】
【0054】
【図1】本発明及び従来技術の一実施形態に係る、知識構造の基本構造における要素の関係を示す図である。
【図2】本発明の一実施形態に係る自然言語ユーザインタフェース生成システムの構成を示す図である。
【図3】本発明の好適な実施形態の一例に係る、知識構造のデータ構造を表す図である。
【図4】本発明の一実施形態に係る、自然言語ユーザインタフェース生成システムによる対話スクリプト作成と知識構造との関係を示す図である。
【図5】本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置が生成する、対話エージェントの動作を説明するためのフロー図である。
【図6】本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置が生成する、応答処理の動作を説明するためのフロー図である。
【図7】本発明の一実施形態に係る、応答処理において、メッセージの処理のために実行される有限状態ベースの対話制御手法による応答モジュールの動作を説明するためのフロー図である。
【図8】本発明の一実施形態に係る、有限状態ベースの対話制御手法における対話応答のための知識構造の例を示す図である。
【図9】本発明の一実施形態に係る、有限状態ベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。
【図10】本発明の一実施形態に係る、有限状態ベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。
【図11】本発明の一実施形態に係る、有限状態ベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。
【図12】本発明の一実施形態に係る、自然言語ユーザインタフェース生成のための共通概念を例示する図である。
【図13】本発明の一実施形態に係る、有限状態ベースの対話制御手法による対話ルールの例を示す図である。
【図14】本発明の一実施形態に係る、フレームベースの対話制御手法による自然言語ユーザインタフェース530を生成する例を示す図である。
【図15】本発明の一実施形態に係る、フレームベースの対話制御手法における対話応答のための知識構造の例を示す図である。
【図16】本発明の一実施形態に係る、エージェントベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。
【図17】本発明の一実施形態に係る、エージェントベースの対話制御手法における対話応答のための知識構造の例を示す図である。
【図18】本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置の応答モジュールに含まれる対話ルールの全体像を例示する図である。
【発明を実施するための形態】
【0055】
以下、本発明の実施形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【0056】
本実施形態は、コンピュータ及びその周辺装置に適用される。本実施形態における各部は、コンピュータ及びその周辺装置が備える、ハードウェア及び該ハードウェアを制御するソフトウェアによって構成される。
【0057】
上記ハードウェアには、制御部としてのCPU(Central Processing Unit)の他、記憶部、通信装置、表示装置及び入力装置が含まれる。記憶部としては、例えば、メモリ(RAM:Random Access Memory、ROM:Read Only Memory等)、ハードディスクドライブ(HDD:Hard Disk Drive)及び光ディスク(CD:Compact Disk、DVD:Digital Versatile Disk等)ドライブが挙げられる。通信装置としては、例えば、各種有線及び無線インターフェース装置が挙げられる。表示装置としては、例えば、液晶ディスプレイ、プラズマディスプレイ等の各種ディスプレイが挙げられる。入力装置としては、例えば、キーボード及びポインティング・デバイス(マウス、トラッキングボール等)が挙げられる。
【0058】
上記ソフトウェアには、上記ハードウェアを制御するコンピュータ・プログラムやデータが含まれる。コンピュータ・プログラムやデータは、記憶部により記憶され、制御部により適宜実行、参照される。また、コンピュータ・プログラムやデータは、通信回線を介して配布されることも可能であり、CD−ROM等のコンピュータ可読媒体に記録して配布されることも可能である。
【0059】
[拡張意味ネットワークの構造]
図1は、本発明及び従来技術の一実施形態に係る、知識構造の基本構造における要素の関係を示す図である。
【0060】
まず、意味又は記憶の構造を表すためのモデルに用いられる、公知の意味ネットワークの形式について説明する。
【0061】
図1(b)は、意味ネットワークを表すグラフ構造を示す図である。辺e(93)は、始点vs(91)及び終点vd(92)で定義され、始点から終点に向かう矢印で表される。意味ネットワークは次の数式1から数式3を用いて表される形式を有する。
【数1】
【数2】
【数3】
式中、SN:意味ネットワーク(Semantic Network)
VSN:意味ネットワークに含まれる頂点(Vertex)の集合
ESN:意味ネットワークに含まれる辺(Edge)の集合
v:頂点の集合Vの要素
e:辺の集合Eの要素
vs:始点
vd:終点
である。
【0062】
数式1は、意味ネットワークが頂点の集合VSN及び辺の集合ESNで構成されることを表す。数式2は、頂点の集合VSN要素vを有することを表す。数式3は、辺の集合ESNは辺の要素eを有し、辺の要素eは始点vs及び終点vdで定義され、始点vs及び終点vdは頂点の集合VSNに属することを表す。
【0063】
次いで、本発明に係る自然言語ユーザインタフェースを生成する装置が用いることのできる拡張意味ネットワークの形式について説明する。
【0064】
図1(a)は、拡張意味ネットワークを表すグラフを示す図である。辺ee(83)は始点es(81)及び終点ed(82)で定義され、始点から終点に向かう矢印で表される。辺ei(85)は始点ec(84)を有して終点は辺ee(83)である。拡張意味ネットワークは次の形式を有する。
【数4】
式中、ASN:拡張意味ネットワーク(Augmented Semantic Network)
EASN:拡張意味ネットワークの集合
e:集合Eの要素である拡張組要素
es:始点
ed:終点
null:空要素
である。
【0065】
数式4は、二項の組を構成するes、edが要素集合EASNの要素か、あるいは空要素nullであることを表す。さらに、拡張意味ネットワークは、次の要素集合を有する。
【数5】
【数6】
【数7】
式中、ASNVE:拡張意味ネットワークASNの構成要素
Ev:拡張意味ネットワークにおける頂点の集合
Ee:拡張意味ネットワークにおける辺の集合
である。
【0066】
数式5は、拡張意味ネットワークが頂点の集合Ev及び辺の集合Eeを構成要素とすることを表す。数式6は、頂点の集合Evは拡張組要素es、edが両方とも空要素であるときの要素e(es,ed)を含むことを表す。数式7は、辺の集合Eeは拡張組要素es、edが辺の集合Evに属するときの要素e(es,ed)を含むことを表す。
【0067】
数式6及び数式7は、共通して要素e(es,ed)を用いて表現される。すなわち、拡張意味ネットワークにおいては、要素に含まれる辺の終点が終点edだけではなく辺e(es,ed)でもありうることにおいて、公知の意味ネットワークとの相違点を有する。従って、拡張意味ネットワークにおいては、図1(a)に示したように、始点ec(84)から始まる辺ei(85)の終点を辺ee(83)としうる。
【0068】
上記拡張意味ネットワーク及び公知の意味ネットワークにおいては、頂点が概念や事象を格納するために用いられ、頂点を結ぶ辺がそれらの関係の意味付けを格納するために用いられることは共通している。また、頂点や辺の具体的な意味は外部から与えることにおいても共通である。
【0069】
上記拡張意味ネットワークにおいては、辺を辺の接続対象にできるという自由度を発生させることができる。これにより、本発明に係る自然言語ユーザインタフェース生成装置10が用いることのできる対話スクリプトの作成は、知識構造に属する複数の要素を用いて、従来よりも要素間の関連付けの拡張性を広範に確保し、要素間の関連付けを用いて従来よりも柔軟な応答を生成する対話スクリプトを作成しうる。
【0070】
[頂点及び辺のクラス]
表1に、具体的な頂点及び辺のクラスを例示する。これらに限らず、本発明に係る自然言語ユーザインタフェース生成方法に用いることが可能な、グラフ構造における頂点及び辺を定義できる。表1に示す頂点及び辺はいずれも頂点のクラス、辺のクラスとして取り扱い、それぞれの実体を個別に定義することが可能である。
【0071】
処理のクラスは、具体的な処理を実施するための処理頂点を含む。処理のクラスに属する処理頂点の実体、すなわち処理のインスタンスは、コンピュータ処理可能な文字情報に対する処理を適宜含む。
データのクラスは、静的にデータを格納するためのデータ頂点を含む。データのインスタンスは、コンピュータ処理可能な文字コードの集まり等を適宜含む。
変数のクラスは、動的データの参照先を示す変数頂点を含む。変数のインスタンスは、対話スクリプトの実行の各段階における変数を適宜含む。
属性のクラスは、対話スクリプト要素に意味を与える属性頂点を適宜含む。属性のインスタンスは、対話スクリプト要素に含まれる文字情報等の上位概念等を適宜含む。具体的には、本発明に係る自然言語ユーザインタフェース生成方法は、同一の用語「時計」に対する属性のインスタンスとして、「時間を計測するための道具」又は「装飾目的の贅沢品」等を適宜関連付けてもよく、それぞれの属性のインスタンスに基づいて、対話スクリプトにおける前記用語「時計」の意味を変化させる。
また、処理の流れの関係、及び処理に必要な関係は、いずれも、グラフ構造における辺として扱われる。
【0072】
処理の流れの関係は、始点と終点とを関連付けるフロー辺を含む。フロー辺は終点を修飾するために用いられる。
処理に必要な関係は、処理に必要な情報を示す属性辺を含む。属性辺は、フロー辺に意味を与えるために用いられる。すなわち、属性辺はフロー辺を修飾するために用いられる。より具体的には、フロー辺を用いて示される関係に対して、属性辺を用いて関係の全体が特定の情報源からの伝聞であること、すなわち話者と情報源との関係を用いて関係を修飾してもよい。
【0073】
本発明に係る自然言語ユーザインタフェース生成方法は、グラフ構造における頂点及び辺を用い、これらの関係を修飾するステップを用いることにより、間接話法等の複雑な対話スクリプトの作成が可能である。
【表1】
【0074】
[自然言語ユーザインタフェース生成システム20の構成]
図2は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成システム20の構成を示す図である。自然言語ユーザインタフェース生成システム20は、自然言語ユーザインタフェース生成装置10、対話エージェント装置50、ユーザ端末60及びネットワーク38等を含む。ネットワーク38はイントラネットでもよく、インターネット等でもよい。ユーザ端末60は、パーソナルコンピュータ、携帯電話端末等のネットワーク接続可能な端末を含む。
【0075】
対話エージェント装置50は、本発明に係る自然言語ユーザインタフェース生成装置10により作成されるスクリプトを実行し、ユーザに対する自動対話を実行するために用いられる。
【0076】
自然言語ユーザインタフェース生成装置10は、応答手段110及び知識構造記憶手段160を備える。
【0077】
知識構造記憶手段160は、本発明に係る自然言語ユーザインタフェース生成方法のための知識構造を記憶するために用いられる、知識構造の記憶手段である。具体的には、知識構造記憶手段160は、対話エージェント装置50における会話の状況、会話の動作及びそれらの関係を示す、コンピュータ処理可能な情報と情報に対する処理動作とを、ノード(頂点)とエッジ(辺)で表現して記憶するために用いられる。加えて、知識構造記憶手段160は、ユーザから送信された文言に含まれる任意の語句、自然言語ユーザインタフェース生成装置10が対話スクリプトの生成のために用いる知識及び語句、作成された応答に含まれる任意の語句、及び自然言語の分野における生成文法規則及び語句の頻度等の派生的な情報を、適宜記憶してもよい。
【0078】
応答手段110は、複数の対話ルールと対話制御手法の組を予め関連付けて実行するために用いられる。応答手段110は、対話構造記憶手段111、判別手段112及び変更手段113を備える。本実施形態において、応答手段110は、詳細を後述する、次のような対話制御手法を実装するために用いられる。
[A]有限状態(finite state)ベースの対話制御手法
[B]フレーム(frame)ベースの対話制御手法
[C]エージェント(agent)ベースの対話制御手法
【0079】
対話構造記憶手段111は、自然言語による対話構造を記憶するために用いられる。詳細には、対話構造記憶手段111は、少なくとも二つの要素の間の関係において、処理動作の流れを示す関係及び処理動作に必要な関係を、対話ルールとして記憶するために用いられる。
【0080】
判別手段112は、記憶した要素に対して知識構造記憶手段160における関連付けの有無を判別するために用いられる。
【0081】
変更手段113は、判別手段による判別の結果に応じて、対話構造記憶手段111に記憶された二つの要素の間の関係を変更するために用いられる。
【0082】
すなわち、本実施形態の自然言語ユーザインタフェース生成装置10において、対話構造記憶手段111、判別手段112及び変更手段113が連携して動作することにより、自然対話に対する特定の対話ルールに従って、知識構造に格納される二つの要素間の関係を変更することが可能になる。
【0083】
図2に示す応答手段110が複数の対話制御手法を実装する場合には、それらの複数の対話制御手法は、いずれも、共通の知識構造記憶手段160に記憶される、自然言語ユーザインタフェース生成方法のための知識構造にアクセスすることができる。
【0084】
このようにすることで、本発明に係る自然言語ユーザインタフェース生成装置10は、応答手段110を用いて知識構造記憶手段160にアクセスし、自然言語による対話応答のための自然言語ユーザインタフェースを生成することができる。
【0085】
図2にはネットワーク38を介して相互に接続する複数機器を示したが、これに限らず、自然言語ユーザインタフェース生成装置10、対話エージェント装置50及びユーザインタフェース(図示せず)の機能を1台の機器に備えてもよい。
【0086】
本発明の一実施形態に係る、自然言語ユーザインタフェース生成システム20を用いることにより、ユーザの入力に応答する自然言語ユーザインタフェースを生成するシステムを提供することができる。
【0087】
[知識構造のデータ構造]
図3は、本発明の一実施形態に係る、知識構造のデータ構造を表す図である。すなわち、図3に示す知識構造データ構造260は、図2に示した知識構造記憶手段160が本発明に係る知識構造を記憶するために用いられる。
【0088】
図3に示す知識構造データ構造260は、識別子261により個別に識別されるデータの一つについて関連付けられる、始点262、終点264、ラベル266、ポインタ268等を含む。これらに限らず、知識構造データ構造260に含まれ関連付けられる情報は適宜設計してもよい。また、識別子261は、記憶されるデータを識別しうる形式であれば数字でも文字でもよく、適宜設計してもよい。
【0089】
始点262及び終点264は、知識構造データ構造260に記憶されるデータの他のデータとの修飾の関係を示す。一つの識別子を有するデータに対して始点262及び終点264の一つずつが定義されてもよく、複数が提起されてもよく、空白でもよい。始点262及び終点264がいずれも空白であることは、そのデータが拡張意味ネットワークにおける頂点であることを示すので、拡張意味ネットワークにおいて取り扱いうるデータに含まれる。
【0090】
ラベル266は、識別子261により個別に識別されるデータの一つについて、予め拡張意味ネットワークにおいて予約されるか、又はユーザにより定義される領域である。予約は、より具体的には、拡張意味ネットワークにおいて取り扱われる要素にクラスを定義し、要素が追記される等の拡張意味ネットワークの動作において生成される要素同士の関係を予め定義するためのものである。
【0091】
例えば、予約されるクラスの定義には次のものが用いられうる。
(クラス1)vroot:全知識要素の開始点
(クラス2)vusr:ユーザのクラス
(クラス3)vact:動作のクラス
(クラス4)vins:インスタンス化関係のクラス
【0092】
vrootは、全知識要素の開始点であり、他の任意の要素を定義するための始点でありうる。vusrは、次に説明する動作クラスを目的やユーザに応じて整理するためのクラスである。vactは、本発明の実施形態に係る自動対話応答生成システムが実施する対話応答等の動作を知識要素に含めるためのクラスである。vinsは、本発明の実施形態に係る自動対話応答生成システム等において、メモリ上に配置されたデータの集合等の実体を示すためのクラスである。例えば、基本的な応答動作をとりまとめる頂点ubrは、クラスvusrのインスタンスである枝u_iによってvrootから接続され定義される。基本的な動作であるkeyword、relation、message等は、それぞれクラスvartのインスタンスである枝によって頂点ubrから接続され定義される。頂点ubrや基本的な動作を表す頂点のラベル266には、ユーザ端末から送信された文字列等の知識DBを人が管理する際に認識しやすい説明文字が含まれる。
【0093】
ポインタ268は、一つの識別子を有するデータであって、上述の始点262、終点264、又はラベル266以外の情報を含むデータを知識構造記憶手段160に記憶し、取り扱うことができるようにするためのものである。例えば、当業に公知の文字列処理関数等は、ポインタ268に当該関数を関連付けることにより、知識構造記憶手段160に取り込むことが可能になる。
【0094】
本発明に係る自然言語ユーザインタフェース生成装置10は、知識構造データ構造260を備える知識構造記憶手段160を用いて、自然言語による対話応答において取り扱いうるデータ、及び自然言語ユーザインタフェースの生成とは特に関連性のない一般的な文字列処理関数等を、いずれも知識構造記憶手段160に取り込んで使用することができる。
【0095】
[自然言語ユーザインタフェース生成システム20と知識構造との関係]
図4は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成システム20による対話スクリプト作成と知識構造との関係を示す図である。具体的には、図4に示す対話スクリプト作成支援システム200は、図2に示した自然言語ユーザインタフェース生成装置10を用いて実行可能な多様なコンピュータ・プログラムと、知識構造230とからなる。このコンピュータ・プログラムは、例えば、自然言語ユーザインタフェース生成装置10に含まれるコンピュータ装置等が適宜備えるメモリデバイス等(図示せず)に格納される。
【0096】
また、当該コンピュータ・プログラムは、システムの基本入出力等の動作に係るカーネル202、サーバを介してクライアントとクライアントが会話をする枠組みの名称であるインターネット・リレー・チャット(Internet Relay Chat、IRCと略称)のためのセッション管理204、IRCにおけるチャネル管理206、208を含む。
【0097】
チャネル管理206、208は、一人のユーザに一つのチャネル管理を割り当ててもよく、一人のユーザに複数のチャネル管理を割り当ててもよい。ユーザとチャネル管理との対応関係は特に問わない。チャネル管理206、208は、これらに限らず、任意の数のチャネル管理を設けてもよい。それぞれのチャネル管理により制御されうる応答等の数は適宜設計しうる。
【0098】
また、当該コンピュータ・プログラムは、チャネル管理206により制御されうる基本応答210、発言制御応答212、ヘルプ応答214、時間応答216等を適宜含み、また、チャネル管理208により制御されうる基本応答218、発言制御応答220、時間応答222等を適宜含む。これらは個別に機能を有する応答モジュールであり、それぞれの応答モジュールの機能は適宜設計しうる。
【0099】
基本応答210、218は対話応答におけるユーザからの入力に対する基本的な応答を生成することを含み、具体的には、対話の開始又は終了の時点における典型的な応答の生成等を含む。発言制御応答212、220は対話応答においてユーザに長文の回答をタイミングよく提示する等の、制約を有する応答の生成を含む。ヘルプ応答214は、ユーザからの操作説明要求等に応じて適宜ヘルプ情報等の応答を生成することを含む。時間応答216、222は、対話の経過時間又はシステムの稼働時刻等に基づく応答の生成を含み、具体的には、終了時にユーザに対して「30分使用しました」等の経過時間を送信するために用意すること、又は年始にユーザに対して「本年もよろしくお願いします」等の時候の挨拶等を送信するために用意すること等を含む。
【0100】
さらに、当該コンピュータ・プログラムは、基本応答210、218、発言制御応答212、220等を用いて知識構造230にアクセスしうる。知識構造230は、図3に示したように、識別子261により識別されるデータを含む。
【0101】
本発明の一実施形態に係る対話スクリプト作成支援システム200は、チャネル管理を介して知識構造230にアクセスすることにより、すでに知識構造230に記憶されたデータを用いて対話応答のためのデータを生成し、生成した対話応答を知識構造230に記憶することが可能である。
【0102】
[対話エージェントの動作]
図5は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置10が生成する、対話エージェントの動作を説明するためのフロー図である。具体的には、対話エージェントは、図2に示した対話エージェント装置50において動作することができるが、これに限らず、対話エージェントは、本発明に係る自然言語ユーザインタフェース生成システム20のいずれかのコンピュータ資源において動作してもよい。
【0103】
対話エージェントは、システムを初期化するステップ(S100)において、システムの内部変数等を初期化する。
【0104】
次いで、対話エージェントは、メッセージ入力をチェックするステップ(S102)において、ユーザからのメッセージ入力の有無を調べ、検出できたことを判定するステップ(S104)においてメッセージを検出できた場合はステップ(S108)に分岐し、検出できない場合はステップ(S106)に分岐する。
【0105】
自発的な処理を実行するステップ(S106)においては、対話エージェントは、記憶媒体の空き容量計算等の、ユーザからのメッセージ入力等とは直接に関係のない処理や、ユーザが対話によるタスク実行に行き詰まったときに次に行うべき項目をガイドする等の処理を実行し、ステップ(S102)に戻る。
【0106】
応答処理を実行するステップ(S108)においては、対話エージェントは、ユーザからのメッセージ入力への応答処理を実行する。
【0107】
終了指示が出たことを判定するステップ(S110)においては、対話エージェントは、ユーザからの終了指示の有無を判定する。具体的には、ユーザは対話応答サービス等の使用を終了することをコマンドの送信等により通知してもよい。あるいは、ユーザが「/終了」等のメッセージを対話応答サービス等に送信することにより、冒頭の「/」を対話エージェントが識別し、以後の文字情報を動作のための制御命令と解釈し、終了指示として扱ってもよい。終了指示のための情報の送受信は適宜設計しうる。終了指示が出た場合は終了し、終了指示が出ていない場合はステップ(S102)に戻る。
対話エージェントは、上述のように動作することにより、ユーザからの終了指示が出るまでの期間に繰り返してステップ(S108)を用い、応答処理を実行することができる。
【0108】
[応答処理の動作]
図6は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置10が生成する、応答処理の動作を説明するためのフロー図である。この応答処理は、図5の前述の対話エージェントの動作において、ステップ(S108)の一つとして実行される。
【0109】
応答処理は、ステップ(S120)において、ユーザから送信されたメッセージをmとする時に、当該メッセージmが発言されたチャネルに対応するチャネル管理構造を取得する。このチャネル管理構造をcとする。具体的には、チャネル管理構造cは、図4を用いて前述の、チャネル管理206、208等においてチャネルを相互に区別するための情報、基本応答等の応答モジュールの情報等を適宜含む。
【0110】
次いで応答処理は、ステップ(S122)において、チャネル管理構造cを取得できたかどうかを判定する。取得できた場合はステップ(S124)に進み、できない場合は動作を終了する。
【0111】
次いで応答処理は、ステップ(S124)において、チャネル管理構造cに設定された応答モジュールの集合をRとし、ステップ(S126)において集合Rが空集合であるかどうかを判定する。空集合である場合は動作を終了し、空集合でない場合はステップ(S128)に進む。具体的には、応答モジュールの集合Rは、図4の基本応答210、発言制御応答212等を適宜含む。
【0112】
次いで応答処理は、ステップ(S128)において、応答モジュールの集合Rから応答モジュールを一つ取り出しrとする。さらに、ステップ(S130)において、応答モジュールrを用いてメッセージmの処理を試みる。ステップ(S132)において、この処理が成功したかどうかを判定し、成功した場合は応答処理を終了し、成功しない場合はステップ(S126)に戻る。
【0113】
本発明に係る応答処理は、上述のように動作することにより、メッセージmの受信を契機として応答モジュールを用いて対話応答を生成することができる。
【0114】
[応答モジュールの動作]
図7は、本発明の一実施形態に係る、応答処理において、メッセージの処理のために実行される有限状態ベースの対話制御手法による応答モジュールの動作を説明するためのフロー図である。応答モジュールは、図6の応答処理の動作に含まれるステップ(S130)において実行される。
応答モジュールは、ステップ(S140)において、メッセージmが発言されたチャネルに対応するチャネル管理構造cを取得する。
次いで、応答モジュールは、ステップ(S142)において、現在の位置をチャネル管理構造cから取得する。位置は、具体的には、図3を用いて前述の、知識構造に含まれる識別子261を用いてもよく、それぞれのチャネル管理構造が独自に番号付け等を実施してもよく、適宜設計しうる。この位置をctxとする。
【0115】
次いで、応答モジュールは、ステップ(S144)において、位置ctxが空要素(null)であるかどうかを判定し、空要素である場合はステップ(S146)に進み、空要素でない場合はステップ(S148)に進む。具体的には位置が空要素であることは、当該対話ルールがまだ実行を開始していないこと、又は新規に対話ルールの文脈が生成されること等を意味する。
ステップ(S146)において、応答モジュールは位置ctxに対話ルールの文脈を設定する。具体的には、知識構造における有限状態ベースの対話制御手法の対話ルールの始点でありうる要素を位置ctxに関連付ける。
【0116】
次いで、応答モジュールは、ステップ(S148)において、位置ctxを始点とし、この始点から出るフロー辺の先に、メッセージmにヒットする語をラベルとする頂点からのびるフロー辺の先の処理頂点を集合Rとする。具体的には、始点として用語「レストラン」が設定され、ユーザがメッセージとして「2人で金曜日の晩に食事したい」という文言を送信した場合に、この文言に含まれる「2人」「金曜日」等の用語をラベルとする頂点からのびるフロー辺の先の処理頂点として、具体的なレストランの名称等を応答すること、又は金曜日に訪問しやすい繁華街等の名称を応答すること、又は2人以上の予約に対する優待サービスの情報を応答すること等からなる処理頂点の集合を関連付ける。
【0117】
次いで、応答モジュールは、ステップ(S150)において、処理頂点の集合が空集合であるかどうかを判定し、空集合である場合は応答モジュールを終了し、空集合でない場合はステップ(S152)に進む。
次いで、応答モジュールは、ステップ(S152)において、処理頂点の集合から処理頂点を一つ取り出しrとする。処理頂点の集合Rから処理頂点rを一つ取り出すための規則は、ランダムな選択規則、最初又は最後に抽出された要素を選択する規則、最も以前又は最近に抽出された要素を選択する規則、談話構造と最も関連性の高い要素を選択する規則から選ばれる規則に基づいて選択されうる。
【0118】
次いで、応答モジュールは、ステップ(S154)において、処理頂点rに関連付けられる関数を実行する。この関連付けは、ポインタを介する関数の呼び出し等でもよい。具体的には、この処理頂点は、スクリプトの進捗状況を記憶することでもよく、ユーザへの応答を出力することでもよく、適宜設計しうる。ステップ(S154)の後は、応答モジュールの実行は終了する。
本発明に係る応答モジュールは、上述のように動作することにより、処理頂点rを用いて対話応答を生成するための関数を実行しうる。
【0119】
[複数の応答手段]
本実施形態において、本発明に係る自然言語ユーザインタフェース生成装置10は、所定の対話ルールと所定の対話制御方法とを組み合わせ、所定の対話制御手法を複数用いて、共通の知識構造にアクセスし、自然言語による対話応答のためのユーザインタフェースを生成することができる。具体的には、自然言語ユーザインタフェース生成装置10は、応答手段110に複数の所定の対話制御手法を実装し、応答手段110は共通の知識構造記憶手段160にアクセスして、自然言語による対話応答のためのユーザインタフェースを生成することができる。このように動作する応答手段110に実装できる対話制御手法としては、以下が挙げられる。
[A]有限状態(finite state)ベースの対話制御手法
[B]フレーム(frame)ベースの対話制御手法
[C]エージェント(agent)ベースの対話制御手法
【0120】
本発明に係る自然言語ユーザインタフェース生成装置10は、例えば、図5に示したステップ(S108)又はステップ(S106)の動作において、前述の[A][B]又は[C]の対話制御手法のいずれか又は複数を組み合わせて用いることができる。別の実施形態において、前述の対話制御手法を選択することは、詳細フロー図である図6に含まれるステップ(S128)において、応答モジュールを一つ取り出すこととして行うことができる。すなわち、本発明に係る自然言語ユーザインタフェース生成装置10は、所定の対話ルールと所定の対話制御方法とを組み合わせた応答モジュールを、複数用いて、共通の知識構造にアクセスし、自然言語による対話応答のためのユーザインタフェースを生成することができる。
【0121】
有限状態ベースの対話制御手法は、対話制御手法を、クラスを用いて記述されるスクリプトである対話スクリプトとして、記述することができる。例えば、有限状態ベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、予め所定の処理頂点、辺修飾属性及びフロー辺を用意し、ユーザからの入力に応じて所定の動作を実施することができる。
【0122】
フレームベースの対話制御手法は、対話制御手法を意味フレームとして記述することができる。例えば、フレームベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、意味フレームの構成要素等を辿ることを表すエッジ、及び意味フレームのスロット等を表すノードを用いて、拡張意味ネットワークの形式で格納される知識構造にアクセスすることができる。
【0123】
エージェントベースの対話制御手法は、対話制御手法をエージェント動作として記述することができる。例えば、エージェントベースの対話制御手法においては、本発明に係る自然言語ユーザインタフェースを生成する装置は、話題を絞り込む属性概念等を辿ることを表すエッジ、及び分類概念等を表すノードを用いて、拡張意味ネットワークの形式で格納される知識構造にアクセスすることができる。
【0124】
このようにすることで、本発明に係る自然言語ユーザインタフェース生成装置10においては、複数の対話処理ユニットを用いて応答モジュールを動作させ、自然言語対話におけるユーザへの応答をより迅速かつ柔軟にすることができる。さらに、本発明に係る自然言語ユーザインタフェース生成装置10においては、異なる複数の対話制御手法に対して単一の知識構造記憶手段160が対応できるので、知識構造の運用及び維持等に関連するシステム構築及び運用コストを軽減することが可能になる。
【0125】
以下、本発明に係る自然言語ユーザインタフェース生成装置10の応答モジュールの動作に関し、前述の[A]有限状態ベースの対話制御手法、[B]フレームベースの対話制御手法、及び[C]エージェントベースの対話制御手法のそれぞれを説明する。
【0126】
最初に、有限状態ベースの対話制御手法における応答処理及び応答モジュールの例、及びこの対話制御手法を用いる応答の生成例を示す。次いで、この生成例と比較して、フレームベースの対話制御手法及びエージェントベースの対話制御手法における応答の生成例を示す。
【0127】
[有限状態ベースの対話制御手法]
[処理のクラス]
表2に、応答モジュールとして選択しうる基本処理頂点を例示する。これらに限らず、予め用意する処理頂点は適宜設計しうる。
【表2】
【0128】
本実施形態において、ユーザからの入力を反復出力し、選択肢に分岐する処理頂点「CFM」は以下のように動作しうる。
(CFM−1)処理中のCFMインスタンスから引数属性辺vをたどり、確認内容格納先cを得る。
(CFM−2)処理中のCFMインスタンスから引数属性辺smをたどり、処理頂点aの取得を試みる。
(CFM−3)処理頂点aが見つかった場合、実行する。
(CFM−4)処理中のCFMインスタンスから引数属性辺fmtをたどり、データ頂点dの取得を試みる。
(CFM−5)データ頂点dが見つかった場合、その文字列でcの内容を整形してユーザに応答する。
(CFM−6)システムが管理する現在のコンテキストを、処理中のCFMインスタンスに変更する。
【0129】
本実施形態において、スクリプトの進捗状況を変数に保存する処理頂点「SVC」は以下のように動作しうる。
(SVC−1)処理中のSVCインスタンスから引数属性辺vをたどり、コンテキスト格納先cを得る。
(SVC−2)対話スクリプト内の進捗位置である現在のコンテキストをシステムから取得し、cに格納する。
(SVC−3)コンテキストが設定されていた場合、成功及び即時実行属性の付いたフロー辺が処理中のSVCインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
(SVC−4)コンテキストが設定されていなかった場合、失敗及び即時実行属性の付いたフロー辺が処理中のSVCインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
【0130】
本実施形態において、ユーザの最終発言を変数に保存する処理頂点「SVT」は以下のように動作しうる。
(SVT−1)処理中のSVTインスタンスから引数属性辺vをたどり、ユーザ発言格納先tを得る。
(SVT−2)ユーザが最後に発言した文字列の先頭トークンをシステムから取得し、tに格納する。
(SVT−3)即時実行属性の付いたフロー辺が処理中のSVCインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
【0131】
本実施形態において、何もしない処理頂点「NOP」は以下のように動作しうる。
(NOP−1)処理中のNOPインスタンスから引数属性辺smをたどり、処理頂点aの取得を試みる。
(NOP−2)処理頂点aが見つかった場合、実行する。通常は回答頂点が処理頂点として構成されるので、応答メッセージを出力する処理を行うことになる。
(NOP−3)システムが管理する現在のコンテキストを、処理中のNOPインスタンスに変更する。
(NOP−4)即時実行属性の付いたフロー辺が処理中のSVCインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
【0132】
本実施形態において、スクリプトを終了する処理頂点「QUI」は以下のように動作しうる。
(QUI−1)処理中のQUIインスタンスから引数属性辺smをたどり、処理頂点aの取得を試みる。
(QUI−2)処理頂点aが見つかった場合、実行する。通常は回答頂点が処理頂点として構成されるので、応答メッセージを出力する処理を行うことになる。
(QUI−3)処理中のSVCインスタンスから引数属性辺vをたどり、コンテキスト参照先cの取得を試みる。
(QUI−4)コンテキスト参照先cが見つかった場合、システムが管理する現在のコンテキストを、cに変更する。
(QUI−5)コンテキスト参照先cが見つからなかった場合、システムが管理する現在のコンテキストをリセットする。
【0133】
表3に、基本処理頂点以外の、固有処理頂点を例示する。
【表3】
【0134】
一実施形態において、固有処理頂点CSMSは以下のように動作しうる。
(CSMS−1)処理中のCSMSインスタンスから引数属性辺vをたどり、コンテキスト参照先cを得る。
(CSMS−2)処理中のCSMSインスタンスから引数属性辺v2をたどり、処理対象選択メッセージ頂点格納先mを得る。
(CSMS−3)処理中のCSMSインスタンスから引数属性辺v3をたどり、選択メッセージ検索語参照先sを得る。
(CSMS−4)コンテキストcから選択メッセージ辺で到達可能な処理頂点の集合をSMとする。
(CSMS−5)集合SMから文字列データに検索語sを含む処理頂点smを検索する。
(CSMS−6)処理頂点smが見つかった場合、smをmに格納し、成功及び即時実行属性の付いたフロー辺が処理中のCSMSインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
(CSMS−7)処理頂点smが見つからなかった場合、失敗及び即時実行属性の付いたフロー辺が処理中のCSMSインスタンスから接続されていれば、その辺をたどった先の処理頂点を実行する。
【0135】
一実施形態において、固有処理頂点CSMDは以下のように動作しうる。
(CSMD−1)処理中のCSMDインスタンスから引数属性辺vをたどり、処理対象選択メッセージ頂点参照先mを得る。
(CSMD−2)処理中のCSMDインスタンスから引数属性辺v2をたどり、コンテキスト参照先cを得る。
(CSMD−3)コンテキストcから選択メッセージ辺で到達可能な処理頂点の集合をSMとする。
(CSMD−4)集合SMの要素数が2以上である場合、処理対象選択メッセージ頂点mを削除する。
(CSMD−5)削除した場合、処理中のCSMSインスタンスから成功属性の付いた選択メッセージ辺が接続されていれば、そのたどり先の処理頂点を実行する。
(CSMD−6)削除しなかった場合、処理中のCSMSインスタンスから失敗属性の付いた選択メッセージ辺が接続されていれば、そのたどり先の処理頂点を実行する。
(CSMD−7)システムが管理する現在のコンテキストを、cに変更する。
【0136】
一実施形態において、固有処理頂点CSMPは以下のように動作しうる。
(CSMP−1)処理中のCSMPインスタンスから引数属性辺vをたどり、処理対象選択メッセージ頂点参照先mを得る。
(CSMP−2)処理中のCSMPインスタンスから引数属性辺v2をたどり、新しい選択メッセージ文字列の参照先nを得る。
(CSMP−3)処理中のCSMPインスタンスから引数属性辺v3をたどり、コンテキスト参照先cを得る。
(CSMP−4)処理中のCSMPインスタンスから引数属性辺smをたどり、処理頂点aの取得を試みる。
(CSMP−5)処理頂点aが見つかった場合、実行する。
(CSMP−6)処理対象選択メッセージ頂点mの文字列データを新しい選択メッセージ文字列nで置き換える。
(CSMP−7)システムが管理する現在のコンテキストを、cに変更する。
【0137】
[データのインスタンス]
データ頂点はそのインスタンスのラベル文字列に静的データを格納する。変数頂点は変数ごとにそれぞれ頂点を定義する。この頂点のインスタンス辺の終点に動的データを設定する。
【0138】
表4に文字列データを、表5に変数頂点を例示する。これらに限らず、静的データは適宜設計しうる。
【表4】
【表5】
【0139】
[辺修飾属性のクラス]
辺修飾属性インスタンスはフロー辺を修飾し、その意味を修飾する。
【0140】
表6に、基本的な属性頂点を例示する。これらのインスタンスは辺であり、その終点に修飾対象を設定する。通常修飾対象は辺であり、その場合、これらインスタンス辺の始点は修飾対象辺の始点と同じに設定する。
【0141】
属性頂点は、それぞれを小円内の1文字に略記して図示してもよい。例えば、処理フローを即座に移動する属性頂点IMMを小円内の1文字「i」で、処理が成功した場合にフローを移動する属性頂点SUCを小円内の1文字「s」で図示してもよい。
【表6】
【0142】
[フロー辺のインスタンス]
フロー辺のインスタンスは処理を進めることを示す。このインスタンスは属性修飾を受けることができる。このインスタンスの始点と終点は処理頂点のインスタンスである。
【0143】
[属性辺のクラス]
属性辺のインスタンスは処理頂点の処理実行に必要な情報を提供する。表7に、基本的な属性辺を例示する。これらのインスタンスは属性付与対象の頂点や辺を始点に、属性値を終点に設定する。
【表7】
【0144】
[対話応答の例]
図8は、本発明の一実施形態に係る、有限状態ベースの対話制御手法における対話応答のための知識構造の例を示す図である。図8に示す対話応答のための知識構造は、アプリオリオントロジーノード300、ユーザノード340、動作ノード350〜370、データノード380を含む。
【0145】
アプリオリオントロジーノード300は、図3を用いて示した知識DBデータ構造における、予約されるクラスの定義に対応する。すなわち、本発明に係る拡張意味ネットワークに含まれるクラスの定義を含み、グラフ構造においては始点でありうる頂点である。アプリオリオントロジーノード300は、全知識要素の開始点を表すクラスroot301、ユーザ関係のクラスを表すuser310、動作関係のクラスを表すaction320、及びインスタンス関係のクラスを表すinstance330を含む。
【0146】
ユーザノード340は、本発明に係る自然言語ユーザインタフェース生成装置10又は自然言語ユーザインタフェース生成サービス等を用いるユーザによる対話スクリプトのための、基本的なルールを表す。図8に示す、有限状態ベースの対話制御手法における対話応答においては、ユーザノード340は、有限状態ベースの対話制御手法のノード(finite state)として表される。また、ユーザノード340は、root301を始点とする辺302の終点でありうる。
【0147】
例えば、ユーザの発話により、本発明に係る自然言語ユーザインタフェース生成方法により作成された応答ルールを知識構造に格納した自動応答システムが動作を開始することは、root301を始点とする関連付けである辺302の終点として、ユーザノード340を発話がなされたチャンネルに結び付けられた応答モジュールが参照することを意味する。ここで、通常一つのチャンネルに結び付けられた応答モジュールは複数あり、辺302の始点としてのroot301及び終点としてのユーザノード340の関係は、それらの中に「finite state」という応答モジュールがあった場合に参照されることになる。
【0148】
次いで、動作のクラスaction320に属する動作関係辺である、ユーザノード340を始点とする辺342、344、346を用いることにより、終点である動作ノード350、360、370に動作クラスを生成することができる。具体的には、ユーザからの発話等が予め用意したキーワードと一致するかどうかを調べるための動作クラスkeywordを格納する動作ノード(350)、ユーザからの発話又は予め用意した応答等のメッセージを送信するための動作のクラスmessageを格納する動作ノード(370)、キーワードとメッセージとの関連の有無を判定するための動作のクラスrelationを格納する動作ノード(360)等を生成しうる。
【0149】
さらに、インスタンス関係のクラスinstance330に属するインスタンス関係を用いて、動作ノード350、360、370を始点とする辺を生成することにより、データノード380に属する文字情報352、372に対話応答のための文字情報が格納されうる。例えば、処理のインスタンスkeywordを格納する動作ノード(350)を始点とする辺の終点に、文字情報352として「カレー」を格納しうる。ここで、データノード380に属する文字情報352及び372の間に、文字情報352を始点とし、文字情報372を終点とする関連付けが行われ、当該関連付けを動作のクラスrelationを格納する動作ノード(360)が辺362を用いて修飾することが定義される場合に、本発明に係る自然言語ユーザインタフェース生成方法の実施装置等は、文字情報352との関連付けを有する文字情報372として「食べたいですね」等の応答を生成しうる。
【0150】
このようにして、知識構造に含まれるノード及びノードに属する処理頂点等の間に、予め関連付けを行うことにより、本発明に係る自然言語ユーザインタフェース生成方法の実施装置等は、ユーザによる発話又は文字情報の送信等を契機として、対話応答を生成しうる。
【0151】
本発明に係る自然言語ユーザインタフェース生成方法の実施装置等が生成する対話応答は、予め定義したクラスに属する動作又はデータ等のインスタンスを適宜選択することにより、従来技術のように全ての用語を逐一検索することなく、対話応答を迅速に生成しうる。
【0152】
ユーザのクラス310による動作の開始は、上述のような対話のための発話に限らず、知識構造にクラス又はインスタンスを追加するものであってもよい。すなわち、ユーザノード340に「edit reply」等の応答を編集する動作頂点を用意してユーザが呼び出し、キーワードのヒットの判定方法等を適宜編集してもよい。これにより、本発明に係る自然言語ユーザインタフェース生成方法においては、対話スクリプトは自身を変更することが可能である。
【0153】
[自然言語ユーザインタフェースを生成する例]
図9、図10及び図11は、本発明の一実施形態に係る、有限状態ベースの対話制御手法による自然言語ユーザインタフェースの生成を例示する図である。図9、図10及び図11は、いずれも拡張意味ネットワークに基づく同一のグラフと、グラフの特定の部分を参照して説明するための符号を含む。図9、図10及び図11に含まれる円形は、上述の拡張意味ネットワークにおける頂点を表し、矢印は修飾辺を表す。1文字「i」、「s」又は「f」を含む小円は、それぞれ「即時」、「成功」、「失敗」を表す属性頂点である。修飾辺の近傍における文字列「sm」、「v(又はv2等の数字の添え字を伴う)」又は「fmt」は、それぞれ、出力メッセージを伴う属性辺、処理の引数となる変数を伴う属性辺、又は所定の書式を伴う属性辺である。
【0154】
図9に示す自然言語ユーザインタフェース生成例400は、表2における基本処理頂点、表3における固有処理頂点、表4における静的データ、表5における変数頂点、表6における属性頂点、表7における属性辺を適宜含む。
【0155】
また、図9に示す自然言語ユーザインタフェース生成例400は、図8の対話応答のための知識構造における、データノード380でありうる。換言すれば、ユーザからの入力をキーワードとして受信することに応答して作成される対話応答は、図8に示した対話応答のための知識構造を用いて、データノード380として出力されうる。
【0156】
図9を用い、自然言語ユーザインタフェース生成例400に含まれる、ユーザからの入力を受信することに応答して作成される対話応答の、初期の段階を例示する。
【0157】
処理頂点410は、表2における、文脈が初期位置にあるときにキーワードを格納しうる処理頂点KWであり、文字列データkwを含む。具体的には、当該キーワードはユーザから受信した入力としての文字列等である。例えば、文字列データkwは「選択メッセージを変更」等の文字列である。
【0158】
本発明に係る対話応答のための知識構造は、処理頂点KWと関連付けを有する処理頂点SVC(411)を用意する。処理頂点SVC(411)は、文字列データkwの受信に応答して開始した時点で既に行われている対話応答の進捗状況を適宜記憶する。
【0159】
次いで、本発明に係る対話応答のための知識構造は、処理頂点411と関連付けを有する変数頂点<CTX>(412)、処理頂点QUI1(413)、処理頂点NOP1(414)を用意する。
【0160】
変数頂点<CTX>(412)は、処理頂点SVC(411)における進捗状況の記憶のために用意される変数である。
【0161】
処理頂点QUI1(413)及び処理頂点NOP1(414)は、処理頂点SVC(411)に応答して即時実行されうる。図中には、即時実行を文字「i」を含む小円で示す。
【0162】
処理頂点SVC(411)の動作において、対話の進捗状況(コンテキスト)が未定義であった場合には処理頂点QUI1(413)が選択され、定義されていた場合には処理頂点NOP1(414)が選択される。図中には、失敗を文字「f」を含む小円で、成功を文字「s」を含む小円で示す。
【0163】
処理頂点QUI1(413)は、対話スクリプト追跡コンテキストから離脱する動作を実施し、静的データm1(415)を関連させる。処理頂点QUI1(413)から静的データm1(415)への辺は、表7に示した辺SMに属するインスタンスsmであり、具体的には抽出された文字列を応答メッセージとして示す動作を行う。例えば、静的データm1(415)は「選択肢に移動してください。」等のエラーメッセージである。
【0164】
処理頂点NOP1(414)は、後続の処理頂点等への関連付けのために用意される。さらに、処理頂点NOP1(414)は静的データm2(416)に関連付けられ、辺のインスタンスsmにより、静的データm2(416)が応答メッセージとしてユーザに示される。例えば、静的データm2(416)は「選択メッセージを指定してください。」等のメッセージである。
【0165】
次いで、本発明に係る対話応答のための知識構造は、処理頂点417に属するキーワードのインスタンスwld1に、ユーザからの入力を格納する。wld1は、表2における任意のキーワードを格納する処理頂点クラスWLDのインスタンスである。さらに、本発明に係る対話応答のための知識構造は、処理頂点SVT1(418)においてユーザからの入力を変数頂点<MSG>(424)に格納し、この変数頂点<MSG>(424)に格納されたユーザからの入力が、本対話スクリプトが開始されたコンテキストから選択メッセージを検索できたか否かを、処理頂点CSMS(423)において判定する。処理頂点CSMS(423)は、変数頂点<MSG>(424)から検索語を取得し、変数頂点<CTX>(425)に保存された本スクリプト開始時のコンテキストから検索語を含む選択メッセージを検索し、変数頂点<LRP>(426)に検索された選択メッセージの処理頂点を保存する。具体的には、この検索された選択メッセージの処理頂点は変更対象である対話スクリプトで選択肢到達時にメッセージを応答する等の処理であり、後続の処理頂点CFM1(427)により参照される。
【0166】
図9に示す自然言語ユーザインタフェース生成例400においては、ユーザの発言を変数に保存する処理頂点SVT1(418)を含む処理頂点の関連付けには、処理頂点NOP2(419)を介して前述の処理頂点NOP1(414)に戻る関連付け、及び処理頂点NOP3(421)を介して前述の処理頂点NOP1(414)に戻る関連付けを含む。
【0167】
前者の、処理頂点NOP2(419)を介して前述の処理頂点NOP1(414)に戻る関連付けは、例えば、検索語を含む選択メッセージが<CTX>に接続されていないことに応答し、この入力を処理頂点CSMS(423)において即時に失敗「f」と判定して処理頂点NOP2(419)と関連付け、静的データm3(420)として「選択メッセージが見つかりませんでした」等のメッセージをユーザに送信し、静的データm2(416)を再度ユーザに示す動作等を含む。
【0168】
後者の、処理頂点NOP3(421)を介して前述の処理頂点NOP1(414)に戻る関連付けは、例えば、以下の段階を含む。ユーザの入力がコンテキスト<CTX>のいずれかの選択メッセージに含まれる場合に、この入力を処理頂点CSMS(423)において、即時に成功「s」と判定し、かつコンテキスト<CTX>から最初に検索された選択メッセージの処理頂点を、変数頂点<LRP>(426)に保存する。後続の処理頂点CFM1(427)は、静的データm4(428)を用いてユーザに処理対象の選択メッセージを確認するメッセージを示し、確認を行ったこと(はい)を意味する選択肢を動作頂点sry1(430)に関連付け、かつ選択メッセージ検索をやり直すキーワード(いいえ)を動作頂点srn1(429)に関連付ける。動作頂点srn1(429)は、処理頂点CFM1(427)の選択候補のキーワードの一つであり、ユーザがこれを選ぶことによって動作頂点srn1(429)に対話スクリプト実行処理のコンテキストが移動する。動作頂点srn1(429)は処理頂点NOP3(421)への関連付けを有し、静的データm6(422)として「選択メッセージを指定しなおします」等のメッセージがユーザに送信され、静的データm2(416)を再度ユーザに示す処理頂点NOP1(416)の動作等を行う。
【0169】
これらのように、本発明に係る自然言語ユーザインタフェース生成例400には、ユーザの入力に応答して、処理頂点CSMS(423)等の成功又は失敗の判定に基づいて条件分岐し、処理段階を遡及する関連付けを含んでもよい。
【0170】
次いで、図10を用い、自然言語ユーザインタフェース生成例401に含まれる、ユーザからの入力を受信することに応答して作成される対話応答の、別の部分を例示する。拡張意味ネットワークに基づくグラフは、図9と同一である。
【0171】
ユーザからの発言を保存する処理頂点SVT2(450)は、変数頂点<MSG>(451)にユーザの発言を保存し、即時に後続の処理頂点CFM4(452)を実行する。例えば、変数頂点<MSG>(451)には、新しい選択メッセージである「どこの場所にしましょうか?」が保存される。
【0172】
選択肢に分岐する処理頂点CFM4(452)は、変数頂点<MSG>(451)、本対話スクリプトを中断する選択肢(やめる)である(sra)(454)、「これでよいですか?」等のユーザへの確認を促すメッセージ応答に結び付けられた処理頂点m12(455)、応答等におけるユーザ入力文字列の成形に係る処理頂点str(456)、確認を行ったこと(はい)を意味する選択肢である処理頂点sry4(457)、入力をやり直すこと(いいえ)を意味する選択肢である処理頂点srn3(458)等への関連付けを有する。具体的には、選択肢に分岐する処理頂点CFM4(452)は、変数頂点<MSG>(451)をstr(456)で整形してm12(455)のメッセージと共に応答してユーザに確認を求め、ユーザの回答が「はい」であった場合にはsry4(457)に分岐し、「いいえ」であった場合はsrn3(458)へ分岐しメッセージ入力をやり直し、「やめる」であった場合は(sra)(454)へ分岐しこの選択メッセージ変更のための対話スクリプトを中断する。
【0173】
処理頂点sry4(457)は、後続の処理頂点CSMP(459)を実行するよう動作する。
【0174】
処理頂点CSMP(459)は静的データm14(460)との関連付けを有する。具体的には、処理頂点CSMP(459)は、静的データm14(460)に結び付けられた「変更しました」等のメッセージを出力し、ユーザに送信する。
【0175】
また、処理頂点CSMP(459)は、変更対象の既存の選択メッセージ処理頂点を保存するための変数頂点<LRP>(461)との関連付けを有する。例えば、当該選択メッセージ頂点は、カレー店の場所をユーザに確認する対話スクリプトの選択メッセージ「場所はどこですか?」等でもよい。
【0176】
また、処理頂点CSMP(459)は、メッセージを出力する変数頂点<MSG>(462)との関連付けを有し、<LRP>(461)に指し示された選択メッセージ処理頂点に結び付ける文字列を<MSG>(462)で指し示されたものに変更する。
【0177】
さらに、処理頂点CSMP(459)は、スクリプトの進捗状況を保存する変数頂点<CTX>(463)との関連付けを有し、選択メッセージ変更の対話処理を開始した時点のコンテキスト状態に復帰し本対話スクリプトを終了する。
【0178】
次いで、図11及び表8に、自動対話の実行例であるダイアログが経過する処理頂点と、自動対話スクリプトの内部の動作を除く端末装置等に表示されうる文字列との対応の一例を示す。拡張意味ネットワークに基づくグラフは、図9及び図10と同一であり、重複する箇所は説明を省略する。
【0179】
表8は、文脈の初期位置においてユーザによる入力を格納する処理頂点kw(410)に応答し、時間の経過と共に自動対話及びユーザの入力からなる対話が進行することを表す。
【0180】
選択メッセージの削除を行うかどうか確認する処理頂点CFM2(470)は、確認に対する回答の選択肢をメッセージと共に応答する動作を実行する。具体的には、「削除しますか?」というメッセージと共に、「はい」、「いいえ」、及び/又は「やめる」の選択肢がユーザに応答される。
【0181】
表8に示した処理頂点が順次動作することにより、ユーザの端末装置等には、ユーザの入力及び自動対話の出力が表示される。
【0182】
これらにより、本発明に係る自動対話をユーザは利用して、所望の出力を得られる。
【表8】
【0183】
一実施形態において、前述の表8に示した一連の対話により、カレーに関する対話スクリプトが変更され、次回ユーザが「カレー食べたい」と発言した際に、本発明に係る自然言語ユーザインタフェース生成プログラム等による自動対話は、「どこの場所にしましょうか?(六本木/その他)」と応答しうる。このように、本発明に係る自然言語ユーザインタフェース生成プログラム等は、それ自身が対話スクリプト編集機能又は対話スクリプト編集機能の一部でありうる。
【0184】
本発明に係る自然言語ユーザインタフェースは、本発明に係る対話応答の知識構造に含まれ拡張意味ネットワークに属する頂点及び辺を組み合わせ、柔軟かつ幅広い拡張性をもって構成することができる。上述の例に限らず、本発明に係る自然言語ユーザインタフェース生成方法及びその実施装置等を用いることにより、複雑な対話スクリプトの作成を効率的に支援することが可能になる。
【0185】
[自然言語ユーザインタフェース生成のための共通概念の例]
図12は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成のための共通概念を例示する図である。
【0186】
図12に例示する共通概念500は、ノード501〜511を含み、それぞれのノードには、「カレー」「地域」「種類」「場所A」「場所B」「場所C」「インド全般」「南インド専門」「レストランA」「レストランB」「レストランC」等のノードデータが割り当てられる。図12に例示する共通概念500においては、ノードとノードとの間のエッジは、特定のノードの間に設定することが可能であるが、ユーザ入力に対する応答等は未定義である。
【0187】
以下、本発明に係る、これらのノード及びエッジを用いてユーザインタフェースを生成する方法の実施形態を示す。
【0188】
[有限状態ベースの対話制御手法による応答の生成例]
図13は、本発明の一実施形態に係る、有限状態ベースの対話制御手法による対話ルールの例を示す図である。
【0189】
図13に例示する自然言語ユーザインタフェース520は、図8に示した、有限状態ベースの対話制御手法における対話応答のための知識構造における、データノード380に対する動作ノード(350〜370)の動作を、ノード間のエッジとして表している。すなわち、自然言語ユーザインタフェース520は、共通概念500に含まれるノード501〜511に対する応答が、表2乃至表7に示した頂点及び辺を用いて生成できることを表す。
【0190】
なお、図13において、「REL」という辺のクラスはノード間の過渡的関係(フロー辺)を示し、「SEL」というエッジのクラスは動作の選択を示す。例えば、共通概念500におけるノード501に対応する、「KW”カレー”」というノードが、特定のキーワードである「カレー」にヒットするときに、自然言語ユーザインタフェース520は、動作の選択を示す「SEL」ノードのいずれかに動作を移動させ、移動先のノードに関係づけられるMSGノードに従って、例えば「場所はどこですか」又は「種類は何ですか」というメッセージを、ユーザに示すことができる。
【0191】
[フレームベースの対話制御手法による応答の生成例]
図14は、本発明の一実施形態に係る、フレームベースの対話制御手法による自然言語ユーザインタフェース530を生成する例を示す図である。
【0192】
図14において、「FRM」という辺のクラスは意味フレームの構成要素を辿ることを示し、「CND」という辺のクラスは意味フレームのスロットの候補を辿ることを示し、「REP」という辺のクラスは応答する際のメッセージを辿ることを示し、「SLT」というノードは意味フレームのスロットを示す。例えば、共通概念500におけるノード501に対応する、「KW”カレー”」というノードが、特定のキーワードである「カレー」にヒットするときに、自然言語ユーザインタフェース530は、ユーザの発言を自然言語解析技術を用いて分析し、スロットである地域あるいは種類に関すると推測される語句をそれぞれ取り出す。もし取り出した語句が各スロットの候補語句とマッチする場合は、そのスロットの値をその語句で確定する。これらの処理の後に未確定のスロットが残っている場合は、さらに適切な応答を続け、ユーザ発言を促し、その発言からのスロット値確定をさらに試みる。これらの応答には、未確定のスロットに関する情報が不足していることをユーザに伝えるものや、未確定スロットの候補をリストして選択を依頼するもの等が含まれる。全てのスロットが確定された場合、REL辺による制約を満たすMSGを選択し、ユーザに回答を行う。
【0193】
図15は、本発明の一実施形態に係る、フレームベースの対話制御手法における対話応答のための知識構造の例を示す図である。すなわち、図15に示す対話応答のための知識構造は、図8に示した有限状態ベースの対話制御手法による対話応答のための知識構造と同様に、アプリオリオントロジーノード300、ユーザノード340、動作ノード350〜370、データノード380を含む。有限状態ベースの対話制御手法との差異は、ユーザノード340として意味フレーム(frame)を含み、動作ノード(350〜370)として、意味フレームの構成要素を辿る「FRM」辺、意味フレームのスロットを示す「SLT」ノード等を含むことである。
【0194】
[エージェントベースの対話制御手法における応答の生成例]
図16は、本発明の一実施形態に係る、エージェントベースの対話制御手法による自然言語ユーザインタフェース540の生成を例示する図である。
【0195】
図16において、「TOP」、「CON」、「GEO」、「CUI」、及び「RST」というノードのクラスは、それぞれ、特定の話題、特定の分類概念、特定の地名、特定の料理名、特定の飲食店名にヒットすることを表す。また、図16において、「OBJ」、「FLT」、「CND」、及び「RES」という辺のクラスは、それぞれ、データの目的を辿ること、話題を絞り込む属性概念を辿ること、属性概念の選択候補を辿ること、及び属性概念による絞込み結果を辿ることを表す。例えば、共通概念500におけるノード501に対応する、「TOP”カレー”」というノードが、特定のキーワードである「カレー」にヒットするときに、自然言語ユーザインタフェース540は、飲食店の推薦を行うエージェントを起動する。このエージェントは自然言語ユーザインタフェース540における対話ルールから、カレー店を特定する場合には地域と種類に関する絞込みが可能であるという知識を入手し、エージェントが持つ独自の対話機能を用いて地域と種類に関する詳細情報の取得を試みる。不自然でない範囲でそのような対話を行ったあと、地域と種類に関する情報が得られた場合はその情報を用いて、そうでない場合はランダムに候補を選んでユーザに飲食店を推薦する。
【0196】
図17は、本発明の一実施形態に係る、エージェントベースの対話制御手法における対話応答のための知識構造の例を示す図である。すなわち、図17に示す対話応答のための知識構造は、図8に示した有限状態ベースの対話制御手法による対話応答のための知識構造と同様に、アプリオリオントロジーノード300、ユーザノード340、動作ノード350〜370、及びデータノード380を含む。有限状態ベースの対話制御手法との差異は、ユーザノード340としてエージェント(agent)を含み、動作ノード(350〜370)として、特定の話題を示す「TOP」ノード、話題を絞り込む属性概念を辿る「FTL」辺、特定の分類概念を示す「CON」ノード等を含むことである。
【0197】
図18は、本発明の一実施形態に係る、自然言語ユーザインタフェース生成装置10の応答モジュールに含まれる対話ルールの全体像を例示する図である。
【0198】
図18に示す対話ルール550は、図13に示した有限状態ベースの対話制御手法による対話ルール、図14に示したフレームベースの対話制御手法における対話ルール、及び図16に示したエージェントベースの対話制御手法による対話ルールが、いずれもユーザノード561に含まれ、共通の動作ノード562及びデータノード563を用いて同時に動作可能であることを表している。すなわち、本発明に係る自然言語ユーザインタフェースを生成する装置及び方法においては、単一の知識構造中に、同一の対話ルールデータに対して、異なる種類の新たな対話制御手法が解釈可能な関係情報を、矛盾なく表現することができる。
【0199】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【符号の説明】
【0200】
10 自然言語ユーザインタフェース生成装置
20 自然言語ユーザインタフェース生成システム
38 ネットワーク
50 対話エージェント装置
60 ユーザ端末
83、85 辺
82、84 始点
81、85 終点
110 応答手段
111 対話構造記憶手段
112 判別手段
113 変更手段
160 知識構造記憶手段
200 対話スクリプト作成支援システム
230 知識構造
260 知識DBデータ構造
300 アプリオリオントロジーノード
340 ユーザノード
350、360、370 動作ノード
380 データノード
【特許請求の範囲】
【請求項1】
自然言語ユーザインタフェースを生成する装置であって、
ユーザ端末からの会話文の入力に対応した会話文を出力する対話エージェントシステムにおける会話の状況、会話の動作及びそれらの関係を示すコンピュータ上での処理動作をノードとエッジで表現する知識構造の記憶手段と、
前記知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答手段とを備え、
前記応答手段は、前記対話制御手法を実施するために、
前記ノードに属する要素のうち少なくとも二つの前記要素の間の関係において、前記処理動作の流れを示す関係及び前記処理動作に必要な関係を前記対話ルールとして記憶する対話構造記憶手段と、
前記記憶した要素に対して前記知識構造における関連付けの有無を判別する判別手段と、
前記判別手段による判別の結果に応じて、前記対話構造記憶手段に記憶された前記二つの要素の間の関係を変更する変更手段と、を備える装置。
【請求項2】
前記知識構造の記憶手段は、
前記状況、前記動作及び前記関係に関するクラスの前記要素として、処理のクラス、データのクラス、変数のクラス、属性のクラスを含み、
前記知識構造は会話の場、会話履歴、会話文脈を要素に有する集合である談話構造を含み、
前記変数のクラスは前記会話の場を始点とする関連付けを有し、
前記属性のクラスは修飾対象と同一の始点との関連付け及び終点としての修飾対象との関連付けを有し、
前記処理のクラスは前記知識構造に属する要素を始点及び終点とする関連付けを有し、
前記データのクラスは静的データとの関連付けを有する、
請求項1に記載の自然言語ユーザインタフェースを生成する装置。
【請求項3】
前記応答手段は、有限状態ベースの対話制御手法、フレームベースの対話制御手法又はエージェントベースの対話制御手法のいずれかを前記対話制御手法として実施し、
前記有限状態ベースの対話制御手法は、前記対話制御手法をクラスを用いて記述されるスクリプトである対話スクリプトとして記述し、
前記フレームベースの対話制御手法は、前記対話制御手法を意味フレームとして記述し、
前記エージェントベースの対話制御手法は、前記対話制御手法をエージェント動作として記述する、
請求項1に記載の自然言語ユーザインタフェースを生成する装置。
【請求項4】
ユーザ端末からの会話文のデータ入力を受け付ける会話文入力受付手段をさらに備え、
前記応答手段はそれぞれの判別手段において、前記受け付けられた会話文の内容に応じて、前記関連付けの有無の判別を行う、請求項1に記載の自然言語ユーザインタフェースを生成する装置。
【請求項5】
自然言語ユーザインタフェースを生成する方法であって、コンピュータに、
ユーザ端末からの会話文の入力に対応した会話文を出力する対話エージェントシステムにおける会話の状況、会話の動作及びそれらの関係を示す前記コンピュータ上での処理動作をノードとエッジで表現する、知識構造の記憶ステップと、
前記知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答ステップと、を含むコンピュータ・プログラムを実行させ、
前記応答ステップは、前記対話制御手法を実施するために、
前記ノードに属する要素のうち少なくとも二つの前記要素の間の関係において、前記処理動作の流れを示す関係及び前記処理動作に必要な関係を前記対話ルールとして記憶する対話構造記憶ステップと、
前記記憶した要素に対して前記知識構造における関連付けの有無を判別する判別ステップと、
前記判別ステップによる判別の結果に応じて、前記対話構造記憶ステップにおいて記憶された前記二つの要素の間の関係を変更する変更ステップと、を含む方法。
【請求項1】
自然言語ユーザインタフェースを生成する装置であって、
ユーザ端末からの会話文の入力に対応した会話文を出力する対話エージェントシステムにおける会話の状況、会話の動作及びそれらの関係を示すコンピュータ上での処理動作をノードとエッジで表現する知識構造の記憶手段と、
前記知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答手段とを備え、
前記応答手段は、前記対話制御手法を実施するために、
前記ノードに属する要素のうち少なくとも二つの前記要素の間の関係において、前記処理動作の流れを示す関係及び前記処理動作に必要な関係を前記対話ルールとして記憶する対話構造記憶手段と、
前記記憶した要素に対して前記知識構造における関連付けの有無を判別する判別手段と、
前記判別手段による判別の結果に応じて、前記対話構造記憶手段に記憶された前記二つの要素の間の関係を変更する変更手段と、を備える装置。
【請求項2】
前記知識構造の記憶手段は、
前記状況、前記動作及び前記関係に関するクラスの前記要素として、処理のクラス、データのクラス、変数のクラス、属性のクラスを含み、
前記知識構造は会話の場、会話履歴、会話文脈を要素に有する集合である談話構造を含み、
前記変数のクラスは前記会話の場を始点とする関連付けを有し、
前記属性のクラスは修飾対象と同一の始点との関連付け及び終点としての修飾対象との関連付けを有し、
前記処理のクラスは前記知識構造に属する要素を始点及び終点とする関連付けを有し、
前記データのクラスは静的データとの関連付けを有する、
請求項1に記載の自然言語ユーザインタフェースを生成する装置。
【請求項3】
前記応答手段は、有限状態ベースの対話制御手法、フレームベースの対話制御手法又はエージェントベースの対話制御手法のいずれかを前記対話制御手法として実施し、
前記有限状態ベースの対話制御手法は、前記対話制御手法をクラスを用いて記述されるスクリプトである対話スクリプトとして記述し、
前記フレームベースの対話制御手法は、前記対話制御手法を意味フレームとして記述し、
前記エージェントベースの対話制御手法は、前記対話制御手法をエージェント動作として記述する、
請求項1に記載の自然言語ユーザインタフェースを生成する装置。
【請求項4】
ユーザ端末からの会話文のデータ入力を受け付ける会話文入力受付手段をさらに備え、
前記応答手段はそれぞれの判別手段において、前記受け付けられた会話文の内容に応じて、前記関連付けの有無の判別を行う、請求項1に記載の自然言語ユーザインタフェースを生成する装置。
【請求項5】
自然言語ユーザインタフェースを生成する方法であって、コンピュータに、
ユーザ端末からの会話文の入力に対応した会話文を出力する対話エージェントシステムにおける会話の状況、会話の動作及びそれらの関係を示す前記コンピュータ上での処理動作をノードとエッジで表現する、知識構造の記憶ステップと、
前記知識構造を解釈し、複数の対話ルールと対話制御手法の組を予め関連付けて実行する応答ステップと、を含むコンピュータ・プログラムを実行させ、
前記応答ステップは、前記対話制御手法を実施するために、
前記ノードに属する要素のうち少なくとも二つの前記要素の間の関係において、前記処理動作の流れを示す関係及び前記処理動作に必要な関係を前記対話ルールとして記憶する対話構造記憶ステップと、
前記記憶した要素に対して前記知識構造における関連付けの有無を判別する判別ステップと、
前記判別ステップによる判別の結果に応じて、前記対話構造記憶ステップにおいて記憶された前記二つの要素の間の関係を変更する変更ステップと、を含む方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2011−65582(P2011−65582A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−217874(P2009−217874)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(500257300)ヤフー株式会社 (1,128)
【Fターム(参考)】
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願日】平成21年9月18日(2009.9.18)
【出願人】(500257300)ヤフー株式会社 (1,128)
【Fターム(参考)】
[ Back to top ]