(57)【要約】【課題】２単語間の関連度の近似値を効率的に逐次計算することができ、つまり、全体的な精度を大きく損なわずに、本来は次元数に比例して増加する積算処理を、効率化することができる単語間関連度判定装置を提供することを目的とする。【解決手段】コーパスを入力し、任意の単語について、上記単語と上記単語の次元に対する単語意味属性との共起頻度を集計することによって頻度ベクトルを生成し、上記単語意味属性が具備する木構造に従って、上記頻度ベクトルを、確率として正規化して概念ベクトルを生成し、任意の２単語に対して得られた２つの概念ベクトル間の距離を、上記木構造に従って、親ノードに対応する上記確率と子ノードに対応する上記確率とに基づいて計算した局所的な距離を、根ノードから葉ノードに向かって積算することによって上記２単語間の関連度を算出する。【選択図】図１
2010117764.tif 000002
【特許請求の範囲】
【請求項１】
コーパスを入力し、任意の単語について、上記単語と各次元に対応する単語意味属性との共起頻度を集計することによって頻度ベクトルを生成する頻度ベクトル生成手段と；
上記単語意味属性が具備する木構造に従って、上記頻度ベクトルを確率として正規化して概念ベクトルを生成する概念ベクトル生成手段と；
上記概念ベクトルを記憶する記憶手段と；
任意の２単語に対して、上記頻度ベクトル生成手段と上記概念ベクトル生成手段とを適用して得られた２つの概念ベクトル間の距離を、上記木構造に従って、親ノードに対応する上記確率と子ノードに対応する上記確率とに基づいて計算した局所的な距離を、根ノードから葉ノードに向かって積算することによって上記２単語間の関連度を算出する単語間関連度算出手段と；
を有することを特徴とする単語間関連度判定装置。
【請求項２】
請求項１において、
上記単語間関連度算出手段は、２単語間の関連度の近似値が、予め設定した値を超えると、上記積算を中断する手段であることを特徴とする単語間関連度判定装置。
【請求項３】
請求項１において、
上記単語間関連度算出手段は、木構造の最後の子ノードまで、上記積算を実行する手段であることを特徴とする単語間関連度判定装置。
【請求項４】
コーパスを入力し、任意の単語について、上記単語と各次元に対応する単語意味属性との共起頻度を集計することによって頻度ベクトルを生成し、記憶装置に記憶する頻度ベクトル生成工程と；
上記単語意味属性が具備する木構造に従って、上記頻度ベクトルを、確率を正規化して概念ベクトルを生成し、記憶装置に記憶する概念ベクトル生成工程と；
任意の２単語に対して、上記頻度ベクトル生成工程と上記概念ベクトル生成工程とを適用して得られた２つの概念ベクトル間の距離を、上記木構造に従って、親ノードに対応する上記確率と子ノードに対応する上記確率とに基づいて計算した局所的な距離を、根ノードから葉ノードに向かって積算することによって上記２単語間の関連度を算出し、記憶装置に記憶する単語間関連度算出工程と；
を有することを特徴とする単語間関連度判定方法。
【請求項５】
請求項４において、
上記単語間関連度算出工程は、２単語間の関連度の近似値が、予め設定した値を超えると、上記積算を中断する工程であることを特徴とする単語間関連度判定方法。
【請求項６】
請求項４において、
上記単語間関連度算出工程は、木構造の最後の子ノードまで、上記積算を実行する工程であることを特徴とする単語間関連度判定方法。
【請求項７】
請求項１〜請求項３のうちの少なくとも１項記載の単語間関連度判定装置を構成する各手段としてコンピュータを機能させるプログラム。
【請求項８】
請求項１〜請求項３のうちの少なくとも１項記載の単語間関連度判定装置を構成する各手段としてコンピュータを機能させるプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単語間の関連度を効率的に算出する単語間関連度判定装置、単語間関連度判定方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
単語間の類似性を判定し、類義語を検索し、また、関連文書を検索するためのデータベースの１つとして、概念ベースが用いられている。
【０００３】
この「概念ベース」は、単語とその単語に対応する概念ベクトルとの組からなるデータベースである。概念ベースとして、国語辞典の語義文に基づいて作成される辞書概念ベースが知られている（たとえば、特許文献１参照）。
【０００４】
また、概念ベースとして、新聞記事等の文書を大量に集めたコーパスに基づいて作成されるコーパス概念ベースが知られている（たとえば、非特許文献１参照）。
【０００５】
所定の単語の「概念ベクトル」は、上記所定の単語が属する範囲（たとえば、文）内で、予め決められた複数の共起語のそれぞれと共起する頻度に応じて算出される。
【０００６】
辞書概念ベースにおける共起語として、単語を辞書引きして得られる語義文中に出現する単語が用いられ、コーパス概念ベースにおける共起語として、コーパス中に高頻度で出現する単語が用いられる。各単語を、行とし、共起語を、列とし、単語と共起語との共起頻度を、行列の成分とする共起行列を作成する。
【０００７】
辞書概念ベースの場合、上記共起行列における各行の行ベクトルが、単語の概念ベクトルであり、通常は、語義文中に含まれている単語について、孫引きすることによって得られる語義文等を用いて、概念ベクトルの精錬が行われる。
【０００８】
コーパス概念ベースにおいて、特異値分解によって、共起行列の列の次元を圧縮した行列を作成し、この圧縮した行列の各行の行ベクトルが概念ベクトルである。
【０００９】
このようにして作成された概念ベースは、単語間の類似性が高いほど、単語の概念ベクトル間の距離が近いという性質を持つので、単語間の類似性を判定する場合に有効である。つまり、２つの単語間の概念ベクトルの距離が近いほど、上記２つの単語間の類似性が高いと判断できる。
【特許文献１】特許第３３７９６０３号公報
【非特許文献１】H.Schutze,“Dimensions of meaning”, Proceedings of Supercomputing '92, pp.787-796, 1992年
【発明の開示】
【発明が解決しようとする課題】
【００１０】
これらの方法によって作成された概念ベースにおいて、概念ベクトルの次元数が、距離計算の精度と計算時間とに大きく影響する。
【００１１】
すなわち、上記従来例において、距離計算の精度を向上させるために次元数を大きくすれば、次元数に比例した計算時間が必要であり、逆に、計算時間を抑えるために次元数を小さくすれば、本来必要な情報が概念ベクトルから欠落し、距離計算の精度が低下するという問題がある。
【００１２】
本発明は、２単語間の関連度の近似値を効率的に逐次計算することができ、つまり、全体的な精度を大きく損なわずに、本来は次元数に比例して増加する積算処理を、効率化することができる単語間関連度判定装置、単語間関連度判定方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、コーパスを入力し、任意の単語について、上記単語と各次元に対応する単語意味属性との共起頻度を集計することによって頻度ベクトルを生成する頻度ベクトル生成手段と、上記単語意味属性が具備する木構造に従って、上記頻度ベクトルを、確率として正規化して概念ベクトルを生成する概念ベクトル生成手段と、上記概念ベクトルを記憶する記憶手段と、任意の２単語に対して、上記頻度ベクトル生成手段と上記概念ベクトル生成手段とを適用して得られた２つの概念ベクトル間の距離を、上記木構造に従って、親ノードに対応する上記確率と子ノードに対応する上記確率とに基づいて計算した局所的な距離を、根ノードから葉ノードに向かって積算することによって上記２単語間の関連度を算出する単語間関連度算出手段とを有する単語間関連度判定装置である。
【発明の効果】
【００１４】
本発明によれば、概念ベクトルの各次元を、単語意味属性が有する木構造の各ノードに対応させ、親ノードに対応するノード値と、子ノードに対応するノード値とに基づいて計算される局所的な距離を、根ノードから葉ノードに向かって積算し、この積算を途中で打ち切っても、比較的よい精度が保証されるという効果を奏する。つまり、本発明によれば、積算を途中で打ち切れば、計算量を削減することができ、しかも、上記２単語間の関連度の近似値の精度を保ちつつ計算量を削減することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
発明を実施するための最良の形態は、以下の実施例である。
【実施例１】
【００１６】
図１は、本発明の実施例１である単語間関連度判定装置１００を示すブロック図である。
【００１７】
単語間関連度判定装置１００は、コーパス入力手段１０と、頻度ベクトル生成手段２０と、概念ベクトル生成手段３０と、概念ベクトル記憶手段４０と、単語間関連度算出手段５０とを有する。
【００１８】
コーパス入力手段１０を介して、処理対象となるコーパスを入力する。入力されたコーパスを使用して、頻度ベクトル生成手段２０が頻度ベクトルを生成する。概念ベクトル生成手段３０が、頻度ベクトルを確率として正規化し、概念ベクトル記憶手段４０に格納する。
【００１９】
なお、上記「頻度ベクトルを確率として正規化し」とは、頻度ベクトルが（ｘ１，ｘ２，…，ｘＮ）であり、各要素の総和をＳとした場合、頻度ベクトル（ｘ１，ｘ２，…，ｘＮ）を、（ｘ１／Ｓ，ｘ２／Ｓ，…，ｘＮ／Ｓ）に変換して、各要素の総和を１とする操作を意味する。
【００２０】
最後に、単語間関連度算出手段５０が、各単語間の関連度を算出する。
【００２１】
次に、頻度ベクトル生成手段２０について説明する。
【００２２】
図２は、頻度ベクトル生成手段２０を示すブロック図である。
【００２３】
頻度ベクトル生成手段２０は、文分割手段２１と、単語抽出手段２２と、単語−単語意味属性共起集計手段２３と、単語−単語意味属性辞書２４とを有する。
【００２４】
文分割手段２１は、入力されたコーパスを文に分割する。コーパスは、複数の句点「。」や、文末に使用される記号「？」「．」等を含むと、この直後で分割される。単語抽出手段２２は、形態素解析器からなり、文を、単語に分割する。形態素解析器から同時に出力される各単語の品詞情報に基づいて、内容語以外の単語を、取り除く。抽出された単語から、単語−単語意味属性辞書２４を参照し、対応する単語意味属性を抽出する。
【００２５】
図３は、実施例１における単語−単語意味属性辞書２４の例を示す図である。
【００２６】
単語を、その意味属性に応じて、単語を複数のカテゴリに予め分類する。各単語意味属性の間には、たとえば、図３に示すように、単語と、対応する単語意味属性とが記述されている。これは、たとえば、非特許文献２（池原悟、宮崎正弘、白井諭、横尾昭男、中岩浩巳、小倉健太郎、大山芳史、林良彦、“日本語語彙体系１意味体系”、岩波書店、１９９９年）に記載されている。
【００２７】
図３に示すように、「総選挙」には「選挙」という単語意味属性が与えられ、この属性は、後述の図４では、１８０４番のノードに対応する。「選挙」属性の上位の属性として「推挙」「人事」「管理」「支配」「行為」「人間活動」「事」「抽象」「名詞」がある。
【００２８】
図１３は、実施例１における単語意味属性の構造（「幹事長」に関係する部分）の例を示す図である。
【００２９】
図１４は、実施例１における単語意味属性の構造（「指揮」に関係する部分）の例を示す図である。
【００３０】
なお、「幹事長」「指揮」については、図１３、図１４のそれぞれのノードに、上記と同様に対応している。つまり、「幹事長」には、図３に示すように、「長」「政治家」「治者」という単語意味属性が与えられ、この属性は、図１３では、３２３番、２６０番、１６７番のノードに対応する。たとえば「長」属性の上位の属性として「人＜地位＞」「人」「主体」「具体」」「名詞」がある。また、「指揮」には、図３に示すように、「管理」「命令」「創造（その他）」という単語意味属性が与えられ、この属性は、図１４では、１７７９番、１８２４番、１５５９番のノードに対応する。たとえば「管理」属性の上位の属性として、「支配」「行為」「人間活動」「事」「抽象」「名詞」がある。
【００３１】
これらに基づいて、単語−単語意味属性共起集計手段２３が、単語−単語意味属性の共起頻度を頻度ベクトルとして集計する。
【００３２】
図４は、実施例１における単語意味属性の構造の例を示す図である。
【００３３】
ここで、上記「頻度ベクトルの各次元」は、図４に示すように、木構造を直列化して得られる各ノードに対応している。なお、上記木構造を直列化するとは、ノードを番号順に並べることである。
【００３４】
図４は、木構造の一部を示す図であるが、全体では、単語意味属性に対応する２７１５のノードを含む（上記非特許文献２参照）。したがって頻度ベクトルは、２７１５次元のベクトルである。
【００３５】
単語−単語意味属性の共起頻度の集計の例を以下に示す。
【００３６】
文から抽出された各単語の頻度ベクトルについて、同じ文中に出現する他の単語の単語意味属性と、その上位の属性に対応する次元とに、１を加算する。たとえば、コーパスに含まれている単語「与党」が記載されている文中に、単語「総選挙」が出現している場合、「与党」の頻度ベクトルの次元１８０４、１８０２、１７９３、１７７９、１７７８、１５６０、１２３６、１２３５、１０００、１について、１を加算する。
【００３７】
なお、「総選挙」について、その単語意味属性「選挙」（図３参照）に注目し、図４の木構造における関係性を参照する。
【００３８】
「総選挙」と同じ文中に出現する単語は「総選挙」に関係した意味を持つと仮定して、これらの単語に「総選挙」の属性を付与する。具体的には、「総選挙」の属性に対応する各次元１８０４、１８０２、１７９３、１７７９、１７７８、１５６０、１２３６、１２３５、１０００、１の値に１点を加える。同じ文中に「幹事長」「指揮」が出現する場合、上記と同様に「幹事長」「指揮」の属性を付与する。このときに１点を加える次元は、図５に示すとおり、最終的には、当該文の概念を最もよく表す次元に、高い点数が付与される。
【００３９】
全コーパスについて、上記と同じ操作が実行され、コーパスに含まれている全ての単語について、頻度ベクトルを求める。
【００４０】
「与党は幹事長が総選挙を指揮した」という一文を、コーパスに見立て、単語「与党委」の頻度ベクトルを求める例について説明する。
【００４１】
この例では、内容語として、「与党」「幹事長」「総選挙」「指揮」が抽出される。「与党」と共起する「幹事長」「総選挙」「指揮」の単語意味属性は、図３に示すように定義されている。
【００４２】
図５は、実施例１における単語と上位の単語意味属性との例を示す図である。
【００４３】
図４に示す木構造に従って、これらの単語の上位の単語意味属性を求めた例が、図５に示す単語と上位の単語意味属性との例である。
【００４４】
図６は、「幹事長」「総選挙」「指揮」の各単語について、単語意味属性の出現頻度を集計し、集計した出現頻度を木構造上に示す図である。
【００４５】
なお、図６では、値が０であるノードについては、「＝０」の表記を省略してある。
【００４６】
図７は、実施例１における頻度ベクトルの例を示す図である。
【００４７】
図６に示す木構造を直列化する（ノードを番号順に並べる）ことによって、図７に示す頻度ベクトルを得ることができる。
【００４８】
次に、概念ベクトル生成手段３０について詳しく説明する。
【００４９】
図８は、概念ベクトル生成手段３０の構成を示すブロック図である。
【００５０】
まず、頻度ベクトルを、ベクトル−木構造変換手段３１が、上記直列化と逆の操作によって、木構造に変換する。
【００５１】
次に、兄弟ノード正規化手段３２が、兄弟ノード毎に正規化する。具体的には、まず根ノードの値を１とする。根ノードの直下の子ノードの値の総和が１になるように、集計値に比例して、各ノードの値を定義する。同様に、各親ノード直下の子ノードの値の総和が１になるように、集計値に比例して値を定義する。各ノードの値は、注目している単語が、当該ノードの親ノードに対応する意味属性を有する場合、同時に当該ノードに対応する意味属性を有する条件付き確率に相当する。
【００５２】
なお、上記条件付き確率は、後述の図９において、単語の右に記載されている「＝」の右に記載されている数字である。
【００５３】
最後に、木構造−ベクトル変換手段３３が、木構造を再度直列化し、概念ベクトルとする。
【００５４】
図９は、実施例１における概念ベクトル算出の例を示す図である。
【００５５】
第１０図は、実施例１における概念ベクトルの例を示す図である。
【００５６】
上記例では、図６に示す木構造に対応する頻度ベクトル（図７）を、木構造に変換して、兄弟ノード毎に正規化し（図９）、再度直列化することによって、第１０図に示す概念ベクトルを得ることができる。
【００５７】
次に、単語間関連度算出手段５０について詳しく説明する。
【００５８】
２つの概念ベクトル
【００５９】
【数１】
2010117764.tif 000003
を、以下のように計算する。
【００６０】
数１に記述してあるように、ここでは２つの概念ベクトルｖ、ｗの関連度を計算し、内部ノード全体の集合を、Ｓとし、ｖｋ、ｗｋは、概念ベクトルｖ、ｗのそれぞのノードｋの値である。
【００６１】
ノードｋの直下の子ノードの集合をＳｋとする。このときに、子ノード（兄弟ノード）間の距離
【００６２】
【数２】
2010117764.tif 000004
をＫｕｌｌｂａｃｋ−Ｌｅｉｂｌｅｒ距離
【００６３】
【数３】
2010117764.tif 000005
で定義し、この親ノードｋと、その直下の子ノードとに関する局所的な距離
【００６４】
【数４】
2010117764.tif 000006
を、
【００６５】
【数５】
2010117764.tif 000007
で定義する。ここで、
【００６６】
【数６】
2010117764.tif 000008
は、親ノードｋとその上位にある根ノードを含む全てのノードの集合をＲｋとすると、
【００６７】
【数７】
2010117764.tif 000009
とする。なお、上記式（１）の総和は、概念ベクトルｖ、ｗのそれぞのノードｉの値であるｖｋとｗｋとが、いずれも０でないｉについて演算したものである。
【００６８】
上記Ｋｕｌｌｂａｃｋ−Ｌｅｉｂｌｅｒ距離の代わりに、αダイバージェンスを導入し、パラメータαを適切に設定することによって、単語の上位概念や下位概念を強調した関連度を求めることができる。これは、たとえば非特許文献３（T.Minka,“Divergence measures and message passing,” MSR-TR-2005-173, 2005.）に記載されている
この場合、子ノード（兄弟ノード）間の距離
【００６９】
【数８】
2010117764.tif 000010
は
【００７０】
【数９】
2010117764.tif 000011
で定義され、親ノードｋと、その直下の子ノードとに関する局所的な距離
【００７１】
【数１０】
2010117764.tif 000012
は、
【００７２】
【数１１】
2010117764.tif 000013
として定義される。
【００７３】
上記式（４）の総和は、上記式（１）の総和と同様に、概念ベクトルｖ、ｗのそれぞのノードｉの値であるｖｋとｗｋとが、いずれも０でないｉについて計算される。
【００７４】
根ノードから葉ノードに向かって、内部ノードについて、
【００７５】
【数１２】
2010117764.tif 000014
を積算することによって、２つの概念ベクトル
【００７６】
【数１３】
2010117764.tif 000015
を
【００７７】
【数１４】
2010117764.tif 000016
として評価する。
【００７８】
根ノードから葉ノードに向かって、上記式（６）の積算を実行する過程は、単語意味属性の上位属性から、下位属性へ向かって単語間関連度を積算する過程である。
【００７９】
この過程の途中段階で得られる値は、最上位からの単語意味属性が考慮された単語間関連度の適切な近似値として利用することができる。
【００８０】
図１１は、ノード１７７９に着目すると、ノード１７７９の上位にある全てのノードの集合Ｒ１７７９、と、ノード１７７９の直下の子ノードの集合Ｓ１７７９との例を示す図である。
【００８１】
図１２は、実施例１の動作を示すフローチャートである。
【００８２】
Ｓ１で、処理対象となるコーパスを入力する。Ｓ２で、入力されたコーパスから、任意の単語について、上記単語と各次元に対応する単語意味属性との共起頻度を集計することによって、頻度ベクトルを生成し、記憶装置に記憶する。
【００８３】
Ｓ３で、単語意味属性が有する木構造に従って、兄弟ノード毎に、頻度ベクトルを、正規化することによって、概念ベクトルを生成し、Ｓ４で、記憶する。
【００８４】
記憶された概念ベクトルに基づいて、Ｓ５で、上記式（１）〜（６）に従って、単語間関連度を計算し、記憶装置に記憶する。
【００８５】
上記実施例によれば、類似性の判定を根から葉に向かって積算するので、類似していないとの判断を、ノードの途中で実行することができ、この場合には、葉（末端の子ノード）まで処理しなくても足りるので、処理時間が短縮される。
【００８６】
なお、上記実施例において、手段を工程に置き換えれば、上記実施例は、単語間関連度判定方法の発明の例である。
【００８７】
また、頻度ベクトル生成手段２０は、  コーパスを入力し、任意の単語について、上記単語と各次元に対応する単語意味属性との共起頻度を集計することによって頻度ベクトルを生成する頻度ベクトル生成手段の例である。
【００８８】
概念ベクトル生成手段３０は、単語意味属性が具備する木構造に従って、上記頻度ベクトルを、確率として正規化して概念ベクトルを生成する概念ベクトル生成手段の例である。
【００８９】
概念ベクトル記憶手段４０は、概念ベクトルを記憶する記憶手段の例である。
【００９０】
単語間関連度算出手段５０は、任意の２単語に対して、上記頻度ベクトル生成手段と上記概念ベクトル生成手段とを適用して得られた２つの概念ベクトル間の距離を、上記木構造に従って、親ノードに対応する上記確率と子ノードに対応する上記確率とに基づいて計算した局所的な距離を、根ノードから葉ノードに向かって積算することによって上記２単語間の関連度を算出する単語間関連度算出手段の例である。
【００９１】
また、上記単語間関連度算出手段は、２単語間の関連度の近似値が、予め設定した値を超えると、上記積算を中断する手段であり、これによって、２単語間の関連度の精度を大きく損なわずに、関連度の計算時間を抑えることができる。本来は次元数に比例して増加する積算処理を効率化することができる。
【００９２】
また、上記単語間関連度算出手段は、木構造の最後の子ノードまで、上記積算を実行する手段であり、これによって、２単語間の関連度の精度が最も高くなる。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施例１である単語間関連度判定装置１００を示すブロック図である。
【図２】頻度ベクトル生成手段２０を示すブロック図である。
【図３】実施例１における単語−単語意味属性辞書２４の例を示す図である。
【図４】実施例１における単語意味属性の構造の例を示す図である。
【図５】実施例１における単語と上位の単語意味属性との例を示す図である。
【図６】「幹事長」「総選挙」「指揮」の各単語について、単語意味属性の出現頻度を集計し、集計した出現頻度を木構造上に示す図である。
【図７】実施例１における頻度ベクトルの例を示す図である。
【図８】概念ベクトル生成手段３０を示すブロック図である。
【図９】実施例１における概念ベクトル算出の例を示す図である。
【図１０】実施例における概念ベクトルの例を示す図である。
【図１１】ノード１７７９の上位にある全てのノードの集合Ｒ１７７９、と、ノード１７７９の直下の子ノードの集合Ｓ１７７９との例を示す図である。
【図１２】実施例１の動作を示すフローチャートである。
【図１３】実施例１における単語意味属性の構造（「幹事長」に関係する部分）の例を示す図である。
【図１４】実施例１における単語意味属性の構造（「指揮」に関係する部分）の例を示す図である。
【符号の説明】
【００９４】
１００…単語間関連度判定装置、
１０…コーパス入力手段、
２０…頻度ベクトル生成手段、
２１…文分割手段、
２２…単語抽出手段、
２３…単語−単語意味属性共起集計手段、
２４…単語−単語意味属性辞書、
３０…概念ベクトル生成手段、
３１…ベクトル−木構造変換手段、
３２…兄弟ノード正規化手段、
３３…木構造−ベクトル変換手段、
４０…概念ベクトル記憶手段、
５０…単語間関連度算出手段。
【図１】
2010117764.tif 000017
【図２】
2010117764.tif 000018
【図３】
2010117764.tif 000019
【図４】
2010117764.tif 000020
【図５】
2010117764.tif 000021
【図６】
2010117764.tif 000022
【図７】
2010117764.tif 000023
【図８】
2010117764.tif 000024
【図９】
2010117764.tif 000025
【図１０】
2010117764.tif 000026
【図１１】
2010117764.tif 000027
【図１２】
2010117764.tif 000028
【図１３】
2010117764.tif 000029
【図１４】
2010117764.tif 000030