(57)【要約】【課題】  任意の処理対象テキストに対して、それを形態素解析することによって検出される単語辞書中の単語の全てに対して、概念ベクトルを付与することができる単語ベクトル生成装置、単語ベクトル生成方法およびプログラムを提供することを目的とする。【解決手段】  単語辞書中の各単語を検索キーとして、Web検索エンジンによって検索し、上記単語を含む文書集合を取得し、上記各単語に対応する上記文書集合の全てをマージし、１つのテキストを生成し、上記生成されたテキストを単語分割し、上記生成されたテキストに含まれている単語の対が、上記テキスト中で共起する共起頻度を算出することによって、単語間の共起行列を生成し、上記共起行列を特異値分解し、次元数を縮退させた行列に変換することによって、上記各単語に対応するベクトルを生成することを特徴とする単語ベクトル生成装置である。【選択図】  図１
2006338342.tif 000002
【特許請求の範囲】
【請求項１】
単語辞書中の各単語の意味を表現するベクトルを生成する単語ベクトル生成装置において、
単語辞書中の各単語を検索キーとして、Web検索エンジンによって検索し、上記単語を含む文書集合を取得し、記憶装置に記憶する文書集合取得手段と；
上記各単語に対応する上記文書集合の全てをマージし、１つのテキストを生成し、記憶装置に記憶する文書集合群マージ手段と；
上記生成されたテキストを単語分割し、記憶装置に記憶する単語分割手段と；
上記生成されたテキストに含まれている単語の対が、上記テキスト中で共起する共起頻度を算出することによって、単語間の共起行列を生成し、記憶装置に記憶する共起行列生成手段と；
上記共起行列を特異値分解し、次元数を縮退させた行列に変換することによって、上記各単語に対応するベクトルを生成し、記憶装置に記憶するベクトル生成手段と；
を有することを特徴とする単語ベクトル生成装置。
【請求項２】
単語辞書中の各単語の意味を表現するベクトルを生成する単語ベクトル生成方法において、
単語辞書中の各単語を検索キーとして、Web検索エンジンによって検索し、上記単語を含む文書集合を取得し、記憶装置に記憶する文書集合取得ステップと；
上記各単語に対応する上記文書集合の全てをマージし、１つのテキストを生成し、記憶装置に記憶する文書集合群マージステップと；
上記生成されたテキストを単語分割し、記憶装置に記憶する単語分割ステップと；
上記生成されたテキストに含まれている単語の対が、上記テキスト中で共起する共起頻度を算出することによって、単語間の共起行列を生成し、記憶装置に記憶する共起行列生成ステップと；
上記共起行列を特異値分解し、次元数を縮退させた行列に変換することによって、上記各単語に対応するベクトルを生成し、記憶装置に記憶するベクトル生成ステップと；
を有することを特徴とする単語ベクトル生成方法。
【請求項３】
単語辞書中の各単語の意味を表現するベクトルを生成する単語ベクトル生成プログラムにおいて、
単語辞書中の各単語を検索キーとして、Web検索エンジンによって検索し、上記単語を含む文書集合を取得し、記憶装置に記憶する文書集合取得手順と；
上記各単語に対応する上記文書集合の全てをマージし、１つのテキストを生成し、記憶装置に記憶する文書集合群マージ手順と；
上記生成されたテキストを単語分割し、記憶装置に記憶する単語分割手順と；
上記生成されたテキストに含まれている単語の対が、上記テキスト中で共起する共起頻度を算出することによって、単語間の共起行列を生成し、記憶装置に記憶する共起行列生成手順と；
上記共起行列を特異値分解し、次元数を縮退させた行列に変換することによって、上記各単語に対応するベクトルを生成し、記憶装置に記憶するベクトル生成手順と；
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単語辞書中の各単語に対し、上記単語の意味を表現するベクトルを生成する単語ベクトル生成装置に関する。
【背景技術】
【０００２】
コーパスにおける単語の共起頻度に基づいて、上記コーパスに含まれている単語集合を距離空間上に配置することによって、単語と、上記単語の意味を表現するベクトル（以下、「概念ベクトル」と呼ぶ）との対の集合が格納されているデータベース（以下、「概念ベース」と呼ぶ）を生成する技術が知られている。
【０００３】
概念ベースの例として以下のものが挙げられる。
【０００４】
たとえば、非特許文献１には、次の概念ベースが記載されている。各行が単語に対応し、各列が文書に対応している共起行列を作成する。共起行列の各要素は、対応する単語が、対応する文書に出現する頻度値とする。共起行列の各行ベクトルは、対応する単語の出現文書のパターンを表している。ある２単語に対応する行ベクトルが近ければ、出現文書パターンが似ているので、この２単語は、互いに意味的に近いということが推測される。ただし、このままではデータのスパースネス性があることを始めとして、テキストデータから抽出される単語の情報には、常に欠落があると予想されるので、ベクトル間の類似度の精度は低いと考えられる。また、一般に、行ベクトルの次元数は、非常に大きいので、計算量も無視できない。このために、共起行列を特異値分解によって、次元数を縮退させた行列に変換する。変換後の行列の各行ベクトルを、対応する「単語の概念ベクトル」と呼ぶ。単語とその概念ベクトルとの対の集合が、概念ベースである。
【０００５】
また、非特許文献２には、次の概念ベースが記載されている。コーパス中の単語の対の１文中における共起頻度を記録した単語・単語間の共起行列を作成する。共起行列の各行ベクトルは、対応する単語の他の単語との共起パターンを表している。ある２単語に対応する行ベクトルが近ければ、共起パターンが似ているので、この２単語は、意味的に互いに近いということが推測される。しかし、Ｄｅｅｒｗｅｓｔｅｒ（非特許文献１）の方法で述べたのと同様の問題があるので、共起行列を特異値分解によって次元数を縮退させた行列に変換する。変換後の行列の各行ベクトルが、対応する単語の概念ベクトルであり、単語とその概念ベクトルとの対の集合が概念ベースである。
【非特許文献１】S. Deerwester, S. T. Dumais, G. W. Furnas, T. K. Landauer and R. Harshman, Indexing by Latent Semantic Analysis, Journal of the American Society for Information Science, pp.391-407, 1990.
【非特許文献２】H. Schutze, Dimensions of Meaning, Proc. of Supercomputing '92, pp.786-796, 1992.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
概念ベースを別のテキストの言語処理に使用する際は、テキスト中の各単語に対し、当該単語で概念ベースを検索し、対応するベクトルを付与する。概念ベースは、単語の意味的類似性を定量化できるので、テキストの話題構造化や情報検索に適用され、精度向上に寄与している。
【０００７】
しかし、概念ベース生成に用いるコーパスには、通常、単語辞書中の単語が全て含まれているわけではない。また、特異値分解には、多量の空間計算量と時間計算量を要するので、通常、コーパス中の単語のうち、高頻度語のみを使用する。このように、概念ベースには、通常、単語辞書中の一部の単語しか格納されていない。
【０００８】
処理対象テキストにおいて、概念ベース中にない単語については、ベクトルが割り当てられず、概念べ一スを利用した言語処理において、そのような単語は全く考慮されない。
【０００９】
テキストの話題構造化等の言語処理で概念ベースを利用する際、話題に特徴的な単語が概念ベースにない場合、精度の低下を招くという問題がある。
【００１０】
また、概念ベースを利用した検索において、入力した検索語が、検索対象テキストに存在していても、概念ベースに含まれていない場合、ベクトルが付与されず、検索において全く考慮されないので、精度の低下を招くという問題がある。
【００１１】
特開２００５−１２８９１７や、特願２００４−３０２２５４で述べられている方法では、処理対象テキスト中の概念ベースに存在していない単語について、単語間の共起関係に基づいて、上記単語の概念ベクトルを推定している。しかし、処理対象テキストを入力し、概念ベースに存在していない単語が検出されたときに、推定処理を行うことは、処理のオーバヘッドが大きいという問題がある。
【００１２】
本発明は、任意の処理対象テキストに対して、それを形態素解析することによって検出される単語辞書中の単語の全てに対して、概念ベクトルを付与することができる単語ベクトル生成装置、単語ベクトル生成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、単語辞書中の各単語の意味を表現するベクトルを生成する単語ベクトル生成装置において、単語辞書中の各単語を検索キーとして、Web検索エンジンによって検索し、上記単語を含む文書集合を取得し、記憶装置に記憶する文書集合取得手段と、上記各単語に対応する上記文書集合の全てをマージし、１つのテキストを生成し、記憶装置に記憶する文書集合群マージ手段と、上記生成されたテキストを単語分割し、記憶装置に記憶する単語分割手段と、上記生成されたテキストに含まれている単語の対が、上記テキスト中で共起する共起頻度を算出することによって、単語間の共起行列を生成し、記憶装置に記憶する共起行列生成手段と、上記共起行列を特異値分解し、次元数を縮退させた行列に変換することによって、上記各単語に対応するベクトルを生成し、記憶装置に記憶するベクトル生成手段とを有することを特徴とする単語ベクトル生成装置である。
【発明の効果】
【００１４】
本発明によれば、単語辞書中の全単語を含むコーパスを生成し、単語辞書中の全単語に対し、その概念ベクトルを生成することができ、したがって、任意の処理対象テキストに対し、それを形態素解析することによって検出された単語辞書中の単語の全てに対して概念ベクトルを付与することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
発明を実施するための最良の形態は、以下の実施例である。
【実施例１】
【００１６】
図１は、本発明の実施例１である単語ベクトル生成装置１０の構成を示すブロック図である。
【００１７】
単語ベクトル生成装置１０は、文書集合取得手段１１と、文書集合群マージ手段１２と、単語分割手段１３と、共起行列生成手段１４と、ベクトル生成手段１５と、Web検索エンジン２１と、単語辞書２２とを有する。
【００１８】
文書集合取得手段１１は、単語辞書２２中の各単語を検索キーとして、Web検索エンジン２１によって検索し、単語辞書２２を検索し、上記単語を含む文書集合を取得し、記憶装置に記憶する。
【００１９】
概念ベクトルを用いた言語処理において、概念ベクトルを付与すべき単語は、それ自体が意味を持つ単語、すなわち内容語に限られる。このことから、単語辞書２２中の各内容語に対してのみ、文書集合を取得する。単語辞書２２中のどの単語が内容語であるかを判断する場合、単語に付随する品詞情報に基づいて、判断する。
【００２０】
Web検索エンジン２１は、入力した文字列を含むWebページを検索するもの、または、入力した文字列を単語分割し、この結果得られた単語群を含むWebページを検索するものを用いる。
【００２１】
たとえば、入力単語を二重引用符（’’）で囲む等することによって、入力単語がより短い単位の単語に分割されないように、後者の機能をもつWeb検索エンジン２１に指示する。
【００２２】
取得する文書を、Web検索エンジン２１によって検索した結果のリストに存在している各Webページのスニペットと呼ばれる抄録としてもよく、または、ダウンロードした上記Webページそのものとしてもよい。
【００２３】
検索キーとする単語によっては、検索されるWebページの数が膨大になるので、検索結果の上位から、指定した数だけのWebページに対応する文書を取得するようにしてもよい。
【００２４】
文書集合群マージ手段１２は、各単語に対応する文書集合の全てをマージし、１つのテキストを生成する。マージする際、同一の文書は、１つのみになるようにし、つまり、同一の文書が、複数、テキストに存在しないようにし、異なる文書を連接し、１つのテキストとする。
【００２５】
単語分割手段１３は、文書集合取得手段１１が用いる単語辞書２２を用いて、上記テキストを単語分割する。分割結果において、内容語以外の単語を除去する。残った単語の中に、単語辞書２２中の内容語が全て存在している。
【００２６】
共起行列生成手段１４は、上記テキストに含まれている単語の対の上記テキスト中における共起頻度を算出することによって、単語間の共起行列を生成する。
【００２７】
単語分割手段１３が得た各異なり単語を、「概念語」と呼ぶ。この概念語の集合は、単語辞書２２中の内容語の集合と等しい。概念語を、上記テキスト中の出現頻度の多い順にソートする。頻度数が上位の単語から、指定した数だけの単語をとり、この結果得られた単語を、「共起語」と呼ぶ。
【００２８】
図２は、実施例１における共起行列の例を示す図である。
【００２９】
図２に示すように、各行に概念語が対応し、各列に共起語が対応する共起行列Ｘを生成する。任意の概念語と共起語との対が、上記テキスト中に共起する頻度を、共起行列Ｘに、記録する。
【００３０】
なお、共起頻度のカウントの仕方は、次の通りである。
【００３１】
初めに、共起行列Ｘの全成分の値を０とする。上記テキスト中の文毎に、上記文に含まれている概念語の集合Ａ（同一単語が複数ある場合、別物とする）と、共起語の集合Ｂ（同一単語が複数ある場合、別物とする）とをとる。概念語の集合Ａ中の単語と、共起語の集合Ｂ中の単語との任意の対（ｗａ，ｗｂ）をとる度に、共起行列Ｘ中の（ｗａ，ｗｂ）に対応する成分を、１だけ増やす。
【００３２】
上記実施例では、共起頻度をとる範囲を、１文にしているが、このようにする代わりに、共起頻度をとる範囲を、段落、文書、所定の単語数からなる単語列等としてもよい。
【００３３】
ベクトル生成手段１５は、共起行列を特異値分解し、次元数を縮退させた行列に変換することによって、各単語に対応するベクトルを生成する。
【００３４】
共起行列Ｘを、特異値分解する前に、精度向上のために、共起行列Ｘの各要素を、その平方根に変換してもよい。
【００３５】
共起行列Ｘが（ｐ，ｑ）行列であることを
【００３６】
【数１】
2006338342.tif 000003
と表すと、共起行列Ｘは、特異値分解によって、
【００３７】
【数２】
2006338342.tif 000004
と分解される。添字Ｔは、行列の転置を表す。ｒ＝ｒａｎｋ  Ｘ  ≦  ｍｉｎ（ｐ，ｑ），ＵＴＵ＝ＶＴＶ＝Ｉ（Ｉ：単位行列）であり、Σ＝（δｉｊ）としたときに、
【００３８】
【数３】
2006338342.tif 000005
である。δｉｉ（１≦ｉ≦ｒ）を、共起行列Ｘの特異値と呼ぶ。
【００３９】
ここで、
【００４０】
【数４】
2006338342.tif 000006
に対し、Ｕの最初のｒ’列、ＶＴの最初のｒ’行、Σの最初のｒ’行、ｒ’列をとり、
【００４１】
【数５】
2006338342.tif 000007
とする。共起行列Ｘから、直接、Ｕ’、Σ’、Ｖ’を求めるようにしてもよい。
【００４２】
Ｕ’の各行ベクトルを、その長さで割って、正規化したものを、対応する概念語の「概念ベクトル」とする。概念語とその対応する概念ベクトルとの対の集合を、「概念ベース」とする。
【００４３】
ベクトル生成手段１５において、共起行列Ｘの行数ｐが大きいと、特異値分解処理の計算量が多くなり、計算が実行不可能になる可能性がある。そこで、共起行列Ｘの部分行列に対して、特異値分解を行うことによって、概念ベースを生成し、概念ベースに含まれない単語に対しては、その概念ベクトルを推定するという方法をとることができる。この方法として特開２００５−１２８９１７で述べられている方法や、概念ベクトルの分布の性質を利用する方法（以下、「概念ベクトル分布法」と呼ぶ）がある。
【００４４】
これらの方法では、まず、共起行列Ｘの最初のｓ（＜＜ｐ）行だけとった
【００４５】
【数６】
2006338342.tif 000008
に対して、特異値分解を行い、
【００４６】
【数７】
2006338342.tif 000009
とし、
【００４７】
【数８】
2006338342.tif 000010
に対して、Ｕの最初のｒ’列、ＶＴの最初のｒ’行、Σの最初のｒ’行、ｒ’列をとり、
【００４８】
【数９】
2006338342.tif 000011
とする。Ｙから、直接Ｕ’、Σ’、Ｖ’を求めるようにしてもよい。
【００４９】
Ｕ’の各行ベクトルを、その長さで割って、正規化したものを、対応する概念語の「概念ベクトル」とする。概念語とその対応する概念ベクトルとの対の集合を、「概念ベース」とする。
【００５０】
特開２００５−１２８９１７に示す方法によれば、共起行列Ｘの残りの各行に対応する概念語ｗに対しては、ｗの行ベクトルを、ｈｗとしたときに、ベクトル
【００５１】
【数１０】
2006338342.tif 000012
を計算し、その長さで割って、正規化したものを、「ｗの推定概念ベクトル」とする。ｗとその推定概念ベクトルとを、概念ベースに追加登録する。
【００５２】
概念ベクトル分布法によれば、概念ベースに存在している概念語に対しては、対応する概念ベクトルを割り当て、概念ベースに存在しない概念語（以下、「未知語」と呼ぶ）に対しては、同じ次元数の未知ベクトルを割り当てる。単語分割手段１３によって得られた上記テキストの単語分割結果において、未知語を含む文の集合｛ｃ１，ｃ２，…，ｃｇ｝を、以降の処理対象とする。概念語ｗが文ｃｉに出現する回数ｚ（ｗ｜ｃｉ）を、文ｃｉ内でのｗの重みとし、全文にわたって加算した回数
【００５３】
【数１１】
2006338342.tif 000013
を、「ｗの重み」とする。全概念語の重み付平均ベクトルと、１文内での全概念語の重み付平均ベクトルとの距離の自乗に、上記文内での概念語の重みの和を乗じた値を、全文にわたって加算した値（以下、「クラスタ間変動」と呼ぶ）が、ベクトルの分散が一定という条件下で最大となるように、未知語の未知ベクトルを求める。
【００５４】
この求めた未知ベクトルを、その長さで割って、正規化したものを、対応する未知語の推定概念ベクトルとする。未知語とその推定概念ベクトルとを、概念ベースに追加登録する。
【００５５】
なお、クラスタ間変動が最大となる未知ベクトルを求める処理は、未知語の数（注：出現回数ではなく、異なり単語数である）が多いと、計算量が膨大となる。したがって、上記テキスト中の未知語を含む文を、順次読み込み、未知語の数が、指定した値以上になった時点で、概念ベクトル推定処理を行い、未知語とその推定概念ベクトルとを、概念ベースに追加登録する操作を繰り返すようにしてもよい。
【００５６】
また、上記では、処理対象として文集合をとったが、文を単位としているが、文を単位とする代わりに、段落、文書、または所定の単語数からなる単語列等を、単位とするようにしてもよい。
【００５７】
共起行列Ｘの最初のｓ（＜＜ｐ）行の中のある行に対応する概念語ｗが、どの共起語とも共起せず、ｗの行ベクトルｈｗが、零ベクトルである場合がある。このような概念語が存在している場合、上記概念語の行を取り除いた行列について、特異値分解を行い、概念ベースを生成する。
【００５８】
この後に、概念ベクトル分布法を実行することによって、共起行列Ｘにおいて、ｈｗが零ベクトルであるような概念語ｗも含め、概念ベースに含まれていない全ての概念語の概念ベクトルを推定することができる。
【００５９】
特異値分解の後に、特開２００５−１２８９１７に示す方法を実行した場合、共起行列Ｘにおいて、ｈｗが零ベクトルであるような概念語ｗに対してだけは、概念ベクトルを推定できない。そこで、特開２００５−１２８９１７に示す方法を実行した後に、概念ベクトル分布法を実行することによって、共起行列Ｘにおいて、ｈｗが零ベクトルである概念語ｗの概念ベクトルを推定することができる。
【００６０】
また、上記処理をプログラムとして構築し、当該プログラムを通信回線または、記憶媒体からインストールし、ＣＰＵ等の手段で実施することが可能である。
【００６１】
つまり、上記実施例をプログラムの発明として把握することができ、上記実施例は、単語辞書中の各単語の意味を表現するベクトルを生成する単語ベクトル生成プログラムにおいて、単語辞書中の各単語を検索キーとして、Web検索エンジンによって検索し、上記単語を含む文書集合を取得し、記憶装置に記憶する文書集合取得手順と、上記各単語に対応する上記文書集合の全てをマージし、１つのテキストを生成し、記憶装置に記憶する文書集合群マージ手順と、上記生成されたテキストを単語分割し、記憶装置に記憶する単語分割手順と、上記生成されたテキストに含まれている単語の対が、上記テキスト中で共起する共起頻度を算出することによって、単語間の共起行列を生成し、記憶装置に記憶する共起行列生成手順と、上記共起行列を特異値分解し、次元数を縮退させた行列に変換することによって、上記各単語に対応するベクトルを生成し、記憶装置に記憶するベクトル生成手順とをコンピュータに実行させるプログラムの例である。
【００６２】
上記実施例によれば、単語辞書２２中の全単語を含むコーパスを生成し、単語辞書２２中の全単語に対し、その概念ベクトルを生成することができ、したがって、任意の処理対象テキストに対し、それを形態素解析することによって検出される単語辞書２２中の単語の全てに対して概念ベクトルを付与することができる。
【００６３】
なお、上記実施例で述べたように、コーパス中の高頻度語のみを使用して概念ベースを生成し、コーパス中の残りの単語に対して、特開２００５−１２８９１７に記載されている方法や概念ベクトル分布法によって、上記単語の概念ベクトルを推定することができるが、この推定処理は、概念ベースを生成するときにだけ実行するので、処理のオーバヘッドは問題にならない。処理対象テキストが入力されたときに、処理対象テキスト中の単語辞書２２にある単語については、概念ベースを割り当てることができ、推定処理を行うオーバヘッドをなくすことができる。
【００６４】
上記実施例では、Ｄｅｅｒｗｅｓｔｅｒ（非特許文献１）記載の方法のように、単語・文書間の共起行列から概念ベクトルを生成するアプローチを採用していない。これは、単語辞書中の全単語を含むような適切な量の文書集合を獲得することが困難なことに由来する。上記実施例における文書集合取得手段によって取得した文書集合であって、各単語に対応する文書集合をマージして得られる文書集合は、単語辞書中の全単語を含むような文書集合である。しかし、各単語に対応する文書集合は、単語によっては共通する要素が少なく、一般にマージした文書集合の要素数は膨大なものになる。このように、単語・文書間の共起行列の文書数が大きいと、特異値分解が計算量的に不可能になる可能性がある。
【００６５】
そこで、上記実施例では、単語・単語間の共起行列を生成する。共起行列の列となる単語（共起語）を高頻度語に制限しても、共起行列の行となる単語（概念語）はいずれも、一般にいずれかの共起語と共起するので、上記概念語に対応する行ベクトルは零ベクトルではなく、他の概念語の行ベクトルと区別できる意味あるものになる。
【産業上の利用可能性】
【００６６】
本発明は、単語辞書中の各単語に対して、上記単語の意味を表現するベクトルを生成する技術に適用可能である。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施例１である単語ベクトル生成装置１０の構成を示すブロック図である。
【図２】実施例１における共起行列の例を示す図である。
【符号の説明】
【００６８】
１０…単語ベクトル生成装置、
１１…文書集合取得手段、
１２…文書集合群マージ手段、
１３…単語分割手段、
１４…共起行列生成手段、
１５…ベクトル生成手段、
２１…Web検索エンジン、
２２…単語辞書。
【図１】
2006338342.tif 000014
【図２】
2006338342.tif 000015