(57)【特許請求の範囲】
【請求項１】
演算装置の少なくとも一つのコンピュータプロセッサによって実行される方法であって、上記演算装置は少なくとも一つの非一時的なコンピュータ読み取り可能な媒体に記憶されたコンピュータプログラム指示を実行し、上記コンピュータプログラム指示は、上記少なくとも一つのコンピュータプロセッサによって、データ項目をスパース分散表現にマッピングする方法を実行することが可能であり、上記方法は、
少なくとも１つの基準に従って選択された一組のデータ文書を、上記演算装置上で実行される参照マップ生成器によって、上記データ文書が分散している２次元距離空間においてクラスタ化し、意味マップを生成するステップと、
上記一組のデータ文書それぞれについて、上記意味マップ上で当該データ文書を位置づける座標のペアを特定するステップと、
上記演算装置上で実行されるパーサによって、上記一組のデータ文書中に存在するデータ項目の一覧を生成するステップと、
上記一覧のデータ項目それぞれについて、上記演算装置上で実行される表現生成器によって存在情報を決定するステップであって、上記存在情報は、（i）上記データ項目が存在するデータ文書の数、（ii）各データ文書において上記データ項目が存在する数、および（iii）上記データ項目が存在するデータ文書それぞれに関連付けられた上記座標ペアを含む、ステップと、
上記表現生成器によって、上記存在情報を用いて分散表現を生成するステップと、
上記演算装置上で実行されるスパース化モジュール（sparsifying module）によって、スパース度の最大レベル（maximum level of sparsity）を特定する情報を受け取るステップと、
上記スパース化モジュールによって、上記スパース度の最大レベルに基づいて上記分散表現内のセットビットの総数を減少させて、基準となるフィルグレード（fillgrade）を有するスパース分散表現を生成するステップと、を含む
ことを特徴とする方法。
【請求項２】
上記一組のデータ文書中のデータ項目が存在する意味文脈を示すパターンを決定するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
上記パターンにおける座標のペアの空間的分散は、上記データ項目が存在する文脈における少なくとも一つの意味領域を反映することを特徴とする請求項１または２に記載の方法。
【請求項４】
上記スパース分散表現は、上記データ項目の語義的意味の二値フィンガープリントを提供することを特徴とする請求項１から３のいずれか一項に記載の方法。
【請求項５】
上記関連付けるステップは、上記２次元距離空間内の上記一組のデータ文書の一つを表わす点の位置を特定する座標のペアを関連付けることをさらに含むことを特徴とする請求項１から４のいずれか一項に記載の方法。
【請求項６】
上記生成するステップは、上記分散表現においてタームが出現する数に比例して、セットビットの総数を減少させることをさらに含むことを特徴とする請求項１から５のいずれか一項に記載の方法。
【請求項７】
上記生成するステップは、上記データ文書のサブセットにおいて上記データが出現する数に比例して、セットビットの総数を減少させることをさらに含むことを特徴とする請求項１から６のいずれか一項に記載の方法。
【請求項８】
上記生成するステップは、上記スパース分散表現の位相マップを生成することをさらに含むことを特徴とする請求項１から７のいずれか一項に記載の方法。
【請求項９】
第１データ項目の第１語義的フィンガープリントと第２データ項目の第２語義的フィンガープリントとを結合して複合フィンガープリントを生成するステップと、
上記複合フィンガープリント内の各位置のセットビットの数を加算するステップと、
閾値を用いてセットビットの総数を比例的に減少させ、基準となるフィルグレード（fillgrade）を生成するステップと、をさらに含むことを特徴とする請求項１から７のいずれか一項に記載の方法。
【請求項１０】
上記比例的に減少させるステップは、重み付けスキームを適用してセットビットの総数を減少させることを含み、上記重み付けスキームは、特定のセットビットの周囲にあるビット数を評価することも含むことを特徴とする請求項９に記載の方法。
【請求項１１】
第１データ項目の第１スパース分散表現と第２データ項目の第２スパース分散表現の間の距離を、類似度エンジンによって決定するステップと、
決定した上記距離に基づいて、上記第１データ項目と上記第２データ項目との間の類似性のレベルを特定する情報を、上記類似度エンジンによって提供するステップと、
をさらに含むことを特徴とする請求項１から９のいずれか一項に記載の方法。
【請求項１２】
上記類似度エンジンは上記演算装置上で実行されることを特徴とする請求項１１に記載の方法。
【請求項１３】
上記類似度エンジンは第２演算装置上で実行されることを特徴とする請求項１１に記載の方法。
【請求項１４】
タームをスパース分散表現にマッピングするシステムであって、上記システムは、
語義的ニューラルネットワークと、
パーサと、
表現生成器と、
スパース化モジュールと、を有し、
上記語義的ニューラルネットワークは、
演算装置上で実行され、
少なくとも１つの基準に従って選択された一組のデータ文書を、該データ文書が分散している２次元距離空間においてクラスタ化して、意味マップを生成し、
上記一組のデータ文書それぞれについて、上記意味マップ上で当該データ文書を位置づける座標のペアを特定し、
上記パーサは、上記演算装置上で実行され上記一組のデータ文書中に存在するデータ項目の一覧を生成し、
上記表現生成器は、
上記演算装置上で実行され、
上記一覧のデータ項目それぞれについて、存在情報を決定し、上記存在情報は、（i）上記データ項目が存在するデータ文書の数、（ii）各データ文書において上記データ項目が存在する数、および（iii）上記データ項目が存在するデータ文書それぞれに関連付けられた上記座標ペアを含み、
上記存在情報を用いて分散表現を生成し、
上記スパース化モジュールは、
上記演算装置上で実行され、
スパース度の最大レベルを特定する情報を受け取り、
スパース度の上記最大レベルに基づいて上記分散表現内のセットビットの総数を減少させて、基準となるフィルグレード（fillgrade）を有するスパース分散表現を生成することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、言語横断スパース分散表現の生成に関する。より具体的には、本明細書に記載された方法およびシステムは、スパース分散表現（ＳＤＲ）へタームをマッピング生成する機能、および、上記タームの翻訳と生成された上記マッピングとを関連付ける機能に関する。
【背景技術】
【０００２】
従来のシステムでは、自己組織化マップの利用は、通常、種類によるデータ文書のクラスタ化、そして、未確認のデータ文書がクラスタ化される領域の予測、あるいは、使用されたデータ文書のクラスタ構造分析に限定される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
そのような従来のシステムは、通常、データ文書の構成データ項目の明示的な意味定義のための「分散意味投影マップ」として得られた「クラスタリングマップ」を使用する機能を提供しない。
【課題を解決するための手段】
【０００４】
一つの態様では、データ項目をスパース分散表現にマッピングする、コンピュータによって実施される方法は、少なくとも１つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化するステップを含む。上記方法は、座標ペアと上記一組のデータ文書のそれぞれとを上記参照マップ生成器によって関連付けるステップを含む。上記方法は、上記演算装置上で実行されるパーサによって、上記一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む。上記方法は、上記一覧のデータ項目それぞれについて、上記演算装置上で実行される表現生成器によって存在情報を決定するステップを含み、上記存在情報は、（i）上記データ項目が存在するデータ文書の数、（ii）各データ文書において上記データ項目が存在する数、および（iii）上記データ項目が存在するデータ文書それぞれに関連付けられた上記座標ペアを含む。上記方法は、上記表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む。上記演算装置上で実行されるスパース化モジュール（sparsifying module）によって、スパース度の最大レベル（maximum level of sparsity）を特定する情報（identification）を受け取るステップを含む。上記方法は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて上記分散表現内のセットビットの総数を減少させて、基準となるフィルグレード（fillgrade）を有するスパース分散表現を生成するステップを含む。
【図面の簡単な説明】
【０００５】
本開示の前述および他の目的、態様、構成、および利点は、添付の図面に関連して下記説明を参照することによって、より明白になり、より理解されるであろう。
【図１Ａ】スパース分散表現へデータ項目をマッピングするシステムの実施形態を示すブロック図である。
【図１Ｂ】スパース分散表現へのデータ項目のマッピングに使用される意味マップを生成するシステムの一実施形態を示すブロック図である。
【図１Ｃ】一組のデータ文書におけるデータ項目に関するスパース分散表現を生成するシステムの一実施形態を示すブロック図である。
【図２】スパース分散表現へデータ項目をマッピングする方法の実施形態を示すフローチャートである。
【図３】意味マップ上で集められたデータ文書を用いて生成されたデータ項目のスパース分散表現において、演算を行うシステムの一実施形態を示すブロック図である。
【図４】データ項目間の意味類似度を特定する方法の一実施形態を示すフローチャートである。
【図５】ユーザから提供されたデータ項目と、一連のデータ文書内のデータ項目との間の意味類似度を特定する方法の一実施形態を示すフローチャートである。
【図６Ａ】全文検索システムと共に使用するために提供されるクエリを展開するシステムの一実施形態を示すブロック図である。
【図６Ｂ】全文検索システムと共に使用するために提供されるクエリを展開する方法の一実施形態を示すフローチャートである。
【図６Ｃ】全文検索システムと共に使用するために提供されるクエリを展開する方法の一実施形態を示すフローチャートである。
【図７Ａ】全文検索システムにトピックベース文書を提供するシステムの一実施形態を示すブロック図である。
【図７Ｂ】全文検索システムにトピックベース文書を提供する方法の一実施形態を示すフローチャートである。
【図８Ａ】索引を向上するために、文書に関連するキーワードを全文検索システムに提供するシステムの一実施形態を示すブロック図である。
【図８Ｂ】索引を向上するために、文書に関連するキーワードを全文検索システムに提供する方法の一実施形態を示すフローチャートである。
【図９Ａ】テキスト文書の検索機能を提供するシステムの一実施形態を示すブロック図である。
【図９Ｂ】テキスト文書の検索機能を提供する方法の一実施形態を示すフローチャートである。
【図１０Ａ】全文検索システム内でユーザ専門性照合を提供するシステムの一実施形態を示すブロック図である。
【図１０Ｂ】全文検索システム内でユーザ専門性照合を提供するシステムの一実施形態を示すブロック図である。
【図１０Ｃ】ユーザ専門性のリクエストにユーザ専門性を照合する方法の一実施形態を示すフローチャートである。
【図１０Ｄ】全文検索システムから受け取ったクエリ結果についてユーザプロファイルベースの意味ランキングを行う方法の一実施形態を示すフローチャートである。
【図１１Ａ】医療診断支援を提供するシステムの一実施形態を示すブロック図である。
【図１１Ｂ】医療診断支援を提供する方法の一実施形態を示すフローチャートである。
【図１２Ａ】本明細書に記載の方法およびシステムに関して有用なコンピュータの実施形態を示すブロック図である。
【図１２Ｂ】本明細書に記載の方法およびシステムに関して有用なコンピュータの実施形態を示すブロック図である。
【図１２Ｃ】本明細書に記載の方法およびシステムに関して有用なコンピュータの実施形態を示すブロック図である。
【図１２Ｄ】複数のネットワークがデータホストおよびデリバリーサービスを提供するシステムの一実施形態を示すブロック図である。
【図１３】言語横断スパース分散表現を生成するシステムの一実施形態を示すブロック図である。
【図１４Ａ】言語横断スパース分散表現間の類似度を決定する方法の実施形態を示すフローチャートである。
【図１４Ｂ】言語横断スパース分散表現間の類似度を決定する方法の実施形態を示すフローチャートである。
【発明を実施するための形態】
【０００６】
いくつかの実施形態において、ここで説明する方法およびシステムは、スパース分散表現（ＳＤＲ）へタームをマッピング生成する機能、および、上記タームの翻訳と生成された上記マッピングとを関連付ける機能を提供する。
【０００７】
図１Ａのブロック図を参照すると、スパース分散表現へデータ項目をマッピングするシステムの一実施形態が開示されている。概略すると、システム１００は、エンジン１０１と、マシン１０２ａと、一組のデータ文書１０４（データ文書の集合１０４）と、参照マップ生成器１０６と、意味マップ１０８と、パーサおよび前処理モジュール１１０と、データ項目一覧１１２と、表現生成器１１４と、スパース化モジュール１１６と、１つ以上のスパース分散表現（ＳＤＲ）１１８と、スパース分散表現（ＳＤＲ）データベース１２０と、全文検索システム１２２とを含む。いくつかの実施形態において、エンジン１０１は、図１Ａ〜１Ｃ、および図２に関連して記載されたすべての要素および機能を示す。
【０００８】
図１Ａを参照してより詳細に説明すると、上記システムは、一組のデータ文書１０４を含む。一実施形態において、一組のデータ文書１０４の文書は、テキストデータを含む。他の実施形態において、一組のデータ文書１０４の文書は、物理的システムの種々の値を含む。さらに他の実施形態において、一組のデータ文書１０４の文書は、患者の医療記録を含む。他の実施形態において、一組のデータ文書１０４の文書は、化学に基づく情報を含む（例えば、ＤＮＡ配列、タンパク質配列、化学式）。さらに他の実施形態において、一組のデータ文書１０４の各文書は、楽譜を含む。データ文書１０４内のデータ項目は、単語、数値、医療分析、医療測定、および音符であってもよい。上記データ項目は、一連の任意の種類（例えば１つ以上の数字を含む列）であってもよい。第１の一組のデータ文書１０４のデータ項目は、第２の一組のデータ文書１０４のデータ項目の言語と異なる言語であってもよい。いくつかの実施形態において、一組のデータ文書１０４は、歴史的ログデータを含む。本明細書で使用される「文書」はデータ項目の集合を示してもよく、それぞれのデータ項目は、同じシステムから発生するシステム変数に対応する。いくつかの実施形態において、そのような文書のシステム変数は、同時に抽出される。
【０００９】
上述したように、本明細書における「データ項目」という用語の使用は、文字列データとしての単語、数値データとしてのスカラ値、数値データまたは分類データとしての医療診断および医療分析、音符、およびすべて同じ「システム」から発生する任意の種類の変数を含む。上記「システム」は、自然物人工物を問わず任意の物理的システムであってよく、例えば、川、技術的装置、生物学的実体（例えば、生細胞またはヒト生体等）であってよい。上記システムは、言語やウェブサーバのログデータ等の「概念体系」であってもよい。上記言語は、英語や中国語等の自然言語であってもよく、あるいはJAVA（登録商標）またはC++プログラムコード等の人工言語であってもよい。上述したように、「データ文書」という用語の使用は、一組の「データ項目」を含む。これらのデータ項目は、基礎を成す「システム」の意味によって相互依存してもよい。すべてのデータ項目の値が同じ時間に抽出される場合（例えば、車のエンジンから得られる測定データ項目は、一秒ごとに抽出され、１つのデータ文書に分類することができる）、分類は時間に基づく分類でもよい。上記の分類は、「システム」自体によって特徴付けられる論理構造に沿って行うことができる。例えば、自然言語の場合、単語データ項目を文として分類することができ、音楽の場合、音符に対応するデータ項目を拍子で分類することができる。これらのデータ文書に基づいて、下記により詳細に説明するように、「システム」の意味マップを生成するために、上記の方法によって（または当業者によって理解される他の方法に従って）、文書ベクトルを生成することができる。この「システム」を利用して、下記により詳細に説明するように、意味マップデータ項目ＳＤＲを生成することができる。下記に記載するすべての方法およびシステムは、すべての種類のデータ項目ＳＤＲに用いられてもよい。
【００１０】
一実施形態において、ユーザは、少なくとも１つの基準に従って、一組のデータ文書１０４を選択する。例えば、ユーザは、データ文書が特定の主題に関するかどうかに基づいて一組のデータ文書１０４に追加するデータ文書を選択してもよい。他の例としては、一組のデータ文書１０４は、システム１００が利用される意味集合を表している。一実施形態において、ユーザは、システム１００の人間のユーザである。他の実施形態において、マシン１００は、一組のデータ文書１０４中のデータ文書を選択するために機能を実行する。
【００１１】
システム１００は、参照マップ生成器１０６を含む。一実施形態において、参照マップ生成器１０６は自己組織化マップである。他の実施形態において、参照マップ生成器１０６は生成位相マップである。さらに他の実施形態において、参照マップ生成器１０６は弾性マップである。他の実施形態において、参照マップ生成器１０６はニューラルガス型マップである。さらに他の実施形態において、参照マップ生成器１０６は、あらゆる種類の、競争的、学習ベース、教師なし学習、次元削減の機械学習法である。他の実施形態において、参照マップ生成器１０６は、任意の計算法である。当該任意の計算法は、一組のデータ文書１０４を受け取り、当該一組のデータ文書１０４から、文書を表現するクラスタ化された点が存在する２次元距離空間を生成することができる。さらに他の実施形態において、参照マップ生成器１０６は、任意のコンピュータプログラムである。当該任意のコンピュータプログラムは、一組のデータ文書１０４にアクセスして、当該一組のデータ文書１０４から、文書を表現するクラスタ化された点が存在する２次元距離空間を生成することができる。本明細書では典型的には２次元距離空間を形成するものとして記載されているが、いくつかの実施形態において、参照マップ生成器１０６は、ｎ次元距離空間を形成する。いくつかの実施形態において、参照マップ生成器１０６はソフトウェアにおいて実施される。他の実施形態において、参照マップ生成器１０６はハードウェアにおいて実施される。
【００１２】
２次元距離空間は、意味マップ１０８と称されてもよい。意味マップ１０８は、関連する距離尺度を有する任意のベクトル空間であってもよい。
【００１３】
一実施形態において、パーサおよび前処理モジュール１１０は、データ項目一覧１１２を生成する。他の実施形態において、パーサおよび前処理モジュール１１０は、表現生成器１１４の一部を形成する。いくつかの実施形態において、パーサおよび前処理モジュール１１０は、ソフトウェアプログラムの少なくとも一部として実行される。他の実施形態において、パーサおよび前処理モジュール１１０は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、パーサおよび前処理モジュール１１０は、マシン１０２で実行される。いくつかの実施形態において、パーサおよび前処理モジュール１１０は、データの種類に適するように特殊化されてもよい。他の実施形態において、複数のパーサおよび前処理モジュール１１０が、データの種類に適するように与えられる。
【００１４】
一実施形態において、表現生成器１１４は、データ項目の分散表現を生成する。いくつかの実施形態において、表現生成器１１４は、ソフトウェアプログラムの少なくとも一部として実行される。他の実施形態において、表現生成器１１４は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、表現生成器１１４は、マシン１０２で実行される。
【００１５】
一実施形態において、スパース化モジュール１１６は、データ項目のスパース分散表現（ＳＤＲ）を生成する。当業者ならば理解するだろうように、ＳＤＲは大数（２値）ベクトルであってもよい。例えば、ＳＤＲは数千の要素を有してもよい。いくつかの実施形態において、スパース化モジュール１１６によって生成されたＳＤＲの各要素は特定の意味論的意味を有している。これらの実施形態のうちの１つにおいて、関連する計量距離により測定すると、類似の意味論的意味を有するベクトル要素は、意味論的に類似しないベクトル要素よりも互いにより近接している。
【００１６】
一実施形態において、表現生成器１１４は、スパース化モジュール１１６の機能をもたらす。他の実施形態において、表現生成器１１４は、別のスパース化モジュール１１６と通信する。いくつかの実施形態において、スパース化モジュール１１６は、ソフトウェアプログラムの少なくとも一部として実行される。他の実施形態において、スパース化モジュール１１６は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、スパース化モジュール１１６は、マシン１０２で実行される。
【００１７】
一実施形態において、スパース分散表現（ＳＤＲ）データベース１２０は、表現生成器１１４によって生成されたスパース分散表現１１８を保存する。他の実施形態において、スパース分散表現データベース１２０は、ＳＤＲ、およびＳＤＲが表現するデータ項目を保存する。さらに他の実施形態において、ＳＤＲデータベース１２０は、ＳＤＲに関連するメタデータを保存する。他の実施形態において、ＳＤＲデータベース１２０は、ＳＤＲ１１８を特定する指標（インデックス）を有する。さらに他の実施形態において、ＳＤＲデータベース１２０は、特定のＳＤＲ１１８に意味論的に近似するデータ項目を特定する指標を有する。一実施形態において、ＳＤＲデータベース１２０は、例として挙げるものであって、限定するものではないが、データ項目に関する参照番号、データ項目自体、一組のデータ文書１０４中のデータ項目に関するデータ項目頻度の特定、データ項目の簡略版、データ項目に関するＳＤＲ１１８の圧縮２進表現、データ項目に関する１つまたは複数のタグ、データ項目が位置（例えばウイーン）を特定するかどうかの指示、データ項目が人物（例えばアインシュタイン）を特定するかどうかの指示のうちの１つ以上を保存してもよい。他の実施形態において、ＳＤＲデータベース１２０は、任意の種類のデータベース、あるいは、任意の形式のデータベースであってよい。
【００１８】
ＳＤＲデータベース１２０の例としては、限定するものではないが、構造ストレージ（例えば、NoSQL型データベース、BigTableデータベース）、HBaseデータベース（Apacheソフトウェア財団（The Apache Software Foundation）（メリーランド州、フォレストヒル）より販売）、MongoDBデータベース（10Gen, Inc.（ニューヨーク州、ニューヨーク）より販売）、Cassandraデータベース（The Apache Software Foundationより販売）、および文書ベースデータベースが挙げられる。他の実施形態において、ＳＤＲデータベース１２０は、ODBC対応データベースである。例えば、ＳＤＲデータベース１２０は、Oracle Corporation（カリフォルニア州、レッドウッドシティ）により製造されたORACLEデータベースとして提供されてもよい。他の実施形態において、ＳＤＲデータベース１２０は、Microsoft Corporation（ワシントン州、レドモンド）により製造されたMicrosoft ACCESSデータベース、またはMicrosoft SQLサーバデータベースであってもよい。さらに他の実施形態において、ＳＤＲデータベース１２０は、Oracle Corporationによって配信される無料で利用可能なデータベース製品のMYSQL family等のオープンソースデータベースに基づくカスタム設計データベースであってもよい。
【００１９】
ここで図２のフローチャートを参照すると、スパース分散表現へデータ項目をマッピングする方法２００の一実施形態が開示されている。概略すると、方法２００は、少なくとも１つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（２０２）。方法２００は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（２０４）。方法２００は、演算装置上で実行されるパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む（２０６）。方法２００は、一覧のデータ項目それぞれについて、演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（２０８）。（i）データ項目が存在するデータ文書の数、（ii）各データ文書においてデータ項目が存在する数、（iii）データ項目が存在するデータ文書それぞれに関連付けられた座標ペア。方法２００は、表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む（２１０）。方法２００は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの特定（identification）を受け取るステップを含む（２１２）。方法２００は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード（fillgrade）を有するスパース分散表現を生成するステップを含む（２１４）。
【００２０】
ここで、図１Ａ〜１Ｂに関連して、図２をより詳細に参照すると、方法２００は、少なくとも１つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（２０２）。一実施形態において、上記少なくとも１つの基準は、一組のデータ文書１０４中のデータ項目が閾値回数存在することを示す。他の実施形態において、上記少なくとも１つの基準は、一組のデータ文書１０４中のデータ文書それぞれが、当該データ文書が由来するシステムの状態に関する記述情報を含むべきであることを示す。データ文書の場合、上記少なくとも１つの基準は、データ文書それぞれが、概念的トピック（例えば百科事典的記述）を表現すべきであることを示す。他の実施形態において、上記少なくとも１つの基準は、一組のデータ文書１０４の特徴の一覧が、所望の情報空間を均等に満たすべきであることを示す。他の実施形態において、上記の少なくとも１つの基準は、一組のデータ文書１０４が、上記同じシステムから生じていることを示す。データ文書の場合、上記少なくとも１つの基準は、データ文書がすべて同じ言語であることを示す。さらに他の実施形態において、上記少なくとも１つの基準は、一組のデータ文書１０４が、自然（例えば人間の）言語であることを示す。さらに他の実施形態において、上記少なくとも１つの基準は、一組のデータ文書１０４が、コンピュータ言語（例えば任意の種類のコンピュータコード）であることを示す。他の実施形態において、上記少なくとも１つの基準は、一組のデータ文書１０４が、任意の種類あるいは形態の専門用語、または業界用語（例えば、医学、法律、科学、自動車、軍事等）を含んでもよい。他の実施形態において、上記少なくとも１つの基準は、一組のデータ文書１０４が、その組において最大閾値となる文書を有するべきであることを示す。いくつかの実施形態において、人間のユーザが一組のデータ文書１０４を選択し、マシン１２０が（例えば、リポジトリ、ディレクトリ、文書データベース、または１つ以上のデータ文書を保存する他のデータ構造（不図示）に対するユーザインターフェースを介して）選択された一組のデータ文書１０４を人間のユーザから受け取る。
【００２１】
一実施形態において、マシン１０２は、一組のデータ文書１０４を前処理する。いくつかの実施形態において、パーサおよび前処理モジュール１１０は、マシン１０２の前処理機能を提供する。他の実施形態において、マシン１０２は、一組のデータ文書１０４のそれぞれを、語や文に分割し、句読点を基準に合わせ、望ましくない文字を削除または変換する。さらに他の実施形態において、マシン１０２は、タグ付モジュール（不図示）を実行して、１つ以上のメタ情報タグと、一組のデータ文書１０４における任意のデータ項目またはデータ項目の一部とを関連付ける。他の実施形態において、マシン１０２は、基本的な概念単位のテキストサイズを標準化し、一組のデータ文書１０４をそれぞれ同じサイズのテキスト量に分ける。この実施形態において、マシン１０２は、一組のデータ文書１０４を小さい文書に分割する時、１つ以上の制約を適用してもよい。例えば、限定するものではないが、上記の制約は、一組のデータ文書１０４の文書は、完全な文のみを含むべきである、一定数の文を含むべきである、限定数のデータ項目を有するべきである、文書ごとに最小数の異なる名詞を有するべきである、分割工程は文書の作成者によるそのままの文章を尊重するべきである、ということを示してもよい。一実施形態において、上記制約の適用は任意である。
【００２２】
いくつかの実施形態において、より有用な文書ベクトルを作るために、システム１００は、意味論的観点から、一組のデータ文書１０４中のそれぞれの文書の最も関連するデータ項目を特定するための機能を提供する。これらの実施形態の１つにおいては、パーサおよび前処理モジュール１１０が上記の機能を提供する。他の実施形態において、参照マップ生成器１０６は、１つ以上の文書ベクトルを受け取り、受け取った文書ベクトルを用いて意味マップ１０８を生成する。例えば、システム１００は、名詞を特定および選択（例えば、前処理の間、文書内の各データ項目に割り当てられた品詞タグに基づいた特定）するように構成されてもよい。他の例としては、選択された名詞を語幹処理して、ある主なデータ項目例にあるすべての形態変化（例えば、複数変化や格変化）をまとめてもよい。さらに他の例としては、選択された名詞に関してターム頻度‐逆文書頻度（「tf-idf」指数）の統計値を計算し、特定の一組のデータ文書１０４を考慮してあるデータ文書にとってあるデータ項目がいかに重要かを反映する。文書中のデータ項目数および一組のデータ文書１０４中のデータ項目数に基づいて係数が算出されてもよい。いくつかの実施形態において、システム１００は、文書当たりの所定数のtf-idf最高指数および語幹処理名詞を特定し、意味マップ１０６をトレーニングするために利用される文書ベクトル（例えば、当業者ならば理解するように、特定のデータ項目がある文書に存在するどうかを示すベクトル）を規定するために、選択された名詞が集合した完全なリストを生成する。他の実施形態において、一組のデータ文書１０４の前処理およびベクトル化を行うための機能により、一組のデータ文書１０４の各文書に対してベクトルが生成される。これらの実施形態の１つにおいては、選択された名詞のリストにおけるデータ項目ごとの識別子および整数は各文書を表す。
【００２３】
一実施形態において、マシン１０２は、前処理された文書を全文検索システム１２２に提供する。例えば、パースおよび前処理モジュール１１０がこの機能を提供してもよい。他の実施形態において、全文検索システム１２２を利用することによって、文書の相互選択が可能となる。例えば、全文検索システム１２２は、例えば文字の完全一致を使用して、特定のデータ項目を含むすべての文書の検索、または特定のデータ項目を含む元の文書の断片の検索を可能とする機能を提供してもよい。さらに他の実施形態において、前処理された各文書（または前処理された文書の断片）は、文書識別子、断片識別子、文書タイトル、文書のテキスト、文書中のデータ項目数、文書のバイト長さ、および分類識別子の少なくとも１つに関連付けられる。他の実施形態において、下記により詳細に説明されるように、意味マップ座標ペアは文書に割り当てられ、そのような座標ペアは、全文検索システム１２２の前処理された文書に関連付けられてもよい。そのような実施形態において、全文検索システム１２２は、単一および複合データ項目を受け取り、受け取ったデータ項目を含むすべての一致する文書の座標ペアを返信する機能を提供してもよい。全文検索システム１２２は、限定するものではないが、以下を含む。Lucene-based Systems（例えば、Apacheソフトウェア財団（The Apache Software Foundation）（メリーランド州、フォレストヒル）より販売されているApache SOLR、およびElasticsearch Global BV（オランダ、アムステルダム）より販売されているELASTICSEARCH）、オープンソースシステム（Slashdot Media（カリフォルニア州、サンフランシスコ）、Dice Holdings, Inc. company（ニューヨーク州、ニューヨーク）によって所有および運営されている、The Lemur Project through SourceForge Lemur Projectにより販売されているIndri。Lavtech.Com Corp.により販売されているMNOGOSEARCH。Sphinx Technologies Inc.により販売されているSphinx、the Xapian Projectにより販売されているXapian。Swish-e.orgにより販売されているSwish-e。BaseX GmbH（ドイツ、コンスタンツ）により販売されているBaseX。www.dataparksearch.orgにより販売されているDataparkSearch Engine。Slashdot Mediaによって所有および運営されているSourceForgeにより販売されているApexKB。Searchdaimon AS（ノルウェー、オスロ）により販売されているSearchdaimon。RMIT University（オーストラリア、メルボルン）により販売されているZettair）、および商業システム（Hewlett-Packard（カリフォルニア州、サニーベール）により製造されているAutonomy IDOL。Expert System S.p.A.（イタリア、モデナ）により製造されているCOGITO product line。Microsoft, Inc.（ワシントン州、レドモンド）により製造されているFast Search & Transfer。Attivio, Inc.（マサチューセッツ州、ニュートン）により製造されているATTIVIO、OpenText Corporation（カナダ、オンタリオ州、ウォータールー）により製造されているBRS/Searc。Lexmark（カンザス州、ショーニー）によるPerceptive Softwareにより製造されている（Brainwareを利用する）Perceptive Intelligent Capture。Concept Searching, Inc.（バージニア州、マクリーン）により製造されている任意の製品。Coveo Solutions, Inc.（カリフォルニア州、サンマテオ）により製造されているCOVEO。Dieselpoint, Inc.（イリノイ州、シカゴ）により製造されているDieselpoint SEARCH。dtSearch Company（メリーランド州、ベセスダ）により製造されているDTSEARCH。Oracle Corporation（カリフォルニア州、レッドウッドショアーズ）により製造されているOracle Endeca Information Discovery。Exalead（Dassault Systemes（フランス、パリ）の子会社）により製造されている製品。Yahoo!により提供されているInktomi検索エンジン。Lexmark（カンザス州、ショーニー）によるPerceptive Softwareにより製造されているISYS Search（現在のPerceptive Enterprise Search）。ATTRAQT, LTD.（英国、イングランド、ロンドン）により製造されているLocayta（現在のATTRAQT FREESTYLE MERCHANDISING）。LucidWorks（カリフォルニア州、レッドウッドシティ）により製造されているLucid Imagination（現在のLUCIDWORKS）。MarkLogic Corporation（カリフォルニア州、サンカルロス）により製造されているMARKLOGIC。Mindbreeze GmbH（オーストリア、リンツ）により製造されているMindbreeze製品ライン。Adobe Systems, Inc.（カリフォルニア州、サンホゼ）により製造されているOmniture（現在のAdobe SiteCatalyst）。OpenText Corporation（カナダ、オンタリオ州、ウォータールー）により製造されているOpenText製品ライン。PolySpot S.A.（フランス、パリ）により製造されているPolySpot製品ライン。Thunderstone Software LLC（オハイオ州、クリーブランド）により製造されているThunderstone製品ライン。IBM Corporation（ニューヨーク州、アーモンク）により製造されているVivisimo（現在のIBM Watson Explorer））。全文検索システムは、本明細書において、企業検索システムと称されてもよい。
【００２４】
一実施形態において、参照マップ生成器１０６は、一組のデータ文書１０４の文書ベクトルにアクセスし、２次元距離空間にわたって各文書を分散させる。他の実施形態において、参照マップ生成器１０６は、前処理された一組のデータ文書１０４にアクセスして、２次元距離空間にわたって各文書を表す点を分散させる。さらに他の実施形態において、分散された点がクラスタ化される。例えば、参照マップ生成器１０６は、文書の意味内容に基づいて、文書を表わす点の位置を計算してもよい。得られた分散は、特定の一組のデータ文書１０４の意味論的集合を表す。
【００２５】
一実施形態において、参照マップ生成器１０６は、前処理された一組のデータ文書１０４の文書ベクトルを使用してトレーニングされる。他の実施形態において、参照マップ生成器１０６は、（例えば前処理されていない）一組のデータ文書１０４の文書ベクトルを使用してトレーニングされる。システム１００のユーザは、関連技術の当業者によってよく理解されるトレーニング方法を使用して、一組のデータ文書１０４を用いて参照マップ生成器１０６をトレーニングしてもよい。
【００２６】
一実施形態において、上記のトレーニングプロセスは２つの結果に至る。第１の結果として、一組のデータ文書１０４の各文書に対して、意味マップ１０８上の文書を位置付ける座標ペアが特定される。上記座標は、全文検索システム１２２内の各文書エントリに保存されてよい。第２の結果として、参照マップ生成器１０６が任意の新しい（未確認の）文書ベクトルを意味マップ１０８上に位置付けることを可能とするウェイトマップが生成される。参照マップ生成器１０６のトレーニング後、文書の分散が静止してもよい。しかしながら、最初のトレーニングセットが十分に大きく、記述的である場合、新たなトレーニング文書を加えることで語彙を拡大することができる。意味マップの時間を要する再計算を避けるために新たな文書をマップ上に位置付けてもよい。これは、トレーニングされた重みによって新たな文書の文書ベクトルを変換することで行われる。目的の意味マップ１０８は、意味マップ１０８にわたる文書を表現する点の分散を分析することによって改良および向上することができる。過小表現または過大表現されたトピックがある場合、一組のデータ文書１０４を適宜適合させることが可能であり、次に意味マップ１０８を再計算することが可能である。
【００２７】
したがって、方法２００は、少なくとも１つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む。上述したように、そして当業者によって理解されるように、データ文書をクラスタ化するために種々の技術が利用されてもよい。例えば、限定するものではないが、生成位相マップ、成長型自己組織化マップ、弾性マップ、ニューラルガス、ランダムマッピング、潜在的意味索引、主成分分析、または任意の他の次元削減に基づくマッピング方法を利用して実施されてよい。
【００２８】
ここで図１Ｂのブロック図を参照して、スパース分散表現にデータ項目をマッピングする際に使用される意味マップ１０８を生成するシステムの一実施形態が開示されている。図１Ｂに示すように、マシン１０２によって受け取られる一組のデータ文書１０４は、言語定義コーパスと称されてもよい。一組のデータ文書を前処理すると、上記文書は、参照マップ生成器トレーニングコーパスと称されてもよい。上記文書は、ニューラルネットワークトレーニングコーパスと称されてもよい。参照マップ生成器１０６は、上記一組のデータ文書が位置付けられた意味マップ１０８を出力として生成するために参照マップ生成器トレーニングコーパスにアクセスする。意味マップ１０８は、各文書の座標を抽出してもよい。意味マップ１０８は、上記座標を全文検索システム１２２に提供してもよい。非限定的な例として、コーパスは、その内容および構造の、協同的修正、拡張、または削除を可能にするアプリケーション（例えば、コンテンツの作成および管理用のウェブアプリケーション）に基づくコーパスを含んでもよい。そのようなアプリケーションは、例として、Wikimedia Foundation（カリフォルニア州、サンフランシスコ）によって提供および実施されている「wiki」および「Wikipedia」百科事典プロジェクトと称されてもよい。コーパスは、任意の種類やタイプの知識ベースを含んでもよい。
【００２９】
当業者によって理解されるように、高次元ベクトルを低次元空間（例えば意味マップ１０８）にマッピングするために任意のタイプまたは形式のアルゴリズムが使用されてもよい。例えば、類似のベクトルが低次元空間において互いに近接して位置するように入力ベクトルをクラスタ化して、その結果、位相的にクラスタ化された低次元マップがもたらされる場合である。いくつかの実施形態において、二次意味写像（マップ）のサイズは、「意味導出」を定義する。この「意味導出」によってデータ項目のスパース分散表現（ＳＤＲ）のパターンが算出される。このことはより詳細に後述する。例えば、一辺が１２８の場合、データ項目ＳＤＲあたり１６Ｋの特徴の記述性に相当する。参照マップ生成器のサイズが大きいほどトレーニングに時間を要し、ＳＤＲが大きいほど任意の手段によって比較または処理するのに時間を要するために演算上の制限が存在することを考慮して、原則として、マップのサイズは自由に選択することができる。他の例として、１２８×１２８の大きさのデータ項目のＳＤＲは、「一般的な英語」の一組のデータ文書１０４に適用された場合、有用であることがわかっている。
【００３０】
再び図２を参照して、方法２００は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（２０４）。上述したように、意味マップ１０８を生成する時、参照マップ生成器１０６は、意味マップ１０８上の点の位置を算出する。上記点は、一組のデータ文書１０４における一つの文書を表している。次に、意味マップ１０８は、上記点の座標を抽出してもよい。いくつかの実施形態において、意味マップ１０８は、抽出した座標を全文検索システム１２２に送る。
【００３１】
図１Ｃのブロック図を参照して、一組のデータ文書１０４における複数のデータ項目のそれぞれに対するスパース分散表現を生成するシステムの一実施形態が開示されている。図１Ｃに示すように、表現生成器１１４は、全文検索システム１２２にクエリを送り、上記クエリに一致する１つ以上のデータ項目を受け取る。表現生成器１１４は、全文検索システム１２２から検索したデータ項目のスパース分散表現を生成してもよい。いくつかの実施形態において、意味マップ１０８からのデータを利用してＳＤＲを生成することは、生成されたスパース分散表現（例えば、まばらに集まったベクトル）への意味情報の「折り畳み」を含む、と言ってもよい。
【００３２】
再び図２を参照すると、方法２００は、演算装置上で実行されるパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む（２０６）。一実施形態において、パーサおよび前処理モジュール１１０は、データ項目の一覧１１２を生成する。他の実施形態において、パーサおよび前処理モジュール１１０は、一組のデータ文書１０４に直接アクセスして、データ項目一覧１１２を生成する。さらに他の実施形態において、パーサおよび前処理モジュール１１０は、（上述したように）前処理された形態の一組のデータ文書１０４を保存する全文検索システム１２２にアクセスする。他の実施形態において、パーサおよび前処理モジュール１１０は、一組のデータ文書１０４に明確に含まれるデータ項目だけでなく、一般的に有用なデータ項目の組み合わせを含むように、データ項目一覧１１２を展開する。例えば、パーサおよび前処理モジュール１１０は、公的に利用可能な集合から検索されるデータ項目のよくある組み合わせ（「悪天候」あるいは「電子商取引」等）にアクセスしてもよい。
【００３３】
一実施形態において、パーサおよび前処理モジュール１１０は、例えば、スペースや句読点を用いてデータ項目一覧１１２の範囲を定める。他の実施形態において、一覧１１２において異なる品詞タグのもとで複数存在するデータ項目は異なって処理される（例えば、データ項目"fish"は、名詞として使用される場合、動詞として使用される場合とは異なるＳＤＲを有し、したがって、２つのエントリが含まれる）。他の実施形態において、パーサおよび前処理モジュール１１０は、データ項目一覧１１２をＳＤＲデータベース１２０に提供する。さらに他の実施形態において、表現生成器１１４は、データ項目一覧１１２中のデータ項目それぞれに対するＳＤＲを生成するために、保存されたデータ項目一覧１１２にアクセスする。
【００３４】
方法２００は、一覧のデータ項目それぞれについて、演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（２０８）。（i）データ項目が存在するデータ文書の数、（ii）各データ文書においてデータ項目が存在する数、（iii）データ項目が存在するデータ文書それぞれに関連付けられた座標ペア。一実施形態において、表現生成器１１４は、意味マップ１０８およびパーサおよび前処理モジュール１１０によって全文検索システム１２２に保存されたデータを検索するために全文検索システム１２２にアクセスし、意味マップ１０８からのデータを利用して、パーサおよび前処理モジュール１１０によって一覧にされたデータ項目に関するスパース分散表現を生成する。
【００３５】
一実施形態において、表現生成器１１４は、特定の文字列（例えば、文字、数字、または文字および数字の組み合わせ）を含む各文書に対する座標ペアを検索するために、全文検索システム１２２にアクセスする。表現生成器１１４は、データ項目が存在する文書の数を決定するために、検索された座標ペアの数をカウントする。他の実施形態において、表現生成器１１４は、全文検索システム１２２から、上記文字列を含む各文書を表すベクトルを検索する。そのような実施形態において、表現生成器１１４は、ベクトル内のセットビットの数を決定する（例えば、ベクトル内のビット数を１と設定する）。上記セットビットの数は、特定の文書内でデータ項目が出現した回数を示す。表現生成器１１４は、出現値を決定するために、セットビットの数を追加してもよい。
【００３６】
方法２００は、表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む（２１０）。表現生成器１１４は、分散表現を生成する公知の方法を利用してもよい。いくつかの実施形態において、分散表現は、一組のデータ文書１０４においてデータ項目が存在する意味文脈を表すパターンを決定するために使用されてもよい。上記パターンにおける座標ペアの空間的分散は、データ項目が存在する文脈における意味領域を反映する。表現生成器１１４は、データ項目とその分散表現との間の二方向マッピングを生成してもよい。ＳＤＲデータベース１２０は、パターン辞書と称されてもよい。システム１００は、パターン辞書を用いて、分散表現に基づいてデータ項目を特定することができる。その逆もまたしかりである。互いに異なる一組のデータ文書１０４を使用することによって（例えば、異なる制限に基づいて、異なる言語の異なる種類の主題に関する文書を選択する）、または、変化する物理システム、異なる医療分析方法、あるいは変化する音楽様式に由来することによってシステム１００が種々のパターン辞書を生成することは当業者ならば理解するであろう。
【００３７】
方法２００は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む（２１２）。一実施形態において、人間のユーザが、スパース度の最大レベルの識別情報を提供する。他の実施形態において、スパース度の最大レベルは、所定の閾値に設定される。いくつかの実施形態において、スパース度の最大レベルは、意味マップ１０８の解像度に依存する。他の実施形態において、スパース度の最大レベルは、参照マップ生成器１０６の種類に依存する。
【００３８】
方法２００は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレードを有するスパース分散表現（ＳＤＲ）を生成するステップを含む（２１４）。一実施形態において、スパース化モジュール１１６は、最終的なＳＤＲ１１８の特定のフィルグレードに導くカウント閾値を設定することによって（例えば、受け取ったスパース度の最大レベルの識別情報を利用することによって）分散表現をスパース化する。これにより、スパース化モジュール１１６はＳＤＲ１１８を生成する。このことは、一組のデータ文書１０４におけるデータ項目の意味論的意味の二値フィンガープリントを提供すると言ってもよい。あるいは、一組のデータ文書１０４におけるデータ項目の意味論的値の二値フィンガープリントを提供すると言ってもよい。また、ＳＤＲ１１８は、意味論的フィンガープリントと称されてもよい。スパース化モジュール１１６は、ＳＤＲデータベース１２０にＳＤＲ１１８を保存する。
【００３９】
ＳＤＲの生成において、システム１００は、ベクトルに１および０を入力する。例えば、システム１００は、データ文書がデータ項目を使用する場合はベクトルに１を入力し、データ文書がデータ項目を使用しない場合はベクトルに０を入力する。ユーザは、データ項目の意味論的意味を反映したマップ上の点を示すＳＤＲのグラフ表示を受け取ってもよい（上記グラフ表示は、ＳＤＲとも、意味論的フィンガープリントとも、パターンとも称される）。本明細書の記載は、点およびパターンへも言及しうる。しかしながら、当業者であれば、「点」または「パターン」への言及は、ＳＤＲベクトル内の設定されたセットビットにも言及している――そのようなグラフ表示の基礎をなす（任意の）データ構造にも言及していることを理解するであろう。
【００４０】
いくつかの実施形態において、表現生成器１１４およびスパース化モジュール１１６は、複数のデータ項目を１つのＳＤＲに結合してよい。例えば、データ項目の、句、文、段落、または他の組み合わせが個々のＳＤＲの「集合属性（union property）」を反映する１つのＳＤＲに変換される必要がある場合、システム１００は、（動的に生成することによって、または事前に生成されたＳＤＲを検索することによって）それぞれ個々のデータ項目をそのＳＤＲに変換し、二値ＯＲ演算を使用して個々のＳＤＲから１つの複合ＳＤＲを形成してもよい。上記の例を続けると、セットビットの数は、複合ＳＤＲ中の位置ごとに追加される。一実施形態において、スパース化モジュール１１６は、基準となるフィルグレードに帰結する閾値を使用して、セットビットの総数を比例的に軽減してもよい。他の実施形態において、スパース化モジュール１１６は、セットビットの総数を軽減するために重み付けスキームを利用してよい。このことは、ＳＤＲにおける位置ごとのセットビットの数を単純にカウントするのではなく、特定のセットビットの周囲にあるビット数を評価することを含む。そのような局所的重み付けスキームは、ＳＤＲ内の集合の一部であるビットを重視する。それゆえ、ＳＤＲ内の集合の一部であるビットは、（例えば周囲にセットビットがない）単一の孤立したビットよりも意味論的により重要である。
【００４１】
いくつかの実施形態において、本明細書に記載の方法およびシステムを実施することにより、データ文書の集合を文脈によってクラスタ化したマップを単純に生成するシステムが提供されるというのではなく、クラスタ化されたデータ文書を表すマップ上の位置を分析し、上記分析に基づいて、どのデータ文書が特定のデータ項目を含むかを決定し、上記分析を利用して各データ文書の各データ項目に関する詳述を提供する、ことを継続的に行うシステムが提供される。データ項目のスパース分散表現は、意味マップ１０８から読み出されたデータに基づいて生成される。データ項目のスパース分散表現は、他の機械学習方法をトレーニングする使用に限定される必要はなく、データ項目間の関係を決定するために使用してもよい（データ項目間の類似度を決定する、データ項目をランク付けする、または種々の環境における検索および分析における使用に関して、ユーザが事前に類似していることを把握していないデータ項目を特定する、など）。いくつかの実施形態において、ＳＤＲにおける情報の任意の部分を本明細書に記載の方法およびシステムによって変化させることで、任意のデータ項目は、（例えばその意味論的集合において）「意味論的に根拠がある」ことになり、その結果、機械学習、ニューラルネットワーク、または皮質アルゴリズムのいずれを用いなくても明確に比較可能かつ演算可能となる。
【００４２】
ここで図３のブロック図を参照して、意味マップ上でクラスタ化されたデータ文書におけるデータ項目のスパース分散表現を使用して演算を行うシステムの一実施形態が開示されている。一実施形態において、システム３００は、スパース分散表現間の意味論的類似度を決定する機能を含む。他の実施形態において、システム３００は、ＳＤＲに変換された参照データ項目と照合することにより、ＳＤＲに変換されたデータ項目の関連性ランキングを決定する機能を含む。さらに他の実施形態において、システム３００は、ＳＤＲに変換された参照テキスト要素と照合することにより、ＳＤＲに変換されたデータ項目の分類を決定する機能を含む。他の実施形態において、システム３００は、ＳＤＲに変換された参照データ項目と照合することにより、ＳＤＲに変換されたデータ項目のトピックフィルタリングを行う機能を含む。さらに他の実施形態において、システム３００は、ＳＤＲに変換されたデータ項目からのキーワード抽出を行う機能を含む。
【００４３】
概略すると、システム３００は、図１Ａ〜１Ｃ（図３におけるエンジン１０１およびＳＤＲデータベース１２０）に関連して上述された要素を含み、上記図に関連して上述された機能を提供する。また、システム３００は、マシン１０２ａ、マシン１０２ｂ、フィンガープリンティングモジュール３０２、類似度エンジン３０４、曖昧性解消モジュール３０６、データ項目モジュール３０８、表現エンジン３１０を含む。一実施形態において、エンジン１０１はマシン１０１ａにて実行される。一実施形態において、フィンガープリンティングモジュール３０２、類似度エンジン３０４、曖昧性解消モジュール３０６、データ項目モジュール３０８、表現エンジン３１０は、マシン１０２ｂにて実行される。
【００４４】
図１Ａ〜１Ｃ、図２に関連して、図３を参照すると、システム３００は、フィンガープリンティングモジュール３０２を含む。一実施形態において、フィンガープリンティングモジュール３０２は、図１Ａ〜１Ｃ、および図２に関連して上述された、表現生成器１１４およびスパース化モジュール１１６を含む。他の実施形態において、フィンガープリンティングモジュール３０２は、エンジン１０１の一部を形成する。一実施形態において、フィンガープリンティングモジュール３０２は、ハードウェアプログラムの少なくとも一部として実施される。他の実施形態において、フィンガープリンティングモジュール３０２は、ソフトウェアプログラムの少なくとも一部として実施される。さらに他の実施形態において、フィンガープリンティングモジュール３０２は、マシン１０２にて実行される。いくつかの実施形態において、フィンガープリンティングモジュール３０２は、ＳＤＲデータベース１２０の一部ではないが動的に生成されるＳＤＲを用いて、リアルタイムで、（例えば、本明細書に記載のスパース化プロセスを介して）データ項目ＳＤＲを意味論的フィンガープリントに変化させるために、ポストプロダクションプロセスを実行する。例えば、単語意味論的フィンガープリントから文書意味論的フィンガープリントを作成する。しかしながら、そのようなポストプロダクションプロセスは任意である。他の実施形態において、ＳＤＲデータベース１２０においてＳＤＲを有していないデータ項目についてスパース化ＳＤＲを生成するために、表現生成器１１４は直接アクセスされてもよい。そのような実施形態において、表現生成器１１４は、スパース化モジュール１１６を自動的に呼出し、自動的にスパース化ＳＤＲを生成してもよい。「ＳＤＲ」、「フィンガープリント」、「意味論的フィンガープリント」という用語は、本明細書において互換使用され、フィンガープリンティングモジュール３０２によって生成されたＳＤＲ、および表現生成器１１４を直接的に呼び出すことによって生成されるＳＤＲの両方を指すために使用される。
【００４５】
システム３００は、類似度エンジン３０４を含む。類似度エンジン３０４は、ＳＤＲ間の距離を算出し、類似度レベルを決定する機能を提供する。他の実施形態において、類似度エンジン３０４は、ハードウェアモジュールの少なくとも一部として実施される。他の実施形態において、類似度エンジン３０４は、ソフトウェアプログラムの少なくとも一部として実施される。さらに他の実施形態において、類似度エンジン３０４は、マシン１０２ｂにて実行される。
【００４６】
システム３００は、曖昧性解消モジュール３０６を含む。一実施形態において、曖昧性解消モジュール３０６は、データ項目の単一のＳＤＲ内に組み入れられる文脈部分空間を特定する。したがって、曖昧性解消モジュール３０６は、単一のデータ項目の異なる意味論的文脈をユーザがより理解しやすくする。いくつかの実施形態において、曖昧性解消モジュール３０６は、ハードウェアモジュールの少なくとも一部として実施される。いくつかの実施形態において、曖昧性解消モジュール３０６は、ソフトウェアプログラムの少なくとも一部として実施される。他の実施形態において、曖昧性解消モジュール３０６は、マシン１０２ｂにて実行される。
【００４７】
システム３００は、データ項目モジュール３０８を含む。一実施形態において、データ項目モジュール３０８は、受け取ったデータ項目の集合から、最も特徴的なデータ項目を特定する機能を提供する、つまり、そのデータ項目は、下記により詳述するように、そのＳＤＲが、受け取ったデータ項目の集合のＳＤＲから閾値未満の距離を有するデータ項目である。データ項目モジュール３０８は、図８Ａに関連して後述されるキーワード抽出モジュール８０２とともに、または、キーワード抽出モジュール８０２に代替して、使用される。いくつかの実施形態において、データ項目モジュール３０８は、ハードウェアモジュールの少なくとも一部として実行される。いくつかの実施形態において、データ項目モジュール３０８は、ソフトウェアプログラムの少なくとも一部として実行される。実施形態において、データ項目モジュール３０８は、マシン１０２ｂにて実行される。
【００４８】
システム３００は、表現エンジン３１０を含む。一実施形態において、より詳細に後述されるように、表現エンジン３１０は、１以上のデータ項目とともにユーザから受け取ったブール演算子を評価する機能を提供する。ブール演算子を評価することにより、１以上のデータ項目または複数のデータ項目の組み合わせに関する分析をリクエストするうえでユーザに柔軟性を与える。いくつかの実施形態において、表現エンジン３１０は、ハードウェアモジュールの少なくとも一部として実行される。いくつかの実施形態において、表現エンジン３１０は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、表現エンジン３１０は、マシン１０２ｂにて実行される。
【００４９】
図４のフローチャートを参照して、データ項目間の類似度レベルを特定する方法に係る一実施形態が開示されている。概略すると、方法４００は、少なくとも１つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（４０２）。方法４００は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（４０４）。方法４００は、演算装置上で実行されるパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む（４０６）。方法４００は、一覧のデータ項目それぞれについて、演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（４０８）。（i）データ項目が存在するデータ文書の数、（ii）各データ文書においてデータ項目が存在する数、（iii）データ項目が存在するデータ文書それぞれに関連付けられた座標ペア。方法４００は、表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む（４１０）。方法４００は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む（４１２）。方法４００は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード（fillgrade）を有するスパース分散表現（ＳＤＲ）を生成するステップを含む（４１４）。方法４００は、演算装置上で実行される類似度エンジンによって、第１データ項目の第１ＳＤＲと第２データ項目の第２ＳＤＲとの間の距離を決定するステップを含む（４１６）。方法４００は、決定された上記距離に基づく上記第１データ項目と上記第２データ項目との間の意味類似度レベルの識別情報を、上記類似度エンジンによって提供するステップを含む（４１８）。
【００５０】
図１Ａ〜１Ｃ、図２、図３に関連して、図４をより詳細に参照すると、方法４００は、少なくとも１つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（４０２）。一実施形態において、クラスタ化は、図２に関連して上記したように行われる（２０２）。
【００５１】
方法４００は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（４０４）。一実施形態において、その関連付けするステップは、図２に関連して上記したように行われる（２０４）。
【００５２】
方法４００は、演算装置上で実行されるパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む（４０６）。一実施形態において、その生成ステップは、図２に関連して上記したように行われる（２０６）。
【００５３】
方法４００は、一覧のデータ項目それぞれについて、演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（４０８）。（i）データ項目が存在するデータ文書の数、（ii）各データ文書においてデータ項目が存在する数、（iii）データ項目が存在するデータ文書それぞれに関連付けられた座標ペア。一実施形態において、その決定ステップは、図２に関連して上記したように行われる（２０８）。
【００５４】
方法４００は、表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む（４１０）。一実施形態において、その生成ステップは、図２に関連して上記したように行われる（２１０）。
【００５５】
方法４００は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む（４１２）。一実施形態において、上記受け取るステップは、図２に関連して上記したように行われる（２１２）。
【００５６】
方法４００は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード（fillgrade）を有するスパース分散表現（ＳＤＲ）を生成するステップを含む（４１４）。一実施形態において、その減少ステップは、図２に関連して上記したように行われる（２１４）。
【００５７】
方法４００は、演算装置上で実行される類似度エンジンによって、第１データ項目の第１ＳＤＲと第２データ項目の第２ＳＤＲとの間の距離を決定するステップを含む（４１６）。一実施形態において、類似度エンジン３０４は、少なくとも２つのＳＤＲの間の距離を演算する。距離の測定は、限定するものではないが、直接オーバーラップ（Direct Overlap）、ユークリッド距離（例えば、人間が定規を使って測定するのと同様にＳＤＲの２点間の普通の距離を決定する）、ジャッカール距離、コサイン類似度を含む。２つのＳＤＲ間の距離が短いほど、類似度は高くなる。また、類似度が高いほど、ＳＤＲが表現するデータ要素の意味関連性が高くなる（意味畳み込みＳＤＲの場合）。一実施形態において、類似度エンジン３０４は、上記第１ＳＤＲおよび上記第２ＳＤＲの両方に設定された複数のビット（例えば、両方のＳＤＲが１にセットされた点）の数をカウントする。他の実施形態において、類似度エンジン３０４は、上記第１ＳＤＲの第１点を特定し（例えば、任意に選択された、１にセットされた第１ビット）、上記第２ＳＤＲ内で同じ点を見出し、上記第２ＳＤＲにおいて最も近いセットビットを決定する。上記第１ＳＤＲにおけるセットビット（上記第１ＳＤＲにおける各セットビット）に最も近い第２ＳＤＲにおけるセットビットを決定することにより、類似度エンジン３０４は、それぞれの点における距離の合計値を計算し、点の数で除算することにより、総距離を決定することができる。当業者であれば、ＳＤＲ間の距離を決定するために他のメカニズムを使用できることを理解するであろう。いくつかの実施形態において、類似度は、絶対尺度ではなく、データ項目が有する異なる文脈に基づいて変化しうる。したがって、これらの実施形態の一つにおいて、類似度エンジン３０４は、２つのＳＤＲ間のオーバーラップの関係（様相）も分析する。例えば、オーバーラップの関係は、類似演算において重み付け関数を加えるために使用される。他の例として、類似尺度が使用される。
【００５８】
方法４００は、決定された距離に基づく第１データ項目と第２データ項目との間の意味類似度レベルの識別情報を、類似度エンジンによって提供するステップを含む（４１８）。類似度エンジン３０４は、２つのＳＤＲの間の距離が類似度の最大閾値を超え、したがって、表現されたデータ項目は類似しないと判定することができる。あるいは、類似度エンジン３０４は、２つのＳＤＲの間の距離が類似度の最大閾値を超えておらず、したがって、表現されたデータ項目は類似すると判定することができる。類似度エンジン３０４は、範囲、閾値、あるいは他の計算に基づいて類似度レベルを特定することができる。一実施形態において、ＳＤＲが実際にデータ項目の意味を表現する（複数の語義的特徴により表現される）ため、２つのデータ項目間の語義的近さを決定することができる。
【００５９】
いくつかの実施形態において、システム１００は、ユーザインターフェース（不図示）を提供する。ユーザは、そのユーザインターフェースを用いて、データ項目を入力し、類似度レベルの識別情報を受け取ることができる。上記ユーザインターフェースは、マシン１００に直接アクセスするユーザに上記機能を提供することができる。あるいは、上記ユーザインターフェースは、コンピュータネットワークを介してマシン１００にアクセスするユーザに上記機能を提供することができる。この例によって、限定するものではないが、ユーザは、上記ユーザインターフェースに対して、「音楽」、「アップル」といった一組のデータ項目を入力することができる。類似度エンジン３０４は上記データ項目を受け取り、図１Ａ〜図１Ｃ、および図２に関連して既述した上記データ項目についてのＳＤＲを生成する。上記の例を続けると、類似度エンジン３０４は、次に、上述したように２つのＳＤＲを比較してよい。必須ではないが、類似度エンジン３０４は、上記ユーザインターフェースを介してＳＤＲそれぞれの図形的表現をユーザに提供し、それにより、ユーザは、それぞれのデータ項目が語義的にマッピングされる方法（状態）を視覚的に確認することができる（例えば、参照マップ生成器１０６のトレーニングのために使用される参照用収集物におけるデータ項目の使用を表現する意味マップにクラスタ化された点を見る、など。）
いくつかの実施形態において、類似度エンジン３０４は、ユーザからデータ項目を１つだけ受け付ける。図５を参照すると、フローチャートにそのような方法に係る一実施形態が示されている。概略すると、方法５００は、少なくとも１つの基準に従って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（５０２）。方法５００は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（５０４）。方法５００は、一組のデータ文書中に存在するデータ項目の一覧を、第１演算装置上で実行されるパーサによって生成するステップを含む（５０６）。方法５００は、一覧のデータ項目それぞれについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（５０８）。（i）データ項目が存在するデータ文書の数、（ii）各データ文書においてデータ項目が存在する数、（iii）データ項目が存在するデータ文書それぞれに関連付けられた座標ペア。方法５００は、表現生成器によって、データ項目の一覧におけるデータ項目それぞれについて、上記存在情報を用いて分散表現を生成するステップを含む（５１０）。方法５００は、上記第１演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む（５１２）。方法５００は、上記スパース化モジュールによって、それぞれの分散表現について、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード（fillgrade）を有するスパース分散表現（ＳＤＲ）を生成するステップを含む（５１４）。方法５００は、生成されたＳＤＲそれぞれをＳＤＲデータベース内に保存するステップを含む（５１６）。方法５００は、第２演算装置上で実行される類似度エンジンによって、第３演算装置から第１データ項目を受け取るステップを含む（５１８）。方法５００は、第１データ項目の第１ＳＤＲと、ＳＤＲデータベースから読み出した第２データ項目の第２ＳＤＲとの間の距離を、上記類似度エンジンによって決定するステップを含む（５２０）。方法５００は、決定された距離に基づいて、第２データ項目の特定、および第１データ項目と第２データ項目との間の意味類似度レベルの識別情報を、上記類似度エンジンによって、上記第３演算装置に提供するステップを含む（５２２）。
【００６０】
いくつかの実施形態において、（５０２）〜（５１６）は、図２、および（２０２）〜（２１４）に関連して既述された方法により実行される。
【００６１】
方法５００は、第２演算装置上で実行される類似度エンジンによって、第３演算装置から第１データ項目を受け取るステップを含む（５１８）。一実施形態において、システム３００は、ユーザインターフェース（不図示）を含む。ユーザは、そのユーザインターフェースを用いて、第１データ項目を入力することができる。他の実施形態において、フィンガープリンティングモジュール３０２は、第１データ項目のＳＤＲを生成する。さらに他の実施形態において、表現生成器１１４はＳＤＲを生成する。
【００６２】
方法５００は、第１データ項目の第１ＳＤＲと、ＳＤＲデータベースから読み出した第２データ項目の第２ＳＤＲとの間の距離を、上記類似度エンジンによって決定するステップを含む（５２０）。一実施形態において、方法５００は、図４、（４１６）に関連して既述されたように、第１データ項目の第１ＳＤＲと第２データ項目の第２ＳＤＲとの間の距離を決定するステップを含む。いくつかの実施形態において、類似度エンジン３０４は、ＳＤＲデータベース１２０から第２データ項目を読み出す。これらの実施形態の一つにおいて、類似度エンジン３０４は、読み出された項目と受け取った第１データ項目との間に類似度レベルが存在するか否かを判定するためにＳＤＲデータベース１２０への入力それぞれを確認する。これらの実施形態の他の実施形態において、システム３００は、（ｉ）意味論的フィンガープリント（すなわち、ＳＤＲ）収集に対して効率的にインデックスを付けるために、そして、（ｉｉ）類似度エンジン３０４が、データベース１２０内のすべての項目を一つ一つ反復するといった「力づく」で処理するよりも第２データ項目の第２ＳＤＲをより効率的に特定するために、現在のテキストインデックス技術およびテキスト探索ライブラリを実施する。
【００６３】
方法５００は、決定された距離に基づいて、第２データ項目の識別、および第１データ項目と第２データ項目との間の意味類似度レベルの識別情報を、類似度エンジンによって、上記第３演算装置に提供するステップを含む（５２２）。一実施形態において、類似度エンジン３０４は、ユーザインターフェースを介して上記識別を提供する。他の実施形態において、類似度エンジン３０４は、図４、（４１８）に関連して既述したように、決定された距離に基づいて、第１データ項目と第２データ項目との間の意味類似度レベルの識別情報を提供する。いくつかの実施形態において、類似度エンジン３０４が、（１）ＳＤＲデータベースから第３データ項目についての第３ＳＤＲを読み出し、（２）第１データ項目の第１ＳＤＲと第３データ項目の第３ＳＤＲとの距離を決定し、決定された距離に基づいて、第１データ項目と第３データ項目との間の意味類似度レベルの識別情報を提供するプロセスを繰り返すことは理解されるであろう。
【００６４】
これらの実施形態の一つにおいて、類似度エンジン３０４は、受け取ったデータ項目に最も類似する他のデータ項目のデータ項目の一覧を返してもよい。例として、類似度エンジン３０４は、受け取ったデータ項目についてのＳＤＲ１１８を生成し、続いて、ＳＤＲ１１８に類似する他のＳＤＲを求めてＳＤＲデータベース１２０を検索してよい。一実施形態において、データ項目モジュール３０８が上記機能を提供する。例として、限定されるものではないが、類似度エンジン３０４（あるいは、データ項目モジュール３０８）は、上述したように、受け取ったデータ項目についてのＳＤＲ１１８をＳＤＲデータベース１２０における複数のＳＤＲそれぞれと比較し、類似度の要件（例えば、データ項目間の距離が所定の閾値以下である）を満たすデータ項目の一覧を返してもよい。いくつかの実施形態において、類似度エンジン３０４は、（データ項目自体を返すのとは対照的に）特定のＳＤＲに最も類似するＳＤＲを返す。
【００６５】
いくつかの実施形態において、データ項目（キーワードと称される場合もある）を受け取る方法および類似データ項目を特定する方法は、図２、（２０２）〜（２１４）に関連して既述したように実施される。いくつかの実施形態において、データ項目モジュール３０８が上記機能を提供する。これらの実施形態の一つにおいて、上記方法は、データ項目を受け取るステップを含む。上記方法は、受け取ったデータ項目と同一ではない最も類似するデータ項目に対するリクエストを受け取るステップを含む。これらの実施形態の他の実施形態において、上記方法は、受け取ったデータ項目についての第１ＳＤＲを生成するステップを含む。これらの実施形態のさらに他の実施形態において、上記方法は、第１ＳＤＲとＳＤＲデータベース１２０におけるそれぞれのＳＤＲとの間の距離を決定するステップを含む。これらの実施形態のさらに他の実施形態において、上記方法は、一覧にされたデータ項目のＳＤＲと第１ＳＤＲとの間の距離が閾値未満となるデータ項目の一覧を提供するステップを含む。あるいは、上記方法は、データ項目それぞれと受け取ったデータ項目との類似度レベルが閾値を超えるデータ項目の一覧を提供するステップを含む。いくつかの実施形態において、類似データ項目を特定する方法により、データ項目またはデータ項目のＳＤＲを受け取る機能、および増加する距離（例えば、ユークリッド距離）による指示を受けてＳＤＲ一覧を生成する機能を提供する。これらの実施形態の一つにおいて、システム１００は、すべての文脈データ項目（すなわち、送られたデータ項目が存在する概念上の空間内のデータ項目）を返す機能を提供する。
【００６６】
データ項目モジュール３０８は、受け取ったデータ項目を提供したユーザ、他のモジュール、またはエンジン（例えば、曖昧性解消モジュール３０６）のいずれかに対して類似データ項目を返してもよい。
【００６７】
いくつかの実施形態において、上記システムは、類似データ項目の一覧を生成し、クエリを実行するシステム（システム３００内のシステムまたは第三者の検索システム）にその一覧を送ってもよい。例えば、ユーザは、クエリを実行するためのユーザインターフェース（例えば、検索エンジン）にデータ項目を入力し、上記ユーザインターフェースが上記データ項目をクエリモジュール６０１に転送してもよい。クエリモジュール６０１は、上記システム（例えば、類似度エンジン３０４）のコンポーネントを自動的に呼び出して、類似データ項目の一覧を生成し、当該データ項目を上記ユーザインターフェースに提供して、ユーザの当初クエリに追加されたクエリとして実行するようにしてもよい。これにより、ユーザの検索結果がより広範囲なものになる。他の例として、そして図６Ａ〜図６Ｃに関連してさらに詳細に説明されるように、上記システムは、類似データ項目の一覧を生成し、そのデータ項目を第三者の検索システムに直接提供し、上記ユーザインターフェースを介して上記ユーザに拡張検索結果を返してもよい。第三者の検索システム（ここでは、企業検索システムと称される場合もある）は任意の種類、形態であってよい。全文検索システム１２２に関連して既述されたように、多岐にわたるそのようなシステムが利用可能であり、ここに記載される方法およびシステムを用いることでその能力、性能が高められる。
【００６８】
図６Ａのブロック図を参照すると、全文検索システムのクエリを拡張するためのシステム３００の一実施形態が開示されている。概略すると、システム３００は、図１Ａ〜図１Ｃおよび図３に関連して既述した要素を有する。また、システム３００は、図１Ａ〜図１Ｃおよび図３に関連して既述した機能を提供する。システム３００は、クエリモジュール６０１を実行するマシン１０２ｄを含む。クエリモジュール６０１は、クエリ拡張モジュール６０３、ランキングモジュール６０５、およびクエリ入力処理モジュール６０７を実行する。
【００６９】
一実施形態において、クエリモジュール６０１は、クエリタームを受け取り、受け取ったタームについてのＳＤＲの生成を指示し、類似のクエリタームの特定を指示する。他の実施形態において、クエリモジュール６０１は、第三者により提供される企業検索システムと通信する。例えば、クエリモジュール６０１は、上記企業検索システムと通信する１以上のインターフェース（例えば、アプリケーションプログラムインターフェース）を含んでいてもよい。いくつかの実施形態において、クエリモジュール６０１は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、クエリモジュール６０１は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、クエリモジュール６０１は、マシン１０２ｄで実行される。
【００７０】
一実施形態において、クエリ入力処理モジュール６０７は、クライアント１０２ｃのユーザからクエリタームを受け付ける。他の実施形態において、クエリ入力処理モジュール６０７は、クエリタームの種類を識別する（例えば、個々の単語、単語のグループ、文章、段落、文書、ＳＤＲ、または、類似のタームを特定する際に使用される他の表現）。いくつかの実施形態において、クエリ入力処理モジュール６０７は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、クエリ入力処理モジュール６０７は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、クエリ入力処理モジュール６０７は、マシン１０２ｄで実行される。他の実施形態において、クエリモジュール６０１は、クエリ入力処理モジュール６０７と通信する。あるいは、クエリモジュール６０１は、クエリ入力処理モジュール６０７の機能を提供する。
【００７１】
一実施形態において、クエリ拡張モジュール６０３は、クライアント１０２ｃのユーザからクエリタームを受け付ける。他の実施形態において、クエリ拡張モジュール６０３は、クエリ入力処理モジュール６０７からクエリタームを受け付ける。さらに他の実施形態において、クエリ拡張モジュール６０３は、クエリタームについてのＳＤＲの生成を指示する。他の実施形態において、クエリ拡張モジュール６０３は、類似度エンジン３０４による、上記クエリタームに類似する１以上のタームの（ＳＤＲ間の距離に基づく）識別を指示する。いくつかの実施形態において、クエリ拡張モジュール６０３は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、クエリ拡張モジュール６０３は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、クエリ拡張モジュール６０３はマシン１０２ｄで実行される。他の実施形態において、クエリモジュール６０１は、クエリ拡張モジュール６０３と通信する。あるいは、クエリモジュール６０１は、クエリ拡張モジュール６０３の機能を提供する。
【００７２】
図６Ｂのフローチャートを参照すると、全文検索システムのクエリを拡張する方法６００に係る一実施形態が開示されている。概略すると、方法６００は、少なくとも１つの基準に従って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（６０２）。方法６００は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（６０４）。方法６００は、第１演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む（６０６）。方法６００は、一覧の各タームについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（６０８）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法６００は、タームごとの上記存在情報を用いて、上記一覧におけるタームそれぞれについて、スパース分散表現（ＳＤＲ）を、上記表現生成器によって生成するステップを含む（６１０）。方法６００は、生成されたＳＤＲそれぞれをＳＤＲデータベースに保存するステップを含む（６１２）。方法６００は、第２演算装置上で実行されるクエリ拡張モジュールによって、第３演算装置から第１タームを受け取るステップを含む（６１４）。方法６００は、上記第１タームの第１ＳＤＲと、上記ＳＤＲデータベースから読み出された第２タームの第２ＳＤＲとの間の意味類似度レベルを、第４演算装置上で実行される類似度エンジンによって決定するステップを含む（６１６）。方法６００は、上記第１タームおよび上記第２タームの少なくとも一方に類似する少なくとも一つのタームを含む一組の文書それぞれの識別のためのクエリを、上記第１タームおよび上記第２タームを使って、上記クエリ拡張モジュールによって、全文検索システムに対して送るステップを含む（６１８）。方法６００は、上記クエリ拡張モジュールによって、上記一組の文書それぞれの識別を上記第３演算装置に対して送るステップを含む（６２０）。
【００７３】
いくつかの実施形態において、ステップ（６０２）〜（６１２）は、図２およびステップ（２０２）〜（２１４）に関連して既述したように実行される。
【００７４】
方法６００は、第２演算装置上で実行されるクエリ拡張モジュールによって、第３演算装置から第１タームを受け取るステップを含む（６１４）。一実施形態において、クエリ拡張モジュール６０３は、図５、（５１６）に関連して既述したように上記第１データ項目を受け取る。他の実施形態において、クエリ入力処理モジュール６０７は、上記第１タームを受け取る。さらに他の実施形態において、クエリ入力処理モジュール６０７は、フィンガープリンティングモジュール３０２に対して、ＳＤＲ生成のリクエストとともに、上記第１タームを送る。さらに他の実施形態において、クエリ入力処理モジュール６０７は、表現生成器１１４によってＳＤＲを生成するために、エンジン１０１に対して上記第１タームを送る。
【００７５】
方法６００は、上記第１タームの第１ＳＤＲと、ＳＤＲデータベースから読み出された第２タームの第２ＳＤＲとの間の意味類似度レベルを、第４演算装置上で実行される類似度エンジンによって決定するステップを含む（６１６）。一実施形態において、類似度エンジン３０４は、図５、（５２０）に関連して既述したように、意味類似度レベルを決定する。
【００７６】
方法６００は、上記第１タームおよび上記第２タームの少なくとも一方に類似する少なくとも一つのタームを含む一組の文書それぞれの識別のためのクエリを、上記第１タームおよび上記第２タームを使って、上記クエリ拡張モジュールによって、全文検索システムに対して送るステップを含む（６１８）。いくつかの実施形態において、類似度エンジン３０４は、クエリモジュール６０１に対して上記第２タームを提供する。上記類似度エンジンは類似度閾値を超える上記第１タームに対してある類似度を有する複数のタームを提供しうることが理解されるであろう。他の実施形態において、クエリモジュール６０１は、第三者の企業検索システムに対して１以上の検索タームを含むクエリを送る１以上のアプリケーションプログラムインターフェースを含んでもよい。
【００７７】
方法６００は、上記クエリ拡張モジュールによって、上記一組の文書それぞれの識別情報を上記第３演算装置に対して送るステップを含む（６２０）。
【００７８】
図６Ｃのフローチャートを参照すると、全文検索システムのクエリを拡張する方法６５０に係る一実施形態が開示されている。概略すると、方法６５０は、少なくとも１つの基準に従って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（６５２）。方法６５０は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（６５４）。方法６００は、第１演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む（６５６）。方法６５０は、一覧の各タームについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（６５８）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法６５０は、表現生成器によって、上記一覧におけるタームそれぞれについて、タームごとの上記存在情報を用いてスパース分散表現（ＳＤＲ）を生成するステップを含む（６６０）。方法６５０は、生成されたＳＤＲそれぞれをＳＤＲデータベースに保存するステップを含む（６６２）。方法６５０は、第２演算装置上で実行されるクエリ拡張モジュールによって、第３演算装置から第１タームを受け取るステップを含む（６６４）。方法６５０は、上記第１タームの第１ＳＤＲと、上記ＳＤＲデータベースから読み出された第２タームの第２ＳＤＲとの間の意味類似度レベルを、第４演算装置上で実行される類似度エンジンによって決定するステップを含む（６６６）。方法６５０は、上記クエリ拡張モジュールによって、上記第３演算装置に対して上記第２タームを送るステップを含む（６６８）。
【００７９】
一実施形態において、ステップ（６５２）〜（６６６）は、ステップ（６０２）〜（６１２）に関連して既述したように実行される。しかしながら、上記類似度エンジンによって特定された１以上の上記タームを企業検索システムに対して直接提供する代わりに、方法６５０は、上記クエリ拡張モジュールによって、上記第３演算装置に対して上記第２タームを送るステップを含む（６６８）。このような方法において、上記第３演算装置のユーザは、上記クエリが企業検索システムに送信される前に、上記第２タームを確認、変更することができる。いくつかの実施形態において、ユーザは上記クエリに対して追加的な管理を望む。一実施形態において、ユーザは、自身でクエリを実行することを好む。他の実施形態において、ユーザは、上記クエリの送信前に、上記システムによって特定されたタームを変更できることを望む。さらに他の実施形態において、ユーザに対して特定されたタームを提供することにより、上記システムは、当該特定されたタームに関するユーザからのフィードバックをリクエストすることが可能となる。これらの実施形態の一つにおいて、例えば、上記第２タームを識別するうえでの上記類似度エンジンの正確性を評価できる。これらの実施形態のうちの他の一実施形態において、例として、ユーザは、上記第２タームはユーザが興味を抱くタームの種類である（例えば、上記第２タームは、ユーザが現在研究または開発中の専門領域に係る種類である）ことの標識を提供する。
【００８０】
いくつかの実施形態において、少なくとも一つのブール演算子を評価する方法は、表現エンジン３１０によって、少なくとも一つのデータ項目および少なくとも一つのブール演算子を受け取るステップを含む。上記方法は、図２およびステップ（２０２）〜（２１４）に関連して既述した上記機能を実施するステップを含む。一実施形態において、表現エンジン３１０は、ユーザがブール演算子および括弧を使って組み合わせた複数のデータ項目を受け取る。例えば、ユーザは、「ジャガー SUB ポルシェ」といった句を提示すると、表現エンジン３１０は、上記句を評価し、その表現に対するＳＤＲの変更後のバージョンを生成する。したがって、他の実施形態において、表現エンジン３１０は、受け取った句における第１データ項目について第１ＳＤＲ１１８を生成する。さらに他の実施形態において、表現エンジン３１０は、（例えば、３つのデータ項目句における上記第２データ項目が上記ブール演算子であると決定することによって、または、受け取った句に含まれるそれぞれのデータ項目とブール演算子の一覧とを比較して上記でデータ項目がブール演算子であるか否かを決定することによって）受け取った句に含まれる上記ブール演算子を特定する。表現エンジン３１０は、上記第１データ項目の変更方法を決定するために、特定されたブール演算子を評価する。例えば、表現評価部３１０は、ブール演算子「SUB」が受け取った句に含まれると判定する。続いて、表現エンジン３１０は、上記ブール演算子に続くデータ項目について第２ＳＤＲの生成を決定し（例えば、上述した句の例において、「ポルシェ」）、上記第１ＳＤＲから、上記第２ＳＤＲに出現した点を取り除くことによって第３ＳＤＲを生成する。それから上記第３ＳＤＲは上記第１データ項目のＳＤＲとなるが、上記第２データ項目のＳＤＲは含まない。同様に、表現エンジン３１０が、上記ブール演算子は「AND」であったと判定した場合、表現エンジン３１０は、上記第１ＳＤＲおよび上記第２ＳＤＲに共通する点のみを使って第３ＳＤＲを生成する。従って、表現エンジン３１０は、データ項目、複合データ項目、およびブール演算子および括弧を使って組み合わせたＳＤＲを受け取り、策定された表現のブール結果を反映したＳＤＲを返す。得られた変更ＳＤＲは、ユーザに戻されるか、または、システム２００内の他のエンジン（例えば、類似度エンジン３０４）に提供されてもよい。当業者であれば、ブール演算子は、限定されるものではないが、ＡＮＤ、ＯＲ、ＸＯＲ、ＮＯＴ、およびＳＵＢを含むことを理解するであろう。
【００８１】
いくつかの実施形態において、データ項目の複数のサブコンテキストを特定する方法は、曖昧性解消モジュール３０６によってデータ項目を受け取るステップを含む。上記方法は、図２、（２０２）〜（２１４）に関連して既述した上記機能を実施するステップを含む。一実施形態において、上記方法は、受け取ったデータ項目について第１ＳＤＲを生成するステップを含む。他の実施形態において、上記方法は、上記第１ＳＤＲに類似するＳＤＲを有するデータ項目の一覧を生成するステップを含む。例えば、上記方法は、上記類似度エンジンに対して上記第１ＳＤＲを提供し、上述したように類似するＳＤＲの一覧をリクエストするステップを含む。さらに他の実施形態において、上記方法は、上記第１ＳＤＲに類似するが一致しない一覧化されたＳＤＲのうちの一つを分析するステップと、上記第１ＳＤＲから、上記一覧化されたＳＤＲにも存在する点（例えば、セットビット）を（例えば、バイナリ減算を介して）取り除き、変更ＳＤＲを生成するステップを含む。他の実施形態において、上記方法は、上記第１ＳＤＲおよび（同一ではないが）類似するＳＤＲの両方に存在する点を取り除く処理を繰り返すステップを含む。このステップは、類似するＳＤＲの一覧それぞれに存在するすべての点が上記第１ＳＤＲから取り除かれるまで行われる。例として、データ項目「アップル」に類似するデータ項目へのリクエストを受け取ると、上記システムは、「マッキントッシュ」および「iphone（登録商標）」、「オペレーティングシステム」といったデータ項目を返してもよい。ユーザが「アップル SUB マッキントッシュ」との表現を提供し、残った点から類似データ項目をリクエストした場合には、上記システムは、「果物」、「スモモ」、「オレンジ」、「バナナ」といったデータ項目を返す。上記の例を続けると、次にユーザが「アップル SUB マッキントッシュ SUB 果物」との表現を提供し、類似データ項目をリクエストした場合には、上記システムは、「レコード」、「ビートルズ」および「ポップミュージック」といったデータ項目を返してもよい。いくつかの実施形態において、上記方法は、ＳＤＲ全体からではなく、上記第１ＳＤＲの最大クラスタから類似のＳＤＲの点を抽出するステップを含む。これにより、より好適な解決法が提供される。
【００８２】
いくつかの実施形態において、上述したように、データ項目は単語以外の項目を参照してよい。例として、システム３００（例えば、類似度エンジン３０４）は、数字についてのＳＤＲを生成し、そのＳＤＲを他の数字から生成された参照ＳＤＲと比較し、類似データ項目の一覧をユーザに提供する。例えば、限定するものではないが、システム３００（例えば、類似度エンジン３０４）は、データ項目「100.1」についてのＳＤＲを生成し、そのＳＤＲは感染により生じた熱であると診断された患者に関連するデータ項目についてのＳＤＲと類似するパターンを有する、と判定してもよい。（例えば、医者または医療機関が上述した方法およびシステムを実施する実施形態において、患者の身体特性（例えば、体温または他の特性）に基づき生成されたデータ項目について、上記システムは、上記データ項目（100.1）と、熱を有する患者についての参照データ項目としての上記データ項目の識別情報との間の関連性を保存する）。データ項目が類似パターンを有するとの判定により、動的に生成されたＳＤＲと参照ＳＤＲとの間の共通性を特定する機能が提供され、特定のデータ項目の取り込みをユーザによりよく理解させることができる。従って、いくつかの実施形態において、上記参照ＳＤＲは適格な診断とリンクしており、新しい患者のＳＤＲプロファイルを診断されたパターンに適合させ、そこから新しい患者の考えうる診断の組み合わせを推論することができる。これらの実施形態の一つにおいて、考えうる診断を集めることにより、ユーザは、点（例えば、あるデータ項目の語義的特徴）がオーバーラップまたはマッチする場所を「見る」ことができる。そのような実施形態において、その新しい患者のＳＤＲパターンに最も類似する診断が、予想される診断である。
【００８３】
他の例として、限定するものではないが、一組のデータ文書１０４は、（例えば、フライトに関する百科事典の入力とは対照的に）飛行機のセンサによって生成された、捕捉されたフライトデータのログを含んでよい。補足されたデータの上記ログは、英数字のデータ項目または主として数字のデータ項目を含んでよい。そのような例において、システム１００は、変数（例えば、任意の種類のフライトデータに関連する変数）のＳＤＲを生成する機能を提供し、生成されたＳＤＲを参照ＳＤＲ（例えば、特定の特性を有することが知られている参照項目として使用されるデータ項目のＳＤＲ。特定の特性として、例えば、飛行中にデータ項目が生成されたフライトに関する事実。例えば、特定の高度での飛行、高度が高すぎる／低すぎるといった高度に関する特徴。）と比較してもよい。他の例として、システム１００は、"500（degrees）"についての第１ＳＤＲを生成し、当該第１ＳＤＲは"28,000（feet）"についての第２ＳＤＲと類似すると判定してもよい。続いて、システム１００は、上記第２ＳＤＲがフライトの特性（例えば、高すぎる、低すぎる、速すぎる、など）を示すデータ項目についての参照ＳＤＲであると判定する。そして、システム１００は、データ項目"500（degrees）"を開始したユーザに対して上記データ項目の取り込みを把握させてもよい。
【００８４】
いくつかの実施形態において、提示されたテキストのトピック構造を考慮しつつ、文書を部分に分割する（ここではスライスとも称される）方法が提供される。一実施形態において、データ項目モジュール３０８は、トピックに分割される文書を受け取る。他の実施形態において、データ項目モジュール３０８は、第２位置とは異なる意味論的フィンガープリントを有する文書中の位置を特定し、その文書を、二つのスライスに分割する。その１つのスライスには第１位置が含まれ、他のスライスには第２位置が含まれる。上記方法は、図２、（２０２）〜（２１４）に関連して既述した上記機能を実施するステップを含む。一実施形態において、上記方法は、上記文章中のそれぞれの文（例えば、ピリオドにより区切られた文字列）についてのＳＤＲ１１８を生成するステップを含む。他の実施形態において、上記方法は、第１文の第１ＳＤＲ１１８ａと第２文の第２ＳＤＲ１１８ｂとを比較するステップを含む。例えば、上記方法は、比較のために上記２つのＳＤＲを類似度エンジン３０４に送るステップを含む。さらに他の実施形態において、上記方法は、２つのＳＤＲの間の距離が所定の閾値を超えているときに、上記第１文の後に、文章中に区切れを挿入するステップを含む。他の実施形態において、上記方法は、２つのＳＤＲの間の距離が所定の閾値を超えていないときには、上記第１文の後に、文章中に区切れを挿入しないことを決定するステップを含む。さらに他の実施形態において、上記方法は、上記第２文とその後の文との比較を繰り返すステップを含む。他の実施形態において、上記方法は、文書の最後に行きつくまで文の比較を繰り返すステップを含む。さらに他の実施形態において、上記方法は、文書のスライスを生成するために挿入した区切れを使用するステップを含む（例えば、文書の一セクションを最初の挿入区切れまで戻し、第１スライスとする）。いくつかの実施形態において、複数の小さなスライスを有することは一つの文書よりも好ましい。しかしながら、文書の任意分割（例えば、長さ、またはワードカウントによる分割）は、文書のトピックベースの分割よりも、非効率であるか、または有用ではない場合もある。これらの実施形態の一つにおいて、文の複合ＳＤＲを比較することによって、システム３００は、文書のトピックがどこで変化し論理的な分割点を形成したかを判定することができる。これらの実施形態のうちの他の実施形態において、システム３００は、従来のインデックスに加えて、意味論的フィンガープリントインデックスを提供してもよい。トピックスライスのさらなる例が、以下の図７Ａ〜７Ｂに関連して説明される。
【００８５】
図７Ｂに関連して、そして図７Ａのブロック図を参照して、トピックベースの文書を全文検索システムに提供するシステム７００に係る一実施形態が開示されている。概略すると、システム７００は、図１Ａ〜１Ｃ、および図３に関連して既述された要素を含む。また、システム７００は、図１Ａ〜１Ｃ、および図３に関連して既述された機能を提供する。システム７００は、さらに、トピックスライシングモジュール７０２を含む。一実施形態において、トピックスライシングモジュール７０２は、文書を受け取り、受け取った文書についてＳＤＲの生成を指示し、サブ文書の生成を指示する。そのサブ文書では、類似度が閾値未満である文が異なる文書に置かれている。すなわち、その他のデータ構造を有する。他の実施形態において、トピックスライシングモジュール７０２は第三者により提供される企業検索システムと通信する。いくつかの実施形態において、トピックスライシングモジュール７０２は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、トピックスライシングモジュール７０２は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、トピックスライシングモジュール７０２は、マシン１０２ｂで実行される。
【００８６】
さらに図７Ａ、図７Ｂのブロック図を参照して、トピックベースの文書を全文検索システムに提供するシステム７５０に係る一実施形態が開示されている。方法７５０は、少なくとも１つの基準に従って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（７５２）。方法７５０は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（７５４）。方法７５０は、第１演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む（７５６）。方法７５０は、上記一覧の各タームについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（７５８）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法７５０は、表現生成器によって、上記一覧におけるタームそれぞれについて、上記存在情報を用いてスパース分散表現（ＳＤＲ）を生成するステップを含む（７６０）。方法７５０は、生成されたＳＤＲそれぞれをＳＤＲデータベースに保存するステップを含む（７６２）。方法７５０は、第２演算装置上で実行されるトピックスライシングモジュールによって、企業検索システムと関連する第３演算装置から、第２の一組の文書を受け取るステップを含む（７６４）。方法７５０は、表現生成器によって、上記第２の一組の文書それぞれの文それぞれについての複合ＳＤＲを生成するステップを含む（７６６）。方法７５０は、上記第２演算装置上で実行される類似度エンジンによって、第１文の第１複合ＳＤＲと第２文の第２複合ＳＤＲとの間の距離を決定するステップを含む（７６８）。方法７５０は、上記第１文を含む第２文書および上記第２文を含む第３文書を、決定された上記距離に基づいて、トピックスライシングモジュールによって生成するステップを含む（７７０）。方法７５０は、トピックスライシングモジュールによって、上記第３演算装置に対して上記第２文書および上記第３文書を送るステップを含む（７７２）。
【００８７】
一実施形態において、ステップ（７５２）〜（７６２）は、図２およびステップ（２０２）〜（２１４）に関連して既述したように実行される。
【００８８】
方法７５０は、第２演算装置上で実行されるトピックスライシングモジュールによって、企業検索システムと関連する第３演算装置から、第２の一組の文書を受け取るステップを含む（７６４）。一実施形態において、トピックスライシングモジュール７０２は、上記第２の一組の文書を受け取る。この受け取りは、企業検索システムによるインデックス化に最適な上記第２の一組の文書のバージョン（様式）を生成する処理のためである。その企業検索システムは、従来の検索システムであってよい。他の実施形態において、トピックスライシングモジュール７０２は、システム７００により提供される検索システムによるインデックス化に最適な上記第２の一組の文書のバージョン（様式）を生成する処理のために、上記第２の一組の文書を受け取る。このことは、図９Ａ、図９Ｂに関連してより詳細に後述される。いくつかの実施形態において、受け取った上記第２の一組の文書は、１以上のＸＭＬ文書を含む。例えば、上記第３演算装置は、インデックス化を向上させるため、１以上の企業文書をＸＭＬ文書に変換していてもよい。
【００８９】
方法７５０は、表現生成器によって、上記第２の一組の文書それぞれの文それぞれについて複合ＳＤＲを生成するステップを含む（７６６）。図２に関連して既述したように、例えば、データ項目の、句、文、段落、または他の組み合わせが個々のＳＤＲ（例えば、一つの文中のそれぞれの単語のＳＤＲの組み合わせ）の「集合属性（union property）」を反映する１つのＳＤＲに変換される必要がある場合、システム１００は、（動的に生成することによって、または事前に生成されたＳＤＲを読み出すことによって）個々のデータ項目をそのＳＤＲに変換し、二値ＯＲ演算を用いて、個々のＳＤＲから１つの複合ＳＤＲを形成してよい。その結果は、スパース化モジュール１１６によってスパース化されうる。
【００９０】
方法７５０は、第２演算装置上で実行される類似度エンジンにより、第１文の第１複合ＳＤＲと第２文の第２複合ＳＤＲとの間の距離を決定するステップを含む（７６８）。一実施形態において、上記類似度エンジンは、図４およびステップ（４１６）に関連して既述したように上記距離を決定する。
【００９１】
方法７５０は、上記第１文を含む第２文書および上記第２文を含む第３文書を、決定された上記距離に基づいて、トピックスライシングモジュールによって生成するステップを含む（７７０）。上記トピックスライシングモジュールは、上記類似度エンジンにより決定された上記距離が類似度の閾値を超え、それゆえ上記第２文が上記第１文とは異なるトピックに関連し、そのため異なる文書（あるいは、他のデータ構造）に進むべきである、と判断する。他の実施形態において、上記類似度エンジンは、（図４に関連して既述したように）決定された上記距離に基づいて、上記第１文と上記第２文との間の類似度レベルの識別情報をトピックスライシングモジュール７０２に対して提供する。そして、トピックスライシングモジュール７０２は、上記類似度レベルが類似度の閾値レベルを満たさないと判定し、上記第２文を上記第１文とは異なる文書に入れることを決断する。一方、他の実施形態において、トピックスライシングモジュール７０２は、決定された上記距離（および／または、類似度）は類似度の閾値を満たすと決定する。そして、トピックスライシングモジュール７０２は、上記第１文および上記第２文はトピックが類似しており、一つの文書内に一緒に残されるべきであると決定する。
【００９２】
さらに別の実施形態において、上記方法は、第２文とそのあとの文との比較を繰り返すステップを含む。別の実施形態において、上記方法は、文書を繰り返し調べ、文書の終わりに達するまで文同士の比較を繰り返すステップを含む。
【００９３】
方法７５０は、トピックスライシングモジュールによって、第３演算装置に、第２文書および第３文書を送る（７７２）。
【００９４】
図８Ｂを図８Ａと併せて参照すると、テキスト文書からキーワードを抽出する方法８５０の一実施形態をフローチャートに示す。方法８５０は、少なくとも１つの基準に従って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（８５２）。方法８５０は、意味マップによって、座標ペアを一組のデータ文書のそれぞれと関連付けるステップを含む（８５４）。方法８５０は、第１演算装置上で実行されるパーサによって、一組のデータ文書に存在するタームの一覧を生成するステップを含む（８５６）。方法８５０は、第１演算装置上で実行される表現生成器によって、上記一覧のタームごとに、存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（８５８）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法８５０は、表現生成器によって、一覧におけるタームそれぞれについて、上記存在情報を用いてスパース分散表現（ＳＤＲ）を生成するステップを含む（８６０）。方法８５０は、生成されたＳＤＲそれぞれをＳＤＲデータベースに保存するステップを含む（８６２）。方法８５０は、第２演算装置上で実行されるキーワード抽出モジュールによって、全文検索システムと関連する第３演算装置から、第２の一組の文書のうちの一つの文書を受け取るステップを含む（８６４）。方法８５０は、表現生成器によって、受け取った文書中の各タームに少なくとも一つのＳＤＲを生成するステップを含む（８６６）。方法８５０は、表現生成器によって、上記受け取った文書について、上記生成された少なくとも一つのＳＤＲに基づき、複合ＳＤＲを生成するステップを含む（８６８）。方法８５０は、複合された場合に上記文書についての複合ＳＤＲとの語義的類似性のレベルが閾値を満たすような複合ＳＤＲを生成する複数のタームＳＤＲを、上記キーワード抽出モジュールで選択するステップを含む（８７０）。方法８５０は、上記キーワード抽出モジュールによって、上記受け取った文書のキーワードフィールドを変更して、上記複数のタームを有するようにするステップを含む（８７２）。方法８５０は、上記キーワード抽出モジュールによって、第３演算装置に、上記変更された文書を送るステップを含む（８７４）。
【００９５】
一実施形態において、ステップ（８５２）〜（８６２）は、図２およびステップ（２０２）〜（２１４）に関連して上記したように実行される。
【００９６】
一実施形態において、システム８００は、図１Ａ〜１Ｃおよび図３に関連して上述された要素を含み、上記図に関連して上述された機能を提供する。システム８００はさらに、キーワード抽出モジュール８０２を備える。一実施形態において、キーワード抽出モジュール８０２は文書を受け取り、受け取った文書についてＳＤＲの生成を指示し、受け取った文書についてキーワードを特定し、受け取った文書を変更して特定したキーワードを含ませる。他の実施形態において、キーワード抽出モジュール８０２は、第三者によって提供される企業検索システムと通信する。いくつかの実施形態において、キーワード抽出モジュール８０２は、少なくとも一部がソフトウェアプログラムとして実施される。他の実施形態において、キーワード抽出モジュール８０２は、少なくとも一部がハードウェアモジュールとして実施される。さらに他の実施形態において、キーワード抽出モジュール８０２はマシン１０２ｂで実行される。
【００９７】
方法８５０は、第２演算装置上で実行されるキーワード抽出モジュールによって、全文検索システムと関連する第３演算装置から、第２の一組の文書のうち一つの文書を受け取るステップを含む（８６４）。一実施形態において、キーワード抽出モジュール８０２は、トピックスライシングモジュール７０２に関連して、図７およびステップ（７６４）に示すように文書を受け取る。
【００９８】
方法８５０は、受け取った文書中の各タームに対する少なくとも一つのＳＤＲを、表現生成器によって生成させるステップを含む（８６６）。一実施形態において、キーワード抽出モジュール８０２が、受け取った文書における各タームを、表現生成器１１４へと送って、少なくとも一つのＳＤＲを生成する。他の実施形態において、キーワード抽出モジュール８０２は、受け取った文書における各タームを、フィンガープリンティングモジュール３０２へ送って、上記少なくとも一つのＳＤＲを生成する。
【００９９】
いくつかの実施形態において、キーワード抽出モジュール８０２は、文書に、当該文書中の文それぞれに複合ＳＤＲを生成するリクエストを付けて、フィンガープリンティングモジュール３０２へ送る。他の実施形態において、キーワード抽出モジュール８０２は、文書に、当該文書中の文それぞれに複合ＳＤＲを生成するリクエストを付けて、表現生成器１１４へ送る。
【０１００】
方法８５０は、表現生成器によって、文書に対する複合ＳＤＲを生成させるステップを含む（８６８）。一実施形態において、キーワード抽出モジュール８０２は、表現生成器１１４から複合ＳＤＲを生成することをリクエストする。他の実施形態において、キーワード抽出モジュール８０２は、フィンガープリンティングモジュール３０２から複合ＳＤＲを生成することをリクエストする。
【０１０１】
方法８５０は、複合された場合に上記文書についての複合ＳＤＲとの語義的類似性のレベルが閾値を満たすような複合ＳＤＲを生成する複数のタームＳＤＲを、上記キーワード抽出モジュールで選択するステップを含む（８７０）。一実施形態において、キーワード抽出モジュール８０２は、類似度エンジン３０４に指示して、文書の複合ＳＤＲを複数のタームのＳＤＲ（「タームＳＤＲ」）と比較させ、当該複数のタームと文書そのものとの類似性のレベルの識別情報を生成する。いくつかの実施形態において、キーワード抽出モジュール８０２は、類似度エンジンに、タームＳＤＲの組み合わせを繰り返し処理させ、文書の複合ＳＤＲとの比較を生成させ、文書とタームの各組合せとの語義的類似性のレベルの一覧を戻させることで、閾値を満たす複数のタームを特定する。これらの実施形態のうちの他の一実施形態において、キーワード抽出モジュール３０２は、閾値を満たしかつ可能な限り少ない数のタームしか含まない文書と語義的に類似のレベルである複数のタームを特定する。
【０１０２】
方法８５０は、上記キーワード抽出モジュールによって、上記受け取った文書のキーワードフィールドを変更して、上記複数のタームを有するようにするステップを含む（８７２）。上述したように、受け取った文書は構造化された文書、たとえばＸＭＬ文書でもよく、キーワード抽出モジュール８０２によって複数のタームを挿入される部分を有してもよい。
【０１０３】
方法８５０は、上記キーワード抽出モジュールによって、第３演算装置に、上記変更された文書を送るステップを含む（８７４）。
【０１０４】
上記したように、企業検索システムは、従来の検索システムの実施を含んでもよい。従来の検索システムとしては、上記の全文検索システム１２２に関連して記載したものが挙げられる（例えば、Lucene-based Systemsや、Xapianのようなオープンソースシステムや、Autonomy IDOLまたはCOGITOのような市販のシステムや、その他上記で詳述したシステム）。本明細書では、「企業検索システム」と「全文検索システム」は交換可能に用いられる場合がある。図６から８に記載された方法およびシステムは、そのような企業システムの強化を示す。つまり、ここに記載する方法およびシステムを実施することにより、そのような企業システムを販売しているエンティティは、販売されている機能を強化させることができる――キーワードを加えたり、ユーザ向けのクエリタームを拡張したり、それらを現在のシステムに自動的に提供したりなどすることで、インデックス作成をより効率的にする。しかしながら、検索システムをそのユーザに販売しているエンティティは、現在のシステムを完全に入れ替えることで、あるいはまず第一に改良された検索システムを実施することで、現在のシステムのある面を強化する以上のことをしたいと願うかもしれない。したがって、いくつかの実施形態において、改良された検索システムが提供される。
【０１０５】
図９Ａを参照すると、全文検索システム９０２を実施するシステム９００の一実施形態をダイアグラムに示す。一実施形態において、システム９００は、図１Ａから図１Ｃ、図３、図６Ａ、図７Ａ、および図８Ａに関連して上記した機能を有する。検索システム９０２はクエリモジュール６０１を含み、クエリモジュール６０１は図６Ａおよび図６Ｂに関連して上記したように提供されてよい。検索システム９０２は文書フィンガープリントインデックス９２０を含む。文書フィンガープリントインデックス９２０は、ＳＤＲデータベース１２０の一バージョンであってもよい。文書フィンガープリントインデックス９２０はメタデータ（例えば、タグ）を含んでもよい。検索システム９０２は、文書類似度エンジン３０４ｂを含んでもよい。例えば、文書類似度エンジン３０４ｂは、検索システム９０２と作業するため時間をかけて精緻化した類似度エンジン３０４のコピーでもよい。検索システム９０２は、インデクサ９１０を含む。インデクサ９１０は、ハードウェアモジュールとして提供されてもよく、ソフトウェアモジュールとして提供されてもよい。
【０１０６】
図９Ａに関連して図９Ｂを参照すると、方法９５０は、少なくとも一つの基準に沿って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（９５２）。方法９５０は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（９５４）。方法９５０は、第１演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む（９５６）。方法９５０は、一覧の各タームについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（９５８）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法９５０は、表現生成器によって、上記存在情報を用いて、一覧のタームごとのスパース分散表現（ＳＤＲ）を生成するステップを含む（９６０）。方法９５０は、ＳＤＲデータベースに、生成したＳＤＲのそれぞれを保存するステップを含む（９６２）。方法９５０は、第２演算装置上で実行される全文検索システムによって、第２の一組の文書を受け取るステップを含む（９６４）。方法９５０は、第２の一組の文書中の各文書に対して、少なくとも一つのＳＤＲを、表現生成器によって生成するステップを含む（９６６）。方法９５０は、生成したＳＤＲそれぞれを、全文検索システム中のインデクサによって、文書フィンガープリントインデックスに保存するステップを含む（９６８）。方法９５０は、第３演算装置から、検索システム中のクエリモジュールによって、少なくとも一つの検索タームを受け取るステップを含む（９７０）。方法９５０は、受け取った少なくとも一つの検索タームのＳＤＲに類似したＳＤＲを有する文書フィンガープリントインデックス中の少なくとも一つのタームについて、クエリモジュールにより文書フィンガープリントインデックスにクエリするステップを含む（９７２）。方法９５０は、クエリモジュールにより、第３演算装置に、クエリの結果を提供するステップを含む（９７４）。
【０１０７】
方法９５０は、少なくとも一つの基準に沿って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（９５２）。いくつかの実施形態において、図２およびステップ（２０２）に関連して上記したように、一組のデータ文書が選択されクラスタ化が生じる。図１および２に関連して上記したように、ここに記載する方法およびシステムとともに用いるシステムを開始する際、トレーニングプロセスが行われる。上記したように、少なくとも一組のデータ文書を用いて（より具体的には、一組のデータ文書における各文書の文書ベクトルを用いて）参照マップ生成器１０６がトレーニングされる。これまた上記したように、文書の一組の語義的分解能とは、トレーニングデータに基づいてどれだけ多くの位置が入手可能かを示す。これは、いくつかの態様では、トレーニングデータの性質を反映する（砕いていえば、これはマップ上でどれだけ多くの「土地」が入手可能かということだと言える）。語義的分解能を増すために、異なるあるいは追加のトレーニング文書を用いてもよい。したがって、参照マップ生成器１０６をトレーニングするにはいくつかの異なるアプローチがある。一実施形態において、受け取ったターム（例えば、企業内の文書中のターム）それぞれにつきＳＤＲを生成する際、一般的なトレーニングコーパスを用いてよい。そのようなアプローチの長所は、そのようなコーパスは、一つ以上のトレーニング基準を満たすよう選択されている可能性が高いことであるが、短所は、そのようなコーパスは、特殊化された企業のコーパス（例えば、特定領域や実務において特定の意味を有する多数のタームを含む高度に技術的なコーパス）を支えるのに十分な単語を含んでいるかもしれないが、含んでいないかもしれないかもしれないということである。他の実施形態において、したがって、一組の企業内文書をトレーニングコーパスとして用いてもよい。このアプローチの長所は、トレーニングに用いられる文書は、当該企業内で共有されている高度に技術的なまたは特殊な任意のタームを含んでいるだろうことであるが、短所は、企業内の文書は、トレーニング基準を満たさないかもしれない（例えば、十分な量の文書がないかもしれない、十分な長さや多様性がないかもしれない、など）ということである。さらに他の実施形態において、一般的なトレーニングコーパスと企業内のコーパスを、トレーニング用に組み合わせる。さらに他の実施形態において、技術文書の特別な一組を特定して処理し、トレーニングコーパスとして用いる。例えば、このような文書としては、重要な医学論文、技術明細書、または用いられるだろう企業内文書に関連する専門分野におけるその他の重要な参照資料が挙げられる。例としては、参照コーパスを処理してトレーニングに用い、その後、得られたエンジン１０１がトレーニング済データベースを用いてもよい。このトレーニング済データベースは、本明細書に記載された方法およびシステムを実施しようとする企業に個別にライセンスされたものである。これらの実施形態は、図９Ａおよび図９Ｂに関連して論じた実施形態に適用できるのと同様、図６から図８に関連して論じた実施形態にも適用することができる。
【０１０８】
なおも図９Ｂを参照すると、いくつかの実施形態において、図１および図２に関連して上記したようにステップ（９５４）から（９６２）を実行してもよい。
【０１０９】
方法９５０は、第２演算装置上で実行される全文検索システムによって、第２の一組の文書を受け取るステップを含む（９６４）。一実施形態において、第２の一組の文書は企業内文書（例えば、全文検索システム９０２を実施しようとしている企業が生成したり、維持したり、アクセスしたりした文書、あるいは他のかたちで当該企業と関連している文書）を含む。他の実施形態において、検索システム９０２は、一つ以上の企業内文書を検索可能にする。そうするために、検索システム９０２は、一つ以上の企業内文書をインデックス化する。一実施形態において、検索システム９０２は、（例えば、トピックスライシングモジュール７０２および／またはキーワード抽出モジュール８０２に、図７Ｂおよび図８Ｂに関連して上記したように文書を処理させることによって）企業内文書の前処理を指示する。他の実施形態において、検索システム９０２は、（図１および図２に関連して上記したように）トレーニングコーパスに基づき文書それぞれにＳＤＲを生成するよう指示する。さらに他の実施形態において、各文書にＳＤＲを生成したあと、検索システム９０２は検索プロセスを有効にする。検索プロセスでは、クエリタームが（例えば、クエリ入力処理モジュール６０７によって）受け取られ、クエリターム用のＳＤＲが生成され、当該クエリＳＤＲがインデックス化されたＳＤＲと比較される。
【０１１０】
方法９５０は、第２の一組の文書における各文書に対して少なくとも一つのＳＤＲを、表現生成器によって生成するステップを含む（９６６）。一実施形態において、検索システム９０２は、文書をフィンガープリントモジュール３０２に送って上記少なくとも一つのＳＤＲを生成する機能を有する。他の実施形態において、検索システム９０２は、文書を表現生成器１１４に送って上記少なくとも一つのＳＤＲを生成する機能を有する。上記少なくとも一つのＳＤＲとしては、例として、文書中の各タームについてのＳＤＲ、文書のサブセクション（例えば、文または段落）についての複合ＳＤＲ、文書そのものについての複合ＳＤＲが挙げられるが、これらに限定されるものではない。
【０１１１】
方法９５０は、生成させたＳＤＲそれぞれを、全文検索システム中のインデクサによって、文書フィンガープリントインデックスに保存するステップを含む（９６８）。一実施形態において、上述したＳＤＲをＳＤＲデータベース１２０に保存したのと実質的に同じやり方で、生成したＳＤＲを文書フィンガープリントインデックス９２０に保存する。
【０１１２】
方法９５０は、第３演算装置から、検索システム中のクエリモジュールによって、少なくとも一つの検索タームを受け取るステップを含む（９７０）。一実施形態において、クエリモジュールは、図６Ａおよび図６Ｂに関連して上記したように検索タームを受け取る。
【０１１３】
方法９５０は、クエリモジュールにより、上記受け取った少なくとも一つの検索タームのＳＤＲに類似したＳＤＲを有する少なくとも一つのタームを文書フィンガープリントインデックスにクエリするステップを含む（９７２）。一実施形態において、クエリモジュール６０１は、文書フィンガープリントインデックス９２０にクエリする。他の実施形態において、システム９００は文書類似度エンジン３０４ｂを備え、クエリモジュール６０１は文書類似度エンジン３０４ｂに指示して、文書フィンガープリントインデックス９２０中の少なくとも一つのタームのＳＤＲを特定させる。さらに他の実施形態において、クエリモジュール６０１は、マシン１０２ｂ上で実行される類似度エンジン３０４に指示して、タームを特定させる。他のいくつかの実施形態において、クエリモジュール６０１は、図６Ａおよび図６Ｂに関連して上記したように検索を実行するが、ただし、クエリモジュール６０１は、クエリを外部の企業検索システムに送る代わりに、クエリをシステム９００内のコンポーネントに送る。
【０１１４】
方法９５０は、クエリモジュールにより、第３演算装置に、クエリの結果を提供するステップを含む（９７４）。いくつかの実施形態において、一つ以上の結果（例えば、一つ以上の類似のターム）があり、クエリモジュール６０１は、まず、それらの結果をランク付けするか、あるいは他のモジュールに指示してそれらの結果をランク付けさせる。ランク付けは、従来のランク付け技術を実施してもよい。あるいは、ランク付けは、図１１Ａおよび図１１Ｂに関連して以下に記載する方法の実行を含んでもよい。
【０１１５】
いくつかの実施形態において、全文検索システム９０２は、ユーザがクエリ結果についてフィードバックをすることができるユーザインターフェース（不図示）を提供する。これらの実施形態の一つでは、ユーザインターフェースは、結果が役に立ったかどうかをユーザが指定することができるユーザインターフェース要素を含む。これらの実施形態の他のものでは、ユーザインターフェースは、ユーザがクエリモジュール６０１に指示してクエリ結果の一つを用いて新たな検索を実行させることができるユーザインターフェース要素を含む。これらの実施形態のさらに他のものでは、ユーザインターフェースは、ユーザがクエリ結果の一つに関連するトピックに興味があり、当該クエリ結果の識別子および／または関連するトピックを、当該ユーザまたはシステム９００が将来参照するために保存したいと示すことができるユーザインターフェース要素を含んでいてもよい。
【０１１６】
一実施形態において、システムは、ユーザが実行する検索の種類をモニタリングし、当該ユーザが提供した検索タームのＳＤＲの分析に基づいて、当該ユーザのプロファイルを作成する機能を有する。そのような実施形態において、プロファイルが当該ユーザの専門知識のレベルを特定し、他のユーザに提供されてもよい。
【０１１７】
図１０Ａおよび図１０Ｂを参照すると、前回の検索結果に基づいて、ユーザの専門知識をユーザの専門知識に対するリクエストとマッチさせるシステムの実施形態をブロック図に示す。図１０Ａは、ユーザの専門知識プロファイルを作成する機能（例えば、ユーザ専門知識プロファイルモジュール１０１０）が従来の全文検索システムと関連して提供されている実施形態を示す。図１０Ｂは、ユーザの専門知識プロファイルを作成する機能（例えば、ユーザ専門知識プロファイルモジュール１０１０）が全文検索システム９０２と関連して提供されている実施形態を示す。図１０Ａおよび図１０Ｂに示されているモジュールはどちらも、ハードウェアモジュールまたはソフトウェアモジュールとして提供されてもよい。
【０１１８】
図１０Ｃを参照すると、前回の検索結果に基づいて、ユーザの専門知識をユーザの専門知識に対するリクエストとマッチさせる方法１０５０の実施形態をフローチャートに示す。方法１０５０は、少なくとも一つの基準に沿って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（１０５２）。方法１０５０は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（１０５４）。方法１０５０は、第１演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む（１０５６）。方法１０５０は、一覧の各タームについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１０５８）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法１０５０は、表現生成器によって、上記存在情報を用いて、一覧のタームごとのスパース分散表現（ＳＤＲ）を生成するステップを含む（１０６０）。方法１０５０は、ＳＤＲデータベースに、生成したＳＤＲのそれぞれを保存するステップを含む（１０６２）。方法１０５０は、第２演算装置上で実行されるクエリモジュールによって、第３演算装置から、少なくとも一つのタームを受け取るステップを含む（１０６４）。方法１０５０は、第２演算装置上で実行されるユーザ専門知識プロファイルモジュールによって、第３演算装置のユーザの識別子および上記少なくとも一つのタームを保存するステップを含む（１０６６）。方法１０５０は、表現生成器によって、上記少なくとも一つのタームのＳＤＲを生成するステップを含む（１０６８）。方法１０５０は、ユーザ専門知識プロファイルモジュールによって、第４演算装置から、第２のタームおよび類似のタームに関連するユーザの識別情報のリクエストを受け取るステップを含む（１０７０）。方法１０５０は、上記少なくとも一つのタームのＳＤＲと上記第２のタームのＳＤＲとの語義的類似性のレベルを、類似度エンジンによって特定するステップを含む（１０７２）。方法１０５０は、ユーザ専門知識プロファイルモジュールによって、第４演算装置に、第３演算装置のユーザの識別子を提供するステップを含む（１０７４）。
【０１１９】
一実施形態において、ステップ（１０５２）から（１０６２）は、図２およびステップ（２０２）から（２１４）に関して上記したように実行される。
【０１２０】
方法１０５０は、第２演算装置上で実行されるクエリモジュールによって、第３演算装置から、少なくとも一つのタームを受け取るステップを含む（１０６４）。一実施形態において、クエリモジュール６０１は上記少なくとも一つのタームを受け取り、クエリを、図６Ａから図６Ｃと図９Ａおよび図９Ｂに関して上記したように実行する。
【０１２１】
方法１０５０は、第２演算装置上で実行されるユーザ専門知識プロファイルモジュールによって、第３演算装置のユーザの識別子および上記少なくとも一つのタームを保存するステップを含む（１０６６）。一実施形態において、ユーザプロファイルモジュール１００２が、上記ユーザの識別子および上記少なくとも一つのタームをクエリ入力処理モジュール６０７から受け取る。他の実施形態において、ユーザ専門知識プロファイルモジュール１０１０が、上記ユーザの識別子および上記少なくとも一つのタームをクエリ入力処理モジュール６０７から受け取る。さらに他の実施形態において、ユーザ専門知識プロファイルモジュール１０１０が、上記ユーザの識別子と上記少なくとも一つのタームをデータベースに保存する。例えば、ユーザ専門知識プロファイルモジュール１０１０は、上記ユーザの識別子と上記少なくとも一つのタームを、ユーザ専門知識ＳＤＲデータベース１０１２に（例えば、上記少なくとも一つのタームのＳＤＲとともに）保存する。いくつかの実施形態において、上記方法は、ユーザたちから受け取ったクエリを、ユーザ識別子および各クエリタームのＳＤＲとともに記録するステップを含む。いくつかの実施形態において、ユーザプロファイルモジュール１００２はまた、クエリしたユーザが、当該ユーザに関連があるまたは当該ユーザにとって興味があると示した検索結果の識別情報を受け取る機能を有する。
【０１２２】
方法１０５０は、表現生成器によって、上記少なくとも一つのタームのＳＤＲを生成するステップを含む（１０６８）。一実施形態において、ユーザ専門知識プロファイルモジュール１０１０が、少なくとも一つのデータ項目をフィンガープリンティングモジュール３０２に送ってＳＤＲを生成させる。他の実施形態において、ユーザ専門知識プロファイルモジュール１０１０は、少なくとも一つのタームを表現生成器１１４に送ってＳＤＲを生成させる。
【０１２３】
いくつかの実施形態において、ユーザが長期にわたってクエリをし続けるにつれて、ユーザ専門知識プロファイルモジュール１０１０は、複数のデータ項目を受け取る。これらの実施形態の一つでは、ユーザ専門知識プロファイルモジュール１０１は、第１クエリタームのＳＤＲと第２クエリタームのＳＤＲを結びつける複合ＳＤＲの生成を指示する。その結果生成された複合ＳＤＲは、ユーザが行うクエリの種類をより正確に反映し、より多くのタームＳＤＲが長期にわたって複合ＳＤＲに追加できるほど、複合ＳＤＲはより正確に、ユーザの専門知識の領域を反映する。
【０１２４】
方法１０５０は、ユーザ専門知識プロファイルモジュールによって、第４演算装置から、第２のタームおよび類似のタームに関連するユーザの識別情報のリクエストを受け取るステップを含む（１０７０）。いくつかの実施形態において、類似のデータ項目と関連するユーザの識別情報のリクエストは明示的である。他の実施形態において、ユーザ専門知識プロファイルモジュール１０１０は、上記識別情報を、第４演算装置のユーザへのサービスとして、自動的に供給する。例として、ユーザが作成している白書中のクエリタームに類似した文書を検索している第４演算装置のユーザは、選択されたクエリタームに類似したトピックの専門知識を深めた他のユーザの識別情報をリクエストすることができる（あるいは、上記識別を受ける選択肢を与えられることができる）。例として、この機能は、ユーザが、特定のトピックの専門知識を深めたユーザを識別することを可能にする。これは、そうした専門知識が、当該ユーザの正式の呼称（official title）、職務内容説明書（job description）、あるいは役割の一部であるかに関わらない。それにより、公式の資料、口コミ、または人脈のみに基づいてではそれまで識別が困難だった情報が利用可能になる。専門知識の複数の分野（例えば、一つまたは複数のクエリタームに基づく複数のＳＤＲ）が単独のユーザに関連していることもあるので、専門知識の第一分野だけでなく第二分野についても情報が得られる。例えば、ある個人は正式には調査の第一分野に焦点を当てているが、当該個人は、調査の第二分野への仕事の潜在的広がりを調査する一週間のうちに一連のクエリをするかもしれない。そのように限られた時間で得られた専門知識でも、他のユーザにとって役に立つかもしれない。他の例として、実際の関心領域に基づいてチームを作ろうとしている、あるいは組織を構築（再構築）しようとしている個人が、ユーザ専門知識プロファイルモジュール１０１０の機能を用いて、当該個人の必要としているものに関連する専門知識を有するユーザを特定しようとするかもしれない。
【０１２５】
方法１０５０は、上記少なくとも一つのタームのＳＤＲと上記第２のタームのＳＤＲとの語義的類似性のレベルを、類似度エンジンによって特定するステップを含む（１０７２）。一実施形態において、類似度エンジン３０４は第２マシン１０２ｂ上で実行される。他の実施形態において、類似度エンジン３０４は、検索システム９０２によって提供され、検索システム９０２内で実行される。専門知識分野を有している個人を特定しようとするユーザからのクエリタームを受け取ると、ユーザ専門知識プロファイルモジュール１０１は類似度エンジン３０４に指示して、ユーザ専門知識ＳＤＲデータベース１０１２から、当該リクエストを満たす他のユーザを特定してもよい。
【０１２６】
方法１０５０は、ユーザ専門知識プロファイルモジュールによって、第４演算装置に、第３演算装置のユーザの識別子を提供するステップを含む（１０７４）。
【０１２７】
いくつかの実施形態において、本明細書に記載の方法およびシステムのユーザは、クエリタームに関する好みを特定してもよい。例として、あるクエリタームの検索を行おうとしている第１のユーザは、当該クエリタームの法律的な側面に関連する文書に興味があるかもしれない（例えば、当該クエリタームまたはそれに類似したタームの、裁判事件や特許出願や公開ライセンスや他の法的文書における使用）。一方、同じクエリタームで検索しようとしている第２のユーザは、当該クエリタームの科学的側面に関する文書に興味があるかもしれない（例えば、当該クエリタームまたはそれに類似したタームの、白書や研究出版物や登録出願（grant application）や他の科学的文書における使用）。いくつかの実施形態において、本明細書に記載したシステムは、そのような好みを特定し、（ＳＤＲ分析に基づいて）どの検索結果が検索者の好む文書の種類に最も近いかに従って検索結果をランク付けする機能を提供する。
【０１２８】
ふたたび図１０Ａおよび図１０Ｂに戻ると、ブロック図は、企業検索システムから受け取ったクエリ結果を、ユーザの好みに基づいて語義的にランク付けするシステムの実施形態を示す。図１０Ａに、語義的ランク付けの機能を、従来の企業検索システムからの結果と併せて提供する実施形態を示す。図１０Ｂに、語義的ランク付けの機能を、検索システム９０２からの結果と併せて提供する実施形態を示す。
【０１２９】
図１０Ｄを参照すると、フローチャートは、全文検索システムから受け取ったクエリ結果をユーザプロファイルに基づいて語義的にランク付けする方法１０８０の一実施形態を示す。方法１０８０は、少なくとも一つの基準に沿って選択された一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（１０８１）。方法１０８０は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（１０８２）。方法１０８０は、第１演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む（１０８３）。方法１０８０は、一覧の各タームについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１０８４）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法１０８０は、表現生成器によって、上記存在情報を用いて、一覧のタームごとのスパース分散表現（ＳＤＲ）を生成するステップを含む（１０８５）。方法１０８０は、ＳＤＲデータベースに、生成したＳＤＲのそれぞれを保存するステップを含む（１０８６）。方法１０８０は、第２演算装置上で実行されるクエリモジュールによって、第３演算装置から、第１タームおよび複数の優先文書を受け取るステップを含む（１０８７）。方法１０８０は、表現生成器によって、上記複数の優先文書を用いた複合ＳＤＲを生成するステップを含む（１０８８）。方法１０８０は、上記第１タームに類似した一組の結果文書のそれぞれの識別情報のクエリを、クエリモジュールによって全文検索システムに送るステップを含む（１０８９）。方法１０８０は、上記一組の結果文書中で識別された文書それぞれのＳＤＲを、表現生成器を用いて生成するステップを含む（１０９０）。方法１０８０は、上記一組の結果文書のそれぞれに対して生成した各ＳＤＲと上記複合ＳＤＲとの語義的類似性のレベルを、類似度エンジンによって決定するステップを含む（１０９１）。方法１０８０は、上記決定された語義的類似性のレベルに基づいて、上記一組の結果文書中の少なくとも一つの文書の順番を、第２演算装置上で実行されるランキングモジュールによって変更するステップを含む（１０９２）。方法１０８０は、上記一組の結果文書のそれぞれの識別情報を、クエリモジュールによって、第３演算装置へ、変更された順番で供給するステップを含む（１０９３）。
【０１３０】
一実施形態において、ステップ（１０８１）から（１０８６）は、図２およびステップ（２０２）から（２１４）に関して上記したように実行される。
【０１３１】
方法１０８０は、第２演算装置上で実行されるクエリモジュールによって、第３演算装置から、第１タームおよび複数の優先文書を受け取るステップを含む（１０８７）。一実施形態において、クエリ入力処理モジュール６０７は、図６Ａ、図６Ｂ、図９Ａ、図９Ｂに関連して上記したように第１タームを受け取る。他の実施形態において、クエリ入力処理モジュール６０７は、第３演算装置のユーザが一つ以上の優先文書を供給（例えば、アップロード）するのを可能にするユーザインターフェース要素（図示せず）を提供する。優先文書は、検索中のユーザが関心のある種類の文書を示す一つ以上のデータ項目を含む任意の種類または形態のデータ構造でよい。例として、科学研究者は、その任意の検索目的に関連するあるいは検索目的にとって好ましいと考える種類の文書のスタイルおよび／または内容を反映する多くの研究文書を提供できる。他の例として、法律家は、その任意の検索目的に関連するあるいは検索目的にとって好ましいと考える種類の文書のスタイルおよび／または内容を反映する多くの法律文書を提供できる。さらに、上記システムは、ユーザが、異なる組の優先文書に対して異なる検索をできるようにしたり、ユーザが、異なる時間の異なる検索とともに用いる異なる優先プロファイルを生成できるようにしたりする機能を提供する。例えば、異なる優先プロファイルは、研究の第１のトピックに焦点を当てた科学的検索により関連があり、第２の、異なるトピックに焦点を当てた科学的検索により関連が少ないかもしれない。
【０１３２】
方法１０８０は、表現生成器によって、上記複数の優先文書を用いた複合ＳＤＲを生成するステップを含む（１０８８）。一実施形態において、ユーザ優先モジュール１００４が、複合ＳＤＲの生成を指示する。例えば、ユーザ優先モジュール１００４は、優先文書をフィンガープリンティングモジュール３０２に送って複合ＳＤＲを生成させる。他の例として、ユーザ優先モジュール１００４は、優先文書を表現生成器１１４に送って、複合ＳＤＲを生成させる。個々の優先文書のＳＤＲを結合する複合ＳＤＲは、個々の文書の複合ＳＤＲをタームＳＤＲから生成するのと同じやり方で生成してよい。ユーザ優先モジュール１００４は、生成した複合ＳＤＲを、ユーザ優先ＳＤＲデータベース１００６に保存してよい。
【０１３３】
方法１０８０は、上記第１タームに類似した一組の結果文書のそれぞれの識別情報のクエリを、クエリモジュールによって全文検索システムに送るステップを含む（（１０８９）。クエリモジュール６０１が、図６Ａおよび図６Ｂに関連して記載したように、クエリを外部の企業検索システムに送ってもよい。あるいは、クエリモジュール６０１が、図９Ａおよび図９Ｂに関連して記載したように、クエリを検索システム９０２に送ってもよい。
【０１３４】
方法１０８０は、上記一組の結果文書中で識別された文書それぞれのＳＤＲを、表現生成器を用いて生成するステップを含む（１０９０）。一実施形態において、ユーザ優先モジュール１００４は、検索システム（検索システム９０２または第三者の企業検索システム）から一組の結果文書を受け取る。他の実施形態において、ユーザ優先モジュール１００４は、類似度エンジン３０４に指示して、受け取った結果文書のそれぞれについてＳＤＲを生成させる。
【０１３５】
方法１０８０は、上記一組の結果文書のそれぞれに対して生成した各ＳＤＲと上記複合ＳＤＲとの語義的類似性のレベルを、類似度エンジンによって決定するステップを含む（１０９１）。一実施形態において、類似度エンジンが第２マシン１０２ｂ上で実行される。他の実施形態において、類似度エンジンは検索システム９０２によって提供され、検索システム９０２内で実行される。一実施形態において、ユーザ優先モジュール１００４が類似度エンジン３０４に指示して、類似性のレベルを特定させる。他の実施形態において、ユーザ優先モジュール１００４は、類似度エンジン３０４から類似性のレベルを受け取る。
【０１３６】
方法１０８０は、上記決定された語義的類似性のレベルに基づいて、上記一組の結果文書中の少なくとも一つの文書の順番を、第２演算装置上で実行されるランキングモジュールによって変更するステップを含む（１０９２）。一実施形態において、一例として、一組の結果文書に第５の文書として含まれる結果は、第１から第４の文書よりも、複数の優先文書の複合ＳＤＲに対してより高いレベルの類似性を有することを類似度エンジン３０４が示してもよいが、これに限定されるものではない。ユーザ優先モジュール１００４はそれから、第５文書（あるいは第５文書の識別情報）を第１の位置へ移動させてもよい。
【０１３７】
方法１０８０は、上記一組の結果文書のそれぞれの識別情報を、クエリモジュールによって、第３演算装置へ、変更された順番で供給するステップを含む（（１０９３）。一実施形態において、優先文書と比較して検索結果を分析することにより、システムは、検索の文脈を考慮して、検索者に最も重要である可能性が高い検索結果を選択して、検索結果をユーザ独自のものにしてもよい。他の例として、従来の、ランク付けされた任意の数の結果（例えば、最初の十個、あるいは最初のページ、あるいは他の任意の数の結果）を返す代わりに、システムは何千もの文書を分析して、検索者に語義的に関係のある文書のみを提供する。
【０１３８】
いくつかの実施形態において、患者の病気の徴候は非常に早い段階で現れ、医療専門家は明確な医療診断を下すことができる。しかし、他のいくつかの実施形態において、患者は、徴候のうち一部だけを示すかもしれず、医療診断を明確に下すことがまだできない。例えば、患者が、十の異なる種類の測定の値が測定される血液サンプルを提供し、それらの測定のうち、一種類のみが病的な値を示し、他の九つの測定は、閾値近くではあるものの正常値の範囲内にあるかもしれない。そのような場合に明確な医療診断を下すのは困難かもしれず、患者はさらなる検査、追加のモニタリング、遅い診断を受けることになるかもしれず、そのあいだ医療専門家は残りの徴候が進むかどうか様子を見る。そのような例では、早期に診断できないことで、治療が遅れ、患者の医療効果に悪影響を及ぼすかもしれない。本明細書に記載する方法およびシステムのいくつかの実施形態は、そのような実施形態に対応するものであり、医療診断を支える機能を提供する。
【０１３９】
上記したように、本明細書に記載したシステムは、テキストベースの項目に対してと同様、数値データの項目に対してもＳＤＲを生成し保存し、続いて受け取った文書に対して生成されたＳＤＲと保存されたＳＤＲの一つとの類似性のレベルを特定してもよい。いくつかの実施形態において、受け取った文書が他のデータまたはメタデータ（例えば、医療診断）と関連している場合、上記システムは、類似性のレベルを特定した結果として、当該データまたはメタデータの識別情報を提供してもよい（例えば、数値データの項目を含む文書と関連した医療診断を特定する）。
【０１４０】
図１１Ａに関連して図１１Ｂを参照すると、フローチャートは、医療診断支援を行う方法１１５０の一実施形態を示す。方法１１５０は、少なくとも一つの基準に沿って選択され医療診断と関連する一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（１１５２）。方法１１５０は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（１１５４）。方法１１５０は、第１演算装置上で実行されるパーサによって、一組のデータ文書中に存在する測定値の一覧を生成するステップを含む（１１５６）。方法１１５０は、一覧の測定値それぞれについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１１５８）。（i）測定値が存在するデータ文書の数、（ii）各データ文書において測定値が存在する数、（iii）測定値が存在するデータ文書それぞれに関連付けられた座標ペア。方法１１５０は、表現生成器によって、上記存在情報を用いて、一覧の測定値ごとにスパース分散表現（ＳＤＲ）を生成するステップを含む（１１６０）。方法１１５０は、ＳＤＲデータベースに、生成したＳＤＲのそれぞれを保存するステップを含む（１１６２）。方法１１５０は、第２演算装置上で実行される診断支援モジュールによって、第３演算装置から、複数の測定値を含んでおり、医療患者（medical patient）と関連する文書を受け取るステップを含む（１１６４）。方法１１５０は、表現生成器によって、上記複数の測定値に対する少なくとも一つのＳＤＲを生成するステップを含む（１１６６）。方法１１５０は、上記複数の測定値に対して生成した少なくとも一つのＳＤＲに基づいて、表現生成器によって、上記文書についての複合ＳＤＲを生成するステップを含む（１１６８）。方法１１５０は、上記文書に対して生成した複合ＳＤＲとＳＤＲデータベースから読み出したＳＤＲとの語義的類似性のレベルを、第２演算装置上で実行される類似度エンジンによって決定するステップを含む（１１７０）。方法１１５０は、上記ＳＤＲデータベースから読み出したＳＤＲと関連する医療診断の識別情報を、上記決定された語義的類似性のレベルに基づいて、診断支援モジュールによって、第３演算装置へと供給するステップを含む（１１７２）。
【０１４１】
方法１１５０は、少なくとも一つの基準に沿って選択され医療診断と関連する一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（１１５２）。一実施形態において、クラスタ化は、図２に関連して上記したように行われる。いくつかの実施形態において、一組の文書中の各文書は、上記したように複数のデータ項目を含む。これらの実施形態の一つでは、しかしながら、複数のデータ項目は、一つのサンプルから一度に採取した一組の検査値である（例えば、医療患者の血液サンプル）。一例として、文書中の複数のデータ項目は、カンマで区切られた数値のリストとして提供されてもよい。一例として、上記システムは５００個の文書（５００人の患者それぞれにつき一個の文書）を受け取り、各文書は５つの測定値（各患者によって提供された単一の血液サンプルに由来する一種類の測定の５つの値）を含み、医療診断と関連してもよい。上記システムは、上記測定値をデータ項目として用い、図２に関連して上記したように文書ベクターを生成してもよい。一実施形態において、図１１Ａのシステムは、図１Ａから図１Ｃおよび図３と関連して記載した機能を有してもよい。しかしながら、図１１Ａのシステムは、検査値を含む文書を解析するよう最適化された異なるパーサ１１０（実験文書パーサおよび前処理モジュール１１０ｂとして図示）を有してもよく、当該システムは、一組のデータ文書に存在する測定値の一覧の生成を最適化するビニングモジュール（binning module）１５０を有してもよい。これについてはのちほどさらに詳しく述べる。
【０１４２】
方法１１５０は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（１１５４）。一実施形態において、意味マップ１０８の生成、文書ベクターの意味マップ１０８への配布、および座標ペアの関連付けは、図２に関連して上記したように行われる。一例として、意味マップ１０８中の各点は、一種類の測定値について複数の検査値を含む一つ以上の文書を示してもよいが、これに限定されるものではない。上記測定値としては、メタボリックパネル（metabolic panel）で特定した任意の種類の測定値（例えば、一リットル当たりのカルシウム）が挙げられるが、これに限定されるものではない。本明細書に記載の特定の例では、血液検査に由来する検査値について述べているが、当業者ならば、医療診断と関連する任意の種類の医療データを、本明細書に記載する方法およびシステムに用いてよいとわかるであろう。
【０１４３】
方法１１５０は、第１演算装置上で実行されるパーサによって、一組のデータ文書中に存在する測定値の一覧を生成するステップを含む（１１５６）。一実施形態において、測定値は、図２に関連して上記したように一覧化される。しかしながら、いくつかの実施形態において、上記システムは、上記一覧を生成する最適化されたプロセスを提供するビニングモジュール１５０を有する。受け取られた各文書は、複数の値を含み、各値が一種類の測定の値を特定してもよい。例えば、文書は、血中カルシウムレベルの値を含んでもよい。当該値は、文書中の数値であり、「カルシウム」は測定の種類である。しかしながら、各種類の値は文書ごとに違う。例えば、５００個の文書の組の中で、「カルシウム」の測定値は、0.0〜5.2mg/literの範囲にある。ただし、これに限定されるものではない。テキストベースの文書を扱う場合は、複数の文書がそれぞれある単語を含んでいるならば、どの文書でもその単語は同一である――例えば、二つの文書が「早く」という単語を含んでいるならば、「早く」という単語を形成しているテキストはどの文書でも同じである。それに対して、検査値を扱う場合は、二つの文書がそれぞれ同じ種類の測定（例えば、「カルシウム」測定または「グルコース」測定）の値を含みながら、非常に異なる値（例えば、0.1と5.2）を示すことがありうる。どちらの値も、その種類の測定では妥当な値である。したがって、上記システムを最適化するために、上記システムは、一組の文書に含まれる各種類の測定の値の範囲を特定し、上記範囲を実質的に均等にサブグループへ分ける機能をユーザに提供する。そのような処理はビニング（binning）と称される場合がある。ビニングを行うことで、測定値におけるかなりの量の重複がグループ分けされる。例として、上記システムは、一組の文書中の「カルシウム」測定値には５０００もの値があり、当該値の範囲は0.01〜5.2であることを示し、ユーザに、値をどのように分布させるか指定する選択肢を与えてもよい。例えば、ユーザは、0.01から0.3までの値は第１サブ区分（本明細書では「ビン」とも称する）にグループ分けされ、0.3から3.1までの値は第２サブ区分にグループ分けされ、3.1から5.2までの値は第３サブ区分にグループ分けされると指定してもよい。上記システムはそれから、５０００の値のうちどれほどの数値が上記三つのビンに分類されるかを一覧化し、存在情報を用いて各値についてＳＤＲを生成してもよい。ビニングモジュール１５０がこの機能を提供してもよい。
【０１４４】
方法１１５０は、一覧の測定値それぞれについて、第１演算装置上で実行される表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１１５８）。（i）測定値が存在するデータ文書の数、（ii）各データ文書において測定値が存在する数、（iii）測定値が存在するデータ文書それぞれに関連付けられた座標ペア。一実施形態において、存在情報は、図２に関連して上記した情報である。
【０１４５】
方法１１５０は、表現生成器によって、上記存在情報を用いて、一覧の測定値ごとにスパース分散表現（ＳＤＲ）を生成するステップを含む（１１６０）。一実施形態において、ＳＤＲは、図２に関連して上記したように生成される。
【０１４６】
方法１１５０は、ＳＤＲデータベースに、生成したＳＤＲのそれぞれを保存するステップを含む（１１６２）。一実施形態において、生成したＳＤＲは、図２に関連して上記したように、ＳＤＲデータベース１２０に保存する。
【０１４７】
方法１１５０は、第２演算装置上で実行される診断支援モジュールによって、第３演算装置から、複数の測定値を含んでおり、病気の患者と関連する文書を受け取るステップを含む（１１６４）。一実施形態において、診断支援モジュール１１００は、クライアント１０２ｃから上記文書を受け取る。
【０１４８】
方法１１５０は、表現生成器によって、上記複数の測定値について少なくとも一つのＳＤＲを生成するステップを含む（１１６６）。一実施形態において、診断支援モジュール１１００はフィンガープリンティングモジュール３０２に指示して、図１から図３に関連して上記したようなＳＤＲを生成させる。一実施形態において、診断支援モジュール１１００は表現生成器１１４に指示して、図１から図３に関連して上記したようなＳＤＲを生成させる。
【０１４９】
方法１１５０は、上記複数の測定値に対して生成した少なくとも一つのＳＤＲに基づいて、表現生成器によって、上記文書についての複合ＳＤＲを生成するステップを含む（１１６８）。一実施形態において、診断支援モジュール１１００はフィンガープリンティングモジュール３０２に指示して、図１から図３に関連して上記したような複合ＳＤＲを生成させる。一実施形態において、診断支援モジュール１１００は表現生成器１１４に指示して、図１から図３に関連して上記したような複合ＳＤＲを生成させる。
【０１５０】
方法１１５０は、上記文書に対して生成した複合ＳＤＲとＳＤＲデータベースから読み出したＳＤＲとの語義的類似性のレベルを、第２演算装置上で実行される類似度エンジンによって決定するステップを含む（１１７０）。一実施形態において、診断支援モジュール１１００は類似度エンジン３０４に指示して、図３から図５に関連して上記したように、語義的類似性のレベルを決定させる。
【０１５１】
方法１１５０は、上記ＳＤＲデータベースから読み出したＳＤＲと関連する医療診断の識別情報を、上記決定された語義的類似性のレベルに基づいて、診断支援モジュールによって、第３演算装置へと供給するステップを含む（１１７２）。そのようなシステムは、たとえ個々の測定値がまだ病的レベルに達していない場合でも、近い将来の医療診断を検知できる。複数のＳＤＲを入力し、それらのあいだでパターンを分析することで、上記システムは患者のパターンの変化を特定でき、それにより、動的なプロセスですらとらえることができる。例えば、前癌検知システムは、一部の値における小さな変化を特定するが、しかしパターンを他の患者のＳＤＲと比較する能力を持たせ、時間ベースのシーケンス（time-based sequences）を分析させることで、医療診断を下すことができる。
【０１５２】
一実施形態において、診断支援モジュール１１００は、不完全なパラメータベクトルについても、例えば、診断支援モジュール１１００がある文書における複数の測定値を受け取り、その複数の測定値において、診断に関連するタイプの測定値が欠落している場合でも、結果の質を低下させることなく、ＳＤＲの生成を指示することができる。例えば、上述したように、２つのＳＤＲが同一でない場合でも、当該２つのＳＤＲを比較し、類似度の閾値レベルを満たす類似レベルを特定することができる。そのため、測定値が不完全な文書について生成されたＳＤＲにおいて、１箇所または２箇所（例えば、より完全な文書であれば測定値の値が存在するであろう、意味マップ１０８におけるある箇所）が欠落している場合であっても、保存されたＳＤＲを使用して比較を行うことができる。そのような実施形態において、診断支援モジュール１１００は、医療診断に関連しているが、値が受け取られていない、少なくとも１つのパラメータを特定することができ、当該値を提供するよう勧めることができる（例えば、欠落しているパラメータについて、引き続きの手続きまたは分析の提案）。
【０１５３】
いくつかの実施形態において、受け取った文書が、医療診断に加えて、メタデータに対する関連性を含んでいてもよい。例えば、文書が患者の性別の識別にも関連付けられていてもよい。そのようなメタデータを使用して、２つのＳＤＲと特定された医療診断との類似レベルの確認を行ってもよい。例として挙げると、診断支援モジュール１１００は、２つのＳＤＲが類似していると判断し、上記２つのＳＤＲの一方が生成された文書に関連付けられた医療診断を特定してもよい。そして診断支援モジュール１１００は、メタデータに基づく規則を適用して、上記医療診断の識別の正確性を確認してもよい。例として挙げると、限定するものではないが、メタデータによって患者が男性であることが示され、特定された医療診断によって卵巣癌のおそれがあることが示された場合、診断支援モジュール１１００は、特定された医療診断をクライアント１０２ｃのユーザに提供するのではなく、代わりにエラー（男性には卵巣がないため、卵巣癌にはなり得ない）を報告するように、規則により規定してもよい。
【０１５４】
図１３、図１４Ａ、および図１４Ｂを参照すると、言語横断スパース分散表現の生成および使用のための方法およびシステムの種々の実施形態が開示されている。いくつかの実施形態において、システム１３００は、一組の文書の一部またはすべての、第１言語から第２言語への翻訳を受け取ってもよく、その翻訳を使用して、翻訳済み文書のコーパスから生成された第２ＳＤＲデータベースにおいて対応するＳＤＲを特定してもよい。概略すると、システム１３００はエンジン１０１を備えており、エンジン１０１は、第２表現生成器１１４ｂ、第２パーサおよび前処理モジュール１１０ｃ、翻訳済みの一組のデータ文書１０４ｂ、第２全文検索システム１２２ｂ、第２データ項目一覧１１２ｂ、および第２ＳＤＲデータベース１２０ｂを備えている。当該エンジン１０１は、図１Ａに関連して上述したエンジン１０１であってもよい。
【０１５５】
図１４Ａを概略すると、方法１４００は、少なくとも１つの基準に従って選択された、第１言語の一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（１４０２）。方法１４００は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（１４０４）。方法１４００は、第１演算装置上で実行される第１パーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む（１４０６）。方法１４００は、一覧の各タームについて、第１演算装置上で実行される第１表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１４０８）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法１４００は、第１表現生成器によって、上記存在情報を用いて一覧の各タームについてスパース分散表現（ＳＤＲ）を生成するステップを含む（１４１０）。方法１４００は、生成された上記ＳＤＲそれぞれを、第１表現生成器によって第１ＳＤＲデータベースに保存するステップを含む（１４１２）。方法１４００は、参照マップ生成器によって、上記一組のデータ文書のそれぞれの第２言語への翻訳を受け取るステップを含む（１４１４）。方法１４００は、上記一組のデータ文書のそれぞれからの座標ペアと上記翻訳済みの一組のデータ文書における対応する各文書とを意味マップによって関連付けるステップを含む（１４１６）。方法１４００は、第２パーサによって、上記翻訳済みの一組のデータ文書に存在するタームの第２一覧を生成するステップを含む（１４１８）。方法１４００は、上記翻訳済みの一組のデータ文書に基づく上記第２一覧の各タームについて、第２表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１４２０）。（i）タームが存在する翻訳済みデータ文書の数、（ii）各翻訳済みデータ文書においてタームが存在する数、（iii）タームが存在する翻訳済みデータ文書それぞれに関連付けられた座標ペア。方法１４００は、上記第２一覧の各タームについて、上記翻訳済みの一組のデータ文書に基づいて、第２表現生成器によってＳＤＲを生成するステップを含む（１４２２）。方法１４００は、上記第２一覧の各タームについて生成された上記ＳＤＲそれぞれを、第２表現生成器によって第２ＳＤＲデータベースに保存するステップを含む。方法１４００は、第１表現生成器によって、第１言語の第１文書の第１ＳＤＲを生成するステップを含む（１４２６）。方法１４００は、第２表現生成器によって、第２言語の第２文書の第２ＳＤＲを生成するステップを含む（１４２８）。方法１４００は、上記第１ＳＤＲと上記第２ＳＤＲとの間の距離を決定するステップを含む（１４３０）。方法１４００は、上記第１文書と上記第２文書との類似レベルの識別情報を提供するステップを含む（１４３２）。
【０１５６】
一実施形態において、（１４０２）〜（１４１２）は、図２および（２０２）〜（２１４）に関連して既述したように実行される。
【０１５７】
方法１４００は、参照マップ生成器によって、上記一組のデータ文書のそれぞれの第２言語への翻訳を受け取るステップを含む（１４１４）。一実施形態において、上記翻訳は、マシン１０２ａが実行する翻訳処理によって、参照マップ生成器１０６に提供される。他の実施形態において、上記翻訳は、人間の翻訳者によって、エンジン１０１に提供される。さらに他の実施形態において、上記翻訳は、機械翻訳処理によって、エンジン１０１に提供される。上記機械翻訳処理は第三者が実施してもよいし、または、上記機械翻訳処理によって、翻訳がエンジン１０１に直接提供されてもよいし、ネットワークを介して提供されてもよい。さらに他の実施形態において、上記翻訳は、システム１３００のユーザによってマシン１０２ａにアップロードされる。
【０１５８】
方法１４００は、上記一組のデータ文書のそれぞれからの座標ペアと上記翻訳済みの一組のデータ文書における対応する各文書とを意味マップによって関連付けるステップを含む（１４１６）。一実施形態において、上記関連付けは、意味マップ１０８によって実施される。他の実施形態において、上記関連付けは、図２および（２０４）に関連して既述したように実施される。
【０１５９】
方法１４００は、第２パーサによって、上記翻訳済みの一組のデータ文書に存在するタームの第２一覧を生成するステップを含む（１４１８）。一実施形態において、上記生成は、図２および（２０６）に関連して既述したように実施される。他の実施形態において、第２パーサは、第２言語の文書を解析するよう第２パーサ１１０ｃを最適化するよう構成されている（例えば、構成ファイルを含む）。
【０１６０】
方法１４００は、上記翻訳済みの一組のデータ文書に基づく第２一覧の各タームについて、第２表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１４２０）。（i）タームが存在する翻訳済みデータ文書の数、（ii）各翻訳済みデータ文書においてタームが存在する数、（iii）タームが存在する翻訳済みデータ文書それぞれに関連付けられた座標ペア。一実施形態において、上記存在情報の決定は、図２および（２０８）に関連して既述したように実施される。
【０１６１】
方法１４００は、第２表現生成器によって、翻訳済みの一組のデータ文書に基づいて、第２一覧の各タームについてＳＤＲを生成するステップを含む（１４２２）。一実施形態において、上記タームＳＤＲの生成は、図２および（２１０）〜（２１４）に関連して既述したように実施される。
【０１６２】
方法１４００は、上記第２一覧の各タームについて生成された上記ＳＤＲそれぞれを、第２表現生成器によって第２ＳＤＲデータベースに保存するステップを含む（１４２４）。一実施形態において、上記ＳＤＲの第２データベースへの保存は、図１Ａに関連して既述したように実施される。
【０１６３】
方法１４００は、第１表現生成器によって、第１言語の第１文書の第１ＳＤＲを生成するステップを含む（１４２６）。一実施形態において、上記第１ＳＤＲの生成は、図２に関連して既述したように実施される。
【０１６４】
方法１４００は、第２表現生成器によって、第２言語の第２文書の第２ＳＤＲを生成するステップを含む（１４２８）。一実施形態において、上記第２ＳＤＲの生成は、図２に関連して既述したように実施される。
【０１６５】
方法１４００は、上記第１ＳＤＲと上記第２ＳＤＲとの間の距離を決定するステップを含む（１４３０）。方法１４００は、上記第１文書と上記第２文書との類似レベルの特定を行うステップを含む（１４３２）。一実施形態において、（１４３０）〜（１４３２）は、図３〜図４に関連して既述したように実行される。
【０１６６】
一実施形態において、本明細書に記載する方法およびシステムを使用して、翻訳システムの品質の測定を行ってもよい。例えば、翻訳システムによって、テキストを第１言語から第２言語に翻訳し、第１言語のテキストと第２言語の翻訳の両方を本明細書に記載のシステムに提供してもよい。上記システムによって、第１言語のテキストのＳＤＲが、翻訳済みテキスト（第２言語）のＳＤＲに類似している（例えば、類似レベルの閾値を上回っている）と決定された場合は、その翻訳の品質が高いとしてもよい。上記の例を続けると、第１言語のテキストのＳＤＲが、翻訳済みテキスト（第２言語）のＳＤＲに十分には類似していない（例えば、所定の類似レベルの閾値を上回っていない）と決定された場合は、その翻訳の品質が低いとしてもよい。
【０１６７】
ここで、図１３および図１４Ａに関連して、図１４Ｂのフローチャートを参照すると、方法１４５０の一実施形態が開示されている。図１４Ｂを概略すると、方法１４５０は、少なくとも１つの基準に従って選択された、第１言語の一組のデータ文書を、第１演算装置上で実行される参照マップ生成器によって、２次元距離空間においてクラスタ化し、意味マップを生成するステップを含む（１４５２）。方法１４５０は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（１４５４）。方法１４５０は、第１演算装置上で実行される第１パーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む（１４５６）。方法１４５０は、一覧の各タームについて、第１演算装置上で実行される第１表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１４５８）。（i）タームが存在するデータ文書の数、（ii）各データ文書においてタームが存在する数、（iii）タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法１４５０は、第１表現生成器によって、上記存在情報を用いて一覧の各タームについてスパース分散表現（ＳＤＲ）を生成するステップを含む（１４６０）。方法１４５０は、生成された上記ＳＤＲそれぞれを、第１表現生成器によって、第１ＳＤＲデータベースに保存するステップを含む（１４６２）。方法１４５０は、参照マップ生成器によって、上記一組のデータ文書のそれぞれの第２言語への翻訳を受け取るステップを含む（１４６４）。方法１４５０は、上記一組のデータ文書のそれぞれからの座標ペアと上記翻訳済みの一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む（１４６６）。方法１４５０は、第２パーサによって、上記翻訳済みの一組のデータ文書に存在するタームの第２一覧を生成するステップを含む（１４６８）。方法１４５０は、上記翻訳済みの一組のデータ文書に基づく上記第２一覧の各タームについて、第２表現生成器によって存在情報（以下（i）〜（iii）を含む）を決定するステップを含む（１４７０）。（i）タームが存在する翻訳済みデータ文書の数、（ii）各翻訳済みデータ文書においてタームが存在する数、（iii）タームが存在する翻訳済みデータ文書それぞれに関連付けられた座標ペア。方法１４５０は、上記第２一覧の各タームについて、上記翻訳済みの一組のデータ文書に基づいて、第２表現生成器によってＳＤＲを生成するステップを含む（１４７２）。方法１４５０は、上記第２一覧の各タームについて生成された上記ＳＤＲそれぞれを、第２表現生成器によって第２ＳＤＲデータベースに保存するステップを含む（１４７４）。方法１４５０は、第１言語で受け取った第１タームの第１ＳＤＲを、第１表現生成器によって生成するステップを含む（１４７６）。方法１４５０は、上記第１ＳＤＲと、第２ＳＤＲデータベースから読み出した、第２言語の第２タームの第２ＳＤＲとの間の距離を決定するステップを含む（１４７８）。方法１４５０は、決定された上記距離に基づいて、上記第２言語の第２タームの特定と、上記第１タームと上記第２タームとの類似レベルの識別情報とを提供するステップを含む（１���８０）。
【０１６８】
一実施形態において、（１４５２）〜（１４７４）は、図１４Ａおよび（１４０２）〜（１４２４）に関連して既述したように実行される。
【０１６９】
方法１４５０は、第１表現生成器によって、第１言語で受け取った第１文書の第１ＳＤＲを生成するステップを含む（１４７６）。一実施形態において、上記第１ＳＤＲの生成は、図２に関連して既述したように実施される。
【０１７０】
方法１４５０は、上記第１ＳＤＲと、第２ＳＤＲデータベースから読み出した、第２言語の第２タームの第２ＳＤＲとの間の距離を決定するステップを含む（１４７８）。方法１４５０は、決定された上記距離に基づいて、上記第２言語の第２タームの特定と、第１タームと第２タームとの類似レベルの特定とを提供するステップを含む（１４８０）。一実施形態において、（１４７８）〜（１４８０）は、図３〜４に関連して既述したように実行される。
【０１７１】
他の実施形態において、本明細書に記載する方法およびシステムを使用して、検索システムを拡張してもよい。例えば、システム１３００は、第１言語の第１ターム（例えば、ユーザが検索システムのクエリで使用したいターム）を受け取ってもよい。システム１３００は、上記第１タームのＳＤＲを生成し、生成した第１ＳＤＲを使用して、類似レベルの閾値を満たす、第２ＳＤＲデータベースの第２ＳＤＲを特定してもよい。そして、システム１３００は、ユーザの検索クエリを向上させるために、図６Ａ〜６Ｃに関連して既述したように、上記第１ＳＤＲ、上記第２ＳＤＲ、またはその両方を検索システムに提供してもよい。
【０１７２】
いくつかの実施形態において、本明細書に記載の要素は、１つ以上の機能を自動的に、つまり、人間の介入なしで実施してもよい。例えば、システム１００は、一組のデータ文書１０４を受け取り、上記データ文書の前処理を実施する方法、参照マップ生成器１０６をトレーニングする方法、または上記一組のデータ文書１０４の各データ項目のＳＤＲ１１８を生成する方法のうちの１つ以上を、自動的に人間の介入なしで実施してもよい。他の例としては、システム３００は、少なくとも１つのデータ項目を受け取り、受け取ったデータ項目とＳＤＲデータベース１２０のデータ項目との類似レベルを特定する方法、類似するデータ項目の一覧を作成する方法、または上述した他の機能を実施する方法のうちの１つ以上を自動的に実施してもよい。さらに他の例としては、システム３００は、本明細書に記載されているような機能の実行、通信、および提供を自律型主体が行う、いわゆる「モノのインターネット」の一部であってもよいし、またはその一部の要素を含んでいてもよい。例えば、自動の自律型プロセスにより、クエリを生成し、システム３００から回答を受け取り、他のユーザ（人間、コンピュータ、またはその他）に回答を提供してもよい。ある場合には、speech-to-text（音声からテキスト）またはtext-to-speech（テキストから音声）に基づくインターフェースが含まれ、それによって、例えば、当該インターフェースが認識してコンピュータ処理可能な命令を生成する音声コマンドを、ユーザが生成してもよいが、これに限定されるものではない。
【０１７３】
いくつかの実施形態において、従来のシステムとは異なり、本明細書に記載のシステムおよび方法は、意味文脈を個別の表現に組み込む。例えば、特定のＳＤＲの生成方法が不明の場合でも、上記システムは、当該ＳＤＲと他のＳＤＲを比較し、当該２つのＳＤＲの意味文脈を使用して、ユーザに見通しを提供することができる。他の実施形態において、伝統的に文書レベルのクラスタ化に焦点を当てている従来のシステムとは異なり、本明細書に記載のシステムおよび方法は、文書レベルの文脈を使用して、タームレベルでの文脈的な見通しを提供し、ユーザが文書のコーパス内で個別のタームの文脈的な意味を特定できるようにしている。
【０１７４】
上述したシステムは、上記要素の任意の要素を複数、または上記要素の各要素を複数備えていてもよく、上記要素は、独立型マシンに備えられていてもよいし、または、いくつかの実施形態において、記載されているシステムにおける複数のマシンに備えられていてもよいことを理解すべきである。通常、「一実施形態において」、「他の実施形態において」等の表現は、その後に続く、特定の構成、構造、ステップ、または特性が、本開示の少なくとも１つの実施形態に含まれていること、および本開示の複数の実施形態に含まれていてもよいことを意味する。また、上記表現は、同じ実施形態を指していてもよいが、必ずしもそれに限定されるものではない。
【０１７５】
本明細書において、エンジン、生成器、モジュール、または要素と称されているものについて、それぞれ、ソフトウェア、ハードウェア、またはその２つを組み合わせたものとして備えられていてもよく、１つ以上のマシン１００で実行されてもよい。説明を容易にするため、本明細書において複数の要素が別々のものとして示されている場合について、これは、その構成を特定の実装に制限するものではないことを理解すべきである。例えば、上記要素の一部またはすべての機能が、１つの回路またはソフトウェアの機能に含まれていてもよい。他の例としては、１つ以上の要素の機能が、複数の要素に分散されていてもよい。
【０１７６】
本明細書に記載の機能を提供するマシン１０２は、任意の種類のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ポータブルコンピュータ、携帯電話、携帯型スマートフォン、または、他のポータブル通信装置、メディア再生装置、ゲーミングシステム、携帯型演算装置、または、任意の他の種類、形態のネットワークで通信可能であり、本明細書に記載の演算を行うのに十分なプロセッサ電力および記憶容量を有する任意の他の種類および／または形態の演算装置、通信装置、またはメディア装置であってもよい。マシン１０２は、任意の種類および／または形態のソフトウェア、プログラム、または、限定するものではないが、任意の種類および／または形態のウェブブラウザ、ウェブベースのクライアント、クライアントサーバアプリケーション、ActiveXコントロール、JAVA（登録商標）アプレット、または、マシン１０２上で実行可能な任意の他の種類および／または形態の実行可能な命令を含む、実行可能な命令等のアプリケーションの実行、操作、または提供を行ってもよい。
【０１７７】
マシン１００は、ネットワークを介して互いに通信してもよく、当該ネットワークは、任意の種類および／または形態のネットワークであってもよく、地点間ネットワーク、放送ネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM（非同期転送モード）ネットワーク、SONET（同期型光ネットワーク）ネットワーク、SDH（同期デジタルハイアラーキ）ネットワーク、無線ネットワーク、および有線ネットワークのいずれかを含んでいてもよい。いくつかの実施形態において、上記ネットワークは、赤外チャネルまたは衛星帯域等の無線リンクを含んでいてもよい。上記ネットワークのトポロジーは、バスネットワークトポロジー、スターネットワークトポロジー、またはリングネットワークトポロジーであってもよい。上記ネットワークのトポロジーは、当業者に周知されているような、本明細書に記載の演算に対応可能な任意のネットワークトポロジーであってもよい。上記ネットワークは、携帯型装置（通常、卓上型または手持型装置を含む）間での通信に使用される、任意の１つまたは複数のプロトコルを使用する携帯電話ネットワークを含んでいてもよく、AMPS、TDMA、CDMA、GSM（登録商標）、GPRS、UMTS、またはLTEが含まれる。
【０１７８】
マシン１０２は、限定するものではないが、標準電話回線、LANまたはWANリンク（例えば、802.11、T1、T3、56kb、X.25、SNA、DECNET）、ブロードバンド接続（例えば、ISDN、Frame Relay、ATM、Gigabit Ethernet（登録商標）、Ethernet（登録商標）-over-SONET）、無線接続、または、そのいずれかまたはすべてを組み合わせたものを含む、種々の接続を介してネットワークに接続するためのネットワークインターフェースを含んでいてもよい。接続は、種々の通信プロトコル（例えば、TCP/IP、IPX、SPX、NetBIOS、Ethernet（登録商標）、ARCNET、SONET、SDH、光ファイバー分散データインタフェース（FDDI）、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、802.15. 4、Bluetooth（登録商標）、ZIGBEE（登録商標）、CDMA、GSM（登録商標）、WiMax、および直接非同期接続）を使用して確立可能である。一実施形態において、演算装置１００は、セキュアソケットレイヤー（SSL）またはトランスポートレイヤーセキュリティ（TLS）等の任意の種類および／または形態のゲートウェイプロトコルまたはトンネリングプロトコルを介して、他の演算装置１００’と通信する。上記ネットワークインターフェースは、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または、通信および本明細書に記載の演算の実施が可能な任意の種類のネットワークに演算装置１００を接続するのに適した任意の他の装置を備えている。
【０１７９】
上述したシステムおよび方法は、ソフトウェア、ファームウェア、ハードウェア、または、その任意の組み合わせを製造するためのプログラミング技術および／またはエンジニアリング技術を使用した、製造方法、製造装置、または製造物として実施されてもよい。上記技術は、プロセッサ、当該プロセッサで読み取り可能な記憶媒体（例えば、揮発性または不揮発性メモリおよび／または記憶要素を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を備えた、プログラミング可能なコンピュータで実行される1つ以上のコンピュータプログラムで実施されてもよい。プログラムコードは、上述した機能を実施するため、出力を生成するために、上記入力装置を使用して実施される入力に適用されてもよい。
【０１８０】
後述の請求項に示した範囲の各コンピュータプログラムは、アセンブリ言語、マシン言語、ハイレベル手続き型プログラミング言語、またはオブジェクト指向プログラミング言語等の任意のプログラミング言語で実施されてもよい。当該プログラミング言語は、例えば、LISP、PROLOG、PERL、C、C++、C#、JAVA（登録商標）、または、任意のコンパイルされた、または解釈されたプログラミング言語であってもよい。
【０１８１】
このようなコンピュータプログラムはそれぞれ、コンピュータプロセッサによる実行用のマシン読み取り可能な記憶装置に具体的に組み込まれるコンピュータプログラム製品で実施してもよい。入力の処理および出力の生成を行うことにより本発明の機能を実施するため、本発明の方法のステップは、コンピュータ読み取り可能な媒体に具体的に組み込まれるプログラムを実行するコンピュータプロセッサによって実施してもよい。適したプロセッサとしては、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方が挙げられる。通常、上記プロセッサは、読み取り専用メモリおよび／またはランダムアクセスメモリから命令およびデータを受け取る。コンピュータプログラムの命令を具体的に組み込むのに適した記憶装置としては、例えば、すべての形態のコンピュータ読み取り可能な装置、ファームウェア、プログラマブルロジック、ハードウェア（例えば、集積回路チップ、電子装置、コンピュータ読み取り可能な非揮発性記憶ユニット、EPROM、EEPROM（登録商標）、およびフラッシュメモリ素子を含む不揮発性メモリ（半導体記憶装置等）、内蔵ハードディスクやリムーバルディスク等の磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭ）が挙げられる。上記のいずれについても、特別に設計されたASIC（アプリケーション固有の集積回路）またはFPGA（フィールドプログラマブルゲートアレイ）によって補完してもよいし、あるいは、ASICまたはFPGAに組み込まれていてもよい。コンピュータは、通常、内蔵ディスク（不図示）またはリムーバルディスク等の記憶媒体からもプログラムおよびデータを受け取る。これらの要素は、従来のデスクトップまたはワークステーションコンピュータ、および本明細書に記載の方法を実施するコンピュータプログラムを実行するのに適した他のコンピュータでも見られる。上記コンピュータは、任意のデジタルプリントエンジンまたはマーキングエンジン、ディスプレイモニタ、または、紙、フィルム、ディスプレイ画面、または他の出力媒体においてカラーまたはグレースケール画素を生成可能な他のラスタ出力装置とともに使用してもよい。コンピュータは、ネットワーク伝送線路、無線伝送媒体、空中を伝播する信号、電波、赤外線信号等を介した、プログラムへのアクセスを可能にする第２コンピュータからもプログラムおよびデータを受け取ってもよい。
【０１８２】
より具体的には、図１２Ａにネットワーク環境の実施形態が開示されている。概略すると、上記ネットワーク環境は、１つ以上のネットワーク１２０４を介して、１つ以上のリモートマシン１２０６ａ〜１２０６ｎ（通常、サーバ１２０６または演算装置１２０６ともいう）と通信する１つ以上のクライアント１２０２ａ〜１２０２ｎを含んでいる。上述したマシン１０２は、マシン１２０２、マシン１２０６、または任意の種類のマシン１２００として備えられていてもよい。
【０１８３】
図１２Ａでは、クライアント１２０２とリモートマシン１２０６との間にネットワーク１２０４が示されているが、クライアント１２０２およびリモートマシン１２０６は、同じネットワーク１２０４上にあってもよい。ネットワーク１２０４は、企業内イントラネット等のローカルエリアネットワーク（LAN）、メトロポリタンエリアネットワーク（MAN）、または、インターネットまたはワールドワイドウェブ等のワイドエリアネットワーク（WAN）であってもよい。他の実施形態において、クライアント１２０２とリモートマシン１２０６との間に複数のネットワーク１２０４が存在する。これらの実施形態の一つにおいて、ネットワーク１２０４’（不図示）がプライベートネットワークであり、ネットワーク１２０４がパブリックネットワークであってもよい。これらの実施形態の他の実施形態において、ネットワーク１２０４がプライベートネットワークで、ネットワーク１２０４’がパブリックネットワークであってもよい。さらに他の実施形態において、ネットワーク１２０４およびネットワーク１２０４’がどちらもプライベートネットワークであってもよい。
【０１８４】
ネットワーク１２０４は、任意の種類および／または形態のネットワークであってもよく、地点間ネットワーク、放送ネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ＡＴＭ（非同期転送モード）ネットワーク、SONET（同期型光ネットワーク）ネットワーク、SDH（同期デジタルハイアラーキ）ネットワーク、無線ネットワーク、および有線ネットワークのいずれかを含んでいてもよい。いくつかの実施形態において、上記ネットワーク１２０４は、赤外チャネルまたは衛星帯域等の無線リンクを含んでいてもよい。上記ネットワーク１２０４のトポロジーは、バスネットワークトポロジー、スターネットワークトポロジー、またはリングネットワークトポロジーであってもよい。上記ネットワーク１２０４のトポロジーは、当業者に周知されているような、本明細書に記載の演算に対応可能な任意のネットワークトポロジーであってもよい。上記ネットワークは、携帯型装置間の通信に使用される、任意の１つまたは複数のプロトコルを使用する携帯電話ネットワークを含んでいてもよく、AMPS、TDMA、CDMA、GSM（登録商標）、GPRS、またはUMTSが含まれる。いくつかの実施形態において、異なる種類のデータが、異なるプロトコルを介して送信されてもよい。他の実施形態において、同じ種類のデータが、異なるプロトコルを介して送信されてもよい。
【０１８５】
クライアント１２０２およびリモートマシン１２０６（通常、演算装置１２００という）は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ポータブルコンピュータ、携帯電話、または、他のポータブル通信装置、メディア再生装置、ゲーミングシステム、携帯型演算装置、または、通信可能であり、本明細書に記載の演算を行うのに十分なプロセッサ電力および記憶容量を有する任意の他の種類および／または形態の演算装置、通信装置、またはメディア装置であってもよい。いくつかの実施形態において、演算装置１２００は、演算装置１２００と整合性のある、異なるプロセッサ、オペレーティングシステム、および入力装置を備えていてもよい。他の実施形態において、演算装置１２００は、携帯型装置、デジタルオーディオプレイヤー、デジタルメディアプレイヤー、またはそのような装置の組み合わせであってもよい。演算装置１２００は、任意の種類および／または形態のソフトウェア、プログラム、または、限定するものではないが、任意の種類および／または形態のウェブブラウザ、ウェブベースのクライアント、クライアントサーバアプリケーション、ActiveXコントロール、JAVA（登録商標）アプレット、または、演算装置１２００上で実行可能な任意の他の種類および／または形態の実行可能な命令を含む、実行可能な命令等のアプリケーションの実行、操作、または提供を行ってもよい。
【０１８６】
一実施形態において、演算装置１２００はウェブサーバの機能を提供する。いくつかの実施形態において、ウェブサーバ１２００は、APACHEサーバ（Apache Software Foundation（デラウェア州）により保持）等のオープンソースのウェブサーバを含む。他の実施形態において、ウェブサーバ１２００は、Internet Information Service製品（Microsoft Corporation（ワシントン州、レドモンド）により提供）、Oracle iPlanet Web Server製品（Oracle Corporation（カリフォルニア州、レッドウッドショアーズ）により提供）、BEA WEBLOGIC製品（BEA Systems（カリフォルニア州、サンタクララ）により提供）等の独占的ソフトウェアを実行する。
【０１８７】
いくつかの実施形態において、上記システムは、論理的に分類された複数の演算装置１２００を含んでいてもよい。これらの実施形態の一つにおいて、当該演算装置１２００の論理的グループは、サーバファームと称されてもよい。これらの実施形態の他の実施形態において、当該サーバファームは、単体として管理されてもよい。
【０１８８】
図１２Ｂおよび図１２Ｃは、クライアント１２０２またはリモートマシン１２０６の実施形態を実施するのに役立つ演算装置１２００を示すブロック図である。図１２Ｂおよび図１２Ｃに示すように、各演算装置１２００は、中央演算処理装置１２２１および主記憶部１２２２を備えている。図１２Ｂに示すように、演算装置１２００は、記憶装置１２２８、インストール装置１２１６、ネットワークインターフェース１２１８、入出力コントローラ１２２３、表示装置１２２４ａ〜ｎ、キーボード１２２６、マウス等のポインティング装置１２２７、および１つ以上の他の入出力装置１２３０ａ〜ｎを備えていてもよい。記憶装置１２２８は、限定するものではないが、オペレーティングシステムおよびソフトウェアを含んでいてもよい。図１２Ｃに示すように、各演算装置１２００は、メモリポート１２０３、ブリッジ１２７０、１つ以上の入力／出力装置１２３０ａ〜１２３０ｎ（通常、符号１２３０を使用して称される）、および中央演算処理装置１２２１と通信するキャッシュメモリ１２４０等の追加の任意の要素を備えていてもよい。
【０１８９】
中央演算処理装置１２２１は、主記憶部１２２２から取り出された命令に応答し、処理する任意の論理回路である。多くの実施形態において、中央演算処理装置１２２１は、Intel Corporation（カリフォルニア州、マウンテンビュー）、Motorola Corporation（イリノイ州、ショームバーグ）、Transmeta Corporation（カリフォルニア州、サンタクララ）、International Business Machines（ニューヨーク州、ホワイトプレーンズ）、Advanced Micro Devices（カリフォルニア州、サニーベール）により製造されているようなマイクロプロセッサユニット等のマイクロプロセッサユニットによって提供される。他の例としては、SPARCプロセッサ、ARMプロセッサ、UNIX（登録商標）/LINUX（登録商標）の「ホワイト」ボックスの構築のために使用されるプロセッサ、および携帯型装置用プロセッサが挙げられる。演算装置１２００は、これらのプロセッサのいずれか、または本明細書に記載のように作動可能な任意の他のプロセッサに基づいていてもよい。
【０１９０】
主記憶部１２２２は、データの保存が可能で、マイクロプロセッサ１２２１の任意の保存場所への直接アクセスを可能にする１つ以上のメモリチップであってもよい。主記憶部１２２２は、本明細書に記載のように作動可能な任意の入手可能なメモリチップに基づいていてもよい。図１２Ｂに示す実施形態において、プロセッサ１２２１は、システムバス１２５０を介して主記憶部１２２２と通信する。図１Ｃは、上記プロセッサがメモリポート１２０３を介して主記憶部１２２２と直接通信する演算装置１２００の実施形態を示す。図１２Ｃも、主プロセッサ１２２１が、セカンダリバス（バックサイドバスともいう）を介してキャッシュメモリ１２４０と直接通信する実施形態を示す。他の実施形態において、主プロセッサ１２２１は、システムバス１２５０を使用してキャッシュメモリ１２４０と通信する。
【０１９１】
図１２Ｂに示す実施形態において、プロセッサ１２２１は、ローカルシステムバス１２５０を介して種々の入出力装置１２３０と通信する。種々のバスは、中央演算処理装置１２２１を任意の入出力装置１２３０に接続するために使用してもよく、VESA VLバス、ISAバス、EISAバス、MicroChannel Architecture（MCA）バス、PCIバス、PCI-Xバス、PCI-Expressバス、またはNuBusを含む。入出力装置がビデオディスプレイ１２２４である実施形態については、プロセッサ１２２１が、アドバンストグラフィックポート（AGP）を使用してディスプレイ１２２４と通信してもよい。図１Ｃは、主プロセッサ１２２１が、例えば、HYPERTRANSPORT、RAPIDIO、またはINFINIBAND通信技術を介して入出力装置１２３０ｂと直線通信するコンピュータ１２００の実施形態を示す。
【０１９２】
演算装置１２００は、多種多様な入出力装置１２３０ａ〜１２３０ｎを備えていてもよい。入力装置には、キーボード、マウス、トラックパッド、トラックボール、マイク、スキャナ、カメラ、および作画タブレットが含まれる。出力装置には、ビデオディスプレイ、スピーカー、インクジェットプリンタ、レーザープリンタ、および昇華型プリンタが含まれる。入出力装置は、図１２Ｂに示すように入出力コントローラ１２２３によって制御してもよい。また、入出力装置は、演算装置１２００用の記憶装置および／またはインストール装置１２１６を備えていてもよい。いくつかの実施形態において、演算装置１２００は、USB Flash Driveシリーズ（Twintech Industry, Inc.（カリフォルニア州、ロスアラミトス）により製造）等の手持型ＵＳＢ記憶装置受付用のＵＳＢ接続（不図示）を備えていてもよい。
【０１９３】
引き続き図１２Ｂを参照すると、演算装置１２００は、3.5インチディスク、5.25インチディスク、ＺＩＰディスク等のフロッピー（登録商標）受付用ディスクドライブ、ＣＤ−ＲＯＭドライブ、ＣＤ−Ｒ／ＲＷドライブ、ＤＶＤ−ＲＯＭドライブ、種々のフォーマットのテープドライブ、ＵＳＢ装置、ハードドライブ、またはソフトウェアおよびプログラムのインストールに適した任意の他の装置等の任意の適したインストール装置１２１６に対応していてもよい。いくつかの実施形態において、演算装置１２００は、ネットワーク１２０４を通じてソフトウェアをインストールするための機能を提供してもよい。さらに、演算装置１２００は、１つ以上ハードディスクライブまたはＲＡＩＤ等の、オペレーティングシステムおよび他のソフトウェアを保存するための記憶装置を備えていてもよい。
【０１９４】
また、演算装置１２００は、限定するものではないが、標準電話回線、LANまたはWANリンク（例えば、802.11、T1、T3、56kb、X.25、SNA、DECNET）、ブロードバンド接続（例えば、ISDN、Frame Relay、ATM、Gigabit Ethernet（登録商標）、Ethernet（登録商標）-over-SONET）、無線接続、または、そのいずれかまたはすべてを組み合わせたものを含む、種々の接続を介してネットワーク１２０４に接続するためのネットワークインターフェース１２１８を含んでいてもよい。接続は、種々の通信プロトコル（例えば、TCP/IP、IPX、SPX、NetBIOS、Ethernet（登録商標）、ARCNET、SONET、SDH、光ファイバー分散データインタフェース（FDDI）、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、IEEE 802.15. 4、Bluetooth（登録商標）、ZIGBEE（登録商標）、CDMA、GSM（登録商標）、WiMax、および直接非同期接続）を使用して確立可能である。一実施形態において、演算装置１２００は、セキュアソケットレイヤー（SSL）またはトランスポートレイヤーセキュリティ（TLS）等の任意の種類および／または形態のゲートウェイプロトコルまたはトンネリングプロトコルを介して、他の演算装置１２００’と通信する。上記ネットワークインターフェース１２１８は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または、通信および本明細書に記載の演算の実施が可能な任意の種類のネットワークに演算装置１２００を接続するのに適した任意の他の装置を備えている。
【０１９５】
他の実施形態において、入出力装置１２３０は、システムバス１２５０と、USBバス、Apple Desktop Bus、RS-232シリアルコネクション、SCSIバス、FireWire（登録商標）バス、FireWire（登録商標） 800バス、Ethernet（登録商標）バス、AppleTalkバス、Gigabit Ethernet（登録商標）バス、Asynchronous Transfer Modeバス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、またはSerial Attached小型コンピュータシステムインターフェースバス等の外部通信バスとの間のブリッジであってもよい。
【０１９６】
図１２Ｂおよび図１２Ｃに示される種類の演算装置１２００は、通常、タスクのスケジューリングおよびシステムリソースへのアクセスを制御するオペレーティングシステムの制御により作動する。演算装置１２００は、任意のバージョンのMICROSOFT WINDOWS（登録商標）オペレーティングシステム、リリースが異なるUNIX（登録商標）およびLINUX（登録商標）オペレーティングシステム、Macintoshコンピュータ用の任意のバージョンのMAC OS、任意の内蔵オペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の独占的オペレーティングシステム、携帯型演算装置用の任意のオペレーティングシステム、または、演算装置で実行可能、かつ本明細書に記載の演算を実行可能な、任意の他のオペレーティングシステム等の任意のオペレーティングシステムを実行することができる。代表的なオペレーティングシステムには、限定するものではないが、WINDOWS（登録商標） 3.x、WINDOWS（登録商標） 95、WINDOWS（登録商標） 98、WINDOWS（登録商標） 2000、WINDOWS（登録商標） NT 3.51、WINDOWS（登録商標） NT 4.0、WINDOWS（登録商標） CE、WINDOWS（登録商標） XP、WINDOWS（登録商標） 7、WINDOWS（登録商標） 8、およびWINDOWS（登録商標） VISTA（すべてMicrosoft Corporation（ワシントン州、レドモンド）により製造）、MAC OS（Apple Inc.（カリフォルニア州、クパチーノ）により製造）、OS/2（International Business Machines（ニューヨーク州、アーモンク）により製造）、および自由に利用可能なオペレーティングシステム、LINUX（登録商標）（Caldera Corp.（ユタ州、ソルトレークシティ）により販売）、Linus改良型オペレーティングシステム、Red Hat Enterprise Linux（登録商標）（Red Hat, Inc.（ノースカロライナ州、ローリー）により販売）、自由に利用可能なオペレーティングシステム、Ubuntu（Canonical Ltd.（イギリス、ロンドン）により販売）、または、特に、任意の種類および／または形態のUnix（登録商標）オペレーティングシステムが含まれる。
【０１９７】
上述したように、演算装置１２００は、ポータブル通信装置、メディア装置、ゲーミングシステム、携帯型演算装置、または、通信可能であり、本明細書に記載の演算を行うのに十分なプロセッサ電力および記憶容量を有する任意の種類および／または形態の演算装置、通信装置、またはメディア装置であってもよい。演算装置１２００は、例として挙げるものであって、限定するものではないが、Apple Inc.（カリフォルニア州、クパチーノ）、Google/Motorola Div.（フォートワース、テキサス州）、京セラ（日本、京都）、Samsung Electronics Co., Ltd.（韓国、ソウル）、Nokia（フィンランド）、Hewlett-Packard Development Company, L.P.および／または、Palm, Inc.（カリフォルニア州、サニーベール）、Sony Ericsson Mobile Communications AB（スウェーデン、ルンド）、またはResearch In Motion Limited（カナダ、オンタリオ州、ウォータールー）により製造されているような携帯型装置であってもよい。さらに他の実施形態において、演算装置１２００は、スマートフォン、Pocket PC、Pocket PC Phone、またはMicrosoft Windows（登録商標） Mobile Softwareに対応した他のポータブル携帯型装置である。
【０１９８】
いくつかの実施形態において、演算装置１２００はデジタルオーディオプレイヤーである。これらの実施形態の一つにおいて、演算装置１２００は、Apple IPOD（登録商標）、IPOD（登録商標） Touch、IPOD（登録商標） NANO、およびIPOD（登録商標） SHUFFLEシリーズ（Apple Inc.により製造）等のデジタルオーディオプレイヤーである。これらの実施形態の他の実施形態において、上記デジタルオーディオプレイヤーは、ポータブルメディアプレイヤーとして、および大容量記憶装置として機能してもよい。他の実施形態において、演算装置１２００は、例として挙げるものであって、限定するものではないが、Samsung Electronics America （ニュージャージー州、リッジフィールドパーク）、またはCreative Technologies Ltd.（シンガポール）により製造されているようなデジタルオーディオプレイヤーである。さらに他の実施形態において、演算装置１２００は、限定するものではないが、MP3、WAV、M4A/AAC、WMA Protected AAC、AEFF、Audibleオーディオブック、Apple Losslessオーディオファイル形式、および、.mov、.m4v、および.mp4 MPEG-4（H.264/MPEG-4 AVC）ビデオファイル形式を含むファイル形式に対応するポータブルメディアプレイヤーまたはデジタルオーディオプレイヤーである。
【０１９９】
いくつかの実施形態において、演算装置１２００は、デジタルオーディオプレイヤーまたはポータブルメディアプレイヤーと組み合わせた携帯電話等の、装置の組み合わせを備えている。これらの実施形態の一つにおいて、演算装置１２００は、Google/Motorolaシリーズのデジタルオーディオプレイヤーと携帯電話とを組み合わせた装置である。これらの実施形態の他の実施形態において、演算装置１２００は、iPhone（登録商標）スマートフォンシリーズ（Apple Inc.により製造）である。これらの実施形態のさらに他の実施形態において、演算装置１２００は、Android（登録商標）オープンソース携帯電話プラットフォーム（Open Handset Allianceにより販売）を実行する装置であり、例えば、演算装置１２００は、Samsung Electronics（韓国、ソウル）またはHTC Headquarters（中華民国、台湾）により提供されているような装置であってもよい。他の実施形態において、演算装置１２００は、例として挙げるものであって、限定するものではないが、iPad（登録商標）シリーズ（Apple Inc.により製造）、PlayBook（Research In Motionにより製造）、Cruzシリーズ（Velocity Micro, Inc.（バージニア州、リッチモンド）により製造）、FolioおよびThriveシリーズ（Toshiba America Information Systems Inc.（カリフォルニア州、アービン）により製造）、Galaxyシリーズ（Samsungにより製造）、HP Slateシリーズ（Hewlett-Packardにより製造）、およびStreakシリーズ（Dell, Inc.（テキサス州、ラウンドロック）により製造）等のタブレット装置である。
【０２００】
図１２Ｄのブロック図を参照すると、複数のネットワークによりホスティングおよびデリバリーサービスが提供されるシステムの一実施形態が開示されている。概略すると、上記システムは、クラウドサービスホスティングインフラストラクチャ１２８０、サービスプロバイダデータセンター１２８２、および情報技術（ＩＴ）ネットワーク１２８４を含む。
【０２０１】
一実施形態において、データセンター１２８２は、限定するものではないが、サーバ（例えば、アプリケーションサーバ、ファイルサーバ、データベース、およびバックアップサーバを含む）、ルータ、スイッチ、および通信機器等の演算装置を含む。他の実施形態において、クラウドサービスホスティングインフラストラクチャ１２８０は、限定するものではないが、ストレージシステム、データベース、アプリケーションサーバ、デスクトップサーバ、ディレクトリサービス、ウェブサーバ、および、遠隔地に配置されたハードウェアプラットフォームおよびソフトウェアプラットフォームにアクセスするためのサービスへのアクセスを提供する。さらに他の実施形態において、クラウドサービスホスティングインフラストラクチャ１２８０はデータセンター１２８２を含む。しかしながら、他の実施形態において、クラウドサービスホスティングインフラストラクチャ１２８０は、第三者データセンター１２８２によって提供されるサービスに依存する。いくつかの実施形態において、ＩＴネットワーク１２０４ｃは、メールサービスおよびウェブサービス等のローカルサービスを提供してもよい。他の実施形態において、ＩＴネットワーク１２０４ｃは、遠隔地に配置されたプリントサーバ，データベース、アプリケーションサーバ、デスクトップサーバ、ディレクトリサービス、およびウェブサーバのローカルにキャッシュされたバージョン等の、遠隔地に配置されたサービスのローカルバージョンを提供してもよい。他の実施形態において、追加のサーバは、限定するものではないが、インフラストラクチャサービスプロバイダ、アプリケーションサービスプロバイダ、プラットフォームサービスプロバイダ、ツールサービスプロバイダ、およびデスクトップサービスプロバイダを含む第三者サービスプロバイダによって提供されるような、クラウドサービスホスティングインフラストラクチャ１２８０、データセンター１２８２、または他のネットワーク全体に存在していてもよい。
【０２０２】
一実施形態において、クライアント１２０２のユーザは、遠隔地サーバ１２０６ａにより提供されるサービスにアクセスする。例えば、クライアント１２０２ａのユーザがリモートサーバ１２０６ａ上で実行される仮想マシン上で実行されるアプリケーションへアクセスすることを、企業内ＩＴネットワーク１２８４の管理者が決定してもよい。他の例としては、クライアント１２０２ｂの個人のユーザが、遠隔地サーバ１２０６（Ｅメール、ファックス、音声、または他のコミュニケーションサービス、データバックアップサービス、または他のサービス等）により消費者に提供されるリソースを使用してもよい。
【０２０３】
図１２Ｄに示しているように、データセンター１２８２およびクラウドサービスホスティングインフラストラクチャ１２８０は、データセンター１２８２およびクラウドサービスホスティングインフラストラクチャ１２８０が対応している個人または組織から遠隔地に配置されている。例えば、データセンター１２８２は第１ネットワーク１２０４ａ上にあってもよく、クラウドサービスホスティングインフラストラクチャ１２８０は第２ネットワーク１２０４ｂ上にあってもよく、ＩＴネットワーク１２８４は別の第３ネットワーク１２０４ｃである。他の実施形態において、データセンター１２８２およびクラウドサービスホスティングインフラストラクチャ１２８０は第１ネットワーク１２０４ａ上にあり、ＩＴネットワーク１２８４は別の第２ネットワーク１２０４ｃである。さらに他の実施形態において、クラウドサービスホスティングインフラストラクチャ１２８０は第１ネットワーク１２０４ａ上にあり、データセンター１２８２およびＩＴネットワーク１２８４が第２ネットワーク１２０４ｃを形成する。図１Ｄは、１つのサーバ１２０６ａ、１つのサーバ１２０６ｂ、１つのサーバ１２０６ｃ、２つのクライアント１２０２、および３つのネットワーク１２０４のみを示しているが、上記システムは当該要素の任意の要素を複数、または当該要素の各要素を複数備えていてもよいことを理解すべきである。図１２Ａ〜図１２Ｃに関連して既述したように、サーバ１２０６、クライアント１２０２、およびネットワーク１２０４が備えられていてもよい。
【０２０４】
したがって、いくつかの実施形態において、ＩＴインフラストラクチャは、個人または企業が所有、管理するネットワーク等の第１ネットワークから、所有者または管理者が第１ネットワークとは別でもよい第２ネットワークに伸びていてもよい。第２ネットワークが提供するリソースは、「クラウド上」にあると言ってもよい。クラウドにある要素は、限定するものではないが、記憶装置、サーバ、データベース、コンピューティング環境（仮想マシン、サーバ、およびデスクトップを含む）、およびアプリケーションを含んでいてもよい。例えば、ＩＴネットワーク１２８４は、遠隔地データセンター１２８２を使用して、サーバ（例えば、アプリケーションサーバ、ファイルサーバ、データベース、およびバックアップサーバを含む）、ルータ、スイッチ、および通信機器を保存してもよい。データセンター１２８２は、ＩＴネットワーク１２８４が所有、管理していてもよく、または、第三者サービスプロバイダ（例えば、クラウドサービスホスティングインフラストラクチャプロバイダを含む）が別のデータセンター１２８２へのアクセスを提供してもよい。他の例としては、図３に関連して上述したマシン１０２ａが第１エンティティ（例えば、クラウドサービスホスティングインフラストラクチャプロバイダ１２８０）によって所有または管理され、図３に関連して上述したマシン１０２ｂが、クライアント１２０２が（例えば、１２８０、１２８２、または１２８４のいずれかによって提供されるリソースを使用して）直接または間接的に接続する第２エンティティ（例えば、サービスプロバイダデータセンター１２８２）によって所有または管理されてもよい。
【０２０５】
いくつかの実施形態において、消費者のためにコンピューティングインフラストラクチャを提供する１つ以上のネットワークは、クラウドと称される。これらの実施形態の一つにおいて、第１ネットワークのユーザが少なくとも第２ネットワーク（リソースのホスティングが可能な、抽象化され、拡張可能な、管理されたコンピューティングリソースのプールを含む）にアクセスするシステムは、クラウドコンピューティング環境と称されてもよい。これらの実施形態の他の実施形態において、リソースは、限定するものではないが、仮想化技術、データセンターリソース、アプリケーション、および管理ツールを含んでいてもよい。いくつかの実施形態において、インターネットベースのアプリケーション（「サービスとしてのソフトウェア」モデルを介して提供してもよい）は、クラウドベースリソースと称されてもよい。これらの実施形態の他の実施形態において、遠隔地サーバ、仮想マシン、またはブレードサーバのブレード等のコンピューティングリソースをユーザに提供するネットワークは、コンピュートクラウドまたは「サービスとしてのインフラストラクチャ」プロバイダと称されてもよい。さらに他の実施形態において、ストレージエリアネットワーク等のストレージリソースを提供するネットワークは、ストレージクラウドと称されてもよい。他の実施形態において、リソースはローカルネットワークでキャッシュされ、クラウドに保存されてもよい。
【０２０６】
いくつかの実施形態において、複数のリモートマシン１２０６の一部またはすべては、例として挙げるものであって、限定するものではないが、Amazon Web Services LLC（ワシントン州、シアトル）、Rackspace US, Inc.（テキサス州、サンアントニオ）、Microsoft Corporation（ワシントン州、レドモンド）、およびGoogle Inc.（カリフォルニア州、マウンテンビュー）等の第三者企業からリースまたはレンタルしてもよい。他の実施形態において、すべてのホスト１２０６は、限定するものではないが、Amazon Web Services LLC、Rackspace US, Inc.、Microsoft、およびGoogleを含む第三者企業によって所有、管理される。
【０２０７】
スパース分散表現へデータ項目をマッピングする方法およびシステムのいくつかの実施形態について説明したため、本開示の概念を採用している他の実施形態を使用してもよいことは、当業者には明らかであろう。したがって、本開示は、特定の実施形態に限定されるべきではなく、以下の請求項に示した精神および範囲によってのみ限定されるべきである。
【図１Ａ】
0006646650.tif 000002
【図１Ｂ】
0006646650.tif 000003
【図１Ｃ】
0006646650.tif 000004
【図２】
0006646650.tif 000005
【図３】
0006646650.tif 000006
【図４】
0006646650.tif 000007
【図５】
0006646650.tif 000008
【図６Ａ】
0006646650.tif 000009
【図６Ｂ】
0006646650.tif 000010
【図６Ｃ】
0006646650.tif 000011
【図７Ａ】
0006646650.tif 000012
【図７Ｂ】
0006646650.tif 000013
【図８Ａ】
0006646650.tif 000014
【図８Ｂ】
0006646650.tif 000015
【図９Ａ】
0006646650.tif 000016
【図９Ｂ】
0006646650.tif 000017
【図１０Ａ】
0006646650.tif 000018
【図１０Ｂ】
0006646650.tif 000019
【図１０Ｃ】
0006646650.tif 000020
【図１０Ｄ】
0006646650.tif 000021
【図１１Ａ】
0006646650.tif 000022
【図１１Ｂ】
0006646650.tif 000023
【図１２Ａ】
0006646650.tif 000024
【図１２Ｂ】
0006646650.tif 000025
【図１２Ｃ】
0006646650.tif 000026
【図１２Ｄ】
0006646650.tif 000027
【図１３】
0006646650.tif 000028
【図１４Ａ】
0006646650.tif 000029
【図１４Ｂ】
0006646650.tif 000030