(57)【特許請求の範囲】
【請求項１】
２つのテキストに共通した文字列を抽出し、抽出した共通の文字列の個数に基づいて前記２つのテキストを計算対象とするかどうかを判定する共通文字列計算部と、
２つのテキストが前記共通文字列計算部によって判定された計算対象であるならコルモゴロフ複雑性の概算を用いて類似度を計算し、計算対象でないなら、前記２つのテキストの類似度を類似しないと扱う類似度計算部と、
を備えることを特徴とする文書分析システム。
【請求項２】
前記共通文字列計算部は、前記２つのテキストに予め定めた文字列長の共通文字列が予め定めた数以上に存在するなら、計算対象と判定し、それ以外なら、計算対象としないと判定することを特徴とする請求項１に記載の文書分析システム。
【請求項３】
前記共通文字列計算部は、予め定めた除外文字を含まない共通文字列のみを抽出することを特徴とする請求項１または請求項２に記載の文書分析システム。
【請求項４】
前記共通文字列計算部は、予め定めた除外文字を特殊文字に変換してから、テキストを順に走査して、特殊文字を含まない共通文字列のみを抽出することを特徴とする請求項１ないし請求項３の何れか一項に記載の文書分析システム。
【請求項５】
複数のテキストに対し、１個のテキストを含むそれぞれの集合をそれぞれのクラスタとし、
前記類似度計算部は、
クラスタに含まれるテキスト間の類似度をクラスタ間の類似度として計算し、以降の処理を予め定めた終了条件を満たすまで繰返すよう制御する制御部と、
クラスタ間の類似度に基づいて２つのクラスタを選択する選択部と、
選択した２つのクラスタを併合する併合部と、
２つのクラスタに対し、クラスタに含まれるそれぞれのテキスト間の共通文字列に基づいて、２つのクラスタを計算対象とするかどうかを判定し、計算対象なら、一方のクラスタに含まれるテキストを順に並べたテキストともう一方のクラスタに含まれるテキストを順に並べたテキストとの間の類似度をコルモゴロフ複雑性の概算を用いて計算して２つのクラスタ間の類似度とし、計算対象でないなら、０を２つのクラスタの類似度とする類似度更新部と、
を備えることを特徴とする請求項１ないし請求項４の何れか一項に記載の文書分析システム。
【請求項６】
記憶部に保持された判定対象とする２つのテキストに共通した文字列を抽出処理し、抽出した共通の文字列の個数に基づいて２つのテキストを計算対象とするかどうかを判定処理して判定結果を前記記憶部する共通文字列計算ステップと、
２つのテキストが前記ステップによって判定された計算対象ならコルモゴロフ複雑性の概算を用いて類似度を演算処理し、計算対象でないなら、２つのテキストの類似度を類似しないと扱う類似度計算ステップと、
を有することを特徴とする情報処理装置による文書分析方法。
【請求項７】
メモリーに展開されて、
２つのテキストに共通した文字列を抽出し、抽出した共通の文字列の個数に基づいて２つのテキストを計算対象とするかどうかを判定する共通文字列計算処理と、
２つのテキストが前記共通文字列計算処理によって判定された計算対象ならコルモゴロフ複雑性の概算を用いて類似度を計算し、計算対象でないなら、２つのテキストの類似度を類似しないと扱う類似度計算処理と、
をコンピュータのＣＰＵに実行させることを特徴とする文書分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト分析におけるテキスト間の類似度計算に関する。詳しくは、要求の記載された文書などで重複や抜け漏れなく要求を抽出することに用いることができる要求間の類似度計算に関する。
【背景技術】
【０００２】
例えば、システム開発における要求の抜け漏れは、後工程からの手戻りによる修正コストが大きくなる。このため、抜け漏れを早期に検出することの重要性が広く知られている。昨今、要求の抜け漏れの検出では、予め用意した検査項目を人間が見ながら、要求の記載された文書に問題がないかを目視で検査している。また、提案依頼書（ＲＦＰ：Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｐｒｏｐｏｓａｌ）に対する提案書や、提案書に対する仕様書などのように、反映元文書と反映先文書がある場合、反映元文書に記載された個々の事柄に対し反映先文書に該当箇所があるかどうかについても、人が目視で検査している。
しかし、量が多く重複した記載のある文書の検査には、コスト（人件費と時間等）が多くかかる問題点がある。また、人手では抜け漏れなどを見逃す場合があるという問題があった。一般の文書においても、文書の矛盾点や曖昧な点、元文書から別文書を作成したときの元文書の事柄の抜け漏れなどについて、人手で確認作業を行なっている。そのため、コストが多くかかり、また、人手では見逃す場合があるという問題は同様であった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許４２５５２３９号公報
【特許文献２】特開２００９−１９９６０１号公報
【特許文献３】特許４２３８６１６号公報
【非特許文献】
【０００４】
【非特許文献１】ミング（Ｍｉｎｇ）著「ザ  シミラリティ  メトリクス（Ｔｈｅ  Ｓｉｍｉｌａｒｉｔｙ  Ｍｅｔｒｉｃ）」２００４年発行の論文誌ＩＥＥＥ  トランザクションズ  オン  インフォメーション  セオリー（Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ）」５０巻１２号３２５０−３２６４頁
【発明の概要】
【発明が解決しようとする課題】
【０００５】
これに対し、情報処理装置を用いて自動的にテキストを分析する方法としては、単語の出現頻度に基づく類似度の計算方法が一般的である。この一般的なテキスト分析法では、形態素解析によりテキストから単語を抽出し、単語の出現頻度に基づいてテキスト間の類似度を計算することができる。形態素解析は、例えば、形態素解析エンジンであるＭｅｃａｂやＣｈａｓｅｎなどを用いることにより行うことができる。形態素解析とは、例えば、日本語の”東京都にいる”という入力文に対し、”東京”、”都”、”に”、”いる”、という形態素の出力系列を選ぶことである。ここで、別の出力系列の例は、”東”、”京都”、”に”、”いる”が挙げられる。
英語は、通常、単語ごとに空白で分かち書きされているため、空白を形態素の区切りにできる。しかし、形態素解析では、“Ｍｉｃｒｏｗａｖｅ”と“Ｍｉｃｒｏ  ｗａｖｅ”は、同じ意味を示す場合でも、異なる形態素に分割されてしまう。また、形態素解析では、異なる意味を示している複合語を同一の形態素に分割してしまうこともある。また、“ｃａｎ’ｔ”と“ｃａｎ  ｎｏｔ”は、特に、“’ｔ”と“ｎｏｔ”が類似していると計算できない。また、英語では、語尾が変化するという問題がある。例えば、“ｂｏｏｋｉｎｇ  ａ  ｆｌｉｇｈｔ”と“ｔｈｅ  ｆｌｉｇｈｔ  ｗａｓ  ｂｏｏｋｅｄ．”では、“ｂｏｏｋｉｎｇ”と“ｂｏｏｋｅｄ”は同じ意味であるが、そのままでは異なる単語と判断されてしまう。そのため、語尾をトリミングしてから分析する必要がある。また、アメリカ英語とイギリス英語は、単語の綴りが異なるため、そのままでは、同じ意味を示す単語とみなすことができない。例えば、アメリカ英語“ｃｏｌｏｒ”とイギリス英語“ｃｏｌｏｕｒ”が混じっていた場合、事前の辞書登録などなしでは、“ｃｏｌｏｒ”と“ｃｏｌｏｕｒ”が同じ意味を示す単語と計算できない。
形態素解析では、一般的な大量の文書を用意し、それらの文書から、それぞれの名詞や動詞などの形態素の出現しやすさや連結しやすさのスコアを予め求めておく。そして、形態素解析エンジンは、ある入力文に対して、最もスコアの高くなる分割を選択する。上記日本語の例であれば、一般的な大量の文書では、”東”と”京都”とが連結する場合より、”東京”と”都”とが連結する場合の方が多い。そのため、形態素解析エンジンの処理では、”東京”と”都”との連結しやすさのスコアの方が”東”と”京都”との連結しやすさのスコアより高くなるので、入力文”東京都にいる”に対して、”東京”、”都”、”に”、”いる”という各形態素に分割される。そして、形態素解析エンジンは、分割した各形態素の出現頻度に対して、類似度を計算する。また、テキストの分析処理については、特許文献１や特許文献２にも記載されている。特許文献１には、単語の出現頻度に基づいて、内容が類似する文書情報を文書データベースから抽出する方法が記載されている。特許文献２には、単語の特徴ベクトルに基づいて、ユーザ情報を用いた広告を供給する方法が記載されている。
しかし、形態素解析によるテキスト分析法では、単語への分割（形態素分割）を誤ると、類似の文章相互を非類似と計算してしまう問題があった。例えば、漢字表記のテキスト”外国人参政権”の場合、”外国”、”人参”“政権”と形態素解析によって分割される場合が多くあり、その場合には外国人の参政権に関するテキストと類似だと計算することはできなかった。これを英語で説明すれば、本来の意味では””Ｆｏｒｅｉｇｎｅｒ：外国人”の”Ｆｒａｎｃｈｉｓｅ：参政権””を指す”テキストが、意味の通じない”Ｆｏｒｅｉｇｎ  ｃｏｕｎｔｒｙ”、”Ｃａｒｒｏｔ”、”Ｔｈｅ  ｇｏｖｅｒｎｍｅｎｔ”の意味を有する３つの形態素に分割されて類似度計算に問題を生じる。
このようなことは、特殊な用語が記載されている文章に対して形態素解析を行った場合に、所望の分割と異なる意図せぬ分割になりやすい傾向が顕著に現れる。特に要求の記載された文書では、業界・業種特有の業務用語があり、特殊な場面で用いられるような業務単語については大量の文書を用意することができないため、分割を誤りやすいという問題があった。また、形態素解析によるテキスト分析法では、日本語での”高速”と”迅速”や英語での”ｓｐｅｅｄ”と”ｖｅｌｏｃｉｔｙ”という同様な単語でも同一とみなされないため、同一とみなすには同義語変換を行う必要がある。しかし、要求の記載された文書では、業界・業種特有の業務用語があるために、事前に同義語を示した辞書を完備できず、正しく類似度を計算できないという問題もあった。この問題では、業界や業種ごとに同義とする範囲に差があることも一因となっている。
また、単語に基づくテキスト分析に対して、類似単語を類似と分析できるコルモゴロフ複雑性によって概算する方法が知られている。例えば、非特許文献１には、コルモゴロフ複雑性に基づいた類似度計算法が記載されている。コルモゴロフ複雑性では、自然言語を２進記号列に変換してから圧縮することで距離を概算する。
しかし、コルモゴロフ複雑性の概算では、異なる言葉が類似の２進記号列に変換され、類似度の分類性能が低いという問題があった。例えば、日本語では”あ”が”１０１００１００１０１０００１０”、”い”が”１０１００１００１０１００１００”に変換される場合、”あ”と”い”は、元の自然言語では全く異なる言葉であるにも関わらず、先頭から１３文字目までが同一である。英語での”ａ”と”ｂ”も同様である。このため、情報処理装置による判定では、”あ”と”い”や”ａ”と”ｂ”は、ある程度類似だと計算される。このように、コルモゴロフ複雑性の概算では、元のテキストに同一の文字がなくても、類似度が高く計算される場合があるという問題がある。
また、元の２つのテキストに同一の文字列があっても、それら同一の文字列が、ひらがななど、多くのテキストに含まれるものだけであるなら、２つのテキストが類似とは言えない。この問題に対し、特許文献３では、文書から自立した意味を持つ文字列である特徴語だけを抽出することで、多くのテキストに出現して意味の弱い”ａ”、”ｔｈｅ”、”ｉｎ”などを単純に除いてから類似度を計算している。しかし、上記の様に文字を単純に除くと、分かち書きでない日本語の場合は、例えば、”東でなく京都は西日本なので”というテキストが”東京都西日本”となり、”東京都”に関するテキストとの類似度が必要以上に高くなってしまうという問題がある。
さらに、判定対象のテキストをいくつかのグループ（クラスタ）に類型化（クラスタリング）することで、テキストを高精度に検索する場合がある。しかし、複数のテキストを含むクラスタ間の類似度の計算方法によっては、クラスタに含まれるテキスト数に偏りが生じたり、逆に同数になりがちになったりするなどの問題がある。
本発明では、テキスト間の類似度を高精度に計算する文書分析システムを提供する。
【課題を解決するための手段】
【０００６】
本発明に係る文書分析システムは、２つのテキストに共通した文字列を抽出し、抽出した共通の文字列の個数に基づいて２つのテキストを計算対象とするかどうかを判定する共通文字列計算部と、２つのテキストが前記共通文字列計算部によって判定された計算対象ならコルモゴロフ複雑性の概算を用いて類似度を計算し、計算対象でないなら、２つのテキストの類似度を類似しないと扱う類似度計算部と、を備えることを特徴とする。 
本発明に係る情報処理装置による文書分析方法は、記憶部に保持された判定対象とする２つのテキストに共通した文字列を抽出処理し、抽出した共通の文字列の個数に基づいて２つのテキストを計算対象とするかどうかを判定処理して判定結果を前記記憶部する共通文字列計算ステップと、２つのテキストが前記ステップによって判定された計算対象ならコルモゴロフ複雑性の概算を用いて類似度を演算処理し、計算対象でないなら、２つのテキストの類似度を類似しないと扱う類似度計算ステップと、を有することを特徴とする。
本発明に係る文書分析プログラムは、メモリーに展開されて、２つのテキストに共通した文字列を抽出し、抽出した共通の文字列の個数に基づいて２つのテキストを計算対象とするかどうかを判定する共通文字列計算処理と、２つのテキストが前記共通文字列計算処理によって判定された計算対象ならコルモゴロフ複雑性の概算を用いて類似度を計算し、計算対象でないなら、２つのテキストの類似度を類似しないと扱う類似度計算処理と、をコンピュータのＣＰＵに実行させることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、テキスト間の類似度をコルモゴロフ複雑性の概算を用いて計算する際に、変換された２進記号列だけでなく元の自然言語での共通文字列の情報も用いるため、類似度を高精度に計算することができる文書分析システムを提供できる。
【図面の簡単な説明】
【０００８】
図１は、文書分析システムの第１の実施例の構成例を示すブロック図である。
図２は、テキスト記憶部１００に記憶されたテキストの例を示す説明図である。
図３は、計算対象記憶部１０１に記憶された計算対象の例を示す説明図である。
図４は、文書分析システムの第１の実施例の処理経過の例を示すフローチャートである。
図５は、文書分析システムの第１の実施例の共通文字列数の判定の処理経過の例を示すフローチャートである。
図６は、部分列がテキストｊに含まれるかを調べる例を示す説明図である。
図７は、文書分析システムの第２の実施例の構成例を示すブロック図である。
図８は、文書分析システムの第２の実施例の除外文字を除いた共通文字列数の判定の処理経過の例を示すフローチャートである。
図９は、除外文字を除いた場合の例を示す説明図である。
図１０は、除外文字を用いた場合の共通文字列計算部２０１の例を示す説明図である。
図１１は、文書分析システムの第３の実施例の構成例を示すブロック図である。
図１２は、類型番号記憶部３００の例を示す説明図である。
図１３は、類型番号記憶部３００の別の例を示す説明図である。
図１４は、類型結果記憶部３０１の例を示す説明図である。
図１５は、類似度記憶部３０２の例を示す説明図である。
図１６は、類似度記憶部３０２の別の例を示す説明図である。
図１７は、文書分析システムの第３の実施例の処理経過の例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
本発明の実施形態の文書分析システムは、共通文字列計算部と類似度計算部とを有する形態を採る。尚、文書分析システムには必要に応じて判定対象とする文章等の格納や閾値や各種テーブルなどを記録する記憶部を設ければよい。共通文字列計算部は、２つのテキストに共通した文字列を抽出し、抽出した共通の文字列に基づいて２つのテキストを計算対象とするかどうかを判定する。類似度計算部は、類似度を判定する２つのテキストが計算対象ならコルモゴロフ複雑性の概算を用いて２つのテキストの類似度を計算し、計算対象でないなら、２つのテキストの類似度を類似しないと扱う（０とする）。
即ち、文書分析システムとして動作する情報処理装置は、類似度を判定する２つのテキストに対して、両テキストを自然言語として取得した後、共通に存在する共通文字列を抽出し、その共通文字列の存在個数に基づき、類似度の計算処理を行うか判定する。その後、所定の閾値以上であれば、計算処理に移行し、テキスト間の類似度をコルモゴロフ複雑性の概算を用いて類似度を計算する。
共通文字列計算部が行う類似度の計算処理を行うか判定は、例えば、２つのテキストに予め定めた文字列長の共通文字列が予め定めた数以上に存在するなら、計算対象と判定し、それ以外なら、計算対象としないと判定するようにすればよい。
また、共通文字列計算部は、予め定めた除外文字を含まない共通文字列のみを抽出するようにしてもよい。
また、共通文字列計算部は、予め定めた除外文字を特殊文字に変換してから、テキストを順に走査し、特殊文字を含まない共通文字列のみを抽出することとしてもよい。
また、複数のテキストに対し、１個のテキストを含むそれぞれの集合をそれぞれのクラスタとし、類似度計算部が、クラスタに含まれるテキスト間の類似度をクラスタ間の類似度として計算し、以降の処理を予め定めた終了条件を満たすまで繰返すよう制御する制御部と、クラスタ間の類似度に基づいて２つのクラスタを選択する選択部と、選択した２つのクラスタを併合する併合部と、２つのクラスタに対し、クラスタに含まれるそれぞれのテキスト間の共通文字列に基づいて、２つのクラスタを計算対象とするかどうかを判定し、計算対象なら、一方のクラスタに含まれるテキストを順に並べたテキストともう一方のクラスタに含まれるテキストを順に並べたテキストとの間の類似度をコルモゴロフ複雑性の概算を用いて計算して２つのクラスタ間の類似度とし、計算対象でないなら、０を２つのクラスタの類似度とする類似度更新部とを設けてもよい。
このようにすれば、”ひらがな”など意味の弱い文字列（除外文字）を特殊記号に変換し、特殊記号を含まない共通部分列に基づいて計算対象とするかどうかを判断し、計算対象については意味の弱い文字列も含めて類似度を計算するため、意味の弱い部分も用いて、高精度に類似度を計算することができる。さらに、類型化や検索の際に、クラスタに含まれるテキストでの個別情報とクラスタ全体の情報との両方を用いるため、高精度に類似度を計算することができる。なお、日本語の文章では、”漢字”と”ひらがな”を混在させて使用した際の”ひらがな”は、多くの場合に”漢字”で表現される文字列に対して”ひらがな”で表示される文字列が意味の弱い文字列であることが多い。
【実施例１】
【００１０】
次に、本発明による文書分析システムの第１の実施例について図面を参照して詳細に説明する。第１の実施例に係る文書分析システムは、テキスト間の類似度を計算する。テキストとは、文書における文、段落、章、表の一行などを示す。ここでは、テキストとして、提案依頼書や提案書、仕様書などから抽出した要求や仕様とする場合を例として説明する。提案依頼書（ＲＦＰ）は、発注元である官公庁や企業が情報システムやＩＴサービスなどを調達する際に、発注先となるＩＴベンダに対して提案を要請するための文書である。提案依頼書は、調達依頼書、入札依頼書、提案要請書、提案要求書、提案要望書、提案募集書、見積依頼書、提案書提出要請書、入札説明書、委託仕様書などとも呼ばれる。提案依頼書には、例えば、概要と目的、必要な機能、サービスレベル、契約条件などの具体的な要求事項が記載される。提案書（Ｐｒｏｐｏｓａｌ）とは、ＩＴベンダが具体的な提案事項を記載した文書である。提案書は、企画書、企画提案書などとも呼ばれる。提案書には、例えば、目的やねらい、機能やサービスレベルの実現手段、開発体制などの具体的な提案事項が記載される。仕様書は、システムやサービスが満たすべき事項である要件事項を記載した文書である。仕様書は、要求仕様書、要求定義書、要件定義書、機能仕様書、設計書、契約書などとも呼ばれる。仕様書には、発注元と発注先との間で取り決められた要件事項が整理されて記載される。
図１を参照すると、本実施例に係る文書分析システムは、情報を記憶する記憶部１１と、プログラム制御により動作する計算部１２とから構成されている。
記憶部１１は、テキスト記憶部１００と、計算対象記憶部１０１とを備える。
テキスト記憶部１００は、入力された文書から抽出したテキストの集合を記憶する。テキストの抽出と記録は、抽出等を行う手段を別に設けてもよいし、計算部１２によって行なってもよい。図２は、テキスト記憶部１００に記憶されたテキストの例を示す説明図である。図では、１つのテキストが文となっている例を示したが、テキストは、１つの段落や１つの章ごとに構成してもよい。ひらがな、カタカナ、漢字、記号などを文字の集合Ａとすると、テキストは集合Ａに含まれる文字が０つ以上連続した文字列で表現される。以降、説明を簡単にするため、ＩＤが”ｉ”であるテキストを”テキストｉ”又は単に”ｉ”と呼ぶことにする。
計算対象記憶部１０１は、計算部１２で判定された自然言語としての文字の一致度を記憶する。当該一致度に基づき文書分析システムは、コルモゴロフ複雑性の概算を用いて類似度を算定処理するか否かの対象を選別する。図３は、計算対象記憶部１０１に記憶された計算対象の例を示す説明図である。計算対象記憶部１０１には、予め定めた文字列長ｍと共通文字列数の下限Ｎｍｉｎとに対して、テキストｉとテキストｊとの間に、文字列長ｍの共通部分列の数がＮｍｉｎ以上あるなら、ＩＤがｉの（テキストの）計算対象としてｊ（テキストの）が記憶される。Ｎｍｉｎ未満なら、計算対象記憶部１０１にＩＤがｉの計算対象としてｊは記憶されない。文字列長ｍと共通文字列数の下限Ｎｍｉｎとは、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。図３では、図２に示したテキスト例に対して、ｍ＝２、Ｎｍｉｎ＝３を与えた場合の結果を示している。テキスト０とテキスト１との間では、”認証”、”証シ”、”シス”という文字列が共通するため、共通部分列の数が３件以上のため、ＩＤが０の計算対象として１を記憶する。一方、テキスト１とテキスト３との間では、”は、”という文字列しか共通しないため、ＩＤが１のテキストの計算対象としてＩＤが３のテキストは記憶されない。なお、計算対象は対称行列とできるので、対角成分のいずれかを記述することとして、必要となるメモリを半減させてもよい。
計算部１２は、共通文字列計算部１０２と、類似度計算部１０３とを備える。
共通文字列計算部１０２は、テキスト記憶部１００に記憶されたテキストの中２つのテキスト（判定対象とするテキスト）に対して、予め定めた文字列数の共通文字列の情報を計算する。
類似度計算部１０３は、計算対象記憶部１０１に記憶された計算対象の情報に基づいて、テキスト間の類似度をコルモゴロフ複雑性の概算を用いて計算する。
次に、図４のフローチャートを参照して、本実施例１の全体の動作について詳細に説明する。
共通文字列計算部１０２は、まず、第１のテキストの番号を示すｉを０に初期化する（ステップＡ１）。
共通文字列計算部１０２は、次に、ｉとテキスト数Ｎとを比較する（ステップＡ２）。ｉがＮ未満（ｉ＜Ｎ）なら、ステップＡ３に移行する。ｉがＮ以上（ｉ≧Ｎ）なら、ステップＡ７に移行する。
共通文字列計算部１０２は、第２のテキストの番号を示すｊを０に初期化する（ステップＡ３）。
共通文字列計算部１０２は、次に、ｊとテキスト数Ｎとを比較する（ステップＡ４）。ｊがＮ未満（ｊ＜Ｎ）なら、ステップＡ５に移行する。ｊがＮ以上（ｊ≧Ｎ）なら、ステップＡ６に移行する。
共通文字列計算部１０２は、ｉとｊとの共通文字列数を算出し、Ｎｍｉｎ以上なら、ｊを計算対象として計算対象記憶部１０１に記憶し、ｊをインクリメントする（ステップＡ５）。インクリメントとは、ｊ対象に１を加算することである。このステップＡ５の処理については、例を、共通文字列数の判定のフローチャートで詳細に後述する。
共通文字列計算部１０２は、ｊがＮ以上（ｊ≧Ｎ）となったことを判定して、ｉをインクリメントする（ステップＡ６）。そして、ステップＡ２に戻る。
次に、ｉがＮ以上（ｉ≧Ｎ）となり、類似度計算部１０３は、第１のテキストの番号を示すｉを再度０に初期化する（ステップＡ７）。
類似度計算部１０３は、次に、ｉとテキスト数Ｎとを比較する（ステップＡ８）。ｉがＮ未満（ｉ＜Ｎ）なら、ステップＡ９に移行する。ｉがＮ以上（ｉ≧Ｎ）なら、処理を終了する。計算した結果の類似度は、すぐにディスプレイ装置や印刷装置などを介して出力してもよいし、記憶しておいてシステムのユーザからのリクエストなどに応じて出力してもよいし、それ以外の様態で出力してもよい。
類似度計算部１０３は、次に、第２のテキストの番号を示すｊを０に初期化する（ステップＡ９）。
類似度計算部１０３は、次に、ｊとテキスト数Ｎとを比較する（ステップＡ１０）。ｊがＮ未満（ｊ＜Ｎ）なら、ステップＡ１１に移行する。ｊがＮ以上（ｉ≧Ｎ）なら、ステップＡ１５に移行する。
類似度計算部１０３は、次に、ｉに対してｊが類似度を計算する対象かどうかについて計算対象記憶部１０１を参照する（ステップＡ１１）。ｊが計算対象なら、ステップＡ１２に移行する。ｊが計算対象に含まれないなら、ステップＡ１３に移行する。
類似度計算部１０３は、ｉに対しｊが計算対象なら、ｉとｊの類似度を計算処理する（ステップＡ１２）。類似度の計算方法は、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。例えば、類似度は、コルモゴロフ複雑性の概算を用いて計算することができる。例えば、対象を圧縮するアルゴリズムを予め定めると、対象ｉと対象ｊとの間の類似度ｓ（ｉ，ｊ）は、対象ｉを圧縮した場合のサイズをＣ（ｉ）、対象ｊを圧縮した場合のサイズをＣ（ｊ）、対象ｉとｊとを連結させた新たな対象を圧縮した場合のサイズをＣ（ｉｊ）とすると、例えば、ｄ（ｉ，ｊ）＝１−Ｃ（ｉｊ）／｛Ｃ（ｉ）＋Ｃ（ｊ）｝あるいはｄ（ｉ，ｊ）＝１−［Ｃ（ｉｊ）−ｍｉｎ｛Ｃ（ｉ），Ｃ（ｊ）｝］／ｍａｘ｛Ｃ（ｉ），Ｃ（ｊ）｝に示す数式によって計算することができる。指定される圧縮アルゴリズムは、例えば、ｇｉｐ、ｚｇｉｐなどである。圧縮アルゴリズムでは、文字列に対し、文字である記号あるいは以前の部分文字列との（一致長、一致位置）のペアで符号化すればよい。符号化では、例えば、文字列に出現する記号の個数を求め、個数の多い記号ほど短い符号を割り当てる。したがって、コルモゴロフ複雑性の概算を用いると、日本語のテキストを対象とすれば”高速に動作”と”迅速に動作”という文は、”速に動作”に短い符号を割り当てることとなり、高い類似度として計算することができる。
ここで、ｉとｊの番号が一致する場合には、計算せずに、類似度を１としてもよい。計算した類似度は、すぐにディスプレイ装置や印刷装置などを介して出力してもよいし、記憶しておいてシステムのユーザからのリクエストなどに応じて出力してもよいし、それ以外の様態で出力してもよい。
類似度計算部１０３は、ｉに対しｊが計算対象に含まれないなら、ｉとｊの類似度を０とする（ステップＡ１３）。計算した類似度は、すぐにディスプレイ装置や印刷装置などを介して出力してもよいし、記憶しておいてシステムのユーザからのリクエストなどに応じて出力してもよいし、それ以外の様態で出力してもよい。
類似度計算部１０３は、ｉに対しするｊの類似度の値の決定後、ｊをインクリメントしてステップＡ１０に戻る（ステップＡ１４）。
類似度計算部１０３は、ループを繰り返してｉに割当てられたテキストに対する全てのテキストの類似度の値を決定後（ｊ≧Ｎ）、ｉをインクリメントし、ステップＡ８に移行する（ステップＡ１５）。
次に、図５のフローチャートを参照して、本実施例１の共通文字列数の判定の動作について詳細に説明する。
共通文字列計算部１０２は、まず、テキストｉとテキストｊとが完全に一致するかを調べる（ステップＡ１６）。一致するなら、ステップＡ２６に移行し、一致しないなら、ステップＡ１７に移行する。なお、本ステップは、”了解”などの短いテキストが完全一致する場合に計算対象とするために行うが、省略してもよい。日本語の”了解”とは英語での”ＯＫ”である。
共通文字列計算部１０２は、文字列の開始位置を示す番号ｓｔを０に初期化する（ステップＡ１７）。
共通文字列計算部１０２は、次に、テキストｉとテキストｊとの共通文字列数を示す番号Ｎｍａｔｃｈを０に初期化する（ステップＡ１８）。
共通文字列計算部１０２は、次に、既知集合に含まれる要素数を要素が０個である空集合に初期化する（ステップＡ１９）。既知集合とは、テキストｉとテキストｊとに対した、既に発見した共通文字列の集合である。
共通文字列計算部１０２は、次に、文字列の開始位置の番号ｓｔに文字列長ｍを加算した値（ｓｔ＋ｍ）とテキストｉの文字列数ｌｅｎとを比較する（ステップＡ２０）。ｓｔ＋ｍがｌｅｎ未満（ｓｔ＋ｍ＜ｌｅｎ）なら、ステップＡ２１に移行する。ｓｔ＋ｍがｌｅｎ以上（ｓｔ＋ｍ≧ｌｅｎ）なら、ｉとｊとの共通文字列数の計算を終了する。
共通文字列計算部１０２は、部分列（ｉ，ｓｔ，ｍ）が既知集合の要素であるかを調べる（ステップＡ２１）。要素であるなら、ステップＡ２７に移行する。要素でないなら、ステップＡ２２に移行する。
テキストｉの位置ｓｔから始まるｍ文字の部分列がテキストｊの部分列として含まれるかを調べる（ステップＡ２２）。含まれるなら、ステップＡ２３に移行し、含まれないなら、ステップＡ２７に移行する。図６は、部分列がテキストｊに含まれるかを調べる例を示す説明図である。図６では、図２に示したテキスト０とテキスト１とを比較する際に、ｍ＝２の場合、ｓｔ＝０では、テキストｉの部分列（ｉ，０，２）：”認証”、テキストｊの部分列（ｊ，０，２）：”認証”が一致する。同様にｓｔ＝１では、テキストｉの部分列（ｉ，１，２）：”証シ”、テキストｊの部分列（ｊ，１，２）：”証シ”が一致する。同様にｓｔ＝２では、テキストｉの部分列（ｉ，２，２）：”シス”、テキストｊの部分列（ｊ，２，２）：”シス”が一致する。ここでは、テキストｉとテキストｊの一致する部分列の開始位置が同じ場合を例で示したが、開始位置が異なっても同様に調べればよい。
共通文字列計算部１０２は、参照したテキストｉの部分列がテキストｊの部分列であれば、確認を終えた部分列（ｉ，ｓｔ，ｍ）を既知集合に追加する（ステップＡ２３）。
共通文字列計算部１０２は、次に、Ｎｍａｔｃｈをインクリメントする（ステップＡ２４）。
共通文字列計算部１０２は、次に、ＮｍａｔｃｈとＮｍｉｎを比較する（ステップＡ２５）。ＮｍａｔｃｈがＮｍｉｎ以上（Ｎｍａｔｃｈ≧Ｎｍｉｎ）なら、ステップＡ２６に移行し、Ｎｍｉｎ未満（Ｎｍａｔｃｈ＜Ｎｍｉｎ）なら、ステップＡ２７に移行する。図６の場合、ｓｔ＝２のとき、処理を進めてＮｍａｔｃｈ＝３になった時点で、Ｎｍｉｎ以上となるので、ステップＡ２６に移行する。したがって、テキストｉの以降の部分列（ｉ，３，２）：”ステ”などが一致するかどうかは確認しない。尚、処理量を増やしても構わなければ全ｓｔの確認を行うようにしてもよい。
共通文字列計算部１０２は、ｊを計算対象として計算対象記憶部１０１に記憶し、テキストｉとテキストｊとの類似度計算を終了する（ステップＡ２６）。
共通文字列計算部１０２は、次の文字列の開始位置の確認のためｓｔをインクリメントし、ステップＡ２０に戻る（ステップＡ２７）。
上記の様に文書分析システムを動作させることによって、単語の分割を行わないため、形態素解析の問題点である単語の分割ミスによる精度の低下を伴うことなしに類似度を計算することができる。同時に、２進記号列だけでなく元の自然言語での文字列で共通するかどうかの情報も用いるため、２進記号列への変換での精度低下を減少させて類似度を計算できる。したがって、本実施例により、高精度に類似度を計算することができる。また、共通文字列計算部での計算は、類似度計算部での計算より高速に行えるため、共通文字列計算部で計算対象を絞り込むことによって、全体として高速に類似度を計算することが可能となる。
【実施例２】
【００１１】
次に、本発明による文書分析システムの第２の実施例について図面を参照して詳細に説明する。なお、第１の実施例と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。
図７を参照すると、本実施形態に係る文書分析システムは、情報を記憶する記憶部２１と、プログラム制御により動作する計算部２２とから構成されている。
記憶部２１は、テキスト記憶部１００と、除外文字記憶部２００と、計算対象記憶部１０１とを備える。
テキスト記憶部１００は、実施例１と同様である。
除外文字記憶部２００は、除外文字として後述する共通文字列計算部２０１において、共通文字列として認めない（採用しない）文字や文字列を記憶する。除外文字とは、日本語であれば、例えば、ひらがな、”、”や”。”などの句読点などの頻出語である。英語であれば、例えば、”ａ”、”ｔｈｅ”、”ｉｎ”、”，”や”．”などの句読点などの頻出語である。除外文字は、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。
計算対象記憶部１０１は、実施例１と同様である。
計算部２２は、共通文字列計算部２０１と、類似度計算部１０３とを備える。
共通文字列計算部２０１は、テキスト記憶部１００に記憶されたテキストから除外文字記憶部２００に記憶された除外文字を除いてから、共通文字列数を算出し、計算対象とするかどうかを判断する。
類似度計算部１０３は、実施例１と同様である。
次に、図８のフローチャートを参照して、本実施例２の除外文字を除いた共通文字列数の判定の動作について詳細に説明する。
共通文字列計算部２０１は、まず、テキストｉとテキストｊとが完全に一致するかを調べる（ステップＡ２８）。一致するなら、ステップＡ４０に移行し、一致しないなら、ステップＡ２９に移行する。
共通文字列計算部２０１は、次に、除外文字記憶部２００に記憶されたそれぞれの除外文字に対し、それぞれのテキストに含まれるか否かを調べ、含まれる場合は、その文字を特殊記号に変換する（ステップＡ２９）。特殊記号とは、すべてのテキストに含まれないような特別な記号であって、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。なお、上記変換は、除外文字列を構成する文字毎に１字ずつ特殊文字を割当てるように変換してもよいし、除外文字列を構成する文字列全体に対して１特殊文字を割当てるように変換してもよい。
共通文字列計算部２０１は、文字列の開始位置を示す番号ｓｔを０に初期化する（ステップＡ３０）。
共通文字列計算部２０１は、次に、テキストｉとテキストｊとの共通文字数を示す番号Ｎｍａｔｃｈを０に初期化する（ステップＡ３１）。
共通文字列計算部２０１は、次に、既知集合を要素が０個の空集合に初期化する（ステップＡ３２）。
共通文字列計算部２０１は、次に、ｓｔ＋ｍとテキストｉの文字列数ｌｅｎとを比較する（ステップＡ３３）。ｓｔ＋ｍがｌｅｎ未満（ｓｔ＋ｍ＜ｌｅｎ）なら、ステップＡ３４に移行する。ｓｔ＋ｍがｌｅｎ以上（ｓｔ＋ｍ≧ｌｅｎ）なら、ｉとｊとの共通文字列数の計算を終了する。
共通文字列計算部２０１は、部分列（ｉ，ｓｔ，ｍ）が既知集合の要素であるかを調べる（ステップＡ３４）。要素であるなら、ステップＡ４１に移行する。要素でないなら、ステップＡ３６に移行する。
共通文字列計算部２０１は、部分列（ｉ，ｓｔ，ｍ）が特別文字を含むかを調べる（ステップＡ３５）。含むなら、ステップＡ４１に移行する。含まないなら、ステップＡ３６に移行する。
共通文字列計算部２０１は、テキストｉの位置ｓｔから始まるｍ文字の部分列がテキストｊの部分列として含まれるかを調べる（ステップＡ３６）。含まれるなら、ステップＡ３７に移行し、含まれないなら、ステップＡ４１に移行する。図９は、除外文字を除いた場合の例を示す説明図である。ここでの除外文字は、ひらがなや句読点、頻出語である”システム”であるとする。また、前記の例と同様に、ｍ＝２、Ｎｍｉｎ＝３とする。ｓｔ＝０では、テキストｉの部分列（ｉ，０，２）＝”認証”となり、テキストｊの部分列（ｊ，０，２）＝”認証”が一致するが、それ以外は一致しないため、テキスト１はテキスト０に対して計算対象としない。図１０は、除外文字を用いた場合の共通文字列計算部２０１の例を示す説明図である。図に示すように、本実施例では除外文字を除いて共通文字列を抽出して計算するため、実施例１（図３参照）よりも少ないテキストが計算対象となる。
共通文字列計算部２０１は、部分列（ｉ，ｓｔ，ｍ）を既知集合に追加する（ステップＡ３７）。
共通文字列計算部２０１は、次に、Ｎｍａｔｃｈをインクリメントする（ステップＡ３８）。
共通文字列計算部２０１は、次に、ＮｍａｔｃｈとＮｍｉｎを比較する（ステップＡ３９）。ＮｍａｔｃｈがＮｍｉｎ以上（Ｎｍａｔｃｈ≧Ｎｍｉｎ）なら、ステップＡ４０に移行し、Ｎｍｉｎ未満（Ｎｍａｔｃｈ＜Ｎｍｉｎ）なら、ステップＡ４１に移行する。
共通文字列計算部２０１は、ｊを計算対象として計算対象記憶部１０１に記憶し、テキストｉとテキストｊとの類似度計算を終了する（ステップＡ４０）。
共通文字列計算部２０１は、次の文字列の開始位置の確認のためｓｔをインクリメントし、ステップＡ３３に戻る（ステップＡ４１）。
本実施例の上述以外の動作は、第１の実施例と同様である。なお、ここでは、除外文字として、ひらがななどを用いる場合を例として説明したが、形態素解析を行って、主語や述語といったテキストの骨格となる名詞、動詞、形容詞以外の形態素を取り除くこととしてもよい。
本実施例によれば、除外文字以外での共通文字列の情報を用いるため、より高精度に類似度を計算することができる。関連技術とした、特許４２３８６１６では、”ａ”、”ｔｈｅ”、”ｉｎ”などを単純に除いてから類似度を計算している。しかし、分かち書きでない日本語の場合は、ひらがななどの除外文字を単純に除くと、例えば、”東でなく京都は西日本なので”というテキストが”東京都西日本”となり、”東京都”に関するテキストとの類似度が必要以上に高くなってしまう。また、除外文字を特殊記号に変換しただけでは、除外文字を多く含むテキスト同士の類似度が高くなってしまう。本実施例では、除外文字を特殊記号に変換し、特殊記号を含まない共通部分列に基づいて計算対象とするかどうかを判断するために、これらの問題が起きない。また、除外文字の部分にも文としての意味（文中での役割）があるが、単純に取り除いてから類似度を計算するのでは、除外文字部分の意味情報を類似度の計算に用いることができない。本実施例では、除外文字は計算対象を絞るためだけに用い、類似度計算では元の除外文字を含むテキストを用いるため、除外文字部分の意味情報も用いることとなり、高精度に類似度を計算することができる。
【実施例３】
【００１２】
次に、本発明による文書分析システムの第３の実施例について図面を参照して詳細に説明する。第３の実施例に係る文書分析システムは、テキストを複数のグループに分類（クラスタリング、類型化）する。なお、第２の実施例と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。
図１１を参照すると、本実施例に係る文書分析システムは、情報を記憶する記憶部３１と、プログラム制御により動作する計算部３２とから構成されている。
記憶部３１は、テキスト記憶部１００と、計算対象記憶部１０１と、除外文字記憶部２００と、類型番号記憶部３００と、類型結果記憶部３０１と、類似度記憶部３０２とを備える。
テキスト記憶部１００は、実施例２と同様である。
計算対象記憶部１０１は、実施例２と同様である。
除外文字記憶部２００は、実施例２と同様である。
類型番号記憶部３００は、類型化の番号を記憶する。図１２は、類型番号記憶部３００の例を示す説明図である。図１２では、初期段階の類型番号記憶部３００の例を示しており、それぞれのＩＤに対して、類型要素の番号はそのＩＤである。図１３は、類型番号記憶部３００の別の例を示す説明図である。図１３では、テキスト０とテキスト４とが類型化された後の類型番号記憶部３００の例を示しており、類型要素の番号４はＩＤが０の欄に追加され、ＩＤが４の行は削除されている。
類型結果記憶部３０１は、同じグループに分類されたテキストを順に連結したテキストを記憶する。類型結果記憶部３０１は、初期段階では、テキスト記憶部１００と同一内容とする。図１４は、類型結果記憶部３０１の例を示す説明図である。図１４では、図２で示したテキスト記憶部１００に記録されたテキスト例に対して、テキスト０とテキスト４とが類型化処理された内容を示している。その内容として、ＩＤが０のテキストは、テキスト０とテキスト４とを連結したテキストとなっており、加えてＩＤが４の行は削除されている。
類似度記憶部３０２は、類似度を記憶する。図１５は、類似度記憶部３０２の例を示す説明図である。図の第１行目と第１列目は、ＩＤを示す。また、ＩＤがｉの行とＩＤがｊの列の交差部分は、テキストｉとテキストｊとの類似度の値を示す。図に示すように、対角成分は同一のテキストとなるので類似度が１であり、行列の類似度の値は対角成分に対して対称である。図１６は、類似度記憶部３０２の別の例を示す説明図である。図１６では、テキスト０とテキスト４とが類型化された場合の例を示しており、ＩＤが０の行とＩＤが０の列とが図１５に示した例から更新されており、ＩＤが４の行とＩＤが４の列は削除されている。
計算部３２は、共通文字列計算部２０１と、類似度計算部１０３と、制御部３０３と、選択部３０４と、併合部３０５と、類似度更新部３０６とを備える。
共通文字列計算部２０１は、実施例２と同様である。
類似度計算部１０３は、実施例２と同様である。
制御部３０３は、予め定めた終了条件を満たすまで分類処理を続けるように制御する。終了条件は、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。例えば、クラスタ間の類似度の最大値が予め定めた値未満になったら終了する。または、クラスタ数が予め定めた値以下になったら終了するなどである。
選択部３０４は、類似度記憶部３０２に記憶された類似度に基づいて、２つのテキストを選択する。
併合部３０５は、選択した２つのテキストを併合し、類型番号記憶部３００と類型結果記憶部３０１に記憶する。
類似度更新部３０６は、計算対象記憶部１０１に記憶された計算対象と、類型結果記憶部３０１に記憶された類型結果に基づいて、類似度を更新し、類似度記憶部３０２に記憶する。
次に、図１７のフローチャートを参照して、本実施例３の全体の動作について詳細に説明する。
共通文字列計算部２０１は、前記実施例と同様に、テキスト記憶部１００に記憶されたテキストから、除外文字記憶部２００に記憶された除外文字を除いて、共通文字列を算出し、計算対象を計算対象記憶部１０１に記憶する（ステップＡ４２）。なお、実施例１のように、除外文字記憶部２００を用いないように構成しても構わない。
類似度計算部１０３は、上述の実施例と同様に、計算対象記憶部１０１に記憶された計算対象とテキスト記憶部１００に記憶されたテキストとに基づいて、類似度を計算し、計算した類似度を類似度記憶部３０２に記憶する（ステップＡ４３）。
制御部３０３は、分類処理の終了条件を満たすかを調べる（ステップＡ４４）。終了条件を満たすなら、処理を終了し、終了条件を満たさないなら、次のステップに進む。
選択部３０４は、次に、類似度記憶部３０２に記憶された類似度のうちで最大の類似度となるＩＤの組（ｐ，ｑ）を選択する（ステップＡ４５）。
併合部３０５は、まず、選択部３０４で選択したＩＤの組（ｐ，ｑ）に対して、類型番号記憶部３００の類型番号ｐの類型要素にｑを追加し、類型結果記憶部３０１の類型結果ｐに類型結果ｑを追加する（ステップＡ４６）。
併合部３０５は、次に、類型番号記憶部３００から類型番号ｑの行を削除し、合わせて、類型結果記憶部３０１から類型結果ｑの行を削除する（ステップＡ４７）。
併合部３０５は、次に、テキスト数Ｎをデクリメントする（ステップＡ４８）。
類似度更新部３０６は、まず、テキストのＩＤを示す番号であるｉを０に初期化する（ステップＡ４９）。
類似度更新部３０６は、次に、ｉとテキスト数Ｎとを比較する（ステップＡ５０）。ｉがＮ未満（ｉ＜Ｎ）なら、次のステップに移行し、ｉがＮ以上（ｉ≧Ｎ）なら、ステップＡ４４に戻る。
類似度更新部３０６は、次に、テキストのＩＤを示す別の番号であるｋを０に初期化する（ステップＡ５１）。
類似度更新部３０６は、次に、ｋとテキスト数Ｎとを比較する（ステップＡ５２）。ｋがＮ未満（ｋ＜Ｎ）なら、次のステップに移行し、ｋがＮ以上（ｋ≧Ｎ）なら、ステップＡ５７に移行する。
類似度更新部３０６は、次に、類型番号記憶部３００を参照して、ｋがｐの類型要素であるかを調べる（ステップＡ５３）。類型要素なら、次のステップに移行し、類型要素でないなら、ステップＡ５６に移行する。
類似度更新部３０６は、次に、計算対象記憶部１０１と類型番号記憶部３００を参照して、ｋの計算対象の中にｉの類型要素が含むかを調べる（ステップＡ５４）。含むなら、次のステップに移行し、含まないなら、ステップＡ５６に移行する。
類似度更新部３０６は、次に、ｐとｉの類似度を計算し、類似度記憶部３０２のｐとｉの類似度を更新する（ステップＡ５５）。
類似度更新部３０６は、次に、ｋをインクリメントし、ステップＡ５２に戻る（ステップＡ５６）。
類似度更新部３０６は、ｉに対して全てのテキストのＩＤを確認後、ｉをインクリメントし、ステップＡ５０に戻る（ステップＡ５７）。
本実施例によれば、クラスタに含まれるテキストでの個別情報とクラスタ全体の情報との両方を用いるため、高精度にテキストの類型化や検索を行うことができる。ここで、単純にクラスタ全体の情報を用いて、クラスタとして連結されたテキスト間での共通部分列の個数を計算すると、多くのテキストが連結されたクラスタの方がそうでないクラスタより、文字列長が長く、共通文字列が多く抽出されがちとなり、計算対象になりやすくなる。したがって、ある１つのクラスタに要素が順に１つずつ吸収されて巨大クラスタが生成されるチェイニングが起きやすくなる。チェイニングが起きると、クラスタ数をいくつに指定しても、巨大な１つのクラスタとその他の要素１つずつのクラスタとに分類されてしまい、要素を正しく分類したことにならない。本実施例の文書分析システムは、クラスタとして連結されたテキスト間での共通部分列でなく、クラスタに含まれるテキスト間の共通部分列を用いるように構成されているため、チェイニングをより起こさずに、高精度にテキストを類型化することができる。
以上、本発明を、実施形態および複数の実施例を参照して説明したが、本発明は上記実施形態および実施例に限定されるものではない。本発明の構成や詳細には、請求項に記載された本発明の精神や範囲内で当業者が理解し得る様々な変更をすることができる。
尚、文書分析システムの各部は、ハードウェアとソフトウェアの組み合わせを用いて実現すればよい。ハードウェアとソフトウェアとを組み合わせた形態では、ＲＡＭに文書分析用プログラムが展開され、プログラムに基づいてＣＰＵ等のハードウェアを動作させることによって、各部を動作させる。また、前記プログラムは、記憶媒体に記録されて頒布されても良い。当該記録媒体に記録されたプログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
また、上記の実施形態の一部又は全部は、以下のようにも記載されうる。尚、以下の付記は本発明をなんら限定するものではない。
［付記１］
２つのテキストに共通した文字列を抽出し、抽出した共通の文字列の個数に基づいて前記２つのテキストを計算対象とするかどうかを判定する共通文字列計算部と、
２つのテキストが前記共通文字列計算部によって判定された計算対象であるならコルモゴロフ複雑性の概算を用いて類似度を計算し、計算対象でないなら、前記２つのテキストの類似度を０とする類似度計算部と、
を備えることを特徴とする文書分析システム。
［付記２］
前記共通文字列計算部は、前記２つのテキストに予め定めた文字列長の共通文字列が予め定めた数以上に存在するなら、計算対象と判定し、それ以外なら、計算対象としないと判定することを特徴とする上記付記記載の文書分析システム。
［付記３］
前記共通文字列計算部は、予め定めた除外文字を含まない共通文字列のみを抽出することを特徴とする上記付記記載の文書分析システム。
［付記４］
前記共通文字列計算部は、予め定めた除外文字を特殊文字に変換してから、テキストを順に走査して、特殊文字を含まない共通文字列のみを抽出することを特徴とする上記付記記載の文書分析システム。
［付記５］
複数のテキストに対し、１個のテキストを含むそれぞれの集合をそれぞれのクラスタとし、
前記類似度計算部は、
クラスタに含まれるテキスト間の類似度をクラスタ間の類似度として計算し、以降の処理を予め定めた終了条件を満たすまで繰返すよう制御する制御部と、
クラスタ間の類似度に基づいて２つのクラスタを選択する選択部と、
選択した２つのクラスタを併合する併合部と、
２つのクラスタに対し、クラスタに含まれるそれぞれのテキスト間の共通文字列に基づいて、２つのクラスタを計算対象とするかどうかを判定し、計算対象なら、一方のクラスタに含まれるテキストを順に並べたテキストともう一方のクラスタに含まれるテキストを順に並べたテキストとの間の類似度をコルモゴロフ複雑性の概算を用いて計算して２つのクラスタ間の類似度とし、計算対象でないなら、０を２つのクラスタの類似度とする類似度更新部と、
を備えることを特徴とする上記付記記載の文書分析システム。
［付記６］
２つのテキストに共通した文字列を抽出し、抽出した共通の文字列の個数に基づいて２つのテキストを計算対象とするかどうかを判定する共通文字列計算ステップと、
２つのテキストが前記ステップによって判定された計算対象ならコルモゴロフ複雑性の概算を用いて類似度を計算し、計算対象でないなら、２つのテキストの類似度を０とする類似度計算ステップと、
を有することを特徴とする文書分析方法。
［付記７］
前記共通文字列計算ステップでは、前記２つのテキストに予め定めた文字列長の共通文字列が予め定めた数以上に存在するなら、計算対象と判定し、それ以外なら、計算対象としないと判定することを特徴とする上記付記記載の文書分析方法。
［付記８］
前記共通文字列計算ステップ部では、予め定めた除外文字を含まない共通文字列のみを抽出することを特徴とする上記付記記載の文書分析方法。
［付記９］
前記共通文字列計算ステップでは、予め定めた除外文字を特殊文字に変換してから、テキストを順に走査して、特殊文字を含まない共通文字列のみを抽出することを特徴とする上記付記記載の文書分析方法。
［付記１０］
複数のテキストに対し、１個のテキストを含むそれぞれの集合をそれぞれのクラスタとするステップと、
クラスタに含まれるテキスト間の類似度をクラスタ間の類似度として計算し、以降の処理を予め定めた終了条件を満たすまで繰返すよう制御するステップと、
クラスタ間の類似度に基づいて２つのクラスタを選択するステップと、
選択した２つのクラスタを併合するステップと、
２つのクラスタに対し、クラスタに含まれるそれぞれのテキスト間の共通文字列に基づいて、２つのクラスタを計算対象とするかどうかを判定し、計算対象なら、一方のクラスタに含まれるテキストを順に並べたテキストともう一方のクラスタに含まれるテキストを順に並べたテキストとの間の類似度をコルモゴロフ複雑性の概算を用いて計算して２つのクラスタ間の類似度とし、計算対象でないなら、０を２つのクラスタの類似度とするステップと、
を有することを特徴とする上記付記記載の文書分析方法。
［付記１１］
２つのテキストに共通した文字列を抽出し、抽出した共通の文字列の個数に基づいて２つのテキストを計算対象とするかどうかを判定する共通文字列計算処理と、
２つのテキストが前記共通文字列計算処理によって判定された計算対象ならコルモゴロフ複雑性の概算を用いて類似度を計算し、計算対象でないなら、２つのテキストの類似度を０とする類似度計算処理と、
をコンピュータに実行させることを特徴とする文書分析プログラム。
［付記１２］
前記共通文字列計算処理では、前記２つのテキストに予め定めた文字列長の共通文字列が予め定めた数以上に存在するなら、計算対象と判定し、それ以外なら、計算対象としないと判定させることを特徴とする上記付記記載の文書分析プログラム。
［付記１３］
前記共通文字列計算処理では、予め定めた除外文字を含まない共通文字列のみを抽出させることを特徴とする上記付記記載の文書分析プログラム。
［付記１４］
前記共通文字列計算処理では、予め定めた除外文字を特殊文字に変換してから、テキストを順に走査して、特殊文字を含まない共通文字列のみを抽出させることを特徴とする上記付記記載の文書分析プログラム。
［付記１５］
複数のテキストに対し、１個のテキストを含むそれぞれの集合をそれぞれのクラスタに分類処理とし、
前記類似度計算処理では、
クラスタに含まれるテキスト間の類似度をクラスタ間の類似度として計算し、以降の処理を予め定めた終了条件を満たすまで繰返すよう制御する処理と、
クラスタ間の類似度に基づいて２つのクラスタを選択する処理と、
選択した２つのクラスタを併合する処理と、
２つのクラスタに対し、クラスタに含まれるそれぞれのテキスト間の共通文字列に基づいて、２つのクラスタを計算対象とするかどうかを判定し、計算対象なら、一方のクラスタに含まれるテキストを順に並べたテキストともう一方のクラスタに含まれるテキストを順に並べたテキストとの間の類似度をコルモゴロフ複雑性の概算を用いて計算して２つのクラスタ間の類似度とし、計算対象でないなら、０を２つのクラスタの類似度とする処理と、
を実行させることを特徴とする上記付記記載の文書分析プログラム。
この出願は、２０１０年８月２４日に出願された日本出願特願２０１０−１８６８６６号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００１３】
１１    記憶部
１２    計算部
２１    記憶部
２２    計算部
３１    記憶部
３２    計算部
１００  テキスト記憶部
１０１  計算対象記憶部
１０２  共通文字列計算部
１０３  類似度計算部
２００  除外文字記憶部
２０１  共通文字列計算部
３００  類型番号記憶部
３０１  類型結果記憶部
３０２  類似度記憶部
３０３  制御部
３０４  選択部
３０５  併合部
３０６  類似度更新部
【図１】
0005862893.tif 000002
【図２】
0005862893.tif 000003
【図３】
0005862893.tif 000004
【図４】
0005862893.tif 000005
【図５】
0005862893.tif 000006
【図６】
0005862893.tif 000007
【図７】
0005862893.tif 000008
【図８】
0005862893.tif 000009
【図９】
0005862893.tif 000010
【図１０】
0005862893.tif 000011
【図１１】
0005862893.tif 000012
【図１２】
0005862893.tif 000013
【図１３】
0005862893.tif 000014
【図１４】
0005862893.tif 000015
【図１５】
0005862893.tif 000016
【図１６】
0005862893.tif 000017
【図１７】
0005862893.tif 000018