(57)【特許請求の範囲】
【請求項１】
文字あるいは文字の集合である要素の階層関係が定義された階層情報を記憶する記憶部と、テキスト情報を解析する制御部とを有するテキスト解析装置で実行されるテキスト解析プログラムであって、
該制御部に、
該テキスト情報から要素に分解した要素情報を取得するステップ、
該テキスト情報から該要素情報が共起する要素情報の組を求めるステップ、
該要素情報の組に含まれる各要素が該階層情報に含まれているときに該要素の階層関係を検出するステップ、
該要素情報の組の情報に該検出した該要素の階層関係を示し、該共起する関係および該階層関係になる該要素情報の間を線で結合し、該要素情報毎の該共起関係の線と該階層関係の線とを区別した情報を付加するステップ、
該テキスト情報内で該要素情報と該階層情報内の要素情報とが共起するときに該階層情報内の要素情報の階層に該要素情報を対応づけることで該要素の階層関係を示す情報を求めるステップ、
を実行させることを特徴とするテキスト解析プログラム。
【請求項２】
該制御部に、該要素情報内の文字を包含する関係によって該要素の階層関係を示す情報を求めるステップを更に実行させることを特徴とする請求項１に記載のテキスト解析プログラム。
【請求項３】
該テキスト情報を解析した結果の情報は、該共起する関係および該階層関係になる該要素情報の間を線で結合し、該要素情報毎の該共起関係の線と該階層関係の線とを区別したネットワーク図であることを特徴とする請求項１に記載のテキスト解析プログラム。
【請求項４】
該制御部に、該要素情報毎の共起の関係を線で表示したネットワーク図を作成するステップ、該線に該要素情報の階層関係を示す矢印を付加するステップ、を更に実行させることを特徴とする請求項１に記載のテキスト解析プログラム。
【請求項５】
該制御部に、該要素情報毎の共起の関係を線で表示したネットワーク図を作成するステ
ップ、該ネットワーク図上の該要素情報の階層間の距離に応じて該線の種類を変えて表示するステップを更に実行させることを特徴とする請求項１に記載のテキスト解析プログラム。
【請求項６】
テキスト情報を解析するテキスト解析方法であって、
テキスト解析装置が、
該テキスト情報から要素に分解した要素情報を取得し、
該テキスト情報から該要素情報が共起する要素情報の組を求め、
該要素情報の組に含まれる各要素が文字あるいは文字の集合である要素の階層関係を予め記憶した階層情報に含まれているときに該要素の階層関係を検出し
該要素情報の組の情報に該検出した該要素の階層関係を示し、該共起する関係および該階層関係になる該要素情報の間を線で結合し、該要素情報毎の該共起関係の線と該階層関係の線とを区別した情報を付加し、
該テキスト情報内で該要素情報と該階層情報内の要素情報とが共起するときに該階層情報内の要素情報の階層に該要素情報を対応づけることで該要素の階層関係を示す情報を求める
ことを特徴とするテキスト解析方法。
【請求項７】
テキスト情報を解析するテキスト解析装置であって、
文字あるいは文字の集合である要素の階層関係が定義された階層情報を記憶する記憶部と、
該テキスト情報から要素に分解した要素情報を取得し、該テキスト情報から該要素情報が共起する要素情報の組を求め、該要素情報の組に含まれる各要素が該階層情報に含まれているときに該要素の階層関係を検出し、該要素情報の組の情報に該検出した該要素の階層関係をし、該共起する関係および該階層関係になる該要素情報の間を線で結合し、該要素情報毎の該共起関係の線と該階層関係の線とを区別した情報を付加し、該テキスト情報内で該要素情報と該階層情報内の要素情報とが共起するときに該階層情報内の要素情報の階層に該要素情報を対応づけることで該要素の階層関係を示す情報を求める制御部とを
有することを特徴とするテキスト解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストマイニング技術に関する。
【背景技術】
【０００２】
テキストマイニング技術は、テキスト情報群が含む文字あるいは文字の集合である要素（以下、ノードという）を抽出し、ノードの出現頻度や相関関係を分析してテキスト情報群全体が持つ有用な情報を抽出する技術である。テキストマイニング技術の解析手法の一つには、テキスト解析結果情報としてノード間の関係を示すネットワーク図（以下、情報マップとする）を出力するものがある。情報マップは、各ノード間の関係を共起の関係で示す。例えば、二つのノードがテキスト情報内に含まれているときに、その二つのノード間に共起の関係があるとする。また、ノードが共起する回数に応じてテキスト情報群内のノード間の関係の強さを知ることができる。
【０００３】
従来技術として下記の文献がある。
【特許文献１】特開２００４−０２１９１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、ノード間の共起の関係の情報に加えて、ノード間の共起の以外の関係の情報を表示する技術を提供することである。
【課題を解決するための手段】
【０００５】
第一の解決手段は、文字あるいは文字の集合である要素の階層関係が定義された階層情報を記憶する記憶部と、テキスト情報を解析する制御部と、を有するテキスト解析装置で実行されるテキスト解析プログラムであって、制御部に、テキスト情報から要素に分解した要素情報を取得するステップ、テキスト情報から要素情報が共起する要素情報の組を求めるステップ、要素情報の組に含まれる各要素が階層情報に含まれているときに要素の階層関係を検出するステップ、要素情報の組の情報に検出した要素の階層関係を示し、該共起する関係および該階層関係になる該要素情報の間を線で結合し、該要素情報毎の該共起関係の線と該階層関係の線とを区別した情報を付加するステップ、該テキスト情報内で該要素情報と該階層情報内の要素情報とが共起するときに該階層情報内の要素情報の階層に該要素情報を対応づけることで該要素の階層関係を示す情報を求めるステップ、を実行させることを特徴とする。
【０００６】
第二の解決手段は、第一の解決手段に加えて、制御部に、要素情報内の文字を包含する関係によって要素の階層関係を示す情報を求めるステップを更に実行させることを特徴とする。
【０００７】
第三の解決手段は、第一の解決手段に加えて、制御部に、テキスト情報内で要素情報と階層情報内の要素情報とが共起するときに階層情報内の要素情報の階層に要素情報を対応づけることで要素の階層関係を示す情報を求めるステップを更に実行させることを特徴とする。
【０００８】
第四の解決手段は、第一の解決手段のテキスト情報を解析した結果の情報は、共起する関係および階層関係になる要素情報の間を線で結合し、要素情報毎の共起関係の線と階層関係の線とを区別したネットワーク図であることを特徴とする。
【０００９】
第五の解決手段は、第一の解決手段に加えて、制御部に、要素情報毎の共起の関係を線で表示したネットワーク図を作成するステップ、線に要素情報の階層関係を示す矢印を付加するステップ、を更に実行させることを特徴とする。
【００１０】
第六の解決手段は、第一の解決手段に加えて、制御部に、要素情報毎の共起の関係を線で表示したネットワーク図を作成するステップ、ネットワーク図上の要素情報の階層間の距離に応じて線の種類を変えて表示するステップを更に実行させることを特徴とする。
【発明の効果】
【００１１】
本発明により、求めた共起の関係と意味の階層の関係と区別した情報マップを作成することができ、ノード間の共起の関係の情報に加えて、ノード間の共起の以外の関係の情報を表示する技術を提供することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を説明する。まず、以下を定義する。
【００１３】
ノードは、テキスト情報の文字あるいは文字の集合である情報要素である。情報要素は、形態素解析技術等によりテキスト情報から抽出された単語、複数の単語を含む句などである。例えば、特許文献の場合には、文章中の単語や句のほかに、出願番号、出願人、発明者、国際特許分類（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｐａｔｅｎｔ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ（以下ＩＰＣとする））、ファイルインデックス（以下ＦＩとする）などのデータ項目あるいは書誌情報も情報要素として取り扱う場合もある。以降では、句やデータ項目や書誌情報を合わせた情報要素の全体を単語と呼ぶことにする。
【００１４】
テキスト情報は、分析する対象である。例えば、テキスト情報は特許文献であり、テキスト情報群は複数の特許文献の集合である。テキストファイルは、テキスト情報が格納されるファイルである。
【００１５】
情報マップはテキスト解析結果情報である。情報マップはテキスト情報内の単語、単語間の関係を図として表示したものである。情報マップは、テキストファイル群を対象とする検索、分析に役立つ。情報マップを用いた分析は、例えば、特許や文献（論文）の検索・分析支援システムなどに利用する。テキストファイル群が例えば特許文献である場合を説明する。情報マップの表示対象が特許文献群のキーワード（単語等）である場合、情報マップは特許文献群の主要トピックを示すマップとなる。情報マップの表示対象がＩＰＣ（特許分類）である場合、情報マップは特許文書群の技術分野の依存関係を示すマップとなる。情報マップの表示対象が発明者である場合、情報マップは共同発明をした発明者の人脈を示すマップとなる。以上のように、利用者は、情報マップの表示対象を切り替えることによって大量のテキストファイル群の概要の情報を容易に把握することが可能となる。
【００１６】
エッジは、情報マップを表示する時にノード間を接続することにより、ノード間の関係を表す線である。
【００１７】
次に、本実施例を適用した情報マップの作成の概要について説明する。図１は、本実施例を適用して作成した情報マップの例である。本実施例の情報マップは、複数のテキストファイルを対象とする。まず、複数のテキストファイル内のノードの共起の関係情報を求める。共起とは、テキストファイル内で複数のノードが同時に出現することである。例えば、テキストファイルが特許文献である場合、「発明」という言葉と「技術」という言葉は、同時に出現する場合が多い。
【００１８】
また、ノード間の意味の関係情報を取得する。そして、共起の関係情報に応じてノード間を線で結び、ノード間の意味の関係情報により表示を変更して情報マップを作成する。
【００１９】
１００は本実施例の情報マップである。「Ａ１」、「Ａ２」、・・・、「Ｂ１」、・・・、「Ｅ３３」は、ノードである。情報マップ１００は、二次元平面上にノードを配置し、ノード間を線で結ぶ。１０１は共起関係を結ぶエッジ（以下共起エッジとする）である。図１では、共起エッジ１０１は実線であり、ノード「Ａ１」とノード「Ｄ１」、および、ノード「Ａ３」とノード「Ｃ１」とが共起関係を示す。
【００２０】
１０２はノード間に意味の関係があることを示すエッジ（以下意味エッジとする）である。意味の関係は、例えば、意味を階層化した階層関係である。階層関係は、ノード間の意味の上位あるいは下位の関係、ノード間の意味の部分あるいは全体の関係、ノード間の同義の関係、ノード間の類義の関係などによってノードを分類した関係である。単語の階層関係の情報は、例えば、シソーラスがある。階層関係は、共起関係とは独立した関係である。
【００２１】
データ項目の階層関係では、例えば、ＩＰＣがある。ＩＰＣは、上位と下位あるいは同一階層のような階層の関係が予め定義されている。データ項目のＩＰＣの解析では、例えば、階層的に近いＩＰＣのペアが共起しているのは余り情報量がない（自明である）と判断できる。一方、階層的に遠いＩＰＣのペアが共起しているのは、遠い概念を結びつける特別な関係を持っている、といった判断をすることができる。
【００２２】
図１の情報マップ１００によって、ノードのつながりが、共起のみの関係であるのか、意味のつながりを含む関係であるのかがエッジの表示によって明確になる。その結果、共起関係で作成された情報マップよりも可読性が高く、情報量が多い情報マップを作成することができる。本実施例の情報マップは、テキストファイル群の検索や分析の精度の向上や手間の軽減に寄与することができる。
【００２３】
以下、本実施例を詳細に説明する。本実施例の情報処理装置の構成を説明する。図２は、情報処理装置の装置構成図である。１は情報処理装置である。情報処理装置１は、情報マップを作成する機能を実現する装置である。情報処理装置１は、制御部２、入力部３、出力部４、メモリ５、および記憶部６を有し、それぞれがバス９で接続される。
【００２４】
制御部２は情報処理装置１の全体を制御する。例えば、中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ））である。制御部２はメモリ５に展開されたテキスト解析プログラム７を実行する。テキスト解析プログラム７は制御部２で実行されることにより、情報処理装置１は情報マップを作成する処理を実現する。制御部２は、ノード間の意味の階層関係と共起関係とを組み合わせた情報マップを作成する。本実施例では、共起関係がベースとなる情報マップに階層関係を付加した情報マップを作成する例について説明する。情報マップの作成では、制御部２は、階層情報の処理、階層関係と共起関係とを組合せる処理を実行する。
【００２５】
図３は、制御部２が実行するテキスト解析プログラム７の基本処理の構成である。本実施例の制御部２は、テキストファイル群からノードとなる情報要素を抽出し、共起関係を集計する処理（Ｓｙ１）、ノード間の意味の階層関係を検出する処理（Ｓｙ２）、共起関係のノード情報を間引く処理（Ｓｙ３）、情報マップ表示する表示処理（Ｓｙ４）を実行する。制御部２は、以上の処理によって、階層関係と共起関係を組み合わせた情報マップを作成する。
【００２６】
入力部３は、制御部２に与える種々の命令を受付ける。入力部３は、例えば、キーボード、マウス、タッチパネル、イメージスキャナ等である。また、命令は、ネットワークを経由して取得する場合もある。
【００２７】
出力部４は、作成した情報マップを画面に表示する。出力部４は、例えば、ディスプレイ等に接続する。
【００２８】
メモリ５は、制御部２で実行するテキスト解析プログラム７が展開される記憶領域である。メモリ５は、制御部２の演算結果などのデータも格納する。メモリ５は、例えば、ランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ））である。
【００２９】
記憶部６は例えばハードディスク装置である。記憶部６は、テキスト解析プログラム７、ノード間の意味の階層情報テーブル、テキスト情報等を記憶する。
【００３０】
次に、図３のｓｙ１乃至ｓｙ４の各処理について説明する。
【００３１】
制御部２は、共起関係取得処理ｓｙ１で、以下の処理を実行する。制御部２は、テキストファイルを読み込む。制御部２は、テキストファイルから、文書を構成するノードを抽出する。抽出処理は周知な技術を使用する。制御部２は、テキストファイルから抽出されたノードの統計情報を解析する。具体的には制御部２は文書中の各ノード間の共起の関係を算出する。制御部２は算出結果を単語テーブル１０に格納する。
【００３２】
図４は、単語テーブル１０の構成例である。単語テーブル１０は、テキストファイルに含まれる各単語間の関連情報を保持する。関連を持つ一方の単語としての第一の単語と、他方の単語としての第二の単語と、第一の単語と第二の単語の共起回数をデータ項目として有する。１１は、単語テーブル１０の行の項目であり、第一の単語である。１２は単語テーブルの列の項目であり、第二の単語である。第一の単語の行と第二の単語の列とが交わる項目１３に共起した回数が格納される。単語テーブル１０の第一の単語１１および第二の単語１２はＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆとある。これは便宜上単語をアルファベットとして表現しているだけであり、実際はいわゆる単語が格納される。
【００３３】
次に、制御部２が実行する階層関係検出処理ｓｙ２を説明する。階層関係検出処理ｓｙ２は種々の方法があるが、以下の４種類の方法を説明する。第一の方法は、予め有する階層関係のテーブルを使用する。第二の方法は、ノードとなる情報要素の文字列の重なりを利用して、制御部２が階層関係を自動判定する。第三の方法は、ノードで検索できる文書群の包含関係を利用して、制御部２が階層関係を自動判定する。第四の方法は、制御部２が、階層構造が判断できる他の情報にマッピングして、階層関係を自動判定する。
【００３４】
第一の方法について説明する。図５は第一の方法のフローチャートである。制御部２は以下の処理を実行することによって、単語テーブル１０にノードの意味の階層関係の情報を付加する。まず、制御部２は、階層情報を読み込む（Ｓ０１）。制御部２は、階層関係を定義した情報を読み込む。第一の方法では、予め階層関係を定義した情報があるものとする。図６は階層関係を定義した階層情報の例である。
【００３５】
２０は階層情報である。階層情報２０はノードが階層付けられている。２１は、複数のノードで構成されるノード群である。「Ａ１」、「Ａ１１」、「Ａ１２」、「Ａ１３」、「Ａ１３１」、「Ａ１３２」等は、個々のノードである。ノード群２１は、複数の階層で構成される。ノード群２１では、ノードＡ１は最上位であり、ノードＡ１の下位のノードとしてノードＡ１１、ノードＡ１２、ノードＡ１３、ノードＡ１４、ノードＡ１５等がある。また、ノードＡ１３の下位のノードとしてノードＡ１３１、ノードＡ１３２がある。
ノードＡ１１、ノードＡ１２、ノードＡ１３、ノードＡ１４、およびノードＡ１５は、ノードＡ１に対して一つ階層が下位である。ノードＡ１１、ノードＡ１２、ノードＡ１３、ノードＡ１４、およびノードＡ１５の階層が同じである場合、これらのノードは間接的な階層関係である。Ａ１が親である場合、ノードＡ１１、ノードＡ１２、ノードＡ１３、ノードＡ１４、およびノードＡ１５はＡ１に対する子である。よってノードＡ１１、ノードＡ１２、ノードＡ１３、ノードＡ１４、およびノードＡ１５は、兄弟の関係でなる。
【００３６】
ノード群２１の個々のノードは意味の関係がある。本実施例の階層の上位はノードの意味が広義であり、階層の下位はノードの意味が狭義であるとする。例えば、化学反応のノード、光化学反応のノードがあるとする。化学反応は、光化学反応よりも広い意味である。したがって、化学反応と光化学反応とは意味の関係で階層構造をとる。
【００３７】
２２は、ノード群２１の一例であるＩＰＣ群である。ＩＰＣのＢ２５Ｊ５／００は、下位にＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＺがある。Ｂ２５Ｊ５／００の直下の階層にＢ２５Ｊ５／００＠Ａ、Ｂ、Ｃ、Ｅ、およびＺがある。Ｂ２５Ｊ５／００＠Ｃの直下の階層にＢ２５Ｊ５／００＠Ｄ，Ｆがある。ＩＰＣ群２２の階層の関係は記号のみでは、検出することはできない。したがって、予め、階層情報２０を取得する必要がある。
【００３８】
次に制御部２は、ノード間の階層関係を把握できる階層テーブルを作成する（Ｓ０２）。図７は階層テーブルの構成例である。３０は階層テーブルである。階層テーブル３０は図６の階層情報２０をテーブル化したものである。２１１は、階層情報２０のノード群２１を列方向に記載した列項目である。２１２は、階層情報２０のノード群２１を行方向に記載した行項目である。行項目２１２と列項目２１１との階層関係は、階層テーブル３０の行項目２１２と列項目２１１とが交わるセルに格納される。
【００３９】
セルに格納される情報は、直接の上位の関係、上位の関係、直接の下位の関係、下位の関係、同じ位の関係（兄弟関係）、階層情報２０に共起する関係等に分類される。図７では、「１」が直接の上位の関係、「２」が上位の関係、「３」が直接の下位の関係、「４」が下位の関係、「５」が同じ階層の関係、「６」が階層情報２０に共起する関係であるとする。
【００４０】
次に、制御部２は、情報マップテーブルを作成する（Ｓ０３）。情報マップテーブルは単語テーブル１０と階層テーブル３０とを合成したテーブルであり、項目間の共起関係と意味の階層関係とが格納されたテーブルである。図８は情報マップテーブルの構成例である。
【００４１】
４０は、情報マップテーブルである。１１は、情報マップテーブル４０の列項目である。列項目１１は単語テーブル１０の列項目１１と同じである。１２は、情報マップテーブル４０の行項目である。行項目１２は単語テーブル１０の行項目１２と同じである。１３は、情報マップテーブル４０の第一の項目である。第一の項目１３には、単語テーブルの項目１３と同内容が格納される。１４は、情報マップテーブル４０の第二の項目である。第二の項目１４には、項目１３の列項目１１と行項目１２との間の意味の階層関係が格納される。
【００４２】
具体的には、制御部２は、下記の処理を実行して情報マップテーブル４０を作成する。制御部２は、単語テーブル１０を展開する。制御部２は、単語テーブル１０の列項目１１と行項目１２とからなるノードの関係と合致するノードの関係を階層テーブル３０から検出する。制御部２は、検出したノード間の意味の階層の関係を情報マップテーブル４０の第二の項目１４に格納する。
【００４３】
以上によって、制御部２は情報マップテーブル４０を作成することができる。
【００４４】
次に、第二の方法について説明する。第二の方法は、ノードとなる情報要素の文字列の重なりを利用して、制御部２が階層関係を自動判定する。制御部２は、共起テーブル１０に格納された各ノードについて、以下の判定処理を実行する。図９は第二の方法のフローチャートである。
【００４５】
制御部２は、共起テーブル１０の各ノードについて図９のフローチャートの処理を実行する。まず、制御部２は、共起テーブル１０から第一のノードと第二のノードを取り出す。制御部２は第一のノードと第二のノードとを比較する（Ｓ１１）。制御部２は、第一のノードが第二のノードを完全に包含するか否かを判定する（Ｓ１２）。第一のノードが第二のノードを完全に包含する場合（Ｓ１２：Ｙｅｓ）、制御部２は第二のノードが上位の階層であると判定する（Ｓ１３）。一方、第一のノードが第二のノードを完全には包含しない場合（Ｓ１２：Ｎｏ）、制御部２は第二のノードが第一のノードを完全に包含するか否かを判定する（Ｓ１４）。第二のノードが第一のノードを完全に包含する場合（Ｓ１４：Ｙｅｓ）、制御部２は、第一のノードが上位の階層であると判定する（Ｓ１５）。一方、第二のノードが第一のノードを完全には包含しない場合（Ｓ１４：Ｎｏ）、制御部２は第一のノードおよび第二のノードの間で重なる文字列があるか否かを判定する（Ｓ１６）。
【００４６】
ノード間で重なる文字列がある場合（Ｓ１６：Ｙｅｓ）、制御部２はノード間が兄弟の関係であると判定する。一方、ノード間で重なる文字列がない場合（Ｓ１６：Ｎｏ）、制御部２は、第一のノードと第二のノードとの間は意味の関係は無いと判定する。
【００４７】
図９の例を説明する。例えば、ＩＰＣであれば、ノード「Ｇ０６Ｆ１７」はノード「Ｇ０６Ｆ１７／３０」に完全に包含される。制御部２はノード間を上位あるいは下位の関係として判断する。また、ノード「Ｇ０６Ｆ１７／２０」とノード「Ｇ０６Ｆ１７／３０」とは、ノードの一部の文字列が重なる。したがって、制御部２は、同一の階層内の兄弟関係であると判定する。
【００４８】
なお、第二の方法では、制御部２は、ＩＰＣの定義では上位下位の関係にある「Ｇ０６Ｆ１７／２０」と「Ｇ０６Ｆ１７／２１」との間の関係を兄弟関係と誤って判断してしまう場合がある。しかし、第二の方法に拠れば、制御部２は外部からの階層情報を有さずとも、階層関係を近似して抽出することが可能になる。
【００４９】
ノードがＩＰＣのようなコード情報である場合、文字列の前方部分一致で判断する方法が考えられる。一方、ノードがキーワード情報である場合、前方部分一致ではなく、単純な部分一致あるいは後方部分一致を用いることが可能である。例えば、ノード「燃料電池」はノード「固体高分子型燃料電池」に完全に包含される。制御部２はノード「燃料電池」はノード「固体高分子型燃料電池」の上位の関係であると判定する。ノード「燃料電池」とノード「固体高分子型燃料電池」との比較は単純な部分一致あるいは後方部分一致を用いる。
また、例えば、ノード「固体酸化物型燃料電池」とノード「固体高分子型燃料電池」とは、ノード内の文字列の一部が重なる。よって、制御部２はノード「固体酸化物型燃料電池」とノード「固体高分子型燃料電池」とは兄弟関係であると判断する。
【００５０】
また、兄弟の関係となるか否かを判別する閾値として、ノード内の文字列が重なる割合を予め定義しておくことも可能である。
【００５１】
次に、第三の方法について説明する。第三の方法は、制御部２は文書群からノードを検索した結果の包含関係を利用して階層関係を判定する。制御部２は、共起テーブル１０に格納された各ノードでテキストファイル群を検索する。制御部２は、検索結果を用いて以下の判定処理を実行する。検索結果は該当したテキストファイルの件数である。
図１０は第三の方法のフローチャートである。
【００５２】
制御部２は、共起テーブル１０の各ノードについて図１０のフローチャートの処理を実行する。まず、制御部２は、共起テーブル１０から各ノードによってテキストファイル群を検索する。制御部２が検索した結果をメモリに保持する。
【００５３】
制御部２は第一のノード（ノードＡ）の検索結果の集合ａと第二のノード（ノードＢ）の検索結果の集合ｂとを比較する（Ｓ２１）。制御部２は、集合ａが集合ｂを完全に包含するか否かを判定する（Ｓ２２）。集合ａが集合ｂを完全に包含する場合（Ｓ２２：Ｙｅｓ）、制御部２は第一のノードが上位の階層であると判定する（Ｓ２３）。一方、集合ａが集合ｂを完全には包含しない場合（Ｓ２２：Ｎｏ）、制御部２は集合ｂが集合ａを完全に包含するか否かを判定する（Ｓ２４）。集合ｂが集合ａを完全に包含する場合（Ｓ２４：Ｙｅｓ）、制御部２は、第二のノードが上位の階層であると判定する（Ｓ２５）。一方、集合ｂが集合ａを完全には包含しない場合（Ｓ２４：Ｎｏ）、制御部２は第一のノードおよび第二のノードに共通する上位のノードがあるか否かを判定する（Ｓ２６）。例えば、第三のノード（ノードＣ）があり、第三のノードの検索結果の集合ｃが集合ａおよび集合ｂを完全に包含する関係であるとする。制御部２は、集合ｃの関係を満たすノードを検索すればよい。制御部２は第三のノードを検出した場合、第一のノードと第二のノードとに共通する上位のノードがあると判定し（Ｓ２６：Ｙｅｓ）、制御部２はノード間が兄弟の関係であると判定する。一方、制御部２は第三のノードを検出できなかった場合（Ｓ２６：Ｎｏ）、制御部２は、第一のノードと第二のノードとの間は意味の関係は無いと判定する（Ｓ２８）。
【００５４】
図１０の例を説明する。例えば、ノードがＩＰＣの場合、ノード「Ｇ０６Ｆ１７／３０」の検索結果は、ノード「Ｇ０６Ｆ１７」の検索結果に完全に包含される。このような場合は、制御部２は、ノード「Ｇ０６Ｆ１７」をノード「Ｇ０６Ｆ１７／３０」ので上位である判定する。
【００５５】
また、例えば、ノード「チタン」を検索した結果、該当するテキストファイルが３００件あり、ノード「金属元素」を検索した結果、該当するテキストファイルが９００件あったとする。ノード「チタン」の３００件の検索結果がノード「金属元素」の９００件の検索結果に全て含まれている場合、ノード「金属元素」はノード「チタン」の上位の階層であるとみなす。
【００５６】
ただし、第三の方法では、制御部２はノード間の兄弟関係を直接的に判断することはできない。制御部２は、第一のノードおよび第二のノードの上位となる第三のノードを検出する処理を実行する。第三のノードがテキストファイル群から検出された場合、第一のノードと第二のノードとは兄弟の関係であると判定する。また、第一のノードが第二のノードの上位の関係であり、第二のノードが第三のノードの上位の関係である場合、第一のノードは第三のノードの上位である。
【００５７】
次に、第四の方法について説明する。第四の方法では、制御部２は対象のノードを階層構造が判断できる他の情報にマッピングして階層関係を自動判定する。第四の方法では、一部のノード情報についての階層情報がある状態である。階層情報は処理の対象のノードとは別のノードに対する情報である。階層は、階層情報内の各階層のノード情報によって判別する。階層情報のノード情報と処理の対象のノードとは例えば共起の割合の大きさによって対応付ける。
【００５８】
制御部２は、各階層のノード情報に処理の対象のノードを対応付ける。制御部２は、ノードが階層情報に対応付けられたときの上位下位の関係によってノードの上位下位を特定する。図１１は第四の方法のフローチャートである。
【００５９】
制御部２は、共起テーブル１０の各ノードについて図１１のフローチャートの処理を実行する。まず、制御部２は、共起テーブル１０から比較対象となるノードを取得する。
【００６０】
制御部２は第一のノード（ノードＡ）と階層情報の階層のノード情報（ノードＸ）とを対応付ける（Ｓ３１）。制御部２は、例えば、第一のノードと階層のノード情報とが共起する割合に応じて対応付ける。制御部２は、例えば、共起する割合が最大となる第一のノードと階層のノード情報とを対応付ける。
【００６１】
次に、制御部２は第二のノード（ノードＢ）と階層情報の階層のノード情報（ノードＹ）とを対応付ける（Ｓ３２）。制御部２は、ノードＸとノードＹとの間の階層の上位下位の関係を求める（Ｓ３３）。制御部２は、Ｓ３３で求めた階層情報の上位下位の関係を第一のノードと第二のノードとの間の関係に置換する（Ｓ３４）。
【００６２】
以上により、他の情報による階層関係を利用して、対象のノード間の階層関係を間接的に取得することが可能となる。
【００６３】
なお、制御部２は、第一の方法、第二の方法、および第三の方法によって、ノードとは別の階層情報を取得することが可能である。例えば、キーワード情報とＩＰＣなどのコード情報とは異なるカテゴリの文字列であることを判別する。制御部２はＩＰＣなどのコード情報の間の階層関係を求める。その後、制御部２は、コード情報から求めた階層情報からキーワードの階層関係を求める。
【００６４】
例えば、テキストファイル群が特許文献であり、階層情報がＦＩである場合を説明する。ＦＩは、国際特許分類（ＩＰＣ）を細展開した分類である。ノードＡがキーワード「二足歩行ロボット」である場合、ノードＸは、「二足歩行ロボット」に共起する割合が最も高いＦＩである「Ｂ２５Ｊ５／００＠Ｆ」になる。
【００６５】
以上、制御部２が実行する階層関係検出処理ｓｙ２を説明した。上記の４つの方法は、独立して行っても良いが、複数の方法を組み合わせることも可能である。
【００６６】
なお、上記のいずれの方法に関しても、直接の親子関係・兄弟関係だけではなく、間接的な関係（遠い親戚関係）も判定し、また、階層の木構造における距離（木構造を辿って到達するために必要なステップ）も判定するものとする。なお、階層関係の木構造の距離は、グラフ理論における最短路問題などを応用することにより、既知の技術を利用して求めることが可能である。
【００６７】
また、３以上のノードでは、制御部２は例えば以下の方法で上位下位の関係を求める。制御部２は、ノードＡとノードＢとの間で、ノードＡが上位でありノードＢが下位である関係を検出しているものとする。制御部２は、ノードＣがノードＡの下位にあり、ノードＣがノードＢの下位にある場合、ノードＣはノードＡの孫の関係であり、ノードＢの子の関係である。制御部２は、ノードＣがノードＡの上位にあり、ノードＣがノードＢの上位にある場合、ノードＣはノードＡの親の関係であり、ノードＢの大親の関係である。
制御部２は、ノードＣがノードＡの下位にあり、ノードＣがノードＢの上位にある場合、ノードＣはノードＡの子の関係であり、ノードＢの親の関係である。また、制御部２は、ノードＢをノードＡの孫の関係であると設定する。
制御部２は、ノードＣがノードＡの上位にあり、ノードＣがノードＢの下位にある場合、ノードＣはノードＡの親の関係であり、ノードＢの子の関係である。また、制御部２は、ノードＡをノードＢの孫の関係であると設定する。
【００６８】
次に、制御部２が実行する共起関係のノード情報の間引処理Ｓｙ３を説明する。間引き処理は、情報マップに全ての共起関係のノードが表示されると、情報が多すぎて見難いために実行する。間引処理Ｓｙ３は、既存技術を用いる。
【００６９】
例えば、制御部２は、共起関係となる情報やノード情報とテキストファイルとから求まる統計情報から各ノード間の関連度を計算する。
【００７０】
ノード間の関連度は、例えば、同一単位テキスト内でのノードの重要度の積の総和によって求める。単位テキストは、一つの段落や一つの記事等の意味のある文の集合とする。ノードの重要度は、単位テキストの集合におけるノードの重要度とする。単位テキストにおけるノードの重要度は、ノードの統計情報の関数によって求める。ノードの統計情報は、単位テキストにノードが出現する確率と全単位テキストの集合にノードが出現する確率又は、単位テキストにノードが出現する頻度とノードが出現する単位テキストの数等である。本実施例のノード間の関連度は、ノードが共起する数が多く、かつノードの重要度が大きいものが大きくなるものとする。
【００７１】
制御部２は、関連度の大きい関係情報だけを残してそれ以外を間引く。この結果、主要な関係だけが残る情報マップテーブルになる。
【００７２】
なお、制御部２は、間引処理ｓｙ３を実行するときに、関連度に階層関係の情報を反映させることも可能である。階層関係の情報が反映されることにより、情報マップに表示されるノードが変わる。利用者はテキストファイル群から検出したい情報に応じて、ノード間の意味の関係（階層関係）を間引き処理に適用するか否かを選択すればよい。
【００７３】
例えば、制御部２は、階層の木構造におけるノード間の距離を求める。制御部２は、距離の逆数と関連度との積を求める。この場合、階層が近いノード間の関係が優先的に残るような間引きが行われる。この結果、ノード間の階層関係（意味的な構造）が、より強く反映された情報マップを作成することができる。
【００７４】
一方、制御部２は、階層間の距離と関連度との積を求めることも可能である。この場合、階層が遠いノード間の関係が優先的に残るような間引きが行われる。この結果、異質な情報間を結び付けている特別な関係を強調したマップを作成することができる。
【００７５】
図１２、図１３および図１４は、ｓｙ１からｓｙ３までの処理によって作成される情報マップテーブルの具体例である。
【００７６】
図１２は、制御部２が共起テーブル１０を作成した状態である。
【００７７】
１０−２は共起テーブルである。１１−２は共起テーブル１０−２の列項目である。１２−２は共起テーブル１０−２の行項目である。制御部２は、既存の技術によって図１２の共起テーブル１０−２を作成する。
【００７８】
５０は、共起テーブル５０から求まる各ノードの間の関係である。
【００７９】
５１、５２、５３、および５４はノードである。各ノードは共起テーブル１０−２にあるノードである。ノード５１は「Ｂ２５Ｊ５／００」であり、ＦＩコードである。ノード５２は「Ｂ２５Ｊ５／００＠Ｃ」であり、ＦＩコードである。ノード５３は「Ｂ２５Ｊ５／００＠Ｄ」であり、ＦＩコードである。ノード５４は「脚式」であり、テキストファイルから検出したキーワード情報である。５５、５６、５７、５８、および５９はノード間を結ぶエッジである。各エッジは各ノード間の共起関係によって結ばれる。
【００８０】
図１３は、制御部２が共起テーブル１０−２と階層テーブルとを組み合わせた情報マップテーブルを作成した状態である。
【００８１】
４０−２は情報マップテーブルである。１１−３は列項目である。列項目１１−３は共起テーブル１０−２の列項目１１−２に対応する。１２−３は行項目である。行項目１２−３は共起テーブル１０−２の行項目１２−２に対応する。制御部２は、各ノード間の階層関係を共起テーブルに対応付ける。
【００８２】
５０−２は、情報マップテーブル４０−２から求まる各ノードの間の関係である。５１、５２、５３、および５４はノードである。各ノードは情報マップテーブル４０−２にあるノードである。
【００８３】
情報マップテーブルは、ノード間の意味の階層関係を示す情報を有する。５５−２、５６−２、および５７−２はノード間の意味の階層関係を示すエッジである。エッジは、ノード間の意味の上位と下位の関係がわかるように表示する。例えば、意味の階層関係を示すエッジは、矢印線とする。ノード５１がノード５２に対して上位の意味となる場合、エッジ５５−２はノード５１からノード５２に対する方向の矢印線となる。ノード５１がノード５３に対して上位の意味となる場合、エッジ５６−２はノード５１からノード５３に対する方向の矢印線となる。ノード５２がノード５３に対して上位の意味となる場合、エッジ５７−２はノード５２からノード５３に対する方向の矢印線となる。
意味の階層関係がないノード間は、各ノード間の共起関係を示すエッジ５８、およびエッジ５９によって結ばれる。
【００８４】
図１４は、制御部２が情報マップテーブル４０−２の項目の間引き処理を実行した後の状態である。
【００８５】
４０−３は、制御部２が情報マップテーブル４０−２について間引き処理を実行した後の情報マップテーブルである。１１−４は列項目である。列項目１１−４は共起テーブル１０−２の列項目１１−２に対応する。１２−４は行項目である。行項目１２−４は共起テーブル１０−２の行項目１２−２に対応する。制御部２は、情報マップに表示するエッジ、あるいはノードを間引き処理によって絞り込む。５０−３は、情報マップテーブル４０−３から求まる各ノードの間の関係である。状態５０−３は、状態５０−２に対して、エッジ５７−２およびエッジ５９が間引きされている。
次に、制御部２が実行する表示処理ｓｙ４について説明する。制御部２はノード間の共起関係と階層関係とを有する情報マップテーブル４０によって情報マップを作成する。
【００８６】
まず、制御部２は情報マップ上にノードを配置する位置情報、ノード間を接続するエッジの位置情報を求める。
【００８７】
制御部２は、情報マップ上にノードを配置する位置情報を計算する。制御部２は、スプリングレイアウトアルゴリズム等を利用して、ノードを情報マップに配置する。スプリングレイアウトアルゴリズムでは、制御部２はノード間を結ぶエッジの関連度の大きさによってノードの位置を求める。制御部２は、エッジをスプリングとみなす。制御部２は各スプリングの初期長さ及び強さをそれぞれのエッジに対応付けられる関連度に応じて決定する。制御部２は各ノード間で斥力が働くようにする。この結果、各ノードは、スプリングと化したエッジの張力及び初期長とノード間の斥力との関係が安定した位置に配置される。以上によって、制御部２は、ノードが配置され、かつ、ノード間がエッジで結ばれた情報マップを作成する。
【００８８】
次に制御部２は、情報マップに階層関係の情報を付加する。情報マップに階層関係の情報を付加するには、種々の方法がある。以下に、情報マップのエッジの表示を変更することで情報マップ上に階層関係の情報を示す方法を説明する。以下に３つの方法を示す。
【００８９】
第一の方法では、制御部２は階層関係の上位と下位とを示すエッジとして矢印線を用いる。例えば、ノードＡとノードＢとが上位と下位の関係である場合、共起関係で結ばれるエッジに矢印情報を付加する。制御部２は、矢印の方向を意味が上位のノードから下位のノードに結ぶ条件情報を予め有しておく。制御部は情報マップを作図する時に情報マップテーブルの階層関係情報に応じて、情報マップのエッジに矢印情報を付加する。
【００９０】
第二の方法では、制御部２は階層の直接の上位下位の関係、間接の上位下位の関係、兄弟の関係、あるいは単なる共起のみの関係をエッジの色あるいは線の形状の種類によって区別する。
【００９１】
制御部２は、例えば、予め階層関係の種類とエッジの形状の種類との関係を設定した情報を予め取得する。あるいは、制御部２は予め階層関係の種類とエッジの線の色との関係を設定した情報を予め取得する。制御部２は情報マップの作成時に、情報マップテーブル４０の階層関係情報に応じて、エッジの色、線の種類を決定する。エッジの形状は、例えば、線の太さ、実線、破線などの形状である。
【００９２】
図１は、第一の方法と第二の方法とを組み合わせた情報マップである。制御部２は、第一の方法により、ノード間の階層関係の上位・下位の関係を矢印の方向で示す。例えば、エッジ１０２−２は、ノードＡ１２とノードＡ１２３とを結ぶ。エッジ１０２−２の矢印は、ノードＡ１２からノードＡ１２３への向きである。したがって、Ａ１２はＡ１２３に対して意味が上位の階層であると判断する。なお、矢印の向きは逆でも良い。
【００９３】
また、制御部２は、ノード間の関係の種別（単なる共起関係、直近の上位・下位関係、間接的な上位・下位関係）を関係線の形状で示す。図１では、実線のエッジが共起関係のみを示し、破線のエッジが間接的な上位・下位関係を示し、点線のエッジが階層の直接の上位、下位の階層関係であることを示す。エッジ１０１は実線であるため共起関係である。従って、ノードＡ１とノードＤ１とは意味の階層関係はなく、共起でのみ結ばれる関係であることが判る。エッジ１０２は破線であるため間接的な上位・下位の関係である。エッジ１０２−２は点線であるため、直接的や上位・下位の関係である。
【００９４】
第三の方法では、制御部２は、ノードの意味の階層間の距離に応じてエッジの線の太さ、色を変更する。制御部２は、例えば、予め階層関係の距離とエッジの線の形状や色の種類との関係を設定した情報を予め取得する。制御部２は、ノードの意味の階層間の距離に応じてエッジの線の形状、色を決定する。
【００９５】
図１５はノードの意味の階層の距離に応じてエッジの太さを変更する場合の例である。
Ａ１、Ａ１１、Ａ１１１、Ａ１１１１、Ａ１２、Ａ１２１、Ａ１２１１はそれぞれノードである。ノードＡ１が最上位の階層であり、ノードＡ１の下位の階層にノードＡ１１とノードＡ１２があり、ノードＡ１１の下位の階層にノードＡ１１１とノードＡ１２１とがあり、ノードＡ１１１の下位の階層にノードＡ１１１１とノードＡ１２１１とがある。１１０−１、１１０−２、１１０−３、１１１、１１２、および１１３はエッジである。ノードＡ１とノードＡ２とを結ぶエッジ１１０−１は、一階層の上位下位の場合のエッジの太さで表示する。ノードＡ１とノードＡ１２とを結ぶエッジ１１１も、一階層の上位下位の場合のエッジの太さで表示する。ノードＡ１１とノードＡ１１１とを結ぶエッジ１１０−２は、一階層の上位下位の場合のエッジの太さで表示する。ノードＡ１とノードＡ１２１とは階層が二つはなれた関係である。したがって、階層が二だけ離れた場合のエッジの太さで表示する。ノードＡ１１１とノードＡ１１１１とを結ぶエッジ１１０−３は、一階層の上位下位の場合のエッジの太さでエッジ１１２を表示する。ノードＡ１とノードＡ１２１１とは階層が三はなれた関係である。したがって、階層が三だけ離れた場合のエッジの太さでエッジ１１３を表示する。
【００９６】
第四の方法では、複数の階層情報を組合せて適用する場合、各階層情報の最上位となるノードを他の階層から区別できる表示にする。
【００９７】
例えば、予め、情報マップテーブル４０は、階層情報の最上位となるノードについてチェックするフラグ有する構成とする。制御部２は、階層テーブル３０を作成するときに階層情報の階層とノードとを対応づける。制御部２は、情報マップテーブル４０を作成するときに階層の最上位となるノードにマークを付加する。
【００９８】
図１において、階層情報がＡ、Ｂ、Ｃ、Ｄ、およびＥであるとする。
Ａ１は、情報マップ１００の中でＡに関する階層情報の最上位のノードであるとする。
１０３は、ノードＡ１を階層情報の最上位であることを示すノードであることを区別するためのマークである。階層情報の最上位のノードが判るためノード間の関係がより明確となる。
【００９９】
第五の方法では、複数の階層情報を組合せて適用する場合、ノードが属する階層情報の区別できる表示にする。
【０１００】
例えば、予め、情報マップテーブル４０は、階層情報の種類を区別する情報を有する構成とする。制御部２は、情報マップテーブル４０を作成するときに使用した階層テーブル３０を対応づける。
【０１０１】
図１６は、階層情報の種類で区別をした情報マップの表示例である。１１１−１はＤの意味の階層情報に含まれるノードの集合である。１１１−２はＡの意味の階層情報に含まれるノードの集合である。意味の階層情報によって区分されるため、情報マップは、意味がつながるノードの範囲を示すことが可能となる。
【０１０２】
なお、図１６では、ノードではなく背景を領域で囲む表示としたが、ノードの文字を囲む矩形の色をノードが属する階層情報に応じて変更する構成とすることも可能である。また、制御部２は、矩形の枠内の色、矩形を形成する線の形状、ノードの文字列の色などをノードが属する階層情報に応じて変更する構成とすることも可能である。
【０１０３】
以上によって、制御部２はノードの位置、エッジの位置、エッジの色、形状を特定する。制御部２は特定したノードの位置、エッジの位置、エッジの色、形状によって情報マップを作成し、画面上に表示する。画面に表示された情報マップは、共起関係に加えて、ノード間の意味の階層の関係を読み取ることが可能である。
【０１０４】
以上の説明では、情報処理装置１の制御部２が情報マップ１００の作成を行う方式について説明した。情報マップ１００の作成をソフトウェアの機能で実現できれば、制御部２の実行に限定されない。
【０１０５】
本実施例が適用される以前の情報マップは、情報マップ上のノード間の意味の関係は考慮されていなかった。情報マップ上のノード間は互いに無関係であると想定されていた。しかし、実際には、ノード間は、共起関係から独立した意味の階層的な関係が存在する。
【０１０６】
本実施例を適用することで、ノード間の意味の階層関係と共起関係とを組み合せることが可能となる。意味の階層関係に含まれる共起関係で繋がる場合、利用者が当然に想到できる関係であるといえる。意味の階層関係とは異なる単なる共起関係で繋がる場合、利用者が当然に想到できる関係ではないといえる。本実施例によって、制御部２が作成した情報マップ上では、意味の階層関係に含まれる共起関係で繋がる場合と意味の階層関係とは異なる単なる共起関係で繋がる場合とが明示される。したがって、利用者は、通常、接続するとは想到できないノード間の関係を発見することが容易となる。この結果、共起関係のみの情報マップよりも可読性が高く、かつ情報量が多い情報マップを作成することが可能となる。例えばＩＰＣであれば、階層的に近いＩＰＣのペアが共起しているのは余り情報量がない（自明である）情報である。一方、階層的に遠いＩＰＣのペアが共起しているのは特別な意味を持っている、といった見方をすることができるようになる。特別な意味とは、例えば、従来の技術にはなかった新しい組合せによる技術等を意味する。
【図面の簡単な説明】
【０１０７】
【図１】本実施例を適用して作成した情報マップの例である。
【図２】情報処理装置の装置構成図である。
【図３】制御部２が実行するテキスト解析プログラム７の基本処理の構成である。
【図４】単語テーブル１０の構成例である。
【図５】第一の方法のフローチャートである。
【図６】階層関係を定義した階層情報の例である。
【図７】階層テーブルの構成例である。
【図８】情報マップテーブルの構成例である。
【図９】第二の方法のフローチャートである。
【図１０】第三の方法のフローチャートである。
【図１１】第四の方法のフローチャートである。
【図１２】制御部２が共起テーブル１０を作成した状態である。
【図１３】制御部２が共起テーブル１０−２と階層テーブルとを組み合わせた情報マップテーブルを作成した状態である。
【図１４】制御部２が情報マップテーブル４０−２の項目の間引き処理を実行した後の状態である。
【図１５】ノードの意味の階層の距離に応じてエッジの太さを変更する場合の例である。
【図１６】階層情報の種類で区別をした情報マップの表示例である。
【符号の説明】
【０１０８】
１  情報処理装置
２  制御部
３  入力部
４  出力部
５  メモリ
６  記憶部
７  テキスト解析プログラム
９  バス
【図１】
0005141152.tif 000002
【図２】
0005141152.tif 000003
【図３】
0005141152.tif 000004
【図４】
0005141152.tif 000005
【図５】
0005141152.tif 000006
【図６】
0005141152.tif 000007
【図７】
0005141152.tif 000008
【図８】
0005141152.tif 000009
【図９】
0005141152.tif 000010
【図１０】
0005141152.tif 000011
【図１１】
0005141152.tif 000012
【図１２】
0005141152.tif 000013
【図１３】
0005141152.tif 000014
【図１４】
0005141152.tif 000015
【図１５】
0005141152.tif 000016
【図１６】
0005141152.tif 000017