JP4885842B2 - コンテンツ、特に2つのコンピュータファイルに共通する抽出部分の検索方法 - Google Patents

コンテンツ、特に2つのコンピュータファイルに共通する抽出部分の検索方法 Download PDF

Info

Publication number
JP4885842B2
JP4885842B2 JP2007506799A JP2007506799A JP4885842B2 JP 4885842 B2 JP4885842 B2 JP 4885842B2 JP 2007506799 A JP2007506799 A JP 2007506799A JP 2007506799 A JP2007506799 A JP 2007506799A JP 4885842 B2 JP4885842 B2 JP 4885842B2
Authority
JP
Japan
Prior art keywords
file
data
common
digital signature
samples
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.)
Active
Application number
JP2007506799A
Other languages
English (en)
Other versions
JP2007531948A (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
Application filed by フランソワ レブラ, ティーディーエフ filed Critical フランソワ レブラ
Publication of JP2007531948A publication Critical patent/JP2007531948A/ja
Application granted granted Critical
Publication of JP4885842B2 publication Critical patent/JP4885842B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/08Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/12Classification; Matching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、コンピュータのコンテンツ検索に関し、特に2つのファイルに共通する抽出部分の検索に関する。
より具体的には、本発明は第1ファイルと第2ファイルとに共通する、1つ以上の抽出部分を、バイナリ(2進数)データの形式で検索することに関する。
現在知られている技術では、一般に、データ項目単位での同一性についての検索が提案されている。サイズが大きなファイルに適用する場合には、検索の遅さが致命的となる。
本発明は、このような状況の改善を目的とする。
従って、本発明はコンテンツ検索方法であって、少なくとも第1ファイルの事前準備として、以下のステップを有する方法を提案するものである。
a)第1ファイルを、選択されたサイズをもった一連のデータパケットに区分し、該ファイル内のパケットのアドレスを識別するステップ。
b)各パケットのアドレスにデジタル署名を関連付けるステップであって、該デジタル署名が、少なくとも3つの状態、つまり、「真」、「偽」、及び「不定」のうちから、1つのファジー論理状態を規定するとともに、該署名が、前記ファイルから生じるデータの組み合わせ計算に起因するものとされるステップ。
その後に共通の抽出部分の検索を続行する本方法は、正確には、以下のステップを有する。
c)前記第1ファイルの各パケットアドレスに関連するファジー論理状態を、前記第2ファイルから生じるデータに基づいて決定されるファジー論理状態と比較するステップ。
d)前記共通の抽出部分の検索から、前記第1ファイル及び第2ファイルの各アドレスのペア、即ち、それぞれの論理状態が「真」及び「偽」、あるいは「偽」及び「真」とされるアドレスのペアを排除するとともに、前記共通の抽出部分を含む傾向をもつデータパケットを特定するアドレスの他のペアを保持するステップ。
前記ステップb)において、データパケットには、以下の状態が割り当てられる。
「真」(前記パケットの全データが、第1の条件を満たす場合)
「偽」(前記パケットの全データが、前記第1の条件とは正反対である第2の条件を満たす場合)
「不定」(前記パケットのあるデータが前記第1の条件を満たす一方で、前記パケットの他のデータが前記第2の条件を満たす場合)
好ましい実施形態において、前記ステップb)に先立つ処理がファイルのデータに適用され、当該処理は以下のステップを有する。
a1)前記ファイルのデータが、所定のサンプリング周波数で得られ、かつ2進法表示コードに従ってコード化された値をもったサンプルの文字列とみなされるステップ。
a2)前記サンプルに対してデジタルフィルタを適用するステップであって、該フィルタが、前記サンプルのパケットに関連付けられたデジタル署名について「不定」状態を得る確率を最小限にするように適合されたステップ。
好ましくは、前記デジタルフィルタの適用は、
前記サンプルデータにスペクトル変換を適用すること、
前記スペクトル変換にローパスフィルタを適用すること、
前記ローパスフィルタの後に、逆スペクトル変換を適用することである。
前記ローパスフィルタは、実質上、[−Fe/2(k−1),+Fe/2(k−1)]の区間をもった周波数帯域で動作し、ここで、「Fe」は前記サンプリング周波数であり、「k」はパケットに含まれるサンプルの数である。
有利には、前記デジタルフィルタが、同様の値の所定数の係数を含み、関連付けられた前記ローパスフィルタの周波数応答が、周波数fの関数として、
sin(PI・f・T)/(PI・f・T)
の形式で表現される。尚、ここで、「sin()」は正弦関数であり、
PI=3.1416及び
T=(K−1)/Fe
である。ここで、「K」は係数の所定数であり、「Fe」は前記サンプリング周波数である。
好ましくは、前記デジタルフィルタが、所定数の係数をもった平均値フィルタであり、2つの連続するフィルタ処理されたサンプル間の差は、2つのフィルタ処理されていないサンプルであって係数の前記所定数だけ離れた、第1のランク(階数)及び第2のランクをもったサンプル間の差に比例する。前記フィルタ処理されたサンプルの計算はこの関係を用いて実行され、行うべき計算動作の回数が低減される。
前記フィルタの係数の所定数は「2k−1」以上であり、ここで、「k」はパケットに含まれるサンプルの数である。この値は以下に、インデックス比という用語で示される。
好ましくは、
前記パケットに対して、前記フィルタ処理されたサンプルの全てが選択された基準値(Vref)よりも大きい場合に、該パケットのアドレスに状態「真」が割り当てられ、
前記パケットに対して、前記フィルタ処理されたサンプルの全てが選択された基準値(Vref)よりも小さい場合に、該パケットのアドレスに状態「偽」が割り当てられ、
前記パケットに対して、前記フィルタ処理されたサンプルのあるものが選択された基準値(Vref)よりも小さく、かつ前記フィルタ処理されたサンプルの他のものが選択された基準値(Vref)よりも大きい場合には、該パケットのアドレスに状態「不定」が割り当てられる。
有利には、任意の次数nをもつ、フィルタ処理されたサンプルrの全てに対して、前記基準値(Vref)が、任意の同一次数nをもつ、フィルタ処理されてないサンプルfを中心として、選択された数の、フィルタ処理されてない連続のサンプルに亘って、フィルタ処理されていないサンプルfの値を平均化することにより計算される。
前記フィルタ処理されたサンプルの値は、比較のために、ゼロ閾値に対して得られ、前記フィルタ処理されたサンプルr’は、以下の形式の和で表現される。
Figure 0004885842
ここで、
「fn+k」は、前記ステップa1)で得られた、フィルタ処理されていないサンプルであり、
「K」は、前記デジタルフィルタの係数の個数であり、好ましくは偶数に選択され、
「Kref」は、フィルタ処理されていないサンプルfの周りでの、前記フィルタ処理されていないサンプルの個数であり、好ましくは偶数であって、かつ係数の個数Kよりも大きくなるように選択される。
好ましい実施形態において、前記の和は、並行して行われる処理に従って、前記フィルタ処理されていないサンプルfに対して多数回適用されるが、この間、係数の個数Kをそれぞれに変化させる。この措置によって、統計学的にほぼ独立した、複数のデジタル署名を決定することが可能となる。
特定の実施形態において、少なくとも第1ファイルに関連付けられたファジー状態はそれぞれ、2ビット以上でコード化される。
この実施形態では、係数の最小個数Kについて決定されたファジー状態が、最小有効ビットに関してコード化され、係数のより大きい個数Kについて決定されたファジー状態が、後続のビットに関してコード化され、選択された総ビット数まで同様にコード化される。この選択された数について、好ましくは、比較論理演算のためにコンピュータエンティティのマイクロプロセッサに使用されるバイナリデータサイズに適合し得ることが分かる。
好ましくは、フィルタ処理された各サンプルrが、以下の形式の和として表現される。
Figure 0004885842
ここで、
「f(n+i)」は、フィルタ処理されていないサンプルであり、
「filter」は、デジタルフィルタの係数であり、場合によっては0とされる閾値を取り入れた係数である。
そして、パケットに含まれる、フィルタ処理されていないサンプルの数kが選択され、これは、最小で2に等しく、式「(TEF−I−I+1)/2」以下である。尚、ここで、「TEF」は、検索される共通の抽出部分についての所望の最小サイズである。
この措置によって、好ましくは、単一のデジタル署名のデータ項目の計算に用いる、k個のデータのパケットの重複を保証することができる。
本実施形態において、
検索される共通の抽出部分についての、前記した所望の最小サイズの任意値TEFに対して、パケットに含まれるフィルタ処理されていないサンプルの前記した数kとして使用可能な値の範囲が決定され、
前記の数kについての使用可能な各々の値に対して、デジタル署名の連続するデータの最適サイズTESが決定され、その連続に対してサイズTEFの共通の抽出部分の検出が保証される。
前記最適サイズTESは、式E[(TEF−I−I+1)/k]−1以下であり、ここで、E(X)は、Xの整数部を示す。
比較される2つのファイルが、英数字文字、特にテキスト及び/又はコンピュータ又は遺伝子コード、を表すデータを含む場合への適用において、前記方法は、有利には、以下のステップを含む。
粗い検索のための、デジタル署名の形成とそれらの比較を含む、第1のグループのステップ。
・前記粗い検索を満足するアドレスの範囲における同一性の比較を含む、特に詳細な検索のための、第2のグループのステップ。
・ファイルのデータは、パケット当たりの選択される数kのサンプルとされる該サンプルの文字列とみなされ、この選択された数kの値は、実行される最小の比較演算を探すことにより、初期に最適化される。
パケット毎のサンプルについての選択される数kの最適化には、以下の総数が考慮される。
実行すべきデジタル署名の比較演算の総数、及び
その後に実行すべきデータの同一性を比較する演算の総数。
この演算の総数は有限の組の数kに対して最小値である。
この方法は、有利には、検索される共通の抽出部分についての、最小の所望のサイズに関する手掛かりが得られる過程で、パケット毎のサンプルの選択された数kを最適化するために用いるステップを提供する。パケット毎のサンプルの最適数kは、前記最小サイズにつれてほぼ変化し、検索される共通の抽出部分の所望の最小サイズが大きいほど、比較演算の総数が減少し、従って、共通の抽出部分の検索にかかる継続期間が短くなる。
オーディオ、ビデオ又はその他のファイルなどのコンテンツ検索に適用する場合に、共通の抽出部分の検索については、好ましくはデジタル署名の形成とそれらの比較を含む、単一グループのステップからなる。パケット毎のデータ項目の数については、共通の抽出部分の誤検出確率について、その許容し得る閾値を明らかにする信頼度指数を、初期に定めることで最適化される。
好適な一般的な実施形態では、前記第1ファイルに対して、
選択されたサンプリング周波数でのサンプリングを適用し、
周波数空間でのローパスフィルタリングに対応するデジタルフィルタリングを適用し、
第1ファイルのアドレスのそれぞれに関連付けられた「真」、「偽」又は「不定」状態でのデジタル署名を得るための、フィルタ処理されたサンプルの組み合わせを適用し、
他方、前記第2ファイルに対して、
選択されたサンプリング周波数でのサンプリングを適用し、
周波数空間でのローパスフィルタリングに対応するデジタルフィルタリングを適用し、
各パケットのフィルタ処理されたサンプルに関連付けられた論理状態を、各パケットから選択された単一のフィルタ処理されたサンプルに関連付けられた論理状態に基づいて決定し(好ましくは、各パケットの第1サンプルとして)、
これらを「真」又は「偽」の論理状態しか含まないデジタル署名を得るように行い、これにより、前記デジタル署名の比較の選択性を向上させる。
この実施形態において、
第1ファイルのアドレスに関連付けられた論理状態が「真」又は「不定」であり、他方で第2ファイルのアドレスに関連付けられた論理状態が「真」である場合に、前記アドレスのペアが、共通の抽出部分の検索から保持され、
第1ファイルのアドレスに関連付けられた論理状態が「偽」又は「不定」であり、他方で第2ファイルのアドレスに関連付けられた論理状態が「偽」である場合に、前記アドレスのペアが、共通の抽出部分の検索に対して保持され、
また、アドレスのその他のペアは、検索から除外される。
当然ながら、本発明の範囲内の方法は、後述するコンピュータプログラム製品などのコンピュータ手段によって実施される。この点について、本発明は、かかるコンピュータプログラム製品、及び、かかるプログラムがそのメモリの1つに格納されたコンピュータエンティティなどの装置をも対象としている。本発明はまた、後で分かるように、通信を行う、この種のコンピュータエンティティのシステムをも対象としている。
このコンピュータプログラムは、特に、バイナリデータのファイルのデジタル署名を生成する能力をもち、このデジタル署名はその後、共通の抽出部分の検索のために、別の署名と比較される。任意のデータファイルのデジタル署名、つまり、本発明の範囲内において形成されるデジタル署名は、比較ステップを行うために必要不可欠な手段であることが分かる。この点に関して、本発明は、このデジタル署名のデータ構造をも対象としている。
本発明のその他の特徴及び利点については、以下の詳細な説明及び添付図面の検討により明らかとなる。
本発明の範囲内での方法は、あり得る全ての共通の抽出部分を検索するために、コンピュータファイルを相互比較することにある。この検査は、ファイルを構成するデータの2進表現に直接に関連し、よって、好ましくは、ファイルのフォーマットに関する予備知識を必要としない。さらに、比較されるファイルについては、テキストファイル、音声や画像を含むマルチメディアファイル、データファイルその他などの、如何なる性質のファイルでもよい。
各ファイルは1次元アレイ(配列)の形式で表現され、バイナリデータがディスク上での格納に用いられるのと同じ順序で配置される。このバイナリデータは、バイト(8ビットワード)である。従って、このアレイは、バイト数ではファイルと同じサイズである。このアレイの各セルは、アドレスによってラベル付けされている。プログラミングで用いる慣行によれば、アドレス0がアレイの最初のセルを指し、アドレス1がその次のセルを指すという具合に、以下同様に続く。
「抽出」という用語、特に「共通の抽出」という決まり文句は、次のように理解される。これは、連続するデータの列を伴い、この列は、決定された開始アドレスから始まるファイルのバイナリデータをコピーすることにより得られる。この列はそれ自体、開始アドレスに関連付けられているバイナリデータアレイの形式で表現され、これにより、元のファイルの抽出部分をラベル付けすることが可能となる。このバイナリデータは、バイト(8ビットワード)であることが示される。各データ項目は、(0と255との間にある)整数により表現され、これは、バイトのビットについての「2」を基底とする加算、
+2+...+2
によって得られる。
従って、このアレイは、明らかに、(バイト数で)抽出部分と同じサイズを有する。この抽出部分のサイズは、1とファイルサイズとの間にある。
テキストフォーマットのファイルに保存されたドキュメントの例では、抽出部分が、例えば、テキストの単語、語句、又はページの場合もある。
本発明の範囲内の方法において、「2つのファイルに共通の抽出部分」という表現は、以下のように理解される。これは、コンテンツが一定している、連続するデータの列を必要とし、この列は、決められた開始アドレスから始まる第1ファイルのバイナリデータをコピーすること、又は別の決められた開始アドレスから始まる第2ファイルのバイナリデータをコピーすることによって得ることができる。換言すれば、抽出部分が、ラベル付けされた開始位置から始まる各ファイルから取り出される場合に、各抽出部分の第1のバイナリデータ項目のもつコンテンツの完全な同一性があり、その後に、次のバイナリデータ項目のもつコンテンツの完全な同一性があるという具合に続いていけば、共通の抽出部分の条件が満たされることになる。通常、テキスト形式のファイルの場合、各バイトは印字可能な文字(ラテン文字、数字、句読点など)のASCII(アスキー)コードをもっている。従って、2バイトのコンテンツについての完全な同一性は、これらのバイトによりコード化された文字の完全な同一性と等価である。発見された共通の抽出部分についてはいずれも、開始アドレスのペア(1ファイル当たり1つ)及びバイト数として表現されるサイズによってラベル付けがなされる。
以下に、短いテキストファイルからとった、例示的な抽出部分について説明する。この選択されたテキストは、「Le lievre et la tortue」である。テキストモードでのファイルの形式における表現を、以下のアレイにて例として示す。このファイルのサイズは22バイトである。そして、このバイナリデータ(バイト)は、テキストの各文字に関連付けられ、かつ整数モードで示されるASCIIコードをもっている。
Figure 0004885842
抽出部分である「lievre」がファイルで見つかる。データアレイ形式での、この表現を、次のアレイに示す。これは、6つのバイナリデータ項目を占める。ファイルにおけるその開始位置は、アドレス3である。
Figure 0004885842
2つの短いテキストファイルに共通する抽出部分の一例を、以下に説明する。選択されたテキストは「Le lievre」と「La tortue」である。テキストモードのファイルの形式での表現は、以下に示すアレイの表現である。各ファイルのサイズは9バイトである。このバイナリデータ(バイト)は、整数モードで示される。
Figure 0004885842
従って、これらのファイルには、5つの共通の抽出部分が存在する。これらは、第1ファイルの開始アドレスから昇順に提示される。
「L」:位置(0,0)及びサイズ1
「e」:位置(1,8)及びサイズ1
「 」:位置(2,2)及びサイズ1(「スペース」)
「r」:位置(7,5)及びサイズ1
「e」:位置(8,8)及びサイズ1
尚、「L」と「l」とを別の文字として区別しているが、これは、それらのASCIIコードの値が異なるためである。
検索結果が膨大にならないよう回避するために、発見される共通の抽出部分について最小サイズが選択基準として用いられる。抽出部分を見い出す確率が、検索する抽出部分のサイズの増加に伴って減少することは、容易に理解できる。従って、2つのファイルを相互比較する場合に、見つかる共通の抽出部分の数は、発見される共通の抽出部分についての最小サイズが増えるにつれて少なくなる。
同じ目的で、さらに、重複する検索結果を除外することを試みる。この処理は、賢明ではあるが、必須ではない。その完全な実施においては、実際上、検索結果のセット全体を格納することが必要となるが、これは、他の検索結果によって重複するものを、それらから除外できるようにするためである。
以下では、2つの短いテキストファイルに共通する抽出部分について別例を説明する。選ばれたテキストは、「Un mouton」と「Des moutons」である。検索される共通の抽出部分についての最小サイズは、6バイトである。そのバイナリデータ(バイト)は、整数モードで示される。
テキストモードにおけるファイルの形式での表現を、以下のアレイにおいて一例として示す。
Figure 0004885842
発見された、これらのファイルに共通の抽出部分は、位置(2,3)にある、サイズ7の「 mouton」である。
上述のように、「 」(空白文字)についてはデータ項目として扱っている。サイズ6の、2つの共通抽出部分は、検索結果から除外されるが、これは、よりサイズの大きい抽出部分「 mouton」(7)と重複するためである。つまり、
「 mouto」:位置(2,3)及びサイズ6
「mouton」:位置(3,4)及びサイズ6
である。
これらの基本的な原則を定義し、この原則を用いた、いわゆる「従来の」検索アルゴリズムについて説明する。概して、実施される検索の方針は、開始位置のあり得る限り全てのペア、つまり、比較される2つのファイルに関して共通の抽出部分によって取り出し得るペアを調べることである。ここで説明されるアルゴリズムは、「従来の」という語によって定義されるが、この定義は、必ずしも先行技術で見い出されるということを意味するものではない。本発明の範囲内でのアルゴリズムが、デジタル署名を形成するための特別な演算を行うことは単純に理解されるが、これについては後述する。
開始位置のペア(1ファイル毎に1つの開始位置)の各値については、各ファイルから取り出し得る、抽出部分同士の間で比較が行われる。この比較は、共通抽出条件が達成されるか否かを示すとともに、検討される開始位置のペアについて発見される共通の抽出部分の最大サイズを決定する。適切な場合、このサイズは、発見される共通の抽出部分の最小サイズ値と最終的に比較される。
ファイルに関する開始位置のペア全てについては、全く同一とされる、一連のステップを用いて共通の抽出部分の存在を識別する。開始位置のペアは、以下に示す所定の順序でテストされる。
・開始位置のペア(0,0)の分析開始
・第1ファイルに関する開始位置の昇順、及び第1ファイルに関する同開始位置を有するペア全てについての、第2ファイルに関する開始位置の昇順
・その位置のペアについての分析の終了(第1ファイルの最終データ項目、第2ファイルの最終データ項目)
・ペア(n,m)は、第1ファイルに関する開始位置n及び第2ファイルに関する開始位置mを、最終的にラベル付けする。
位置(n,m)で発見された、共通の抽出部分を表示するために、検索が停止された場合には、他の共通の抽出部分の検索が、次の開始位置のペアから再開される。
・一般的な場合には、(n,m+1)
・位置m+1が第2ファイルの最終データ項目を行過ぎ、かつ、位置n+1が第1ファイルの最終データ項目を行過ぎない特別な場合には、(n+1,0)。
図1を参照すると、2つのファイルについてテストされる抽出部分の開始位置のペア(ステップ11)が固定される。そして、各抽出部分の第1データが比較される(ステップ12)。同一である場合、各抽出部分の次のデータが引き続き比較される(ステップ13)。
そうでない場合(つまり、共通の抽出部分が見つからない場合)、比較は中断される(ステップ14)。各抽出部分の第2データについても同じステップが繰り返され(ステップ15、16、17)、n番目のデータまで繰り返される(ステップ18、19、20)。例えば、抽出部分のサイズが値nに達したら、比較が終了する(ステップ21)。
以下、図2Aに示すアレイを用いた2次元表現について説明する。
縦軸A1には第1ファイルのデータのアドレスをとっている。また、横軸A2には第2ファイルのデータのアドレスをとっている。アレイの各セル(m,n)は、共通の抽出部分を検索するために、評価される開始位置のペアを示している。
例えば、第1ファイルのサイズは6に等しく(アドレス0〜5)、第2ファイルのサイズは10に等しい(アドレス0〜9)。アレイにおける矢印Fは、発見された共通の抽出部分の、あり得る開始位置のペアの全セットをテストするために用いられる移動方向を示す。
図2Bに示す例は、テキスト「Un mouton」と「Des moutons」との間で、最小サイズ6の共通抽出部分の検索に関するものである。縦軸A1に第1ファイル(「Un mouton」)のデータのアドレスをとっている。また、横軸A2には第2ファイル(「Des moutons」)のデータのアドレスをとっている。斜線のかかったセルは、開始位置のペア(2,3)から始まる、サイズ7(単語の前にあるスペースを含む)の発見された共通の抽出部分「 mouton」を示す。
コンピュータプログラミングツールは、プログラムで使用できるデータアレイのサイズに制約を課すため、このアルゴリズムを用いるコンピュータプログラムは、好ましくは、サイズを低減させた、連続するデータブロックへとファイルを事前に分割する手続きを進める(この分割は、ブロック間の必要な重複を考慮に入れて行われ、これによって、検索される共通の抽出部分の開始位置のペアについて、その全セットの検査を保証することができる。)。このアルゴリズムは、次に、データブロックのペアについての、あらゆる可能な組み合わせのセット全体に適用される。データブロックのペアの比較の順序は、前述の順序と同様に、即ち、抽出部分の開始位置のペアを介したものである。但し、ここでは単に、この比較は、分離されたデータではなく、データのブロックに関する。通常、第1ファイルの第1ブロックが、第2ファイルの第1ブロックと比較され、そして、第2ファイルのこれに続くブロックと比較される。次に、第1ファイルの次のブロックが第2ファイルの第1ブロックと比較され、続いて第2ファイルのこれに続くブロックと比較されるという具合に、以下同様にして各ファイルの最終ブロックに到達するまで続く。
パフォーマンス(性能)の観点からすると、「フルテキスト」モード(即ち、ファイルのコンテンツ全体の分析による場合)において、検索エンジンプログラムの実行時間は、基本的に、データ間で行われる比較の回数に依存する。このパラメータは最も重要であるが、唯一という訳ではない。というのも、ディスクとランダムアクセスメモリ(RAM)との間の転送速度、及びRAMとマイクロプロセッサとの間の転送速度も考慮に入れる必要があることによる。サイズ1の共通する抽出部分の検索を実現するために、データ間で実行される比較の最小回数は、以下の積に等しい。
(第1ファイルのサイズ)×(第2ファイルのサイズ)
最小サイズnの共通する抽出部分を検索する場合に、検索アルゴリズムは、分析対象のあらゆる可能な開始位置のペアから、エンド・オブ・ファイル(ファイル末端)位置を除外するように最適化される。この場合、データ間で実行される比較の最小回数は、以下の積となる。
(第1ファイルのサイズ−n+1)×(第2ファイルのサイズ−n+1)
サイズが大きいファイルの場合、この数値は、ファイルサイズ同士の積値に近いままである。
従来の検索アルゴリズムによるプログラムは、この値を用いて、既にテストされた開始位置のペアの数及び経過した検索時間の補間により、全継続時間及び検索速度を推定する。
本発明の範囲内における、共通の抽出部分を検索するアルゴリズムについて、次に説明する。
概して、検索パフォーマンスを向上させることが求められ、これは、従来のアルゴリズムに対して、データ間で行われる比較演算の回数を減らすことで行われる。ここで採用する方法は、検索を2つのパスで行うことである。ファイルに関する粗い検索、つまり、共通の抽出部分を含まないファイル部分を速やかに排除する検索と、残りのファイル部分に関する詳細検索、つまり、上記した従来のアルゴリズムに大変よく似たアルゴリズムを用いた検索である。但し、後で分かるように、ある種のファイルの場合に、第2のパスは必要ではなく、好ましくは、比較されるテキストファイルに用いられる。
粗い検索の場合に、本発明の範囲内でのアルゴリズムは、比較されるファイルに関する、デジタル署名の好適な計算を実施する。この「デジタル署名」については、これらの署名がファイルから生じる、当該ファイルのサイズによりも小さなサイズをもったファイル又はデータのアレイとみなすことができる。
デジタル署名は、ファイル、即ち、それらのデジタル署名が関連するファイルのインデックスとして用いることができるという特性を有する。さらには、数学的な関係によって、デジタル署名の任意の抽出部分を、該デジタル署名が関連するファイルの、対応する該当部分とつき合わせることができる。さらに、デジタル署名の抽出部分の開始位置は、該デジタル署名が関連するファイルの抽出部分についての、一定数の開始位置に対応してマッチする。逆に、あるサイズの抽出部分の前方で、ファイルから取り出される任意のデータ抽出部分は、デジタル署名の抽出部分に関連付けることができる。デジタル署名はまた、署名の共通の抽出部分を識別するために、互いに比較することができるという特性を有している。
しかしながら、デジタル署名の共通の抽出部分の定義及びデジタル署名の比較に用いられる数学演算については、ファイルに共通の抽出部分の検索に関して上述したものとは異なる。デジタル署名のインデックス(指数)特性は、署名の共通の抽出部分についての検索結果を解釈するのに用いられる。詳しくは、決定された開始位置(1つのデジタル署名に1つ)のペアについて、ファイルの2つの部分(各デジタル署名に関連するファイル毎に1つの部分)同士の間に、共通の抽出部分がないことによって、如何なる共通の抽出部分も存在しないことが数学的に得られる。逆に、2つのデジタル署名の間で発見された共通の抽出部分は、ファイルの2つの部分(各デジタル署名に関連するファイル毎に1つの部分)に対して、共通の抽出部分についてのあり得る存在によって与えられる。
ファイルに共通の抽出部分を検索することについては、デジタル署名の共通の抽出部分の検索における、肯定的な結果によってラベル付けされたファイル部分に関して実行される。デジタル署名の共通の抽出部分は全て、各署名の開始位置のペアによりラベル付けされており、これに応じて、各署名の開始位置は、ファイルにおける開始位置の固定した整数(N)によって区切られたファイルの部分と一致する。よって、発見されるデジタル署名の各共通の抽出部分については、検査される開始位置の(N×N)個のペアの、減少したセットに関して、ファイル間での共通の抽出部分の検索として明らかである。逆に、デジタル署名の共通の抽出部分がないことが明らかな、各開始位置のペアについては、テストされる開始位置の(N×N)個のペアのセットに関して、ファイル間での共通の抽出部分の検索を省略することとして明らかとなる。
デジタル署名の計算は、ファイル間で発見される共通の抽出部分についての最小サイズ値を条件付ける。各デジタル署名のデータ項目に一致する、ファイルについての抽出部分の開始位置の固定数(N)は、デジタル署名を計算するための処理における調整可能なパラメータである。
粗い検索アルゴリズムで発見可能な、ファイルの共通の抽出部分について最小サイズの値については、以下に詳細に説明する、数式を用いた数字に基づいて決定される。この値は、位置についての固定数Nの値が増加すると、増加する。以下では、この数Nを、「インデックス比」という用語で表すことにする。
デジタル署名の共通の抽出部分を検索するためのアルゴリズムが、ファイルに共通の抽出部分を検索する従来のアルゴリズムと、ある種の類似性をもつことについては、後で詳細に説明する。
ここでは、実施される検索の方針が、比較される2つのデジタル署名に関して、共通の抽出部分によって取り出され得る、あらゆる全ての開始位置のペアを調べるものであることを示すに止める。発見されるデジタル署名についての、共通の抽出部分の最小サイズは、後で説明する数式を用いて決定され、これは、インデックス比の値及び発見されるファイルの共通の抽出部分の最小サイズ値に基づいて決定される。
開始位置のペア(デジタル署名毎に1つの開始位置)の各値に対して、各デジタル署名から取り出すことができる抽出部分の間で比較が行われる。
従って、全体として、本発明の範囲内でのアルゴリズムは、以下の検索ステップを一緒のつないだものである。
・比較されるファイル毎のデジタル署名の計算、及びデジタル署名の共通の抽出部分の検索とともにデジタル署名の比較を用いた、ファイル間での粗い検索、並びに、
・ファイルの部分、つまり、これに対応してデジタル署名の共通の抽出部分にマッチするファイルの部分において、共通の抽出部分を検索する従来のアルゴリズムの実施を用いた、デジタル署名の発見された共通の各抽出部分に対する、ファイル間での詳細検索。
本発明の範囲内でのアルゴリズムの原理を、以下により詳細に説明する。図3を参照すると、データファイルDATAは、インデックス比に等しいサイズを有する、データの連続するブロックBLOに分割されている。概して、デジタル署名計算は、署名データ項目を、ファイルのデータの各ブロックに関連付ける。図3では、インデックス比が4に等しい。
図4A及び図4Bには、テキストファイル「Un mouton」と「Des moutons」との間の、最小サイズ6の共通の抽出部分を検索する、2次元配列を示す。この例では、インデックス比が2である。第1ファイルのデジタル署名は、5つのデータを含む。また、第2ファイルのデジタル署名は6つのデータを含む。図4Aの斜線部は、2つのファイル間における、デジタル署名ECSの共通の抽出部分を示す(例えば、参照符号41)。通常、図4Bを参照すると、この参照符号41は、ファイルについてテストされる抽出部分の開始位置の4つ(2×2)のペアについて、減少した検索ゾーンに対応する。この減少した検索ゾーンは、デジタル署名の共通の抽出部分についての、開始位置のペア(1,1)に関連付けられる。
計算の工程及びデジタル署名の比較演算を、以下に詳細に説明する。
デジタル署名のデータの計算には、ファジー論理の数学理論を用いる。
通例、2値論理では、データビットを用いて2つの論理状態をコード化する。つまり、コード0は、状態「偽」に関連付けられ、コード1は、状態「真」に関連付けられる。
2値論理では、図5A及び図5Bの真理値表に表されるように、2値状態の比較に論理演算のセットを用いる。
8ビットデータ項目(1バイト)は、8つの独立した2値状態を格納できる。
2値論理に比べて、ファジー論理では、不定状態「?」(全く同時に真であり偽でもある)と、禁止状態「X」(真でも偽でもない)という2つの追加の状態を用いる。
図5Cに示すように、4つのファジー論理状態が2ビットでコード化されており、同図では、参照符号BO及びB1が2ビットでの状態のコーディングを表し(横軸)、他方、縦軸は、各種のファジー論理状態「0」、「1」、「?」、及び「X」を表す。
8ビットデータ項目(1バイト)は、従って4つの独立したファジー状態を格納可能である。
ファジー論理では、ファジー状態間の比較のための一セットの論理演算、つまり、図5D及び図5Eに表されるような演算を用い、図5Dがファジー論理「OR」を示し、図5Eがファジー論理「AND」を示している。これらの演算結果は、2値OR又はANDの比較を、ファジー状態の2値要素の各コーディングビットに対して適用するだけで得ることができる。
本発明との関係において、デジタル署名の計算では、OR演算を使って、署名に関連付けられたファイルの、連続するデータのブロックに共通するファジー状態を決定する。はじめに、2値状態(0又は1)が、ファイルのデータのブロックにおいて、データ項目の各アドレスと関連付けられる。データブロックのサイズは、上述のようにインデックス比に等しい。その後、この2値状態は相互比較されて、デジタル署名のデータ項目についてのファジー状態、つまり「0」、「1」、又は「?」が決定される。デジタル署名のデータ項目は、その後、ファイルのデータブロックと関連付けられる。
その後、デジタル署名の比較は、厳密に言うと、AND演算を用いて、ファイルに共通の抽出部分を有することが可能か否かを決定する。従って、この決定は、デジタル署名のデータのペアに適用されたAND演算の結果によって得られる、ファジー論理状態の関数として行われる。
禁止状態Xは、デジタル署名の共通する抽出部分についての、開始位置での現在のペア(デジタル署名のデータ項目毎に1ブロック)と関連付けられたデータゾーンにおいて、ファイル間に共通の抽出部分がないことを意味する。この場合については後で詳細に説明する。状態「0」、「1」、又は「?」は、逆に、デジタル署名の共通する抽出部分についての、開始位置での現在のペアと関連付けられたデータゾーンにおいて、ファイル間に共通の抽出部分が存在する可能性があることを意味する。
図6A及び図6Bを参照すると、デジタル署名は2つのステップで計算される。
・2値状態をファイルの各データアドレスと関連付けることにより、2値署名を計算するステップ。用いる計算法則は、固定サイズのファイル抽出部分と各2値状態との後方関連付けを可能とする。
・インデックス比と等しいサイズをもったブロックに関する、2値署名の状態同士を相互比較することにより、ファジー署名を計算するステップ。N個の連続する2値状態の各ブロックが、1つのファジー状態を決定する。
図6A及び図6Bの例では、インデックス比Nが2に等しい。図6Aにおいて、参照記号「Add」は、ファイル「FIC」のデータの各アドレスを示し、参照記号「Valb」は、これらのデータの各アドレスと関連付けられた2値状態を示す。また、図6Bにおいて、同じ参照記号「Valb」は、データの同じアドレスとそれぞれ関連付けられた2値状態を示し、参照記号「Valf」は、ファイル「FIC」から導かれたデジタル署名「SN」のデータと関連付けられた、ファジー論理状態を示す。1つのファジー論理状態は、N個のアドレスのブロック毎にカウントされ、Nはインデックス比(ここではN=2)である。図6Bのファジー論理状態「Valb」についての、連続した「?」、「0」、「?」、...は、通常、以下のように解釈される。
・ファイルの最初の2つのアドレスの2値状態「0」と「1」は異なるため、これらの状態に適用されるファジー論理OR演算は「?」を与える。
・ファイルの3番目と4番目のアドレスの2値状態「0」と「0」は、「0」に等しいため、これらの状態に適用されるファジー論理OR演算は「0」を与える。
・ファイルの5番目と6番目のアドレスの2値状態「1」と「0」は異なるため、これらの状態に適用されるファジー論理OR演算は「?」を与える、など。
選択されたテキスト「La tortue」について、デジタル署名の計算例を以下に説明する。各テキストの文字は、ASCIIコードを用いてバイトでコード化されている。各ASCIIコードは、バイトの8ビットでコード化された整数値で表現される。この数は0と255との間にある。この2値状態は、各データアドレスと関連付けられており、例えば、以下のタイプの規則で決定される。
・文字のASCIIコードの整数値が厳密に111未満である場合には、状態0。
・文字のASCIIコードの整数値が111以上である場合は、状態1。
図7Aの配列表は、テキストファイル「La tortue」の場合に、インデックス比の値2から4までの、デジタル署名のファジー状態の計算について得られた結果を示す。
次に、図7Bは、2つのテキストファイル「Le lievre」及び「La tortue」に関して、インデックス比の値が2の場合に、デジタル署名のファジー状態の計算について得られた結果を示す。データ項目のアドレスは、抽出部分の開始位置のアドレスである。2値状態を決定するための規則は、既に説明した規則である(ASCII値を111と比較すること)。
図7Cには、インデックス比が2の場合において、テキストファイル「Le lievre」と「La tortue」との間で、共通の抽出部分を検索する際の2次元配列を示す。各データアドレスと関連付けられた2値状態を決定する規則は、上述の規則と同じである(111と比較されるASCII値)。イニシャルAD1及びAD2は、ファイル「Le lievre」とファイル「La tortue」から導かれた、各ブロックのアドレスを参照し、イニシャルSN1及びSN2は、これらの各ブロックの連続するファジー論理状態を参照する。斜線のかかっていないセルは、デジタル署名データに関連付けられたファイル位置同士の間に、サイズ1の共通の抽出部分がない位置を示している。また、斜線のかかったセルは、逆に、デジタル署名データに関連付けられたファイル位置同士の間に、最小サイズ1の共通の抽出部分が存在し得る状況を示している。
以下に、好適な実施形態において、デジタル署名の計算に用いられる数学的な規則を説明する。以下の説明は、本発明の範囲内での検索アルゴリズムの2値署名を計算する、前述した第1のステップを補完するものであり、ファイルの各データアドレスに関連付けられた2値状態を決定するために用いられる数学的規則を記載したものである。上記の例において、デジタル署名の各2値状態は、ファイルの各バイトのコードの整数値と整数の基準値とを比較することに基づく簡単な規則によって決定される。しかしながら、この規則の利点は限られており、その理由は、各々の2値署名のデータ項目が、一度にファイルの1つのデータ項目しか明らかにしないからである。ファジー署名のデータ(計算の第2ステップにおいて得られる)間の比較結果の解釈は、従って、サイズ1のファイルに共通する抽出部分のあり得る存在に限定される。サイズが1よりも大きい、ファイルに共通の抽出部分のあり得る存在又は不存在については、ファジー署名のデータ間における1回の比較演算では検出することができない。このような状況を改善するために、2値署名の状態を決定する数学的規則は、2値署名の各データ項目が、ファイルの好ましくは固定されたサイズの抽出部分を明らかにするように選択される。データ抽出部分のサイズは、2値署名の状態を決定するための数学的規則のパラメータである。このパラメータの値は、常にインデックス比の値以上である。この条件に基づいて、ファジー署名データのペア間の比較の結果は、ファジー署名データのペアと関連付けられたファイルの、共通の抽出部分の開始位置のペアの(N×N)個のセットのうち、インデックス比(N)以上のサイズをもった、ファイルの共通の抽出部分の不存在又はあり得る存在のいずれかによって解釈することができる。
同様にして、デジタル署名の間に発見される、サイズKの共通の抽出部分は、デジタル署名の発見された共通の抽出部分の開始位置のペアと関連付けられた、ファイルの共通の抽出部分の開始位置のペアの(N×N)個のセットのうち、少なくともN×Kに等しいサイズをもった、ファイルの共通の抽出部分のあり得る存在によって解釈される。
また、ファジー状態「?」の割合が、インデックス比のサイズが増えるにつれて増加することも分かる。従って、デジタル署名間で共通の抽出部分を検索するステップについては、インデックス比が増加した場合に、選択性がさらに低下することになる。具体的には、デジタル署名のデータが全て「?」状態に等しい場合に、この署名と別の署名との比較は、署名に関連付けられたファイルに関して、検索される抽出部分の開始位置のペアのいずれをも除外しない。このような状況を改善するために、2値状態を決定する規則については、(2値状態のブロックを比較することにより)ファジー状態を計算するステップが生成する「?」状態の割合が低く、逆に「0」又は「1」状態の割合が高くなるように選択することを要する。
以下では、デジタル署名の選択性を向上させるための処理を説明する。尚、以下の説明では、変換の代数及びデジタル信号処理の分野からの数学的理論の結果を用いる。
フーリエ変換は、以下の数式による、変数tの関数f(t)を、変数fの別の関数F(f)に対応させる数学的変換であることを想起されたい。
Figure 0004885842
フーリエ変換の特性は相互的であり、以下の数式により、F(f)から逆に関数f(t)を得ることができる。
Figure 0004885842
この数式は、任意の実関数f(t)を周波数f、振幅2・|F(f)|、位相φ(f)の余弦関数の無限和に分解できることを示す。
Figure 0004885842
位相φの各種の値について、関数cos(2πft+φ)の変化を図8Aに示す。この関数は周期的であり、その周期Tは1/fに等しい。サイズT/2の期間で正であり、補完的なサイズT/2の期間では負である。
後者の特性は、2値署名を決定する規則の選択に利用することができる。ファジー状態を決定するための、2変数を有するState(t,p)の規則は、関数s(t)=cos(2πft+φ)に関連付けられる。尚、T=1/fとする。
規則State(t,p)については、任意の実数値t及び(上記インデックス比と比較される)任意の正の実数値パラメータpについて定義される。
∀x∈[t,t+p],s(x)>0ならば、State(t,p)=1
∀x∈[t,t+p],s(x)<0ならば、State(t,p)=0
それ以外の場合、State(t,p)=?
図8Bには、pが約0.6Tである余弦関数を示す。任意の期間[t,t+p]に対して、関数s(t)は正負両方の値をとり、よって、「State(t,p)=?」となる。このように、パラメータpがT/2よりも大きい場合、任意のtに対して「State(t,p)=?」である。
図8Cには、0とT/2との間にある固定値p(図示の例では、p=0.3T)について、規則State(t,p)のファジー状態を示す。ファジー状態となる確率は、周期T(T=1/f)に等しいサイズの期間に亘って記録をとり、あり得るファジー状態(0,1又は?)のそれぞれを生じさせる、変数tの期間のサイズを合計し、この合計されたサイズをTで割ることによって得られる。
以下では、次の表記を用いる。
状態1を引き出す確率:P1(f,p)
状態0を引き出す確率:P0(f,p)
状態?を引き出す確率:P?(f,p)
規則State(t,p)について、以下の結果が得られる。
p∈[0,T/2]の場合
P1(f,p)=P0(f,p)=(T/2−p)/T=1/2−p/T=1/2−pf
P?(f,p)=1−P1(f,p)−P0(f,p)=2pf
pがT/2より大きい場合
P1(f,p)=P0(f,p)=0
P?(f,p)=1
ファジー状態を引き出す確率は、ファジー状態を決定する規則State(t,p)を、関数s(t)=cos(2πft+φ)に適用した後で得られることを、もう一度想起されたい。また、ファジー状態を引き出す確率は、関数s(t)=cos(2πft+φ)の位相φに依存しないことが分かる。
図9A、図9B、図9Cを参照すると、周波数の関数としての確率P1(f,p)、P0(f,p)、及びP?(f,p)の変化を示すグラフからは、状態1及び状態0を引き出す確率については、周波数fが減少すると大きくなり、逆に、状態「?」を引き出す確率については、周波数fが増加すると大きくなることが分かる。
次に、この所見を、本発明の範囲内でのバイナリデータの比較に適用する。
変数tの関数f(t)のサンプリングは、この関数から、固定期間Teだけ区間をおいた時点Tにて得られる値を記録することにある。
以下、次の表記を用いる。
n サンプル数(−∞から+∞の間にある整数)
サンプルnの時点: T=n・Te
サンプルnの値: f=f(T
信号処理の理論において、シャノンの定理は、f(t)に関連付けられたフーリエ変換F(f)の周波数スペクトルが、Fe=1/Teとされた、区間[−Fe/2,Fe/2]で厳密に有界であるならば、元の関数f(t)が、サンプルfから逆に得られることを示すものである。
この条件下で、関数f(t)は、周波数帯域[−Fe/2,Fe/2]における理想的なローパスフィルタリングを、サンプルされた信号F(f)のフーリエ変換に適用した後に得られる。
以下では、データファイルが、上記の条件を満たす関数f(t)のサンプルfを示すものとみなされる。特に、各データアドレスは、サンプル数nに相当する。また、各データ項目は、サンプルの値を格納する(通常、1バイトのビットでコード化された整数)。
データファイルのサンプルfと関連付けられた信号のフーリエ変換は、以下のとおりである。
Figure 0004885842
尚、サンプリング周期Teの選択が自由であることに留意されたい。
フーリエ変換はまた、この場合に、以下の簡単化された数式で表現される。
Figure 0004885842
尚、ここで、N+lは、データファイルのサイズである。
サンプルfに関連付けられた、元の関数f(t)のフーリエ変換F(f)は、シャノンの定理を適用することにより得られる。
f∈[−Fe/2,Fe/2]に対して、

F(f)=F(f)/Fe

その他の値fに対して、
F(f)=0
サンプルfに関連付けられた関数f(t)は、逆フーリエ変換を適用することにより得られる。
Figure 0004885842
最終的には、以下の項の有限和の形で表される。
f(x)=sin(x)/x 、 x=πFe(t−nTe)
即ち、以下のようになる。
Figure 0004885842
図10には、比t/Tの関数として、テキストファイル「Le lievre」のデータと関連付けられた関数f(t)の例示的表現を示す。
関数f(t)とサンプルf=f(nTe)のセット(組)との間の上記関係は、シャノンの条件を満たす、任意の関数についても当てはまることが示される。
従って、これらの関係は、以下の条件が維持される場合に、関数s(t)=cos(2πft+φ)にも当てはまる。
f∈[−Fe/2,Fe/2]
そして、s(t)については、T=nTeの時点でのs(t)を引き継いだ、サンプルsの無限のセットによって表現することができる。
規則State(t,p)が、任意の実数値t及び任意の正の実数値pについて以下のように定義されたことを想起されたい。
∀x∈[t,t+p],s(x)>0ならば、State(t,p)=1
∀x∈[t,t+p],s(x)<0ならば、State(t,p)=0
それ以外の場合、State(t,p)=?
この規則の性質については、ファジー状態を決定するための、以下のような規則を対象とする場合において、k個の連続するサンプル{s,sn+1,...,sn+k+1}の列に亘って定義されるサンプルsの範囲へと、簡単に置き換えることができる。
∀i∈{0,k−1},sn+i>0ならば、State(n,k)=1
∀i∈{0,k−1},sn+i<0ならば、State(n,k)=0
それ以外の場合、State(n,k)=?
規則State(n,k)に関連付けられるファジー状態を引き出す確率は、pを(k−1)Teに置き換えることによって、規則State(t,p)に基づいて、簡単に得られる。
こうして、サンプルsに関連付けられる関数s(t)の周波数の関数として、規則State(n,k)についての、状態1又は状態0を引き出す確率を表すグラフが得られる。
図11の例において、kは3に固定されている。s(nTe)、s((n+l)Te)、s((n+2)Te)が0よりも大きい、s(t)について、3つの連続するサンプルを引き出す確率は、P1(f,3)で与えられ、これは、fが、p=(3−1)Te=2/Feにおいて、1/2pより大きい場合、即ちf>Fe/4の場合にゼロとなる。
ファジー状態を決定する規則の定義は、シャノンの条件を満たす任意の関数f(t)の場合に拡張される。一般的に、規則State(t,p)は、任意の実数値t及び任意の正の実数値pについて定義される。
∀x∈[t,t+p],f(x)>0ならば、State(t,p)=1
∀x∈[t,t+p],f(x)<0ならば、State(t,p)=0
それ以外の場合、State(t,p)=?
ファジー状態を決定する本規則はまた、k個の連続するサンプル{f,fn+1,...,fn+k−1}の列に亘るサンプルfの範囲に置き換えられる。
∀i∈{0,k−1},fn+i>0ならば、State(n,k)=1
∀i∈{0,k−1},fn+i<0ならば、State(n,k)=0
それ以外の場合、State(n,k)=?
既に取り扱ったような、f(t)が周波数fの純粋な正弦波である特別な場合とは対照的に、フーリエ変換F(f)に基づいてファジー状態を引き出す確率について計算することをここで可能にする単純な数学的関係は存在しない。
一方、規則State(n,k)及びState(t,p)と関連付けられるファジー状態を引き出す確率の特性を利用して、任意の関数f(t)へのローパスフィルタリングの適用は、状態0及び1を引き出す確率の増加を齎し、そして、状態?を引き出す確率の減少を齎すと推定することができる。これらの状態は規則State(n,k)及びState(t,p)と関連付けられる。
規則State(n,k)の場合、関数f(t)が周波数fの純粋な正弦関数であれば、f>Fe/2(k−l)及びk>1にて以下が得られる。
P1(f,k)=P0(f,k)=0
P?(f,k)=1
周波数帯域[−Fe/2(k−1),Fe/2(k−l)]における、理想的なローパスフィルタリングを関数f(t)に適用するならば、状態1及び0を引き出す確率が高くなることが分かるが、その理由は、結果の信号r(t)の各周波数成分R(f)が、状態1又は0を引き出す個々のゼロでない確率をもった最終的な結果に寄与するからである。
この主張は、周波数帯域[−Fe/2,Fe/2]において、スペクトルB(f)の振幅が一定とされる、ランダムノイズ関数b(t)の場合に示すことができる。ランダムノイズ関数b(t)の場合、既知のように、サンプルを引き出す確率は以下のようになる。
P1(k=1)=P0(k=1)=1/2
P?(k=1)=0
2つの連続するサンプルの場合には、以下が得られる。
P1(k=2)=P0(k=2)=(1/2)
P?(k=2)=1−P1−P0=1−2×(1/2)
そして、n個の連続するサンプルの場合、以下が得られる。
P1(k=n)=P0(k=n)=(1/2)
P?(k=n)=1−P1−P0=1−2・(1/2)
このように、多数の連続するサンプルの場合に、状態「0」及び「1」を引き出す確率は0に近づき、また、不定状態「?」を引き出す確率は1に近づく。次に、関数r(t)を検討するが、該関数は、周波数帯域[−Fe/2(n−1),Fe/2(n−l)]において、理想的なローパスフィルタリングを関数b(t)に適用することによって得られる。そして、R(f)、P1(f,n)、P0(f,n)、P?(f,n)の各スペクトルの表現が、図12A及び図12Bに示すように、R(f)、P1(f,2)、P0(f,2)、P?(f,2)の各スペクトルとの、単純な相似(homothety)によって得られることが見て取れる。また、図12Aには、関数b(t)に関連付けられたスペクトルB(f)の振幅を示す。図12Bにはまた、r(t)に関連付けられたスペクトルR(f)の振幅を示す。
以上のことから、フィルタ処理されたノイズ信号r(t)についての、n個の連続したサンプルを引き出す確率と、フィルタ処理されていないノイズ信号b(t)についての、2つの連続したサンプルを引き出す確率との間に等価性があることが推論される。フィルタ処理されたノイズ信号r(t)のn個の連続したサンプルに対して、状態1又は状態0を引き出す確率は1/4に等しく、他方、フィルタ処理されたノイズ信号r(t)のn個の連続したサンプルに対して、状態「?」を引き出す確率は1/2に等しい。
結論として、ローパスフィルタリングを、サンプルf=f(nTe)に関連付けられた関数f(t)に適用することにより、デジタル署名の選択性が向上する。
処理ステップ並びにファイルのデータ及びサンプル及び関数の関係は、図13に示すようにまとめることができる。ステップ131において、処理されるファイルのデータdが取得され、ステップ132でサンプリングがなされて、サンプルf、つまり、データdによりコード化された整数であるサンプルが得られる。シャノンの定理に従って(ステップ132’)、これらのサンプルは、有界のスペクトルF(f)の関数f(t)に関連付けられる。
Figure 0004885842
この関数F(f)に対して、ローパスフィルタを適用することにより(ステップ135’)、関数r(t)のフーリエ変換に対応する関数R(f)が得られ(ステップ133’)、そのサンプルrは、シャノンの定理によって、r=r(n・Te)=r(n/Fe)である(ステップ133)。
実際には、ステップ135において、ローパスデジタルフィルタが、好ましくはサンプルfに対して直接適用され、ステップ133でサンプルrを得る。このデジタルフィルタについては、後で詳述する。最後に、フィルタ処理されたサンプルrにファジー状態を決定する規則が適用され、k個の連続するサンプル{r、rn+1、...、rn+k−1}に亘って、デジタル署名データ「sn/k=State(n,k)」が得られる(ステップ134)。尚、ここでnはkの倍数である。
上述のように、いずれにしても図13の各ステップは、デジタルフィルタを用いて、サンプルfに直接基づいてサンプルrの計算を行うことにより簡略化できる。
以下では、次の表記を採用する。
Filter(f):フィルタリング演算子のフーリエ変換
filter(t):逆フーリエ変換を適用することによりFilter(f)に関連付けられた関数
ボレルの定理は、以下の関係を与える。
R(f)=Filter(f)×F(f)
この関係は、以下の形の数式によって、関数r(t)、filter(t)、f(t)に関して与えられる。
Figure 0004885842
サンプルに関連付けられた(及びシャノンの条件を満たす)関数について考慮すると、この関係は以下のようになる。
Figure 0004885842
従って、デジタルフィルタリングは、係数filterのセットを定義することにあり、これらの係数を用いて上記の数式を適用することにより、各サンプルrが計算されることになる。
実際には、係数filterのセットのサイズを制限することにより、予め決められたフィルタのテンプレートの近似が試みられる。見い出される妥協点は、以下の要因に依存する。
・デジタルフィルタの係数の個数が増加すると、生成されるフィルタの精度が高まる。
・逆に、サンプルrの計算速度は、係数の個数が増加すると遅くなる。
係数の個数がKに等しい場合、サンプルrの各計算は、K回の乗算と、(K−1)回の加算によって与えられる。
本発明の範囲内での検索アルゴリズムで用いるデジタルフィルタに対して、採用される主たる基準は、サンプルrの計算速度である。
好適な実施形態において、その選択は、「平均値」フィルタと呼ばれる特定のフィルタ群に関連し、該フィルタについては、デジタルフィルタの係数が同一であって、以下のようになる。
整数k∈[−K,K]に対して、filter=Cst
その他のk値に対して、filter=0
デジタルフィルタの等式は、以下の形に簡単化される。
Figure 0004885842
従って、「2K+1」個の係数をもったフィルタに対して、サンプルrの計算は、ほんの「2K+1」回の加算演算と、そして、Cst項の値が1でない場合における、1回の乗算によって与えられる。
さらに、サンプルr(n+1)が、関係「r(n+1)=r+Cst(f(n+K+1)−f(n−K))」によって、単にrから得られることも分かる。
特に有利な方法においては、この後者の関係を用いることにより、新たな各サンプルr(n+1)の計算が、2回の加算だけで与えられる。
平均値デジタルフィルタの周波数応答は、以下の総和演算子σ(t)のフーリエ変換から得られる。
t∈[−T/2,T/2]に対して、σ(t)=1
それ以外の場合、σ(t)=0
そして、演算子σ(t)によるf(t)のフィルタリングについては、以下の数式で与えられる。
Figure 0004885842
演算子σ(t)の周波数応答は、以下のΣ(f)である。
Figure 0004885842
最終的に、以下が得られる。
Figure 0004885842
平均値フィルタの周波数応答は、総和演算子Σ(f)をさらにTで割ることで得られる。
Figure 0004885842
K個の連続するサンプルに亘る平均値デジタルフィルタの周波数応答は、その後、Tを(K−1)Teに置き換えることで得られる。即ち、以下のとおりである。
Figure 0004885842
Kのパリティ(偶奇性)に応じて、デジタルフィルタについての、2つの等式がサンプルrの計算に用いられる。
Figure 0004885842
図14には、K値のいくつかについて、f/Feの関数としての、Filter(K,f)=Σavg(K,f)のプロットを例示している。ゼロにおける、フィルタの最初のカットオフは、f=Fe/(K−1)の場合に生ずる。
さらに、周波数帯域[−Fe/2(n−1),Fe/2(n−1)]における、理想的なローパスフィルタリングの適用が、n個の連続するサンプルの列に亘って計算されるファジー状態を引き出す、以下の確率で与えられることも分かる。
P1=P0=1/4
P?=1/2
理想的なローパスフィルタリングのテンプレートについては、ゼロカットオフ(遮断)周波数が「f=Fe/2(n−1)」で生じる平均値デジタルフィルタを選択することにより、近似することができる。この条件は、K=2n−1の場合に得られる。
実際、平均値デジタルフィルタの適用が、理想的なローパスフィルタによって得られる確率とは異なるファジー状態を引き出す確率で齎されることは勿論である。K値の決定は経験的に行われるが、これは、「K=2n−1」で得られる確率が、理想的なフィルタの確率に近くなること、そして、P1及びP0を引き出す確率もまた、K値とともに増加することが分かっているからである。
以下に、ファジー状態を決定する規則、特に前述の関数としての規則に行われる適合について説明する。
ファジー状態を引き出す確率の計算は、ファイルのデータがゼロ平均値の信号f(t)のサンプル値を示すという仮定に基づいている。この条件はまた、以下の関係で与えられる。
Figure 0004885842
従って、ファジー状態を引き出す確率について得られる結果は、この条件がサンプルfに対して以下のように満たされる場合にのみ有効である。
Figure 0004885842
サイズNのサンプルのファイルの場合に、この条件は以下のようになる。
Figure 0004885842
次に、ゼロ平均値についての上記条件は、サンプルの値がファイルのバイナリデータから決定される場合において、体系的に満たされない。例えば、これらの条件は、「符号なし整数」のコーディング規則を用いて、ファイルのデータと関連付けられたサンプル値を表す場合に満たされない。詳しくは、この場合、各バイトが0と255との間の整数を表し、ランダムなコンテンツのファイルの場合、平均サンプル値が127.5となる。
この問題を軽減するために、以下のように、基準値パラメータVrefが導入され、これは、サンプルfに基づくデジタルフィルタリングによって得られる、k個の連続するサンプルr{r、rn+1、...、rn+k−1}の列に亘ってファジー状態を決定する規則に対して持ち込まれる。
∀i∈{0,k−1},rn+i>=Vrefならば、State(n,k)=1
∀i∈{0,k−1},rn+i<Vrefならば、State(n,k)=0
それ以外の場合、State(n,k)=?
そして、Vref値の選択については、データファイルのサンプルfから得られる平均値に最良な近似を与えるように行われる。
検索の適用が、例えば、テキストファイルのような同類のファイルについての比較を対象とする場合において、Vrefの値については、ファイルデータのコーディング規則及び各コードを引き出す確率を熟知した上で、定めることを要する。
フルテキストのコンピュータ検索プログラムの実施形態では、好適な実施形態において、比較されるファイルの形式が事前には分からないと考えられる。従って、Vrefの値については、比較されるファイルの事前分析を行うことによって決定される。本実施形態の場合、Vrefの値は、fを中心とする、固定サイズKrefの列に亘ってサンプルfについての平均値計算を行うことにより、各サンプルrに対して次のように計算される。
Figure 0004885842
サンプルrが、K個の連続するサンプルfに亘る平均値計算によって既に得られることが分かっているので、列のサイズKref(Vrefの計算に用いられる)は、Kのサイズ(サンプルrの計算に用いられる)よりも大きいサイズに選択される。
k個の連続するサンプルr{r,rn+1,...,rn+k−1}の列に亘ってファジー状態を決定する規則は、以下のようになる。
∀i∈{0,k−1},rn+i>=Vrefn+iならば、State(n,k)=1
∀i∈{0,k−1},rn+i<Vrefn+iならば、State(n,k)=0
それ以外の場合、State(n,k)=?
この規則は、「r’=(r−Vref)」とすることで簡単になる。つまり、
∀i∈{0,k−1},r’n+i>=0ならば、State(n,k)=1
∀i∈{0,k−1},r’n+i<0ならば、State(n,k)=0
それ以外の場合、State(n,k)=?
Kが偶数であって、Krefが偶数である場合に、デジタルフィルタの数式は以下のようになる。
Figure 0004885842
サンプルr’の計算に関連付けられたデジタルフィルタの周波数応答が、Σavg(K,f)の計算によって簡単に得られることを想起されたい。
Filter(f)=Σavg(K,f)−Σavg(Kref,f)
K値の選択については、フィルタのゼロ遮断周波数が、理想的なローパスフィルタで用いることを要する遮断周波数以下となるように行われ、この理想的なローパスフィルタでは、1/4に等しい、状態1又は0の確率を得ることができる。そして、想起されるのは、この理想的なローパスフィルタの遮断周波数が、数式「Fe/(2・(k−1))」によってインデックス比kの関数として得られること、そして、この条件が、「2k−1」以下のKについて、Σavg(K,f)に関して実現されることである。Krefの選択については、Kよりも大きくされ、但し、大きくなりすぎないように行われる。
フルテキストコンピュータ検索プログラムの好ましい実施形態では、K及びKrefに用いる値が、インデックス比に望まれるk値の関数として自動的に調整される。Kの値及びKrefの値は、kの倍数として選ばれ、これによってデータアドレス計算が容易になる。故に、
K=interv×k 及び Kref=intervref×k
インデックス比kについて調整されたデジタルフィルタの応答は、以下のようになる。
Filter(k,f)=Σavg(interv×k,f)−Σavg(intervref×k,f)
フルテキストコンピュータ検索プログラムの実施形態の場合、特定の実施形態において、ファジー状態を決定する4つの規則が同時に用いられる。
第1の規則により決定されるファジー状態は、各デジタル署名のデータ項目の2つの最小有効ビットに関してコード化される。第2の規則により決定されるファジー状態は、各デジタル署名のデータ項目にかかる、次の2つの最小有効ビットに関してコード化され、各デジタル署名のデータ項目の8ビット(従って1バイト)が完全に占有されるまで以下同様に続く。
この4つの規則は、パラメータinterv1、interv2、interv3、interv4、及びintervrefのセットにより明示される。同一のパラメータintervrefが各規則について用いられる。インデックス比kに対して、デフォルトの選択は、ファジー状態を決定する各規則に関連付けられた、以下のようなデジタルフィルタのセット(組)となる。
Filter1(k,f)=Σavg(2k,f)−Σavg(14k,f)
Filter2(k,f)=Σavg(3k,f)−Σavg(14k,f)
Filter3(k,f)=Σavg(5k,f)−Σavg(14k,f)
Filter4(k,f)=Σavg(7k,f)−Σavg(14k,f)
図15には、インデックス比がk=5の場合に調整された、デフォルトのデジタルフィルタの周波数応答を示す。インデックス比kについて調整されたデフォルトのデジタルフィルタに対する数式は、以下のとおりである。
Figure 0004885842
除算によって引き起こされる計算ノイズを回避するために、有利な実施形態においては、先ず和を求め、それから、最初の和にKrefを掛けて、第2の和にKを掛けることによって、r項に関するサインテスト(符号検定)を行う。
次に、フルテキスト検索エンジンに適用する際の、完全な最適化について説明する。
この最適化は、適切なインデックス比の決定から始まる。
ローパスデジタルフィルタの実施例(図13)についてなされる、特定の選択を独立とするために、このデジタルフィルタに対する、以下の一般的な等式を用いる。
Figure 0004885842
図13との関連で示したように、各デジタル署名のデータ項目sn/kは、k個の連続したサンプル{r,rn+1,rn+2,...,rn+k+1}のグループに基づいて決定され、ここで、kはインデックス比の値を示し、nはkの倍数に選ばれる。この決定は、次の2ステップに分解できる。
・各サンプルrに関連付けられた2値状態ebの決定。
ここで、r<0であればeb=0、さもなくばeb=1とされる。
・連続する2値状態{eb,ebn+1,ebn+2,...,ebn+k+1}のグループに対する論理ORによる、ファジー状態sn/kの決定。
n/k=(eb or ebn+1 or ebn+2 or ... or ebn+k+1
図16Aには、ファイルのデータアドレスとデジタル署名のデータアドレスとの関係を示す。インデックス比kの選択の場合、アドレス(n/k)の各デジタル署名のデータ項目は、(I1+k+I2)個のファイルデータのグループ、{fn−I1,...,fn+I2+k−1}に基づいて決定されることが分かる。注意すべきは、サンプルrの計算に用いるアドレスが、インデックス(指数付け)されるファイルのデータの範囲をオーバーフロー(桁あふれ)する場合に、関連付けられた状態ebがファジー状態「?」に初期化されることである。図16Aにおいて、サンプルfは、ファイルのデータからとり出される。そして、デジタルフィルタリングが、これらに適用され、対応するフィルタ処理されたサンプルr、つまり、関連する状態ebにマッチするサンプルが得られる。デジタル署名データに対応するファジー状態sn/kは、その後、論理ORを用いた比較によって、次のように決定される。
n/k=(eb or ebn+1 or ebn+2 or ... or ebn+k+1
尚、ここで好ましくは、サンプルfの同じ開始アドレスに従う。
フルテキスト検索エンジンへの適用において、インデックス比のk値は、2つのファイルに共通する抽出部分の最小サイズの値を条件付け、該抽出部分は、デジタル署名の共通の抽出部分の検索を行うことにより検出することができる。この、ファイルの共通の抽出部分についての最小サイズは、デジタル署名に共通の抽出部分についてのサイズが1に等しい場合に得られる。この場合、共通のファイル抽出部分を検出するための条件に要求されるのは、発見される抽出部分の、連続するデータのグループが、各デジタル署名のデータ項目の計算に用いる、連続するデータのグループを網羅することである。
発見される共通のファイル抽出部分のサイズに対して、表記textを用い、また、インデックスデータ項目の計算に用いる、データのグループのサイズに対して、表記tsignを用いることで、関係「text≧tsign+(k−1)」が示される。
図16Bには、ファイル抽出部分の条件によって、デジタル署名のデータ項目の計算と関連付けられたデータの重複の条件を表している。図16Bにおいて、参照記号EXTは、データ抽出部分を示し、当該部分は、アドレス(n/k)のデジタル署名のデータ項目を決定するために用いる、データグループについての重複条件を満たす。また、参照記号G1は、アドレス(n/k)のデジタル署名のデータ項目を決定するために用いるデータグループを示す。参照記号G2は、各アドレス(n/k)−1及び(n/k)のデジタル信号データを決定するために用いるデータグループを示す。そして、参照記号ADSNは、デジタル署名データのアドレスを示す。尚、整数nはインデックス比kの倍数であることを想起されたい。
重複条件は、検索されることになるデータ抽出部分の開始アドレスの位相に依存することが観察される。最も好ましい場合において、抽出部分の開始アドレスは、デジタル署名のデータ項目の計算に用いる、データグループの最初のデータ項目のアドレスに一致する。この場合、抽出部分の開始アドレスは、「n−I1」(nはkの倍数)であり、重複についての抽出部分の最小サイズは、「I1+I2+k」である。最も好ましくない場合において、抽出部分の開始アドレスは、デジタル署名のデータ項目の計算に用いる、データグループの最初のデータ項目のアドレス+1に一致する。この場合、抽出部分の開始アドレスは、「n−I1−(k−1)」(nはkの倍数)であり、重複についての抽出部分の最小サイズは、「I1+I2+k+(k−1)」に等しい。
全ての場合において、1つのデジタル署名のデータ項目の計算に用いるデータグループに対する重複条件は、発見される抽出部分のサイズが(I1+I2+2k−1)以上であれば、満たされる。逆に、発見される抽出部分のサイズが(I1+I2+2k−1)に等しい場合、抽出部分は、デジタル署名の1つのデータ項目の計算に用いるデータグループと実際に重複する。
この論法は、サイズTESのデジタル署名データの抽出部分を計算するのに用いるデータグループの重複の場合に、拡張することができる。最も好ましい場合において、抽出部分の開始アドレスは、デジタル署名のTES個の連続するデータを計算するために用いるデータグループの、最初のデータ項目のアドレスに一致する。抽出部分の開始アドレスが「n−I1」(nはkの倍数)に等しい場合、重複についての抽出部分の最小サイズは、「I1+I2+k・TES」である。
最も好ましくない場合、つまり、抽出部分の開始アドレスが、デジタル署名のTES個のデータを計算するために用いるデータグループの、最初のデータ項目のアドレス+1に一致する場合において、抽出部分の開始アドレスは、「n−I1−(k−1)」(nはkの倍数)に等しく、重複についての抽出部分の最小サイズは、「I1+I2+k・TES+(k−1)」に等しい。
全ての場合において、デジタル署名のTES個の連続するデータを計算するために用いるデータグループについての重複条件は、発見される抽出部分のサイズが(I1+I2+k(TES+1)−1)以上である場合に満たされる。
上記の数式に基づき、逆の論法を適用して、サイズTEFをもった、ファイルの共通の抽出部分を検索するために使用できる、インデックス比kの値を決定する。このとき、以下の関係を満たすことが必要である。
TEF≧I1+I2+k(TES+1)−1、及び、
TES≧1 (これは単に、デジタル署名の共通の抽出部分についての最小サイズである。)
kの最小値は、kmin=2であり、そうでない場合には勿論、検索速度に何らの改善も見られないことになる。
最終的に、ここから、TEFに使用できる最小サイズの値を推定する。
TEFmini=I1+I2+2(TES+1)−1
TES=1の場合に、TEFmini=I1+I2+3となることに留意されたい。
kの最大値は、TES=1とすることにより、逆向きに得られる。つまり、以下のとおりである。
kmax=[(TEF−I1−I2+1)/2]の整数部
kminとkmaxとの間にある任意のk値に対して、署名の共通の抽出部分のサイズTESを推定する。これは、サイズTEFをもった、ファイルに共通する、あり得る抽出部分の検出を条件付けることになる。
TES≦[(TEF−I1+I2+1)/k]の整数部−1
これらの数式は、既に見たように、インデックス比kに対して調整された、「デフォルト」のデジタルフィルタについての特定のケースに合わせることができる。その際、I1を(intervref×k)/2で置き換え、I2をI1−1で置き換えれば済む。TEF、TES、k、及びintervrefの間には、以下の関係が得られる。
TEF≧k(intervref+TES+1)−2
k=2及びTES=1の場合、TEFに使用できる最小サイズ値が得られ、「TEFmini=2・intervref+2」が導かれる。
TEFを固定とした場合に、インデックス比kに対する正当な値の範囲が以下のように導出される。
kmin=2≦k≦kmax=[(TEF+2)/(intervref+2))]の整数部
kminとkmaxとの間にある任意のk値に対して、署名の共通の抽出部分のサイズTESを以下のように推定する。該サイズは、サイズTEFをもった、ファイルに共通な、あり得る抽出部分の検出を条件付ける。
TES≦[(TEF+2)/k]の整数部−(intervref+1)
従って、サイズTEFの、ファイルの共通の抽出部分についての検出は、各種のインデックス比kの値を用いて、デジタル署名を比較することによって得られる。決定された値TEFに対して、kminからkmaxまでの間で使用できるk値の範囲が推定される。そして、使用できるk値のそれぞれに対して、デジタル署名の共通の抽出部分についての最大サイズの値TESを決定するが、これは、サイズTEFとされる、ファイルの共通の抽出部分を検出することを保証する。
次に、検索速度を最速とするために、(正当な範囲、つまりkminとkmaxとの間における)k値の選定方法について検証する。
既述のように、フルテキスト検索エンジンへの適用において、検索は以下の2つのパスで行われる。
・TES以上のサイズをもった、デジタル署名の共通の抽出部分を検索すること。
・デジタル署名の、発見された共通の抽出部分のそれぞれに対して、デジタル署名の共通の抽出部分についての開始位置のペアと関連して、ファイルの抽出部分についての開始位置のペアのセットの中から、サイズTEFをもった、ファイルの共通の抽出部分を対象として検索すること。
これら2つの検索パスに対して行われる、比較演算の回数を評価する場合に、最初の取り組みにおいて、以下のような簡単化した仮定を採用する。
・ファイルのデータを引き出す確率は独立である。
・さらに、デジタル署名のデータを引き出す確率は独立である。
サイズ1をもつ、ファイルの共通の抽出部分を引き出す確率をPFで示す。また、サイズ2をもつ、ファイルの共通の抽出部分を引き出す確率をPF2で示す。そして、サイズTEFをもつ、ファイルの共通の抽出部分を引き出す確率はPFTEFである。
続いて、サイズ1をもつ、デジタル署名の共通の抽出部分を引き出す確率をPSで示す。また、サイズ2をもつ、デジタル署名の共通の抽出部分を引き出す確率をPS2で示す。サイズTESの抽出部分を引き出す確率はPSTESである。
さらに、以下の表記を採用する。
TF1:比較する第1ファイルのサイズ
TF2:第1ファイルと比較される第2ファイルのサイズ
TS1:第1ファイルに関連付けられたデジタル署名のサイズ
TS2:第2ファイルに関連付けられたデジタル署名のサイズ
先ずは、サイズがTES以上の、デジタル署名の共通の抽出部分について、「粗い」検索を行う第1のステップで行われる比較回数Total1を評価する。デジタル署名の共通の抽出部分について、そのあり得る開始位置のペアの数は、TS1×TS2に等しい。インデックス比kの値に対して、サイズTS1及びTS2は、以下の関係によって、サイズTF1及びTF2から導かれる。
TS1=TFl/k 及び TS2=TF2/k
デジタル署名の共通の抽出部分について、そのあり得る開始位置の各ペアに対して、抽出部分の第1データを比較する。相関関係がある場合に、抽出部分の第2データとの比較が続行され、要求された、抽出部分のサイズTESが得られるまで、以下同様に行われる。
各テストに対して、比較演算の平均回数は、引き出し確率PSから、以下のように得られる。
抽出部分の第1データのテストに対して:1回の演算
抽出部分の第2データのテストに対して:PS回の演算
抽出部分のTES番目のデータのテストに対して:PSTES−1回の演算
全体として、1+PS+...+PSTES−1、即ち、(1−PSTES)/(1−PS)回の演算が得られる。Totallの値は、これに(TS1×TS2)を掛けることにより導かれ、即ち、以下のようになる。
Total1=(TF1×TF2)×(1−PSTES)/(k×(1−PS))
次に、事前の粗い検索ステップで発見された、デジタル署名についての共通の抽出部分に関連して、ファイルの抽出部分について、その開始位置のペアのセット中から、サイズTEFをもつファイルの共通の抽出部分を「対象」検索する第2ステップで行われる比較回数Total2を評価する。開始アドレスのペア(n1,n2)でラベル付けされたデジタル署名の共通の抽出部分に対して、第1ファイルに関してテストされる開始アドレスは、(k・n1+I2+k・TES−TEF)と(k・n1−I1)との間、つまり、全体で、Na=(TEF−I1−I2−k・TES+1)個の、あり得るアドレスの中にある(図16A及び図16B)。
さらに、TEFの値については、kに対する、あり得る最大の値を用いる場合において、以下の関係で括られる。
I1+I2+k(TES+1)−1≦TEF<I1+I2+k(TES+2)−1
これより、「k≦Na<2k」が導かれる。
n1にn2を置き換えることにより、同じ推論を、第2ファイルに関してテストされる開始アドレスに当てはめることができる。
従って、合計でNa個とされる、ファイルの共通の抽出部分についての開始位置のペアが評価されることになる。サイズTEFをもつ、ファイルの共通の抽出部分を検索するための行われる比較の平均回数は、以下の粗い検索ステップの平均回数と同様の推論を適用することによって、引き出し確率PSから得られる。
Na×(1−PFTEF)/(1−PF)
第1のステップで発見されたデジタル署名の共通の抽出部分についての平均回数は、引出し確率PS及び署名サイズTS1、TS2から、以下のように得られる。
TS1×TS2×PSTES
TS1をTFl/kで置き換え、そしてTS2をTF2/kに置き換えると、最終的に上記した数式の積からTotal2が、以下のように得られる。
Total2=(TF1×TF2)×(Na/k)×PSTES×(1−PFTEF)/(1−PF)
既に、「1≦Na/k<2」が示されている。このことから、以下の関係が導かれる。
Total2≧(TF1×TF2)×PSTES×(1−PFTEF)/(1−PF)、及び、
Total2<4×(TF1×TF2)×PSTES×(1−PFTEF)/(1−PF)
尚、記号「×」は「掛ける」(乗算)を意味することを指摘しておく。
最終的に、2つの検索パスについて行われる比較演算の回数Total3の評価は、単にTotallとTotal2とを加算することで得られ、以下のようになる。
Total3=(TF1×TF2)×(1−PSTES)/(k(1−PS))
+(TF1×TF2)×(Na/k)×PSTES×(1−PFTEF)/(1−PF)
TEF及びTESの値が大きい場合、この関係は以下のように近似される。
Total3=(TF1×TF2)×[(1/(k×(1−PS)))+((Na/k)×PSTES/(1−PF))]
リファレンス検索アルゴリズムで行われる比較の総数は、TF1×TF2に近い。後者の数字とTotal3との間の比により、本発明の範囲内でのアルゴリズムを用いることにより得られる、検索速度のゲイン(gain:利得)についての推定が、以下のように与えられる。
Gain=1/[(1/(k×(1−PS)))+((Na/k)×PSTES/(1−PF))]
上記の和における第2項が、1/kの項よりも小さい場合に、k/2(l−PS)より大きいゲインが得られることに留意されたい。
但し、効果的な検索速度のゲインを得るには、デジタル署名を計算するための、実際の回数を推定する必要があることを付言しておく。
図17を参照すると分かるように、インデックス比kの関数として、関数Total3の変化について、以下の検討結果が示される。
・1/kをもつ和の第1項は、kが増加するにつれて急速に減少する。
・PSTES(k)をもつ和の第2項は、kが増加するにつれて増大する。というのも、TES(k)の値は、kが増加するにつれて減少するからである。
一般の場合に、「TES=[(TEF−I1−I2+2)/k]の整数部−1」、であることを想起されたい。
最適化された平均値デジタルフィルタの場合には、以下のようになる。
TES=[(TEF+2)/k]の整数部−(intervref+1)
この関数の最小値を得るために用いるk値が、単純な数学的関係によって決まらないことは明白である。しかしながら、kの、一連のあり得る値が減少すると、kの最適値は経験的に決められる。kのあり得る値(kminとkmaxとの間)のそれぞれに対して、kの関数としてTotal3の値を計算し、Total3の最小値を生じさせるkの値を保持すればよい。
しかしながら、デジタル署名について、その共通の抽出部分を引き出す確率を計算するために用いるモデルを修正すれば、行われる比較演算の回数についての評価が、より正確となる。詳細には、デジタル署名のデータを引き出す確率は、相互に独立ではない。その理由は、アドレス(n/k)の、デジタル署名のデータ項目の計算に用いるファイルデータの範囲と、アドレス(n/k)+1の、デジタル署名のデータ項目の計算に用いるファイルデータの範囲との間に、相当の重複が存在するためである。
(I1+I2+1)個の係数をもったローパスデジタルフィルタの一般的な場合に、アドレス(n/k)及び((n/k)+j)の、デジタル署名データによって得られるファジー状態については、それらの決定に用いるファイルデータの範囲同士の間に重複がなければ、独立したものとなる。この条件は、「(n+I2+k−1)<(n+k・j−I1−k+1)」の場合、即ち、「j>(I1+I2+2k−2)/k」であれば、満たされる。
インデックス比kに対して調整されたデフォルトのデジタルフィルタという、特定の事例では、上記式において(I1+I2)を、(k×intervref−1)に、単に置き換える。すると、独立の条件は、「j>(intervref+2)−3/k」であれば満たされ、あるいは、別の言い方をすると、デジタル署名データ間のアドレスの相違が、少なくとも(intervref+2)に等しい場合に、独立の条件が満たされることになる。
デジタル署名の連続するデータによって得られるファジー状態の依存性を考慮に入れるため、確率モデルを以下に示すように修正する。
サイズ1をもった、デジタル署名の共通の抽出部分を引き出す、独立の確率を、PSIで示す。また、サイズ2をもった、デジタル署名の共通の抽出部分を引き出す確率は、サイズ1の抽出部分を引き出す確率PSIに対して、以前発見されたサイズ1の抽出部分に引き続いてその次に別のサイズ1の抽出部分を引き出す条件付き確率PSD(Dは依存性を示す)を掛けた確率に等しい。つまり、この引き出し確率は、PSI×PSDとなる。サイズ3をもつ、デジタル署名の共通の抽出部分を引き出す確率は、PSI×PSDとなる。最終的に、サイズTESである抽出部分を引き出す確率は、PSI×PSDTES−1となる。PSIとPSDとの間には、「PSD(intervref+2)<PSI」という関係が示される。
この新たな確率モデルに基づいて、Total1とTotal2の数を計算するための数式について再び評価する。
Total1=[(TF1×TF2)/k]×[1+(PSI×(1−PSD(TES−1))/(1−PSD))]
Total2=(TF1×TF2)×(Na/k)×PSI×PSD(TES−1)×(1−PFTEF)/(1−PF)
TEF及びTESの値が大きい場合に、数式は以下のように近似できる。
Total1=[(TF1×TF2)/k]×[1+(PSI/(1−PSD))]
Total2=(TF1×TF2)×(Na/k)×PSI×PSD(TES−1)/(1−PF)
そしてTotal3=(TF1×TF2)×[(1+(PSI/(1−PSD))/k+((Na/k)×PSI×PSD(TES−1))/(1−PF)]
好適な実施形態において、PSI及びPSDの値は、サイズの大きなファイルで得られた、デジタル署名同士の間で比較した結果について、その統計的な分析から事前に決定される。このため、特定の統計的な分析プログラムによって、PSI及びPSDに用いる値が標準化される。
インデックス比kに対して調整された、4つのデフォルトデジタルフィルタ(図15)のセットについて、PSI及びPSD用に記録された値は、kの関数としてほとんど変化しない。本例では、PSI=0.4及びPSD=0.6のように、端数を切り捨てた値を使っている。
図17には、kの関数としてのTotal1、Total2、及びTotal3の変化を、デフォルトデジタルフィルタのセットで示しており、発見されるファイルの共通の抽出部分の最小サイズ値が1000に等しく、そして、比較されるファイルのサイズが100キロバイトである場合を示す。
次に、フルテキスト検索エンジンのために、デジタル署名の共通の抽出部分を検索する際の選択性の向上についてさらに説明する。
単純な場合、つまり、デジタル署名データがそれぞれに、1つのファジー論理状態のみを有する場合において、サイズ1をもつ、デジタル署名の共通の抽出部分を検出する確率PSIは、状態「0」、「1」、及び「?」を引き出す確率から導くことができる。
P0によって、状態0を引き出す確率を示し、P1によって、状態1を引き出す確率を示し、P?によって、状態?を引き出す確率を示すものとする。
評価対象となる、デジタル署名の抽出部分についての任意の開始位置のペアに対して、サイズ1をもつ、デジタル署名の共通の抽出部分を検出する条件は、以下のとおりである。
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が0に等しい場合には、第2ファイルに関連付けられたデジタル署名のデータ項目の状態が0又は?に等しいことを要する。
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が1に等しい場合には、第2ファイルに関連付けられたデジタル署名のデータ項目の状態が1又は?に等しいことを要する。
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が?に等しい場合には、第2ファイルに関連付けられたデジタル署名のデータ項目の状態は0、1、又は?の、いずれの値をとってもよい。
評価対象となる、デジタル署名の抽出部分についての任意の開始位置のペアに対して、サイズ1をもつ、デジタル署名の共通の抽出部分を検出する確率は、上記の状況それぞれについて、以下のように決定される。
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が0に等しく、かつ第2ファイルに関連付けられたデジタル署名のデータ項目の状態が0又は?に等しい(確率=P0×(P0+P?))
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が1に等しく、かつ第2ファイルに関連付けられたデジタル署名のデータ項目の状態が1又は?に等しい(確率=P1×(P1+P?))
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が?に等しく、かつ第2ファイルに関連付けられたデジタル署名のデータ項目の状態が、任意の値をとる(確率=P?×1=P?)。
検出確率PSIは、各状況の確率を加算することで以下のように得られる。
PSI=P0×(P0+P?)+P1×(P1+P?)+P?
PSIを決定する数式は、ここでも、(P0+P?)を(1−P1)に、(P1+P?)を(1−P0)に、(P0+P1+P?)を1に置き換えることによって、以下のように簡単化できる。
PSI=P0×(1−P1)+P1×(1−P0)+P?=1−2×P0×P1
PSIの最大値は1に等しい。これはP0=0又はP1=0の場合に得られる。この状況は除外すべきとされるが、この場合に、デジタル署名の共通の抽出部分を検索する上で何らの選択性(selectivity)を持たないからである。
PSIの最小値は1/2に等しい。これはP?=0及びP0=P1=1/2の場合に得られる。この状況は理想的であり、既に見たように、パラメータintervref及びintervの値に大きな値をもった、調整済みのデフォルトのデジタルフィルタを用いる場合において、この状況を近似的に得ることができる。
平均値デジタルフィルタに対して、PSIの値は、サイズの大きなデジタル署名の相互比較を統計的に分析することによって得られる。カットオフがFe/2(k−1)とされる、理想的なフィルタの適用が、確率P0=P1=1/4及びP?=1/2によって与えられることは既に示されている。従って、「PSI=7/8」となる。
それ故、好ましい実施形態においては、「PSI<7/8」となるように、さらに選択性をもったデジタルフィルタを用いる。
デジタル署名データのそれぞれが、4つのファジー論理状態(追加された状態「X」(禁止))を有する一般的なケースにおいて、サイズ1をもつ、デジタル署名の共通の抽出部分を検出する確率PSIは、前述の結果に基づいて評価される。ファジー状態を決定する第1の規則によって得られる状態の比較のみに基づく、サイズ1をもったデジタル署名の共通の抽出部分を検出する確率として、これをPSI1によって示すものとする。また、PS2、PS3、及びPS4は、ファジー状態を決定するための、規則1に続く規則(規則2、規則3、及び規則4)に関連付けられた同様の検出確率を示すものとする。これらの規則が相互に独立である場合には、「PSI=PSI1×PSI2×PSI3×PSI4」である。実際には、これらの規則間には依存性があり、よって、統計的な分析により得られるPSIの値は、前記の積よりも大きい。
従って、デジタル署名についての各ファジー状態の決定は、k個の連続する2値状態のセットの事前計算によって行われる。ファイルの共通の抽出部分を検索する際に、以下の場合には、ファイル間での、あり得る共通の抽出部分の検出が常に保証されることが分かる。
・第1ファイルに関連付けられたアドレス(n1/k)をもった、デジタル署名のデータ項目のそれぞれは、アドレスn1,n1+1,...,n1+k−1の、k個の連続する2値状態を相互比較することにより決定される。
・第1ファイルに関連付けられたアドレス(n2/k)をもった、デジタル署名のデータ項目のそれぞれは、アドレスn2について計算された2値状態を単にコピーすることによって決定される。
好適な実施形態において、ファジー状態(0、1、又は?)を有するデジタル署名(第1ファイル)が、実際上、2値状態(0又は1)のみを有するデジタル署名(第2ファイル)と相互比較されるということは、確かに示される。以下では、これによって、検索の選択性が向上することを示すが、その理由は、デジタル署名に共通の抽出部分を検出する確率が単に減少するためである。
評価されるデジタル署名の抽出部分について、任意の開始位置のペアに対して、サイズ1をもつ、デジタル署名の共通の抽出部分を検出する必要条件は、以下のとおりである。
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が0に等しい場合には、第2ファイルに関連付けられたデジタル署名のデータ項目の状態が0に等しいことを要する。
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が1に等しい場合には、第2ファイルに関連付けられたデジタル署名のデータ項目の状態が1に等しくことを要する。
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が?に等しい場合には、第2ファイルに関連付けられたデジタル署名のデータ項目の状態は、0又は1のいずれの値をとってもよい。
第2ファイルに関連付けられたデジタル署名のデータ項目がもっている2値状態を引き出す確率について、表記P0’及びP1’を用いる。以下の関係が得られる。
P0’+P1’=1
P0≦P0’≦P0+P?
P1’≦P1’≦P1+P?
評価されるデジタル署名の抽出部分についての、任意の開始位置のペアに対して、サイズ1をもつ、デジタル署名の共通の抽出部分を検出する確率は、上記の状況のそれぞれについて、以下のように決定される。
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が0に等しく、かつ第2ファイルに関連付けられたデジタル署名のデータ項目の状態が0に等しい(確率=P0×P0’)
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が1に等しく、かつ第2ファイルに関連付けられたデジタル署名のデータ項目の状態が1に等しい(確率=P1×P1’)
・第1ファイルに関連付けられたデジタル署名のデータ項目の状態が?に等しく、かつ第2ファイルに関連付けられたデジタル署名のデータ項目の状態が、任意の値をとる(確率=P?×1=P?)。
検出確率PSI’は、各状況の確率を加算することで以下のように得られる。
PSI’=P0×P0’+P1×P1’+P?
≦P0×(P0+P?)+P1×(P1+P?)+P?
≦PSI
従って、「PSI’≦PSI」の関係は、ファジー状態をもつ署名と2値状態しかもたない署名との間での比較を行うことによる、検索の選択性の向上を示している。
開始アドレスのペア(n1,n2)によりラベル付けされた、デジタル署名についての共通の抽出部分に対して、ファイルに関してテストされる開始アドレスは、検索のために2値のデジタル署名の使用を考慮する必要があることが分かる。ファジーデジタル署名が第1ファイルに基づいて計算される場合において、テストされる開始アドレスは、(k×n1+I2+k×TES−TEF)と(k×n1−I1)との間となる。即ち、全体では、以下のようになる。
Naf=(TEF−I1−I2−k×TES+1)個の、あり得るアドレス
2値デジタル署名が第2ファイルに基づいて計算される場合に、テストされる開始アドレスは、
(k×n2+I2+k×(TES−1)−(TEF−1))と(k×n2−I1)との間となる。即ち、全体として、以下のようになる。
Nab=(TEF−I1−I2−k×(TES−1))個の、あり得るアドレス
パラメータintervrefをもつ、デフォルトデジタルフィルタに対して、以下が得られる。
Naf=TEF−k×intervref−k×TES+2
Nab=TEF−k×intervref−k×(TES−1)+1
以下では、デジタルフィルタに関連付けられた確率規則の標準化について説明する。以下の表に記録されたものは、2つの、サイズの大きな(300キロバイト)テキストファイルを比較することによって得られる、平均値デジタルフィルタの確率PSI及びPSDである。
Figure 0004885842
以下の点に留意されたい。
・PSIは常にPSD未満である。
・kが一定の場合、intervが増加するとPSIはわすかに減少するが、PSDはほぼ一定である。
・kが一定の場合、intervrefが増加すると、PSIはわずかに減少する。
4つのフィルタ(interv=2,3,5,及び7)の集合に対して記録された確率は、各フィルタについての個別に記録された確率の積よりも大きい。従って、各規則に関連付けられた確率の相互依存性が存在することが理解される。
確率の独立性をもった状況に、より近づけるためには、デジタル署名を計算する関数の実現に適合させるために、以下のような手順を想定可能である。
・規則1では、各データ項目の8ビットで整数をコード化する規則によって、サンプルfがとる値を決定する。
・規則2では、2ビットでのシフトにより8ビットをローテイトした後で、これらの値を決定する。
・規則3では、4ビットでのシフトにより8ビットをローテイトした後で、これらの値を決定する。
・規則4では、6ビットでのシフトにより8ビットをローテイトした後で、これらの値を決定する。
・各規則では、平均値デジタルフィルタ、例えばinterv=4及びintervref=10のフィルタに対して、全く同一のパラメータのペアを用いる。
TEF(及びTES)値が大きい場合に、検索で実行される比較演算の回数を推定する数学的モデルは、用いるインデックス比の最適値の自動決定に関して、良好な結果を与える。
TEF(及びTES)の値が小さい場合に、数学的推定モデルは、良好な結果を与えないが、これは、検索プロセスが、もはや比較演算に対して原理的に割り当てられないためである。
発見されるデジタル署名についての共通の抽出部分のそれぞれに対して、プログラムは、ファイルに関する開始アドレスのペアについて、その制限された範囲に亘り、ファイルの共通の抽出部分を検索するための、対象となる検索用関数への呼び出しを開始させる。各呼び出しにおいて、関数は、呼び出しパラメータの正当性の検証及びローカル変数の初期化を、ある一定の回数で実行する。また、各呼び出しにおいて、この関数は、比較される各ファイルのデータを読み出す演算を実行するが、この演算は、その速度がコンピュータのハードディスク及びバスのパフォーマンスに依存する。これらの追加される処理時間の影響を考慮に入れるため、さらに補正された数学的モデルが用いられ、ここでは、ファイルの共通の抽出部分を検索するための、対象となる検索ステップにおいて、対象となる検索関数の呼び出し回数及び比較されるデータの読み出し回数を示す回数分の比較演算が加わる。通常、Total2に加え得る回数は以下の形式をとる。
[((TF1×TF2)/k)×PSI×PSD(TES−1)]×[A×B×k]
ここで、Aは、対象となる検索関数の呼び出し回数を表す定数であり、Bは、ハードディスクデータの読み出し回数を表す定数である。
パラメータA及びBの値は、プログラムの実行に用いられるコンピュータの特徴に依存し、経験的に決定される。
以下に、評価用のコンピュータとして、1GHzのPentium(登録商標)IIIプロセッサ、128MバイトのRAM、20Gバイトのハードディスクを用いた性能評価結果について説明する(Windows(登録商標)98オペレーティングシステムで動作する)。
パフォーマンスは、C++言語で具体的に開発された、フルテキストコンピュータ検索プログラムの実行により記録される。このプログラムは、2つのファイルに共通の抽出部分の検索を行うために、「従来の」アルゴリズム又は本発明の範囲内でのアルゴリズムの選択を与える。本発明の範囲内でのアルゴリズムの実行回数も、デジタル署名の計算回数に統合される。
パフォーマンス測定上のごまかしを回避するため、検索の実行に用いるファイルの選択には、特に注意を払う必要がある。具体的には、テストの過程で、ワード(登録商標)、エクセル(登録商標)、パワーポイント(登録商標)などの、日常用いられるソフトウェアに関連付けられたデータファイルは、同じ値0(0x00)に初期化された無数の連続するデータの範囲をもたらす、ストレージフォーマットを有することが明らかとなった。これらの範囲のサイズが、数百程度のデータ項目になると、本実施形態でのプロトタイプの検索プログラムに用いる確率モデルは、ごまかされてしまう。このモデルの適合については、例えば、共通の抽出部分の開始位置としての、データ値のペア(0,0)については、対象となる検索関数において無視するといった具合に、ケースバイケースで調べることができる。
テキストファイルのタイプの選択は、特に、HTML形式の大きなサイズのテキスト文書にかかっている。その検索速度は、100万比較演算毎秒(メガオペレーション/秒)で表現される。第1ファイルは、サイズ213275バイトであり、第2ファイルのサイズは145041バイトである。以下の表は、得られた結果を示す。
Figure 0004885842
あり得る共通の抽出部分を検索するための、他の適用について以下に説明する。ある適用分野では、ファイルの共通の抽出部分を検出する基準が、発見される抽出部分の完全な同一性とは異なる。具体的には、例えば、オーディオファイル(例えば、拡張子「.wav」をもつ)など、信号のデジタル処理を表わすデータファイルの場合である。
得られたサンプルの値は、サンプリングクロックの位相に依存することが知られている。さらに、デジタル化装置は、サンプル値に他のエラー(ノイズ、クロックジッター、ダイナミックスウィング(動的な揺れ)など)をもたらすことが知られている。
このような用途では、本発明の範囲内での検索アルゴリズムの原理を、ファイル間での粗い検索のステップにのみ制限するように適合させることができる。想定されるステップは、従って以下のように、まとめられる。
・比較されるファイル当たりの、デジタル署名の計算
・デジタル署名の共通の抽出部分の検索を用いた、デジタル署名の比較
以下では、確率を活用して、共通の抽出部分を検出するための基準を、自ら定義できるようにする方法について示す。
既に示したとおり、インデックス比の値の最適化の枠内では、デジタル署名同士の間の、検索のための比較演算回数は、以下のように推定される。
Total1=[(TF1×TF2)/k]×[1+PSI×(1−PSD(TES―1))/(1−PSD))]
また、デジタル署名の共通の抽出部分を引き出す確率は、PSI×PSD(TES−1)に等しいことを示した。
従って、それぞれのサイズがTF1及びTF2である、2つのファイルを相互比較することで発見されることになる、最小サイズTEFをもった共通の抽出部分の推定数は、以下のようになる。
N=[(TF1×TF2)/k]×PSI×PSD(TES−1)
ここで、TES=[(TEF−I1−I2+1)/k]の整数部−1
k値の最適化は、kの増加につれて増大する検索速度(Total1に反比例)(従って、kの値を大きくすると有利である)と、kの増加につれて増大する数値N(従って、検出される、あり得る共通の抽出部分の数を制限したい場合は、kの値を低くするべきである)との間の妥協に依る。
また、k値の最適化は、Nに対する目標値Nc、及び発見される抽出部分の最小サイズTEFの値を、事前に固定することによって行われる。これらのパラメータに基づいて、値Nは、kの許される値全てについて評価され、値Ncを最良に近似することが可能なk値が保持される。
この検索手続は、発見される、あり得る共通の抽出部分についての開始位置に不正確さをもたらす。ファジー署名と2値署名との間で、共通の抽出部分を検索する場合には(好適な実施形態に対応する)、ファイルの、あり得る共通の抽出部分について、その開始位置の不正確さが、ファジー署名に関連付けられたファイルにおいて、およそ+k又は−k程度であり、そして、2値署名に関連付けられたファイルにおいて、およそ+k又は−2k程度である。
デジタル署名の共通の抽出部分を検出する有効確率は、ファジー署名に関する抽出部分の状態による変動を分析することで近似することができる。好ましくは、好適な実施形態では、上限確率を評価するが、これは、0状態のデータと1状態のデータとの間で生ずる移行回数を検出することにより評価され、これによって、測定された確率が所定の閾値よりも大きい共通の抽出部分を、検索結果からフィルタ処理することが可能となり、従って検索パラメータの最適化に用いる統計的な確率モデル(PSI×PSD(TES−1))を悪化させないように回避できる。
従って、オーディオファイルの場合、2つの記録ファイルに共通するオーディオ抽出部分の検索については、次のように要約できる。先ずは、各ファイルに関連付けられたデジタル署名の事前計算から始める。この第1ステップが完了すると、デジタル署名ファイルは、一連の論理状態、即ち、オーディオ信号についての、一定した継続時間の連続するタイムスパンを明確化する論理状態とみなすことができる。通常、各デジタル署名のデータ項目に対して、1秒でのタイムスパンの継続期間を選択する場合に、1時間分のオーディオファイルの処理では、3600データ項目(1秒毎に1つ)のデジタル署名のファイルを生成することになる。署名の第1データ項目は、記録における最初の1秒を特徴付け、第2データ項目が2秒を特徴付けるといった具合に、以下同様に続く。
そして、共通のオーディオ抽出部分の検索が行われるが、これは、各オーディオ記録に基づいて計算されたデジタル署名のデータ同士を相互比較することで行われる。共通の抽出部分はいずれも、N個の連続したデジタル署名のデータのグループ(つまり、第1オーディオファイルに関連付けられた署名のデータ項目の第1グループ、及び第2オーディオファイルに関連付けられた第2グループ)のペアにより明らかとなる。そして、このグループに対して、第1グループのN個の連続したファジー論理状態と、第2グループのN個の連続したファジー論理状態との間には適合性(compatibility)がある。
第1グループG1のデジタル署名についての、第1データ項目のアドレスによって、第1オーディオファイルにおける共通の抽出部分の一時的な位置をラベル付けすることができる。第2グループG2のデジタル署名についての、第1データ項目のアドレスによって、第2オーディオファイルにおける共通の抽出部分の一時的な開始位置をラベル付けすることができる。数N(個の関連して発見される連続するデータ)によって、発見される抽出部分の継続時間を推定できるようになるが、これは、各デジタル署名のデータ項目に関連付けられたタイムスパンの継続時間との簡単な積演算によってなされる。
例えば、デジタル署名のデータ項目当たり1秒の継続期間をタイムスパンについて固定して、1時間の第1ファイル「audio1」及び1時間の第2ファイル「audio2」に関するデジタル署名が計算されたものと想定する。そして検索結果が、20個の連続するデータ項目のデジタル署名についての共通の抽出部分であって、署名1においてアドレス100でラベル付けされ、かつ署名2においてアドレス620でラベル付けされる、共通の抽出部分を与える場合において、この検索結果としては、ファイル「audio1」に関して1分40秒のスタートタイミングでラベル付けられるとともに、ファイル「audio2」に関して、10分20秒のスタートタイミングでラベル付けされた、20秒の継続時間をもった共通のオーディオ抽出部分で与えられる。
テキストファイルにおける同一性によって抽出部分を検索することとは対照的に、デジタル署名を比較するステップで記録された抽出部分の同一性に関する疑義を払拭できる処理において、他のステップはない。デジタル署名の計算に用いる数学的アルゴリズムは、2つのオーディオファイルの間に共通の抽出部分が存在する場合において、ある共通の抽出部分が、その後にデジタル署名同士の間で検出されることを保証する。しかしながら、その逆は成り立たない。つまり、共通のオーディオ抽出部分に対応しないデジタル署名の共通の抽出部分を検出する可能性がある。
検索結果に対して信頼度指数を利用できるようにするために、処理では、誤検出のエラーレートを計算することが可能な確率モデルを用いる。このモデルは、オーディオ抽出部分を表す、デジタル署名についてのN個の連続するデータ項目のグループを、ランダムな値をもち、かつランダムなオーディオ信号を表す、デジタル署名についてのN個の連続するデータ項目の別グループに適合(match up)させる確率を計算することにある。
そして、デジタル署名についての、N個のデータをもった共通の抽出部分を検出する確率P(N)は、「P exp(N)」の形式(PのN乗)で表現され、ここで、Pは、サイズ1の共通の抽出部分を引き出す確率である。実際には、いくつかのファジー論理状態が同時に使用されることを前提として、Pが1/2未満であり、従ってP(N)は、1/2exp(N)で上方に有界である。210を10に近似できるとすると、N個のデータ項目とされる共通の抽出部分について、その誤検出の確率を容易に推定できる。即ち、P(10)<10−3,P(20)<10−6,...となる。
2つのオーディオファイルの比較に関連付けられることになる誤検出の推定数を評価するためには、この値P(N)に、デジタル署名の抽出部分についての開始位置のペアの総数、つまり、デジタル署名を比較するステップ中にテストされる総数を掛ける必要がある。ファイル「audio1」のデジタル署名のデータ項目の数についての表記をS1とし、ファイル「audio2」のデジタル署名のデータ項目の数についての表記をS2とすると、誤検出の推定数は、P(N)×S1×S2となる。
上述のように、検索されるデジタル署名の共通の抽出部分のサイズが1増える毎に、この数は2で除算される(サイズが10増えると1000で除算される)。
音楽の抽出部分を検出するアルゴリズムに磨きをかけるために、署名の共通の抽出部分の最小サイズは、50データ項目に調整されており、これによって、10−15未満の誤検出の確率が保証される。この選択は、処理されるオーディオ信号の非ランダム性を考慮に入れたものであり、該信号は、音楽の場合に、多数の反復的な期間(リフレインなど)を含んでいる。このサイズは勿論、許容されるエラーレートを上げるか、あるいは下げるように、他の適用による要求に応じて適合される。
この抽出部分の最小サイズに基づいて、プログラムは、検索される抽出部分の最小継続時間を、署名の各データ項目に関連付けられた期間の値の関数として逆方向に決定する(署名データの周波数の逆数)。
デジタル署名周波数が25Hzの場合(1秒当たり25データ項目)、プログラムは、最小継続時間2秒(50×1/25s)のオーディオ抽出部分を検索することができる。デジタル署名周波数が5Hzの場合(1秒当たり5データ項目)、プログラムは、最小継続時間10秒(50×1/5s)のオーディオ抽出部分を検索することができる。デジタル署名周波数が1Hzの場合(1秒当たり1データ項目)、プログラムは、最小継続時間50秒のオーディオ抽出部分を検索することができる。
実際上、それは、検索されるオーディオ抽出部分の最小継続時間の閾値を固定する適用である。広告のモニタリングへの適用の場合、必要条件は5秒のテレビ又はラジオのスポット広告についての抽出部分を検出することである。音楽のタイトル認識への適用の場合、必要条件は15秒程度の抽出部分を検出することである。テレビ番組(映画、連続番組など)の認識への適用の場合、必要条件は1分程度の抽出部分を検出することである。
さらに、オーディオ、ビデオ、又はその他のファイルへの適用、つまり、第1ファイル及び第2ファイルがデジタル化された信号のサンプルファイルである場合への適用において、本発明の範囲内の方法は、好ましくは、例えば、サブバンドフィルタリングによりデータの前処理をするステップを有し、第1ファイルと第2ファイルとの間の異なるイコライゼイション(均等化)の効果を制限するために、ノイズ基準よりも高いレベルの信号部分に関連付けられたデータを考慮することが示される。
さらに、本方法は、好ましくは、第1ファイル及び第2ファイルのそれぞれの検索速度における相違を許容するように、第1ファイル及び第2ファイルのパケットの相対的なサイズを調整することによって、検索結果を一元管理(consolidate)するステップを有利に提供する。
そして、第1ファイル及び第2ファイルの少なくとも1つがデータストリームであってもよく、この適用において、共通の抽出部分を検索する方法がリアルタイムで実行されることが示される。
C++言語で記述された具体的なプログラムは、共通の抽出部分の検索を、32ビットWindows(登録商標)オペレーティングシステムが搭載されたマイクロコンピュータで実行するように開発される。このプログラムは比較される2つのファイルを選択し、そこに発見される共通の抽出部分の最小サイズを規定し、その後に検索を促すように提示する。
検索を促す場合に、プログラムが、好ましくは実行モニタリングウィンドウを表示する。このウィンドウは、検索開始からの経過時間並びに全継続時間及び検索速度の推定値を表示する。また、検索の継続時間が長すぎると判明した場合には、その検索を放棄することもできる。検索は、共通の抽出部分が見つかると直ちに中断される。そして、発見された抽出部分のサイズ及び各ファイルにおける位置が表示される。プログラムは、所定の命令に従ってファイルの分析を行う。その本質は、ファイルにおける共通の抽出部分がとり得る開始位置の各ペアをテストすることである。
検索アルゴリズムの実装について、その説明を以下に記載する。検索は、ファイルに共通な他の抽出部分を見い出すために再開されてもよいことが示される。この場合に、検索は、最後に発見された共通の抽出部分についての開始位置のペアから再開され、ファイルの分析についての所定の順序に従って行われる。この検索は、ファイルが完全に分析されると終了する。そして、ファイルに共通の抽出部分が存在しないこと、又はファイルに共通の他の抽出部分が存在しないことを、必要に応じて示すために、停止条件が表示される。
プログラムは、検索を実行するために2つのアルゴリズム、即ち、従来の検索アルゴリズムと、本発明の範囲内でのアルゴリズムを、自らの判断で使用することを提案する。
従って、プログラムは、2つのアルゴリズムのパフォーマンスを、1台のコンピュータ上で比較することを可能とし、検索される共通の抽出部分の最小サイズや、ファイルのサイズ、ファイルの性質、その他に関して、あらゆる検索設定に対してパフォーマンスを比較することができる。
パフォーマンスの評価基準は、アルゴリズムの実行の迅速性である。実行モニタリングウィンドウにより、検索を完了するまでの実行期間、検索速度などの推定を回復することができる。
従来のアルゴリズムにおいて、検索速度が実質的に一定であって、発見される共通の抽出部分の最小サイズには依存しないことが明らかである。これは、コンピュータで実行される、1秒当たりのバイナリデータ(バイト)の比較演算回数として表される。その値は常にマイクロプロセッサのクロック周波数未満である。
一方、本発明の範囲内でのアルゴリズムにおいて、検索速度は、発見される共通の抽出部分の最小サイズの関数として変化する。これは、1秒当たりのバイナリデータ(バイト)の比較演算回数の推定値により表され、従来のアルゴリズムが用いられた際のコンピュータによって行われる。従って、発見される共通の抽出部分の最小サイズが増加するほど、速度は大きくなる。その値は、マイクロプロセッサのクロック周波数の値を超越し得る。
図19Aには、2つのテキストファイル間の共通の抽出部分を、同一性に基づいて検索するための、本発明の範囲内でのコンピュータプログラムにおけるマン・マシンインターフェースの枠内で、ダイアログボックスの画面コピーを示す。また、図19Bは、図19Aの画面上で定義された検索の進行状況を示す画面コピーを示す。この検索にかかる時間は2秒であり、その際、ファイルサイズがそれぞれ85390バイトと213275バイトであったことを記しておく(図19A)。
図19Cには、「.WAV」形式での、2つのオーディオファイル間における共通の抽出部分を検索するための画面コピーを示す。上記のように、この場合、好ましくは、同一性に基づく検索ではなく、そのパラメータ(特に上記信頼度指数は該パラメータから派生する)が本ダイアログボックス内で決定される検索である(図19Cの上部)。ここでは、一方で1時間のラジオ録音(パリのFMで103.9MHz)が利用可能とされ、他方では244個の録音ベース(音楽やスポット広告など)が利用可能である。検索において、ラジオ録音のベースに83個の共通の抽出部分が検出された。
最後に、図19Dにはデジタル署名ファイルの生成用の画面コピーを示すが、該ファイルは、2時間のラジオ録音(パリでの103.9MHz)に対応するオーディオ信号の、サンプリング周波数22.050kHzでのリアルタイム処理に基づいて形成されたものである。署名の精度(ここでは2、5、又は25Hzのうち、5Hzを選択)が、曲の1秒当たりの、デジタル署名のデータ項目数に対応することを示している。このパラメータにより、特に、共通の抽出部分の検出を開始する瞬間の精度を高めることが可能となる。
図18には、特に、第1ファイル及び第2ファイルの一方を、該第1ファイル及び第2ファイルの他方に対して、遠隔でアップデートするための、本発明の範囲内における別の適用を示す。この目的のために、以下のものを備えたコンピュータ設備が提供される。
・第1ファイルの格納に好適な第1コンピュータエンティティPC1
・第2ファイルの格納に好適な第2コンピュータエンティティPC2
・第1コンピュータエンティティPC1と第2コンピュータエンティティPC2との間の通信手段COM
これらのエンティティ(entity)のうちの少なくとも1つ(PC1及び/又はPC2)は、メモリ(それぞれMEM1及び/又はMEM2)を備えており、これらのメモリは、既述のように、第1ファイルと第2ファイルとの間の、共通の抽出部分を検索するためのコンピュータプログラム製品の格納に好適とされる。
これに関して、本発明はこのような装置をも対象としている。
ここで、コンピュータプログラム製品を格納するエンティティは、第1ファイルと第2ファイルとを比較しつつ、第1ファイル及び第2ファイルの一方についての、第1ファイル及び第2ファイルの他方に対する遠隔アップデートを実行する能力がある。従って、エンティティの1つは、特定の期間(週、月など)をもって、新たなデータのエントリー又はその他の改変によって、コンピュータファイルを変更することがある。もう一方のコンピュータエンティティは、この場合に、第1のエンティティからのファイル出力の格納及び定期的なアップデートを行うことが必要とされ、これらのファイルを受信する。
アップデート対象のファイルを、第1のエンティティから第2のエンティティへと完全に転送するのではなく、第1のエンティティは、本発明の範囲内の方法により、同じファイルの2つのバージョンの間で共通するデータ抽出部分をラベル付けする。この2つのバージョンとは、データの追加又は削除により改変された新しいバージョン、及び、以前に他方のエンティティに転送され、かつ第1のエンティティがローカルにバックアップを保存していた古いバージョンである。この本発明の範囲内での比較により、ファイルの新しいバージョンと古いバージョンと間で差分ファイルを生成することが可能となる。この差分ファイルは、共通のデータ抽出部分の位置及びサイズに関する情報をもっており、新しいバージョンのファイルを、古いバージョンのファイルに基づいて部分的に再構成するために用いられ、そして、差分ファイルは、新しいバージョンのファイルを完全に再構成するために用いる必要のある補完データを含む。ファイルのアップデートについては、差分ファイルを第2のエンティティに対して送信することによって行われ、その次に、古いバージョンのファイルと前記差分ファイルとを組み合わせることによって、新しいバージョンのファイルを再構成するためのローカルな処理を第2のエンティティに適用することで行われる。
本発明の範囲内の方法を適用することによって、前記した差分ファイルの生成に要する処理時間を著しく低減させることができ、転送されるデータのボリューム(延いては転送コストと時間)を低減させて、巨大なコンピュータファイル、特に、アカウント、銀行取引などに関するデータを含むファイルであって僅かな修正しか受けていないファイルについての遠隔アップデートを行うことができる。
コンピュータエンティティは、第1ファイルと第2ファイルとの間の1つ以上の共通の抽出部分を検索するために、第1ファイル及び第2ファイルを(少なくとも瞬間的に)格納するメモリを備えた、如何なるコンピュータ装置(コンピュータ、サーバー、その他)の形態をとってもよい。そして、これらは上述の種類のコンピュータプログラム製品の命令を格納するメモリをも備えている。この点について、本発明はコンピュータ装置をも対象としている。
本発明はまた、コンピュータプログラム製品を対象としており、該製品は、上記のコンピュータ装置などのコンピュータの中央装置のメモリ、又は該中央装置の読取部と協働するものとされたリムーバブル(着脱自在な)メディアに格納されるようになっている。このプログラム製品は、上述した本発明の範囲内での処理ステップについて、その全て又は一部を実行するための命令を含む。
また、本発明は、第1ファイル及び第2ファイルに共通する、1つ以上の抽出部分の検索に用いるためのデータ構造を対象としている。このデータ構造は、第1ファイルを表現するものであり、その前提として、該データ構造は、デジタル署名を形成するために、本発明の範囲内での処理を適用することで得られる。特に、このデータ構造は、上記方法のステップa)及びb)を実行することにより得られ、該データ構造には、第1ファイルのアドレスを識別し、各アドレスに対して、状態「真」(1)、「偽」(0)、及び「不定」(?)のうち、1つのファジー論理状態が割り当てられた一連のアドレスが含まれる。
詳細検索の主要なステップの概要を示す図である。 2つのデータファイルを比較するために、2次元配列のレイアウトを、これらの2つのファイルのデータについてのアドレスの関数として図式的に示す図である。 2つのテキストファイル「Des moutons」及び「Un mouton」の同一性を比較するために、2次元配列を図式的に示す図である。 インデックス比が4に等しい場合において、デジタル署名の形成後に得られる、データのアドレスとデータブロックのアドレスとの間の対応関係を示す図である。 インデックス比が2とされる場合に、2つのテキストファイル「Des moutons」及び「Un mouton」のデジタル署名を比較するために、2次元配列を示す図である。 同一性の詳細比較、つまり、原則的には図4Aの2つのテキストファイル「Des moutons」及び「Un mouton」の粗い検索のステップに続いてなされる詳細比較のために2次元配列を示す図である。 2値論理の「OR」関数の真理値表を示す図である。 2値論理の「AND」関数の真理値表を示す図である。 2ビットB0及びB1についてのファジー状態をコード化するための配列表を示す図である。 (図5Cのファジー状態のコード化規則を適用することによる)ファジー論理の「OR」関数の真理値表を示す図である。 (図5Cのファジー状態のコード化規則を適用することによる)ファジー論理の「AND」関数の真理値表を示す図である。 ファイルデータのアドレスの関数としてファイルデータに関連付けられた2値論理状態の値を示す図である。 ファイルデータのアドレスの関数としてファイルデータに関連付けられた2値論理状態の値、及び同アドレスの関数として、大域的にこれらのデータに関連付けられたファジー論理状態の値(「OR」のファジー論理関数が、ここでは、データの各ブロックにおいて、ブロックの各データ項目に関連付けられた論理状態間に適用される)を示す図である。 テキストファイルの例に基づいて2値状態及びファジー状態を決定するための配列表を示す図である。これらの例において、2値状態が以下の規則に基づいて決定される。・文字のASCIIコードの整数値が厳密に111未満の場合は0。・文字のASCIIコードの整数値が111以上の場合は1。本図では、インデックス比の各値に対して、テキストファイル「La tortue」に関連する各種のファジー状態を表す配列を示す。 テキストファイルの例に基づいて2値状態及びファジー状態を決定するための配列表を示す図である。これらの例において、2値状態が以下の規則に基づいて決定される。・文字のASCIIコードの整数値が厳密に111未満の場合は0。・文字のASCIIコードの整数値が111以上の場合は1。本図では、インデックス比が2の場合に、ファイル「Le lievre」及び「La tortue」のそれぞれに関連付けられたデジタル署名を与える配列を示す。 共通の抽出部分を検索するために、図7Bのデジタル署名を比較する配置を示す図である。 各種の位相を有する余弦関数を、変数t/Tの関数(Tは関数の周期である。)として示す図である。 余弦関数の符号に基づいて得られた2値状態間での、論理の組み合わせについて、セグメント[t/T,t/T+p]に属する全セットの値への適用によって、変数t/Tの値と個別に関連付けられたファジー論理状態の決定を示す図である。 余弦関数の符号に基づいて得られた2値状態間での、論理の組み合わせについて、セグメント[t/T,t/T+p]に属する全セットの値への適用によって、変数t/Tの各値に対して決定されるファジー論理状態の変化を示す図である。 余弦関数に関連付けられた周波数f及びセグメントのサイズpの関数として、ファジー状態「1」を引き出す確率を示す図である。 余弦関数に関連付けられた周波数f及びセグメントのサイズpの関数として、ファジー状態「0」を引き出す確率を示す図である。 余弦関数に関連付けられた周波数f及びセグメントのサイズpの関数として、ファジー状態「?」を引き出す確率を示す図である。 テキストファイル「Le lievre」のサンプルfによる値の補間で得られた関数f(t/Te)の変形例を示す図である(破線の曲線は曲線f(t/Te)の構成に対するサンプルfの寄与を示す)。 インデックス比が3の場合に、周波数fの関数として、ファジー状態「1」(又はファジー状態「0」)を引き出す確率を示す図である。 インデックス比が2の場合に、周波数fの関数として、ファジー状態「1」(又はファジー状態「0」)を引き出す確率を示す図である。 インデックス比がn(n>2)の場合に、周波数fの関数としての、ファジー状態「1」(又はファジー状態「0」)を引き出す確率を示す図である。 デジタル署名sn/kを得るために実行される、各種のサンプリング及びフィルタリングのステップを図式的に示す図である。 f/Feの関数として、Kのいくつかの値について、(中央サンプルを中心とするK個のサンプルの平均値の組み込みをとり入れた)フィルタリング関数Filter(K,f)=Σavg(K,f)の形状を、絶対値で示す図である。 詳細な説明に記載したintervパラメータ値のいくつかについて、インデックス比k=5に調整されたデフォルトのデジタルフィルタの周波数応答を示す図である。 サンプリングされたサンプルfのアドレスと、デジタルフィルタが適用されたサンプルrのアドレスと、(フィルタ処理されたサンプルrのファジー論理における「OR」の)組み合わせによって得られたデジタル署名のブロックのアドレスと、を示す図である。 データファイル内で検索される抽出部分EXTのデータにより、デジタル署名のデータの計算に関連付けられたデータブロックの重複の条件を示す図である。 実行される比較回数を、インデックス比kの関数として示す図であり、サイズが100キロバイトの2つのファイル間における、1000文字の最小サイズの共通する抽出部分の検索例について、粗い検索(Total1)、その後の詳細検索(Total2)、及びこの2つの検索の両方(Total3)の場合を示す図である。 本発明の有利な適用を実施するために、コンピュータファイルを遠隔でアップデートする際に通信するコンピュータエンティティのシステムを示す図である。 本発明の範囲内における、テキストファイルに共通な抽出部分を検索するための、コンピュータプログラムのマン・マシンインターフェースの枠内でのダイアログボックスの画面コピーを示す図である。 検索の進行状況を表示する画面コピーを示す図である。 2つのオーディオファイルに共通な抽出部分の検索用の画面コピーを示す図である。 オーディオ信号のリアルタイム処理に基づいて形成されるデジタル署名ファイルの生成用の画面コピーを示す図である。

Claims (29)

  1. コンピュータが、バイナリデータ形式の第1ファイルと第2ファイルとに共通する、1つ以上の抽出部分を検索するコンテンツ検索方法であって、
    少なくとも第1ファイルの前準備として、
    a)前記第1ファイルを、選択されたサイズをもった一連のデータパケットに区分し、該ファイル内のパケットのアドレスを識別するステップと、
    b)各パケットのアドレスにデジタル署名を関連付けるステップであって、該デジタル署名が、少なくとも3つの状態、つまり、「真」、「偽」、及び「不定」のうちから、1つのファジー論理状態を規定するとともに、該デジタル署名が、前記ファイルから生じるデータの組み合わせ計算の結果として得られるステップと、を有し、
    さらに、前記方法は、共通の抽出部分の検索を続行するとともに、
    c)前記第1ファイルの各パケットアドレスに関連付けられたファジー論理状態を、前記第2ファイルから生じるデータに基づいて決定されたファジー論理状態と比較するステップと、
    d)前記共通の抽出部分の検索から、前記第1ファイル及び第2ファイルの各アドレスのペアであって、それぞれの論理状態が「真」及び「偽」、あるいは「偽」及び「真」とされるアドレスのペアを排除するとともに、前記共通の抽出部分を含む傾向をもつデータパケットを特定するアドレスのペアを保持するステップと、を有することを特徴とする方法。
  2. 前記ステップb)において、データパケットには、
    前記パケットのデータが全て第1の条件を満たす場合に、状態「真」を割り当て、
    前記パケットのデータが全て前記第1の条件とは正反対である第2の条件を満たす場合に、状態「偽」を割り当て、
    前記パケットの特定のデータが前記第1の条件を満たし、前記パケットの他のデータが前記第2の条件を満たす場合に、状態「不定」を割り当てることを特徴とする、請求項1に記載の方法。
  3. 前記ステップb)に先立つ処理がファイルのデータに適用され、該先立つ処理は、
    a1)前記ファイルのデータが、所定のサンプリング周波数(Fe)で得られ、かつ2進法表示コードに従ってコード化された値をもったサンプルの文字列とみなされるステップと、
    a2)前記サンプル(f)に対してデジタルフィルタを適用するステップであって、該フィルタが、前記サンプルのパケットに関連付けられたデジタル署名について「不定」状態を得る確率を最小限にするように構成されたステップと、を有することを特徴とする、請求項1又は2に記載の方法。
  4. 前記デジタルフィルタの適用として、
    前記サンプルデータにスペクトル変換を適用し、
    前記スペクトル変換にローパスフィルタを適用し、
    前記ローパスフィルタの後に、逆スペクトル変換を適用する、ことを特徴とする請求項3に記載の方法。
  5. 前記ローパスフィルタは、
    ほぼ[−Fe/2(k−1),+Fe/2(k−1)]の区間の周波数帯域で動作し、
    ここで、「Fe」は前記サンプリング周波数であり、「k」はパケットに含まれるサンプルの数である、ことを特徴とする請求項4に記載の方法。
  6. 前記デジタルフィルタが、同様の値の所定数の係数を含み、関連付けられた前記ローパスフィルタの周波数応答が、周波数fの関数として、
    sin(PI・f・T)/(PI・f・T)
    の形式で表現され、ここで、「sin()」は正弦関数であり、
    PI=3.1416及び
    T=(K−1)/Fe
    であり、ここで、「K」は係数の所定数であり、「Fe」は前記サンプリング周波数である、ことを特徴とする、請求項4又は5に記載の方法。
  7. 前記デジタルフィルタが、所定数(2K+1)個の係数をもった平均値フィルタであり、2つの連続するフィルタ処理されたサンプル間の差(rn+1−r)が、2つのフィルタ処理されていないサンプルであって係数の前記所定数だけ離れた、第1のランク及び第2のランクをもったサンプル間の差(fn+K+1−fn−K)に比例し、前記フィルタ処理されたサンプルの計算がこの関係を用いて実行され、行うべき計算動作の回数が低減されるようにしたことを特徴とする、請求項3から6のいずれか1項に記載の方法。
  8. 前記フィルタの係数の所定数(2K+1)は、「2k−1」以上であり、ここで、「k」がパケットに含まれるサンプルの数であることを特徴とする、請求項6又は7に記載の方法。
  9. パケットに対して、前記フィルタ処理されたサンプルの全てが選択された基準値(Vref)よりも大きい場合に、該パケットのアドレスに状態「真」を割り当て、
    前記パケットに対して、前記フィルタ処理されたサンプルの全てが選択された基準値(Vref)よりも小さい場合に、該パケットのアドレスに状態「偽」を割り当て、
    前記パケットに対して、前記フィルタ処理されたサンプルのあるものが選択された基準値(Vref)よりも小さく、かつ前記フィルタ処理されたサンプルの他のものが選択された基準値(Vref)よりも大きい場合には、該パケットのアドレスに状態「不定」を割り当てることを特徴とする、請求項2及び請求項3から8のいずれか1項に記載の方法。
  10. 任意の次数nをもつ、フィルタ処理されたサンプルrの全てに対して、前記基準値(Vref)が、任意の同一次数nをもつ、フィルタ処理されていないサンプルfを中心として、選択された数のフィルタ処理されていない連続のサンプルに亘って、フィルタ処理されていないサンプルfの値を平均化することにより計算されることを特徴とする、請求項9に記載の方法。
  11. 前記フィルタ処理されたサンプルの値は、比較のために、ゼロ閾値に対して得られ、前記フィルタ処理されたサンプルr’が、以下の形式の和で表現され、
    Figure 0004885842
    ここで、
    「fn+k」は、前記ステップa1)で得られたフィルタ処理されていないサンプルであり、
    「K」は、前記デジタルフィルタの係数の個数であり、好ましくは偶数に選択され、
    「Kref」は、フィルタ処理されていないサンプルfの周りでの、前記フィルタ処理されていないサンプルの数であり、好ましくは偶数であって、かつ係数の個数Kよりも大きくなるように選択されることを特徴とする、請求項10に記載の方法。
  12. 前記の和は、並行して行われる処理に従って、前記フィルタ処理されていないサンプルfに対して、それぞれ前記係数の個数Kを変化させて複数回数適用されることを特徴とする、請求項11に記載の方法。
  13. 少なくとも前記第1ファイルに関連付けられたファジー状態はそれぞれ、少なくとも2ビットでコード化されることを特徴とする、請求項1から12のいずれか1項に記載の方法。
  14. 係数の最小の個数Kについて決定されたファジー状態が、最小有効ビットに関してコード化され、係数のより大きい個数Kについて決定されたファジー状態が、後続のビットに関してコード化され、選択された総ビット数まで同様にコード化されるようにしたことを特徴とする、請求項12又は請求項13に記載の方法。
  15. フィルタ処理された各サンプルrが、以下の形式の和として表現され、
    Figure 0004885842
    ここで、
    「f(n+i)」は、フィルタ処理されていないサンプルであり、
    「filter」は、デジタルフィルタの係数であり、場合によっては0とされる閾値を取り入れた係数であり、
    そして、パケットに含まれる、フィルタ処理されていないサンプルの数kが選択され、これは、最小で2に等しく、式「(TEF−I−I+1)/2」以下であり、ここで「TEF」は、検索される共通の抽出部分についての所望の最小サイズであることを特徴とする、請求項3から10のいずれか1項に記載の方法。
  16. 検索される共通の抽出部分についての、前記した所望の最小サイズの任意値「TEF」に対して、パケットに含まれるフィルタ処理されていないサンプルの前記した数kとして使用可能な値の範囲が決定され、
    前記の数kとして使用可能な各々の値に対して、デジタル署名の連続するデータの最適サイズ「TES」が決定され、その連続に対してサイズTEFの共通の抽出部分の検出が保証され、
    前記最適サイズ「TES」が、式E[(TEF−I−I+1)/k]−1以下であり、ここで、E(X)はXの整数部を示す、ことを特徴とする請求項15に記載の方法。
  17. 比較される2つのファイルが、英数字文字、特にテキスト及び/又はコンピュータ又は遺伝子コード、を表すデータを含む場合において、
    粗い検索のための、デジタル署名の形成とそれらの比較を含む、第1のグループのステップと、
    前記粗い検索を満足するアドレスの範囲における同一性の比較を含む、第2のグループのステップと、を有し、
    ファイルのデータは、パケット毎の選択される数kのサンプルとされる該サンプルの文字列とみなされ、
    この選択された数kの値は、実行される最小の比較演算を探すことにより、初期に最適化されることを特徴とする。請求項1から16のいずれか1項に記載の方法。
  18. パケット毎のサンプルの前記選択される数kの最適化について、
    実行すべきデジタル署名の比較演算の総数、及び、
    その後に実行すべきデータの同一性を比較する演算の総数が考慮され、
    前記演算の総数は有限の組の数kに対して最小値であることを特徴とする、請求項17に記載の方法。
  19. パケット毎のサンプルの前記選択される数kを最適化するために用いる情報であって、検索される共通の抽出部分の、最小の所望のサイズ(TEF)に関する情報が得られ、そして、パケット毎のサンプルの最適数kが、前記最小サイズ(TEF)に伴って実質的に変化して、検索される共通の抽出部分についての所望の最小サイズが大きいほど、共通の抽出部分の検索にかかる期間が短くなることを特徴とする、請求項17又は18に記載の方法。
  20. デジタル署名の形成及びその比較を含むステップの単一のグループを構成する、共通の抽出部分の検索を有し、パケット毎のデータ項目数は、共通の抽出部分についての誤検出確率の許容される閾値を明示する信頼度指数を初期に定めることで最適化されることを特徴とする、請求項1から16のいずれか1項に記載の方法。
  21. 前記第1ファイルに対して、
    選択されたサンプリング周波数でのサンプリングを行い、
    周波数空間でのローパスフィルタリングに対応するデジタルフィルタリングを行い、
    前記第1ファイルのアドレスのそれぞれに関連付けられた「真」、「偽」又は「不定」状態でのデジタル署名を得るための、フィルタ処理されたサンプルを組み合わせ、
    他方、前記第2ファイルに対して、
    選択されたサンプリング周波数でのサンプリングを行い、
    周波数空間でのローパスフィルタリングに対応するデジタルフィルタリングを行い、
    各パケットのフィルタ処理されたサンプルに関連付けられた論理状態を、各パケットから選択された、単一のフィルタ処理されたサンプルに関連付けられた論理状態に基づいて決定し、
    これらを「真」又は「偽」の論理状態しか含まないデジタル署名を得るように行い、これにより、前記デジタル署名の比較の選択性を向上させることを特徴とする、請求項3から20のいずれか1項に記載の方法。
  22. 前記第1ファイルのアドレスに関連付けられた論理状態が「真」又は「不定」であり、前記第2ファイルのアドレスに関連付けられた論理状態が「真」である場合に、前記アドレスのペアが、共通の抽出部分の検索から保持され、
    前記第1ファイルのアドレスに関連付けられた論理状態が「偽」又は「不定」であり、前記第2ファイルのアドレスに関連付けられた論理状態が「偽」である場合に、前記アドレスのペアが、共通の抽出部分の検索に対して保持され、
    また、アドレスのその他のペアは、検索から排除されるようにした、ことを特徴とする請求項21に記載の方法。
  23. 前記第1及び第2ファイルが、デジタル化された信号のサンプルのファイルであり、データを前処理するステップを有し、ノイズ基準よりも高いレベルをもった信号部分に関連付けられたデータを考慮に入れたことを特徴とする、請求項20に記載の方法。
  24. 前記第1及び第2ファイルが、デジタル化された信号のサンプルのファイルであり、好ましくは前記第1及び第2ファイルのパケットの相対サイズを調整することにより、前記第1及び第2ファイルの検索速度の相違を許容するように、検索結果を一元管理するステップを備えたことを特徴とする、請求項20又は23に記載の方法。
  25. 前記第1及び第2ファイルのうち、少なくとも1つはデータストリームであり、共通の抽出部分の検索方法がリアルタイムで実行されることを特徴とする、請求項1から24のいずれか1項に記載の方法。
  26. コンピュータの中央装置のメモリ、又は該中央装置の読取部と協働するように作られたリムーバブルメディアに格納される、コンピュータプログラムであって、請求項1から25のいずれか1項に記載の方法のステップを、前記コンピュータに実行させるコンピュータプログラム。
  27. 前記第1及び第2ファイルに共通する、1つ以上の抽出部分を検索するために、少なくとも第1及び第2ファイルを格納するメモリを備えたコンピュータ装置であって、
    請求項26に記載のコンピュータプログラムを実行することを特徴とするコンピュータ装置。
  28. 第1ファイルを格納するための第1コンピュータと、
    第2ファイルを格納するための第2コンピュータと、
    前記第1コンピュータと前記第2コンピュータとの間の通信手段と、を備えたシステムであって、
    前記第1コンピュータ及び前記第2コンピュータのうちの1つは、少なくとも、前記第1及び第2ファイルに共通の抽出部分を検索するために、請求項26に記載のコンピュータプログラムを実行することを特徴とするシステム。
  29. 前記第1コンピュータ及び前記第2コンピュータは、前記第1及び第2ファイルの一方のファイルと、他方のファイルとの遠隔アップデートを行うことを特徴とする請求項2に記載のシステム。
JP2007506799A 2004-04-05 2005-03-18 コンテンツ、特に2つのコンピュータファイルに共通する抽出部分の検索方法 Active JP4885842B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0403556A FR2868572B1 (fr) 2004-04-05 2004-04-05 Procede de recherche de contenu, notamment d'extraits communs entre deux fichiers informatiques
FR0403556 2004-04-05
PCT/FR2005/000673 WO2005101292A2 (fr) 2004-04-05 2005-03-18 Procédé de recherche de contenu, notamment d'extraits communs entre deux fichiers informatiques

Publications (2)

Publication Number Publication Date
JP2007531948A JP2007531948A (ja) 2007-11-08
JP4885842B2 true JP4885842B2 (ja) 2012-02-29

Family

ID=34944746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007506799A Active JP4885842B2 (ja) 2004-04-05 2005-03-18 コンテンツ、特に2つのコンピュータファイルに共通する抽出部分の検索方法

Country Status (6)

Country Link
US (1) US7599927B2 (ja)
EP (1) EP1741047B1 (ja)
JP (1) JP4885842B2 (ja)
CA (1) CA2563420C (ja)
FR (1) FR2868572B1 (ja)
WO (1) WO2005101292A2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
US9678967B2 (en) 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
ATE433164T1 (de) 2004-03-12 2009-06-15 Ingenia Technology Ltd Verfahren und vorrichtungen zur erzeugung authentifizierbarer gegenstände und ihrer nachfolgenden überprüfung
JP4607947B2 (ja) * 2004-03-12 2011-01-05 インジェニア・ホールディングス・(ユー・ケイ)・リミテッド 真正性検証の方法、製品および機器
GB2417592B (en) 2004-08-13 2006-07-26 Ingenia Technology Ltd Authenticity verification of articles
GB2444139B (en) * 2004-08-13 2008-11-12 Ingenia Technology Ltd Authenticity verification methods products and apparatuses
EP1908027B1 (en) 2005-07-27 2010-09-29 Ingenia Holdings Limited Verification of authenticity
GB2448245B (en) 2005-12-23 2009-11-04 Ingenia Holdings Optical authentication
US7912894B2 (en) * 2007-05-15 2011-03-22 Adams Phillip M Computerized, copy-detection and discrimination apparatus and method
JP2009122847A (ja) * 2007-11-13 2009-06-04 Ricoh Co Ltd ファイルアクセス装置
US8463871B1 (en) * 2008-05-27 2013-06-11 Parallels IP Holdings GmbH Method and system for data backup with capacity and traffic optimization
KR100880531B1 (ko) * 2008-07-11 2009-01-28 정종선 단일 데이터 검색을 위한 파일 생성 방법 및 단일 데이터파일의 검색방법 그리고 단일 파일 검색을 위한 rat파일이 저장된 기록매체
GB2466311B (en) 2008-12-19 2010-11-03 Ingenia Holdings Self-calibration of a matching algorithm for determining authenticity
GB2466465B (en) 2008-12-19 2011-02-16 Ingenia Holdings Authentication
US20100211561A1 (en) * 2009-02-13 2010-08-19 Microsoft Corporation Providing representative samples within search result sets
GB2476226B (en) 2009-11-10 2012-03-28 Ingenia Holdings Ltd Optimisation
US8577809B2 (en) * 2011-06-30 2013-11-05 Qualcomm Incorporated Method and apparatus for determining and utilizing value of digital assets
EP3416071B1 (en) * 2012-01-24 2021-11-03 Varonis Systems, Inc. A method and apparatus for authentication of file read events
FR2997597B1 (fr) 2012-10-30 2015-12-18 Tdf Procede et module de basculement d'un premier programme vers un deuxieme programme, procede de diffusion, tete de reseau, programme d'ordinateur et medium de stockage correspondants.
US10171422B2 (en) * 2016-04-14 2019-01-01 Owl Cyber Defense Solutions, Llc Dynamically configurable packet filter
FR3101451B1 (fr) 2019-09-26 2021-10-01 Tdf Procédé d’identification de flux audio provenant d’une pluralité de sources, système, récepteur et programme associé au procédé

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222538A (ja) * 1996-12-02 1998-08-21 Omron Corp データ検索方法及び装置
JPH11316765A (ja) * 1998-05-01 1999-11-16 Nippon Steel Corp データベース検索システム及び方法、データベース登録装置、データベース検索装置、記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809139A (en) * 1996-09-13 1998-09-15 Vivo Software, Inc. Watermarking method and apparatus for compressed digital video
US5825892A (en) * 1996-10-28 1998-10-20 International Business Machines Corporation Protecting images with an image watermark
US5935247A (en) * 1997-09-18 1999-08-10 Geneticware Co., Ltd. Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same
WO2000039955A1 (en) * 1998-12-29 2000-07-06 Kent Ridge Digital Labs Digital audio watermarking using content-adaptive, multiple echo hopping
US6738744B2 (en) * 2000-12-08 2004-05-18 Microsoft Corporation Watermark detection via cardinality-scaled correlation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222538A (ja) * 1996-12-02 1998-08-21 Omron Corp データ検索方法及び装置
JPH11316765A (ja) * 1998-05-01 1999-11-16 Nippon Steel Corp データベース検索システム及び方法、データベース登録装置、データベース検索装置、記録媒体

Also Published As

Publication number Publication date
US7599927B2 (en) 2009-10-06
FR2868572B1 (fr) 2006-06-09
FR2868572A1 (fr) 2005-10-07
WO2005101292A3 (fr) 2006-01-26
US20070271253A1 (en) 2007-11-22
JP2007531948A (ja) 2007-11-08
CA2563420A1 (fr) 2005-10-27
EP1741047B1 (fr) 2018-08-22
EP1741047A2 (fr) 2007-01-10
WO2005101292A2 (fr) 2005-10-27
CA2563420C (fr) 2013-05-28

Similar Documents

Publication Publication Date Title
JP4885842B2 (ja) コンテンツ、特に2つのコンピュータファイルに共通する抽出部分の検索方法
CN103440313B (zh) 基于音频指纹特征的音乐检索***
CN107229668B (zh) 一种基于关键词匹配的正文抽取方法
Wilson Data representation for time series data mining: time domain approaches
US8949204B2 (en) Efficient development of a rule-based system using crowd-sourcing
CN107463548B (zh) 短语挖掘方法及装置
US20090319449A1 (en) Providing context for web articles
US8290962B1 (en) Determining the relationship between source code bases
WO2020211393A1 (zh) 判决文书信息检索方法、装置、计算机设备和存储介质
CN100458788C (zh) 一种互联网音频文件的聚类方法、搜索方法及***
CN110767248B (zh) 一种抗变调干扰的音频指纹提取方法
EP1531405B1 (en) Information search apparatus, information search method, and information recording medium on which information search program is recorded
Xiao et al. Fast Hamming Space Search for Audio Fingerprinting Systems.
CN111427875B (zh) 一种数据质量检测的抽样方法、***及存储介质
CN116383644A (zh) 一种数据增强方法、装置、设备及存储介质
Taghva et al. Address extraction using hidden markov models
CN115329173A (zh) 一种基于舆情监控的企业信用确定方法及装置
CN109960934A (zh) 一种基于cnn的恶意请求检测方法
CN115062600A (zh) 一种基于加权抽象语法树的代码抄袭检测方法
CN112416754B (zh) 一种模型评测方法、终端、***及存储介质
CN111899832B (zh) 基于上下文语义分析的医疗主题管理***与方法
JP4125951B2 (ja) テキスト自動分類方法及び装置並びにプログラム及び記録媒体
CN117391071B (zh) 一种新闻话题数据挖掘方法、装置及存储介质
JP6632564B2 (ja) 違法コンテンツ探索装置、違法コンテンツ探索方法、及びプログラム
CA2500264A1 (en) Method and apparatus for automatically determining salient features for object classification

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101116

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110928

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111005

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111107

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: 20111206

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: 20111208

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

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4885842

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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