(57)【要約】【課題】ユーザが作文や発話を行っている最中に、ユーザによる作文や発話のコンテキストに沿って、ユーザの発想を支援する。【解決手段】発想支援装置は、知識を定義する文書に含まれる命題を構成する要素を示すノードと、該命題が示す該要素間のリレーションを示すエッジと、を含む第１グラフ、の構造を示す情報と、該文書におけるリレーションの出現順序を示す情報と、を保持し、命題の入力を受け付け、該命題に含まれる要素と、該命題が示す該要素間のリレーションと、を抽出し、抽出した要素を示すノードを含み、かつ抽出した要素間のリレーションをエッジとして含む第２グラフを生成し、第２グラフが示すリレーションが第１グラフに含まれると判定した場合、該文書において当該リレーションの後に出現したリレーションを特定する。【選択図】図１
2018147238.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの発想を支援する発想支援装置であって、
プロセッサとメモリとを含み、
前記メモリは、
知識を定義する文書に含まれる命題を構成する要素を示すノードと、前記命題が示す前記要素間のリレーションを示す第１種エッジと、を含む第１グラフ、の構造を示すグラフ情報と、
前記文書におけるリレーションの出現順序を示すコンテキスト情報と、を保持し、
前記プロセッサは、
命題の入力を受け付け、
前記入力を受け付けた命題に含まれる要素と、前記入力を受け付けた命題が示す当該要素間のリレーションと、を抽出し、
前記抽出した要素を示すノードを含み、かつ前記抽出した要素間のリレーションを前記第１種エッジとして含む第２グラフを生成し、
前記グラフ情報を参照して、前記第２グラフが示すリレーションが前記第１グラフに含まれると判定した場合、前記コンテキスト情報を参照して、前記文書において当該リレーションの後に出現したリレーションを特定し、
前記特定したリレーションを示す情報を出力する、発想支援装置。
【請求項２】
請求項１に記載の発想支援装置であって、
前記文書は、複数の命題を含み、
前記第１グラフのノードは、
前記複数の命題に含まれるエンティティを示す第１種ノードと、
前記複数の命題に含まれる命題であって、全ての要素とリレーションが前記複数の命題における他の命題の１つの要素に含まれる命題、である第１種命題のリレーションを示す第２種ノードと、を含み、
前記第１グラフは、前記第１種命題を構成する要素を示すノードと、前記第２種ノードと、を接続する第２種エッジを含み、
前記プロセッサは、
複数の命題の入力を受け付け、
前記第２グラフの生成において、
前記抽出した要素のうちエンティティを前記第１種ノードに決定し、
前記入力を受け付けた複数の命題が、前記第１種命題を含むと判定した場合、当該第１種命題のリレーションを前記第２種ノードに決定し、
当該第１種命題を構成する要素を示すノードと、前記決定した第２種ノードと、を前記第２種エッジで接続する、発想支援装置。
【請求項３】
請求項１に記載の発想支援装置であって、
前記コンテキスト情報は、前記文書の命題が示すリレーションそれぞれについて、前記文書において当該リレーションより後に出現したリレーションの出現回数を示し、
前記プロセッサは、
前記コンテキスト情報が示す、前記特定したリレーションの出現回数に基づいて、前記特定したリレーションからリレーションを選択し、
前記選択したリレーションを示す情報を出力する、発想支援装置。
【請求項４】
請求項１に記載の発想支援装置であって、
前記コンテキスト情報は、前記文書の命題が示すリレーションそれぞれについて、前記文書において当該リレーションより後に出現したリレーションとの前記文書上での距離を示し、
前記プロセッサは、
前記コンテキスト情報が示す、前記第１グラフに含まれる前記第２グラフが示すリレーションと、前記特定したリレーションと、の距離に基づいて、前記特定したリレーションからリレーションを選択し、
前記選択したリレーションを示す情報を出力する、発想支援装置。
【請求項５】
請求項１に記載の発想支援装置であって、
前記プロセッサは、前記特定したリレーションに予め定められたリレーションが含まれる場合、前記予め定められたリレーションを示す情報を出力する、発想支援装置。
【請求項６】
発想支援装置が、ユーザの発想を支援する方法であって、
前記発想支援装置は、
知識を定義する文書に含まれる命題を構成する要素を示すノードと、前記命題が示す前記要素間のリレーションを示す第１種エッジと、を含む第１グラフ、の構造を示すグラフ情報と、
前記文書におけるリレーションの出現順序を示すコンテキスト情報と、を保持し、
前記方法は、
前記発想支援装置が、
命題の入力を受け付け、
前記入力を受け付けた命題に含まれる要素と、前記入力を受け付けた命題が示す当該要素間のリレーションと、を抽出し、
前記抽出した要素を示すノードを含み、かつ前記抽出した要素間のリレーションを前記第１種エッジとして含む第２グラフを生成し、
前記グラフ情報を参照して、前記第２グラフが示すリレーションが前記第１グラフに含まれると判定した場合、前記コンテキスト情報を参照して、前記文書において当該リレーションの後に出現したリレーションを特定し、
前記特定したリレーションを示す情報を出力する、方法。
【請求項７】
請求項６に記載の方法であって、
前記文書は、複数の命題を含み、
前記第１グラフのノードは、
前記複数の命題に含まれるエンティティを示す第１種ノードと、
前記複数の命題に含まれる命題であって、全ての要素とリレーションが前記複数の命題における他の命題の１つの要素に含まれる命題、である第１種命題のリレーションを示す第２種ノードと、を含み、
前記第１グラフは、前記第１種命題を構成する要素を示すノードと、前記第２種ノードと、を接続する第２種エッジを含み、
前記方法は、
前記発想支援装置が、
複数の命題の入力を受け付け、
前記第２グラフの生成において、
前記抽出した要素のうちエンティティを前記第１種ノードに決定し、
前記入力を受け付けた複数の命題が、前記第１種命題を含むと判定した場合、当該第１種命題のリレーションを前記第２種ノードに決定し、
当該第１種命題を構成する要素を示すノードと、前記決定した第２種ノードと、を前記第２種エッジで接続する、方法。
【請求項８】
請求項６に記載の方法であって、
前記コンテキスト情報は、前記文書の命題が示すリレーションそれぞれについて、前記文書において当該リレーションより後に出現したリレーションの出現回数を示し、
前記方法は、
前記発想支援装置が、
前記コンテキスト情報が示す、前記特定したリレーションの出現回数に基づいて、前記特定したリレーションからリレーションを選択し、
前記選択したリレーションを示す情報を出力する、方法。
【請求項９】
請求項６に記載の方法であって、
前記コンテキスト情報は、前記文書の命題が示すリレーションそれぞれについて、前記文書において当該リレーションより後に出現したリレーションとの前記文書上での距離を示し、
前記方法は、
前記発想支援装置が、
前記コンテキスト情報が示す、前記第１グラフに含まれる前記第２グラフが示すリレーションと、前記特定したリレーションと、の距離に基づいて、前記特定したリレーションからリレーションを選択し、
前記選択したリレーションを示す情報を出力する、方法。
【請求項１０】
請求項６に記載の方法であって、
前記発想支援装置が、前記特定したリレーションに予め定められたリレーションが含まれる場合、前記予め定められたリレーションを示す情報を出力する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発想支援装置及び発想支援方法に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２００７−２４１９０１号公報（特許文献１）がある。この公報には、「入力されたテーマに関連する意見テキスト群の中から前記テーマに関連する複数の論点を抽出する論点抽出手段と、前記複数の論点毎に、当該論点を含んでいる前記意見テキストの中から当該論点に一の立場を有する意見の割合を表す固有度を算出する固有度算出手段と、前記複数の論点毎に前記一の立場を含んでいる意見の重要度を算出する重要度算出手段と、前記複数の論点に関連する関連語を抽出する関連語抽出手段と、前記複数の論点毎に対する肯定又は否定の意見における複数の代表意見を選択する代表意見選択手段と、前記各手段から出力された前記複数の論点毎の前記固有度及び前記重要度を出力するインタフェース手段と、を備える。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２４１９０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、ユーザが、所与のテーマに関する作文や発話を行うことを想定する。特許文献１に記載の技術は、所与のテーマに関する論点を予め抽出することにより、ユーザによる作文や発話を支援する。
【０００５】
しかし、ユーザが作文や発話を進めた場合、特許文献１に記載の技術が抽出した各論点は、当該作文や当該会話のコンテキストに適合する論点であるとは限らない。そこで、本発明の一態様は、ユーザが作文や発話を行っている最中に、ユーザによる作文や発話のコンテキストに沿って、ユーザの発想を支援することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一態様は以下の構成を採用する。ユーザの発想を支援する発想支援装置であって、プロセッサとメモリとを含み、前記メモリは、知識を定義する文書に含まれる命題を構成する要素を示すノードと、前記命題が示す前記要素間のリレーションを示す第１種エッジと、を含む第１グラフ、の構造を示すグラフ情報と、前記文書におけるリレーションの出現順序を示すコンテキスト情報と、を保持し、前記プロセッサは、命題の入力を受け付け、前記入力を受け付けた命題に含まれる要素と、前記入力を受け付けた命題が示す当該要素間のリレーションと、を抽出し、前記抽出した要素を示すノードを含み、かつ前記抽出した要素間のリレーションを前記第１種エッジとして含む第２グラフを生成し、前記グラフ情報を参照して、前記第２グラフが示すリレーションが前記第１グラフに含まれると判定した場合、前記コンテキスト情報を参照して、前記文書において当該リレーションの後に出現したリレーションを特定し、前記特定したリレーションを示す情報を出力する、発想支援装置。
【発明の効果】
【０００７】
本発明の一態様は、ユーザが作文や発話を行っている最中に、ユーザによる作文や発話のコンテキストに沿って、ユーザの発想を支援することができる。
【０００８】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】実施例１における発想支援装置の構成例を示すブロック図である。
【図２】本実施例における発想支援装置が実施する処理の一例を示すフローチャートである。
【図３Ａ】実施例１における文書内の知識を示す知識グラフの一例である。
【図３Ｂ】実施例１における文書内の知識を示す知識グラフの一例である。
【図３Ｃ】実施例１における文書内の知識を示す知識グラフの一例である。
【図３Ｄ】実施例１におけるノードテーブルの一例である。
【図３Ｅ】実施例１におけるエッジテーブルの一例である。
【図４Ａ】実施例１における文書内の知識を示す知識グラフの一例である。
【図４Ｂ】実施例１における文書内の知識を示す知識グラフの一例である。
【図４Ｃ】実施例１におけるノードテーブルの一例である。
【図４Ｄ】実施例１におけるエッジテーブルの一例である。
【図５Ａ】実施例１における文書内の知識を示す知識グラフの一例である。
【図５Ｂ】実施例１における文書内の知識を示す知識グラフの一例である。
【図５Ｃ】実施例１における文書内の知識を示す知識グラフの一例である。
【図５Ｄ】実施例１における文書内の知識を示す知識グラフの一例である。
【図５Ｅ】実施例１における文書内の知識を示す知識グラフの一例である。
【図６Ａ】実施例１における文書内の知識を示す知識グラフの一例である。
【図６Ｂ】実施例１におけるノードテーブルの一例である。
【図６Ｃ】実施例１におけるエッジテーブルの一例である。
【図７Ａ】実施例１における文書内の知識を示す知識グラフの一例である。
【図７Ｂ】実施例１における後続知識テーブルの一例である。
【図８Ａ】実施例１における文書内の知識を示す知識グラフの一例である。
【図８Ｂ】実施例１における後続知識テーブルの一例である。
【図９Ａ】実施例１における発話理解処理で生成される知識グラフの一例である。
【図９Ｂ】実施例１における発話理解処理で生成される知識グラフの一例である。
【図９Ｃ】実施例１における表示装置に表示される画面の変遷の一例である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【００１１】
表現力及び思考力等を養うために、学校等で（例えば、論述文の）作文の訓練が実施される。作文は、問題集などで修得できる知識と異なり、自主学習が難しく、生徒の作文技術の向上のために、先生による個別の指導が必要であるケースが多い。また、生徒は、作文に慣れない段階では、まず、何を書いてよいのか分からないという問題もあり、当該問題を解決するために先生による丁寧な指導が必要であるケースが多い。また、外国語での会話の訓練を実施する場合にも、同様にまず何を話してよいのか分からない、という状況が生じるケースが多い。
【００１２】
そこで、本実施形態は、ユーザの作文に対してヒントやコメントを提示することにより、作文を書くための発想を支援する。また、同様に、本実施形態は、外国語会話において、次の発言のためのヒントを与えるなど、会話の補助をする。これにより、ユーザは、外国語会話に慣れることができ、ひいては人との会話を実践しやすくなる。本実施形態の発想支援装置は、作文や会話において、ユーザに次の発言のヒントを与える、コメントを与える、などによりユーザの発想を支援し、ひいてはユーザの作文作成や会話を支援する。
【実施例１】
【００１３】
図１は、本実施例の発想支援装置の構成例を示すブロック図である。本実施例の発想支援装置は、例えば、入力装置２０２、表示装置２０３、通信装置２０４、演算装置（ＣＰＵ）２０５、メモリ２０６、及び補助記憶装置２０７を備える計算機によって構成される。
【００１４】
入力装置２０２は、ユーザからのコマンド等の入力を受け付け、例えば、キーボード及びマウス等である。入力装置２０２は、演算装置（ＣＰＵ）２０５が実行するプログラムの制御、及び発想支援装置２０１に接続された機器の制御のために実行されるコマンド等の入力を受け付ける。通信装置２０４は、例えば、所定のプロトコルに従って、発想支援装置２０１による処理内容を外部機器に送信したり、外部機器から情報を受信したりする。
【００１５】
演算装置（ＣＰＵ）２０５は、プロセッサを含み、メモリ２０６に格納されたプログラムを実行する。メモリ２０６は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、プロセッサ１０１が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００１６】
補助記憶装置２０７は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置であり、演算装置（ＣＰＵ）２０５が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置２０７から読み出されて、メモリ２０６にロードされて、演算装置（ＣＰＵ）２０５によって実行される。
【００１７】
演算装置（ＣＰＵ）２０５が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介して発想支援装置２０１に提供され、非一時的記憶媒体である不揮発性の補助記憶装置２０７に格納される。このため、発想支援装置２０１は、リムーバブルメディアからデータを読み込むインタフェースを有するとよい。
【００１８】
発想支援装置２０１は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【００１９】
演算装置（ＣＰＵ）２０５は、知識グラフ生成部２１１、コンテキスト計算部２１２、発話理解部２１３、コンテキスト認識部２１４、及びフェーズ認識部２１５を含む。例えば、演算装置（ＣＰＵ）２０５は、メモリ２０６にロードされた知識グラフ生成プログラムに従って動作することで、知識グラフ生成部２１１として機能し、メモリ２０６にロードされたコンテキスト計算プログラムに従って動作することで、コンテキスト計算部２１２として機能する。演算装置（ＣＰＵ）２０５に含まれる他の部についても同様である。
【００２０】
知識グラフ生成部２１１は、後述する文書ＤＢ１０３の文書が示す知識を表現するグラフ（知識グラフ）を生成する。コンテキスト計算部２１２は、後述する知識グラフＤＢ１０５が保持する知識グラフが示す知識の、文書ＤＢ１０３の文書内における出現順序を計算する。発話理解部２１３は、ユーザから作文や会話の入力を受け付け、当該作文や会話のテキストデータを作成する。
【００２１】
コンテキスト認識部２１４は、発話理解部２１３によって作成されたテキストデータにおける知識の出現順序を計算し、当該出現順序と、コンテキスト計算部２１２が計算した知識の出現順序とを比較する。フェーズ認識部２１５は、作文や会話に求められる予め定められた内容が、ユーザが入力したテキストに不足しているか否かを判定することにより、ユーザの作文や会話のフェーズを認識する。
【００２２】
補助記憶装置２０７は、文書ＤＢ１０３、知識グラフＤＢ１０５、及びコンテキストＤＢ１０７を保持する。文書ＤＢ１０３は、自然言語で書かれた文書、特に論述文等を保持する。文書ＤＢ１０３が保持する文書は、発想支援装置２０１における知識を定義するための文書、即ち知識源となる文書であるため、文書ＤＢ１０３は、議論の対象となる事柄や、議論に関連する内容が記載された文書、を保持していることが望ましい。
【００２３】
Ｗｅｂ文書、ニュース記事、組織内レポート、学術論文、官公庁及び国際機関の公報、並びにシンクタンク等の調査文書などは、文書ＤＢ１０３が保持する文書の例である。また、ユーザによる過去の発話履歴なども、文書ＤＢ１０３が保持する文書の一例である。また、文書ＤＢ１０３は、各文書の書誌情報等をさらに保持してもよい。
【００２４】
知識グラフＤＢ１０５は、知識グラフ生成部２１１が生成した知識グラフの構造を示す情報を格納する。コンテキストＤＢ１０７は、コンテキスト計算部２１２が計算した知識の出現順序を示す情報を格納する。
【００２５】
なお、本実施形態において、発想支援装置２０１が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。なお、本実施例では、補助記憶装置２０７が保持する各データがテーブル構造で表現されている例を示す。
【００２６】
なお、発想支援装置２０１は、入力装置２０２、表示装置２０３及び通信装置２０４の少なくとも１つを備えていればよい。発想支援装置２０１が入力装置２０２を備えていない場合、例えば、通信装置２０４が外部機器からコマンド等の入力を受け付ける。発想支援装置２０１が表示装置２０３を備えていない場合、例えば、通信装置２０４が、発想支援装置２０１が生成した処理結果を外部機器に送信する。
【００２７】
各処理部は、メモリ２０６又は補助記憶装置２０７を介して、他の処理部への入出力を実行してもよい。例えば、知識グラフ生成部２１１は、処理結果をコンテキスト計算部２１２に出力する場合、実際には、知識グラフ生成部２１１が処理結果をメモリ２０６又は補助記憶装置２０７に格納し、コンテキスト計算部２１２は、メモリ２０６又は補助記憶装置２０７に格納されている当該出力結果を入力として取得してもよい。
【００２８】
図２は、本実施例における発想支援装置２０１が実施する処理の一例を示すフローチャートである。発想支援装置２０１が実行する処理は、大きく分けて、学習処理（Ｓ１１０）、及び運用処理（Ｓ１２０）の２つの部分に分けられる。学習処理は、ステップＳ１１１〜Ｓ１１２の処理を含み、運用フェーズはステップＳ１２１〜Ｓ１２５の処理を含む。  まず、学習処理（Ｓ１１０）の処理について説明する。まず、知識グラフ生成部２１１は、文書ＤＢ１０３に格納された文書の情報をグラフ型知識に変換することにより、知識グラフＤＢ１０５に格納する知識グラフを生成する（Ｓ１１１）。以下、ステップＳ１１１の詳細を説明する。
【００２９】
図３Ａ〜図３Ｃは、文書内の知識を示す知識グラフの一例である。なお、本実施例では、日本語で記載された文書の例を用いているが、英語など他の言語であっても同様の処理が実施される。以下、図中のグラフにおける、一重線の楕円型で示されるノードは、人、物、組織などの実体、又は抽象的な概念などを表すエンティティ、を示すノードである。また、エンティティ間の矢印に沿って記載されている文字は、エンティティ間のリレーションを表す。
【００３０】
知識グラフ３０１は、知識グラフ生成部２１１が、文書ＤＢ１０３の文書内の「専門家は、学校での制服の採用は、規律を高める。」という文から生成した知識グラフである。
【００３１】
知識グラフ生成部２１１は、知識グラフの生成において、まず、文からエンティティを抽出する。知識グラフ生成部２１１は、例えば、機械学習を用いて、エンティティを抽出する。つまり、抽出したいエンティティにラベルを付けた学習用の文書セットが予め準備されており、知識グラフ生成部２１１は、エンティティを抽出するための識別器を作成し、作成した識別器を用いて文内のエンティティを抽出する。なお、図３Ａの文中におけるエンティティは、「専門家」、「制服」、及び「規律」であるものとする。
【００３２】
また、知識グラフ生成部２１１は、予め用意された単語辞書や単語のオントロジーを参照して、エンティティを抽出してもよい。また、エンティティの多くは、名詞や形容詞に相当するフレーズにより表されるため、知識グラフ生成部２１１は、構文解析を行い、名詞や形容詞をエンティティとして抽出してもよい。
【００３３】
次に、知識グラフ生成部２１１は、エンティティ間のリレーションを計算する。「専門家は、学校での制服の採用は、規律を高める。」という文において、「制服」と「規律」は、述語である「高める」の引数（「制服」が主語、「規律」が目的語）である。知識グラフ生成部２１１は、例えば、このように、構文解析によって、２つのエンティティを引数とする述語をエンティティ間のリレーションとして抽出する。
【００３４】
知識グラフ生成部２１１は、この２つのエンティティとその間のリレーションを、エッジで結ぶことにより、知識グラフ３０１を生成する。知識グラフ生成部２１１は、知識グラフの生成において、主語であるエンティティを示すノードを起点、述語であるエンティティを示すノードを終点としたエッジを生成する。なお、知識グラフは無向グラフであってもよい。
【００３５】
また、ここでは、知識グラフ生成部２１１が、エンティティ（主語と目的語）を引数とする述語をリレーションとして抽出する例を示したが、エンティティ間の他のリレーションを抽出してもよい。例えば、知識グラフ生成部２１１は、エンティティ間の係り受けをリレーションとして抽出してもよいし、エンティティ間の文中での距離をリレーションとして抽出してもよい。また、知識グラフ生成部２１１は、例えば、Ｓｅｍａｎｔｉｃ  Ｒｏｌｅ  Ｌａｂｅｌｌｉｎｇなどの手法を用いて、リレーションを抽出してもよい。
【００３６】
知識グラフ３０２は、知識グラフ生成部２１１が、文書ＤＢ１０３の文書内の「学校での制服は、自由を阻害する。」という文から生成した知識グラフである。知識グラフ生成部２１１は、図３Ａの例と同様の方法で、当該文から、２つのエンティティ「制服」及び「自由」、並びにエンティティ間のリレーション「阻害する」を抽出し、知識グラフ３０２を生成する。
【００３７】
知識グラフ生成部２１１は、このように、与えられた文書中の各文から、エンティティを抽出し、エンティティ間の当該文中におけるリレーションを、知識グラフを用いて記述する。
【００３８】
図３Ｃは、２つの知識グラフが統合された知識グラフの一例である。例えば、複数の知識グラフに同一のノードが存在する場合、知識グラフ生成部２１１は、当該ノードを同一視することにより、当該複数の知識グラフを統合してもよい。知識グラフ３０３は、知識グラフ生成部２１１が、知識グラフ３０１における「制服」ノードと、知識グラフ３０２における「制服」ノードと、を同一視することによって生成された知識グラフである。
【００３９】
知識グラフ生成部２１１は、例えば、表層表現が同じノードを同一視する。また、単語辞書やオントロジーなどを用いてノードが生成された場合、知識グラフ生成部２１１は、例えば、単語辞書又はオントロジー上で同一の表現を同一のノードとして扱ってもよい。具体的には、例えば、知識グラフ生成部２１１は、同義語のノードを同一視してもよい。また、知識グラフ生成部２１１は、グラフ上の２つのノードを結ぶエッジのうち、同じリレーションを表すエッジを、同一視してもよい。
【００４０】
知識グラフ生成部２１１は、生成した知識グラフの情報を、例えば、図３Ｄ及び図３Ｅに示すテーブルで表し、当該テーブルを知識グラフＤＢ１０５に格納する。図３Ｄは、知識グラフＤＢ１０５に格納されるノードテーブルの一例である。ノードテーブル３０４は、知識グラフのノードの情報を保持するテーブルである。図３Ｄのノードテーブル３０４は、知識グラフ３０３のノードの情報を保持している。
【００４１】
知識グラフ生成部２１１は、生成した知識グラフのノードに、当該知識グラフ上でのノードを識別するためのＩＤを付与し、付与したＩＤをノードテーブル３０４に格納する。また、知識グラフ生成部２１１は、ノードに関する他の情報をノードテーブル３０４に含めてもよい。図３Ｄの例において、ノードテーブル３０４は、各ノードの表層表現の情報を含む。また、例えば、ノードテーブル３０４は、各ノードに対応する表層表現が抽出された文書の書誌情報等を含んでもよい。
【００４２】
図３Ｅは、知識グラフＤＢ１０５に格納されるエッジテーブルの一例である。エッジテーブル３０５は、知識グラフのエッジの情報を含んだテーブルである。図３Ｅの例では、エッジテーブル３０５は、知識グラフ３０３のエッジの情報を保持している。
【００４３】
知識グラフ生成部２１１は、生成した知識グラフのエッジに、当該知識グラフ上でのエッジを識別するためのＩＤを付与し、各エッジのＩＤ、起点ノードのＩＤ、及び終点ノードのＩＤを対応づけてエッジテーブル３０５に格納するまた、知識グラフ生成部２１１は、エッジに関する他の情報をエッジテーブル３０５に含めてもよい。図３Ｅの例において、エッジテーブル３０５は、各エッジの表層表現の情報を含む。また、例えば、エッジテーブル３０５は、各エッジに対応する表層表現が抽出された文書の書誌情報等を含んでもよい。ノードテーブル３０４とエッジテーブル３０５とによって、知識グラフの構造が定義される。
【００４４】
以下、知識グラフ生成処理の別の例を説明する。図４Ａ〜図４Ｃは、知識グラフの例である。図４Ａの文は、図３Ａの文と同一である。知識グラフ３０１は、当該文が示す「制服は規律を高める」ことを示す情報を表現している。しかし、知識グラフ３０１は、当該文が示す、「制服は規律を高めること」を、「専門家が述べた」ことを示す情報（つまり、「述べた」というリレーションに関する情報）を表現していない。
【００４５】
知識グラフ生成部２１１は、例えば、「制服は規律を高める」というステートメントをエンティティとみなせば、知識グラフ３０１に加えて、知識グラフ４０２を生成することができる。ステートメントは、文を構成する複数の要素と、当該複数の要素間のリレーションと、を示す命題である。なお、各要素は、例えば、エンティティであってもよいし、節又は文であってもよい。また、各要素は、ステートメントであってもよい。
【００４６】
知識グラフ３０１と知識グラフ４０２は独立した知識グラフであるため、図４Ａの文が示す２つの知識グラフの間の関係を表現できていない。また、関連のある複数の知識それぞれが、このように独立した知識グラフで表現されている場合、エンティティの数が膨大となる。
【００４７】
そこで、知識グラフ生成部２１１は、このような情報を表現するために、図４Ｂに示す知識グラフ４０３を生成する。知識グラフ４０３の生成処理の一例を説明する。上述したように、知識グラフ生成部２１１は、文書の文中においてリレーションで結ばれる対象の少なくとも一方がステートメントである場合、知識グラフ４０２のように、当該ステートメントを仮にエンティティとみなして知識グラフを生成する。
【００４８】
知識グラフ生成部２１１は、知識グラフのノードであって、同一の文書から生成した他の知識グラフが示すステートメントの情報が全て含まれるノード、があると判定した場合（即ち入れ子構造になっているノードがある場合）、当該他の知識グラフから、当該ステートメントを代表するノード（以下、代表ノードとも呼ぶ）を生成する。
【００４９】
図４Ａの例では、知識グラフ４０２の「制服は規律を高める」ノードは、知識グラフ４０２と同一の文書から生成された知識グラフ３０１が示すステートメントの情報を全て含むため、知識グラフ生成部２１１は代表ノードを生成する。知識グラフ生成部２１１は、例えば、知識グラフ３０１のリレーションを示す「高める」エッジを「高める」ノードに変更して、代表ノードに決定する。そして、知識グラフ生成部２１１は、「高める」エッジの起点であった「制服」ノードを起点として、代表ノードを終点とするエッジ、及び代表ノードを起点として、「高める」エッジの終点であった「規律」ノードを終点とするエッジを生成する。これにより、知識グラフ４０３の矩形の点線で囲まれた部分が生成される。
【００５０】
前述したように、知識グラフ４０３の二重線で示された「高める」ノードは、３つのノード（「制服」、「高める」、「規律」）を含む１つのステートメントを代表する代表ノードである。Ｎ個（Ｎは１以上の整数）のステートメントを代表する代表ノードを、Ｎ＋１次のノードと呼ぶ。つまり、知識グラフ４０３の二重線で示された「高める」ノードは、２次のノードである。また、エンティティそのものを示すノードを１次のノードと呼ぶ。つまり、Ｎ次のノード間のリレーションが代表ノードに変換された場合、当該代表ノードはＮ＋１次のノードである。
【００５１】
また、知識グラフ４０３における、二重線で示されたエッジは、ノード間のリレーションを表すのではなく、知識グラフ４０３の矩形の点線で囲まれた部分に含まれる３つのノードからなるステートメントを、代表ノードが代表すること、を表すためのエッジである。以下、このようなエッジをステートメントエッジと呼ぶ。
【００５２】
また、前述した通り、知識グラフ４０２において、起点である「専門家」ノードと、終点である「制服は規律を高める」ノードが、「述べた」というリレーションを示すエッジによって接続されている。従って、知識グラフ生成部２１１は、「制服は規律を高める」というステートメントを代表する「高める」ノードを終点とし、「専門家」ノードを起点として、２つのノードを「述べた」というリレーションを示すエッジで接続することにより、知識グラフ４０３を生成する。
【００５３】
これにより、知識グラフ生成部２１１は、「制服が規律を高める」こと、及び「専門家」が「制服は規律を高める」と述べたことを１つの知識グラフ４０３で表現することができる。なお、上述したようなグラフの統合処理が行われた後でも、ステートメントそのものをエンティティとして含む知識グラフが残った場合には、知識グラフ生成部２１１は、当該知識グラフを削除してもよい。
【００５４】
図４Ｃは、ノードテーブル３０４の一例である。ノードテーブル３０４は、ノードの次数をさらに保持してもよい。つまり、知識グラフ生成部２１１は、ノードＩＤとノードの次数とを対応づけて、ノードテーブル３０４に格納する。
【００５５】
図４Ｄは、エッジテーブル３０５の一例である。エッジテーブル３０５は、エッジがステートメントエッジであるか否かを示すフラグを保持してもよい。つまり、知識グラフ生成部２１１は、エッジＩＤと、エッジがステートメントエッジであるか否かを示すフラグと、を対応づけて、エッジテーブル３０５に格納する。なお、ステートメントエッジは表層表現を示していないため、エッジテーブル３０５において、ステートメントエッジに対応する表層表現にはｎｕｌｌ値が格納されている。
【００５６】
知識グラフ生成部２１１は、このようにして、ステートメントを示す２次のノードを含むグラフ構造を有する知識グラフを作成することによって、単純なエンティティ間のリレーションだけでなく、より複雑な情報を知識グラフで表現できる。
【００５７】
図５Ａ〜図５Ｃは、知識グラフの一例である。知識グラフ５０１は、「制服は規律を高めるが、自由を阻害する。」という文から作成された知識グラフである。知識グラフ生成部２１１は、図３Ｃを用いて説明したように、まず、当該文から、「制服は規律を高める」ことと、「制服が自由を阻害する」ことと、を示す知識グラフ３０３を作成する。
【００５８】
知識グラフ生成部２１１は、例えば予め用意された辞書等を参照して、当該文に逆説を示す表層表現があると判定した場合、主節である「制服は規律を高める」というステートメント、及び従属節である「制服が自由を阻害する」というステートメントそれぞれから、代表ノードを生成する。例えば、知識グラフ生成部２１１は、前述した方法と同様に、主節から代表ノード「高める」を、従属節から代表ノード「阻害する」を生成する。これらの代表ノードは、いずれも２次のノードである。
【００５９】
そして、知識グラフ生成部２１１は、「高める」エッジの起点であった「制服」ノードを起点として代表ノードを終点とするエッジと、代表ノードを起点として「高める」エッジの終点であった「規律」ノードを終点とするエッジと、を生成する。同様に、知識グラフ生成部２１１は、「阻害」エッジの起点であった「制服」ノードを起点として、代表ノードを終点とするエッジ、及び代表ノードを起点として、「阻害する」エッジの終点であった「自由」ノードを終点とするエッジを生成する。これらの生成されたエッジは、いずれもステートメントエッジである。
【００６０】
さらに、知識グラフ生成部２１１は、主節の代表ノード「高める」を起点とし、従属節の代表ノード「阻害する」を終点とする、逆説のリレーションを示す「逆説」エッジを生成する。この処理により、知識グラフ生成部２１１は、知識グラフ５０１を生成することができる。
【００６１】
以下、図５Ｂに示す「調査によると、制服は規律を高める」という文から、知識グラフ生成部２１１が、図５Ｃに示す知識グラフ５０３を生成する例を説明する。知識グラフ生成部２１１は、まず、図４Ａの例と同様に、知識グラフ３０１を生成する。また、知識グラフ生成部２１１は、知識グラフ５０２を生成する。知識グラフ５０２の生成方法の一例を説明する。
【００６２】
知識グラフ生成部２１１は、例えば、予め用意された辞書を参照して、文中に情報源を示す単語（図５Ｂにおける「調査」）が存在すると判定した場合、構文解析等を実行して、当該情報源が示す情報（図５Ｂにおける「制服は規律を高める」）を抽出する。
【００６３】
知識グラフ生成部２１１は、「制服は規律を高める」というステートメントをエンティティとみなす。知識グラフ生成部２１１は、「調査」ノードを起点とし、「制服は規律を高める」ノードを終点とする、「情報源」エッジを、この２つのエンティティ間のリレーションとして生成する。これによって、知識グラフ生成部２１１は、図５Ｃに示す知識グラフ５０２を生成することができる。
【００６４】
さらに知識グラフ生成部２１１は、図４Ａ及び図４Ｂを用いて説明した方法と同様の方法によって、知識グラフ３０１と知識グラフ５０２とを統合して、知識グラフ５０３を生成することができる。
【００６５】
以下、図５Ｄに示す「専門家は、制服は規律を高めるが、自由を阻害する、と述べた。」という文から、知識グラフ生成部２１１が、図５Ｅに示す知識グラフ５０５を生成する例を説明する。知識グラフ生成部２１１は、当該文の「制服は規律を高めるが、自由を阻害する」という部分から、図５Ａを用いて説明した方法によって、知識グラフ５０１を生成する。また、知識グラフ生成部２１１は、「制服は規律を高めるが、自由を阻害する」というステートメントをエンティティとみなして、知識グラフ５０４を生成する。
【００６６】
知識グラフ５０４の「制服は規律を高めるが、自由を阻害する」ノードは、同一の文から生成された知識グラフ５０１が示すステートメントの情報を全て含むため、知識グラフ５０１のリレーションを示す「逆説」エッジを「逆説」ノードに変換して、代表ノードに決定する。代表ノード「逆説」の次数は３である。
【００６７】
そして、知識グラフ生成部２１１は、「逆説」エッジの起点であった「高める」ノードを起点として、「逆説」ノードを終点とするステートメントエッジ、及び「逆説」ノードを起点として、「逆説」エッジの終点であった「阻害する」ノードを終点とするステートメントエッジを生成する。
【００６８】
さらに知識グラフ生成部２１１は、「制服は規律を高めるが、自由を阻害する」というステートメントを代表する「逆説」ノードを終点とし、「専門家」ノードを起点として、２つのノードを「述べた」というリレーションを示すエッジで接続することにより、知識グラフ５０５を生成する。
【００６９】
このように、本実施例の知識グラフ生成部２１１は、高次のノードとそれを結ぶ特殊なエッジ（ステートメントエッジ）を用いることにより、入れ子になった情報をグラフ型知識で表現する。これにより、知識グラフ生成部２１１は、単純な情報だけでなく、複雑なコンテキストを少ない知識グラフにより表現することができる。つまり、本実施例の発想支援装置２０１は、複雑なコンテキストを扱うことができるにも関わらず、知識グラフＤＢ１０５のデータ量を抑え、さらに後述する発話理解処理における知識グラフの照合処理を高速に行うことができる。
【００７０】
図２の説明に戻る。続いて、コンテキスト計算部２１２は、知識グラフＤＢ１０５が保持する知識グラフを用いて、文章内において情報が出現する順序を計算するコンテキスト計算処理を実行する（Ｓ１１２）。
【００７１】
前述したように、知識グラフ生成部２１１は、文章から抽出した個別の情報をグラフ化した上で、例えば、予め定めた基準（表層表現、単語辞書、オントロジーでの位置づけなど）に従ってノードを同一視することにより、図３Ｃ、図４Ｂ、図５Ａ、図５Ｃ、及び図５Ｄ等に示す知識グラフを生成する。
【００７２】
図６Ａは、知識グラフの一例である。文章６０１は、学校での制服の導入に反対する論述文の例である。文章６０１において、制服の導入に反対だという意見が表明され、その後、規律が高まるというメリットが述べられつつ、やはり、生徒の自由を阻害するというデメリットが述べられている。さらに、文章６０１において、特定の制服の採用により市場の公平性を阻害する、という観点の意見が述べられている。
【００７３】
このように、作文、会話、及び論述文等には、情報提示の流れ（コンテキスト）がある。本実施例のコンテキスト計算部２１２は、文書ＤＢ１０３にある文章のコンテキストを計算して、計算結果をコンテキストＤＢ１０７に格納する。コンテキスト計算部２１２は、文章に出現する知識の順序を計算することにより、コンテキスト計算を行う。
【００７４】
本実施例の発想支援装置２０１は、知識グラフＤＢ１０５とコンテキストＤＢ１０７とを用いて、ユーザによる作文や会話のコンテキストを認識し、コンテキストを考慮した適切なヒント、コメント、及び質問等をユーザに提示する。これにより、発想支援装置２０１は、ユーザの思考を深め、発想を支援することができる。
【００７５】
以下、コンテキスト計算処理（Ｓ１１２）の詳細について説明する。なお、コンテキスト計算処理における知識とは、ステートメントに含まれるリレーションが示す知識、即ち２次以上のノード又はステートメントエッジではないエッジが示す知識である。図６Ａの知識グラフ６０２は、文章６０１から生成された知識グラフの一例である。図６Ｂは、知識グラフ６０２に対応するノードテーブル３０４の一例である。図６Ｃは、知識グラフ６０２に対応するエッジテーブル３０５の一例である。
【００７６】
コンテキスト計算部２１２は、例えば、文書ＤＢ１０３に含まれる各文書について、文書中に現れる知識の順序を、知識グラフ上で計算する。コンテキスト計算部２１２は、例えば、知識グラフ６０２中の知識「制服は規律を高める」に対して、当該知識に関係するノード及びエッジのＩＤを、文中の出現順に並べたベクトル（Ｎ１，Ｅ１，Ｎ２，Ｅ２，Ｎ３）として、当該知識を表現してもよい。この方法によれば、例えば、「制服は規律を高めるが、自由を阻害する」という知識は、例えば、（Ｎ１、Ｅ１、Ｎ２，Ｅ２，Ｎ３，Ｅ３，Ｎ４，Ｅ５，Ｎ１，Ｅ６，Ｎ６，Ｅ７，Ｎ７）と表現される。
【００７７】
なお、コンテキスト計算部２１２は、下記に説明する方法を用いて、より簡潔に知識を表現することが好ましい。具体的には、コンテキスト計算部２１２は、ステートメントエッジではないエッジと、２次以上のノードと、を指定することにより、知識を表現する。これにより、コンテキスト計算部２１２は、知識グラフ中の「制服は規律を高めるが、自由を阻害する」のような、複文、重文、及び接続詞等を含む複雑な知識を、簡潔に扱うことができる。以下、具体例を用いて説明する。
【００７８】
まず、知識グラフ６０２は、２次以上のノードとして、２次のノードＮ２及びＮ６、並びに３次のノードＮ４を含む。２次のノードＮ２「高める」は、ノードＮ１「制服」及びノードＮ３「規律」とステートメントエッジで結ばれており、「制服は規律を高める」という知識を表す。同様に、２次のノードＮ６「阻害する」は、「制服は自由を阻害する」という知識を表す。３次のノードＮ４「逆説」は、「制服は規律を高める」を代表するＮ２と「制服は自由を阻害する」を代表するＮ６にステートメントエッジで結ばれているため、「制服は規律を高めるが、自由を阻害する」という知識を表す。
【００７９】
次に、知識グラフ６０２は、ステートメントエッジではないエッジとして、Ｅ４とＥ８とを含む。エッジＥ４は、ノードＮ５「専門家」とノードＮ４「逆説」とを結んでおり、「専門家は、制服は規律を高めるが、自由を阻害する、と述べた」という知識を表す。また、同様に、エッジＥ８は、「制服は市場公平性を損なう」という知識を表す。
【００８０】
コンテキスト計算部２１２は、以上の方法を用いることにより、例えば「制服は規律を高めるが、自由を阻害する」のような複雑な知識をＮ４と表すように、ステートメントエッジではないエッジのＩＤ、又は２次以上のノードのＩＤを用いて、知識を簡潔に表すことができる。
【００８１】
コンテキスト計算部２１２は、コンテキスト計算処理において、文書内に知識が現れる順序を計算する。図７Ａ及び図７Ｂを用いて、その計算方法の一例を説明する。図７Ａは、知識グラフの一例である。知識グラフ７０３は、文書ＤＢ１０３に含まれる文７０１及び文７０２から、生成された知識グラフである前述したようにステートメントエッジではないエッジと２次以上のノードとを用いて知識が表現された場合、文７０１には、Ｎ６、Ｅ８、Ｎ２、Ｅ９の順番で知識が出現している。また、同様に文７０２には、Ｎ６、Ｅ９の順番で知識が出現している。
【００８２】
コンテキスト計算部２１２は、知識グラフ７０３に出現する知識それぞれについて、文書ＤＢ１０３内の文書において、当該知識より後に出現した知識（以下、後続知識とも呼ぶ）の出現回数と、を算出し、コンテキストＤＢ１０７が保持する後続知識テーブルに格納する。
【００８３】
つまり、コンテキスト計算部２１２は、知識グラフ７０３に出現する２次以上のノード及びステートメントエッジではないエッジに対応する知識を特定する。コンテキスト計算部２１２は、特定した知識それぞれについて、文書ＤＢ１０３内の文書において、当該知識より後に出現した知識であって、知識グラフ７０３に出現する２次以上のノード及びステートメントエッジではないエッジが示す知識、の出現回数を算出する。
【００８４】
図７Ｂは後続知識テーブルの一例である。後続知識テーブル７０４は、知識に対応するノードＩＤ又はエッジＩＤと、当該知識の後続知識と、当該知識の後に当該後続知識が出現した回数と、を対応づけて保持する。例えば、図７Ｂの後続知識テーブル７０４の２行目は、知識Ｎ６の後に、知識Ｅ８が１回、知識Ｎ２が１回、知識Ｅ９が２回、出現したことを示す。知識Ｅ９は、文７０１と文７０２において、それぞれ１回ずつ、Ｎ６よりも後に出現しているため、図７Ｂの後続知識テーブル７０４において、Ｎ６の後続知識としてのＥ９の出現回数は２回となっている。
【００８５】
コンテキスト計算部２１２は、このように、知識ごとに、後続知識と後続知識の出現回数とを対応づけて後続知識テーブル７０４に格納することにより、コンテキストＤＢ１０７は、文書内における知識の順序及び前後関係などを示す情報を保持することができる。
【００８６】
なお、コンテキスト計算部２１２は、各知識について、後続知識との文書上での距離を計算し、後続知識テーブル７０４に格納してもよい。出現回数が２回以上の後続知識については、コンテキスト計算部２１２は、当該知識と当該後続知識の文書上での距離の平均値又は最小値等を後続知識テーブル７０４に格納する。以上、学習処理について説明した。
【００８７】
次に、運用処理（Ｓ１２０）について説明する。運用処理において、発想支援装置２０１は、学習フ処理で作成した知識グラフと後続知識とを用いて、ユーザによる作文や会話におけるコンテキストを理解し、作文や会話の途中で、適切なヒントを提示することにより、ユーザの発想を促す。
【００８８】
まず、発話理解部２１３は、ステートメントを含む作文や会話の入力をユーザから受け付け、テキストに変換する（Ｓ１２１）。具体的には、発話理解部２１３は、例えば、キーボードなどの入力インタフェースからテキスト入力を受け付けてもよいし、マイク等から入力された発話音声を音声認識技術によりテキスト変換してもよい。また、例えば、発話理解部２１３は、紙に書かれた文章をＯＣＲなどによりテキスト変換してもよい。また、発話理解部２１３は、手話認識などの手法を用いて、ユーザの動きをテキスト変換してもよい。
【００８９】
続いて、発話理解部２１３は、ステップＳ１２１で取得したテキストを、知識グラフ１０５を用いて理解する、発話理解処理を実施する（Ｓ１２２）。ここでは、発話理解部２１３は入力されたテキストを知識グラフ１０５にマッチングすることにより、ユーザの発話を理解する。以下、図８Ａ、図８Ｂ、図９Ａ、図９Ｂ、及び図９Ｃを用いて発話理解処理の詳細を説明する。
【００９０】
図８Ａの知識グラフ８０１は、知識グラフＤＢ１０５に格納されたノードテーブル３０４及びエッジテーブル３０５が示す知識グラフの一部である。また、図８Ｂの後続知識テーブルは、コンテキストＤＢ１０７に格納された後続知識テーブル７０４の一部である。
【００９１】
例えば、「制服を学校に導入するべきか」というテーマに対して、ユーザが「制服を学校に導入することに賛成」という立場で、論述文を作成しているとする。そして、発話理解部２１３が、図９Ｃに示す表示画面９０３における「学校で制服を導入するべきです。」という文の入力を受け付けたとする。発話理解部２１３は、ステップＳ１１１の知識グラフ生成処理と同様の方法を用いて、当該文から図９Ａの知識グラフ９０１を生成する。
【００９２】
続いて、発話理解部２１３は、知識グラフ９０１と知識グラフ８０１とを照合して、知識グラフ９０１が示す知識に含まれる知識を知識グラフ８０１から検索する。コンテキスト計算処理において説明した知識の表現方法を用いると、知識グラフ８０１が示す知識Ｅ１０（即ち、「学校」ノードと「制服」ノードとを「導入する」リレーションで結んだ知識）は、知識グラフ９０１が示す知識に含まれるため、発話理解部２１３は、Ｅ１０を抽出する。このように、発話理解部２１３は、ユーザの入力に含まれる知識を抽出し、抽出した知識と予め学習した知識グラフとを照合することにより、ユーザの入力を理解する。
【００９３】
また、発話理解部２１３は、例えば、コンテキスト計算処理と同じ表現方法を用いて、ユーザによって入力されたテキストが示す知識の知識グラフ８０１上のノードＩＤ及びエッジＩＤと、当該テキストにおける知識出現順序と、を示す情報をコンテキスト認識部２１４に出力する。表示画面９０３が示す文が入力された場合、発話理解部２１３は、例えば、Ｅ１０をコンテキスト認識部２１４に出力する。図７Ａの文７０２が入力された場合、発話理解部２１３は、例えば、Ｎ６、Ｅ９の順で、エッジＩＤをコンテキスト認識部２１４に出力する。
【００９４】
ところで、知識グラフ９０１は、知識グラフ８０１の一部（Ｎ１０、Ｅ１０、及びＮ１らなる部分）と完全に一致している。発話理解部２１３は、知識グラフの照合において、一方のリレーション又はやエンティティが、他方のリレーション又はエンティティと完全一致でなくても、例えば、類似度が所定値以上である場合には、当該一方と当該他方を同一のものとして扱ってもよい。
【００９５】
例えば、発話理解部２１３がユーザから入力されたテキストから図９Ｂの知識グラフ９０２を生成したとする。知識グラフ９０２のエッジは「取り入れる」であるが、発話理解部２１３は、「取り入れる」と知識グラフ８０１のＥ１０「導入する」が同義だとみなして、知識グラフ９０２が示す知識がＥ１０と一致すると判定してもよい。
【００９６】
発話理解部２１３は、エンティティやリレーション間の類似度を、例えば、単語辞書やオントロジーなどにおける類義関係により算出する。発話理解部２１３は、類似度が所定以上であるリレーションやエンティティを同義のものとして扱うことにより、ユーザ入力から抽出した知識に一致する、知識グラフＤＢ１０５内の知識を増やすことができ、ひいてはユーザに適切なヒントを与えることができる可能性が高くなる。
【００９７】
図２の説明に戻る。続いて、コンテキスト認識部２１４は、発話理解処理で取得したユーザ入力のテキストが示す知識の出現順序を、後続知識テーブル７０４と照合する、コンテキスト認識処理を実行する（Ｓ１２３）。例えば、知識グラフ９０１に相当するテキストがユーザから入力された場合、前述の通りステップＳ１２２においてＥ１０が出力される。このとき、コンテキスト認識部２１４は、図８Ｂの後続知識テーブル７０４の２行目（知識の値がＥ１０の行）が示す情報を、フェーズ認識部２１５に出力する。
【００９８】
次に、フェーズ認識部２１５では、ユーザの作文や会話のフェーズを認識する、フェーズ認識処理を実行する（Ｓ１２４）。例えば、あるテーマ（図９Ａ〜図９Ｃの例では、「学校に制服を導入するべきか」）に対して、賛成又は反対の立場にて、ユーザが論述する場合に、論述文に求められる内容がある。
【００９９】
賛否の表明、賛成又は反対の論点を挙げること、並びに賛否の理由及び根拠の提示等は、当該論述文に求められる内容の例である。フェーズ認識部２１５は、作文や会話に求められる予め定められた内容が、ユーザが入力したテキストに不足しているか否かを判定することにより、ユーザの作文や会話のフェーズを認識する。
【０１００】
図９Ｃは、表示装置２０３に表示される画面の変遷の一例を示す。例えば、表示画面９０３に表示された文のフェーズは、制服の導入に賛成の立場は表明されているが、論点が挙げられていない、理由や根拠が提示されていない、というフェーズである。フェーズ認識部２１５は、予め定めておいた内容のうち、ユーザによって入力されたテキストにおいて述べられていない内容を特定する。
【０１０１】
なお、作文や会話に求められる内容は予め定義されており、例えば、発想支援装置２０１は学習用の文書を予め保持している。例えば、発想支援装置２０１は、運用処理の開始前に、当該内容に該当する箇所のラベルを作成し、当該ラベルを用いた機械学習により、当該内容を認識できる識別器を作成しておく。フェーズ認識部２１５は、この識別器を用いて、ユーザが入力したテキスト中に、当該内容が含まれているか否かを判別する。図９Ｃの例では、作文において、学校への制服の導入に対する賛否の表明、及び表明した賛否のための論点、が必要であるものとする。
【０１０２】
なお、発想支援装置２０１は、例えば、文書ＤＢ１０３の当該内容に該当する箇所（例えば、上記内容を含む文書又は上記内容を含むテキスト）に、当該内容に該当する箇所であることを示すアノテーションを付与してもよい。
【０１０３】
そして、知識グラフ生成部２１１は、知識グラフ生成処理において、アノテーション部分を用いた知識を含む知識グラフを生成した場合、当該アノテーション部分が示す内容を当該知識が示すことを、知識グラフ上に付加情報として与えてもよい。つまり、例えば、知識グラフ生成部２１１は、ノードテーブル３０４、及びエッジテーブル３０５に、さらに列を追加し、追加した列に当該付加情報を格納する。
【０１０４】
図２の説明に戻る。続いて、フェーズ認識部２１５は、コンテキスト認識処理及びフェーズ認識処理の結果に基づいて、ユーザにヒントを提示するヒント提示処理を実施する（Ｓ１２５）。フェーズ認識部２１５は、後続知識テーブル７０４が示す後続知識から提示するヒントを生成する。
【０１０５】
前述の通り、表示画面９０３に表示されている文が入力された場合、コンテキスト認識処理において、後続知識テーブル７０４の知識がＥ１０であるレコードの情報が出力される。つまり、フェーズ認識部２１５は、知識Ｅ１０の後続知識がＮ２及びＥ９であることを示す情報を既に取得している。
【０１０６】
従って、フェーズ認識部２１５は、後続知識Ｎ２及び後続知識Ｅ９のリレーションが示すステートメントを、ユーザに提示するヒントの候補に決定する。フェーズ認識部２１５は、当該候補全てをヒントとして、表示装置２０３に出力してもよい。
【０１０７】
また、例えば、フェーズ認識部２１５は、フェーズ認識処理において、表示画面９０３に表示されている文に不足していると判定された内容を示す知識に相当する候補がある場合、当該候補を優先して表示装置２０３にヒントとして表示してもよい。
【０１０８】
なお、「ある候補が優先して表示される」とは、例えば、当該候補のみが表示装置２０３に表示されること、及び全ての候補が表示装置２０３に表示される場合に当該候補が強調表示されること等を意味する。
【０１０９】
また、フェーズ認識部２１５は、後続知識テーブル７０４の知識がＥ１０であるレコードにおける出現回数が多い（図８Ｂの例では、Ｎ２は１０回、Ｅ９は５回）知識を優先して、表示装置２０３にヒントとして提示してもよい（例えば、出現回数が大きい順に所定数の候補を提示したり、出現回数が所定数以上の候補を全て提示したりする）。これにより、フェーズ認識部２１５は、ユーザが入力した内容と関連性の強い知識をヒントとして出力することができる。
【０１１０】
また、後続知識テーブル７０４に知識と後続知識との間の文書上の距離が格納されている場合には、フェーズ認識部２１５は、後続知識テーブル７０４の知識がＥ１０であるレコードにおける距離が小さい知識を優先して、表示装置２０３にヒントとして提示してもよい（例えば、距離が小さい順に所定数の候補を提示したり、距離が所定値以下の候補を全て提示したりする）。これにより、フェーズ認識部２１５は、ユーザが入力した内容と関連性の強い知識をヒントとして出力することができる。
【０１１１】
例えば、知識Ｎ２及び知識Ｅ９の賛成または反対の論点であるとする。このとき、フェーズ認識部２１５は、例えば、出現回数を優先して、図９Ｃの表示画面９０４中に表示されているように、「制服は規律を高める」という内容をヒントとして提示する。なお、フェーズ認識部２１５は、例えば、ユーザがヒントを必要としていると推定した場合、又はユーザからのヒント提示要求を受け付けた場合に、ヒントを表示装置２０３に表示する。具体的には、例えば、フェーズ認識部２１５は、ユーザの入力から一定時間が経っても、次の入力がない場合にヒントを提示してもよいし、ユーザによるボタン押圧等のユーザからの要求があった場合にヒントを提示してもよい。
【０１１２】
なお、ここでは、フェーズ認識部２１５は、表示画面９０４において、１つのヒントのみを提示したが、複数のヒントを提示してもよい。なお、フェーズ認識処理は、提示するヒントを絞るための処理であるため、実行されなくてもよい。
【０１１３】
ユーザは、表示画面９０４中に提示されたヒントを参考にして、表示画面９０５に表示されているようにユーザはテキストの入力を続け、発話理解処理に戻る。なお、ユーザは、提示されたヒントとは関係のないテキストを入力してもよい。そして、入力されたテキストに対して、発話理解処理、及びコンテキスト認識処理が再度実行される。表示画面９０５に表示されている文が入力された場合のコンテキスト認識処理における出力は、Ｅ１０及びＮ２である。
【０１１４】
このとき、図８Ｂの後続知識テーブル７０４において、Ｅ１０及びＮ２に共通する後続知識は、Ｅ９であるため、フェーズ認識部２１５は、ヒント提示処理において、例えば、表示画面９０６のように、「制服は学習意欲を高める」をヒントとして提示する。
【０１１５】
本実施例の発想支援装置２０１は、上述した処理により、ユーザがテキスト入力に詰まったときや、ユーザがヒントを要求したときに、ユーザに適切なヒントを与えることができ、ひいてはユーザの発想を支援し、ユーザによる次の発話を支援することができる。
【０１１６】
なお、フェーズ認識部２１５は、ヒント提示処理において、知識グラフを用いた以下に示す処理を行ってもよい。前述したように、ユーザが表示画面９０５に表示されている文を入力した場合、コンテキスト認識処理において知識Ｅ１０及び知識Ｎ２が出力される。
【０１１７】
知識グラフ８０１において、コンテキスト認識処理において出力された知識Ｎ２の逆接の知識Ｎ６がある。フェーズ認識部２１５は、このように、コンテキスト認識部２１４から入力された知識の逆説の知識が知識グラフ上に含まれ、かつ当該逆説の知識がコンテキスト認識部２１４から入力されていない場合、当該逆説の知識に相当するヒントを提示してもよい。具体的には、例えば、フェーズ認識部２１５は、表示画面９０７に示す、「制服は規律を高めるが、制服は自由を阻害する、という意見もありますが、どう思いますか？」等の問いかけやコメントを、ヒントして提示してもよい。
【０１１８】
当該処理により、ユーザは自身の逆の立場からの意見を知ることができ、ひいては論述や作文、会話におけるユーザの発想を深めるための支援することができる。なお、上述の例では、フェーズ認識部２１５がコンテキスト認識部２１４から入力された知識の逆説の知識をヒントとして提示する例を説明したが、フェーズ認識部２１５は、コンテキスト認識部２１４から入力された知識の逆説以外のリレーションにある知識であって、かつコンテキスト認識部２１４から入力されていない知識、をヒントとして提示してもよい。
【０１１９】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１２０】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１２１】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１２２】
１０３  文書ＤＢ、１０５  知識グラフＤＢ、１０７  コンテキストＤＢ、２０１  発想支援装置、２０２  入力装置、２０３  表示装置、２０４  通信装置、２０５  演算装置（ＣＰＵ）、２０６  メモリ、２０７  補助記憶装置、２１１  知識グラフ生成部、２１２  コンテキスト計算部、２１３  発話理解部、２１４  コンテキスト認識部、２１５  フェーズ認識部
【図１】
2018147238.tif 000003
【図２】
2018147238.tif 000004
【図３Ａ】
2018147238.tif 000005
【図３Ｂ】
2018147238.tif 000006
【図３Ｃ】
2018147238.tif 000007
【図３Ｄ】
2018147238.tif 000008
【図３Ｅ】
2018147238.tif 000009
【図４Ａ】
2018147238.tif 000010
【図４Ｂ】
2018147238.tif 000011
【図４Ｃ】
2018147238.tif 000012
【図４Ｄ】
2018147238.tif 000013
【図５Ａ】
2018147238.tif 000014
【図５Ｂ】
2018147238.tif 000015
【図５Ｃ】
2018147238.tif 000016
【図５Ｄ】
2018147238.tif 000017
【図５Ｅ】
2018147238.tif 000018
【図６Ａ】
2018147238.tif 000019
【図６Ｂ】
2018147238.tif 000020
【図６Ｃ】
2018147238.tif 000021
【図７Ａ】
2018147238.tif 000022
【図７Ｂ】
2018147238.tif 000023
【図８Ａ】
2018147238.tif 000024
【図８Ｂ】
2018147238.tif 000025
【図９Ａ】
2018147238.tif 000026
【図９Ｂ】
2018147238.tif 000027
【図９Ｃ】
2018147238.tif 000028