(57)【特許請求の範囲】
【請求項１】
第１の文及び第２の文を構成する形態素の形態素情報をそれぞれ抽出し、前記形態素情報に含まれる単語情報及び品詞情報に基づいて選択した形態素を、前記第１の文及び前記第２の文を構成する構成単位としてそれぞれ抽出する構成単位抽出手段と、
前記構成単位が前記第１の文及び前記第２の文において出現する位置に基づいて、前記構成単位をグラフ理論上のストリングの頂点にそれぞれ格納し、第１ストリング及び第２ストリングとするストリング構造変換手段と、
前記第１ストリングと、前記第２ストリングのすべての部分列との間の距離を求める距離計算手段と、
前記距離計算手段により算出した距離が最小、又は、前記第１ストリングと前記部分列との距離を、前記部分列に含まれる構成単位の数で割った値が最小である部分列を、前記第１ストリングと類似する部分列として抽出する部分列抽出手段と、
前記部分列抽出手段が抽出した部分列に含まれる構成単位を含む部分を、前記第１の文と類似する類似部として、前記第２の文から抽出する類似部分抽出手段とを備え、
前記距離計算手段は、前記第１ストリングを、前記部分列に写像する場合に実行される、前記第１ストリングに含まれる構成単位を置換する処理、前記部分列に含まれる構成単位を前記第１のストリングに挿入する処理、及び前記第１ストリングに含まれる構成単位を脱落させる処理のそれぞれに対して設定された置換重み、挿入重み、脱落重みと、前記第１ストリングを前記部分列に写像する場合に必要となる各処理の回数とを乗算し、その総和を前記第１ストリングと前記部分列との距離とすることを特徴とする言語処理装置。
【請求項２】
前記ストリング構造変換手段は、前記構成単位が文に出現している左右位置情報によって、前記構成単位を左から右の順でグラフ理論上のストリングの頂点にそれぞれ格納することを特徴とする請求項１に記載の言語処理装置。
【請求項３】
前記ストリング構造変換手段は、前記構成単位を構成する単語情報と品詞情報をグラフ理論上のストリングの頂点に格納することを特徴とする請求項１から請求項２の何れか一項に記載の言語処理装置。
【請求項４】
前記脱落重みは定数として設定されていることを特徴とする請求項１から３のいずれか一項記載の言語処理装置。
【請求項５】
前記言語処理装置は更に、単語の品詞によって前記脱落重みを求める単語写像重み計算手段を有することを特徴とする請求項１から３のいずれか一項記載の言語処理装置。
【請求項６】
前記挿入重みは定数として設定されていることを特徴とする請求項１から３のいずれか一項記載の言語処理装置。
【請求項７】
前記言語処理装置は更に、単語の品詞によって前記挿入重みを求める単語写像重み計算手段を有することを特徴とする請求項１から３のいずれか一項記載の言語処理装置。
【請求項８】
二つの構成単位が同一の場合は前記置換重みをゼロに設定し、二つの構成単位が異なる場合は前記構成単位間の置換重みを正の定数に設定することを特徴とする請求項１から３のいずれか一項記載の言語処理装置。
【請求項９】
前記構成単位間の距離を前記置換重みとして設定することを特徴とする請求項１から３のいずれか一項記載の言語処理装置。
【請求項１０】
前記脱落重みに前記挿入重みを加えた重みが前記置換重みより大きくなるように各重みを設定することを特徴とする請求項１から請求項９の何れか一項に記載の言語処理装置。
【請求項１１】
前記部分列抽出手段は、前記第１のストリングと前記部分列との距離を計算するときの中間計算過程を記録し、前記記録中間計算過程を逆に辿っていくことにより、前記距離計算手段により算出した距離が最小、又は、前記第１ストリングと前記部分列との距離を、前記部分列に含まれる構成単位の数で割った値が最小である部分列を抽出することを特徴とする請求項１から請求項１０の何れか一項に記載の言語処理装置。
【請求項１２】
言語処理装置が備える構成単位抽出手段が、第１の文及び第２の文を構成する形態素の形態素情報をそれぞれ抽出し、前記形態素情報に含まれる単語情報及び品詞情報とに基づいて選択した形態素を、前記第１の文及び前記第２の文を構成する構成単位としてそれぞれ抽出する構成単位抽出ステップと、
前記言語処理装置が備えるストリング構造変換手段が、前記構成単位が前記第１の文及び前記第２の文において出現する位置に基づいて、前記構成単位をグラフ理論上のストリングの頂点にそれぞれ格納し、第１ストリング及び第２ストリングとするストリング構造変換ステップと、
前記言語処理装置が備える距離計算手段が、前記第１ストリングと、前記第２ストリングのすべての部分列との間の距離を求める距離計算ステップと、
前記言語処理装置が備える部分列抽出手段が、前記距離計算ステップで算出された距離が最小、又は、前記第１ストリングと前記部分列との距離を、前記部分列に含まれる構成単位の数で割った値が最小である部分列を、前記第１ストリングと類似する部分列として抽出する部分列抽出ステップと、
前記言語処理装置が備える類似部分抽出手段が、前記部分列抽出ステップで抽出された部分列に含まれる構成単位を含む部分を、前記第１の文と類似する類似部として、前記第２の文から抽出する類似部分抽出ステップとを備え、
前記部分列間距離計算ステップは、前記第１ストリングを、前記部分列に写像する場合に実行される、前記第１ストリングに含まれる構成単位を置換する処理、前記部分列に含まれる構成単位を前記第１のストリングに挿入する処理、及び前記第１ストリングに含まれる構成単位を脱落させる処理のそれぞれに対して設定された置換重み、挿入重み、脱落重みと、前記第１ストリングを前記部分列に写像する場合に必要となる各処理の回数とを乗算し、その総和を前記第１ストリングと前記部分列との距離とすることを特徴とする言語処理方法。
【請求項１３】
コンピュータを、
第１の文及び第２の文を構成する形態素の形態素情報をそれぞれ抽出し、前記形態素情報に含まれる単語情報及び品詞情報とに基づいて選択した形態素を、前記第１の文及び前記第２の文を構成する構成単位としてそれぞれ抽出する構成単位抽出手段と、
前記構成単位が前記第１の文及び前記第２の文において出現する位置に基づいて、前記構成単位をグラフ理論上のストリングの頂点にそれぞれ格納し、第１ストリング及び第２ストリングとするストリング構造変換手段と、
前記第１ストリングと、前記第２ストリングのすべての部分列との間の距離を求める距離計算手段と、
前記部分列間計算手段により算出した距離が最小、又は、前記第１ストリングと前記部分列との距離を、前記部分列に含まれる構成単位の数で割った値が最小である部分列を、前記第１ストリングと類似する部分列として抽出する部分列抽出手段と、
前記部分列抽出手段が抽出した部分列に含まれる構成単位を含む部分を、前記第１の文と類似する類似部として、前記第２の文から抽出する類似部分抽出手段と、して機能させ、
前記距離計算手段は、前記第１ストリングを、前記部分列に写像する場合に実行される、前記第１ストリングに含まれる構成単位を置換する処理、前記部分列に含まれる構成単位を前記第１のストリングに挿入する処理、及び前記第１ストリングに含まれる構成単位を脱落させる処理のそれぞれに対して設定された置換重み、挿入重み、脱落重みと、前記第１ストリングを前記部分列に写像する場合に必要となる各処理の回数とを乗算し、その総和を前記第１ストリングと前記部分列との距離とすることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、言語処理装置、言語処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ＩＴ技術、特に高速インターネット・モバイル技術の飛躍的な発展により、大量の情報が誰でも、どこでも、いつでも利用可能になった。しかし、逆に、情報洪水と言われる現象が起き、ユーザが真に必要な情報を取り出すのは困難になって来ている。利用者がどのような状況にあっても常に適切な情報が得られる世界を実現するために、情報洪水の中からユーザにとって真に価値ある情報を抽出・再構成する必要がある。
【０００３】
ここで、ドキュメントの意味内容の比較や意味内容によるテキスト文書の分類やユーザの情報探索意図を理解する技術が重要である。このドキュメントの意味内容の比較や意味内容によるテキスト文書の分類やユーザの情報探索意図の理解を実現するためには、自然言語処理などを利用した意味の類似性判定が欠かせないものである。この分野では、テキスト文間の類似性を測る技術は幾つか提案されているが、テキスト文の全体を比較対象としたものがほとんどである。このような従来技術として以下のようなものが提案されている。
【０００４】
特許文献１記載の装置は、入力文字列と他の文字列から単語を概念語、接辞、関係表現や助述表現に分けて抽出し、抽出された単語同士の類似度を判定する。
この各単語間の類似度の値を用いて、入力文字列の各単語列と対比文字列の単語列との間の類似度を順次求め、入力文字列中の全ての単語を含む単語列と対比文字列中の全ての単語を含む単語列との間の類似度を、入力文字列と対比文字列との類似度として判定する。
【０００５】
特許文献２記載の装置は、テキスト文を構成する文節集合間の最適組み合わせによって二つのテキスト文間の類似性を求める方法が提案されている。この装置では、文字列間の重み付きLevenshtein距離を用いた二つのテキスト文間の類似性を求めるものである。
【０００６】
【特許文献１】特開２０００−３２２４４９号公報
【特許文献２】特開平７−２５３９８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１および２記載の技術は、テキスト文全体の類似性を判定するものであるため、検索要求を表すテキスト文と、部分的によく似ている文をもつ文書の抽出・検索、またはカテゴリの範囲を定義するテキスト文と、部分的に似ているかどうかによる文書の分類・クラスタリングに適用しにくい。従って、従来のテキスト文間の類似性比較技術では、テキスト文が部分的に類似しているかどうかの比較がしにくいという問題がある。
【０００８】
そこで、本発明は、上記問題点に鑑みてなされたもので、テキスト文が部分的に類似しているかどうかを比較できる言語処理装置、言語処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の言語処理装置は、請求項１に記載のように、第１の文及び第２の文を構成する形態素の形態素情報をそれぞれ抽出し、前記形態素情報に含まれる単語情報及び品詞情報に基づいて選択した形態素を、前記第１の文及び前記第２の文を構成する構成単位としてそれぞれ抽出する構成単位抽出手段と、前記構成単位が前記第１の文及び前記第２の文において出現する位置に基づいて、前記構成単位をグラフ理論上のストリングの頂点にそれぞれ格納し、第１ストリング及び第２ストリングとするストリング構造変換手段と、前記第１ストリングと、前記第２ストリングのすべての部分列との間の距離を求める距離計算手段と、前記距離計算手段により算出した距離が最小、又は、前記第１ストリングと前記部分列との距離を、前記部分列に含まれる構成単位の数で割った値が最小である部分列を、前記第１ストリングと類似する部分列として抽出する部分列抽出手段と、前記部分列抽出手段が抽出した部分列に含まれる構成単位を含む部分を、前記第１の文と類似する類似部として、前記第２の文から抽出する類似部分抽出手段とを備え、前記距離計算手段は、前記第１ストリングを、前記部分列に写像する場合に実行される、前記第１ストリングに含まれる構成単位を置換する処理、前記部分列に含まれる構成単位を前記第１のストリングに挿入する処理、及び前記第１ストリングに含まれる構成単位を脱落させる処理のそれぞれに対して設定された置換重み、挿入重み、脱落重みと、前記第１ストリングを前記部分列に写像する場合に必要となる各処理の回数とを乗算し、その総和を前記第１ストリングと前記部分列との距離とすることを特徴とする。
【００１０】
請求項１記載の発明によれば、まず、第１の文と第２の文の構成する構成単位を抽出する。次に、各構成単位をグラフ理論上のストリング構造に変換する。第１の文から変換されたストリングと第２の文から変換されたストリングの部分列間の距離をそれぞれ求める。次に、部分列間の距離を与える第２ストリングの部分列をすべて抽出する。求められたすべての部分列間の距離と抽出されたすべての部分列を用いて、ストリングにおける類似部分間の距離を抽出する。次に、類似部分間距離算出手段で求めた距離から第１の文と似ている前記第２の文の類似部分を抽出する。これにより、テキスト文が部分的に類似しているかどうかを比較できる。このため、比較対象である二つのテキスト文における類似部分間の意味内容を高精度かつ実時間で求めることができる。よって、第１文とよく似ている第２文の最大類似部分を実時間で抽出することができる。
【００１２】
また、本発明は、請求項２に記載のように、請求項１の言語処理装置において、前記ストリング構造変換手段は、前記構成単位が文に出現している左右位置情報によって、前記構成単位を左から右の順でグラフ理論上のストリングの頂点にそれぞれ格納することを特徴とする。請求項２記載の発明によれば、構成単位を左から右の順でグラフ理論上のストリングの頂点で表現することで、テキスト文が部分的に類似しているかどうかを判断する際に用いる意味のある単語列を作ることができる。
【００１３】
また、本発明は、請求項３に記載のように、請求項１又は２に記載の言語処理装置において、前記ストリング構造変換手段は、前記構成単位を構成する単語情報と品詞情報をグラフ理論上のストリングの頂点に格納することを特徴とする。請求項３記載の発明によれば、構成単位を構成する単語情報と品詞情報をグラフ理論上のストリングの頂点で表現することで、テキスト文が部分的に類似しているかどうかを判断する際に用いる意味のある単語列を作ることができる。
【００１８】
また、本発明は、請求項４に記載のように、請求項１から３のいずれか１項記載の言語処理装置において、前記脱落重みは定数として設定されていることを特徴とする。請求項４記載の発明によれば、単語の脱落重みを定数として設定することで、計算量を少なくできる。
【００１９】
また、本発明は、請求項５に記載のように、請求項１から３のいずれか１項記載の言語処理装置において、更に、単語の品詞によって前記脱落重みを求める単語写像重み計算手段を有することを特徴とする。請求項５記載の発明によれば、単語の品詞によって単語の脱落重みを求めることで、テキスト文の部分的な類似性を判断しやすくする。
【００２０】
また、本発明は、請求項６に記載のように、請求項１から３のいずれか１項記載の言語処理装置において、前記挿入重みは定数として設定されていることを特徴とする。請求項６記載の発明によれば、単語の挿入重みを定数として設定することで、演算量を少なくできる。
【００２１】
また、本発明は、請求項７に記載のように、請求項１から３のいずれか１項記載の言語処理装置において、前記言語処理装置は更に、単語の品詞によって前記単語の挿入重みを求める単語写像重み計算手段を有することを特徴とする。請求項７記載の発明によれば、単語の品詞によって単語の挿入重みを求めることで、テキスト文の部分的な類似性が判断しやすくなる。
【００２２】
また、本発明は、請求項８に記載のように、請求項１から３のいずれか１項記載の言語処理装置において、二つの構成単位が同一の場合は前記置換重みをゼロに設定し、二つの構成単位が異なる場合は前記構成単位間の置換重みを正の定数に設定することを特徴とする。請求項８記載の発明によれば、テキスト文の部分的な類似性を判断できる。
【００２３】
また、本発明は、請求項９に記載のように、請求項１から３のいずれか１項記載の言語処理装置において、前記構成単位間の距離を前記置換重みとして設定することを特徴とする。請求項９記載の発明によれば、単語間の距離を単語間の置換重みと設定することで、置換する単語に応じて重みを変えることができる。
【００２４】
また、本発明は、請求項１０に記載のように、請求項１から請求項９の何れか一項に記載の言語処理装置において、前記脱落重みに前記挿入重みを加えた重みが前記置換重みより大きくなるように各重みを設定することを特徴とする。
【００２５】
また、本発明は、請求項１１に記載のように、請求項１から請求項１０の何れか一項に記載の言語処理装置において、前記部分列抽出手段は、前記第１のストリングと前記部分列との距離を計算するときの中間計算過程を記録し、前記記録中間計算過程を逆に辿っていくことにより、前記距離計算手段により算出した距離が最小、又は、前記第１ストリングと前記部分列との距離を、前記部分列に含まれる構成単位の数で割った値が最小である部分列を抽出することを特徴とする。請求項１１記載の発明によれば、部分列間の距離を計算するときの中間計算過程を記録し、部分列間の距離から記録中間計算過程を逆に辿っていくことにより、部分列間の距離を与える第２ストリングの部分列を抽出することができる。
【００２９】
また、本発明の言語処理方法は、請求項１２に記載のように、言語処理装置が備える構成単位抽出手段が、第１の文及び第２の文を構成する形態素の形態素情報をそれぞれ抽出し、前記形態素情報に含まれる単語情報及び品詞情報とに基づいて選択した形態素を、前記第１の文及び前記第２の文を構成する構成単位としてそれぞれ抽出する構成単位抽出ステップと、
前記言語処理装置が備えるストリング構造変換手段が、前記構成単位が前記第１の文及び前記第２の文において出現する位置に基づいて、前記構成単位をグラフ理論上のストリングの頂点にそれぞれ格納し、第１ストリング及び第２ストリングとするストリング構造変換ステップと、
前記言語処理装置が備える距離計算手段が、前記第１ストリングと、前記第２ストリングのすべての部分列との間の距離を求める距離計算ステップと、
前記言語処理装置が備える部分列抽出手段が、前記距離計算ステップで算出された距離が最小、又は、前記第１ストリングと前記部分列との距離を、前記部分列に含まれる構成単位の数で割った値が最小である部分列を、前記第１ストリングと類似する部分列として抽出する部分列抽出ステップと、
前記言語処理装置が備える類似部分抽出手段が、前記部分列抽出ステップで抽出された部分列に含まれる構成単位を含む部分を、前記第１の文と類似する類似部として、前記第２の文から抽出する類似部分抽出ステップとを備え、
前記部分列間距離計算ステップは、前記第１ストリングを、前記部分列に写像する場合に実行される、前記第１ストリングに含まれる構成単位を置換する処理、前記部分列に含まれる構成単位を前記第１のストリングに挿入する処理、及び前記第１ストリングに含まれる構成単位を脱落させる処理のそれぞれに対して設定された置換重み、挿入重み、脱落重みと、前記第１ストリングを前記部分列に写像する場合に必要となる各処理の回数とを乗算し、その総和を前記第１ストリングと前記部分列との距離とすることを特徴とする。
【００３０】
請求項１２記載の発明によれば、テキスト文が部分的に類似しているかどうかを比較できる。このため、比較対象である二つのテキスト文における類似部分間の意味内容を高精度かつ実時間で求めることができる。よって、第１文とよく似ている第２文の最大類似部分を実時間で抽出することができる。
【００３１】
また、本発明のプログラムは、請求項１３に記載のように、コンピュータを、
第１の文及び第２の文を構成する形態素の形態素情報をそれぞれ抽出し、前記形態素情報に含まれる単語情報及び品詞情報とに基づいて選択した形態素を、前記第１の文及び前記第２の文を構成する構成単位としてそれぞれ抽出する構成単位抽出手段と、前記構成単位が前記第１の文及び前記第２の文において出現する位置に基づいて、前記構成単位をグラフ理論上のストリングの頂点にそれぞれ格納し、第１ストリング及び第２ストリングとするストリング構造変換手段と、前記第１ストリングと、前記第２ストリングのすべての部分列との間の距離を求める距離計算手段と、前記部分列間計算手段により算出した距離が最小、又は、前記第１ストリングと前記部分列との距離を、前記部分列に含まれる構成単位の数で割った値が最小である部分列を、前記第１ストリングと類似する部分列として抽出する部分列抽出手段と、前記部分列抽出手段が抽出した部分列に含まれる構成単位を含む部分を、前記第１の文と類似する類似部として、前記第２の文から抽出する類似部分抽出手段と、して機能させ、前記距離計算手段は、前記第１ストリングを、前記部分列に写像する場合に実行される、前記第１ストリングに含まれる構成単位を置換する処理、前記部分列に含まれる構成単位を前記第１のストリングに挿入する処理、及び前記第１ストリングに含まれる構成単位を脱落させる処理のそれぞれに対して設定された置換重み、挿入重み、脱落重みと、前記第１ストリングを前記部分列に写像する場合に必要となる各処理の回数とを乗算し、その総和を前記第１ストリングと前記部分列との距離とすることを特徴とする。
【００３２】
請求項１３記載の発明によれば、テキスト文が部分的に類似しているかどうかを比較できる。このため、比較対象である二つのテキスト文における類似部分間の意味内容を高精度かつ実時間で求めることができる。よって、第１文とよく似ている第２文の最大類似部分を実時間で抽出することができる。
【発明の効果】
【００３３】
本発明によれば、テキスト文が部分的に類似しているかどうかを比較できる言語処理装置、言語処理方法およびプログラムを提供できる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明を実施するための最良の形態について実施例を用いて説明する。
【実施例】
【００３５】
図１は、本実施例に係る言語処理装置のブロック図である。図１に示すように、言語処理装置１００は、外部記憶装置１、形態素解析部２、ストリング構造変換部３、部分列間距離計算部４、部分列抽出部５、類似部分間距離算出部６、最大類似部分抽出部７、単語写像重み計算部８、頂点写像重み計算部９、メモリ１０〜１６、写像重み設定部１８を備える。
【００３６】
言語処理装置１００は、部分的に類似かどうかによってテキスト文書の検索・ユーザに類似部分の文章だけの提示、部分的に類似かどうかによる文書の分類・クラスタリングなどを実現するために、比較対象である第１の文と第２の文の一部分と比較し、部分的に意味内容の相違を測ることができる距離尺度を数学的に定義し、その距離尺度を実時間内で求める。また、言語処理装置１００は、コンピュータを利用した比較対象である第１の文と第２の文の一部分と比較して、第１の文と第２の文の類似部分間の意味内容の相違を算出する類似部分間類似性比較装置、及び第１の文とよく似ている第２の文の類似部分を抽出する最大類似部分抽出装置として機能する。
【００３７】
外部記憶装置１は、例えばハードディスク装置等で構成されている。この外部記憶装置１には、比較対象であるテキスト文データが格納されている。メモリ１０〜１６は、例えばハードディスク装置やＲＡＭ（Random Access Memory）等で構成されている。メモリ１０、１１は、外部記憶装置１から読み出した二つの比較対象である第１の文と第２の文のデータをそれぞれ記憶する。
【００３８】
形態素解析部２は、メモリ１０、１１に格納されている第１の文と第２の文を構成する構成単位を抽出し、解析結果をそれぞれメモリ１２、１３に記憶させる。この形態素解析部２は、形態素解析によって第１の文と第２の文を構成する形態素情報を抽出し、この形態素情報から単語情報と品詞情報を求めて構成単位を抽出する。
【００３９】
ストリング構造変換部３は、形態素解析部２で解析した構成単位をグラフ理論上のストリング構造に変換する。より詳細には、ストリング構造変換部３は、形態素情報を利用して、構成単位（単語情報、品詞情報）が文に出現している左右位置情報によって、構成単位を左から右の順でグラフ理論上のストリングの頂点で表現する。メモリ１４は第１の文から変換された第１ストリングを、メモリ１５は第２の文から変換された第２ストリングを格納する。
【００４０】
部分列間距離計算部４は、頂点写像重み計算部９が計算した頂点の写像重みを用いて、第１の文から変換された第１ストリングと、第２の文から変換された第２ストリングの部分列間の距離を求めるものである。
【００４１】
図１に示すように、この部分列間距離計算部４は、頂点写像部４１、写像重み算出部４２を有する。頂点写像部４１は、第１および第２のストリングにおける頂点間の写像条件を定める。写像重み算出部４２は、頂点写像重み計算部９で求められた頂点の脱落重み、挿入重み、置換重みを用いて、頂点間の写像条件を満たす第１ストリングから第２ストリングの部分列への写像の重みを求める。そして、部分列間距離計算部４は、写像重み算出部４２で求めた写像重みの最小値を第１ストリングと第２ストリングの部分列間の距離として用いる。メモリ１６は、部分列間距離計算部４で求めたすべての部分列間の距離を記憶する。
【００４２】
部分列抽出部５は、部分列間の距離を与える第２の文から変換されたストリングの部分列及び部分列の長さを抽出する。類似部分間距離算出部６は、メモリ１６に記録されている部分列間の距離および部分列抽出部５が抽出した部分列を利用して、第２の文中の第１の文とよく似ている類似部分と第１の文間の距離を求める。最大類似部分抽出部７は、類似部分間距離算出部６で求めた距離から第１の文と似ている第２の文の類似部分を抽出する。メモリ１７は、最大類似部分抽出部７で抽出された比較対象である第１の文とよく似ている第２の文の最大類似部分を記憶する。
【００４３】
単語写像重み計算部８は、頂点写像重み計算部９で必要な単語置換重み、単語脱落重みおよび単語挿入重みを求める。写像重み設定部１８は、単語置換重み、単語脱落重みおよび単語挿入重みに基づいて第１ストリングおよび第２ストリングにおける頂点間の写像重みを設定する。頂点写像重み計算部９は、頂点の写像重み、すなわち、頂点間の置換重み、頂点間の脱落重み、および頂点間の挿入重みを計算し、部分列間距離計算部４に提供する。なお、メモリ１０〜１７を１つにまとめた構成、さらにはメモリ１０〜１７を設けない構成であってもよい。
【００４４】
図２は、本発明のテキスト文における類似部分間の類似性を比較する距離尺度を計算する方法を情報端末装置に適用させた場合の構成を示す図である。情報端末装置２０は、外部記憶装置２１、キーボート２２、ディスプレイ２３、プロセッサ部２４から構成される。外部記憶装置１は、入力された比較対象テキスト文のデータや、単語写像重みを求めるために必要な単語特徴量辞書或いはシソーラス辞書や、求められた部分ストリング間の距離や、部分列や、最大類似部分や、計算に必要な記憶空間や、ソフトウエアなどを格納する。
【００４５】
キーボート２２は、ユーザが操作を指示するための入力装置であり、その他の入力装置が付加されていてもよい。ディスプレイ２３は、ユーザに対するメッセージやテキスト文のデータ、解析結果、距離の計算結果、部分列、最大類似部分などを表示するための出力装置である。勿論他の出力装置が付加されていてもよい。
【００４６】
プロセッサ部２４は、外部記憶装置２１に格納されているソフトウエアなどに従って、実際の処理を行う。プロセッサ部２４は、具体的にマイクロプロセッサや、パーソナルコンピュータなどのコンピュータシステムで構成することができる。上記形態素解析部２、ストリング構造変換部３、部分列間距離計算部４、部分列抽出部５、類似部分間距離算出部６、最大類似部分抽出部７、単語写像重み計算部８、頂点写像重み計算部９、写像重み設定部１８は、このプロセッサ部２４の上で動作するソフトウエアによって構成することができる。プロセッサ部２４が言語処理装置として機能する。また、プロセッサ部２４を含む情報端末装置２０を言語処理装置と言ってもよい。
【００４７】
次に本実施例に係る言語処理装置の動作を詳細に説明する。外部記憶装置１には、比較対象テキスト文である第１の文と第２の文のデータが格納されている。外部記憶装置１から二つの比較対象テキスト文のデータを読み出し、メモリ１０、１１にそれぞれ記憶させる。
【００４８】
形態素解析部２は、メモリ１０、１１に記憶している比較対象テキスト文の形態素および属性を抽出し、その結果をそれぞれメモリ１２、１３に格納する。ここで、形態素解析ツールとして公表された任意のものを利用することができる。例えば、奈良先端技術大学院大学の松本研究室が公表された“茶筅”形態素解析ツールを用いることができる。
【００４９】
ストリング構造変換部３は、形態素解析部２で抽出したすべての形態素情報を利用してテキスト文を構成する構成単位を抽出し、構成単位がテキスト文に出現する位置によって、構成単位を左から右の順でグラフ理論上のストリングの頂点にそれぞれ格納する。
【００５０】
図３は、形態素解析の解析結果を示す図である。図３では、テキスト文『先生は生徒に英語を教える』の形態素解析の解析結果を示している。図３において、左から一列目には各形態素‘先生’、‘は’、‘生徒’、‘に’、‘英語’、‘を’、‘教える’を示す。二列目は一列目の形態素の原形を示す。ここでは、一列目の形態要素と二列目の形態素の原形は同一となっている。三列目は一列目の形態素の発音を示す。四列目は一列目の形態素の振り仮名を示す。五列目は形態素の属性情報を示す。この属性情報には、名詞、助詞、動詞、係助詞、格助詞等が含まれる。
【００５１】
図３に示す例では、一行目の一列目は形態素‘先生’、二列目は一列目の形態素の原形‘先生’、三列目は一列目の形態素の発音‘センセイ’、四列目は一列目の形態素の振り仮名‘センセイ’、五列目は形態素の属性‘名詞−一般’を示している。
【００５２】
図４は、ストリング構造変換部３で変換されたストリング構造表現図である。図４では、図３の解析結果から変換されたストリング構造を示している。ストリング構造変換部３は、形態素解析部２で抽出したすべての形態素情報を利用してテキスト文を構成する構成単位を抽出し、構成単位がテキスト文に出現する位置によって、構成単位を左から右の順でグラフ理論上のストリングの頂点にそれぞれ格納する。ここでは、ストリングの頂点に構成単位の単語情報‘先生’、‘生徒’、‘英語’、‘教える’を表示している。これにより、意味のある単語列を作ることができる。
【００５３】
単語写像重み計算部８は、単語置換重み、単語脱落重みおよび単語挿入重みを求める。写像重み設定部１８は、単語置換重み、単語脱落重みおよび単語挿入重みを頂点写像重み計算部９へ設定する。写像重み設定部８は、第１および第２のストリングにおける頂点間の写像において、第1ストリングの頂点が写像できなくて脱落された場合に、該頂点の脱落重みを頂点に格納されている単語の脱落重みに設定する。また、写像重み設定部８は、第１および第２のストリングにおける頂点間の写像において、第２ストリングの頂点が写像できなくて挿入された場合に、該頂点の挿入重みを頂点に格納されている単語の挿入重みに設定する。また、写像重み設定部８は、第１および第２のストリングにおける頂点間の写像において、二つの頂点が写像した場合に、該頂点間の置換重みを両頂点に格納している単語間の置換重みに設定する。
【００５４】
上記において、単語置換重みについては、定数を設定する場合と、単語間の距離を用いる場合がある。前者の場合には、二つの単語が同じ単語の場合は、単語置換重みをゼロと設定し、それ以外の場合は正の定数を設定する。後者の場合には、二つの単語間の距離を求め、単語間の距離値を単語置換重みとして設定する。
【００５５】
ここで、単語間の距離を求める方法は公開された任意の方法を利用することができる。例えば、統計的な方法、シソーラス辞書を用いた方法、ニューラルネットを用いた方法がある。統計的な手法としては、例えば、論文“語と文書の共起に基づく特徴量の定義と適用”(相澤彰子、自然言語処理 136-4、2000.3)に記載されているＴＦ・ＩＤＦ方法で求めることができる。シソーラス辞書を用いた手法としては、例えば、二つの単語が属している概念間の最短道の長さで単語間の距離とすることができる。ニューラルネットワークの手法を用いた手法としては、例えば、論文“日本語名詞の意味マップの自己組織化”(馬青、情報処理学会論文誌、Vol.42, No.10, 2001)に記載されている方法を利用することができる。勿論、他の公開された方法を利用することができる。
【００５６】
単語脱落重みについては、定数を設定する場合と、単語の品詞情報によって単語脱落重みを設定する場合がある。後者の場合には、単語の品詞に重みを付け、品詞重みと定数の積を単語脱落重みとして設定する。ここで、品詞重みの設定は、例えば、動詞の重みを一番重たくし、形容動詞、名詞、副詞、形容詞などの順で品詞重みを軽くするように設定することができる。勿論、他の順番で品詞重みを設定することができる。単語の脱落重みについては、単語写像重み計算部８が単語の品詞から求めている。
【００５７】
単語挿入重みについては、定数を設定する場合と、単語の品詞情報によって単語挿入重みを設定する場合がある。後者の場合には、単語の品詞に重みを付け、品詞重みと定数の積みを、単語挿入重みとして設定する。ここで、品詞重みの設定は前記品詞重みの設定方法と同様な方法で設定することができるし、異なる方法で設定することもできる。単語の挿入重みについては単語写像重み計算部８が単語の品詞から求めている。なお、単語重み設定部８は“単語の脱落重み＋単語の挿入重み＞単語の置換重み”の関係を満たすようにこれらの重みを設定する。
【００５８】
頂点写像重み計算部９は、頂点間の置換重み、頂点の脱落重み、および頂点の挿入重みを求め、部分列間距離計算部４に提供する。頂点写像重み計算部９は、頂点間の置換重み、脱落重みおよび挿入重みをそれぞれ関数Subs(x,y)、Del(x)及びIns(y)を用いて計算する。
【００５９】
１）第1ストリングから第２ストリングへ写像するときに、第１ストリングの写像できない頂点が脱落され、第２ストリングの写像できない頂点が挿入される。第１ストリングの頂点が挿入される概念が存在しない。同様に、第２ストリングの頂点が脱落される概念が存在しない。
２）ストリングの頂点に単語情報を格納している。頂点間の置換重みが実質的には前記頂点に格納している単語間の置換重みになる。同様に、第1ストリングの頂点の脱落重みが実質的には前記頂点に格納している単語の脱落重みになる。また、第２ストリングの頂点の挿入重みが実質的には前記頂点に格納している単語の挿入重みになる。Subs(x,y)は、頂点xと頂点yに置換するときの置換重みを表す。Subs(x,y)＝頂点xに格納している単語と頂点yに格納している単語間の置換重みになる。Del(x)は頂点xの脱落重みを表す。Del(x)=頂点ｘに格納している単語の脱落重みになる。Ins(y)は、頂点yの挿入重みを表す。Ins(y)=頂点yに格納している単語の挿入重みになる。
【００６０】
部分列間距離計算部４は、メモリ１４に記録された第１の文のストリングとメモリ１５に記憶された第２の文のストリングのすべての部分列間の距離を求め、その結果をメモリ１６に格納する。ここで、ストリングに対して、頂点間の対応関係に基づくすべての部分列間の距離を、論文「The string-to-string correction problem」(J. Assoc. Comput. Mach.、21、pp.168-173、1974、Wagner) に記載されているような方法で求めることができる。
【００６１】
前記論文に記載されているアルゴリズムはアルファベットから構成された文字列における部分列間の距離を求める数学的な方法である。次に、論文「The string-to-string correction problem」(J. Assoc. Comput. Mach.、21、pp.168-173、1974、Wagner)に記載されているすべての部分列間の距離を求める方法を示す。
【００６２】
ストリングX=x1x2…xnとストリングY=y1y2…ym の部分列Y(e)=ysys+1…ye間の距離D(X,Y(e))を次の公式(1-１)〜（1-3）で求めることができる。
(1-1)境界条件(1≦i≦n,  1≦j≦m)
・      d1(0,0) = 0;
・      d1(i,0) = d1(i-1,0) + 1,
・      d1(0,j) = 0,
(1-2)  d1（i,j）の計算(1≦i≦n,1≦j≦m)
・    d1(i,j) = min { temp11, temp12, temp13 },
・                temp11 = d1(i-1,j-1) + 1,  if xi not = yj, 
・                temp11 = d1(i-1,j-1),      if xi = yj,
・                temp12 = d1(i,j-1) + 1,
・                temp13 = d1(i-1,j) + 1,
(1-3)  部分列間の距離
・    D(X,Y(e)) = d1(n,e);                                    
例えば、ストリングX=lsmkとY=ablmmkldmkのすべての部分列間の距離を公式(1-1)〜（1-3）で求めることができる。
【００６３】
図５は、文字列における類似部分文字列間の距離を求める過程を示す図である。図５では、すべての部分列間の距離を求める計算過程を示している。例えば、（ア）では、i＝2、j＝2のとき、（1-2）式より、xi not = yjであるため、
temp11 = d1(1,1) + 1 = 1 + 1 = 2
temp12 = d1(2,1) + 1 = 2 + 1 = 3 
temp13 = d1(1,2) + 1 = 1 + 1 = 2
となり、
dl(2,2) = min { 2, 3 ,2} = 2
となるので、部分列間の距離は、式（1-3）より、
D(X,Y(e)) = 2
となる。
【００６４】
また、（イ）では、i＝4、j＝6のとき、（1-2）式より、xi = yjであるため、
temp11 = d1(3,5) = 1
temp12 = d1(4,5) + 1 = 2 + 1 = 3 
temp13 = d1(3,6) + 1 = 2 + 1 = 3
となり、
dl(4,6) = min { 1, 3 ,3} = 1
となるので、部分列間の距離は、式（1-3）より、
D(X,Y(e)) = 1
となる。ここで、d1(4,j)(1≦j≦m)はXとYのすべての部分列間の距離である。
【００６５】
図５に示す計算結果から分かるように、
d1(4,6)=d1(4,10)=1
が一番小さい部分列間の距離であり、それぞれが、XとYの部分列y3y4y5y6(lmmk)、XとYの部分列y7y8y9y10(ldmk)間の距離である。
【００６６】
式(1)では、単語間の置換重み、単語挿入重み、単語脱落重みをすべて定数として設定した。前記公式(1)を用いて、ストリング構造変換部３で比較対象である第１の文から変換されたストリングT=t1t2…tnと第２の文から変換されたストリングS=s1s2…smのすべての部分列SS(e)=ssss+1…se間の距離D(T,SS(e))を求める時に、ストリングの各頂点に格納しているものが文字ではなく、テキスト文の構成単位(単語情報と品詞情報)であるので、前記のように、頂点写像重み計算部８で単語間の置換重み、単語挿入重み及び単語脱落重みを計算する必要がある。
【００６７】
次の公式(2-1)〜(2-3)が公式(1-1)〜（1-3）を書き換えたD(T,SS(e))を求める公式である。
(2-1) 境界条件(1≦i≦n,  1≦j≦m)
・      d2(0,0) = 0;
・      d2(i,0) = d2(i-1,0) + Del(ti),
・      d2(0,j) = 0,
(2-2) d2(i,j)の計算(1≦i≦n, 1≦j≦m)                          
・    d2(i,j) = min { temp21, temp22, temp23 },
・                temp21 = d2(i-1,j-1) + Subs(ti, sj),
・                temp22 = d2(i,j-1) + Ins(sj),
・                temp23 = d2(i-1,j) + Del(ti),
(2-3) 部分列間の距離
・      D(T,SS(e)) = d2(n,e);                                    
公式(2-2)において、上述したように、Subs(x,y)は頂点間の置換重み、Del(x)は頂点間の脱落重み、Ins(y)は頂点間の挿入重みをそれぞれ示す。
【００６８】
部分列抽出部５は、部分列間の距離を与える第２ストリングの部分列を抽出し、距離d2(i,j)を与える計算過程を記録し、記録された中間計算過程情報を用いて第２ストリングの部分列を抽出することができる。具体的には、部分列抽出部５は、変数p(i,j)で中間計算過程を記録する。部分列抽出部５は、次の公式(3-1)、（3-2）ですべての部分列間の距離とすべての中間計算過程を求める。
(3-1) 境界条件(1≦i≦n,  1≦j≦m)
・      p(0,0) = (0,0);
・      p(i,0) = (i-1,0);
・      p(0,j) = (0,0);
(3-2) d2(i,j)の計算(1≦i≦n, 1≦j≦m)過程の記録p(i,j)          
・    d2(i,j) = min { temp21, temp22, temp23 },
・                temp21 = d2(i-1,j-1) + Subs(ti, sj),
・                temp22 = d2(i,j-1) + Ins(sj),
・                temp23 = d2(i-1,j) + Del(ti),
・                if d2(i,j) = temp22 :  p(i,j) = (i,j-1);
・                if d2(i,j) = temp21 :  p(i,j) = (i-1,j-1); 
・                if d2(i,j) = temp23 :  p(i,j) = (i-1,j);      
【００６９】
部分列抽出部５は、p(i,j)及びeを与えられた時に、次のアルゴリズムSimilar-Sub-Stringを用いて、部分列間の距離値d2(n,e)を与える部分列SS(e)及び部分列SS(e)の長さを求めることができる。
・      Algorithm Similar-Sub-String
・      入力  p(i,j) (0≦i≦n,  0≦j≦m)及びe；
・      出力  SS(e)部分列とSS(e)の長さSize(e)
・      i=n, j=e; size=0;
・      while (p(i,j) not = (0,0) ) do
・      {
・          ISS(size) = sj ;
・          (i,j) = p(i,j) ;
・          size = size+1;
・      }
・      for (i=size-1 to 0; i=i-1)
・        SS(size-1-i) = ISS(i);
・      Size(e) = size;
【００７０】
類似部分間距離算出部６は、次の公式(4)或いは公式(5)を用いて比較対象である第１の文Saと第２の文Sbの類似部間の距離を求めることができる。ここで、D(Sa,Sb)は第１の文Saと第２の文Sb間の類似部分間の距離を表す。
・D(Sa,Sb) = min{ d(n,j) }; (1≦j≦m)                                  (4)
・D(Sa,Sb) = min{ d(n,j)/(n+Size(j)) }; (1≦j≦m)                      (5)
公式(4)は、第１の文から変換されたストリングと第２の文から変換されたストリングの部分列間の中の最小な距離値を第１の文と第２の文の類似部分間の距離とすることを示している。公式(5)は、部分列間の距離と、この部分列間の距離に対応している第２のストリングの部分列の長さとの割り算の最小値を第１の文と第２の文の類似部分間の距離とすることを示している。
【００７１】
最大類似部分抽出部７は、類似部分間距離算出部６で算出された類似部分間の距離D(Sa,Sb)を与える部分列SS(e)を比較対象第１の文とよく似ている第２の文の最大類似部分として出力する。
【００７２】
次は、例を用いて本発明のテキスト文における類似部分間の類似性比較装置と比較方法、最大類似部分抽出装置と抽出方法を説明する。ここで、比較対象である第１の文Sa“誰が山へ行きました”と第２の文Sb“川で洗濯していたおじいさんとおばあさんは山へ行き芝刈りをしました”に対して、類似部分間の距離と最大類似部分を抽出する過程と結果を示す。ここで、写像重み設定部１８は、単語の脱落重み、単語の挿入重みをそれぞれ１１０と設定し、二つの単語が異なる場合は単語間の置換重みを１００，同じの場合は０と設定した例を示す。
【００７３】
形態素解析部２は、第１の文Saと第２の文Sbの形態素を解析し、ストリング構造変換部３は第１の文Saと第２の文Sbの形態素解析結果を利用して、第１の文Saと第２の文Sbの構成単位を抽出し、グラフ理論上のストリング構造に変換する。
【００７４】
図６は、第１の文のストリング構造表現図である。図７は、第２の文のストリング構造表現図である。ここで、構成単位は単語情報だけを表示している。図６に示すように、第１の文Sa“誰が山へ行きました”から変換されたストリングは、‘誰’、‘川’、‘行く’となる。図７に示すように、第２の文Sb“川で洗濯していたおじいさんとおばあさんは山へ行き芝刈りをしました”から変換されたストリングは、‘川’、‘洗濯’、‘おじいさん’、‘おばあさん’、‘山’、‘行く’、‘芝刈り’、‘する’となる。
【００７５】
次に、部分列間の距離および中間計算過程を求める方法について説明する。図８は、テキスト文における部分列間の距離及び中間計算過程を求める過程を示す図である。なお、図８に示す部分列間の距離および中間計算過程は、部分列間距離算出部４が上記公式（3-1）、(3-2)を用いて算出する。また、枠内の()内は中間計算過程を示す。
【００７６】
まず、ｉ＝１の部分の部分列間の距離について説明する。第１の文の部分列“誰”と、ｊ＝０との間の距離は、第１の文の“誰”を脱落させればよいので、１１０となる。第１の文の部分列“誰”と、第２の文の部分列“川”との間の距離は、第１の文の“誰”を“川”に置換すればよいので、１００となる。ここでの置換重みが異なる単語間の置換重みである。以下、同様である。同様に、第１の文の部分列“誰”と、第２の文の部分列ｉ＝１との間の距離は、すべて１００となる。
【００７７】
次に、ｉ＝２の部分の部分列間の距離について説明する。第１の文の部分列“誰、山”と、第２の文の部分列“川”との間の距離は、置換＋脱落であるので、２１０となる。第１の文の部分列“誰、山”と、第２の文の部分列“川、洗濯”との間の距離は、置換＋置換であるので、２００となる。第１の文の部分列“誰、山”と、第２の文の部分列“洗濯、おじいさん”との間の距離は、置換＋置換であるので、２００となる。第１の文の部分列“誰、山”と、第２の文の部分列“おじいさん、おばあさん”との間の距離は、置換＋置換であるので、２００となる。第１の文の部分列“誰、山”と、第２の文の部分列“おばあさん、山”との部分列間の距離は、一つの異なる単語間の置換であるので、１００となる。次に、第１の文の部分列“誰、山”と、第２の文の部分列“山、行く”との間の距離は、置換＋置換であるので、２００となる。
【００７８】
次に、ｉ＝３について説明する。第１の文の部分列“誰、山、行く”、第２の文の部分列“川”との間の距離は、置換＋脱落＋脱落であるので、３２０となる。第１の文の部分列“誰、山、行く”と、第２の文の部分列“川、洗濯”との間の距離は、置換＋置換＋脱落であるので、３１０となる。第１の文の部分列“誰、山、行く”と、第２の文の部分列“川、洗濯、おじいさん”との間の距離は、置換＋置換＋置換であるので、３００となる。第１の文の部分列“誰、山、行く”と、第２の文の部分列“洗濯、おじいさん、おばあさん”との間の距離は、置換＋置換＋置換であるので、３００となる。第１の文の部分列“誰、山、行く”、第２の文の部分列“おばあさん、山”との間の距離は、置換＋脱落であるので、２１０となる。第１の文の部分列“誰、山、行く”と、第２の文の部分列“おばあさん、山、行く”との間の距離は、一つの異なる単語間の置換であるので、１００となる。
【００７９】
次に、部分列の距離を与える部分列を求める方法について説明する。図９は、部分列間の距離を与える部分列を求める方法の説明図である。図９には、部分列間距離算出部４が記録した部分列間の距離を計算するときの中間計算過程を示している。部分列抽出部５は、図９の矢印で示したように、部分列間の距離から中間計算過程を逆に辿っていくことにより、部分列間の距離を与える第２の文から変換された第２ストリングの部分列を抽出する。図９に示す矢印から分かるように、部分列間の距離d2(3,6)=100を与える部分列SS(6)は“おばあさん＋山＋行く”であり、３つの単語列からなるので、部分列の長さSize(6)=3である。この部分列SS(e)及び部分列SS(e)の長さは、上述したアルゴリズムSimilar-Sub-Stringを用いて部分列抽出部５により算出される。
【００８０】
次に、類似部分間距離算出部６は、公式(4)を用いて、第１の文Saと第２の文Sb間の類似部分間の距離D(Sa,Sb)を求めと、
D(Sa,Sb)=min{ d(n,j) }=d2(3,6)=100
である。
【００８１】
このように、類似部分間距離算出部６は、第１の文から変換されたストリングと第２の文から変換されたストリングの部分列間の距離の中の最小な距離値を、第２の文中の第１の文とよく似ている類似部分と第１の文間の距離とする。
【００８２】
また、類似部分間距離算出部６は、公式(5)を用いて、第１の文Saと第２の文Sb間の類似部分間の距離D(Sa,Sb)を求めと、
D(Sa,Sb)=min{ d(n,j)/(n+Size(j)) }=d2(3,6)/(n+Size(6))=100/6=16.67
である。
【００８３】
このように、類似部分間距離算出部６は、部分列間距離計算部４で求めた部分列間の距離と、この部分列間の距離に対応している第２ストリングの部分列の長さとの割り算の最小値を、第２の文中の第１の文とよく似ている類似部分と第１の文間の距離とする。
【００８４】
最大類似部分抽出部７は、類似部分間距離算出部６で求めた類似部分間の距離値を与える第２の文Sbから変換された第２ストリングの部分列が対応している第２文Sbの部分文書を第１の文Saとよく似ている第２の文Sbの最大類似部分を抽出する。ここで、第１の文Saとよく似ている第２の文Sbの最大類似部分はSS(6)が対応している第２の文Sbの“おばあさんは山へ行き”部分である。
【００８５】
次に、入力された第１の文Saと第２の文Sbにおける類似部分間の距離及び第１の文Saとよく似ている第２の文Sbの最大類似部分を抽出するときの動作を説明する。図１０は言語処理方法のフローチャートである。ステップＳ１で、形態素解析部２は、入力された第１の文Saと第２の文Sbの形態素をそれぞれ解析する。ステップＳ２で、ストリング構造変換部３は、第１の文Saと第２の文Sbの形態素情報を用いて、第１の文Saと第２の文Sbをそれぞれストリング構造Sa=x1x2…xnとSb=y1y2…ymに変換する。
【００８６】
ステップＳ３で、部分列間距離算出部４は、公式(2-1)を用いて部分列間の距離d2の境界条件d2(0,0),d2(i,0),d2(0,j)(1≦i≦n,  1≦j≦m)を求める。部分列間距離算出部４は、公式(3-1)を用いて中間計算過程情報pの境界条件p(0,0),p(i,0),p(0,j)(1≦i≦n,  1≦j≦m)を求める。ステップＳ４で、部分列間距離算出部４は、公式(2-2)を用いて部分列間の距離d2(i,j)(1≦i≦n,  1≦j≦m)を求める。部分列間距離算出部４は、公式(3-2)で中間計算過程p(i,j)(1≦i≦n,  1≦j≦m)を求める。
【００８７】
ステップＳ５で、部分列間距離算出部４は、公式(2-3)を用いて部分列間の距離
D(S,SS(e))=d2(n,j)(1≦j≦m)
を求める。
【００８８】
ステップＳ６で、部分列抽出部５は、アルゴリズムSimilar-Sub-Stringを用いて部分列間の距離D(S,SS(e))を与えるストリングSb=y1y2…ymの部分列SS(e)及びSS(e)の長さを求める。ステップＳ７で、類似部分間距離算出部６は、公式(4)或いは公式(5)を用いて類似部分間の距離D(Sa,Sb)を求める。ステップＳ８で、最大類似部分抽出部７は、類似部分間の距離D(Sa,Sb)を与える文Sbの部分列SS(e)が対応しているSbの部分を抽出し、文Saとよく似ている文Sbの最大類似部分として出力する。以上により処理が終了する。図１０に示した言語処理方法は、上記プロセッサ部２４が所定のプログラムを実行することで実現される。
【００８９】
本実施例によれば、比較対象であるテキスト文をグラフ理論上のストリングで表現し、ストリングにおける部分列間の距離を用いてテキスト文における類似部分間の類似性を比較する。これにより、比較対象である第１文と第２文の部分列間の距離を高精度かつ実時間で求めることができる。よって、比較対象である第１文とよく似ている第２文の最大類似部分を抽出することができる。また、本実施例によれば、テキスト文の一部分だけを注目して比較して、部分的に類似な部分をもつ文書の検索と類似部分だけの提示、類似な部分によるドキュメントの分類・クラスタリングなどが可能になる。
【００９０】
なお、ストリング構造変換部３、最大類似部分抽出部７が特許請求の範囲における構成単位抽出手段、類似部分抽出手段にそれぞれ相当する。また、特許請求の範囲における各手段を部に変えたものが図１の各部に相当する。
【００９１】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【００９２】
【図１】本実施例に係る言語処理装置のブロック図である。
【図２】本発明のテキスト文における類似部分間の類似性を比較する距離尺度を計算する方法を情報端末装置に適用させた場合の構成を示す図である。
【図３】形態素解析の解析結果を示す図である。
【図４】ストリング構造変換部で変換されたストリング構造表現図である。
【図５】文字列における類似部分文字列間の距離を求める過程を示す図である。
【図６】第１の文のストリング構造表現図である。
【図７】第２の文のストリング構造表現図である。
【図８】テキスト文における部分列間の距離及び中間計算過程を求める過程を示す図である。
【図９】部分列間の距離を与える部分列を求める方法の説明図である。
【図１０】言語処理方法のフローチャートである。
【符号の説明】
【００９３】
１００  言語処理装置
２  形態素解析部
３  ストリング構造変換部
４  部分列間距離計算部
５  部分列抽出部
６  類似部分間距離計算部
７  最大類似部分抽出部
８  単語写像重み計算部
９  頂点写像重み計算部
１８  写像重み設定部
【図１】
0004622272.tif 000002
【図２】
0004622272.tif 000003
【図３】
0004622272.tif 000004
【図４】
0004622272.tif 000005
【図５】
0004622272.tif 000006
【図６】
0004622272.tif 000007
【図７】
0004622272.tif 000008
【図８】
0004622272.tif 000009
【図９】
0004622272.tif 000010
【図１０】
0004622272.tif 000011