(57)【特許請求の範囲】
【請求項１】
文書間の距離を算出する文書を入力する文書入力手段と、
文書入力手段で入力された文書の文字列を形態素解析および係り受け解析する構文解析手段と、
構文解析手段による構文解析結果から統語情報付き木構造を作成する統語情報付き木構造作成手段と、
統語情報付き木構造を構成するノードのうち並列関係にあるものを探索し、並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加する並列ノード追加手段と
並列ノード追加手段によって追加された並列ノード下のノードを順序付けする並列ノード順序付けする手段と、
並列ノード下のノードが順序付けされた並列ノードが追加された統語情報付き木構造を他の文書の統語情報付き木構造に編集し、その編集距離を予め設定された定義により算出する距離計算手段とを備えた文書間距離算出器。
【請求項２】
編集距離が予め設定された定義は、同一木構造内でのノードの移動が発生する場合、新規に追加する場合に比べ編集距離が小さく設定され、
前記距離計算手段は、同一木構造内でのノードの移動が発生する場合、新規に追加する場合に比べ編集距離が小さく設定され定義により、同一木構造内でのノードの移動が発生する場合は、新規に追加する場合に比べ編集距離が小さく算出される構成とされたことを特徴とする請求項１記載の文書間距離算出器。
【請求項３】
構文解析手段による構文解析結果から編集対象となるノードの出現頻度を取得する統計情報取得手段を備え、
編集距離が予め設定された定義は、編集対象となるノードの出現頻度に応じて設定され、
前記距離計算手段は、並列ノード下のノードが順序付けされた並列ノードが追加された統語情報付き木構造を他の文書の統語情報付き木構造に編集する際の編集距離を算出する時の定義は、編集対象となるノードの出現頻度に応じて設定されものを用いることを特徴とする請求項１記載の文書間距離算出器。
【請求項４】
文書入力手段で入力した文書の文書構造を解析する文書構造解析手段を備え、
統語情報付き木構造作成手段は文書構造解析手段による解析の結果、並列関係にある文を並列ノードで連結して統語情報付き木構造を形成する構成にされたことを特徴とする請求項３記載の文書間距離算出器。
【請求項５】
文書の形態素解析および係り受け解析結果から統語情報付き木構造を作成し、統語情報付き木構造を構成するノードのうち並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加し、追加された並列ノード下のノードが順序付けされた統語情報付き木構造を予め複数作成し、蓄積された木構造集合と、
検索文を入力する検索文入力手段と、
検索文入力手段で入力された文書の文字列を形態素解析および係り受け解析する構文解析手段と、
構文解析手段による構文解析結果から統語情報付き木構造を作成する統語情報付き木構造作成手段と、
統語情報付き木構造を構成するノードのうち並列関係にあるものを探索し、並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加する並列ノード追加手段と
並列ノード追加手段によって追加された並列ノード下のノードを順序付けする並列ノード順序付けする手段と、
並列ノード下のノードが順序付けされた並列ノードが追加された統語情報付き木構造を木構造集合に蓄積された統語情報付き木構造との編集距離を求める距離計算手段と、
距離計算手段で得られた編集距離の集合をソートし、小さい順に所定の数だけ出力する検索結果出力手段を備えたことを特徴とする文章検索器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、文書間における類似度の算出に関し、特に、文の係り受け構造を木構造に変換し、木構造同士の編集距離を類似度判定に利用する文書間距離算出器およびその文書間距離算出器を用いた文章検索器に関する。
【背景技術】
【０００２】
従来の文書間類似度算出器や検索キーによる文書検索装置では、文章に含まれる単語の共起に基づいて文書間の類似度や文書と検索キー間の類似度が算出される。単語の共起を調べるためには一般に文章を形態素解析し、単語や文節単位に分割する。それらの出現頻度など統計情報を利用して単語の重要度を求め、重要な単語を共通して含んでいる文書同士は類似していると判断する。しかし、複数の主題を持つ文章などでは関連のない単語同士が共起することがあり、正しい類似度が求められない場合がある。従来の技術、例えば、特許文献１では単語同士の関連性に基づいてグラフ構造を構築することによりこれを解決している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第3577972号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の方式では、基本的には単語の共起に依存して類似度を算出しているため、同義語や異なる言い回しを含む文章の類似度を精度よく算出できなかった。同義語に関しては同義語辞書などを利用して解決できる部分もあるが、辞書の構築が必要である。
また、単語が共通していなくとも、文章構造が類似している場合にも文章の意味内容が類似していることがある。例えば、以下の３つの文を考える。
文１：  「台風１１号は伊豆諸島近海を進み、夕方から夜にかけて関東地方に最も近づくとみられる。」
文２：  「台風１２号は東京湾沖を北上し、２５日から２６日にかけて日本に最接近とみられる。」
文３：  「東京湾でみられる日本近海の魚を紹介します。」
【０００５】
文１と文２では「台風」、「みられる」が共通しており、文２と文３では「東京湾」、「日本」、「みられる」が共通しているが、意味内容を考えると文１と文２の方が文２と文３よりも類似している。単語そのものを利用する従来の方式では、このような文章構造の類似性に従って似通った文章を分類するということはできない。
この発明は上記のような問題を解決するためになされたもので、文の係り受け構造を木構造に変換し、木構造同士の編集距離を類似度判定に利用することで出現単語の共通性と文の構造を考慮した類似度判定を可能とする。
【課題を解決するための手段】
【０００６】
この発明に係る文書間距離算出器は、
文書間の距離を算出する文書を入力する文書入力手段と、
文書入力手段で入力された文書の文字列を形態素解析および係り受け解析する構文解析手段と、
構文解析手段による構文解析結果から統語情報付き木構造を作成する統語情報付き木構造作成手段と、
統語情報付き木構造を構成するノードのうち並列関係にあるものを探索し、並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加する並列ノード追加手段と
並列ノード追加手段によって追加された並列ノード下のノードを順序付けする並列ノード順序付けする手段と、
並列ノード下のノードが順序付けされた並列ノードが追加された統語情報付き木構造を他の文書の統語情報付き木構造に編集し、その編集距離を予め設定された定義により算出する距離計算手段とを備える。
【０００７】
また、この発明に係る文章検索器は、
文書の形態素解析および係り受け解析結果から統語情報付き木構造を作成し、統語情報付き木構造を構成するノードのうち並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加し、追加された並列ノード下のノードが順序付けされた統語情報付き木構造が予め複数作成され、蓄積された木構造集合と、
検索文を入力する検索文入力手段と、
検索文入力手段で入力された文書の文字列を形態素解析および係り受け解析する構文解析手段と、
構文解析手段による構文解析結果から統語情報付き木構造を作成する統語情報付き木構造作成手段と、
統語情報付き木構造を構成するノードのうち並列関係にあるものを探索し、並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加する並列ノード追加手段と
並列ノード追加手段によって追加された並列ノード下のノードを順序付けする並列ノード順序付けする手段と、
並列ノード下のノードが順序付けされた並列ノードが追加された統語情報付き木構造を木構造集合に蓄積された統語情報付き木構造との編集距離を求める距離計算手段と、
距離計算手段で得られた編集距離の集合をソートし、小さい順に所定の数だけ出力する検索結果出力手段を備える。
【発明の効果】
【０００８】
この発明に係る文書間距離算出器によれば、
形態素解析および係り受け解析された文書の文字列から統語情報付き木構造を作成し、統語情報付き木構造を構成するノードのうち並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加し、並列ノード下のノードを順序付けした木構造同士の編集距離を予め設定された定義により算出し、その編集距離を類似度判定に利用することで出現単語の共通性と文の構造を考慮した類似度判定を可能とする。
【０００９】
また、この発明に係る文章検索器によれば、
文章または文書の形態素解析および係り受け解析結果から統語情報付き木構造を作成し、統語情報付き木構造を構成するノードのうち並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加し、追加された並列ノード下のノードが順序付けされた統語情報付き木構造を予め複数作成して、蓄積された木構造集合を備え、
形態素解析および係り受け解析された検索文の文字列から統語情報付き木構造を作成し、統語情報付き木構造を構成するノードのうち並列関係にあるノードを子ノードとした並列ノードを統語情報付き木構造に追加し、並列ノードが追加された統語情報付き木構造を木構造集合に蓄積された統語情報付き木構造との編集距離を距離計算手段で求め、
距離計算手段で得られた編集距離の集合をソートし、小さい順に所定の数だけ出力する検索結果出力手段を備えることで、検索文に類似する文書を検索することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１による基本構成図である。
【図２】この発明の実施の形態１の処理手順を示すフロー図である。
【図３】構文解析手段による係り受け解析結果の例を示す図である。
【図４】統語情報付き木構造作成手段による統語情報付き木構造の例を示す図である。
【図５】並列・同格構造を持つ統語情報付き木構造の例を示す図である。
【図６】並列ノードの例を示す統語情報付き木構造図である。
【図７】この発明の実施形態１における統語情報付き木構造に並列ノードを追加する手順を示すフロー図である。
【図８】実施の形態１における統語情報付き木構造の編集距離算出処理ステップ210の説明図である。
【図９】実施の形態１における統語情報付き木構造の編集距離算出処理ステップ220の説明図である。
【図１０】実施の形態１における統語情報付き木構造の編集距離算出処理ステップ230の説明図である。
【図１１】実施の形態１における統語情報付き木構造の編集距離算出処理ステップ240の説明図である。
【図１２】実施の形態１における統語情報付き木構造の編集距離算出処理ステップ250の説明図である。
【図１３】実施の形態１における並列ノードの効果例の説明図である。
【図１４】実施の形態１における並列ノードの効果例の説明図である。
【図１５】実施の形態１におけるノードの移動例を示す説明図である。
【図１６】この発明の実施の形態２の構成図である。
【図１７】この発明の実施の形態３の構成図である。
【図１８】この発明の実施の形態４の構成図である。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１はこの発明の実施の形態１による基本構成を示すブロック図である。図１において、文書入力手段101は解析する文章または文書を入力するものである。構文解析手段102は文書入力手段101で入力された文字列を形態素解析および係り受け解析するものである。統語情報付き木構造作成手段103は構文解析手段102における解析結果から統語情報付き木構造を作成するものである。並列ノード追加手段104は統語情報付き木構造を構成するノードのうち並列関係にあるものを探索し、並列関係にあるノードを子ノードとした並列ノードを木構造に追加するものである。並列ノード順序付け手段105は、並列ノード追加手段104によって追加された並列ノード下のノードを順序付けするものである。統語情報付き木構造間の距離計算手段106は統語情報付き木構造同士の距離を算出するものである。
【００１２】
次に動作について説明する。図２は本実施の形態のフローチャートである。まず、ステップ10において、文書入力手段101より統語情報付き木構造同士の距離を求める対象となる文章または文書の集合を取得する。
次にステップ20において、構文解析手段102により取得した文章の形態素解析および係り受け解析を行い構文解析結果とする。ここでは形態素解析・係り受け解析は既存技術を用いるものとする。図３に「15時に変圧器の漏電のため障害が発生した」という文章を係り受け解析した結果の例を示す。長方形が文節のまとまりを示し、矢印は文節が係っている先を示す。
【００１３】
次にステップ30において、統語情報付き木構造作成手段103により構文解析結果を木構造形式に変換する。統語情報も付与した統語情報付き木構造の例を図４に示す。長方形は木構造の1ノードを示し、文節のまとまりと一致する。文節内の「/」は形態素の区切りを図示するために付与している。各形態素の品詞は[]内に示した。ここでは名詞や動詞など大きな単位で示したが、「サ変名詞」や「自立動詞」などさらに細分化することも可能である。また、各ノードの下に主辞となる形態素と機能語となる形態素を示した。主辞は文節の中心となる形態素である。
【００１４】
次にステップ40において、並列ノード追加手段104により、ステップ30で作成した統語情報付き木構造のうち、並列関係や同格関係の係り受け構造を持つものに並列ノードを追加する。同格関係の係り受け構造を持つ統語情報付き木構造の例を図５に示す。ただし、形態素の区切りや品詞などの情報は簡単のため省略した。「一昨日と」と「昨日、」は同格関係であるが、係り受け構造としては「一昨日と」が「昨日、」に係る形になっている。これに並列ノードを追加することによりこれらを平等に扱えるようにした木構造の例を図６に示す。
図７はこのような並列ノードを追加する手順を示したものである。リーフノードは木構造の末端に位置するノードのこととし、図５の木構造の場合は「一昨日と」と「変圧器の」と「2回の」がリーフノードに該当する。また、ルートノードはトップに位置するノードのこととし、図５の木構造の場合は「発生した」がルートノードに該当する。
【００１５】
次に図２のステップ50において、ステップ40で追加された並列ノード下の並列関係にあるノードを所定の基準により並列ノード順序付け手段105で順序付けをする。基準は一意に順序が決定できるものであれば良く、ここでは対象ノードの主辞となる形態素の五十音順とする。五十音順の若い方から左に配置するように決めると、図６の木構造はそのままで良い。
【００１６】
次にステップ60において、統語情報付き木構造間の距離計算手段106により統語情報付き木構造の編集距離を算出する。編集距離はノードの追加・削除・置換の操作により、一方の木構造をもう一方の木構造に変形するのに必要なコストのこととする。本実施の形態では編集距離の計算に必要なノードの挿入コスト、削除コスト、置換コストは統語情報を用いて定義する。ここでの統語情報とは、単語の文字数、品詞、活用、格などである。それぞれのコストを以下のように定義する。
【００１７】
【数１】
0005441760.tif 000002
【００１８】
例えば、次の二つの文A、Bの対応する統語情報付き木構造間の編集距離を求めることを考える。
A：「15時に変圧器の漏電のため障害が発生した」
B：「20時に変圧器の漏電で2回の障害が発生した」
【００１９】
図８〜図１２は A に対応する統語情報付き木構造を B に対応する統語情報付き木構造に変形させる手順を示した模式図である。図８のステップ210では A、B のそれぞれに対応する統語情報付き木構造を示している。A の統語情報付き木構造を B の統語情報付き木構造に変形させるため、まず図９のステップ220では A の統語情報付き木構造の右端のノード「障害が」に「2回の」を挿入する。このときのコストは上記定義１により2.0である。
次に図１０のステップ230では「ため」を削除する。このときのコストは上記定義１により2.0である。
次に図１１のステップ240では「漏電の」を「漏電で」に置換する。このときのコストは、主辞「漏電」の品詞が等しく、主辞までの見出し（表記文字列）「漏電」が等しいため0である。
次に図１２のステップ250では「15時に」を「20時に」に置換する。このときのコストは、主辞「時」の品詞が等しく、主辞までの見出し「15時」、「20時」が異なるので0.5である。
【００２０】
上記の各ステップでのコストの総和＝4.5が統語情報付き木構造 A、B 間の編集距離となる。従って、統語情報付き木構造の編集距離が小さいほど類似する文章となる。一方の木構造から他方の木構造へ変形する仕方は幾通りもあり、従って総コストも幾通りもあるが、編集距離としてはそれらのうち最小のものとして定義する。このような編集距離は動的計画法などにより求めることが出来る。例えば以下のように定義する。
【００２１】
［定義２］
Fiを順序付けされた木の集合（森、Forest）、d(F1,F2) をF1、F2 間の距離、φは空集合、vをF1に属するノードのうち最も右側に位置するルート、w をF2 に属するノードのうち最も右側に位置するルート、del(v) を v を削除するコスト、ins(w)をw を挿入するコスト、rep(v,w)をv を w に置換するコスト、F1(v)をFiのノードまたは木のうちv の子、Ti(v)をv をルートとする木、Fi−vをv を削除したF1のノードまたは木、Fi−Ti(v)をTi(v)のノード全てを削除したF1のノードまたは木とし、各々の関係を下記の式(1)〜(4)のように定める。
【００２２】
【数２】
0005441760.tif 000003
【００２３】
F1、F2として編集距離を求めたい二つの統語情報付き木構造を与え、式(1)〜(4)を再帰的に適用することで d(F1,F2) として編集距離を求めることが出来る。ただし、del(v)、ins(w)、rep(v,w)を定義１に従うようにすることが重要である。特に置換コストrep(v,w)はノードの形態素の品詞による比較と見出しの文字列比較によりコストを変動させる必要がある。
【００２４】
以上のような実施の形態により、並列ノードは次のような効果がある。以下の二つの文C、Dの対応する統語情報付き木構造間の編集距離を求めることを考える。
C：「一昨日と昨日、変圧器の漏電で2回の障害が発生した」
D：「昨日と一昨日、変圧器の漏電で2回の障害が発生した」
統語情報付き木構造は図１３のようになる。並列ノードを追加せずに定義１、定義２に従って編集距離を求めると、Cの「昨日、」を「一昨日、」に置換し、「一昨日と」を「昨日と」に置換する必要があり、それぞれの置換コストは0.5となるため編集距離は1.0となる。
【００２５】
一方、並列ノードを導入するとC、Dは図１４のC'、D'のようになる。C'、D'の編集距離を定義１、定義２に従って求めると、C'の「昨日、」を「昨日と」に置換し、「一昨日と」を「一昨日、」に置換する必要があるが、それぞれのコストは0であるため、編集距離も0なる。実際、これらの二つの文に意味内容的な差異はないため、より正しく距離を求められたことになる。
以上のようにすれば、出現単語の共通性と文の構造を考慮した文章間の類似度判定が可能である。 
【００２６】
本実施の形態では追加コスト・削除コストは固定としたが、同一ノードの移動に対応する追加・削除の場合はコストが小さくなるようにしても良い。図１５は編集距離を求める途中でノードの移動が発生する例である。図１５の E を F に変形する場合、「2回の」を一旦削除して「障害が」の下に追加すればよいが、これはノードの移動に他ならず、新規に「2回の」を追加するよりはコストが小さくなるように定義を設定することで、ノードの移動の場合は、新規に追加するよりはコストを小さくすることが可能である。このようにすることで同じ単語が使われている文章はより類似度が高いと判断される効果がある。
また、本実施の形態では統語情報付き木構造を作成する対象として1文を例に挙げたが、複数の文章であってもよい。その場合は定義２にあるように木構造ではなく木構造の集合＝森構造として扱えばよい。
【００２７】
本実施の形態における追加コスト・削除コスト・置換コストは定義１のように定義したが、これらの数値は他の数値でも良い。さらに置換コストは主辞までの見出しが等しいかどうかでコストを分岐させたが、主辞のみの見出しが等しいかどうかで分岐しても良いし、他の統語情報を用いても良い。
【００２８】
実施の形態２．
図１６はこの発明の実施の形態２を示す構成図である。統計情報解析手段107は、構文解析手段102によって分割された形態素や文節の、入力された文書全体における出現頻度をカウントするものである。
実施の形態１では、統語情報付き木構造間の距離計算手段106は定義１に従って編集距離を求めたが、本実施の形態では追加・挿入・置換等の編集対象となるノードの出現頻度情報を用いてそれぞれのコストを求める。
例えば、主辞までの見出しによるTF-IDFを編集距離に重みとして与える。TF-IDFによるノードv の重み TFID(v）を以下の式で定義する。
【００２９】
【数３】
0005441760.tif 000004
【００３０】
ただし、ｎvはノードvの出現する頻度、Ｄは文書集合、ｄは文書集合Ｄに含まれる文書である。各ノードの重みは全文書で共通とするため、式(6)のようにtf(v)を定義した。
【００３１】
上記TF-IDF重みを利用して挿入コスト ins(v)、削除コスdel(v)を次のように定義する。
【００３２】
【数４】
0005441760.tif 000005
【００３３】
TFIDFaverageはTFIDF(v)の平均値であり、TFIDF(v)を0〜1に正規化するため最大値で割っている。上記式は平均値のときにコストが2.0になる。
ノードvとwの置換コスト rep(v,w) は次のように定義する。
【００３４】
【数５】
0005441760.tif 000006
【００３５】
このようにすることで、頻繁に出現し文の構成要素として重要度の低い文節（“「”、“」”、“次に”、“そして”、など）の距離計算への影響を軽減することが可能である。
【００３６】
実施の形態３．
実施の形態１では、文章として木構造または文章の集合として森構造を作成したが、文書構造を解析して森構造を作成しても良い。図１７はこの発明の実施の形態３を示す構成図である。図１７において、文書構造解析手段108は文書の箇条書きや章立てなどの文書構造を解析するものである。 
【００３７】
本実施の形態では、まず文書を解析し箇条書きおよび章立ての項目（章節項）を並列関係として分解する。文書構造解析手段108は既存の技術を用いるものとし、人手によって分解するのでも良い。実施の形態１においては複数の文の場合は１文を１つの木構造とし、全体では森構造としたが、本実施の形態では並列関係にある文は並列ノードで連結して統語情報付き木構造を形成する。このようにすることで、箇条書きのような順番に依存しない文章の構造を平等に扱うことができ、文書同士の距離を正確に算出することが出来る。
【００３８】
実施の形態４．
蓄積された文書の木構造の中から入力文章に類似するものを検索するように構成することも出来る。図１８はこの発明の実施の形態４を示す構成図である。図１８において検索文入力手段109は検索文を入力するものである。木構造集合110はあらかじめ統語情報付き木構造に変換された文書の集合を蓄積するものである。検索結果出力手段111は、検索文と編集距離が小さい統語情報付き木構造を持つ文章を出力するものである。
【００３９】
本実施の形態では、実施の形態１または２または３と同様の方法により、あらかじめ複数の文書を木構造に変換して木構造集合110に蓄積しておく。木構造集合110はデータベースなどでよい。次に、検索文入力手段109から文章が入力された場合、実施の形態１または２または３と同様の方法により統語情報付き木構造に変換する。得られた統語情報付き木構造と木構造集合110に蓄積された統語情報付き木構造との編集距離を求める。得られた編集距離の集合をソートし、検索結果出力手段111により、小さい順に所定の数だけ出力する。このようにすることで、検索文に類似する文書を検索することができる。
【産業上の利用可能性】
【００４０】
この発明に係る文書間距離算出器および文章検索器は、文書間における類似度を算出し、複数の文書をその内容に応じて似通った文章を分類する装置や、複数の文書から検索文に類似する文書を検索する装置に利用可能である。
【符号の説明】
【００４１】
101；文書入力手段、102；構文解析手段、103；統語情報付き木構造作成手段、104；並列ノード追加手段、105；並列ノード順序付け手段、106；統語情報付き木構造間の距離計算手段、107；統計情報解析手段、108；文書構造解析手段、109；検索文入力手段、110；木構造集合、111；検索結果出力手段。
【図１】
0005441760.tif 000007
【図２】
0005441760.tif 000008
【図３】
0005441760.tif 000009
【図４】
0005441760.tif 000010
【図５】
0005441760.tif 000011
【図６】
0005441760.tif 000012
【図７】
0005441760.tif 000013
【図８】
0005441760.tif 000014
【図９】
0005441760.tif 000015
【図１０】
0005441760.tif 000016
【図１１】
0005441760.tif 000017
【図１２】
0005441760.tif 000018
【図１３】
0005441760.tif 000019
【図１４】
0005441760.tif 000020
【図１５】
0005441760.tif 000021
【図１６】
0005441760.tif 000022
【図１７】
0005441760.tif 000023
【図１８】
0005441760.tif 000024