(57)【要約】【課題】任意の単語に対し全ての異なり単語との共起情報を保持し、なおかつ、共起ベクトルの次元数を抑えて、共起ベクトルに対する処理の計算量が少なくなるような共起ベクトルを生成することを可能とする単語ベクトル生成装置、単語ベクトル生成方法、プログラム及び記録媒体を提供することを目的とする。【解決手段】単語辞書中の各単語に対し、Ｎ個の成分の内のいくつかを対応付け、入力されたテキストを形態素解析し、上記得られた単語の異なりの集合と、Ｎ個の成分の集合の間で共起行列を生成し、上記テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、上記テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納する単語ベクトル生成装置である。【選択図】図１
2010198106.tif 000002
【特許請求の範囲】
【請求項１】
単語辞書中の各単語に対し、Ｎ個の成分の内のいくつかを対応付ける第１成分付与手段と；
入力されたテキストを形態素解析する形態素解析手段と；
上記形態素解析手段で得られた単語の異なりの集合と、Ｎ個の成分の集合の間で共起行列を生成し、上記テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、上記テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納する共起行列生成手段と；
を有することを特徴とする単語ベクトル生成装置。
【請求項２】
入力されたテキストを形態素解析する形態素解析手段と；
上記形態素解析手段で得られた単語の各異なりに対し、Ｎ個の成分の内のいくつかを対応付ける第２成分付与手段と；
上記形態素解析手段で得られた単語の異なりの集合と、Ｎ個の成分の集合の間で共起行列を生成し、上記テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、上記テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納する共起行列生成手段と；
を有することを特徴とする単語ベクトル生成装置。
【請求項３】
単語辞書中の各単語に対し、Ｎ個の成分の内のいくつかを対応付け、記憶装置に記憶する第１成分付与工程と；
入力されたテキストを形態素解析し、記憶装置に記憶する形態素解析工程と；
上記形態素解析工程で得られた単語の異なりの集合と、Ｎ個の成分の集合の間で共起行列を生成し、上記テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、上記テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納し、記憶装置に記憶する共起行列生成工程と；
を有することを特徴とする単語ベクトル生成方法。
【請求項４】
入力されたテキストを形態素解析し、記憶装置に記憶する形態素解析工程と；
上記形態素解析工程で得られた単語の各異なりに対し、Ｎ個の成分の内のいくつかを対応付け、記憶装置に記憶する第２成分付与工程と；
上記形態素解析工程で得られた単語の異なりの集合と、Ｎ個の成分の集合の間で共起行列を生成し、上記テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、上記テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納し、記憶装置に記憶する共起行列生成工程と；
を有することを特徴とする単語ベクトル生成方法。
【請求項５】
請求項１または請求項２記載の単語ベクトル生成装置を構成する各手段としてコンピュータを機能させるプログラム。
【請求項６】
請求項１または請求項２記載の単語ベクトル生成装置を構成する各手段としてコンピュータを機能させるプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単語の意味表現であるベクトルを生成する単語ベクトル生成装置、単語ベクトル生成方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
単語の意味表現としてのベクトルは、単語間の意味的類似性を定量化できるため、検索等の言語処理に適用され、精度向上に寄与している。
【０００３】
単語の意味表現であるベクトルを生成する方法として、非特許文献１の方法がある。この方法では、テキストを入力とし、テキスト中に存在する単語の異なりの集合をとり、該集合間の共起行列を生成する。テキストの所定の範囲（典型的には１文）において、任意の単語同士が共起する頻度を、テキスト中の全ての所定の範囲にわたって加算した値を、該単語対に対応する該共起行列中の要素に格納する。共起行列中の各行ベクトルは、該行に対応する単語が、どのような単語と共起しているか（すなわちどのような単語を隣人として持っているか）を表している。一般に、意味の近い単語は、共通の隣人となる単語を持っており、対応する行ベクトルが近くなる。そこで、単語の概念を、対応する行ベクトルで表す。本明細書では、この行ベクトルを便宜上、共起ベクトルと呼ぶ。単語間の意味的類似性は、対応する共起ベクトルの間の類似度により定量化される。
【０００４】
生成された共起行列を特異値分解し、列数を縮退させた共起行列に変換し、共起ベクトルの次元数を圧縮することにより、ベクトル間の類似性の精度を向上させることができる。本明細書では、共起ベクトルの次元数を圧縮して得られるベクトルを便宜上、概念ベクトルと呼ぶ。
【０００５】
また、共起ベクトルと概念ベクトルを合わせて単語ベクトルと呼ぶ。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】H.Schutze, Dimensions of Meaning, Proc. of Supercomputing '92, pp.786-796, 1992
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１で示した方法では、共起行列の列に対応する異なり単語として、全異なり単語をとった場合、生成される共起ベクトルの次元数は非常に大きなものとなるため、この共起ベクトルを使用した言語処理の計算量が非常に大きなものになるという問題がある。
【０００８】
また、共起行列の列数が非常に大きい場合、共起行列を特異値分解するのに要する計算量は非常に大きなものとなり、特異値分解の実行が不可能になる。
【０００９】
これらのことから、非特許文献１で示した方法では、共起ベクトル、概念ベクトルのいずれを使用する場合でも、共起行列の列に対応する異なり単語の集合を制限する必要がある。一般的には、高頻度語のみに制限する。
【００１０】
共起行列の列に対応する異なり単語を制限するので、この列から漏れた異なり単語との共起頻度は、単語ベクトルにおいて一切考慮されず、単語ベクトルの品質が低くなる。このことを、より詳細に説明する。
【００１１】
単語の意味を識別するには、低頻度語との共起が重要となることが多い。例えば、意味的類似性を考える単語対として「野球」と「サッカー」をとった場合、これらの単語は、高頻度語である「選手」や「試合」といった単語とは、どちらも高頻度で共起する。一方、低頻度語である具体的な野球選手名とは、「野球」は高頻度で共起するが、「サッカー」は低頻度で共起する。同様に、低頻度語である具体的なサッカー選手名とは、「野球」は低頻度で共起するが、「サッカー」は高頻度で共起する。高頻度語との共起のみ考慮すると、「野球」と「サッカー」はベクトルが近くなり識別が困難となるが、低頻度語との共起まで考慮すると、「野球」と「サッカー」はベクトルが遠くなり識別可能となる。そのため、共起行列の列に対応する異なり単語を高頻度語のみに制限すると、生成される単語ベクトルの品質は低くなる。
【００１２】
本発明は、この課題を解決するために考え出されたものであり、任意の単語に対し全ての異なり単語との共起情報を保持し、なおかつ、共起ベクトルの次元数を抑えて、共起ベクトルに対する処理の計算量が少なくなるような共起ベクトルを生成することを可能とする単語ベクトル生成装置、単語ベクトル生成方法、プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、単語辞書中の各単語に対し、Ｎ個の成分の内のいくつかを対応付ける第１成分付与手段と、入力されたテキストを形態素解析する形態素解析手段と、上記形態素解析手段で得られた単語の異なりの集合と、Ｎ個の成分の集合の間で共起行列を生成し、上記テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、上記テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納する共起行列生成手段とを有することを特徴とする単語ベクトル生成装置である。
【００１４】
また、本発明は、入力されたテキストを形態素解析する形態素解析手段と、上記形態素解析手段で得られた単語の各異なりに対し、Ｎ個の成分の内のいくつかを対応付ける第２成分付与手段と、上記形態素解析手段で得られた単語の異なりの集合と、Ｎ個の成分の集合の間で共起行列を生成し、上記テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、上記テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納する共起行列生成手段とを有することを特徴とする単語ベクトル生成装置である。
【発明の効果】
【００１５】
本発明では、各異なり単語に、Ｎ個の成分の内のいくつかを対応付ける。典型的な対応付けは、異なる単語には異なる成分集合が対応付けられるように、一つの単語に対し、Ｎ個の成分の中からいくつかの成分をランダムに選んで対応付ける。
【００１６】
共起行列生成では、共起行列の各行を単語とし、各列を成分とする。各行に対応する単語Ａに対し、テキスト中の所定の範囲（典型的には１文）において、単語Ａが単語Ｃと共起していれば、単語Ａと、単語Ｃに対応付けられた各成分Ｂとの共起をカウントする。すなわち、単語Ｃとの共起を、単語Ｃに対応付けられた各成分との共起ととらえる。
【００１７】
従来手法の単語間共起であれば、共起行列の列に対応する単語として全単語をとると、列数として単語数分だけとってしまう。しかし、本発明の一般的な構成では、一つの単語を、Ｎ個の成分の内の複数個の成分で表現するので、列数を一定のＮにしたまま、Ｎよりも多い数の単語との共起を考慮することができる。
【００１８】
一方で本発明では、１単語が複数の成分で表現されるがゆえに、一つの共起ベクトルが、どの単語との共起から生成されたものであるかは、一般に複数の解釈ができてしまう。例えば、Ｎ＝４の場合、ある単語Ａが、成分集合がそれぞれ｛１，２｝、｛２，３｝、｛３，４｝となっている単語と共起すると、単語Ａの共起ベクトルは（１，２，２，１）となり、一方、別の単語Ａ’が、成分集合がそれぞれ｛１，４｝、｛２，３｝、｛２，３｝となっている単語と共起すると、単語Ａ’の共起ベクトルも（１，２，２，１）となり、共起の様相が異なっていても共起ベクトルが同じになってしまう。
【００１９】
しかしながら、大量のテキストから単語・成分間の共起頻度をカウントすれば、単語間の共起頻度のばらつきが大きくなることにより、共起の様相が異なるのに共起ベクトルが類似するという事態が起こる可能性は低くなり、一つの単語Ａの共起ベクトルは、Ａに特有な、各単語との共起の様相を反映したものとなる。このように、本発明によって生成される単語の共起ベクトルは、該単語に特有な、任意の単語との共起情報を保持しているので、共起行列の行に対応する単語の間の意味的な類似性と識別性を緻密に反映したものとなる。そして、任意の単語との共起情報を保持しつつも、次元数は一定（Ｎ個）であるので、それを使用した処理の計算量を増やさないようにすることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の請求項１の単語ベクトル生成装置の構成例を示す図である。
【図２】単語辞書１４の内容の一例を示す図である。
【図３】不要語テーブルの内容の一例を示す図である。
【図４】不要品詞テーブルの内容の一例を示す図である。
【図５】第１成分付与手段１１の処理を示すフローチャートである。
【図６】Ｋを２としたときの、第１成分付与手段１１によって更新された単語辞書１４を示す図である。
【図７】形態素解析手段１２に入力されるテキスト１５の一例を示す図である。
【図８】図６に示す単語辞書１４を参照して図７のテキスト１５を形態素解析した結果１６を示す図である。
【図９】共起行列生成手段１３の処理のフローチャートである。
【図１０】共起行列を示す図である。
【図１１】頻度ハッシュを示す図である。
【図１２】一時的な頻度ハッシュを示す図である。
【図１３】ステップ１３８で処理対象の単語がなくなった時点での共起行列を示す図である。
【図１４】本発明の請求項２の単語ベクトル生成装置の構成例を示す図である。
【図１５】図２の単語辞書２４を参照して図７のテキスト２５を形態素解析した結果２６を示す図である。
【図１６】第２成分付与手段２２の処理のフローチャートである。
【図１７】図１５の形態素解析結果２６を入力としたとき、異なり単語の集合として、得られる単語群を示す図である。
【図１８】図１７の単語群の各単語に対応付ける成分集合の要素数を２としたときに、第２成分付与手段２２の処理が終了した時点での単語群を示す図である。
【図１９】共起行列生成手段２３の処理を示すフローチャートである。
【図２０】必要語列を示す図である。
【図２１】必要語列を示す図である。
【図２２】頻度ハッシュを示す図である。
【図２３】一時的な頻度ハッシュを示す図である。
【図２４】共起行列を示す図である。
【発明を実施するための形態】
【００２１】
発明を実施するための形態は、以下の実施例である。
【実施例１】
【００２２】
図１は、本発明の請求項１の単語ベクトル生成装置の構成例を示す図である。
【００２３】
第１成分付与手段１１は、単語辞書１４中の各単語に対し、Ｎ個の成分の内のいくつかを対応付ける。
【００２４】
図２は、単語辞書１４の内容の一例を示す図である。
【００２５】
図２では、単語辞書１４は、１レコードが１単語に関する情報となっており、１レコードは、カンマで区切られた２つの項目から構成されている。第１項目は単語の表記であり、第２項目は該単語の品詞情報である。活用語に対しては、終止形も新たな項目として登録しておくということも考えられる。
【００２６】
第１成分付与手段１１では、一般に内容語といった処理に必要な単語（必要語と呼ぶ）にのみ成分集合を対応付ける。単語が必要語かどうかは、不要語を記述した不要語テーブルと、不要語の品詞を記述した不要品詞テーブルを使用して判断する。
【００２７】
図３は、不要語テーブルの内容の一例を示す図である。
【００２８】
不要とされる各単語の終止形（終止形がない単語に対しては、単語表記を終止形とする。）が１レコードとして記述されている。
【００２９】
図４は、不要品詞テーブルの内容の一例を示す図である。
【００３０】
不要とされる各品詞情報が１レコードとして記述されている。
【００３１】
図５は、第１成分付与手段１１の処理を示すフローチャートである。
【００３２】
各ステップについて説明する。
【００３３】
ステップ１１１）
単語辞書１４中のレコードを一つ読み出す。該レコードの終止形（単語表記と品詞情報から導出する。終止形がない単語に対しては、単語表記を終止形とする。）が不要語テーブルのあるレコードと一致するか、あるいは、該レコードの品詞情報が不要品詞テーブルのあるレコードと一致する場合、該レコードの単語は不要語と判断する。不要語と判断した場合、次の一レコードを読み出す。不要語でないと判断した場合、ステップ１１２へ移行する。
【００３４】
読み出すレコードがない場合は、第１成分付与手段１１の処理を終了する。
【００３５】
ステップ１１２）
対象単語に、Ｎ個の成分の内のいくつかを対応付ける。具体的には以下のようにする。
【００３６】
Ｎ個の成分は、一般にＮ個の異なる番号で表し、本実施例では１，２，…，Ｎと表す。
【００３７】
第１成分付与手段１１の処理を実行する前に、一単語に対応付ける成分の個数を定数Ｋとして定めておく。定数Ｋは、異なる単語には異なる成分集合が対応付けられるように、以下のようにして定める。
【００３８】
Ｎ個の成分から抽出したＫ個の成分の組合せの数は、以下の式で表される-ＮＣＫである。
【００３９】
ＮＣＫ＝（Ｎ（Ｎ−１）…（Ｎ−Ｋ＋１））／（Ｋ（Ｋ−１）…１）
対象単語の数がＭ以下の場合、ＮＣＫ≧ＭとなるようにＫを定める。Ｍは典型的には単語辞書１４のレコード数である。Ｋをこのように定めることにより、異なる単語には異なる成分集合を対応付けることができる。
【００４０】
最初にステップ１１２に入ったときは、Ｎ個の成分からランダムに抽出したＫ個の成分を、対象単語に対応付ける。
【００４１】
２番目以降にステップ１１２に入ったときは、Ｎ個の成分から抽出されるＫ個の成分の集合の群から、これまでに付与した成分集合の群を除いた集合群から、ランダムに一つの成分集合を選び、該成分集合を対象単語に付与する。
【００４２】
以上の処理により、単語辞書１４の対象単語のレコードには、該単語に対応付けられた成分集合が追記される。
【００４３】
ステップ１１２の処理が終了すれば、ステップ１１１へ移行する。
【００４４】
図６は、Ｋを２としたときの、第１成分付与手段１１によって更新された単語辞書１４を示す。各必要語には、その必要語にユニークな、２個の要素からなる成分集合が対応付けられており、該成分集合は第３項目として、各成分がコロン区切りとなっている。
【００４５】
形態素解析手段１２は、第１成分付与手段１１により更新された単語辞書１４、不要語テーブル、不要品詞テーブルを参照して、入力されたテキスト１５を形態素解析する。
【００４６】
図７は、形態素解析手段１２に入力されるテキスト１５の一例であり、図８は、図６に示される単語辞書１４を参照して図７のテキスト１５を形態素解析した結果１６を示す。各単語間は”／”で区切られている。各単語は、単語表記、終止形、品詞情報、必要語フラグ、成分情報から成っており、それぞれ”，”で区切られている。単語辞書１４に終止形が登録されていない場合は、形態素解析後に、単語表記と品詞情報から終止形を導出する。終止形がない単語に対しては、単語表記を終止形とする。終止形が不要語テーブルのあるレコードと一致するか、あるいは、品詞情報が不要品詞テーブルのあるレコードと一致する場合、必要語フラグを０とし、一致しない場合、必要語フラグを１とする。成分情報は、単語辞書１４中で該単語に対応付けられた成分集合である。
【００４７】
共起行列生成手段１３は、形態素解析結果１６中の単語の異なりの集合と、Ｎ個の成分の集合の間で共起行列を生成し、入力テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納する。
【００４８】
図９は、共起行列生成手段１３の処理のフローチャートの例である。各ステップについて説明する。
【００４９】
ステップ１３１）
形態素解析結果中の終止形で、必要語フラグが１となっているものの異なりの集合をとる。図８の形態素解析結果１６を入力としたとき、異なり単語の集合として、図１０の共起行列の各行に対応する単語群が得られる。得られた異なり単語集合の部分集合を採用してもよい。ステップ１３２へ移行する。
【００５０】
ステップ１３２）
異なり単語の集合と、Ｎ個の成分の集合の間で、図１０のような、各行が異なり単語に対応し、各列が成分に対応するような共起行列を生成する。共起行列中の各要素は、対応する異なり単語と成分との共起頻度を表し、本ステップでは初期値として０をセットする。ステップ１３３へ移行する。
【００５１】
ステップ１３３）
単語と成分とが共起する頻度を算出する処理の対象となるテキスト中の範囲を決定する。所定の範囲としては、１文、１段落や１文書等がある。所定の範囲を１文とした場合は、まず、テキスト中の最初の文を処理対象とする。処理対象とした文に関する処理が終了したならば、その次の文を処理対象とする。最後の文に関する処理が終了したならば、処理対象の文はないので、本フローチャートを終了する。所定の範囲を、他のものとした場合も同様である。
【００５２】
ステップ１３４）
成分とその頻度の組の集合を記憶する頻度ハッシュを、ヌルにクリアする。ステップ１３５へ移行する。
【００５３】
ステップ１３５）
処理対象のテキストの範囲における、処理対象とする単語を決定する。まず、処理対象のテキストの範囲における最初の単語を処理対象とする。処理対象とした単語に関する処理が終了したならば、その次の単語を処理対象とする。最後の単語に関する処理が終了したならば、処理対象の単語はないので、ステップ１３８へ移行する。
【００５４】
ステップ１３６）
処理対象の単語が必要語かどうかを判断する。処理対象の単語の必要語フラグが１ならばステップ１３７へ移行し、そうでないならばステップ１３５へ移行する。
【００５５】
ステップ１３７）
処理対象の単語の各成分に対し、該成分が頻度ハッシュになければ、該成分とその頻度１を頻度ハッシュに追加する。該成分が頻度ハッシュにあれば、頻度ハッシュにおける該成分の頻度を１だけ増やす。
【００５６】
図８に示した、テキストの１範囲の形態素解析結果からは、ステップ１３５で処理対象の単語がなくなった時点で、図１１の頻度ハッシュが得られる。
【００５７】
ステップ１３８）
処理対象のテキストの範囲における、処理対象とする単語を決定する。まず、処理対象のテキストの範囲における最初の単語を処理対象とする。処理対象とした単語に関する処理が終了したならば、その次の単語を処理対象とする。最後の単語に関する処理が終了したならば、処理対象の単語はないので、ステップ１３３へ移行する。
【００５８】
ステップ１３９）
処理対象の単語が必要語かどうかを判断する。処理対象の単語の必要語フラグが１ならばステップ１４０へ移行し、そうでないならばステップ１３８へ移行する。
【００５９】
ステップ１４０）
処理対象の単語の終止形で共起行列の単語集合を検索し、ヒットしたならば、頻度ハッシュにおける各成分の頻度を、該単語の終止形に対応する行ベクトルの該成分の値に加算する。ここで加算の仕方として、該単語自身の成分との共起をカウントする自己共起方式と、カウントしない自己非共起方式がある。
【００６０】
・自己共起方式：頻度ハッシュを、該単語の終止形の行ベクトルに加算する。
【００６１】
・自己非共起方式：頻度ハッシュから、該単語の各成分の頻度を１だけ減じたものを、該単語の終止形の行ベクトルに加算する。
【００６２】
自己非共起方式での例として、ステップ１３３において、共起行列が図１０であり、かつ、図８に示した、テキストの１範囲の形態素解析結果を処理対象と決定した場合を考える。ステップ１３８で最初の単語「パン」を処理対象と決定したときに、ステップ１４０では、図１１の頻度ハッシュから、該単語の成分である１１と９１の頻度をそれぞれ１だけ減じて得られる、図１２に示した一時的な頻度ハッシュを生成し、この一時的な頻度ハッシュを、該単語の終止形の行ベクトルに加算する。（図１１の頻度ハッシュは、一時的な頻度ハッシュを生成する際も、保持し続け、一時的な頻度ハッシュは、行ベクトルヘの加算が終わった後、クリアする。）ステップ１３８で処理対象の単語がなくなった時点で、図１３の共起行列が得られる。
【００６３】
図９のフローチャートが示すように、本発明での共起行列生成では、処理対象のテキストの範囲において、単語の頻度をカウントするプロセスや、単語同士の共起頻度をカウントするプロセスを含めないように構成することができる。
【００６４】
図１４は、本発明の請求項２の単語ベクトル生成装置の構成例である。
【００６５】
形態素解析手段２１は、図２に示された単語辞書２４、不要語テーブル、不要品詞テーブルを参照して、入力されたテキスト２５を形態素解析する。
【００６６】
図１５は、図２の単語辞書２４を参照して図７のテキスト２５を形態素解析した結果２６を示す。図８の形態素解析結果１６と比べ、各単語において成分情報がない点が異なる。
【００６７】
第２成分付与手段２２は、形態素解析手段２１で得られた単語の各異なりに対し、Ｎ個の成分の内のいくつかを対応付ける。図１６は、第２成分付与手段２２の処理のフローチャートの例である。各ステップについて説明する。
【００６８】
ステップ２２１）
形態素解析結果中の終止形で、必要語フラグが１となっているものの異なりの集合をとる。図１５の形態素解析結果２６を入力としたとき、異なり単語の集合として、図１７の単語群が得られる。ステップ２２２へ移行する。
【００６９】
ステップ２２２）
ステップ２２１で得られた単語群の単語を一つ読み出す。単語を読み出したら、ステップ２２３へ移行する。読み出す単語がない場合は、第２成分付与手段２２の処理を終了する。
【００７０】
ステップ２２３）
ステップ１１２と同一の処理を行う。但し、ステップ１１２の記述におけるＭの値としては、ステップ２２１の後、ステップ２２２へ移行する前に決定し、ステップ２２１で得られた単語群の単語数をとる。
【００７１】
ステップ２２１で得られた図１７の単語群は、各単語に対応付ける成分集合の要素数を２としたとき、第２成分付与手段２２の処理が終了した時点で図１８のようになる。各単語には、該単語にユニークな、２個の要素からなる成分集合が対応付けられており、該成分集合は第２項目として、各成分がコロン区切りとなっている。この各単語に成分集合が対応付けられた単語群を、成分付単語集合２７と呼ぶ。
【００７２】
共起行列生成手段２３は、第２成分付与手段２２で得られた異なり単語の集合と、Ｎ個の成分の集合の間で共起行列を生成し、入力テキストの所定の範囲において、任意の単語Ａと、該範囲中の単語に対応付けられた任意の成分Ｂとが共起する頻度を、テキスト中の全ての所定の範囲にわたって加算した値を、該単語Ａと該成分Ｂに対応する該共起行列中の要素に格納する。
【００７３】
第２成分付与手段２２で得られた異なり単語集合と成分付単語集合２７については、それぞれある部分集合を採用し、共起行列生成手段２３への入力としてもよい。
【００７４】
共起行列生成手段２３の処理を、図１９のフローチャートに基づいて説明する。
【００７５】
ステップ２３１）
第２成分付与手段２２で得られた異なり単語の集合を用いるという点を除いて、ステップ１３２と同一である。ステップ２３２へ移行する。
【００７６】
ステップ２３２）
ステップ１３３と同一である。
【００７７】
ステップ２３３）
処理対象となる必要語の列を記憶する必要語列を、ヌルにクリアする。また、成分とその頻度の組の集合を記憶する頻度ハッシュを、ヌルにクリアする。ステップ２３４へ移行する。
【００７８】
ステップ２３４）
ステップ１３５と同一である。処理対象の単語がなくなったとき、ステップ２３７へ移行する。
【００７９】
ステップ２３５）
ステップ１３６と同一である。処理対象の単語の必要語フラグが１ならばステップ２３６へ移行し、そうでないならばステップ２３４へ移行する。
【００８０】
ステップ２３６）
処理対象の単語の終止形で共起行列の単語集合を検索する。ヒットしたならば、該終止形を必要語列に追加する。必要語列においては、必要語が、追加される順に格納されており、同一の必要語がすでに必要語列にある場合でも追加される。
【００８１】
また、該単語の終止形で成分付単語集合２７を検索する。ヒットしたならば、該終止形の成分集合を取得した上で、ステップ１３７に記述した処理を行う。
【００８２】
図１５に示した、テキストの１範囲の形態素解析結果からは、ステップ２３４で処理対象の単語がなくなった時点で、図２０の必要語列と図１１の頻度ハッシュが得られる。
【００８３】
ステップ２３７）
必要語列における、処理対象とする必要語を決定する。まず、必要語列における最初の必要語を処理対象とする。処理対象とした必要語に関する処理が終了したならば、その次の必要語を処理対象とする。最後の必要語に関する処理が終了したならば、処理対象の必要語はないので、ステップ２３２へ移行する。
【００８４】
ステップ２３８）
処理対象の必要語で共起行列の単語集合を検索し、頻度ハッシュにおける各成分の頻度を、該必要語に対応する行ベクトルの該成分の値に加算する。ここで加算の仕方として、該必要語自身の成分との共起をカウントする自己共起方式と、カウントしない自己非共起方式がある。
【００８５】
・自己共起方式：頻度ハッシュを、該必要語の行ベクトルに加算する。
【００８６】
・自己非共起方式：該必要語の成分集合を、該必要語で成分付単語集合２７を検索することにより取得する。頻度ハッシュから、該必要語の各成分の頻度を１だけ減じたものを、該必要語の行ベクトルに加算する。
【００８７】
上記図１９のフローチャートの説明では、処理対象のテキストの範囲における必要語の終止形で同一のものが複数あるとき、それぞれを別物として処理している。処理対象のテキストの範囲における必要語の終止形で同一のものが複数あっても、１個として扱うやり方も考えられる。このやり方の場合、ステップ２３３、２３６が以下のようになる。
【００８８】
ステップ２３３）
必要語列と頻度ハッシュに加え、第２必要語列もヌルにクリアする。
【００８９】
ステップ２３６）
処理対象の単語の終止形で共起行列の単語集合を検索する。ヒットしたならば、該終止形で必要語列を検索する。ヒットしなければ、該終止形を必要語列に追加する。
【００９０】
また、該単語の終止形で成分付単語集合２７を検索する。ヒットしたならば、該終止形で第２必要語列を検索する。ヒットしなければ、該終止形を第２必要語列に追加し、該終止形の成分集合を取得した上で、ステップ１３７に記述した処理を行う。
【００９１】
このやり方では、図１５に示した、テキストの１範囲の形態素解析結果からは、ステップ２３４で処理対象の単語がなくなった時点で、図２１の必要語列と図２２の頻度ハッシュが得られる。該形態素解析結果中に２個ある単語「パン」は、１個として扱われている。
【００９２】
ステップ２３７、２３８においても、単語「パン」は１個として扱われる。自己非共起方式をとり、ステップ２３２において、共起行列が図１０であり、かつ、図１５に示した、テキストの１範囲の形態素解析結果を処理対象と決定した場合を考える。ステップ２３７で最初の単語「パン」を処理対象と決定したときに、ステップ２３８では、図２２の頻度ハッシュから、該単語の成分である１１と９１の頻度をそれぞれ１だけ減じて得られる、図２３に示した一時的な頻度ハッシュを生成し、この一時的な頻度ハッシュを、該単語の行ベクトルに加算する。（図２２の頻度ハッシュは、一時的な頻度ハッシュを生成する際も、保持し続け、一時的な頻度ハッシュは、行ベクトルヘの加算が終わった後、クリアする。）ステップ２３７で処理対象の単語がなくなった時点で、図２４の共起行列が得られる。
【００９３】
図１９のフローチャートが示すように、本発明での共起行列生成では、処理対象のテキストの範囲において、単語の頻度をカウントするプロセスや、単語同士の共起頻度をカウントするプロセスを含めないように構成することができる。
【００９４】
これまで述べた処理をプログラムとして構築し、当該プログラムを通信回線または記録媒体からインストールし、ＣＰＵ等の手段で実施することが可能である。
【００９５】
なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【産業上の利用可能性】
【００９６】
本発明は、単語の意味表現であるベクトルを生成する技術に適用可能である。
【符号の説明】
【００９７】
１１…第１成分付与手段、
１２…形態素解析手段、
１３…共起行列生成手段、
１４…単語辞書、
１５…テキスト、
１６…形態素解析結果、
１７…共起行列、
２１…形態素解析手段、
２２…第２成分付与手段、
２３…共起行列生成手段、
２４…単語辞書、
２５…テキスト、
２６…形態素解析結果、
２７…成分付単語集合、
２８…共起行列。
【図１】
2010198106.tif 000003
【図２】
2010198106.tif 000004
【図３】
2010198106.tif 000005
【図４】
2010198106.tif 000006
【図５】
2010198106.tif 000007
【図６】
2010198106.tif 000008
【図７】
2010198106.tif 000009
【図８】
2010198106.tif 000010
【図９】
2010198106.tif 000011
【図１０】
2010198106.tif 000012
【図１１】
2010198106.tif 000013
【図１２】
2010198106.tif 000014
【図１３】
2010198106.tif 000015
【図１４】
2010198106.tif 000016
【図１５】
2010198106.tif 000017
【図１６】
2010198106.tif 000018
【図１７】
2010198106.tif 000019
【図１８】
2010198106.tif 000020
【図１９】
2010198106.tif 000021
【図２０】
2010198106.tif 000022
【図２１】
2010198106.tif 000023
【図２２】
2010198106.tif 000024
【図２３】
2010198106.tif 000025
【図２４】
2010198106.tif 000026