(57)【特許請求の範囲】
【請求項１】
トピックに対応した質問トレーニングデータ内の単語を選択する、選択手段と、
前記質問トレーニングデータ内の選択された単語を、前記トピックに対応した回答データ内の単語に置換することによって、前記質問トレーニングデータを拡張する、拡張手段
を有する情報処理装置。
【請求項２】
前記拡張された質問トレーニングデータを用いて、質問に対して回答を行う学習モデルを機械学習によって生成する、生成手段
をさらに有する請求項１に記載の情報処理装置。
【請求項３】
前記生成された学習モデルを用いて、質問に対する回答データを抽出する、抽出手段と、
前記抽出された回答データをユーザーに提示する、提示手段
をさらに有する請求項２に記載の情報処理装置。
【請求項４】
前記拡張された質問トレーニングデータから、不自然な文を除外する、除外手段
をさらに有する請求項１から３のいずれか一項に情報処理装置。
【請求項５】
前記トピック毎の質問トレーニングデータ数の差分が予め定められた閾値未満又は以下となるように、質問トレーニングデータ数を調整する、調整手段
をさらに有する請求項１から４のいずれか一項に情報処理装置。
【請求項６】
コンピュータを、
トピックに対応した質問トレーニングデータ内の単語を選択する、選択手段と、
前記質問トレーニングデータ内の選択された単語を、前記トピックに対応した回答データ内の単語に置換することによって、前記質問トレーニングデータを拡張する、拡張手段
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、任意の入力質問文に対して、応答文の生成を行う自然言語質問応答生成装置を提供することを課題とし、質問文解析部は、辞書を参照して入力された質問文の構文解析を行い、質問文から質問文の主題・質問点・質問文の前提・質問文の命題内容を抽出し、それらを含む意味表現に変換し、応答タイプ決定部は、質問文の意味表現と、質問文に含まれるイベントの概念構造と、人間の応答生成における推論過程をモデル化した応答生成プロセスモデルとを参照して、応答文の応答タイプを決定し、応答文生成部は、決定された応答タイプを基にして、質問文の意味表現・イベントの概念構造と、スクリプト的知識ベース中のタスクに関するスクリプト的知識とを参照して自然言語による応答文を生成し出力することが開示されている。
【０００３】
特許文献２には、適切な回答を迅速に得ることが可能であり、Ｑ＆Ａサイトなどの適切な運用に資することのできる質問回答方法、質問回答装置及び質問回答プログラムを提供することを課題とし、質問と回答の対を記憶した問答記憶手段を用い、受信した質問に対応する質問と回答の対を検索し、この検索した質問と回答の対に基づいた回答情報を作成して質問者端末に送信する質問回答方法において、ＦＡＱ回答情報におけるＦＡＱが質問データにかかる質問に適合したものか否かなどの適合性評価を行うように促す適合性評価依頼情報を質問者端末に送信し、受信した適合性評価が高い場合は当該適合性評価にかかるＦＡＱの適合性評価ランクを高く設定し、適合性評価ランクが高いＦＡＱは、質問データに対するＦＡＱ回答情報として送信される優先度を高くすることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−０９３３５１号公報
【特許文献２】特開２００３−００６２０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
質問に対する回答をコンピュータを用いて自動的に行うシステムがある。例えば、特許文献２では、予め質問と回答の組み合わせを用意しておき、ユーザーからの問い合わせに対して最も類似した質問を見つけ、対応する回答を返すことを行っている。
しかし、トピック推定精度を高めるために大量の質問と回答の組み合わせを用意しなければならず、しかもそれらはそれぞれトピックと関連付けなければならない。
そこで、本発明は、予め質問と回答の組み合わせを用意しておき、ユーザーからの問い合わせに対して最も類似した質問を見つけ、対応する回答を返す技術と比較して、予め用意するトピックと関連付けられた質問文が少なくても、トピック推定精度を高めることができるようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、トピックに対応した質問トレーニングデータ内の単語を選択する、選択手段と、前記質問トレーニングデータ内の選択された単語を、前記トピックに対応した回答データ内の単語に置換することによって、前記質問トレーニングデータを拡張する、拡張手段を有する情報処理装置である。
【０００７】
請求項２の発明は、前記拡張された質問トレーニングデータを用いて、質問に対して回答を行う学習モデルを機械学習によって生成する、生成手段をさらに有する請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記生成された学習モデルを用いて、質問に対する回答データを抽出する、抽出手段と、前記抽出された回答データをユーザーに提示する、提示手段をさらに有する請求項２に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記拡張された質問トレーニングデータから、不自然な文を除外する、除外手段をさらに有する請求項１から３のいずれか一項に情報処理装置である。
【００１０】
請求項５の発明は、前記トピック毎の質問トレーニングデータ数の差分が予め定められた閾値未満又は以下となるように、質問トレーニングデータ数を調整する、調整手段をさらに有する請求項１から４のいずれか一項に情報処理装置である。
【００１１】
請求項６の発明は、コンピュータを、トピックに対応した質問トレーニングデータ内の単語を選択する、選択手段と、前記質問トレーニングデータ内の選択された単語を、前記トピックに対応した回答データ内の単語に置換することによって、前記質問トレーニングデータを拡張する、拡張手段として機能させるための情報処理プログラムである。
【発明の効果】
【００１２】
請求項１の情報処理装置によれば、予め質問と回答の組み合わせを用意しておき、ユーザーからの問い合わせに対して最も類似した質問を見つけ、対応する回答を返す技術と比較して、予め用意するトピックと関連付けられた質問文が少なくても、トピック推定精度を高めることができる。
【００１３】
請求項２の情報処理装置によれば、質問に対して回答を行う学習モデルを機械学習によって生成することができる。
【００１４】
請求項３の情報処理装置によれば、学習モデルを用いて、質問に対する回答データをユーザーに提示することができる。
【００１５】
請求項４の情報処理装置によれば、拡張された質問トレーニングデータから、不自然な文を除外することができる。
【００１６】
請求項５の情報処理装置によれば、トピック毎の質問トレーニングデータ数の差分が予め定められた閾値未満又は以下となるように、質問トレーニングデータ数を調整することができる。
【００１７】
請求項６の情報処理プログラムによれば、予め質問と回答の組み合わせを用意しておき、ユーザーからの問い合わせに対して最も類似した質問を見つけ、対応する回答を返す技術と比較して、予め用意するトピックと関連付けられた質問文が少なくても、トピック推定精度を高めることができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図３】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図４】本実施の形態を利用したシステム構成例を示す説明図である。
【図５】第１の実施の形態による処理例を示すフローチャートである。
【図６】第１の実施の形態による処理例を示すフローチャートである。
【図７】第１の実施の形態による処理例を示すフローチャートである。
【図８】第１の実施の形態による処理例を示すフローチャートである。
【図９】質問トレーニングデータテーブルのデータ構造例を示す説明図である。
【図１０】回答テキストテーブルのデータ構造例を示す説明図である。
【図１１】拡張質問トレーニングデータテーブルのデータ構造例を示す説明図である。
【図１２】質問トレーニングデータ（教師データ）テーブルのデータ構造例を示す説明図である。
【図１３】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図１４】第２の実施の形態による処理例を示すフローチャートである。
【図１５】第３の実施の形態の構成例についての概念的なモジュール構成図である。
【図１６】第３の実施の形態による処理例を示すフローチャートである。
【図１７】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
まず、本実施の形態を説明する前に、その前提又は本実施の形態を利用する情報処理装置について説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
例えば、何かの製品やサービスについてのユーザーからの質問を、電子メール、電話、Ｗｅｂユーザーインターフェスなどを介して受け取り、回答するような質問回答サービスがある。
一般的には、ヘルプデスクやコールセンターと呼ばれる専用の部署の人員が、ユーザーからの質問を受け取り、回答することで一つ一つ対応している。ここで現在、人員コストや回答までの時間の短縮の必要性から、コンピュータを用いた自動回答が求められてきている。
特許文献１に記載の技術は、予めタスクに関するスクリプト的知識を用意しておき、質問文を自然言語解析技術を用いて意味表現に変換し、そのスクリプトとの対応をとり回答文を出力する技術である。この技術は、意味解析が可能な質問文であれば任意の質問文に対応できるが、逆に意味解析における辞書や文法を用意しなければならず、また新しい言葉に対応するために継続的にメンテナンスしなければならない。
一方、特許文献２に記載の技術は、予め質問と回答の組みを用意しておき、ユーザーからの問い合わせに対して最も類似した質問を見つけ、対応する回答を返す。この技術は、質問と回答の組みを数多く準備すればさまざまな質問に対応できるため、特許文献１に記載の技術のような辞書や文法の継続的なメンテナンスを必要としない。しかし、質問と回答の組みを数多く準備する必要がある。
つまり、質問回答システムにおいて、トピック推定精度を高めるために大量の質問文を用意しなければならず、しかもそれらはそれぞれトピックと関連付けなければならない。
本実施の形態では、少数の質問文を用意し、トピックと関連付けておき、質問文中の単語を一つ又は複数選択し、その質問に関連付けられたトピックに対応付けられた回答文のなかの単語の一つ又は複数と入れ替えることで、新しい質問文を作成する。単語の選択の組み合わせによって、多量の質問文を自動生成することができる。なお、ここで予め用意する「少数の質問文」とは、背景技術で示したものと同程度の精度で回答を行うために用意する質問文数と比較して少ないことである。なお、学習モデルを生成するための質問文は、本実施の形態によって作成された質問文である。
【００２０】
＜＜第１の実施の形態＞＞
図１は、第１の実施の形態（情報処理装置１００）の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２１】
第１の実施の形態である情報処理装置１００は、質問回答システムが用いる学習モデルを生成するものであって、図１の例に示すように、質問トレーニングデータ記憶モジュール１１０、回答記憶モジュール１２０、質問トレーニングデータ拡張モジュール１３０、機械学習トレーニングモジュール１４０、学習モデル記憶モジュール１５０を有している。
【００２２】
質問トレーニングデータ記憶モジュール１１０は、質問トレーニングデータ拡張モジュール１３０と接続されている。質問トレーニングデータ記憶モジュール１１０は、トピックに対応した質問トレーニングデータを記憶している。例えば、ユーザーがよく問い合わせすると予測される質問トレーニングデータ（質問テキスト、質問文）を記憶する。そして、それぞれの質問トレーニングデータに対応するトピックの識別子が付与されている。質問トレーニングデータは、１文であってもよいし、複数の文で構成されていてもよい。具体的には、質問トレーニングデータテーブル９００を記憶している。図９は、質問トレーニングデータテーブル９００のデータ構造例を示す説明図である。質問トレーニングデータテーブル９００は、質問文欄９１０、トピックＩＤ欄９２０を有している。質問文欄９１０は、質問文を記憶している。トピックＩＤ欄９２０は、トピックを、本実施の形態において一意に識別するための情報（トピックＩＤ：ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）を記憶している。なお、トピックとは、話題、題目、論題の意であり、質問トレーニングデータが問うている内容を示すものであり、回答データが回答している内容を示すものである。技術的には、質問トレーニングデータと回答データを対応付けるものであればよい。したがって、トピックＩＤとして、回答データを本実施の形態において一意に識別するための識別子を用いるようにしてもよい。なお、１つの回答データに対して複数の質問トレーニングデータが対応していてもよい。
【００２３】
回答記憶モジュール１２０は、質問トレーニングデータ拡張モジュール１３０と接続されている。回答記憶モジュール１２０は、トピックに対応した回答データを記憶している。例えば、ユーザーからのよくある問い合わせに対する回答データ（回答テキスト、回答文）の例をトピック毎に記憶する。それぞれのトピック（トピック識別子）に対して回答データが付与されている。回答データは、１文であってもよいし、複数の文で構成されていてもよい。具体的には、回答テキストテーブル１０００を記憶している。図１０は、回答テキストテーブル１０００のデータ構造例を示す説明図である。回答テキストテーブル１０００は、トピックＩＤ欄１０１０、回答テキスト欄１０２０を有している。トピックＩＤ欄１０１０は、トピックＩＤを記憶している。回答テキスト欄１０２０は、回答テキストを記憶している。この回答テキストの内容として、マニュアルの章、節等の文章であってもよい。
【００２４】
質問トレーニングデータ拡張モジュール１３０は、質問トレーニングデータ記憶モジュール１１０、回答記憶モジュール１２０、機械学習トレーニングモジュール１４０と接続されている。質問トレーニングデータ拡張モジュール１３０は、質問トレーニングデータ記憶モジュール１１０からトピックに対応した質問トレーニングデータを抽出し、その質問トレーニングデータ内の単語を選択する。
そして、質問トレーニングデータ拡張モジュール１３０は、回答記憶モジュール１２０からトピックに対応した回答データを抽出し、質問トレーニングデータ内の選択された単語を、その回答データ内の単語に置換することによって、質問トレーニングデータを拡張する。
また、質問トレーニングデータ拡張モジュール１３０は、例えば、質問トレーニングデータ記憶モジュール１１０又は回答記憶モジュール１２０内のデータが更新されると、処理を開始してもよい。また、質問トレーニングデータ記憶モジュール１１０又は回答記憶モジュール１２０内の予め定められた数又は割合のデータが更新されたことを契機として処理を開始してもよいし、予め定められた期間毎に処理を開始してもよい。
ユーザーからの質問文を事前に多く準備できれば、それだけ機械学習によるトピック推定の精度が高くなる。質問トレーニングデータ拡張モジュール１３０は、与えられた質問トレーニングデータとトピック毎の回答データを利用して元の質問トレーニングデータより多い質問トレーニングデータとそれに対応するトピックの識別子のペアを自動生成することで、質問トレーニングデータを拡張する。
【００２５】
機械学習トレーニングモジュール１４０は、質問トレーニングデータ拡張モジュール１３０、学習モデル記憶モジュール１５０と接続されている。機械学習トレーニングモジュール１４０は、質問トレーニングデータ拡張モジュール１３０によって拡張された質問トレーニングデータを用いて、質問に対して回答を行う学習モデルを機械学習によって生成する。
例えば、機械学習トレーニングモジュール１４０は、教師ありの機械学習分類器のトレーニングモジュールである。質問文トレーニングデータをテキスト解析してその結果を機械学習の素性とし、トピックの識別子を分類カテゴリとみなすことでトレーニングする。学習結果は、学習モデルとして出力される。
学習モデル記憶モジュール１５０は、機械学習トレーニングモジュール１４０と接続されている。学習モデル記憶モジュール１５０は、機械学習トレーニングモジュール１４０に生成された学習モデルを記憶する。
【００２６】
図２は、第１の実施の形態（情報処理装置２００）の構成例についての概念的なモジュール構成図である。情報処理装置２００は、情報処理装置１００が生成した学習モデルを用いた質問回答システムであって、図２の例に示すように、回答記憶モジュール１２０、学習モデル記憶モジュール１５０、質問文受付モジュール２６０、トピック推定モジュール２７０、回答モジュール２８０を有している。
回答記憶モジュール１２０は、回答モジュール２８０と接続されている。回答記憶モジュール１２０は、トピックに対応した回答データを記憶している。具体的には、回答テキストテーブル１０００を記憶している。なお、図面内の符号（１２０）として、情報処理装置１００内の回答記憶モジュール１２０と同じであるが、学習モデルを生成するのに用いた回答データを記憶しているのであれば、必ずしも物理的に同じ記憶装置である必要はない。
学習モデル記憶モジュール１５０は、トピック推定モジュール２７０と接続されている。学習モデル記憶モジュール１５０は、情報処理装置１００が生成した学習モデルを記憶している。なお、図面内の符号（１５０）として、情報処理装置１００内の学習モデル記憶モジュール１５０と同じであるが、情報処理装置１００が生成した学習モデルを記憶しているのであれば、必ずしも物理的に同じ記憶装置である必要はない。
【００２７】
質問文受付モジュール２６０は、トピック推定モジュール２７０と接続されている。質問文受付モジュール２６０は、ユーザーからの問い合わせがなされたときのその問い合わせのテキスト（質問文テキスト）を受け付ける。ユーザーからの問い合わせとして、電子メール、Ｗｅｂユーザーインターフェス等を利用したものであってもよいし、電話等による問い合わせを音声認識したものであってもよい。
【００２８】
トピック推定モジュール２７０は、学習モデル記憶モジュール１５０、回答モジュール２８０と接続されている。トピック推定モジュール２７０は、学習モデル記憶モジュール１５０内の学習モデル（機械学習トレーニングモジュール１４０によって生成された学習モデル）を用いて、質問に対する回答データを抽出する。具体的には、トピック推定モジュール２７０は、ユーザーからの質問文テキストをテキスト解析し、機械学習トレーニングモジュール１４０による学習結果である学習モデルを用いて分類する。分類結果は、トピックの識別子に関係づいている。
【００２９】
回答モジュール２８０は、回答記憶モジュール１２０、トピック推定モジュール２７０と接続されている。回答モジュール２８０は、トピック推定モジュール２７０によって抽出された回答データを、質問を行ったユーザーに提示する。具体的には、トピック推定モジュール２７０によって推定されたトピックの識別子から対応する回答テキストを回答記憶モジュール１２０から取得し、ユーザーに提示する。提示には、質問を行ったユーザーが用いているパーソナルコンピュータ等に備え付けられている液晶ディスプレイ等の表示装置に表示すること、スピーカー等の音声出力装置から出力すること、プリンタ等の印刷装置で印刷すること等がある。
【００３０】
図３は、第１の実施の形態（情報処理装置３００）の構成例についての概念的なモジュール構成図である。
情報処理装置３００は、質問トレーニングデータ記憶モジュール１１０、回答記憶モジュール１２０、質問トレーニングデータ拡張モジュール１３０、機械学習トレーニングモジュール１４０、学習モデル記憶モジュール１５０、質問文受付モジュール２６０、トピック推定モジュール２７０、回答モジュール２８０を有している。情報処理装置３００は、情報処理装置１００と情報処理装置２００を組み合わせたものであり、学習モデルの生成と、ユーザーからの質問に対して回答を行うものである。各モジュールは、前述のモジュールと同等の機能、処理を行う。
質問トレーニングデータ記憶モジュール１１０は、質問トレーニングデータ拡張モジュール１３０と接続されている。回答記憶モジュール１２０は、質問トレーニングデータ拡張モジュール１３０、回答モジュール２８０と接続されている。質問トレーニングデータ拡張モジュール１３０は、質問トレーニングデータ記憶モジュール１１０、回答記憶モジュール１２０、機械学習トレーニングモジュール１４０と接続されている。機械学習トレーニングモジュール１４０は、質問トレーニングデータ拡張モジュール１３０、学習モデル記憶モジュール１５０と接続されている。学習モデル記憶モジュール１５０は、機械学習トレーニングモジュール１４０、トピック推定モジュール２７０と接続されている。質問文受付モジュール２６０は、トピック推定モジュール２７０と接続されている。トピック推定モジュール２７０は、学習モデル記憶モジュール１５０、質問文受付モジュール２６０、回答モジュール２８０と接続されている。回答モジュール２８０は、回答記憶モジュール１２０、トピック推定モジュール２７０と接続されている。
【００３１】
図４は、本実施の形態を利用したシステム構成例を示す説明図である。
情報処理装置１００Ａ、情報処理装置２００Ａ、情報処理装置２００Ｂ、情報処理装置３００、ユーザー端末４１０Ａ、ユーザー端末４１０Ｂ、ユーザー端末４１０Ｃ、回答文書記憶装置４２０は、通信回線４９０を介してそれぞれ接続されている。通信回線４９０は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、情報処理装置１００、情報処理装置２００、情報処理装置３００による機能は、クラウドサービスとして実現してもよい。
回答文書記憶装置４２０は、回答記憶モジュール１２０を有している。
情報処理装置２００Ｂと情報処理装置１００Ｂは接続されている。
【００３２】
ユーザー端末４１０は、情報処理装置２００Ａ、情報処理装置２００Ｂ又は情報処理装置３００に対して、ユーザーの操作に応じて質問を送信し、回答を受信し、その回答をユーザーに提示する。ユーザー端末４１０は、パーソナルコンピュータ、携帯電話（スマートフォンを含む）等を含む携帯端末等である。ユーザー端末４１０が送信する質問は、テキストであってもよいし、音声データであってもよい。また、情報処理装置１００に対して、学習モデルを生成するための質問トレーニングデータを送信するようにしてもよい。
情報処理装置１００Ａは、ユーザー端末４１０から質問トレーニングデータを取得し、学習モデルを生成する。
情報処理装置２００Ａは、情報処理装置１００Ａが生成した学習モデルを通信回線４９０を経由して取得する。
情報処理装置１００Ｂは、管理者等の指示にしたがって、学習モデルを生成する。情報処理装置２００Ｂは、情報処理装置１００Ｂが生成した学習モデルを取得する。
情報処理装置３００は、ユーザー端末４１０から質問トレーニングデータを取得し、学習モデルを生成する。
【００３３】
また、回答記憶モジュール１２０として、通信回線４９０に接続されている回答文書記憶装置４２０内の回答記憶モジュール１２０を用いるようにしてもよい。例えば、通信回線４９０は、オンラインマニュアルとしての機能を有している。
この場合、情報処理装置１００Ａ、情報処理装置１００Ｂ、情報処理装置３００は、通信回線４９０内の回答記憶モジュール１２０を用いて、学習モデルを生成し、情報処理装置２００Ａ、情報処理装置２００Ｂ、情報処理装置３００は、通信回線４９０内の回答記憶モジュール１２０を用いて、回答を作成するようにしてもよい。
【００３４】
図５は、第１の実施の形態（質問トレーニングデータ拡張モジュール１３０）による処理例を示すフローチャートである。
ステップＳ５０２では、トピック毎の回答テキストを回答記憶モジュール１２０から抽出する。
ステップＳ５０４では、ステップＳ５０２で抽出した各回答テキストを形態素解析器などを用いて単語の列に分解する。この単語を、図６の例に示すフローチャートのステップＳ６１０で用いる。
【００３５】
図６は、第１の実施の形態（質問トレーニングデータ拡張モジュール１３０）による処理例を示すフローチャートである。
ステップＳ６０２では、質問トレーニングデータを質問トレーニングデータ記憶モジュール１１０から抽出する。
ステップＳ６０４では、質問トレーニングデータから質問テキストを一つ選択する。
ステップＳ６０６では、質問テキストを形態素解析器などを用いて単語の列に分解する。
ステップＳ６０８では、質問テキスト内の単語を１つ又は複数選択する。
【００３６】
ステップＳ６１０では、選択した単語をその質問に対応する回答テキスト内の単語に置換する。ここでの「質問に対応する回答テキスト」として、具体的には、質問トレーニングデータのトピックＩＤと同じトピックＩＤを有している回答テキストである。また、「回答テキスト内の単語」は、図５の例に示すフローチャートのステップＳ５０４で抽出した単語である。
ステップＳ６１２では、ステップＳ６０８〜ステップＳ６１０の処理を別の単語を選択し、選択する単語がなくなるまで繰り返す。
ステップＳ６１４では、ステップＳ６０４〜ステップＳ６１２の処理を別の質問テキストを選択し、選択する質問テキストがなくなるまで繰り返す。
【００３７】
図７は、第１の実施の形態（機械学習トレーニングモジュール１４０）による処理例を示すフローチャートである。
ステップＳ７０２では、質問トレーニングデータ拡張モジュール１３０によって拡張された質問トレーニングデータ（図６の例に示すフローチャートによって作成された質問トレーニングデータ）を用いて学習モデルを作成する。
【００３８】
図８は、第１の実施の形態（情報処理装置２００）による処理例を示すフローチャートである。
ステップＳ８０２では、質問文受付モジュール２６０は、ユーザーからの質問文テキストを受け付ける。
ステップＳ８０４では、トピック推定モジュール２７０は、学習モデル記憶モジュール１５０を用いて、質問文テキストのトピックを推定する。
ステップＳ８０６では、回答モジュール２８０は、トピックに対応する回答テキストを回答記憶モジュール１２０から抽出する。
ステップＳ８０８では、回答モジュール２８０は、ユーザーに回答テキストを送信する。
【００３９】
以下、サンプルデータを用いて、第１の実施の形態（情報処理装置１００）による動作例を説明する。
事前に、回答テキストテーブル１０００内の回答テキストそれぞれについて、テキストを単語に分解する（図５の例に示したフローチャート参照）。
例えば、図１０の例に示すように、トピックＩＤ１のテキストは、「Ｏｕｒ｜ｐｈｏｎｅ｜ｎｕｍｂｅｒ｜ｉｓ｜０１−２３４−５６７８｜．」（単語の区切りを｜で表した）となる。
ここで、これらの単語のうち、その質問やトピックに対して特徴的な語だけを選択しておく。この場合、「Ｏｕｒ」、「ｉｓ」、「．」は一般的な語であるので選択せず、「ｐｈｏｎｅ」、「ｎｕｍｂｅｒ」、「０１−２３４−５６７８」を選択する。選択したものに下線を付けると以下のようになる。
「Ｏｕｒ｜ｐｈｏｎｅ｜ｎｕｍｂｅｒ｜ｉｓ｜０１−２３４−５６７８｜．」
ここで、特徴的な語の選択は、ＴＦ−ｉＤＦ法のような単語の出現の偏りに基づく方法や、ストップワードリストと呼ばれる一般的な語の辞書を用いて、そのストップワードリスト以外の単語を特徴的な語として選択することによって可能である。また、回答テキストテーブル１０００内で、出現回数が予め定められた閾値より多い又は以上である単語以外の単語を、特徴的な語として選択するようにしてもよい。
同様に、回答テキストテーブル１０００内のトピックＩＤ２の回答テキストも単語に分解し、特徴的な語を選択する。
【００４０】
次に、図６の例で示したフローチャートにしたがって、以下の処理を行う。
質問トレーニングデータテーブル９００内の質問トレーニングデータから一つデータを選択し、質問文を同様に単語に分解し、特徴的な語を選択する。回答テキストに対して行った前述の処理を、質問トレーニングデータに対して行えばよい。
例えば、質問トレーニングデータテーブル９００内の一つ目のデータは、「Ｗｈｅｒｅ｜ｉｓ｜ｃｏｎｔａｃｔ｜ｉｎｆｏｒｍａｔｉｏｎ｜？」となる。
次に、質問文中の特徴的な語を対応する回答テキストの特徴的な語と入れ替えた結果、以下のようなデータを得る。逆に、一般的な語は、質問文の単語として残しておきたい単語である。
「Ｗｈｅｒｅ｜ｉｓ｜ｐｈｏｎｅ｜ｉｎｆｏｒｍａｔｉｏｎ｜？」
「Ｗｈｅｒｅ｜ｉｓ｜ｎｕｍｂｅｒ｜ｉｎｆｏｒｍａｔｉｏｎ｜？」
「Ｗｈｅｒｅ｜ｉｓ｜０１−２３４−５６７８｜ｉｎｆｏｒｍａｔｉｏｎ｜？」
「Ｗｈｅｒｅ｜ｉｓ｜ｃｏｎｔａｃｔ｜ｐｈｏｎｅ｜？」
「Ｗｈｅｒｅ｜ｉｓ｜ｃｏｎｔａｃｔ｜ｎｕｍｂｅｒ｜？」
「Ｗｈｅｒｅ｜ｉｓ｜ｃｏｎｔａｃｔ｜０１−２３４−５６７８｜？」
最初の３つの文は「ｃｏｎｔａｃｔ」を入れ替えたものであり、最後の３つの文は「ｉｎｆｏｒｍａｔｉｏｎ」を入れ替えたものである。
【００４１】
ここで、一つの単語を入れ替えたが、複数の単語の組み合わせを入れ替えてもよい。
分解した単語を連結して、文を構成し対応するトピックＩＤを付加することで、図１１の例に示すような拡張質問トレーニングデータテーブル１１００のデータを得る。図１１は、拡張質問トレーニングデータテーブル１１００のデータ構造例を示す説明図である。拡張質問トレーニングデータテーブル１１００は、質問文欄１１１０、トピックＩＤ欄１１２０を有しており、図９の例に示した質問トレーニングデータテーブル９００と同等のデータ構造を有している。質問文欄１１１０は、質問文を記憶している。トピックＩＤ欄１１２０は、トピックＩＤを記憶している。
【００４２】
同様に、質問トレーニングデータテーブル９００内の他の質問トレーニングデータに対しても質問文を新規に生成し、それらを統合することで質問トレーニングデータを生成して、質問トレーニングデータを増加させる。
最終的に、機械学習トレーニングモジュール１４０が用いる教師データは、質問トレーニングデータ（教師データ）テーブル１２００のようになる。図１２は、質問トレーニングデータ（教師データ）テーブル１２００のデータ構造例を示す説明図である。質問トレーニングデータ（教師データ）テーブル１２００は、質問文欄１２１０、トピックＩＤ欄１２２０を有しており、図９の例に示した質問トレーニングデータテーブル９００と同等のデータ構造を有している。質問文欄１２１０は、質問文を記憶している。トピックＩＤ欄１２２０は、トピックＩＤを記憶している。質問トレーニングデータ（教師データ）テーブル１２００は、質問トレーニングデータテーブル９００に拡張質問トレーニングデータテーブル１１００を付加したものである。
【００４３】
＜＜第２の実施の形態＞＞
図１３は、第２の実施の形態（情報処理装置１３００）の構成例についての概念的なモジュール構成図である。情報処理装置１３００は、質問回答システムが用いる学習モデルを生成するものであって、図１３の例に示すように、質問トレーニングデータ記憶モジュール１１０、回答記憶モジュール１２０、質問トレーニングデータ拡張モジュール１３０、機械学習トレーニングモジュール１４０、学習モデル記憶モジュール１５０を有している。情報処理装置１３００は、図１の例に示す情報処理装置１００の質問トレーニングデータ拡張モジュール１３０内に不自然文除外モジュール１３３５を付加したものである。もちろんのことながら、情報処理装置３００の質問トレーニングデータ拡張モジュール１３０内に不自然文除外モジュール１３３５を付加してもよい。
なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する（以下、同様）。
不自然文除外モジュール１３３５は、質問トレーニングデータ拡張モジュール１３０によって拡張された質問トレーニングデータから、不自然な文を除外する。
【００４４】
第１の実施の形態を用いて生成された質問文は、文として不自然なものが混在している。前述の例の場合、「Ｗｈｅｒｅ  ｉｓ  ０１−２３４−５６７８  ｉｎｆｏｒｍａｔｉｏｎ  ？」などである。不自然な文を除外するために、自然言語処理による検証を行う。例えば、Ｎ−Ｇｒａｍモデルに代表される確率言語モデルを用いて質問文の存在確率を計算し、その値が高いもの（予め定められた閾値より高い又は以上のもの）だけをトレーニングデータに用いる方法や、構文解析器が受理するものだけをトレーニングデータに用いる方法等を用いればよい。
また、不自然な質問文の数が、予め定められた閾値Ａ未満又は以下であり、かつ、予め定められた閾値Ｂより多い又は以上となるように、不自然な質問文を取り除くようにしてもよい。教師データとしてノイズ（不自然な質問文）を含んでいた方が、トピック推定の精度が高くなる学習モデルを生成することができる場合があるからである。
【００４５】
図１４は、第２の実施の形態による処理例を示すフローチャートである。
ステップＳ１４０２では、質問トレーニングデータを質問トレーニングデータ記憶モジュール１１０から抽出する。
ステップＳ１４０４では、質問トレーニングデータから質問テキストを一つ選択する。
ステップＳ１４０６では、質問テキストを形態素解析器などを用いて単語の列に分解する。
ステップＳ１４０８では、単語を１つ又は複数選択する。
ステップＳ１４１０では、選択した単語をその質問に対応する回答テキスト内の単語に置換する。
ステップＳ１４１２では、ステップＳ１４０８〜ステップＳ１４１０の処理を別の単語選択し、繰り返す。
ステップＳ１４１４では、ステップＳ１４０４〜ステップＳ１４１２の処理を別の質問テキストを選択し、繰り返す。
ステップＳ１４１６では、不自然文除外モジュール１３３５は、拡張した質問トレーニングデータから不自然な文を取り除く。
【００４６】
＜＜第３の実施の形態＞＞
図１５は、第３の実施の形態（情報処理装置１５００）の構成例についての概念的なモジュール構成図である。情報処理装置１５００は、質問回答システムが用いる学習モデルを生成するものであって、図１５の例に示すように、質問トレーニングデータ記憶モジュール１１０、回答記憶モジュール１２０、質問トレーニングデータ拡張モジュール１３０、機械学習トレーニングモジュール１４０、学習モデル記憶モジュール１５０を有している。情報処理装置１５００は、図１の例に示す情報処理装置１００の質問トレーニングデータ拡張モジュール１３０内に質問トレーニングデータ数調整モジュール１５３５を付加したものである。もちろんのことながら、情報処理装置３００の質問トレーニングデータ拡張モジュール１３０内に質問トレーニングデータ数調整モジュール１５３５を付加してもよい。
質問トレーニングデータ数調整モジュール１５３５は、質問トレーニングデータ拡張モジュール１３０によって拡張された質問トレーニングデータについて、トピック毎の質問トレーニングデータ数の差分が予め定められた閾値未満又は以下となるように、質問トレーニングデータ数を調整する。
なお、この調整の結果として除外の対象となる質問トレーニングデータは、第２の実施の形態で特定した不自然な文を優先して除外するようにしてもよい。
【００４７】
第１の実施の形態を用いて生成された質問文は、一般的に回答テキスト内の単語が多いほど多くの質問文が生成される傾向がある。トピックそれぞれに対する質問文の数にバラツキが多いと、質問回答の精度が低くなる可能性がある。つまり、質問トレーニングデータが多いほど、そのトピックと推定する可能性が高くなるからである。極端な例では、どのような質問に対しても、同じ回答を返すようなことが生じてしまう。
そこで、トピックそれぞれに対する質問文の数の割合をコントロールする。そのためにランダムサンプリングなどの方法でデータの数を正規化してもよい。例えば、各トピックに対応する質問トレーニングデータ数を同じにするように、間引き処理を行ってもよい。その間引きの対象を、不自然文除外モジュール１３３５で特定した不自然な質問文としてもよい。
【００４８】
図１６は、第３の実施の形態による処理例を示すフローチャートである。
ステップＳ１６０２では、質問トレーニングデータを質問トレーニングデータ記憶モジュール１１０から抽出する。
ステップＳ１６０４では、質問トレーニングデータから質問テキストを一つ選択する。
ステップＳ１６０６では、質問テキストを形態素解析器などを用いて単語の列に分解する。
ステップＳ１６０８では、単語を１つ又は複数選択する。
ステップＳ１６１０では、選択した単語をその質問に対応する回答テキスト内の単語に置換する。
ステップＳ１６１２では、ステップＳ１６０８〜ステップＳ１６１０の処理を別の単語選択し、繰り返す。
ステップＳ１６１４では、ステップＳ１６０４〜ステップＳ１６１２の処理を別の質問テキストを選択し、繰り返す。
ステップＳ１６１６では、質問トレーニングデータ数調整モジュール１５３５は、トピック毎の質問トレーニングデータ数の差分が予め定められた閾値未満又は以下になるように間引く。
【００４９】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図１６に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ１６０１を用い、記憶装置としてＲＡＭ１６０２、ＲＯＭ１６０３、ＨＤ１６０４を用いている。ＨＤ１６０４として、例えばハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を用いてもよい。質問トレーニングデータ拡張モジュール１３０、機械学習トレーニングモジュール１４０、質問文受付モジュール２６０、トピック推定モジュール２７０、回答モジュール２８０、不自然文除外モジュール１３３５、質問トレーニングデータ数調整モジュール１５３５等のプログラムを実行するＣＰＵ１６０１と、そのプログラムやデータを記憶するＲＡＭ１６０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ１６０３と、質問トレーニングデータ記憶モジュール１１０、回答記憶モジュール１２０、学習モデル記憶モジュール１５０の機能を有している補助記憶装置（フラッシュメモリ等であってもよい）であるＨＤ１６０４と、キーボード、マウス、タッチパネル、マイク等に対する利用者の操作に基づいてデータを受け付ける受付装置１６０６と、ＣＲＴ、液晶ディスプレイ、スピーカー等の出力装置１６０５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース１６０７、そして、それらをつないでデータのやりとりをするためのバス１６０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００５０】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図１６に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１６に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１６に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００５１】
なお、前述の各種の実施の形態を組み合わせてもよく（例えば、ある実施の形態内のモジュールを他の実施の形態内に追加する、入れ替えをする等も含む）、また、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。
【００５２】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００５３】
１００…情報処理装置
１１０…質問トレーニングデータ記憶モジュール
１２０…回答記憶モジュール
１３０…質問トレーニングデータ拡張モジュール
１４０…機械学習トレーニングモジュール
１５０…学習モデル記憶モジュール
２００…情報処理装置
２６０…質問文受付モジュール
２７０…トピック推定モジュール
２８０…回答モジュール
３００…情報処理装置
４１０…ユーザー端末
４２０…回答文書記憶装置
４９０…通信回線
１３００…情報処理装置
１３３５…不自然文除外モジュール
１５００…情報処理装置
１５３５…質問トレーニングデータ数調整モジュール
【図１】
0006544131.tif 000002
【図２】
0006544131.tif 000003
【図３】
0006544131.tif 000004
【図４】
0006544131.tif 000005
【図５】
0006544131.tif 000006
【図６】
0006544131.tif 000007
【図７】
0006544131.tif 000008
【図８】
0006544131.tif 000009
【図９】
0006544131.tif 000010
【図１０】
0006544131.tif 000011
【図１１】
0006544131.tif 000012
【図１２】
0006544131.tif 000013
【図１３】
0006544131.tif 000014
【図１４】
0006544131.tif 000015
【図１５】
0006544131.tif 000016
【図１６】
0006544131.tif 000017
【図１７】
0006544131.tif 000018