(57)【要約】【課題】確実な応答の出力及び出力される応答の精度を保証する応答生成装置を提供する。【解決手段】計算機は、グラフ型知識を格納するデータベースを保持し、複数の文を含む入力文書に対する応答を生成する応答生成モジュールを有し、データベースはグラフ型知識の構造を管理するグラフデータを含み、応答生成モジュールは、入力文書に含まれる各文から第１のグラフ型知識を生成し、複数の第１のグラフ型知識に基づいてグラフデータを参照して、各第１のグラフ型知識に類似する第２のグラフ型知識を検索し、グラフにおける複数の第２のグラフ型知識の密集箇所に含まれる複数の第２のグラフ型知識を特定し、特定された第２のグラフ型知識に基づいてグラフデータを参照して、応答を生成するための第３のグラフ型知識を検索し、第３のグラフ型知識を用いて応答を生成する。【選択図】図１
2018041336.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるインタフェースを備える計算機であって、
知識を定義する文を構成する要素間の関連性をノード及びエッジを用いて表したグラフ型知識を格納するグラフ型知識データベースを保持し、
前記グラフ型知識データベースを用いて、複数の文を含む入力文書に対する応答を生成する応答生成モジュールを有し、
前記グラフ型知識データベースは、グラフ型知識の構造を管理するグラフデータを含み、
前記応答生成モジュールは、
前記入力文書に含まれる各文から第１のグラフ型知識を生成し、
前記複数の第１のグラフ型知識に基づいて前記グラフデータを参照して、前記各第１のグラフ型知識に類似する第２のグラフ型知識を検索し、
前記グラフ型知識データベースに対応するグラフにおける前記複数の第２のグラフ型知識の密集箇所に含まれる前記複数の第２のグラフ型知識を応答の生成に用いる第２のグラフ型知識として特定し、
前記特定された第２のグラフ型知識に基づいて前記グラフデータを参照して、前記応答を生成するための第３のグラフ型知識を検索し、
前記第３のグラフ型知識を用いて、前記応答を生成することを特徴とする計算機。
【請求項２】
請求項１に記載の計算機であって、
前記応答生成モジュールは、
対象の第２のグラフ型知識を選択し、
前記対象の第２のグラフ型知識に含まれる前記ノードと、前記他の第２のグラフ型知識に含まれる前記ノードとの間の距離に基づいて、前記グラフにおける前記複数の第２のグラフ型知識の密集箇所を特定することを特徴とする計算機。
【請求項３】
請求項２に記載の計算機であって、
前記応答生成モジュールは、前記距離が閾値より小さい場合、前記対象の第２のグラフ型知識が前記密集箇所に含まれると判定することを特徴とする計算機。
【請求項４】
請求項３に記載の計算機であって、
前記グラフ型知識データベースは、前記グラフ型知識の成立条件を示す属性を管理する属性データを含み、
前記応答生成モジュールは、
前記属性データを参照して、前記特定された第２のグラフ型知識と前記第３のグラフ型知識との間の知識の成立条件の整合性を示すスコアを算出し、
前記スコアに基づいて、前記応答の生成に用いる前記第３のグラフ型知識を選択し、
前記選択された第３のグラフ型知識を用いて、前記応答を生成することを特徴とする計算機。
【請求項５】
請求項４に記載の計算機であって、
出力する応答の種別を定義する応答種別情報を保持し、
前記応答生成モジュールは、前記特定された第２のグラフ型知識及び前記応答種別情報に基づいて、前記第３のグラフ型知識を検索することを特徴とする計算機。
【請求項６】
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるインタフェースを備える計算機における応答の生成方法であって、
前記計算機は、
知識を定義する文を構成する要素間の関連性をノード及びエッジを用いて表したグラフ型知識を格納するグラフ型知識データベースを保持し、
前記グラフ型知識データベースを用いて、複数の文を含む入力文書に対する応答を生成する応答生成モジュールを有し、
前記グラフ型知識データベースは、グラフ型知識の構造を管理するグラフデータを含み、
前記応答の生成方法は、
前記応答生成モジュールが、前記入力文書に含まれる各文から第１のグラフ型知識を生成する第１のステップと、
前記応答生成モジュールが、前記複数の第１のグラフ型知識に基づいて前記グラフデータを参照して、前記各第１のグラフ型知識に類似する第２のグラフ型知識を検索する第２のステップと、
前記応答生成モジュールが、前記グラフ型知識データベースに対応するグラフにおける前記複数の第２のグラフ型知識の密集箇所に含まれる前記複数の第２のグラフ型知識を応答の生成に用いる第２のグラフ型知識として特定する第３のステップと、
前記応答生成モジュールが、前記特定された第２のグラフ型知識に基づいて前記グラフデータを参照して、前記応答を生成するための第３のグラフ型知識を検索する第４のステップと、
前記応答生成モジュールが、前記第３のグラフ型知識を用いて、前記応答を生成すること第５のステップと、を含むことを特徴とする応答の生成方法。
【請求項７】
請求項６に記載の応答の生成方法であって、
前記第３のステップは、
前記応答生成モジュールが、対象の第２のグラフ型知識を選択するステップと、
前記応答生成モジュールが、前記対象の第２のグラフ型知識に含まれる前記ノードと、前記他の第２のグラフ型知識に含まれる前記ノードとの間の距離に基づいて、前記グラフにおける前記複数の第２のグラフ型知識の密集箇所を特定するステップと、を含むことを特徴とする応答の生成方法。
【請求項８】
請求項７に記載の応答の生成方法であって、
前記第３のステップは、前記応答生成モジュールが、前記距離が閾値より小さい場合、前記対象の第２のグラフ型知識が前記密集箇所に含まれると判定するステップを含むことを特徴とする応答の生成方法。
【請求項９】
請求項８に記載の応答の生成方法であって、
前記グラフ型知識データベースは、前記グラフ型知識の成立条件を示す属性を管理する属性データを含み、
前記第４のステップは、
前記応答生成モジュールが、前記属性データを参照して、前記特定された第２のグラフ型知識と前記第３のグラフ型知識との間の知識の成立条件の整合性を示すスコアを算出するステップと、
前記応答生成モジュールが、前記スコアに基づいて、前記応答の生成に用いる前記第３のグラフ型知識を選択するステップと、
前記応答生成モジュールが、前記選択された第３のグラフ型知識に基づいて、前記応答を生成するステップと、を含むことを特徴とする応答の生成方法。
【請求項１０】
請求項９に記載の応答の生成方法であって、
出力する応答の種別を定義する応答種別情報を保持し、
前記第４のステップは、前記応答生成モジュールが、前記特定された第２のグラフ型知識及び前記応答種別情報を用いて、前記第３のグラフ型知識を検索するステップを含むことを特徴とする応答の生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの入力に対する応答の生成技術に関する。
【背景技術】
【０００２】
ユーザが求める情報を提示する方法として、システムが、ユーザに単語及びフレーズ等のキーワードの入力を要求し、入力されたキーワードに関連の深いドキュメント、Ｗｅｂページ、文書の一部、写真、音声、及び製品情報等を提示する。前述した検索方法は、大量の文書及び画像等のメディア情報の中から、ユーザが求める情報を抽出するために広く用いられている。また、入力されたキーワードだけでなく、キーワードの同義語及びキーワードと関連性が高い語を含む情報も検索対象とする検索方法も知られている。
【０００３】
前述したシステムの応用として、ユーザの質問に対する解答を応答する質問応答システム及びユーザと対話を行う会話システム等が知られている。
【０００４】
特許文献１には、「文書検索システムは、価値とその価値を促進または抑制する事象との間の対応関係を記述した価値促進抑制テーブルを備え、記事が記載している前記価値に対する肯定的語句または否定的語句と、前記価値促進抑制テーブルが記述している前記対応関係とに基づき、前記記事と前記対応関係との間の整合性を判定する」ことが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１６／０６７３３４号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
入力に対して正確な応答を出力するためには、入力を正確に把握する必要がある。具体的には、装置は、知識データベースを参照し、入力に一致する知識を検索する。しかし、入力に一致する知識が知識データベースに格納されていない場合、装置は応答を生成することができない。したがって、入力に対して何も情報が提示されない。一方、一致条件を緩めた場合、正確な応答を出力できないという課題がある。
【課題を解決するための手段】
【０００７】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるインタフェースを備える計算機であって、知識を定義する文を構成する要素間の関連性をノード及びエッジを用いて表したグラフ型知識を格納するグラフ型知識データベースを保持し、前記グラフ型知識データベースを用いて、複数の文を含む入力文書に対する応答を生成する応答生成モジュールを有し、前記グラフ型知識データベースは、グラフ型知識の構造を管理するグラフデータを含み、前記応答生成モジュールは、前記入力文書に含まれる各文から第１のグラフ型知識を生成し、前記複数の第１のグラフ型知識に基づいて前記グラフデータを参照して、前記各第１のグラフ型知識に類似する第２のグラフ型知識を検索し、前記グラフ型知識データベースに対応するグラフにおける前記複数の第２のグラフ型知識の密集箇所に含まれる前記複数の第２のグラフ型知識を応答の生成に用いる第２のグラフ型知識として特定し、前記特定された第２のグラフ型知識に基づいて前記グラフデータを参照して、前記応答を生成するための第３のグラフ型知識を検索し、前記第３のグラフ型知識を用いて、前記応答を生成することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、入力に対して精度の高い応答を生成することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】実施例１の応答生成装置が実行する処理を説明するフローチャートである。
【図２】実施例１の応答生成装置の構成例を示すブロック図である。
【図３】実施例１の文書ＤＢの一例を示す図である。
【図４】実施例１のグラフ型知識ＤＢに格納されるグラフ型知識のイメージを示す図である。
【図５】実施例１のグラフ型知識ＤＢに含まれるグラフデータの一例を示す図である。
【図６】実施例１のグラフ型知識ＤＢに含まれる属性データの一例を示す図である。
【図７Ａ】実施例１の知識生成モジュールによって生成されるグラフ型知識のイメージを示す図である。
【図７Ｂ】実施例１の知識生成モジュールによって生成されるグラフ型知識のイメージを示す図である。
【図７Ｃ】実施例１の知識生成モジュールによって生成されるグラフ型知識のイメージを示す図である。
【図８Ａ】実施例１の知識生成モジュールによって生成されるグラフ型知識のイメージを示す図である。
【図８Ｂ】実施例１の知識生成モジュールによって生成されるグラフ型知識のイメージを示す図である。
【図８Ｃ】実施例１の知識生成モジュールによって生成されるグラフ型知識のイメージを示す図である。
【図９】実施例１のグラフ型知識ＤＢに格納されるグラフ型知識のイメージを示す図である。
【図１０】実施例１の応答生成処理に用いるグラフ型知識ＤＢに含まれるグラフ型知識の一例を示す図である。
【図１１Ａ】実施例１の応答生成装置が保持する応答種別情報のイメージを示す図である。
【図１１Ｂ】実施例１の応答生成装置が保持する応答種別情報のイメージを示す図である。
【図１１Ｃ】実施例１の応答生成装置が保持する応答種別情報のイメージを示す図である。
【図１１Ｄ】実施例１の応答生成装置が保持する応答種別情報のイメージを示す図である。
【図１１Ｅ】実施例１の応答生成装置が保持する応答種別情報のイメージを示す図である。
【発明を実施するための形態】
【００１０】
本発明の実施例について、図表を参照しながら説明する。なお、発明が解決しようとする課題に記載していない課題として以下のような課題がある。
【００１１】
ディベートでは、与えられた論題に対して、肯定側の立場及び否定側の立場に分かれて議論が行われる。しかし、従来の検索方法では、入力されたキーワードに基づいて検索が行われるため、ユーザの気づいていない観点又はユーザとは異なる立場に基づく応答を出力することが困難である。また、従来の検索方法では、新たな発想を与えるような応答を出力することが困難である。特に、複数の側面からとらえることができる論題に対するディベートの場合、当該事柄は複数の事実を含むため、事実を対象とする従来の質問応答システムでは、適切な応答を出力できない。
【実施例１】
【００１２】
図２は、実施例１の応答生成装置１００の構成例を示すブロック図である。まず、応答生成装置１００の構成を図２を用いて説明する。
【００１３】
応答生成装置１００は、ユーザの立論（入力）に対して反論を生成する装置であり、ＣＰＵ２００、メモリ２０１、Ｉ／Ｏ  ＩＦ２０３、及びＮＷ  ＩＦ２０４を有する。
【００１４】
ＣＰＵ２００は、メモリ２０１に格納されるプログラムを実行する。ＣＰＵ２００がプログラムを実行することによって応答生成装置１００が有する機能を実現する。以下の説明では、モジュールを主語に説明する場合、ＣＰＵ２００が当該モジュールを実現するプログラムを実行していることを表す。
【００１５】
メモリ２０１は、ＣＰＵ２００が実行するプログラム及び当該プログラムが使用する情報を格納する。また、メモリ２０１は、プログラムが使用する記憶領域を含む。本実施例では、メモリ２０１は、知識生成モジュール２１０及び応答生成モジュール２１１を実現するプログラムを格納する。また、メモリ２０１は、文書ＤＢ２２０、グラフ型知識ＤＢ２２１、及び会話履歴ＤＢ２２２を格納する。なお、メモリ２０１は、図示しないプログラム及び情報を保持してもよい。
【００１６】
知識生成モジュール２１０は、文書ＤＢ２２０を用いて、グラフ型知識ＤＢ２２１を生成する。応答生成モジュール２１１は、グラフ型知識ＤＢ２２１及び会話履歴ＤＢ２２２を用いて、入力された文書に対する応答を生成する。
【００１７】
文書ＤＢ２２０は、知識として蓄積された文書データ３００（図３参照）を格納する。文書データ３００は、自然言語で記述された文書をデータ化したものであり、本システムの知識のソースとなる。
【００１８】
ここで、文書は、一つ以上の文（センテンス）を含む。例えば、文書は、Ｗｅｂサイトに掲載された文書、ニュース記事、組織内のレポート、学術論文、官公庁等の公報、及びシンクタンク等の調査文書等が本実施例の文書に該当する。なお、過去の会話履歴も文書として扱われてもよい。
【００１９】
本実施例では、立論する立場によって内容が変化しない知識だけではなく、立論する立場によって事実が変化する知識も扱う。
【００２０】
例えば、立論する立場によって事実が変化しない知識としては「日本の首都は東京である」等の知識が考えられる。
【００２１】
また、立論する立場によって事実が変化する知識としては「ｃａｓｉｎｏ  ｇｅｎｅｒａｔｅ  ｔａｘ  ｒｅｖｅｎｕｅ．」という知識が考えられる。当該知識は、ある立場では事実として成り立つが、異なる立場では事実として成り立たない。例えば、地域Ｙの事例から得られた知識は、地域Ｙと同じ特性の地域であれば成り立つが、特性の異なる地域では成り立たない。また、現在又は将来の知識を推論する場合、現在の事例から知識を用いて推論された知識は、過去の事例から得られた知識を用いて推論された知識よりもっともらしい事実であると考えられる。
【００２２】
したがって、本実施例の応答生成装置１００は、条件を考慮して利用する知識を選択する。例えば、応答生成装置１００は、アメリカに関する事柄が入力された場合、アメリカに関する事例から得られた知識等を用いて応答を生成する。
【００２３】
グラフ型知識ＤＢ２２１は、グラフ形式の知識を格納する。より具体的には、知識を定義する文を構成する単語等の要素間の関連性を示すグラフ形式のデータが格納される。グラフ型知識ＤＢ２２１は、グラフ構造を管理するグラフデータ及びグラフを構成する要素の属性を管理する属性データを含む。
【００２４】
会話履歴ＤＢ２２２は、過去の会話履歴を格納する。なお、会話履歴ＤＢ２２２は、文書ＤＢ２２０の一部であってもよい。
【００２５】
Ｉ／Ｏ  ＩＦ２０３は、外部装置に接続するためのインタフェースである。本実施例では、Ｉ／Ｏ  ＩＦ２０３を介して入力装置２０５及び出力装置２０６が接続される。入力装置２０５は、応答生成装置１００に対するデータを入力するための装置であり、キーボード、マウス、及びタッチパネル等である。なお、入力装置２０５は、音声を取得するマイク等を含んでもよい。ユーザは、入力装置２０５を用いてコマンド等を応答生成装置１００に入力する。出力装置２０６は、処理結果等を表示するための装置であり、ディスプレイ及びタッチパネル等である。
【００２６】
ＮＷ  ＩＦ２０４は、ネットワークを介して装置と接続するためのインタフェースである。
【００２７】
なお、応答生成装置１００は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置を有してもよい。また、データの入出力は、入力装置２０５及び出力装置２０６を用いなくてもよい。例えば、ＮＷ  ＩＦ２０４を介して接続される装置を用いてデータの入出力が行われてもよい。
【００２８】
なお、一つの計算機が知識生成モジュール２１０及び応答生成モジュール２１１を含むが、それぞれのモジュールを別々の計算機に含めるようにしてもよい。また、並列化が可能な処理については、複数の計算機を用いて実行するようにしてもよい。
【００２９】
図３は、実施例１の文書ＤＢ２２０の一例を示す図である。
【００３０】
文書ＤＢ２２０は、複数の文書データ３００を格納する。本実施例では、一つの文書から一つの文書データ３００が生成されるものとする。
【００３１】
図３に示す例では、三つの文書データ３００−１、３００−２、３００−３が文書ＤＢ２２０に格納される。
【００３２】
図４は、実施例１のグラフ型知識ＤＢ２２１に格納されるグラフ型知識のイメージを示す図である。図５は、実施例１のグラフ型知識ＤＢ２２１に含まれるグラフデータ５００の一例を示す図である。図６は、実施例１のグラフ型知識ＤＢ２２１に含まれる属性データ６００の一例を示す図である。
【００３３】
図４は、図３に示す文書データ３００−１、３００−２、３００−３から生成されたグラフ型知識を示す。グラフ型知識は、ノード及びノード間を接続するエッジから構成される。
【００３４】
本実施例では、ノードには、エンティティ及びリレーションの二つの種類のノードが存在する。エンティティは、人、物、及び組織等の実体、並びに、抽象的な概念を示すノードである。図４では、楕円形のノードがエンティティを表す。リレーションは、エンティティ間の関係を示すノードである。図４では、長方形のノードがリレーションを表す。
【００３５】
ノード及びエッジには、それぞれ、ＩＤが付与される。図４では、説明の簡単のため一部のノード及びエッジのみにＩＤを付与している。
【００３６】
グラフデータ５００は、エンティティ管理データ５１０、リレーション管理データ５２０、及びエッジ管理データ５３０を含む。
【００３７】
エンティティ管理データ５１０は、エンティティを管理するデータであり、ノードＩＤ５１１、エンティティＩＤ５１２、エンティティタイプ５１３、及び文字列５１４から構成されるエントリを含む。
【００３８】
ノードＩＤ５１１は、ノードの識別情報である。エンティティＩＤ５１２は、エンティティの識別情報である。エンティティタイプ５１３は、エンティティのタイプである。エンティティタイプ５１３には、「Ｐ」、「Ｎ」、及び「その他」のいずれかが格納される。「Ｐ」は、知識において正の価値を示すエンティティであることを示す。「Ｎ」は、知識において負の価値を示すエンティティであることを示す。「その他」は、「Ｐ」及び「Ｎ」のいずれでもないエンティティであることを示す。文字列５１４は、ノードＩＤ５１１及びエンティティＩＤ５１２に対応するノードとして定義された文字列である。
【００３９】
なお、複数のノードが一つのノードにまとめられる場合、文字列５１４には、複数の文字列が格納される。また、ノードＩＤ５１１が異なるノードであっても、文字列５１４が同一又は類似するノードのエンティティＩＤ５１２には、同一の識別情報が設定される。
【００４０】
リレーション管理データ５２０は、リレーションを管理するデータであり、ノードＩＤ５２１、リレーションＩＤ５２２、リレーションタイプ５２３、及び文字列５２４から構成されるエントリを含む。
【００４１】
ノードＩＤ５２１は、ノードの識別情報である。リレーションＩＤ５２２は、リレーションの識別情報である。リレーションタイプ５２３は、リレーションのタイプである。リレーションタイプ５２３には、「ｐｒｏｍｏｔｅ」、「ｓｕｐｐｒｅｓｓ」、及び「その他」のいずれかが格納される。「ｐｒｏｍｏｔｅ」は起点となるエンティティが終点となるエンティティを促進するリレーションであることを表す。「ｓｕｐｐｒｅｓｓ」は、起点となるエンティティが終点となるエンティティを抑制するリレーションであることを表す。また、「その他」は、「ｐｒｏｍｏｔｅ」及び「ｓｕｐｐｒｅｓｓ」のいずれでもないリレーションであることを示す。文字列５２４は、ノードＩＤ５２１及びリレーションＩＤ５２２に対応するノードとして定義された文字列である。
【００４２】
なお、ノードＩＤ５２１が異なるノードであっても、文字列５１４が同一又は類似するノードのリレーションＩＤ５２２には、同一の識別情報が設定される。
【００４３】
エッジ管理データ５３０は、エッジを管理するデータであり、エッジＩＤ５３１、エッジタイプ５３２、ソースノードＩＤ５３３、及びターゲットノードＩＤ５３４から構成されるエントリを含む。
【００４４】
エッジＩＤ５３１は、エッジの識別情報である。エッジタイプ５３２は、エッジのタイプである。ソースノードＩＤ５３３及びターゲットノードＩＤ５３４は、エッジが接続するノードの識別情報であり、具体的には、ソースノードＩＤ５３３は、接続元のノードの識別情報であり、ターゲットノードＩＤ５３４は、接続先のノードの識別情報である。
【００４５】
応答生成装置１００は、後述するように、入力に対する応答を生成する場合、文字列の一致だけではなく、エンティティタイプ５１３及びリレーションタイプ５２３を用いて候補となる応答を検索する。
【００４６】
属性データ６００は、エンティティ属性管理データ６１０、リレーション属性管理データ６２０、及びエッジ属性管理データ６３０を含む。
【００４７】
エンティティ属性管理データ６１０は、エンティティの属性を管理するデータであり、ノードＩＤ６１１、エンティティＩＤ６１２、及び属性６１３から構成されるエントリを含む。ノードＩＤ６１１及びエンティティＩＤ６１２は、ノードＩＤ５１１及びエンティティＩＤ５１２と同一のものである。
【００４８】
属性６１３は、知識が成立する条件を特定するための情報であり、エンティティが含まれる文書データ３００から取得された属性である。本実施例では、知識の生成元となる文書データ３００の識別情報である文書ＩＤ、及び文書データ３００に含まれる文の識別情報である文ＩＤが属性として取得される。
【００４９】
なお、前述した属性は一例であってこれに限定されない。例えば、文書データ３００に対応する文書の発行年、文書が発行された場所、並びに、議論対象の年代及び地域等を属性として管理してもよい。例えば、知識には、日本の地名及び人物名が含まれる文書は、日本を題材にした文書として管理することができる。
【００５０】
リレーション属性管理データ６２０は、リレーションの属性を管理するデータであり、ノードＩＤ６２１、リレーションＩＤ６２２、及び属性６２３から構成されるエントリを含む。ノードＩＤ６２１及びリレーションＩＤ６２２は、ノードＩＤ５２１及びリレーションＩＤ５２２と同一のものである。
【００５１】
属性６２３は、知識が成立する条件を特定するための情報であり、ノードが含まれる文書データ３００から取得された属性である。本実施例では、知識の生成元となる文書データ３００の識別情報である文書ＩＤ、及び文書データ３００に含まれる文の識別情報である文ＩＤが属性として取得される。
【００５２】
エッジ属性管理データ６３０は、エッジの属性を管理するデータであり、エッジＩＤ６３１、エッジタイプ６３２、及び属性６３３から構成されるエントリを含む。エッジＩＤ６３１及びエッジタイプ６３２は、エッジＩＤ５３１及びエッジタイプ５３２と同一のものである。
【００５３】
属性６３３は、知識が成立する条件を特定するための情報であり、ノードが含まれる文書データ３００から取得された属性である。本実施例では、知識の生成元となる文書データ３００の識別情報である文書ＩＤ、及び文書データ３００に含まれる文の識別情報である文ＩＤが属性として取得される。
【００５４】
本実施例では、グラフ構造とは別に、知識の成立条件を属性として管理することによって、入力された文書のマッチング及び入力された文書に対する応答を適切に選択することができる。
【００５５】
次に、応答生成装置１００が実行する処理について図１を用いて説明する。図１は、実施例１の応答生成装置１００が実行する処理を説明するフローチャートである。図７Ａ、図７Ｂ、図７Ｃは、実施例１の知識生成モジュール２１０によって生成されるグラフ型知識のイメージを示す図である。
【００５６】
応答生成装置１００は、グラフ型知識ＤＢ２２１の生成処理（ステップＳ１００）及び応答生成処理（ステップＳ１１０）を実行する。
【００５７】
（１）グラフ型知識ＤＢ２２１の生成処理
グラフ型知識ＤＢ２２１の生成処理では、知識生成モジュール２１０が、グラフ型知識抽出処理を実行する（ステップＳ１０１）。ここで、図３に示す文書データ３００を例にグラフ型抽出処理について説明する。
【００５８】
知識生成モジュール２１０は、一つの文書データ３００を選択し、また、選択された文書データ３００に含まれる文の中から一つの文を選択する。知識生成モジュール２１０は、選択された文について（１）及び（２）の処理を実行する。
【００５９】
（１）知識生成モジュール２１０は、一つの文からエンティティを特定する。知識生成モジュール２１０は、特定されたエンティティをエンティティ管理データ５１０に登録する。
【００６０】
エンティティを特定する方法としては、例えば、機械学習を用いる方法が考えられる。この場合、知識生成モジュール２１０は、抽出したいエンティティにラベルが付加された学習用の文書セットを用いてエンティティの識別器を生成し、当該識別器を用いてエンティティを特定する。また、他の方法としては、構文解析を用いる方法が考えられる。エンティティは、名詞又は形容詞である場合が多いため、そこで、知識生成モジュール２１０は、構文解析に基づいて名詞及び形容詞を特定する。なお、構文解析には、Ｓｔａｎｆｏｒｄ  ＣｏｒｅＮＬＰ等を用いればよい。
【００６１】
（１）の処理によって、文書データ３００−１に含まれる文から「Ｓｕｓａｎ」、「ｃａｓｉｎｏ」、及び「ｔａｘ  ｒｅｖｅｎｕｅ」の三つのエンティティが特定される。
【００６２】
（２）知識生成モジュール２１０は、抽出されたエンティティ間のリレーションを特定する。さらに、知識生成モジュール２１０は、エンティティとリレーションとを接続するエッジを生成する。知識生成モジュール２１０は、特定されたリレーションをリレーション管理データ５２０に登録し、また、生成されたエッジをエッジ管理データ５３０に登録する。
【００６３】
例えば、文書データ３００−１の場合、「ｃａｓｉｎｏ」及び「ｔａｘ  ｒｅｖｅｎｕｅ」は、述語「ｇｅｎｅｒａｔｅ」の引数（主語及び目的語）となっている。そこで、知識生成モジュール２１０は、構文解析に基づいて、二つのエンティティを引数とする述語をリレーションとして特定する。さらに、知識生成モジュール２１０は、「ｃａｓｉｎｏ」と「ｇｅｎｅｒａｔｅ」との間にエッジを生成し、また、「ｔａｘ  ｒｅｖｅｎｕｅ」と「ｇｅｎｅｒａｔｅ」との間にエッジを生成する。
【００６４】
このとき、述語「ｓａｙ」は、エンティティ「Ｓｕｓａｎ」と「ｃａｓｉｎｏ  ｇｅｎｅｒａｔｅ  ｔａｘ  ｒｅｖｅｎｕｅ」とを結んでいるが、「ｃａｓｉｎｏ  ｇｅｎｅｒａｔｅ  ｔａｘ  ｒｅｖｅｎｕｅ」は、エンティティではない。「ｃａｓｉｎｏ  ｇｅｎｅｒａｔｅ  ｔａｘ  ｒｅｖｅｎｕｅ」を一つのノードとして定義する方法も考えられるが、グラフの構造が複雑になる。そこで、知識生成モジュール２１０は、リレーション「ｇｅｎｅｒａｔｅ」を「ｃａｓｉｎｏ  ｇｅｎｅｒａｔｅ  ｔａｘ  ｒｅｖｅｎｕｅ」を代表するリレーションとして扱い、「Ｓｕｓａｎ」と「ｇｅｎｅｒａｔｅ」との間を「ｓｔａｔｅ」というタイプのエッジで接続する。
【００６５】
主語及び述語を接続するリレーション以外のリレーションを特定する方法としては、Ｓｅｍａｎｔｉｃ  Ｒｏｌｅ  Ｌａｂｅｌｌｉｎｇ等の技術を用いる方法が考えられる。この場合、抽出したいリレーションは予め定義しておく。例えば、ＦｒａｍｅＮｅｔの中から抽出したいリレーションを定義しておいてもよいし、独自に定義してもよい。ＦｒａｍｅＮｅｔに定義されているリレーションを用いる場合、Ｓｅｍａｆｏｒ等のソフトウェアを用いることによって、前述のようなリレーションを抽出することができる。
【００６６】
二つのエンティティとエンティティ間を接続するリレーションから構成される組みは、ＯｐｅｎＩＥ等のソフトウェアを用いて特定することもできる。また、エンティティのタイプ及びリレーションのタイプは、辞書を用いて決定する方法が考えられる。
【００６７】
なお、「ｃａｓｉｎｏ」及び「ｇｅｎｅｒａｔｅ」を接続するエッジ、並びに「ｔａｘ  ｒｅｖｅｎｕｅ」及び「ｇｅｎｅｒａｔｅ」を接続するエッジのタイプはｌｉｎｋであるものとする。
【００６８】
（１）及び（２）の処理によって、文書データ３００−１に含まれる文から図７Ａに示すようなグラフ型知識が生成される。
【００６９】
知識生成モジュール２１０は、選択された文書データ３００−１に含まれる全ての文について同様の処理を実行する。また、知識生成モジュール２１０は、全ての文書データ３００について同様の処理を実行する。
【００７０】
したがって、文書データ３００−２からは、図７Ｂに示すようなグラフ型知識が生成され、また、文書データ３００−３からは、図７Ｃに示すようなグラフ型知識が生成される。図７Ｂでは、組（ｃａｓｉｎｏ、ｇｅｎｅｒａｔｅ、ｅｍｐｌｏｙｍｅｎｔ）と、組（ｃａｓｉｎｏ、ａｔｔｒａｃｔ、ｃｒｉｍｅ）とがタイプ「ａｌｔｈｏｕｇｈ」であるエッジで接続されるグラフ型知識を示す。また、図７Ｃは、組（ｃａｓｉｎｏ、ｇｅｎｅｒａｔｅ、ｔａｘ  ｒｅｖｅｎｕｅ）と「ｓｕｒｖｅｙ」とが、タイプ「ｓｏｕｒｃｅ」であるエッジで接続されるグラフ型知識を示す。なお、文書データ３００−２の「ｔｈｅｙ」は、照応解析を行うことによって、「ｃａｓｉｎｏ」と結びつけが行われている。
【００７１】
なお、前述したグラフ型知識の生成方法は一例であって、これに限定されない。
【００７２】
例えば、知識生成モジュール２１０は、構文解析及び係り受け解析を実行し、述語の引数をエンティティとして特定する方法も考えられる。また、ｄｂｐｅｄｉａ  ｓｐｏｔｌｉｇｈｔ等のソフトウェアを用いて、エンティティを特定してもよい。
【００７３】
また、異なる文に含まれるエンティティのリレーションを推定することによってグラフ型知識が生成されてもよい。以上がグラフ型知識抽出処理の説明である。
【００７４】
次に、知識生成モジュール２１０は、知識属性抽出処理を実行する（ステップＳ１０２）。
【００７５】
本実施例では、属性として抽出するデータが予め定義されているものとする。この場合、知識生成モジュール２１０は、一つの文書データ３００から定義された属性を抽出し、エンティティ属性管理データ６１０、リレーション属性管理データ６２０、及びエッジ属性管理データ６３０を生成する。
【００７６】
例えば、文書データ３００のメタデータ等を属性として抽出する場合、一つの文書データ３００に含まれるエンティティ、リレーション、及びエッジに対して属性がエンティティ属性管理データ６１０、リレーション属性管理データ６２０、及びエッジ属性管理データ６３０に登録される。例えば、同じ「ｃａｓｉｎｏ」は、文書データ３００−１及び文書データ３００−２に含まれるため、図６に示すエンティティ属性管理データ６１０には、文書データ３００−１に含まれる「ｃａｓｉｎｏ」の属性を管理するエントリ、及び文書データ３００−２に含まれる「ｃａｓｉｎｏ」の属性を管理するエントリが含まれる。
【００７７】
知識生成モジュール２１０は、文字列が同一又は類似するノードを同一視することによって、複数の文書データ３００から生成された複数のグラフ型知識を統合する。図７Ａ、図７Ｂ、及び図７Ｃのそれぞれのグラフ型知識のノードが統合された結果、図４に示すようなグラフ型知識が生成される。
【００７８】
ノードの統合は、文字列の類似性に基づいて行われる。しかし、同一又は類似する文字列であっても概念が異なる場合があり、また、異なる文字列であるが同じ概念を表す場合もある。例えば、エンティティ「ｃａｓｉｎｏ」は、施設だけではなく、小説又は映画のタイトルである可能性がある。また、エンティティ「Ｄｒ．Ｓｕｓａｎ」及びエンティティ「Ｐｒｏｆ．Ｓｕｓａｎ」は、同じ概念を表す。
【００７９】
本実施例では、知識生成モジュール２１０は、ノードＩＤ５１１、５２１とは別に、エンティティＩＤ５１２をエンティティに割り当て、また、リレーションＩＤ５２２をリレーションに割り当てる。これによって正確な知識を生成できる。
【００８０】
エンティティの識別情報は、ｄｂｐｅｄｉａ＿ｓｐｏｔｌｉｇｈｔ等のソフトウェアを用いることが考えられる。ｄｂｐｅｄｉａ＿ｓｐｏｔｌｉｇｈｔでは、文書に含まれるエンティティの認識が行われ、定義されたエンティティの識別情報にエンティティを結びつけることができる。リレーションについても、同様に、関係オントロジーの識別情報を結びつけてもよい。
【００８１】
図４、図７Ａ、図７Ｂ、及び図７Ｃに示すグラフ型知識では、リレーションをノードとして扱っているが、リレーションをエッジとして扱ってもよい。リレーションをエッジとして扱った場合、文書データ３００−１、３００−２、３００−３からは、図８Ａ、図８Ｂ、及び図８Ｃに示すようなグラフ型知識が生成される。また、図８Ａ、図８Ｂ、及び図８Ｃに示すグラフを統合した場合、図９に示すようなグラフ型知識が生成される。なお、グラフデータ５００は、リレーション管理データ５２０及びエッジ管理データ５３０を統合したエッジ管理データ５３０が生成される。また、属性データ６００は、リレーション属性管理データ６２０及びエッジ属性管理データ６３０を統合したエッジ属性管理データ６３０が生成される。すなわち、ノードＩＤ及びエッジＩＤが一つのカラムで表現され、また、リレーションＩＤ及びエッジタイプＩＤが一つのカラムで表現される。
【００８２】
図９に示すグラフ型知識は、「ｓｔａｔｅ」、「ｓｏｕｒｃｅ」、及び「ａｌｔｈｏｕｇｈ」等のリレーションが含まれない。知識の粒度は荒くなるが、グラフは単純な構造となるため応答生成処理（Ｓ１１０）の処理を高速化できる。説明の簡単のため、グラフ型知識ＤＢ２２１には、図９に示すようなグラフ型知識が格納されるものとする。
【００８３】
（２）応答生成処理
次に、グラフ型知識ＤＢ２２１を用いた応答生成処理（ステップＳ１１０）について説明する。図１０は、実施例１の応答生成処理に用いるグラフ型知識ＤＢ２２１に含まれるグラフ型知識の一例を示す図である。
【００８４】
図１０に示すグラフ型知識は、四つのエンティティ（ノード）及びエンティティを接続する四つのリレーション（エッジ）を含む。
【００８５】
エッジには具体的なリレーションの文字列、「ｇｅｎｅｒａｔｅ」、「ｒｅｄｕｃｅ」、「ｉｎｃｒｅａｓｅ」、「ｆｕｎｄ」を示している。また、エンティティ及びリレーションには、それぞれ、１から８までの識別情報を付与している。
【００８６】
図１０に示すグラフ型知識には、「ｃａｓｉｎｏ  ｇｅｎｅｒａｔｅ  ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ」、「ｃａｓｉｎｏ  ｒｅｄｕｃｅ  ｌｏｔｔｅｒｙ  ｒｅｖｅｎｕｅ」、「ｌｏｔｔｅｒｙ  ｒｅｖｅｎｕｅ  ｉｎｃｒｅａｓｅ  ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ」、「ｌｏｔｔｅｒｙ  ｆｕｎｄ  ｅｄｕｃａｔｉｏｎ」という四つの知識を表したグラフである。
【００８７】
なお、後述するように実線のノード及び実線のエッジは、入力文書のマッチング箇所を示し、点線のノード及び点線のエッジは、入力文書に対する応答候補を示す。
【００８８】
応答生成モジュール２１１は、入力文書を受け付けた場合、応答生成処理（ステップＳ１１０）を開始する。
【００８９】
まず、応答生成モジュール２１１は、知識マッチング処理を実行する（ステップＳ１１１）。具体的には、以下のような処理が実行される。
【００９０】
応答生成モジュール２１１は、グラフ型知識ＤＢ２２１の生成処理と同様の方法を用いて、入力文書に含まれる文からグラフ型知識を生成する。以下では、入力文書から生成されたグラフ型知識を入力グラフ型知識とも記載する。
【００９１】
応答生成モジュール２１１は、入力グラフ型知識とグラフ型知識ＤＢ２２１に格納されるグラフ型知識とマッチングを行い、各文のマッチング箇所（入力文書に一致又は類似するグラフ型知識）を検索する。
【００９２】
ここでは、応答生成モジュール２１１は、入力グラフ型知識の組（エンティティ、リレーション、エンティティ）と、グラフ型知識ＤＢ２２１に格納される組（エンティティ、リレーション、エンティティ）との類似度を算出する。応答生成モジュール２１１は、類似度が閾値以上の組をマッチング箇所として特定する。なお、一つの文に対して一つ以上のマッチング箇所が検索される。
【００９３】
組の類似度の算出方法としては、オントロジー上のエンティティ及びリレーションの距離及びｗｏｒｄ２ｖｅｃを用いて、エンティティ及びリレーションの個々の類似度を算出し、当該類似度から組の類似度を算出する方法が考えられる。なお、組の類似度の算出方法には限定されない。
【００９４】
例えば、文が「ｃａｓｉｎｏ  ｇｅｎｅｒａｔｅ  ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ」である場合、実線のエンティティ及び実線のエッジで接続される部分が入力文書に対応するグラフ型知識として検索される。この場合、組（ｉｄ１、ｉｄ５、ｉｄ２）がマッチング箇所のデータとして出力される。
【００９５】
例えば、文が「ｃａｓｉｎｏ  ｉｎｃｒｅａｓｅ  ｔａｘ  ｒｅｖｅｎｕｅ」である場合、リレーション「ｉｎｃｒｅａｓｅ」及びリレーション「ｇｅｎｅｒａｔｅ」は類似し、また、エンティティ「ｔａｘ  ｒｅｖｅｎｕｅ」及びエンティティ「ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ」は類似する。したがって、算出された類似度が閾値より大きい場合、組（ｉｄ１、ｉｄ５、ｉｄ２）がマッチング箇所のデータとして出力される。
【００９６】
なお、本実施例では、少なくとも一つのマッチング箇所が検索されるように類似度の閾値を低く設定しておく。この場合、応答が出力されないという問題を回避できるが、マッチング精度が落ちるという問題がある。しかし、後述するマッチング評価処理において、マッチング箇所を評価することによって、マッチング精度を担保している。このような処理手順にすることによって、マッチング精度を保ちつつ、ロバストなマッチングが可能となる。
【００９７】
前述した方法以外に、入力文書の形式を推定し、マッチング箇所を検索する知識マッチング処理も考えられる。例えば、カジノに関する議論では、カジノに関する話題であるため、カジノが単語として含まれない入力文書が入力される場合がある。このような問題に対して前述した知識マッチング処理が有効である。
【００９８】
具体的には、応答生成モジュール２１１は、エンティティのタイプ、リレーションのタイプを用いて入力文書の形式を推定する。例えば、カジノを肯定する文の場合、「カジノがある事柄の正の価値を促進する。」又は「カジノがある事柄の負の価値を抑制する。」という文が考えられる。そこで、応答生成モジュール２１１は、正の価値のエンティティを検索する。
【００９９】
なお、前述した二つの方法を組み合わせてもよい。以上が知識マッチング処理の説明である。
【０１００】
次に、応答生成モジュール２１１は、マッチング評価処理を実行する（ステップＳ１１２）。具体的には、以下のような処理が実行される。
【０１０１】
応答生成モジュール２１１は、複数の文の各々のマッチング箇所を要素とする集合を生成する。応答生成モジュール２１１は、集合に含まれるマッチング箇所の中から一つのマッチング箇所を選択し、グラフ上における当該マッチング箇所と集合に含まれる他のマッチング箇所との間の距離を算出する。また、応答生成モジュール２１１は、各距離の合計値を算出する。応答生成モジュール２１１は、すべてのマッチング箇所について同様の処理を実行する。
【０１０２】
第１マッチング箇所、第２マッチング箇所、及び第３マッチング箇所を含む集合において、第１マッチング箇所が選択された場合、第１マッチング箇所と第２マッチング箇所との間の距離、及び、第１マッチング箇所及び第３マッチング箇所との間の距離が算出される。
【０１０３】
なお、一つのマッチング箇所に含まれるノードと他のマッチング箇所に含まれるノードとの距離のうち、最小の距離をマッチング箇所間の距離とする。図１０に示すグラフ型知識の場合、ノード「ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ」及びノード「ｃａｓｉｎｏ」の距離は１、ノード「ｅｄｕｃａｔｉｏｎ」及びノード「ｃａｓｉｎｏ」の距離は２と算出される。
【０１０４】
応答生成モジュール２１１は、距離の合計値が最も小さいマッチング箇所にスコアとして１を与え、また、他のマッチング箇所にスコアとして０を与える。これは、マッチング箇所の集合の中で、グラフ上のマッチング箇所の密度が場所を特定し、当該場所に含まれるマッチング箇所のスコアを１とすることに相当する。
【０１０５】
一般的に、関連性がある知識同士はグラフ上の距離が小さい。したがって、入力文書に含まれる複数の文の各々から抽出された知識も関連性があると考えられるため、グラフ上においてマッチング箇所の密度が高い場所に含まれるマッチング箇所は、より正確な知識として扱える。
【０１０６】
ここで、入力文書が「それは旅行業を活性化させ、雇用を促進する。その結果、地域経済を活性化することができる。そして、政府収益が向上する。」を例に、知識マッチング処理及びマッチング評価処理の効果について説明する。
【０１０７】
知識マッチング処理において、応答生成モジュール２１１は、旅行産業、雇用、地域経済、及び政府収益が性能価値のエンティティとして特定する。応答生成モジュール２１１は、論題対象は不明であるため、仮のエンティティＸを用いて、組（Ｘ、ｐｒｏｍｏｔｅ、ｔｏｕｒｉｓｍ  ｉｎｄｕｓｔｒｙ）、組（Ｘ、ｐｒｏｍｏｔｅ、ｅｍｐｌｏｙｍｅｎｔ）、組（Ｘ、ｐｒｏｍｏｔｅ、ｌｏｃａｌ  ｅｃｏｎｏｍｙ）、組（Ｘ、ｐｒｏｍｏｔｅ、ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ）のぞれぞれの文についてマッチング箇所を検索する。カジノに関する話題の場合、ｔｏｕｒｉｓｍ  ｉｎｄｕｓｔｒｙ、ｅｍｐｌｏｙｍｅｎｔ、ｌｏｃａｌ  ｅｃｏｎｏｍｙ、及びｔｏｕｒｉｓｍ  ｇｏｖｅｍｅｎｔ  ｒｅｖｅｎｕｅを含む知識は、グラフ上の距離が近いと考えられる。
【０１０８】
そこで、マッチング評価処理において、応答生成モジュール２１１は、各文のマッチング箇所の集合の密度に基づいて、入力文書のマッチング箇所を特定する。ここでは、（ｉｄ１、ｉｄ５、ｉｄ２）がマッチング箇所のデータとして出力される。
【０１０９】
複数の文のマッチング箇所を用いて入力文書のマッチング箇所のスコアを算出し、当該スコアによって応答を検索するためのマッチング箇所を特定することによって、精度が高いマッチング箇所を特定することができる。すなわち、ロバストにマッチング箇所を検索することによって応答の出力を保証し、また、グラフ上のマッチング箇所の密度に基づいて使用するマッチング箇所を選択することによって、マッチング精度を担保できる。
【０１１０】
なお、マッチング評価処理では、会話履歴ＤＢ２２２を用いてもよい。これによって、入力文書に含まれる文が一つであっても、会話履歴ＤＢ２２２に含まれる文のマッチング箇所の距離に基づいて、精度の高いマッチング箇所を特定できる。以上がマッチング評価処理の説明である。
【０１１１】
次に、応答生成モジュール２１１は、意味理解処理を実行する（ステップＳ１１３）。具体的には、応答生成モジュール２１１は、マッチング評価処理において算出されたスコアが閾値より小さいマッチング箇所をメモリ２０１から削除する。メモリ２０１に格納されるマッチング箇所が入力文書の知識として理解される。
【０１１２】
次に、応答生成モジュール２１１は、マッチング箇所に対する応答候補の知識を検索するために応答検索処理を実行する（ステップＳ１１４）。
【０１１３】
本実施例の応答生成装置１００は、入力文書に対して生成する応答の種別が定義された応答種別情報を保持する。ここで、図１１Ａから図１１Ｅを用いて応答の種別について説明する。図１１Ａから図１１Ｅは、実施例１の応答生成装置１００が保持する応答種別情報のイメージを示す図である。なお、応答種別情報は、グラフデータ５００と同様のデータ形式が考えられる。
【０１１４】
Ｔを含む円形は論題対象となるエンティティを示し、Ｐを含む円形はエンティティタイプ５１３が「Ｐ」のエンティティを示し、Ｎを含む円形はエンティティタイプ５１３が「Ｎ」のエンティティを示し、また、Ｓを含む円形はエンティティタイプ５１３が「その他」のエンティティを示す。
【０１１５】
また、エンティティの終点には、黒丸又は矢印のいずれかになる。黒丸はリレーションタイプ５２３が「ｓｕｐｐｒｅｓｓ」であるリレーションを介して接続されることを表し、矢印はリレーションタイプ５２３が「ｐｒｏｍｏｔｅ」であるリレーションを介して接続されることを表す。
【０１１６】
また、破線は入力（立論）に対応する知識のパスを表し、太い実線は応答に対応する知識のパスを表し、補正実線は応答を検索するために用いられる補助的な知識のパスを表す。
【０１１７】
応答生成装置１００は、図１１Ａから図１１Ｅに示すような入力及び応答の関係性を示す定義情報を保持する。ユーザは、得たい応答の種別に応じて入力及び応答の関係性を選択する。
【０１１８】
図１１Ａは、直接反論における入力及び応答の関係性を示す。直接反論では、応答生成装置１００は、入力に対応する知識とは逆の事例を示す知識を応答として検索する。
【０１１９】
例えば、「カジノ（Ｔ）は税収（Ｐ）を促進する（ｐｒｏｍｏｔｅ）」という入力に対して、「カジノ（Ｔ）は税収（Ｐ）を抑制する（ｓｕｐｐｒｅｓｓ）」という応答が検索される。
【０１２０】
図１１Ｂは、外的干渉における入力及び応答の関係性を示す。外的干渉では、応答生成装置１００は、入力における論題対象そのものを阻害する事例を示す知識を応答として検索する。
【０１２１】
例えば、「カジノ（Ｔ）は税収（Ｐ）を生み出す（ｐｒｏｍｏｔｅ）」という入力に対して、「法律（Ｓ）がカジノ（Ｔ）を禁止している（ｓｕｐｐｒｅｓｓ）」という応答が検索される。
【０１２２】
図１１Ｃは、トレードオフにおける入力及び応答の関係性を示す。トレードオフでは、応答生成装置１００は、価値の間のトレードオフの観点から応答を検索する。
【０１２３】
例えば、論題「学校に制服を導入するべきか否か」に対して、「制服（Ｔ）を導入することによって、規律（Ｐ）が促進される（ｐｒｏｍｏｔｅ）」という知識に対しては、「制服（Ｔ）を導入した場合、個性（Ｐ’）が抑制される（ｓｕｐｐｒｅｓｓ）」という反論と、「制服（Ｔ）を導入した場合、市場の公平性（Ｐ）が失われる（ｓｕｐｐｒｅｓｓ）」という反論が考えられる。規律と構成との間にはトレードオフの関係性がある。したがって、後者の反論は規律とは関係がない知識であるため、前者の知識が入力に対する応答として適切であると考えられる。
【０１２４】
このように、ある事柄（Ｓ）において、規律を促進し、また、構成を抑制するという関係性がある知識が複数存在する場合、規律と個性との間はトレードオフの関係性がある。そのため、トレードオフでは、応答生成装置１００は、価値Ｐとトレードオフの関係にある価値Ｐ’を検索し、「Ｔ  ｐｒｏｍｏｔｅ  Ｐ」という入力に対して、「Ｔ  ｓｕｐｐｒｅｓｓ  Ｐ’」という応答を検索する。
【０１２５】
図１１Ｄは、効果抑制における入力及び応答の関係性を示す。効果抑制では、応答生成装置１００は、入力が示す効果を抑制する知識を応答として検索する。
【０１２６】
例えば、「カジノ（Ｔ）は税収（Ｐ）を生み出す（ｐｒｏｍｏｔｅ）」という入力に対して、「カジノと競合する宝くじの収益減少が（Ｔ）が税収（Ｐ）を減少させる（ｓｕｐｐｒｅｓｓ）」という応答が検索される。
【０１２７】
図１１Ｅは、代替可能における入力及び応答の関係性を示す。代替可能では、応答生成装置１００は、入力が示す効果と同様の効果を含む知識を応答として検索する。
【０１２８】
例えば、「カジノ（Ｔ）は雇用（Ｐ）を促進する（ｐｒｏｍｏｔｅ）」という入力に対して、「カジノでなくても、企業（Ｔ）を融資することによって、雇用（Ｐ）が促進できる（ｐｒｏｍｏｔｅ）」という代替手段に対応する知識が応答として検索される。以上が応答の種別の説明である。
【０１２９】
ここでは、図１０を用いて直接反論が選択された場合の応答検索処理の具体的な処理内容について説明する。
【０１３０】
入力文書のマッチング箇所は、組（ｉｄ１、ｉｄ５、ｉｄ２）である。「ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ」は正の価値のエンティティであり、「ｇｅｎｅｒａｔｅ」は促進のリレーションであるため、応答生成モジュール２１１は、「ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ」を抑制する知識をグラフ型知識ＤＢ２２１から検索する。
【０１３１】
図１０に示すグラフ上には、「ｃａｓｉｎｏ  ｒｅｄｕｃｅ  ｌｏｔｔｅｒｙ  ｒｅｖｅｎｕｅ」という知識と、「ｌｏｔｔｅｒｙ  ｒｅｖｅｎｕｅ  ｉｎｃｒｅａｓｅ  ｇｏｖｅｒｎｍｅｎｔ  ｒｅｖｅｎｕｅ」という知識とが存在し、この二つの知識からカジノが政府収益を抑制するという知識を得ることができる。したがって、応答生成モジュール２１１は、組（ｉｄ１、ｉｄ７、ｉｄ３、ｉｄ６、ｉｄ２）をマッチング箇所に対する応答候補の知識として出力する。
【０１３２】
前述した例では、一つの応答候補が検索されたが、複数の応答候補が検索されてもよい。以上が応答検索処理の説明である。
【０１３３】
次に、応答生成モジュール２１１は、応答評価処理を実行する（ステップＳ１１５）。
【０１３４】
具体的には、応答生成モジュール２１１は、応答検索処理において検索された応答候補のスコアを算出する。例えば、反論の強さを示すスコア、整合性の高さを示すスコア、及びマッチングのスコアの操作を応答候補のスコアとして算出する。
【０１３５】
反論の強さを示すスコアは、入力文書を否定するエンティティの数として算出される。図１０に示す例では、カジノが促進する負の価値のエンティティ、及びカジノが抑制する正の価値のエンティティの数の合計値が第１スコアとして算出される。
【０１３６】
整合性の高さを示すスコアは、属性データ６００を用いて算出される。例えば、応答生成モジュール２１１は、応答候補に含まれる複数の知識の各々の属性６１３、６２３、６３３の値を参照し、全ての属性６１３、６２３、６３３の値が一致する場合にはスコアとして１を与え、それ以外の場合にはスコアとして０を与える。
【０１３７】
マッチングのスコアは、マッチング評価処理において算出されたスコアを用いる。
【０１３８】
このように、知識が成立する条件を示す属性に基づくスコアを用いることによって、入力文書と同等又は対応する条件の下で成立する知識を応答として生成できる。
【０１３９】
例えば、「ｃａｓｉｎｏ  ｒｅｄｕｃｅ  ｌｏｔｔｅｒｙ  ｒｅｖｅｎｕｅ」がアメリカで成立する知識であり、「ｌｏｔｔｅｒｙ  ｒｅｖｅｎｕｅ  ｆｕｎｄ  ｅｄｕｃａｔｉｏｎ」が日本で成立する知識の場合、アメリカに関する議題の入力文書に対しては、二つの知識を結合した知識の整合性は低い。以上が応答評価処理の説明である。
【０１４０】
次に、応答生成モジュール２１１は、応答候補から応答を生成するための応答生成処理を実行する（ステップＳ１１６）。
【０１４１】
応答生成モジュール２１１は、応答評価処理において算出された各スコアの合計値等に基づいて、応答候補の中から応答を選択する。例えば、応答生成モジュール２１１は、各スコアの合計値が閾値より高い応答候補を応答として選択する。また、応答生成モジュール２１１は、複数の応答が存在する場合、複数の応答を結合して一つ又は複数の応答を生成してもよい。応答生成モジュール２１１は、応答を所定のデータ形式に変換し、外部に出力する。
【０１４２】
例えば、（ｉｄ３、ｉｄ６、ｉｄ２）、（ｉｄ１、ｉｄ７、ｉｄ３）、（ｉｄ３、ｉｄ８、ｉｄ４）が応答として選択された場合、三つの応答を結合して「カジノは宝くじの収益を減らす。宝くじの収益は政府収入であるため、これによって政府収益が減る可能性がある。また、宝くじの収益は教育の財源になっているため、教育に悪影響が出る。」という応答を生成してもよい。
【０１４３】
本実施例によれば、ロバストなグラフ型知識の検索を行うため、応答を生成するためのグラフ型知識が少なくとも一つ検索される。したがって、応答生成装置１００は必ず入力文書に対する応答を出力できる。また、応答生成装置１００は、グラフ上のマッチング箇所の密集箇所に基づいて使用するマッチング箇所を絞り込むことによって、入力の理解を精度よく理解することができる。また、応答生成装置１００は、属性データ６００に基づくスコアリングによって、入力文書と異なる観点であって、議論として成り立つ応答を生成することができる。
【０１４４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【０１４５】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるＣＰＵが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１４６】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１４７】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるＣＰＵが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【符号の説明】
【０１４８】
１００  応答生成装置
２００  ＣＰＵ
２０１  メモリ
２０３  Ｉ／Ｏ  ＩＦ
２０４  ＮＷ  ＩＦ
２０５  入力装置
２０６  出力装置
２１０  知識生成モジュール
２１１  応答生成モジュール
２２０  文書ＤＢ
２２１  グラフ型知識ＤＢ
２２２  会話履歴ＤＢ
３００  文書データ
５００  グラフデータ
５１０  エンティティ管理データ
５２０  リレーション管理データ
５３０  エッジ管理データ
６００  属性データ
６１０  エンティティ属性管理データ
６２０  リレーション属性管理データ
６３０  エッジ属性管理データ
【図１】
2018041336.tif 000003
【図２】
2018041336.tif 000004
【図３】
2018041336.tif 000005
【図４】
2018041336.tif 000006
【図５】
2018041336.tif 000007
【図６】
2018041336.tif 000008
【図７Ａ】
2018041336.tif 000009
【図７Ｂ】
2018041336.tif 000010
【図７Ｃ】
2018041336.tif 000011
【図８Ａ】
2018041336.tif 000012
【図８Ｂ】
2018041336.tif 000013
【図８Ｃ】
2018041336.tif 000014
【図９】
2018041336.tif 000015
【図１０】
2018041336.tif 000016
【図１１Ａ】
2018041336.tif 000017
【図１１Ｂ】
2018041336.tif 000018
【図１１Ｃ】
2018041336.tif 000019
【図１１Ｄ】
2018041336.tif 000020
【図１１Ｅ】
2018041336.tif 000021