(57)【要約】  学習用の第１テキストと、学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアからなる学習用テキストペア群を入力として、クエリとなるテキストに対して、拡張クエリとなるテキストを作成するクエリ拡張モデルを学習する。
2018097091.tif 000002
【特許請求の範囲】
【請求項１】
学習用の第１テキストと、前記学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアからなる学習用テキストペア群を入力として、クエリとなるテキストに対して、拡張クエリとなるテキストを作成するクエリ拡張モデルを学習するモデル学習部
を含むモデル作成装置。
【請求項２】
検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群に基づいて、前記検索対象の第１テキストについての検索用インデックス、及び前記検索対象の第２テキストについての検索用インデックスを作成する検索インデックス作成部
を更に含む請求項１記載のモデル作成装置。
【請求項３】
検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群に含まれる各単語からなる検索対象テキスト単語リストを用いて、前記学習用テキストペア群から、前記検索対象テキスト単語リストに含まれない単語を除去する単語フィルタリング部を更に含み、
前記モデル学習部は、前記単語フィルタリング部によって前記検索対象テキスト単語リストに含まれない単語を除去された前記学習用テキストペア群に基づいて、前記クエリ拡張モデルを学習する
請求項１又は２記載のモデル作成装置。
【請求項４】
検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群から、入力クエリに対応する、第１テキスト及び第２テキストのペアを検索するテキスト検索装置であって、
前記入力クエリに対して、拡張クエリを作成するためのクエリ拡張モデルに基づいて、前記第２テキストを検索するための拡張クエリを作成する拡張クエリ作成部と、
前記入力クエリと前記拡張クエリとに基づいて、前記第１テキスト及び前記第２テキストのペアを検索するテキストペア検索部と、
を含むテキスト検索装置。
【請求項５】
前記テキストペア検索部は、前記第１テキストについての検索用インデックスと、前記入力クエリと、前記第２テキストについての検索用インデックスと、前記拡張クエリとに基づいて、前記第１テキスト及び前記第２テキストのペアを検索する
請求項４記載のテキスト検索装置。
【請求項６】
前記テキストペア検索部は、
前記第１テキストについての検索用インデックスと、前記入力クエリとに基づいて、前記第１テキストの各々について、第１テキスト検索スコアを算出する第１テキスト検索スコア算出部と、
前記第２テキストについての検索用インデックスと、前記拡張クエリとに基づいて、前記第２テキストの各々について、第２テキスト検索スコアを算出する第２テキスト検索スコア算出部と、
前記第１テキスト及び前記第２テキストのペアの各々について、前記第１テキスト検索スコアと第２テキスト検索スコアとを統合し、前記第１テキスト及び前記第２テキストのペアを検索する検索スコア統合結果出力部と、
を含む請求項５記載のテキスト検索装置。
【請求項７】
検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群から、入力クエリに対応する、第１テキスト及び前記第２テキストのペアを検索するテキスト検索装置で用いるためのデータ構造であって、
学習用の第１テキストと、前記学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアからなる学習用テキストペア群、及び前記検索対象テキストペア群を入力として得られる、
クエリとなるテキストに対して、拡張クエリとなるテキストを作成するクエリ拡張モデルと、
前記検索対象の第１テキスト及び第２テキストについての検索用インデックスと、
を含むデータ構造。
【請求項８】
モデル学習部を含んだモデル作成装置におけるモデル作成方法であって、
前記モデル学習部が、学習用の第１テキストと、前記学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアからなる学習用テキストペア群、及び検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群を入力として、クエリとなるテキストに対して、拡張クエリとなるテキストを作成するクエリ拡張モデルを学習するステップ
を含むモデル作成方法。
【請求項９】
拡張クエリ作成部、及びテキストペア検索部を含み、第１テキストと、前記第１テキストを質問としたときの回答となる第２テキストとのペアからなる検索対象テキストペア群から、入力クエリに対応する、第１テキスト及び前記第２テキストのペアを検索するテキスト検索装置におけるテキスト検索方法であって、
前記拡張クエリ作成部が、前記入力クエリに対して、拡張クエリを作成するための予め学習されたクエリ拡張モデルに基づいて、前記第２テキストを検索するための拡張クエリを作成するステップと、
前記テキストペア検索部が、前記入力クエリと前記拡張クエリとに基づいて、前記第１テキスト及び前記第２テキストのペアを検索するステップと、
を含むテキスト検索方法。
【請求項１０】
コンピュータを、請求項１〜請求項３の何れか１項記載のモデル作成装置の各部、又は請求項４〜請求項６の何れか１項記載のテキスト検索装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索用に入力された音声又はテキストを拡張するクエリ拡張モデルを学習するモデル作成装置、入力した音声又はテキストについて検索するテキスト検索装置、検索用に入力された音声又はテキストを拡張するクエリ拡張モデルを学習するモデル作成方法、入力した音声又はテキストについて検索するテキスト検索方法、及び、検索用に入力された音声又はテキストを拡張したり、クエリ拡張モデルを学習するプログラム又は入力した音声又はテキストについて検索したりするプログラムに関する。
【背景技術】
【０００２】
情報検索システムでは、ユーザが入力した検索キーワード集合（クエリ）に対して、キーワードマッチ等の処理によってクエリに適合するテキストを検索している。キーワードマッチ検索の場合はクエリとして入力されたキーワードと、テキスト内のキーワードとが完全一致していなくてはならず、検索の再現率（Recall）が低下してしまうという課題があった。そこで、クエリ内に含まれるキーワードを自動的に増やすことでより幅広い文書にマッチさせる技術にクエリ拡張がある。クエリ拡張では、検索ログから統計処理により拡張するキーワードを決定している。【０００３】
情報検索の応用として、質問応答（ＦＡＱ検索）、対話処理等がある。これらのシステムでは、ユーザの質問や発言に対して、妥当な応答を返すことが目的となる。質問応答システムや対話システムでは予め大量のＦＡＱ、応答候補文等をデータベースに保存しておき、ユーザの入力に対して情報検索のアプローチで最も妥当な候補を選択する問題となる。応答文検索では、データベースに質問と応答とのペアを保持しておき、ユーザの入力と質問とを比較し、最も類似度が高かった質問の応答文を出力する。このようにすることで、ユーザの質問、発話等に対して適切な応答が可能になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−９９０６２号公報
【特許文献２】特開２０１１−１０３０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＦＡＱ検索、対話システム等では、Ｑ（質問：Question）及びＡ（答え：Answer）、発話文及びその応答文等の２つのテキストのペアをデータベースに保存しておき、実際の検索では、Ｑ及び発話文といったペアの第１テキストを主に使用して、実際の入力クエリとの比較を行う。その場合、Ａ及び応答文といった第２テキストは、検索で使用しない場合が多い。【０００６】
しかしながら、入力クエリ及び第１テキストのみで比較を行っても関連性が判別せず、入力クエリと第２テキストとを比較して初めて関連性が明らかになるケースがある。【０００７】
例えば、ＦＡＱ検索で「動画が重くて見られません」という質問が入力クエリとして入ってきた時、「通信量が多いと帯域制限により通信速度が低下する場合があります」というＡを検索したいとする。これは、動画が見られない原因の一つとして、動画の見過ぎによる帯域制限が考えられるため、関連するＱＡとして妥当なものである可能性が高い。【０００８】
しかしながら、実際のＦＡＱでは、「動画が重くて見られません」のようなより具体的な事象での言及で記載されているＱは少なく、「帯域制限について教えて下さい」の様に、一般化された内容で記載されていることが多い。このとき、「動画が重くて見られません」と「帯域制限について教えて下さい」とは通常の検索では類似性が低く、検索できない可能性が高い。【０００９】
入力クエリと第１テキストとで検索を行うことでは十分な検索結果が得られない場合、入力クエリとＦＡＱのＡ等の第２テキストとを検索で使用することは可能である。しかし、入力クエリに含まれるキーワードと第２テキストで使用されているキーワードとが異なっていることから、入力クエリに含まれるキーワードで直接検索しても、適切な検索結果が得られず、十分な検索精度が得られない場合が多い。【００１０】
その際、クエリ拡張等の手法を用いて入力クエリに含まれるキーワードを拡張することで対応することも可能であり、これまでは検索ログ等を用いたクエリ拡張の手法が用いられてきたが、この手法ではキーワードの意味的な類似性に基づいてキーワード拡張を行うため、キーワード拡張を行っても、第２テキストを検索するのに適したキーワードが作成できない場合が多い。【００１１】
例えば、上述した例では、「動画」というキーワードを拡張する際には、「動画」と意味的な類似性が高い「ビデオ」、「視聴」等といったキーワードが作成されることが多く、「通信量」、「帯域制限」等のキーワードが作成されることは稀である。【００１２】
このように、入力クエリに含まれるキーワードに対してキーワード拡張を行っても、キーワード拡張によって適切なキーワードが作成されないため、入力クエリに対する検索結果を精度良く得ることができなかった。【００１３】
本発明は、以上のような事情に鑑みてなされたものであり、入力されたクエリに対するテキストのペアの検索結果を精度良く得ることができるモデル作成装置、テキスト検索装置、モデル作成方法、テキスト検索方法、データ構造、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明のモデル作成装置は、学習用の第１テキストと、前記学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアからなる学習用テキストペア群を入力として、クエリとなるテキストに対して、拡張クエリとなるテキストを作成するクエリ拡張モデルを学習するモデル学習部、を含む。【００１５】
なお、検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群に基づいて、前記検索対象の第１テキストについての検索用インデックス、及び前記検索対象の第２テキストについての検索用インデックスを作成する検索インデックス作成部を更に含むようにしても良い。【００１６】
また、検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群に含まれる各単語からなる検索対象テキスト単語リストを用いて、前記学習用テキストペア群から、前記検索対象テキスト単語リストに含まれない単語を除去する単語フィルタリング部を更に含み、前記モデル学習部は、前記単語フィルタリング部によって前記検索対象テキスト単語リストに含まれない単語を除去された前記学習用テキストペア群に基づいて、前記クエリ拡張モデルを学習するようにしても良い。【００１７】
上記目的を達成するために、本発明のテキスト検索装置は、検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群から、入力クエリに対応する、第１テキスト及び第２テキストのペアを検索するテキスト検索装置であって、前記入力クエリに対して、拡張クエリを作成するためのクエリ拡張モデルに基づいて、前記第２テキストを検索するための拡張クエリを作成する拡張クエリ作成部と、前記入力クエリと前記拡張クエリとに基づいて、前記第１テキスト及び前記第２テキストのペアを検索するテキストペア検索部と、を含む。【００１８】
なお、前記テキストペア検索部は、前記第１テキストについての検索用インデックスと、前記入力クエリと、前記第２テキストについての検索用インデックスと、前記拡張クエリとに基づいて、前記第１テキスト及び前記第２テキストのペアを検索するようにしても良い。【００１９】
また、前記テキストペア検索部は、前記第１テキストについての検索用インデックスと、前記入力クエリとに基づいて、前記第１テキストの各々について、第１テキスト検索スコアを算出する第１テキスト検索スコア算出部と、前記第２テキストについての検索用インデックスと、前記拡張クエリとに基づいて、前記第２テキストの各々について、第２テキスト検索スコアを算出する第２テキスト検索スコア算出部と、前記第１テキスト及び前記第２テキストのペアの各々について、前記第１テキスト検索スコアと第２テキスト検索スコアとを統合し、前記第１テキスト及び前記第２テキストのペアを検索する検索スコア統合結果出力部と、を含むようにしても良い。【００２０】
上記目的を達成するために、本発明のデータ構造は、検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群から、入力クエリに対応する、第１テキスト及び前記第２テキストのペアを検索するテキスト検索装置で用いるためのデータ構造であって、学習用の第１テキストと、前記学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアからなる学習用テキストペア群、及び前記検索対象テキストペア群を入力として得られる、クエリとなるテキストに対して、拡張クエリとなるテキストを作成するクエリ拡張モデルと、前記検索対象の第１テキスト及び第２テキストについての検索用インデックスと、を含む。【００２１】
上記目的を達成するために、本発明のモデル作成方法は、モデル学習部を含んだモデル作成装置におけるモデル作成方法であって、前記モデル学習部が、学習用の第１テキストと、前記学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアからなる学習用テキストペア群、及び検索対象の第１テキストと、前記検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群を入力として、クエリとなるテキストに対して、拡張クエリとなるテキストを作成するクエリ拡張モデルを学習するステップと、を含む。【００２２】
上記目的を達成するために、本発明のテキスト検索方法は、拡張クエリ作成部、及びテキストペア検索部を含み、第１テキストと、前記第１テキストを質問としたときの回答となる第２テキストとのペアからなる検索対象テキストペア群から、入力クエリに対応する、第１テキスト及び前記第２テキストのペアを検索するテキスト検索装置におけるテキスト検索方法であって、前記拡張クエリ作成部が、前記入力クエリに対して、拡張クエリを作成するための予め学習されたクエリ拡張モデルに基づいて、前記第２テキストを検索するための拡張クエリを作成するステップと、前記テキストペア検索部が、前記入力クエリと前記拡張クエリとに基づいて、前記第１テキスト及び前記第２テキストのペアを検索するステップと、を含む。【００２３】
上記目的を達成するために、本発明のプログラムは、コンピュータを、上記モデル作成装置又はテキスト検索装置の各部として機能させるためのプログラムである。
【発明の効果】
【００２４】
本発明によれば、入力されたクエリに対するテキストのペアの検索結果を精度良く得ることが可能となる。
【図面の簡単な説明】
【００２５】
【図１】実施形態に係るモデル作成装置の構成を示す機能ブロック図である。
【図２】実施形態に係るテキスト検索装置の構成を示す機能ブロック図である。
【図３】実施形態に係る検索用インデックスの一例を示す模式図である。
【図４】実施形態に係るニューラルネットワークを説明するための説明図である。
【図５】実施形態に係るモデル作成装置により実行されるモデル作成処理の流れを示すフローチャートである。
【図６】実施形態に係るモデル作成装置により実行される検索用インデックス作成処理の流れを示すフローチャートである。
【図７】実施形態に係るテキスト検索装置により実行される検索処理の流れを示すフローチャートである。
【図８】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態について図面を用いて説明する。
【００２７】
本実施形態に係る検索システムは、検索用のモデルを学習するモデル作成装置、及び、検索を実行するテキスト検索装置を含んで構成される。
【００２８】
図１に、モデル作成装置１０の構成を示すブロック図を示した。また、図２に、テキスト検索装置４０の構成を示すブロック図を示した。まず、モデル作成装置１０について説明し、次に、テキスト検索装置４０について説明する。
【００２９】
モデル作成装置１０では、学習用の第１テキストと、学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアで構成される学習用テキストペア群を入力として、入力クエリを拡張するためのクエリ拡張モデルを作成する。また、モデル作成装置１０は、検索対象の第１テキストと、検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアで構成される検索対象テキストペア群を入力として、第１テキスト検索用インデックス、及び、第２テキスト検索用インデックスを作成する。
【００３０】
本実施形態では、学習用テキストペア群及び検索対象テキストペア群が入力されると、学習用テキストペア群及び検索対象テキストペア群について、まず後述する言語解析部１２及び言語解析部２２により形態素解析を行うと共に、入力されたキーワード抽出を行う。次に、学習用テキストペア群及び検索対象テキストペア群に出現する各単語についての重みを計算する。ここから、通常の全文検索エンジンと同様に、上記重みを使用した転置インデックスを作成する。また、ニューラルネットワークを用いたクエリ拡張モデルに入力するために学習用テキストペア群の整形を行う。そして、ニューラルネットワークを用いて学習用の第２テキストを検索するための拡張クエリを作成するためのクエリ拡張モデルを学習する。
【００３１】
本実施形態では、学習用テキストペア群として、検索対象テキストペア群よりも大規模な学習用コーパスを使用する。例えば、Ｗｅｂの質問回答サイトのコーパスを用いる。質問回答サイトとは、ユーザが自然文で質問文を投稿すると、他のユーザがその質問文に対する回答文を投稿することができるサービスである。本実施形態では、質問文を学習用の第１テキストとし、回答文を学習用の第２テキストとして学習用テキストペア群を作成し、学習用コーパスとして用いる。
【００３２】
また、本実施形態では、クエリ拡張モデルを学習する際、クエリ拡張モデルの出現単語を、検索対象テキストペア群に含まれている単語をリスト化した検索対象テキスト単語リストに含まれる単語に限定することで、クエリ拡張モデルの学習を効率的かつ高速に行うことが可能になる。
【００３３】
ただし、本実施形態に係るモデル作成装置をテキスト検索装置４０以外の装置で使用する場合、検索対象テキスト単語リストを用いた、クエリ拡張モデルの出現単語の限定処理は不要となる。
【００３４】
図１に示すように、モデル作成装置１０は、言語解析部１２、単語重み計算部１４、拡張クエリ作成部１６、モデル学習部１８、クエリ拡張モデル記憶部２０、言語解析部２２、単語重み計算部２４、検索用インデックス作成部２６、第１テキスト検索用インデックス記憶部２８、及び、第２テキスト検索用インデックス記憶部３０を備えている。
【００３５】
以降、それぞれの処理部について詳細に説明する。
【００３６】
言語解析部１２及び言語解析部２２は、学習用テキストペア群及び検索対象テキストペア群に対して言語処理を適用し、キーワード抽出を行う。この際、各テキストペア群が日本語のように単語区切り無しで記述されている場合には、形態素解析を行うことによりテキストを単語単位に区切り、各テキストペア群が英語のように自明な単語区切りが含まれる言語で記述されている場合には、単語区切りにすることで、文を単語単位に区切る。なお、このとき、言語解析部１２及び言語解析部２２は、単語のステミングも行う。
【００３７】
言語解析部１２及び言語解析部２２は、区切られた単語について名詞、動詞といった内容語の単語のみを抽出し、抽出した単語を検索で用いるキーワードとする。この際、連続する複数の単語によって１つの固有名詞が表示されるような場合には、これら複数の単語を接合する等の処理を行っても良い。
【００３８】
なお、言語解析部２２は、検索対象テキストペア群から抽出したキーワードをリスト化し、検索対象テキスト単語リストとして記憶しておく。この検索対象テキスト単語リストは、単語フィルタリング部１６ｂによって単語をフィルタリングする際に使用される。
【００３９】
単語重み計算部１４及び単語重み計算部２４は、後述する検索用インデックス作成部２６による検索用インデックスの作成、及び後述する単語並び替え部１６ａによる単語の並び替えで使用するために、抽出したキーワードの重要度を表す重みを計算する。重み計算には、情報検索でよく使用されるＩＤＦ値を用いる。単語ｗのＩＤＦ値ＩＤＦ（ｗ）は、下記（１）式により計算される。下記（１）におけるｄｆ（ｗ）は、単語ｗが出現するテキストの数であり、Ｎは、テキストの総数である。
【００４０】
【数１】
2018097091.tif 000003
…（１）
【００４１】
なお、ＩＤＦ値と同様の性質を持つ計算式であれば、Ｏｋａｐｉ  ＢＭ２５等の上記以外の変形式を用いても良い。
【００４２】
検索用インデックス作成部２６は、検索対象テキストペア群を検索するための検索用インデックスを作成する。検索用インデックスは、図３に示すように、テキストＩＤ、キーワード、及び当該キーワードの重みが、テキストＩＤ及び単語の組み合わせ毎に対応付けられて格納されたデータベースである。この際、重みは単語重み計算部２４により計算されたＩＤＦ値を用いてＴＦ／ＩＤＦで計算する。キーワードとする、テキストｄの単語ｗの重みは、下記（２）式で表される。下記（２）式におけるｔｆ（ｄ，ｗ）は、テキストｄ中で単語ｗが出現する回数である。
【００４３】
【数２】
2018097091.tif 000004
…（２）
【００４４】
なお、重みを計算したＴＦ／ＩＤＦ以外にも、Ｏｋａｐｉ  ＢＭ２５等の他の重み計算手法を用いて、重みを計算しても良い。
【００４５】
拡張クエリ作成部１６は、単語並び替え部１６ａ、及び、単語フィルタリング部１６ｂを有している。
【００４６】
単語並び替え部１６ａは、重みが計算された各単語を重みに応じて並び替える。ニューラルネットワークを用いたｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルでは、出力時には単語や文字の系列を出力する。一般的な翻訳モデルでは、文法上正しい順番に文字や単語を出力できるように学習を行う。しかし、本実施形態では、クエリ拡張モデルによって出力された単語を検索クエリとして使用するため、文法上の並びは不必要である。
【００４７】
そこで、本実施形態では、クエリ拡張モデルによって出力された単語を検索において有効に活用するために、重要な単語順に単語が出力されるようにする。重要な単語順に出力されるようにするには、学習用テキストペア群に出現する単語を、形態素解析、単語区切り等を行った後の出現順の並びから、重要な単語から先頭に並び替えれば良い。
【００４８】
単語の重要度は、上述した検索用インデックス作成部２６による処理と同様に、ＴＦ／ＩＤＦによって計算することができる。例えば、「通信量が多いと帯域制限により通信速度が低下する場合があります」という文を形態素解析して並べると、「通信量  多い  帯域制  限  通信速度  低下  場合  ある」のような単語の並びになるが、これらの単語を単語の重み順で並び替えると、「帯域制限  通信速度  通信量  低下  場合  多い  ある」のような並び順になる。このように並び替えることで、クエリ拡張を行う際に、出力時にはより重要な単語が優先して出力されやすくなる。
【００４９】
本実施形態では、ｄｅｃｏｄｅ時には単語の系列データを出力するため、単語並び替え部１６ａは、出力の学習データとなる学習用の第２テキストに対しては上述した単語の並び替えを必ず行う。一方、入力時には、単語の系列データ等における単語の語順を考慮しないｅｎｃｏｄｅを行うため、単語並び替え部１６ａは、学習用の第１テキストに関しては上述した単語の並び替えを必ずしも行わなくても良い。
【００５０】
しかしながら、学習用の第１テキストに入力する単語数等を制限する場合、先頭からｎ文字目で切ってしまうと、例えば日本語等では、「私」等の主語等、文の先頭に出現しやすい単語は常に学習される一方で、述語等、文の後半に出現しやすい重要な単語は学習され難い状況が生じる。そこで、本実施形態では、より重要な単語を学習で利用するために、学習用の第１テキストについても学習用の第２テキストと同様に単語の並び替えを行う。これにより、学習に有効な単語を学習で常に使用することができる。
【００５１】
単語フィルタリング部１６ｂは、例えばｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルを用いて学習用の第２テキストを検索するための検索クエリを作成する。学習用テキストペア群では、大量のテキストに様々な記載がなされている。学習用テキストペア群をそのまま用いてｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルで学習した場合、ｄｅｃｏｄｅ時には様々な単語が出力されることになる。しかしながら、出力された単語を検索として使用することを考えると、検索対象テキストペア群に出現しない単語については、どれだけ作成してもヒットなしで使用されることがないため、作成する意味があまり無い。そこで、ｄｅｃｏｄｅ時に出力される単語の語彙を、検索対象テキストペア群に含まれる語彙の範囲に限定することで、効率的かつ高速に学習を行うことが可能になる。
【００５２】
単語フィルタリング部１６ｂでは、言語解析部２２で取得した検索対象テキスト単語リストと、単語並び替え部１６ａにより単語が並び替えられた学習用テキストペア群を照合し、検索対象テキスト単語リストに存在しない単語については、並び替えられた学習用テキストペア群から削除する。これは、出力側である学習用の第２テキストに対してのみ行う処理である。学習用の第１テキストについては、多様な入力を受け付けるため、単語のフィルタリングを行わない。
【００５３】
なお、クエリ拡張モデルを学習する際に、検索対象テキストペア群が確定していない場合等、検索対象テキストペア群を取得できない場合には、単語フィルタリング部１６ｂによる検索対象テキスト単語リストによる単語のフィルタリングをスキップして、汎用のクエリ拡張モデルを学習しても良い。
【００５４】
モデル学習部１８は、入力と出力との変換を行うモデルを学習する。本実施形態では、このモデルとして、ｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルを用いる。ｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルは、ニューラルネットワークを用いて、入力と出力との変換を学習できるモデルであり、ニューラルネットワークの学習には、学習用テキストペア群に含まれる第１テキスト及び第２テキストのペアをそのまま入力すれば良く、学習パラメータがニューラルネットワークによって自動学習されるという点が特徴となっている。
【００５５】
例えば、下記参考文献１に記載されているように、「私  は  テニス  が  したい」という文を入力とし、「I want to play tennis」を出力として学習した場合には、学習用テキストペア群を入力するだけで自動翻訳器を作成することができる。
【００５６】
［参考文献１］Ilya Sutskever, Oriol Vinyals, Quoc V. Le. Sequence to Sequence Learning with Neural Networks. 2013.
【００５７】
ｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルは、入力の文字列を特徴ベクトルに変換するＥＮＣＯＤＥ部、及びＥＮＣＯＤＥ部で変換された特徴ベクトルから出力文字列を作成するＤＥＣＯＤＥ部から構成される。
【００５８】
一般的なｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルでは、ＬＳＴＭという系列構造に強い活性関数を用いたニューラルネットワークを用いて、ＥＮＣＯＤＥ部もＤＥＣＯＤＥ部も構成するが、本実施形態では、ＥＮＣＯＤＥ部ではｓｉｇｍｏｉｄ等の通常の活性関数を用いたニューラルネットワークを用いる。これは、検索を想定した場合、入力クエリには、キーワード集合の場合と自然文の場合とのどちらの可能性も想定される。このように入力クエリのフォーマットが不定である場合には、単語の順番に大きく影響されやすいＬＳＴＭ等の系列モデルを用いるのはふさわしくない。そのため、本実施形態では、ｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルではＥＮＣＯＤＥ部に系列モデルを使用しない。
【００５９】
図４に、本実施形態で使用するｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルを示した。図４に示すように、ＥＮＣＯＤＥ部は、Ｗ＿ｉｎ１〜Ｗ＿ｉｎＮまでの単語ベクトル層、ＣＯＮＴＥＸＴ層、ＡＴＴＥＮＴＩＯＮ層から構成される。また、ＤＥＣＯＤＥ部は、単語の意味を表現した特徴ベクトルを占めるＥＭＢＥＤＥＤ層とＬＳＴＭ層から構成される。なお、ＤＥＣＯＤＥ部に入力される＜／Ｓ＞は文頭を意味する。
【００６０】
単語ベクトル層では、単語をベクトル表現に変換したベクトルを用いる。このベクトルとして、該当する要素（単語）を１とし、他の要素（単語）を０にする１−ｈｏｔ型のベクトル、Ｗｏｒｄ２ｖｅｃ（登録商標）等により事前に学習した単語ベクトル等を用いても良い。
【００６１】
ＣＯＮＴＥＸＴ層では、全単語ベクトルの総和ベクトルの総和が入力となる。また、ＡＴＴＥＮＴＩＯＮ層では、下記参考文献２に示すＧｌｏｂａｌ  ａｔｔｅｎｔｉｏｎと同様の計算を行うことによって出力を決定するが、本実施形態のＥＮＣＯＤＥ部にはＬＳＴＭのＨＩＤＤＥＮ層が存在しないため、単語ベクトルの出力をＨＩＤＤＥＮ層の出力として扱う。
【００６２】
［参考文献２］Minh-Thang Luong, Hieu Pham, Christopher D. Manning. Effective Approaches to Attention-based Neural Machine Translation．2015.
【００６３】
ＤＥＣＯＤＥ部は、上記参考文献１及び２と同様にＬＳＴＭベースの作成モデルとなっている。この際、ニューラルネットワークの各層のユニット数、学習のための最適化手法、及びエラー関数の設定方法については、本実施形態においては特に指定せず、適用する学習用テキストペア群の規模、使用言語等を考慮して適宜設定できるものとする。また、ニューラルネットワークモデルについても本実施形態で示したものは最小構成であるため、ＣＯＮＴＥＸＴ層等のニューラルネットワークの各層を多段化する等の変形を行っても良い。
【００６４】
モデル学習部１８は、学習したクエリ拡張モデルを、クエリ拡張モデル記憶部２０に記憶させる。
【００６５】
検索用インデックス作成部２６は、検索対象テキストペア群を用いて、検索対象の第１テキストを検索するための第１テキスト検索用インデックスと、検索対象の第２テキストを検索するための第２テキスト検索用インデックスと、の２種類のインデックスを作成する。この際、検索用インデックス作成部２６は、検索対象の第１テキストのみから、第１テキスト検索用インデックスを作成する。また、検索用インデックス作成部２６は、第２テキスト検索用インデックスを作成する際には、検索対象の第２テキストのみから第２テキスト検索用インデックスを作成しても良いし、検索対象の第１テキストと検索対象の第２テキストとを結合して１つにまとめたテキストから第２テキスト検索用インデックスを作成しても良い。
【００６６】
検索用インデックス作成部２６は、作成した第１テキスト検索用インデックスを第１テキスト検索用インデックス記憶部２８に記憶させる。また、検索用インデックス作成部２６は、作成した第２テキスト検索用インデックスを第２テキスト検索用インデックス記憶部３０に記憶させる。
【００６７】
このように、検索用インデックス作成部２６により、検索対象テキストペア群から第１テキスト検索用インデックス及び第２テキスト検索用インデックスが作成されると共に、モデル学習部１８により、学習用テキストペア群から第２テキスト検索用のクエリ拡張モデルが学習される。
【００６８】
ここで、従来の情報検索技術では、第１テキストと第２テキストとを結合し、１つの文書とみなして検索を実行していた。一方、本実施形態に係るテキスト検索装置４０は、第１テキストの検索と第２テキストの検索とで異なるクエリで別々に検索を実行することに特徴がある。
【００６９】
テキスト検索装置４０は、検索対象の第１テキストと、検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群から、入力クエリに対応する、検索対象の第１テキスト及び検索対象の第２テキストのペアを検索する。この際、入力クエリに対して、拡張クエリを生成するための予め学習されたクエリ拡張モデルに基づいて、検索対象の第２テキストを検索するための拡張クエリを作成する。また、入力クエリと拡張クエリとに基づいて、検索対象の第１テキスト及び検索対象の第２テキストのペアを検索する。
【００７０】
図２に示すように、テキスト検索装置４０は、言語解析部４２、テキストペア検索部４３、及び、拡張クエリ作成部４６を含んで構成される。また、テキストペア検索部４３は、第１テキスト検索スコア算出部４４、第２テキスト検索スコア算出部４８、及び、検索スコア統合結果出力部５０を有している。
【００７１】
以降、それぞれの処理部について詳細に説明する。
【００７２】
言語解析部４２は、モデル作成装置１０の言語解析部１２、２２と同様の処理を行う。
【００７３】
第１テキスト検索スコア算出部４４は、入力クエリと検索対象テキストペア群の第１テキストとを比較した比較結果として検索スコアを算出する。第１テキスト検索スコアの算出には、モデル作成装置１０で作成し、第１テキスト検索用インデックス記憶部２８に記憶されている第１テキスト検索用インデックスを用いる。
【００７４】
第１テキスト検索スコアは、第１テキスト検索用インデックスに格納されている重みの総和で計算できる。第１テキストｄと入力クエリＱとの第１テキスト検索スコアｓｃｏｒｅ１は、下記（３）式で表される。下記（３）式におけるｑは、入力クエリＱ中に含まれるキーワードを示している。ｗｅｉｇｈｔ（ｄ１，ｑ）は、第１テキスト検索用インデックスに格納されている、テキストｄ、単語ｑの重みを表す重み値である。
【００７５】
【数３】
2018097091.tif 000005
…（３）
【００７６】
上記（３）式により、入力クエリとより多く、かつ重要なキーワードが一致している第１テキストほど、第１テキスト検索スコアは高い値となる。なお、第１テキスト検索スコアの算出は、一般的なキーワード一致検索を行うものであるため、単語の意味的な類似度を用いたクエリ拡張、単語の意味ベクトルを用いたスコア算出手法等と組み合わせて使用しても良い。
【００７７】
拡張クエリ作成部４６は、入力クエリを、クエリ拡張モデル記憶部２０に記憶されているクエリ拡張モデルに入力することにより、キーワード拡張を行い、第２テキスト検索用の拡張クエリを作成する。なお、クエリ拡張モデルには、言語解析部４２で抽出したキーワードをそのまま入力すれば良い。ただし、入力クエリが長文である場合には、モデル作成装置１０の単語並び替え部１６ａと同様に、単語の重みを予め計算しておき、単語の重みに基づいて、抽出されたキーワードから重み値が大きい上位ｎ語の単語のみを抽出してクエリ拡張モデルに入力しても良い。なお、ｎは、ユーザ等によって予め設定される。ｎとしては、例えば、数語〜数十語程度が好ましい。
【００７８】
クエリ拡張モデルでは、０〜Ｎ個のキーワードが動的に出力される。このとき、出力されたＮ個のキーワード全てを拡張クエリに使用してもよいし、出力数が多い場合には任意のｎ番目までに出力されたキーワードを用いても良い。クエリ拡張モデルは、出力時に、検索において重要と思われる順番にキーワードが出力されるように学習されるため、拡張キーワード数を制限する場合には、クエリ拡張モデルが出力した順番に則って使用すれば良い。
【００７９】
なお、第２テキスト検索スコアを算出する際には、入力クエリのキーワード群に、拡張クエリ作成部４６で出力された拡張キーワード群を追加したキーワード群を拡張クエリとして使用する。
【００８０】
第２テキスト検索スコア算出部４８は、拡張クエリ作成部４６により作成された拡張クエリと、モデル作成装置１０の検索用インデックス作成部２６により作成され、第２テキスト検索用インデックス記憶部３０に記憶されている第２テキスト検索用インデックスを用いて、第２テキスト検索スコアを算出する。
【００８１】
第２テキスト検索スコアの算出には、第１テキスト検索スコアを算出する際に用いた上記（３）式に加えて、近接重みを考慮する。近接重みとは、拡張クエリ中のキーワードが第２テキスト中のキーワードにヒットした場合、その他のヒットしたキーワードが第２テキスト中のどの程度近くに存在しているかということを考慮した指標である。
【００８２】
第２テキストは、第１テキストと比べて長文で記述されている場合が多い。また、ヒットしたキーワードが第２テキストの複数の文に亘って点在している場合よりも、より少ない文中のキーワードに密集してヒットしている方が有用な情報である可能性が高い。そのため、第２テキストの検索では、ヒットしたキーワード間の位置の近さを示す近接重みを導入する。
【００８３】
近接重みは、ヒットしたキーワード間の距離の平均によって計算する。第２テキストをｄとした場合に、単語ｑがヒットしたときの近接重みは、下記（４）式に従って計算される。下記（４）式におけるＨは、第２テキストｄにヒットした入力クエリのキーワード集合であり、ＮＨは、キーワード集合の全キーワード数であり、Ｌは、第２テキストｄの先頭からのキーワードの位置を示している。
【００８４】
【数４】
2018097091.tif 000006
…（４）
【００８５】
例えば、「通信量多い  帯域制限  通信速度  低下  場合  ある」という第２テキストｄがあるとする。この場合、Ｌ（ｄ２，帯域制限）＝３となり、Ｌ(ｄ２，低下）＝５となる。このように近接重みを用いると、第２テキスト検索スコアは、下記（５）式に従って計算される。
【００８６】
【数５】
2018097091.tif 000007
…（５）
【００８７】
ここで、上記（５）式におけるｐｒｏｘ'（ｄ２，ｑ）は、０〜１に正規化された近接重み値である。近接重みはキーワード間の距離にもとづいて計算されるため、値の範囲が不定である。そのため、重み係数として使用するために値が０〜１の範囲に限定されるように正規化を行う必要がある。正規化手法についてはｓｉｇｍｏｉｄ関数を用いたもの等、任意の正規化手法を使用して良い。また、第２テキストが長文でない場合等には、近接計算を導入した検索スコア計算方法ではなく、第１テキスト検索スコアと同様の計算式を用いても良い。
【００８８】
検索スコア統合結果出力部５０は、第１テキスト検索スコアと第２テキスト検索スコアとを統合し、統合スコアを算出し、統合スコアの降順に検索結果を出力する。本実施形態では、統合スコアを、第１テキスト検索スコアと第２テキスト検索スコアとの線形和として計算する。入力クエリＱに対して、第１テキストをｄ１とし、第２テキストをｄ２とした場合のテキストペア群ＰＤの統合スコアは、下記（６）式に従って計算される。下記（６）式におけるｗ１及びｗ２は、線形和のための重み係数である。
【００８９】
【数６】
2018097091.tif 000008
…（６）
【００９０】
検索対象テキストペア群によって第１テキストと第２テキストとの考慮する比率は異なる。例えば、ＦＡＱ検索では、入力クエリＱの部分に質問内容が明確に記載されている場合には、第１テキストであるＱをより考慮した検索を行うべきである。一方、入力クエリＱには「〜について」等の簡潔な記載しかなく、第２テキストであるＡの部分に豊富な記載がある場合には、第２テキストであるＡの第２テキスト検索スコアを優先したほうが良い結果が得られる。また、重み係数に関しては、検索対象テキストペア群の性質を観察し、人手で付与しても良いし、機械学習、統計処理等に基づいて自動的に付与しても良い。
【００９１】
なお、本実施形態に係るモデル作成装置１０及びテキスト検索装置４０は、例えば、図８に示すようなコンピュータ１００で構成される。図８に示すコンピュータ１００は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７、及び補助記憶装置１０８を備えている。これらの各ハードウェアはバスＢによって接続されている。なお、コンピュータ１００は、入力装置１０１及び表示装置１０２のうちの少なくとも一方を備えていなくても良い。
【００９２】
本実施形態は、ＣＰＵ１０６が、ハードディスク等の補助記憶装置１０８やＲＯＭ１０５に記憶されているプログラムを読み出して実行することにより、上記の各ハードウェア資源とプログラムとが協働し、上述した機能が実現される。なお、当該プログラムは、例えばＣＤ−ＲＯＭ等の記録媒体１０３ａに格納されていても良い。
【００９３】
本実施形態に係るモデル作成装置１０によるモデル作成処理の流れを、図５に示すフローチャートを用いて説明する。本実施形態では、モデル作成装置１０に、モデル作成処理の実行を開始するための予め定めた情報が入力されたタイミングでモデル作成処理が開始されるが、モデル作成処理が開始されるタイミングはこれに限らない。
【００９４】
ステップＳ１０１では、言語解析部１２が、学習用テキストペア群を入力する。
【００９５】
ステップＳ１０３では、言語解析部１２が、入力した学習用テキストペア群に含まれる各テキストについて形態素分解を行い、単語を抽出する。なお、このとき、言語解析部１２は、抽出した単語のステミングを行う。
【００９６】
ステップＳ１０５では、単語重み計算部１４が、抽出した各単語について、重みを計算する。
【００９７】
ステップＳ１０７では、単語並び替え部１６ａが、重みを計算した各単語を、重みに基づいて並び替える。
【００９８】
ステップＳ１０９では、単語フィルタリング部１６ｂが、並び替えられた各単語のうち、後述する検索用インデックス作成処理で作成される検索対象テキスト単語リストに含まれる単語を削除することにより、単語をフィルタリングする。
【００９９】
ステップＳ１１１では、モデル学習部１８が、各単語が並び替えられると共に各単語がフィルタリングされた学習用テキストペア群を用いてクエリ拡張モデルを学習する。
【０１００】
ステップＳ１１３では、学習したクエリ拡張モデルをクエリ拡張モデル記憶部２０に記憶させ、本モデル作成処理のプログラムの実行を終了する。
【０１０１】
次に、本実施形態に係るモデル作成装置１０による検索用インデックス作成処理の流れを、図６に示すフローチャートを用いて説明する。本実施形態では、モデル作成装置１０に、検索用インデックス作成処理の実行を開始するための予め定めた情報が入力されたタイミングで検索用インデックス作成処理が開始されるが、検索用インデックス作成処理が開始されるタイミングはこれに限らない。
【０１０２】
ステップＳ２０１では、言語解析部２２が、検索対象テキストペア群を入力する。
【０１０３】
ステップＳ２０３では、言語解析部２２が、入力した検索対象テキストペア群に含まれる各テキストについて形態素分解し、単語を抽出する。また、言語解析部２２が、検索対象テキスト単語リストを作成する。なお、このとき、言語解析部２２は、抽出した単語のステミングを行う。
【０１０４】
ステップＳ２０５では、単語重み計算部２４が、抽出された各単語の重みを計算する。
【０１０５】
ステップＳ２０７では、検索用インデックス作成部２６が、抽出された各単語の重みに基づいて、第１テキスト検索用インデックス及び第２テキスト検索用インデックスを作成する。
【０１０６】
ステップＳ２０９では、検索用インデックス作成部２６が、作成した第１テキスト検索用インデックスを第１テキスト検索用インデックス記憶部２８に記憶させると共に、作成した第２テキスト検索用インデックスを第２テキスト検索用インデックス記憶部３０に記憶させ、本検索用インデックス作成処理のプログラムの実行を終了する。
【０１０７】
次に本実施形態に係るテキスト検索装置４０による検索処理の流れを、図７に示すフローチャートを用いて説明する。本実施形態では、テキスト検索装置４０に、検索処理の実行を開始するための予め定めた情報が入力されたタイミングで検索処理が開始されるが、検索処理が開始されるタイミングはこれに限らない。
【０１０８】
ステップＳ３０１では、言語解析部４２が、ユーザにより入力された入力クエリを入力する。
【０１０９】
ステップＳ３０３では、言語解析部４２が、入力クエリを形態素分解し、単語を抽出する。
【０１１０】
ステップＳ３０５では、第１テキスト検索スコア算出部４４が、第１テキスト検索用インデックス記憶部２８から第１テキスト検索用インデックスを読み出し、入力クエリと、読み出した第１テキスト検索用インデックスに基づいて、第１テキスト検索スコアを算出する。
【０１１１】
ステップＳ３０７では、拡張クエリ作成部４６が、クエリ拡張モデル記憶部２０に記憶されているクエリ拡張モデルを読出し、入力クエリを、クエリ拡張モデルを用いて拡張し、第２テキスト検索用の拡張クエリを作成する。
【０１１２】
ステップＳ３０９では、第２テキスト検索スコア算出部４８が、第２テキスト検索用インデックス記憶部３０から第２テキスト検索用インデックスを読み出し、拡張クエリと、読み出した第２テキスト検索用インデックスと、に基づいて、第２テキスト検索スコアを算出する。
【０１１３】
ステップＳ３１１では、検索スコア統合結果出力部５０が、検索対象の第１テキストと第２テキストとのペアの各々について、第１テキスト検索スコアと第２テキスト検索スコアとを統合して統合スコアを算出する。
【０１１４】
ステップＳ３１３では、検索スコア統合結果出力部５０が、算出した統合スコアに基づいて、検索対象の第１テキストと第２テキストとのペアの検索結果を出力し、本検索処理のプログラムの実行を終了する。
【０１１５】
このようにして、本実施形態では、学習用の第１テキストと、学習用の第１テキストを質問としたときの回答となる学習用の第２テキストとのペアからなる学習用テキストペア群、及び検索対象の第１テキストと、検索対象の第１テキストを質問としたときの回答となる検索対象の第２テキストとのペアからなる検索対象テキストペア群を入力として、クエリとなるテキストに対して、拡張クエリとなるテキストを作成するクエリ拡張モデルを学習する。
【０１１６】
また、本実施形態では、第１テキストと、第１テキストを質問としたときの回答となる第２テキストとのペアからなる検索対象テキストペア群から、入力クエリに対応する、第１テキスト及び第２テキストのペアを検索する際、入力クエリに対して、拡張クエリを作成するための予め学習されたクエリ拡張モデルに基づいて、第２テキストを検索するための拡張クエリを作成し、入力クエリと拡張クエリとに基づいて、第１テキスト及び第２テキストのペアを検索する。
【０１１７】
なお、本実施形態では、図１及び図２に示す機能の構成要素の動作をプログラムとして構築し、モデル作成装置１０及びテキスト検索装置４０として利用されるコンピュータにインストールして実行させるが、これに限らず、ネットワークを介して流通させても良い。
【０１１８】
また、構築されたプログラムをハードディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールしたり、配布したりしても良い。
【０１１９】
本願は、日本国に２０１６年１１月２５日に出願された基礎出願２０１６−２２９０７２号に基づくものであり、その全内容はここに参照をもって援用される。
【符号の説明】
【０１２０】
１０  モデル作成装置
１２、２２、４２  言語解析部
１４、２４  単語重み計算部
１６  拡張クエリ作成部
１６ａ  単語並び替え部
１６ｂ  単語フィルタリング部
１８  モデル学習部
２０  クエリ拡張モデル記憶部
２６  検索用インデックス作成部
２８  第１テキスト検索用インデックス記憶部
３０  第２テキスト検索用インデックス記憶部
４０  テキスト検索装置
４３  テキストペア検索部
４４  第１テキスト検索スコア算出部
４６  拡張クエリ作成部
４８  第２テキスト検索スコア算出部
５０  検索スコア統合結果出力部
【図１】
2018097091.tif 000009
【図２】
2018097091.tif 000010
【図３】
2018097091.tif 000011
【図４】
2018097091.tif 000012
【図５】
2018097091.tif 000013
【図６】
2018097091.tif 000014
【図７】
2018097091.tif 000015
【図８】
2018097091.tif 000016
【国際調査報告】
2018097091.tif 000017
2018097091.tif 000018
2018097091.tif 000019
2018097091.tif 000020