(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-08
(54)【発明の名称】意味マップの生成におけるデータ項目フィンガープリントの再利用のための方法およびシステム
(51)【国際特許分類】
G06F 16/35 20190101AFI20231201BHJP
【FI】
G06F16/35
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023529041
(86)(22)【出願日】2021-11-18
(85)【翻訳文提出日】2023-05-16
(86)【国際出願番号】 EP2021082138
(87)【国際公開番号】W WO2022106538
(87)【国際公開日】2022-05-27
(32)【優先日】2020-11-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517035980
【氏名又は名称】コルティカル.アイオー アーゲー
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】デ ソーサ ウェッバー,フランツィスコ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FA03
5B175HB03
(57)【要約】
第1の二次元距離空間内においてクラスタ化された第1の一組のデータ文書内のデータ項目の分散表現を使用して、第2の二次元距離空間において分散表現のクラスタを生成するための方法は、参照マップ生成器によって、一組のデータ文書を第1の二次元距離空間においてクラスタ化し、意味マップを生成することを含む。パーサは、前記一組のデータ文書中に存在するデータ項目の一覧を生成する。表現生成器は、各データ項目に関する存在情報を使用して分散表現を生成する。スパース化モジュールはスパース度の最大レベルの識別情報を受信し、分散表現内のセットビットの総数を減少させる。参照マップ生成器は、第2の二次元距離空間において、SDRデータベースから取り出され、第2の少なくとも1つの基準に従って選択されたSDRのセットをクラスタ化し、第2の意味マップを生成する。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
第1の二次元距離空間内においてクラスタ化された第1の一組のデータ文書中のデータ項目の分散表現を使用して、第2の二次元距離空間において分散表現のクラスタを生成するための方法であって、
少なくとも1つの基準に従って選択された一組のデータ文書を、演算装置上で実行する参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップ、
前記意味マップによって、座標ペアを前記一組のデータ文書の各々と関連付けるステップ、
前記演算装置上で実行するパーサによって、前記一組のデータ文書中に存在するデータ項目の一覧を生成するステップ、
前記演算装置上で実行する表現生成器によって、前記一覧における各データ項目について、(i)前記データ項目が存在するデータ文書の数、(ii)各データ文書における前記データ項目の存在数、および(iii)前記データ項目が存在する各データ文書に関連付けられた前記座標ペア、を含む存在情報を決定するステップ、
前記表現生成器によって、前記存在情報を使用して、各データ項目についての分散表現を生成するステップ、
前記演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受信するステップ、
前記スパース化モジュールによって、スパース度の前記最大レベルに基づいて、各分散表現内のセットビットの総数を減少させ、基準となるフィルグレードを有するスパース分散表現(SDR)を生成するステップ、
前記SDRの各々をSDRデータベースに記憶するステップ、および
前記SDRデータベースから取り出され、第2の少なくとも1つの基準に従って選択されたSDRのセットを前記演算装置上で実行する前記参照マップ生成器によって、第2の二次元距離空間においてクラスタ化し、第2の意味マップを生成するステップを含む、
方法。
【請求項2】
SDRの前記セットは、前記SDRが第2の一組のデータ文書と関連付けられるという指示を全文検索システムから受信することに基づいて選択される、請求項1に記載の方法。
【請求項3】
全文検索システムに、前記第2の一組のデータ文書中の少なくとも1つのデータ文書の少なくとも1つのスニペットを提供するステップ、
前記全文検索システムから、前記提供されたスニペットを含む前記一組のデータ文書における一致するデータ文書の座標ペアの一覧を受信するステップ、及び
前記SDRデータベースから、座標ペアの前記一覧中の前記座標ペアのそれぞれと関連付けられる少なくとも1つのSDRを取り出すステップを、更に含む、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、意味マップの生成におけるデータ項目フィンガープリントの再利用のための方法およびシステムに関する。
【発明の概要】
【発明が解決しようとする課題】
【0002】
従来のシステムでは、自己組織化マップの利用は、通常、種類によるデータ文書のクラスタ化、そして、未確認のデータ文書がクラスタ化される領域の予測、あるいは、使用されたデータ文書集合のクラスタ構造分析に限定される。そのような従来のシステムは、通常、データ文書の構成データ項目の明示的な意味定義のための「分散意味投影マップ」として得られた「クラスタ化マップ」を使用する機能を提供しない。さらに、従来のシステムは、典型的には、自己組織化マップを使用するための方法を実行するために、従来のプロセッサベースのコンピューティングを使用する。加えて、従来のシステムは以前に生成されたデータの表現を再利用するための機能を提供せず、例えば、システムは、通常、何百万ものデータ文書のうちのどのサブセットを意味マップの生成に使用するかに関して選択を行い、何百万ものデータ文書にわたってデータ項目のデータ表現を生成するための粒度と実用的能力との間の決定を強制する。したがって、後続の意味マップを生成するときに、データ表現を生成し、生成されたデータ表現を再利用することができるシステムが必要とされている。
【課題を解決するための手段】
【0003】
一態様では、第1の二次元距離空間内にクラスタ化された第1の一組のデータ文書中のデータ項目の分散表現を使用して、第2の二次元距離空間において分散表現のクラスタを生成するための方法は、演算装置上で実行する参照マップ生成器によって、少なくとも1つの基準に従って選択された一組のデータ文書を二次元距離空間内でクラスタ化し、意味マップを生成することを含む。本方法は、意味マップによって、座標ペアを、一組のデータ文書の各々と関連付けることを含む。この方法は、演算装置上で実行するパーサによって、一組のデータ文書内に存在するデータ項目の一覧を生成することを含む。本方法は、演算装置上で実行する表現生成器によって、一覧内の各データ項目について、(i)データ項目が存在するデータ文書の数、(ii)各データ文書におけるデータ項目の存在数と、(iii)データ項目が存在する各データ文書に関連付けられた座標ペアと、を含む存在情報を決定することを含む。本方法は、表現生成器によって、存在情報を使用して、各データ項目についての分散表現を生成することを含む。本方法は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受信することを含む。本方法は、スパース化モジュールによって、各分散表現内のセットビットの総数を、スパース度の最大レベルに基づいて減少させ、基準となるフィルグレードを有するスパース分散表現(SDR)を生成することを含む。本方法は、SDRの各々をSDRデータベースに記憶することを含む。本方法は、演算装置上で実行する参照マップ生成器によって、SDRデータベースから取り出され、第2の少なくとも1つの基準に従って選択されたSDRのセットを第2の二次元距離空間においてクラスタ化し、第2の意味マップを生成することを含む。
【図面の簡単な説明】
【0004】
本明細書の前述および他の目的、態様、構成、および利点は、添付の図面に関連して下記説明を参照することによって、より明白になり、より理解されるであろう。
【
図1A】データ項目をスパース分散表現にマッピングするシステムの一実施形態を示すブロック図である。
【
図1B】データ項目をスパース分散表現にマッピングする際に使用する意味マップを生成するシステムの一実施形態を示すブロック図である。
【
図1C】一組のデータ文書中のデータ項目のスパース分散表現を生成するシステムの一実施形態を示すブロック図である。
【
図2】データ項目をスパース分散表現にマッピングする方法の一実施形態を示すフローチャートである。
【
図3】意味マップ上にクラスタ化されたデータ文書を用いて生成されたデータ項目のスパース分散表現に対して演算を実行するシステムの一実施形態を示すブロック図である。
【
図4】データ項目間の意味的類似性のレベルを識別するための方法の一実施形態を示すフローチャートである。
【
図5】ユーザ提供データ項目と一組のデータ文書内のデータ項目との間の意味的類似性のレベルを識別するための方法の一実施形態を示すフローチャートである。
【
図6A】全文検索システムと共に使用するために提供されるクエリを拡張するためのシステムの一実施形態を示すブロック図である。
【
図6B】全文検索システムと共に使用するために提供されるクエリを拡張する方法の一実施形態を示すフローチャートである。
【
図6C】全文検索システムと共に使用するために提供されるクエリを拡張する方法の一実施形態を示すフローチャートである。
【
図7A】トピックベースの情報を全文検索システムに提供するシステムの一実施形態を示すブロック図である。
【
図7B】全文検索システムにトピックベースの文書を提供する方法の一実施形態を示すフローチャートである。
【
図8A】インデックス付けを改善する全文検索システムに、文書に関連するキーワードを提供するシステムの一実施形態を示すブロック図である。
【
図8B】インデックス付けを改善する全文検索システムに、文書に関連するキーワードを提供する方法の一実施形態を示すフローチャートである。
【
図9A】テキスト文書の検索機能を提供するシステムの一実施形態を示すブロック図である。
【
図9B】テキスト文書に対する検索機能を提供する方法の一実施形態を示すフローチャートである。
【
図10A】全文検索システム内でユーザの専門知識をマッチングさせるシステムの一実施形態を示すブロック図である。
【
図10B】全文検索システム内でユーザの専門知識をマッチングさせるシステムの一実施形態を示すブロック図である。
【
図10C】ユーザ専門知識をユーザ専門知識のリクエストと照合する方法の一実施形態を示すフローチャートである。
【
図10D】全文検索システムから受信したクエリ結果のユーザプロファイルベースの意味的ランク付けのための方法の一実施形態を示すフローチャートである。
【
図11A】医療診断サポートを提供するためのシステムの一実施形態を示すブロック図である。
【
図11B】医療診断サポートを提供する方法の一実施形態を示すフローチャートである。
【
図12A】本明細書で説明する方法およびシステムに関連して有用なコンピュータの実施形態を示すブロック図である。
【
図12B】本明細書で説明する方法およびシステムに関連して有用なコンピュータの実施形態を示すブロック図である。
【
図12C】本明細書で説明する方法およびシステムに関連して有用なコンピュータの実施形態を示すブロック図である。
【
図12D】複数のネットワークがデータホスティングおよび配信サービスを提供するシステムの一実施形態を示すブロック図である。
【
図13】異言語スパース分散表現を生成するシステムの一実施形態を示すブロック図である。
【
図14A】異言語間のスパース分散表現間の類似性を決定する方法の一実施形態を示すフローチャートである。
【
図14B】異言語間のスパース分散表現間の類似性を決定する方法の一実施形態を示すフローチャートである。
【
図15】ストリーミングされた文書のセット内のフィルタリング基準とデータ項目との間の類似性のレベルを識別するためのシステムの一実施形態を示すブロック図である。
【
図16】ストリーミングされた文書のセット内のフィルタリング基準とデータ項目との間の類似性のレベルを識別するためのシステムの一実施形態を示すブロック図である。
【
図17A】複数のバイナリベクトル間の類似性のレベルを識別するための方法の一実施形態を示すブロック図である。
【
図17B】複数のバイナリベクトル間の類似性のレベルを識別するための方法の一実施形態を示すフローチャートである。
【
図18A】複数のデータ表現間の類似性のレベルを識別するためのシステムの一実施形態を示すブロック図である。
【
図18B】複数のデータ表現間の類似性のレベルを識別する方法の一実施形態を示すフローチャートである。
【
図19】複数のデータ表現間の類似性のレベルを識別する際に使用される複合データ表現の遅延スパース化のための方法の一実施形態を示すフロー図である。
【
図20】データ項目のフラクタルフィンガープリンティングのための方法の一実施形態を示すフロー図である。
【発明を実施するための形態】
【0005】
いくつかの実施形態では、本明細書で説明される方法およびシステムは、複数のデータ表現間の類似性のレベルを識別するための機能を提供する。これらの実施形態のうちの1つでは、識別情報は、スパース分散表現(sparse distributed representation)(SDR)または任意の他の種類のロングバイナリベクトル間の決定された距離に基づく。
【0006】
図1Aのブロック図を参照すると、スパース分散表現へデータ項目をマッピングするシ
ステムの一実施形態が開示されている。概略すると、システム100は、エンジン101と、マシン102Aと、一組のデータ文書104(データ文書の集合104)と、参照マップ生成器106と、意味マップ108と、パーサおよび前処理モジュール110と、データ項目一覧112と、表現生成器114と、スパース化モジュール116と、1つ以上のスパース分散表現(SDR)118と、スパース分散表現(SDR)データベース120と、全文検索システム122とを含む。いくつかの実施形態において、エンジン101は、
図1A~1C、および
図2に関連して記載されたすべての要素および機能を示す。
【0007】
図1Aを参照してより詳細に説明すると、上記システムは、一組のデータ文書104を含む。一実施形態において、一組のデータ文書104の文書は、テキストデータを含む。他の実施形態において、一組のデータ文書104の文書は、物理的システムの種々の値を含む。さらに他の実施形態において、一組のデータ文書104の文書は、患者の医療記録を含む。他の実施形態において、一組のデータ文書104の文書は、化学に基づく情報を含む(例えば、DNA配列、タンパク質配列、化学式)。さらに他の実施形態において、一組のデータ文書104の各文書は、楽譜を含む。データ文書104内のデータ項目は、単語、数値、医療分析、医療測定、および音符であってもよい。上記データ項目は、一連の任意の種類(例えば1つ以上の数字を含む列)であってもよい。第1の一組のデータ文書104のデータ項目は、第2の一組のデータ文書104のデータ項目の言語と異なる言語であってもよい。いくつかの実施形態において、一組のデータ文書104は、歴史的ログデータを含む。本明細書で使用される「文書」はデータ項目の集合を示してもよく、それぞれのデータ項目は、同じシステムから存在するシステム変数に対応する。いくつかの実施形態において、そのような文書のシステム変数は、同時に抽出される。
【0008】
上述したように、本明細書における「データ項目」というタームの使用は、文字列データとしての単語、数値データとしてのスカラ値、数値データまたは分類データとしての医療診断および医療分析、音符、およびすべて同じ「システム」から存在する任意の種類の変数を含む。「システム」は、川、技術的装置、または生細胞もしくはヒト生物などの生物学的実体など、自然または人工の任意の物理的システムであってよい。上記システムは、言語やウェブサーバのログデータ等の「概念体系」であってもよい。上記言語は、英語や中国語等の自然言語であってもよく、あるいはJAVA(登録商標)またはC++プログラムコード等の人工言語であってもよい。上述したように、「データ文書」というタームの使用は、一組の「データ項目」を含む。これらのデータ項目は、基礎となる「システム」の意味によって相互依存し得る。このグループ化は、全てのデータ項目値が同時にサンプリングされる場合、時間ベースのグループであることができ、例えば、自動車のエンジンから来る測定データ項目は、毎秒サンプリングされ、単一のデータ文書にグループ化されることができる。上記の分類は、「システム」自体によって特徴付けられる論理構造に沿って行うことができる。例えば、自然言語の場合、単語データ項目を文として分類することができ、音楽の場合、音符に対応するデータ項目を拍子で分類することができる。これらのデータ文書に基づいて、下記により詳細に説明するように、「システム」の意味マップを生成するために、上記の方法によって(または当業者によって理解される他の方法に従って)、文書ベクトルを生成することができる。この「システム」を利用して、下記により詳細に説明するように、意味マップデータ項目SDRを生成することができる。下記に記載するすべての方法およびシステムは、すべての種類のデータ項目SDRに用いられてもよい。
【0009】
一実施形態において、ユーザは、少なくとも1つの基準に従って、一組のデータ文書104を選択する。例えば、ユーザは、データ文書が特定の主題に関するかどうかに基づいて一組のデータ文書104に追加するデータ文書を選択してもよい。他の例としては、一組のデータ文書104は、システム100が利用される意味集合を表している。一実施形態において、ユーザは、システム100の人間のユーザである。他の実施形態において、マシン100は、一組のデータ文書104中のデータ文書を選択するために機能を実行する。
【0010】
システム100は、参照マップ生成器106を含む。一実施形態において、参照マップ生成器106は自己組織化マップである。他の実施形態において、参照マップ生成器106は生成位相マップである。さらに他の実施形態において、参照マップ生成器106は弾性マップである。他の実施形態において、参照マップ生成器106はニューラルガス型マップである。さらに他の実施形態において、参照マップ生成器106は、あらゆる種類の、競争的、学習ベース、教師なし学習、次元削減の機械学習法である。他の実施形態において、参照マップ生成器106は、任意の計算法である。当該任意の計算法は、一組のデータ文書104を受け取り、当該一組のデータ文書104から、文書を表現するクラスタ化された点が存在する二次元距離空間を生成することができる。さらに他の実施形態において、参照マップ生成器106は、任意のコンピュータプログラムである。当該任意のコンピュータプログラムは、一組のデータ文書104にアクセスして、当該一組のデータ文書104から、文書を表現するクラスタ化された点が存在する二次元距離空間を生成することができる。本明細書では典型的には二次元距離空間を形成するものとして記載されているが、いくつかの実施形態において、参照マップ生成器106は、n次元距離空間を形成する。いくつかの実施形態において、参照マップ生成器106はソフトウェアにおいて実施される。他の実施形態において、参照マップ生成器106はハードウェアにおいて実施される。
【0011】
二次元距離空間は、意味マップ108と称されてもよい。意味マップ108は、関連する距離尺度を有する任意のベクトル空間であってもよい。
【0012】
一実施形態において、パーサおよび前処理モジュール110は、データ項目一覧112を生成する。他の実施形態において、パーサおよび前処理モジュール110は、表現生成器114の一部を形成する。いくつかの実施形態において、パーサおよび前処理モジュール110は、ソフトウェアプログラムの少なくとも一部として実行される。他の実施形態において、パーサおよび前処理モジュール110は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、パーサおよび前処理モジュール110は、マシン102で実行される。いくつかの実施形態において、パーサおよび前処理モジュール110は、データの種類に適するように特殊化されてもよい。他の実施形態において、複数のパーサおよび前処理モジュール110が、データの種類に適するように与えられる。
【0013】
一実施形態において、表現生成器114は、データ項目の分散表現を生成する。いくつかの実施形態において、表現生成器114は、ソフトウェアプログラムの少なくとも一部として実行される。他の実施形態において、表現生成器114は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、表現生成器114は、マシン102で実行される。
【0014】
一実施形態において、スパース化モジュール116は、データ項目のスパース分散表現(SDR)を生成する。当業者ならば理解するだろうように、SDRは大数(2値)ベクトルであってもよい。例えば、SDRは数千の要素を有してもよい。いくつかの実施形態において、スパース化モジュール116によって生成されたSDRの各要素は特定の意味論的意味を有している。これらの実施形態のうちの1つにおいて、関連する計量距離により測定すると、類似の意味論的意味を有するベクトル要素は、意味論的に類似しないベクトル要素よりも互いにより近接している。
【0015】
一実施形態において、表現生成器114は、スパース化モジュール116の機能をもたらす。他の実施形態において、表現生成器114は、別のスパース化モジュール116と通信する。いくつかの実施形態において、スパース化モジュール116は、ソフトウェアプログラムの少なくとも一部として実行される。他の実施形態において、スパース化モジュール116は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、スパース化モジュール116は、マシン102で実行される。
【0016】
一実施形態において、スパース分散表現(SDR)データベース120は、表現生成器114によって生成されたスパース分散表現118を保存する。他の実施形態において、スパース分散表現データベース120は、SDR、およびSDRが表現するデータ項目を保存する。さらに他の実施形態において、SDRデータベース120は、SDRに関連するメタデータを保存する。他の実施形態において、SDRデータベース120は、SDR118を特定する指標(インデックス)を有する。さらに他の実施形態において、SDRデータベース120は、特定のSDR118に意味論的に近似するデータ項目を特定する指標を有する。一実施形態において、SDRデータベース120は、例として挙げるものであって、限定するものではないが、データ項目に関する参照番号、データ項目自体、一組のデータ文書104中のデータ項目に関するデータ項目頻度の特定、データ項目の簡略版、データ項目に関するSDR118の圧縮バイナリ表現、データ項目に関する1つまたは複数のタグ、データ項目が位置(例えばウイーン)を特定するかどうかの指示、データ項目が人物(例えばアインシュタイン)を特定するかどうかの指示のうちの1つ以上を保存してもよい。他の実施形態において、SDRデータベース120は、任意の種類のデータベース、あるいは、任意の形式のデータベースであってよい。
【0017】
SDRデータベース120の例としては、限定するものではないが、構造ストレージ(例えば、NoSQL型データベース、BigTableデータベース)、HBaseデータベース(Apacheソフトウェア財団(The Apache Software Foundation)(メリーランド州、フォレストヒル)より販売)、MongoDBデータベース(10Gen, Inc.(ニューヨーク州、ニューヨーク)より販売)、Cassandraデータベース(The Apache Software Foundationより販売)、および文書ベースデータベースが挙げられる。他の実施形態において、SDRデータベース120は、ODBC対応データベースである。例えば、SDRデータベース120は、Oracle Corporation(カリフォルニア州、レッドウッドシティ)により製造されたORACLEデータベースとして提供されてもよい。他の実施形態において、SDRデータベース120は、Microsoft Corporation(ワシントン州、レドモンド)により製造されたMicrosoft ACCESSデータベース、またはMicrosoft SQLサーバデータベースであってもよい。さらに他の実施形態において、SDRデータベース120は、Oracle Corporationによって配信される無料で利用可能なデータベース製品のMYSQL family等のオープンソースデータベースに基づくカスタム設計データベースであってもよい。
【0018】
ここで
図2のフローチャートを参照すると、スパース分散表現へデータ項目をマッピングする方法200の一実施形態が開示されている。概略すると、方法200は、少なくとも1つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(202)。方法200は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(204)。方法200は、演算装置上で実行されるパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む(206)。方法200は、演算装置上で実行する表現生成器によって、一覧における各データ項目について、以下を含む存在情報を決定することを含む。(i)データ項目が存在するデータ文書の数、(ii)各データ文書におけるデータ項目の存在数、および(iii)データ項目が存在する各データ文書に関連付けられた座標ペア(208)。方法200は、表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む(210)。方法200は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む(212)。方法200は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード(fillgrade)を有するスパース分散表現を生成するステップを含む(214)。
【0019】
ここで、
図1A~1Bに関連して、
図2をより詳細に参照すると、方法200は、少なくとも1つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(202)。一実施形態において、上記少なくとも1つの基準は、一組のデータ文書104中のデータ項目が閾値回数存在することを示す。他の実施形態において、上記少なくとも1つの基準は、一組のデータ文書104中のデータ文書それぞれが、当該データ文書が由来するシステムの状態に関する記述情報を含むべきであることを示す。データ文書の場合、上記少なくとも1つの基準は、データ文書それぞれが、概念的トピック(例えば百科事典的記述)を表現すべきであることを示す。他の実施形態において、上記少なくとも1つの基準は、一組のデータ文書104の特徴の一覧が、所望の情報空間を均等に満たすべきであることを示す。他の実施形態において、上記の少なくとも1つの基準は、一組のデータ文書104が、上記同じシステムから生じていることを示す。データ文書の場合、上記少なくとも1つの基準は、データ文書がすべて同じ言語であることを示す。さらに他の実施形態において、上記少なくとも1つの基準は、一組のデータ文書104が、自然(例えば人間の)言語であることを示す。さらに他の実施形態において、上記少なくとも1つの基準は、一組のデータ文書104が、コンピュータ言語(例えば任意の種類のコンピュータコード)であることを示す。他の実施形態において、上記少なくとも1つの基準は、一組のデータ文書104が、任意の種類あるいは形態の専門ターム、または業界ターム(例えば、医学、法律、科学、自動車、軍事等)を含んでもよい。他の実施形態において、上記少なくとも1つの基準は、一組のデータ文書104が、その組において最大閾値となる文書を有するべきであることを示す。いくつかの実施形態において、人間のユーザが一組のデータ文書104を選択し、マシン120が(例えば、リポジトリ、ディレクトリ、文書データベース、または1つ以上のデータ文書を保存する他のデータ構造(不図示)に対するユーザインターフェースを介して)選択された一組のデータ文書104を人間のユーザから受け取る。
【0020】
一実施形態において、マシン102は、一組のデータ文書104を前処理する。いくつかの実施形態において、パーサおよび前処理モジュール110は、マシン102の前処理機能を提供する。他の実施形態において、マシン102は、一組のデータ文書104のそれぞれを、語や文に分割し、句読点を基準に合わせ、望ましくない文字を削除または変換する。さらに他の実施形態において、マシン102は、タグ付モジュール(不図示)を実行して、1つ以上のメタ情報タグと、一組のデータ文書104における任意のデータ項目またはデータ項目の一部とを関連付ける。他の実施形態において、マシン102は、基本的な概念単位のテキストサイズを標準化し、一組のデータ文書104をそれぞれ同じサイズのテキスト量に分ける。この実施形態において、マシン102は、一組のデータ文書104をスニペットに分割する時、1つ以上の制約を適用してもよい。例えば、限定するものではないが、上記の制約は、一組のデータ文書104の文書は、完全な文のみを含むべきである、一定数の文を含むべきである、限定数のデータ項目を有するべきである、文書ごとに最小数の異なる名詞を有するべきである、分割工程は文書の作成者によるそのままの文章を尊重するべきである、ということを示してもよい。一実施形態において、上記制約の適用は任意である。
【0021】
いくつかの実施形態において、より有用な文書ベクトルを作るために、システム100は、意味論的観点から、一組のデータ文書104中のそれぞれの文書の最も関連するデータ項目を特定するための機能を提供する。これらの実施形態の1つにおいては、パーサおよび前処理モジュール110が上記の機能を提供する。他の実施形態において、参照マップ生成器106は、1つ以上の文書ベクトルを受け取り、受け取った文書ベクトルを用いて意味マップ108を生成する。例えば、システム100は、名詞を特定および選択(例えば、前処理の間、文書内の各データ項目に割り当てられた品詞タグに基づいた特定)するように構成されてもよい。他の例としては、選択された名詞を語幹処理して、ある主なデータ項目例にあるすべての形態変化(例えば、複数変化や格変化)をまとめてもよい。さらに他の例としては、選択された名詞に関してターム頻度‐逆文書頻度(「tf-idf」指数)の統計値を計算し、特定の一組のデータ文書104を考慮してあるデータ文書にとってあるデータ項目がいかに重要かを反映する。文書中のデータ項目数および一組のデータ文書104中のデータ項目数に基づいて係数が算出されてもよい。いくつかの実施形態において、システム100は、文書当たりの所定数のtf-idf最高指数および語幹処理名詞を特定し、意味マップ106をトレーニングするために利用される文書ベクトル(例えば、当業者ならば理解するように、特定のデータ項目がある文書に存在するどうかを示すベクトル)を規定するために、選択された名詞が集合した完全な一覧を生成する。他の実施形態において、一組のデータ文書104の前処理およびベクトル化を行うための機能により、一組のデータ文書104の各文書に対してベクトルが生成される。これらの実施形態の1つにおいては、選択された名詞の一覧におけるデータ項目ごとの識別子および整数は各文書を表す。
【0022】
一実施形態において、マシン102は、前処理された文書を全文検索システム122に提供する。例えば、パースおよび前処理モジュール110がこの機能を提供してもよい。他の実施形態において、全文検索システム122を利用することによって、文書の相互選択が可能となる。例えば、全文検索システム122は、例えば文字の完全一致を使用して、特定のデータ項目を含むすべての文書の検索、または特定のデータ項目を含む元の文書のスニペットの検索を可能とする機能を提供してもよい。さらに他の実施形態において、前処理された各文書(または前処理された文書の断片)は、文書識別子、断片識別子、文書タイトル、文書のテキスト、文書中のデータ項目数、文書のバイト長さ、および分類識別子の少なくとも1つに関連付けられる。他の実施形態において、下記により詳細に説明されるように、意味マップ座標ペアは文書に割り当てられ、そのような座標ペアは、全文検索システム122の前処理された文書に関連付けられてもよい。そのような実施形態において、全文検索システム122は、単一および複合データ項目を受け取り、受け取ったデータ項目を含むすべての一致する文書の座標ペアを返信する機能を提供してもよい。全文検索システム122は、限定するものではないが、以下を含む。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.(バージニア州、マクリーン)により製造されている任意の製品。CoveoSolutions, 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製品ライン。Thunder
stone Software LLC(オハイオ州、クリーブランド)により製造されていThunderstone
製品ライン。IBM Corporation(ニューヨーク州、アーモンク)により製造されているVivisimo(現在のIBM Watson Explorer))。全文検索システムは、本明細書において、企業検索システムと称されてもよい。
【0023】
一実施形態において、参照マップ生成器106は、一組のデータ文書104の文書ベクトルにアクセスし、二次元距離空間にわたって各文書を分散させる。他の実施形態において、参照マップ生成器106は、前処理された一組のデータ文書104にアクセスして、二次元距離空間にわたって各文書を表す点を分散させる。さらに他の実施形態において、分散された点がクラスタ化される。例えば、参照マップ生成器106は、文書の意味内容に基づいて、文書を表わす点の位置を計算してもよい。得られた分散は、特定の一組のデータ文書104の意味論的集合を表す。
【0024】
一実施形態において、参照マップ生成器106は、前処理された一組のデータ文書104の文書ベクトルを使用してトレーニングされる。他の実施形態において、参照マップ生成器106は、(例えば前処理されていない)一組のデータ文書104の文書ベクトルを使用してトレーニングされる。システム100のユーザは、関連技術の当業者によってよく理解されるトレーニング方法を使用して、一組のデータ文書104を用いて参照マップ生成器106をトレーニングしてもよい。
【0025】
一実施形態において、上記のトレーニングプロセスは2つの結果に至る。第1の結果として、一組のデータ文書104の各文書に対して、意味マップ108上の文書を位置付ける座標ペアが特定される。上記座標は、全文検索システム122内の各文書エントリに保存されてよい。第2の結果として、参照マップ生成器106が任意の新しい(未確認の)文書ベクトルを意味マップ108上に位置付けることを可能とするウェイトマップが生成される。参照マップ生成器106のトレーニング後、文書の分散が静止してもよい。しかしながら、最初のトレーニングセットが十分に大きく、記述的である場合、新たなトレーニング文書を加えることで語彙を拡大することができる。意味マップの時間を要する再計算を避けるために新たな文書をマップ上に位置付けてもよい。これは、トレーニングされた重みによって新たな文書の文書ベクトルを変換することで行われる。目的の意味マップ108は、意味マップ108にわたる文書を表現する点の分散を分析することによって改良および向上することができる。過小表現または過大表現されたトピックがある場合、一組のデータ文書104を適宜適合させることが可能であり、次に意味マップ108を再計算することが可能である。
【0026】
したがって、方法200は、少なくとも1つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む。上述したように、そして当業者によって理解されるように、データ文書をクラスタ化するために種々の技術が利用されてもよい。例えば、限定するものではないが、生成位相マップ、成長型自己組織化マップ、弾性マップ、ニューラルガス、ランダムマッピング、潜在的意味索引、主成分分析、または任意の他の次元削減に基づくマッピング方法を利用して実施されてよい。
【0027】
ここで
図1Bのブロック図を参照して、スパース分散表現にデータ項目をマッピングする際に使用される意味マップ108を生成するシステムの一実施形態が開示されている。
図1Bに示すように、マシン102によって受け取られる一組のデータ文書104は、言語定義コーパスと称されてもよい。一組のデータ文書を前処理すると、上記文書は、参照マップ生成器トレーニングコーパスと称されてもよい。上記文書は、ニューラルネットワークトレーニングコーパスと称されてもよい。参照マップ生成器106は、上記一組のデータ文書が位置付けられた意味マップ108を出力として生成するために参照マップ生成器トレーニングコーパスにアクセスする。意味マップ108は、各文書の座標を抽出してもよい。意味マップ108は、上記座標を全文検索システム122に提供してもよい。非限定的な例として、コーパスは、その内容および構造の、協同的修正、拡張、または削除を可能にするアプリケーション(例えば、コンテンツの作成および管理用のウェブアプリケーション)に基づくコーパスを含んでもよい。そのようなアプリケーションは、例として、Wikimedia Foundation(カリフォルニア州、サンフランシスコ)によって提供および実施されている「wiki」および「Wikipedia」百科事典プロジェクトと称されてもよい。コーパスは、任意の種類やタイプの知識ベースを含んでもよい。
【0028】
当業者によって理解されるように、高次元ベクトルを低次元空間(例えば意味マップ108)にマッピングするために任意のタイプまたは形式のアルゴリズムが使用されてもよい。例えば、類似のベクトルが低次元空間において互いに近接して位置するように入力ベクトルをクラスタ化して、その結果、位相的にクラスタ化された低次元マップがもたらされる場合である。いくつかの実施形態において、二次意味写像(マップ)のサイズは、「意味導出」を定義する。この「意味導出」によってデータ項目のスパース分散表現(SDR)のパターンが算出される。このことはより詳細に後述する。例えば、一辺が128の場合、データ項目SDRあたり16Kの特徴の記述性に相当する。参照マップ生成器のサイズが大きいほどトレーニングに時間を要し、SDRが大きいほど任意の手段によって比較または処理するのに時間を要するために演算上の制限が存在することを考慮して、原則として、マップのサイズは自由に選択することができる。他の例として、128×128の大きさのデータ項目のSDRは、「一般的な英語」の一組のデータ文書104に適用された場合、有用であることがわかっている。
【0029】
再び
図2を参照して、方法200は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(204)。上述したように、意味マップ108を生成する時、参照マップ生成器106は、意味マップ108上の点の位置を算出する。上記点は、一組のデータ文書104における一つの文書を表している。次に、意味マップ108は、上記点の座標を抽出してもよい。いくつかの実施形態において、意味マップ108は、抽出した座標を全文検索システム122に送る。
【0030】
図1Cのブロック図を参照して、一組のデータ文書104における複数のデータ項目のそれぞれに対するスパース分散表現を生成するシステムの一実施形態が開示されている。
図1Cに示すように、表現生成器114は、全文検索システム122にクエリを送り、上記クエリに一致する1つ以上のデータ項目を受け取る。表現生成器114は、全文検索システむ122から検索したデータ項目のスパース分散表現を生成してもよい。いくつかの実施形態において、意味マップ108からのデータを利用してSDRを生成することは、生成されたスパース分散表現(例えば、まばらに集まったベクトル)への意味情報の「折り畳み」を含む、と言ってもよい。
【0031】
再び
図2を参照すると、方法200は、演算装置上で実行されるパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む(206)。一実施形態において、パーサおよび前処理モジュール110は、データ項目一覧112を生成する。他の実施形態において、パーサおよび前処理モジュール110は、一組のデータ文書104に直接アクセスして、データ項目一覧112を生成する。さらに他の実施形態において、パーサおよび前処理モジュール110は、(上述したように)前処理された形態の一組のデータ文書104を保存する全文検索システム122にアクセスする。他の実施形態において、パーサおよび前処理モジュール110は、一組のデータ文書104に明確に含まれるデータ項目だけでなく、一般的に有用なデータ項目の組み合わせを含むように、データ項目一覧112を展開する。例えば、パーサおよび前処理モジュール110は、公的に利用可能な集合から検索されるデータ項目のよくある組み合わせ(「悪天候」あるいは「電子商取引」等)にアクセスしてもよい。
【0032】
一実施形態において、パーサおよび前処理モジュール110は、例えば、スペースや句読点を用いてデータ項目一覧112の範囲を定める。他の実施形態において、一覧112において異なる品詞タグのもとで複数存在するデータ項目は異なって処理される(例えば、データ項目"fish"は、名詞として使用される場合、動詞として使用される場合とは異なるSDRを有し、したがって、2つのエントリが含まれる)。他の実施形態において、パーサおよび前処理モジュール110は、データ項目一覧112をSDRデータベース120に提供する。さらに他の実施形態において、表現生成器114は、データ項目一覧112中のデータ項目それぞれに対するSDRを生成するために、保存されたデータ項目一覧112にアクセスする。
【0033】
方法200は、一覧のデータ項目それぞれについて、演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(208)。(i)データ項目が存在するデータ文書の数、(ii)各データ文書においてデータ項目が存在する数、(iii)データ項目が存在するデータ文書それぞれに関連付けられた座標ペア。一実施形態において、表現生成器114は、意味マップ108およびパーサおよび前処理モジュール110によって全文検索システム122に保存されたデータを検索するために全文検索システム122にアクセスし、意味マップ108からのデータを利用して、パーサおよび前処理モジュール110によって一覧にされたデータ項目に関するスパース分散表現を生成する。
【0034】
一実施形態において、表現生成器114は、特定の文字列(例えば、文字、数字、または文字および数字の組み合わせ)を含む各文書に対する座標ペアを検索するために、全文検索システム122にアクセスする。表現生成器114は、データ項目が存在する文書の数を決定するために、検索された座標ペアの数をカウントする。他の実施形態において、表現生成器114は、全文検索システム122から、上記文字列を含む各文書を表すベクトルを検索する。そのような実施形態において、表現生成器114は、ベクトル内のセットビットの数を決定する(例えば、ベクトル内のビット数を1と設定する)。上記セットビットの数は、特定の文書内でデータ項目が出現した回数を示す。表現生成器114は、出現値を決定するために、セットビットの数を追加してもよい。
【0035】
方法200は、表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む(210)。表現生成器114は、分散表現を生成する公知の方法を利用してもよい。いくつかの実施形態において、分散表現は、一組のデータ文書104においてデータ項目が存在する意味文脈を表すパターンを決定するために使用されてもよい。上記パターンにおける座標ペアの空間的分散は、データ項目が存在する文脈における意味領域を反映する。表現生成器114は、データ項目とその分散表現との間の二方向マッピングを生成してもよい。SDRデータベース120は、パターン辞書と称されてもよい。システム100は、パターン辞書を用いて、分散表現に基づいてデータ項目を特定することができる。その逆もまたしかりである。互いに異なる一組のデータ文書104を使用することによって(例えば、異なる制限に基づいて、異なる言語の異なる種類の主題に関する文書を選択する)、または、変化する物理システム、異なる医療分析方法、あるいは変化する音楽様式に由来することによってシステム100が種々のパターン辞書を生成することは当業者ならば理解するであろう。
【0036】
方法200は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む(212)。一実施形態において、人間のユーザが、スパース度の最大レベルの識別情報を提供する。他の実施形態において、スパース度の最大レベルは、所定の閾値に設定される。いくつかの実施形態において、スパース度の最大レベルは、意味マップ108の解像度に依存する。他の実施形態において、スパース度の最大レベルは、参照マップ生成器106の種類に依存する。
【0037】
方法200は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード(fillgrade)を有するスパース分散表現を生成するステップを含む(214)。一実施形態において、スパース化モジュール116は、最終的なSDR118の特定のフィルグレードに導くカウント閾値を設定することによって(例えば、受け取ったスパース度の最大レベルの識別情報を利用することによって)分散表現をスパース化する。これにより、スパース化モジュール116はSDR118を生成する。このことは、一組のデータ文書104におけるデータ項目の意味論的意味の二値フィンガープリントを提供すると言ってもよい。あるいは、一組のデータ文書104におけるデータ項目の意味論的値の二値フィンガープリントを提供すると言ってもよい。また、SDR118は、意味論的フィンガープリントと称されてもよい。スパース化モジュール116は、SDRデータベース120にSDR118を保存する。
【0038】
SDRの生成において、システム100は、ベクトルに1および0を入力する。例えば、システム100は、データ文書がデータ項目を使用する場合はベクトルに1を入力し、データ文書がデータ項目を使用しない場合はベクトルに0を入力する。ユーザは、データ項目の意味論的意味を反映したマップ上の点を示すSDRのグラフ表示を受け取ってもよい(上記グラフ表示は、SDRとも、意味論的フィンガープリントとも、パターンとも称される)。本明細書の記載は、点およびパターンへも言及しうる。しかしながら、当業者であれば、「点」または「パターン」への言及は、SDRベクトル内の設定されたセットビットにも言及している―そのようなグラフ表示の基礎をなす(任意の)データ構造にも言及していることを理解するであろう。
【0039】
いくつかの実施形態において、表現生成器114およびスパース化モジュール116は、複数のデータ項目を1つのSDRに結合してよい。例えば、データ項目の、句、文、段落、または他の組み合わせが個々のSDRの「集合属性(unionproperty)」を反映する1つのSDRに変換される必要がある場合、システム100は、(動的に生成することによって、または事前に生成されたSDRを検索することによって)それぞれ個々のデータ項目をそのSDRに変換し、二値OR演算を使用して個々のSDRから1つの複合SDRを形成してもよい。上記の例を続けると、セットビットの数は、複合SDR中の位置ごとに追加される。一実施形態において、スパース化モジュール116は、基準となるフィルグレードに帰結する閾値を使用して、セットビットの総数を比例的に軽減してもよい。他の実施形態において、スパース化モジュール116は、セットビットの総数を軽減するために重み付けスキームを利用してよい。そのような局所的重み付けスキームは、SDR内の集合の一部であるビットを重視する。それゆえ、SDR内の集合の一部であるビットは、(例えば周囲にセットビットがない)単一の孤立したビットよりも意味論的により重要である。
【0040】
いくつかの実施形態において、本明細書に記載の方法およびシステムを実施することにより、データ文書の集合を文脈によってクラスタ化したマップを単純に生成するシステムが提供されるというのではなく、クラスタ化されたデータ文書を表すマップ上の位置を分析し、上記分析に基づいて、どのデータ文書が特定のデータ項目を含むかを決定し、上記分析を利用して各データ文書の各データ項目に関する詳述を提供する、ことを継続的に行うシステムが提供される。データ項目のスパース分散表現は、意味マップ108から読み出されたデータに基づいて生成される。データ項目のスパース分散表現は、他の機械学習方法をトレーニングする使用に限定される必要はなく、データ項目間の関係を決定するために使用してもよい(データ項目間の類似性を決定する、データ項目をランク付けする、または種々の環境における検索および分析における使用に関して、ユーザが事前に類似していることを把握していないデータ項目を特定する、など)。いくつかの実施形態において、SDRにおける情報の任意の部分を本明細書に記載の方法およびシステムによって変化させることで、任意のデータ項目は、(例えばその意味論的集合において)「意味論的に根拠がある」ことになり、その結果、機械学習、ニューラルネットワーク、または皮質アルゴリズムのいずれを用いなくても明確に比較可能かつ演算可能となる。
【0041】
いくつかの実施形態では、生成されたSDRが追加の意味マップを生成するために使用され得る。例えば、最初の意味マップが広い範囲を有するデータ文書の第1のコーパス上で訓練された実施形態では、SDRが第1のコーパスにも現れるデータ項目を含むデータ文書の第2のより技術的なコーパス内で新しい文書ベクトルを生成する(およびそれらをスパース化する)必要性を回避するために使用され得る。例えば、限定ではないが、データ文書の第1のコーパスが辞書、百科事典、ウィキペディア、または他の一般知識文書のコーパスであり、第2のコーパスがより技術的な文書のセット(限定ではないが、医療、法律、科学、または他の専門の文書のセットなど)を含む場合、第2のコーパス内のデータ項目の少なくともサブセットは第1のコーパス内に現れる可能性が高い。第1のコーパスおよび第2のコーパスの両方に共通のデータ項目の以前に生成されたSDRを使用することは、以前に生成されたSDRが第2のコーパスの文脈において再使用され得るので、システムの速度および効率を改善し得る。第2のコーパスからスニペットを抽出し、それらのうちのどれがSDRデータベース内のSDRに既に関連付けられているかを識別し、第2のコーパスに関連するそれらのSDRに依存することによって、システムは、拡張された機能を提供することができる。例えば、第2のコーパスが何百万ものデータ文書を含む場合、以前に生成された任意のSDRの再利用は、それらのSDRを再生成する必要性を低減し、何百万ものデータ文書の残りの部分に対処する際のシステムの速度を向上させる。そうでなければ、システムが何百万ものデータ文書のどのサブセットを意味マップの生成に使用するかを選択しなければならない状況では、何百万ものデータ文書のためのSDRを生成するための粒度と実用的能力との間の決定を強制し、別々に生成されたSDRを再利用することができるシステムであり、第2のコーパスにおける新しいSDRの生成を、あまり一般的でないデータ項目に集中させ(例えば、「猫」の代わりに「トキソプラズマ症」という、より技術的な用語のためのSDRを生成することに集中させ)、粒度と効率の両方の改善を提供する。したがって、
図20に示されるように、いくつかの実施形態では、本明細書で説明される方法およびシステムが、以前に生成されたSDRの使用に基づいて第2の意味マップを生成するために使用され得る。いくつかの実施形態では、第1のレベルのセマンティック空間が第2のレベルのセマンティック空間を生成するために使用され得、システムは第1のレベルのセマンティック空間へのアクセスを提供することなく、第2のレベルのセマンティック空間へのアクセスを提供し得、それによって、プライバシーを維持しながら、および/または初期コーパスへの意味マップアクセスを制限しながら、初期のコーパスから複数の後続の意味マップを生成する能力を提供する。
【0042】
いくつかの実施形態では、少なくとも部分的に、以前に生成されたSDRの使用に基づいて第2の意味マップを生成すると、他の方法で必要とされるよりも少ない参照の収集のみに基づいて意味マップを生成することを可能にすることができ、一例として、システムは、第2の意味マップを生成するために、他の方法必要とされるデータの10%のみを必要とすることができる。さらに、システムは、後に生成される意味マップ間の関連付けを識別するための機能を提供することができる。例として、第1の意味マップが汎用データ項目のコーパスから生成され、第2の意味マップがあまり一般的に存在しないデータ項目(例えば、「トキソプラズマ症」)を含む第2のコーパスのために生成され、第3の意味マップが第3のコーパスのために生成された場合(例えば、例示の目的のためだけに、「肝炎」などの用語を有するデータ項目を含む)、システムは、第2の意味マップと第3の意味マップとの間の共通性を識別し得、上記の例に続いて、データ項目「肝炎」と「トキソプラズマ症」の間の相関を識別し得る。さらなる例として、第1のコーパスが大規模な研究コレクションである場合、第2の意味マップの解像度または第1の意味マップの文脈のいずれかを失うことなく、新しいトピックがコレクション内で識別され得る。
【0043】
図20を参照すると、フロー図は、第1の二次元距離空間においてクラスタ化された第1の一組のデータ文書中のデータ項目の分散表現を使用して、第2の二次元距離空間において分散表現のクラスタを生成するための方法の一実施形態を示す。方法2000は、少なくとも1つの基準に従って選択された一組のデータ文書を演算装置上で実行する参照マップ生成器によって二次元距離空間内でクラスタ化し、意味マップを生成すること(2002)を含む。一実施形態では、クラスタ化が
図2(202)に関連して上述したように行われる。方法2000は、意味マップによって、座標ペアを一組のデータ文書の各々に関連付けることを含む(2004)。一実施形態では、関連付けは
図2(204)に関連して上述したように行われる。方法2000は、演算装置上で実行するパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成すること(2006)を含む。一実施形態では、生成が
図2(206)に関連して上述したように行われる。方法2000は、演算装置上で実行する表現生成器によって、一覧内の各データ項目について、(i)データ項目が存在するデータ文書の数、(ii)各データ文書内のデータ項目の存在数、および(iii)データ項目が存在する各データ文書に関連付けられた座標ペア、を含む存在情報を決定することを含む(2008)。一実施形態では、決定が
図2(208)に関連して上述したように行われる。方法2000は、表現生成器によって、存在情報を使用して、各データ項目についての分散表現を生成すること(2010)を含む。一実施形態では、生成が
図2(210)に関連して上述したように行われる。方法2000は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別を受信することを含む(2012)。一実施形態では、受信が
図2(212)に関連して上述したように行われる。方法2000は、スパース化モジュールによって、スパース度の最大レベルに基づいて各分散表現内のセットビットの総数を減少させて、基準となるフィルグレードを有するスパース分散表現(SDR)を生成することを含む(2014)。一実施形態では、低減が
図2(214)に関連して上述したように行われる。方法2000は、SDRの各々をSDRデータベースに記憶すること(2016)を含む。
【0044】
方法2000は、SDRデータベースから取り出され、第2の少なくとも1つの基準に従って選択されたSDRのセットを演算装置上で実行する参照マップ生成器によって、第2の二次元距離空間においてクラスタ化し、第2の少なくとも1つの基準に従って選択されたSDRのセットを実行し、第2の意味マップを生成することを含む(2018)。一実施形態では、SDRSのセットが、SDRが第2の一組のデータ文書に関連付けられているという指示を全文検索システムから受信することに基づいて選択される。別の実施形態では、本方法は、第2の一組のデータ文書中の少なくとも1つのデータ文書の少なくとも1つのスニペットを全文検索システムに提供することと、全文検索システムから、提供されたスニペットを含む一組のデータ文書中の一致するデータ文書の座標ペアの一覧を受信することと、座標ペアの一覧中の座標ペアの各々に関連付けられた少なくとも1つのSDRをSDRデータベースから取り出すこととを含んでもよい。取り出されたSDRによって最初にポピュレートされた第2の意味マップを生成すると、システムは追加の用語のための追加のSDRを生成し、それらを第2の意味マップに追加してもよい。
【0045】
ここで
図3のブロック図を参照して、意味マップ上でクラスタ化されたデータ文書におけるデータ項目のスパース分散表現を使用して演算を行うシステムの一実施形態が開示されている。一実施形態において、システム300は、スパース分散表現間の意味論的類似性を決定する機能を含む。他の実施形態において、システム300は、SDRに変換された参照データ項目と照合することにより、SDRに変換されたデータ項目の関連性ランキングを決定する機能を含む。さらに他の実施形態において、システム300は、SDRに変換された参照テキスト要素と照合することにより、SDRに変換されたデータ項目の分類を決定する機能を含む。他の実施形態において、システム300は、SDRに変換された参照データ項目と照合することにより、SDRに変換されたデータ項目のトピックフィルタリングを行う機能を含む。さらに他の実施形態において、システム300は、SDRに変換されたデータ項目からのキーワード抽出を行う機能を含む。
【0046】
概略すると、システム300は、
図1A~1C(
図3におけるエンジン101およびSDRデータベース120)に関連して上述された要素を含み、上記図に関連して上述された機能を提供する。また、システム300は、マシン102A、マシン102b、フィンガープリントモジュール302、類似エンジン304、曖昧性解消モジュール306、データ項目モジュール308、表現エンジン310を含む。一実施形態において、エンジン101はマシン101Aにて実行される。一実施形態において、フィンガープリントモジュール302、類似エンジン304、曖昧性解消モジュール306、データ項目モジュール308、表現エンジン310は、マシン102bにて実行される。
【0047】
図1A~1Cおよび2に関連して
図3を参照すると、システム300はフィンガープリントモジュール302を含む。一実施形態において、フィンガープリンティング
モジュール302は、
図1A~1C、および
図2に関連して上述された、表現生成器114およびスパース化モジュール116を含む。他の実施形態において、フィンガープリントモジュール302は、エンジン101の一部を形成する。一実施形態において、フィンガープリントモジュール302は、ハードウェアプログラムの少なくとも一部として実施される。他の実施形態において、フィンガープリントモジュール302は、ソフトウェアプログラムの少なくとも一部として実施される。さらに他の実施形態において、フィンガープリントモジュール302は、マシン102にて実行される。いくつかの実施形態では、フィンガープリントモジュール302は、データ項目SDRを、SDRデータベース120の一部ではないが(例えば、単語意味フィンガープリントから文書意味フィンガープリントを作成するために)動的に生成されるSDRを用いてリアルタイムで(例えば、本明細書で説明されるスパース化プロセスを介して)意味フィンガープリントに変換するポストプロダクションプロセスを実行するが、そのようなポストプロダクションプロセスは任意である。他の実施形態において、SDRデータベース120においてSDRを有していないデータ項目についてスパース化SDRを生成するために、表現生成器114は直接アクセスされてもよい。そのような実施形態において、表現生成器114は、スパース化モジュール116を自動的に呼出し、自動的にスパース化SDRを生成してもよい。「SDR」、「フィンガープリント」、「意味論的フィンガープリント」というタームは、本明細書において互換使用され、フィンガープリントモジュール302によって生成されたSDR、および表現生成器114を直接的に呼び出すことによって生成されるSDRの両方を指すために使用される。
【0048】
システム300は、類似エンジン304を含む。類似エンジン304は、SDR間の距離を算出し、類似性レベルを決定する機能を提供する。他の実施形態において、類似エンジン304は、ハードウェアモジュールの少なくとも一部として実施される。他の実施形態において、類似エンジン304は、ソフトウェアプログラムの少なくとも一部として実施される。さらに他の実施形態において、類似エンジン304は、マシン102bにて実行される。
【0049】
システム300は、曖昧性解消モジュール306を含む。一実施形態において、曖昧性解消モジュール306は、データ項目の単一のSDR内に組み入れられる文脈部分空間を特定する。したがって、曖昧性解消モジュール306は、単一のデータ項目の異なる意味論的文脈をユーザがより理解しやすくする。いくつかの実施形態において、曖昧性解消モジュール306は、ハードウェアモジュールの少なくとも一部として実施される。いくつかの実施形態において、曖昧性解消モジュール306は、ソフトウェアプログラムの少なくとも一部として実施される。他の実施形態において、曖昧性解消モジュール306は、マシン102bにて実行される。
【0050】
システム300は、データ項目モジュール308を含む。一実施形態では、データ項目モジュール308は、以下でより詳細に説明するように、受信データ項目のセット、すなわち、SDRが受信データ項目のセットのSDRから閾値距離未満であるデータ項目から、最も特徴的なデータ項目を識別する機能を提供する。データ項目モジュール308は、
図8Aに関連して後述されるキーワード抽出モジュール802とともに、または、キーワード抽出モジュール802に代替して、使用される。いくつかの実施形態において、データ項目モジュール308は、ハードウェアモジュールの少なくとも一部として実行される。いくつかの実施形態において、データ項目モジュール308は、ソフトウェアプログラムの少なくとも一部として実行される。実施形態において、データ項目モジュール308は、マシン102bにて実行される。
【0051】
システム300は、表現エンジン310を含む。一実施形態において、より詳細に後述されるように、表現エンジン310は、1以上のデータ項目とともにユーザから受け取ったブール演算子を評価する機能を提供する。ブール演算子を評価することにより、1以上のデータ項目または複数のデータ項目の組み合わせに関する分析をリクエストするうえでユーザに柔軟性を与える。いくつかの実施形態において、表現エンジン310は、ハードウェアモジュールの少なくとも一部として実行される。いくつかの実施形態において、表現エンジン310は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、表現エンジン310は、マシン102bにて実行される。
【0052】
図4のフローチャートを参照して、データ項目間の類似性レベルを特定する方法に係る一実施形態が開示されている。概略すると、方法400は、少なくとも1つの基準に従って選択された一組のデータ文書を、演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(402)。方法400は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(404)。方法400は、演算装置上で実行されるパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む(406)。方法400は、演算装置上で実行する表現生成器によって、一覧における各データ項目について、以下を含む存在情報を決定することを含む。(i)データ項目が存在するデータ文書の数、(ii)各データ文書におけるデータ項目の存在数、および(iii)データ項目が存在する各データ文書に関連付けられた座標ペア(408)。方法400は、表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む(410)。方法400は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む(412)。方法400は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード(fillgrAde)を有するスパース分散表現(SDR)を生成するステップを含む(414)。方法400は、演算装置上で実行される類似エンジンによって、第1データ項目の第1SDRと第2データ項目の第2SDRとの間の距離を決定するステップを含む(416)。方法400は、決定された距離に基づく第1データ項目と第2データ項目との間の意味類似性レベルの識別情報を、類似エンジンによって提供するステップを含む(418)。
【0053】
図1A-1Cおよび2-3に関連して
図4をさらに詳細に参照すると、方法400は、演算装置上で実行する参照マップ存在器によって、二次元距離空間において、少なくとも1つの基準に従って選択された一組のデータ文書をクラスタ化し、意味マップ(402)を生成することを含む。一実施形態において、クラスタ化は、
図2に関連して上記したように行われる(202)。
【0054】
方法400は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(404)。一実施形態において、その関連付けするステップは、
図2に関連して上記したように行われる(204)。
【0055】
方法400は、演算装置上で実行されるパーサによって、一組のデータ文書中に存在するデータ項目の一覧を生成するステップを含む(406)。一実施形態において、その生成ステップは、
図2に関連して上記したように行われる(206)。
【0056】
方法400は、一覧のデータ項目それぞれについて、演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(408)。(i)データ項目が存在するデータ文書の数、(ii)各データ文書においてデータ項目が存在する数、(iii)データ項目が存在するデータ文書それぞれに関連付けられた座標ペア。一実施形態において、その決定ステップは、
図2に関連して上記したように行われる(208)。
【0057】
方法400は、表現生成器によって、上記存在情報を用いて分散表現を生成するステップを含む(410)。一実施形態において、その生成ステップは、
図2に関連して上記したように行われる(210)。
【0058】
方法400は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む(412)。一実施形態において、上記受け取るステップは、
図2に関連して上記したように行われる(212)。
【0059】
方法400は、上記スパース化モジュールによって、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード(fillgrAde)を有するスパース分散表現(SDR)を生成するステップを含む(414)。一実施形態において、その減少ステップは、
図2に関連して上記したように行われる(214)。
【0060】
方法400は、演算装置上で実行される類似エンジンによって、第1データ項目の第1SDRと第2データ項目の第2SDRとの間の距離を決定するステップを含む(416)。一実施形態において、類似エンジン304は、少なくとも2つのSDRの間の距離を演算する。距離の測定は、限定するものではないが、直接オーバーラップ(Direct Overlap)、ユークリッド距離(例えば、人間が定規を使って測定するのと同様にSDRの2点間の普通の距離を決定する)、ジャッカール距離、コサイン類似性を含む。2つのSDR間の距離が短いほど、類似性は高くなる。また、類似性が高いほど、SDRが表現するデータ要素の意味関連性が高くなる(意味畳み込みSDRの場合)。一実施形態において、類似エンジン304は、上記第1SDRおよび上記第2SDRの両方に設定された複数のビット(例えば、両方のSDRが1にセットされた点)の数をカウントする。他の実施形態において、類似エンジン304は、上記第1SDRの第1点を特定し(例えば、任意に選択された、1にセットされた第1ビット)、上記第2SDR内で同じ点を見出し、上記第2SDRにおいて最も近いセットビットを決定する。上記第1SDRにおけるセットビット(上記第1SDRにおける各セットビット)に最も近い第2SDRにおけるセットビットを決定することにより、類似エンジン304は、それぞれの点における距離の合計値を計算し、点の数で除算することにより、総距離を決定することができる。当業者であれば、SDR間の距離を決定するために他のメカニズムを使用できることを理解するであろう。いくつかの実施形態において、類似性は、絶対尺度ではなく、データ項目が有する異なる文脈に基づいて変化しうる。したがって、これらの実施形態の一つにおいて、類似エンジン304は、2つのSDR間のオーバーラップの関係(様相)も分析する。例えば、オーバーラップの関係は、類似演算において重み付け関数を加えるために使用される。他の例として、類似尺度が使用される。
【0061】
方法400は、決定された距離に基づく第1データ項目と第2データ項目との間の意味類似性レベルの識別情報を、類似エンジンによって提供するステップを含む(418)。類似エンジン304は、2つのSDRの間の距離が類似性の最大閾値を超え、したがって、表現されたデータ項目は類似しないと判定することができる。あるいは、類似エンジン304は、2つのSDRの間の距離が類似性の最大閾値を超えておらず、したがって、表現されたデータ項目は類似すると判定することができる。類似エンジン304は、範囲、閾値、あるいは他の計算に基づいて類似性レベルを特定することができる。一実施形態において、SDRが実際にデータ項目の意味を表現する(複数の語義的特徴により表現される)ため、2つのデータ項目間の語義的近さを決定することができる。
【0062】
いくつかの実施形態において、システム100は、ユーザインターフェース(不図示)を提供する。ユーザは、そのユーザインターフェースを用いて、データ項目を入力し、類似性レベルの識別情報を受け取ることができる。上記ユーザインターフェースは、マシン100に直接アクセスするユーザに上記機能を提供することができる。あるいは、上記ユーザインターフェースは、コンピュータネットワークを介してマシン100にアクセスするユーザに上記機能を提供することができる。この例によって、限定するものではないが、ユーザは、上記ユーザインターフェースに対して、「音楽」、「アップル」といった一組のデータ項目を入力することができる。類似エンジン304は上記データ項目を受け取り、
図1A~
図1C、および
図2に関連して既述した上記データ項目についてのSDRを生成する。上記の例を続けると、類似エンジン304は、次に、上述したように2つのSDRを比較してよい。必須ではないが、類似エンジン304は、上記ユーザインターフェースを介してSDRそれぞれの図形的表現をユーザに提供し、それにより、ユーザは、それぞれのデータ項目が語義的にマッピングされる方法(状態)を視覚的に確認することができる(例えば、参照マップ生成器106のトレーニングのために使用される参照用収集物におけるデータ項目の使用を表現する意味マップにクラスタ化された点を見る、など。)
上述のように、本明細書に記載される方法およびシステムのいくつかの実施形態は関連する存在情報を使用して、データ項目の一覧中のデータ項目のための分散表現の生成時にスパース化のためのプロセスを適用するが、他の実施形態ではスパース化モジュールによるスパース化ステップの適用を遅延させることが好ましい。例えば、特定のシナリオにおいて、例えば、検索処理においてより高いレベルの精度のために最適化する場合、1つ以上のデータ項目(例えば、特定の文書内のデータ項目)のための混合SDRを作成し、その後、スパース化することが有益であり得る。スパース化は典型的には(例えば、コーパスサイズとは無関係に、待ち時間を増加させることなく、収集をより速くするために最適化するときに)より小さいSDRを記憶し使用することができることを選んで、粒度を除去することを伴う。しかしながら、スパース化するとき、データ項目の意味論的意味の粒度、様々な意味の損失があり得る。例えば、特定のコーパス内の用語「organ」が動物の身体よりも楽器に関連することが多い場合、(そのコーパス内の)使用されていない意味論的意味が除去されると、SDRでは、「organ」は「楽器」(やはり、そのコーパス内およびそのSDRのための)を意味することができるだけであり、データ項目の一般的でない200個の意味論的意味が除去された場合、それらの意味論的意味は、スパース化後には利用可能ではない。したがって、探索の精度がサイズまたは速度に渡って最適化される実施形態では、後の時点まで(たとえば、少なくとも、各データ項目についてのSDRの生成の後まで)スパース化を遅延させ、システムは分解能を実質的に改善し得る。これはより多くの労力を必要とはしないが、システムを最適化するための異なる目標が必要となる。したがって、
図19に関連して説明されるように、本明細書で説明される方法およびシステムのいくつかの実施形態では、システムが遅延スパース化処理を適用することを決定する。
【0063】
図19を参照すると、フロー図は、データ項目間の類似性のレベルを識別する際に使用するための、複数のデータ項目の混合分散表現の遅延スパース化のための方法の一実施形態を示す。簡単に見ていくと、方法1900は、少なくとも1つの基準に従って選択された一組のデータ文書を、演算装置上で実行する参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成する(1902)ことを含む。方法1900は、意味マップによって、座標ペアを一組のデータ文書の各々に関連付けることを含む(1904)。方法1900は、演算装置上で実行するパーサによって、一組のデータ文書内に存在するデータ項目の一覧を生成することを含む(1906)。方法1900は、演算装置上で実行する表現生成器によって、一覧内の各データ項目について、(i)データ項目が存在するデータ文書の数、(ii)各データ文書内のデータ項目の存在数、および(iii)データ項目が存在する各データ文書に関連付けられた座標ペア、を含む存在情報を決定することを含む(1908)。方法1900は、表現生成器によって、存在情報を使用して、一覧内の各データ項目についての分散表現を生成することを含む(1910)。方法1900は、表現生成器によって、第1のデータ項目の第1の分散表現と第2のデータ項目の第2の分散表現とを組み合わせて、混合分散表現を形成することを含む(1912)。方法1900は、表現生成器によって、混合分散表現中の各位置におけるいくつかのセットビットを追加することを含む(1904)。方法1900は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受信することを含む(1916)。方法1900は、スパース化モジュールによって、スパース度の最大レベルに基づいて分散表現内のセットビットの総数を比例的に減少させて、基準となるフィルグレードを有する混合スパース分散表現(SDR)を生成することを含む(1918)。方法1900は、混合SDRをSDRのデータベースに記憶することを含む(1920)。
【0064】
図19をより詳細に参照すると、
図1A~
図1Cおよび
図2~
図4に関連して、方法1900は、少なくとも1つの基準に従って選択された一組のデータ文書を演算装置上で実行する参照マップ生成器によって、二次元距離空間内でクラスタ化し、意味マップを生成すること(1902)を含む。一実施形態では、クラスタ化が
図2(202)に関連して上述したように行われる。
【0065】
方法1900は、意味マップによって、座標ペアを一組のデータ文書の各々に関連付けることを含む(1904)。一実施形態では、関連付けは、
図2(204)に関連して上述したように行われる。
【0066】
方法1900は、演算装置上で実行するパーサによって、一組のデータ文書内に存在するデータ項目の一覧を生成することを含む(1906)。一実施形態では、生成が
図2(206)に関連して上述したように行われる。
【0067】
方法1900は、演算装置上で実行する表現生成器によって、一覧内の各データ項目について、(i)データ項目が存在するデータ文書の数、(ii)各データ文書内のデータ項目の存在数、および(iii)データ項目が存在する各データ文書に関連付けられた座標ペアを含む存在情報を決定することを含む(1908)。一実施形態では、決定が
図2(208)に関連して上述したように行われる。
【0068】
方法1900は、表現生成器によって、存在情報を使用して、一覧内の各データ項目について分散表現を生成することを含む(1910)。一実施形態では、生成が
図2(210)に関連して上述したように行われる。
【0069】
方法1900は、表現生成器によって、第1のデータ項目の第1の分散表現と第2のデータ項目の第2の分散表現とを組み合わせて、混合分散表現を形成することを含む(1912)。方法1900は、表現生成器によって、混合分散表現内の各位置におけるいくつかのセットビットを追加することを含む(1904)。表現生成器は、
図2に関連して上述したように、混合分散表現を形成することができるが、個々のスパース化された分散表現の各々のスパース化後に混合分散表現を形成する代わりに、結合された分散表現はまだスパース化されておらず、基礎となるベクトルにおける粒度の損失を防止する。これは、例であって、限定されないが、システムは類似性レベルの識別の要求を受信した後に、混合分散表現をスパース化することができる。その時点で、粒度を失うことなくスパース化を行うことができる。
【0070】
方法1900は、演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別を受信することを含む(1916)。一実施形態では、受信は、
図2(212)に関連して上述したように行われる。
【0071】
方法1900は、スパース化モジュールによって、スパース度の最大レベルに基づいて分散表現内のセットビットの総数を比例的に減少させて、基準となるフィルグレードを有する混合スパース分散表現(SDR)を生成することを含む(1918)。一実施形態では、減少が、
図2(214)に関連して上述したように行われる。方法1900は、混合SDRをSDRのデータベースに記憶することを含む(1920)。
【0072】
いくつかの実施形態において、類似エンジン304は、ユーザからデータ項目を1つだけ受け付ける。
図5を参照すると、フローチャートにそのような方法に係る一実施形態が示されている。概略すると、方法500は、少なくとも1つの基準に従って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(502)。方法500は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(504)。方法500は、一組のデータ文書中に存在するデータ項目の一覧を、第1演算装置上で実行されるパーサによって生成するステップを含む(506)。方法500は、一覧のデータ項目それぞれについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(508)。
【0073】
(i)データ項目が存在するデータ文書の数、(ii)各データ文書においてデータ項目が存在する数、(iii)データ項目が存在するデータ文書それぞれに関連付けられた座標ペア。方法500は、表現生成器によって、データ項目の一覧におけるデータ項目それぞれについて、上記存在情報を用いて分散表現を生成するステップを含む(510)。方法500は、上記第1演算装置上で実行されるスパース化モジュールによって、スパース度の最大レベルの識別情報を受け取るステップを含む(512)。方法500は、上記スパース化モジュールによって、それぞれの分散表現について、スパース度の上記最大レベルに基づいて分散表現内のセットビットの総数を減少させて、基準となるフィルグレード(fillgrade)を有するスパース分散表現(SDR)を生成するステップを含む(514)。方法500は、生成されたSDRそれぞれをSDRデータベース内に保存するステップを含む(516)。方法500は、第2演算装置上で実行される類似エンジンによって、第3演算装置から第1データ項目を受け取るステップを含む(518)。方法500は、第1データ項目の第1SDRと、SDRデータベースから読み出した第2データ項目の第2SDRとの間の距離を、上記類似エンジンによって決定するステップを含む(520)。方法500は、決定された距離に基づいて、第2データ項目の特定、および第1データ項目と第2データ項目との間の意味類似性レベルの識別情報を、上記類似エンジンによって、上記第3演算装置に提供するステップを含む(522)。
【0074】
いくつかの実施形態において、(502)~(516)は、
図2、および(202)~(214)に関連して既述された方法により実行される。
【0075】
方法500は、第2演算装置上で実行される類似エンジンによって、第3演算装置から第1データ項目を受け取るステップを含む(518)。一実施形態において、システム300は、ユーザインターフェース(不図示)を含む。ユーザは、そのユーザインターフェースを用いて、第1データ項目を入力することができる。他の実施形態において、フィンガープリントモジュール302は、第1データ項目のSDRを生成する。さらに他の実施形態において、表現生成器114はSDRを生成する。
【0076】
方法500は、第1データ項目の第1SDRと、SDRデータベースから読み出した第2データ項目の第2SDRとの間の距離を、上記類似エンジンによって決定するステップを含む(520)。一実施形態において、方法500は、
図4、(416)に関連して既述されたように、第1データ項目の第1SDRと第2データ項目の第2SDRとの間の距離を決定するステップを含む。いくつかの実施形態において、類似エンジン304は、SDRデータベース120から第2データ項目を読み出す。これらの実施形態の一つにおいて、類似エンジン304は、読み出された項目と受け取った第1データ項目との間に類似性レベルが存在するか否かを判定するためにSDRデータベース120への入力それぞれを確認する。これらの実施形態の他の実施形態において、システム300は、(i)意味論的フィンガープリント(すなわち、SDR)収集に対して効率的にインデックスを付けるために、そして、(ii)類似エンジン304が、データベース120内のすべての項目を一つ一つ反復するといった「力づく」で処理するよりも第2データ項目の第2SDRをより効率的に特定するために、現在のテキストインデックス技術およびテキスト探索ライブラリを実施する。
【0077】
方法500は、決定された距離に基づいて、第2データ項目の識別、および第1データ項目と第2データ項目との間の意味類似性レベルの識別情報を、類似エンジンによって、上記第3演算装置に提供するステップを含む(522)。一実施形態において、類似エンジン304は、ユーザインターフェースを介して上記識別を提供する。他の実施形態において、類似エンジン304は、
図4、(418)に関連して既述したように、決定された距離に基づいて、第1データ項目と第2データ項目との間の意味類似性レベルの識別情報を提供する。いくつかの実施形態において、類似エンジン304が、(1)SDRデータベースから第3データ項目についての第3SDRを読み出し、(2)第1データ項目の第1SDRと第3データ項目の第3SDRとの距離を決定し、決定された距離に基づいて、第1データ項目と第3データ項目との間の意味類似性レベルの識別情報を提供するプロセスを繰り返すことは理解されるであろう。
【0078】
これらの実施形態の一つにおいて、類似エンジン304は、受け取ったデータ項目に最も類似する他のデータ項目のデータ項目の一覧を返してもよい。例として、類似エンジン304は、受け取ったデータ項目についてのSDR118を生成し、続いて、SDR118に類似する他のSDRを求めてSDRデータベース120を検索してよい。一実施形態において、データ項目モジュール308が上記機能を提供する。例として、限定されるものではないが、類似エンジン304(あるいは、データ項目モジュール308)は、上述したように、受け取ったデータ項目についてのSDR118をSDRデータベース120における複数のSDRそれぞれと比較し、類似性の要件(例えば、データ項目間の距離が所定の閾値以下である)を満たすデータ項目の一覧を返してもよい。いくつかの実施形態において、類似エンジン304は、(データ項目自体を返すのとは対照的に)特定のSDRに最も類似するSDRを返す。
【0079】
いくつかの実施形態において、データ項目(キーワードと称される場合もある)を受け取る方法および類似データ項目を特定する方法は、
図2、(202)~(214)に関連して既述したように実施される。いくつかの実施形態において、データ項目モジュール308が上記機能を提供する。これらの実施形態の一つにおいて、上記方法は、データ項目を受け取るステップを含む。上記方法は、受け取ったデータ項目と同一ではない最も類似するデータ項目に対するリクエストを受け取るステップを含む。これらの実施形態の他の実施形態において、上記方法は、受け取ったデータ項目についての第1SDRを生成するステップを含む。これらの実施形態のさらに他の実施形態において、上記方法は、第1SDRとSDRデータベース120におけるそれぞれのSDRとの間の距離を決定するステップを含む。これらの実施形態のさらに他の実施形態において、上記方法は、一覧にされたデータ項目のSDRと第1SDRとの間の距離が閾値未満となるデータ項目の一覧を提供するステップを含む。あるいは、上記方法は、データ項目それぞれと受け取ったデータ項目との類似性レベルが閾値を超えるデータ項目の一覧を提供するステップを含む。いくつかの実施形態において、類似データ項目を特定する方法により、データ項目またはデータ項目のSDRを受け取る機能、および増加する距離(例えば、ユークリッド距離)による指示を受けてSDR一覧を生成する機能を提供する。これらの実施形態の1つでは、システム100は、すべての文脈データ項目、すなわち、送られたデータ項目が存在する概念空間内のデータ項目を返す機能を提供する。
【0080】
データ項目モジュール308は、受け取ったデータ項目を提供したユーザ、他のモジュール、またはエンジン(例えば、曖昧性解消モジュール306)のいずれかに対して類似データ項目を返してもよい。
【0081】
いくつかの実施形態において、上記システムは、類似データ項目の一覧を生成し、クエリを実行するシステム(システム300内のシステムまたは第三者の検索システム)にその一覧を送ってもよい。例えば、ユーザは、クエリを実行するためのユーザインターフェース(例えば、検索エンジン)にデータ項目を入力し、上記ユーザインターフェースが上記データ項目をクエリモジュール601に転送してもよい。クエリモジュール601は、上記システム(例えば、類似エンジン304)のコンポーネントを自動的に呼び出して、類似データ項目の一覧を生成し、当該データ項目を上記ユーザインターフェースに提供して、ユーザの当初クエリに追加されたクエリとして実行するようにしてもよい。これにより、ユーザの検索結果がより広範囲なものになる。他の例として、そして
図6A~
図6Cに関連してさらに詳細に説明されるように、上記システムは、類似データ項目の一覧を生成し、そのデータ項目を第三者の検索システムに直接提供し、上記ユーザインターフェースを介して上記ユーザに拡張検索結果を返してもよい。第三者の検索システム(ここでは、企業検索システムと称される場合もある)は任意の種類、形態であってよい。全文検索システム122に関連して既述されたように、多岐にわたるそのようなシステムが利用可能であり、ここに記載される方法およびシステムを用いることでその能力、性能が高められる。
【0082】
図6Aのブロック図を参照すると、全文検索システムのクエリを拡張するためのシステム300の一実施形態が開示されている。概略すると、システム300は、
図1A~
図1Cおよび
図3に関連して既述した要素を有する。また、システム300は、
図1A~
図1Cおよび
図3に関連して既述した機能を提供する。システム300は、クエリモジュール601を実行するマシン102dを含む。クエリモジュール601は、クエリ拡張モジュール603、ランキングモジュール605、およびクエリ入力処理モジュール607を実行する。
【0083】
一実施形態において、クエリモジュール601は、クエリタームを受け取り、受け取ったタームについてのSDRの生成を指示し、類似のクエリタームの特定を指示する。他の実施形態において、クエリモジュール601は、第三者により提供される企業検索システムと通信する。例えば、クエリモジュール601は、上記企業検索システムと通信する1以上のインターフェース(例えば、アプリケーションプログラムインターフェース)を含んでいてもよい。いくつかの実施形態において、クエリモジュール601は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、クエリモジュール601は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、クエリモジュール601は、マシン102dで実行される。
【0084】
一実施形態において、クエリ入力処理モジュール607は、クライアント102cのユーザからクエリタームを受け付ける。他の実施形態において、クエリ入力処理モジュール607は、クエリタームの種類を特定する(例えば、個々の単語、単語のグループ、文章、段落、文書、SDR、または、類似のタームを特定する際に使用される他の表現)。いくつかの実施形態において、クエリ入力処理モジュール607は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、クエリ入力処理モジュール607は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、クエリ入力処理モジュール607は、マシン102dで実行される。他の実施形態において、クエリモジュール601は、クエリ入力処理モジュール607と通信する。あるいは、クエリモジュール601は、クエリ入力処理モジュール607の機能を提供する。
【0085】
一実施形態において、クエリ拡張モジュール603は、クライアント102cのユーザからクエリタームを受け付ける。他の実施形態において、クエリ拡張モジュール603は、クエリ入力処理モジュール607からクエリタームを受け付ける。さらに他の実施形態において、クエリ拡張モジュール603は、クエリタームについてのSDRの生成を指示する。他の実施形態において、クエリ拡張モジュール603は、類似エンジン304による、上記クエリタームに類似する1以上のタームの(SDR間の距離に基づく)識別を指示する。いくつかの実施形態において、クエリ拡張モジュール603は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、クエリ拡張モジュール603は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、クエリ拡張モジュール603はマシン102dで実行される。他の実施形態において、クエリモジュール601は、クエリ拡張モジュール603と通信する。あるいは、クエリモジュール601は、クエリ拡張モジュール603の機能を提供する。
【0086】
図6Bのフローチャートを参照すると、全文検索システムのクエリを拡張する方法600に係る一実施形態が開示されている。概略すると、方法600は、少なくとも1つの基準に従って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(602)。方法600は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(604)。方法600は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む(606)。方法600は、一覧の各タームについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(608)。(i)タームが存在するデータ文書の数、(ii)各データ文書において存在するタームの数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法600は、タームごとの上記存在情報を用いて、上記一覧におけるタームそれぞれについて、スパース分散表現(SDR)を、上記表現生成器によって生成するステップを含む(610)。方法600は、生成されたSDRそれぞれをSDRデータベースに保存するステップを含む(612)。方法600は、第2演算装置上で実行されるクエリ拡張モジュールによって、第3演算装置から第1タームを受け取るステップを含む(614)。方法600は、上記第1タームの第1SDRと、上記SDRデータベースから読み出された第2タームの第2SDRとの間の意味類似性レベルを、第4演算装置上で実行される類似エンジンによって決定するステップを含む(616)。方法600は、上記第1タームおよび上記第2タームの少なくとも一方に類似する少なくとも一つのタームを含む一組の文書それぞれの識別のためのクエリを、上記第1タームおよび上記第2タームを使って、上記クエリ拡張モジュールによって、全文検索システムに対して送るステップを含む(618)。方法600は、上記クエリ拡張モジュールによって、上記一組の文書それぞれの識別を上記第3演算装置に対して送るステップを含む(620)。
【0087】
いくつかの実施形態において、ステップ(602)~(612)は、
図2およびステップ(202)~(214)に関連して既述したように実行される。
【0088】
方法600は、第2演算装置上で実行されるクエリ拡張モジュールによって、第3演算装置から第1タームを受け取るステップを含む(614)。一実施形態において、クエリ拡張モジュール603は、
図5、(518)に関連して既述したように上記第1データ項目を受け取る。他の実施形態において、クエリ入力処理モジュール607は、上記第1タームを受け取る。さらに他の実施形態において、クエリ入力処理モジュール607は、フィンガープリントモジュール302に対して、SDR生成のリクエストとともに、上記第1タームを送る。さらに他の実施形態において、クエリ入力処理モジュール607は、表現生成器114によってSDRを生成するために、エンジン101に対して上記第1タームを送る。
【0089】
方法600は、上記第1タームの第1SDRと、SDRデータベースから読み出された第2タームの第2SDRとの間の意味類似性レベルを、第4演算装置上で実行される類似エンジンによって決定するステップを含む(616)。一実施形態において、類似エンジン304は、
図5、(520)に関連して既述したように、意味類似性レベルを決定する。
【0090】
方法600は、上記第1タームおよび上記第2タームの少なくとも一方に類似する少なくとも一つのタームを含む一組の文書それぞれの識別のためのクエリを、上記第1タームおよび上記第2タームを使って、上記クエリ拡張モジュールによって、全文検索システムに対して送るステップを含む(618)。いくつかの実施形態において、類似エンジン304は、クエリモジュール601に対して上記第2タームを提供する。上記類似エンジンは類似性閾値を超える上記第1タームに対してある類似性を有する複数のタームを提供しうることが理解されるであろう。他の実施形態において、クエリモジュール601は、第三者の企業検索システムに対して1以上の検索タームを含むクエリを送る1以上のアプリケーションプログラムインターフェースを含んでもよい。
【0091】
方法600は、上記クエリ拡張モジュールによって、上記一組の文書それぞれの識別情報を上記第3演算装置に対して送るステップを含む(620)
図6Cのフローチャートを参照すると、全文検索システムのクエリを拡張する方法650に係る一実施形態が開示されている。概略すると、方法650は、少なくとも1つの基準に従って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(652)。方法650は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(654)。方法600は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む(656)。方法650は、一覧の各タームについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(658)。(i)タームが存在するデータ文書の数、(ii)各データ文書においてタームが存在する数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法650は、表現生成器によって、上記一覧におけるタームそれぞれについて、タームごとの上記存在情報を用いてスパース分散表現(SDR)を生成するステップを含む(660)。方法650は、生成されたSDRそれぞれをSDRデータベースに保存するステップを含む(662)。方法650は、第2演算装置上で実行されるクエリ拡張モジュールによって、第3演算装置から第1タームを受け取るステップを含む(664)。方法650は、上記第1タームの第1SDRと、上記SDRデータベースから読み出された第2タームの第2SDRとの間の意味類似性レベルを、第4演算装置上で実行される類似エンジンによって決定するステップを含む(666)。方法650は、上記クエリ拡張モジュールによって、上記第3演算装置に対して上記第2タームを送るステップを含む(668)。
【0092】
一実施形態において、ステップ(652)~(666)は、ステップ(602)~(612)に関連して既述したように実行される。しかしながら、上記類似エンジンによって特定された1以上の上記タームを企業検索システムに対して直接提供する代わりに、方法650は、上記クエリ拡張モジュールによって、上記第3演算装置に対して上記第2タームを送るステップを含む(668)。このような方法において、上記第3演算装置のユーザは、上記クエリが企業検索システムに送信される前に、上記第2タームを確認、変更することができる。いくつかの実施形態において、ユーザは上記クエリに対して追加的な管理を望んでいる。一実施形態において、ユーザは、自身でクエリを実行することを好む。他の実施形態において、ユーザは、上記クエリの送信前に、上記システムによって特定されたタームを変更することを望んでいる。さらに他の実施形態において、ユーザに対して特定されたタームを提供することにより、上記システムは、当該特定されたタームに関するユーザからのフィードバックをリクエストすることが可能となる。これらの実施形態の一つにおいて、例えば、上記第2タームを特定するうえでの上記類似エンジンの正確性を評価できる。これらの実施形態のうちの他の一実施形態において、例として、ユーザは、上記第2タームはユーザが興味を抱くタームの種類である(例えば、上記第2タームは、ユーザが現在研究または開発中の専門領域に係る種類である)ことの標識を提供する。
【0093】
いくつかの実施形態において、少なくとも一つのブール演算子を評価する方法は、表現エンジン310によって、少なくとも一つのデータ項目および少なくとも一つのブール演算子を受け取るステップを含む。上記方法は、
図2およびステップ(202)~(214)に関連して既述した上記機能を実施するステップを含む。一実施形態において、表現エンジン310は、ユーザがブール演算子および括弧を使って組み合わせた複数のデータ項目を受け取る。例えば、ユーザは、「ジャガーSUBポルシェ」といった句を提示すると、表現エンジン310は、上記句を評価し、その表現に対するSDRの変更後のバージョンを生成する。したがって、他の実施形態において、表現エンジン310は、受け取った句における第1データ項目について第1SDR118を生成する。さらに他の実施形態において、表現エンジン310は、(例えば、3つのデータ項目句における上記第2データ項目が上記ブール演算子であると決定することによって、または、受け取った句に含まれるそれぞれのデータ項目とブール演算子の一覧とを比較して上記でデータ項目がブール演算子であるか否かを決定することによって)受け取った句に含まれる上記ブール演算子を特定する。表現エンジン310は、上記第1データ項目の変更方法を決定するために、特定されたブール演算子を評価する。例えば、表現評価部310は、ブール演算子「SUB」が受け取った句に含まれると判定する。続いて、表現エンジン310は、上記ブール演算子に続くデータ項目について第2SDRの生成を決定し(例えば、上述した句の例において、「ポルシェ」)、上記第1SDRから、上記第2SDRに出現した点を取り除くことによって第3SDRを生成する。それから上記第3SDRは上記第1データ項目のSDRとなるが、上記第2データ項目のSDRは含まない。同様に、表現エンジン310が、上記ブール演算子は「AND」であったと判定した場合、表現エンジン310は、上記第1SDRおよび上記第2SDRに共通する点のみを使って第3SDRを生成する。従って、表現エンジン310は、データ項目、複合データ項目、およびブール演算子および括弧を使って組み合わせたSDRを受け取り、策定された表現のブール結果を反映したSDRを返す。得られた変更SDRは、ユーザに戻されるか、または、システム200内の他のエンジン(例えば、類似エンジン304)に提供されてもよい。当業者であれば、ブール演算子は、限定されるものではないが、AND、OR、XOR、NOT、およびSUBを含むことを理解するであろう。
【0094】
いくつかの実施形態において、データ項目の複数のサブコンテキストを特定する方法は、曖昧性解消モジュール306によってデータ項目を受け取るステップを含む。上記方法は、
図2、(202)~(214)に関連して既述した上記機能を実施するステップを含む。一実施形態において、上記方法は、受け取ったデータ項目について第1SDRを生成するステップを含む。他の実施形態において、上記方法は、上記第1SDRに類似するSDRを有するデータ項目の一覧を生成するステップを含む。例えば、上記方法は、上記類似エンジンに対して上記第1SDRを提供し、上述したように類似するSDRの一覧をリクエストするステップを含む。さらに他の実施形態において、上記方法は、上記第1SDRに類似するが一致しない一覧化されたSDRのうちの一つを分析するステップと、上記第1SDRから、上記一覧化されたSDRにも存在する点(例えば、セットビット)を(例えば、バイナリ減算を介して)取り除き、変更SDRを生成するステップを含む。他の実施形態において、上記方法は、上記第1SDRおよび(同一ではないが)類似するSDRの両方に存在する点を取り除く処理を繰り返すステップを含む。このステップは、類似するSDRの一覧それぞれに存在するすべての点が上記第1SDRから取り除かれるまで行われる。例として、データ項目「アップル」に類似するデータ項目へのリクエストを受け取ると、上記システムは、「マッキントッシュ」および「iphone(登録商標)」、「オペレーティングシステム」といったデータ項目を返してもよい。ユーザが「アップルSUBマッキントッシュ」との表現を提供し、残った点から類似データ項目をリクエストした場合には、上記システムは、「果物」、「スモモ」、「オレンジ」、「バナナ」といったデータ項目を返す。上記の例を続けると、次にユーザが「アップルSUBマッキントッシュSUB果物」との表現を提供し、類似データ項目をリクエストした場合には、上記システムは、「レコード」、「ビートルズ」および「ポップミュージック」といったデータ項目を返してもよい。いくつかの実施形態において、上記方法は、SDR全体からではなく、上記第1SDRの最大クラスタから類似のSDRの点を抽出するステップを含む。これにより、より好適な解決法が提供される。
【0095】
いくつかの実施形態において、上述したように、データ項目は単語以外の項目を参照してよい。例として、システム300(例えば、類似エンジン304)は、数字についてのSDRを生成し、そのSDRを他の数字から生成された参照SDRと比較し、類似データ項目の一覧をユーザに提供する。例えば、限定するものではないが、システム300(例えば、類似エンジン304)は、データ項目「100.1」についてのSDRを生成し、そのSDRは感染により生じた熱であると診断された患者に関連するデータ項目についてのSDRと類似するパターンを有する、と判定してもよい。(例えば、医者または医療機関が上述した方法およびシステムを実施する実施形態において、患者の身体特性(例えば、体温または他の特性)に基づき生成されたデータ項目について、上記システムは、上記データ項目(100.1)と、熱を有する患者についての参照データ項目としての上記データ項目の識別情報との間の関連性を保存する)。データ項目が類似パターンを有するとの判定により、動的に生成されたSDRと参照SDRとの間の共通性を特定する機能が提供され、特定のデータ項目の取り込みをユーザによりよく理解させることができる。従って、いくつかの実施形態において、上記参照SDRは適格な診断とリンクしており、新しい患者のSDRプロファイルを診断されたパターンに適合させ、そこから新しい患者の考えうる診断の組み合わせを推論することができる。これらの実施形態の一つにおいて、考えうる診断を集めることにより、ユーザは、点(例えば、あるデータ項目の語義的特徴)がオーバーラップまたはマッチする場所を「見る」ことができる。そのような実施形態において、その新しい患者のSDRパターンに最も類似する診断が、予想される診断である。
【0096】
他の例として、限定するものではないが、一組のデータ文書104は、(例えば、フライトに関する百科事典の入力とは対照的に)飛行機のセンサによって生成された、捕捉されたフライトデータのログを含んでよい。補足されたデータの上記ログは、英数字のデータ項目または主として数字のデータ項目を含んでよい。そのような例において、システム100は、変数(例えば、任意の種類のフライトデータに関連する変数)のSDRを生成する機能を提供し、生成されたSDRを参照SDR(例えば、特定の特性を有することが知られている参照項目として使用されるデータ項目のSDR。特定の特性として、例えば、飛行中にデータ項目が生成されたフライトに関する事実。例えば、特定の高度での飛行、高度が高すぎる/低すぎるといった高度に関する特徴。)と比較してもよい。他の例として、システム100は、“500(degrees)”についての第1SDRを生成し、当該第1SDRは“28,000(feet)”についての第2SDRと類似すると判定してもよい。続いて、システム100は、上記第2SDRがフライトの特性(例えば、高すぎる、低すぎる、速すぎる、など)を示すデータ項目についての参照SDRであると判定する。そして、システム100は、データ項目“500(degrees)”を開始したユーザに対して上記データ項目の取り込みを把握させてもよい。
【0097】
いくつかの実施形態において、提示されたテキストのトピック構造を考慮しつつ、文書を部分に分割する(ここではスライスとも称される)方法が提供される。一実施形態において、データ項目モジュール308は、トピックに分割される文書を受け取る。他の実施形態において、データ項目モジュール308は、第2位置とは異なる意味論的フィンガープリントを有する文書中の位置を特定し、その文書を、二つのスライスに分割する。その1つのスライスには第1位置が含まれ、他のスライスには第2位置が含まれる。上記方法は、
図2、(202)~(214)に関連して既述した上記機能を実施するステップを含む。一実施形態において、上記方法は、上記文章中のそれぞれの文(例えば、ピリオドにより区切られた文字列)についてのSDR118を生成するステップを含む。他の実施形態において、上記方法は、第1文の第1SDR118Aと第2文の第2SDR118bとを比較するステップを含む。例えば、上記方法は、比較のために上記2つのSDRを類似エンジン304に送るステップを含む。さらに他の実施形態において、上記方法は、2つのSDRの間の距離が所定の閾値を超えているときに、上記第1文の後に、文章中に区切れを挿入するステップを含む。他の実施形態において、上記方法は、2つのSDRの間の距離が所定の閾値を超えていないときには、上記第1文の後に、文章中に区切れを挿入しないことを決定するステップを含む。さらに他の実施形態において、上記方法は、上記第2文とその後の文との比較を繰り返すステップを含む。他の実施形態において、上記方法は、文書の最後に行きつくまで文の比較を繰り返すステップを含む。さらに他の実施形態において、上記方法は、文書のスライスを生成するために挿入した区切れを使用するステップを含む(例えば、文書の一セクションを最初の挿入区切れまで戻し、第1スライスとする)。いくつかの実施形態において、複数の小さなスライスを有することは一つの文書よりも好ましい。しかしながら、文書の任意分割(例えば、長さ、またはワードカウントによる分割)は、文書のトピックベースの分割よりも、非効率であるか、または有用ではない場合もある。これらの実施形態の一つにおいて、文の複合SDRを比較することによって、システム300は、文書のトピックがどこで変化し論理的な分割点を形成したかを判定することができる。これらの実施形態のうちの他の実施形態において、システム300は、従来のインデックスに加えて、意味論的フィンガープリントインデックスを提供してもよい。トピックスライスのさらなる例が、以下の
図7A~7Bに関連して説明される。
【0098】
図7Bに関連して、そして
図7Aのブロック図を参照して、トピックベースの文書を全文検索システムに提供するシステム700に係る一実施形態が開示されている。概略すると、システム700は、
図1A~1C、および
図3に関連して既述された要素を含む。また、システム700は、
図1A~1C、および
図3に関連して既述された機能を提供する。システム700は、さらに、トピックスライシングモジュール702を含む。一実施形態において、トピックスライシングモジュール702は、文書を受け取り、受け取った文書についてSDRの生成を指示し、サブ文書の生成を指示する。そのサブ文書では、類似性が閾値未満である文が異なる文書に置かれている。すなわち、その他のデータ構造を有する。他の実施形態において、トピックスライシングモジュール702は第三者により提供される企業検索システムと通信する。いくつかの実施形態において、トピックスライシングモジュール702は、ソフトウェアプログラムの少なくとも一部として実行される。一実施形態において、トピックスライシングモジュール702は、ハードウェアモジュールの少なくとも一部として実行される。さらに他の実施形態において、トピックスライシングモジュール702は、マシン102bで実行される。
【0099】
さらに
図7A、
図7Bのブロック図を参照して、トピックベースの文書を全文検索システムに提供するシステム750に係る一実施形態が開示されている。方法750は、少なくとも1つの基準に従って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(752)。方法750は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(754)。方法750は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む(756)。方法750は、上記一覧の各タームについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(758)。(i)タームが存在するデータ文書の数、(ii)各データ文書においてタームが存在する数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法750は、表現生成器によって、上記一覧におけるタームそれぞれについて、上記存在情報を用いてスパース分散表現(SDR)を生成するステップを含む(760)。方法750は、生成されたSDRそれぞれをSDRデータベースに保存するステップを含む(762)。方法750は、第2演算装置上で実行されるトピックスライシングモジュールによって、企業検索システムと関連する第3演算装置から、第2の一組の文書を受け取るステップを含む(764)。方法750は、表現生成器によって、上記第2の一組の文書それぞれの文それぞれについての複合SDRを生成するステップを含む(766)。方法750は、上記第2演算装置上で実行される類似エンジンによって、第1文の第1複合SDRと第2文の第2複合SDRとの間の距離を決定するステップを含む(768)。方法750は、上記第1文を含む第2文書および上記第2文を含む第3文書を、決定された上記距離に基づいて、トピックスライシングモジュールによって生成するステップを含む(770)。方法750は、トピックスライシングモジュールによって、上記第3演算装置に対して上記第2文書および上記第3文書を送るステップを含む(772)。
【0100】
一実施形態において、ステップ(752)~(762)は、
図2およびステップ(202)~(214)に関連して既述したように実行される。
【0101】
方法750は、第2演算装置上で実行されるトピックスライシングモジュールによって、企業検索システムと関連する第3演算装置から、第2の一組の文書を受け取るステップを含む(764)。一実施形態において、トピックスライシングモジュール702は、上記第2の一組の文書を受け取る。この受け取りは、企業検索システムによるインデックス化に最適な上記第2の一組の文書のバージョン(様式)を生成する処理のためである。その企業検索システムは、従来の検索システムであってよい。他の実施形態において、トピックスライシングモジュール702は、システム700により提供される検索システムによるインデックス化に最適な上記第2の一組の文書のバージョン(様式)を生成する処理のために、上記第2の一組の文書を受け取る。このことは、
図9A、
図9Bに関連してより詳細に後述される。いくつかの実施形態において、受け取った上記第2の一組の文書は、1以上のXML文書を含む。例えば、上記第3演算装置は、インデックス化を向上させるため、1以上の企業文書をXML文書に変換していてもよい。
【0102】
方法750は、表現生成器によって、上記第2の一組の文書それぞれの文それぞれについて複合SDRを生成するステップを含む(766)。
図2に関連して既述したように、例えば、データ項目の、句、文、段落、または他の組み合わせが個々のSDR(例えば、一つの文中のそれぞれの単語のSDRの組み合わせ)の「集合属性(unionproperty)」を反映する1つのSDRに変換される必要がある場合、システム100は、(動的に生成することによって、または事前に生成されたSDRを読み出すことによって)個々のデータ項目をそのSDRに変換し、二値OR演算を用いて、個々のSDRから1つの複合SDRを形成してよい。その結果は、スパース化モジュール116によってスパース化されうる。
【0103】
方法750は、上記第2演算装置上で実行される類似エンジンによって、第1文の第1複合SDRと第2文の第2複合SDRとの間の距離を決定するステップを含む(768)。一実施形態において、上記類似エンジンは、
図4およびステップ(416)に関連して既述したように上記距離を決定する。
【0104】
方法750は、上記第1文を含む第2文書および上記第2文を含む第3文書を、決定された上記距離に基づいて、トピックスライシングモジュールによって生成するステップを含む(770)。上記トピックスライシングモジュールは、上記類似エンジンにより決定された上記距離が類似性の閾値を超え、それゆえ上記第2文が上記第1文とは異なるトピックに関連し、そのため異なる文書(あるいは、他のデータ構造)に進むべきである、と判定する。他の実施形態において、上記類似エンジンは、(
図4に関連して既述したように)決定された上記距離に基づいて、上記第1文と上記第2文との間の類似性レベルの識別情報をトピックスライシングモジュール702に対して提供する。そして、トピックスライシングモジュール702は、上記類似性レベルが類似性の閾値レベルを満たさないと判定し、上記第2文を上記第1文とは異なる文書に入れることを決断する。一方、他の実施形態において、トピックスライシングモジュール702は、決定された上記距離(および/または、類似性)は類似性の閾値を満たすと決定する。そして、トピックスライシングモジュール702は、上記第1文および上記第2文はトピックが類似しており、一つの文書内に一緒に残されるべきであると決定する。
【0105】
さらに他の実施形態において、上記方法は、上記第2文とその後の文との比較を繰り返すステップを含む。別の実施形態において、上記方法は、文書を繰り返し調べ、文書の終わりに達するまで文同士の比較を繰り返すステップを含む。
【0106】
方法750は、トピックスライシングモジュールによって、第3演算装置に、第2文書および第3文書を送る(772)。
【0107】
図8Bを
図8Aと併せて参照すると、テキスト文書からキーワードを抽出する方法850の一実施形態をフローチャートに示す。方法850は、少なくとも1つの基準に従って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(852)。方法850は、意味マップによって、座標ペアを一組のデータ文書のそれぞれと関連付けるステップを含む(854)。方法850は、第1演算装置上で実行されるパーサによって、一組のデータ文書に存在するタームの一覧を生成するステップを含む(856)。方法850は、第1の演算装置上で実行する表現生成器によって、一覧における各用語について、以下を含む存在情報を決定することを含む。(i)タームが存在するデータ文書の数、(ii)各データ文書におけるタームの存在数、および(iii)タームが存在する各データ文書に関連付けられた座標ペア(858)。方法850は、表現生成器によって、一覧におけるタームそれぞれについて、上記存在情報を用いてスパース分散表現(SDR)を生成するステップを含む(860)。方法850は、生成されたSDRそれぞれをSDRデータベースに保存するステップを含む(862)。方法850は、第2演算装置上で実行されるキーワード抽出モジュールによって、全文検索システムと関連する第3演算装置から、第2の一組の文書のうち一つの文書を受け取るステップを含む(864)。方法850は、表現生成器によって、受け取った文書中の各タームに少なくとも一つのSDRを生成するステップを含む(866)。方法850は、表現生成器によって、上記受け取った文書について、上記生成された少なくとも一つのSDRに基づき、複合SDRを生成するステップを含む(868)。方法850は、複合された場合に上記文書についての複合SDRとの意味類似性レベルが閾値を満たすような複合SDRを生成する複数のタームSDRを、上記キーワード抽出モジュールで選択するステップを含む(870)。方法850は、上記キーワード抽出モジュールによって、上記受け取った文書のキーワードフィールドを変更して、上記複数のタームを有するようにするステップを含む(872)。方法850は、上記キーワード抽出モジュールによって、第3演算装置に、上記変更された文書を送るステップを含む(874)。
【0108】
一実施形態において、ステップ(852)~(862)は、
図2およびステップ(202)~(214)に関連して上記したように実行される。
【0109】
一実施形態において、システム800は、
図1A~1Cおよび
図3に関連して上述された要素を含み、上記図に関連して上述された機能を提供する。システム800はさらに、キーワード抽出モジュール802を備える。一実施形態において、キーワード抽出モジュール802は文書を受け取り、受け取った文書についてSDRの生成を指示し、受け取った文書についてキーワードを特定し、受け取った文書を変更して特定したキーワードを含ませる。他の実施形態において、キーワード抽出モジュール802は、第三者によって提供される企業検索システムと通信する。いくつかの実施形態において、キーワード抽出モジュール802は、少なくとも一部がソフトウェアプログラムとして実施される。他の実施形態において、キーワード抽出モジュール802は、少なくとも一部がハードウェアモジュールとして実施される。さらに他の実施形態において、キーワード抽出モジュール802はマシン102bで実行される。
【0110】
方法850は、第2演算装置上で実行されるキーワード抽出モジュールによって、全文検索システムと関連する第3演算装置から、第2の一組の文書のうち一つの文書を受け取るステップを含む(864)。一実施形態において、キーワード抽出モジュール802は、トピックスライシングモジュール702に関連して、
図7およびステップ(764)に示すように文書を受け取る。
【0111】
方法850は、表現生成器によって、受け取った文書中の各タームに少なくとも一つのSDRを生成するステップを含む(866)。一実施形態において、キーワード抽出モジュール802が、受け取った文書における各タームを、表現生成器114へと送って、少なくとも一つのSDRを生成する。他の実施形態において、キーワード抽出モジュール802は、受け取った文書における各タームを、フィンガープリントモジュール302へ送って、上記少なくとも一つのSDRを生成する。
【0112】
いくつかの実施形態において、キーワード抽出モジュール802は、文書に、当該文書中の文それぞれに複合SDRを生成するリクエストを付けて、フィンガープリントモジュール302へ送る。他の実施形態において、キーワード抽出モジュール802は、文書に、当該文書中の文それぞれに複合SDRを生成するリクエストを付けて、表現生成器114へ送る。
【0113】
方法850は、表現生成器によって、生成された少なくとも1つのSDRに基づいて、受信した文書に対する複合SDRを生成させるステップを含む(868)。一実施形態において、キーワード抽出モジュール802は、表現生成器114から複合SDRを生成することをリクエストする。他の実施形態において、キーワード抽出モジュール802は、フィンガープリントモジュール302から複合SDRを生成することをリクエストする。
【0114】
方法850は、複合された場合に上記文書についての複合SDRとの意味類似性レベルが閾値を満たすような複合SDRを生成する複数のタームSDRを、上記キーワード抽出モジュールで選択するステップを含む(870)。一実施形態において、キーワード抽出モジュール802は、類似エンジン304に指示して、文書の複合SDRを複数のタームのSDR(「タームSDR」)と比較させ、当該複数のタームと文書そのものとの類似レベルの識別情報を生成する。いくつかの実施形態において、キーワード抽出モジュール802は、類似エンジン304に、タームSDRの組み合わせを繰り返し処理させ、文書の複合SDRとの比較を生成させ、文書とタームの各組合せとの意味類似性レベルの一覧を戻させることで、閾値を満たす複数のタームを特定する。これらの実施形態のうちの他の一実施形態において、キーワード抽出モジュール302は、閾値を満たしかつ可能な限り少ない数のタームしか含まない文書と語義的に類似のレベルである複数のタームを特定する。
【0115】
方法850は、上記キーワード抽出モジュールによって、上記受け取った文書のキーワードフィールドを変更して、上記複数のタームを有するようにするステップを含む(872)。上述したように、受け取った文書は構造化された文書、たとえばXML文書でもよく、キーワード抽出モジュール802によって複数のタームを挿入される部分を有してもよい。
【0116】
方法850は、上記キーワード抽出モジュールによって、第3演算装置に、上記変更された文書を送るステップを含む(874)。
【0117】
上記したように、企業検索システムは、従来の検索システムの実施を含んでもよい。従来の検索システムとしては、上記の全文検索システム122に関連して記載したものが挙げられる(例えば、Lucene-based Systemsや、Xapianのようなオープンソースシステムや、Autonomy IDOLまたはCOGITOのような市販のシステムや、その他上記で詳述したシステム)。本明細書では、「企業検索システム」と「全文検索システム」は交換可能に用いられる場合がある。
図6から8に記載された方法およびシステムは、そのような企業システムの強化を示す。つまり、ここに記載する方法およびシステムを実施することにより、そのような企業システムを販売しているエンティティは、販売されている機能を強化させることができる――キーワードを加えたり、ユーザ向けのクエリタームを拡張したり、それらを現在のシステムに自動的に提供したりなどすることで、インデックス作成をより効率的にする。しかしながら、検索システムをそのユーザに販売しているエンティティは、現在のシステムを完全に入れ替えることで、あるいは、まず第一に改良された検索システムを実施することで、現在のシステムのある面を強化する以上のことが望ましい。したがって、いくつかの実施形態において、改良された検索システムが提供される。
【0118】
図9Aを参照すると、全文検索システム902を実施するシステム900の一実施形態をダイアグラムに示す。一実施形態において、システム900は、
図1Aから
図1C、
図3、
図6A、
図7A、および
図8Aに関連して上記した機能を有する。検索システム902はクエリモジュール601を含み、クエリモジュール601は
図6Aおよび
図6Bに関連して上記したように提供されてよい。検索システム902は文書フィンガープリントインデックス920を含む。文書フィンガープリントインデックス920は、SDRデータベース120の一バージョンであってもよい。文書フィンガープリントインデックス920はメタデータ(例えば、タグ)を含んでもよい。検索システム902は、文書類似エンジン304bを含んでもよい。例えば、文書類似エンジン304bは、検索システム902と作業するため時間をかけて精緻化した類似エンジン304のコピーでもよい。検索システム902は、インデクサ910を含む。インデクサ910は、ハードウェアモジュールとして提供されてもよく、ソフトウェアモジュールとして提供されてもよい。
【0119】
図9Aに関連して
図9Bを参照すると、方法950は、少なくとも一つの基準に沿って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(952)。方法950は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(954)。方法950は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む(956)。方法950は、一覧の各タームについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(958)。(i)タームが存在するデータ文書の数、(ii)各データ文書においてタームが存在する数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法950は、表現生成器によって、上記存在情報を用いて、一覧のタームごとのスパース分散表現(SDR)を生成するステップを含む(960)。方法950は、SDRデータベースに、生成したSDRのそれぞれを保存するステップを含む(962)。方法950は、第2演算装置上で実行される全文検索システムによって、第2の一組の文書を受け取るステップを含む(964)。方法950は、第2の一組の文書中の各文書に対して、少なくとも一つのSDRを、表現生成器によって生成するステップを含む(966)。方法950は、生成したSDRそれぞれを、全文検索システム中のインデクサによって、文書フィンガープリントインデックスに保存するステップを含む(968)。方法950は、第3演算装置から、検索システム中のクエリモジュールによって、少なくとも一つの検索タームを受け取るステップを含む(970)。方法950は、受け取った少なくとも一つの検索タームのSDRに類似したSDRを有する文書フィンガープリントインデックス中の少なくとも一つのタームについて、クエリモジュールにより文書フィンガープリントインデックスにクエリするステップを含む(972)。方法950は、クエリモジュールにより、第3演算装置に、クエリの結果を提供するステップを含む(974)。
【0120】
方法950は、少なくとも一つの基準に沿って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(952)。いくつかの実施形態において、
図2およびステップ(202)に関連して上記したように、一組のデータ文書が選択されクラスタ化が生じる。
図1および2に関連して上記したように、ここに記載する方法およびシステムとともに用いるシステムを開始する際、トレーニングプロセスが行われる。上記したように、少なくとも一組のデータ文書を用いて(より具体的には、一組のデータ文書における各文書の文書ベクトルを用いて)参照マップ生成器106がトレーニングされる。これまた上記したように、文書の一組の語義的分解能とは、トレーニングデータに基づいてどれだけ多くの位置が入手可能かを示す。これは、いくつかの態様では、トレーニングデータの性質を反映する(砕いていえば、これはマップ上でどれだけ多くの「土地」が入手可能かということだと言える)。語義的分解能を増すために、異なるあるいは追加のトレーニング文書を用いてもよい。したがって、参照マップ生成器106をトレーニングするにはいくつかの異なるアプローチがある。一実施形態において、受け取ったターム(例えば、企業内の文書中のターム)それぞれにつきSDRを生成する際、一般的なトレーニングコーパスを用いてよい。そのようなアプローチの長所は、そのようなコーパスは、一つ以上のトレーニング基準を満たすよう選択されている可能性が高いことであるが、短所は、そのようなコーパスは、特殊化された企業のコーパス(例えば、特定領域や実務において特定の意味を有する多数のタームを含む高度に技術的なコーパス)を支えるのに十分な単語を含んでいるかもしれないが、含んでいないかもしれないかもしれないということである。他の実施形態において、したがって、一組の企業内文書をトレーニングコーパスとして用いてもよい。このアプローチの長所は、トレーニングに用いられる文書は、当該企業内で共有されている高度に技術的なまたは特殊な任意のタームを含んでいるだろうことであるが、短所は、企業内の文書は、トレーニング基準を満たさないかもしれない(例えば、十分な量の文書がないかもしれない、十分な長さや多様性がないかもしれない、など)ということである。さらに他の実施形態において、一般的なトレーニングコーパスと企業内のコーパスを、トレーニング用に組み合わせる。さらに他の実施形態において、技術文書の特別な一組を特定して処理し、トレーニングコーパスとして用いる。例えば、このような文書としては、重要な医学論文、技術明細書、または用いられるだろう企業内文書に関連する専門分野におけるその他の重要な参照資料が挙げられる。例としては、参照コーパスを処理してトレーニングに用い、その後、得られたエンジン101がトレーニング済データベースを用いてもよい。このトレーニング済データベースは、本明細書に記載された方法およびシステムを実施しようとする企業に個別にライセンスされたものである。これらの実施形態は、
図9Aおよび
図9Bに関連して論じた実施形態に適用できるのと同様、
図6から
図8に関連して論じた実施形態にも適用することができる。
【0121】
なおも
図9Bを参照すると、いくつかの実施形態において、
図1および
図2に関連して上記したようにステップ(954)から(962)を実行してもよい。
【0122】
方法950は、第2演算装置上で実行される全文検索システムによって、第2の一組の文書を受け取るステップを含む(964)。一実施形態において、第2の一組の文書は企業内文書(例えば、全文検索システム902を実施しようとしている企業が生成したり、維持したり、アクセスしたりした文書、あるいは他のかたちで当該企業と関連している文書)を含む。他の実施形態において、検索システム902は、一つ以上の企業内文書を検索可能にする。そうするために、検索システム902は、一つ以上の企業内文書をインデックス化する。一実施形態において、検索システム902は、(例えば、トピックスライシングモジュール702および/またはキーワード抽出モジュール802に、
図7Bおよび
図8Bに関連して上記したように文書を処理させることによって)企業内文書の前処理を指示する。他の実施形態において、検索システム902は、(
図1および
図2に関連して上記したように)トレーニングコーパスに基づき文書それぞれにSDRを生成するよう指示する。さらに他の実施形態において、各文書にSDRを生成したあと、検索システム902は検索プロセスを有効にする。検索プロセスでは、クエリタームが(例えば、クエリ入力処理モジュール607によって)受け取られ、クエリターム用のSDRが生成され、当該クエリSDRがインデックス化されたSDRと比較される。
【0123】
方法950は、第2の一組の文書における各文書に対して少なくとも一つのSDRを、表現生成器によって生成するステップを含む(966)。一実施形態において、検索システム902は、文書をフィンガープリントモジュール302に送って上記少なくとも一つのSDRを生成する機能を有する。他の実施形態において、検索システム902は、文書を表現生成器114に送って上記少なくとも一つのSDRを生成する機能を有する。上記少なくとも一つのSDRとしては、例として、文書中の各タームについてのSDR、文書のサブセクション(例えば、文または段落)についての複合SDR、文書そのものについての複合SDRが挙げられるが、これらに限定されるものではない。
【0124】
方法950は、生成させたSDRそれぞれを、全文検索システム中のインデクサによって、文書フィンガープリントインデックスに保存するステップを含む(968)。一実施形態において、上述したSDRをSDRデータベース120に保存したのと実質的に同じやり方で、生成したSDRを文書フィンガープリントインデックス920に保存する。
【0125】
方法950は、第3演算装置から、検索システム中のクエリモジュールによって、少なくとも一つの検索タームを受け取るステップを含む(970)。一実施形態において、クエリモジュールは、
図6Aおよび
図6Bに関連して上記したように検索タームを受け取る。
【0126】
方法950は、クエリモジュールにより、上記受け取った少なくとも一つの検索タームのSDRに類似したSDRを有する少なくとも一つのタームを文書フィンガープリントインデックスにクエリするステップを含む(972)。一実施形態において、クエリモジュール601は、文書フィンガープリントインデックス920にクエリする。他の実施形態において、システム900は文書類似エンジン304bを備え、クエリモジュール601は文書類似エンジン304bに指示して、文書フィンガープリントインデックス920中の少なくとも一つのタームのSDRを特定させる。さらに他の実施形態において、クエリモジュール601は、マシン102b上で実行される類似エンジン304に指示して、タームを特定させる。他のいくつかの実施形態において、クエリモジュール601は、
図6Aおよび
図6Bに関連して上記したように検索を実行するが、ただし、クエリモジュール601は、クエリを外部の企業検索システムに送る代わりに、クエリをシステム900内のコンポーネントに送る。
【0127】
方法950は、クエリモジュールにより、第3演算装置に、クエリの結果を提供するステップを含む(974)。いくつかの実施形態において、一つ以上の結果(例えば、一つ以上の類似のターム)があり、クエリモジュール601は、まず、それらの結果をランク付けするか、あるいは他のモジュールに指示してそれらの結果をランク付けさせる。ランク付けは、従来のランク付け技術を実施してもよい。あるいは、ランク付けは、
図11Aおよび
図11Bに関連して以下に記載する方法の実行を含んでもよい。
【0128】
いくつかの実施形態において、全文検索システム902は、ユーザがクエリ結果についてフィードバックをすることができるユーザインターフェース(不図示)を提供する。これらの実施形態の一つでは、ユーザインターフェースは、結果が役に立ったかどうかをユーザが指定することができるユーザインターフェース要素を含む。これらの実施形態の他のものでは、ユーザインターフェースは、ユーザがクエリモジュール601に指示してクエリ結果の一つを用いて新たな検索を実行させることができるユーザインターフェース要素を含む。これらの実施形態のさらに他のものでは、ユーザインターフェースは、ユーザがクエリ結果の一つに関連するトピックに興味があり、当該クエリ結果の識別子および/または関連するトピックを、当該ユーザまたはシステム900が将来参照するために保存したいと示すことができるユーザインターフェース要素を含んでいてもよい。
【0129】
一実施形態において、システムは、ユーザが実行する検索の種類をモニタリングし、当該ユーザが提供した検索タームのSDRの分析に基づいて、当該ユーザのプロファイルを作成する機能を有する。そのような実施形態において、プロファイルが当該ユーザの専門知識のレベルを特定し、他のユーザに提供されてもよい。
【0130】
図10Aおよび
図10Bを参照すると、前回の検索結果に基づいて、ユーザの専門知識をユーザの専門知識に対するリクエストとマッチさせるシステムの実施形態をブロック図に示す。
図10Aは、ユーザの専門知識プロファイルを作成する機能(例えば、ユーザ専門知識プロファイルモジュール1010)が従来の全文検索システムと関連して提供されている実施形態を示す。
図10Bは、ユーザの専門知識プロファイルを作成する機能(例えば、ユーザ専門知識プロファイルモジュール1010)が全文検索システム902と関連して提供されている実施形態を示す。
図10Aおよび
図10Bに示されているモジュールはどちらも、ハードウェアモジュールまたはソフトウェアモジュールとして提供されてもよい。
【0131】
図10Cを参照すると、前回の検索結果に基づいて、ユーザの専門知識をユーザの専門知識に対するリクエストとマッチさせる方法1050の実施形態をフローチャートに示す。方法1050は、少なくとも一つの基準に沿って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(1052)。方法1050は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(1054)。方法1050は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む(1056)。方法1050は、一覧の各タームについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(1058)。(i)タームが存在するデータ文書の数、(ii)各データ文書においてタームが存在する数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法1050は、表現生成器によって、上記存在情報を用いて、一覧のタームごとのスパース分散表現(SDR)を生成するステップを含む(1060)。方法1050は、SDRデータベースに、生成したSDRのそれぞれを保存するステップを含む(1062)。方法1050は、第2演算装置上で実行されるクエリモジュールによって、第3演算装置から、少なくとも一つのタームを受け取るステップを含む(1064)。方法1050は、第2演算装置上で実行されるユーザ専門知識プロファイルモジュールによって、第3演算装置のユーザの識別子および上記少なくとも一つのタームを保存するステップを含む(1066)。方法1050は、表現生成器によって、上記少なくとも一つのタームのSDRを生成するステップを含む(1068)。方法1050は、ユーザ専門知識プロファイルモジュールによって、第4演算装置から、第2のタームおよび類似のタームに関連するユーザの識別情報のリクエストを受け取るステップを含む(1070)。方法1050は、上記少なくとも一つのタームのSDRと上記第2のタームのSDRとの語義的類似レベルを、類似エンジンによって特定するステップを含む(1072)。方法1050は、ユーザ専門知識プロファイルモジュールによって、第4演算装置に、第3演算装置のユーザの識別子を提供するステップを含む(1074)。
【0132】
一実施形態において、ステップ(1052)から(1062)は、
図2およびステップ(202)から(214)に関して上記したように実行される。
【0133】
方法1050は、第2演算装置上で実行されるクエリモジュールによって、第3演算装置から、少なくとも一つのタームを受け取るステップを含む(1064)。一実施形態において、クエリモジュール601は上記少なくとも一つのタームを受け取り、クエリを、
図6Aから
図6Cと
図9Aおよび
図9Bに関して上記したように実行する。
【0134】
方法1050は、第2演算装置上で実行されるユーザ専門知識プロファイルモジュールによって、第3演算装置のユーザの識別子および上記少なくとも一つのタームを保存するステップを含む(1066)。一実施形態において、ユーザプロファイルモジュール1002が、上記ユーザの識別子および上記少なくとも一つのタームをクエリ入力処理モジュール607から受け取る。他の実施形態において、ユーザ専門知識プロファイルモジュール1010が、上記ユーザの識別子および上記少なくとも一つのタームをクエリ入力処理モジュール607から受け取る。さらに他の実施形態において、ユーザ専門知識プロファイルモジュール1010が、上記ユーザの識別子と上記少なくとも一つのタームをデータベースに保存する。例えば、ユーザ専門知識プロファイルモジュール1010は、上記ユーザの識別子と上記少なくとも一つのタームを、ユーザ専門知識SDRデータベース1012に(例えば、上記少なくとも一つのタームのSDRとともに)保存する。いくつかの実施形態において、上記方法は、ユーザたちから受け取ったクエリを、ユーザ識別子および各クエリタームのSDRとともに記録するステップを含む。いくつかの実施形態において、ユーザプロファイルモジュール1002はまた、クエリしたユーザが、当該ユーザに関連があるまたは当該ユーザにとって興味があると示した検索結果の識別情報を受け取る機能を有する。
【0135】
方法1050は、表現生成器によって、上記少なくとも一つのタームのSDRを生成するステップを含む(1068)。一実施形態において、ユーザ専門知識プロファイルモジュール1010が、少なくとも一つのデータ項目をフィンガープリントモジュール302に送ってSDRを生成させる。他の実施形態において、ユーザ専門知識プロファイルモジュール1010は、少なくとも一つのタームを表現生成器114に送ってSDRを生成させる。
【0136】
いくつかの実施形態において、ユーザが長期にわたってクエリをし続けるにつれて、ユーザ専門知識プロファイルモジュール1010は、複数のデータ項目を受け取る。これらの実施形態の一つでは、ユーザ専門知識プロファイルモジュール1010は、第1クエリタームのSDRと第2クエリタームのSDRを結びつける複合SDRの生成を指示する。その結果生成された複合SDRは、ユーザが行うクエリの種類をより正確に反映し、より多くのタームSDRが長期にわたって複合SDRに追加できるほど、複合SDRはより正確に、ユーザの専門知識の領域を反映する。
【0137】
方法1050は、ユーザ専門知識プロファイルモジュールによって、第4演算装置から、第2のタームおよび類似のタームに関連するユーザの識別情報のリクエストを受け取るステップを含む(1070)。いくつかの実施形態において、類似のデータ項目と関連するユーザの識別情報のリクエストは明示的である。他の実施形態において、ユーザ専門知識プロファイルモジュール1010は、上記識別情報を、第4演算装置のユーザへのサービスとして、自動的に供給する。例として、ユーザが作成している白書中のクエリタームに類似した文書を検索している第4演算装置のユーザは、選択されたクエリタームに類似したトピックの専門知識を深めた他のユーザの識別情報をリクエストすることができる(あるいは、上記識別を受ける選択肢を与えられることができる)。例として、この機能は、ユーザが、特定のトピックの専門知識を深めたユーザを特定することを可能にする。これは、そうした専門知識が、当該ユーザの正式の呼称(official title)、職務内容説明書(job description)、あるいは役割の一部であるかに関わらない。それにより、公式の資料、口コミ、または人脈のみに基づいてではそれまで識別が困難だった情報が利用可能になる。専門知識の複数の分野(例えば、一つまたは複数のクエリタームに基づく複数のSDR)が単独のユーザに関連していることもあるので、専門知識の第一分野だけでなく第二分野についても情報が得られる。例えば、ある個人は正式には調査の第一分野に焦点を当てているが、当該個人は、調査の第二分野への仕事の潜在的広がりを調査する一週間のうちに一連のクエリをするかもしれない。そのように限られた時間で得られた専門知識でも、他のユーザにとって役に立つかもしれない。他の例として、実際の関心領域に基づいてチームを作ろうとしている、あるいは組織を構築(再構築)しようとしている個人が、ユーザ専門知識プロファイルモジュール1010の機能を用いて、当該個人の必要としているものに関連する専門知識を有するユーザを特定しようとするかもしれない。
【0138】
方法1050は、上記少なくとも一つのタームのSDRと上記第2のタームのSDRとの意味類似性レベルを、類似エンジンによって特定するステップを含む(1072)。一実施形態において、類似エンジン304は第2マシン102b上で実行される。他の実施形態において、類似エンジン304は、検索システム902によって提供され、検索システム902内で実行される。専門知識分野を有している個人を特定しようとするユーザからのクエリタームを受け取ると、ユーザ専門知識プロファイルモジュール101は類似エンジン304に指示して、ユーザ専門知識SDRデータベース1012から、当該リクエストを満たす他のユーザを特定してもよい。
【0139】
方法1050は、ユーザ専門知識プロファイルモジュールによって、第4演算装置に、第3演算装置のユーザの識別子を提供するステップを含む(1074)。
【0140】
いくつかの実施形態において、本明細書に記載の方法およびシステムのユーザは、クエリタームに関する好みを特定してもよい。一例として、クエリタームに対して検索を行おうとする第1のユーザは、クエリタームの法的側面に関連する文書(例えば、裁判所の事件、特許出願、公開されたライセンス、または他の法律文書におけるクエリタームなどの用語の使用)に関心がある場合があり、同じクエリタームに対して検索を行おうとする第2のユーザは、クエリタームの科学的側面に関連する文書(例えば、クエリタームの使用、または白書、調査刊行物、グラント出願、または他の科学的文書におけるクエリタームなどの用語の使用)に関心がある場合がある。いくつかの実施形態において、本明細書に記載したシステムは、そのような好みを特定し、(SDR分析に基づいて)どの検索結果が検索者の好む文書の種類に最も近いかに従って検索結果をランク付けする機能を提供する。
【0141】
再び
図10Aおよび
図10Bに戻ると、ブロック図は、企業検索システムから受け取ったクエリ結果を、ユーザの好みに基づいて語義的にランク付けするシステムの実施形態を示す。
図10Aに、語義的ランク付けの機能を、従来の企業検索システムからの結果と併せて提供する実施形態を示す。
図10Bに、語義的ランク付けの機能を、検索システム902からの結果と併せて提供する実施形態を示す。
【0142】
図10Dを参照すると、フローチャートは、全文検索システムから受け取ったクエリ結果をユーザプロファイルに基づいて語義的にランク付けする方法1080の一実施形態を示す。方法1080は、少なくとも一つの基準に沿って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(1081)。方法1080は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(1082)。方法1080は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む(1083)。方法1080は、一覧の各タームについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(1084)。(i)タームが存在するデータ文書の数、(ii)各データ文書においてタームが存在する数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法1080は、表現生成器によって、上記存在情報を用いて、一覧のタームごとのスパース分散表現(SDR)を生成するステップを含む(1085)。方法1080は、SDRデータベースに、生成したSDRのそれぞれを保存するステップを含む(1086)。方法1080は、第2演算装置上で実行されるクエリモジュールによって、第3演算装置から、第1タームおよび複数の優先文書を受け取るステップを含む(1087)。方法1080は、表現生成器によって、上記複数の優先文書を用いた複合SDRを生成するステップを含む(1088)。方法1080は、上記第1タームに類似した一組の結果文書のそれぞれの識別情報のクエリを、クエリモジュールによって全文検索システムに送るステップを含む(1089)。方法1080は、上記一組の結果文書中で識別された文書それぞれのSDRを、表現生成器を用いて生成するステップを含む(1090)。方法1080は、上記一組の結果文書のそれぞれに対して生成した各SDRと上記複合SDRとの語義的類似レベルを、類似エンジンによって決定するステップを含む(1091)。方法1080は、上記決定された語義的類似レベルに基づいて、上記一組の結果文書中の少なくとも一つの文書の順番を、第2演算装置上で実行されるランキングモジュールによって変更するステップを含む(1092)。方法1080は、上記一組の結果文書のそれぞれの識別情報を、クエリモジュールによって、第3演算装置へ、変更された順番で供給するステップを含む(1093)。
【0143】
一実施形態において、ステップ(1081)から(1086)は、
図2およびステップ(202)から(214)に関して上記したように実行される。
【0144】
方法1080は、第2演算装置上で実行されるクエリモジュールによって、第3演算装置から、第1タームおよび複数の優先文書を受け取るステップを含む(1087)。一実施形態において、クエリ入力処理モジュール607は、
図6A、
図6B、
図9A、
図9Bに関連して上記したように第1タームを受け取る。他の実施形態において、クエリ入力処理モジュール607は、第3演算装置のユーザが一つ以上の優先文書を供給(例えば、アップロード)するのを可能にするユーザインターフェース要素(図示せず)を提供する。優先文書は、検索中のユーザが関心のある種類の文書を示す一つ以上のデータ項目を含む任意の種類または形態のデータ構造でよい。例として、科学研究者は、その任意の検索目的に関連するあるいは検索目的にとって好ましいと考える種類の文書のスタイルおよび/または内容を反映する多くの研究文書を提供できる。他の例として、法律家は、その任意の検索目的に関連するあるいは検索目的にとって好ましいと考える種類の文書のスタイルおよび/または内容を反映する多くの法律文書を提供できる。さらに、上記システムは、ユーザが、異なる組の優先文書に対して異なる検索をできるようにしたり、ユーザが、異なる時間の異なる検索とともに用いる異なる優先プロファイルを生成できるようにしたりする機能を提供する。例えば、異なる優先プロファイルは、研究の第1のトピックに焦点を当てた科学的検索により関連があり、第2の、異なるトピックに焦点を当てた科学的検索により関連が少ないかもしれない。
【0145】
方法1080は、表現生成器によって、上記複数の優先文書を用いた複合SDRを生成するステップを含む(1088)。一実施形態において、ユーザ優先モジュール1004が、複合SDRの生成を指示する。例えば、ユーザ優先モジュール1004は、優先文書をフィンガープリントモジュール302に送って複合SDRを生成させる。他の例として、ユーザ優先モジュール1004は、優先文書を表現生成器114に送って、複合SDRを生成させる。個々の優先文書のSDRを結合する複合SDRは、個々の文書の複合SDRをタームSDRから生成するのと同じやり方で生成してよい。ユーザ優先モジュール1004は、生成した複合SDRを、ユーザ優先SDRデータベース1006に保存してよい。
【0146】
方法1080は、上記第1タームに類似した一組の結果文書のそれぞれの識別情報のクエリを、クエリモジュールによって全文検索システムに送るステップを含む(1089)。クエリモジュール601が、
図6Aおよび
図6Bに関連して記載したように、クエリを外部の企業検索システムに送ってもよい。あるいは、クエリモジュール601が、
図9Aおよび
図9Bに関連して記載したように、クエリを検索システム902に送ってもよい。
【0147】
方法1080は、上記一組の結果文書中で識別された文書それぞれのSDRを、表現生成器を用いて生成するステップを含む(1090)。一実施形態において、ユーザ優先モジュール1004は、検索システム(検索システム902または第三者の企業検索システム)から一組の結果文書を受け取る。他の実施形態において、ユーザ優先モジュール1004は、類似エンジン304に指示して、受け取った結果文書のそれぞれについてSDRを生成させる。
【0148】
方法1080は、上記一組の結果文書のそれぞれに対して生成した各SDRと上記複合SDRとの語義的類似レベルを、類似エンジンによって決定するステップを含む(1091)。一実施形態において、類似エンジン304が第2マシン102b上で実行される。他の実施形態において、類似エンジン304は検索システム902によって提供され、検索システム902内で実行される。一実施形態において、ユーザ優先モジュール1004が類似エンジン304に指示して、類似レベルを特定させる。他の実施形態において、ユーザ優先モジュール1004は、類似エンジン304から類似レベルを受け取る。
【0149】
方法1080は、上記決定された語義的類似レベルに基づいて、上記一組の結果文書中の少なくとも一つの文書の順番を、第2演算装置上で実行されるランキングモジュールによって変更するステップを含む(1092)。一実施形態において、一例として、一組の結果文書に第5の文書として含まれる結果は、第1から第4の文書よりも、複数の優先文書の複合SDRに対してより高いレベルの類似性を有することを類似エンジン304が示してもよいが、これに限定されるものではない。ユーザ優先モジュール1004はそれから、第5文書(あるいは第5文書の識別情報)を第1の位置へ移動させてもよい。
【0150】
方法1080は、上記一組の結果文書のそれぞれの識別情報を、クエリモジュールによって、第3演算装置へ、変更された順番で供給するステップを含む(1093)。一実施形態において、優先文書と比較して検索結果を分析することにより、システムは、検索の文脈を考慮して、検索者に最も重要である可能性が高い検索結果を選択して、検索結果をユーザ独自のものにしてもよい。他の例として、従来の、ランク付けされた任意の数の結果(例えば、最初の十個、あるいは最初のページ、あるいは他の任意の数の結果)を返す代わりに、システムは何千もの文書を分析して、検索者に語義的に関係のある文書のみを提供する。
【0151】
いくつかの実施形態において、患者の病気の徴候は非常に早い段階で現れ、医療専門家は明確な医療診断を下すことができる。しかし、他のいくつかの実施形態において、患者は、徴候のうち一部だけを示すかもしれず、医療診断を明確に下すことがまだできない。例えば、患者が、十の異なる種類の測定の値が測定される血液サンプルを提供し、それらの測定のうち、一種類のみが病的な値を示し、他の九つの測定は、閾値近くではあるものの正常値の範囲内にあるかもしれない。そのような場合に明確な医療診断を下すのは困難かもしれず、患者はさらなる検査、追加のモニタリング、遅い診断を受けることになるかもしれず、そのあいだ医療専門家は残りの徴候が進むかどうか様子を見る。そのような例では、早期に診断できないことで、治療が遅れ、患者の医療効果に悪影響を及ぼすかもしれない。本明細書に記載する方法およびシステムのいくつかの実施形態は、そのような実施形態に対応するものであり、医療診断を支える機能を提供する。
【0152】
上記したように、本明細書に記載したシステムは、テキストベースの項目に対してと同様、数値データの項目に対してもSDRを生成し保存し、続いて受け取った文書に対して生成されたSDRと保存されたSDRの一つとの類似レベルを特定してもよい。いくつかの実施形態において、受け取った文書が他のデータまたはメタデータ(例えば、医療診断)と関連している場合、上記システムは、類似レベルを特定した結果として、当該データまたはメタデータの識別情報を提供してもよい(例えば、数値データの項目を含む文書と関連した医療診断を特定する)。
【0153】
図11Aに関連して
図11Bを参照すると、フローチャートは、医療診断支援を行う方法1150の一実施形態を示す。方法1150は、少なくとも一つの基準に沿って選択され医療診断と関連する一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(1152)。方法1150は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(1154)。方法1150は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在する測定の一覧を生成するステップを含む(1156)。方法1150は、第1の演算装置上で実行する表現生成器によって、一覧における各測定について、以下を含む存在情報を決定することを含む(1158)。(i)測定値が存在するデータ文書の数、(ii)各データ文書において測定値が存在する数、(iii)測定値が存在するデータ文書それぞれに関連付けられた座標ペア。方法1150は、表現生成器によって、上記存在情報を用いて、一覧の測定値ごとにスパース分散表現(SDR)を生成するステップを含む(1160)。方法1150は、SDRデータベースに、生成したSDRのそれぞれを保存するステップを含む(1162)。方法1150は、第2演算装置上で実行される診断支援モジュールによって、第3演算装置から、複数の測定値を含んでおり、病気の患者と関連する文書を受け取るステップを含む(1164)。方法1150は、表現生成器によって、上記複数の測定値について少なくとも一つのSDRを生成するステップを含む(1166)。方法1150は、上記複数の測定値に対して生成した少なくとも一つのSDRに基づいて、表現生成器によって、上記文書についての複合SDRを生成するステップを含む(1168)。方法1150は、上記文書に対して生成した複合SDRとSDRデータベースから読み出したSDRとの意味類似性レベルを、第2演算装置上で実行される類似エンジンによって決定するステップを含む(1170)。方法1150は、上記SDRデータベースから読み出したSDRと関連する医療診断の識別情報を、上記決定された意味類似性レベルに基づいて、診断支援モジュールによって、第3演算装置へと供給するステップを含む(1172)。
【0154】
方法1150は、少なくとも一つの基準に沿って選択され医療診断と関連する一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(1152)。一実施形態において、クラスタ化は、
図2に関連して上記したように行われる。いくつかの実施形態において、一組の文書中の各文書は、上記したように複数のデータ項目を含む。これらの実施形態の一つでは、しかしながら、複数のデータ項目は、一つのサンプルから一度に採取した一組の検査値である(例えば、医療患者の血液サンプル)。一例として、文書中の複数のデータ項目は、カンマで区切られた数値のリストとして提供されてもよい。一例として、上記システムは500個の文書(500人の患者それぞれにつき一個の文書)を受け取り、各文書は5つの測定値(各患者によって提供された単一の血液サンプルに由来する一種類の測定の5つの値)を含み、医療診断と関連してもよい。上記システムは、上記測定値をデータ項目として用い、
図2に関連して上記したように文書ベクターを生成してもよい。一実施形態において、
図11Aのシステムは、
図1Aから
図1Cおよび
図3と関連して記載した機能を有してもよい。しかしながら、
図11Aのシステムは、検査値を含む文書を解析するよう最適化された異なるパーサ110(実験文書パーサおよび前処理モジュール110bとして図示)を有してもよく、当該システムは、一組のデータ文書に存在する測定値の一覧の生成を最適化するビニングモジュール(binning module)150を有してもよい。これについてはのちほどさらに詳しく述べる。
【0155】
方法1150は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(1154)。一実施形態において、意味マップ108の生成、文書ベクターの意味マップ108への配布、および座標ペアの関連付けは、
図2に関連して上記したように行われる。一例として、意味マップ108中の各点は、一種類の測定値について複数の検査値を含む一つ以上の文書を示してもよいが、これに限定されるものではない。上記測定値としては、メタボリックパネル(metabolic panel)で特定した任意の種類の測定値(例えば、一リットル当たりのカルシウム)が挙げられるが、これに限定されるものではない。本明細書に記載の特定の例では、血液検査に由来する検査値について述べているが、当業者ならば、医療診断と関連する任意の種類の医療データを、本明細書に記載する方法およびシステムに用いてよいとわかるであろう。
【0156】
方法1150は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在する測定値の一覧を生成するステップを含む(1156)。一実施形態において、測定値は、
図2に関連して上記したように一覧化される。しかしながら、いくつかの実施形態において、上記システムは、上記一覧を生成する最適化されたプロセスを提供するビニングモジュール150を有する。受け取られた各文書は、複数の値を含み、各値が一種類の測定の値を特定してもよい。例えば、文書は、血中カルシウムレベルの値を含んでもよい。当該値は、文書中の数値であり、「カルシウム」は測定の種類である。しかしながら、各種類の値は文書ごとに違う。例えば、500個の文書の組の中で、「カルシウム」の測定値は、0.0~5.2mg/literの範囲にある。ただし、これに限定されるものではない。テキストベースの文書を扱う場合は、複数の文書がそれぞれある単語を含んでいるならば、どの文書でもその単語は同一である――例えば、二つの文書が「早く」という単語を含んでいるならば、「早く」という単語を形成しているテキストはどの文書でも同じである。それに対して、検査値を扱う場合は、二つの文書がそれぞれ同じ種類の測定(例えば、「カルシウム」測定または「グルコース」測定)の値を含みながら、非常に異なる値 (例えば、0.1と5.2)を示すことがありうる。どちらの値も、その種類の測定では妥当な値である。したがって、上記システムを最適化するために、上記システムは、一組の文書に含まれる各種類の測定の値の範囲を特定し、上記範囲を実質的に均等にサブグループへ分ける機能をユーザに提供する。そのような処理はビニング(binning)と称される場合がある。ビニングを行うことで、測定値におけるかなりの量の重複がグループ分けされる。例として、上記システムは、一組の文書中の「カルシウム」測定値には5000もの値があり、当該値の範囲は0.01~5.2であることを示し、ユーザに、値をどのように分布させるか指定する選択肢を与えてもよい。例えば、ユーザは、0.01から0.3までの値は第1サブ区分(本明細書では「ビン」とも称する)にグループ分けされ、0.3から3.1までの値は第2サブ区分にグループ分けされ、3.1から5.2までの値は第3サブ区分にグループ分けされると指定してもよい。上記システムはそれから、5000の値のうちどれほどの数値が上記三つのビンに分類されるかを一覧化し、存在情報を用いて各値についてSDRを生成してもよい。ビニングモジュール150がこの機能を提供してもよい。
【0157】
方法1150は、一覧の測定値それぞれについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(1158)。(i)測定値が存在するデータ文書の数、(ii)各データ文書において測定値が存在する数、(iii)測定値が存在するデータ文書それぞれに関連付けられた座標ペア。一実施形態において、存在情報は、
図2に関連して上記した情報である。
【0158】
方法1150は、表現生成器によって、上記存在情報を用いて、一覧の測定値ごとにスパース分散表現(SDR)を生成するステップを含む(1160)。一実施形態において、SDRは、
図2に関連して上記したように生成される。
【0159】
方法1150は、SDRデータベースに、生成したSDRのそれぞれを保存するステップを含む(1162)。一実施形態において、生成したSDRは、
図2に関連して上記したように、SDRデータベース120に保存する。
【0160】
方法1150は、第2演算装置上で実行される診断支援モジュールによって、第3演算装置から、複数の測定値を含んでおり、病気の患者と関連する文書を受け取るステップを含む(1164)。一実施形態において、診断支援モジュール1100は、クライアント102cから上記文書を受け取る。
【0161】
方法1150は、表現生成器によって、上記複数の測定値について少なくとも一つのSDRを生成するステップを含む(1166)。一実施形態において、診断支援モジュール1100はフィンガープリントモジュール302に指示して、
図1から
図3に関連して上記したようなSDRを生成させる。一実施形態において、診断支援モジュール1100は表現生成器114に指示して、
図1から
図3に関連して上記したようなSDRを生成させる。
【0162】
方法1150は、上記複数の測定値に対して生成した少なくとも一つのSDRに基づいて、表現生成器によって、上記文書についての複合SDRを生成するステップを含む(1168)。一実施形態において、診断支援モジュール1100はフィンガープリントモジュール302に指示して、
図1から
図3に関連して上記したような複合SDRを生成させる。一実施形態において、診断支援モジュール1100は表現生成器114に指示して、
図1から
図3に関連して上記したような複合SDRを生成させる。
【0163】
方法1150は、上記文書に対して生成した複合SDRとSDRデータベースから読み出したSDRとの語義的類似レベルを、第2演算装置上で実行される類似エンジンによって決定するステップを含む(1170)。一実施形態において、診断支援モジュール1100は類似エンジン304に指示して、
図3から
図5に関連して上記したように、語義的類似レベルを決定させる。
【0164】
方法1150は、上記SDRデータベースから読み出したSDRと関連する医療診断の識別情報を、上記決定された語義的類似レベルに基づいて、診断支援モジュールによって、第3演算装置へと供給するステップを含む(1172)。そのようなシステムは、たとえ個々の測定値がまだ病的レベルに達していない場合でも、近い将来の医療診断を検知できる。複数のSDRを入力し、それらのあいだでパターンを分析することで、上記システムは患者のパターンの変化を特定でき、それにより、動的なプロセスですらとらえることができる。例えば、前癌検知システムは、一部の値における小さな変化を特定するが、しかしパターンを他の患者のSDRと比較する能力を持たせ、時間ベースのシーケンス(time-based sequences)を分析させることで、医療診断を下すことができる。
【0165】
一実施形態において、診断支援モジュール1100は、不完全なパラメータベクトルについても、例えば、診断支援モジュール1100がある文書における複数の測定値を受け取り、その複数の測定値において、診断に関連するタイプの測定値が欠落している場合でも、結果の質を低下させることなく、SDRの生成を指示することができる。例えば、上述したように、2つのSDRが同一でない場合でも、当該2つのSDRを比較し、類似性の閾値レベルを満たす類似レベルを特定することができる。そのため、測定値が不完全な文書について生成されたSDRにおいて、1箇所または2箇所(例えば、より完全な文書であれば測定値の値が存在するであろう、意味マップ108におけるある箇所)が欠落している場合であっても、保存されたSDRを使用して比較を行うことができる。そのような実施形態において、診断支援モジュール1100は、医療診断に関連しているが、値が受け取られていない、少なくとも1つのパラメータを特定することができ、当該値を提供するよう勧めることができる(例えば、欠落しているパラメータについて、引き続きの手続きまたは分析の提案)。
【0166】
いくつかの実施形態において、受け取った文書が、医療診断に加えて、メタデータに対する関連性を含んでいてもよい。例えば、文書が患者の性別の識別にも関連付けられていてもよい。そのようなメタデータを使用して、2つのSDRと特定された医療診断との類似レベルの確認を行ってもよい。例として挙げると、診断支援モジュール1100は、2つのSDRが類似していると判定し、上記2つのSDRの一方が生成された文書に関連付けられた医療診断を特定してもよい。そして診断支援モジュール1100は、メタデータに基づく規則を適用して、上記医療診断の識別の正確性を確認してもよい。例として挙げると、限定するものではないが、メタデータによって患者が男性であることが示され、特定された医療診断によって卵巣癌のおそれがあることが示された場合、診断支援モジュール1100は、特定された医療診断をクライアント102cのユーザに提供するのではなく、代わりにエラー(男性には卵巣がないため、卵巣癌にはなり得ない)を報告するように、規則により規定してもよい。
【0167】
図13、
図14A、および
図14Bを参照すると、言語横断スパース分散表現の生成および使用のための方法およびシステムの種々の実施形態が開示されている。いくつかの実施形態において、システム1300は、一組の文書の一部またはすべての、第1言語から第2言語への翻訳を受け取ってもよく、その翻訳を使用して、翻訳済み文書のコーパスから生成された第2SDRデータベースにおいて対応するSDRを特定してもよい。概略すると、システム1300はエンジン101を備えており、エンジン101は、第2表現生成器114b、第2パーサおよび前処理モジュール110c、翻訳済みの一組のデータ文書104b、第2全文検索システム122b、第2データ項目一覧112b、および第2SDRデータベース120bを備えている。当該エンジン101は、
図1Aに関連して上述したエンジン101であってもよい。
【0168】
図14Aを概略すると、方法1400は、少なくとも1つの基準に従って選択された、第1言語の一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(1402)。方法1400は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(1404)。方法1400は、第1演算装置上で実行される第1パーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む(1406)。方法1400は、一覧の各タームについて、第1演算装置上で実行される第1表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(1408)。(i)タームが存在するデータ文書の数、(ii)各データ文書においてタームが存在する数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法1400は、第1表現生成器によって、上記存在情報を用いて一覧の各タームについてスパース分散表現(SDR)を生成するステップを含む(1410)。方法1400は、生成された上記SDRそれぞれを、第1表現生成器によって第1SDRデータベースに保存するステップを含む(1412)。方法1400は、参照マップ生成器によって、上記一組のデータ文書のそれぞれの第2言語への翻訳を受け取るステップを含む(1414)。方法1400は、上記一組のデータ文書のそれぞれからの座標ペアと上記翻訳済みの一組のデータ文書における対応する各文書とを意味マップによって関連付けるステップを含む(1416)。方法1400は、第2パーサによって、上記翻訳済みの一組のデータ文書に存在するタームの第2一覧を生成するステップを含む(1418)。方法1400は、上記翻訳済みの一組のデータ文書に基づく上記第2一覧の各タームについて、第2表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(1420)。(i)タームが存在する翻訳済みデータ文書の数、(ii)各翻訳済みデータ文書においてタームが存在する数、(iii)タームが存在する翻訳済みデータ文書それぞれに関連付けられた座標ペア。方法1400は、上記第2一覧の各タームについて、上記翻訳済みの一組のデータ文書に基づいて、第2表現生成器によってSDRを生成するステップを含む(1422)。方法1400は、上記第2一覧の各タームについて生成された上記SDRそれぞれを、第2表現生成器によって第2SDRデータベースに保存するステップを含む。方法1400は、第1表現生成器によって、第1言語の第1文書の第1SDRを生成するステップを含む(1426)。方法1400は、第2表現生成器によって、第2言語の第2文書の第2SDRを生成するステップを含む(1428)。方法1400は、上記第1SDRと上記第2SDRとの間の距離を決定するステップを含む(1430)。方法1400は、上記第1文書と上記第2文書との類似レベルの識別情報を提供するステップを含む(1432)。
【0169】
一実施形態において、(1402)~(1412)は、
図2および(202)~(214)に関連して既述したように実行される。
【0170】
方法1400は、参照マップ生成器によって、上記一組のデータ文書のそれぞれの第2言語への翻訳を受け取るステップを含む(1414)。一実施形態において、上記翻訳は、マシン102Aが実行する翻訳処理によって、参照マップ生成器106に提供される。他の実施形態において、上記翻訳は、人間の翻訳者によって、エンジン101に提供される。さらに他の実施形態において、上記翻訳は、機械翻訳処理によって、エンジン101に提供される。上記機械翻訳処理は第三者が実施してもよいし、または、上記機械翻訳処理によって、翻訳がエンジン101に直接提供されてもよいし、ネットワークを介して提供されてもよい。さらに他の実施形態において、上記翻訳は、システム1300のユーザによってマシン102Aにアップロードされる。
【0171】
方法1400は、上記一組のデータ文書のそれぞれからの座標ペアと上記翻訳済みの一組のデータ文書における対応する各文書とを意味マップによって関連付けるステップを含む(1416)。一実施形態において、上記関連付けは、意味マップ108によって実施される。他の実施形態において、上記関連付けは、
図2および(204)に関連して既述したように実施される。
【0172】
方法1400は、第2パーサによって、上記翻訳済みの一組のデータ文書に存在するタームの第2一覧を生成するステップを含む(1418)。一実施形態において、上記生成は、
図2および(206)に関連して既述したように実施される。他の実施形態において、第2パーサは、第2言語の文書を解析するよう第2パーサ110cを最適化するよう構成されている(例えば、構成ファイルを含む)。
【0173】
方法1400は、上記翻訳済みの一組のデータ文書に基づく第2一覧の各タームについて、第2表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(1420)。(i)タームが存在する翻訳済みデータ文書の数、(ii)各翻訳済みデータ文書においてタームが存在する数、(iii)タームが存在する翻訳済みデータ文書それぞれに関連付けられた座標ペア。一実施形態において、上記存在情報の決定は、
図2および(208)に関連して既述したように実施される。
【0174】
方法1400は、上記第2一覧の各タームについて、上記翻訳済みの一組のデータ文書に基づいて、第2表現生成器によってSDRを生成するステップを含む(1422)。一実施形態において、上記タームSDRの生成は、
図2および(210)~(214)に関連して既述したように実施される。
【0175】
方法1400は、上記第2一覧の各タームについて生成された上記SDRそれぞれを、第2表現生成器によって第2SDRデータベースに保存するステップを含む(1424)。一実施形態において、上記SDRの第2データベースへの保存は、
図1Aに関連して既述したように実施される。
【0176】
方法1400は、第1表現生成器によって、第1言語の第1文書の第1SDRを生成するステップを含む(1426)。一実施形態において、上記第1SDRの生成は、
図2に関連して既述したように実施される。
【0177】
方法1400は、第2表現生成器によって、第2言語の第2文書の第2SDRを生成するステップを含む(1428)。一実施形態において、上記第2SDRの生成は、
図2に関連して既述したように実施される。
【0178】
方法1400は、上記第1SDRと上記第2SDRとの間の距離を決定するステップを含む(1430)。方法1400は、上記第1文書と上記第2文書との類似レベルの特定を行うステップを含む(1432)。一実施形態では、(1430)~(1432)は、
図3~
図4に関連して既述したように実行される。
【0179】
一実施形態において、本明細書に記載する方法およびシステムを使用して、翻訳システムの品質の測定を行ってもよい。例えば、翻訳システムによって、テキストを第1言語から第2言語に翻訳し、第1言語のテキストと第2言語の翻訳の両方を本明細書に記載のシステムに提供してもよい。上記システムによって、第1言語のテキストのSDRが、翻訳済みテキスト(第2言語)のSDRに類似している(例えば、類似レベルの閾値を上回っている)と決定された場合は、その翻訳の品質が高いとしてもよい。上記の例を続けると、第1言語のテキストのSDRが、翻訳済みテキスト(第2言語)のSDRに十分には類似していない(例えば、所定の類似レベルの閾値を上回っていない)と決定された場合は、その翻訳の品質が低いとしてもよい。
【0180】
ここで、
図13および
図14Aに関連して、
図14Bのフローチャートを参照すると、方法1450の一実施形態が開示されている。
図14Bを概略すると、方法1450は、少なくとも1つの基準に従って選択された、第1言語の一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップを含む(1452)。方法1450は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(1454)。方法1450は、第1演算装置上で実行される第1パーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップを含む(1456)。方法1450は、一覧の各タームについて、第1演算装置上で実行される第1表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(1458)。(i)タームが存在するデータ文書の数、(ii)各データ文書においてタームが存在する数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペア。方法1450は、第1表現生成器によって、上記存在情報を用いて一覧の各タームについてスパース分散表現(SDR)を生成するステップを含む(1460)。方法1450は、生成された上記SDRそれぞれを、第1表現生成器によって、第1SDRデータベースに保存するステップを含む(1462)。方法1450は、参照マップ生成器によって、上記一組のデータ文書のそれぞれの第2言語への翻訳を受け取るステップを含む(1464)。方法1450は、上記一組のデータ文書のそれぞれからの座標ペアと上記翻訳済みの一組のデータ文書のそれぞれとを意味マップによって関連付けるステップを含む(1466)。方法1450は、第2パーサによって、上記翻訳済みの一組のデータ文書に存在するタームの第2一覧を生成するステップを含む(1468)。方法1450は、上記翻訳済みの一組のデータ文書に基づく上記第2一覧の各タームについて、第2表現生成器によって存在情報(以下(i)~(iii)を含む)を決定するステップを含む(1470)。(i)タームが存在する翻訳済みデータ文書の数、(ii)各翻訳済みデータ文書においてタームが存在する数、(iii)タームが存在する翻訳済みデータ文書それぞれに関連付けられた座標ペア。方法1450は、上記第2一覧の各タームについて、上記翻訳済みの一組のデータ文書に基づいて、第2表現生成器によってSDRを生成するステップを含む(1472)。方法1450は、上記第2一覧の各タームについて生成された上記SDRそれぞれを、第2表現生成器によって第2SDRデータベースに保存するステップを含む(1474)。方法1450は、第1言語で受け取った第1タームの第1SDRを、第1表現生成器によって生成するステップを含む(1476)。方法1450は、上記第1SDRと、第2SDRデータベースから読み出した、第2言語の第2タームの第2SDRとの間の距離を決定するステップを含む(1478)。方法1450は、決定された上記距離に基づいて、上記第2言語の第2タームの特定と、上記第1タームと上記第2タームとの類似レベルの識別情報とを提供するステップを含む(1480)。
【0181】
一実施形態において、(1452)~(1474)は、
図14A((1402)~(1424))に関連して既述したように実行される。
【0182】
方法1450は、第1表現生成器によって、第1言語で受け取った第1タームの第1SDRを生成するステップを含む(1476)。一実施形態において、上記第1SDRの生成は、
図2に関連して既述したように実施される。
【0183】
方法1450は、上記第1SDRと、第2SDRデータベースから読み出した、第2言語の第2タームの第2SDRとの間の距離を決定するステップを含む(1478)。方法1450は、決定された上記距離に基づいて、上記第2言語の第2タームの特定と、上記第1タームと上記第2タームとの類似レベルの識別情報とを提供するステップを含む(1480)。一実施形態では、(1478)~(1478)は、
図3および4に関連して上述したように実行される。
【0184】
他の実施形態において、本明細書に記載する方法およびシステムを使用して、検索システムを拡張してもよい。例えば、システム1300は、第1言語の第1ターム(例えば、ユーザが検索システムのクエリで使用したいターム)を受け取ってもよい。システム1300は、上記第1タームのSDRを生成し、生成した第1SDRを使用して、類似レベルの閾値を満たす、第2SDRデータベースの第2SDRを特定してもよい。そして、システム1300は、ユーザの検索クエリを向上させるために、
図6A~6Cに関連して既述したように、上記第1SDR、上記第2SDR、またはその両方を検索システムに提供してもよい。
【0185】
いくつかの実施形態では、本明細書で説明される方法およびシステムは、ストリーミングデータのフィルタリング機能を提供するために使用され得る。例えば、エンティティは、ストリーミングソーシャルメディアデータを確認して、エンティティに関連するソーシャルメディアデータのサブストリーミング(例えば、ブランド管理目的または優位性あるモニタリング)を特定することが望ましい。別の例として、エンティティは、例えばセキュリティ目的のために、ネットワークデバイスを横切るネットワークパケットのストリーミングを確認することが望ましい。
【0186】
次に
図15に関連する
図16を参照すると、システム1500は、フィルタリング基準と一連のストリーミングデータ文書内のデータ項目との間の類似性を特定する方法1600を実行する機能を提供する。システム1500は、エンジン101、フィンガープリントモジュール302、類似エンジン304、曖昧性解消モジュール306、データ項目モジュール308、表現エンジン310、SDRデータベース120、フィルタリングモジュール1502、基準SDRデータベース1520、ストリーミングデータ文書1504と、クライアントエージェント1510とを含む。エンジン101、フィンガープリントモジュール302、類似エンジン304、曖昧性解消モジュール306、データ項目モジュール308、表現エンジン310、およびSDRデータベース120は、
図1Aから
図14に関連して既述したように提供することができる。
【0187】
方法1600は、少なくとも1つの基準に沿って選択された一組のデータ文書を、第1演算装置上で実行される参照マップ生成器によって、二次元距離空間においてクラスタ化し、意味マップを生成するステップ(1602)を含む。上記方法1600は、座標ペアと一組のデータ文書のそれぞれとを意味マップによって関連付けるステップ(1604)を含む。上記方法1600は、第1演算装置上で実行されるパーサによって、一組のデータ文書中に存在するタームの一覧を生成するステップ(1606)を含む。上記方法1600は、一覧の各タームについて、第1演算装置上で実行される表現生成器によって存在情報(以下(i)~(iii)を含む)決定。(i)タームが存在するデータ文書の数、(ii)各データ文書においてタームが存在する数、(iii)タームが存在するデータ文書それぞれに関連付けられた座標ペアを含む。上記方法1600は、表現生成器によって、上記存在情報を用いて一覧の各タームについてスパース分散表現(SDR)を生成するステップ(1610)を含む。方法1600は、生成された上記SDRのそれぞれを、SDRデータベースに保存するステップ(1612)を含む。方法1600は、第2演算装置上で実行されるフィルタリングモジュールによって、第3演算装置から、フィルタリング基準を受信するステップ(1614)を含む。方法1600は、表現生成器によって、上記フィルタリング基準について、少なくとも1つのSDRを生成するステップ(1616)を含む。方法1600は、フィルタリングモジュールによって、データソースから複数のストリーム文書を受信するステップ(1618)を含む。方法1600は、表現生成器によって、複数のストリーム文書のうちの第1文書について、複数のストリーム文書の第1文書に対する複合SDRを生成するステップ(1620)を含む。方法1600は、第2演算装置上で実行される類似エンジンによって、複数のストリーム文書の第1文書について、フィルタリング基準SDRと生成された上記複合SDRとの間の距離を決定するステップ(1622)を含む。方法1600は、決定された上記距離に基づいて、フィルタリングモジュールによって第1のストリーム文書を処理するステップ(1624)を含む。
【0188】
一実施形態では、(1602)~(1612)は、
図2、(202)~(214)に関連して記述したように実行される。
【0189】
方法1600は、第2演算装置上で実行されるフィルタリングモジュールによって、第3演算装置から、フィルタリング基準を受信するステップ(1614)を含む。フィルタリング基準は、フィルタリングモジュール1502が複数のストリーム文書を絞り込むことができる任意のタームであってもよい。例として、上に示したように、エンティティは、エンティティに関連するソーシャルメディアデータのサブストリーミングを特定するために、ストリーミングソーシャルメディアデータを確認することが望ましい場合がある(例えば、ブランド管理目的または優位性あるモニタリングのため)。別の例として、エンティティは、ネットワークデバイスを横切るネットワークパケットのストリーミングを、例えばセキュリティの目的で見直すことが望ましい。したがって、一実施形態では、フィルタリングモジュール1502は、少なくとも1つのブランド関連タームを受信する。例えば、フィルタリングモジュール1502は、(第3のマシンに関連するエンティティ、または競合他社などの第3のマシンに関連付けられていないエンティティに関する)会社、製品、または個人名などの名前を受信することができる。別の実施形態では、フィルタリングモジュール1502は、セキュリティ関連のタームを受信する。例えば、フィルタリングモジュール1502は、コンピュータセキュリティの利用(例えば、ハッキング、マルウェア、またはセキュリティ脆弱性の他の利用に関連するターム)または物理的セキュリティ利用(例えば、暴力行為またはテロリズム行為に関連するターム)に関連するタームを受信する。さらに別の実施形態では、フィルタリングモジュール1502は、少なくとも1つのウィルスシグネチャー(例えば、当業者には理解されるように、コンピュータウィルスシグネチャー)を受信する。
【0190】
いくつかの実施形態では、フィルタリングモジュール1502は、少なくとも1つのSDRを受信する。例えば、マシン102cのユーザは、個別の目的のために既にシステム1500と対話できてお一覧リーミングデータのフィルタリングに関連して使用できる1つまたは複数のSDRを開発できた可能性がある。
【0191】
いくつかの実施形態では、フィルタリングモジュール1502は、追加のフィルタリング基準を特定するためにクエリ拡張モジュール603と通信する(例えば、
図6A~
図6Cに関して既述したように)。例えば、フィルタリングモジュール1502は、クエリ拡張モジュール603(図示しないが、マシン102b上または別のマシン102g上で実行中)にフィルタリング基準を送信することができる。クエリ拡張モジュール603は、フィルタリング基準の第SDRと、SDRデータベース120から検索された第2のタームの第2SDRとの間の意味的類似性のレベルを特定するように類似エンジン304に指示することができる。そのような例では、クエリ拡張モジュール603は、SDRデータベース120内の各タームの識別プロセスを繰り返し、閾値を上回る意味的類似性のレベルを有するタームを戻すよう類似エンジン304に指示する。クエリ拡張モジュール603は、類似エンジン304によって識別された結果のタームをフィルタリングするフィルタリングモジュール1502に提供することができる。次いで、フィルタリングモジュール1502は、結果として生じるタームを、文書のストリーミングセットのフィルタリング時に使用することができる。
【0192】
方法1600は、表現生成器によって、フィルタリング基準について、少なくとも1つのSDRを生成するステップ(1616)を含む。一実施形態では、フィルタリングモジュール1502は、表現生成器114によって少なくとも1つのSDRを生成するためにフィルタリング基準をエンジン101に設定する。別の実施形態では、フィルタリングモジュール1502は、フィルタリング基準をフィンガープリントモジュールSDRに設定する。フィルタリングモジュール1502は、少なくとも1つのSDRを基準SDRデータベース1520に保存することができる。
【0193】
いくつかの実施形態では、少なくとも1つのSDRを生成するステップは任意である。一実施形態では、表現生成器114(またはフィンガープリントモジュール302)は、受信したフィルタリング基準がSDRであるかまたはそれを含むかを判定し、その判定に基づいてSDRを生成するかどうかを決定する。例えば、表現生成器114(またはフィンガープリントモジュール302)は、フィルタリングモジュール1502によって受信されたフィルタリング基準がSDRであると判定し、したがって、他のSDRを生成しないことを決定することができる。あるいは、表現生成器114(またはフィンガープリントモジュール302)は、フィルタリング基準のSDRがSDRデータベース120または基準SDRデータベース1520に既に存在すると判定することができる。しかしながら、別の例として、表現生成器114(またはフィンガープリントモジュール302)は、フィルタリング基準がSDRではないと判定し、その判定に基づいてSDRを生成する。
【0194】
方法1600は、フィルタリングモジュールによって、データソースから複数のストリーム文書を受信するステップ(1618)を含む。一実施形態では、フィルタリングモジュール1502は、例えば、ユーザが任意のタイプのデータ(オーディオ、ビデオ、および/またはテキストベース)を作成、共有、または交換することを可能にするコンピュータ媒介ツール内で生成された任意の長さの書類またはタイプ等の複数のソーシャルメディアテキスト文書を受信する。このようなソーシャルメディアの例としては、ブログ;wiki;Yelp、Inc.(San Francisco,CA)によって提供されるYELPなどの消費者レビューサイト;Twitter,Inc.(San Francisco,CA)によって提供されるTWITTER(登録商標)などのマイクロブログサイト;およびFacebook,Inc.(Menlo Park、CA)によって提供されるFACEBOOK(登録商標)、またはGoogle,Inc.(Mountain View、CA)によって提供されるGOOGLE+などの組み合わせマイクロブログおよびソーシャルネットワーキングサイトが挙げられるが、これらに限定されない。別の実施形態では、フィルタリングモジュール1502は、複数のネットワークトラフィック文書を受信する。例えば、フィルタリングモジュール1502は、複数のネットワークパケットを受信することができ、それぞれのネットワークパケットは、文書と呼ぶことができる。
【0195】
一実施形態では、フィルタリングモジュール1502は、第3演算装置からフィルタリング基準を有するデータソースの識別情報を受信する。別の実施形態では、フィルタリングモジュール1502は、データソースによって提供されるアプリケーションプログラミングインターフェースを活用して、複数のストリーム文書の受信を開始する。さらに別の実施形態では、フィルタリングモジュールは、第3のマシン102cから複数のストリーム文書を受信する。一例として、データソースは第三者データソースであってもよく、フィルタリングモジュール1502は、第三者データソースに接触して複数のストリーム文書の受信を開始するようにプログラムされている。例えば、第三者は、ソーシャルメディアプラットフォームおよびプラットフォーム上で再生成され、ダウンロード可能なストリーム文書を提供する。別の例では、データソースは、第3のマシン102cによって提供可能であり、かつフィルタリングモジュール1502は、第3のマシン102cからストリーム文書を直接検索することができる。例えば、マシン102cは、ネットワーク104(図示せず)上の別のマシンからのネットワークパケットを検索するルータである。以下でさらに詳細に説明するように、フィルタリングモジュールは、1つ以上のデータソースから複数のストリーム文書を受信でき、それらを互いに、基準SDR、またはSDRデータベース120から検索されたSDRと比較することができる。
【0196】
方法1600は、表現生成器によって、複数のストリーム文書のうちの第1文書について、複数のストリーム文書の第1文書に対する複合SDRを生成するステップ(1620)を含む。フィルタリングモジュール1502は、複数のストリーム文書のうちの第1文書を表現生成器114に直接提供することができる。あるいは、フィルタリングモジュール1502は、複数のストリーム文書のうちの第1文書をフィンガープリントモジュール302に提供してもよい。混合SDRは、
図2に関連して既述したように生成されてもよい。いくつかの実施形態では、表現生成器114(またはフィンガープリントモジュール302)は、複数のストリーム文書のうちの第2文書を受け取る前に、複数のストリーム文書のうちの第1文書について複合SDRを生成する。
【0197】
方法1600は、第2演算装置上で実行される類似エンジンによって、複数のストリーム文書の第1文書についてフィルタリング基準SDRと生成された複合SDRとの間の距離を決定するステップ(1622)を含む。フィルタリングモジュール1502は、フィルタリング基準SDRおよび生成された複合SDRを類似エンジン304に提供することができる。あるいは、フィルタリングモジュール1502は、類似エンジン304がフィルタリング基準SDRを直接取り出すことができるように、類似エンジン304に基準SDRデータベース1520の識別情報を提供してもよい。
【0198】
方法1600は、決定された距離に基づいて、フィルタリングモジュールによって、第1のストリーム文書を処理するステップ(1624)を含む。一実施形態では、フィルタリングモジュール1502は、ストリーム文書を第3演算装置102cに転送する。別の実施形態では、フィルタリングモジュール1502は、ストリーム文書を第3演算装置102cに転送しないことを決定する。さらに別の実施形態では、フィルタリングモジュール1502は、決定された距離に基づいて、アラートを第3演算装置に送信するかどうかを決定する。さらに別の実施形態では、フィルタリングモジュール1502は、決定された距離およびフィルタリング基準に基づいて、アラートを第3演算装置に送信するかどうかを決定する。例えば、ストリーム文書およびフィルタリング基準が、所定の閾値を超える、決定された距離に基づいて類似レベルを有する場合、フィルタリングモジュール1502は、ストリーム文書が悪意のあるコンテンツを含むと判定することができる(例えば、ウィルスシグネチャーの場合はSDRに実質的に類似したSDRを有する)。フィルタリングモジュール1502は、ポリシー、ルール、または他の命令セットにアクセスして、そのような場合に、アラートを1人または複数のユーザまたはマシン(例えば、ネットワーク管理者にページング(paging)する)に送信すべきであると判定することができる。
【0199】
一実施形態では、フィルタリングモジュール1502は、複数のストリーム文書のうちの第1文書を、第3のマシン102c上で実行されるクライアントエージェント1510に転送する。クライアントエージェント1510は、ルータ上で実行することができる。クライアントエージェント1510は、任意の種類のネットワークデバイス上で実行することができる。クライアントエージェント1510は、ウェブサーバ上で実行することができる。クライアントエージェント1510は、本明細書に記載された任意の形式またはタイプの種類で実行することができる。
【0200】
一実施形態では、フィルタリングモジュール1502は、複数のストリーム文書のうちの第1文書を、ストリーム文書のサブストリーミングに追加する。別の実施形態では、フィルタリングモジュール1502は、クライアントエージェント1510によってアクセス可能なデータベース(図示せず)にサブストリーミングを保存する(例えば、データベースをポーリングするか、または更新通知または当業者に知られている他のメカニズムを予約後、サブストリーミングの全部または一部をダウンロードする)。さらに別の実施形態では、フィルタリングモジュール1502は、クライアントエージェント1510にサブストリーミングを送信することによってクライアントエージェント1510から受信したポーリングの要求に応答する。
【0201】
いくつかの実施形態では、フィルタリングモジュール1502は、第2のデータソースから第2の複数のストリーム文書を受信する。フィルタリングモジュール1502は、(例えば、第1の複数のストリーム文書のうちの第1文書についての複合SDRの生成に関連して上述したように)第2の複数のストリーム文書のうちの第1文書のための複合SDRの生成を指示する。類似エンジン304は、第2の複数のストリーム文書のうちの第1文書に対して生成された複合SDRと、第1の複数のストリーム文書のうちの第1文書に対して生成された複合SDRとの間の距離を決定する。フィルタリングモジュール1502は、決定された距離に基づいて、第2の複数のストリーム第1文書を第3演算装置に転送するかどうかを決定する。一実施形態では、フィルタリングモジュール1502は、比較されたSDRが所定の類似性閾値を下回ることを決定することに基づいて、第2の複数のストリーミングドキュメントのうちの第1のストリームドキュメントを転送するかどうかを決定してもよく、例えば、フィルタリングモジュール1502は、第1の複数のストリーミングドキュメントのうちの第1のストリームドキュメントと十分に異なる場合(例えば、所定の類似性閾値を下回る場合)、第2の複数のストリーミングドキュメントのうちの第1のストリームドキュメントを廃棄することを決定しながら、第1の複数のストリーミングドドキュメントのうちの第1のストリームドキュメントと類似しすぎる場合(例えば、所定の類似性閾値を超えるため、第2の複数のストリーミングドキュメントのうちの第1のストリームドキュメントは、第1のストリーミングドキュメントと累積的、オーバーラップ的、または類似しすぎるとみなされてもよい。このようにして、フィルタリングモジュール1502は、異なるデータソース(例えば、異なるソーシャルメディアサイトに掲示されるか、または単一のソーシャルメディアサイト上の異なるアカウントから投稿されるか、または異なるネットワークパケットに含まれる)からの文書が、利用可能な1つの文書により、オーバーラップ情報を有するサブストリームを上回る、改良されたサブストリームを提供するために十分に類似していると決定することができる。
【0202】
いくつかの実施形態では、ステップ(1606~1610)は、ウィルスシグネチャーを含むデータ文書のアドレスを指定するためにカスタマイズされる。これらの実施形態のうちの1つでは、パーサは、一組のデータ文書内に存在するウィルスシグネチャーの一覧を生成する。これらの実施形態のうちの別の実施形態では、表現生成器は、一覧内の各ウイルス特徴について、下記を含む存在情報を決定する。(i)ウィルスシグネチャが存在するデータ文書の数、(ii)各データ文書におけるウィルスシグネチャの存在数、および(iii)ウィルスシグネチャが存在する各データ文書に関連付けられた座標ペア。これらの実施形態のさらに別の実施形態では、表現生成器は、一覧内の各ウィルスシグネチャーについて、複合SDRであり得るSDRを生成する。別の実施形態では、システムは、プロトコル(例えば、ネットワークプロトコル)に基づいて、一覧内の各ウィルスシグネチャーを複数のサブユニット(例えば、ウィルスシグネチャー文書の句、文、または他の部分)に分解する。さらに別の実施形態では、システムは、一覧内の各サブユニットを少なくとも1つの値(例えば、単語)に分解する。さらに別の実施形態では、システムは、一覧におけるウイルスシグネチャの複数のサブユニットの各々の値について、以下を含む存在情報を決定する。(i) その値が存在するデータ文書の数、(ii)各データ文書におけるその値の存在数、および(iii)その値が存在する各データ文書座標ペア;システムは、一覧における各値について、その値の存在情報を使用してSDRを生成する。しかし別の実施形態では、システムは、その値のSDR(s)を使用して一覧内の各サブユニットについて複合SDRを生成する。さらなる実施形態では、システムは、生成された複数のサブユニットSDRに基づいて、SDR内の各ウィルスシグネチャーについて複合SDRを生成する。複数のウィルスシグネチャーSDR、複数のサブユニットSDR、および複数の値SDRは、SDRデータベース120に保存されてもよい。
【0203】
方法1600は、第1演算装置上で実行されるパーサによって、一組のデータ文書内に存在するタームの一覧を生成するステップ(1606)を含む。方法1600は、第1の演算装置上で実行する表現生成器によって、一覧における各用語について、以下を含む存在情報を決定することを含む。(i) タームが存在するデータ文書の数、(ii)各データ文書におけるタームの存在数、および(iii)タームが存在する各データ文書に関連付けられた座標ペア(1608)。方法1600は、表現生成器によって、一覧内の各タームに対して、存在情報を使用するスパース分散表現(SDR)を生成するステップ(1610)を含む。
【0204】
いくつかの実施形態では、クライアントエージェント1510は、フィルタリングモジュール1502の機能、複数のSDRの生成のためにフィンガープリントモジュール302を呼び出し、類似エンジン304と対話して、ストリーム文書のSDRと、基準SDRとの間の類似レベルの判別を受信する;クライアントエージェント1510は、類似レベルに基づいて、ストリーム文書を保存するか廃棄するかに関する決定を行うことができる。
【0205】
いくつかの実施形態において、本明細書に記載の要素は、1つ以上の機能を自動的に、つまり、人間の介入なしで実施してもよい。例えば、システム100は、一組のデータ文書104を受け取り、上記データ文書の前処理を実施する方法、参照マップ生成器106をトレーニングする方法、または上記一組のデータ文書104の各データ項目のSDR118を生成する方法のうちの1つ以上を、自動的に人間の介入なしで実施してもよい。他の例としては、システム300は、少なくとも1つのデータ項目を受け取り、受け取ったデータ項目とSDRデータベース120のデータ項目との類似レベルを特定する方法、類似するデータ項目の一覧を作成する方法、または上述した他の機能を実施する方法のうちの1つ以上を自動的に実施してもよい。さらに他の例としては、システム300は、本明細書に記載されているような機能の実行、通信、および提供を自律型主体が行う、いわゆる「モノのインターネット」の一部であってもよいし、またはその一部の要素を含んでいてもよい。例えば、自動の自律型プロセスにより、クエリを生成し、システム300から回答を受け取り、他のユーザ(人間、コンピュータ、またはその他)に回答を提供してもよい。ある場合には、speech-to-text(音声からテキスト)またはtext-to-speech(テキストから音声)に基づくインターフェースが含まれ、それによって、例えば、当該インターフェースが認識してコンピュータ処理可能な命令を生成する音声コマンドを、ユーザが生成してもよいが、これに限定されるものではない。
【0206】
図5に関連して上述したように、類似性エンジン304は、ユーザから第1のデータ項目を受信し、第1のデータ項目の第1のSDRと、SDRデータベースから検索された第2のデータ項目の第2のSDRとの間の距離を決定し、決定された距離に基づいて、第2のデータ項目の識別情報と、第1のデータ項目と第2のデータ項目との間の意味的類似性のレベルの識別情報とを提供することができる。いくつかの実施形態では、第1のデータ項目は、プロファイルの記述である。例えば、プロファイルは、理想的なジョブ候補のプロファイルであってもよい。別の例として、プロファイルは、ユーザが会議に関心を持つ個人のプロファイル(例えば、ネットワーキング(ネットワーク)目的、デート(dating)目的、または他の関係構築目的)であってもよい。いくつかの実施形態では、プロファイルは、理想的な個人の1つまたは複数の特徴のフリーテキスト記述であり、類似性エンジン304は、個人の1つまたは複数のプロファイルを求めてSDRデータベース120を検索し、ここで、個人のプロファイルから生成されたSDRは、提供される理想的な候補プロファイルのSDRとオーバーラップする(例えば、そこからの距離が最小である)。いくつかの実施形態では、プロファイルは、ユーザがより多くのことを学習または獲得することに関心がある製品(例えば、商品またはサービス)のプロファイル(profile)である。例として、ユーザは、必要または所望の製品属性のテキストベースの記述を提供することができ、ユーザの以前の購入履歴または他のユーザベースの属性に基づいて製品を推薦するシステムとは対照的に、本明細書に記載される方法およびシステムは、製品記述から生成されたSDRを含むSDRデータベース120を検索し、製品自体の記述(ユーザまたはユーザの習慣ではない)が所望の必要または機能に意味的に類似している結果を提供することができる。
【0207】
いくつかの実施形態では、本明細書で説明される方法およびシステムは、ウェブページのSDR(例えば、コンピュータ上に格納され、任意の数のコンピュータネットワーキングプロトコルに従って、1つまたは複数のコンピュータネットワーク上で他のコンピュータによる検索に利用可能にされた文書)を検索し、生成し、SDRデータベース120にウェブページのSDRを投入するための機能を提供する。したがって、これらの実施形態のうちの1つでは、一組のデータ文書は、システム(例えば、システムと通信するウェブクローラ(web crawler))によって、またはシステムのユーザによって取り出される複数のウェブページである。これらの実施形態の別の1つでは、類似性エンジン304は、ユーザが実行したいと望むウェブ検索の記述を含むデータ項目を受信し、
図5に関連して上述したような機能を実行し、類似性エンジン304は、ユーザから(例えば、
図6A、9A~B、および10A~Bに関連して上述したようなシステムによって提供されるクエリモジュールを介して)、またはユーザ入力を類似性エンジン304に転送する第三者システムから)直接データ項目を受信することができる。
【0208】
いくつかの実施形態では、本明細書で説明される方法およびシステムは、より正確な検索結果を提供するために、特定の文書コーパスに関するトレーニングから利益を得ることができる。例として、システムは、特定のトピックまたは専門知識または産業知識の分野において不正検出機能を提供するときに、改善された結果を提供するようにカスタマイズされ得る。別の例として、システムは、法医学分析を提供するときに改善された結果を提供するようにカスタマイズされてもよい。このような実施形態では、ユーザは、(例えば、特定の技能を有するジョブ候補を求めるユーザ、または特定の機能を有する製品を購入しようとするユーザとは異なり)検索している特徴または属性の特定の記述を有さなくてもよいが、ユーザは、見つけたい種類の文書の例である1つまたは複数の文書を有し得、これらの文書は、
図5に関連して上述したように使用され得る。例えば、ユーザは、財務報告要件または倫理違反をトリガする電子メールメッセージの例を有することができ、電子メールで使用される特定の単語(または文書または通信の性質)が、シナリオごとに異なる場合でさえ、意味論的フィンガープリントを活用することによって、ユーザは、意味的に類似した文書を見つけることができる。
【0209】
いくつかの実施形態では、類似性エンジン304は、ユーザが提供したデータ項目に基づいて生成されたSDRと、SDRデータベース120から取り出された以前に生成されたSDRとの間の距離(
図5に関連して上述したように)を決定し、この距離が所定の閾値を超えることを決定する。これらの実施形態のうちの1つでは、類似性エンジン304は、そのようなSDRが追加の分析に値し得る外れ値であることを決定する。例えば、ビジネスドキュメントが、その種類の他のビジネスドキュメントに含まれる情報とは実質的に異なる情報を含む場合、それは、アナライザ(人間またはコンピュータ、あるいは両方が協働する)に、異常値ドキュメントが追加の分析を受けるべきであることを知らせることができる。この例を続けると、インサイダー取引のインスタンスを識別しようと試みるために複数の文書が分析されている場合、文書作成者は、その産業におけるビジネスドキュメントでは従来使用されていなかったコード化ワードを使用した可能性があり、使用される特定のワードに関わらず、そのような文書は、追加の分析のためにフラグが立てられるように従来の文書とは十分に異なるSDRを生成することになる。いくつかの実施形態では、そのような追加の分析は、本明細書で説明するシステムによって、または人間の分析者によって行われ、例えば、調査員は、文書の生成日をタイムラインにリンクして、文書の他の異常な特性があるかどうかを判定することができる。そのような例において、本明細書で説明されるシステムおよび方法の使用は、追加の分析に値し得る文書のグループを絞り込むことによって、調査員に利益をもたらす。
【0210】
いくつかの実施形態では、本明細書で説明される方法およびシステムは、追加の機能を提供するために、他のサードパーティ人工知能アルゴリズムと通信することができる。例えば、異常検出機能を提供する際に、人工知能システムは、(例えば、データ項目のシーケンスにおけるパターンを識別する結果として)あるデータ項目に続くデータ項目を予測するように訓練され得る。その例を続けると、人工知能システムが、上述のように生成された複数のSDRが提供されるとき、人工知能システムは、SDR内のパターンを識別し、そのパターン内で次に来るべきものを決定することができ、次に来るSDRがそのパターンを破る場合、システムは、異常を識別することができる。異常は、データのストリームに新しいトピックを含めることができ、例えば、ニュースに関するデータ項目のストリームにおいて、異常は、異なるトピックに関するニュースを破ることを示すことができる。
【0211】
いくつかの実施形態では、本明細書で説明されるシステムおよび方法は、機械翻訳(音声~テキスト翻訳、光学文字認識、ならびに機械翻訳の他の使用を含む)をサポートする機能を提供する際に、言語モデルを置き換えるために使用されてもよい。従来のシステムは、ある言語(単語、文章等)が別の言語(例えば、ある単語が文章において別の単語に続く)と関連する確率を計算することができる言語モデルを使用する。一実施形態では、類似性エンジン304は、言語モデルを置き換えるために活用されてもよい。類似性エンジン304は、データ項目(例えば、文中の単語または句、または段落中の文)を受信し、データ項目のためのSDRを生成し、受信されたデータ項目に関連して典型的に見出される単語、句、またはデータ項目のSDRを識別することができる。類似性エンジン304はまた、受信した単語を含む文書または文書の一部を受信し、他の文書の複合SDRと比較するための複合SDRを生成して、類似する文書を識別し、次いで、どのデータ項目が通常、受信したデータ項目に続くかを決定することができる。そのような実施形態では、システムは、上述のトピックスライシング機能を活用することもできる。
【0212】
いくつかの実施形態では、データ項目は、管理文書(例えば、メタデータの少なくとも1つのアイテムが文書に関連付けられ、文書のSDRも文書に関連付けられたメタデータになり得るシステムにおける文書)である。これらの実施形態のうちの1つでは、管理文書は、編集中であり、ユーザが文書を書くかまたは編集している間ずっと、SDRが生成され、更新される文書である。これらの別の実施形態では、本明細書に記載のシステムおよび方法は、文書がまだ書き込まれ、更新され、または他の方法で編集されている間に、ユーザのフィードバックを与えるための機能を提供する。例として、データ項目は、第1の時点における管理文書であってもよく、最初のSDRは、第1の時点における管理文書に対して生成されてもよく、後続の時点(例えば、ユーザまたは管理者によって予め決定された時点、またはユーザが更新を要求する時点、またはユーザが更新の生成を希望するかどうかを尋ねるようにシステムがプログラムされている時点)において、システムは、更新されたSDRを生成してもよい。更新されたSDRを生成するときに、類似性エンジン304は、SDRを、以前に生成された管理文書(例えば、SDRデータベース120から検索されたSDR)から生成されたSDRと比較することができる。この比較に基づいて、システムは、管理文書を生成または修正するユーザにフィードバックを提供することができ、例えば、システムは、管理文書の種類を識別し、ユーザが、類似の種類の以前に生成された他の文書(例えば、他の文字、他の契約、類似のキーワードを含む他の文書、または類似のセクションを含む他の文書)へのアクセスを望むかどうかをユーザに尋ね、次いで、要求された文書へのアクセスを提供することができる。システムはさらに、他のガイダンスをユーザに提供することができる(例えば、そのSDRが、生成または修正されている管理文書のSDRと実質的に類似している他の管理文書が、通常、特定のセクションまたはテキストまたは添付ファイルを含むことをリマインダする)。
【0213】
いくつかの実施形態では、本明細書で説明される方法およびシステムは、文書を送付するための機能を提供する。これらの実施形態のうちの1つでは、類似性エンジン304は、複数のユーザのうちの一人に送付されるべき文書のSDR(例えば、複数の電子メール受信者の特定の個人に送信される電子メール、または複数のユーザのうちの1つによってレビューされる文書)を受信し、受信したSDRを、SDRデータベース120から取り出されたSDRと比較する。一実施形態では、システム内のユーザプロファイルのSDRが、SDRデータベース120に入力される。例えば、税務文書をレビューするユーザに関連するユーザプロファイルは、財務文書をレビューするユーザに関連するユーザプロファイルとは異なるSDRを有することができ、着信文書のSDRをプロファイリングされたユーザのSDRと比較することによって、類似性エンジン304は、着信文書のSDRと実質的な類似性を有するユーザのプロファイルのSDRを識別することができる。その後、システムは、プロファイルにおいて識別されたユーザに着信文書を提供するように決定することができる。いくつかの実施形態では、SDRデータベース120には、以前に送付された文書のSDRが入力されており、システムは、他の文書がどこに送付されたかを決定することができる。例えば、受信されたSDRと類似のSDRを有する文書のメタデータを分析することに基づいて、システムは、送付される文書が、契約弁護士または企業会計士、あるいはインターンによる仕事の見直しを担当する個人に行くべきであると決定することができる。
【0214】
意味的感情分析
いくつかの実施形態では、本明細書で説明される方法およびシステムは、感情分析を実行するための機能を提供する。これらの実施形態のうちの1つでは、分析中の複数のデータ項目の順序は、分析の結果に影響を及ぼし、複数のデータ項目を含む文によって意図される感情を決定するために、データ項目が現れる順序は、異なる(例えば、犬に咬まれた人と、人に咬まれた犬との関係(man bites dog vs dog bites man))。上述の特定の実施形態では、システムは、文の単語順序にかかわらず、同じSDRを生成する。したがって、データ項目(またはデータ項目のグループ)のSDRが、1つまたは複数の感情を伝達するデータ項目(またはデータ項目のグループ)のSDRと実質的に類似するかどうかを判定するときに提供される機能を改善するために、本明細書で説明される方法およびシステムは、シーケンス学習機能を提供する人工知能システムと接続するための機能を含むことができる。当業者によって理解されるように、シーケンス学習器は、パターンのシーケンスにさらされ、次のパターンが何であるかを予測し、特定の順序で単語(またはデータ項目)を提示することができる。シーケンス学習機能は、順序をデータ項目の関連するグループ(例えば、文)として識別し、その特定の順序で文を表す出力SDRを生成する階層時間メモリを含むか、またはそれと通信してもよく、文中の単語の順序を変更する場合、階層時間メモリは、変更された順序で単語を有する文の第2の異なる出力SDRを生成する。したがって、類似性エンジン304は、人工知能システムから、複数のデータ項目内のデータ項目の順序を反映する出力SDRを受信し、そのような出力SDRを他の出力SDRと比較することができる。さらに、人工知能システムは、特定の感情(例えば、肯定的、否定的、中立的、怒り、不安など)に関連するデータに基づいて訓練され、その結果、感情分析において使用するための分類子が得られる。
【0215】
いくつかの実施形態では、データ項目は、広告の含有率を含む。例として、広告会社は、広告(例えば、顧客に代わって配置される広告)の広告配置機会を識別しようとしてもよく、広告の配置を改善するために本明細書で説明されるシステムおよび方法を使用してもよい。別のより具体的な例として、本明細書で説明されるシステムおよび方法は、インターネットユーザのショッピング内容のSDR(例えば、ユーザが最近検索または取得した品目の識別を含み得る、インターネットユーザのショッピング関連クッキーの含有率)を、配置のために利用可能な広告のカタログ内の広告から以前に生成されたSDR(例えば、SDRが以前に生成され、SDRデータベース120に格納された)と比較することによって、広告の配置を改善し得る。これらの実施形態のうちの1つでは、類似性エンジン304は、ショッピング内容のSDR(この実施形態では受信されたデータ項目)を受信し、SDRをSDRデータベース120内のSDRと比較して、広告のカタログ内のどの広告がユーザのショッピング内容に関連するかを決定し、次いで、システムは、ショッピング内容を有するユーザが広告を見る場所(例えば、ウェブサイト)に識別された広告を配置することを推奨することができる。キーワードとキーワードをマッチングすることしかできない従来のシステムとは対照的に、類似性エンジンの使用は、たとえキーワードが異なっていても、関連するトピックの迅速な識別を可能にする。いくつかの実施形態では、本明細書で説明される方法およびシステムは、ショッピング内容のSDRと実質的に類似のSDRを有するデータ項目の識別を提供することができ、例えば、配信が許容可能な時間制限(例えば、ミリ秒)を超えることを防止するために広告が識別され、ミリ秒単位で配置されるインターネット広告環境においてそのように行う制約を満たすのに十分迅速に行うことができる。
【0216】
いくつかの実施形態において、従来のシステムとは異なり、本明細書に記載のシステムおよび方法は、意味文脈を個別の表現に組み込む。例えば、特定のSDRの生成方法が不明の場合でも、上記システムは、当該SDRと他のSDRを比較し、当該2つのSDRの意味文脈を使用して、ユーザに見通しを提供することができる。他の実施形態において、伝統的に文書レベルのクラスタ化に焦点を当てている従来のシステムとは異なり、本明細書に記載のシステムおよび方法は、文書レベルの文脈を使用して、タームレベルでの文脈的な見通しを提供し、ユーザが文書のコーパス内で個別のタームの文脈的な意味を特定できるようにしている。
【0217】
上述したシステムは、上記要素の任意の要素を複数、または上記要素の各要素を複数備えていてもよく、上記要素は、独立型マシンに備えられていてもよいし、または、いくつかの実施形態において、記載されているシステムにおける複数のマシンに備えられていてもよいことを理解すべきである。通常、「一実施形態において」、「他の実施形態において」等の表現は、その後に続く、特定の構成、構造、ステップ、または特性が、本明細書の少なくとも1つの実施形態に含まれていること、および本明細書の複数の実施形態に含まれていてもよいことを意味する。また、上記表現は、同じ実施形態を指していてもよいが、必ずしもそれに限定されるものではない。
【0218】
本明細書において、エンジン、生成器、モジュール、または要素と称されているものについて、それぞれ、ソフトウェア、ハードウェア、またはその2つを組み合わせたものとして備えられていてもよく、1つ以上のマシン100で実行されてもよい。説明を容易にするため、本明細書において複数の要素が別々のものとして示されている場合について、これは、その構成を特定の実装に制限するものではないことを理解すべきである。例えば、上記要素の一部またはすべての機能が、1つの回路またはソフトウェアの機能に含まれていてもよい。他の例としては、1つ以上の要素の機能が、複数の要素に分散されていてもよい。
【0219】
本明細書に記載の機能を提供するマシン102は、任意の種類のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ポータブルコンピュータ、携帯電話、携帯型スマートフォン、または、他のポータブル通信装置、メディア再生装置、ゲーミングシステム、携帯型演算装置、または、任意の他の種類、形態のネットワークで通信可能であり、本明細書に記載の演算を行うのに十分なプロセッサ電力および記憶容量を有する任意の他の種類および/または形態の演算装置、通信装置、またはメディア装置であってもよい。マシン102は、任意の種類および/または形態のソフトウェア、プログラム、または、限定するものではないが、任意の種類および/または形態のウェブブラウザ、ウェブベースのクライアント、クライアントサーバアプリケーション、ActiveXコントロール、JAVA(登録商標)アプレット、または、マシン102上で実行可能な任意の他の種類および/または形態の実行可能な命令を含む、実行可能な命令等のアプリケーションの実行、操作、または提供を行ってもよい。
【0220】
マシン100は、ネットワークを介して互いに通信することができ、当該ネットワークは、任意の種類および/または種類のネットワークであってもよく、以下のいずれかを含むことができる。地点間ネットワーク、放送ネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM (非同期転送モード)ネットワーク、SONET (同期光ネットワーク)ネットワーク、SDH (同期デジタル階層)ネットワーク、無線ネットワーク、および有線ネットワーク。いくつかの実施形態において、上記ネットワークは、赤外チャネルまたは衛星帯域等の無線リンクを含んでいてもよい。上記ネットワークのトポロジーは、バスネットワークトポロジー、スターネットワークトポロジー、またはリングネットワークトポロジーであってもよい。上記ネットワークのトポロジーは、当業者に周知されているような、本明細書に記載の演算に対応可能な任意のネットワークトポロジーであってもよい。上記ネットワークは、携帯型装置(通常、卓上型または手持型装置を含む)間での通信に使用される、任意の1つまたは複数のプロトコルを使用する携帯電話ネットワークを含んでいてもよく、AMPS、TDMA、CDMA、GSM(登録商標)、GPRS、UMTS、またはLTEが含まれる。
【0221】
マシン102は、限定するものではないが、標準電話回線、LLANまたは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、IEEE802.11、IEEE802.11、IEEE802.11b、IEEE802.11gg、IEEE802.11n、802.15.4BLUETOOTH(登録商標)、ZIGBEE(登録商標)、CDMA、GSM(登録商標)、WiMAx、および直接非同期接続)を使用して確立可能である。一実施形態において、演算装置100は、セキュアソケットレイヤー(SSL)またはトランスポートレイヤーセキュリティ(TLS)等の任意の種類および/または形態のゲートウェイプロトコルまたはトンネリングプロトコルを介して、他の演算装置100’と通信する。上記ネットワークインターフェースは、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または、通信および本明細書に記載の演算の実施が可能な任意の種類のネットワークに演算装置100を接続するのに適した任意の他の装置を備えている。
【0222】
上述したシステムおよび方法は、ソフトウェア、ファームウェア、ハードウェア、または、その任意の組み合わせを製造するためのプログラミング技術および/またはエンジニアリング技術を使用した、製造方法、製造装置、または製造物として実施されてもよい。上記技術は、プロセッサ、当該プロセッサで読み取り可能な記憶媒体(例えば、揮発性または不揮発性メモリおよび/または記憶要素を含む)、少なくとも1つの入力装置、および少なくとも1つの出力装置を備えた、プログラミング可能なコンピュータで実行される1つ以上のコンピュータプログラムで実施されてもよい。プログラムコードは、上述した機能を実施するため、出力を生成するために、上記入力装置を使用して実施される入力に適用されてもよい。出力は、1つまたは複数の出力装置に提供することができる。
【0223】
後述の請求項に示した範囲の各コンピュータプログラムは、アセンブリ言語、マシン言語、ハイレベル手続き型プログラミング言語、またはオブジェクト指向プログラミング言語等の任意のプログラミング言語で実施されてもよい。当該プログラミング言語は、例えば、LISP、PROLOG、PERL、C、C++、C#、JAVA(登録商標)、または、任意のコンパイルされた、または解釈されたプログラミング言語であってもよい。
【0224】
このようなコンピュータプログラムはそれぞれ、コンピュータプロセッサによる実行用のマシン読み取り可能な記憶装置に具体的に組み込まれるコンピュータプログラム製品で実施してもよい。入力の処理および出力の生成を行うことにより本発明の機能を実施するため、本発明の方法のステップは、コンピュータ読み取り可能な媒体に具体的に組み込まれるプログラムを実行するコンピュータプロセッサによって実施してもよい。適したプロセッサとしては、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方が挙げられる。通常、上記プロセッサは、読み取り専用メモリおよび/またはランダムアクセスメモリから命令およびデータを受け取る。コンピュータプログラムの命令を具体的に組み込むのに適した記憶装置としては、例えば、すべての形態のコンピュータ読み取り可能な装置、ファームウェア、プログラマブルロジック、ハードウェア(例えば、集積回路チップ、電子装置、コンピュータ読み取り可能な非揮発性記憶ユニット、EPROM、EEPROM(登録商標)、およびフラッシュメモリ素子を含む不揮発性メモリ(半導体記憶装置等)、内蔵ハードディスクやリムーバルディスク等の磁気ディスク、光磁気ディスク、およびCD-ROM)が挙げられる。上記のいずれについても、特別に設計されたASIC(アプリケーション固有の集積回路)またはFPGA(フィールドプログラマブルゲートアレイ)によって補完してもよいし、あるいは、ASICまたはFPGAに組み込まれていてもよい。コンピュータは、通常、内蔵ディスク(不図示)またはリムーバルディスク等の記憶媒体からもプログラムおよびデータを受け取る。これらの要素は、従来のデスクトップまたはワークステーションコンピュータ、および本明細書に記載の方法を実施するコンピュータプログラムを実行するのに適した他のコンピュータでも見られる。上記コンピュータは、任意のデジタルプリントエンジンまたはマーキングエンジン、ディスプレイモニタ、または、紙、フィルム、ディスプレイ画面、または他の出力媒体においてカラーまたはグレースケール画素を生成可能な他のラスタ出力装置とともに使用してもよい。コンピュータは、ネットワーク伝送線路、無線伝送媒体、空中を伝播する信号、電波、赤外線信号等を介した、プログラムへのアクセスを可能にする第2コンピュータからもプログラムおよびデータを受け取ってもよい。
【0225】
より具体的には、
図12Aにネットワーク環境の実施形態が開示されている。概略すると、上記ネットワーク環境は、1つ以上のネットワーク1204を介して、1つ以上のリモートマシン1206A~1206n(通常、サーバ1206または演算装置1206ともいう)と通信する1つ以上のクライアント1202A~1202nを含んでいる。上述したマシン102は、マシン1202、マシン1206、または任意の種類のマシン1200として備えられていてもよい。
【0226】
図12Aでは、クライアント1202とリモートマシン1206との間にネットワーク1204が示されているが、クライアント1202およびリモートマシン1206は、同じネットワーク1204上にあってもよい。ネットワーク1204は、企業内イントラネット等のローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、または、インターネットまたはワールドワイドウェブ等のワイドエリアネットワーク(WAN)であってもよい。他の実施形態において、クライアント1202とリモートマシン1206との間に複数のネットワーク1204が存在する。これらの実施形態の一つにおいて、ネットワーク1204’(不図示)がプライベートネットワークであり、ネットワーク1204がパブリックネットワークであってもよい。これらの実施形態の他の実施形態において、ネットワーク1204がプライベートネットワークで、ネットワーク1204’がパブリックネットワークであってもよい。さらに他の実施形態において、ネットワーク1204およびネットワーク1204’がどちらもプライベートネットワークであってもよい。
【0227】
ネットワーク1204は、任意の種類および/または形態のネットワークであってもよく、地点間ネットワーク、放送ネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM (非同期転送モード)ネットワーク、SONET (同期光ネットワーク)ネットワーク、SDH (同期デジタル階層)ネットワーク、無線ネットワーク、および有線ネットワークのいずれかを含んでいてもよい。いくつかの実施形態において、上記ネットワーク1204は、赤外チャネルまたは衛星帯域等の無線リンクを含んでいてもよい。上記ネットワーク1204のトポロジーは、バスネットワークトポロジー、スターネットワークトポロジー、またはリングネットワークトポロジーであってもよい。上記ネットワーク1204のトポロジーは、当業者に周知されているような、本明細書に記載の演算に対応可能な任意のネットワークトポロジーであってもよい。上記ネットワークは、携帯型装置間の通信に使用される、任意の1つまたは複数のプロトコルを使用する携帯電話ネットワークを含んでいてもよく、AMPS、TDMA、CDMA、GSM(登録商標)、GPRS、またはUMTSが含まれる。いくつかの実施形態において、異なる種類のデータが、異なるプロトコルを介して送信されてもよい。他の実施形態において、同じ種類のデータが、異なるプロトコルを介して送信されてもよい。
【0228】
クライアント1202およびリモートマシン1206(通常、演算装置1200という)は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、ポータブルコンピュータ、携帯電話、または、他のポータブル通信装置、メディア再生装置、ゲーミングシステム、携帯型演算装置、または、通信可能であり、本明細書に記載の演算を行うのに十分なプロセッサ電力および記憶容量を有する任意の他の種類および/または形態の演算装置、通信装置、またはメディア装置であってもよい。いくつかの実施形態において、演算装置1200は、演算装置1200と整合性のある、異なるプロセッサ、オペレーティングシステム、および入力装置を備えていてもよい。他の実施形態において、演算装置1200は、携帯型装置、デジタルオーディオプレイヤー、デジタルメディアプレイヤー、またはそのような装置の組み合わせであってもよい。演算装置1200は、任意の種類および/または形態のソフトウェア、プログラム、または、限定するものではないが、任意の種類および/または形態のウェブブラウザ、ウェブベースのクライアント、クライアントサーバアプリケーション、ActiveXコントロール、JAVA(登録商標)アプレット、または、演算装置1200上で実行可能な任意の他の種類および/または形態の実行可能な命令を含む、実行可能な命令等のアプリケーションの実行、操作、または提供を行ってもよい。
【0229】
一実施形態において、演算装置1200はウェブサーバの機能を提供する。いくつかの実施形態において、ウェブサーバ1200は、APACHEサーバ(Apache Software Foundation(デラウェア州)により保持)等のオープンソースのウェブサーバを含む。他の実施形態において、ウェブサーバ1200は、INTERNETINFORMATION SERVICE製品(MicrosoftCorporation(ワシントン州、レドモンド)により提供)、ORACLE IPLANET webserver製品(Oracle Corporation(カリフォルニア州、レッドウッドショアーズ)により提供)、BEA WEBLOGIC製品(BEA Systems(カリフォルニア州、サンタクララ)により提供)等の独占的ソフトウェアを実行する。
【0230】
いくつかの実施形態において、上記システムは、論理的に分類された複数の演算装置1200を含んでいてもよい。これらの実施形態の一つにおいて、当該演算装置1200の論理的グループは、サーバファームと称されてもよい。これらの実施形態の他の実施形態において、当該サーバファームは、単体として管理されてもよい。
【0231】
図12Bおよび
図12Cは、クライアント1202またはリモートマシン1206の実施形態を実施するのに役立つ演算装置1200を示すブロック図である。
図12Bおよび
図12Cに示すように、各演算装置1200は、中央演算処理装置1221および主記憶部1222を備えている。
図12Bに示すように、演算装置1200は、記憶装置1228、インストール装置1216、ネットワークインターフェース1218、入出力コントローラ1223、表示装置1224A~n、キーボード1226、マウス等のポインティング装置1227、および1つ以上の他の入出力装置1230A~nを備えていてもよい。記憶装置1228は、限定するものではないが、オペレーティングシステムおよびソフトウェアを含んでいてもよい。
図12Cに示すように、各演算装置1200は、メモリポート1203、ブリッジ1270、1つ以上の入力/出力装置1230A~1230n(通常、符号1230を使用して称される)、および中央演算処理装置1221と通信するキャッシュメモリ1240等の追加の任意の要素を備えていてもよい。
【0232】
中央演算処理装置1221は、主記憶部1222から取り出された命令に応答し、処理する任意の論理回路である。多くの実施形態において、中央演算処理装置1221は、Intel Corporation(カリフォルニア州、マウンテンビュー)、Motorola Corporation(イリノイ州、ショームバーグ)、Transmeta Corporation(カリフォルニア州、サンタクララ)、International Business Machines(ニューヨーク州、ホワイトプレーンズ)、Advanced Micro Devices(カリフォルニア州、サニーベール)により製造されているようなマイクロプロセッサユニット等のマイクロプロセッサユニットによって提供される。他の例としては、PARCプロセッサ、ARMプロセッサ、UNIX(登録商標)/LINUX(登録商標)の「ホワイト」ボックスの構築のために使用されるプロセッサ、および携帯型装置用プロセッサが挙げられる。演算装置1200は、これらのプロセッサのいずれか、または本明細書に記載のように作動可能な任意の他のプロセッサに基づいていてもよい。
【0233】
主記憶部1222は、データの保存が可能で、マイクロプロセッサ1221の任意の保存場所への直接アクセスを可能にする1つ以上のメモリチップであってもよい。主記憶部1222は、本明細書に記載のように作動可能な任意の入手可能なメモリチップに基づいていてもよい。
図12Bに示す実施形態において、プロセッサ1221は、システムバス1250を介して主記憶部1222と通信する。
図12Cは、上記プロセッサがメモリポート1203を介して主記憶部1222と直接通信する演算装置1200の実施形態を示す。
図12Cも、主プロセッサ1221が、セカンダリバス(バックサイドバスともいう)を介してキャッシュメモリ1240と直接通信する実施形態を示す。他の実施形態において、主プロセッサ1221は、システムバス1250を使用してキャッシュメモリ1240と通信する。
【0234】
図12Bに示す実施形態において、プロセッサ1221は、ローカルシステムバス1250を介して種々の入出力装置1230と通信する。種々のバスは、中央演算処理装置1221を任意の入出力装置1230に接続するために使用してもよく、VESA VLバス、ISAバス、EISAバス、MicroChannel Architecture(MCA)バス、PCIバス、PCI-Xバス、PCI-Expressバス、またはNuBusを含む。入出力装置がビデオディスプレイ1224である実施形態については、プロセッサ1221が、アドバンストグラフィックポート(AGP)を使用してディスプレイ1224と通信してもよい。
図12Cは、主プロセッサ1221が、例えば、HYPERTRANSPORT、RAPIDIO、またはINFINIBAND通信技術を介して入出力装置1230bと直線通信するコンピュータ1200の実施形態を示す。
【0235】
演算装置1200は、多種多様な入出力装置1230A~1230nを備えていてもよい。入力装置には、キーボード、マウス、トラックパッド、トラックボール、マイク、スキャナ、カメラ、および作画タブレットが含まれる。出力装置には、ビデオディスプレイ、スピーカー、インクジェットプリンタ、レーザープリンタ、および昇華型プリンタが含まれる。入出力装置は、
図12Bに示すように入出力コントローラ1223によって制御してもよい。また、入出力装置は、演算装置1200用の記憶装置および/またはインストール装置1216を備えていてもよい。いくつかの実施形態において、演算装置1200は、USB Flash Driveシリーズ(Twintech Industry, Inc(カリフォルニア州、ロスアラミトス)により製造)等の手持型USB記憶装置受付用のUSB接続(不図示)を備えていてもよい。
【0236】
引き続き
図12Bを参照すると、演算装置1200は、3.5インチディスク、5.25インチディスク、ZIPディスク等のフロッピー(登録商標)受付用ディスクドライブ、CD-ROMドライブ、CD-R/RWドライブ、DVD-ROMドライブ、種々のフォーマットのテープドライブ、USB装置、ハードドライブ、またはソフトウェアおよびプログラムのインストールに適した任意の他の装置等の任意の適したインストール装置1216に対応していてもよい。いくつかの実施形態において、演算装置1200は、ネットワーク1204を通じてソフトウェアをインストールするための機能を提供してもよい。さらに、演算装置1200は、1つ以上ハードディスクライブまたはRAID等の、オペレーティングシステムおよび他のソフトウェアを保存するための記憶装置を備えていてもよい。
【0237】
また、演算装置1200は、限定するものではないが、標準電話回線、LANまたはWANリンク(例えば、802.11、T1、T3、56kb、X.25、SNA、DECNET)、ブロードバンド接続(例えば、ISDN、Frame Relay、ATM、Gigabit Ethernet(登録商標)、Ethernet(登録商標)-over-SONET)、無線接続、または、そのいずれかまたはすべてを組み合わせたものを含む、種々の接続を介してネットワーク1204に接続するためのネットワークインターフェース1218を含んでいてもよい。接続は、種々の通信プロトコル(例えば、TCP/IP、IPX、SPX、NetBIOS、Ethernet(登録商標)、ARCNET、SONET、SDH、光ファイバー分散データインタフェース(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE802.11g、IEEE 802.11n、IEEE 802.15. 4、BLUETOOTH(登録商標)、ZIGBEE(登録商標)、CDMA、GSM(登録商標)、WiMax、および直接非同期接続)を使用して確立可能である。一実施形態において、演算装置1200は、セキュアソケットレイヤー(SSL)またはトランスポートレイヤーセキュリティ(TLS)等の任意の種類および/または形態のゲートウェイプロトコルまたはトンネリングプロトコルを介して、他の演算装置1200’と通信する。上記ネットワークインターフェース1218は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または、通信および本明細書に記載の演算の実施が可能な任意の種類のネットワークに演算装置1200を接続するのに適した任意の他の装置を備えている。
【0238】
他の実施形態において、入出力装置1230は、システムバス1250と、USBバス、Apple Desktop Bus、RS-232シリアルコネクション、SCSIバス、FireWire(登録商標)バス、FireWire(登録商標)800バス、Ethernet(登録商標)バス、AppleTalkバス、GigabitEthernet(登録商標)バス、Asynchronous Transfer Modeバス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、またはSerial Attached小型コンピュータシステムインターフェースバス等の外部通信バスとの間のブリッジであってもよい。
【0239】
図12Bおよび
図12Cに示される種類の演算装置1200は、通常、タスクのスケジューリングおよびシステムリソースへのアクセスを制御するオペレーティングシステムの制御により作動する。演算装置1200は、任意のバージョンのMICROSOFT WINDOWS(登録商標)オペレーティングシステム、リリースが異なるUNIX(登録商標)およびLINUX(登録商標)オペレーティングシステム、Macintoshコンピュータ用の任意のバージョンのMACOS、任意の内蔵オペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の独占的オペレーティングシステム、携帯型演算装置用の任意のオペレーティングシステム、または、演算装置で実行可能、かつ本明細書に記載の演算を実行可能な、任意の他のオペレーティングシステム等の任意のオペレーティングシステムを実行することができる。代表的なオペレーティングシステムには、限定するものではないが、WINDOWS(登録商標)3.x、WINDOWS(登録商標)95、WINDOWS(登録商標)98、WINDOWS(登録商標)2000、WINDOWS(登録商標)NT3.51、WINDOWS(登録商標)NT4.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 EnterpriseLinux(登録商標)(Red Hat, Inc.(ノースカロライナ州、ローリー)により販売)、自由に利用可能なオペレーティングシステム、Ubuntu(Canonical Ltd.(イギリス、ロンドン)により販売)、または、特に、任意の種類および/または形態のUNIX(登録商標)オペレーティングシステムが含まれる。
【0240】
上述したように、演算装置1200は、ポータブル通信装置、メディア装置、ゲーミングシステム、携帯型演算装置、または、通信可能であり、本明細書に記載の演算を行うのに十分なプロセッサ電力および記憶容量を有する任意の種類および/または形態の演算装置、通信装置、またはメディア装置であってもよい。演算装置1200は、例として挙げるものであって、限定するものではないが、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(カナダ、オンタリオ州、ウォータールー)により製造されているような携帯型装置であってもよい。さらに他の実施形態において、演算装置1200は、スマートフォン、POCKETPC、POCKETPCPHONE、またはMicrosoft Windows(登録商標) Mobile Softwareに対応した他のポータブル携帯型装置である。
【0241】
いくつかの実施形態において、演算装置1200はデジタルオーディオプレイヤーである。これらの実施形態の一つにおいて、演算装置1200は、Apple IPOD(登録商標)、IPOD(登録商標) Touch、IPOD(登録商標)NANO、およびIPOD(登録商標) SHUFFLEシリーズ(Apple Inc.により製造)等のデジタルオーディオプレイヤーである。これらの実施形態の他の実施形態において、上記デジタルオーディオプレイヤーは、ポータブルメディアプレイヤーとして、および大容量記憶装置として機能してもよい。他の実施形態において、演算装置1200は、例として挙げるものであって、限定するものではないが、Samsung Electronics America (ニュージャージー州、リッジフィールドパーク)、またはCreative Technologies Ltd.(シンガポール)により製造されているようなデジタルオーディオプレイヤーである。さらに他の実施形態において、演算装置1200は、限定するものではないが、MP3、WAV、M4A/AAC、WMA Protected AAC、AEFF、Audibleオーディオブック、Apple Losslessオーディオファイル形式、および、.mov、.m4v、および.mp4 MPEG-4(H.264/MPEG-4 AVC)ビデオファイル形式を含むファイル形式に対応するポータブルメディアプレイヤーまたはデジタルオーディオプレイヤーである。
【0242】
いくつかの実施形態において、演算装置1200は、デジタルオーディオプレイヤーまたはポータブルメディアプレイヤーと組み合わせた携帯電話等の、装置の組み合わせを備えている。これらの実施形態の一つにおいて、演算装置1200は、Google/Motorolaシリーズのデジタルオーディオプレイヤーと携帯電話とを組み合わせた装置である。これらの実施形態の他の実施形態において、演算装置1200は、IPHONE(登録商標)スマートフォンシリーズ(Apple Inc.により製造)である。これらの実施形態のさらに他の実施形態において、演算装置1200は、ANDROID(登録商標)オープンソース携帯電話プラットフォーム(Open Handset Allianceにより販売)を実行する装置であり、例えば、演算装置1200は、Samsung Electronics(韓国、ソウル)またはHTC Headquarters(中華民国、台湾)により提供されているような装置であってもよい。他の実施形態において、演算装置1200は、例として挙げるものであって、限定するものではないが、IPAD(登録商標)シリーズ(Apple Inc.により製造)、PLAYBOOK(Research In Motionにより製造)、CRUZシリーズ(Velocity Micro, Inc.(バージニア州、リッチモンド)により製造)、FOLIOおよびTHRIVEシリーズ(Toshiba America Information Systems Inc.(カリフォルニア州、アービン)により製造)、GALAXYシリーズ(Samsungにより製造)、HPSLATEシリーズ(Hewlett-Packardにより製造)、およびSTREAKシリーズ(Dell, Inc.(テキサス州、ラウンドロック)により製造)等のタブレット装置である。
【0243】
図12Dのブロック図を参照すると、複数のネットワークによりホスティングおよびデリバリーサービスが提供されるシステムの一実施形態が開示されている。概略すると、上記システムは、クラウドサービスホスティングインフラストラクチャ1280、サービスプロバイダデータセンター1282、および情報技術(IT)ネットワーク1284を含む。
【0244】
一実施形態において、データセンター1282は、限定するものではないが、サーバ(例えば、アプリケーションサーバ、ファイルサーバ、データベース、およびバックアップサーバを含む)、ルータ、スイッチ、および通信機器等の演算装置を含む。他の実施形態において、クラウドサービスホスティングインフラストラクチャ1280は、限定するものではないが、ストレージシステム、データベース、アプリケーションサーバ、デスクトップサーバ、ディレクトリサービス、ウェブサーバ、および、遠隔地に配置されたハードウェアプラットフォームおよびソフトウェアプラットフォームにアクセスするためのサービスへのアクセスを提供する。さらに他の実施形態において、クラウドサービスホスティングインフラストラクチャ1280はデータセンター1282を含む。しかしながら、他の実施形態において、クラウドサービスホスティングインフラストラクチャ1280は、第三者データセンター1282によって提供されるサービスに依存する。いくつかの実施形態において、ITネットワーク1204cは、メールサービスおよびウェブサービス等のローカルサービスを提供してもよい。他の実施形態において、ITネットワーク1204cは、遠隔地に配置されたプリントサーバ、データベース、アプリケーションサーバ、デスクトップサーバ、ディレクトリサービス、およびウェブサーバのローカルにキャッシュされたバージョン等の、遠隔地に配置されたサービスのローカルバージョンを提供してもよい。他の実施形態において、追加のサーバは、限定するものではないが、インフラストラクチャサービスプロバイダ、アプリケーションサービスプロバイダ、プラットフォームサービスプロバイダ、ツールサービスプロバイダ、およびデスクトップサービスプロバイダを含む第三者サービスプロバイダによって提供されるような、クラウドサービスホスティングインフラストラクチャ1280、データセンター1282、または他のネットワーク全体に存在していてもよい。
【0245】
一実施形態において、クライアント1202のユーザは、リモートサーバ1206Aにより提供されるサービスにアクセスする。例えば、クライアント1202Aのユーザがリモートサーバ1206A上で実行される仮想マシン上で実行されるアプリケーションへアクセスすることを、企業内ITネットワーク1284の管理者が決定してもよい。他の例としては、クライアント1202bの個人のユーザが、リモートサーバ1206(Eメール、ファックス、音声、または他のコミュニケーションサービス、データバックアップサービス、または他のサービス等)により消費者に提供されるリソースを使用してもよい。
【0246】
図12Dに示しているように、データセンター1282およびクラウドサービスホスティングインフラストラクチャ1280は、データセンター1282およびクラウドサービスホスティングインフラストラクチャ1280が対応している個人または組織から遠隔地に配置されている。例えば、データセンター1282は第1ネットワーク1204A上にあってもよく、クラウドサービスホスティングインフラストラクチャ1280は第2ネットワーク1204b上にあってもよく、ITネットワーク1284は別の第3ネットワーク1204cである。他の実施形態において、データセンター1282およびクラウドサービスホスティングインフラストラクチャ1280は第1ネットワーク1204A上にあり、ITネットワーク1284は別の第2ネットワーク1204cである。さらに他の実施形態において、クラウドサービスホスティングインフラストラクチャ1280は第1ネットワーク1204A上にあり、データセンター1282およびITネットワーク1284が第2ネットワーク1204cを形成する。
図12Dは、1つのサーバ1206A、1つのサーバ1206b、1つのサーバ1206c、2つのクライアント1202、および3つのネットワーク1204のみを示しているが、上記システムは当該要素の任意の要素を複数、または当該要素の各要素を複数備えていてもよいことを理解すべきである。
図12A~
図12Cに関連して既述したように、サーバ1206、クライアント1202、およびネットワーク1204が備えられていてもよい。
【0247】
したがって、いくつかの実施形態において、ITインフラストラクチャは、個人または企業が所有、管理するネットワーク等の第1ネットワークから、所有者または管理者が第1ネットワークとは別でもよい第2ネットワークに伸びていてもよい。第2ネットワークが提供するリソースは、「クラウド上」にあると言ってもよい。クラウドにある要素は、限定するものではないが、記憶装置、サーバ、データベース、コンピューティング環境(仮想マシン、サーバ、およびデスクトップを含む)、およびアプリケーションを含んでいてもよい。例えば、ITネットワーク1284は、遠隔地データセンター1282を使用して、サーバ(例えば、アプリケーションサーバ、ファイルサーバ、データベース、およびバックアップサーバを含む)、ルータ、スイッチ、および通信機器を保存してもよい。データセンター1282は、ITネットワーク1284が所有、管理していてもよく、または、第三者サービスプロバイダ(例えば、クラウドサービスホスティングインフラストラクチャプロバイダを含む)が別のデータセンター1282へのアクセスを提供してもよい。他の例としては、
図3に関連して上述したマシン102Aが第1エンティティ(例えば、クラウドサービスホスティングインフラストラクチャプロバイダ1280)によって所有または管理され、
図3に関連して上述したマシン102bが、クライアント1202が(例えば、1280、1282、または1284のいずれかによって提供されるリソースを使用して)直接または間接的に接続する第2エンティティ(例えば、サービスプロバイダデータセンター1282)によって所有または管理されてもよい。
【0248】
いくつかの実施形態において、消費者のためにコンピューティングインフラストラクチャを提供する1つ以上のネットワークは、クラウドと称される。これらの実施形態の一つにおいて、第1ネットワークのユーザが少なくとも第2ネットワーク(リソースのホスティングが可能な、抽象化され、拡張可能な、管理されたコンピューティングリソースのプールを含む)にアクセスするシステムは、クラウドコンピューティング環境と称されてもよい。これらの実施形態の他の実施形態において、リソースは、限定するものではないが、仮想化技術、データセンターリソース、アプリケーション、および管理ツールを含んでいてもよい。いくつかの実施形態において、インターネットベースのアプリケーション(「サービスとしてのソフトウェア」モデルを介して提供してもよい)は、クラウドベースリソースと称されてもよい。これらの実施形態の他の実施形態において、リモートサーバ、仮想マシン、またはブレードサーバのブレード等のコンピューティングリソースをユーザに提供するネットワークは、コンピュートクラウドまたは「サービスとしてのインフラストラクチャ」プロバイダと称されてもよい。さらに他の実施形態において、ストレージエリアネットワーク等のストレージリソースを提供するネットワークは、ストレージクラウドと称されてもよい。他の実施形態において、リソースはローカルネットワークでキャッシュされ、クラウドに保存されてもよい。
【0249】
いいくつかの実施形態において、複数のリモートマシン1206の一部またはすべては、例として挙げるものであって、限定するものではないが、Amazon Web Services LLC(ワシントン州、シアトル)、Rackspace US, Inc.(テキサス州、サンアントニオ)、Microsoft Corporation(ワシントン州、レドモンド)、およびGoogle Inc.(カリフォルニア州、マウンテンビュー)等の第三者企業からリースまたはレンタルしてもよい。他の実施形態において、すべてのホスト1206は、限定するものではないが、Amazon Web Services LLC、Rackspace US, Inc.、Microsoft、およびGoogleを含む第三者企業によって所有、管理される。
【0250】
上述したように、多くのタイプのハードウェアが、上述した機能性を提供するために、上述したシステムおよび方法と併せて使用されてもよい。しかし、いくつかの実施形態では、ハードウェア自体は、上述の方法およびシステムの改善された実行を提供するように修正されてもよい。
【0251】
図17Aは、複数のバイナリベクトル間の類似性のレベルを識別するシステムの一実施形態を示すブロック図である。システム1700は、上述のようにエンジン101を実行するマシン102aを含む。システム1700は、プロセッサ1221、データバス1722(各々が上記で説明されるシステムバス1250またはメモリポート1203の一部であり得る)、アドレスバス1724(各々が上記で説明されるシステムバス1250またはメモリポート1203の一部であり得る)、および複数のメモリセル1702a~n(本明細書ではメモリセル1702と呼ぶことができる)を含むマシン102bを含む。メモリセル1702はそれぞれ、第1のレジスタ1704a、第2のレジスタ1704b、およびビット単位比較回路1710を含む。
【0252】
次に
図17Bを参照すると、
図17Aに関連して、複数のバイナリベクトル間の類似性のレベルを識別する方法1750の一実施形態を示すフローチャートが示されている。方法1750は、演算装置上のプロセッサによって、演算装置上の複数のメモリセルのそれぞれに、複数のバイナリベクトルのうちの1つを記憶することを含み、該複数のメモリセルのそれぞれは、ビット単位比較回路を含む(1752)。方法1750は、演算装置によって、記憶された複数のバイナリベクトルのそれぞれと比較するためのバイナリベクトルを受信することを含む(1754)。方法1750は、プロセッサによって、データバスを介して、複数のメモリセルの各々に、受信されたバイナリベクトルを提供することを含む(1756)。方法1750は、各ビット単位の比較回路によって、受信したバイナリベクトルとビット単位の比較回路に関連付けられたメモリセルに格納されたバイナリベクトルとの間のオーバーラップのレベルを決定することを含む(1758)。方法1750は、複数のビット単位の比較回路の各々によって、オーバーラップのレベルがプロセッサによって提供される閾値を満足するかどうかを決定することを含む(1760)。方法1750は、オーバーラップのレベルが閾値を満たしたことを判定した各比較回路によって、オーバーラップの満足できるレベルを有する記憶されたバイナリベクトルの識別をプロセッサに提供することを含む(1762)。方法1750は、プロセッサによって、記憶されたバイナリベクトルと受信されたバイナリベクトルとの間の閾値および類似性のレベルを満たす各記憶されたバイナリベクトルの識別を提供することを含む(1764)。
【0253】
方法1750は、演算装置上のプロセッサによって、演算装置上の複数のメモリセルのそれぞれに、複数のバイナリベクトルのうちの1つを記憶することを含み、該複数のメモリセルのそれぞれは、ビット単位比較回路を含む(1752)。プロセッサ1221は、複数のバイナリベクトルを記憶のためにエンジン101から受け取ることができる。一実施形態では、プロセッサ1221は、アドレスバス1724を使用して、複数のバイナリベクトルのうちの1つが格納されるメモリセルを識別する。別の実施形態では、プロセッサ1221は、データバス1722を使用して、バイナリベクトルをメモリセルに送信し、第1のレジスタ1704aに格納する。マシン102bは、バイナリベクトルが格納される特定のメモリセルをアドレス指定するために、セルセレクタロジック、チップセレクタロジック、およびボードセレクタロジックを実装することができる。
【0254】
方法1750は、演算装置によって、記憶された複数のバイナリベクトルのそれぞれと比較するためのバイナリベクトルを受信することを含む(1754)。一実施形態では、プロセッサ1221は、バイナリベクトルを受信する。別の実施形態では、ユーザ(例えば、マシン102bまたは異なるマシン100のユーザ)は、バイナリベクトルを提供する。いくつかの実施形態では、プロセッサ1221は、類似のバイナリベクトルの識別情報のリクエストも受信する。
【0255】
方法1750は、プロセッサによって、データバスを介して、複数のメモリセルの各々に、受信されたバイナリベクトルを提供することを含む(1756)。一実施形態では、プロセッサ1221は、同じバイナリベクトルをすべてのメモリセルに送信する。別の実施形態では、プロセッサ1221は、受信したバイナリベクトル(例えば、第2のレジスタ1704b)を保存する命令を送信する。別の実施形態では、プロセッサ1221は、以前に格納されたバイナリベクトル(例えば、第1のレジスタ1704a内のバイナリベクトル)と、受信された(例えば、第2のレジスタ1704bに格納された)バイナリベクトルとを比較する命令を送る。
【0256】
方法1750は、各ビット単位の比較回路によって、受信したバイナリベクトルとビット単位の比較回路に関連付けられたメモリセルに格納されたバイナリベクトルとの間のオーバーラップのレベルを決定することを含む(1758)。一実施形態では、メモリセル内のビット単位の比較回路は、シフトレジスタに、第1のレジスタ1704a内のビットを第2のレジスタ1704b内の対応するビット(例えば、レジスタ内の第1の位置のビットの両方、レジスタ内の第2の位置のビットの両方など)と比較するように命令する。別の実施形態では、ビット単位比較回路は、特定の位置の両方のビットが1に設定された場合(例えば、ビットが同じである場合)、シフトレジスタに1を返すように命令する。さらに別の実施形態では、ビット単位比較回路は、受信されたバイナリベクトルと、ビット単位比較回路に関連付けられたメモリセルに記憶されたバイナリベクトルとの間のオーバーラップのレベルを表す数を計算するために、受信された1の数を加算する。
【0257】
方法1750は、複数のビット単位の比較回路の各々によって、オーバーラップのレベルがプロセッサによって提供される閾値を満足するかどうかを決定することを含む(1760)。一実施形態では、プロセッサ1221は、あるパーセンテージのオーバーラップを表す番号をメモリセルに送信する(例えば、レジスタに16,000個の情報を記憶することができるメモリセルでは、プロセッサ1221は、バイナリベクトル間に100%のオーバーラップがあったメモリセルの識別を受信することを望む場合のみ、16,000を超えて送信する);ビット単位比較回路は、計算されたオーバーラップレベルがプロセッサ1221から送信された数と一致するかどうかを判定する。例えば、限定するものではないが、ビット単位比較回路が、2つのレジスタがそれぞれ同じデータを含む16,000個のインスタンスがあると判断した場合、ビット単位比較回路は、メモリセルがオーバーラップの閾値レベルを満たすという指示をプロセッサに送信することができ、ビット単位比較回路が、2つのレジスタがそれぞれ同じデータを含む14,000個のインスタンスしかないと判断した場合、ビット単位比較回路は、プロセッサ1221に応答しない。いくつかの実施形態では、プロセッサ1221は、ユーザによって以前に指定されたオーバーラップの閾値レベルを表す数を使用する。他の実施形態では、プロセッサ1221は、利用可能な最高の数(例えば、レジスタが保存することができる最高の数のビット)をカウンタとして使用し、それがメモリセルに送信する数を減分し、プロセッサ1221から受信された閾値を満たす受信バイナリベクトルとオーバーラップするレベルを有するバイナリベクトルを保存するメモリセルが存在することを示すビット単位の比較回路からの応答を受信するまで再帰する。
【0258】
方法1750は、オーバーラップのレベルが閾値を満たしたことを判定した各比較回路によって、オーバーラップの満足できるレベルを有する記憶されたバイナリベクトルの識別をプロセッサに提供することを含む(1762)。例えば、識別子を第3のレジスタに格納することができる。
【0259】
方法1750は、プロセッサによって、記憶されたバイナリベクトルと受信されたバイナリベクトルとの間の閾値および類似性のレベルを満たす各記憶されたバイナリベクトルの識別を提供することを含む(1764)。プロセッサは、識別情報をユーザに直接(例えば、ユーザインターフェースを介して)返すことができる。あるいは、プロセッサは、2つのバイナリベクトル間の比較が最初に要求された任意の実行プロセスに識別情報を返すことができる。
【0260】
このようにして、比較およびソートは両方とも、同時に、およびプロセッサではなく、メモリセルにおいて達成される。本明細書で説明される方法およびシステムとは対照的に、メモリを活用するための従来のシステムは、サイズ縮小(例えば、ハッシング(hashing))のための典型的な技術が、非常に大きなバイナリベクトル間の比較には効果がないので、大きなバイナリベクトルを実現可能に格納することができない。
【0261】
いくつかの実施形態では、
図17Aおよび17Bに関連して説明したシステムおよび方法は、比較の効率および速度を改善するために活用され得る。したがって、これらの実施形態のうちの1つでは、システムおよび方法を使用して、類似性エンジン304を置き換えるか、または増強することができる(ソフトウェアではなくハードウェアで類似性エンジン304を効果的に実装する)。
図1Aから16に関連して上述したシステムおよび方法は、
図17Aおよび17Bに関連して説明したシステムおよび方法と組み合わせることができる。
【0262】
図18Aは、複数のデータ表現間の類似性のレベルを識別するためのシステムの一実施形態を示すブロック図である。
図17Aに関連して上記で明示的に説明された構成要素に加えて、本明細書で説明された方法およびシステムは、
図18Aに説明された構成要素を含むことができる。例えば、格納されたSDR(「フィンガープリント」)が生成されたデータ項目を含む文書を識別する文書参照を格納するために、別個のレジスタが使用されてもよい。別の例として、ビット単位比較回路1710aは、本明細書で説明する機能を提供するオーバーラップ加算器および比較器などの追加のサブコンポーネントを含むことができる。
図18Bは、複数のデータ表現間の類似性のレベルを識別する方法の一実施形態を示すフローチャートである。
【0263】
図17A~17Bと関連付けて、
図18A~
図18Bを参照する。第1のデータ項目と一組のデータ文書内のデータ項目との間の類似性のレベルを識別するための方法1850は、第1の演算装置上で実行する参照マップ生成器によって、二次元距離空間において、少なくとも1つの基準に従って選択された一組のデータ文書をクラスタ化し、意味マップを生成することを含む(1852)。方法1850は、意味マップによって、一組のデータ文書の各々と座標ペアを関連付けることを含む(1854)。方法1850は、第1の演算装置上で実行するパーサによって、データ文書の集合内に存在するデータ項目の一覧を生成することを含む(1856)。方法1850は、第1の演算装置上で実行する表現生成器によって、一覧内の各データ項目について、以下を含む存在情報を決定することを含む。(i)データ項目が存在するデータ文書の数、(ii) 各データ文書におけるデータ項目の存在数、および(iii)データ項目が存在する各データ文書に関連付けられた座標ペア(1858)。方法1850は、一覧内の各データ項目について、一覧生成器によって、存在情報を使用してスパース分散表現(SDR)を生成することを含み、結果として複数のSDRを生成する(1860)。方法1850は、第2の演算装置上のプロセッサによって、第2の演算装置上の複数のメモリセルの各々に、複数の生成されたSDRのうちの1つを記憶するステップを含み、複数のメモリセルの各々は、ビット単位比較回路を含む(1862)。方法1850は、第2の演算装置によって、第3の演算装置から、第1のデータ項目を受信することを含む(1864)。方法1850は、プロセッサによって、データバスを介して、複数のメモリセルの各々に、第1のデータ項目のSDRを提供することを含む(1866)。方法1850は、複数のビット単位の比較回路のそれぞれによって、第1のデータ項目のSDRと、ビット単位の比較回路に関連付けられたメモリセルに記憶された生成されたSDRとの間のオーバーラップのレベルを決定することを含む(1868)。方法1850は、複数のビット単位の比較回路の各々によって、オーバーラップのレベルがプロセッサによって提供される閾値を満足するかどうかを決定することを含む(1870)。方法1850は、オーバーラップのレベルが閾値を満たしたと判断した各比較回路によって、関連するメモリセルに格納された文書参照番号(文書参照番号は、メモリセルに格納されたSDRが生成されたデータ項目を含む文書を識別する)をプロセッサに提供することを含む(1872)。方法1850は、第2の計算装置によって、第3の計算装置に、閾値を満たすメモリセルに記憶されたSDRが生成された各データ項目の識別情報と、記憶されたSDRが生成されたデータ項目と受信されたデータ項目との間の類似性のレベルとを提供することを含む(1874)。
【0264】
一実施形態では、(1852)~(1860)は、
図2(202)~(214)に関連して上述したように実行される。
【0265】
方法1850は、第2の演算装置上のプロセッサによって、第2の演算装置上の複数のメモリセルの各々に、複数の生成されたSDRのうちの1つを記憶するステップを含み(1862)、複数のメモリセルの各々は、ビット単位比較回路を含む。プロセッサは、
図17(B)に関連して上述したように、複数の生成されたSDRの各々を複数のメモリセルに記憶することができる(1752)。
【0266】
方法1850は、第2の演算装置によって、第3の演算装置から、第1のデータ項目を受信することを含む(1864)。プロセッサは、上述したように、第1のデータ項目を受信することができる(例えば、これに限定されるものではないが、
図5に関連して)。
【0267】
方法1850は、プロセッサによって、データバスを介して、複数のメモリセルの各々に、第1のデータ項目のSDRを提供することを含む(1866)。プロセッサは、先ず、上述したようにSDRの生成を指示し、次に、以前に記憶されたSDRと比較するために、生成されたSDRをメモリセルに供給する。
【0268】
方法1850は、複数のビット単位の比較回路のそれぞれによって、第1のデータ項目のSDRと、ビット単位の比較回路に関連付けられたメモリセルに記憶された生成されたSDRとの間のオーバーラップのレベルを決定することを含む(1868)。ビット単位比較回路は、
図17Aおよび17Bに関連して上述したような決定を実行することができる.
方法1850は、複数のビット単位の比較回路の各々によって、オーバーラップのレベルがプロセッサによって提供される閾値を満足するかどうかを決定することを含む(1870)。ビット単位比較回路は、
図17Aおよび17Bに関連して上述したような決定を実行することができる。
【0269】
方法1850は、オーバーラップのレベルが閾値を満たしたと判断した各比較回路によって、関連するメモリセルに格納された文書参照番号(文書参照番号は、メモリセルに格納されたSDRが生成されたデータ項目を含む文書を識別する)をプロセッサに提供することを含む(1872)。ビット単位比較回路は、
図17Aおよび17Bに関連して上述したように、決定されたオーバーラップのレベルを提供することができる。
【0270】
方法1850は、第2の計算装置によって、第3の計算装置に、閾値を満たすメモリセルに記憶されたSDRが生成された各データ項目の識別情報と、記憶されたSDRが生成されたデータ項目と受信されたデータ項目との間の類似性のレベルとを提供することを含む(1874)。プロセッサは、第3のコンピュータに直接か、または
図1Aから16に関連して上述したSDR間の比較を実施する方法のいずれかを実行する他のプロセッサのいずれかに、
図17A~Bに関連して上述したような識別情報を提供することができる。
【0271】
データ項目フィンガープリントのリカーシブな生成方法およびシステムの実施形態について説明したが、当業者にとって、本明細書の概念を組み込んだ他の実施形態を使用してもよいことが明らかになるであろう。従って、本明細書は、ある実施形態に限定されるべきではなく、続く請求項の思想と範囲によってのみ限定されるべきである。
【国際調査報告】