(57)【特許請求の範囲】
【請求項１】
コンピュータが実行する方法であって、
複数の順序付けられた単語を含む文書を受けるステップと、
前記文書を受け取った後で、且つグラフ・データ構造体を生成する前に、前記文書からストップワードを取り除くステップと、
前記文書に関して、各ノードが文書内の別個の単語を表現し、２つのノードが互いに隣接するか、または所定の単語数の内に現れる回数を関連づけた各エッジを含むグラフ・データ構造体を生成するステップと、
前記グラフ・データ構造体を情報レポジトリ内に格納するステップと、
前記文書についてのテキスト解析を実行する要求として検索要求を受けるステップと、
前記検索要求で要求された文章断片に対するグラフ・データ構造体を生成し、前記情報レポジトリ内を検索して、該文章断片のグラフ・データ構造体が該情報レポジトリ内のグラフ・データ構造体のいずれかに存在するかを判断することにより、前記グラフ・データ構造体についてテキスト解析を実行し、前記要求に応答する結果を提供するステップと、
を含む、方法。
【請求項２】
前記所定の単語数は、前記グラフ・データ構造体の次数値を与える、請求項１に記載の方法。
【請求項３】
前記エッジは、有向エッジ又は無向エッジである、請求項１に記載の方法。
【請求項４】
前記グラフ・データ構造体は、余分なものを取り除いた文書から生成される、請求項１に記載の方法。
【請求項５】
プロセッサとメモリとを含むコンピュータが実行する方法であって、
前記プロセッサが複数の単語を含む文書を受け取るステップと、
前記プロセッサが前記メモリを使用して、前記文書からストップワードを除去するステップと、
前記プロセッサが前記メモリを使用して、前記ストップワードを除去した文書に関して、各ノードが前記文書内の別個の単語を表現し、２つのノードが互いに隣接するか、または所定の単語数の内に現れる回数を関連づけた各エッジを含むグラフ・データ構造体を生成するステップと、
前記プロセッサが前記メモリを使用して、前記２つのノードが互いに前記所定の単語数の内に現れる回数に等しい各エッジの頻度を有する擬似単語を、前記グラフ・データ構造体内の各エッジに割り当てることによって、前記文書のベクトル空間表現を構築するステップと、
前記プロセッサが前記ベクトル空間表現を出力するステップと、
を含む、方法。
【請求項６】
前記プロセッサが前記メモリを使用して、前記文書についてのテキスト解析を実行する要求として２つの文書の類似性を計算する要求を受け取るステップと、前記擬似単語に基づき、前記２つの文書に対して生成されたグラフ・データ構造体間の共通のエッジの数を調べることにより、前記ベクトル空間表現についてテキスト解析を実行して、前記要求に応答する結果を取得するステップをさらに含む、請求項５に記載の方法。
【請求項７】
請求項１乃至６のいずれかに記載の方法に含まれる各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【請求項８】
テキスト文書を解析するための装置であって、
複数の単語を含む文書を受け取る手段と、
前記文書からストップワードを除去する手段と、
前記ストップワードを除去した文書に関して、各ノードが前記文書内の別個の単語を表現し、２つのノードが互いに隣接するか、または所定の単語数の内に現れる回数を関連づけた各エッジを含むグラフ・データ構造体を生成する手段と、
前記２つのノードが互いに前記所定の単語数の内に現れる回数に等しい各エッジの頻度を有する擬似単語を、前記グラフ・データ構造体内の各エッジに割り当てることによって、前記文書のベクトル空間表現を構築する手段と、
前記ベクトル空間表現を出力する手段と、
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト文書表現及びコンピュータ解析に関する。
【背景技術】
【０００２】
テキスト文書から質の高い情報を得るための取り組みには、クラスタ化、分類、索引付け及び類似性検索等の種々のテキスト・マイニング及び管理アルゴリズムがある。これらのアプリケーションの大部分は、テキスト表現及び解析のためのベクトル空間モデルを用いる。ベクトル空間モデルは、テキスト文書を、例えば索引語のような識別子のベクトルとして表現するための代数的モデルである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ベクトル空間モデルは、マイニング目的には効果的で効率的な表現であるが、文書内の単語の順序付けについての情報を保存しない。
【課題を解決するための手段】
【０００４】
本発明の例示的な実施形態によれば、テキスト文書を表現するためのグラフィカル・モデルが提供される。グラフィカル・モデルは、別個の単語の間の距離によって文書を表現する距離グラフから構築される。本発明の距離グラフ表現は、文書内の単語の位置情報を保持して基礎的データの文章構造に関するリッチ表現を提供し、マイニング目的に対して効果的である。この表現は、単語間の距離を表現する能力が高いため、ベクトル空間表現より効果的である。
【０００５】
本発明の例示的な実施形態は、グラフィカル・モデルによってテキスト文書を表現するための方法及びコンピュータ・プログラムを提供する。この方法においては、複数の順序付けられた単語を含む文書を受け取って、文書に関するグラフ・データ構造体を生成することができる。グラフ・データ構造体は、複数のノード及びエッジを含むことができ、各ノードは、文書内の別個の単語を表現し、各エッジは、２つのノードが、互いに所定の距離内に現れる回数を識別する。グラフ・データ構造体は、情報レポジトリ内に格納することができる。
【図面の簡単な説明】
【０００６】
【図１】本発明の例示的な実施形態による、テキスト断片の距離グラフ表現を示す。
【図２】本発明の例示的な実施形態による、距離グラフ及び距離グラフのデータ構造体を示す。
【図３】本発明の例示的な実施形態による、テキスト断片の無向距離グラフ表現を示す。
【図４】本発明の例示的な実施形態を実施するための装置を示す。
【図５】本発明の例示的な実施形態による、距離グラフを構築するプロセスを示す。
【図６】本発明の例示的な実施形態による、距離グラフをマイニング目的のためのテキスト表現に変換するプロセスを示す。
【発明を実施するための形態】
【０００７】
本開示において、本発明の例示的な実施形態による、テキスト文書を表現するためのグラフィカル・モデルが提示される。以下に、本発明の例示的な実施形態により文書内の別個の単語の間の距離によって文書を表現する距離グラフを定義する。本発明のグラフィカル・モデルは、グラフ理論の分野からの概念を、非類似分野であるテキスト文書表現の分野に適用することによって得られる。また、この構造的表現を用いる幾つかのマイニング及び管理アプリケーションを探求する。
【０００８】
本発明の距離グラフ表現は、効果的な処理を可能にし、文書内のテキストの高品質の表現をもたらすことが示される。例えば、距離グラフ表現は、文書内の基礎的データの挙動についてのリッチな情報を保持することができる。この構造的情報のリッチなレベルは、より損失の多いベクトル空間表現では不可能なアプリケーションを可能にし、既存のアプリケーションを用いて、より高品質の結果を与える。テキスト文書の基礎的表現を、本発明の距離グラフのエッジのベクトル空間表現に変換するだけで、クラスタ化等の多くの既存のテキスト・アプリケーションを、本発明の構造化データのベクトル空間表現と共に直接用いることが可能なことも示される。
【０００９】
ここで、本発明の例示的な実施形態による距離グラフ表現の概要を説明する。
【００１０】
距離グラフは、点の間の距離が１つであるときはいつでも、エッジによって２つの点を繋ぐことによって、ユークリッド平面内の点の集合から形成されたグラフである。距離グラフの構造的表現は、それらを処理のための効果的な表現にする。距離グラフは、保持される距離情報のレベルに応じた種々の次数のものであると定義することができる。具体的には、次数ｋの距離グラフは、基礎的文書内において最大でｋの距離にある単語の対についての情報を保持する。距離グラフは、文書コーパス内の各語に対するノードと、一対のノード間の距離が一定の数よりも少ない場合に一対のノード間に存在するエッジとを定める構造体として定義する。
【００１１】
コーパスＣから引き出された文書Ｄに対するｋ次の距離グラフは、
グラフＧ（Ｃ，Ｄ，ｋ）＝（Ｎ（Ｃ），Ａ（Ｄ，ｋ））
として定義され、ここで、Ｎ（Ｃ）は、コーパスＣに特有に定められたノードの組であり、Ａ（Ｄ，ｋ）は、文書内のエッジの組である。これらの組は、以下のように定められる。
【００１２】
組Ｎ（Ｃ）は、文書コーパスＣ全体における各別個の単語に対して１つのノードを含有する。「ノードｉ」及び「単語ｉ」という用語を互換的に用いて、コーパス内の対応する単語の索引を表現する。コーパスＣは、多数の文書を含有することができ、対応する単語（ノード）の索引は、Ｃ内の異なる文書の表現にわたって不変であることに留意されたい。ノードの組はＮ（Ｃ）で示され、コーパスＣの関数である。
【００１３】
組Ａ（Ｄ，ｋ）は、単語ｉが最大でｋの位置だけ単語ｊの前に存在する場合にノードｉからノードｊに向かう有向性エッジを含有する。例えば、連続する単語については、ｋの値は１である。エッジの頻度は、文書内で単語ｉが最大でｋの位置だけ単語ｊの前に存在する回数である。
【００１４】
大部分のテキスト集合は、前置詞、冠詞及び接続詞等の多くの頻繁に現れる単語を含有する。これらは、ストップワードとして知られる。距離グラフ表現に対して、これらの単語は、距離グラフ構築の前にテキストから除去されるものと仮定する。言い換えれば、ストップワードは、グラフに関する距離を計算するときに数えず、ノードの組Ｎ（Ｃ）には含めない。これにより、距離グラフ表現におけるエッジの数は大きく減少する。これはまた、処理中のより良い効率性につながる。
【００１５】
本発明の例示的な実施形態による、周知の童謡「メリーさんの羊」に対する距離グラフ表現を図１に示す。図１に示すように、テキスト断片１１０が与えられている。テキスト断片１１０は、テキスト文書の一部分である。テキスト文書は、ニュース記事、ウェブページ、ソーシャル・ネットワークのコンテンツ、ブログ、刊行文書、又はその他のデジタル・テキスト集合の形態等の任意のデジタル・テキスト集合の１つとすることができる。テキスト文書は、固有の語順を有する。言い換えれば、テキスト文書内の文章は、構文的配置における単語を含む。この配置は、マイニング目的のために有用な情報である。
【００１６】
図１において、ストップワードは除去され（１２０）、距離グラフは、残りの単語１３０に対して構築される。図１の行Ａ−Ｃは、余分なものを取り除いたテキスト表現１３０から構築された距離グラフを表わす。行Ａはゼロ次の有向距離グラフを示し、行Ｂは一次の有向距離グラフを示し、行Ｃは二次の有向距離グラフを示す。有向距離グラフは、エッジ間に方向がある、ノードとエッジとを含むグラフである。
【００１７】
本発明の例示的な実施形態による距離グラフ２０１及びそのデータ構造体２０２を図２に示す。メモリ内に格納することができる距離グラフ２０１の内部表現であるデータ構造体２０２は、距離グラフ２０１のノード１、２、３、４、５に対応するリスト、及び距離グラフ２０１のエッジ（１，２）、（１，３）、（２，３）、（２，４）、（３，５）、（４，５）に対応するリストを含有する。データ構造体２０２はまた、エッジ・リストと一対一に対応するエッジ重みリスト１、２、３、５、８、９を含有する。エッジ重みリストは、距離グラフ２０１におけるエッジの頻度を含有する。エッジの頻度は、エッジの各側のノードが、互いに所定の距離内に何回出現するかに対応する。これは、以下の図１の更なる論考のなかで明らかになるであろう。データ構造体２０２は、本開示において説明される処理を実行するのに十分である。
【００１８】
図１に戻ると、行Ａにおける距離グラフはゼロ次の距離グラフであるため、自己ループ１４０ａ−１４０ｆのみを含有する。自己ループは、単語がそれ自体からゼロの距離内に現れる回数である。例えば、自己ループ１４０ａにおいて数字２は、「ＭＡＲＹ」が、余分なものを取り除いた表現１３０において、それ自体からゼロ（単語）の距離内に２回現れたことを表示し、自己ループ１４０ｂにおいて数字４は、「ＬＩＴＴＬＥ」が、余分なものを取り除いた表現１３０において、それ自体からゼロ（単語）の距離内に４回現れたことを表示する、などである。行Ｂにおける自己ループは、行Ａにおける自己ループと同じである。行Ｃにおける自己ループは、自己ループ１５０ｂ及び１５０ｃを除いて、行Ａ及び行Ｂにおいて示された自己ループと同じである。これらは、「ＬＩＴＴＬＥ」及び「ＬＡＭＢ」という単語が、それらから２（単語）の距離内に６回現れるので、数字６が記される。
【００１９】
図１に示すように、エッジの数は、距離グラフが連続的に高次になるにつれて増加する。行Ａにおけるゼロ次のグラフはエッジを含有しない。行Ｂにおける一次のグラフは、エッジ１６０ａ−１６０ｆを含有し、行Ｃにおける二次のグラフは、エッジ１７０ａ−１７０ｊを含有する。行Ｂにおけるエッジ１６０ａ−１６０ｆは、ある単語が別の単語から１の距離内に何回見出されるか（例えば、頻度）を表わす。例えば、行Ｂに示されるように、「ＭＡＲＹ」と「ＬＩＴＴＬＥ」との間のエッジは、「ＭＡＲＹ」が、「ＬＩＴＴＬＥ」という単語から１（単語）の距離内に２回見出されるので２と示される。さらに、行Ｂにおけるエッジ１６０ｆは、「ＬＡＭＢ」という単語が「ＬＩＴＴＬＥ」という単語の間に２回挟まれるので２と示される。
【００２０】
行Ｃにおけるエッジ１７０ａ−１７０ｊは、ある単語が別の単語から２の距離内に何回見出されるかを表わす。例えば、「ＬＩＴＴＬＥ」は、「ＬＡＭＢ」の後に最大で２の距離内に２回現れる。従って、エッジ１７０ａは２とラベル付けされる。同様に、「ＬＡＭＢ」は「ＭＡＲＹ」の後に最大で２の距離内に２回現れる。従って、エッジ１７０ｂも同様に２とラベル付けされる。
【００２１】
図１に示すように、行Ｃの二次の距離グラフにおける自己ループの値は、行Ａ及び行Ｂのそれぞれゼロ次及び一次の距離グラフよりも大きい。これは、「ＬＩＴＴＬＥ」及び「ＬＡＭＢ」のような繰り返しの単語が互いに交互の位置に現れるからである。かかる繰り返しは、行Ａ及び行Ｂのそれぞれゼロ次及び一次の距離グラフの自己ループの値を変化させないが、行Ｃの二次の距離グラフに影響し、従って自己ループ１５０ｂ及び１５０ｃに影響する。
【００２２】
図１の各ノードは、元の距離グラフにおける実際のテキスト単語に対応するラベルを有する。これらのラベルは、距離グラフを互いに異なる文書に関連付けるのに有用である場合がある。
【００２３】
確かめられるように、高次の距離グラフは低次の距離グラフよりもリッチであるが、これは５又は１０よりも高次の場合には必ずしも当てはまらない。例えば、文書内の別個の単語の数よりも大きい次数を有する距離グラフは、完全なクリークとなる。明らかに、これは、必ずしも有用な情報をエンコードするわけではない。他方、ゼロ次の距離グラフも、あまり有用な情報をエンコードしない。異なる次数の距離グラフの相対的挙動を調査すると、低次の距離グラフの方がより有効であることが分かる。
【００２４】
データベースの視点からみると、距離グラフは、単語識別子に対応するノード上の属性ラベルと、エッジの頻度に対応するエッジ上のラベルとを有するＸＭＬで表現することができる。かかる表現は、かかる半構造化データに対するデータ管理及びマイニング技術が既に存在する点で有用である。従って、この表現は、これらのアプリケーション（例えば、クラスタ化、分類及び類似性検索）に直接用いることができる。後で、クラスタ化、分類及び頻出パターン・マイニング等の幾つかの共通テキスト・アプリケーションを、どのように本発明の距離グラフ表現と共に用いることができるかを説明する。
【００２５】
前述のように、図１の行Ａ−Ｃの距離グラフは有向グラフであり、各々がグラフ内の単語の順序付けを明らかにしている。しかしながら、幾つかのアプリケーションにおいては、ビットの順序付けを緩和して、距離グラフ表現において、いくらかの柔軟性をもたせることが有用な場合がある。このためには、無向グラフを用いることができる。無向グラフは、マイニング・アプリケーションに対して有向グラフと比較して）より簡単に取り扱えるので、用いることができる様々な多数のアプリケーションを可能にする。有向グラフと無向グラフとの間の主な相違は、無向グラフのエッジが無向であるということである。
【００２６】
図３は、本発明の例示的な実施形態による、テキスト断片の無向距離グラフ表現を示す。より具体的には、図３の無向距離グラフ３０１は、図１の行Ｃにおける二次の距離グラフに対応する。無向距離グラフ３０１は、有向エッジ（図１の矢印を有するエッジ１７０ａ−１７０ｊの全て）を同じ頻度の無向エッジ３７０ａ−３７０ｉ（矢印を有しない）と置き換えることによって、図１の行Ｃにおける二次の有向距離グラフから得られることは明らかである。両方向にエッジが存在する場合、双方向エッジの頻度を加算することによって、対応する無向エッジの頻度を得ることができる。例えば、図３の無向エッジ３７０ｄの頻度は、図１の有向エッジ１７０ｃ及び１７０ｄの頻度の和である。図から分かるように、無向表現は、順序付けに関するいくらかの情報を失うが、距離についての情報は保持する。無向距離グラフ表現は、異なる言語が、所与のテキスト断片に対して同じ単語翻訳を表すが、順序付けが異なる場合に用いることができる。
【００２７】
ここで、本発明の例示的な実施形態を、図４の装置４０１を参照しながら説明する。装置４０１は、コンピュータとすることができ、メモリ４０２、ディスク４０３、及び中央処理ユニット(ＣＰＵ)４０４のようなプロセッサを含む。
【００２８】
本明細書で用いられる「プロセッサ」という用語は、例えば、ＣＰＵ及び／又は他の形態の処理回路を含むもの等の任意の処理デバイスを含むことを意図するものと理解されたい。さらに、「プロセッサ」という用語は、２つ以上の個別のプロセッサを指すことができる。「メモリ」という用語は、例えば、ＲＡＭ、ＲＯＭ、固定メモリ・デバイス（例えば、ハード・ドライブ）、取り外し可能メモリ・デバイス（例えば、ディスケット）、フラッシュ・メモリ等の、プロセッサ又はＣＰＵと関連付けられたメモリを含むことを意図したものである。また、本明細書で用いられる「入力及び／又は出力インターフェース」という語句は、例えば、データを処理ユニットに入力するための１つ又は複数の装置（例えば、マウス）と、その処理ユニットに関連した結果を提供するための１つ又は複数の装置（例えば、プリンタ）とを含むことを意図したものである。
【００２９】
図４に示すように、装置４０１が入力インターフェースを通じて入力テキスト・データを受け取ると、それをディスク４０３上に格納することができる。入力テキスト・データは、処理の目的で用いられる任意の文書集合からのものとすることができる。入力テキスト・データはＣＰＵ４０４内で処理され、例えば、図１乃至図３を参照しながら上で説明した様式で、入力テキスト・データの距離グラフ表現が生成される。距離グラフ生成中の中間の計算結果は、メモリ４０２内に格納することができる。距離グラフ表現は、装置４０１の出力インターフェースを通して、情報レポジトリ４０５へ出力される。情報レポジトリ４０５は、文書の種々異なる表現が格納されるディスク記憶装置の形態にすることができる。距離グラフ表現は、将来の処理のために、任意の種類のデータベースに格納することができる。
【００３０】
グラフのテキスト解析を実行するために、装置４０１又は別のコンピューティング装置によって、情報レポジトリ４０５内の距離グラフ表現にアクセスすることができる。次に、距離グラフ表現を解析して、特定のアプリケーションに対する解析結果を決定することができる。例えば、特定の文章断片が情報レポジトリ４０５内のいずれかの文書内に現れるかどうかを判断するために、最初に、クエリ断片に対する距離グラフ表現を構築し、次に、情報レポジトリ４０５を検索して、クエリ・グラフが情報レポジトリ４０５内の距離グラフ表現のいずれかに存在するかどうかを判断する。幾つかの実施形態においては、ユーザから入力される検索要求のようなテキスト解析を実行する要求４１０を装置４０１に入力することができる。幾つかの実施形態においては、要求に対する応答４２０が装置４０１から出力される。
【００３１】
図５は、本発明の例示的な実施形態による、距離グラフ表現を生成するプロセスを示す。距離グラフ生成のプロセスは、（ｉ）ノード、（ｉｉ）エッジ、及び（ｉｉｉ）エッジ間の頻度の３種類のエンティティの決定を含む。距離グラフは、単語リスト内の別個の単語各々に対して１つのノードを含む。５０１において、図１に示した単語のような順序付けられた単語のコーパスを含む文書が受け取られる。次いで、グラフ・データ構造体が該文書に対して生成されるが、このグラフ・データ構造体はノード及びエッジを含み、各ノードは文書内の別個の単語を表現し、各エッジは２つのノードが互いに所定の距離内に現れる回数を識別する。幾つかの実施形態においては、所定の距離は、グラフ・データ構造体の次数の値に基づき、幾つかの実施形態においては、エッジは、有向エッジ又は無向エッジである。従って、第１のステップは、コーパス内の全ての別個の単語を決定することである。これらの別個の単語は、ステップ５１０においてノードとして表現される。ステップ５２０において、単語間の距離に基づいて、ノード間のエッジが生成される。ｋ次の距離グラフに対して、間の距離が最大でｋである単語の全ての対の間にエッジが生成される。ステップ５２０は、有向グラフ又は無向グラフのいずれを必要とするか応じて、異なるように実施できることに留意されたい。ステップ５３０において、これらのエッジの頻度が決定される。これらのエッジの頻度は、エッジが、距離グラフ表現において最大でｋの距離に現れ得る回数によって決定される。このプロセスの結果は、図１及び図３に示した距離グラフの１つとすることができる。
【００３２】
次いで、５４０において、グラフ・データ構造体を、図４の４０５のような情報レポジトリに格納する。５５０においては、文書内の単語に関する検索のような文書についてのテキスト解析を実行する要求（例えば、図４の４１０）がある。５６０において、グラフ・データ構造体についてテキスト解析を実行し、要求に応答する結果（例えば、図４の４２０）を提供する。幾つかの実施形態において、文書を受け取った後で、且つグラフ・データ構造体を生成する前に、本方法は、文書からストップワードを取り除くことをさらに含み、グラフ・データ構造体は、余分なものを取り除いた文書から生成される。
【００３３】
図６は、本発明の例示的な実施形態による距離グラフ表現をマイニング目的のために用いるプロセスを示す。最初に６０１において、複数の単語を含有する文書を受け取られ、６０５において、上述のように距離グラフが生成される。本発明の距離グラフ表現をマイニング・アルゴリズムとともに用いるためには、図６に示すように、まず、距離グラフをベクトル空間表現に変換する（６１０）。これを視覚化するために、図１の行Ｂにおける一次の距離グラフを考えることとする。この場合、各エッジに対して新しい疑似単語を生成し、エッジに重みを割り当てる。疑似単語は、エッジの始点及び終点における単語の連結であり、重みは、エッジの頻度である。例えば、「ＭＡＲＹ」から「ＬＩＴＴＬＥ」へのエッジは重み２を有するが、「ＬＩＴＴＬＥ」から「ＬＡＭＢ」へのエッジは重み４を有する。従って、重み２を有する新しい単語「ＭＡＲＹ−ＬＩＴＴＬＥ」、及び重み４を有する新しい単語「ＬＩＴＴＬＥ−ＬＡＭＢ」が生成される。結果として生じるベクトル空間表現は、対応する重み頻度を有する新しい単語のリストである。
【００３４】
ステップ６２０において、テキスト管理及びマイニング・アルゴリズムを、修正されたベクトル空間表現に直接適用することができる。かかるアプリケーションの一例は、類似性検索アプリケーションである。このアプリケーションにおいて、本発明の修正されたベクトル空間表現を用いて、２つのグラフの間で共通のエッジの数を調べることにより、２つの文書の類似性を計算することができる。かかる手法は、単に標準的ベクトル空間表現に基づいた標準的類似性検索よりも、優れた結果をもたらす。６３０において、例えば要求に応答してマイニングの結果が出力される。
【００３５】
当業者であれば認識するように、本発明の態様は、システム、方法又はコンピュータ・プログラムとして具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又は、本明細書において全て一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる、ソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態をとることができる。さらに、本発明の態様は、具体化されたコンピュータ可読プログラム・コードを有する１つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラムの形態をとることができる。
【００３６】
１つ又は複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線、又は半導体システム、装置若しくはデバイス、又は、それらの任意の適切な組み合わせとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）は、１つ又は複数のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ＲＡＭ、ＲＯＭ、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク型読み出し専用メモリ（ＣＤ−ＲＯＭ）、光学式記憶デバイス、磁気記憶デバイス、又はそれらの任意の適切な組み合わせを含むことになる。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置又はデバイスにより、又はこれらに関連して用いるためのプログラムを含有又は格納することができる、任意の有形媒体とすることができる。
【００３７】
コンピュータ可読信号媒体は、例えば、ベースバンド内に又は搬送波の一部として、具体化されたコンピュータ可読プログラム・コードを含む伝搬データ信号を含むことができる。かかる伝搬信号は、電磁的、光学的又はそれらの任意の適切な組み合わせを含むが、これらに限定されない種々の形態のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、且つ、命令実行システム、装置又はデバイスにより又はこれらに関連して用いるためのプログラムを通信、伝搬又は伝送することができる、任意のコンピュータ可読媒体とすることができる。
【００３８】
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ等、又はそれらの任意の適切な組み合わせを含むがこれらに限定されない、任意の適切な媒体を用いて伝達することができる。
【００３９】
本発明の態様に関する動作を遂行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は類似のプログラミング言語等の従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。プログラム・コードは、全体をユーザのコンピュータ上で実行するか、一部をユーザのコンピュータ上で実行するか、独立したソフトウェア・パッケージとして実行するか、一部をユーザのコンピュータ上で実行し一部を遠隔コンピュータ上で実行するか、又は、全体を遠隔コンピュータ又はサーバ上で実行することができる。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）又はワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通してユーザのコンピュータに接続することができ、又は、外部コンピュータに（例えば、インターネット・サービス・プロバイダを用いるインターネットを通して）接続することもできる。
【００４０】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラムのフローチャート及び／又はブロック図を参照して説明される。フローチャート及び／又はブロック図の各ブロック、及びフローチャート及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実施できることが理解されるであろう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、マシンを生成することができ、それによりコンピュータ又は他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャート及び／又はブロック図のブロック又は複数のブロック内で指定された機能／動作を実施するための手段を生成する。
【００４１】
これらのコンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置又は他のデバイスに対して特定の様式で機能するよう命令することができるコンピュータ可読媒体内に格納することができ、それによりコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図のブロック又は複数のブロック内で指定された機能／動作を実行する命令を組み込んだ物品又は製造物を生成する。
【００４２】
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスにロードして、コンピュータ、他のプログラム可能装置又は他のデバイス上で一連の動作ステップを実行させ、コンピュータ実施プロセスを生成することができ、それによりコンピュータ又は他のプログラム可能装置上で実行する命令が、フローチャート及び／又はブロック図のブロック又は複数のブロック内で指定された機能／動作を実施するためのプロセスをもたらす。
【００４３】
図中のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性及び動作を示す。この点に関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための１つ又は複数の実行可能命令を含むモジュール、セグメント、又はコードの一部分を表すことができる。幾つかの代替的な実施においては、ブロック内に記された機能は、図中に記された順序以外の順序で行われる場合があることにも留意されたい。例えば、連続して示された２つのブロックは、関係する機能に応じて、実際には、実質的に同時に実行されることもあり、又は、ブロックは、逆の順序で実行される場合もある。ブロック図及び／又はフローチャートの各ブロック、及びブロック図及び／又はフローチャートのブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアをベースとするシステム、若しくは専用ハードウェアとコンピュータ命令との組み合わせによって実施できることにも留意されたい。
【００４４】
本明細書において用いられる用語は、特定の実施形態を説明する目的のためのものにすぎず、本発明を限定することを意図するものではない。本明細書において用いられる場合、文脈から明らかにそうでないことが示されていない限り、単数で示されたものは、複数でも良いことが意図されている。「含む」及び／又は「含んでいる」という用語は、本発明において用いられる場合、言明された特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を特定するものではあるが、１つ又は複数の他の特徴、整数、ステップ、動作、構成要素、及び／又はそれらの群の存在又は追加を排除するものではないこともさらに理解されるであろう。
【００４５】
以下の特許請求の範囲における全ての「手段又はステップと機能との組合せ」要素の対応する構造、材料、行為及び均等物は、その機能を、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料又は行為をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び思想から逸脱することのない多くの変更及び変形が、当業者には明らかである。実施形態は、本発明の原理及び実際の用途を最も良く説明するため、及び、当業者が本発明を種々の変更を有する種々の実施形態について企図される特定の使用に好適なものとして理解することを可能にするために、選択及び記載された。
【符号の説明】
【００４６】
１１０：テキスト断片
１３０：残りの単語（余分なものを取り除いたテキスト表現）
１４０ａ−１４０ｆ、１５０ｂ、１５０ｃ：自己ループ
１６０ａ−１６０ｆ、１７０ａ−１７０ｊ：有向エッジ
２０１：距離グラフ
２０２：データ構造体
３０１：無向距離グラフ
３７０ａ−３７０ｉ：無向エッジ
４０１：装置（コンピュータ)
４０２：メモリ
４０３：ディスク
４０４：中央処理ユニット（ＣＰＵ）
４０５：情報レポジトリ
４１０：要求
４２０：応答
【図１】
0005995409.tif 000002
【図２】
0005995409.tif 000003
【図３】
0005995409.tif 000004
【図４】
0005995409.tif 000005
【図５】
0005995409.tif 000006
【図６】
0005995409.tif 000007