(57)【要約】【課題】意味表現として適切な文字列ベクトルを生成することを課題とする。【解決手段】文字列ベクトルデータベース1と、テキストとを入力とし、前記文字列ベクトルデータベース1の複製である文字列ベクトルデータベース2を生成した後、前記テキスト中の、連続する有限個の単語の列である所定の範囲に存在する、前記文字列ベクトルデータベース1中の文字列A、Bの任意の対に対し、当該文字列Aの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)をスカラー倍したものを加算し、前記文字列Bの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)をスカラー倍したものを加算することを、前記テキスト中の全ての前記所定の範囲にわたって繰り返し、その結果得られた文字列ベクトルデータベース2を出力する。【選択図】図１
2011248484.tif 000002
【特許請求の範囲】
【請求項１】
文字列と、当該文字列の意味表現としてのベクトルである文字列ベクトルとの、対の集合である文字列ベクトルデータベース1と、テキストとを入力とし、前記文字列ベクトルデータベース1の複製である文字列ベクトルデータベース2を生成した後、前記テキスト中の、連続する有限個の単語の列である所定の範囲に存在する、前記文字列ベクトルデータベース1中の文字列A、Bの任意の対に対し、当該文字列Aの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)をスカラー倍したものを加算し、前記文字列Bの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)をスカラー倍したものを加算することを、前記テキスト中の全ての前記所定の範囲にわたって繰り返し、その結果得られた文字列ベクトルデータベース2を出力する文字列ベクトル変換手段
を備えることを特徴とする文字列ベクトル変換装置。
【請求項２】
文字列と、当該文字列の意味表現としてのベクトルである文字列ベクトルとの、対の集合である文字列ベクトルデータベース1と、テキストとを入力とし、前記文字列ベクトルデータベース1の複製である文字列ベクトルデータベース2を生成した後、前記テキスト中の、連続する有限個の単語の列である所定の範囲に存在する、前記文字列ベクトルデータベース1中の文字列A、Bの任意の対に対し、当該文字列Aの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)から、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)を減じたベクトルv(A)-v(B)をスカラー倍したものを加算し、前記文字列Bの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)から、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)を減じたベクトルv(B)-v(A)をスカラー倍したものを加算することを、前記テキスト中の全ての前記所定の範囲にわたって繰り返し、その結果得られた文字列ベクトルデータベース2を出力する文字列ベクトル変換手段
を備えることを特徴とする文字列ベクトル変換装置。
【請求項３】
前記繰り返しの処理の結果得られた文字列ベクトルデータベース2の各文字列ベクトルを所定の長さに正規化し、正規化の結果得られた文字列ベクトルデータベース2を出力することを特徴とする請求項１または２に記載の文字列ベクトル変換装置。
【請求項４】
文字列ベクトル変換手段を備えた文字列ベクトル変換装置が実行する文字列ベクトル変換方法であって、
文字列と、当該文字列の意味表現としてのベクトルである文字列ベクトルとの、対の集合である文字列ベクトルデータベース1と、テキストとを入力する入力ステップと、
前記文字列ベクトルデータベース1の複製である文字列ベクトルデータベース2を生成した後、前記テキスト中の、連続する有限個の単語の列である所定の範囲に存在する、前記文字列ベクトルデータベース1中の文字列A、Bの任意の対に対し、当該文字列Aの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)をスカラー倍したものを加算し、前記文字列Bの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)をスカラー倍したものを加算することを、前記テキスト中の全ての前記所定の範囲にわたって繰り返す文字列ベクトル変換ステップと、
前記文字列ベクトル変換ステップの結果得られた文字列ベクトルデータベース2を出力する出力ステップと
を備えることを特徴とする文字列ベクトル変換方法。
【請求項５】
文字列ベクトル変換手段を備えた文字列ベクトル変換装置が実行する文字列ベクトル変換方法であって、
文字列と、当該文字列の意味表現としてのベクトルである文字列ベクトルとの、対の集合である文字列ベクトルデータベース1と、テキストとを入力する入力ステップと、
前記文字列ベクトルデータベース1の複製である文字列ベクトルデータベース2を生成した後、前記テキスト中の、連続する有限個の単語の列である所定の範囲に存在する、前記文字列ベクトルデータベース1中の文字列A、Bの任意の対に対し、当該文字列Aの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)から、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)を減じたベクトルv(A)-v(B)をスカラー倍したものを加算し、前記文字列Bの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)から、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)を減じたベクトルv(B)-v(A)をスカラー倍したものを加算することを、前記テキスト中の全ての前記所定の範囲にわたって繰り返す文字列ベクトル変換ステップと、
前記文字列ベクトル変換ステップの結果得られた文字列ベクトルデータベース2を出力する出力ステップと
を備えることを特徴とする文字列ベクトル変換方法。
【請求項６】
前記文字列ベクトル変換ステップは、前記繰り返しの処理の結果得られた文字列ベクトルデータベース2の各文字列ベクトルを所定の長さに正規化するステップを含み、
前記出力ステップにおいて、前記正規化の結果得られた文字列ベクトルデータベース2を出力することを特徴とする請求項４または５に記載の文字列ベクトル変換方法。
【請求項７】
コンピュータに、請求項４ないし６のうちいずれか1項に記載された文字列ベクトル変換方法における各ステップを実行させるためのプログラム。
【請求項８】
請求項７に記載されたプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列の意味表現である文字列ベクトルを変換する文字列ベクトル変換装置、文字列ベクトル変換方法、プログラム、及びプログラムを格納したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
単語の意味表現としてのベクトルは、単語間の意味的類似性を定量化できるため、検索等の言語処理に適用され、精度向上に寄与している。
【０００３】
単語の意味表現であるベクトルを生成する方法として、非特許文献1に記載の方法がある。この方法では、テキストを入力とし、テキスト中に存在する単語の異なりの集合をとり、該集合間の共起行列を生成する。テキストの所定の範囲（典型的には1文）において、任意の単語同士が共起する頻度を、テキスト中の全ての所定の範囲にわたって加算した値を、該単語対に対応する該共起行列中の要素に格納する。共起行列中の各行ベクトルは、該行に対応する単語が、どのような単語と共起しているか（すなわちどのような単語を隣人として持っているか）を表している。一般に、意味の近い単語は、共通の隣人となる単語を持っており、対応する行ベクトルが近くなる。そこで、単語の概念を、対応する行ベクトルで表す。この行ベクトルを共起ベクトルと呼ぶ。
【０００４】
生成された共起行列を特異値分解し、列数を縮退させた共起行列に変換し、共起ベクトルの次元数を縮退することにより、ベクトル間の類似性の精度を向上させることができる。共起ベクトルの次元数を縮退して得られるベクトルを概念ベクトルと呼ぶ。
【０００５】
共起ベクトルと概念ベクトルを合わせて単語ベクトルと呼ぶ。単語間の意味的類似性は、対応する単語ベクトルの間の類似度により定量化される。
【０００６】
文書の意味表現としての文書ベクトルは、文書中の単語の単語ベクトルの和または重心とする。文書間の意味的類似性は、対応する文書ベクトルの間の類似度により定量化される。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】H. Schutze, Dimensions of Meaning, Proc. of Supercomputing '92, pp.786-796, 1992
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献1の方法では、テキスト中のある範囲1内に単語A、B、Cがあり、別の範囲2内に単語D、Cがあるとき、範囲1、2での単語間共起頻度をカウントすると、以下のような共起ベクトル群が生成される。ここでの1範囲内でのカウントでは、同一文字列の単語が複数あっても別物ととらえ、単語自身との共起をカウントしないやり方をとっている。
【０００９】
A，B，C，D
A（ 0， 1，1，0）
B（ 1， 0，1，0）
C（ 1， 1，0，1）
D（ 0， 0，1，0）
上記の例では、単語A、Dは、それぞれ異なる範囲にあって、単語Cと共起している。単語A、Dは異なる範囲にあっても、共通の隣人をもつということで、真に意味的に近いということがいえる。単語B、Dについても同様である。
【００１０】
一方、単語A、Bは、同一の範囲にあり、該範囲内の単語Cと共起している。このように、A、Bのような任意の単語対をとったとき、それらが共起する範囲においては、該範囲内の単語とも必ず共起するため、単語A、Bの共起ベクトルが不当に近くなるという問題がある。特に（犬，猫）や（野球，サッカー）といった同一文中に共起することが多い単語対は、該文中にある単語との共起頻度が非常に高くなり、それらの共起ベクトルが不当に近くなるという弊害が大きい。
【００１１】
単語A、Bの適切な共起ベクトルを取得するためには、上記の単語A、Dや単語B、Dの共起ベクトルの例のように、単語A、Bが共起しない範囲の集合のみから単語A、Bの共起ベクトルを算出することが考えられる。この単語Aの共起ベクトル算出は、全ての範囲の集合から算出した単語Aの共起ベクトルから、単語A、Bが共起する1範囲から算出した単語Aの上記のような共起ベクトルを、単語A、Bが共起する全範囲にわたって減算することによっても可能である。単語Bの共起ベクトル算出についても同様である。こうすることにより、単語A、Bが異なる範囲にあっても、共通の隣人をどれだけ持っているかを示す、単語A、Bの共起ベクトルを生成できる。このようにして生成された単語A、Bの共起ベクトルは、単語A、Bの意味的な近さを的確に示すと考えられる。
【００１２】
しかしながら、上記に述べた対処法では、なお以下の問題がある。
【００１３】
第1の問題は、単語対ごとに、該単語対が共起する範囲の集合（及び、その補集合として、共起しない範囲の集合）が異なるため、単語対ごとに、該単語対に対応する範囲集合から共起ベクトルを生成する必要があり、単語対の数は膨大であるため、共起ベクトル算出の計算量が莫大なものとなる。
【００１４】
第2の問題は、任意の単語Aの共起ベクトルが、他の単語との対ごとに異なるということである。単語Aと、他の単語との近さを出すだけが目的ならば、これでよいが、文書を、該文書を構成する単語のベクトルの集合ととらえ、文書間の意味的類似性を定量化するためには、各単語の共起ベクトルが一意に定まっている必要がある。
【００１５】
本発明は、このような問題を解決するためになされたものであり、文字列の意味表現である文字列ベクトルを変換することにより、意味表現として適切な文字列ベクトルを生成することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記の課題を解決するために、請求項１に係る発明は、文字列と、当該文字列の意味表現としてのベクトルである文字列ベクトルとの、対の集合である文字列ベクトルデータベース1と、テキストとを入力とし、前記文字列ベクトルデータベース1の複製である文字列ベクトルデータベース2を生成した後、前記テキスト中の、連続する有限個の単語の列である所定の範囲に存在する、前記文字列ベクトルデータベース1中の文字列A、Bの任意の対に対し、当該文字列Aの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)をスカラー倍したものを加算し、前記文字列Bの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)をスカラー倍したものを加算することを、前記テキスト中の全ての前記所定の範囲にわたって繰り返し、その結果得られた文字列ベクトルデータベース2を出力する文字列ベクトル変換手段を備えることを特徴とする文字列ベクトル変換装置として構成される。
【００１７】
また、請求項２に係る発明は、文字列と、当該文字列の意味表現としてのベクトルである文字列ベクトルとの、対の集合である文字列ベクトルデータベース1と、テキストとを入力とし、前記文字列ベクトルデータベース1の複製である文字列ベクトルデータベース2を生成した後、前記テキスト中の、連続する有限個の単語の列である所定の範囲に存在する、前記文字列ベクトルデータベース1中の文字列A、Bの任意の対に対し、当該文字列Aの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)から、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)を減じたベクトルv(A)-v(B)をスカラー倍したものを加算し、前記文字列Bの前記文字列ベクトルデータベース2中のベクトルに、前記文字列Bの前記文字列ベクトルデータベース1中のベクトルv(B)から、前記文字列Aの前記文字列ベクトルデータベース1中のベクトルv(A)を減じたベクトルv(B)-v(A)をスカラー倍したものを加算することを、前記テキスト中の全ての前記所定の範囲にわたって繰り返し、その結果得られた文字列ベクトルデータベース2を出力する文字列ベクトル変換手段を備えることを特徴とする文字列ベクトル変換装置として構成される。
【００１８】
また、請求項３に記載のように、請求項１または２に記載の文字列ベクトル変換装置において、前記繰り返しの処理の結果得られた文字列ベクトルデータベース2の各文字列ベクトルを所定の長さに正規化し、正規化の結果得られた文字列ベクトルデータベース2を出力することとしてもよい。
【００１９】
また、請求項４〜６に記載のように、本発明は、請求項１〜３に記載の文字列ベクトル変換装置が実行する文字列ベクトル生成方法として構成することもできる。また、本発明は、請求項７に記載のように、コンピュータに、請求項４ないし６のうちいずれか1項に記載された文字列ベクトル変換方法における各ステップを実行させるためのプログラムとして構成してもよい。更に、本発明は、請求項８に記載のように、請求項７に記載されたプログラムを格納したコンピュータ読み取り可能な記録媒体として構成することもできる。
【発明の効果】
【００２０】
本発明により得られた文字列ベクトルデータベース2の文字列ベクトルは、同一範囲内に共起することによる、意味的に過剰に近くなっている分が除去されたものであるので、意味表現として、より適切なものとなる。すなわち、本発明により、意味表現として適切な文字列ベクトルを生成することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施例に係る文字列ベクトル変換装置100の機能構成図である。
【図２】第１の処理例でのベクトル変換を示す図である。
【図３】第２の処理例でのベクトル変換を示す図である。
【図４】文字列ベクトル生成部102を含む文字列ベクトル変換装置100の機能構成図である。
【図５】入力テキスト(13)の例を示す図である。
【図６】単語辞書の内容の一例を示す図である。
【図７】不要語テーブルの内容の一例を示す図である。
【図８】不要品詞テーブルの内容の一例を示す図である。
【図９】図５のテキストを形態素解析した結果を示す図である。
【図１０】文字列ベクトルデータベース1(12)としての単語間共起行列の例を示す図である。
【図１１】文字列ベクトルデータベース1(12)としての単語・成分番号間共起行列の例を示す図である。
【図１２】文字列ベクトルデータベース1(12)としての、特異値分解を行った共起行列の例を示す図である。
【図１３】文字列ベクトル変換部11が実行する処理のフローチャートである。
【図１４】配列Sの内容例を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の実施例を説明する。
【００２３】
図１に、本発明の実施例に係る文字列ベクトル変換装置100の機能構成図を示す。図１に示すように、文字列ベクトル変換装置100は、文字列ベクトル変換部11、及びデータ格納部101を備える。
【００２４】
データ格納部101は、文字列ベクトルデータベース1(12)、テキスト13、及び文字列ベクトルデータベース2(14)を格納する。文字列ベクトルデータベース1(12)は、テキスト13を用いて予め生成された文字列ベクトルのデータベースであり、文字列ベクトルデータベース2(14)は、本発明に係る文字列ベクトル変換処理を行って得られるデータベースである。
【００２５】
文字列ベクトル変換部11は、文字列と、該文字列の意味表現としてのベクトルである文字列ベクトルとの、対の集合である文字列ベクトルデータベース1(12)を、データ格納部101から読み出して入力とし、該文字列ベクトルデータベース1(12)の複製である文字列ベクトルデータベース2(14)を生成した後、データ格納部101から読み出したテキスト(13)中の、連続する有限個の単語の列である所定の範囲に存在する、該文字列ベクトルデータベース1(12)中の文字列A、Bの任意の対に対し、該文字列Aの該文字列ベクトルデータベース2(14)中のベクトルに、該文字列Bの該文字列ベクトルデータベース1(12)中のベクトルv(B)をスカラー倍したものを加算し、該文字列Bの該文字列ベクトルデータベース2(14)中のベクトルに、該文字列Aの該文字列ベクトルデータベース1(12)中のベクトルv(A)をスカラー倍したものを加算することを、該テキスト(13)中の全ての所定の範囲にわたって繰り返し、その結果得られた文字列ベクトルデータベース2(14)を出力し、データ格納部101に格納する。
【００２６】
以上は、文字列ベクトル変換部11の第１の処理例である。第２の処理例として、文字列ベクトル変換部11は、次のような処理を行ってもよい。
【００２７】
文字列ベクトル変換部11は、文字列と、該文字列の意味表現としてのベクトルである文字列ベクトルとの、対の集合である文字列ベクトルデータベース1(12)を、データ格納部101から読み出して入力とし、該文字列ベクトルデータベース1(12)の複製である文字列ベクトルデータベース2(14)を生成した後、データ格納部101から読み出したテキスト(13)中の、連続する有限個の単語の列である所定の範囲に存在する、該文字列ベクトルデータベース1(12)中の文字列A、Bの任意の対に対し、該文字列Aの該文字列ベクトルデータベース2(14)中のベクトルに、該文字列Aの該文字列ベクトルデータベース1(12)中のベクトルv(A)から、該文字列Bの該文字列ベクトルデータベース1(12)中のベクトルv(B)を減じたベクトルv(A)-v(B)をスカラー倍したものを加算し、該文字列Bの該文字列ベクトルデータベース2(14)中のベクトルに、該文字列Bの該文字列ベクトルデータベース1(12)中のベクトルv(B)から、該文字列Aの該文字列ベクトルデータベース1(12)中のベクトルv(A)を減じたベクトルv(B)-v(A)をスカラー倍したものを加算することを、該テキスト(13)中の全ての所定の範囲にわたって繰り返し、その結果得られた文字列ベクトルデータベース2(14)を出力し、データ格納部101に格納する。
【００２８】
なお、上記の第１、第２の処理例において、文字列ベクトル変換部11は、処理結果である文字列ベクトルデータベース2(14)をデータ格納部101に格納することに代えて、例えば通信ネットワークを介して、文字列ベクトル変換装置100の外部にある装置に出力することとしてもよい。
【００２９】
本発明に係る技術では、一旦、文字列ベクトルデータベース1(12)を生成した後に、文字列A、Bがテキスト中の同一範囲にあれば、文字列A、Bは、その分、意味的に過剰に近くなっているとして、意味的に過剰に近くなっている分だけ、文字列A、Bのベクトルを互いに離れるように更新している。より詳細には、以下のとおりである。
【００３０】
文字列A、Bの文字列ベクトルデータベース1(12)中のベクトルをそれぞれv(A)、v(B)とする。また、文字列A、Bの文字列ベクトルデータベース2(14)中のベクトルをそれぞれv'(A)、v'(B)とする。文字列ベクトルデータベース2(14)を生成した時点で、v'(A)=v(A)、v'(B)=v(B)である。
【００３１】
上述した文字列ベクトル変換部11の第１の処理例では、テキスト中の1範囲に文字列A、Bがあれば、v'(A)からは、v(B)のα(>0)倍だけ文字列Bの意味を減ずるということで、v'(A)からαv(B)を減算したv'(A)-αv(B)を、更新後のv'(A)とする。v'(B)の更新についても同様である。このベクトル変換処理を図２に示す。
【００３２】
文字列ベクトル変換部11の第２の処理例では、テキスト中の1範囲に文字列A、Bがあれば、v'(A)は、v(A)-v(B)のα(>0)倍だけv(B)から遠ざかるように、v'(A)にα(v(A)-v(B))を加算したv'(A)+α(v(A)-v(B))を、更新後のv'(A)とする。v'(B)の更新についても同様である。このベクトル変換処理を図３に示す。  
第１、第２の処理例とも、このような処理を、1範囲内の任意の文字列対に対して行い、さらに、テキスト中の全ての範囲にわたって繰り返すことにより、文字列ベクトルデータベース2(14)を生成、出力する。
【００３３】
なお、図２、図３の例のように、文字列ベクトルデータベース1(12)中の各文字列ベクトルを、長さ1に正規化している場合、上記第１、第２の処理例における繰り返し処理の結果得られた文字列ベクトルデータベース2(14)の各文字列ベクトルも長さ1に正規化し、その結果得られた文字列ベクトルデータベース2(14)を最終的な文字列ベクトルデータベース2(14)として出力してもよい。
【００３４】
文字列ベクトルデータベース1(12)は、文字列ベクトル変換部11の入力となるテキスト(13)から、本発明に係る文字列ベクトル変換処理の前に生成されるデータベースである。例えば、文字列ベクトルデータベース1(12)を、文字列ベクトル変換装置100以外の装置である文字列ベクトル生成装置により生成し、生成後の文字列ベクトルデータベース1(12)を文字列ベクトル変換装置100のデータ格納部101に格納する。また、文字列ベクトル変換装置100の中に、文字列ベクトルデータベース1(12)を生成する文字列ベクトル生成部102を備えてもよい。この場合の文字列ベクトル変換装置100の構成を図４に示す。なお、データ格納部101には、文字列ベクトルデータベース1(12)の生成の過程で使用される所定の範囲を示す情報や、形態素解析結果も格納され、これらの格納データは、文字列ベクトル変換部11により読み出されて文字列ベクトル変換処理に使用される。
【００３５】
以下、本実施例の処理内容をより詳細に説明する。本実施例では、文字列を単語として説明する。一般の文字列でも、単語の場合と同様にして、以下で述べる本実施例の処理内容を実施することが可能である。
【００３６】
まず、文字列ベクトルデータベース1(12)の生成について概略を説明する。ここでは、一例として、図４に示す文字列ベクトル変換装置100の文字列ベクトル生成部102が文字列ベクトルデータベース1(12)の生成を行うこととする。すなわち、以下で説明する処理は、文字列ベクトル生成部102が実行する処理である。
【００３７】
文字列ベクトル生成部102は、データ格納部101からテキスト(13)を読み出して入力とする。図5は、入力テキスト(13)の例であり、図5中にある「時計とパンを買いパンを食べた」がテキスト中の1文である。
【００３８】
文字列ベクトル生成部102は、単語辞書を参照して、入力されたテキスト(13)を形態素解析する。単語辞書は、文字列ベクトル変換装置100の記憶手段（データ格納部等）に格納されていてもよいし、外部装置に格納され、通信ネットワークを介してアクセスするものであってもよい。
【００３９】
図６は単語辞書の内容の一例を示す。図６では、単語辞書は、1レコードが1単語に関する情報となっており、1レコードは、カンマで区切られた2つの項目から構成されている。第1項目は単語の表記であり、第2項目は該単語の品詞情報である。活用語に対しては、終止形も新たな項目として登録しておくということも考えられる。
【００４０】
続いて、文字列ベクトル生成部102は、形態素解析の結果得られる単語に対し、その後の処理で用いる単語（必要語と呼ぶ）か、用いない単語（不要語と呼ぶ）かを判断する。一般に、名詞、動詞、形容詞等の内容語が必要語となる。
【００４１】
単語が必要語かどうかは、不要語を記述した不要語テーブルと、不要語の品詞を記述した不要品詞テーブルを文字列ベクトル変換装置100の記憶手段に格納しておき、これらのテーブルを参照することにより判断する。図7は、不要語テーブルの内容の一例である。不要とされる各単語の終止形（終止形がない単語に対しては、単語表記を終止形とする。）が1レコードとして記述されている。図8は、不要品詞テーブルの内容の一例である。不要とされる各品詞情報が1レコードとして記述されている。
【００４２】
図５のテキストを形態素解析した結果を図９に示す。図９に示すとおり、各単語間は"/"で区切られている。各単語は、単語表記、終止形、品詞情報、必要語フラグから成っており、それぞれ","で区切られている。終止形が登録されていない単語に対しては、形態素解析後に、単語表記と品詞情報から終止形を導出し、終止形がない単語に対しては、単語表記を終止形とする。終止形が不要語テーブルのあるレコードと一致するか、あるいは、品詞情報が不要品詞テーブルのあるレコードと一致する場合、必要語フラグを0とし、一致しない場合、必要語フラグを1とする。
【００４３】
文字列ベクトル生成部102は、形態素解析結果中の終止形で、必要語フラグが1となっているものの異なりの集合を抽出する。また、この単語の異なりの集合の、ある2つの部分集合をP、Qとして抽出する。
【００４４】
文字列ベクトル生成部102は、各行が集合P中の単語に対応し、各列が集合Q中の単語に対応している行列を生成する。そして、入力されたテキスト中の、連続する有限個の単語の列である所定の範囲（1文、1段落、1文書等）に存在する、集合P中の単語pと、集合Q中の単語qとが共起する頻度を、テキスト中の全ての所定の範囲にわたって加算した値を、単語pと単語qに対応する該行列中の要素に格納する。このようにして図10に示すような行列が生成される。図10のような単語間共起行列を文字列ベクトルデータベース1(12)とし、データ格納部101に格納する。
【００４５】
上記のような行列を生成することに代えて、以下のような行列を生成してもよい。
【００４６】
ここでは、文字列ベクトル生成部102は、集合Q中の各単語に対し、L個の成分番号からなる成分番号集合R中のいくつかの成分番号を対応付ける。各行が集合P中の単語に対応し、各列が集合R中の成分番号に対応している行列を生成する。テキスト中の、連続する有限個の単語の列である所定の範囲（1文、1段落、1文書等）に存在する、集合P中の単語pと、集合Q中の単語に対応付けられた成分番号rとが共起する頻度を、テキスト中の全ての所定の範囲にわたって加算した値を、単語pと成分番号rに対応する該行列中の要素に格納する。このようにして図11のような行列が生成される。文字列ベクトル生成部102は、図11のような単語・成分番号間共起行列を文字列ベクトルデータベース1(12)とし、データ格納部101に格納してもよい。
【００４７】
また、文字列ベクトル生成部102は、図10か、または、図11の行列を生成した後、該行列の次元数をJとしたとき、J≧H≧1となる定数Hを用いて、上記行列を、特異値分解により、列数がHの行列に変換することにより、図12のような行列を生成してもよい。この場合、特異値分解を行った図12に示すような共起行列を文字列ベクトルデータベース1(12)としてデータ格納部101に格納する。
【００４８】
次に、文字列ベクトル変換部11が実行する処理の詳細を、図13のフローチャートを参照して説明する。文字列ベクトル変換部11は、文字列ベクトルデータベース1(12)、テキスト13の形態素解析結果、文字列ベクトルデータベース1(12)を生成する際に使用した所定の範囲を示す情報をデータ格納部101から読み出して入力とし、以下の各ステップを実行する。以下、各ステップについて説明する。
【００４９】
ステップ21）  データ格納部101から読み出した文字列ベクトルデータベース1(12)の複製である文字列ベクトルデータベース2(14)を生成する。
【００５０】
ステップ22）  文字列ベクトルデータベース1(12)を生成する際に、集合P中の単語と集合Q中の単語とが共起する頻度、または、集合P中の単語と集合R中の成分番号とが共起する頻度を算出する処理の対象となった形態素解析結果中の所定の範囲がある。所定の範囲は、1文、1段落や1文書等の、連続する有限個の単語の列である。文字列ベクトル変換部11による処理では、文字列ベクトルデータベース1(12)を生成する際にとった所定の範囲を用いる。
【００５１】
本ステップ22（制御１）では、処理対象とする形態素解析結果中の所定の範囲を以下のようにして決定する。
【００５２】
所定の範囲を1文とした場合は、まず、形態素解析結果中の最初の文を処理対象とする。処理対象とした文に関するステップ23以降の処理が終了したならば、その次の文を処理対象とする。最後の文に関するステップ23以降の処理が終了したならば、処理対象の文はないので、本フローチャートを終了する。所定の範囲を、他のものとした場合も同様である。
【００５３】
ステップ23）  集合P中の単語の配列である配列Sをクリアする。なお、配列は、メモリ等の記憶手段における記憶領域である。
【００５４】
ステップ24）  処理対象の形態素解析結果の範囲における、処理対象とする単語を以下のようにして決定する（制御２）。
【００５５】
まず、該範囲における最初の単語を処理対象とする。処理対象とした単語に関するステップ25の処理が終了したならば、その次の単語を処理対象とする。最後の単語に関するステップ25の処理が終了したならば、処理対象の単語はないので、ステップ26へ移行する。
【００５６】
ステップ25）  処理対象単語の必要語フラグが1であれば、該単語の終止形を処理対象として以下を行う。
【００５７】
処理対象の終止形で集合Pを検索し、ヒットすれば、該終止形を配列Sに追加する。配列Sにおいては、終止形が、追加される順に格納されており、同一の終止形が既に配列Sにある場合でも追加される。
【００５８】
図9に示した形態素解析結果の1範囲からは、ステップ24で処理対象の単語がなくなった時点で、図14の配列Sが得られる。
【００５９】
ステップ26）  配列Sにおける、処理対象とする単語Xを以下のようにして決定する（制御３）。
【００６０】
まず、配列Sにおける最初の単語を処理対象とする。処理対象とした単語に関するステップ27以降の処理が終了したならば、その次の単語を処理対象とする。最後の単語に関するステップ27以降の処理が終了したならば、処理対象の単語はないので、ステップ22へ移行する。
【００６１】
ステップ27）  配列Sにおける、処理対象とする単語Yを以下のようにして決定する（制御４）。
【００６２】
まず、配列Sにおける最初の単語を処理対象とする。処理対象とした単語に関するステップ28の処理が終了したならば、その次の単語を処理対象とする。最後の単語に関するステップ28の処理が終了したならば、処理対象の単語はないので、ステップ26へ移行する。
【００６３】
ステップ28）  配列Sにおいて、単語Y≠単語Xであれば、以下の処理を行う。（単語X、Yが文字列として同一であっても、配列Sにおいて別物であれば、単語Y≠単語Xである。）
単語X、Yの文字列ベクトルデータベース1(12)中のベクトルをそれぞれv(X)、v(Y)とする。また、単語X、Yの文字列ベクトルデータベース2(14)中のベクトルをそれぞれv'(X)、v'(Y)とする。
【００６４】
［第１の処理例］
α(>0)を、あらかじめ定めた定数とする。v'(X)-αv(Y)を算出し、v'(X)をこの算出した値に更新する。 
［第2の処理例］
α(>0)を、あらかじめ定めた定数とする。v'(X)+α(v(X)-v(Y))を算出し、v'(X)をこの算出した値に更新する。
【００６５】
本フローチャートで説明した処理においては、単語の頻度をカウントするプロセスや、単語同士の共起頻度をカウントするプロセスを含めないように構成できる。
【００６６】
文字列ベクトル変換部11は、本フローチャートが終了した時点での文字列データベース2(14)を出力する。あるいは、本フローチャートが終了した時点での文字列ベクトルデータベース2(14)の各文字列ベクトルを長さ1に正規化し、その結果得られた文字列ベクトルデータベース2(14)を最終的な文字列ベクトルデータベース2(14)として出力してもよい。
【００６７】
これまでに説明した文字列ベクトル変換装置100は、例えば、ＣＰＵやメモリ、ハードディスク等を備えた一般的なコンピュータに、実施例で説明した処理内容に対応するプログラムを実行させることにより実現可能である。当該プログラムは、可搬メモリ等のコンピュータ読み取り可能な記録媒体に記録して配布してもよいし、ネットワーク上のサーバからダウンロードすることもできる。このように、文字列ベクトル変換装置100をコンピュータで実現する場合、テキストや文字列等の処理データは、メモリ等の記憶手段に記憶され、プログラムの命令に従って、適宜、ＣＰＵにより読み出されて処理される。
【００６８】
また、これまでに説明した文字列ベクトル変換装置100は、１つのコンピュータで実現してもよいし、複数のコンピュータを、ネットワークを介して接続することにより実現してもよい。例えば、データ格納部101を外部のサーバ装置として構成することは、文字列ベクトル変換装置100を複数のコンピュータで実現する場合の一例である。
【産業上の利用可能性】
【００６９】
本発明は、文字列の意味表現である文字列ベクトルを変換する技術に適用可能である。
【００７０】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００７１】
11  文字列ベクトル変換部
100  文字列ベクトル変換装置
101  データ格納部
102  文字列ベクトル生成部
【図１】
2011248484.tif 000003
【図２】
2011248484.tif 000004
【図３】
2011248484.tif 000005
【図４】
2011248484.tif 000006
【図５】
2011248484.tif 000007
【図６】
2011248484.tif 000008
【図７】
2011248484.tif 000009
【図８】
2011248484.tif 000010
【図９】
2011248484.tif 000011
【図１０】
2011248484.tif 000012
【図１１】
2011248484.tif 000013
【図１２】
2011248484.tif 000014
【図１３】
2011248484.tif 000015
【図１４】
2011248484.tif 000016