(57)【要約】【課題】  ベクトルを精度良く求めることができる。【解決手段】  本発明による言語処理装置は、文言を入力する文言入力部と、第１単語と、前記第１単語を識別する第１識別番号とを対応させた第１辞書を入力する第１辞書入力部と、前記第１識別番号に対応させて、前記第１単語をベクトル表現した第１単語ベクトルを入力する第１単語ベクトル入力部と、第２単語と、前記第２単語を識別する第２識別番号とを対応させた第２辞書を入力する第２辞書入力部と、前記第２識別番号に対応させて、前記第２単語をベクトル表現した第２単語ベクトルを入力する第２単語ベクトル入力部と、前記文言に対応する前記第１単語ベクトルと、前記文言に対応する前記第２単語ベクトルとに基づいて第１相違度を計算する計算部と、前記第１相違度に基づいて、前記第１単語ベクトル及び前記第２単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正部とを備える。【選択図】図１
2019128788.tif 000002
【特許請求の範囲】
【請求項１】
文言を入力する文言入力部と、
第１単語と、前記第１単語を識別する第１識別番号とを対応させた第１辞書を入力する第１辞書入力部と、
前記第１識別番号に対応させて、前記第１単語をベクトル表現した第１単語ベクトルを入力する第１単語ベクトル入力部と、
第２単語と、前記第２単語を識別する第２識別番号とを対応させた第２辞書を入力する第２辞書入力部と、
前記第２識別番号に対応させて、前記第２単語をベクトル表現した第２単語ベクトルを入力する第２単語ベクトル入力部と、
前記文言に対応する前記第１単語ベクトルと、前記文言に対応する前記第２単語ベクトルとに基づいて、第１相違度を計算する計算部と、
前記第１相違度に基づいて、前記第１単語ベクトル及び前記第２単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正部と
を備える言語処理装置。
【請求項２】
文言を入力する文言入力部と、
単語と、前記単語をベクトル表現した単語ベクトルとを対応させた第３単語ベクトルデータを入力する第３単語ベクトル入力部と、
前記文言が語彙に属するか否かを判定した結果を示す第１判定結果データを入力する第１判定結果データ入力部と、
前記文言が前記語彙に属するか否かをパラメータに基づいて判定した結果を示す第２判定結果データを生成する判定部と、
前記第１判定結果データ及び前記第２判定結果データに基づいて、前記パラメータを訂正するパラメータ訂正部と
を備える言語処理装置。
【請求項３】
単語及び前記単語に対応する単語ベクトルと、複数の単語で構成される単語列及び前記単語列に対応する単語列ベクトルとを入力する単語列ベクトル入力部と、
単語及び単語列を含む文言を入力する文言入力部と、
前記文言に含まれる単語列をベクトル表現した状態ベクトルを計算する状態ベクトル計算部と、
前記単語列ベクトル及び前記状態ベクトルに基づいて第２相違度を計算する第２相違度計算部と、
前記第２相違度に基づいて、次の状態ベクトルを計算するのに用いられる学習データを訂正する学習データ訂正部と
を備える言語処理装置。
【請求項４】
文言を入力する文言入力部と、
単語と、前記単語をベクトル表現した単語ベクトルとを対応させた第３単語ベクトルデータを入力する第３単語ベクトル入力部と、
前記文言が前記第３単語ベクトルデータが示す語彙に属するか否かを判定した結果を示す第１判定結果データを入力する第１判定結果データ入力部と、
前記文言が前記語彙に属するか否かをパラメータに基づいて判定した結果を示す第２判定結果データを生成する判定部と、
前記第１判定結果データ及び前記第２判定結果データに基づいて、前記パラメータを訂正するパラメータ訂正部と
を備え、
前記パラメータ訂正部で訂正されたパラメータに基づいて、判定された単語を集めた辞書を前記第２辞書とする
請求項１に記載の言語処理装置。
【請求項５】
文言を入力する文言入力部と、
第１単語と、前記第１単語を識別する第１識別番号とを対応させた第１辞書を入力する第１辞書入力部と、
前記第１識別番号に対応させて、前記第１単語をベクトル表現した第１単語ベクトルを入力する第１単語ベクトル入力部と、
第２単語と、前記第２単語を識別する第２識別番号とを対応させた第２辞書を入力する第２辞書入力部と、
前記第２識別番号に対応させて、前記第２単語をベクトル表現した第２単語ベクトルを入力する第２単語ベクトル入力部と、
前記文言に対応する前記第１単語ベクトルと、前記文言に対応する前記第２単語ベクトルとに基づいて第１相違度を計算する計算部と、
前記第１相違度に基づいて、前記第１単語ベクトル及び前記第２単語ベクトルを訂正する単語ベクトル訂正部と
を備え、
前記単語列ベクトル入力部は、前記単語ベクトル訂正部が訂正した単語ベクトルを入力する請求項３に記載の言語処理装置。
【請求項６】
前記計算部は、前記第１単語の近くに前記第２単語が現れる確率を推定した値である確率値に基づいて、前記確率値が大きいほど、値が小さくなる前記第１相違度を計算する請求項１、４又は５に記載の言語処理装置。
【請求項７】
言語処理装置が行う言語処理方法であって、
言語処理装置が、文言を入力する文言入力手順と、
言語処理装置が、第１単語と、前記第１単語を識別する第１識別番号とを対応させた第１辞書を入力する第１辞書入力手順と、
言語処理装置が、前記第１識別番号に対応させて、前記第１単語をベクトル表現した第１単語ベクトルを入力する第１単語ベクトル入力手順と、
言語処理装置が、第２単語と、前記第２単語を識別する第２識別番号とを対応させた第２辞書を入力する第２辞書入力手順と、
言語処理装置が、前記第２識別番号に対応させて、前記第２単語をベクトル表現した第２単語ベクトルを入力する第２単語ベクトル入力手順と、
言語処理装置が、前記文言に対応する前記第１単語ベクトルと、前記文言に対応する前記第２単語ベクトルとに基づいて第１相違度を計算する計算手順と、
言語処理装置が、前記第１相違度に基づいて、前記第１単語ベクトル及び前記第２単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正手順と
を含む言語処理方法。
【請求項８】
コンピュータに言語処理方法を実行させるためのプログラムであって、
コンピュータが、文言を入力する文言入力手順と、
コンピュータが、第１単語と、前記第１単語を識別する第１識別番号とを対応させた第１辞書を入力する第１辞書入力手順と、
コンピュータが、前記第１識別番号に対応させて、前記第１単語をベクトル表現した第１単語ベクトルを入力する第１単語ベクトル入力手順と、
コンピュータが、第２単語と、前記第２単語を識別する第２識別番号とを対応させた第２辞書を入力する第２辞書入力手順と、
コンピュータが、前記第２識別番号に対応させて、前記第２単語をベクトル表現した第２単語ベクトルを入力する第２単語ベクトル入力手順と、
コンピュータが、前記文言に対応する前記第１単語ベクトルと、前記文言に対応する前記第２単語ベクトルとに基づいて第１相違度を計算する計算手順と、
コンピュータが、前記第１相違度に基づいて、前記第１単語ベクトル及び前記第２単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、言語処理装置、言語処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、音声認識、文字認識、機械翻訳又は質問応答等の言語処理サービスが提供されている。このような言語処理サービスを実現させるため、機械学習を行う方法が知られている。
【０００３】
例えば、単語に対応する埋め込みベクトルと呼ばれるベクトルを学習する方法が知られている（例えば、非特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、単語をベクトル表現した、いわゆる単語ベクトル等のベクトルが精度良く求められない場合がある。
【０００５】
本発明の一態様は、ベクトルを精度良く求めることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態による、言語処理装置は、
文言を入力する文言入力部と、
第１単語と、前記第１単語を識別する第１識別番号とを対応させた第１辞書を入力する第１辞書入力部と、
前記第１識別番号に対応させて、前記第１単語をベクトル表現した第１単語ベクトルを入力する第１単語ベクトル入力部と、
第２単語と、前記第２単語を識別する第２識別番号とを対応させた第２辞書を入力する第２辞書入力部と、
前記第２識別番号に対応させて、前記第２単語をベクトル表現した第２単語ベクトルを入力する第２単語ベクトル入力部と、
前記文言に対応する前記第１単語ベクトルと、前記文言に対応する前記第２単語ベクトルとに基づいて第１相違度を計算する計算部と、
前記第１相違度に基づいて、前記第１単語ベクトル及び前記第２単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正部と
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明の実施形態によって、ベクトルを精度良く求められる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。
【図２】本実施形態に係る言語処理装置のハードウェア構成例を示すブロック図である。
【図３】第１実施形態に係る言語処理装置による全体処理例を示すフローチャートである。
【図４】第１実施形態に係る第１辞書の例を示す図である。
【図５】第１実施形態に係る第１単語ベクトルデータの例を示す図である。
【図６】第１実施形態に係る第２辞書の例を示す図である。
【図７】第１実施形態に係る第２単語ベクトルデータの例を示す図である。
【図８】第１実施形態に係る言語処理装置による単語の取り出し例を示す図である。
【図９】第１実施形態に係る言語処理装置によって計算される内積値及び確率値の例を示す図である。
【図１０】第２実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。
【図１１】第２実施形態に係る言語処理装置による全体処理例を示すフローチャートである。
【図１２】第２実施形態に係るパラメータの例を示す図である。
【図１３】第２実施形態に係る第３単語ベクトルデータの例を示す図である。
【図１４】第２実施形態に係る第１判定結果データの例を示す図である。
【図１５】第２実施形態に係る第２判定結果データの生成例を示す図である。
【図１６】第３実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。
【図１７】第３実施形態に係る言語処理装置による全体処理例を示すフローチャートである。
【図１８】第３実施形態に係る単語列ベクトルデータの例を示す図である。
【図１９】第３実施形態に係る学習データの例を示す図である。
【発明を実施するための形態】
【０００９】
以下、発明を実施するための最適な形態について、図面を参照して説明する。
【００１０】
＜第１実施形態＞
ベクトルは、例えば、単語ベクトル等である。また、単語ベクトルは、自然言語処理等で用いられ、単語をベクトル表現したものである。なお、単語ベクトルは、単語を分散表現又は埋め込み表現したデータと呼ばれる場合もある。
【００１１】
単語ベクトルは、各単語の特徴等を示すため、単語ベクトルが近傍となる単語は、同じような特徴である場合が多い。例えば、単語ベクトルが近い単語は、文章等において同じような意味又は形式等で用いられやすいので、前後に現れる、すなわち、一緒に用いられる単語も類似しやすい。例えば、「本」という単語と、「書籍」という単語は、同じような用いられ方をするため、単語ベクトルも近くなる場合が多い。また、単語ベクトルが近いか否かは、例えば、２つの単語ベクトルの内積値等で判断できる。
【００１２】
また、単語ベクトルを含むベクトルは、あらかじめ設定される次元数である。次元数は、ベクトルを構成する要素の数となる。したがって、次元数が大きいと、多様な単語を表現できる。例えば、次元数を「３」とすると、単語ベクトルは、単語ベクトルＶ＝（０．１，０．２，０．３）のように、３つの要素で構成される。なお、単語ベクトルの要素が示すそれぞれの値は、初期値及び範囲があらかじめ設定される。
【００１３】
以下、単語ベクトルの次元数を「３」とする例で説明する。ただし、次元数は、３以外でもよい。次元数は、各単語の特徴等を示すため、次元数が多いと、多様に表現できるため、多くの単語を表現できる。一方で、次元数が少ないと、処理対象となる要素が少ないため、記憶領域又は計算量等を少なくできる。例えば、日本語又は英語によって記載される文章を対象とする場合には、次元数は、１００乃至３００程度であるのが望ましい。すなわち、１００乃至３００程度の次元数であると、単語ベクトルは、日本語又は英語の文章において登場するそれぞれの単語を異なるように表現することができ、かつ、単語ベクトルのデータ量等が大量になるのを防ぐことができる。
【００１４】
＜全体構成例＞
図１は、第１実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。例えば、言語処理装置１０は、図示するように、文言入力部１０Ｆ１、第１辞書入力部１０Ｆ２、第１単語ベクトル入力部１０Ｆ３、第２辞書入力部１０Ｆ４及び第２単語ベクトル入力部１０Ｆ５を備える機能構成である。さらに、言語処理装置１０は、図示するように、計算部１０Ｆ６及び単語ベクトル訂正部１０Ｆ７を備える機能構成である。
【００１５】
文言入力部１０Ｆ１は、文言ＤＣ１を入力する文言入力手順を行う。例えば、文言入力部１０Ｆ１は、図２に示す入力装置１０Ｈ３又はインタフェース（ｉｎｔｅｒｆａｃｅ）１０Ｈ５等によって実現される。
【００１６】
第１辞書入力部１０Ｆ２は、第１辞書ＤＩ１を入力する第１辞書入力手順を行う。例えば、第１辞書入力部１０Ｆ２は、図２に示す入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【００１７】
第１単語ベクトル入力部１０Ｆ３は、第１単語ベクトルを入力する第１単語ベクトル入力手順を行う。例えば、第１単語ベクトル入力部１０Ｆ３は、図２に示す入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【００１８】
第２辞書入力部１０Ｆ４は、第２辞書ＤＩ２を入力する第２辞書入力手順を行う。例えば、第２辞書入力部１０Ｆ４は、図２に示す入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【００１９】
第２単語ベクトル入力部１０Ｆ５は、第２単語ベクトルを入力する第２単語ベクトル入力手順を行う。例えば、第２単語ベクトル入力部１０Ｆ５は、図２に示す入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【００２０】
計算部１０Ｆ６は、例えば、図示するように、内積値計算部１０Ｆ６１、確率値計算部１０Ｆ６２及び第１相違度計算部１０Ｆ６３を有する機能構成である。また、計算部１０Ｆ６は、第１単語ベクトル及び第２単語ベクトルに基づいて、内積値及び確率値等を計算し、第１相違度を計算する計算手順を行う。例えば、計算部１０Ｆ６は、図２に示すＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０Ｈ１等によって実現される。
【００２１】
単語ベクトル訂正部１０Ｆ７は、第１単語ベクトルデータＤＶ１に含まれる第１単語ベクトル及び第２単語ベクトルデータＤＶ２に含まれる第２単語ベクトルのうち、少なくともいずれか一方を訂正する単語ベクトル訂正手順を行う。例えば、単語ベクトル訂正部１０Ｆ７は、図２に示すＣＰＵ１０Ｈ１等によって実現される。
【００２２】
以下、図示するような機能構成である場合を例に説明する。
【００２３】
＜ハードウェア構成例＞
図２は、本実施形態に係る言語処理装置のハードウェア構成例を示すブロック図である。例えば、言語処理装置１０は、図示するようなハードウェア構成である。すなわち、言語処理装置１０は、いわゆるＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等である情報処理装置である。具体的には、図示するように、言語処理装置１０は、ＣＰＵ１０Ｈ１、記憶装置１０Ｈ２、入力装置１０Ｈ３、出力装置１０Ｈ４及びインタフェース１０Ｈ５等を有するハードウェア構成である。
【００２４】
ＣＰＵ１０Ｈ１は、演算装置及び制御装置の例である。
【００２５】
記憶装置１０Ｈ２は、メモリ等の主記憶装置である。なお、記憶装置１０Ｈ２は、ハードディスク等の補助記憶装置を有してもよい。
【００２６】
入力装置１０Ｈ３は、ユーザによる操作等を入力する装置である。例えば、入力装置１０Ｈ３は、キーボード及びコネクタ等である。
【００２７】
出力装置１０Ｈ４は、演算結果等をユーザに出力する装置である。例えば、出力装置１０Ｈ４は、ディスプレイ及びコネクタ等である。
【００２８】
インタフェース１０Ｈ５は、ネットワーク又は記録媒体等によって外部とデータを入出力する装置である。例えば、インタフェース１０Ｈ５は、コネクタ又はアンテナ等である。
【００２９】
なお、ハードウェア構成は、図示する構成に限られない。例えば、記憶装置、演算装置又は制御装置は、内部又は外部に複数ある構成でもよい。
【００３０】
＜全体処理例＞
図３は、第１実施形態に係る言語処理装置による全体処理例を示すフローチャートである。まず、言語処理装置は、図示するステップＳ１０１乃至ステップＳ１０４を行うことで、第１辞書ＤＩ１、第１単語ベクトルデータＤＶ１、第２辞書ＤＩ２及び第２単語ベクトルデータＤＶ２等といったデータを入力する。
【００３１】
＜第１辞書の入力例＞（ステップＳ１０１）
ステップＳ１０１では、言語処理装置は、第１辞書ＤＩ１を入力する。例えば、第１辞書ＤＩ１は、以下のようなデータである。
【００３２】
図４は、第１実施形態に係る第１辞書の例を示す図である。図示するように、第１辞書ＤＩ１は、第１単語と、第１識別番号とを対応させるデータである。
【００３３】
図における「第１単語」には、「Ａ」、「Ｂ」、「Ｃ」、・・・といった単語が入力される。そして、図示する「第１識別番号」のように、第１辞書ＤＩ１には、「第１単語」に対して、各単語を識別できるそれぞれの識別番号が入力される。
【００３４】
＜第１単語ベクトルデータの入力例＞（ステップＳ１０２）
ステップＳ１０２では、言語処理装置は、第１単語ベクトルデータＤＶ１を入力する。例えば、第１単語ベクトルデータＤＶ１は、以下のようなデータである。
【００３５】
図５は、第１実施形態に係る第１単語ベクトルデータの例を示す図である。図示するように、第１単語ベクトルデータＤＶ１は、第１識別番号と、第１単語ベクトルとを対応させるデータである。したがって、第１識別番号が定まると、第１単語ベクトルデータＤＶ１によって、言語処理装置は、第１識別番号に対応する第１単語ベクトルが特定できる。また、第１辞書ＤＩ１における第１識別番号と、第１単語ベクトルデータＤＶ１における第１識別番号とは同じとし、言語処理装置は、第１辞書ＤＩ１及び第１単語ベクトルデータＤＶ１があると、所定の単語に対応する第１単語ベクトルを特定できる。
【００３６】
＜第２辞書の入力例＞（ステップＳ１０３）
ステップＳ１０３では、言語処理装置は、第２辞書ＤＩ２を入力する。第２辞書ＤＩ２は、第１辞書ＤＩ１とは別個に用意される辞書である。例えば、第２辞書ＤＩ２は、以下のようなデータである。
【００３７】
図６は、第１実施形態に係る第２辞書の例を示す図である。図示するように、第２辞書ＤＩ２は、第２単語と、第２識別番号とを対応させるデータである。
【００３８】
図示する例のように、「第２単語」には、「Ｂ」、「Ｃ」、「Ｅ」・・・といった単語が入力される。そして、図示する「第２識別番号」のように、第２辞書ＤＩ２には、「第２単語」に対して、各単語を識別できるそれぞれの識別番号が入力される。
【００３９】
なお、第１単語は、例えば、インターネット上に現れる単語であり、一方で、第２単語は、社内会議の議事録に現れる単語である等の違いがあるのが望ましい。すなわち、第１辞書ＤＩ１には、例えば、１０万語を超えるような種類の単語があるのに対して、第２辞書ＤＩ２には、例えば、５千語程度の種類の単語があるような違いがあるのが望ましい。以下、図１に示すように、第１辞書ＤＩ１及び第１単語ベクトルデータＤＶ１は、入力側で用いられるとし、第２辞書ＤＩ２及び第２単語ベクトルデータＤＶ２は、出力側で用いられる例で説明する。
【００４０】
インターネット上等では、様々な種類の単語がある。一方で、社内会議の議事録等には、インターネット上等と比較すると、少ない種類の単語に偏る場合が多い。したがって、第１辞書ＤＩ１には、登録される単語であっても、特定の会社内では、使用される頻度が小さい単語等は、第２辞書ＤＩ２には登録されない。このような違いがあると、図４と、図６とを比較するとわかるように、「Ａ」及び「Ｄ」といった単語は、第１辞書ＤＩ１にはあり、一方で、第２辞書ＤＩ２には、ない単語の例である。
【００４１】
逆に、「Ｂ」、「Ｃ」及び「Ｅ」といった単語は、インターネット上でも、社内会議の議事録でも使用される単語である。
【００４２】
この例における「Ａ」及び「Ｄ」といった単語は、インターネット上等の日常会話のような場面では使用される単語であるが、ビジネスの場面では使用されることが少ない単語である場合が多い。つまり、「Ａ」及び「Ｄ」といった単語は、ビジネスの場面にはふさわしくない単語である場合が多い。したがって、このように、第１単語及び第２単語に違いをつけると、音声認識等において、文言が第２辞書ＤＩ２によって定まる場面に使用されることが少ない単語に誤認識されるのを少なくすることができる。
【００４３】
＜第２単語ベクトルデータの入力例＞（ステップＳ１０４）
ステップＳ１０４では、言語処理装置は、第２単語ベクトルデータＤＶ２を入力する。例えば、第２単語ベクトルデータＤＶ２は、以下のようなデータである。
【００４４】
図７は、第１実施形態に係る第２単語ベクトルデータの例を示す図である。図示するように、第２単語ベクトルデータＤＶ２は、第２識別番号と、第２単語ベクトルとを対応させるデータである。したがって、第２識別番号が定まると、第２単語ベクトルデータＤＶ２によって、言語処理装置は、第２識別番号に対応する第２単語ベクトルが特定できる。また、第２辞書ＤＩ２における第２識別番号と、第２単語ベクトルデータＤＶ２における第２識別番号とは同じとし、言語処理装置は、第２辞書ＤＩ２及び第２単語ベクトルデータＤＶ２があると、所定の単語に対応する第２単語ベクトルを特定できる。
【００４５】
この例では、第１辞書ＤＩ１及び第２辞書ＤＩ２のどちらにも現れる単語の例として「Ｂ」という単語がある。第１辞書ＤＩ１によって、「Ｂ」は、第１識別番号が「２」と特定されるので、第１単語ベクトルは、第１単語ベクトルデータＤＶ１に基づいて第１識別番号「２」に対応する「（０．４，０．３，０．１）」と定まる。
【００４６】
一方で、第２辞書ＤＩ２によって、「Ｂ」は、第２識別番号が「１」と特定されるので、第２単語ベクトルは、第２単語ベクトルデータＤＶ２に基づいて第２識別番号「１」に対応する「（０．８，０．５，０．２）」と定まる。このように、第１単語ベクトルデータＤＶ１及び第２単語ベクトルデータＤＶ２によって、１つの単語に対して２つの単語ベクトルを用意する構成とする。
【００４７】
なお、第１辞書ＤＩ１、第１単語ベクトルデータＤＶ１、第２辞書ＤＩ２及び第２単語ベクトルデータＤＶ２は、図示するような表形式に限られず、他の形式であってもよい。また、ステップＳ１０１乃至ステップＳ１０４は、図示する順序でなくともよい。
【００４８】
＜文言の入力例＞（ステップＳ１０５）
ステップＳ１０５では、言語処理装置は、文言を入力する。以下、単語を含む文章等を「文言」という。文言は、例えば、テキストデータ又はユーザの操作等によって入力される。
【００４９】
＜文言に含まれる単語の取り出し例＞（ステップＳ１０６）
ステップＳ１０６では、言語処理装置は、文言に含まれる単語を取り出す。例えば、言語処理装置は、以下のように処理を行う。
【００５０】
図８は、第１実施形態に係る言語処理装置による単語の取り出し例を示す図である。まず、図示するような文言ＤＣ１がステップＳ１０５で入力されたとする。図示するように、文言ＤＣ１は、「Ｂ」、「Ｃ」及び「Ｅ」という単語を含む文言の例である。以下、文言ＤＣ１に含まれる「Ｂ」という単語１００が処理対象である例で説明する。
【００５１】
＜単語に対応する第１識別番号の取得例＞（ステップＳ１０７）
ステップＳ１０７では、言語処理装置は、単語に対応する第１識別番号を取得する。「Ｂ」という単語１００の例では、言語処理装置は、第１辞書ＤＩ１において「Ｂ」という単語１００には「２」という第１識別番号が対応するため、「２」という第１識別番号を取得する。
【００５２】
＜第１識別番号に対応する第１単語ベクトルの取得例＞（ステップＳ１０８）
ステップＳ１０８では、言語処理装置は、第１識別番号に対応する第１単語ベクトルを取得する。「Ｂ」という単語１００の例では、単語１００の第１識別番号として、ステップＳ１０７で第１識別番号が「２」が取得されているため、第１単語ベクトルデータＤＶ１において第１識別番号「２」に対応する「（０．４，０．３，０．１）」という第１単語ベクトルが取得される。
【００５３】
以下、第１単語ベクトルを「Ｖ」で示し、第１識別番号を「Ｎ」で示す。したがって、上記の「Ｂ」という単語１００に対する例は、例えば、下記（１０）式のように示せる。
Ｖ（Ｎ）＝  Ｖ（２）  ＝  （０．４，０．３，０．１）・・・（１０）式
以下、第２単語ベクトルを「Ｕ」で示し、第２識別番号を「Ｍ」で示す。したがって、この例における第２識別番号が「１」の場合（Ｍ＝１）には、「Ｂ」という単語１００に対する例は、下記（１１）式のように示せる。
Ｕ（Ｍ）＝  Ｕ（１）  ＝  （０．８，０．５，０．２）・・・（１１）式
＜内積値の計算例＞（ステップＳ１０９）
ステップＳ１０９では、言語処理装置は、内積値を計算する。内積値「Ｑ」は、第２識別番号ごとに、例えば、下記（１２）式のように第１単語ベクトル及び第２単語ベクトルに基づいて計算される。
Ｑ（Ｎ，Ｍ）＝  Ｖ（Ｎ）＊Ｕ（Ｍ）・・・（１２）式
以下に説明する例では、上記（１２）式で計算される内積値は、近い単語同士ほど、大きな値となる。
【００５４】
＜確率値の計算例＞（ステップＳ１１０）
ステップＳ１１０では、言語処理装置は、確率値を計算する。確率値「Ｐ」は、例えば、下記（１３）式のように計算される。
Ｐ（Ｎ，Ｍ）＝ｅｘｐ（Ｑ（Ｎ，Ｍ））／Σｅｘｐ（Ｑ（Ｎ，ｍ））・・・（１３）式
なお、上記（１３）式では、「ｅｘｐ」は、指数関数を示す。また、上記（１３）式では、「Σ」は、すべての第２識別番号「ｍ＝１、２、３・・・」に関する総和を示す。
【００５５】
このようにして計算される確率値「Ｐ（Ｎ，Ｍ）」は、第１識別番号が「Ｎ」の単語の近くに、第２識別番号が「Ｍ」の単語が現れる確率を推定した値を示す。すなわち、確率値が高い単語は、例えば、文章等において直後に現れる可能性が高い単語となりやすい。
【００５６】
ステップＳ１０９及びステップＳ１１０によって、例えば、内積値及び確率値は、例えば、以下のように計算される。
【００５７】
図９は、第１実施形態に係る言語処理装置によって計算される内積値及び確率値の例を示す図である。図示するように、言語処理装置は、第２識別番号「Ｍ」ごとに、それぞれの内積値「Ｑ」及び確率値「Ｐ」を計算する。
【００５８】
なお、図示する例は、上記（１３）式において、分母を「１０」と仮定して計算した例である。具体的には、「Ｍ＝１」とする場合では、内積値「Ｑ」が「０．６７２」と計算され、上記（１３）式において、分子は、「ｅｘｐ（０．６７２）＝１．９５８１・・・≒１．９６」である。したがって、分子「１．９６」を分母「１０」で除算すると、確率値「Ｐ」は、「１．９６÷１０＝０．１９６」と計算される。
【００５９】
＜近傍にある単語の出力例＞（ステップＳ１１１）
ステップＳ１１１では、言語処理装置は、近傍にある単語を出力する。
【００６０】
例えば、言語処理装置は、近傍にある単語を第２識別番号で示す。具体的には、文言ＤＣ１の例は、「Ｂ」という単語１００の直後に、「Ｃ」という単語１０１が現れる例である。したがって、この例は、「Ｂ」という単語１００に対して、「Ｃ」という単語１０１が近傍にある単語となる例である。ゆえに、この例では、言語処理装置は、「Ｃ」という単語１０１に対応して、第２識別番号「２」を出力する。以下、この例で説明する。
【００６１】
＜第１相違度の計算例＞（ステップＳ１１２）
ステップＳ１１２では、言語処理装置は、第１相違度を計算する。例えば、第１相違度「Ｅ」は、下記（１４）式のように計算される。
Ｅ＝−ｌｏｇ  Ｐ（Ｎ，ＭＣ）・・・（１４）式
なお、上記（１４）式では、「ＭＣ」は、ステップＳ１１１で出力される第２識別番号である。したがって、上記（１４）式に基づいて、第１相違度「Ｅ」は、ステップＳ１１１で第２識別番号が出力されるごとに計算される。
【００６２】
上記（１４）式の通り、第１相違度「Ｅ」は、確率値Ｐ（Ｎ，ＭＣ）が大きいほど、値が小さくなる値である。
【００６３】
＜第２識別番号の取り出し例＞（ステップＳ１１３）
ステップＳ１１３では、言語処理装置は、第２識別番号を取り出す。具体的には、第２単語ベクトルデータＤＶ２に含まれる第２識別番号のうち、言語処理装置は、番号順に第２識別番号「Ｍ」を取り出す。
【００６４】
＜第２単語ベクトルの訂正例＞（ステップＳ１１４）
ステップＳ１１４では、言語処理装置は、第２単語ベクトルを訂正する。なお、訂正対象となる第２単語ベクトルは、第２単語ベクトルデータＤＶ２に含まれる第２単語ベクトルのうち、ステップＳ１１３で取り出された第２識別番号「Ｍ」に対応する第２単語ベクトルである。
【００６５】
訂正は、第１相違度「Ｅ」が小さくなるように行う。例えば、訂正は、下記（１５）式のように行われる。
訂正後  第２単語ベクトル  Ｕ（Ｍ）
＝訂正前  第２単語ベクトル  Ｕ（Ｍ）−η（Ｐ（Ｎ，Ｍ）−Ｔ（Ｍ，ＭＣ））Ｖ（Ｎ）・・・（１５）式
上記（１５）式における「η」は、学習率である。すなわち、「η」は、あらかじめ設定される値である。例えば、「η」は、「０．０１」等が設定される。「η」は、１度に訂正される値の大きさを示す。
【００６６】
また、上記（１５）式における「Ｔ（Ｍ，ＭＣ）」は、第２識別番号「Ｍ」が「ＭＣ」と等しいと「１」となり、一方で、第２識別番号「Ｍ」が「ＭＣ」と異なると「０」となる変数である。
【００６７】
上記（１５）式に基づく訂正が行われると、第２単語ベクトル「Ｕ（Ｍ）」は、「Ｍ」が「ＭＣ」と等しい場合には、確率値「Ｐ（Ｎ，Ｍ）」と、「Ｔ（Ｍ，ＭＣ）」が示す「１」との差に比例した値に基づいて訂正されるため、内積値「Ｑ（Ｎ，Ｍ）」及び確率値「Ｐ（Ｎ，Ｍ）」が大きくなるように訂正される。
【００６８】
一方で、「Ｍ」が「ＭＣ」と等しくない場合には、確率値「Ｐ（Ｎ，Ｍ）」と、「Ｔ（Ｍ，ＭＣ）」が示す「０」との差に比例した値に基づいて訂正されるため、内積値「Ｑ（Ｎ，Ｍ）」及び確率値「Ｐ（Ｎ，Ｍ）」が小さくなるように訂正される。
【００６９】
＜第２識別番号が最後か否かの判断例＞（ステップＳ１１５）
ステップＳ１１５では、言語処理装置は、第２識別番号が第２単語ベクトルデータにおける最後であるか否かを判断する。すなわち、ステップＳ１１３及びステップＳ１１４は、第２単語ベクトルデータＤＶ２に含まれる第２単語ベクトルの数分、繰り返し行われる。したがって、第２単語ベクトルデータＤＶ２に含まれる全ての第２単語ベクトル「Ｕ（ｍ）」（ｍ＝１、２、３・・・）が訂正される。
【００７０】
第２識別番号が第２単語ベクトルデータにおける最後であると判断されると（ステップＳ１１５でＹＥＳ）、言語処理装置は、ステップＳ１１６に進む。一方で、第２識別番号が第２単語ベクトルデータにおける最後でないと判断されると（ステップＳ１１５でＮＯ）、言語処理装置は、ステップＳ１１３に進む。
【００７１】
＜第１単語ベクトルの訂正例＞（ステップＳ１１６）
ステップＳ１１６では、言語処理装置は、第１単語ベクトルを訂正する。なお、訂正対象となる第１単語ベクトルは、第１単語ベクトルデータＤＶ１に含まれる第１単語ベクトルのうち、単語１００に対応する第１単語ベクトルである。
【００７２】
訂正は、第１相違度「Ｅ」が小さくなるように行う。例えば、訂正は、下記（１６）式のように行われる。
訂正後  第１単語ベクトル  Ｖ（Ｎ）
＝訂正前  第１単語ベクトル  Ｖ（Ｎ）−ηΣ（Ｐ（Ｎ，ｍ）−Ｔ（ｍ，ＭＣ））Ｕ（ｍ）・・・（１６）式
上記（１６）式における「η」は、学習率である。すなわち、「η」は、あらかじめ設定される値である。「η」は、１度に訂正される値の大きさを示す。なお、「η」は、第２単語ベクトルを訂正ための上記（１５）式における「η」とは、値が異なってもよい。また、上記（１６）式では、「Σ」は、すべての第２識別番号「ｍ＝１、２、３・・・」に関する総和を示す。
【００７３】
上記（１６）式に基づく訂正が行われると、第１単語ベクトルは、「Σ」による総和において、「ｍ」が「ＭＣ」と等しい項では、確率値「Ｐ（Ｎ，ｍ）」と、「Ｔ（ｍ，ＭＣ）」が示す「１」との差に比例した値に基づいて訂正されるため、内積値「Ｑ（Ｎ，ｍ）」及び確率値「Ｐ（Ｎ，ｍ）」が大きくなる方向に訂正される。
【００７４】
一方で、「ｍ」が「ＭＣ」と等しくない項では、確率値「Ｐ（Ｎ，ｍ）」と、「Ｔ（ｍ，ＭＣ）」が示す「０」との差に比例した値に基づいて訂正されるため、内積値「Ｑ（Ｎ，ｍ）」及び確率値「Ｐ（Ｎ，ｍ）」が小さくなる方向に訂正される。
【００７５】
＜単語が最後か否かの判断例＞（ステップＳ１１７）
ステップＳ１１７では、言語処理装置は、処理対象とした単語が文言における最後であるか否かを判断する。すなわち、ステップＳ１０６乃至ステップＳ１１６は、文言ＤＣ１に含まれる単語の数分、繰り返し行われる。
【００７６】
単語が文言における最後であると判断されると（ステップＳ１１７でＹＥＳ）、言語処理装置は、処理を終了する。一方で、単語が文言における最後でないと判断されると（ステップＳ１１７でＮＯ）、言語処理装置は、ステップＳ１０６に進む。
【００７７】
＜効果＞
自然言語処理等では、コーパス（ｃｏｒｐｕｓ）を用いてドメイン適応等が行われる。このような場合には、コーパスにおける単語の種類数は、ドメインにおける単語の種類数と比較すると、多くなる場合が多い。
【００７８】
本実施形態では、第１辞書ＤＩ１にコーパス及びドメインで用いられる単語が登録される。一方で、第２辞書ＤＩ２にドメインで用いられる単語が登録される。このように違いがあると、第１辞書ＤＩ１には、インターネット上等で用いられる様々な単語が登録される。一方で、第２辞書ＤＩ２には、特定の会社等で用いられる単語が登録される。
【００７９】
このような第２辞書ＤＩ２及び第２単語ベクトルがないと、確率値「Ｐ（Ｎ，ｍ）」等は、単語の種類数が多い第１辞書ＤＩ１にある単語分計算される。そのため、計算対象が多いため、言語処理装置は、計算量が多くなる。一方で、本実施形態のように、第２辞書ＤＩ２及び第２単語ベクトルがあると、言語処理装置は、第２辞書ＤＩ２及び第２単語ベクトルで絞られた単語について単語ベクトルを訂正し、学習する。
【００８０】
例えば、本実施形態の構成において、いわゆる訓練データを文言ＤＣ１として入力すると、訓練データに基づいて、１回の訂正で、単語ベクトルが学習率で定まる分、訂正される。これを繰り返すことで、単語ベクトルが学習される。すなわち、上記（１５）式及び上記（１６）式のような訂正がされると、いわゆる誤差逆伝播法（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）と呼ばれる方法が実現できる。
【００８１】
このような学習を経た単語ベクトルが例えば音声認識における次の単語を推定する処理において用いられると、所定の場面には相応しくない単語が推定されるのを防ぐことができる。ほかにも、このような学習を経た単語ベクトルは、近い単語ベクトルであると似たような意味の単語である場合が多いため、類義語の検索等にも用いることができる。したがって、本実施形態のような構成であると、このような精度の良い単語ベクトルを生成することができる。
【００８２】
＜第２実施形態＞
例えば、第２実施形態における言語処理装置は、第１実施形態と同様のハードウェア構成の装置等によって実現される。以下、第１実施形態と異なる点を中心に説明し、重複する説明を省略する。
【００８３】
＜全体構成例＞
図１０は、第２実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。例えば、言語処理装置１０は、図示するように、文言入力部１０Ｆ１、パラメータ設定部１０Ｆ２２、第３単語ベクトル入力部１０Ｆ２３、第１判定結果データ入力部１０Ｆ２４、判定部１０Ｆ２５及びパラメータ訂正部１０Ｆ２６を備える機能構成である。
【００８４】
文言入力部１０Ｆ１は、文言を入力する文言入力手順を行う。例えば、文言入力部１０Ｆ１は、入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【００８５】
パラメータ設定部１０Ｆ２２は、パラメータＰＡＲを設定するパラメータ設定手順を行う。例えば、パラメータ設定部１０Ｆ２２は、入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【００８６】
第３単語ベクトル入力部１０Ｆ２３は、単語と、第３単語ベクトルとを対応させた第３単語ベクトルデータＤＶ３を入力する第３単語ベクトル入力手順を行う。例えば、第３単語ベクトル入力部１０Ｆ２３は、入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【００８７】
第１判定結果データ入力部１０Ｆ２４は、第１判定結果データＤＪ１を入力する第１判定結果データ入力を行う。例えば、第１判定結果データ入力部１０Ｆ２４は、入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【００８８】
判定部１０Ｆ２５は、パラメータＰＡＲに基づいて、文言の第３単語ベクトルが語彙に属するか否かを判定し、判定した結果を示す第２判定結果データＤＪ２を生成する。例えば、判定部１０Ｆ２５は、ＣＰＵ１０Ｈ１等によって実現される。
【００８９】
パラメータ訂正部１０Ｆ２６は、第１判定結果データＤＪ１及び第２判定結果データＤＪ２に基づいて、パラメータＰＡＲを訂正する。例えば、パラメータ訂正部１０Ｆ２６は、ＣＰＵ１０Ｈ１等によって実現される。
【００９０】
＜全体処理例＞
図１１は、第２実施形態に係る言語処理装置による全体処理例を示すフローチャートである。
【００９１】
＜パラメータの設定例＞（ステップＳ２０１）
ステップＳ２０１では、言語処理装置は、パラメータを設定する。以下の説明では、パラメータＰＡＲを「Ｗ」及び「ｂ」で示す。以下、「Ｗ」を「係数ベクトル」という。また、「ｂ」を「切片」という。パラメータは、例えば、以下のようなデータとなる。
【００９２】
図１２は、第２実施形態に係るパラメータの例を示す図である。図示するように、パラメータＰＡＲを構成する係数ベクトル「Ｗ」及び切片「ｂ」は、値が設定される。例えば、係数ベクトル「Ｗ」及び切片「ｂ」の値は、初期値があらかじめ設定される。図示する例は、単語ベクトルを３次元（Ｎ＝３）とするため、係数ベクトル「Ｗ」は、３次元である。
【００９３】
＜第３単語ベクトルデータの入力例＞（ステップＳ２０２）
ステップＳ２０２では、言語処理装置は、第３単語ベクトルデータを入力する。例えば、第３単語ベクトルは、以下に示す第３単語ベクトルデータＤＶ３のように、単語と対応させて入力される。
【００９４】
図１３は、第２実施形態に係る第３単語ベクトルデータの例を示す図である。図示するように、第３単語ベクトルデータＤＶ３には、単語「Ａ」、「Ｂ」、「Ｃ」・・・の各単語に対応して、それぞれの単語ベクトル「（０．１，０．５，０．２）」、「（０．４，０．３，０．１）」、「（０．２，０．１，０．２）」・・・が入力される。なお、図示する例は、第１実施形態と同様に、３次元（Ｎ＝３）の例とし、単語ベクトルは、３つの要素で構成されるとするが、次元数は、別の値であってもよい。
【００９５】
なお、パラメータＰＡＲ及び第３単語ベクトルデータＤＶ３は、図示するような表形式に限られず、他の形式であってもよい。また、ステップＳ２０１及びステップＳ２０２は、図示する順序でなくともよい。
【００９６】
＜文言の入力例＞（ステップＳ２０３）
ステップＳ２０３では、言語処理装置は、文言を入力する。以下、第１実施形態と同様に、単語を含む文章等を「文言」という。文言は、例えば、テキストデータ又はユーザの操作等によって入力される。
【００９７】
＜文言に含まれる単語の取り出し例＞（ステップＳ２０４）
ステップＳ２０４では、言語処理装置は、文言に含まれる単語を取り出す。例えば、言語処理装置は、第１実施形態と同様に、文言に含まれる単語を取り出す。以下、文言から「Ａ」、「Ｃ」、「Ｅ」という単語が順に取り出される例で説明する。
【００９８】
＜第１判定結果データの入力例＞（ステップＳ２０５）
ステップＳ２０５では、言語処理装置は、第１判定結果データを入力する。例えば、第１判定結果データＤＪ１は、以下のようなデータである。
【００９９】
図１４は、第２実施形態に係る第１判定結果データの例を示す図である。図示するように、第１判定結果データＤＪ１は、ステップＳ２０３で入力される文言に含まれる各単語が、語彙に属するか否かを判定した結果を示すデータである。
【０１００】
図示する例では、「判定結果」は、「０」又は「１」の２値である。以下の説明では、「語彙に属する」と判定した場合を「１」とし、一方で、「語彙に属さない」と判定した場合を「０」とする。
【０１０１】
第１判定結果データＤＪ１は、学習における、いわゆる「正解データ」である。
【０１０２】
＜パラメータに基づいて判定して第２判定結果データを生成する例＞（ステップＳ２０６）
ステップＳ２０６では、言語処理装置は、パラメータに基づいて単語を判定して第２判定結果データを生成する。以下、ステップＳ２０４で取り出される単語の単語ベクトルを「ｘ」とする。なお、「ｘ」は、第３単語ベクトルデータＤＶ３で定まる。具体的には、「Ａ」という単語は、「ｘ」＝「（０．１，０．５，０．２）」となる。
【０１０３】
例えば、判定では、まず、下記（２０）式が計算される。
ｙ＝Ｗｘ−ｂ・・・（２０）式
そして、上記（２０）式で計算される「ｙ」が、「ｙ≧０」であると、「語彙に属する」と判定する。一方で、「ｙ」が、「ｙ＜０」であると、「語彙に属さない」と判定する。
【０１０４】
このような判定は、例えば、以下のように図示できる。
【０１０５】
図１５は、第２実施形態に係る第２判定結果データの生成例を示す図である。この例では、単語ベクトルが２次元であるとする。したがって、各単語は、単語ベクトルに基づいて、図示するような２次元座標上にプロットできる。
【０１０６】
そして、パラメータＰＡＲは、この例では、判定の基準となる直線２０を特定できるデータである。具体的には、パラメータＰＡＲにおける係数ベクトル「Ｗ」は、直線２０の傾きを示すデータである。さらに、パラメータＰＡＲにおける切片「ｂ」は、直線２０の切片を示すデータである。したがって、係数ベクトル「Ｗ」及び切片「ｂ」が定まると、直線２０が一意に定まる。
【０１０７】
なお、直線２０は、「分類平面」又は「超平面」等と呼ばれる場合もある。また、直線２０は、次元数が３次元であれば平面となる。
【０１０８】
図示するように、言語処理装置は、上記（２０）式に基づいて、判定対象となる単語の単語ベクトル「ｘ」が語彙に「属する」か「属さない」かを判定できる。
【０１０９】
このようにして判定した結果を言語処理装置は、第２判定結果データとする。
【０１１０】
＜判定が正しいか否かの判定例＞（ステップＳ２０７）
ステップＳ２０７では、言語処理装置は、第２判定結果データにおける判定結果が正しいか否かを判断する。例えば、判定が正しいか否かは、第１判定結果データＤＪ１における判定結果と、第２判定結果データＤＪ２における判定結果とが一致するか否かで判断される。
【０１１１】
すなわち、第１判定結果データＤＪ１で「判定結果」が「１」であり、かつ、第２判定結果データＤＪ２で「ｙ」が「ｙ≧０」であると、言語処理装置は、判定が正しいと判断する。また、第１判定結果データＤＪ１で「判定結果」が「０」であり、かつ、第２判定結果データＤＪ２で「ｙ」が「ｙ＜０」であると、言語処理装置は、判定が正しいと判断する。
【０１１２】
このように、第１判定結果データＤＪ１及び第２判定結果データＤＪ２が示す、語彙に「属する」か「属さない」かのそれぞれの判定結果が一致すれば、言語処理装置は、判定が正しいと判断する（ステップＳ２０７でＹＥＳ）。
【０１１３】
一方で、第１判定結果データＤＪ１及び第２判定結果データＤＪ２が示す、語彙に「属する」か「属さない」かのそれぞれの判定結果が一致しないと、言語処理装置は、判定が正しくないと判断する（ステップＳ２０７でＮＯ）。
【０１１４】
次に、判定が正しいと判断されると（ステップＳ２０７でＹＥＳ）、言語処理装置は、ステップＳ２０９に進む。一方で、判定が正しくないと判断されると（ステップＳ２０７でＮＯ）、言語処理装置は、ステップＳ２０８に進む。
【０１１５】
＜パラメータの訂正例＞（ステップＳ２０８）
ステップＳ２０８では、言語処理装置は、パラメータを訂正する。例えば、訂正は、下記（２１）式及び下記（２２）式のように行われる。
訂正後のＷ＝訂正前のＷ＋（ｔ−ｙ）ｘ・・・（２１）式
訂正後のｂ＝訂正前のｂ−（ｔ−ｙ）・・・（２２）式
なお、上記（２１）式及び上記（２２）式における「ｔ」は、第１判定結果データＤＪ１における「判定結果」の値である。
【０１１６】
すなわち、判定結果「ｔ」より「ｙ」が大きい場合には、「ｙ」が小さくなるように訂正が行われる。そのため、上記（２１）式では、「ｔ−ｙ」が負になることを利用して、単語ベクトル「ｘ」を構成する各値が正であれば、値を小さくする訂正が行われる。一方で、上記（２１）式では、単語ベクトル「ｘ」を構成する各値が負であれば、値を大きくする訂正が行われる。
【０１１７】
また、判定結果「ｔ」より「ｙ」が小さい場合には、上記の逆となる訂正が行われる。
【０１１８】
さらに、判定結果「ｔ」より「ｙ」が大きい場合には、「ｙ≧０」と判定される閾値となる切片「ｂ」が大きくなるように訂正が行われる。そのため、上記（２２）式では、「ｔ−ｙ」が負になることを利用して、「ｔ−ｙ」をマイナス１倍した値を加算する訂正が行われる。
【０１１９】
一方で、判定結果「ｔ」より「ｙ」が小さい場合には、上記の逆となる訂正が行われる。
【０１２０】
＜単語が最後か否かの判断例＞（ステップＳ２０９）
ステップＳ２０９では、言語処理装置は、処理対象とした単語が文言における最後であるか否かを判断する。すなわち、ステップＳ２０４乃至ステップＳ２０８は、文言に含まれる単語の数分、繰り返し行われる。
【０１２１】
単語が文言における最後であると判断されると（ステップＳ２０９でＹＥＳ）、言語処理装置は、全体処理を終了する。一方で、単語が文言における最後でないと判断されると（ステップＳ２０９でＮＯ）、言語処理装置は、ステップＳ２０４に進む。
【０１２２】
＜効果＞
文言として訓練データが入力されると、例えば、上記（２１）式及び上記（２２）式のように、パラメータＰＡＲを訂正する学習が行われる。このような学習によって生成されたパラメータＰＡＲを用いると、言語処理装置は、文言が語彙に属するか否かを精度良く判定できるようになる。
【０１２３】
すなわち、言語処理装置は、コーパスを用いたドメイン適応において、コーパスにある単語のうち、ドメインテキストには現れない単語であってもドメインの語彙に属すると判定された単語を集めた辞書を生成できる。
【０１２４】
具体的には、インターネット上等では、使われる単語であっても、特定の会社における社内会議等ではあまり用いられない単語がある。そこで、本実施形態の構成によって、学習が行われると、言語処理装置は、インターネット上等で使用される単語が、特定の会社における社内会議等で使用される語彙に属するか否かを精度良く判定できる。したがって、言語処理装置は、インターネット上等にある単語を分類して、特定の会社における社内会議等で用いられる単語を集めた辞書を生成することができる。
【０１２５】
また、上記のような学習で生成された辞書が、第１実施形態における第２辞書ＤＩ２として用いられるのが望ましい。すなわち、本実施形態によって生成された辞書は、特定の会社における社内会議等で使用される単語が登録された辞書である。このような辞書がある、すなわち、第１実施形態に示すように第１辞書ＤＩ１とは別の第２辞書ＤＩ２も用いる構成であると、言語処理装置は、単語ベクトルを精度良く求めることができる。
【０１２６】
＜第３実施形態＞
例えば、第３実施形態における言語処理装置は、第１、２実施形態と同様のハードウェア構成の装置等によって実現される。以下、第１実施形態と異なる点を中心に説明し、重複する説明を省略する。
【０１２７】
＜全体構成例＞
図１６は、第３実施形態に係る言語処理装置の全体構成例を示す機能ブロック図である。例えば、言語処理装置１０は、文言入力部１０Ｆ１、単語列ベクトル入力部１０Ｆ３２、状態ベクトル計算部１０Ｆ３３、第２相違度計算部１０Ｆ３４及び学習データ訂正部１０Ｆ３５を備える機能構成である。
【０１２８】
文言入力部１０Ｆ１は、単語及び単語列Ｐを含む文言を入力する文言入力手順を行う。例えば、文言入力部１０Ｆ１は、入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【０１２９】
単語列ベクトル入力部１０Ｆ３２は、単語と、単語ベクトルとを対応させた単語列ベクトルデータＤＬＶを入力する単語列ベクトル入力手順を行う。さらに、単語列ベクトルデータＤＬＶには、複数の単語で構成される単語列Ｐと、単語列Ｐをベクトル表現した「単語列ベクトル」と対応させた結果が入力される。単語列ベクトルデータＤＬＶの詳細は後述する。例えば、単語列ベクトル入力部１０Ｆ３２は、入力装置１０Ｈ３又はインタフェース１０Ｈ５等によって実現される。
【０１３０】
状態ベクトル計算部１０Ｆ３３は、状態ベクトルを計算する状態ベクトル計算手順を行う。例えば、状態ベクトル計算部１０Ｆ３３は、ＣＰＵ１０Ｈ１等によって実現される。
【０１３１】
第２相違度計算部１０Ｆ３４は、状態ベクトルと、単語列ベクトルとの相違度（以下「第２相違度」という。）を計算する第２相違度計算手順を行う。例えば、第２相違度計算部１０Ｆ３４は、ＣＰＵ１０Ｈ１等によって実現される。
【０１３２】
学習データ訂正部１０Ｆ３５は、第２相違度に基づいて学習データＤＬＡを訂正する学習データ訂正手順を行う。例えば、学習データ訂正部１０Ｆ３５は、ＣＰＵ１０Ｈ１等によって実現される。学習データＤＬＡの詳細は、後述する。
【０１３３】
＜全体処理例＞
図１７は、第３実施形態に係る言語処理装置による全体処理例を示すフローチャートである。
【０１３４】
＜単語列ベクトルの入力例＞（ステップＳ３０１）
ステップＳ３０１では、言語処理装置は、単語列ベクトルを入力する。例えば、言語処理装置は、以下のような単語列ベクトルデータを入力する。
【０１３５】
図１８は、第３実施形態に係る単語列ベクトルデータの例を示す図である。他の実施形態における単語ベクトルデータと比較すると、単語列ベクトルデータＤＬＶは、「ＢＣ」等のように、複数の単語から構成される「単語列」が含まれる点が異なる。なお、単語列は、３つ以上の単語で構成されてもよい。
【０１３６】
「Ａ」、「Ｂ」、「Ｃ」及び「Ｅ」は、他の実施形態と同様に単語であり、単語列ベクトルデータＤＬＶには、各単語に対する単語ベクトルが入力される。同様に、「ＢＣ」といった２つの単語で構成される単語列に対しても、単語列ベクトルデータＤＬＶには、単語と同様に、単語列ベクトルが入力される。図示するように、以下の説明では、単語ベクトルも、単語列ベクトルも、どちらも３次元であるとする。
【０１３７】
単語ベクトル及び単語列ベクトルには、例えば、あらかじめ値が入力される。
【０１３８】
＜学習データの入力例＞（ステップＳ３０２）
ステップＳ３０２では、言語処理装置は、学習データを入力する。例えば、学習データは、以下のようなデータである。
【０１３９】
図１９は、第３実施形態に係る学習データの例を示す図である。図示するように、学習データは、例えば、行列「Ｗ」、行列「Ｕ」及び「ｂ」で構成される。具体的には、行列「Ｗ」は、Ｍ行  Ｎ列である。また、行列「Ｕ」は、Ｍ行  Ｍ列である。さらに、「ｂ」は、Ｍ次元ベクトルである。なお、「Ｎ」は、単語ベクトル及び単語列ベクトルの次元数と同様の値である。したがって、この例では、「Ｎ＝３」である。一方で、「Ｍ」は、状態ベクトルの次元数である。
【０１４０】
状態ベクトルｓ（ｃ）は、下記（３０）式で計算されて求まる。
ｓ（ｃ＋１）＝ｔａｎｈ（Ｗ  ｔｒａｎｓ（ｘ（ｃ））＋Ｕｓ（ｃ）＋ｔｒａｎｓ（ｂ））・・・（３０）式
なお、状態ベクトルの初期値、すなわち、状態ベクトルｓ（１）は、例えば、Ｍ次元の零ベクトル等である。また、上記（３０）式における「ｔｒａｎｓ」は、転置を示す。さらに、上記（３０）式における「ｔａｎｈ」は、双曲線正接関数（ｈｙｐｅｒｂｏｌｉｃ  ｔａｎｇｅｎｔ）を示す。さらにまた、変数「ｃ」は、「ｃ＝１、２、３・・・」となる値であり、単語列における先頭からの単語の順番を示す。以下、同様に記載する。
【０１４１】
したがって、「Ｗ」、「Ｕ」、「ｂ」等の学習データと、変数「ｃ」が１つ前の状態ベクトル（つまり、「ｃ＋１」の状態ベクトルを計算する場合には、「ｃ」の状態ベクトルである。）とが定まると、状態ベクトルｓ（ｃ＋１）が特定できる。
【０１４２】
＜文言の入力例＞（ステップＳ３０３）
ステップＳ３０３では、言語処理装置は、文言を入力する。以下、第１実施形態と同様に図８に示すような文言ＤＣ１が入力される例で説明する。文言ＤＣ１は、例えば、テキストデータ又はユーザの操作等によって入力される。
【０１４３】
＜「ｃ＝１」及び「Ｌ＝文言に含まれる単語数＋１」とする例＞（ステップＳ３０４）
ステップＳ３０４では、言語処理装置は、「ｃ＝１」及び「Ｌ＝文言に含まれる単語数＋１」とする。なお、「ｃ＝１」は、初期値の設定例である。図示するように、変数「ｃ」は、ステップＳ３０３で入力される文言の単語数までカウントアップされる値となる。一方で、定数「Ｌ」は、変数「ｃ」の上限値を定める値である。
【０１４４】
＜文言から長さが「ｃ」となる単語列の取り出し例＞（ステップＳ３０５）
ステップＳ３０５では、言語処理装置は、文言から長さが「ｃ」となる単語列を取り出す。
【０１４５】
例えば、図８に示す文言ＤＣ１の場合には、「ｃ＝１」であると、文言ＤＣ１から単語「Ｂ」が取り出される。したがって、以降の処理対象となる単語列Ｐは、単語「Ｂ」で構成される単語列となる。
【０１４６】
同様に、「ｃ＝２」であると、文言ＤＣ１から、１番目の「Ｂ」という単語１００及び２番目の「Ｃ」という単語１０１が取り出される。したがって、以降の処理対象となる単語列Ｐは、「Ｂ」及び「Ｃ」の２つの単語で構成される「ＢＣ」という単語列となる。
【０１４７】
＜単語列の状態ベクトルの計算及び単語列ベクトルの特定例＞（ステップＳ３０６）
ステップＳ３０６では、言語処理装置は、単語列の状態ベクトルを計算及び単語列ベクトルを特定する。
【０１４８】
まず、状態ベクトルは、上記（３０）式に基づいて、例えば、「ｃ＝１」であると、下記（３１）式のように計算される。
ｓ（２）＝ｔａｎｈ（Ｗ  ｔｒａｎｓ（ｘ（１））＋Ｕｓ（１）＋ｔｒａｎｓ（ｂ））・・・（３１）式
上記（３１）式における「ｘ（１）」は、１番目の単語、すなわち、「Ｂ」という単語１００の単語ベクトルである。したがって、単語列ベクトルデータＤＬＶに基づいて、「ｘ（１）＝（０．４，０．３，０．１）」である。また、上記（３１）式における「ｓ（１）」は、状態ベクトルの初期値である。同様に、上記（３１）式における「Ｗ」、「Ｕ」及び「ｂ」は、学習データの初期値である。
【０１４９】
さらに、例えば、「ｃ＝２」であると、状態ベクトルは、上記（３０）式に基づいて下記（３２）式のように計算される。
ｓ（３）＝ｔａｎｈ（Ｗ  ｔｒａｎｓ（ｘ（２））＋Ｕｓ（２）＋ｔｒａｎｓ（ｂ））・・・（３２）式
上記（３２）式における「ｘ（２）」は、２番目の単語、すなわち、「Ｃ」という単語１０１の単語ベクトルである。したがって、単語列ベクトルデータＤＬＶに基づいて、「ｘ（２）＝（０．２，０．１，０．２）」である。また、上記（３２）式における「ｓ（２）」は、上記（３１）式で計算される状態ベクトル、すなわち、「ｃ」が１つ前の場合において計算された状態ベクトルである。同様に、上記（３２）式における「Ｗ」、「Ｕ」及び「ｂ」は、上記（３１）式で計算される状態ベクトル等に基づいて後段のステップＳ３０８で訂正された後の学習データである。
【０１５０】
さらに、ステップＳ３０６では、言語処理装置は、単語列ベクトルを特定する。単語列ベクトルは、単語列ベクトルデータＤＬＶで特定できる。
【０１５１】
例えば、「ｃ＝１」であると、単語列Ｐは、単語「Ｂ」であるため、単語列ベクトルデータＤＬＶに基づいて、単語列Ｐに対応する単語列ベクトルは、「０．４，０．３，０．１」と特定される。
【０１５２】
同様に、「ｃ＝２」であると、単語列Ｐは、単語「Ｂ」及び単語「Ｃ」で構成される「ＢＣ」であるため、単語列ベクトルデータＤＬＶに基づいて、単語列Ｐに対応する単語列ベクトルは、「０．３，０．５，０．２」と特定される。
【０１５３】
なお、単語列Ｐに対応する単語列ベクトルがない場合には、例えば、単語列ベクトルは、「Ｎ／Ａ」と特定される。
【０１５４】
＜単語列の状態ベクトルが計算でき、かつ、単語列ベクトルが特定できたか否かの判断例＞（ステップＳ３０７）
ステップＳ３０７では、言語処理装置は、単語列の状態ベクトルが計算でき、かつ、単語列ベクトルが特定できたか否かを判断する。すなわち、ステップＳ３０６で状態ベクトルが計算でき、かつ、単語列ベクトルデータＤＬＶに単語列Ｐに対応する単語列ベクトルがあると、言語処理装置は、単語列の状態ベクトルが計算でき、かつ、単語列ベクトルが特定できたと判断する（ステップＳ３０７でＹＥＳ）。一方で、例えば、単語列ベクトルが「Ｎ／Ａ」であると、単語列ベクトルが特定できていないと判断する（ステップＳ３０７でＮＯ）。
【０１５５】
次に、単語列の状態ベクトルが計算でき、かつ、単語列ベクトルが特定できたと判断すると（ステップＳ３０７でＹＥＳ）、言語処理装置は、ステップＳ３０８に進む。一方で、単語列の状態ベクトルが計算できていない、又は、単語列ベクトルが特定できていないと判断すると（ステップＳ３０７でＮＯ）、言語処理装置は、ステップＳ３１０に進む。
【０１５６】
＜第２相違度の計算例＞（ステップＳ３０８）
ステップＳ３０８では、言語処理装置は、第２相違度を計算する。例えば、第２相違度は、下記（３３）式のように計算される。
第２相違度＝ｄｉｓｔ（Ｐｖ，Ｓｖ）・・・（３３）式
上記（３３）式における「ｄｉｓｔ」は、２つのベクトル「Ｐｖ」及び「Ｓｖ」のユークリッド距離を計算する関数を示す。また、上記（３３）式における「Ｐｖ」は、ステップＳ３０６で特定される単語列ベクトルである。さらに、上記（３３）式における「Ｓｖ」は、ステップＳ３０６で計算される状態ベクトルである。
【０１５７】
なお、第２相違度は、下記（３４）式のように計算されてもよい。
第２相違度＝ｄｉｓｔ（Ｐｖ，ｔａｎｈ（ＨＳｖ＋ｂ２））・・・（３４）式
上記（３４）式における「Ｈ」は、新たに加えるＭ行  Ｎ列の行列である。同様に、「ｂ２」は、新たに加えるＮ次元のベクトルである。上記（３４）式のように計算すると、状態ベクトル「Ｓｖ」の次元数「Ｍ」と、単語列ベクトルの次元数「Ｎ」とが異なっても、第２相違度が計算できる。
【０１５８】
＜第２相違度に基づく学習データの訂正例＞（ステップＳ３０９）
ステップＳ３０９では、言語処理装置は、第２相違度に基づいて学習データを訂正する。例えば、学習データＤＬＡは、下記（３５）式のように訂正される。
訂正後のＷ＝訂正前のＷ−ηΔＷ
訂正後のＵ＝訂正前のＵ−ηΔＵ
訂正後のｂ＝訂正前のｂ−ηΔｂ      ・・・（３５）式
上記（３５）式における「η」は、学習率である。すなわち、「η」は、あらかじめ設定される値である。「η」は、１度に訂正される値の大きさを示す。また、上記（３５）式における「ΔＷ」は、行列「Ｗ」の要素ｗ（ｉ，ｊ）で、関数「ｄｉｓｔ」を（Ｐｖ，Ｓｖ）において偏微分して求まる係数である。「ΔＷ」は、解析的に計算される係数でもよいし、又は、要素ｗ（ｉ，ｊ）を微小値ｄだけ変化させた場合の「ｄｉｓｔ（Ｐｖ，Ｓｖ）」の差分でもよい。
【０１５９】
また、上記（３５）式における「ΔＵ」及び「Δｂ」も同様に計算される係数である。
【０１６０】
上記（３５）式は、いわゆる勾配降下法（Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ）による訂正を実現する。なお、上記（３４）式による第２相違度を用いる場合には、新たに加える行列「Ｈ」及びベクトル「ｂ２」も、勾配降下法による訂正の対象に含める。
【０１６１】
＜「ｃ＝ｃ＋１」とする例＞（ステップＳ３１０）
ステップＳ３１０では、言語処理装置は、「ｃ＝ｃ＋１」とする。すなわち、言語処理装置は、変数「ｃ」をカウントアップする。
【０１６２】
＜「ｃ＜Ｌ」であるか否かの判断例＞（ステップＳ３１１）
ステップＳ３１１では、言語処理装置は、「ｃ＜Ｌ」であるか否かを判断する。すなわち、ステップＳ３０４で設定される定数「Ｌ」と、変数「ｃ」とを比較することで、言語処理装置は、ステップＳ３０３で入力される文言に含まれる単語についてすべて処理を行うようにループさせる。
【０１６３】
次に、「ｃ＜Ｌ」であると判断されると（ステップＳ３１１でＹＥＳ）、言語処理装置は、ステップＳ３０５に進む。一方で、「ｃ＜Ｌ」でないと判断されると（ステップＳ３１１でＮＯ）、言語処理装置は、全体処理を終了させる。
【０１６４】
＜効果＞
以上のような構成であると、言語処理装置は、未知の単語列があっても、状態ベクトルを計算することで学習データを訂正し、学習することができる。そのため、言語処理装置は、未知の単語列をオンラインで精度良くベクトル表現すること等ができる。
【０１６５】
また、第１実施形態で生成された単語ベクトルが、単語列ベクトルデータＤＬＶに入力されて用いられるのが望ましい。すなわち、第１実施形態等によって生成された単語ベクトルは、特定の会社における社内会議等で使用される単語に対して、精度良く単語ベクトルが求められる。このような単語ベクトルが入力された単語列ベクトルデータＤＬＶを用いる構成であると、言語処理装置は、状態ベクトルを精度良く求めることができる。
【０１６６】
＜その他の実施形態＞
なお、上記実施形態において、非線形関数の例として「ｔａｎｈ」を用いる例を説明したが、非線形関数は、「ｔａｎｈ」に限られない。例えば、非線形関数は、シグモイド（ｓｉｇｍｏｉｄ）関数等でもよい。
【０１６７】
また、各相違度は、上記実施形態の例に限られない。すなわち、各相違度は、違いが定義できればよい。
【０１６８】
なお、本発明に係る各処理の全部又は一部は、低水準言語又は高水準言語で記述され、コンピュータに言語処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、情報処理装置又は複数の情報処理装置を含む情報処理システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
【０１６９】
したがって、プログラムに基づいて言語処理方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。
【０１７０】
また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。
【０１７１】
なお、本発明に係る実施形態は、言語処理システムによって実現されてもよい。また、言語処理システムは、各処理を冗長、分散、並列、仮想化又はこれらを組み合わせて実行してもよい。
【０１７２】
以上、実施形態における一例について説明したが、本発明は、上記実施形態に限定されない。すなわち、本発明の範囲内で種々の変形及び改良が可能である。
【符号の説明】
【０１７３】
１０  言語処理装置
１０Ｆ１  文言入力部
１０Ｆ２  第１辞書入力部
１０Ｆ３  第１単語ベクトル入力部
１０Ｆ４  第２辞書入力部
１０Ｆ５  第２単語ベクトル入力部
１０Ｆ６  計算部
１０Ｆ６１  内積値計算部
１０Ｆ６２  確率値計算部
１０Ｆ６３  第１相違度計算部
１０Ｆ７  単語ベクトル訂正部
ＤＩ１  第１辞書
ＤＩ２  第２辞書
ＤＶ１  第１単語ベクトルデータ
ＤＶ２  第２単語ベクトルデータ
ＤＣ１  文言
１０Ｆ２２  パラメータ設定部
１０Ｆ２３  第３単語ベクトル入力部
１０Ｆ２４  第１判定結果データ入力部
１０Ｆ２５  判定部
１０Ｆ２６  パラメータ訂正部
ＰＡＲ  パラメータ
ＤＪ１  第１判定結果データ
ＤＪ２  第２判定結果データ
ＤＶ３  第３単語ベクトルデータ
２０  直線
１０Ｆ３２  単語列ベクトル入力部
１０Ｆ３３  状態ベクトル計算部
１０Ｆ３４  第２相違度計算部
１０Ｆ３５  学習データ訂正部
Ｐ  単語列
ＤＬＶ  単語列ベクトルデータ
ＤＬＡ  学習データ
【先行技術文献】
【非特許文献】
【０１７４】
【非特許文献１】Tomas Mikolov、Kai Chen、Greg Corrado、Jeffrey Dean、「Efficient Estimation of Word Representations in Vector Space」、ICLR 2013
【図１】
2019128788.tif 000003
【図２】
2019128788.tif 000004
【図３】
2019128788.tif 000005
【図４】
2019128788.tif 000006
【図５】
2019128788.tif 000007
【図６】
2019128788.tif 000008
【図７】
2019128788.tif 000009
【図８】
2019128788.tif 000010
【図９】
2019128788.tif 000011
【図１０】
2019128788.tif 000012
【図１１】
2019128788.tif 000013
【図１２】
2019128788.tif 000014
【図１３】
2019128788.tif 000015
【図１４】
2019128788.tif 000016
【図１５】
2019128788.tif 000017
【図１６】
2019128788.tif 000018
【図１７】
2019128788.tif 000019
【図１８】
2019128788.tif 000020
【図１９】
2019128788.tif 000021