(57)【特許請求の範囲】
【請求項１】
有体媒体に記憶されたレコードにアクセスする段階であって、前記レコードは複数の文書の複数のクラスタを記録し、文書は複数のワードを含み、クラスタは前記複数のワードのうちの充分類似した複数のワードを含む段階と、
前記複数の文書の少なくとも一部のうちの各文書のテーマ数を決定（establish）する段階と、
各文書のテーマ数が少なければ前記各文書はより具体的であり、前記各文書のテーマ数が多ければ前記各文書はより具体的でないと決定することにより、前記テーマ数により前記各文書の具体性を決定する段階とを含む、コンピュータが実行する方法。
【請求項２】
前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する段階は、さらに、
前記各文書のクラスタ数を決定する段階と、
前記クラスタ数から前記各文書のテーマ数を計算する段階とを含む、請求項１に記載の方法。
【請求項３】
前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する段階は、さらに、
テーマ数を決定する深さを特定する段階と、
特定した深さに対してテーマ数を決定する段階とを含む、請求項１に記載の方法。
【請求項４】
前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する段階は、さらに、
前記各文書から複数のキーワードを選択する段階と、
前記キーワードに関係するテーマ候補を特定する段階と、
前記テーマ候補が前記文書と一致したとき、前記テーマ候補を前記文書のテーマと決定する段階とを含む、請求項１に記載の方法。
【請求項５】
文書の具体性要求を含む検索クエリを受け取り、
前記検索クエリと前記文書具体性要求とを満たす前記複数の文書のうちの文書を検索することにより、具体性分析を行う段階をさらに含む、請求項１に記載の方法。
【請求項６】
前記複数の文書の各文書の具体性のグラフィカル表示を行うことにより、具体性分析を行う段階をさらに含み、
前記グラフィカル表示はグラフィカルインジケータとグラフィカルな修正とグラフとよりなる集合から選択した要素を含む、請求項１に記載の方法。
【請求項７】
検索クエリを受け取り、
前記検索クエリを満たす一組の文書を検索し、
前記一組の文書の具体性により前記一組の文書をソートすることにより、
具体性分析を行う段階をさらに含む、請求項１に記載の方法。
【請求項８】
前記複数の文書はユーザに関連し、
前記テーマ数により前記各文書の具体性を決定する段階は、前記複数の文書からユーザのユーザ具体性を決定する段階をさらに含む、請求項１に記載の方法。
【請求項９】
前記複数の文書はユーザに関連し、
前記テーマ数により前記各文書の具体性を決定する段階は、前記複数の文書からユーザのユーザ具体性を決定する段階をさらに含み、
前記ユーザ具体性により前記ユーザに対して一以上の文書を選択する段階をさらに含む、請求項１に記載の方法。
【請求項１０】
前記複数の文書はユーザに関連し、
前記テーマ数により前記各文書の具体性を決定する段階は、前記複数の文書からユーザのユーザ具体性を決定する段階をさらに含み、
前記ユーザの前記ユーザ具体性を監視する段階をさらに含む、請求項１に記載の方法。
【請求項１１】
前記複数の文書はコーパスに関連づけられ、
前記テーマ数により前記各文書の具体性を決定する段階は、前記複数の文書からコーパスのコーパス具体性を決定する段階をさらに含む、請求項１に記載の方法。
【請求項１２】
コンピュータに、
有体媒体に記憶されたレコードにアクセスする段階であって、前記レコードは複数の文書の複数のクラスタを記録し、文書は複数のワードを含み、クラスタは前記複数のワードのうちの充分類似した複数のワードを含む段階と、
前記複数の文書の少なくとも一部のうちの各文書のテーマ数を決定（establish）する段階と、
各文書のテーマ数が少なければ前記各文書はより具体的であり、前記各文書のテーマ数が多ければ前記各文書はより具体的でないと決定することにより、前記テーマ数により前記各文書の具体性を決定する段階と
を実行させるプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はレキシグラフィカル（lexigraphical）分析に関し、より具体的には文書の具体性の決定に関する。
【背景技術】
【０００２】
データのコーパス（corpus）は大量の情報を保持し、関連する情報を見つけるのは困難である。キーワード検索が情報を見つける主な方法である。しかし、場合によっては、キーワード検索は情報を見つける効果的な方法ではない。
［関連出願］
本願は、デイビッド・マービットらにより２００７年１０月５日に出願された米国仮出願第６０／９７７，７８１号、発明の名称「文書のテーマ及び具体性の決定及び応用」、代理人管理第０７３３３８．０５４８号の米国特許法第１１９条（ｅ）項の利益を主張するものである。
【発明の開示】
【課題を解決するための手段】
【０００３】
一実施形態では、文書の具体性の決定には文書のクラスタを記録する記録へのアクセスを含む。文書のテーマ数をその文書のクラスタ数により決定する。その文書の具体性をテーマ数により決定する。
【発明を実施するための最良の形態】
【０００４】
実施形態では、ドメイン・オントロジ（domain  ontology）の生成と問い合わせには次のものを含む：
１．  ドメイン内の文書の収集実施形態では、文書はタームの集まり（collection  of  terms）である。文書とは、例えば新約聖書などの可読テキストである。文書は、必ずしも物語形式のテキストでなくてもよく、例えば画像コンテンツを個別かつ集合的に記述する一組のユーザ入力タグであってもよい。文書の集まりを「ドメイン・コーパス（domain  corpus）」と呼ぶ。
【０００５】
２．  ドメイン内の関心ターム（「辞書ターム」）の特定ターム（terms）の例には、ワード（「木」など）、フレーズ（「グラフ・アルゴリズム」など）、ネームド・エンティティ（named  entity）（「ニューヨーク」など）が含まれる。ターム（または概念）は違った形式を取りうる。場合によっては、同じ概念を表すのに異なるワード（words）を使用する。例えば、「kidney  stones」と「kidney  calculi」は両方とも同じ概念、すなわち「腎臓結石」を指す。また、場合によっては、語幹から多数の派生語（inflected  variants）が生じる。例えば、語幹「tree」からは「木」や「木々」などの派生語がある。実施形態によっては、同じターム（term）の複数の形態（forms）を、同じタームにマッピングしたものとして取り扱う。適切な形態の辞書タームが文書に出てくるかも知れないが、その辞書タームがどの文書にも出てこなくてもよい。
【０００６】
辞書タームの特定方法の例には、例えば、医学用語辞典等である人が作成した特定分野の辞書を用いる段階が含まれる。実施形態によっては、辞書タームのリストをコーパス（corpus）中のテキスト（a  set  of  strings  of  text）から自動的に作成してもよい。テキストを頻度によりインデックスしても、ソートしてもよいし、ある閾値より頻度が高いテキストを選択してもよい。その他の適切な統計的方法を用いてターム（terms）を決定してもよい。実施形態によっては、「ワード（word）」は「ターム（term）」や「辞書ターム（dictionary  term）」と読み替えてもよい。
【０００７】
３．  共起コンテキストにおける辞書タームの共起数を計算する。２つのタームは、各ターム語が同じ共起コンテキスト内に少なくとも１回出現するとき、共起（co-occur）したものとする。共起コンテキストの例としては文書や段落がある。
【０００８】
４．  ドメイン・オントロジとなる有向重みつきグラフを作成する。その有向重みつきグラフは、ノードとして辞書タームを含み、エッジ（edges）の重みとして類似性（affinities）を含む。マトリックス、バイナリ・ディシジョン・ダイアグラム、またはバイナリ・ディシジョン・ダイアグラムの集合等の適切なデータ構造で表しうる情報を、実際的な表示として「有向重みつきグラフ」を用いて表すことができる。
【０００９】
５．  有向重みつきグラフを問い合わせる手順を適用する。辞書タームを入力すると、その入力した辞書タームに関係する辞書タームがその手順により出力される。例えば、この手順により、入力されたタームに対して、差分有向類似性（以下に説明する）（differential  directional  affinity）を有するタームがソートされたリストとして出力される。この場合、その出力には、オントロジが取り扱う領域に関して、より密接に入力されたタームに関係するタームが含まれている。
【００１０】
任意の適切な類似性の定義を用いることができる。実施形態によっては、次の定義を用いてもよい：
１．  基本類似性
ａ）  タームＡとタームＢとの間の基本類似性を、そのタームＡまたはＢのいずれかを含むコンテキスト数に対する、タームＡ及びＢを両方とも含むコンテキスト数の比として定義する。
【数１】
0005353173.tif 000002
ｂ）  タームＡとタームＢとの間の基本類似性（Ａ）を、タームＡまたはＢのいずれかを含むコンテキスト数の大きい方に対する、タームＡ及びＢを両方とも含むコンテキスト数の比として定義してもよい。
【数２】
0005353173.tif 000003
【００１１】
２．  有向類似性
タームＡとタームＢとの間の有向類似性（ＤＡｆｆ）を、コンテキスト中にタームＡが出現することを条件として、タームＢが出現する条件付き確率として定義してもよい。
【数３】
0005353173.tif 000004
すなわち、有向類似性は、タームＡを含むコンテキストに対する、タームＡとＢを両方とも含む共起コンテキストの数である。一般的にＤＡｆｆ（Ａ，Ｂ）とＤＡｆｆ（Ｂ，Ａ）とは異なる。
【００１２】
３．  差分有向類似性
タームＡとタームＢとの間の差分有向類似性（ＤｉｆｆＤＡｆｆ）は、タームＡとＢとの間の有向類似性から、コーパスにおけるタームＢの一般性（common-ness）を示すファクタを引いたものとして定義してもよい。コーパスにおけるタームＢの一般性は、そのコーパス中の他のタームに対するタームＢの基本類似性または有向類似性の統計値である。一実施形態では、コーパスにおけるタームＢの一般性（common-ness）は、タームＢの平均類似性（ＡＡ）である。その場合、差分有向類似性の定義は次のようになる：
【数４】
0005353173.tif 000005
タームＢの平均類似性（ＡＡ）すなわち平均有向類似性は次式で定義される：
【数５】
0005353173.tif 000006
すなわち、平均類似性は共起コンテキストにおける他のタームに対するタームＢの有向類似性の平均である。
【００１３】
図１は、文書の具体性を決定するシステム１０の一実施形態を示す図である。実施形態では、システム１０は文書のテーマの数から具体性を決定する。文書のテーマ数が少ないとき、その文書はより具体的である。文書のテーマ数が多いとき、その文書はより具体的でない。実施形態では、システム１０は具体性分析を行う。具体性分析の例としては、要求された文書具体性（document  specificity）を満たす文書の検索、文書の具体性を示すグラフィカル要素の表示、ユーザ文書によるユーザ具体性（user  specificity）の決定がある。実施形態では、ワード間の類似性により決定したクラスタにより、具体性を決定する。  
ある実施形態では、ワードのサブセット（subset）と辞書Ｄとが与えられた時に、その逆インデックスＩＩから有向類似性を計算することができる。ここで、インデックスＩＩは例えばワードｗｉとｗｊのエントリーＩ（ｗｉ）とＩ（ｗｊ）を含む。一般的に、逆インデックス（inverted  index）は、ターム（term）からその位置へのマッピング、すなわちそのタームが現れる共起コンテキスト（co-occurrence  contexts）へのマッピングを格納したインデックスデータ構造である。Ｄ中のワードｗｉとｗｊの各ペアに対して、ＩＩ中のエントリーＩ（ｗｉ）、Ｉ（ｗｊ）の結合部分中の値を、Ｉ（ｗｉ）中の値の数で割った値としてＤＡ（ｉ，ｊ）を定義する。一般的に、ＤＡ（ｉ，ｊ）はＤＡ（ｊ，ｉ）と必ずしも等しくはない。その結果は任意の適切な方法で格納する。例えば、行ごとに、すなわちＤ（１，ｉ）を格納し、次にＤ（２，ｊ）を格納し、以下同様に格納する。各行ｉに対して、｜Ｉ（ｗｉ）｜を格納し、その後にｗｊとの結合部分（conjunction）の濃度を格納する。
【００１４】
ある実施形態では、有向類似性を３段階で計算する。上記の実施形態では、各辞書タームには一意的な整数の識別子を付与する。逆インデックスのエントリーはその整数識別子に対応する。段階０では、Ｄに対応するＩＩのエントリーを読み出す。パラメータ（ｓ，ｏ）に対して、ｋｓ＋ｏの形である要素識別子を保存する。値ｋｓ＋ｏにより、逆インデックスＩＩ中の調べるべきエントリーのサブセットが決まる。このようにして、有向類似性を並行して計算できる。一例として、パラメータｓ，ｏ（１，０）から得られる結果は、パラメータ（３，０）、（３，１）、（３，２）の計算を合わせたものから得られる結果と同じである。この段階により非常に大きな逆インデックスに対してＤＡテーブルを計算することができる。
【００１５】
段階１では、ＤＡ（ｉ，ｊ）のみに対して行ごとに結合を計算する。段階２では、計算された上部三角領域のＵＴ  ＤＡ配列を読み出す。下部三角領域は、上記三角領域からその転置として求められる。ある実施形態では、同じ次元の複数のＤＡ配列をひとつの配列に結合してもよい。大きな逆インデックスＩＩのＤＡ配列を、パラメータを（ｓ，ｉ）としてｉ＝０．．（ｓ−１）にわたるＤＡの和として計算できる。有向類似性（directional  affinities）を算出できるように、計算した結合（conjunctions）とともに付加的な情報を格納してもよい。ある実施形態では、ＩＩエントリーの濃度を格納してもよい。
【００１６】
実施形態では、ＤＡを行ごとに記憶し、ＡＡエントリーの計算をＤＡエントリーの計算と並行して進めることができる。具体的に、ＤＡの行をディスクから読み出しつつ加算し、最後に辞書エントリーの数で規格化することによってＡＡを生成する。
【００１７】
図示した実施形態において、システム１０はクライアント２０、サーバ２２、及びメモリ２４を含む。ユーザは、クライアント２０によりサーバ２２と通信して、言語のオントロジを生成する。クライアント２０は、ユーザ入力をサーバ２２に送信し、サーバ出力をユーザに提供（例えば、表示や印刷）する。サーバシステム２４は言語のオントロジを生成するアプリケーションを管理する。メモリ２４はサーバシステム２４が使うデータを記憶する。
【００１８】
図示した実施形態において、メモリ２４はページ５０とレコード５４とを記憶している。ページ５０（すなわち文書または共起コンテキスト）はワード（word）の集まりである。ページ５０の例としては、文書のページや、文書や、ブックや、ウェブページや、通信（例えば電子メールやインスタントメッセージ）その他がある。ページ５０はページ識別子により識別できる。ページ５０は有体のコンピュータ読み取り可能媒体に電子的に記憶されていてもよい。ページ５０には任意の適切なコンテンツが含まれる。例えば、テキスト（文字、ワード、数字等）、画像（グラフィックス、写真、ビデオ等）、オーディオ（録音、コンピュータ生成サウンド等）、ソフトウェアプログラムが含まれる。ある実施形態では、一組のページ５０がコーパス（corpus）に属している。コーパスは特定の主題、コミュニティ、組織、エンティティ（entity）に関連している。
【００１９】
レコード５４はページ５０を記述する。本実施形態では、レコード５４は、インデックス５８、逆インデックス６２、オントロジ６６、クラスタ６７を含む。インデックス５８はインデックスリストを含み、ページ５０のインデックスリストはページ５０のワードを示す。逆インデックス６２は逆インデックスリストを含み、あるワード（または一組のワード）の逆インデックスリストはそのワード（または一組のワード）を含むページ５０を示す。一実施例では、リストＷｉはワードｗｉを含むページ５０のページ識別子を含む。リストＷｉ＆Ｗｊはワードｗｉとｗｊを両方とも含む連言ページ（conjunction  pages）５０のページ識別子を含む。リストＷｉ＋Ｗｊはワードｗｉまたはｗｊのいずれかを含む選言ページ（disjunction  pages）５０のページ識別子を含む。Ｐ（Ｗｉ）はＷｉのページ５０の数、すなわちワードｗｉを含むページ５０の数である。
【００２０】
一実施形態では、リスト（インデックスリスト、逆インデックスリスト等）はバイナリ・ディシジョン・ダイアグラム（ＢＤＤ）として記憶される。一実施例では、集合Ｗｉのバイナリ・ディシジョン・ダイアグラムＢＤＤ（Ｗｉ）はワードｗｉを有するページ５０を表す。ＢＤＤ（Ｗｉ）の充分割当カウント（satisfying  assignment  count）Ｓａｔｉｓｆ（ＢＤＤ（Ｗｉ））によりワードｗｉを有するページ５０の数Ｐ（Ｗｉ）が求まる。
【数６】
0005353173.tif 000007
【００２１】
したがって、
【数７】
0005353173.tif 000008
【００２２】
オントロジ６６は言語のワードとそのワード間の関係を表すものである。一実施形態では、オントロジ６６はワード間の類似性（affinities）を表す。図示した実施例では、オントロジ６６は類似性マトリックスと類似性グラフを含む。類似性マトリックスの例を図３乃至図５を参照して説明する。類似性グラフの例を、図６を参照して説明する。クラスタ６７は互いに関係するワードのクラスタを記録している。クラスタは図７を参照してより詳細に説明する。
【００２３】
図示した実施形態では、サーバ２２は類似性モジュール３０、クラスタリングモジュール３１、及びオントロジ機能モジュール３２を含む。類似性モジュール３０はワードのペアの類似性を計算し、その類似性を類似性マトリックスに記録し、及び／または類似性マトリックスをレポートする。類似性モジュール３０は類似性グラフも生成できる。類似性モジュール３０は図２を参照してより詳細に説明する。
【００２４】
実施形態では、クラスタリングモジュール３１は、データセット中の関係する要素のクラスタを特定することにより、そのデータセット中のパターンを発見する。実施形態では、クラスタリングモジュール３１は一組のワード（例えば、言語や一組のページ５０等）のクラスタを特定できる。一般的に、クラスタのワードは互いに強く関係しているが、クラスタ外のワードとは関係していない。ワードのクラスタはその一組のワードのテーマ（すなわちトピック）を指定する。ある実施形態では、クラスタリングモジュール３１は、関係するワード間の類似性によりそのクラスタを特定する。その実施形態では、クラスタのワードは互いに強く類似しているが、クラスタ外のワードとは類似していない。クラスタリングモジュール３１は図７を参照してより詳細に説明する。
【００２５】
実施形態では、オントロジ特性モジュール３２は一組のワード（例えば、ワードやそのワードを含む文書）のオントロジ特性（ontology  features）を決定し、そのオントロジ特性を様々な場合に適用する。オントロジ特性はワードセットの特徴であり、言語のオントロジ空間にそのワードセットを配置するものである。オントロジ特性の例としては深さ（depth）と具体性（specificity）がある。実施形態では、深さ（depth）はワードセットのテキストとしての精巧さ（textual  sophistication）を示す。深さがより大きい（深い）ワードセットは、より技術的かつ専門的であり、深さがより小さい（浅い）ワードセットは、より一般的なものである。実施形態では、ワードセットの具体性はそのワードセットのテーマの数に関係する。具体性が高いワードセットが有するテーマはより少なく、具体性が低いワードセットが有するテーマはより多い。
【００２６】
オントロジ特性モジュール３２はオントロジ特性を任意の適切な場合に適用する。適切な場合とは、例えば、オントロジ特性による文書の検索、ソート、選択や、文書のオントロジ特性のレポートや、ユーザの文書のオントロジ特性の決定などである。オントロジ特性モジュール３２は図８を参照してより詳細に説明する。
【００２７】
システム１０の構成要素は、インターフェース、ロジック、メモリ、その他の適切な要素を含む。インターフェースは入力を受信し、出力を送信し、入力や出力を処理し、その他の適当な動作を行う。インターフェースはハードウェア及び／またはソフトウェアを含む。
【００２８】
ロジックは、これらの構成要素の動作を行い、例えば、入力から出力を生成する命令を実行する。ロジックはハードウェア、ソフトウェア及び／またはその他のロジックを含む。ロジックは有体媒体にエンコードされ、コンピュータにより実行された時に動作するものであってもよい。プロセッサ等のある種のロジックが構成要素の動作を管理してもよい。プロセッサの例としては、例えば、コンピュータ、マイクロプロセッサ、アプリケーションその他のロジックがある。
【００２９】
メモリは情報を記憶する。メモリは有体の、コンピュータ読み取り可能な、及び／またはコンピュータ実行可能な記憶媒体である。メモリの例には、コンピュータのメモリ（ＲＡＭ、ＲＯＭ等）、大規模記憶媒体（ハードディスク等）、リムーバブル記憶媒体（ＣＤ、ＤＶＤ等）、データベースやネットワーク記憶装置（サーバ等）、その他のコンピュータ読み取り可能な媒体が含まれる。
【００３０】
本発明の範囲から逸脱することなく、システム１０に修正、追加、または削除をすることができる。システム１０の構成要素は一体であっても分かれていてもよい。さらに、システム１０の動作を実行する構成要素は、これより多くても少なくてもよいし、他の構成要素であってもよい。例えば、生成器４２、４６の動作を１つの構成要素により行ってもよいし、類似性計算器３４の動作を２つ以上の構成要素で行ってもよい。また、システム１０の動作の実行は、ソフトウェア、ハードウェア、及び／またはその他のロジックを含む任意の適切なロジックを用いて行ってもよい。本明細書では、「各」とは、集合の各要素、または集合の部分集合の各要素を指す。
【００３１】
本発明の範囲から逸脱することなく、マトリックスの例に修正、追加、または削除をすることができる。マトリックスに含まれる値はこれより多くても少なくてもよく、他の値が含まれてもよい。また、マトリックスの値を任意の適切な順序で構成してもよい。
【００３２】
図２は、図１のシステム１０で使用できる類似性モジュール３０の一実施形態を示す図である。類似性モジュール３０はワードのペアの類似性を計算し、その類似性を類似性マトリックスに記録し、及び／またはその類似性マトリックスをレポートする。類似性モジュール３０は類似性グラフも生成できる。
【００３３】
図示した実施形態では、類似性モジュール３０は類似性計算器３４、オントロジ生成器３８、及びワード推奨器４８を含む。類似性計算器３４は、ワードｗｉの、または第１のワードｗｉと第２のワードｗｊを含むワードペアの任意の適切なタイプの類似性を計算する。類似性の例には基本類似性、有向類似性、平均類似性、差分類似性、その他の類似性が含まれる。
【００３４】
一実施形態では、ワード推奨器４８は、シード・ワード（seed  word）を受け取り、そのシード・ワードとの類似性が閾値より高いワードを特定する。類似性閾値は任意の適切な値であり、０．２５、０．５、０．７５、０．９５やこれらより大きな値であってもよい。類似性閾値は予めプログラムしても、ユーザが指定してもよい。
【００３５】
基本類似性はワードｗｉ及び／またはｗｊを含むページ５０の量（例えば数）に基づき計算できる。連言ページ量（conjunction  page  amount）はワードｗｉとｗｊを両方とも含むページ５０の量を表し、選言ページ量（disjunction  page  amount）はワードｗｉまたはｗｊのいずれか一方を含むページ５０の量を表す。基本類似性は連言ページ量を選言ページ量で割って求められる。一実施例では、連言ページ数はワードｗｉとワードｗｊを含むページ数を示し、選言ページ数はワードｗｉまたはワードｗｊのいずれかを含むページ数を示す。基本類似性は連言（conjunction）ページ数を選言（disjunction）ページ数で割って求めることができる。
【数８】
0005353173.tif 000009
【００３６】
図３は、基本類似性を記録した類似性マトリックス１１０の一例を示す図である。図示した例では、類似性マトリックス１１０はワードｗ１，．．．，ｗ５のペアごとの類似性を記録している。類似性マトリックス１１０によると、ワードｗ０とｗ１の間の類似性は０．００３であり、ワードｗ０とｗ２の間の類似性は０．００５であり、以下同様である。
【００３７】
図１に戻り、類似性グループは相互に類似性が高いワードのペアを含み、この類似性グループを用いてページのコンテンツに対するワードｗ１、ｗ２間の関係を捉える。類似性が類似性グループ閾値よりも高いことを、類似性が高いという。閾値は任意の適切な値であり、０．５０、０．６０、０．７５、０．９０、０．９５より大きな値であってもよい。１つのワードは２つ以上の類似性グループに属してもよい。一実施形態では、類似性グループはＢＤＤとして表すことができる。逆インデックス６２に、ＢＤＤのポインタをそのグループの各ワードとともに格納してもよい。
【００３８】
有向類似性を用いてワードｗｊに対するワードｗｉの重要性を測ることができる。類似性計算器３４は、ワードｗｊが与えられたときのワードｗｉの有向類似性を、ワードｗｉとｗｊを含むページ５０の量（例えば数）から計算する。ワードｗｉページ量は、ワードｗｉを含むページ５０の量を表す。ワードｗｊが与えられたときのワードｗｉの有向類似性は、連言ページ量をワードｗｊページ量で割ったものである。例えば、ワードｗｊページの数はワードｗｉを含むページ５０の数を示す。ワードｗｊが与えられたときのワードｗｉの有向類似性は、結合ページ５０の数をワードｗｉページ５０の数で割ったものである。
【数９】
0005353173.tif 000010
【００３９】
ＤＡｆｆｉｎｉｔｙ（ｗｉ，ｗｊ）はＤＡｆｆｉｎｉｔｙ（ｗｊ，ｗｉ）と同じではない。ワードｗｉとｗｊの間の有向類似性ＤＡｆｆｉｎｉｔｙ（ｗｉ，ｗｊ）が高いということは、ページ５０がワードｗｊを含むときにそのページ５０がワードｗｉを含む確率が高いということを示す。一例では、ページ［１  ２  ３  ４  ５  ６］がワードｗｉを含み、ページ［４  ２］がワードｗｊを含む。ワードｗｊを含むページがワードｗｉも含むということは、ワードｗｊの観点からは、ワードｗｉの重要性が高いということである。ワードｗｉを含むページの１／３のみがワードｗｊを含むということは、ワードｗｉの観点からは、ワードｗｊの重要性が低いということである。
【００４０】
図４は、ワードｗ０，．．．ｗ５の基本類似性を記録した類似性マトリックス１２０の一例を示す図である。上記の例では、ワード１２４はＡワード、ワード１２８はＢワードである。マトリックス１２０の行はＡワードが与えられたときのＢワードの類似性を記録し、類似性マトリックス１２０の列はＢワードが与えられたときの類似性を記録する。
【００４１】
図１に戻り、他のワードｗｊに対するワードｗｉの平均類似性を計算する。一実施形態では、平均類似性は、ワードｗｉとその他のすべてのワードｗｊとの間の類似性の平均である。Ｎ個のワードに対するワードｗｉの平均類似性は次式で表される。
【数１０】
0005353173.tif 000011
【００４２】
図５は、平均類似性を記録した類似性マトリックス１４０の一例を示す図である。行１４２はワード１乃至ワード５０，０００の基本類似性を記録している。行１４４はワード１乃至ワード５０，０００の平均類似性を記録している。
【００４３】
図１に戻り、ワードの平均類似性はそのワードの深さを示す。平均類似性が低いワードは深いワードであると考えられ、平均類似性が高いワードは浅いワードであると考えられる。深いワードは技術的であり、具体的であり、精密であるという傾向がある。深いワードの割合が高いページ５０は深いページであると考えられ、深いワードの割合が低いページ５０は浅いページであると考えられる。一実施形態では、ユーザは検索するワード及び／またはページ５０の深さを指定することができる。
【００４４】
ページ５０の深いワードは関係性が高いワードのクラスタを形成する。クラスタは共通のアイデアやテーマを表す。ページ５０のテーマ数はそのページ５０の具体性（specificity）を示す。テーマが少ないページ５０はより具体的であると考えられ、テーマが多いページ５０はあまり具体的でないと考えられる。
【００４５】
ワードｗｊに対するワードｗｉの差分類似性は、ワードｗｉとｗｊの間の有向類似性からワードｗｊのその他すべてのワードとの平均類似性を引いたものである。差分類似性は次式で表せる：
【数１１】
0005353173.tif 000012
【００４６】
差分類似性は、ページ５０にワードｗｊが出現する一般的な傾向によるバイアスを除去したものである。場合によっては、差分類似性は、ページがワードｗｊを含むときにそのページがワードｗｉを含む確率をより正確に示すものである。
差分類似性は様々な応用ができる。一例では、人の名前の間の差分類似性を用いて社会的ネットワークを研究できる。他の例では、言語要素間の差分類似性を用いて自然言語処理を研究できる。他の例では、製品間の差分類似性を用いてマーケティングを研究できる。
【００４７】
類似性計算器３４は、任意の適切な方法を用いて逆インデックスリストを検索し類似性を計算する。例えば、ワードｗｉとワードｗｊを両方とも含むページを特定するため、類似性計算器３４は、ワードｗｉのリストＷｉとワードｗｊのリストＷｊを検索して共通の要素（すなわち共通のページ識別子）を探す。
【００４８】
実施形態では、オントロジ生成器３８は、類似性マトリックスや類似性グラフなどの、言語のオントロジ６６を生成する。オントロジは、基本類似性、有向類似性、平均類似性、差分類似性その他の任意の適切な類似性から生成できる。オントロジ６６は、任意の適切な方法で、言語から選択されたワードから生成できる。例えば、その言語の一般的に使用されている部分のワードや、主題領域に関係するワードを選択する。
【００４９】
図示した実施例では、オントロジ生成器３８は類似性マトリックス生成器４２と類似性グラフ生成器４６を含む。類似性マトリックス生成器４２は、ワード間の類似性を記録する類似性マトリックスを生成する。類似性グラフ生成器４６は、ワード間の類似性を表す類似性グラフを生成する。類似性グラフでは、ノードはワードを表し、ノード間の有向エッジの重みはそのノードが表すワード間の類似性を表す。類似性グラフは任意の適切な次元数を有する。
【００５０】
図６は、類似性グラフ１５０の一例を示す図である。類似性グラフ１５０はノード１５４とリンク１５８を含む。ノード１５４はワードを表す。この例では、ノード１５４ａはワード「バイナリ（binary）」を表している。ノード１５４間の有向エッジの重みは、ノード１５４が表すワード間の類似性を表す。例えば、重みが大きければ類似性が大きい。ノード間のリンク１５８は、そのノード１５４が表すワード間の類似性がある類似性閾値より大きいことを示している。類似性閾値は任意の適切な値であり、例えば、０．２５、０．５、０．７５、０．９５であっても、これらより大きな値であってもよい。
【００５１】
図７は、図１のシステム１０で使用できるクラスタリングモジュール３１の一実施形態を示す図である。実施形態では、クラスタリングモジュール３１は、データセット中の関係のある要素のクラスタを特定することにより、そのデータセット中のパターンを発見する。実施形態では、クラスタリングモジュール３１は一組のワード（例えば、言語や一組のページ５０等）のクラスタを特定できる。一般的に、クラスタのワードは互いに強く関係しているが、クラスタ外のワードとは関係していない。ワードのクラスタはその一組のワードのテーマ（すなわちトピック）を指定する。
【００５２】
ある実施形態では、クラスタリングモジュール３１は、関係するワード間の類似性によりそのクラスタを特定する。その実施形態では、クラスタのワードは互いに強く類似しているが、クラスタ外のワードとは類似していない。一実施形態では、ワードは、かなり類似（sufficiently  affine）していれば類似性が高い（highly  affine）と考える。ワードは、類似性規準（例えば閾値）を満たせば十分類似している。以下に類似性規準の例を示す。
【００５３】
任意の適切な類似性を用いてクラスタを特定できる。実施形態では、クラスタリングモジュール３１は有向類似性を用いる。あるワードの他のワードに対する有向類似性はそのワードの共起性（co-occurrence）を特徴づける。クラスタは同様の共起性を有するワードを含んでいる。実施形態では、クラスタリングモジュール３１は差分類似性を用いる。  差分類似性は、ページ５０にあるワードが出現する一般的な傾向によるバイアスを除去する傾向がある。
【００５４】
図示した実施形態では、クラスタリングモジュール３１はクラスタリングエンジン２１０とクラスタリング分析器２１４とを含む。クラスタリングエンジン２１０は類似性によりワードのクラスタを特定し、クラスタリング分析器２１４は類似性によるクラスタリングを用いて様々な分析を行う。
【００５５】
クラスタリングエンジン２１０は任意の適切な方法で、類似性によるワードのクラスタを特定する。クラスタの特定方法の３つの例を説明する。一組のワードからのクラスタの構成と、ワードのクラスタへのソーティングと、ワードの類似性ベクトルの比較である。一実施形態では、クラスタリングエンジン２１０は一組のワードからクラスタを構成する。一例では、クラスタリングエンジン２１０は、類似性＊Ａｆｆ（ｗｉ，ｗｊ）を有するワード｛ｗｉ｝の集合ＷからクラスタＳを構成する。類似性値＊Ａｆｆ（ｗｉ，ｗｊ）はワードｗｉのワードｗｊに対する、有向類似性ＤＡｆｆｉｎｉｔｙ（ｗｉ，ｗｊ）や差分類似性ＤｉｆｆＡｆｆ（ｗｉ，ｗｊ）等の任意の適切な類似性を表す。ここで挙げる類似性値の例は規格化した値であってもよい。上記の例では、Ａｆｆｆｏｒ（ｗｉ，ｗｊ）は前方類似性を表し、Ａｆｆｂａｃｋ（ｗｊ，ｗｉ）は後方類似性を表す。  
上記の例では、クラスタＳはシード・ワードｗｑで始まる。カレント・ワード（current  word）ｗｘは、カレント・アイテレーション（current  iteration）において集合Ｗのワードと比較される、クラスタＳのワードを表す。カレント・ワードは、最初にシード・ワードｗｑに設定される。
【００５６】
１回の繰り返しにおいて、カレント・ワードｗｘはクラスタＳのワードに設定される。集合Ｗのワードｗｉは、カレント・ワードｗｘとの前方類似性Ａｆｆｆｏｒ（ｗｉ，ｗｊ）に応じてソートされる。ソートされた集合Ｗの始めから開始して、類似性規準を満たす候補ワードｗｃを特定する。類似性規準はカレント・ワードｗｘとの前方類似性規準（a  forward  affinity  with  the  current  word  wx  criterion）を含む：
【数１２】
0005353173.tif 000013
及び、シード・ワードｗｑとの後方類似性規準（a  backward  affinity  with  the  seed  word  wq  criterion）：
【００５７】
【数１３】
0005353173.tif 000014
ここで、Ｔｈｃｆは候補ワードの前方閾値を表し、Ｔｈｃｂは後方ワードの後方閾値を表す。候補ワード｛ｗｃ｝の順序付き集合の最初のワードをクラスタＳに加える。加えたワードの数はパラメータＳｉｚｅｃで与えられる。
【００５８】
閾値ＴｈｃｆとＴｈｃｂは、最小値と最大値の間にある任意の適切な値を有する浮動小数点パラメータである。例としては、ＴｈｃｆとＴｈｃｂの適切な値は実際の類似性の序列リスト（rank-ordered  list）から決定される。例えば、リストの２００番目の値を使用する。パラメータＳｉｚｅｃは任意の適切な値を有する整数パラメータである。適切な値の例として、デフォルト値を１，２，３または４にしてもよい。実施形態では、上記のパラメータは繰り返しによって変化してもよい。
【００５９】
繰り返し回数は任意の適切なものであればよい。一例では、繰り返し回数をこの方法の開始前に指定できる。他の例では、回数をこの方法の実行中に計算できる。例えば、その回数をクラスタＳの大きさの増大率から計算できる。
【００６０】
他の実施形態では、クラスタリングエンジン２１０は、一組のワードをクラスタにソーティングすることにより、クラスタを特定する。一例では、集合Ｗのワード｛ｗｉ｝を、差分類似性や有向類似性などの類似性＊Ａｆｆ（ｗｉ，ｗｊ）に応じてソートする。他の例では、ワード｛ｗｉ｝を、別のワード集合Ｑの各メンバーに対するワードｗｉの類似性の累積関数（合計等）によりソートする。集合Ｗは任意の適切な方法で選択することができる。例えば、集合Ｗはクエリに最も関係するＸ個のワードである。Ｘは任意の適切な値である。例えば、１０乃至１００、１００乃至２００、または２００以上の値である。
【００６１】
上記の例ではクラスタは最初、空である。集合Ｗの最初のワードｗｉをクラスタに入れる。各繰り返しにおいて、集合Ｗからカレント・ワードｗｘを選択する。＊Ａｆｆ（ｗｘ，ｗｆ）が類似性閾値Ｔｈにより与えられる類似性規準を満たせば、カレント・ワードｗｘをクラスタに入れる。ここで、ｗｆはそのクラスタに入れられた最初のワードを表す。閾値Ｔｈの値は任意の適切なものである。例えば、最小値が０．０で最大値が１．０のとき、０．１乃至０．５の範囲にある値である。＊Ａｆｆ（ｗｘ，ｗｆ）が閾値Ｔｈを満たさないとき、カレント・ワードｗｘは空のクラスタに入れられる。集合Ｗの各ワードに対して繰り返す。
【００６２】
集合Ｗのワードを処理してから、小さいクラスタを削除してもよい。例えば、ワード数がＹに満たないクラスタを削除してもよい。Ｙは任意の適切な値であり、例えば、３乃至５、５乃至１０、１０乃至２５、２５乃至５０、または５０以上の範囲の値である。
【００６３】
クラスタ数が満足のいく範囲になければ、閾値Ｔｈを変えて上記プロセスを繰り返す。閾値Ｔｈを変えることによりクラスタに入れる規準が厳しくなったりゆるくなったりする。上記の満足のいく範囲は、任意の適切な値であるクラスタ数の最小値と最大値により決めてもよい。適切な値の例としては、最小値については１乃至５、５乃至１０、または１０以上の範囲の値であり、最大値については１０乃至１５、１５乃至２０、または２０以上の範囲の値である。閾値Ｔｈを大きくしてクラスタ数を大きくしてもよいし、小さくしてクラスタ数を小さくしてもよい。
【００６４】
他の実施形態では、クラスタリングエンジン２１０は、ワードの類似性ベクトルを比較することによりクラスタを特定する。実施形態では、類似性マトリックスの行と列により類似性ベクトル＜ｗｉ，＊Ａｆｆ（ｗｉ，ｗ１），．．．，＊Ａｆｆ（ｗｉ，ｗｊ），．．．，＊Ａｆｆ（ｗｉ，ｗｎ）＞ができる。これはワードｗｉのワードｗｊ（ｊ＝１，．．．，ｎ）に対する類似性を表す。類似性値＊Ａｆｆ（ｗｉ，ｗｊ）はワードｗｉのワードｗｊに対する、有向類似性や差分類似性等の任意の適切な類似性を表す。
【００６５】
実施形態では、類似性値が同様である類似性ベクトルはクラスタを示す。説明のためだけに、類似性ベクトルを類似性空間におけるワードの類似性の座標とみなしてもよい。すなわち、各類似性値＊Ａｆｆ（ｗｉ，ｗｊ）をある次元の座標とみなす。類似性値が近い（similar）類似性ベクトルは、そのベクトルが付随するワードが類似性空間において互いに近いことを示している。すなわち、そのベクトルは、そのワードが他のワードと有する類似性関係が近いことを示し、同じクラスタに含めることが適当であることを示す。
【００６６】
類似性ベクトルは、適切な距離関数により、１つの類似性ベクトルが他の類似性ベクトルの近傍にあるとき、類似性ベクトルは近い。距離関数は、類似性ベクトルに対して、その大きさのベクトルの標準的なユークリッド距離として、またはその大きさのベクトルの余弦として定義することができる。距離関数は、クラスタリングエンジン２１０やユーザによって指定することもできる。
【００６７】
実施形態では、クラスタリングエンジン２１０はクラスタリング・アルゴリズムを用いて、互いに近い値を有する類似性ベクトルを特定する。クラスタリング・アルゴリズムの例には、ダイレクト（direct）・アルゴリズム、反復二分（repeated  bisection）・アルゴリズム、集積（agglomerative）・アルゴリズム、バイアス集積（biased  agglomerative）・アルゴリズムその他の適切なアルゴリズムなどがある。一例では、クラスタリングエンジン２１０は「ＣＬＵＴＯ」などのクラスタリングソフトウェアを含む。
【００６８】
クラスタリング分析器２１４は、任意の適切なアプリケーションにおいて分析のために類似性クラスタリングを用いる。一実施形態では、クラスタリング分析器２１４は類似性クラスタリングを用いてページをカテゴリ分けする。カテゴリはクラスタ識別子またはクラスタのメンバーと関連する。一例では、ページ５０のクラスタを特定し、そのページ５０をそのクラスタに応じてカテゴリ分けする。他の例では、ページ５０の重要なワードを選択し、そのワードを含むクラスタを見つける。ページ５０を見つけたクラスタに応じてカテゴリ分けしてもよい。
【００６９】
一実施形態では、クラスタリング分析器２１４は類似性クラスタリングを用いてページ５０のコーパスを分析する。コーパスは特定の主題、個人のコミュニティ、組織、その他のエンティティ（entity）に関連している。一例では、クラスタリング分析器２１４はコーパスのクラスタを特定し、そのクラスタからそのコーパスのコーパスキャラクタ（corpus  character）を決定する。コーパスキャラクタはそのコーパスに付随するエンティティ（entity）に関連するワードを示す。ページ５０は、コーパスキャラクタのクラスタを有するとき、そのエンティティに関連している。
【００７０】
一実施形態では、クラスタリング分析器２１４は類似性クラスタリングを用いて、検索クエリの曖昧性を除去し拡張する（query  disambiguation  and  expansion）。上記の実施形態では、クラスタリング分析器２１４は、検索クエリの検索タームを含むクラスタを特定する。クラスタにより、与えられた検索クエリに関連する代替的なワードやカテゴリが提供される。一例では、クラスタからのワードを検索者にレポートして、次の検索クエリを支援する。他の例では、クラスタリング分析器２１４は、クラスタからワードを選択して、新しい検索クエリを自動的に形成する。クラスタリング分析器２１４はその新しいクエリを順番に、または並行して実行する。
【００７１】
一実施形態では、クラスタリング分析器２１４は類似性クラスタリングを用いてソーシャルネットワークを調査（study）する。一例では、ページ５０はソーシャルネットワークに関する情報（insight）を提供する。かかるページの例としては、通信（手紙、電子メール、インスタントメッセージなど）、メモ、記事、議事録などがある。こうしたページ５０は、ソーシャルネットワークを形成する人々のユーザ識別子（名前など）であるワードを含む。名前のクラスタを特定して、そのネットワークを形成する人々の間の関係を分析する。一例では、別の類似性クラスタリングを用いて、システム管理者の名前など、情報を提供しないがほとんどのページ５０に現れる名前をフィルタ除去する。
【００７２】
実施形態では、クラスタリング分析器２１４は、データセットのクラスタを結合及び／または比較することにより、そのデータセットを分析する。一実施形態では、オーバーラップするデータセットのクラスタを比較する。１つのデータセットのクラスタを他のデータセットのクラスタにマッピングすると、そのデータセット間の関係についての情報（insight）が得られる。例えば、データセットは、職場のグループの文書の分析や、そのグループのソーシャルネットワークの調査（study）によるものである。ソーシャルネットワークのクラスタを文書の主題のクラスタにマッピングして、ソーシャルネットワークと主題の間の関係を分析する。
【００７３】
図８はオントロジ特性モジュール３２の一実施形態を示す図である。オントロジ特性モジュール３２は、一組のワード（例えば、ワードそのものやワードを含む文書）のオントロジ特性（ontology  features）を決定し、そのオントロジ特性を様々な場合に適用する。その一組のワードには文書の基本的ターム（essential  terms）が含まれているかも知れない。タームｔは、それに類似したｋ個のタームの少なくとも１つも文書に現れる場合、基本的タームである。そうでなければ、そのタームｔはその文書にとっては基本的ではない。
【００７４】
オントロジ特性は、ある分野においてある文書を他の文書から意味的に区別する特性（feature）軸に沿って、その文書を特徴づける数量化可能な尺度である。例えば、文書の深さは理解可能性に関してその文書を区別し、文書の具体性はフォーカスに関してその文書を区別し、文書のテーマは記載されたトピックスの範囲（addressed  range  of  topics）に関してその文書を区別する。オントロジ特性は任意の適切な方法で定義することができる。例えば、計算言語学における独立したアルゴリズムを用いて文書の可読性（readability）または深さ（depth）を特徴づけることができる。
【００７５】
図示した実施形態では、オントロジ特性モジュール３２は、深さエンジン２３０、テーマエンジン２４０、具体性エンジン２４４、オントロジ特性（ＯＦ）アプリケーションエンジン２５０を含む。深さエンジン２３０はワード（例えばワードそのものやワードを含む文書）の深さ（depth）を決定する。一般的に、深さはワードのテキスト的な精巧さ（textual  sophistication）を示す。深さがより大きい（深い）ワードは、より技術的かつ専門的であり、深さがより小さい（浅い）ワードは、より一般的なものである。実施形態では、深さモジュール３２は文書のワードの深さを計算し、そのワードの深さに基づきその文書の深さを計算する。実施形態では、深さエンジン２３０は深さ値及び／または深さランキングを文書及び／またはワードに割り当てる。より深い文書またはワードにはより高い深さ値または深さランキングが割り当てられ、より浅い文書またはワードにはより低い深さ値または深さランキングが割り当てられる。
【００７６】
深さエンジン２３０はワードの深さを任意の適切な方法で計算する。実施形態では、深さエンジン２３０は平均類似性によりワードの深さを計算する。上記の実施形態では、ワードの深さはそのワードの平均類似性の関数である。より深いワードはより低い平均類似性を有し、より浅いワードはより高い平均類似性を有する。具体例では、深さエンジン２３０はワードをその平均類似性によりランキングすることによりそのワードの深さを計算する。平均類似性が低いワードには高い深さランキングが与えられ、平均類似性が高いワードには低い深さランキングが与えられる。
【００７７】
実施形態では、深さエンジン２３０はクラスタリング分析を用いてワードの深さを計算する。上記の実施形態では、クラスタ内のワードは互いに強く類似しているが、クラスタ外のワードとはそれほど類似していない。クラスタ空間における距離を類似性により測るが、これは深さのインジケータである。実施形態では、属するクラスタ数が少ないワード、小さいクラスタに属するワード、及び／または他のクラスタから遠いクラスタに属するワードは深いものとみなされる。一方、属するクラスタ数が多いワード、大きいクラスタに属するワード、及び／または他のクラスタに近いクラスタに属するワードは浅いものとみなされる。
【００７８】
他の実施形態では、深さエンジン２３０は類似性グラフ１５０のリンク分析をしてワードの深さを計算する。リンク分析は、ＰＡＧＥＲＡＮＫなどの任意の適切なリンク分析アルゴリズムで行うことができる。便宜的に、図６の類似性グラフ１５０を利用してワードの深さを計算することもできる。類似性グラフ１５０はノード１５４とリンク１５８を含む。ノード１５４はワードを表す。ノード１５４間のリンク１５８は、そのノード１５４が表すワード間の類似性が、ある類似性閾値より大きいこと、すなわちそのワードが十分類似していることを示している。
【００７９】
実施形態では、深さエンジン２３０はノード１５４の人気度（popularity）を計算する。人気のあるノード１５４は浅いワードを表し、人気のないノード１５４は深いワードを表す。第１のノード１５４から第２のノード１５４へのリンク１３６は、第１のノード１５４による第２のノード１５４への人気度投票であると考えられる。また、人気のあるノード１５４からの投票（vote）は人気のないノード１５４からの投票よりも重みが大きい。さらに、第１のノード１５４の第２のノード１５４に対する類似性はその投票に重みづけする。深さエンジン２３０はノード１５４への重みつき投票から、そのノード１５４の人気度を計算する。人気のないワードは深いものと考えられ、人気のあるワードは浅いものと考えられる。
【００８０】
深さエンジン２３０は文書の深さを任意の適切な方法で計算する。実施形態では、深さエンジン２３０は文書の少なくとも１つのワード、一部のワード、またはすべてのワードの深さにより、その文書の深さを計算する。実施形態では、ワードの深さは平均類似性で与えられ、文書の深さをその文書のワードの平均類似性から計算してもよい。例えば、文書の浅さ（shallowness）はその文書のワードの平均類似性の平均、すなわち、その文書中の各ワードの平均類似性の合計をその文書中のワードの総数で割ったものである。文書の深さは、その文書の浅さの逆数として計算できる。
【００８１】
実施形態では、深さは文書中の選択された一組のワードの平均的深さから計算できる。選択された一組のワードには、その文書の基本的ワードが含まれる。例えば、（深さが）トップＸ％のワードが含まれる。ここで、Ｘは１０より小さくても、１０乃至２０でも、２０乃至３０でも、３０乃至４０でも、４０乃至５０でも、５０乃至６０でも、６０乃至７０で、７０より大きくてもよい。選択された一組のワードには、Ｐ％の標準的な文法ワードや、Ｑ％のストップワードが含まれない。ここで、ＰとＱは任意の適切な値であり、１０より小さくても、１０乃至２０でも、２０乃至３０でも、３０乃至４０でも、４０乃至５０でも、５０乃至６０でも、６０乃至７０で、７０より大きくてもよい。
【００８２】
実施形態では、深さエンジン２３０は文書におけるワードの深さの分布により、その文書の深さを計算する。実施形態では、深い文書は、深いワードを有する割合が高い。ワードの深さ分布の一例を、図９を参照して詳しく説明する。
【００８３】
図９は、ワードの深さの分布例を示すグラフ２４０である。グラフ２４０はある文書中のある深さを有するワードの割合を示す。実施形態では、深さエンジン２３０は最大閾値Ｔｈｍａｘを越える深さを有するワードを破棄してもよい。実施形態では、深さエンジン２３０は、深さが処理閾値Ｔｈｐｒｏｃより高く、（もしあれば）最大閾値Ｔｈｍａｘより低い処理範囲にあるワードに基づき文書の深さを計算する。割合Ｘ％は処理されないワードの割合を表し、割合Ｙ％は処理されるワードの割合を表す。割合Ｙ％は任意の適切な値を有し、例えば、２％乃至５％、５％乃至１０％、または１０％以上である。実施形態では、深さエンジン２３０は、一定のワードから文書の深さを計算する。例えば、深さエンジン２３０は言語中のある頻度レベル、例えば頻度がトップのワードからＺ個までのワード内にあるワードを選択する。ここでＺは、例えば１０，０００乃至５０，０００、または５０，０００以上の範囲の値である。
【００８４】
図８に戻り、実施形態では、深さエンジン２３０は文書の類似性（affinity）によりその文書の深さを計算する。文書間の類似性はその文書間の関係を示す。実施形態では、ワードの平均類似性がそのワードの深さを示すのと同様に、文書の平均類似性はその文書の深さを示す。文書の類似性は任意の適切な方法で定義することができる。一例では、共通ワード数Ｐ（Ｄ１＆Ｄ２）は文書Ｄ１とＤ２の両方にあるワードの数を示し、個別ワード数Ｐ（Ｄ１＋Ｄ２）は文書Ｄ１またはＤ２のいずれかにあるワードの数を示す。文書Ｄ１とＤ２の間の文書類似性ＤｏｃＡｆｆは次式で定義できる：
【数１４】
0005353173.tif 000015
【００８５】
深さエンジン２３０は、平均ワード類似性の計算と同様に平均文書類似性を計算する。平均類似性が低い文書は深いものであると考えられ、平均類似性が高い文書は浅いものであると考えられる。
【００８６】
実施形態では、深さエンジン２３０は、文書類似性グラフのリンク分析をして文書の深さを計算する。文書類似性グラフは類似性グラフ１５０と同様だが、文書類似性グラフのノードはワードではなく文書を表す。深さエンジン２３０は第１の文書を表す第１のノードから第２の文書を表す第２のノードへのリンクを、第１の文書が与えられたときの第２の文書の文書類似性で重み付けする。出て行くリンクの重みを規格化してもよい。
【００８７】
実施形態では、深さグラフをユーザインターフェースに表示して文書の深さを表示する。深さレベルを選択できる深さスライダを併せて表示してもよい。実施形態では、文書がより大きな文書のセクションであるとき、深さグラフはそのセクションを示す。
【００８８】
実施形態では、深さエンジン２３０は文書深さを任意の適切な方法で計算できる。例えば、文書の類似性のヒストグラムを処理し、及び／または深さに基づき異なるワードの割合をトランケート（truncate）してからヒストグラムを処理することができる。他の方法には、Ｇｕｎｎｉｎｇ−Ｆｏｇ法、Ｆｌｅｓｃｈ法、またはＦｒｙ法がある。
【００８９】
実施形態では、深さエンジン２３０は深さ値をある深さレベルにマッピングして、深さを較正してもよい。実施形態では、範囲Ｒｉの深さ値をレベルＬｉにマッピングする。例えば、Ｒ０＝｛ｒ０：ｒ０＜ｃ０｝をレベルＬ０にマッピングし、Ｒ１＝｛ｒ１：ｃ０＜ｒ１＜ｃ１｝をレベルＬ１にマッピングし、．．．、Ｒｎ＝｛ｒｎ：ｃｎ＜ｒｎ｝をレベルＬｎにマッピングする。これらの範囲は任意の適切な深さ値を含み、同じ大きさである必要はない。レベルの数は任意の適切なものであればよく、５より少なくても、５から７であっても、７または８であっても、８から１０であっても、１０から２０であっても、２０から５０であっても、５０から１００であっても、１００より多くてもよい。
【００９０】
テーマエンジン２４０は文書のテーマ（すなわちトピックス）を決定する。実施形態では、クラスタリングモジュール３１が特定した文書中のワードのクラスタから、テーマエンジン２４０がテーマを決定する。上記の通り、ワードのクラスタはその一組のワードのテーマ（すなわちトピック）を指定する。文書のテーマはその文書の内容に関して有用な情報を提供する。例えば、クラスタ｛腎臓、肝臓、タンパク質、問題｝を含む文書は、おそらく腎臓の機能低下による肝臓からのタンパク質のもれに関するものであり、インゲン豆のタンパク質成分に関するものではない。
【００９１】
実施形態では、テーマエンジン２４０はテーママップからテーマを決定する。上記の実施形態では、例えば、ターム頻度−逆文書頻度（ＴＦ−ＩＤＦ）（term  frequency-inverse  document  frequency）法など任意の適切な方法を用いて文書からキーワードを抽出する。キーワードを用いてテーママップからテーマの候補を選択する。テーマ候補を文書と比較して、そのテーマがその文書に合致するか決定する。例として、テーマ候補のヒストグラムを文書のヒストグラムと比較する。テーマ候補が文書と合致したら、そのテーマにより、その文書のテーマのタイプや数を推定する。
【００９２】
具体性エンジン２４４は文書の具体性（specificity）を計算する。実施形態では、具体性エンジン２４４は、具体性値及び／または具体性ランキングを文書に割り当てる。より具体的な文書にはより高い具体性値または具体性ランキングが割り当てられ、より具体的でない文書にはより低い具体性値または具体性ランキングが割り当てられる。
【００９３】
実施形態では、具体性エンジン２４０は文書のテーマの数から具体性を計算する。例として、具体的な文書のテーマは少なく、具体的でない文書のテーマは多い。  実施形態では、具体性エンジン２４０は文書のテーマの数と、そのテーマ間の類似性から具体性を計算する。例として、具体的な文書のテーマは、テーマ間の類似性が高くて少ない。一方、具体的でない文書のテーマは、テーマ間の類似性が低くて多い。
【００９４】
実施形態では、テーマの数は深さ（すなわちレベル）に依存する。例えば、深さが小さい１つのテーマは深さが大きい複数のテーマを表す。実施形態では、深さはユーザが深さスライダを用いて選択するか、予め決まっている。実施形態では、レベルはユーザが選択するか、予め決まっている。例えば、任意の適切な数のレベルを決めて、そのレベルに対して深さを計算する。例えば、レベルは、ドメインベース（例えば、エンジニアリング、医療、ニュース、スポーツ、金融などのドメイン）、専門ベース（例えば、心臓科、眼科、腎臓科などの専門）、トピックベース（例えば、高血圧、コレステロール、バイパス手術、動脈硬化などのトピックス）、詳細ベース（例えば、立ちくらみ、慢性高血圧、急性高血圧などの詳細）、解決策ベース（例えば、老人性病因、医薬、遺伝子などの解決策）、人ベース（例えば、ユーザクエリレベルなど）などがある。
【００９５】
オントロジ特性アプリケーションエンジン２５０は、（深さ、テーマ、具体性などの）オントロジ特性を用いて、任意の適切な状況でオントロジ特性分析を行う。適切な場合とは、例えば、オントロジ特性による文書の検索、ソート、推奨、選択や、文書のオントロジ特性のレポートや、ユーザの文書（または複数組みの文書）のオントロジ特性の決定などである。実施形態では、オントロジ特性アプリケーションエンジン２５０はオントロジ特性に関する情報を含むインデックスを使用する。一例では、オントロジ特性アプリケーションエンジン２５０は、深さランキングにより生成及び／または維持された文書深さ（ＤＤ）逆インデックス６２を使用する。ＤＤ逆インデックス６２は、ＤＤ逆インデックスリストを含む。ワードのＤＤ逆インデックスリストは、そのワードを含む文書（またはページ５０）の文書識別子をリストする。文書の文書識別子はその文書の深さを示す。例えば、文書識別子のエンコードに用いるバイナリエンコーディングは、深さを示す。場合によっては、ＤＤ逆インデックスリストは十分な深さを有する文書のみをリストしたものである。他の例では、オントロジ特性アプリケーションエンジン２５０は、逆インデックス６２に加えてランキングテーブルと深さテーブルを利用する。深さテーブルは文書の深さを示すものである。
【００９６】
実施形態では、オントロジ特性アプリケーションエンジン２５０は、指定された文書深さや具体性の値などの指定されたオントロジ特性値を有する文書を検索する。指定地は予め決められていても、計算してもユーザが選択してもよい。実施形態では、深さスライダや具体性スライダを用いて値を選択してもよい。
【００９７】
実施形態では、オントロジ特性アプリケーションエンジン２５０は、文書をソートするソート規準としてオントロジ特性を利用する。例えば、オントロジ特性アプリケーションエンジン２５０は、ソート規準だけでなく、テーマに関して文書深さ及び／または具体性により文書をソートする。例として、オントロジ特性アプリケーションエンジン２５０は、ＤＤ逆インデックス６２を検索して、文書深さによりソートされた文書を求める。例として、オントロジ特性アプリケーションエンジン２５０は、非ＤＤ逆インデックス６２を用いて文書を検索して、深さにより文書をソートする。
【００９８】
実施形態では、オントロジ特性アプリケーションエンジン２５０は、オントロジ特性の値をクライアント２０にグラフィカルに表示する。例えば、検索結果のトップＸ％の文書など、文書の一部または全部をグラフィカルに表示してもよい。オントロジ特性値を任意の適切な方法で表示できる。例として、数字、言葉、アイコンなどのグラフィカルインジケータにより値を示すことができる。例えば、検索結果のリスト中のアイテムや、オンラインニュースペーパーのヘッドラインや、文書アイコンなどの隣にグラフィカルインジケータを配置してもよい。例として、既存の図象（iconography）を修正して値を表示できる。例えば、テキストのサイズ、フォント、スタイル、カラーやグラフィカルインジケータにより値を示すことができる。他の例では、グラフにより値を示すことができる。オントロジ特性ヒストグラムは、文書量軸とオントロジ特性軸を含み、あるオントロジ特性値を有する文書の量を示す。例えば、文書量軸と文書深さ軸とを含む文書深さヒストグラムは、文書深さごとの文書量を示している。
【００９９】
実施形態では、ユーザは、オントロジ特性アプリケーションエンジン２５０により、特定のオントロジ特性値を有する文書の検索をすることができる。ユーザは、クエリで用いる複数のワードのそれぞれにオントロジ特性値を指定することができる。例として、ユーザは、オントロジ特性アプリケーションエンジン２５０により深さを選択するオプションを提供され、深さを選択して入力することができる。そのオプションは任意の適切な方法で提供することができる。例えば：（ｉ）絶対的ターム（深さを表す数字や数字の範囲など）；（ｉｉ）相対的ターム（深さに関する検索結果の一部で、例えば「最も深いＸ％」など）；（ｉｉｉ）意味的ターム（「入門的」、「浅い」、「深い」、「極めて深い」、「非常に技術的」など）；（ｉｖ）グラフィカルターム（スライダ、ボタン、その他のグラフィカル要素など）；（ｖ）任意の適切なタームの組み合わせ（意味的ラベルを伴うスライダなど）である。場合によっては、スライダの端は「浅い」と「深い」である。ユーザはスライダを一端または他端に向けて動かして深さを選択できる。検索結果が求まると、スライダの横に文書深さヒストグラムが表示され、スライダを文書深さの軸として使用できる。
【０１００】
実施形態では、オントロジ特性アプリケーションエンジン２５０はユーザのオントロジ特性キャラクタを計算できる。オントロジ特性キャラクタには、テーマとの関連でユーザ深さとユーザ具体性が含まれる。オントロジ特性キャラクタはそのユーザの文書のオントロジ特性を記述する。例えば、科学者は、第三者である評価者（third  grader）が使う文書より深い文書を使う。オントロジ特性キャラクタはテーマに対して与えられる。例えば、遺伝学者は、詩の分野で使うものよりも深い文書を遺伝学の分野では使う。オントロジ特性キャラクタを用いてユーザの専門を決定し、その人の経歴を構成しても、ソーシャルネットワークを分析してもよい。
【０１０１】
ユーザの通信（電子メールやインスタントメッセージなど）や、ウェブページや、検索履歴（検索クエリや選択したページなど）などの任意の適切な文書を分析してオントロジ特性キャラクタを推定する。実施形態では、オントロジ特性アプリケーションエンジン２５０はオントロジ特性キャラクタ（ontology  feature  character）を時間的に追跡して、過去のキャラクタを使って将来のキャラクタを予測できる。例として、オントロジ特性アプリケーションエンジン２５０では、一般的にユーザ深さ及び／または具体性は時間及び／またはある分野における活動とともに増大することを仮定してもよい。
【０１０２】
実施形態では、オントロジ特性アプリケーションエンジン２５０では複数の動作を組み合わせてもよい。例えば、オントロジ特性アプリケーションエンジン２５０はユーザの深さをモニターし、そのユーザ深さに応じた文書を検索する。一例では、ユーザ深さをモニターし、ニュースをその深さに応じて提供する。将来のユーザ深さを予測して、予測されたユーザ深さに合ったニュースを提供する。
【０１０３】
本発明の実施形態により以下の技術的有利性がもたらされる。一実施形態の技術的優位性は、文書のテーマ数によりその文書の具体性を決定できる点にある。文書のテーマ数が少ないとき、その文書はより具体的である。文書のテーマ数が多いとき、その文書はより具体的でない。一実施形態の他の技術的優位性は、具体性分析を行うという点である。具体性分析の例としては、要求された文書具体性（document  specificity）を満たす文書の検索、文書の具体性を示すグラフィカル要素の表示、ユーザ文書によるユーザ具体性（user  specificity）の決定がある。本発明の実施形態には、上記の技術的な有利性を含まないもの、一部を含むもの、すべてを含むものがある。図面、詳細な説明、及び特許請求の範囲に基づき、当業者には容易に１つ以上の技術的な優位性が明らかとなるであろう。
【０１０４】
本開示を実施形態に関して説明したが、これらの実施形態の変形や置き換えは当業者には明らかであろう。従って、上記の実施形態の説明は本開示を限定するものではない。特許請求の範囲に記載した本開示の精神と範囲から逸脱せずに、その他の変更、置き換え、改変も可能である。
【０１０５】
以上の実施形態について、次の付記を記載する。
（付記１）  有体媒体に記憶されたレコードにアクセスする段階であって、前記レコードは複数の文書の複数のクラスタを記録し、文書は複数のワードを含み、クラスタは前記複数のワードのうちの充分類似した複数のワードを含む段階と、
前記複数の文書の少なくとも一部のうちの各文書のテーマ数を決定（establish）する段階と、
各文書のテーマ数が少なければ前記各文書はより具体的であり、前記各文書のテーマ数が多ければ前記各文書はより具体的でないと決定することにより、前記テーマ数により前記各文書の具体性を決定する段階とを含む方法。
（付記２）  前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する段階は、さらに、
前記各文書のクラスタ数を決定する段階と、
前記クラスタ数から前記各文書のテーマ数を計算する段階とを含む、付記１に記載の方法。
（付記３）  前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する段階は、さらに、
テーマ数を決定する深さを特定する段階と、
特定した深さに対してテーマ数を決定する段階とを含む、付記１に記載の方法。
（付記４）  前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する段階は、さらに、
前記各文書から複数のキーワードを選択する段階と、
前記キーワードに関係するテーマ候補を特定する段階と、
前記テーマ候補が前記文書と一致したとき、前記テーマ候補を前記文書のテーマと決定する段階とを含む、付記１に記載の方法。
（付記５）  文書の具体性要求を含む検索クエリを受け取り、
前記検索クエリと前記文書具体性要求とを満たす前記複数の文書のうちの文書を検索することにより、具体性分析を行う、付記１に記載の方法。  
（付記６）  前記複数の文書の各文書の具体性のグラフィカル表示を行うことにより、具体性分析を行う、前記グラフィカル表示はグラフィカルインジケータとグラフィカルな修正とグラフとよりなる集合から選択した要素を含む、付記１に記載の方法。
（付記７）  検索クエリを受け取り、
前記検索クエリを満たす一組の文書を検索し、
前記一組の文書の具体性により前記一組の文書をソートすることにより、具体性分析を行う、付記１に記載の方法。
（付記８）  前記複数の文書はユーザに関連し、
前記テーマ数により前記各文書の具体性を決定する段階は、前記複数の文書からユーザのユーザ具体性を決定する段階をさらに含む、付記１に記載の方法。
（付記９）  前記複数の文書はユーザに関連し、
前記テーマ数により前記各文書の具体性を決定する段階は、前記複数の文書からユーザのユーザ具体性を決定する段階をさらに含み、
前記ユーザ具体性により前記ユーザに対して一以上の文書を選択する段階をさらに含む、付記１に記載の方法。
（付記１０）  前記複数の文書はユーザに関連し、
前記テーマ数により前記各文書の具体性を決定する段階は、前記複数の文書からユーザのユーザ具体性を決定する段階をさらに含み、
前記ユーザの前記ユーザ具体性を監視する段階をさらに含む、付記１に記載の方法。
（付記１１）  前記複数の文書はコーパスに関連づけられ、
前記テーマ数により前記各文書の具体性を決定する段階は、前記複数の文書からコーパスのコーパス具体性を決定する段階をさらに含む、付記１に記載の方法。
（付記１２）  実行したとき、
有体媒体に記憶されたレコードにアクセスする段階であって、前記レコードは複数の文書の複数のクラスタを記録し、文書は複数のワードを含み、クラスタは前記複数のワードのうちの充分類似した複数のワードを含む段階と、
前記複数の文書の少なくとも一部のうちの各文書のテーマ数を決定（establish）する段階と、
各文書のテーマ数が少なければ前記各文書はより具体的であり、前記各文書のテーマ数が多ければ前記各文書はより具体的でないと決定することにより、前記テーマ数により前記各文書の具体性を決定する段階と
を実行するソフトウェアをエンコードしたコンピュータ読み取り可能有体媒体。
（付記１３）  前記各文書のクラスタ数を決定し、
前記クラスタ数から前記各文書のテーマ数を計算することにより、
前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する、付記１２に記載のコンピュータ読み取り可能有体媒体。
（付記１４）  テーマ数を決定する深さを特定し、
特定した深さに対してテーマ数を決定することにより、
前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する、付記１２に記載のコンピュータ読み取り可能有体媒体。
（付記１５）  前記各文書から複数のキーワードを選択し、
前記キーワードに関係するテーマ候補を特定し、
前記テーマ候補が前記文書と一致したとき、前記テーマ候補を前記文書のテーマと決定することにより、
前記複数の文書の前記少なくとも一部のうちの各文書のテーマ数を決定する、付記１２に記載のコンピュータ読み取り可能有体媒体。
（付記１６）  文書の具体性要求を含む検索クエリを受け取り、
前記検索クエリと前記文書具体性要求とを満たす前記複数の文書のうちの文書を検索することにより、
具体性分析を行う、付記１２に記載のコンピュータ読み取り可能有体媒体。
（付記１７）  前記複数の文書の各文書の具体性のグラフィカル表示を行うことにより、具体性分析を行う、前記グラフィカル表示はグラフィカルインジケータとグラフィカルな修正とグラフとよりなる集合から選択した要素を含む、付記１２に記載のコンピュータ読み取り可能有体媒体。
（付記１８）  検索クエリを受け取り、
前記検索クエリを満たす一組の文書を検索し、
前記一組の文書の具体性により前記一組の文書をソートすることにより、
具体性分析を行う、付記１２に記載のコンピュータ読み取り可能有体媒体。
（付記１９）  前記複数の文書はユーザに関連し、
前記コンピュータ読み取り可能有体媒体は、前記複数の文書からユーザのユーザ具体性を決定することにより、前記テーマ数により前記各文書の具体性を決定する、付記１に記載の方法。
（付記２０）  前記複数の文書はユーザに関連し、
前記コンピュータ読み取り可能有体媒体は、さらに、
前記複数の文書からユーザのユーザ具体性を決定することにより、前記テーマ数により前記各文書の具体性を決定し、
さらに、前記ユーザ具体性により前記ユーザに対して一以上の文書を選択する、付記１に記載の方法。
（付記２１）  前記複数の文書はユーザに関連し、
前記コンピュータ読み取り可能有体媒体は、さらに、
前記複数の文書からユーザのユーザ具体性を決定することにより、前記テーマ数により前記各文書の具体性を決定し、
前記ユーザの前記ユーザ具体性を監視する、
付記１に記載の方法。
（付記２２）  前記複数の文書はコーパスに関連づけられ、
前記コンピュータ読み取り可能有体媒体は、さらに、
前記複数の文書からコーパスのコーパス具体性を決定することにより、前記テーマ数により前記各文書の具体性を決定する、
付記１に記載の方法。
【図面の簡単な説明】
【０１０６】
【図１】文書の具体性を決定するシステム１０の一実施形態を示す図である。
【図２】図１のシステムで利用できる類似性モジュールの一実施形態を示すブロック図である。
【図３】基本類似性を記録する類似性マトリックスの一例を示す図である。
【図４】基本類似性を記録する類似性マトリックスの一例を示す図である。
【図５】平均類似性を記録する類似性マトリックスの一例を示す図である。
【図６】類似性グラフの一例を示す図である。
【図７】図１のシステムで使用できるクラスタリングモジュールの一実施形態を示す図である。
【図８】図１のシステムで利用できるオントロジ・フィーチャ・モジュールの一実施形態を示すブロック図である。
【図９】ワードの深さの分布例を示すグラフである。
【符号の説明】
【０１０７】
１０  システム
２０  クライアント
２２  サーバ
２４  メモリ
３０  類似性モジュール
３１  クラスタリングモジュール
３２  オントロジ特性モジュール
３４  類似性計算器
３８  オントロジ生成器
４２  類似性マトリクス生成器
４６  類似性グラフ生成器
４８  ワード推奨器
５０  ページ
５４  レコード
５８  インデックス
６２  逆インデックス
６６  オントロジ
６７  クラスタ
２１０  クラスタリングエンジン
２１４  クラスタ分析器
２３０  深さエンジン
２４０  テーマエンジン
２４４  具体性エンジン
２５０  オントロジ特性アプリケーションエンジン
【図１】
0005353173.tif 000016
【図２】
0005353173.tif 000017
【図３】
0005353173.tif 000018
【図４】
0005353173.tif 000019
【図５】
0005353173.tif 000020
【図６】
0005353173.tif 000021
【図７】
0005353173.tif 000022
【図８】
0005353173.tif 000023
【図９】
0005353173.tif 000024