JP2008541272A - 署名生成および関連性を有するマッチングエンジン - Google Patents

署名生成および関連性を有するマッチングエンジン Download PDF

Info

Publication number
JP2008541272A
JP2008541272A JP2008511259A JP2008511259A JP2008541272A JP 2008541272 A JP2008541272 A JP 2008541272A JP 2008511259 A JP2008511259 A JP 2008511259A JP 2008511259 A JP2008511259 A JP 2008511259A JP 2008541272 A JP2008541272 A JP 2008541272A
Authority
JP
Japan
Prior art keywords
document
processor
list
text
characters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008511259A
Other languages
English (en)
Other versions
JP5072832B2 (ja
JP2008541272A5 (ja
Inventor
レン,リウェイ
タン,デフア
ファン,フェイ
ファン,シュー
ドン,アイグオ
Original Assignee
プロビラ,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/361,340 external-priority patent/US7516130B2/en
Priority claimed from US11/361,447 external-priority patent/US7747642B2/en
Application filed by プロビラ,インク. filed Critical プロビラ,インク.
Publication of JP2008541272A publication Critical patent/JP2008541272A/ja
Publication of JP2008541272A5 publication Critical patent/JP2008541272A5/ja
Application granted granted Critical
Publication of JP5072832B2 publication Critical patent/JP5072832B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing

Abstract

システムおよび方法は、ドキュメントに関連した少なくとも1つの署名を生成する。一実施形態では、テキストから作成されたドキュメントが受信され、トークンセットを生成するために解析される。トークンセットは複数のトークンを含む。各トークンは、予め定められた文字特性によって生成されるドキュメント内のテキストに対応する。ドキュメント内のテキストの頻度と分布とに基づいてトークンセットの各トークンのためにスコアが計算される。そして、各トークンは計算されたスコアに基づいてランク付けされる。ランク付けされたトークンのサブセットが選択され、署名は、選択されたトークンの各発生のために生成される。署名の選択されたリストはその後出力される。
【選択図】図1

Description

本発明は、一般に、サーチエンジン技術の分野に関し、より詳細には、ドキュメント保存場所から関連するドキュメントのクエリを行う企業サーチエンジンの分野に関する。
本出願は、「テキストドキュメントの署名生成および関連性検出を持つ関連ドキュメントのクエリを行うためのマッチングエンジン」と題し、2005年5月9日に出願された米国仮特許出願第60/679,314号と、「署名生成を持つマッチングエンジン」と題し、2006年2月24日に出願された米国特許出願第11/361,340号と、「関連のクエリを行うためのマッチングエンジン」と題し、2006年2月24日に出願された米国特許出願第11/361,447号の優先権を主張する。これらの出願の内容は参照により本出願に組み込まれる。
一般に、企業サーチエンジンは、所定のクエリステートメントを持つ関連のあるドキュメントをサーチするソフトウェアシステムである。企業サーチエンジンは、典型的に、クローラ、インデックス付与部、サーチ部(サーチ手段)およびクエリエンジンからなる。クローラは、予め割り当てられた位置からドキュメントを集め、それらをドキュメント保存場所にダンピングする。インデックス付与部は、ドキュメント保存場所からドキュメントを取り出し、そのドキュメントからインデックスを作成し、インデックスデータベースにそのインデックスを格納する。サーチ部は、インデックスデータベースをサーチし、特定のクエリに応じて、関連のあるドキュメントのリスト(「ヒット」という)を戻す。クエリエンジンは、ユーザによって提供されるクエリ表現を解析し、処理のためにクエリコマンドをサーチ部に送信する。
従来のサーチエンジン技術は、多くのクエリ問題に対する関連のあるドキュメントをサーチするには不十分である。例えば、2つのドキュメントの関連性がある所定のパーセンテージ値、例えば、X%で測定されると想定される問題を考慮する。入力ドキュメントおよびパーセンテージ値X%が与えられ、この入力ドキュメントとあらゆる戻りのドキュメントとの間の関連性がX%より大きくなければならないように、ドキュメント保存場所からの関連のあるドキュメントのサーチは実施される。
従来のサーチエンジンの上述のクエリ問題への直接適用は、いくつかの不利益をもたらす。例えば、ドキュメント関連性の正確で有効な測定の欠如がある。さらに、従来のシステムは、ドキュメントの大きなリストを戻し、そのほとんどは関連がないかもしれない。したがって、検索(retrieval)の正確な割合は低い。ドキュメントの大きいリストを返すことは、すべての従来のサーチエンジン技術の共通の問題である。なぜならば、キーとなる語により提供されるクエリは、ユーザが検索を試みるドキュメントを正確に描写することができないからである。
多くの関連のないドキュメントを返すとは言え、従来のサーチエンジンの別の問題は、それらが言語に依存することである。各書き言葉のために、従来のサーチエンジンは、異なる言語の解析部および分析部を実装しなければならない。これは、リソースの多くの使用をもたらし、一般に効率的ではない。
まだ、従来のサーチエンジンの持つ別の問題は、しばしば正確であるか、または高いコンピューティングインセンティブであるモデルを通してドキュメントの関連性を測定することである。正確なリソースインセンティブのモデルのような例は、用語ベクトル空間モデル、確率的モデル、隠れている意味空間モデルなどを含む。
このため、高いとんどは、をもたらし、、関連性を有するドキュメントを返すために、クエリを効果的に実行する従来のサーチエンジンアーキテクチャを修正し、改良するシステムおよびその方法の必要性がある。
一実施形態では、サーチエンジンは、あるドキュメントに関連した署名の適用および使用を通して高い関連性を有するドキュメントを返すためのクエリを効率的に実行するよう構成されればよい。その署名は、キーワードのような他の機構と比較されるドキュメントのより良い特徴付けを可能にする。また、署名は、2つの関連のあるドキュメントがいくつかの共通の署名を持つべきであるように、関連のあるドキュメントを渡って安定である。共通の署名の数は、関連性の度合いに依存してもよい。さらに、署名は、2つの関連のないドキュメントが同一の署名を所有すべきでないように、ドキュメント間でユニーク(唯一)である。これらの要因は、サーチを実行するのによりロバストな環境および機構を提供する。
一実施形態では、システム(および方法)は、あるドキュメントに関連した少なくとも1つの署名を生成するよう構成される。システムは、テキストを含むドキュメントを受信する。そのドキュメントは、トークンセットを生成するために解析される。トークンセットは、2以上のトークンを含む。各トークンは、予め定められた文字特性により分けられるドキュメント内のテキストに対応する。予め定められた文字特性の例は、デリミタ、小文字、およびストップワードを含む。他の例では、予め定められた文字特性は、語の語幹解釈(ステミング)を通して識別されてもよい。
システムは、ドキュメント内のそのテキストの頻度および分布に基づいて、トークンセットにおける各トークンのためのスコアを計算する。計算されたスコアに基づいて、システムは、トークンセット内の各トークンをランク付けする。これらのランク付けされたトークンから、システムは、ランク付けされたトークンのサブセットを選択する。例えば、システムは、Nがランク付けされたトークンの総数未満のいずれかの整数であるとき、トップNにランク付けされたトークンを選択するよう構成されてもよい。ランク付けされたトークンが選択されると、システムは、選択されたトークンの各発生のための署名を生成する。システムは、例えば、署名をソートし、最初のMの署名を選択することにより(Mは、生成された署名の総数未満のいずれかの整数である)、生成された署名のサブセットを選択する。そして、その処理は、署名の生成されたリストを出力する。
署名システム(および方法)の別の実施形態は、UTF−8(8ビットユニコード変換フォーマット)エンコードを使用するドキュメントを使用のための追加の適応性に提供する。一実施形態では、システム(および方法)は、あるドキュメントに関連した少なくとも1つの署名を生成するよう構成される。特に、システムは、2以上の文字を含むドキュメントを受信する。そのドキュメントは、2以上の文字から有益ではない文字を取り除くために標準化される。有益でない文字の例は、余分な空白または制御文字を含む。
システムは、そのドキュメントの発生頻度および分布に基づいて、複数の文字の各有益な文字のためのスコアを計算する。複数の文字の各有益な文字は、計算されたスコアに基づいてランク付けされる。このランク付け(ランキング)から、システムは、文字発生を選択し、各選択された文字発生のための署名を生成する。そして、1以上の生成された署名のリストは出力され得る。
前に言及したとおり、署名の生成は、多くの利益および利点を提供する。例えば、サーチエンジンのコンテキストでは、署名は、高い関連性を有するドキュメントを返すためのクエリを効果的に実行するよう影響力を及ぼされてもよい。以上のように、署名は、ドキュメントのより良い特徴を可能にする。さらに、署名は、2つの関連のあるドキュメントがいくつかの共通の署名を有するように、関連のあるドキュメントに渡って安定性を有する。共通の署名の数は、関連性の度合いに依存してもよい。さらに、署名は、2つの関連のないドキュメントが同じ署名を所有しないように、ドキュメント間でユニークである。2つの関連のあるドキュメント間の共通の署名により、サーチエンジンは、入力ドキュメントのための関連のあるドキュメントを返すことができる。入力ドキュメントのための署名のユニークさにより、ここで記述されるようなサーチエンジンは、関連のないドキュメントを返すよりもむしろ、高度に関連のあるドキュメントを返すことができる。
一実施形態では、サーチエンジンは、高い関連性を有するドキュメントを返すクエリを効果的に実行するよう構成されてもよい。本開示において構成される関連性検出エンジンは、ドキュメント関連性の予め定められた度合いに基づいて、所定のドキュメントと他のドキュメントのリストとの間の関連性(または類似性)を計算する。
別の実施形態では、システム(および方法)は、テキストを含む最初のドキュメントを受信するよう構成される。さらに、システムは、ドキュメントのリストを受信する。このリストもテキストを含む。ドキュメントのリストは、最初の(または所定の)ドキュメントに対するマッチングのために用いられる。また、システムは、パーセンテージに関して求められる関連性の度合いに対応する所定の値を受信してもよい。例えば、システムは、X%、例えば95%の関連性以下のドキュメントが最終結果として除去されるように、少なくともX%、例えば95%の関連性を有するドキュメントを要求してもよい。
システムは、最小部分文字列の適合長を受信し、ドキュメントのリストにおけるドキュメントのテキストを標準化する。一実施形態では、システムは、そのサーチを始める前に、最初のドキュメントのテキストをソートする。また、システムは、そのサーチを始める前に、最初のドキュメントのテキストの部分文字列のためのハッシュ値を生成してもよい。システムがサーチを初期化すると、システムは、最初のドキュメントのテキストとドキュメントのリストにおける各ドキュメントのテキストとの間の共通のサブストリングをサーチする。そして、システムは、サーチされた共通のサブストリングに基づいてマッチ(適合)パーセンテージを計算する。一実施形態では、システムは、相似関数に基づいてマッチパーセンテージを計算するよう構成される。そして、システムは、最初に定義された関連性の度合いに対応する所定の値に応じたマッチパーセンテージを有するドキュメントを出力する。
関連性検出エンジンは、有利に、パーセンテージ測定においてドキュメント関連性を決定するよう構成される。その構成は、ヒットに含まれる関連のないドキュメントがパーセンテージ閾値によって除外され得るよう構成される。これは、サーチエンジンの利用を増加させ、より大きい承諾を有する結果を提供する。
一実施形態では、関連性検出エンジンは、有利に、ドキュメントフィルタを提供するよう構成される。それは、ドキュメント関連性の定義に基づいて、所定のドキュメントと他のドキュメントのリストとの間の関連性(または類似性)を計算する。その関連性はパーセンテージとして与えられる。所定の閾値X%のために、関連性検出エンジンは、X%未満の関連性を有するリスト内のドキュメントを除外する。
明細書に記載される特徴および利点は、すべてを含むものではなく、特に、多くの追加の特徴および利点は、図面、明細書および特許請求の範囲に関して当業者にとって明白であろう。さらに、明細書でも用いられる言語が読みやすさと説明書の目的のために主として選択され、本発明の主題を描写するために選択されるものではないことを注意されたい。
開示の実施形態は、添付図面に関連してなされるとき、以下の詳細な記述および添付の特許請求の範囲から容易に明白である他の利点および特徴を有する。
以下、いくつかの実施形態を詳細に言及する。この例は添付図面に示される。実行性のある限り、同様の参照符号が図面では用いられ、それらが同様の機能性を示すことを注意されたい。図面は、単に例証の目的で本発明の実施形態を描写する。当業者は、以下の記述から、ここに示される構成および方法の代わりの実施形態がここに記述の原則から逸脱することなく使用され得ることを容易に認識するであろう。
一般に、開示の実施形態は、ドキュメントに関連した少なくとも1つの署名を生成するシステムおよび方法を記述する。その署名は、例えば、企業コンピューティングシステムにおいて、サーチクエリにとって適切な結果を得るために用いられる。一実施形態では、テキストからなるドキュメントは、トークンセットを生成するために受信され、解析される。トークンセットは複数のトークンを含む。各トークンは、予め定められた文字特性により分けられたドキュメント内のテキストに対応する。スコアは、そのドキュメント内のテキストの頻度および分布に基づいて、トークンセット内の各トークンのために計算される。そして、各トークンは、計算されたスコアに基づいてランク付けされる。ランク付けされたトークンのサブセットが選択され、署名は、選択されたトークンの各発生に対して生成される。そして、署名の選択されたリストは出力される。システムおよび処理をさらにここで説明する。
図1を参照して、図1は、サーチエンジン100の従来のアーキテクチャの一実施形態を示す。従来のアーキテクチャ100は、ドキュメント保存場所110に格納される1以上のドキュメント105(a〜n)を含む。そして、それらのドキュメントは、サーチエンジン120によりインデックスを付され、インデックス付ドキュメント122は、インデックスデータベース124に格納される。
続いて、情報を探しているユーザ150は、サーチエンジン120内のドキュメント126をサーチするためにクエリ130を作る。サーチは、インデックスデータベース124内のインデックス付ドキュメント122に対して行われる。マッチがそのクエリに対応して見出されると、サーチエンジンは、ユーザ150に提供されるサーチ結果として関連のあるインデックス付ドキュメントを返す。
この処理は、従来の労働集約的サーチ作業における改良であるが、未だに制限を有する。インデックス付ドキュメントは、クエリのコンテキストに関して必ずしも適切ではないかもしれない。このため、プロフットボールリーグ(NFL:National Football League)のスコアに関するドキュメントのサーチは、アメリカンフットボールリーグよりも英語のフットボール(サッカー)に関連した結果を返すかもしれない。
図2は、本発明におけるマッチングエンジンのアーキテクチャの一実施形態を示す。一実施形態では、1以上のドキュメントリソース205(a〜n)は、ドキュメント保存場所210に集められる(あるいは保存される)。一般に、アーキテクチャは、そのドキュメントからトークンを前処理し、最も有益なトークンを選択し、その有益なトークンに基づいて、そのドキュメントに関連した署名を生成するよう構成される。また、アーキテクチャは、入力ドキュメントのコンテキストに関して生成された署名のユニークさを保証するよう構成される。さらに、アーキテクチャは、同じドキュメントの変化バージョンを渡って収集の安定性を確保しつつ収集される署名の数を限定するよう構成される。なお、一実施形態では、署名は、ある値、例えば、選択されたトークンに応じてASCII文字の特定の情報またはストリング(文字列)に対応するハッシュ表現である。
アーキテクチャに関する処理の一実施形態において、ドキュメント205が手動であるいはクローラの使用を通して収集されてもよいことをまず指摘する。例えば、クローラは、ドキュメントを収集するために、すべての割り当てられたドキュメントソースを訪問し、収集される各ドキュメントにユニークなドキュメント識別子(ID)を割り当て、その後ドキュメント保存場所210にユニークなドキュメントIDおよびドキュメントを配置するよう構成される。
次に、署名生成部215は、ドキュメント保存場所210内の特定のドキュメントから署名のリストを生成する。署名は、あるドキュメントを表すユニークな情報から作られるストリングまたは値である。この表示情報は、そのドキュメントにとってユニークであり、そのドキュメントが適度な変更を有するときも安定している。署名生成部215は、1以上の署名生成処理を格納するよう構成され得る。さらに、署名生成部215は、処理すべきドキュメントの種類に基づいて、格納された処理から1つを選択して実行するよう構成され得る。例えば、署名生成処理の一実施形態は、例えば、ASCIIコードの英語のドキュメントで使用するようになっていてもよい(構成されてもよい)。これについては図3でさらに説明する。また、その処理は、小文字、ストップワードおよびステミングを用いてもよい。例えば、ロマンス語やラテン語などの他の言語に適用することができる。署名生成処理の別の実施形態は、ユニコードによりサポートされるあらゆる言語のためにUTF−8(汎用変換フォーマット)エンコードのドキュメントで使用されるようになっている。これについては図4でさらに説明する。
署名生成部215が特定のドキュメントのための署名を生成すると、インデックス付与部222は、ユニークなドキュメント識別子(ID)と署名生成部215により生成された署名とをそのドキュメントにインデックスとして付す。その結果は、サーチエンジン220のインデックスデータベース224に格納されるインデックス付ドキュメント(インデックス付与部222による)である。
サーチエンジン220のインデックスデータベース224内のインデックス付ドキュメントでは、そのドキュメントは、クエリを発する用意ができている。ユーザ250は、署名生成部215により生成された署名に基づいてクエリ表現を作成するためにクエリライタ230を用いる。なお、ユーザ250により提供される入力ドキュメントがクエリ入力を提供する。ユーザ250は、署名が何であるかを知る必要がなく、むしろ、ユーザ250は、何が入力ドキュメントであるかのみを知る必要がある。ユーザ250は、その入力ドキュメントを署名生成部215に送る。署名生成部215から出力される署名は、クエリ構文のためにクエリライタ230に送られる。そして、構文のクエリは、ドキュメントをサーチするためにサーチ部226(サーチ(検索)機能)に送られる。
サーチエンジン220内のサーチ部226は、クエリライタ230を介して提供されるクエリを用いて、インデックスデータベース224をサーチする。サーチ部は、可能な関連のあるドキュメント226(「ヒット(hits)」)のリストを関連性検出エンジン240に返す。関連性検出エンジン240は、入力ドキュメントとヒットの間の関連性(例えば、パーセンテージの数値で)を計算する。関連性検出エンジン240は、関連性計算(または分析)のための1以上の処理を含むよう構成される。関連性決定処理の第1実施形態は図5に関してさらに説明される。関連性決定処理の第2実施形態は図6に関してさらに説明される。なお、関連性検出エンジン240は、これらの処理のいずれかを選択しあるいは実行することができる。例えば、小さいドキュメントのために、関連性決定処理の第1実施形態を配置することができ、例えば、サイズが10MBよりも大きいドキュメントのために、関連性決定処理の第2実施形態を配置することができる。
マッチングエンジンアーキテクチャは、有利に、ユニークな構成を提供する。例えば、クエリは、所定のドキュメントDおよびパーセンテージX%のために、Dと(D1,...,Dn)のすべてとの関連性がX%よりも大きいように、ドキュメント保存場所からドキュメントのリスト(D1,・・・,Dn)をサーチするよう構成される。
<署名生成>
図3は、本発明における署名生成処理の第1実施形態を示す。本実施形態は、ASCIIコードでエンコードされた英語ドキュメントから署名を生成することを示す。その処理は、ドキュメントを入力することにより開始する(ステップ305)。その処理は、1以上のトークン(トークンリスト)の最初のリストを生成(作成)するために、そのドキュメントを解析する(ステップ310)。一実施形態では、トークンは、予め定められた文字特性により分けられたドキュメントのテキストを含む。予め定められた文字特性の例は、デリミタ(区切り文字)を含む。トークンが分けられると、ステミング、ストップワークまたは小文字の分析等の機能が適用可能である。
その処理は、トークンリストの各トークンを小文字化し続ける(ステップ315)。小文字化は、トークンの各文字を小文字の文字に変換する関数である(ステップ315)。また、その処理は、トークンリストの各トークンを語幹化する(ステップ320)。なお、単語ステミングは、ある単語からコア語根(core root)を識別し、あるいは抽出する処理である。続いて、その処理は、新しい第1のトークンリスト(L1)策定するために、ストップワードリストをそのリストの各トークンに適用する(ステップ325)。ストップワードは、情報を持たないように考えられる単語である。ストップワードの例は、「the」、「are」、「do」、「am」などを含む。さらに、その処理は、ストップワードリストの各要素を語幹化する。
その処理は、第2のトークンリスト(L2)を形成するために、新しい第1のトークンリスト(L1)の各ユニークなトークンを選択する(または取り出す)(ステップ330)。第2のトークンリストL2の各トークンのために、その処理は、第1のトークンリストL1における発生位置をマークし(ステップ335)、以下のセットを生成する。
1=(t1,t2,...,tn
2=(T1,T2,...,Tm
ここで、発生の位置をマークするために、Ti〜<P(i,1),P(i,2),...,P(i,Si)>を示す(i=1,...,mであり、S1+S2+...+Sm=nである)。
そして、その処理は、第2のトークンリストL2内の各トークンのランク付けスコアを計算(あるいは生成)する(ステップ340)。そのスコアは、以下のように決定されればよい。
スコア(Tj)={P(j,Sj)−P(j,1)}×Sj×重み付け(Tj)/Sqrt(Dj
ここで、Dj={P(j,2)−P(j,1)]2+{P(j,3)−P(j,2)}2...+{P(J,Sj)−P(j,Sj-1)}2である。
さらに、スコア関数は、頻度および割り当てられた重み付けによってテキスト内のあるトークンの重要性を測定する。なお、重み付け()は、予め定義された関数であればよい。一実施形態では、その値は「1」であるが、トークンが「−」、「_」および「@」のような特別な文字を含むならば、代わりの実施形態では、予め割り当てられたある数字、例えば、6.8であってもよい。スコア関数は、Sj×重み付け(Tj)により決定されればよい。スコア関数は、より良いスコアを得るために、ドキュメント全体にトークンを均等に分配するために用いられてもよい。これは、{P(j,Sj)−P(j,1)}/Sqrt(Dj)により決定される。
次に、その処理は、計算されたスコアにより第2のトークンリストL2をソートし(ステップ345)、そのリスト(L2)からスコアによるトップNトークンを選択する(あるいは取り出す)(ステップ350)。なお、「N」はいずれかの整数であればよく、システム内に予め定められてもよく、あるいはシステムへの入力として選択されてもよい。第2のトークンリストL2からのスコアによるトップNトークンは、第3のトークンリストL3を作成する。第3のトークンリストL3の各トークンTjのために、L1におけるその発生および隣接したトークンから署名を生成する(ステップ355)。また、この処理は、以下のように表示され得る。
各kε{P(j,1),P(j,2),....,P(j,Si)}のために、L1における隣接した2番目のトークンを取り出し、tk-d+...+tk-1+tk+tk+1+...+tk+dのストリングを形成するために、それらを鎖状につなぐ。
このストリングのエンコードは、署名Fj,kを我々に与える。
第3のトークンリストL3の各Tjのために、その処理は、リスト(Fj,1,Fj,2,...Fj,Sj)をソートし、このソートされたリストからトップMの署名を選択する(ステップ360)。なお、「M」はいずれかの整数であればよく、システム内に予め定められてもよく、あるいはシステムへの入力として選択されてもよい。次に、第3のトークンリストL3のすべての要素のために、合計(N×M)あり、選択された署名は、集められ(あるいは収集され)る(ステップ365)。そして、その処理は、署名のコレクションを出力する(ステップ370)。
図4は、本発明における署名生成処理の第2実施形態を示す。第2実施形態は、例えば、明確なUTF−8フォーマット(汎用変換フォーマット)におけるあらゆる言語のテキストドキュメントと、有益であると考えられるUTF−8アルファベットの文字のリストを入力する処理(ステップ405)とを含む。さらに、他の入力は、トップにランクするスコアを持つ多くの文字に対応するある数Mと、各文字の最大署名数に対応するある数Nとを含んでもよい。他の任意の入力は、予め定められた値、例えば30を有することができる整数定数CHAR_NEIGHBORを含んでもよい。この整数定数は、テキストストリングにおける文字の隣のもののサイズを定義する。それは、署名を生成するために用いられる。他の入力は選択割合Rである。それは0と1の間の予め定められた範囲、例えば0.20を有する。選択割合は、あるセットからサブセットを選択するのに使用する数である。さらに他の入力は空の署名リストSであってもよい。
その処理は、有益でない文字を取り除くためにドキュメントをスキャンすることにより、そのドキュメントを標準化する(ステップ410)。有益でない文字は、テキストコンテキストに貢献しないUTF−8文字である。それらは、書式設定(フォーマッティング)などの他の目的を提供してもよい。例えば、ストリングがn個の連続するスペースを有するならば、n−1個のスペースは有益でないと考えられる。有益でない文字の他の例は、制御(CTRL)文字及びリターンを含む。
そして、その処理は、UTF−8アルファベット内の各文字cの発生を記録するために、標準化されたドキュメントをスキャンする(ステップ415)。発生の位置は、P(1,c),P(2,c),...,P(n,c)として示される。その処理は、以下を用いて文字cのためのランク付きのスコアを計算(あるいは生成)する。
スコア(c)=Sqrt(n)×{P(n,c)−P(1,c)}/Sqrt(D)
ここで、D={P(2,c)−P(1,c)}2+{P(3,c)−P(2,c)}2+...+{P(n,c)−P(n−1,c)}2である。スコア関数は、その頻度によってテキスト内の文字の重要性を測定する。また、スコア関数は、ドキュメント全体に均等に分布した文字がより良いスコアを得ることを確実にする。これを達成する計算は、以下を含む。
{P(n,c)−P(1,c)}/Sqrt(D)
その処理は、スコアによる文字アルファベットをソートし続け(ステップ420)、トップスコアを持つM文字を選択する(あるいは取り出す)(ステップ425)。この生成されたリストは、文字リストLとして示される。なお、「M」は、いずれかの整数であればよく、システム内に予め定められてもよく、前述のように、システムへの入力として選択されてもよい。
文字リストLの各文字cのために、文字cの各発生pにおいて、その処理は、その隣接するものを計算する。特に、その処理値は、その左右の文字を取り、すべてのエンコードバイトをともに連結することにより、整数vを形成する。この隣接値vおよび発生pは、ペア(v,p)を作る。次に、その処理は、1の値を変数jに割り当てる。変数jは、リストLの列挙である。jを用いて、Lの要素は1つずつ処理されればよい。図示の処理では、この構造は、「各(each)」の概念を実現するために用いられ、インクリメントに増加される。順々に、これは、文字リストL内の各文字cのペアのリストL1(c)を形成する(ステップ440a)。リストL1(c)のサイズは、N(c)として示されてもよい。各リストL1(c)のために、その処理は、トリプレット(m,v,p)を持つ第2のリストL2(c)を形成するために(ステップ445)、そのリスト内の各隣接値vの繰り返しmをカウントする。また、第2のリストL2(c)のサイズは、N(c)として示されてもよい。各リストL2(c)は、(m,v)によってソートされる(ステップ450)。ここで、「m」は第1の比較パラメータであり、「v」は第2の比較パラメータである。
その処理は、ソートされた第2のリストL2(c)からトップのK(c)トリプレットを選択する(あるいは取り出す)(ステップ455)。ここで、K(c)≦R×N(c)である。これは、第3のリストL3(c)を形成する。第3のリストL3(c)の各トリプレット(m,v,p)のために、その処理は、発生位置pを囲む隣接文字を持つハッシュ値を生成するハッシュ関数hash(p)によりそのハッシュ値を計算する(ステップ460)。適用可能なハッシュ関数の例は、従来のラビン−カープ(Karp-Rabin)ハッシュ関数であればよい。隣接文字の数は、CHAR_NEIGHBORにより決定される。その処理は、ハッシュ値により第3のリストL3(c)をソートし(ステップ465)、第4のリストL4(c)を形成するために、ソートされたリストL3(c)のトップからNトリプレットまでを選択する(取り上げる)(ステップ470)。なお、「N」はいずれかの整数であればよく、システム内に予め定められてもよく、あるいは上述のようにシステムへの入力として選択されてもよい。L4(c)の各トリプレット(m,v,p)のために、その処理は、発生位置pを囲む文字を用いて署名を生成し、それを署名リストSに追加する(ステップ475)。そして、その処理は、署名リストSを出力する(ステップ485)。なお、上述の処理は繰り返しであり、そのため、リストL内のすべての文字cのために繰り返される。
署名生成部は、有利に、クエリを作成するときキーワードの役割を取り替えるユニークな構成である。署名生成部は、ヒットのサイズを低減するため、有効である。これは、マッチングエンジンのパフォーマンスを向上する。さらに、署名生成部は、マッチングエンジンのサーチの正確な割合を改善する。また、署名生成部は、言語に依存せず、したがって、サーチに利用可能なドキュメントの範囲を拡大するよう構成され得る。
概して、署名は、従来のキーワードよりも有益な方法で、サーチエンジン内の特定の役割を果たす。署名は、キーワードよりもドキュメントを特徴付けあるいは表すここに記述のような方法で、ドキュメントから抽出される。このため、それらは、キーワードよりもドキュメントに関連する。署名がキーワードとは異なることに注意されたい。ここでは、署名はドキュメントに強く関連するが、キーワードは必ずしもそうではない。2つの関連のないドキュメントは、あらゆる署名を共有しないが、それらは同じ一つのキーワードを所有することができ、署名は、キーワードよりも良いサーチの正確な割合を達成する。
<関連性検出>
また、本発明におけるシステムは、関連性検出の機会を含んでもよい。関連性検出に対して、各ドキュメントは、アルファベットの文字(ASCII、ユニコードなど)のストリングとして考慮され得る。したがって、2つのドキュメントの関連性は、2つのストリングの類似性に強く関連する。2つのストリングの類似性を定義するための従来のアプローチがある。1つのアプローチは、2つのストリングの最も大きい共通の部分列を得ることである。第2のアプローチは、2つのストリングの最も大きい共通の部分文字列を抽出することである。しかしながら、これらのアプローチの両方は、しばしばその使用を不十分にする制限を有する。最も大きい共通のストリングのアプローチは、他の類似の共通の部分文字列を含まず、そのため、正確ではない。最も大きい共通の部分列のアプローチは、コンテンツ交換(スワッピング)を取り扱うことができず、そのため、また不正確である。
本発明において、第3のアプローチは、ストリングの類似性から始まる。例えば、2つのストリングstr1およびstr2と、2番目のストリングstr2の部分文字列のリストSとを考慮する。このリストは、S内のすべての要素が重なり合わず、Sの各要素の長さが最小値Mより大きく、Sの各要素がstr1の部分文字列でもあるという条件を満足する。なお、「M」は、いずれかの整数であれば良く、システム内に予め定められてもよく、あるいはシステムへの入力として選択されてもよい。
上記3つの条件を満足する部分文字列のすべてのセットのために、Sは、すべての部分文字列の長さ極大合計を得る。関数SIMは、str1に対するstr2の類似性を測定するために適用される。その関数は、以下のように定義されればよい。
SIM(str2,str1)=(Sのすべての部分文字列の長さの合計)/(str2の長さ)×100%
関数SIMが対称ではない、すなわち、SIM(str1,str2)≠SIM(str2,str1)であることを知らせる。例えば、str1=「AAAAACCCCCCCCBBBBBBDDDDDDAAAAAALLLLLLL」およびstr2=「CCCCCCCCCZZZZZAAAAAAABBBBTTTTLLL」を考慮する。部分文字列の長さの要求される最小値は、例えば、M=4として設定されればよい。そして、S=(「AAAAAA」,「CCCCCCCC」,「BBBB」)であり、str2の部分文字列は、類似性を計算する必要があるものである。
SIM(str2,str1)=18/27=67%
上記の例は、各コピーの最小サイズ要求で、str1からstr2にコピーされる部分文字列によって実際に定義される2つのストリングの類似性の一実施形態を示す。テキストドキュメントには、ドキュメントコンテキストに必ずしも貢献しない多くの文字がある。例えば、余分な空白や不可視文字は全く有益ではない。このため、これらの役に立たない文字は、関数SIMを適用する前に、ドキュメントから最初に取り除かれる。この処理は「ストリング標準化」といってもよい。例えば、ストリング「この文にはいくつかの役に立たない文字がある!(There are some useless characters in this sentence !)」は、「There are some useless characters in this sentence!」として標準化され得る。この例では、不必要な(あるいは役に立たない)元の文の単語の間の空白および標準化後の単語の間のただ1つの空白がある。
上記に加え、明白なASCIIまたはUTF−8フォーマットの2つのテキストドキュメントdoc1およびdoc2を与える以下の例を考慮する。まず、ドキュメントdoc1は、ストリングstr1になるように標準化され、ドキュメントdoc2は、ストリングstr2になるように標準化される。doc1に対するdoc2の関連性は、SIM(str2,str1)により定義される。それは、RLVN(doc2,doc1)として示され得る。関数RLVNはこの例では対称ではない。
次に、ストリング接尾辞を考慮する。n+1文字のあるストリングX=x01...xnが与えられる。ここで、最初のn文字は、実際のストリングを含み、xn=$は、ASCIIまたはUTF−8テーブルに定義されないユニークなセンチネル文字で、位置i(ここで、i=0,1,...,n)で始まるXの接尾辞である。この例では、S(X,0)=XおよびS(X,n)=$であり、ストリングXはn+1個の接尾辞(または接尾辞ストリング)を有する。さらに、接尾辞ストリングはソートされる。ストリングXはn+1個の接尾辞ストリングを有する。これらは、あらゆる手段により辞書編集上ソートされ得る。接尾辞のソートは、当業者に公知の従来のアルゴリズム問題である。
上記概要を考慮に入れて、ここで図5を参照する。図5は、本発明における関連性決定処理の第1実施形態を示す。その処理は、1以上の追加のドキュメントと、整数Mと、最初のドキュメント(例えば、「doc」という)との入力で始まる(ステップ505)。例として、ここでは、追加のドキュメントのリストは、マッチされるべきテキストドキュメントのリストであればよい。追加のドキュメントは、docm(またはdoc_m)を通してdoc1(またはdoc_1)といってもよい。ここで、「m」は追加のドキュメントの数であり、「M」は最小部分文字列の適合長に対応する整数である。なお、「M」は、いずれかの整数であればよく、システム内に予め定められてもよく、あるいは、前述のようなシステムへの入力として選択されてもよい。
その処理は、ストリングstrと、str1(またはstr_1)からstrm(またはstr_m)とを得るために、すべてのドキュメント、最初のdocと、追加のdoc1からdocnとを標準化する(ステップ510)。従来の接尾辞ソートアルゴリズムを使用して、その処理は、接尾辞ストリング位置を記録するために、アレイIDXを持つstrの接尾辞をソートする(ステップ515)。なお、アレイIDXは従来の接尾辞ソートアルゴリズムにおいて公知である。そして、その処理は、割り当てるべき変数k、例えば、k=1を割り当てる値を割り当て(あるいは許す)(ステップ520)。また、それは、ストリングstrの長さに変数Lを、strkの長さに変数Lkを、変数P=0、およびSIMk=0を割り当て(あるいは許す)(ステップ525)。
次に、その処理は、ストリングstrおよびS(strk,P)の最大マッチング長さをサーチする(ステップ535)。特に、その処理は、変数V=SearchMaxMatchLen(IDX,0,L,str,L,S(strk,P),Lk−P)を割り当てる(許す)。ここで、SearchMaxMatchLen()は、以下にさらに定義されるように、ストリングstrおよびS(strk,P)の最大マッチング長さを計算するための帰納的関数である。
int searchMaxMatchLen (intIDX, int start, int end, char *str, int len,
char *str2, int len2) {
int i, j;

if(end-start < 2) {
i = getMaxMatchSize(str+IDX[start], len -IDX[start], str2, len2);
j = getMaxMatchSize(str+IDX[end], len -IDX[end], str2, len2);
if(i >j)
return i;
else
return j; }
i = start+(end-start)/2;
if(strncmp(str+IDX[i], str2, minimum(len-IDX[i], len2)) < 0)
return searchMaxMatchLen (IDX, i, end, str, len, str2, len2);
else
return searchMaxMatchLen (IDX, i, start, str, len, str2, len2); }

int getMaxMatchSize(char *str, int len, char *str2, int len2) {
int i;
for(i = 0; (i < len) && (i < len2); i++)
if(str[i] != str2[i]) break;
return i; }
上記は、別のストリングstr2を持つ最も長い共通の接頭辞の部分文字列を共有する(ストリングstrの)接尾辞ストリングをサーチするための関数searchMaxMartchLenの例を示す。この関数は、二分サーチにより実行される。関数getMaxMatchSizeは、2つのストリングの間の最も長い共通の接頭辞を得るためのものである。次に、その処理は、V≧Mを決定し(ステップ540)、SIMk=SIMk+V/Lk、P=P+Vを割り当てる(ステップ550)。その他、条件V≧Mが満たされないとその処理が決定するならば、その処理は、P=P+1のように変数Pをインクリメントする(ステップ545)。そして、その処理がP<Lkであると決定するならば、その処理は、ストリングstrおよびS(strk,P)の最大マッチング長さをサーチするステップ535に戻る。
条件P<Lkが満たされないとその処理が決定するならば(ステップ545)、その処理は、k<mを決定する(ステップ560)。k<mならば、その処理は、k=k+1によりkをインクリメントする(ステップ530)。そして、その処理は、ストリングstrの長さに変数Lを、strkの長さに変数Lkを、変数P=0およびSIMk=0を割り当てるステップ525に戻る。条件k<mが満たされないとその処理が決定するならば(ステップ560)、その処理は、SIM1,...,SIMmの結果を出力する(ステップ565)。
その出力は、有利に、入力ドキュメントと追加のドキュメントのリストとの間のパーセンテージによる類似性を提供する。例えば、上述のように、格納されたインデックスドキュメントデータベース内のドキュメントを見付けるために、X%と入力ドキュメントとが与えられる。その処理は、有利に、署名生成部により入力ドキュメントの署名を生成する。サーチ部は、その署名を用いてインデックスデータベースをサーチし、ドキュメントのリスト(ヒット)を返す。それぞれは、少なくとも1つの共通の署名を入力ドキュメントに分配する。関連性決定処理は、入力ドキュメントとそのリスト内の各ドキュメントとの間の類似性を計算する。これらは、SIMi,...,SIMmとして出力される。ここで、その処理は、SIMk≧X%を満足するドキュメントを選択することができる。また、このロジックは、マッチングエンジンアーキテクチャを通して暗示される。
図6において、本発明における関連性決定処理の第2実施形態を示す。その処理は、「doc」という最初のテキストドキュメント、そのdocにマッチすべきテキストドキュメントのリスト、および整数Mの入力で始まる(ステップ605)。テキストドキュメントのリストはdoc1,...,docmという。ここで、「m」はテキストドキュメントの数であり、「M」は最小部分文字列の適合長である。なお、「M」はいずれかの整数であればよく、システム内に予め定められてもよく、あるいは、前述のようにシステムへの入力として選択されてもよい。
その処理は、ストリングstr、str1,...,strmを生成する(または作り出す)ために、doc1,...,docmを標準化する(ステップ610)。次に、その処理は、ストリングstrのサイズより大きいLという素数Qを割り当てる(ステップ615)。例として、Q=3×L/2である本実施形態を説明する目的を想定する。その処理は、サイズQを持つアレイHをハッシュ値の衝突を解決する能力を変更するハッシュテーブルに配分する。所定の変数のために、j=0からL−Mであり、その処理は、ハッシュ値h=HT_FUN(str,j,M)を生成し(ステップ620)、H[h]におけるストリング位置を格納する。その代わりに、それは、衝突チェーンリンクリストにそれを格納してもよい。ハッシュ関数HT_FUNは、ストリングstrの部分文字列のハッシュ値を計算するものであり、位置jおよび長さMで始まる。一実施形態では、従来のラビン−カープハッシュ関数が適用されればよい。
次に、変数kは、ある値例えばk=1を割り当てられる(ステップ625)。また、値は、Lkにストリングstrkの長さを、P=0およびSIMk=0を割り当てられる(ステップ630)。その処理は、h=HT_FUN(strk,P,M)のようにハッシュ値を計算する(ステップ640)。その処理は、ハッシュテーブル入力H[h]を調べ、H[h]が空であるか否かを決定する(ステップ645)。H[h]が空でないならば、H[h]におけるチェーンリンクリストの各ストリング位置のために、その処理は、2つの部分文字列の最大マッチング長さを得るために、変数V(s)=getMaxMatchSize(str+s,L−s,strk+P,Lk−P)を割り当てる(ステップ650)。そして、その処理は、V=maximum(V(s))を割り当てる。変数Vは、S(strk,P)の最も大きい接頭辞ストリングの長さを表す。また、この接頭辞は、ストリングstrの部分文字列である。
その処理がV≧Mと決定するならば(ステップ660)、それは、SIMk=SIMk+V/LkおよびP=P+Vを割り当てる(ステップ670)。それがV<Mであると決定するならば(ステップ660)、それは、P=P+1を割り当てる(ステップ665)。同様に、その処理がH[h]は空であると決定したならば、P=P+1を割り当てるだろう(ステップ665)。その処理のこれらの後者の態様のいずれかでは、次のステップは、P<Lk−Mを決定することである(ステップ675)。P<Lk−Mならば、その処理は、h=HT_FUN(strk,P,M)のようにハッシュ値を計算するステップ640に戻る。しかしながら、その処理がPはLk−M以上であると決定するならば、それは、k<mであるか否かを決定する(ステップ680)。k<mならば、その処理は、k=k+1のようにkをインクリメントし(ステップ635)、Lkにストリングstrkの長さを、P=0およびSIMk=0のために値を割り当てる(ステップ630)。kがm以上であれば、その処理は、SIM1,...,SIMmを出力する(ステップ685)。上述のように、その出力は、有利に、入力ドキュメントと追加のドキュメントのリストとの間のパーセンテージでの類似性を提供する。
関連性検出エンジンは、有利に、パーセンテージ測定におけるドキュメント関連性を決定するよう構成される。その構成は、ヒットに含まれる関連のないドキュメントがパーセンテージ閾値によって除外され得るよう構成される。これは、サーチエンジンの利用を増加させ、大きい度合いの容認を有する結果を提供する。
一実施形態では、関連性検出エンジンは、有利に、ドキュメントフィルタを提供するよう構成される。それは、ドキュメント関連性の定義に基づいて、所定のドキュメントと他のドキュメントのリストの間の関連性(または類似性)を計算する。その関連性はパーセンテージで与えられる。所定の閾値X%のために、エンジンは、X%未満の関連性を有するリスト内のドキュメントを除外する。
概して、開示のマッチングエンジンは、多くのユニークな特徴および利点を含む。上述のような署名生成部および関連性検出エンジンの適用は、それぞれ個別におよびシステム構成内にユニークな態様を追加する。
また、明細書に記述の特徴および利点は、ここで実施形態に記述されるようなシステムおよび方法を使用するものにとって有利な使用をもたらす。例えば、ユーザは、ここに記述のような特定の情報へのアクセスを制御するために、例えば、制御信号を送受信することにより、多くの機構を提供される。また、それらの機能をサポートする構成要素例えばサーバシステムのすべての部分がユーザに対してローカルに位置するか遠隔に位置するかにかかわらず、これらの利益は生じる。
実施形態の完全な理解を与えるために、多数の特定の詳細を説明した。しかしながら、その実施形態がこれらの特定の詳細なしに実施されてもよいことを当業者は理解するであろう。他の例では、実施形態を不明瞭にしないように、周知の動作、構成要素および回路を詳細に説明しなかった。ここに開示の特定の構造および機能の詳細が代表的なものであり、実施形態の範囲を必ずしも限定しないことを認識されたい。
種々の実施形態は、1以上のハードウェア要素を用いて実施されればよい。一般に、ハードウェア要素は、一定の動作を実行するために配置されるあらゆるハードウェア構成を参照する。一実施形態では、例えば、ハードウェア要素は、基板上に設置されるあらゆるアナログあるいはデジタル電気あるいは電子素子を含んでもよい。その製造は、例えば、相補型金属酸化膜半導体(CMOS)、バイポーラ、バイポーラCMOS(BiCMOS)技術のようなシリコンベースの集積回路(IC)技術を用いて実行されればよい。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラム可能な論理回路(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体素子、チップ、マイクロチップ、チップセットなどを含む。実施形態はこのコンテキストに限定されない。
種々の実施形態は、1以上のソフトウェア要素を用いて実施されてもよい。一般に、ソフトウェア要素は、一定の動作を実行するために配置されたあらゆるソフトウェア構造を参照する。一実施形態では、例えば、ソフトウェア要素は、プロセッサなどのハードウェア要素による実行に適したプログラム指示(命令)やデータを含めばよい。指示のプログラムは、実行されるとき、対応する動作セットをプロセッサに実行させる所定の構文にアレンジされた単語、値、もしくは記号を含むコマンドの組織的リストを含めばよい。
ソフトウェアは、プログラミング言語を用いて書かれあるいはコード化されればよい。プログラミング言語の例は、C、C++、BASIC、Perl、Matlab、Pascal、Visual BASIC、JAVA(商標)、ActiveX、アセンブリ言語、機械コードなどを含めばよい。ソフトウェアは、あらゆるタイプのコンピュータに読み取り可能な媒体または機械に読み取り可能な媒体を用いて格納されてもよい。また、ソフトウェアは、ソースコードまたはオブジェクトコードとして媒体に格納されてもよい。また、ソフトウェアは、圧縮あるいは暗号化データとして媒体に格納されてもよい。ソフトウェアの例は、あらゆるソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、手順(procedure)、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、指示(命令)セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、文言、値、記号、あるいはあらゆるそれらの組み合わせを含めばよい。実施形態はこのコンテキストに限定されない。
いくつかの実施形態は、それらの派生語とともに、「連結され(coupled)」および「接続され(connected)」という表現を用いて説明され得る。これらの用語が互いに類義語として意図されていないことを理解されたい。例えば、いくつかの実施形態は、2以上の構成要素が互いに直接物理的または電気的に接触していることを示すために、用語「接続され」を用いて説明されてもよい。他の例では、いくつかの実施形態は、2以上の構成要素が直接物理的または電気的に接触していることを示すために、用語「連結され」を用いて説明されてもよい。また、しかしながら、用語「連結され」は、2以上の構成要素が互いに直接接触してないが、互いに協働しあるいは相互作用することを意味してもよい。実施形態はこのコンテキストに限定されない。
いくつかの実施形態は、例えば、あらゆるコンピュータに読み取り可能な媒体、機械に読み取り可能な媒体、あるいはソフトウェアを格納可能な商品を用いて実施されればよい。媒体または商品は、メモリを参照して記述されるあらゆる例のようなあらゆる適当なタイプのメモリユニット、メモリ素子、メモリ商品、メモリ媒体、記憶装置、記憶商品、記憶媒体あるいは記憶ユニットを含めばよい。媒体または商品は、メモリ、着脱可能なもしくは着脱できない媒体、消去可能なもしくは消去できない媒体、書き込み可能もしくは再書き込み可能な媒体、デジタルもしくはアナログ媒体、ハードディスク、フロッピー(登録商標)ディスク、読み出し専用のコンパクトディスク(CD−ROM)、記録可能なコンパクトディスク(CD−R)、書き換え可能なコンパクトディスク(CD−RW)、光ディスク、磁気媒体、光磁気媒体、着脱可能なメモリカードもしくはディスク、多種のデジタルバーサタイルディスク(DVD)、加入者識別モジュール、テープ、カセットなどを含めばよい。指示(命令)は、ソースコード、オブジェクトコード、コンパイル済コード、解釈済コード、実行可能なコード、スタティックコード、ダイナミックコードなどのあらゆる適当なタイプのコードを含めばよい。指示は、C、C++、Java、BASIC、Perl、Matlab、Pascal、Visual BASIC、JAVA、ActiveX、アセンブリ言語、機械コードなどのあらゆる適当なハイレベルの、ローレベルの、オブジェクト指向の、視覚による、コンパイル済のあるいは解釈済のプログラミング言語を用いて実施されてもよい。実施形態はこのコンテキストに限定されない。
別な方法で特に述べていない限り、「処理(processing)」、「コンピューティング(computing)」、「計算する(calculating)」、「決定する(determining)」などの用語は、コンピューティングシステムのレジスタあるいはメモリ内の物理量(例えば、電子)として表されるデータを処理し、コンピューティングシステムのメモリ、レジスタまたは他のそのような情報記録、送信または表示装置内で物理量として同様に表される他のデータに変換するコンピュータもしくはコンピューティングシステムまたは同様の電子コンピューティング装置の動作あるいは処理を言及することを認識するであろう。実施形態はこのコンテキストに限定されない。
ここで用いられるように、「一実施形態(one embodiment)」または「一実施形態(an embodiment)」というあらゆる参照は、実施形態に関連して説明される特定の要素、特徴、構造、または特性が少なくとも一つの実施形態に含まれることを意味するものである。明細書中の種々の場所の句「一実施形態における(in one embodiment)」の出現は、必ずしもすべてが同じ実施形態に言及していない。
ここで用いられるように、用語「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、「含んでいる(including)」、「有する(has)」、「有している(having)」あるいはあらゆる他のバリエーションは、排他的ではない包含を含むように意図される。例えば、要素のリストを含む処理、方法、商品または装置は、必ずしもそのような要素のみに限定されず、明白にリストされずあるいはそのような処理、方法、商品、または装置に固有の他の要素を含んでもよい。また、それと反対に明白に言わない限り、「または、もしくは(or)」は、排他的な「or」ではなく包含的な「or」を言及する。例えば、条件AまたはBは、以下の条件、すなわち、Aが正であり(または存在し)、Bが偽(または存在しない)であるか、Aが偽(または存在しない)であり、Bが正(または存在し)あるか、AとBの両方が正である(または存在する)かのいずれか一つによって満たされる。
また、「ある(a)」または「ある(an)」の使用は、本発明の実施形態の要素および構成要素を記述するために用いられる。これは、単に好都合で、本発明の実施形態の一般的な意味を与えるためになされたものである。この記述は、1つあるいは少なくとも1つを含むように読むべきである。また、単数は、別な方法で意味することが明白でない限り、複数を含むものである。
本開示を読むと、当業者は、クエリ関連ドキュメントに対するマッチングエンジンのシステムおよび処理のための追加の代わりの構造的および機能的設計を認識するであろう。それは、ここに開示の原則を通して署名生成および関連性検出を含んでもよい。したがって、特定の実施形態および適用が記載され、説明されたが、本発明がここに開示の正確な構成および構成要素に限定されず、添付の特許請求の範囲において定義されるような本発明の意図および範囲を逸脱することなく、当業者に明白な種々の修正、変更および変形がここに開示の本発明の方法および装置の配置、動作、詳細においてなされてもよいことを理解されたい。
サーチエンジンの従来のアーキテクチャの一実施形態を示す。 本発明におけるマッチングエンジンのアーキテクチャの一実施形態を示す。 本発明における署名生成処理の第1実施形態を示す。 本発明における署名生成処理の第2実施形態を示す。 本発明における関連性決定処理の第1実施形態を示す。 本発明における関連性決定処理の第2実施形態を示す。

Claims (38)

  1. ドキュメントに関連した複数の署名を生成する方法であって、
    テキストを含むドキュメントを受信するステップと、
    それぞれが予め定められた文字特性によって分けられる前記ドキュメントのテキストに対応する複数のトークンを含むトークンセットを生成するために、前記ドキュメントを解析するステップと、
    前記ドキュメント内の前記テキストの頻度および分布に基づいて、前記トークンセット内の各トークンのためのスコアを計算するステップと、
    前記計算されたスコアに基づいて、前記トークンセット内の各トークンをランク付けするステップと、
    前記ランク付けされたトークンからランク付けされたトークンのサブセットを選択するステップと、
    前記選択されたトークンの各発生のための署名を生成するステップと、
    を含むことを特徴とする方法。
  2. 前記予め定められた文字特性はデリミタを含むことを特徴とする請求項1に記載の方法。
  3. 前記ランク付けされたトークンから前記ランク付けされたトークンのサブセットを選択するステップは、トップにランク付けされたトークンの所定数を選択するステップをさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記署名の選択されたリストを出力するステップは、あるリスト内のトップの署名の所定数を出力するステップをさらに含むことを特徴とする請求項1に記載の方法。
  5. 前記ドキュメントはASCIIドキュメントであることを特徴とする請求項1に記載の方法。
  6. 前記生成された署名のリストを出力するステップをさらに有することを特徴とする請求項1に記載の方法。
  7. ドキュメントに関連した複数の署名を生成する方法であって、
    複数の文字を含むドキュメントを受信するステップと、
    前記複数の文字から有益でない文字を取り除くために、前記ドキュメントを標準化するステップと、
    前記ドキュメントの発生頻度および分布に基づいて、前記複数の文字の各有益な文字のスコアを計算するステップと、
    前記計算されたスコアに基づいて、前記複数の文字の各有益な文字をランク付けするステップと、
    前記ランク付けされた有益な文字から文字発生を選択するステップと、
    各選択された文字発生のための署名を生成するステップと、
    を有することを特徴とする方法。
  8. 前記文字発生を選択するステップは、ハッシュ値を生成するために、各文字発生の回りのバイトをハッシングするステップと、予め定められたランク付けに前記ハッシュ値をソートするステップとをさらに含むことを特徴とする請求項7に記載の方法。
  9. 前記署名を生成するステップは、前記選択された文字発生の回りの文字を用いて、前記署名を生成するステップをさらに含むことを特徴とする請求項7に記載の方法。
  10. 前記文字はUTF−8文字であることを特徴とする請求項7に記載の方法。
  11. 前記有益でない文字は、余分な空白、制御文字、その組み合わせからなるグループからの一つを含むことを特徴とする請求項7に記載の方法。
  12. 前記生成された署名のリストを出力するステップをさらに有することを特徴とする請求項7に記載の方法。
  13. プロセッサに実行可能な指示を格納するよう構成されるコンピュータに読み取り可能な媒体であって、前記指示は、実行されるとき、
    テキストを含むドキュメントを受信するステップと、
    それぞれが予め定められた文字特性によって分けられる前記ドキュメントのテキストに対応する複数のトークンを含むトークンセットを生成するために、前記ドキュメントを解析するステップと、
    前記ドキュメント内の前記テキストの頻度および分布に基づいて、前記トークンセット内の各トークンのためのスコアを計算するステップと、
    前記計算されたスコアに基づいて、前記トークンセット内の各トークンをランク付けするステップと、
    前記ランク付けされたトークンからランク付けされたトークンのサブセットを選択するステップと、
    前記選択されたトークンの各発生のための署名を生成するステップと、
    を前記プロセッサに実行させることを特徴とするコンピュータに読み取り可能な媒体。
  14. 前記予め定められた文字特性はデリミタを含むことを特徴とする請求項13に記載のコンピュータに読み取り可能な媒体。
  15. 前記ランク付けされたトークンから前記ランク付けされたトークンのサブセットを前記プロセッサに選択させる指示は、トップにランク付けされたトークンの所定数を該プロセッサに選択させる指示をさらに含むことを特徴とする請求項13に記載のコンピュータに読み取り可能な媒体。
  16. 前記署名の選択されたリストを前記プロセッサに出力させる指示は、あるリスト内のトップの署名の所定数を該プロセッサに出力させる指示をさらに含むことを特徴とする請求項13に記載のコンピュータに読み取り可能な媒体。
  17. 前記ドキュメントはASCIIドキュメントであることを特徴とする請求項13に記載のコンピュータに読み取り可能な媒体。
  18. 前記プロセッサに実行されるときの前記指示は、さらに、前記生成された署名のリストを該プロセッサに出力させることを特徴とする請求項13に記載のコンピュータに読み取り可能な媒体。
  19. プロセッサに実行可能な指示を格納するよう構成されるコンピュータに読み取り可能な媒体であって、前記指示は、実行されるとき、
    複数の文字を含むドキュメントを受信するステップと、
    前記複数の文字から有益でない文字を取り除くために、前記ドキュメントを標準化するステップと、
    前記ドキュメントの発生頻度および分布に基づいて、前記複数の文字の各有益な文字のスコアを計算するステップと、
    前記計算されたスコアに基づいて、前記複数の文字の各有益な文字をランク付けするステップと、
    前記ランク付けされた有益な文字から文字発生を選択するステップと、
    各選択された文字発生のための署名を生成するステップと、
    を前記プロセッサに実行させることを特徴とするコンピュータに読み取り可能な媒体。
  20. 前記文字発生を前記プロセッサに選択させる指示は、該プロセッサにより実行されるとき、ハッシュ値を生成するために、各文字発生の回りのバイトを該プロセッサにハッシングさせる指示と、該プロセッサに予め定められたランク付けに前記ハッシュ値をソートさせる指示とをさらに含むことを特徴とする請求項19に記載のコンピュータに読み取り可能な媒体。
  21. 前記プロセッサに前記署名を生成させる指示は、前記選択された文字発生の回りの文字を用いて、該プロセッサに前記署名を生成させる指示をさらに含むことを特徴とする請求項19に記載のコンピュータに読み取り可能な媒体。
  22. 前記文字はUTF−8文字であることを特徴とする請求項19に記載のコンピュータに読み取り可能な媒体。
  23. 前記有益でない文字は、余分な空白、制御文字、リターン、その組み合わせからなるグループからの一つを含むことを特徴とする請求項22に記載のコンピュータに読み取り可能な媒体。
  24. 前記プロセッサにより実行されるときの前記指示は、前記生成された署名のリストを前記プロセッサに出力させることを特徴とする請求項19に記載のコンピュータに読み取り可能な媒体。
  25. 所定の関連性を有するドキュメントの出力を生成する方法であって、
    テキストを含む最初のドキュメントを受信するステップと、
    マッチングのために、それぞれがテキストを含む複数のドキュメントのリストを受信するステップと、
    最小部分文字列の適合長を受信するステップと、
    前記ドキュメントのリストにおける該ドキュメントの前記テキストを標準化するステップと、
    前記最初のドキュメントの前記テキストと前記ドキュメントのリストにおける各ドキュメントの前記テキストとの間の共通の部分文字列をサーチするステップと、
    前記サーチされた共通の部分文字列に基づいて、適合パーセンテージを計算するステップと、
    所定の値に対応する適合パーセンテージを有するドキュメントを出力するステップと、
    を有することを特徴とする方法。
  26. 前記サーチステップの前に、前記最初のドキュメントの前記テキストをソートするステップをさらに有することを特徴とする請求項25に記載の方法。
  27. 前記サーチステップの前に、前記最初のドキュメントの前記テキストの部分文字列に対するハッシュ値を生成するステップをさらに有することを特徴とする請求項25に記載の方法。
  28. 前記サーチステップは、二分サーチ技術を用いてサーチするステップをさらに含むことを特徴とする請求項25に記載の方法。
  29. 前記計算ステップは、相似関数に基づいて、適合パーセンテージを計算するステップをさらに含むことを特徴とする請求項25に記載の方法。
  30. 前記所定の値は、第1の所定の値と第2の所定の値との間の範囲であることを特徴とする請求項25に記載の方法。
  31. 前記ドキュメントのリストは複数のドキュメントを含むことを特徴とする請求項25に記載の方法。
  32. プロセッサに実行可能な指示を格納するよう構成されるコンピュータに読み取り可能な媒体であって、前記指示は、実行されるとき、
    テキストを含む最初のドキュメントを受信するステップと、
    マッチングのために、それぞれがテキストを含む複数のドキュメントのリストを受信するステップと、
    最小部分文字列の適合長を受信するステップと、
    前記ドキュメントのリストにおける該ドキュメントの前記テキストを標準化するステップと、
    前記最初のドキュメントの前記テキストと前記ドキュメントのリストにおける各ドキュメントの前記テキストとの間の共通の部分文字列をサーチするステップと、
    前記サーチされた共通の部分文字列に基づいて、適合パーセンテージを計算するステップと、
    所定の値に対応する適合パーセンテージを有するドキュメントを出力するステップと、
    を前記プロセッサに実行させることを特徴とするコンピュータに読み取り可能な媒体。
  33. 前記サーチステップの前に、前記プロセッサに前記最初のドキュメントの前記テキストをソートさせる指示をさらに含むことを特徴とする請求項32に記載のコンピュータに読み取り可能な媒体。
  34. 前記サーチステップの前に、前記最初のドキュメントの前記テキストの部分文字列に対するハッシュ値を前記プロセッサに生成させる指示をさらに含むを特徴とする請求項32に記載のコンピュータに読み取り可能な媒体。
  35. 前記プロセッサにサーチさせる指示は、前記プロセッサに二分サーチ技術を用いてサーチさせる指示をさらに含むことを特徴とする請求項32に記載のコンピュータに読み取り可能な媒体。
  36. 前記プロセッサに計算させる指示は、相似関数に基づいて、前記プロセッサに適合パーセンテージを計算させる指示をさらに含むことを特徴とする請求項32に記載のコンピュータに読み取り可能な媒体。
  37. 前記所定の値は、第1の所定の値と第2の所定の値との間の範囲であることを特徴とする請求項32に記載のコンピュータに読み取り可能な媒体。
  38. 前記ドキュメントのリストは複数のドキュメントを含むことを特徴とする請求項32に記載のコンピュータに読み取り可能な媒体。
JP2008511259A 2005-05-09 2006-05-08 署名生成および関連性を有するマッチングエンジン Active JP5072832B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US67931405P 2005-05-09 2005-05-09
US60/679,314 2005-05-09
US11/361,340 2006-02-24
US11/361,447 2006-02-24
US11/361,340 US7516130B2 (en) 2005-05-09 2006-02-24 Matching engine with signature generation
US11/361,447 US7747642B2 (en) 2005-05-09 2006-02-24 Matching engine for querying relevant documents
PCT/US2006/017846 WO2006122086A2 (en) 2005-05-09 2006-05-08 Matching engine with signature generation and relevance detection

Publications (3)

Publication Number Publication Date
JP2008541272A true JP2008541272A (ja) 2008-11-20
JP2008541272A5 JP2008541272A5 (ja) 2012-03-15
JP5072832B2 JP5072832B2 (ja) 2012-11-14

Family

ID=37397221

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008511259A Active JP5072832B2 (ja) 2005-05-09 2006-05-08 署名生成および関連性を有するマッチングエンジン

Country Status (3)

Country Link
JP (1) JP5072832B2 (ja)
CN (1) CN101248433B (ja)
WO (1) WO2006122086A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518531A (ja) * 2007-02-14 2010-05-27 プロヴィラ インコーポレイテッド 非対称署名生成を使用するドキュメント照合エンジン
JP2012168678A (ja) * 2011-02-14 2012-09-06 Nec Corp 文書間類似度算出装置、文書間類似度算出方法、及び、文書間類似度算出プログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516130B2 (en) * 2005-05-09 2009-04-07 Trend Micro, Inc. Matching engine with signature generation
JP5372853B2 (ja) 2010-07-08 2013-12-18 株式会社日立製作所 デジタルシーケンス特徴量算出方法及びデジタルシーケンス特徴量算出装置
CN107798637A (zh) * 2016-08-30 2018-03-13 北京国双科技有限公司 同案异判文书的获取方法及装置
CN112580108B (zh) * 2020-12-10 2024-04-19 深圳证券信息有限公司 签名和印章完整性验证方法及计算机设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244671A (ja) * 1994-03-02 1995-09-19 Ricoh Co Ltd 文書検索装置
JPH09293079A (ja) * 1996-04-18 1997-11-11 Internatl Business Mach Corp <Ibm> 情報検索方法、情報検索装置及び情報検索プログラムを格納する記憶媒体
JP2000057172A (ja) * 1998-05-29 2000-02-25 Xerox Corp 問合せに対する応答を得る方法
JP2002269116A (ja) * 2001-03-13 2002-09-20 Ricoh Co Ltd 文書検索システム及びプログラム
US6493709B1 (en) * 1998-07-31 2002-12-10 The Regents Of The University Of California Method and apparatus for digitally shredding similar documents within large document sets in a data processing environment
JP2003091557A (ja) * 2001-07-12 2003-03-28 Matsushita Electric Ind Co Ltd 文書照合装置
US6584470B2 (en) * 2001-03-01 2003-06-24 Intelliseek, Inc. Multi-layered semiotic mechanism for answering natural language questions using document retrieval combined with information extraction
US20030172066A1 (en) * 2002-01-22 2003-09-11 International Business Machines Corporation System and method for detecting duplicate and similar documents

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325091A (en) * 1992-08-13 1994-06-28 Xerox Corporation Text-compression technique using frequency-ordered array of word-number mappers
CN1369839A (zh) * 2001-02-16 2002-09-18 意蓝科技股份有限公司 文件关联性判定系统与方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244671A (ja) * 1994-03-02 1995-09-19 Ricoh Co Ltd 文書検索装置
JPH09293079A (ja) * 1996-04-18 1997-11-11 Internatl Business Mach Corp <Ibm> 情報検索方法、情報検索装置及び情報検索プログラムを格納する記憶媒体
JP2000057172A (ja) * 1998-05-29 2000-02-25 Xerox Corp 問合せに対する応答を得る方法
US6493709B1 (en) * 1998-07-31 2002-12-10 The Regents Of The University Of California Method and apparatus for digitally shredding similar documents within large document sets in a data processing environment
US6584470B2 (en) * 2001-03-01 2003-06-24 Intelliseek, Inc. Multi-layered semiotic mechanism for answering natural language questions using document retrieval combined with information extraction
JP2002269116A (ja) * 2001-03-13 2002-09-20 Ricoh Co Ltd 文書検索システム及びプログラム
JP2003091557A (ja) * 2001-07-12 2003-03-28 Matsushita Electric Ind Co Ltd 文書照合装置
US20030172066A1 (en) * 2002-01-22 2003-09-11 International Business Machines Corporation System and method for detecting duplicate and similar documents

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518531A (ja) * 2007-02-14 2010-05-27 プロヴィラ インコーポレイテッド 非対称署名生成を使用するドキュメント照合エンジン
JP2012168678A (ja) * 2011-02-14 2012-09-06 Nec Corp 文書間類似度算出装置、文書間類似度算出方法、及び、文書間類似度算出プログラム

Also Published As

Publication number Publication date
WO2006122086A2 (en) 2006-11-16
WO2006122086A3 (en) 2007-03-29
CN101248433B (zh) 2010-09-01
JP5072832B2 (ja) 2012-11-14
CN101248433A (zh) 2008-08-20

Similar Documents

Publication Publication Date Title
US7747642B2 (en) Matching engine for querying relevant documents
US7516130B2 (en) Matching engine with signature generation
US7860853B2 (en) Document matching engine using asymmetric signature generation
US8781817B2 (en) Phrase based document clustering with automatic phrase extraction
KR101157693B1 (ko) 토큰스페이스 저장소와 함께 사용하기 위한 멀티-스테이지질의 처리 시스템 및 방법
JP5615476B2 (ja) 対訳語句提示プログラム、対訳語句提示方法および対訳語句提示装置
US8055498B2 (en) Systems and methods for building an electronic dictionary of multi-word names and for performing fuzzy searches in the dictionary
JP3566111B2 (ja) 記号辞書作成方法及び記号辞書検索方法
US8266150B1 (en) Scalable document signature search engine
US20070027856A1 (en) Product searching system and method using search logic according to each category
US20090089278A1 (en) Techniques for keyword extraction from urls using statistical analysis
US20060206306A1 (en) Text mining apparatus and associated methods
US8122022B1 (en) Abbreviation detection for common synonym generation
JP5072832B2 (ja) 署名生成および関連性を有するマッチングエンジン
JP2008090401A (ja) 文書検索装置、文書検索方法および文書検索プログラム
JP4114600B2 (ja) 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム
US8862586B2 (en) Document analysis system
JP2006227823A (ja) 情報処理装置及びその制御方法
KR100659370B1 (ko) 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법
JP4360167B2 (ja) キーワード抽出装置、およびキーワード抽出方法、並びにコンピュータ・プログラム
Shang et al. Event extraction from unstructured text data
CN116401334A (zh) 数据指标管理方法、装置、电子设备和可读存储介质
JPH07325837A (ja) 抽象単語による通信文検索装置及び抽象単語による通信文検索方法
JP3314720B2 (ja) 文字列検索装置
JP3333186B2 (ja) 文書検索システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111026

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120126

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20120126

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20120302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120821

R150 Certificate of patent or registration of utility model

Ref document number: 5072832

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250