(57)【特許請求の範囲】
【請求項１】
自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための情報処理装置であって、
自然言語の質問と、該質問に対する適切な出力である正答との組の入力を受け付ける入力受付手段と、
前記正答を検索用データベースから検索する際に入力される前記形式言語が満たすべき少なくとも１つの条件を、前記検索用データベースが格納する前記形式言語に関連したデータに基づいて生成する正例条件生成手段と、
前記条件のいずれかを満たすように、前記変換器のパラメータを用いて前記質問に対応する前記形式言語のクエリ式を生成するクエリ式生成手段と、
前記生成されたクエリ式を用いた前記検索用データベースの検索に基づき、前記質問に対する回答を取得する回答取得手段と、
前記回答と前記正答とが一致する場合に、前記質問から前記生成されたクエリ式に優先して変換されるように前記変換器のパラメータを更新するパラメータ更新手段と、
を備える情報処理装置。
【請求項２】
前記クエリ式生成手段は、前記質問を少なくとも２つの単語系列に分割して、各単語系列に対して、前記条件のいずれかを満たすように、前記変換器のパラメータを用いて前記形式言語を割り当てることにより、前記形式言語のクエリ式を生成する請求項１に記載の情報処理装置。
【請求項３】
前記クエリ式生成手段は、前記条件について前記正答を出力するための重要度を評価し、前記重要度が高い条件に含まれる前記形式言語を、前記重要度が低い条件に含まれる前記形式言語よりも優先することで、複数の前記形式言語のクエリ式を生成し、
前記回答取得手段は、前記複数の前記形式言語のクエリ式を用いて前記質問に対する複数の回答を取得する請求項１または２に記載の情報処理装置。
【請求項４】
前記正例条件生成手段は、前記正答を検索するために必要な第１形式言語を前記検索用データベースから取得し、さらに、該第１形式言語を検索するために必要な第２形式言語を前記検索用データベースから取得し、前記条件は前記第１形式言語および前記第２形式言語の少なくとも１つを含む請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記パラメータ更新手段は、前記回答と前記正答との誤差を計算し、前記誤差が第１閾値よりも小さい場合に前記回答と前記正答とが一致していると判定する請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記回答と前記正答とが一致する確率が第２閾値を超えるまで、または、前記パラメータ更新手段によるパラメータの更新回数が第３閾値となるまで、前記入力受付手段と、前記正例条件生成手段と、前記クエリ式生成手段と、前記回答取得手段と、前記パラメータ更新手段との処理を繰り返す繰り返し手段を、さらに備える請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための情報処理装置における情報処理方法であって、
入力受付手段が、自然言語の質問と、該質問に対する適切な出力である正答との組の入力を受け付ける入力受付ステップと、
正例条件生成手段が、前記正答を検索用データベースから検索する際に入力される前記形式言語が満たすべき少なくとも１つの条件を、前記検索用データベースが格納する前記形式言語に関連したデータに基づいて生成する正例条件生成ステップと、
クエリ式生成手段が、前記条件のいずれかを満たすように、前記変換器のパラメータを用いて前記質問に対応する前記形式言語のクエリ式を生成するクエリ式生成ステップと、
回答取得手段が、前記生成されたクエリ式を用いた前記検索用データベースの検索に基づき、前記質問に対する回答を取得する回答取得ステップと、
パラメータ更新手段が、前記回答と前記正答とが一致する場合に、前記質問から前記生成されたクエリ式に優先して変換されるように前記変換器のパラメータを更新するパラメータ更新ステップと、
を含む情報処理方法。
【請求項８】
自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための情報処理プログラムであって、
自然言語の質問と、該質問に対する適切な出力である正答との組の入力を受け付ける入力受付ステップと、
前記正答を検索用データベースから検索する際に入力される前記形式言語が満たすべき少なくとも１つの条件を、前記検索用データベースが格納する前記形式言語に関連したデータに基づいて生成する正例条件生成ステップと、
前記条件のいずれかを満たすように、前記変換器のパラメータを用いて前記質問に対応する前記形式言語のクエリ式を生成するクエリ式生成ステップと、
前記生成されたクエリ式を用いた前記検索用データベースの検索に基づき、前記質問に対する回答を取得する回答取得ステップと、
前記回答と前記正答とが一致する場合に、前記質問から前記生成されたクエリ式に優先して変換されるように前記変換器のパラメータを更新するパラメータ更新ステップと、
をコンピュータに実行させる情報処理プログラム。
【請求項９】
自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための情報処理システムであって、
前記形式言語のクエリ式を用いて、検索用データベースから回答を検索して出力する検索装置と、
前記変換器のパラメータを学習するための情報処理装置と、
前記変換器のパラメータを記憶するパラメータ記憶部と、
を備え、
前記情報処理装置は、
自然言語の質問と、該質問に対する適切な出力である正答との組の入力を受け付ける入力受付手段と、
前記正答を前記検索用データベースから検索する際に入力される前記形式言語が満たすべき少なくとも１つの条件を、前記検索用データベースが格納する前記形式言語に関連したデータに基づいて生成する正例条件生成手段と、
前記条件のいずれかを満たすように、前記パラメータ記憶部からの前記変換器のパラメータを用いて前記質問に対応する前記形式言語のクエリ式を生成するクエリ式生成手段と、
前記生成されたクエリ式を用いて前記検索用データベースを検索した前記検索装置から、前記質問に対する回答を取得する回答取得手段と、
前記回答と前記正答とが一致する場合に、前記質問から前記生成されたクエリ式に優先して変換されるように、前記パラメータ記憶部に記憶された前記変換器のパラメータを更新するパラメータ更新手段と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
近年、インターネットを通じて大規模な知識ベースが取得できるようになり、知識ベースを用いて質問応答を行うシステムの研究が進められている。このようなシステムにおいて用いられる知識ベースは、一般に、形式言語で記述されたクエリに対応する知識を抽出できるように構造化されている。形式言語としては、例えば、ＰｒｏｌｏｇおよびＲＤＦ（Ｒｅｓｏｕｒｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ）等が用いられる。【０００３】
上記のような形式言語で問い合わせ可能な知識ベースを用いた質問応答システムを利用する場合でも、ユーザの質問は、一般に自然言語で表現される。このため、ユーザの質問に対応する知識を知識ベースから抽出するためには、自然言語で表現されたユーザの質問を形式言語の式に変換する必要がある。【０００４】
そこで、従来、自然言語を形式言語に変換するために、セマンティック・パーサ（ｓｅｍａｎｔｉｃ  ｐａｒｓｅｒ）と呼ばれる変換器が用いられている。一般に、知識ベースを用いた質問応答システムは、自然言語で表現されたユーザの質問を、変換器を用いて形式言語の式に変換し、変換された式に対応する回答を知識ベースから抽出してユーザに提示する。【０００５】
上記技術分野において、非特許文献１には、形式言語の語彙が膨大だと、出力となりうる形式言語の式の数が多すぎて、全ての式を計算することができない場合に、枝刈りを行って探索範囲を狭める技術が開示されている。一方、非特許文献２では、非特許文献１のように枝刈りをして探索範囲を狭める代わりに、動的計画法を用いて、出力しうる形式言語の式を全列挙する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Percy Liang, Michael Jordan, and Dan Klein. 2011. Learning dependency-based compositional semantics. In Proceedings of the Human Language Technology Conference of the Association for Computational Linguistics, pages 590-599, Portland, Oregon.
【非特許文献２】Panupong Pasupat, Percy Liang. Inferring logical forms from denotations. Association for Computational Linguistics (ACL), 2016
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記非特許文献１に記載の技術では、正例が枝刈りされてしまい、パラメータを適切に更新できず正常に学習できない場合がある。また、非特許文献２に記載の技術では、少数の正例を見つけるために大量の負例を計算する必要があり、機械学習を効率的に進めることができない。【０００８】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明に係る情報処理装置は、
自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための情報処理装置であって、
自然言語の質問と、該質問に対する適切な出力である正答との組の入力を受け付ける入力受付手段と、
前記正答を検索用データベースから検索する際に入力される前記形式言語が満たすべき少なくとも１つの条件を、前記検索用データベースが格納する前記形式言語に関連したデータに基づいて生成する正例条件生成手段と、
前記条件のいずれかを満たすように、前記変換器のパラメータを用いて前記質問に対応する前記形式言語のクエリ式を生成するクエリ式生成手段と、
前記生成されたクエリ式を用いた前記検索用データベースの検索に基づき、前記質問に対する回答を取得する回答取得手段と、
前記回答と前記正答とが一致する場合に、前記質問から前記生成されたクエリ式に優先して変換されるように前記変換器のパラメータを更新するパラメータ更新手段と、
を備える。【００１０】
上記目的を達成するため、本発明に係る情報処理方法は、
自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための情報処理装置における情報処理方法であって、
入力受付手段が、自然言語の質問と、該質問に対する適切な出力である正答との組の入力を受け付ける入力受付ステップと、
正例条件生成手段が、前記正答を検索用データベースから検索する際に入力される前記形式言語が満たすべき少なくとも１つの条件を、前記検索用データベースが格納する前記形式言語に関連したデータに基づいて生成する正例条件生成ステップと、
クエリ式生成手段が、前記条件のいずれかを満たすように、前記変換器のパラメータを用いて前記質問に対応する前記形式言語のクエリ式を生成するクエリ式生成ステップと、
回答取得手段が、前記生成されたクエリ式を用いた前記検索用データベースの検索に基づき、前記質問に対する回答を取得する回答取得ステップと、
パラメータ更新手段が、前記回答と前記正答とが一致する場合に、前記質問から前記生成されたクエリ式に優先して変換されるように前記変換器のパラメータを更新するパラメータ更新ステップと、
を含む。
【００１１】
上記目的を達成するため、本発明に係る情報処理プログラムは、
自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための情報処理プログラムであって、
自然言語の質問と、該質問に対する適切な出力である正答との組の入力を受け付ける入力受付ステップと、
前記正答を検索用データベースから検索する際に入力される前記形式言語が満たすべき少なくとも１つの条件を、前記検索用データベースが格納する前記形式言語に関連したデータに基づいて生成する正例条件生成ステップと、
前記条件のいずれかを満たすように、前記変換器のパラメータを用いて前記質問に対応する前記形式言語のクエリ式を生成するクエリ式生成ステップと、
前記生成されたクエリ式を用いた前記検索用データベースの検索に基づき、前記質問に対する回答を取得する回答取得ステップと、
前記回答と前記正答とが一致する場合に、前記質問から前記生成されたクエリ式に優先して変換されるように前記変換器のパラメータを更新するパラメータ更新ステップと、
をコンピュータに実行させる情報処理プログラム。【００１２】
上記目的を達成するため、本発明に係る情報処理システムは、
自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための情報処理システムであって、
前記形式言語のクエリ式を用いて、検索用データベースから回答を検索して出力する検索装置と、
前記変換器のパラメータを学習するための情報処理装置と、
前記変換器のパラメータを記憶するパラメータ記憶部と、
を備え、
前記情報処理装置は、
自然言語の質問と、該質問に対する適切な出力である正答との組の入力を受け付ける入力受付手段と、
前記正答を前記検索用データベースから検索する際に入力される前記形式言語が満たすべき少なくとも１つの条件を、前記検索用データベースが格納する前記形式言語に関連したデータに基づいて生成する正例条件生成手段と、
前記条件のいずれかを満たすように、前記パラメータ記憶部からの前記変換器のパラメータを用いて前記質問に対応する前記形式言語のクエリ式を生成するクエリ式生成手段と、
前記生成されたクエリ式を用いて前記検索用データベースを検索した前記検索装置から、前記質問に対する回答を取得する回答取得手段と、
前記回答と前記正答とが一致する場合に、前記質問から前記生成されたクエリ式に優先して変換されるように、前記パラメータ記憶部に記憶された前記変換器のパラメータを更新するパラメータ更新手段と、
を有する。
【発明の効果】
【００１３】
本発明によれば、出力しうる形式言語の式の数が多い場合にも、自然言語を形式言語に変換する変換器を効率的に機械学習することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図２】本発明の第２実施形態に係る情報処理装置を含む情報処理システムの構成を示すブロック図である。
【図３】本発明の第２実施形態に係る検索用データベースの構成を示す図である。
【図４】本発明の第２実施形態に係る検索システムに対する質問クエリ式入力および回答出力の例を示す図である。
【図５】本発明の第２実施形態に係るパラメータ記憶部のパラメータの例を示す図である。
【図６】本発明の第２実施形態に係る情報処理装置の機能構成部による処理手順を示すフローチャートである。
【図７】本発明の第２実施形態に係る入力受付部の入力の例を示す図である。
【図８】本発明の第２実施形態に係る正例条件生成部が生成する条件の例を示す図である。
【図９】本発明の第２実施形態に係るクエリ式生成部の処理手順を示すフローチャートである。
【図１０】本発明の第２実施形態に係るクエリ式生成部におけるフレーズ分割処理の例を示す図である。
【図１１】本発明の第２実施形態に係るクエリ式生成部におけるパラメータテーブルの例を示す図である。
【図１２】本発明の第２実施形態に係るクエリ式生成部における形式言語割当ての例を示す図である。
【図１３】本発明の第２実施形態に係るクエリ式生成部における生成クエリ式の例を示す図である。
【図１４】本発明の第２実施形態に係るパラメータ記憶部のパラメータの更新例を示す図である。
【図１５】本発明の第２実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図１６】本発明の第２実施形態に係る情報処理装置の処理手順を示すフローチャートである。
【図１７】本発明の第２実施形態に係るクエリ生成処理の手順を示すフローチャートである。
【図１８】本発明の第３実施形態に係る情報処理装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
［第１実施形態］
本発明の第１実施形態としての情報処理装置１００について、図１を用いて説明する。情報処理装置１００は、自然言語の質問を形式言語のクエリ式へ変換する変換器のパラメータを学習するための装置である。
【００１６】
図１に示すように、情報処理装置１００は、入力受付部１０１と、正例条件生成部１０２と、クエリ式生成部１０３と、回答取得部１０４と、パラメータ更新部１０５と、を含む。入力受付部１０１は、自然言語の質問と、質問に対する適切な出力である正答との組の入力を受け付ける。正例条件生成部１０２は、正答を検索用データベース１１０から検索する際に入力される形式言語が満たすべき少なくとも１つの条件を、検索用データベース１１０が格納する形式言語に関連したデータに基づいて生成する。クエリ式生成部１０３は、条件のいずれかを満たすように、変換器のパラメータ１２０を用いて質問に対応する形式言語のクエリ式を生成する。回答取得部１０４は、生成されたクエリ式を用いた検索用データベース１１０の検索に基づき、質問に対する回答を取得する。パラメータ更新部１０５は、回答と正答とが一致する場合に、質問から生成されたクエリ式に優先して変換されるように変換器のパラメータ１２０を更新する。
【００１７】
本実施形態によれば、正答が得られるために形式言語が満たすべき条件を検索用データベースが格納する形式言語に関連したデータに基づいて生成し、この条件のいずれかを満たすようにクエリ式を生成して、変換器のパラメータを更新する。これによれば、出力しうる形式言語の式の数が多い場合にも変換器を効率的に機械学習することができる。
【００１８】
［第２実施形態］
次に、本発明の第２実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、検索用データベースから質問の回答を検索する検索システムと、変換器のパラメータを記憶するパラメータ記憶部とを用いて、変換器の効率的な機械学習を実現する。
【００１９】
《前提技術の説明》
まず、本実施形態の情報処理装置による変換器の効率的な機械学習を明瞭にするために、本技術分野の前提技術を説明する。
【００２０】
近年、インターネットを通じて大規模な知識ベースが取得できるようになり、知識ベースを用いて質問応答を行うシステムの研究が進められている。このようなシステムにおいて用いられる知識ベースは、一般に、形式言語で記述されたクエリに対応する知識を抽出できるように構造化されている。形式言語としては、例えば、ＰｒｏｌｏｇおよびＲＤＦ等が用いられる。
【００２１】
上記のような形式言語で問い合わせ可能な知識ベースを用いた質問応答システムを利用する場合でも、ユーザの質問は、一般に自然言語で表現される。このため、ユーザの質問に対応する知識を知識ベースから抽出するためには、自然言語で表現されたユーザの質問を形式言語の式に変換する必要がある。
【００２２】
そこで、従来、自然言語を形式言語に変換するために、セマンティック・パーサと呼ばれる変換器が用いられている。一般に、知識ベースを用いた質問応答システムは、自然言語で表現されたユーザの質問を、変換器を用いて形式言語の式に変換し、変換された式に対応する回答を知識ベースから抽出してユーザに提示する。
【００２３】
例えば、Ｐｒｏｌｏｇによって問い合わせ可能な知識ベースを利用した質問応答システムに、ユーザが「Ｗｈｏ  ｉｓ  Ａｌｉｃｅ‘ｓ  ｆａｔｈｅｒ？」という自然言語の質問を入力したとする。この場合、質問応答システムは、まず、上記の自然言語の質問を、変換器によって「ｆａｔｈｅｒ（Ｘ，ａｌｉｃｅ）」というＰｒｏｌｏｇのクエリ式に変換する。その後、質問応答システムは、上記のクエリ式に対応する知識を知識ベースから抽出し、質問への回答としてユーザに提示する。
【００２４】
ところで、ユーザの質問に対して適切な回答を知識ベースから抽出するためには、ユーザの質問の意味構造を適切に把握して、自然言語の質問を知識ベースに適した形式言語の式に変換する必要がある。しかし、自然言語の表現は多様であるため、ユーザの自然言語の質問を形式言語の式に適切に変換するためのルールを人手で構築することは困難である。
【００２５】
そこで、任意の知識ベースに適した変換器を、機械学習を用いて自動構築する技術が提案されている（例えば、非特許文献１参照）。
【００２６】
非特許文献１に記載された技術では、自然言語の質問およびその質問に対する正しい回答があらかじめ用意され、用意された自然言語の質問が変換器によって複数の形式言語の式に変換される。具体的には、変換器は、あらかじめ設定されたパラメータに基づいて、自然言語から形式言語への変換を行なう。また、非特許文献１に記載された技術では、変換器によって生成された複数の形式言語の式それぞれに対応する回答が知識ベースから抽出され、抽出された複数の回答と、あらかじめ用意された上記の正しい回答とが比較される。そして、抽出された複数の回答とあらかじめ用意された正しい回答との比較結果に基づいて、ユーザの質問に対して正しい回答が得られるように、上述のパラメータが更新される。
【００２７】
このように、非特許文献１に記載された技術では、正例と負例を用いた機械学習を用いてパラメータを更新する。この場合、正例とは、正しい回答が得られる式のことであり、負例とは、正しい回答が得られない式のことである。負例のスコアよりも正例のスコアが高くなるようにパラメータを更新することで、変換器は、正しい回答が得られる式を出力しやすくなるように改良される。
【００２８】
しかし、形式言語の語彙が膨大だと、出力となりうる形式言語の式の数が多すぎて、全ての式を計算することができない場合がある。形式言語が大量の述語や大量の定数を含む場合、候補となる形式言語の式は、それらの述語や定数の組み合わせであるため、組合せ爆発を起こし、膨大な数となる。しかも、これらの形式言語のうち、正例となる式はごく少数であり、残りの式は全て負例である。これらの式を全て計算して正例を発見するのは、計算時間の面で困難である。しかし、機械学習では、正例と負例を比較して学習するため、十分な数の正例が見つかるまで正しく学習することができない。
【００２９】
この問題に対し、非特許文献１に記載された技術では、出力となりうる形式言語の式の数が多い場合には、枝刈りを行って探索範囲を狭める。具体的には、探索アルゴリズムの途中段階で大量の形式言語の式が得られた場合、それぞれの式について尤度を表すスコアを計算し、スコアが上位になる式だけを残して、次の段階に進む。これにより、出力となる式を全て計算せずに、機械学習を進めることができる。
【００３０】
一方、非特許文献２に記載された技術では、枝刈りをして探索範囲を狭める代わりに、動的計画法を用いて、出力しうる形式言語の式を全列挙する。
【００３１】
（前提技術の課題）
しかしながら、非特許文献１の技術では、候補となる形式言語の式の数が非常に多い場合、正例が枝刈りされてしまい、パラメータを適切に更新できない場合がある。特に、学習の初期段階においては、パラメータの学習が進んでおらず、正例に高いスコアを割り当てることができない。そのため、僅かに存在する正例が全て枝刈りで除去されてしまい、大量の負例だけが候補に残ってしまう。正例がないとパラメータを更新できないため、この場合は正常に学習することができない。
【００３２】
一方、非特許文献２の技術では、枝刈りをする代わりに、動的計画法を用いて出力しうる形式言語の式を全列挙する。この技術を用いれば、正例を必ず見つけることができるものの、少数の正例を見つけるために、大量の負例を計算する必要がある。これにより、機械学習を効率的に進めることができない。
【００３３】
《本実施形態の説明》
本実施形態においては、正答が得られるために形式言語が満たすべき少なくとも１つの条件を検索用データベースが格納する形式言語に関連したデータに基づいて生成し、この条件のいずれかを満たすようにクエリ式を生成する。これにより、変換器を出力しうる形式言語の式の数が多い場合にも効率的に機械学習することができる。
【００３４】
本実施形態の条件の生成においては、正答を検索するために必要な形式言語を検索用データベースから取得し、さらに、取得した形式言語を検索するために必要な下層の形式言語を検索用データベースから取得して、条件とする。
【００３５】
また、本実施形態のクエリ式の生成においては、質問を少なくとも２つの単語系列に分割して、各単語系列に対して、条件のいずれかを満たすように、変換器のパラメータを用いて形式言語を割り当てることにより、形式言語のクエリ式を生成する。例えば、条件について正答を出力するための重要度を評価し、重要度が高い条件に含まれる形式言語を、重要度が低い条件に含まれる前記形式言語よりも優先することで、複数の形式言語のクエリ式を生成することで、複数の形式言語のクエリ式を用いて質問に対する複数の回答を取得する。
【００３６】
また、本実施形態のパラメータの更新においては、回答と正答との誤差を計算し、誤差が閾値よりも小さい場合に回答と正答とが一致していると判定して、パラメータを更新する。
【００３７】
そして、本実施形態のパラメータの機械学習では、回答と正答とが一致する確率が閾値を超えるまで、または、回答と正答とが不一致になる確率が閾値を下回るまで、または、更新回数が閾値となるまで、繰り返される。
【００３８】
《情報処理装置を含む情報処理システム》
図２は、本実施形態に係る情報処理装置２１０を含む情報処理システム２００の構成を示すブロック図である。
【００３９】
図２に示す本実施形態における情報処理装置２１０は、検索用データベース２３０、検索システム２２０およびパラメータ記憶部２４０を処理対象として、パラメータ記憶部２４０に記憶されたパラメータ２５０を更新して機械学習するための装置である。
【００４０】
情報処理装置２１０の構成について説明する前に、情報処理装置２１０の処理対象である、検索用データベース２３０、検索システム２２０およびパラメータ記憶部２４０について詳しく説明する。
【００４１】
（検索システム）
検索システム２２０は、形式言語の式であるクエリを入力として受け付け、検索用データベース２３０に含まれるデータを用いて回答を計算し、得た回答を出力する。検索システム２２０は、例えば、データベース問い合わせ用の言語であるＳＱＬ(Structured Query Language)で記述されたクエリを入力として受け付ける、データベース管理システムでもよい。また、検索システム２２０は、論理プログラミング言語であるＰｒｏｌｏｇで記述されたクエリを入力として受け付ける、Ｐｒｏｌｏｇエンジンでもよい。
【００４２】
以下では、検索システム２２０は、定数と関数とを組み合わせた式を入力として、式の計算結果を返すシステムであるとし、検索用データベース２３０には各関数の引数と戻り値とが表形式で格納されているとする。また、ここでは、全ての関数について引数の数はひとつであるとするが、限定されるものではない。
【００４３】
（検索用データベース）
図３は、本実施形態に係る検索用データベース２３０の構成を示す図である。
【００４４】
検索用データベース２３０に格納された各テーブル２３１は、同名の形式言語の関数と、その関数における引数と戻り値とを格納している。
【００４５】
例えば、本実施形態の具体例２３２としては、形式言語の関数highest_mountain()やelevation()などと、その引数と戻り値とが格納されている。
【００４６】
（質問クエリ式および回答）
図４は、本実施形態に係る検索システム２２０に対する質問クエリ式入力および回答出力の例４００を示す図である。
【００４７】
入力は、形式言語で記述された質問クエリ式であり、定数と関数とを組み合わせた式である。図４に示すように、質問クエリ式は、定数を引数とする関数の戻り値はさらに上位関数の引数となる場合もある。そして、出力は、質問クエリ式に対する検索システム２２０からの質問の回答である。
【００４８】
例えば、本実施形態の具体例４０１においては、‘ＵＳＡ’が定数であり、ｅｌｅｖａｔｉｏｎとｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎが関数である。この式は、アメリカ合衆国で一番高い山を求め、さらにその山の標高を求め、結果を回答として出力することを意味している。そして、出力である６，１９０は、検索システム２２０が求めた標高である。
【００４９】
検索システム２２０からの出力は、検索システム２２０が、検索用データベース２３０に格納されたデータを参照することで得られる。図３の例では、‘ＵＳＡ’を引数として関数ｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎのテーブルを参照し、戻り値である‘Ｄｅｎａｌｉ’を得て、次に、この戻り値‘Ｄｅｎａｌｉ’を引数として関数ｅｌｅｖａｔｉｏｎのテーブルを参照し、戻り値である６，１９０を得ることによって、回答の６，１９０が出力される。
【００５０】
（パラメータ記憶部）
パラメータ記憶部２４０は、検索システム２２０に入力される形式言語の式の評価に用いるモデルのパラメータ２５０を記憶している。本実施形態においては、このパラメータ２５０を用いてスコアを計算し、スコアが高くなる式を出力する変換器が機械学習される。なお、パラメータ記憶部２４０がパラメータ２５０を記憶するモデルは、入力された自然言語のテキストと、生成されたクエリ式との適合度を評価できるモデルであれば何でもよい。
【００５１】
（パラメータ）
図５は、本実施形態に係るパラメータ記憶部２４０のパラメータ２５０の例を示す図である。
【００５２】
本実施の形態では、パラメータ記憶部２４０がパラメータ２５０を記憶するモデル５５１として、自然言語のフレーズと形式言語の語とのペアについて重みを与えるモデルを用いる。その自然言語のフレーズと形式言語の語とのペアが、正しい変換において自然言語の質問とクエリ式とのペアに出現しやすいなら正の重みを、正しい変換において自然言語の質問とクエリ式とのペアに出現しにくいなら負の重みを持つ。この場合、各ペアに与えられた重みが、パラメータである。
【００５３】
このようなモデル５５１があれば、自然言語の質問について、生成されたクエリ式の適合度を評価することができる。すなわち、自然言語の質問に登場するフレーズと、そのフレーズに対応するクエリ式の語とのペアについて、その重みを計算する。その重みを合計した値をスコアとすることによって、そのスコアが正であれば、正しいクエリ式であり、そのスコアが負であれば、正しくないクエリ式であると評価することができる。
【００５４】
本実施形態の具体例５５２では、質問から分割された３つの自然言語のフレーズについて、それぞれ、形式言語の語とペアにしたときの重みが記載されている。この例では、初期状態として全ての重みは０．０（ゼロ）に設定されている。これは、どのペアについても、まだ情報が得られていない未学習の状態を表す。
【００５５】
なお、図５では、３つのフレーズの例だけを載せているが、パラメータ記憶部２４０は、これら以外にも、自然言語の質問に出現しうる様々なフレーズを記憶していてよい。
【００５６】
《情報処理装置の機能構成》
本実施形態の情報処理装置２１０は、以上に述べた検索用データベース２３０、検索システム２２０およびパラメータ記憶部２４０を処理対象として、動作する。
【００５７】
より具体的には、情報処理装置２１０は、質問と正答のペアを入力として、質問をクエリ式に変換する。変換する際に、検索用データベース２３０を参照することで、正例となるクエリ式が満たすべき条件を取得し、この条件を満たすクエリ式が優先されるように変換する。情報処理装置２１０は、変換で得られたクエリ式を検索システム２２０に入力し、検索システム２２０から出力として回答を得る。検索システム２２０が返す回答が正答と一致する場合に、この回答に高い評価が与えられるように、パラメータ記憶部２４０が記憶するパラメータ２５０を更新する。
【００５８】
図２に示すように、情報処理装置２１０は、入力受付部２１１と、正例条件生成部２１２と、クエリ式生成部２１３と、回答取得部２１４と、パラメータ更新部２１５を備える。
【００５９】
入力受付部２１１は、質問と正答とのペアを外部から入力として受け付け、受け付けた内容を正例条件生成部２１２に出力する。
【００６０】
正例条件生成部２１２は、質問および正答を入力として受け取り、検索用データベース２３０を参照することで、正例となるクエリ式が満たすべき条件を正例条件として取得し、質問、正答および正答条件を、クエリ式生成部２１３に出力する。正例となるクエリ式とは、検索システム２２０に入力した場合に、検索システム２２０が出力する回答が正答と一致するクエリ式のことである。
【００６１】
クエリ式生成部２１３は、質問および正答および正答条件を入力として受け取る。クエリ式生成部２１３は、正例条件生成部２１２が生成した条件を満たすクエリが優先されるように、質問に対応するクエリ式を生成する。具体的には、パラメータ記憶部２４０に問い合わせることで、パラメータ記憶部２４０に記憶されているモデルのパラメータ２５０を取得する。そして、自然言語の質問文に対応する形式言語のクエリ式として考えられるクエリ式の中から、正例条件を満たし、そのパラメータ２５０で決まるモデルで高いスコアを持つクエリ式を生成する。クエリ式生成部２１３は、質問、クエリ式および正答を回答取得部２１４に出力する。
【００６２】
回答取得部２１４は、クエリ式生成部２１３から質問、クエリ式および正答を受け取り、受け取ったクエリ式を使って検索システム２２０に問い合わせ、クエリ式に対する回答を得る。回答取得部２１４は、質問、クエリ式、正答および回答をパラメータ更新部２１５に出力する。
【００６３】
パラメータ更新部２１５は、回答取得部２１４から、質問、クエリ式、正答および回答を受け付ける。検索システム２２０による回答が正答と一致する場合に、クエリ式生成部２１３が生成したクエリ式を正例と見なし、クエリ式が質問から変換された結果として高く評価されるように、パラメータ記憶部２４０に記憶されたパラメータ２５０を更新する。
【００６４】
これらの動作について、情報処理装置２１０の各機能構成部の処理と共に、以下に詳しく説明する。
【００６５】
《情報処理装置の機能構成部による処理手順》
図６は、本実施形態に係る情報処理装置２１０の機能構成部による処理手順を示すフローチャートである。以下の説明においては、適宜、図２〜図５を参酌する。また、本実施形態では、情報処理装置２１０を動作させることによって、本実施形態における情報処理方法が実施される。よって、本実施形態における情報処理方法の説明は、以下の情報処理装置２１０の動作説明に代える。
【００６６】
（入力受付部の処理：Ｓ６０１）
図６に示すように、入力受付部２１１は、質問と正答とのペアを入力として受付け、受け付けた内容を正例条件生成部２１２に出力する。
【００６７】
図７は、本実施形態に係る入力受付部２１１の入力の例７００を示す図である。
【００６８】
図７には、本実施形態で説明する具体例が図示されている。質問７０１は自然言語で記述されている。一方、正答７０２は、検索システム２２０の出力と比較可能なものであれば、自然言語で記述されていても、形式言語で記述されていてもよい。
【００６９】
（正例条件生成部の処理：Ｓ６０３）
正例条件生成部２１２は、検索用データベース２３０を参照することで、正例となるクエリ式が満たすべき条件を取得する。正例となるクエリ式とは、検索システム２２０に入力した場合に、検索システム２２０が出力する回答が正答と一致するクエリ式のことである。
【００７０】
図８は、本実施形態に係る正例条件生成部２１２が生成する条件の例を示す図である。
【００７１】
正例条件生成部２１２が生成する条件Ｘ８１０は、検索システム２２０が、入力受付部２１１が受け付けた正答を回答するために使用されるクエリ式が含むであろう形式言語を、検索用データベース２３０における各テーブルの関連を考慮して論理演算子で結び付けた条件である。かかる条件は、定数、もしくは、正答を直接戻り値として出力する形式言語の関数からなる第１層の条件と、第１層の引数が形式言語の関数の戻り値となる場合の引数を含む第２層の条件と、さらに、その引数が形式言語の関数の戻り値となる場合の引数を含む第３層の条件というように、より厳密な条件を順に生成できる。
【００７２】
このように、正例条件生成部２１２が取得する条件は、単純には、検索用データベース２３０に格納されるデータを調べ、正答が出現するエントリを特定し、このエントリを返すために必要なクエリ式の条件を計算することによって、自動的に取得できる。さらに、こうして得られた条件は、その条件に出現する値を得る式の条件を調べることによって、さらに詳細化された条件を得ることができる。
【００７３】
本実施形態の具体例８２０において、条件に現れるｑはクエリを表す。“ｑ  ｉｎｃｌｕｄｅｓ  ｘ”は、クエリｑが、定数もしくは関数ｘを含むという条件を表す。
【００７４】
図８に示す具体例８２０の条件Ａ（第１層）は、以下のようにして得られる。正答が「６，１９０」である場合、図３に示す検索用データベース２３０のデータによれば、この正答は、引数‘Ｄｅｎａｌｉ’を関数ｅｌｅｖａｔｉｏｎに与えることによって戻り値として得られる。これにより、正例となるクエリ式は、関数ｅｌｅｖａｔｉｏｎを含むという条件を取得できる。これが第１層の条件Ａである。条件Ａを満たすクエリ式としては、例えば、ｅｌｅｖａｔｉｏｎ（‘Ｄｅｎａｌｉ’）などが考えられる。
【００７５】
また、図８に示す具体例８２０の条件Ｂ（第２層）は、条件Ａを拡張したものであり、条件Ａに出現する値を得る式の条件をさらに調べることで取得される。すなわち、「６，１９０」は、ｅｌｅｖａｔｉｏｎ（‘Ｄｅｎａｌｉ’）という式の戻り値として得られるが、もしクエリ式がｅｌｅｖａｔｉｏｎを含むが‘Ｄｅｎａｌｉ’を含まない場合、クエリ式は‘Ｄｅｎａｌｉ’を戻り値として持つ条件をさらに含む必要がある。
【００７６】
検索用データベース２３０によれば、‘Ｄｅｎａｌｉ’を戻り値として持つのは、ｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎ（‘ＵＳＡ’）である。よって、クエリ式がｅｌｅｖａｔｉｏｎを含むとき、クエリ式はさらに‘Ｄｅｎａｌｉ’を含むか、あるいは、関数ｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎを含むと考えられる。これを表しているのが第２階層の条件Ｂである。
【００７７】
さらに、図８に示す具体例８２０の条件Ｃ（第３層）は、条件Ｂをさらに拡張したものであり、条件Ｂに出現する値を得る式の条件をさらに調べることで取得される。すなわち、検索用データベース２３０によれば、関数ｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎの戻り値として‘Ｄｅｎａｌｉ’を得る場合には、‘ＵＳＡ’を引数としなければならない。よって、クエリ式がｅｌｅｖａｔｉｏｎを含むとき、クエリ式はさらに‘Ｄｅｎａｌｉ’を含むか、あるいは、関数ｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎおよびその引数‘ＵＳＡ’を含むと考えられる。これを表しているのが第３階層の条件Ｃである。
【００７８】
このような条件Ｂや条件Ｃは、「６，１９０」を出力するために必要となる値を検索用データベース２３０に問い合わせて‘Ｄｅｎａｌｉ’を得て、さらに‘Ｄｅｎａｌｉ’を出力するために必要となる値を検索用データベース２３０に問い合わせることで得ることができる。
【００７９】
以上のように、ある値を返すために必要な定数あるいは関数を取得することを繰り返すことで、正例となるクエリの条件を計算できる。この処理は検索用データベース２３０への問い合わせとして自動的に実行することができる。
【００８０】
本実施形態の具体例では、条件Ａおよび条件Ｂの第２層までをクエリ式生成部２１３での正例条件として使用する。ここで、条件Ａのみでは条件が曖昧となり、条件Ｃまでを使用すると条件が厳密となる。どの深さの条件までを使用するかにより、機械学習の精度や速度が変わってくる。
【００８１】
なお、正例条件生成部２０が生成する条件は、図８に示すような論理演算子を用いた形式で表されていなくてもよい。例えば、正例に含まれるべき語のリストのような単純な形式で表されていてもよい。
【００８２】
（クエリ式生成部の処理：Ｓ６０５）
クエリ式生成部２１３は、正例条件生成部２１２がクエリ式生成部２１３に出力した条件を満たすクエリが優先されるように、質問に対応するクエリを生成する。具体的には、パラメータ記憶部２４０に問い合わせることで、パラメータ記憶部２４０に記憶されているモデルのパラメータ２５０を取得する。そして、自然言語の質問文に対応する形式言語のクエリとして考えられるクエリの中から、正答条件を満たし、そのパラメータで決まるモデルで高く評価されるクエリ式を優先して生成する。
【００８３】
図９は、本実施形態に係るクエリ式生成部の処理手順を示すフローチャートである。
【００８４】
（フレーズ分割処理：Ｓ９０１）
クエリ式生成部２１３は、自然言語の質問を複数のフレーズに分割する。
【００８５】
図１０は、本実施形態に係るクエリ式生成部２１３におけるフレーズ分割の例１０００を示す図である。
【００８６】
図７の“Ｈｏｗ  ｈｉｇｈ  ｉｓ  ｔｈｅ  ｔａｌｌｅｓｔ  ｐｅａｋ  ｉｎ  ｔｈｅ  Ｕ．Ｓ．”という質問７０１は、既知の分割アルゴリズムに従って、種々の分割１００１〜１００３を行ない、分割されたフレーズごとに変換されるクエリのパラメータが機械学習される。この分割は例えば、自然言語の質問を、複数の語の列と見なし、これらの語のうち一つ以上を乱数で選択し、選ばれた語と次の語とのあいだを分割することで実現できる。また、機械学習を用いて構築された、分割の適切さを評価するモデルを用いて、適切な分割を選択してもよい。例えば、Ｃｏｎｄｉｔｉｏｎａｌ  ｒａｎｄｏｍ  ｆｉｅｌｄｓ（ＣＲＦ）に基づくチャンキングを用いて適切な分割を選択してもよい。
【００８７】
本実施形態の具体例では、図７の“Ｈｏｗ  ｈｉｇｈ  ｉｓ  ｔｈｅ  ｔａｌｌｅｓｔ  ｐｅａｋ  ｉｎ  ｔｈｅ  Ｕ．Ｓ．”という質問７０１が、分割１００１のように、３つのフレーズに分割される。
【００８８】
（パラメータ取得処理：Ｓ９０３）
クエリ式生成部２１３は、パラメータ記憶部２４０から、フレーズに対応するパラメータ２５０を読み込む。図１０の質問の分割例では、３つに分割されたフレーズのそれぞれについて、図５に示したパラメータの具体例５５２を取得する。
【００８９】
（優先度割当て処理：Ｓ９０５）
クエリ式生成部２１３は、正例条件生成部２１２から得た正例条件に含まれる語が優先されるよう、形式言語の語に優先度を割り当てる。
【００９０】
図１１は、本実施形態に係るクエリ式生成部２１３におけるパラメータテーブル１１００の例を示す図である。図１１は、クエリ式生成部２１３が割り当てる優先度および割り当てる確率の一例を示す図である。この例では、パラメータ記憶部２４０から読み出したパラメータに含まれる各語について、正例条件に含まれる語であれば高い優先度を加えている。図１１では、“Ｈｏｗ  ｈｉｇｈ  ｉｓ”という１つのフレーズについて詳細に記載しているが、その他のフレーズについても同様の処理を行う。
【００９１】
正例条件に含まれる語であっても、正例条件における寄与の大きさに応じて、優先度に差をつけてもよい。図８の条件Ｂにおいては、ｅｌｅｖａｔｉｏｎおよび‘Ｄｅｎａｌｉ’が含まれている場合か、あるいは、ｅｌｅｖａｔｉｏｎおよびｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎが含まれている場合に、真となる。この場合、ｅｌｅｖａｔｉｏｎは、両方の場合にも含まれているが、‘Ｄｅｎａｌｉ’およびｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎは片方の場合にしか含まれていない。このことから、ｅｌｅｖａｔｉｏｎのほうが、‘Ｄｅｎａｌｉ’およびｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎよりも、正例を構成する語としてより重要であり、寄与が大きいと言える。
【００９２】
図１１に示す例は、このような正例条件における寄与の大きさに応じて、優先度に差をつけている。ｅｌｅｖａｔｉｏｎの優先度は１．０であり、‘Ｄｅｎａｌｉ’およびｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎの優先度は０．５であり、寄与の大きさに応じて優先度を変更している。
【００９３】
（形式言語割当て：Ｓ９０７）
クエリ式生成部２１３は、優先度に基づき、ステップＳ９０１による質問の分割１００１の各フレーズに形式言語の語を割り当てる。本実施形態においては、各フレーズについて、重みと優先度に基づいて形式言語の各語が割り当てられる確率を計算し、その確率に基づいてランダムに選ぶ。
【００９４】
先の図１１には、クエリ式生成部２１３が計算する確率の一例が示されている。図１１では、特に、“Ｈｏｗ  ｈｉｇｈ  ｉｓ”というフレーズに関して、形式言語の各語が割り当てられる確率が示されている。確率は式１に基づいて計算される。
【数１】
0006733809.tif 000002
式１は、あるフレーズについて、各語ｆｉが割り当てられる確率を、重みｗｉと確率ｐｉを元に、ｅｘｐ（ｗｉ＋ｐｉ）を正規化した値で計算することを示す。すなわち、モデルにおける重みが大きいほど、また優先度が大きいほど、高い確率で割り当てられる。
【００９５】
例えば、図１１において、関数ｅｌｅｖａｔｉｏｎは、０．１８１という他よりも高い確率で割り当てられている。
【００９６】
以上のように、クエリ式生成部２１３は、各フレーズについて、形式言語の語を確率的に割り当てる。
【００９７】
図１２は、本実施形態に係るクエリ式生成部２１３における形式言語割当ての例を示す図である。図１２のように、各フレーズに対して確率的に割り当てられた形式言語の語により、複数の組合せが生成される。
【００９８】
（クエリ式生成処理：Ｓ９０９）
クエリ式生成部２１３は、各フレーズに割り当てられた形式言語の語を組み合わせることで、クエリ式を生成する。
【００９９】
図１３は、本実施形態に係るクエリ式生成部２１３における生成されたクエリ式の例１３００を示す図である。
【０１００】
図１２の例で各フレーズに確率的に割り当てられた形式言語の語を組み合わせて、クエリ式を生成する。例えば、ｅｌｅｖａｔｉｏｎと、ｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎと、‘ＵＳＡ’という順に３つの語が割り当てられた場合は、３つの語を組み合わせて、クエリ式１３０１が生成されている。
【０１０１】
以上のように、クエリ式生成部２１３は、ステップＳ６０５において、ステップＳ９０１からＳ９０９に示す動作手順によって、クエリ式を生成する。ステップＳ６０５では、優先度を元に計算された確率に基づいて形式言語の語を選択することにより、正例条件を満たす式が生成されやすくなっている。すなわち、ｅｌｅｖａｔｉｏｎ、‘Ｄｅｎａｌｉ’およびｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎという３つの語が、選ばれやすくなっていることにより、図８に示した正例条件を満たす式が生成されやすくなっている。
【０１０２】
（回答取得処理：Ｓ６０７）
回答取得部２１４が、検索システム２２０に問い合わせることで、クエリ式への回答を取得する。これは、クエリ式生成部２１３によりステップＳ６０５で生成されたクエリ式を入力として検索システム２２０に与え、検索システム２２０が出力する回答を受け取ることによって達成される。
【０１０３】
例えば、図１３に示すクエリ式ｅｌｅｖａｔｉｏｎ（ｅｌｅｖａｔｉｏｎ（ｅｌｅｖａｔｉｏｎ））や‘ＵＳＡ’（‘ＵＳＡ’（‘ＵＳＡ’））などへの回答は、回答なしとなったり、正答ではない回答が取得されたりする。一方、図１３のクエリ式１３０１により検索システム２２０に問い合わせると、正答である６，１９０が回答として取得される。
【０１０４】
（パラメータ更新処理：Ｓ６０９）
パラメータ更新部２１５が、クエリ式への回答と正答とが一致する場合に、クエリ式が優先して出力されるように、パラメータ記憶部２４０に記憶された変換器のパラメータ２５０を更新する。具体的には、ステップＳ６０５において、クエリ式を生成する際に用いられた自然言語のフレーズと形式言語とのペアへの重みを増加させる。
【０１０５】
例えば、図１３のクエリ式１３０１への回答は６，１９０であり、正答と一致する。これは、すなわち、図１３のクエリ式１３０１が正例であることを表す。このとき、ステップ６０５において、クエリ式を生成する際に用いられた自然言語のフレーズと形式言語とのペアへの重みに１．０を加える。
【０１０６】
図１４は、本実施形態に係るパラメータ記憶部２４０のパラメータ２５０の更新例１４００を示す図である。
【０１０７】
図５に比べ、（“Ｈｏｗ  ｈｉｇｈ  ｉｓ”，ｅｌｅｖａｔｉｏｎ）および（“ｔｈｅ  ｔａｌｌｅｓｔ  ｐｅａｋ  ｉｎ”，ｈｉｇｈｅｓｔ＿ｍｏｕｎｔａｉｎ）および（“ｔｈｅ  Ｕ．Ｓ．”，’ＵＳＡ’）という、クエリ式１３０１を生成する際に用いられた３つのペアの重みが増加している。
【０１０８】
このようにパラメータの更新を繰り返すことにより、正例を生成する際に用いられるペアの重みが増加し、より正例が得られやすくなる。
【０１０９】
クエリ式への回答と正答が一致する場合とは、必ずしも厳密一致でなくとも、曖昧一致であってもかまわない。例えば、数値の誤差が１％以内であれば一致していると見なしてもよい。また、回答と正答が文字列である場合、文字列同士の編集距離を計算し、編集距離が一定の閾値より低い場合に、一致していると見なしてもよい。
【０１１０】
以上で説明したのは、クエリ式への回答と正答が一致する場合、すなわち正例が得られた場合の動作である。一方、クエリ式への回答と正答が一致しない場合、すなわち負例が得られた場合には、重みを増加させるのではなく、重みを減少させる。
【０１１１】
以上のように、本実施形態における情報処理装置２１０は、質問と正答とのペアが与えられるたびに、正例条件とパラメータの重みとを考慮してクエリ式を生成し、検索システム２２０からの回答に基づき、パラメータ記憶部のパラメータ２５０を更新する。
【０１１２】
（パラメータ更新終了：Ｓ６１１）
情報処理装置２１０のパラメータ更新による変換器の機械学習は、更新回数が指定回数に達した場合に終了する。あるいは、質問に基づいて生成されたクエリ式による問い合わせの回答が正答と一致する確率（正解率）が閾値を超えた場合に終了してもよい。あるいは、質問に基づいて生成されたクエリ式による問い合わせの回答が正答と不一致となる確率（失敗率）が閾値を下回った場合に終了してもよい。
【０１１３】
《情報処理装置のハードウェア構成》
図１５は、本実施形態に係る情報処理装置２１０のハードウェア構成を示すブロック図である。
【０１１４】
図１５で、ＣＰＵ１５１０は演算制御用のプロセッサであり、プログラムを実行することで図３Ａの機能構成部を実現する。ＣＰＵ１５１０は複数のプロセッサを有し、異なるプログラムやモジュール、タスク、スレッドなどを並行して実行してもよい。ＲＯＭ１５２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。ネットワークインタフェース１５３０は、情報処理装置２１０が、ネットワークを介して、検索システム２２０や検索用データベース２３０などとの通信を制御する。
【０１１５】
ＲＡＭ１５４０は、ＣＰＵ１５１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ１５４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。質問（自然言語）と正答とのペア１５４１は、情報処理装置２１０が受け付けた入力データである。正答関連情報と正例条件１５４２は、検索用データベース２３０から正答に関連して取得した情報と、その取得情報に基づいて正例条件生成アルゴリズムに従って生成した正例条件とのデータである。質問の分割結果１５４３は、質問分割アルゴリズム１５５３に従って質問を複数のフレーズに分割した結果のデータである。分割フレーズのパラメータテーブル１５４４は、パラメータ記憶部２４０から分割フレーズに対応して取得した形式言語群のパラメータを処理するためのテーブルである。生成クエリ式１５４５は、分割フレーズのパラメータテーブル１５４４を参照して、クエリ式生成アルゴリズム１５５４に従って生成されたクエリ式のデータである。回答１５４６は、生成クエリ式１５４５による検索システム２２０への問い合わせに対する回答のデータである。回答と正答との比較結果（閾値）１５４７は、回答１５４６と、質問（自然言語）と正答とのペア１５４１の正答との比較結果であり、閾値は回答と正答とが一致すると判定する値である。パラメータ更新データ１５４８は、回答と正答との比較結果（閾値）１５４７が一致であることを示す場合に、パラメータ更新アルゴリズム１５５５に従ってパラメータ記憶部２４０のパラメータ２５０を更新するためのデータである。
【０１１６】
ストレージ１５５０は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。パラメータテーブル１１００は、図１１に示した、クエリ式を生成する場合に優先度や確率のために使用されるテーブルである。正例条件生成アルゴリズム１５５２は、入力された正答から正例条件を生成するためのアルゴリズムである。質問分割アルゴリズム１５５３は、質問を複数のフレーズに分割するためのアルゴリズムである。クエリ式生成アルゴリズム１５５４は、質問と正答と正例条件とパラメータとから優先度や確率を考慮して、正例を優先したクエリ式を生成するアルゴリズムである。パラメータ更新アルゴリズム１５５５は、生成されたクエリ式による検索システム２２０への問い合わせの回答と正答との比較結果により、パラメータ記憶部２４０のパラメータを更新するためのアルゴリズムである。
【０１１７】
ストレージ１５５０には、以下のプログラムが格納される。情報制御プログラム１５５６は、情報処理装置２１０の全体を制御するためのプログラムである。正例条件生成モジュール１５５７は、正例条件生成アルゴリズム１５５２に従って、正答から正例条件を生成するモジュールである。クエリ生成モジュール１５８８は、クエリ式生成アルゴリズム１５５４に従って、正例を優先したクエリ式を生成するモジュールである。パラメータ更新モジュール１５５９は、パラメータ更新アルゴリズム１５５５に従って、パラメータ記憶部２４０のパラメータを更新するためのアルゴリズムである。
【０１１８】
入出力インタフェース１５６０は、パラメータ記憶部２４０、表示部１５６１、操作部１５６２などが接続されて、そのインタフェースを行なう。
【０１１９】
なお、図１５のＲＡＭ１５４０やストレージ１５５０には、情報処理装置２１０が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【０１２０】
《情報処理装置の処理手順》
図１６は、本実施形態に係る情報処理装置２１０の処理手順を示すフローチャートである。このフローチャートは、図１５のＣＰＵ１５１０がＲＡＭ１５４０を使用して実行し、図２の機能構成部を実現する。
【０１２１】
情報処理装置２１０は、ステップＳ１６０１において、自然言語で記述された質問と正答とのペアを受け付ける。情報処理装置２１０は、ステップＳ１６０３において、正答に基づいて検索用データベース２３０を参照することで、正例となるクエリ式が満たすべき条件を生成する。情報処理装置２１０は、ステップＳ１６０５において、生成された条件を満たすクエリ式が優先されるように、質問に対応するクエリ式を生成するクエリ式生成処理を実行する。情報処理装置２１０は、ステップＳ１６０７において、生成されたクエリ式による、検索システム２２０による検索用データベース２３０の検索に基づき、クエリ式への回答を取得する。
【０１２２】
情報処理装置２１０は、ステップＳ１６０７において、検索システム２２０から取得した回答と正答とが一致するか否かを判定する。そして、回答と正答とが一致しない場合、情報処理装置２１０は、ステップＳ１６０５に戻って、生成された条件を満たす次のクエリ式を生成する。回答と正答とが一致する場合、情報処理装置２１０は、ステップＳ１６０９において、生成されたクエリ式が優先して出力されるよう、パラメータ記憶部２４０に記憶された変換器のパラメータ２５０を更新する。
【０１２３】
情報処理装置２１０は、ステップＳ１６１１において、パラメータの更新回数が指定回数に達したか、あるいは、回答と正答とが一致する正解率が閾値を超えたか、あるいは、回答と正答とが不一致となる失敗率が閾値を下回ったか、を判定する。そして、各分岐条件を満たさない場合、情報処理装置２１０は、ステップＳ１６０１に戻って、次の自然言語で記述された質問と正答とのペアを受け付ける。各分岐条件を満たした場合、情報処理装置２１０は、パラメータ記憶部２４０のパラメータ２５０が十分に正例となるクエリ式を生成できるとして、処理を終了する。
【０１２４】
（クエリ生成処理）
図１７は、本実施形態に係るクエリ生成処理（Ｓ１６０５）の手順を示すフローチャートである。
【０１２５】
情報処理装置２１０は、ステップＳ１７０１において、最初のクエリ式生成であるか否かを判定する。最初のクエリ式生成であれば、情報処理装置２１０は、ステップＳ１７０３において、質問分割アルゴリズム１５５３に従い質問を複数のフレーズに分割する。情報処理装置２１０は、ステップＳ１７０５において、パラメータ記憶部２４０から、分割された各フレーズに対応するパラメータを読み込む。情報処理装置２１０は、ステップＳ１７０７において、正例条件を満たす語が優先されるよう、形式言語の語に優先度を割り当てる。情報処理装置２１０は、ステップＳ１７０７において、優先度に基づき、各フレーズに形式言語の語を割り当てる。そして、情報処理装置２１０は、ステップＳ１７０９において、各フレーズに割り当てられた形式言語の語を組み合わせることで、クエリ式を生成する。
【０１２６】
一方、最初のクエリ式生成でなければ、情報処理装置２１０は、ステップＳ１７１３において、優先度に基づき、各フレーズに異なる形式言語の語を割り当てる。そして、情報処理装置２１０は、ステップＳ１７１１に進み、各フレーズに割り当てられた異なる形式言語の語を組み合わせることで、クエリ式を生成する。
【０１２７】
本実施形態によれば、正答が得られるために形式言語が満たすべき条件を検索用データベースが格納する形式言語に関連したデータに基づいて生成し、この条件のいずれかを満たすようにクエリ式を生成して、変換器のパラメータの更新を効率的に繰り返す。これにより、出力しうる形式言語の式の数が多い場合にも変換器を効率的に機械学習することができる。
【０１２８】
通常、出力しうる形式言語の式の数が多い場合には、正例を見つけることが困難であるが、本実施形態においては、正例条件を取得して正例条件を満たすクエリ式が優先して生成されるため、通常は見つけづらい正例を容易に発見でき、機械学習を効率的に進めることができる。
【０１２９】
本実施形態は、正例条件を用いることで、まだパラメータが十分に更新されていない機械学習の初期段階において、学習を効率的に進める効果がある。様々な質問と正答のペアについて、このパラメータ更新を繰り返すと、やがて、パラメータが十分に更新され、正例条件を手がかりとして用いなくとも、正しいクエリ式が選ばれるようになる。
【０１３０】
変換器を実用で用いる際、正答が未知の質問が与えられたときには、正答が分からないため正例条件を求めることはできない。しかし、本実施の形態における情報処理装置２１０によって、十分に更新されたパラメータを用いれば、正例条件を手がかりとして用いなくとも、変換器は正しいクエリ式を選ぶことができるようになる。
【０１３１】
［第３実施形態］
次に、本発明の第３実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態と比べると、図２の情報処理システムを構成する要素が情報処理装置に含まれる点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１３２】
《情報処理装置の機能構成》
図１８は、本実施形態に係る情報処理装置１８１０の機能構成を示すブロック図である。なお、図１８において、図２と同様の機能構成部には同じ参照番号を付して、重複する説明は省略する。
【０１３３】
図１８において、検索部１８２０は、検索システム２２０を情報処理装置１８１０に含ませた構成であり、検索システム２２０と同様である。
【０１３４】
［他の実施形態］
なお、本発明は、自然言語を形式言語に変換する変換器を、出力しうる形式言語の式の数が多い場合にも効率的に機械学習することができるので、システムに自然言語で問い合わせを行う必要がある種々の分野においても有用である。
【０１３５】
また、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１３６】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【図１】
0006733809.tif 000003
【図２】
0006733809.tif 000004
【図３】
0006733809.tif 000005
【図４】
0006733809.tif 000006
【図５】
0006733809.tif 000007
【図６】
0006733809.tif 000008
【図７】
0006733809.tif 000009
【図８】
0006733809.tif 000010
【図９】
0006733809.tif 000011
【図１０】
0006733809.tif 000012
【図１１】
0006733809.tif 000013
【図１２】
0006733809.tif 000014
【図１３】
0006733809.tif 000015
【図１４】
0006733809.tif 000016
【図１５】
0006733809.tif 000017
【図１６】
0006733809.tif 000018
【図１７】
0006733809.tif 000019
【図１８】
0006733809.tif 000020