(57)【要約】      （修正有）【課題】変換パラメータに含まれる特徴を保持する生成プログラム、生成方法及び生成装置を提供する。【解決手段】生成プログラムは、単語を受け付け、受け付けた単語に第１の変換パラメータ及び第２の変換パラメータをそれぞれ適用して、単語に応じた第１のベクトル及び第２のベクトルを生成する処理をコンピュータに実行させる。生成プログラムは、生成した第１のベクトル及び第２のベクトルに基づき、単語に応じた新たな第３のベクトルを生成する処理をコンピュータに実行させる。【選択図】図１
2019082860.tif 000002
【特許請求の範囲】
【請求項１】
単語を受け付け、
受け付けた前記単語に第１の変換パラメータ及び第２の変換パラメータをそれぞれ適用して、前記単語に応じた第１のベクトル及び第２のベクトルを生成し、
生成した前記第１のベクトル及び前記第２のベクトルに基づき、前記単語に応じた新たな第３のベクトルを生成する
処理をコンピュータに実行させることを特徴とする生成プログラム。
【請求項２】
前記第３のベクトルを生成する処理は、生成した第１のベクトルと前記第２のベクトルとを連結して前記第３のベクトルを生成することを特徴とする請求項１に記載の生成プログラム。
【請求項３】
前記第３のベクトルを生成する処理は、生成した第１のベクトルと前記第２のベクトルとを演算することにより、前記第３のベクトルを生成することを特徴とする請求項１又は２に記載の生成プログラム。
【請求項４】
前記第１のベクトル及び第２のベクトルを生成する処理は、前記第１のベクトルとは次元が異なる前記第２のベクトルを生成することを特徴とする請求項１乃至３のいずれか１つに記載の生成プログラム。
【請求項５】
前記第１のベクトル及び第２のベクトルを生成する処理は、前記単語が前記第１の変換パラメータ又は前記第２の変換パラメータに含まれない未知語であると判定した場合、前記未知語であることを示すベクトルを生成することを特徴とする請求項１乃至４のいずれか１つに記載の生成プログラム。
【請求項６】
前記第１のベクトル及び第２のベクトルを生成する処理は、前記未知語であることを示すベクトルとして、０ベクトル又は乱数ベクトルを生成することを特徴とする請求項５に記載の生成プログラム。
【請求項７】
前記第１のベクトル及び第２のベクトルを生成する処理は、前記未知語であることを示すベクトルとして、未知語であると判定されなかった前記第１のベクトル又は第２のベクトルを複製したベクトルを生成することを特徴とする請求項５に記載の生成プログラム。
【請求項８】
前記第１のベクトルと前記第２のベクトルとの組み合わせを用いて学習処理を行うことにより、前記未知語であることを示すベクトルを生成する処理をさらにコンピュータに実行させることを特徴とする請求項５に記載の生成プログラム。
【請求項９】
複数の判別対象の文章に含まれる単語またはフレーズの素性に関する学習を実行した学習モデルを用いて、前記第３のベクトルから、受け付けた前記単語と前記複数の判別対象の文章との判別結果を取得する処理をさらにコンピュータに実行させることを特徴とする請求項１乃至８のいずれか１つに記載の生成プログラム。
【請求項１０】
前記判別結果を取得する処理は、前記第１のベクトル、前記第２のベクトル及び前記第３のベクトルのうち、いずれか１つ又は２つ以上の組み合わせを選択し、選択されたベクトルに対応する前記学習モデルを用いて、受け付けた前記単語と前記複数の判別対象の文章との判別結果を取得することを特徴とする請求項９に記載の生成プログラム。
【請求項１１】
前記受け付ける処理は、複数の前記単語を含むテキストデータを受け付け、
前記第１のベクトル及び第２のベクトルを生成する処理は、前記テキストデータに応じた前記第１のベクトル及び第２のベクトルを生成し、
前記第３のベクトルを生成する処理は、前記テキストデータに応じた新たな第３のベクトルを生成することを特徴とする請求項１乃至１０のいずれか１つに記載の生成プログラム。
【請求項１２】
前記第１のベクトル及び第２のベクトルを生成する処理は、受け付けた前記単語に第３の変換パラメータをさらに適用して、前記単語に応じた第４のベクトルをさらに生成し、
前記第３のベクトルを生成する処理は、生成した前記第１のベクトル及び前記第２のベクトルに加えて、さらに前記第４のベクトルに基づき、前記単語に応じた新たな第３のベクトルを生成することを特徴とする請求項１乃至１１のいずれか１つに記載の生成プログラム。
【請求項１３】
コンピュータが、
単語を受け付け、
受け付けた前記単語に第１の変換パラメータ及び第２の変換パラメータをそれぞれ適用して、前記単語に応じた第１のベクトル及び第２のベクトルを生成し、
生成した前記第１のベクトル及び前記第２のベクトルに基づき、前記単語に応じた新たな第３のベクトルを生成する
処理を行う生成方法。
【請求項１４】
単語を受け付ける受付部と、
受け付けた前記単語に第１の変換パラメータ及び第２の変換パラメータをそれぞれ適用して、前記単語に応じた第１のベクトル及び第２のベクトルを生成する第１ベクトル処理部と、
生成した前記第１のベクトル及び前記第２のベクトルに基づき、前記単語に応じた新たな第３のベクトルを生成する第２ベクトル処理部と、
を有する生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成プログラム、生成方法及び生成装置に関する。
【背景技術】
【０００２】
言語処理において、複数のコーパスを併用する技術が知られている。例えば、機械翻訳において、複数のコーパスを併用することで、翻訳結果の品質を高め、翻訳の応答時間を短縮する技術が知られている。当該技術は、第１言語に属する語句と第２言語に属する語句を対応付けて格納した複数の翻訳用辞書を用いる。当該技術は、１つ以上の語句を含む基準情報を受け入れ、複数の翻訳用辞書と基準情報とを比較して、当該基準情報に対する各翻訳用辞書の類似度を求める。当該技術は、類似度をもとに、各翻訳用辞書を検索する際の優先度を規定する。また、当該技術においては、辞書ではなく、文章の集まりであるコーパスを指定する場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３５５２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記技術においては、いずれかのコーパスの特徴が失われるという問題が生じる。例えば、ＦＡＱなどの複数の文章を格納したデータベースを用いて、文章を形態素解析により分解し、機械学習により単語ベクトルを生成する際に、コーパスから生成される、単語をベクトルに変換する変換パラメータを用いる。この場合において、例えば、一方のコーパスから生成された変換パラメータを選択した場合、選択されなかったコーパスの特徴は、検索結果に反映されない。一方、２つのコーパスを統合したコーパスを用いて変換パラメータを生成する際に、統合前の各コーパスに含まれる特徴が失われる場合がある。
【０００５】
一つの側面では、変換パラメータに含まれる特徴を保持できる生成プログラム、生成方法及び生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの態様において、生成プログラムは、単語を受け付け、単語に第１の変換パラメータ及び第２の変換パラメータをそれぞれ適用して、単語に応じた第１のベクトル及び第２のベクトルを生成する処理をコンピュータに実行させる。生成プログラムは、生成した第１のベクトル及び第２のベクトルに基づき、単語に応じた新たな第３のベクトルを生成する処理をコンピュータに実行させる。
【発明の効果】
【０００７】
一つの態様によれば、変換パラメータに含まれる特徴を保持できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１における回答抽出処理の一例を示す図である。
【図２】図２は、実施例１における生成装置の一例を示す図である。
【図３】図３は、実施例１におけるコーパスモデルの一例を示す図である。
【図４】図４は、実施例１における検索時学習モデルの一例を示す図である。
【図５】図５は、実施例１における回答記憶部の一例を示す図である。
【図６】図６は、実施例１におけるベクトル結合処理の一例を示す図である。
【図７】図７は、実施例１における回答抽出処理の一例を示すフローチャートである。
【図８】図８は、背景技術におけるベクトル生成処理の一例を示す図である。
【図９】図９は、実施例１におけるベクトル生成処理の一例を示す図である。
【図１０】図１０は、実施例２におけるベクトル生成処理の一例を示す図である。
【図１１】図１１は、実施例２における生成装置の一例を示す図である。
【図１２】図１２は、実施例２における回答抽出処理の一例を示すフローチャートである。
【図１３】図１３は、実施例２におけるベクトル生成処理の別の一例を示す図である。
【図１４】図１４は、実施例３におけるベクトル結合処理の一例を示す図である。
【図１５】図１５は、実施例３におけるベクトル生成処理の一例を示す図である。
【図１６】図１６は、実施例３におけるベクトル生成処理の別の一例を示す図である。
【図１７】図１７は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する生成プログラム、生成方法及び生成装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例１】
【００１０】
実施例１における、後に説明する生成装置１０は、コーパスモデルを用いて生成される単語ベクトルを用いた回答抽出処理をコンピュータに実行させる。実施例１における回答抽出処理は、例えばコールセンターの質疑応答集（ＦＡＱ）などを参照し、入力された質問文に対する適切な応答を抽出する処理である。なお、生成装置１０は、サーバ、パーソナルコンピュータ、タブレットなどのコンピュータ装置の一例である。また、コーパスモデルは、変換パラメータの一例である。
【００１１】
実施例１における回答抽出処理について、図１を用いて説明する。図１は、実施例１における回答抽出処理の一例を示す図である。図１に示すように、実施例１における回答抽出処理においては、事前学習処理において、コーパスを学習することにより、後に説明するコーパスモデルＡ１２１ａ及びコーパスモデルＢ１２１ｂが生成される。なお、以下において、コーパスモデルＡ１２１ａ及びコーパスモデルＢ１２１ｂを区別せずに表現する場合に、コーパスモデル１２１と表記する場合がある。
【００１２】
実施例１におけるコーパスは、複数の文章の集まりであり、例えば百科事典サイトや新聞データベース、検索エンジンなどの外部サーバから取得されるテキスト群である。また、実施例１におけるコーパスは、例えば顧客データベースやコールセンターの質疑応答ログなど、生成装置１０を利用する会社などの内部情報であってもよい。実施例１においては、例えばコーパスＡが百科事典サイトであり、コーパスＢが内部情報である。
【００１３】
実施例１におけるコーパスモデル１２１は、例えば、コーパスに含まれる文章群を形態素解析によって単語に区分し、区分された単語群に対する分散表現の単語ベクトル（Bag  of  words）を学習することにより生成される。単語の分散表現とは、各単語を、単語間の各特徴要素である複数の次元に対して、定量化した連続値で表現した、多次元のベクトルである。なお、単語の分散表現は、例えばＷｏｒｄ２Ｖｅｃなどの公知の技術により学習することができるため、詳細な説明は省略する。
【００１４】
また、コーパスモデル１２１は、例えば単語ベクトルと正解ラベルとを関連付けた教師データを、ニューラルネットワークなどに入力して、入力ベクトルと正解ラベルとの関係性を学習し、学習済みモデルを生成することにより得られる。
【００１５】
次に、推論処理において、生成装置１０は、まず、質問文などのテキストの入力を受け付ける。図１に示すように、生成装置１０は、例えば「ＰＣの電源が入らない」などの入力テキスト１０００を受け付ける。次に、生成装置１０は、入力テキストに対して形態素解析を行い、入力テキスト１０００を「ＰＣ，の，電源，が，入ら，ない，。」のような単語群１００１に区分する。
【００１６】
そして、生成装置１０は、区分された各単語を、予め生成されたコーパスモデル１２１に入力して、単語ベクトルを取得する。生成装置１０は、例えば入力単語「ＰＣ」をコーパスモデルＡ１２１ａに入力することにより、単語ベクトルＡを取得する。同様に、生成装置１０は、入力単語「ＰＣ」をコーパスモデルＢ１２１ｂに入力することにより、単語ベクトルＢを取得する。図１に示すように、コーパスモデルＡ１２１ａ及びコーパスモデルＢ１２１ｂは、それぞれ異なるコーパスから得られたものであるので、取得される単語ベクトルＡ及びＢも相互に異なる。なお、単語ベクトルは、第１のベクトル及び第２のベクトルの一例である。
【００１７】
次に、生成装置１０は、取得された単語ベクトルＡ及びＢを結合する。生成装置１０は、例えば単語ベクトルＡに、単語ベクトルＢを連結することにより、単語ベクトルＣを生成する。同様に、生成装置１０は、区分されたその他の入力単語についても推論処理及び結合処理を繰り返すことにより、入力テキスト「ＰＣの電源が入らない」に対応する分散表現を得る。なお、単語ベクトルＣは、第３のベクトルの一例である。
【００１８】
一方、生成装置１０は、入力テキストを用いた検索対象とする回答データについても、事前学習処理と同様の処理により得られる、後に説明する検索時学習モデル１２２を有する。図１に示すように、検索時学習モデル１２２は、後に説明する回答記憶部１２３に記憶されたタイトルを形態素解析によって区分し、区分された単語群に対して単語ベクトルを学習することにより得られる。
【００１９】
そして、検索処理において、生成装置１０は、入力テキストに対応する分散表現を、検索時学習モデル１２２に入力することにより、入力テキストに対応する回答を取得する。例えば、生成装置１０は、回答記憶部１２３を参照し、タイトル「電源ボタンを押しても、パソコンが起動しません。」に対応する回答「対処方法は〜」を取得する。そして、生成装置１０は、取得した回答を出力する。
【００２０】
このように、生成装置１０は、入力単語に対して、第１のモデルから生成する第１ベクトルと第２のモデルから生成する第２ベクトルとを用いて生成した第３ベクトルを生成するので、各モデルの特徴を残したベクトルで機械学習ができる。
【００２１】
［機能ブロック］
次に、本実施例における生成装置１０の一例について、図２を用いて説明する。図２は、実施例１における生成装置の一例を示す図である。図２に示すように、本実施例における生成装置１０は、記憶部１２０と、制御部１３０とを有する。
【００２２】
記憶部１２０は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやプロセッサなどである。この記憶部１２０は、コーパスモデルＡ１２１ａ及びコーパスモデルＢ１２１ｂ、検索時学習モデル１２２並びに回答記憶部１２３を記憶する。
【００２３】
実施例１におけるコーパスモデルＡ１２１ａ及びコーパスモデルＢ１２１ｂは、コーパスから生成される、単語と、分散表現の単語ベクトルとを対応付けた辞書である。図３は、実施例１におけるコーパスモデルの一例を示す図である。図３に示すように、実施例１におけるコーパスモデルＡ１２１ａは、「単語」と、「ベクトル」とを対応付けて記憶する。なお、コーパスモデルＢ１２１ｂについても、コーパスモデルＡ１２１ａと同様の構成であるため、詳細な説明は省略する。
【００２４】
検索時学習モデル１２２は、回答データに含まれるタイトルを形態素解析によって区分し、区分された単語群に対して単語ベクトルを学習することにより得られる学習モデルである。図４は、実施例１における検索時学習モデルの一例を示す図である。図４に示すように、検索時学習モデル１２２は、「ＩＤ」と、「ベクトル」とを対応付けて記憶する。
【００２５】
図４において、「ＩＤ」は、回答データを一意に識別する識別子（Identifier）を記憶する。「ベクトル」は、当該ＩＤの回答データから得られた分散表現の単語ベクトルを記憶する。
【００２６】
回答記憶部１２３は、図１に示すように、回答記憶部１２３には、例えば予め図示しない他のサーバ等から取得した情報が記憶される。図５は、実施例１における回答記憶部の一例を示す図である。図５に示すように、回答記憶部１２３は、「タイトル」と、「回答」とを「ＩＤ」に対応付けて記憶する。
【００２７】
図５において、「タイトル」は、回答データに対応する質問文を記憶する。「回答」は、回答データの本文を記憶する。
【００２８】
図２に戻って、制御部１３０は、生成装置１０全体を司る処理部であり、例えばプロセッサなどである。制御部１３０は、受付部１３１、単語抽出部１３２、ベクトル抽出部１３３、ベクトル結合部１３４、回答検索部１３５及び出力部１３６を有する。なお、受付部１３１、単語抽出部１３２、ベクトル抽出部１３３、ベクトル結合部１３４、回答検索部１３５及び出力部１３６は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００２９】
受付部１３１は、入力テキストを受け付け、単語抽出部１３２に出力する。受付部１３１は、例えば図示しない生成装置１０の操作部を通じて、利用者から入力テキストを受け付ける。また、受付部１３１は、例えば図示しない生成装置１０の通信部を通じて、利用者が操作する端末から入力テキストを受け付けてもよい。
【００３０】
単語抽出部１３２は、入力テキストに対する形態素解析を行う。単語抽出部１３２は、受付部１３１から入力テキストの出力を受けると、入力テキストを形態素解析によって図１に示すような単語群に区分する。単語抽出部１３２は、区分した単語群を、ベクトル抽出部１３３に出力する。なお、単語抽出部１３２は、形態素解析以外のその他の手法によって、入力テキストを単語群に区分してもよい。
【００３１】
ベクトル抽出部１３３は、区分された単語群に対応する単語ベクトルを、コーパスモデル１２１ごとに複数抽出して、ベクトル結合部１３４に出力する。なお、ベクトル抽出部１３３は、第１ベクトル処理部の一例である。
【００３２】
ベクトル抽出部１３３は、単語をコーパスモデルＡ１２１ａに入力することにより、単語ベクトルＡを抽出する。同様に、ベクトル抽出部１３３は、単語をコーパスモデルＢ１２１ｂに入力することにより、単語ベクトルＢを抽出する。
【００３３】
ベクトル結合部１３４は、ベクトル抽出部１３３から出力されたベクトルを結合する。ベクトル結合部１３４は、例えば、単語ベクトルＡに、単語ベクトルＢを連結することにより、結合された単語ベクトルＣを生成する。なお、ベクトル結合部１３４は、第２ベクトル処理部の一例である。
【００３４】
図６は、実施例１におけるベクトル結合処理の一例を示す図である。図６に示すように、ベクトル結合部１３４は、単語ベクトルＡの各要素の後ろに、単語ベクトルＢの各要素を連結することにより、単語ベクトルＣを生成する。この場合において、例えば単語ベクトルＡ及びＢがそれぞれ１００次元のベクトルである場合、単語ベクトルＣは２００次元のベクトルとなる。
【００３５】
［処理の流れ］
次に、本実施例における処理について、図７を用いて説明する。図７は、実施例１における回答抽出処理の一例を示すフローチャートである。図７に示すように、生成装置１０の受付部１３１は、図示しない利用者から、入力テキストを受け付けるまで待機する（Ｓ１００：Ｎｏ）。受付部１３１は、入力テキストを受け付けたと判定した場合（Ｓ１００：Ｙｅｓ）、単語抽出部１３２に入力テキストを出力する。
【００３６】
単語抽出部１３２は、出力された入力テキストを形態素解析によって単語に区分する。そして、単語抽出部１３２は、区分された単語を抽出して、ベクトル抽出部１３３に出力する（Ｓ１０１）。
【００３７】
ベクトル抽出部１３３は、単語をコーパスモデルＡ１２１ａに入力することにより、単語ベクトルＡを抽出する（Ｓ１１０）。同様に、ベクトル抽出部１３３は、単語をコーパスモデルＢ１２１ｂに入力することにより、単語ベクトルＢを抽出する（Ｓ１２０）。そして、ベクトル抽出部１３３は、抽出した単語ベクトルＡ及び単語ベクトルＢを、ベクトル結合部１３４に出力する。
【００３８】
ベクトル結合部１３４は、出力された単語ベクトルＡ及び単語ベクトルＢを結合して、単語ベクトルＣを生成する（Ｓ１３０）。そして、ベクトル結合部１３４は、入力テキストから区分された全ての単語について、ベクトル化が完了したか否かを判定する（Ｓ１４０）。
【００３９】
ベクトル結合部１３４は、ベクトル化が完了していないと判定した場合（Ｓ１４０：Ｎｏ）、Ｓ１０１に戻って処理を繰り返す。一方、ベクトル結合部１３４は、ベクトル化が完了したと判定した場合（Ｓ１４０：Ｙｅｓ）、単語ごとに生成された単語ベクトルＣを結合して、入力テキスト全体をベクトル化し（Ｓ１５０）、回答検索部１３５に出力する。
【００４０】
回答検索部１３５は、出力された入力テキスト全体のベクトルを、検索時学習モデル１２２に入力することにより、入力テキストに類似する回答を検索し（Ｓ１６０）、検索結果を出力部１３６に出力する。そして、出力部１３６は、出力された検索結果を、図示しない通信部又は表示部を通じて出力する（Ｓ１７０）。
【００４１】
［効果］
以上説明したように、本実施例における生成プログラムは、単語を受け付け、単語に第１の変換パラメータ及び第２の変換パラメータをそれぞれ適用して、単語に応じた第１のベクトル及び第２のベクトルを生成する処理をコンピュータに実行させる。生成プログラムは、生成した第１のベクトル及び第２のベクトルに基づき、単語に応じた新たな第３のベクトルを生成する処理をコンピュータに実行させる。これにより、変換パラメータに含まれる特徴を保持できる。
【００４２】
また、生成プログラムは、複数の判別対象の文章に含まれる単語またはフレーズの素性に関する学習を実行した学習モデルを用いて、第３のベクトルから、受け付けた単語と前記複数の判別対象の文章との判別結果を取得する処理をコンピュータに実行させてもよい。これにより、文章の検索処理において、変換パラメータに含まれる特徴を、検索結果に反映させることができる。
【００４３】
本実施例におけるベクトル生成処理の効果について、図８及び図９を用いて説明する。図８は、背景技術におけるベクトル生成処理の一例を示す図である。背景技術においては、図８に示すように、２つのコーパスＡ及びＢを結合した総合コーパスから、コーパスモデルが生成される。
【００４４】
この際、例えば２つのコーパスの大きさに偏りがある場合など、いずれかのコーパスに含まれる特徴が、コーパスモデルに反映されずに失われる可能性がある。この場合、入力単語を当該コーパスモデルに入力して得られる単語ベクトルにおいて、各コーパスの特徴が反映されない場合がある。これにより、単語ベクトルを学習モデルに入力することにより得られる回答においても、コーパスの特徴が失われる場合がある。
【００４５】
一方、実施例１においては、図９に示すように、コーパスそのものを結合するのではなく、コーパスＡ及びＢから生成された各コーパスモデルＡ及びＢから得られた単語ベクトルを結合する。図９は、実施例１におけるベクトル生成処理の一例を示す図である。図９に示すように、実施例１における検索処理においては、単語ベクトルＡ及び単語ベクトルＢの特徴が残る、図６に示すような単語ベクトルＣを用いる。単語ベクトルＡ及び単語ベクトルＢは、それぞれコーパスＡ及びコーパスＢの特徴を残すものであるので、単語ベクトルＣを学習モデルに入力することにより得られる回答においても、各コーパスの特徴を反映させることができる。
【００４６】
また、生成プログラムは、例えば生成した第１のベクトルと第２のベクトルとを連結して第３のベクトルを生成する処理をコンピュータに実行させてもよい。これにより、各ベクトルに含まれる要素を、そのまま残すことができる。
【００４７】
なお、生成プログラムは、複数の単語を含むテキストデータを受け付け、テキストデータに応じた第１のベクトル及び第２のベクトルを生成し、テキストデータに応じた新たな第３のベクトルを生成する処理をコンピュータに実行させてもよい。つまり、単語素性の系列は複数であっても単数であってもよい。これにより、単語ではなく、質問文などの自然言語の文章を用いた検索ができる。なお、テキストデータに含まれる各単語から生成された各単語ベクトルをニューラルネットワークに順次入力するのではなく、各単語ベクトルを結合した１つの入力データをニューラルネットワークに入力する手法を採用することもできる。
【実施例２】
【００４８】
単語ベクトルを生成する際に、入力単語がいずれかのコーパスに含まれない場合、すなわちコーパスから生成されるコーパスモデルに当該入力単語が登録されていない場合がある。そこで、実施例２においては、いずれかのコーパスに登録されていない入力単語があることを示す、結合された単語ベクトルを生成する構成について説明する。なお、いずれかのコーパスに登録されていない入力単語を、以下において「未知語」と表記する場合がある。
【００４９】
実施例２における生成プログラムは、未知語であることを示す単語ベクトルを、もう一方の当該未知語を含むコーパスに対応する単語ベクトルと結合する。図１０は、実施例２におけるベクトル生成処理の一例を示す図である。図１０に示すように、コーパスモデルＢ１２１ｂにおいては、コーパスモデルＡ１２１ａに含まれる「ノートＰＣ」という単語が登録されていない。
【００５０】
この場合において、生成プログラムは、入力単語が「ノートＰＣ」である場合、コーパスモデルＡ１２１ａを参照して、単語ベクトルＡを抽出する処理をコンピュータに実行させる。一方、生成プログラムは、コーパスモデルＢ１２１ｂに「ノートＰＣ」が登録されていないため、単語ベクトルＢを抽出する処理を実行させることができない。
【００５１】
この場合において、生成プログラムは、入力単語が未知語であることを示す単語ベクトルＢ２を生成し、単語ベクトルＡと結合する処理をコンピュータに実行させる。
【００５２】
例えば、生成プログラムは、全ての要素が０であるベクトルを、単語ベクトルＡに連結させたベクトルＣ２を生成する処理をコンピュータに実行させる。また、生成プログラムは、単語ベクトルＡを複製して、単語ベクトルＡに連結したベクトルＣ３を生成する処理をコンピュータに実行させてもよい。さらに、生成プログラムは、後に説明する未知語ベクトル記憶部２２４に予め記憶された未知語ベクトルを、単語ベクトルＡに連結させたベクトルＣ４を生成する処理をコンピュータに実行させてもよい。
【００５３】
［機能ブロック］
次に、当該生成プログラムを実行する生成装置について、図１１を用いて説明する。図１１は、実施例２における生成装置の一例を示す図である。なお、以下の実施例において、先に説明した図面に示す部位と同一の部位には同一の符号を付し、重複する説明は省略する。
【００５４】
図１１に示すように、本実施例における生成装置２０は、記憶部２２０と、制御部２３０とを有する。記憶部２２０は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやプロセッサなどである。この記憶部１２０は、コーパスモデルＡ１２１ａ及びコーパスモデルＢ１２１ｂ、検索時学習モデル１２２並びに回答記憶部１２３に加えて、さらに未知語ベクトル記憶部２２４を記憶する。
【００５５】
未知語ベクトル記憶部２２４は、入力単語が未知語であることを示す未知語ベクトルを記憶する。実施例２において、未知語ベクトルは、例えば乱数ベクトルであるが、後に説明するように、コーパスモデルＡ及びコーパスモデルＢを学習することにより生成されたベクトルであってもよい。未知語ベクトル記憶部２２４に記憶される情報は、例えば図示しない生成装置２０の管理者により予め入力され、又は後に説明する未知語ベクトル処理部２３７により入力される。
【００５６】
制御部２３０は、生成装置２０全体を司る処理部であり、例えばプロセッサなどである。制御部２３０は、受付部１３１、単語抽出部１３２、ベクトル結合部１３４、回答検索部１３５及び出力部１３６に加えて、さらにベクトル抽出部２３３及び未知語ベクトル処理部２３７を有する。なお、ベクトル抽出部２３３及び未知語ベクトル処理部２３７も、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００５７】
ベクトル抽出部２３３は、ベクトル抽出部１３３と同様に、入力単語が区分された単語群に対応する単語ベクトルを、コーパスモデルごとに複数抽出して、ベクトル結合部１３４に出力する。その際、ベクトル抽出部２３３は、各コーパスモデルに入力単語が登録されているか否かを判定する。
【００５８】
ベクトル抽出部２３３は、コーパスモデルに入力単語が登録されていないと判定した場合、未知語ベクトル処理部２３７に、未知語ベクトルの取得要求を出力する。そして、ベクトル抽出部２３３は、取得した未知語ベクトルを、当該コーパスモデルに対応する単語ベクトルとして、ベクトル結合部１３４に出力する。
【００５９】
未知語ベクトル処理部２３７は、ベクトル抽出部２３３から未知語ベクトルの取得要求を受けると、未知語ベクトルをベクトル抽出部２３３に出力する。未知語ベクトル処理部２３７は、図１０に示すように、例えば、全ての要素が０であるベクトルを、未知語ベクトルとして出力する。
【００６０】
また、未知語ベクトル処理部２３７は、例えばベクトル抽出部２３３から抽出済みの単語ベクトルを含む未知語ベクトルの取得要求を受け、取得要求に含まれる抽出済みの単語ベクトルを、未知語ベクトルとして出力してもよい。さらに、未知語ベクトル処理部２３７は、例えば未知語ベクトル記憶部２２４に記憶された未知語ベクトルを取得して、ベクトル抽出部２３３に出力してもよい。
【００６１】
［処理の流れ］
次に、本実施例における処理について、図１２を用いて説明する。図１２は、実施例２における回答抽出処理の一例を示すフローチャートである。なお、以下の説明において、図７に示すステップと同じ符号については同様のステップであるため、詳細な説明を省略する。
【００６２】
図１２に示すように、生成装置２０のベクトル抽出部２３３は、単語がコーパスモデルＡ１２１ａに登録済みであるか否かを判定する（Ｓ１０２）。ベクトル抽出部２３３は、単語がコーパスモデルＡ１２１ａに登録済みであると判定した場合（Ｓ１０２：Ｙｅｓ）、単語ベクトルＡを抽出し（Ｓ１１０）、Ｓ１１２に移行する。
【００６３】
一方、ベクトル抽出部２３３は、単語がコーパスモデルＡ１２１ａに登録済みではないと判定した場合（Ｓ１０２：Ｎｏ）、未知語ベクトル処理部２３７に、未知語ベクトルの取得要求を出力する。
【００６４】
未知語ベクトル処理部２３７は、未知語ベクトルの取得要求の出力を受けると、未知語ベクトルをベクトル抽出部２３３に出力し（Ｓ１１１）、Ｓ１１２に移行する。
【００６５】
同様に、ベクトル抽出部２３３は、単語がコーパスモデルＢ１２１ｂに登録済みであるか否かを判定する（Ｓ１１２）。ベクトル抽出部２３３は、単語がコーパスモデルＢ１２１ｂに登録済みであると判定した場合（Ｓ１１２：Ｙｅｓ）、単語ベクトルＢを抽出し（Ｓ１２０）、Ｓ１３０に移行する。
【００６６】
一方、ベクトル抽出部２３３は、単語がコーパスモデルＢ１２１ｂに登録済みではないと判定した場合（Ｓ１１２：Ｎｏ）、未知語ベクトル処理部２３７に、未知語ベクトルの取得要求を出力する。
【００６７】
未知語ベクトル処理部２３７は、未知語ベクトルの取得要求の出力を受けると、未知語ベクトルをベクトル抽出部２３３に出力し（Ｓ１２１）、Ｓ１３０に移行する。
【００６８】
［効果］
以上説明したように、実施例２における生成プログラムは、単語が第１の変換パラメータ又は第２の変換パラメータに含まれない未知語であると判定した場合、未知語であることを示すベクトルを生成する処理をコンピュータに実行させる。これにより、入力単語が未知語であることを示す、結合された単語ベクトルを生成できる。
【００６９】
なお、生成プログラムは、未知語であることを示すベクトルとして、０ベクトル又は乱数ベクトルを生成する処理をコンピュータに実行させてもよい。また、生成プログラムは、未知語であることを示すベクトルとして、未知語であると判定されなかった第１又は第２のベクトルを複製したベクトルを生成する処理をコンピュータに実行させてもよい。これにより、未知語ベクトルを任意の形で生成できる。
【００７０】
なお、未知語ベクトル処理部２３７は、未知語ベクトルとして、乱数ベクトルの代わりに、コーパスモデルＡ及びコーパスモデルＢを学習することにより、未知語ベクトルを生成してもよい。
【００７１】
図１３は、実施例２におけるベクトル生成処理の別の一例を示す図である。図１３に示すように、未知語ベクトル処理部２３７は、コーパスモデルＡ及びコーパスモデルＢに共通して含まれる「ＰＣ」、「スマホ」、「タブレット」などの各単語の単語ベクトルを用いて学習することにより、未知語ベクトルＢ３を生成する。
【００７２】
このように、実施例２における生成プログラムは、第１のベクトルと第２のベクトルとの組み合わせを用いて学習処理を行うことにより、未知語であることを示すベクトルを生成する処理をコンピュータに実行させてもよい。これにより、各コーパスの特徴に即した未知語ベクトルを生成できる。
【実施例３】
【００７３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。  
【００７４】
例えば、ベクトル結合部１３４が、単語ベクトルＡと単語ベクトルＢとを連結する構成について説明したが、これに限られず、単語ベクトルＡと単語ベクトルＢとを演算するような構成であってもよい。
【００７５】
図１４は、実施例３におけるベクトル結合処理の一例を示す図である。図１４に示すように、実施例３における図示しないベクトル結合部３３４は、単語ベクトルＡと単語ベクトルＢとを加算することにより、結合された単語ベクトルＣ６を生成する。
【００７６】
このように、生成プログラムは、生成した第１のベクトルと第２のベクトルとを演算することにより、第３のベクトルを生成する処理をコンピュータに実行させてもよい。これにより、結合前の単語ベクトルの次元を増加させることなく、複数の単語ベクトルを結合させることができる。
【００７７】
また、ベクトル結合部１３４が、次元が同一である単語ベクトルＡと単語ベクトルＢとを連結する構成について説明したが、これに限られず、単語ベクトルＡと単語ベクトルＢとで次元が異なるような構成であってもよい。
【００７８】
図１５は、実施例３におけるベクトル生成処理の一例を示す図である。図１５に示すように、実施例３におけるコーパスモデルＡ’３２１ａは、２００次元の単語ベクトルを記憶する。一方、実施例３におけるコーパスモデルＢ’３２１ｂは、１００次元の単語ベクトルを記憶する。この場合において、図示しないベクトル抽出部３３３は、２００次元の単語ベクトルＡと、１００次元の単語ベクトルＢとをそれぞれ抽出してもよい。また、図示しないベクトル結合部３３４は、２００次元の単語ベクトルＡと、１００次元の単語ベクトルＢとを結合することにより、３００次元の単語ベクトルＣを生成してもよい。
【００７９】
このように、生成プログラムは、第１のベクトルとは次元が異なる第２のベクトルを生成する処理をコンピュータに実行させてもよい。これにより、各コーパスモデルに対応する各単語ベクトルの重み付けを変化させることができる。
【００８０】
また、２つのコーパスから生成されたコーパスモデルＡ及びコーパスモデルＢを用いる構成について説明したが、コーパスモデルの数はこれに限られず、３つ以上のコーパスモデルを用いるような構成であってもよい。
【００８１】
図１６は、実施例３におけるベクトル生成処理の別の一例を示す図である。図１６に示すように、実施例３においては、図１０に示す例と同様のコーパスＡから生成されたコーパスモデルＡ及びコーパスＢから生成されたコーパスモデルＢに加えて、コーパスＮから生成されたコーパスモデルＮがさらに用いられる。この場合において、図示しないベクトル抽出部３３３は、単語ベクトルＡと、単語ベクトルＢとに加えて、コーパスモデルＮを用いて単語ベクトルＮをさらに抽出してもよい。また、図示しないベクトル結合部３３４は、単語ベクトルＡと、単語ベクトルＢとに加えて、単語ベクトルＮをさらに結合して、単語ベクトルＣを生成してもよい。
【００８２】
このように、生成プログラムは、単語に第３の変換パラメータをさらに適用して、単語に応じた第４のベクトルをさらに生成する処理をコンピュータに実行させてもよい。また、生成プログラムは、第１のベクトル及び第２のベクトルに加えて、さらに第４のベクトルに基づき、単語に応じた新たな第３のベクトルを生成する処理をコンピュータに実行させてもよい。これにより、３つ以上のコーパスの特徴を保持した単語ベクトルを利用することができる。
【００８３】
ところで、ベクトルを結合すると、ベクトルの次元が大きくなり、検索処理に時間を要する場合がある。そこで、第１のベクトル、第２のベクトル及び第３のベクトルのうち、いずれか１つ又は２つ以上の組み合わせを選択するような構成であってもよい。この場合において、選択されたベクトルに対応する学習モデルを用いて、受け付けた単語と複数の判別対象の文章との判別結果を取得するような構成であってもよい。これにより、処理負荷に応じて適切な大きさのベクトルを採用することができる。
【００８４】
なお、実施の形態は日本語の文書を対象とする分散学習に限られず、例えば英語や中国語などのその他の言語の文書を用いてもよい。
【００８５】
［ニューラルネットワーク］
また、事前学習処理には、例えばＲＮＮ（再帰型ニューラルネットワーク：Recurrent  Neural  Network）や、ＣＮＮ（Convolutional  Neural  Network）などの任意のニューラルネットワークを用いることができる。また、学習の手法としては、誤差逆伝播（error  Back  Propagation：BP）法など、公知の様々な手法を採用することができる。なお、ニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。  
【００８６】
［システム］
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１１に示すベクトル抽出部２３３と未知語ベクトル処理部２３７とを統合してもよい。また、図２に示す回答検索部１３５を、生成装置１０とは別のコンピュータにより実現してもよい。すなわち、推論処理及び結合処理とがそれぞれ異なる筐体で実行されてもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８８】
［ハードウェア構成］
図１７は、ハードウェア構成例を示す図である。図１７に示すように、生成装置１０は、通信インタフェース１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。なお、以下においては実施例１における生成装置１０について説明するが、その他の実施例における生成装置も、同様の構成により実現できる。
【００８９】
通信インタフェース１０ａは、他の装置の通信を制御するネットワークインタフェースカードなどである。ＨＤＤ１０ｂは、プログラムやデータなどを記憶する記憶装置の一例である。  
【００９０】
メモリ１０ｃの一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ１０ｄの一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。  
【００９１】
また、生成装置１０は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。つまり、生成装置１０は、受付部１３１、単語抽出部１３２、ベクトル抽出部１３３、ベクトル結合部１３４、回答検索部１３５及び出力部１３６と同様の機能を実行するプログラムを実行する。この結果、生成装置１０は、受付部１３１、単語抽出部１３２、ベクトル抽出部１３３、ベクトル結合部１３４、回答検索部１３５及び出力部１３６と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、生成装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００９２】
１０、２０  生成装置
１２０、２２０  記憶部
１２１ａ  コーパスモデルＡ
１２１ｂ  コーパスモデルＢ
１２２  検索時学習モデル
１２３  回答記憶部
２２４  未知語ベクトル記憶部
１３０、２３０  制御部
１３１  受付部
１３２  単語抽出部
１３３、２３３  ベクトル抽出部
１３４  ベクトル結合部
１３５  回答検索部
１３６  出力部
２３７  未知語ベクトル処理部
【図１】
2019082860.tif 000003
【図２】
2019082860.tif 000004
【図３】
2019082860.tif 000005
【図４】
2019082860.tif 000006
【図５】
2019082860.tif 000007
【図６】
2019082860.tif 000008
【図７】
2019082860.tif 000009
【図８】
2019082860.tif 000010
【図９】
2019082860.tif 000011
【図１０】
2019082860.tif 000012
【図１１】
2019082860.tif 000013
【図１２】
2019082860.tif 000014
【図１３】
2019082860.tif 000015
【図１４】
2019082860.tif 000016
【図１５】
2019082860.tif 000017
【図１６】
2019082860.tif 000018
【図１７】
2019082860.tif 000019