(57)【要約】【課題】  文書の階層型分類において、情報のカテゴリを、検索に関連する情報を含むバイナリツリーのノードを含むバイナリツリーとして構成する。【解決手段】  バイナリツリーは、１組の訓練文書を検査し、この文書を２つの子ノードに分けることによって訓練または形成する。次いでこの文書の組のそれぞれをさらに２つのノードに分割して、バイナリツリーデータ構造を作成する。ノードは、訓練文書のすべてが２つの子ノードのいずれかまたは両方にある尤度を最大限にするように生成する。一例で、バイナリツリーの各ノードは、用語のリストに関連付けることができ、各用語のリスト内の各用語は、そのノードが与えられた文書にその用語が出現する確率に関連付けられる。新しい文書は、ツリーのノードによってカテゴリ化することができる。例えば、新しい文書を、その文書と関連のノードとの間の統計的類似度に基づいて特定のノードに割り当てることができる。【選択図】  図２
2006018829.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）１組の訓練文書に基づいた訓練用語のリストを受信し、第１の確率の組を含む第１の兄弟ノードを生成し、第２の確率の組を含む第２の兄弟ノードを生成するように構成されているノード生成器であって、前記第１の確率の組は、前記訓練用語のリスト内の用語ごとに、前記用語が文書に出現する確率を含み、前記第２の確率の組は、前記訓練用語のリスト内の用語ごとに、前記用語が文書に出現する確率を含むノード生成器と、
（ｂ）前記第１および第２の確率の組に基づいて、前記１組の訓練文書の各文書を、前記第１の兄弟ノード、前記第２の兄弟ノード、およびヌルセットから成るグループのうちの少なくとも１つに関連付けるように構成されている文書割当器であって、前記文書は第１の文書セットを形成する前記第１の兄弟ノードに関連付けられ、前記文書は第２の文書セットを形成する前記第２の兄弟ノードに関連付けられる文書割当器と、
（ｃ）前記第１の文書セットおよび第２の文書セットのうちの少なくとも一方を前記ノード生成器に接続して、前記ノード生成器および前記文書割当器の再帰的性能に基づいて、複数の兄弟ノードの階層を含むバイナリツリーデータ構造を作成するように構成されているツリーマネージャと
を含むコンピュータ実行可能構成要素を有することを特徴とするコンピュータ可読媒体。
【請求項２】
新しい文書を、前記確率の組の前記生成された確率に基づいて前記複数の兄弟ノードのうちの少なくとも１つのノードに関連付けるように構成されている文書ソータをさらに含むことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記文書ソータは、前記新しい文書と前記第１および第２の兄弟ノードのそれぞれとの間の統計距離を比較することを特徴とする請求項２に記載のコンピュータ可読媒体。
【請求項４】
前記１組の訓練文書を受信し、前記１組の訓練文書内の前記文書の少なくとも一部分に出現する用語に基づいて前記訓練用語のリストを生成するように構成されている用語生成器をさらに含むことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項５】
前記用語生成器は、前記文書の少なくとも一部分に出現する前記用語の出現頻度に基づいて前記訓練用語のリストを生成することを特徴とする請求項４に記載のコンピュータ可読媒体。
【請求項６】
前記用語生成器は、予め定められた排除用語のリストを考慮に入れることを特徴とする請求項４に記載のコンピュータ可読媒体。
【請求項７】
前記ノード生成器は、前記第１および第２の確率の組に基づいて第１および第２のノードに関連付けられた訓練文書のすべてについての尤度を最大にすることに基づいて、前記第１および第２の確率の組を決定することを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項８】
前記ノード生成器は、期待値最大化アルゴリズムに基づいて前記尤度を最大にすることを特徴とする請求項７に記載のコンピュータ可読媒体。
【請求項９】
前記文書割当器は、前記１組の訓練文書の各文書と、前記第１のノードおよび前記第２のノードのそれぞれとの間の統計距離値を決定することを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１０】
前記文書割当器は、前記文書と前記第１のノードとの間の前記決定された距離値が予め定められた閾値を下回る場合、前記１組の訓練文書の文書を前記第１のノードに関連づけることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記距離値はＫｌ  ｄｉｖｅｒｇｅｎｃｅ値であることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１２】
（ａ）１組の訓練文書で検出される個々の用語に割り当てられた第１の確率のリストが関連付けられているコンピュータ可読媒体の少なくとも１つの領域に格納されているルートノードと、
（ｂ）前記コンピュータ可読媒体の少なくとも１つの領域に格納され、親−子関係で前記ルートノードに関連付けられている第１の子ノードであって、１組の訓練ノードで検出される個々の用語に割り当てられた第２の確率のリストが関連付けられている第１の子ノードと、
（ｃ）前記コンピュータ可読媒体の少なくとも１つの領域に格納され、親−子関係で前記ルートノードに関連付けられている第２の子ノードであって、１組の訓練ノードで検出される個々の用語に割り当てられた第３の確率のリストが関連付けられている第２の子ノードと
を含むバイナリツリーデータ構造を格納することを特徴とするコンピュータ可読媒体。
【請求項１３】
（ａ）文書に出現する複数の用語と、
（ｂ）バイナリ分類ツリーのどのノードが前記文書に関連付けられているかを示すノードインジケータを含むメタデータであって、前記バイナリ分類ツリーの各ノードは、用語リストおよび用語確率リストに関連付けられるメタデータと
を含む前記文書を格納することを特徴とするコンピュータ可読媒体。
【請求項１４】
前記メタデータはテキスト文字列を含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記テキスト文字列は、前記バイナリ分類ツリーを介する前記関連のノードへの前記パスのバイナリ指示を含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
（ａ）１組の訓練文書に基づいてバイナリ分類ツリーを作成するステップであって、前記バイナリ分類ツリーの各ノードは用語のリストに関連付けられ、前記各用語のリスト内の各用語が当該用語が前記ノードに与えられた文書に出現する確率に関連付けられるステップと、
（ｂ）新しい文書を当該文書と前記ノードとの間の距離値に基づいて前記バイナリツリーの少なくとも１つのノードに関連付けるステップと
を含むことを特徴とする方法。
【請求項１７】
前記バイナリ分類ツリーを作成するステップは、前記１組の訓練文書内の各文書が前記バイナリ分類ツリーの２つの兄弟ノードのそれぞれに関連付けられている前記用語のリストによって生成される尤度を最大にする期待値最大化アルゴリズムに基づいて文書に出現する前記用語の各確率を決定するステップを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記距離値はＫｌ  ｄｉｖｅｒｇｅｎｃｅに基づいて決定されることを特徴とする請求項１６に記載の方法。
【請求項１９】
前記新しい文書は距離閾値を下回るＫｌ  ｄｉｖｅｒｇｅｎｃｅを有するノードに関連付けられていることを特徴とする請求項１８に記載の方法。
【請求項２０】
前記新しい文書を関連付けるステップは、前記新しい文書を、パスが前記パスにわたって最も小さいＫｌ  ｄｉｖｅｒｇｅｎｃｅを有するノードに関連付けるステップを含むことを特徴とする請求項１８に記載の方法。
【請求項２１】
前記バイナリ分類ツリーを作成するステップは、前記用語のリストに関連付けられている前記ノードの親ノードに関連付けられている前記用語のリストに基づいてノードに関連付けられる用語の各リストを決定するステップを含むことを特徴とする請求項１６に記載の方法。
【請求項２２】
前記バイナリ分類ツリーを作成するステップは、前記１組の訓練文書の少なくとも一部分を第１の子ノード、第２の子ノード、およびヌルセットのうちの少なくとも１つに関連付けるステップを含むことを特徴とする請求項１６に記載の方法。
【請求項２３】
前記訓練文書の少なくとも一部分を関連付けるステップは、各用語が前記第１の子ノードに関連付けられる各確率、および各用語が前記第２の子ノードに関連付けられる各確率に基づくことを特徴とする請求項２２に記載の方法。
【請求項２４】
（ａ）文書にアクセスするステップと、
（ｂ）１組の訓練用語が前記文書に出現する第１の確率に基づいて、前記文書と２つの兄弟ノードのうちの第１のものとの間の第１の距離値を決定するステップと、
（ｃ）前記１組の訓練用語が前記文書に出現する第２の確率に基づいて、前記文書と２つの兄弟ノードのうちの第２のものとの間の第２の距離値を決定するステップと、
（ｄ）前記第１の距離値が距離閾値を下回る場合、２つの子ノードが２つの兄弟ノードのうちの第１のものに関連付けられているかどうかを決定するステップと、
（ｅ）２つの子ノードが２つの兄弟ノードのうちの第１のものに関連付けられている場合、前記文書と前記２つの子ノードのうちの前記第１のものとの間の第３の距離値を決定し、前記文書と前記第２の子ノードのうちの第２のものとの間の第４の距離値を決定するステップと、
（ｆ）２つの子ノードが２つの兄弟ノードのうちの第１のものに関連付けられている場合、前記第３の距離値および前記第４の距離値に基づいて前記文書を前記第１および第２の子ノードのうちの少なくとも一方に関連付けるステップと
を含むステップを実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項２５】
前記第１の距離値を決定するステップは、前記文書と２つの兄弟ノードのうちの第１のものとの間の第１のＫｌ  ｄｉｖｅｒｇｅｎｃｅを決定するステップを含み、前記第２の距離値を決定するステップは、前記文書と２つの兄弟ノードのうちの第２のものとの間の第２のＫｌ  ｄｉｖｅｒｇｅｎｃｅを決定するステップを含むことを特徴とする請求項２４に記載のコンピュータ可読媒体。
【請求項２６】
前記距離閾値は前記第２の距離値であることを特徴とする請求項２４に記載のコンピュータ可読媒体。
【請求項２７】
前記距離閾値は予め定められたエントロピ値であることを特徴とする請求項２４に記載のコンピュータ可読媒体。
【請求項２８】
前記第２の距離値が前記距離閾値を下回るかどうかを決定し、他の２つの子ノードが２つの兄弟ノードのうちの第２のものに関連付けられているかどうかを決定するステップをさらに含むことを特徴とする請求項２４に記載のコンピュータ可読媒体。
【請求項２９】
他の２つの子ノードが２つの兄弟ノードのうちの第２のものに関連付けられている場合、前記文書と前記他の２つの子ノードのうちの第１のものとの間の第５の距離値を決定し、前記文書と前記他の２つの子ノードのうちの第２のものとの間の第６の距離値を決定するステップをさらに含むことを特徴とする請求項２８に記載のコンピュータ可読媒体。
【請求項３０】
他の２つの子ノードが２つの兄弟ノードのうちの第２のものに関連付けられていない場合、前記文書を２つの兄弟ノードのうちの第２のものに関連付けるステップをさらに含むことを特徴とする請求項２８に記載のコンピュータ可読媒体。
【請求項３１】
２つの子ノードが２つの兄弟ノードのうちの第１のものに関連付けられていない場合、前記文書を２つの兄弟ノードのうちの第１のものに関連付けるステップをさらに含むことを特徴とする請求項２４に記載のコンピュータ可読媒体。
【請求項３２】
前記第１および第２の距離値のいずれも前記距離閾値を下回らない場合、前記文書を２つの兄弟ノードのうちの前記第１および第２のものの親ノードに関連付けるステップをさらに含むことを特徴とする請求項２４に記載のコンピュータ可読媒体。
【請求項３３】
（ａ）用語のリストをそれぞれ含む１組の訓練文書を受信するステップと、
（ｂ）前記用語のリストに列挙された前記用語の少なくとも一部分から第１の組の訓練用語を選択するステップと、
（ｃ）前記訓練用語ごとに、前記訓練用語が任意の文書に出現する第１の確率を生成し、その確率を第１のノードに関連付けるステップと、
（ｄ）前記訓練用語ごとに、前記訓練用語が任意の文書に出現する第２の確率を生成し、その確率を第２のノードに関連付けるステップと、
（ｅ）前記訓練用語ごとの前記第１および第２の確率に基づいて、前記用語のリストの各々を、前記第１のノード、前記第２のノード、およびヌルセットから成る前記グループのうちの少なくとも１つに関連付けるステップと、
（ｆ）前記第１のノードに関連付けられている前記用語のリストに列挙された前記用語の少なくとも一部分から第２の組の訓練用語を形成するステップと、
（ｇ）前記第２の組の訓練用語内の前記訓練用語ごとに、前記訓練用語が任意の文書に出現する第３の確率を生成し、その確率を第３のノードに関連付けるステップと、
（ｈ）前記第２の組の訓練用語内の前記訓練用語ごとに、前記訓練用語が任意の文書に出現する第４の確率を生成し、その確率を第４のノードに関連付けるステップと、
（ｉ）訓練用語ごとの前記第３および第４の確率に基づいて、用語の各リストを、前記第３のノード、前記第４のノード、および前記ヌルセットから成る前記グループのうちの少なくとも１つに関連付けるステップと
を含むことを特徴とする方法。
【請求項３４】
前記用語の前記確率を生成するステップは、前記用語のリストの各々が前記バイナリツリーの層の第１のノードおよび第２のノードの少なくとも一方にある前記確率を最大にするステップを含むことを特徴とする請求項３３に記載の方法。
【請求項３５】
新しい文書を前記バイナリツリーのノードに割り当てるステップをさらに含むことを特徴とする請求項３３に記載の方法。
【請求項３６】
前記新しい文書を割り当てるステップは、前記新しい文書に出現する用語の新しいリストを生成し、各用語が前記ツリーの各ノードに関連付けられる前記確率に基づいて前記ツリーを歩くステップを含むことを特徴とする請求項３５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は分類生成を対象とし、より詳細には、文書の自動分類生成を対象とする。
【背景技術】
【０００２】
対象の特定の文書を見つけるために、コンピュータユーザは、クエリエンジンによる電子検索を行って文書の集まりを探すことができる。しかし、インターネット上のＷｅｂページや文書データベースなどの文書の集まりの一部は、一般にユーザによって示されたクエリ用語に基づいて多数の文書をユーザに戻す場合もある。取り出された文書のばらつきに対処するために、結果または文書へのリンクを、日付、人気、検索用語との類似度によってさらにソートまたはフィルタ処理し、かつ／または手動で導出された階層型分類（ｈｉｅｒａｒｃｈｉｃａｌ  ｔａｘｏｎｏｍｙ）に従ってカテゴリ化することができる。さらに、または代わりに、ユーザは特定のカテゴリを選択して、検索をそのカテゴリ内の文書に制限することができる。
【０００３】
一般に、階層型分類（またはテキスト分類）は、予め定められた１組のカテゴリ内の文書をどのように分類するかに関する専門知識をコード化する１組のルールを手動で定義することによって生成される。マシンで増強された分類生成（Ｍａｃｈｉｎｅ  ａｕｇｍｅｎｔｅｄ  ｔａｘｏｎｏｍｙ  ｇｅｎｅｒａｔｉｏｎ）は、一般に制御された辞書を手動で維持し、文書に関連付けられ、制御された辞書内にある割り当てられたキーワードまたはメタデータに基づいて文書をソートすることに依存していた。
【０００４】
【非特許文献１】Hofmann, "Probabilistic Latent Semantic Indexing," Proceedings of the 22nd Int'l SIGR Conference on Research and Development in Information Retrieval, pp. 50-57, August 15-19, 1999, Berkeley, CA
【非特許文献２】Zhai他、 "A study of smoothing methods for language information retrieval," ACM Transactions, Vol. 22, No. 2, April 2004, pp. 179-214
【非特許文献３】Viterbi, "Error bounds for convolutional codes and an asymptotically optical decoding algorithm," IEEE Trans. Information Theory, IT-13, pp. 260-269, 1967
【発明の開示】
【発明が解決しようとする課題】
【０００５】
カテゴリ、および制御された辞書を生成し、維持する際にマンパワーが必要なため、手動による分類、またはマシンにより増強された分類を作成し、維持するコストは高価である。さらに、ソートされる内容の性質または内容自体は、非常に頻繁に変更される可能性があるので、分類を手動で適合させることは、制御された辞書で増強されたとしても、実用的ではない。
【課題を解決するための手段】
【０００６】
読者に基本的な理解を提供するために、以下に本開示の簡単な概略を示す。この概要は、本開示の網羅的または限定的な概説ではない。この概要は、本発明の主な、かつ／または重要な要素を識別したり、本発明の範囲を画定したり、何らかの方法で本発明の範囲を限定したりするために提供されているわけではない。単に、後述するより詳細な説明の導入として、開示した概念の一部を簡略化した形式で提示するためのものである。
【０００７】
カテゴリ、および制御された辞書を生成し、維持する際にマンパワーが必要なため、手動による分類、またはマシンにより増強された分類を作成し、維持するコストは高価である。さらに、ソートされる内容の性質または内容自体は、非常に頻繁に変更される可能性があるので、分類を手動で適合させることは、制御された辞書で増強されたとしても、実用的ではない。
【０００８】
階層型分類またはテキスト分類の構造を自動的に生成するために、任意の外的知識なしに文書を分類することができる。すなわち、文書自体から抽出された知識のみに基づいて文書を分類することができる。後述する階層型分類では、情報の関連のカテゴリを、検索に関連する情報を含むバイナリツリーのノードを含むバイナリツリーとして構成することができる。バイナリツリーは、１組の訓練文書を検査し、こうした文書を２つの子ノードに分けることによって「訓練」または形成することができる。次いでこうした文書の組のそれぞれをさらに２つのノードに分割して、バイナリツリーデータ構造を作成することができる。ノードは、訓練文書のすべてが２つのノードのいずれかまたは両方にある尤度を最大にするように生成することができる。一例では、バイナリツリーの各ノードは、用語のリストに関連付けることができ、用語の各リスト内の各用語は、そのノードが与えられた文書にその用語が出現する確率に関連付けられる。新しい文書が加わると、こうした文書を、その文書と関連のノードとの間の統計的類似度に基づいて特定のノードに割り当てることができる。
【０００９】
特定のノードに関連付けられている文書は、ノードの割当に基づいて取り出すことができ、例えば、指定されたクエリ用語に一致するノードを探すことによってあるノードの文書を取り出すことができる。一部の場合、ユーザによるクエリに応答して選択された文書を戻すために、検索エンジンによって一般の逆引きインデックスを使用する場合もある。検索結果内の文書のばらつきの問題に対処するために、クエリエンジンは、関連するノードに基づいて選択された文書をソートし、クラスタ化し、かつ／またはフィルタ処理することができる。検索を拡大するには、関連のノードからの追加の文書を戻すことができる。
【００１０】
上記の態様および付随する本発明の利点の多くは、以下の詳細な説明を添付の図面と併せ読めば、より容易に理解でき、またより良く了解できよう。
【発明を実施するための最良の形態】
【００１１】
バイナリツリーとして示したブランチ／ノードの分類は、一種の階層型分類である。図１は、バイナリツリー１５０を示している。サブジェクトノード１５４は、対象のノードを表す。インターネット検索エンジンの文脈で、サブジェクトノード１５４は、ユーザのクエリに十分類似した１つのカテゴリを表すか、クエリ用語に一致する文書の位置であり得る。親ノード１５３は、サブジェクトノード１５４より１レベル高い（または１カテゴリ広い）ノードであり、祖父（母）ノード１５１は、サブジェクトノード１５４より２レベル高い（または２カテゴリ広い）。子ノード１５６、１５８は、サブジェクトノード１５４より１レベル低いノードであり、孫ノード１５７、１５９、１６０、１６１は、サブジェクトノード１５４より２レベル低い。兄弟ノード１５５は、サブジェクトノード１５４と等しいレベルにあり、同じ親ノードに関連付けられているノードである。両方の方向に、さらに「曾」ノード（図示せず）のレベルも存在し得る（曾祖父（母）、曾曾孫など）。図１に示すように、祖父（母）ノード１５１は、ルートノード、すなわちバイナリツリー１５０において最もレベルの高いノードである。バイナリツリーは、バランスがとれていてもとれていなくてもよいが、バイナリツリーの性質では、各ノードには子がちょうど２つあるか、子がないかのいずれかである必要がある。
【００１２】
訓練セット内の文書は、任意の適したソースを使用して選択することができる。例えば、文書のバッチは、カテゴリ化されることが望まれる場合がある。ツリーを訓練するために、カテゴリ化すべき文書の少なくとも一部分を１組の訓練文書として選択することができる。追加の、または別の訓練文書を、ニュース文書用のＲｅｕｔｅｒｓ（登録商標）コレクション、医薬文書用のＯＨＳＵＭＥＤ（商標）コレクション、書き込まれたニュースグループメッセージ用の２０Ｎｅｗｓｇｒｏｕｐｓ（商標）コレクション、およびニュース文書用のＡＰ（商標）コレクションを含むベンチマークコレクションから選択することができる。
【００１３】
図２に示すように、１組の訓練文書２１０は、各文書内の用語など、１組の訓練文書からの外的情報に基づいてバイナリ階層型分類ツリーを生成するツリー生成器２２０に入力される。したがって、訓練文書を検査して、すべての訓練文書内の用語に基づいて１組の訓練用語を決定することができる。
【００１４】
ツリーの訓練に使用される用語は、任意の適した方法を使用して、選択された訓練文書内から選択することができる。図３は、図２のツリー生成器２２０の一例を示している。ツリー生成器２２０は、ツリーの訓練に使用する訓練用語３２０のベクトルまたはリストを決定するために用語生成器３１０を含み得る。例えば、ナイーブベイズの仮定の下では、各文書は、統計的に関連のない用語の集まりとして扱われるため、ナイーブベイズの仮定の下で、各訓練文書を用語のリストまたはベクトルとして扱うことができる。
【００１５】
ツリーの訓練に使用される用語は、各用語の出現の累計回数に基づいて、すべての文書に出現するすべての用語から選択することができる。ツリーを訓練する用語は、多数の文書内に出現し、かつ／または特定の文書にしばしば出現する可能性がある。さらに、用語生成器は、ツリーを訓練するために選択された用語が文書の訓練における有効度がより低いと確認されていないことを確実にするために、予め定められた排除用語のリストにアクセスしてもよい。例えば、前置詞、冠詞、および／または代名詞などの用語は、ほとんどの文書にしばしば出現するが、分類ツリーを訓練するための用語として最適ではない場合がある。さらに、排除用語リストは、使用可能なストップリストからアクセスすることができる。排除用語は、ヒューリスティックス、訓練用語の過去の性能を含む任意の方法を使用し、かつ１組の訓練文書内の各文書において用語の出現が実質的に同じである場合に生成することができる。
【００１６】
一部の場合、計算の効率のためにシステムの訓練に使用される用語の数を限定することが有益となり得る。一般に、訓練文書の集成の性質に応じてＮが１０，０００から１００，０００にわたる場合、何らかの実用的な測定に従って、上位Ｎ個の用語が訓練用語として選択される。最も簡単な２つの測定値は、資料内で使用されている単語の数（用語数）、および単語を含む文書の数（文書数）である。別の有用な測定は、これらの測定値の両方を結合する。例えば、所与の用語の実用的な測定は、用語数の２乗を文書数で割ったものになり得る。
【００１７】
図３に示すように、用語生成器３１０は、１組の訓練文書２１０を受信し、各文書内の各用語の出現回数を数え、用語を含む訓練セット内のすべての文書のこうした数を累積する。用語の出現回数（用語数）の２乗を用語を含む文書数（文書数）で割ったものが大きい場合、用語は訓練文書内で頻繁に使用されている。逆に、用語の出現回数の２乗を文書数で割ったものが小さい場合、用語は時々しか使用されていないか、しばしば使用されている場合、用語は各文書内に２、３回しか出現しない。相対頻度を計算する様々な方法を含めて、訓練用語を選択する他の方法も適しており、かつ／または単一の用語として数えられる句を形成するために複数の単語をトークン化することができる。選択された用語は、図３に示すように、用語のベクトル３２０としてデータストア内に格納することができる。用語のベクトル３２０は、データストア内で、バイナリツリーの現在のノード（第１の反復でルートノードである）に関連付けることができる。
【００１８】
図３に示すように、用語生成器３１０は、用語ベクトル３２０をノード生成器３３０に渡す。ノード生成器３３０は、各子ノードが選択された訓練用語の用語リストまたはベクトル３２０に関連付けられている状態で、現在のノードの２つの子ノードを生成することができる。２つの子ノードを形成するために、用語ベクトル３２０内の各用語は、その用語が文書に出現する確率、言い換えれば、その単語が文書に出現するように選択される確率に関連付けることができる。第１の子ノードに関連付けられている確率は、図３に示すように、データストア内のベクトル３４０に１組の用語の確率として格納され、第２の子ノードに関連付けられている確率は、データストア内のベクトル３５０に１組の用語確率として格納され得る。各子ノードは、１つの用語確率のベクトルに関連付けられるため、生成される２つの子ノードに対応して２つの用語確率のベクトル３４０、３５０が生成される。
【００１９】
用語確率の各ベクトル３４０、３５０を開発するために、文書に出現する用語の各確率を初期化することができる。例えば、確率は、乱数生成器で確率を無作為に生成する、または１組の訓練文書内の用語の出現回数を調整または変更するなど、任意の適した方法を介して初期化することができる。一部の場合、文書に出現する用語の確率を、各用語確率ベクトルにおいて異なる値に初期化することが適している場合がある。より詳細には、必ず２つの用語確率ベクトル３４０、３５０が同じにならないようにすることが適している場合がある。
【００２０】
次いでノード生成器３３０は、２つの子ノードにそれぞれ関連付けられている用語確率ベクトル３４０、３５０内の用語の確率を最適化することができる。例えば、用語の確率は、期待値最大化、遺伝的アルゴリズム、ニューラルネットワーク、シミュレーテッドアニーリングなど、任意の適した方法を使用して最適化することができる。例えば、ノード生成器３３０は、訓練文書のそれぞれが兄弟ノードの両方に関連付けられている用語のリストから形成され得る尤度を最大にするために、用語の確率を最適化することができる。より詳細には、各訓練文書が文書に出現する各用語の初期化された確率（用語確率ベクトル３４０）に基づいて第１の子ノードに関連付けられている用語（用語ベクトル３２０）によって作成される確率を計算し、同じ訓練文書が文書に出現する各用語の初期化された確率（用語確率ベクトル３５０）に基づいて第２の子ノードに関連付けられている用語（用語ベクトル３２０）によって作成される確率を計算することによって、各ベクトルの用語の確率は、訓練文書の集成全体にわたって最適化することができる。
【００２１】
期待値最大化を使用して、図３に示したノード生成器３２０は、すべての訓練文書が２つの兄弟ノードのそれぞれにおける用語によって生成される対数尤度を最大にすることができる。すべての訓練文書が２つの各ノードで入手可能な用語によって生成される対数尤度は、次の式によって得られる。  
Ｌ＝Ｓｕｍ｛Ｓｕｍ［ｎ（ｄi，ｗjk）ｌｏｇ（Ｐ（ｄi，ｗjk）），ｊ］，ｉ，ｋ｝
上記の式中、ｎ（ｄi，ｗjk）はノードｋでの文書ｄi内の用語ｗjの出現回数、Ｐ（ｄi，ｗjk）は任意の文書に出現する用語の確率に基づく、文書ｄi内に出現するノードｋの用語ｗjの確率である。各ノードに関連付けられている用語の確率は、次いで対数尤度を最大にするように繰り返し調整することができる。最大化は、絶対最大値または相対最大値とすることができる。結果として得られたこれらの用語の確率は、図３のベクトル３４０、３５０に格納され、データストア内のそれぞれの子ノードに関連付けられる。このように、２つの子ノード（または図１の親ノード１５２、１５３）のそれぞれは、訓練用語のリスト（用語ベクトル３２０）、および１組の訓練文書が各子ノードの用語から形成される対数尤度を最大にするために最適化された文書に出現する各用語のそれぞれの確率（用語確率ベクトル３４０、３５０）に関連付けられる。
【００２２】
一例では、問題の形態の形式化を使用して、期待値最大化を使用した単語および文書の確率を解くことができる。様々なバージョンの期待値最大化が適している可能性があるが、代表的な１つの例は、参照により本明細書に組み込む、非特許文献１に記載されている。一部の場合、Ｈｏｆｍａｎｎによって述べられているように、期待値最大化手法に従うことが適し得るが、期待値最大化プロセスで文書の確率を再訓練するのではなく、文書の確率と単語の確率との間のＫｌ  ｄｉｖｅｒｇｅｎｃｅなどの距離測定を使用して新しい文書のモデルパラメータの調整を低減することができる。
【００２３】
より低いレベルのバイナリツリーの１組のテスト文書を形成するには、１組のテスト文書２１０を、２つの子ノードのうちの少なくとも１つに割り当てる。このように、第１の子ノードに関連付けられている文書を、２つの孫ノードを生成するために使用し、第２の子ノードに関連付けられている文書を、さらに２つの孫ノードを生成するために使用して、図１のバイナリツリー１５０を形成することができる。
【００２４】
図３に示すように、ツリー生成器２２０は、１組の訓練文書２１０を２つの子ノードのうちの少なくとも１つまたはヌルセットに割り当てる文書割当器３６０を含み得る。文書が訓練に適していないと決定されると、文書割当器３６０は、文書をヌルセットに割り当てることができる。このように、図３に示すように、３組の文書、第１の子ノードに関連付けられている文書セット３６２、第２の子ノードに関連付けられている文書セット３６４、および訓練セットから削除される文書のヌルセットである文書セット３６６を形成することができる。
【００２５】
図３の文書割当器３６０は、エントロピまたは距離測定など任意の適した方法を使用して、訓練セット２１０の各文書を２つの子ノードのうちの一方または両方、またはヌルセットに関連付けることができる。例えば、文書割当器３６０は、それぞれの子ノードに関連付けられている最適化された用語確率ベクトル３４０、３５０を使用して、各文書と２つの子ノードのそれぞれとの間のＫｌ  ｄｉｖｅｒｇｅｎｃｅを決定することができる。代表的な１つの例では、Ｋｌ  ｄｉｖｅｒｇｅｎｃｅは、次の式を使用して決定することができる。  
Ｓj＝Ｓｕｍ［Ｐ（ｗj）＊ｌｏｇ（Ｐ（ｗi）／Ｚj（ｗi））］
式中、ＳjはＫｌ  ｄｉｖｅｒｇｅｎｃｅ、Ｐ（ｗi）は用語ｗiが所与の文書内で検出される確率、およびＺj（ｗi）は用語ｗiがノードｊで検出される確率である。上記の式の対称的なバージョンを含めて、他の適した系統的に定められた距離または類似度も適していることを理解されたい。
【００２６】
一般に、文書は、所与のノードで検出された用語のサブセットのみを含んでいる。したがって、Ｋｌ  ｄｉｖｅｒｇｅｎｃｅを制約するために、平滑化された単語の確率（ｓｍｏｏｔｈｅｄ  ｗｏｒｄ  ｐｒｏｂａｂｉｌｉｔｉｅｓ）を使用することができる。用語の確率は、任意の適した方法を使用して平滑化することができる。テキスト情報の取り出しの分野の専門家は、それだけには限定されないが、簡易Ｊｅｌｉｎｅｋ−Ｍｅｒｃｅｒ（ｓｉｍｐｌｉｆｉｅｄ  Ｊｅｌｉｎｅｋ−Ｍｅｒｃｅｒ）、Ｄｉｒｉｃｈｌｅｔ事前分布（Ｄｉｒｉｃｈｌｅｔ  ｐｒｉｏｒ）、および絶対ディスカウンティング（ａｂｓｏｌｕｔｅ  ｄｉｓｃｏｕｎｔｉｎｇ）など、単語の確率の平滑化のいくつかの方法に精通している。代表的な１つの例は、参照により本明細書に組み込む、非特許文献２に記載されている。このように、文書の集成全体はシステムエラーを考慮したシステム知識を提供し、新しい文書は、それが用語の１つの考え得る出現または組み合わせにすぎないように統計的に扱われるため、文書に出現する用語の確率はゼロではない。Ｊｅｎｓｅｎ−Ｓｈａｎｎｏｎ  ｄｉｖｅｒｇｅｎｃｅ、ピアソンのカイ二乗検定などを含めて、距離または類似度の他の統計的な測定を使用できることを当分野の専門家は理解されよう。
【００２７】
一例で、各文書は、最も低いＫｌ  ｄｉｖｅｒｇｅｎｃｅを有するノードに割り当てることができる。さらに、または代わりに、Ｋｌ  ｄｉｖｅｒｇｅｎｃｅが予め定められた閾値を下回る場合、各文書をノードに割り当てることができる。一部の場合、第１のノードへのＫｌ  ｄｉｖｅｒｇｅｎｃｅ、および第２のノードへのＫｌ  ｄｉｖｅｒｇｅｎｃｅは、ほぼ等しい、または類似している場合がある。この場合、文書は、両方のノードに関連付けることができる。他の場合、両方のノードへのＫｌ  ｄｉｖｅｒｇｅｎｃｅは、予め定められた閾値に比べて比較的大きい可能性がある。この場合、文書はヌルセットに割り当てられる。例えば、その文書は訓練文書としての使用に適していないことになり得る。
【００２８】
上記のステップは、バイナリツリーの新しいレベルが生成されるたびに再帰的に繰り返され、このプロセスは、切断条件が達成されると停止することができる。図３に示すように、ツリー生成器は、切断条件が達成されたかどうかを決定するツリーマネージャ３７０を含み得る。切断条件は、（例えば特定のノードに関連付けられている文書数が特定の閾値より小さいなど）ノード内にあり得る文書の最低数、２つの新しいノードから１組の訓練文書へのＫｌ  ｄｉｖｅｒｇｅｎｃｅが１組の訓練文書と親ノードとの間のＫｌ  ｄｉｖｅｒｇｅｎｃｅと類似する（例えば親ノードに対するＫｌ  ｄｉｖｅｒｇｅｎｃｅと子ノードに対するＫｌ  ｄｉｖｅｒｇｅｎｃｅとの間の差は、予め定められた閾値を下回る）、所与のブランチに沿ったツリーの深さが予め定められた限界に到達した（例えばツリー内の層の数が予め定められた閾値を超えるなど）、２つのノード間のＫｌ  ｄｉｖｅｒｇｅｎｃｅが予め定められた閾値を下回る（例えば第１のノードと第２のノードとの間の差は予め定められた閾値を下回る）など、任意の適したパラメータまたは距離とすることができる。
【００２９】
訓練セット内の文書の少なくとも一部が２つの子ノードのうちの少なくとも１つまたはヌルセットに割り当てられているとき、各子ノードは、元の訓練文書の組のサブセット（文書セット３６２または文書セット３６４）に関連付けられる。次いでツリーマネージャ３７０は、これらの文書の組のそれぞれを、新しい１組の訓練文書として転送して、訓練用語の新しいリストを生成することができる。より詳細には、ツリーマネージャ３７０は、文書セット３６２を、１組の訓練文書として使用するように用語生成器３１０に送信して、第１の子ノードの２つの孫ノードに関連付けられている１組の訓練用語３２０を生成することができる。同様に、ツリーマネージャは、文書セット３６４を、１組の訓練文書として使用するように用語生成器３１０に送信して、第２の子ノードの２つの孫ノードに関連付けられている１組の訓練用語３２０を生成することができる。
【００３０】
新しい訓練用語の各組は、ノード生成器３３０によって使用されて、孫ノードごとに関連の用語確率ベクトルを生成し、最適化することができる。上述したように、用語確率ベクトルは、用語の確率を無作為に生成することによって初期化することができる。あるいは、直前のレベル（子ノード）からの用語の確率を調整して、各孫ノードに関連付けられている用語確率ベクトルを初期化することができる。例えば、用語確率ベクトル３４０は、直前のノードの元の用語確率値の約９０％から約１１０％の値で無作為に調整することができ、同様に、用語確率ベクトル３５０は、直前のノードの元の用語確率値の約９０％から約１１０％の値で無作為に調整することができる。 
【００３１】
次いでノード生成器３３０は、孫ノードごとに用語確率値を最適化することができる。これらの最適化された用語確率は、次いでそれぞれ２つの新しい孫ノードに関連付けられ、文書を４つの新しい孫ノードのうちの少なくとも１つまたはヌルセットにさらに割り当てるために使用することができる。より詳細には、文書セット３６２の各文書は、ヌルセットまたは第１の子ノードに関連付けられている２つの孫ノードのうちの少なくとも一方に関連付けることができ、文書セット３６４の各文書は、ヌルセットまたは第２の子ノードに関連付けられている２つの孫ノードのうちの少なくとも一方に関連付けることができる。ノードとの文書の関連付けは、データストアに格納することができる。結果として、図２および図３に示すように、複数のノードを含むバイナリツリーデータ構造２３０が形成され、各ノードは、文書に出現する各用語の関連した確率（用語確率ベクトル３４０または３５０）で用語のベクトル（用語ベクトル３２０）に関連付けられる。
【００３２】
図４は、図２のツリー生成器２２０の動作の方法例４００を示している。４１０で、ツリー生成器は１組の訓練文書を受信する。上述したように、ナイーブベイズの仮定下では、各文書は、その文書に出現する用語のリストとして表される。４１２で、ツリー生成器は、各文書内の各用語の出現頻度を数える。文書に出現する用語のリストに基づいて、ツリー生成器は、４１４で、用語生成器を介して、用語ベクトルとして表される第１の組の訓練用語を選択する。訓練ベクトル内の訓練用語ごとに、ツリー生成器は、４１６で、ノード生成器を介して、訓練用語が所与の文書に出現する第１の確率を生成し、第１の確率の組は第１の用語確率ベクトルとして表される。４１８で、第１の用語確率ベクトルは、第１の子ノードに関連付けられる。また、用語生成器は、４２０で、用語ベクトル内の用語ごとに、その用語が所与の文書内に出現する第２の確率も生成し、第２の確率の組は第２の用語確率ベクトルとして表される。４２２で、第２の用語確率ベクトルは、第２の子ノードに関連付けられる。上述したように、ノード生成器は、用語確率ベクトルを無作為な値で初期化し、訓練文書が第１および第２の子ノードのそれぞれに関連付けられている用語の確率によって生成される対数尤度を最大にする期待値最大化に基づいてこうした確率を最適化する。文書割当器を介して、ツリー生成器は、４２４で、（用語のリストとして扱われた）各訓練文書を第１の子ノード、第２の子ノード、および訓練に適してない文書のヌルセットのうちの少なくとも１つに関連付ける。ノード生成器は、４２６で、用語生成器を介して、第１の子ノードに関連付けられている１組の訓練文書に出現する用語の少なくとも一部に基づいて第２の組の訓練用語または用語ベクトルを形成する。この場合もまた、ノード生成器を介して、ツリー生成器は、４２８で、第２の用語ベクトル内の訓練用語ごとに、そのノードが与えられた文書に訓練用語が出現する第３の確率を生成し、４３０で、結果として得られた第３の用語確率ベクトルを第１の孫ノードに関連付ける。同様に、ツリー生成器は、４３２で、第２の用語ベクトル内の訓練用語ごとに、そのノードが与えられた文書に訓練用語が出現する第４の確率を生成し、４３４で、結果として得られた第４の用語確率ベクトルを第２の孫ノードに関連付ける。第３および第４の用語確率ベクトルに基づいて、ツリー生成器は、４３６で、文書割当器を介して、第１の子ノードに関連付けられている各文書を、第１の孫ノード、第２の孫ノード、およびヌルセットのうちの少なくとも１つに関連付ける。図４のプロセス、またはその一部は、指定された切断条件に到達するまで、必要に応じて繰り返すことができる。
【００３３】
あるノードに関連付けられている各訓練文書セットは、訓練文書がバイナリ分類ツリーによってカテゴリ化される文書のサブセットである場合、結果として得られた分類ツリーデータ構造内のそのノードに関連付けられたままであり得る。一例では、各文書セットは、ツリー内のそのレベルに関係なく、そのそれぞれのノードに割り当てられたままであり、その結果親ノードは、その子ノードのそれぞれのすべての文書に関連付けられている。別の例では、結果として得られたツリーデータ構造のリーフノードに関連付けられている文書セットのみが、文書の関連付けのデータストアに保持され得る。あるいは、１組の訓練文書がカテゴリ化される文書の組の一部ではない場合、文書の関連付けは無視または削除され得る。このように、訓練文書は、分類ツリーを訓練するためにだけ使用することができる。
【００３４】
新しい文書は、図２に示すように、文書がバイナリツリーデータ構造２５０のノードに関連付けられた状態で、新しい各文書をバイナリツリーのノードに関連付けて階層型分類ツリーを形成することによって分類することができる。図２に示すように、文書ソータ２４０は、新しい文書２４２を受信し、その文書をツリー２３０の少なくとも１つのノードに関連付ける。各文書のノードの関連付けは、データストアに格納することができる。文書ソータ２４０は、図３で示したツリー生成器の文書割当器３６０とまったく同じものとすることができ、関連付けをエントロピまたは距離測定（Ｋｌ  ｄｉｖｅｒｇｅｎｃｅなど）に基づかせることができる。しかし、訓練プロセスとは異なり、用語のリスト、および各ノードでのその関連の用語の確率は調整されない。その結果、新しい文書の割当は、最も小さいＫｌ  ｄｉｖｅｒｇｅｎｃｅを有するノード、および／またはノードへのＫｌ  ｄｉｖｅｒｇｅｎｃｅが予め定められた閾値を下回るノードに基づいて次レベルのノードを選択することによって決定されたパスでバイナリツリーのノードを「歩く」ことになる。ツリーは割り当てられる各文書によって「歩かれる」ため、割当プロセスは、並列計算で達成することができる。
【００３５】
新しい文書が１組の訓練文書にはないツリーを含み得るため、文書の確率の大部分は、実際には文書に出現しない用語の用語確率の平滑化に基づき得る。上述したように、用語の確率は、簡易Ｊｅｌｉｎｅｋ−Ｍｅｒｃｅｒ、Ｄｉｒｉｃｈｌｅｔ事前分布、および絶対ディスカウンティングを含む任意の適した方法を使用して平滑化することができる。このように、文書の集成全体はシステムエラーを考慮したシステム知識を提供し、新しい文書は、それが用語の１つの考え得る出現または組み合わせにすぎないように統計的に扱われるため、文書に出現する用語の確率はゼロではない。
【００３６】
図５は、図２の文書ソータ２４０の動作の方法例５００を示している。文書ソータは、５１０で、バイナリツリー分類データ構造に関連付けられる新しい文書にアクセスする。文書ソータは、５１２で、新しい文書と第１の子ノードとの間の第１の距離値を決定し、５１４で、新しい文書と第２の子ノードとの間の第２の距離値を決定する。上述したように、Ｋｌ  ｄｉｖｅｒｇｅｎｃｅなどの距離測定は、用語のリストが文書に出現する確率に基づいており、各子ノードは、用語ごとにそれ自体の関連の確率を有し得る。
【００３７】
文書ソータは、５１６で、切断条件が満たされているかどうかを決定する。上述したように、切断条件は、子ノード間のＫｌ  ｄｉｖｅｒｇｅｎｃｅが所与の閾値を上回る、または親ノードがバイナリツリーのリーフノードであるなど、任意の適した条件とすることができる。切断条件が満たされている場合、文書は、２つの子ノードの親ノードに関連付けられる。切断条件が満たされていない場合、文書ソータは、５２０で、決定された距離値の１つが距離閾値を下回るかどうかを決定する。距離閾値は、予め定められており、文書ソータ内で一定とすることができる。このように、２つの距離値が距離閾値を下回っている場合、文書は、両方のノードに従い得る。あるいは、距離閾値は、ソートされる文書に基づいて動的な値とすることができる。例えば、距離閾値は、２つの計算された距離値のうちの最大のものとすることができる。距離値の一方が距離閾値を下回る場合、文書ソータは、５２２で、２つの子ノードがその距離値に関連付けられている子ノード（例えばその子ノードを通る親の２つの孫ノードなど）から延びているかどうかを決定する。例えば、第１の距離値が閾値を下回る場合、文書ソータは、第１の子ノードが２つの子ノード自体を有しているかどうか、例えばツリーが第１の子ノードから延びているかどうかを決定する。２つの孫ノードが存在する場合、文書ソータは、５１２、５１４で第１および第２の距離値を決定することに関連して上述したように、新しい文書と第１の孫ノードとの間の第３の距離値を決定し、新しい文書と第２の孫ノードとの間の第４の距離値を決定する。文書ソータは、切断条件が満たされ、文書がバイナリツリーの少なくとも１つのノードに関連付けられるまで、バイナリツリーを引き続き歩く。
【００３８】
Ｋｌ  ｄｉｖｅｒｇｅｎｃｅに基づいて文書を単一のノードに割り当てるより、文書ソータ２４０は、文書割当器３６０とは異なるプロセスを使用して、新しい文書をバイナリ分類ツリーのノードに関連付けることができる。一例で、文書ソータ２４０は、ルートノードから文書のパス全体にわたって最小のＫｌ  ｄｉｖｅｒｇｅｎｃｅに基づいて文書を割り当てることができる。より詳細には、上述したように、文書は、文書と次に低いレベルの２つの兄弟ノードとの間の計算されたＫｌ  ｄｉｖｅｒｇｅｎｃｅに基づいてツリーを「歩く」。しかし、文書を所与のノードの２つの選択肢のより小さいＫｌ  ｄｉｖｅｒｇｅｎｃｅ値を有するノードに関連付けるのではなく、文書のＫｌ  ｄｉｖｅｒｇｅｎｃｅを、文書がツリー内を歩くパス全体の合計Ｋｌ  ｄｉｖｅｒｇｅｎｃｅ値に累積または結合することができる。次いで文書を、予め定められた閾値を下回る結合されたＫｌ  ｄｉｖｅｒｇｅｎｃｅを有する、かつ／または最低値を有するパスに割り当てることができる。結合されたＫｌ  ｄｉｖｅｒｇｅｎｃｅ値は、ビタビアルゴリズムなど複合決定理論を含む任意の適した方法を使用して決定することができる。ビタビアルゴリズムは、事後的に最高の意味で、有限ノードの離散時間プロセス（ｆｉｎｉｔｅ−ｎｏｄｅ，  ｄｉｓｃｒｅｔｅ  ｔｉｍｅ  ｐｒｏｃｅｓｓ）と見なされ得るバイナリツリーの最も可能性が高いノードシーケンスまたはパスを見つけることができる。代表的な１つの例は、参照により本明細書に組み込む、非特許文献３に記載されている。
【００３９】
文書とバイナリツリー構造のノードとの間の関連付けは、データストアに格納することができる。関連付けは、関連付けデータストア、テーブル、ベクトル、または文書のメタデータの一部としてなど、任意の適したフォーマットおよび／またはインデックスで格納することができる。例えば、ツリーの各ノードは、階層型分類のそのパスに従ってアドレス指定可能である。このパスは、図１に示すように、サブジェクトノード１５４を上位ノード（例えば親ノードおよび祖父（母）ノード）、および下位ノード（子および孫）と接続するブランチをトラバースすることによって作成することができる。このパスは、ノードパスまたはカテゴリパスと呼ばれ、「祖父（母）／親／サブジェクトノード／子」の形式で格納される。ツリー構造内でのノードの位置の任意の適した指示が適していることを理解されたい。例えば、バイナリ文字列は、「０」で左側の子へのトラバースを示し、「１」で右側の子へのトラバースを示すことによってノードへのパスを示すことができる。別の例では、例えば祖父（母）ノードが１であり、親ノードにはそれぞれ２および３と番号を付けるなど、ノードに番号を付けることができる。一例では、文書ソータ２４０は、データベース、インデックス、または文書メタデータの一部分など、関連のノードのパスを示す文字列をデータストア内に格納することができる。
【００４０】
図２に示すように、関連の文書を含むバイナリ分類ツリー２５０は、必要に応じて文書の取り出し、クラスタ化、ソート、かつ／またはフィルタ処理に使用されるように、情報取り出しシステム２６０に送信される。例えば、あるノード内の文書は、指定されたクエリ用語に一致するノードを探すことによって取り出されるなど、特定のノードに関連付けられている文書をノード割当に基づいて取り出すことができる。一部の場合、ユーザによるクエリに応答して選択された文書を戻すために、検索エンジンによって一般の逆引きインデックスを使用する場合もある。検索結果内の文書のばらつきの問題に対処するために、クエリエンジンは、関連するノードに基づいて選択された文書をソートし、またはクラスタ化することができる。さらに、または代わりに、クエリエンジンによって選択された文書に固有の階層型ツリーを形成することができる。このように、取り出された文書の少なくとも一部分を使用して、こうした文書に固有のバイナリツリーを生成または訓練することができ、次いで文書を、それぞれのノードに従ってソートまたはクラスタ化して、コンピュータユーザに階層型検索結果を示すようにすることができる。階層型分類ツリーは、ユーザの選好に従ってユーザにこうした文書のみを戻すために文書のフィルタ処理に使用することもできる。さらに、分類ツリーは、選択された文書に類似の、またはそれに関連付けられる追加の文書の指示を戻すことができる。例えば、クエリエンジンは、クエリ用語に基づいて文書を取り出すことができ、取り出された文書は、バイナリ分類ツリーの特定のノードに関連付けることができる。また、クエリエンジンは、取り出された文書だけではなく、同じノードおよび／または隣接するノードに関連付けられている文書のリストも戻して、検索をユーザによって提示されたクエリ用語以上に拡大することができる。さらに、または代わりに、隣接するノードに関連付けられているラベルを取り出された文書とともにユーザに戻して、所望の文書の位置をさらに検索することを示すことができる。カテゴリ化された文書は、検索を使用可能な文書の一部分のみに制限するために、ノードの関連付けに基づいて検索を行うこともできる。任意の適した情報取り出し方法および使用は、上記のバイナリツリーに適切に基づき得ることを理解されたい。
【００４１】
図６は、ツリー生成器２２０と文書ソータ２４０との任意の組み合わせを実施できる好適なコンピューティングシステム環境９００の例を示している。コンピューティングシステム環境９００は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。また、コンピューティング環境９００を、動作環境９００の例に示した構成要素のいずれか１つ、またはその組み合わせに関連する任意の依存性または必要条件を有しているものと解釈すべきではない。
【００４２】
本発明は、他の多くの汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明との使用に適したよく知られているコンピューティングシステム、環境、および／または構成の例には、それだけには限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたは装置を含む分散コンピューティング環境などがある。
【００４３】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。また、本発明は、タスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体に置くことができる。
【００４４】
図６を参照すると、本発明を実施するシステムの例は、汎用コンピューティング装置をコンピュータ２０の形で含んでいる。コンピュータ２０の構成要素は、それだけには限定されないが、処理ユニット２１、システムメモリ２２、およびシステムメモリを含む様々なシステム構成要素を処理ユニット２１に結合するシステムバス２３を含む。システムバス２３は、様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られている周辺部品相互接続（ＰＣＩ）バスなどがある。
【００４５】
コンピュータ２０は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ２０からアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外式および固定式媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ２０からアクセスできる他の任意の媒体などがある。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号に情報を符号化するように１つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組み合わせでもコンピュータ可読媒体の範囲内に含まれるものとする。
【００４６】
システムメモリ２２は、読み取り専用メモリ（ＲＯＭ）２４やランダムアクセスメモリ（ＲＡＭ）２５など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入出力システム２６（ＢＩＯＳ）は、例えば起動中など、コンピュータ２０内の要素間での情報の転送を助ける基本ルーチンを含み、一般にＲＯＭ２４に格納されている。ＲＡＭ２５は一般に、処理ユニット２１から直接アクセス可能な、かつ／または処理ユニット２１が現在処理しているデータおよび／またはプログラムモジュールを含む。図６は、それだけには限定されないが一例として、オペレーティングシステム３５、アプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８を示している。
【００４７】
コンピュータ２０は、他の取外式／固定式、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図６は、固定式不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ２７、取外式不揮発性磁気ディスク２９から読み取り、あるいはそこに書き込む磁気ディスクドライブ２８、およびＣＤ−ＲＯＭや他の光媒体など、取外式不揮発性光ディスク３１から読み取り、あるいはそこに書き込む光ディスクドライブ３０を示している。動作環境の例で使用できる他の取外式／固定式、揮発性／不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどがある。ハードディスクドライブ２７は一般に、インターフェイス３２などの固定式メモリインターフェイスを介してシステムバス２３に接続され、磁気ディスクドライブ２８および光ディスクドライブ３０は一般に、インターフェイス３３などの取外式メモリインターフェイスによってシステムバス２３に接続される。
【００４８】
上述し、図６に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ２０の他のデータの記憶域を提供する。図６では例えば、ハードディスクドライブ２７は、オペレーティングシステム３５、アプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８を格納するものとして示されている。これらの構成要素は、オペレーティングシステム３５、アプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８と同じであっても、異なっていてもよいことに留意されたい。オペレーティングシステム３５、アプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８は少なくとも異なるコピーである。ユーザは、キーボード４０、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置４２などの入力装置を介してコマンドおよび情報をコンピュータ２０に入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバスに結合されているユーザ入力インターフェイス４６を介して処理ユニット２１に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など他のインターフェイスおよびバス構造で接続してもよい。モニタ４７または他のタイプの表示装置もまた、ビデオインターフェイス５８などのインターフェイスを介してシステムバス２３に接続される。モニタに加えて、コンピュータは、出力周辺インターフェイスを介して接続できるスピーカ、プリンタなど他の周辺出力装置を含むこともできる。
【００４９】
コンピュータ２０は、リモートコンピュータ４９など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ４９は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、または他の一般のネットワークノードでよく、一般にコンピュータ２０に関連して上述した多くまたはすべての要素を含むが、図６にはメモリ記憶装置５０のみを示している。図６に示した論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１および広域ネットワーク（ＷＡＮ）５２を含むが、他のネットワークを含んでいてもよい。こうしたネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
【００５０】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ２０は、ネットワークインターフェイスまたはアダプタ５３を介してＬＡＮ５１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ２０は一般に、モデム５４、またはインターネットなどＷＡＮ５２を介して通信を確立する他の手段を含む。モデム５４は、内蔵のものでも外付けのものでもよく、ユーザ入力インターフェイス４６または他の適切な機構を介してシステムバス２３に接続することができる。ネットワーク式環境では、コンピュータ２０に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図６は、それだけには限定されないが一例として、リモートアプリケーションプログラム３６をメモリ装置５０上に存在するものとして示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
【００５１】
本発明の好ましい実施形態について示し、説明してきたが、本発明の意図および範囲から逸脱することなく様々な変更を加えることができることを理解されたい。
【００５２】
独占的な権利または特権を主張する本発明の実施形態は頭記のように定義される。
【図面の簡単な説明】
【００５３】
【図１】一実施形態における階層型バイナリツリー例を示す図である。
【図２】一実施形態における図１のバイナリツリーを形成し、使用するのに適したバイナリツリー分類プロセスを示す概略図例である。
【図３】一実施形態における図２の分類プロセスのツリー生成例を示す概略図である。
【図４】一実施形態における分類バイナリツリーを生成する方法例を示すフローチャートである。
【図５】一実施形態におけるバイナリツリーに文書を割り当てる方法例を示すフローチャートである。
【図６】本発明の一実施形態を実施するのに有用なシステム例を示すブロック図である。
【符号の説明】
【００５４】
１５１〜１６１  ノード
２１０  訓練文書
２２０  ツリー生成器
２４０  文書ソータ
２４２  文書
２６０  情報取り出しシステム
３１０  用語生成器
３２０  用語ベクトル
３３０  ノード生成器
３６０  文書割当器
３６２，３６４，３６６  文書セット
３７０  ツリーマネージャ
【図１】
2006018829.tif 000003
【図２】
2006018829.tif 000004
【図３】
2006018829.tif 000005
【図４】
2006018829.tif 000006
【図５】
2006018829.tif 000007
【図６】
2006018829.tif 000008
【外国語明細書】
2006018829000001.pdf