JP4162711B2 - Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法 - Google Patents

Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法 Download PDF

Info

Publication number
JP4162711B2
JP4162711B2 JP53114696A JP53114696A JP4162711B2 JP 4162711 B2 JP4162711 B2 JP 4162711B2 JP 53114696 A JP53114696 A JP 53114696A JP 53114696 A JP53114696 A JP 53114696A JP 4162711 B2 JP4162711 B2 JP 4162711B2
Authority
JP
Japan
Prior art keywords
page
gram
bank
index
document
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.)
Expired - Fee Related
Application number
JP53114696A
Other languages
English (en)
Other versions
JPH10501912A (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 JPH10501912A publication Critical patent/JPH10501912A/ja
Application granted granted Critical
Publication of JP4162711B2 publication Critical patent/JP4162711B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • G06V30/268Lexical context
    • 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/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/416Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors
    • 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/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

背景
発明の分野
本発明は、光学式スキャナ及び光学式文字認識による文書処理の分野に関し、更に詳細には、後の探索及び検索のために、文書内のワードに索引付けするシステム及び方法に関する。
発明の背景
光学式文字認識(OCR)は、コンピュータ読み取り可能形式で、印刷及び手書き文書を捕捉するために広く用いられ、それにより、文書を、情報検索システムを用いて後で探索及び検索することが可能になる。完全テキスト検索能力を備えた典型的な情報検索システムは、システムへと入力される文書中のあらゆる重要なワードに索引付けし、索引内の各ワードに対して、通常文書、ページ、及びある型式のワードオフセット、又は他の類似型式の連係により、ワードが発生する場所の識別子のリストをもたらす。文書は、入力探索照会に応答して検索されるが、これは、探索照会中のワードと索引中のワードとの正確な一致をとり、ワードに対し索引付けられた文書を検索することによりなされる。ブール探索演算子が通常与えられるので、複雑な探索照会が可能となる。
従って、入力文書の正確な検索は、主に、正確な入力及びOCR解析に頼っている。OCRシステムは、一般に、文字、フォント型式、フォントサイズ、ページ割付、画像分解能、及び画像品質間の空間隔差に非常に敏感である。従って、99%の精度を有する高精度OCRシステムでさえも、100個に1個は文字を誤解釈することになり、その結果、レター置換、レター喪失、又は同様の綴りエラーとなる。結果として、典型的なOCR処理文書はその後、任意の場所に3から8個の、又は更に多くのページ単位の間違った綴りすなわちエラーを有することになる。これには、文書に元々存在する誤植は含まれない。他の問題は、OCRシステムが別個のワードを共に実行するという点にある。
綴りの間違ったワードは適切には索引付けされず、従って、適切な綴りのワードを含む探索照会に応答している間は検索されないことになる。同様に、同時進行ワード列中の個々のワードは、全く索引付けされず、唯一、ワード列全体の一部として索引付けされ、従って、ワード列中の個々のワードのどれもが、かかるワードを特定する探索照会に応答して検索されないことになる。
綴り間違いの問題に対する通常の解決策は、シソーラス又は類似デバイスに頼って、共通の間違った綴りをそれらの正確な綴りの供給源に索引付けするものである。この手法に伴う1つの問題は、それが、共通でない間違った綴りを考慮しない点にある。これらの手法は又、索引のサイズを大幅に増大させ、このことが、情報検索システム設計の別の側面に結びついた。
情報検索システムにおける第2の主要問題は、索引を作成し維持するのに要する性能、及び時間である。通常、反転索引が、二重連結リスト等の単一の一枚岩データ構造、又はツリー構造として維持される。新規の文書が、オンライン・データベースに対して日常的であるシステムに追加される度に、索引全体を調整する必要があり、また入力文書に出現する索引中の各ワード登録が、入力文書に対する等価データで更新される必要がある。これは、オンライン索引付けを大型システムに対して不適切にするため、索引付けはオフラインで実行され、それにより、追加文書を探索できる素早さが制限される。加えて、索引が詳細になるほど、索引付け処理に多くの時間が費やされる。しかし、索引付け時間と探索時間との間には、妥協点が存在する。
最後に、情報システムについての他の関心事は、付随又はクライアントシステムと共に利用するために、索引付き文書を交換する能力である。目下のところ、多数のソフトウェア・アプリケーション、特に、データベース及び情報システムが、クライアント−サーバに基づいている。加えて、絶えず数が増大する携帯型コンピュータがある。これらの要因により、再索引付けに相当のオーバーヘッドなしに探索するために、索引付き文書を、索引付けシステムに効率的に付加し、又は索引付けシステムから外すことを可能にする、索引付けシステムを提供することが望まれる。慣用的な情報検索システムは、携帯型でないモノリシック反転索引を使用する。というのは、この索引は、多数メガバイト、又はギガバイトすらあり、文書のページの数万倍となる。このサイズの索引、すなわちこの複雑な索引は、遠隔のクライアント、携帯型コンピュータ装置、又は着脱可能な記憶媒体に都合良く転送することができない。
従って、OCR解析からであろうとなかろうと、入力文書中のエラーを補償して、高速の索引付け、及び間違った綴り又は他の誤植を含んだ文書の正確な検索を可能にする索引付けシステムを提供することが望まれる。更に望まれるのは、探索時間を大幅に増大することなく敏速な索引付けを考慮し、更に、索引付き文書の携帯性を支援するシステムを提供することである。
発明の摘要
改善型の索引付け及び検索方法及びシステムが、各ワードを多数の「nグラム(gram)」又はワード副単位に分解することにより、現存の情報検索システムの制限を克服する。nグラムとは、n個の文字が、所定のワード、特に「cho」、「thi」、「ment」等のレター又は番号に出現する際の、そのn個の文字の順序付き線形組合せである。一般に、nグラムは、そのnグラム内の文字数であるnグラムパラメータNpを有する。3のnグラムパラメータを備えたnグラムは、便宜的に「トリグラム(trigram)」と呼ばれる。例えば、「houseboat」というワードは、トリグラム「hou」、「ous」、「use」、「seb」、「ebo」、「boa」、「oat」から構成される。レターの全てがワードに存在するとしても、「tbh」も「hbt」も、「houseboat」のトリグラムではないことに留意されたい。というのは、レターがワード内に出現する際のレターの順番及び関係が重要であるためである。
本発明において、文書の各ページの非停止ワードがnグラムへと分解されて、それらが索引付け及び格納される。完全なワードではなくnグラムによりワードを索引付けすることで、間違った綴り、部分ワード、又はワード列内に埋め込まれたワードが、ワード全体間の一致ではなく、照会ワードのnグラムと文書内のnグラムの間の一致を探索することにより識別できる。例えば、「factory」というワードが、文書内で「factori」と綴りが間違っていると仮定する。そのnグラムは、「fac」、「act」、「cto」、「tor」及び「ori」として格納される。これらは、正確な綴りの「factory」という探索照会ワードのnグラム、すなわち「fac」、「act」、「cto」、「tor」、「ory」と比較される。5個のnグラムのうちの4個が一致して、その文書が検索されることになる。同様に、第1のレターが、OCR解析問題に起因して外れるとしても、nグラムはやはり「act」、「cto」、「tor」、「ory」となるであろう。ここで、5個のnグラムのうちの4個がやはり一致するので、そのワードは検索されることになる。明らかに、同時進行ワード列の内側のワードに対するnグラムは、同様に識別可能であり、また別個に一致可能であろう。
従って、文書を探索及び検索するために、探索照会が入力されて、探索照会内のワードが、それらのnグラムへと同様に分解される。照会ワードのnグラムは次に、各種文書のページのワードに対するnグラムと比較される。任意の照会ワードnグラムが、あるページの任意のnグラムと一致する場合、そのページは検索されて、照会ワードnグラムは更に、各ワードnグラムと比較される。これにより、照会ワードとそのページのワードとの間の一致精度の判定が可能になる。そのページを含む文書は次に、検索されてユーザに表示可能となる。また、照会ワードと文書ワード間の一致の判定が終了すると、ブール探索を実行可能である。
以上は、nグラム分解及び索引付け処理の基本概念の説明である。多数の異なるシステムが考案され、nグラムを用いてワード又は文書が解析される。しかし望まれるのは、効率的な索引付け、及び高精度の高速探索をもたらし、更に、索引及び文書の携帯性を与えるシステムにおいて、nグラム分解を使用することである。従って、本発明の別の及び更なる態様は、階層的索引付け方式の使用であり、これは、多数のドロワ内の文書を表現するデータを格納し、各ドロワには、テキスト及びイメージデータのページを有する文書が含まれる。ページは、あるドロワ内の多数のバンクに作表される。Nグラム分解及び索引付けは、文書全体に関してではなく、離散ページに関して実行される。
各ドロワは、多数のバンクを含んでいる。各バンクに対して、1つのバンク索引が存在する。このバンク索引は、関連したバンクにおいて各ページに実際に出現するnグラムを表すデータを格納している。所定サイズの既知で固定数のnグラムが存在するので、各バンクは更に、バンク内に作表された任意のページのnグラムの任意の事例が存在するか否かを、各可能なnグラムに対して示すエントリマップを含んでいる。バンク内の任意のページの事例が存在する各nグラムに関して、次に、エントリマップは、そのnグラムを含むバンク内の各ページを特定的に識別する、更なるページマップにアクセスを行う。この型式の記憶構造は、索引付け及び検索時に、メモリの非常に小型で効率的な利用を考慮するものである。
バンク、及びバンク索引により、敏速な検索システムが提供される。照会が入力されると、照会ワードのnグラムが決定される。照会ワード内の各nグラムは、先ず、エントリマップに対して直ぐ比較されて、バンクの任意のページ内にnグラムの任意の事例が存在するか否かが判定される。エントリマップが、あるページにそのnグラムが含まれると示す場合、そのページマップが走査されて、特にどのページに更なる処理が必要であるかを決定する。この初期の前処理は、所与の参照ワードを更に探索する必要のあるページのみを非常に敏速に識別し、照会ワードのnグラムを含んでいないページを検討から削除する。
次に、第2の処理段が、照会の部分を含む、バンク内のページのみをアクセスすることになる。かかる各ページに関して、そのページのnグラムが、これはバンク索引に格納されているが、次に照会ワードnグラムと比較される。これらが、十分な割合で照会ワードのnグラムと一致する場合、そのページに関連した文書が、検索のために指示される。文書と索引のこの編成により、文書の携帯性がもたらされる。というのは、ドロワ、文書、バンク、及びバンク索引を含むドロワ全体が、文書が索引付けられたコンピュータ・システムから他のコンピュータ・システムへと転送されて、そこで、ドロワ内の文書を再索引付けする必要なく探索できるためである。
【図面の簡単な説明】
図1は、nグラム分解を用いて、文書を索引付け及び検索するためのシステムのブロック図である。
図2aは、このシステムの記憶要素の物体モデルであり、ドロワ、フォルダ、文書、バンク、バンクリスト、バンク索引、解放リスト、及び文書リストの関係を示す。
図2bは、これら記憶要素のユーザ側から見た図である。
図3は、文書リストの構造図である。
図4は、バンクの構造図である。
図5は、バンク索引の構造図である。
図6は、バンクとバンク索引の間の関係の一例を示す図である。
図7は、文書を索引付け及び検索する方法全般の流れ図である。
図8は、文書に対する索引付け処理の流れ図である。
図9は、文書内のあるページを索引付けする行程の流れ図である。
図10は、バンク索引に記憶するために、あるページ内のワードキーを作成する行程の流れ図である。
図11は、探索行程の流れ図である。
図12は、あるバンクに関する前処理演算の流れ図である。
図13は、前処理の後に続く、あるバンクの選択ページを探索する行程の流れ図である。
図14は、照会ワードのnグラムをあるページのワードのnグラムと突合せる行程の流れ図である。
発明の詳細な説明
システムアーキテクチャー
図1を参照すると、そこには、本発明の改善型文書索引付け及び検索システムを用いるためのシステムが示されている。システム100は、コンピュータ101を備え、これは、走査済み文書の長期保存用の二次記憶装置107と、コマンド及びデータを受信及び出力するための入力装置109及び出力装置116と、プロセッサ111による実行用の各種符号モジュールを格納するためのアドレス指定可能メモリ113を有する。
入力装置109にはスキャナ115が含まれ、これは、入力文書を走査して、入力文書に対してグレイスケール、2階調、又はカラービットマップファイルのいずれかを生成することが可能である。スキャナ115は、少なくとも200dpiの分解能を有することが好ましい。入力装置109は更に、コマンド及びデータを入力するためのキーボード149を備える。出力装置116は、走査済み文書、又はシステム100内に常駐する他の文書を含めた文書を印刷するためのプリンタ117を備える。出力装置116は又、探索結果及び他の情報と共に、ユーザに対してシステム用のユーザインターフェースを表示するためのディスプレイ151を備える。
アドレス指定可能メモリ113には、多数の符号モジュールが含まれ、これらは共に、本発明のシステム100を管理する実行可能アプリケーションを構成する。更に詳細には、アドレス指定可能メモリ113には、アプリケーション監視119と、索引監視121と、探索監視123と、文書参照モジュール125と、ページ索引付けモジュール127と、探索実行モジュール129と、探索リストモジュール131と、光学式文字認識モジュール133とが含まれる。これら各種モジュールの動作を以下で説明するが、その前に携帯型文書索引付けを支援する記憶要素について説明する。索引/探索バッファ143を用いて、索引付け及び探索段の間に生成されたデータが一時的に格納される。ページバッファ145を用いて、探索時に文書からのデータが一時的に格納される。停止ワードファイル135が、索引付けから除外されるワードのリストを維持する。停止ワードファイル135は、システム100に設けられて、ユーザにより修正される。
システム100は、アプリケーション監視119を通じてアクセスされ、これは、ディスプレイ151上に適切なユーザインターフェースを提供し、それによりユーザが、スキャナ151を通じてシステム100内に文書を、又は現存のテキストファイル、イメージファイル、グラフィックファイルその他といった他のソースを入力したり、ワード、汎用文字、及びブール又はSQL演算子の組合せを含む探索照会を入力したり、またディスプレイ151又はプリンタ117等の出力装置上で、探索照会の結果を見直すことが可能になる。
アドレス指定可能メモリ113には更に、本発明のnグラム分解索引付けを実施するのに有用な記憶構造のデータベース141が含まれる。ここで図2aを参照すると、そこには、アドレス指定可能メモリ113におけるこれら記憶構造の物体モデルが示されている。図2bは、これらの記憶構造をユーザ側から見た図である。
アドレス指定可能メモリ113は、1つ以上のドロワ201を含む。各ドロワ202は、好適には、ドロワ名と論理名、及び着脱可能媒体か、又は固定媒体かの媒体型式を有する。この最後の属性により、ドロワ201を、携帯型記憶媒体上で各種のコンピュータ装置に転送することが可能になる。
各ドロワ201は更に、0個以上のフォルダ203の階層リストを含む。各フォルダ203は、1つのフォルダ名を有し、0個以上の文書205又は他のフォルダ203を含む。
各文書205は、ユーザによる認識のための文書名、及びシステム100により使用される固有の文書番号を有するのが好ましい。1つの書類205は、少なくとも1つのテキストファイル207から構成される。更に、1つの書類205には、イメージファイル209、アイコンファイル213、及び書類ファイル構造(DFS)ファイル211が含まれる。テキストファイル207は、ASCII又は類似のフォーマットで書類のテキストデータを収納する。テキストデータは、一般に、イメージデータに関するOCR処理から生成されることになる。テキストデータは、ユーザ入力からでも直接作成できる。テキストデータは、例えば、文書205がビットマップ化又はベクトル・グラフィック・ファイルである場合、及びユーザが、索引付けのために、ファイルの注釈又は記述を含めたい場合にも入力することができる。テキストファイル207は、1つ以上のページ215にそのデータを収納する。各ページは、そのページ番号、文書名、フォルダ名、及びドロワ名によって識別される。
イメージファイル209は、対応する入力文書の走査及び認識、又は他の類似の処理から生じる、2階調、グレイスケール、又はカラーのビットマップである。イメージファイル209中のデータは、同様にページ205に格納される。
DFSファイル211は、テキストファイルデータをイメージファイルデータにマッピングする。DFSファイル211は、テキストファイル207におけるテキストのライン毎に、イメージページ215へのマッピングと、テキストのラインがイメージページ215内に出現する場所での画素座標(好適には、左上及び右下の角)により規定される、境界を示す矩形とを含む。このマッピングにより、ユーザが、あるページの画像を見る場合に、そのページのテキストデータをアクセス可能となる。DFSファイル211は又、好適には、文書205内のテキスト及びイメージページ数に対して、ページカウント値を維持する。DFSファイル211は更に、文書205内の各ページについての参照データを維持し、これには、ページ番号と、文書番号及び文書名と、完全経路名と、アイコンファイル名とが含まれる。
アイコンファイル213は、文書205の各ページのごく小さなビットマップ化イメージを収納する。ごく小さなイメージは、探索及び検索動作時に、又は文書205がユーザによりアクセスされている間、ユーザに対して表示される。好適な実施例において、文書だけが、走査その他なしに生成されたテキストデータを含む場合には、付随のイメージファイル209、又はアイコンファイル213は存在しない。
各ドロワ201は、文書リスト225と関連づけられる。文書リストは、ドロワ201内の全ての文書205の索引である。図3は、文書リスト225の構造を示す。文書リスト225は、可変数の、多くても最大限度Dmaxまでのエントリ311を格納する。好適な実施例の場合、Dmaxは、ドロワ201内の文書の全てにおけるページ全体の数により制限され、各ドロワ201は、最大で1,044,480ページを扱うことが可能である。各エントリ311は、ドロワ201内の各文書205の完全経路名を含む。各文書205は、文書リスト225におけるそのオフセットの結果として、文書リスト225内に固有の文書番号301を有する。状態値303が、好適には、各エントリ311に対して、どれが文書を格納するのに利用可能であるかを指示するために維持される。文書リスト225は、文書エントリ311の数307のカウント値、及び未使用エントリの数309のカウント値を維持するが、これらは、現存の文書が外された場合に作成される。
システム100は更に、少なくとも1つのバンク217を含む。図4は、バンク217の構造図である。各バンク217は、システム100に各種文書からのページのリストを含み、これは、最大で所定数Pmaxのエントリ413である。好適な実施例の場合、バンク217は最大で255個のエントリ又はページ参照を含む。他の実施例の場合、Pmaxが更に大きいと、結果として更に多くのページの索引付けとなり、Pmaxが更に小さいと、ページがほとんど索引付けできなくなるが、記憶容量の必要性は少なくなる。文書ページは、ドロワ201用の文書リスト225からの文書番号301で作表され、次いで、文書205内のページ番号403により作表される。各エントリ413に対して、そのエントリ内でいずれのページを参照するかを示す状態値405が維持されるのが好ましい。各エントリ413は更に、関連したバンクオフセット411を有し、これは、バンク217内のエントリ413のオフセットである。すなわち、バンクオフセット411は、実際にはエントリ413に格納されていない。各バンク217は、好適には、バンク217において新しいページが参照され、他のページは参照されない際に更新される、未使用エントリの数407を維持する。好適な実施例の場合、ドロワ201は、4096個のバンク217を含み、結果として、各ドロワ201に対する索引付きデータの最大で1,044,480ページとなる。各バンク217は、それをドロワ201及びバンクリスト219内で固有に識別する、バンク番号409を有する。すなわち、バンク番号409は、それ自体のバンク217に格納されるか、又はバンク217のファイル名により識別可能である。共に、バンク番号409とバンクオフセット411は、ページに対するバンク参照を形成する。
各バンク217は、バンク索引223及び解放リスト221と関連づけられる。各バンク索引223は、バンク217内の各ページエントリ413に見出されるnグラムを識別する。図5を参照すると、そこには、バンク索引223の好適な構造が示されている。好適な実施例の場合、バンク索引223は、全nグラムのリストをデータとして直接には含まない。むしろ、各nグラムには、固有の番号が割り当てられ、これを用いて、固定数のnグラム・エントリマップ505が索引付けられる。
最初に、索引付けのために、システム100により索引付け可能な文字組、及び文字範囲が選択される。索引付け可能な文字の総数をCmaxと呼ぶ。そうすると、nグラムの総数Lは、
L=[CmaxNp
となる。
好適な実施例の場合、索引付け可能な文字は、「A」−「Z」及び「0」−「9」である。全ての句読点及び特殊文字が、これらは通常、データを探索するのに使用されないが、「〜」等の単一文字にマッピングされるのが好ましい。これにより、「AT&T」といったワードが「AT〜T」と、また「3.1415926」といった数字が「3〜1415926」と索引付けることが可能になる。更に、1つのワードの最後の幾つかの文字が、それら自体によるnグラムにとって不十分な数である場合、「〜」を用いてnグラムが完成される。例えば、「at」のトリグラムは「at〜」となる。国際文字は、対応する英語の等価文字にマッピングされる。小文字はそれらの大文字値に変換される。これにより結果として、nグラム内の各位置に対して37個の異なる文字での好適な実施例となる。そうすると、好適な実施例の場合、50,563(373)個のトリグラムが存在する。37個の文字は、任意の有用な仕方で、例えばそれらのASCII値又は他の手段により順序付けられる。次に、可能なnグラムが作表されて、nグラム番号で直列に番号付けられる。例えば、最初に数表示を、次に「〜」を想定すると、その順番付けは、「000」、「001」、…、「00A」、…、「00Z」、「00〜」、…「〜〜〜」となる。好適な実施例の場合、nグラム番号は以下のように計算される。
nグラム番号=(第1のnグラムレター番号)*max_charN-1
(第2のnグラムレター番号)*max_charN-2
(第3のnグラムレター番号)*max_charN-3

(第N−1のnグラムレター番号)*max_char+
(第Nのnグラムレター番号)*max_charN-1
ここで、nグラムレター番号は、レターがnグラムに出現する際の順序付き数であり、NはnグラムパラメータNpであり、max_charはCmaxに等しい。好適な実施例の場合、Cmaxは37であり、nグラムパラメータNpは3であるので、上記式は以下のように簡約化される。
トリグラム番号=(第1のトリグラムレター番号)*372
(第2のトリグラムレター番号)*37+
(第3のトリグラムレター番号)
代替実施例の場合、参照テーブル227がnグラムを格納し、そのテーブル内の所与のnグラムのオフセットは、そのnグラム番号である。
各バンク索引223には、使用されているnグラムの総数Lに等しい数である、nグラム・エントリマップ505の固定数が含まれる。各nグラム・エントリマップ505は、索引ページマップ507に対する索引値を維持するが、それは索引ページマップ507が、nグラムエントリ505と関連したnグラムに対して割り当て済みの場合である。各索引値単位は、索引ページマップ507内の要素の総数を表す。索引オフセット501が、第1の索引ページマップ507のアドレスを格納する。nグラム・エントリマップ505内の索引値は、索引オフセット501に加えられて、nグラム・エントリマップ505と関連した索引ページマップ507となる。多数のnグラムは、バンク217内のページエントリ413のいずれにも出現しないので、nグラム・エントリマップ505により、システム100が、どのnグラムに関して、ページに実際の事例が存在するかを敏速に判定することが可能となり、従って、実際の索引ページマップ507を探索時に更に解析することが可能となる。
索引値が非ゼロである各nグラム・エントリマップ505に対して、1つの索引ページマップ507が存在する。各索引ページマップ507は、バンク217内のどのページ403がnグラムを含むかを示すデータを収納する。索引ページマップ507は、バンク217内の各可能なページエントリ413に対して、1ビットを収納する。好適な実施例の場合、各マップ507内のビット数は、バンク217内のエントリの最大数Pmaxに対応する。索引ページマップ507内のビット位置は、バンク217内のページエントリ413のバンクオフセット411に対応する。そのビットは、ページエントリ413が、索引ページマップ507と関連したnグラムを含む場合にセットされ、含まない場合にはセットされない。バンク217内に255個のページエントリを備えた好適な実施例の場合、各索引ページマップ507は、32バイト(256ビット)を収納して、nグラムをページエントリ413にマッピングする。他の実施例の場合、他の形式のマッピングが用いられるが、例えばポインタのリスト等がある。索引ページマップ507の更新について、以下で更に説明する。
図6は、バンク217とバンク索引223の間の索引付け関係の一例である。図6には、各種のページエントリ413a−f、エントリ総数Pbを含む1つのバンク217の一部が示されている。エントリの幾つかは、それらの状態値405において「使用中」と表記され、かかる各エントリ413には、文書番号303が含まれ、これは、それが文書リスト225(不図示)内のどの文書に属するかを示し、また、文書内のどのページかを示すページ番号403が含まれる。ここで留意されたいのは、エントリ413は、多数の異なる文書から到来し、エントリ413b、c等の同一文書からのエントリでさえも、文書の唯一選択されたページである。バンクオフセット411は、各エントリ413に対して指示される。
バンク索引223には、nグラム・エントリマップ505a−fの完全な作表の一部が含まれる。これらのnグラム・エントリマップ505a−fの各々には、もしあれば、どの索引ページマップ507a−fが、nグラム・エントリマップと関連したnグラムに対して割り当てられるかを示す、索引値601が含まれる。従って、第1の(図で見られるように、バンク索引223内のn番目とすることもできる)nグラム・エントリマップ505aは、ゼロに等しい索引値601を有し、これは、そのマップと関連したnグラムが、バンク217内のどのページにも出現しないことを示し、従って、nグラム・エントリマップ505に対して割り当てられる索引ページマップ507はない。第3のnグラム・エントリマップ505cについても同様である。
しかし、第2のnグラム・エントリマップ505bは、2に等しい索引値を有し、第2の索引ページマップ507bに対して索引付ける。従って、それがどんなnグラムであっても、nグラム・エントリマップ505bと関連したnグラムの一事例を有するnグラムバンク217には、少なくとも1つのページが存在する。同様に、第4のnグラム・エントリマップ505dは、第4の索引ページマップ507dに索引付けし、nグラム・エントリマップ505eは、第3の索引ページマップ507cに索引付けし、またnグラム・エントリマップ505fは、第1の索引ページマップ507aに索引付けする。
各索引ページマップ507には、バンク217内のエントリ413にマッピングされる、1組のビットが含まれる。ある索引ページマップ507内の第mビットの値は、その索引ページマップ507に対するnグラム・エントリマップ505と関連したnグラムが、第mエントリ413により表されるページに出現するか否かを示す。各索引エントリマップ507内の第1ビットは、第1エントリ413aにマッピングされ、第2ビットは第2エントリ413bに、等となる。
例えば、枠603には、バンク217内の第4エントリ413dに対するマッピングが示されている。第1及び第2の索引ページマップ505a、bの両方において、エントリ413dに対応するビットはセットされない。これは、nグラム・エントリマップ505b及び505fと関連したnグラムが、文書番号711のページ87には出現しないことを示す。しかし、索引ページマップ507c、d内のビットはセットされるので、nグラム・エントリマップ505d、eと関連したnグラムはそのページに出現する。同様に、索引ページマップ507bの第Pmaxビットは、このマップと関連したnグラムが、文書番号818のページ93に出現することを示す。
再度図5を参照すると、バンク索引223は更に、バンク217内のページエントリ413により識別されるページに出現するnグラムを表すデータを格納する。これは、実際の探索が実行されて、入力照会に一致する文書を突き止める場所である、バンク索引223の領域である。このデータは、ページキー509の可変長テーブル517に格納されるが、各ページエントリ413に対して1つである。ページキー509は、以下の形式の可変長フィールドである。
[ki、nグラムi1、nグラムi2、…、nグラムik
[k(i+1)、nグラム(i+1)1、nグラム(i+1)2、…、
nグラム(i+1)k]…
ここで、kiはページの第iワード内のnグラムの数であり、nグラムi(1...k)は第iワード内のnグラム番号のリストである。値[k]の各グループ[nグラム1、nグラム2、…、nグラムk]は「ワードキー」と呼ばれる。あるページの全てのワードに対するワードキーの集合がページキー509である。ここで留意されたいのは、好適な実施例において、nグラム自体が格納されるのではなく、各nグラムを固有に識別するnグラム番号がページキー509に格納される、ということである。nグラム自体ではなくnグラム番号を用いることにより、結果としてメモリの節約になる。各nグラムは各文字に対して1バイトを要するので、トリグラムは3バイトである。しかし、nグラム番号は以下のビットしか必要としない。
log2([CmaxNp
従って、トリグラムは、15.6ビット、又は2バイトしか必要としない。
1ページに対して32kの最大テキストデータサイズを想定すると、1つのページキー509の最大サイズは、好適な実施例の場合、128kしかない。実際には、各ページの平均サイズは約2kであるので、各ページキー509は約8kである。
個々のページキー509にアクセスするために、固定サイズのページオフセットテーブル515が設けられている。それ内の各エントリには、各ページキー509に対して、1つのページキーオフセット511及びページキーサイズ513が含まれる。好適な実施例の場合、バンク217内のページエントリ413の各々に対して、1つのエントリが存在する。ページキーオフセット511とは、テーブルエントリに対応する可変長ページキー509の開始に対するオフセットのことである。ページキーサイズ513とは、nグラム及びk値に対する全エントリを含む、対応するページキー509内のバイトの総数のことである。ページキーサイズ513を維持することにより、システム100が、システムから索引付きページを削除すること、及び新規ページを追加及び索引付けするのに利用可能な領域に関する情報を依然として有することが可能になり、それによって記憶空間の浪費が回避される。
解放リスト221は、各バンク217と関連づけられて、バンク217内のどのページエントリ413が、索引付けに利用可能であるかに関する情報、これには以前に索引付けられたページエントリ413が削除された場所も含まれるが、その情報を格納する。あるページエントリ413があるバンク217から削除される場合、そのバンク索引223内のページキーオフセット511及びページキーサイズ513が、解放リスト221に格納され、次いでページキーオフセット511は、バンク索引223でゼロにセットされる。
バンクリスト219が、ドロワ201内のバンク217の全てに対するデータを収納する。バンクリスト219は、各バンク217に対して、バンク217内の解放エントリ413の数のカウント値を維持する。これらの値は、新規ページがバンク217に追加される際、又は古いページが削除される際に更新される。好適な実施例の場合、バンクリスト219には、バンク番号に従って、最大で4096個のバンク217に対する解放エントリのカウント値が含まれる。表1はバンクリスト219の構造を示す。
Figure 0004162711
再度DFSファイル211を参照すると、好適な実施例の場合、それには、その関連した文書205の各ページ215に対して、バンクリスト219で順序付けられる通りのページ215を含むバンク217のバンク番号、バンク217内のバンクオフセット411、文書のページ番号403、及び文書リスト225内の文書番号301が収納される。
システム動作
I.全体の処理流れ
システム100は、情報記憶及び検索システムにおいて、文書を索引付け及び探索する改善された方法を提供する。その方法には、2つの基本的な行程が含まれ、すなわち文書を索引付けする行程と、探索照会を用いて文書を探索する行程である。
図7を参照すると、そこには、本発明の方法全体の流れ図が示されている。1つの文書、又は1組の文書がシステム100へと入力される(ステップ701)。印刷文書又は画像に対して、文書が、スキャナにより慣用的な仕方で走査され、次いでOCRモジュール133により処理されて、テキストファイル207のテキストデータが生成される。あるいは、イメージファイル209を有する文書が、ファクシミリ画像等の他のシステムから読み込まれて、OCRモジュール133により処理される。代替として、文書は、テキストファイル207内のテキストデータとして直接入力されるか、又はユーザが、テキストファイル207に追加のテキスト情報を与えた、イメージとすることもできる。文書がテキストデータとして直接受信される場合、テキストファイル207とイメージファイル209間のDFSファイル211でマッピングは行われない。代替として、テキストデータが直接受信される場合、それは、慣用的な画像処理技法を用いてイメージファイルへと描写され、次いで、DFSファイル211が、テキスト/イメージ・マッピング情報を含むように更新される。好適には、ユーザは、アプリケーション監視119により促されて、入力文書を格納するドロワ201及びフォルダ203を選択/作成する。
入力文書のテキストデータが得られた後、入力文書は索引付けられる(ステップ703)。索引付けは、索引監視121により管理される。好適には、索引付けは、入力ステップ701の間、文書が走査されている場合に1ページ毎に行われる。索引付けは又、1文書毎に、又は所望ならばバッチ或いは据置きモードでも行われるが、これは、大量の文書を都合良く扱うためである。索引付けは、文書の各ページ内のnグラムの全てを識別し、ユーザ選択のドロワ及びフォルダの1つ以上のバンク217内で利用可能な空間を突き止め、それに従って、バンク217、バンク索引223、バンクリスト219、及び解放リスト221を更新する。
索引付けが終了すると、ユーザは、索引付き文書205のドロワ201全体を他のコンピュータに、直接ネットワーク接続を経由して、又は携帯型記憶媒体を介して転送する(ステップ705)ことを決めることができる。これにより、他のコンピュータが、文書を再索引付けする必要なく、ドロワ201内の文書205に関して探索可能となる。代替として、ユーザは、1つ以上の文書205又はフォルダを転送することを決めることもできる。再索引付けは、文書がドロワ201間で転送される場合にのみ必要である。
システム100は、任意の索引付きドロワ201に関して探索することが可能である。アプリケーション監視119が、ユーザに、探索する(ステップ709)ためのドロワ201、フォルダ203、又は文書201を選択するよう促す。ユーザは、所望のワード及びブール演算子を特定する探索照会を入力する(ステップ707)。ユーザは又、一致パラメータEも特定し、これは、探索照会と任意の文書に存在するワードとの間の精度の割合を記述するものである。好適な実施例の場合、Eは有用な範囲、例えば20%−100%に制限される。
探索照会が入力されると、探索監視123が、探索行程709を管理する。要約すれば、探索には、照会ワードをnグラムに変換し、次いで、これらの照会ワードnグラムをバンク索引内のnグラムと比較することが伴う。次に、nグラムの一致が解析され、一致パラメータで重み付けされて、一致の度合いが決定される。探索照会と一致パラメータを満足する一致を有する文書が検索されて、ユーザに対して表示される(ステップ711)。ユーザは、更なる探索を行い、結果を格納し、文書をプリントアウトし、文書の部分を内部のユーザ用の他のアプリケーション・ソフトウェアへとコピーし、又は探索を終了することができる。
II.文書索引付け
次に図8を参照すると、そこには、文書をシステム100へと索引付けする行程703の流れ図が示されており、これは索引監視121により管理される。索引監視121は、一連の演算を実行して、ユーザにより入力された文書205の各ページ215内の各nグラムを索引付けし、また適切なバンク217、バンクリスト219、解放リスト221、及びバンク索引223を更新する。
索引監視121は、メモリを索引付け行程に対して割り当てる(ステップ801)。これには、バッファ143、145をクリアして、多数のページの索引付けを可能にするのに十分である、他のどんな追加のメモリ資源も外してセットすることが伴う。
索引監視121は、文書参照モジュール125を呼び、索引付けしようとする文書205に対する文書番号301を得る。索引監視121は、入力ステップ701の間にユーザにより与えられるような、特定の文書205、及び文書205の文書名を含むドロワ201の根ノードを、文書参照モジュール125に与える。文書参照モジュール125は、ドロワ201に対して文書リストを開き、未使用エントリ数309から、エントリ311の現存リスト内で新規文書に対して利用可能な空間があるか否かを判定する。空間がない場合、新規のエントリ311が、文書リスト225内のエントリのリストの終わりに作成される。状態値303がセットされて、文書の完全経路名305が格納される。リスト内に未使用エントリ311がある場合、文書参照モジュール125は、リストを走査して、未セットの状態値で第1エントリ311を突き止める。状態値303がセットされて、完全経路名が格納される。いずれの場合でも、文書参照モジュール125は、文書リスト225内の更新/新規エントリ311のオフセットである、文書番号301を戻すことになる。
次に、索引監視121は、ページ索引付けモジュール127を呼び出して、文書205の各ページを索引付けし(ステップ805)、結果のデータをバンク索引223に格納する。ページ索引付けモジュール127は、文書の各ページに関してnグラム番号の実際の作成を行う。図9を参照すると、そこには、あるページを索引付けする行程の流れ図が示されている。この工程は、文書の各ページに対して繰り返される。
ページ索引付けモジュールは、先ず、あるバンク217内のページに対してバンクオフセット411を得る。これは、索引付けしようとするページを、ユーザ選択のドロワ201内の特定のバンク217内の位置と関連づける。それにより更に、文書の各ページを異なるバンク217に格納することが可能になる。これは以下のように行われる。
ページ索引付けモジュール127は、バンクリスト219を読み取り(ステップ901)、内部に作表された完全でない第1のバンク217を識別するが、これは、非ゼロ値に達するまで、各バンク217に対する解放エントリのカウント値を読み取ることによりなされる(ステップ903)。ページ索引付けモジュール127は、その解放エントリのカウント値をディクリメントして(ステップ905)、関連したバンク217を開く(ステップ907)。
ページ索引付けモジュール127は、バンク217内の未使用エントリ数407をチェックする(ステップ909)。やはり、この値は、以前にはバンク217において索引付け及び含まれていたページが、どこで除去されたかを示す。この値がゼロでない場合、ページ索引付けモジュール127は、バンク217内のエントリを走査して(ステップ911)、空エントリを示す状態値405で第1エントリを識別する。未使用エントリ数407がゼロである場合、ページ索引付けモジュール127は、バンク217内のエントリ数401を用いて最後のエントリに対してオフセットを持つように、バンク217の終わりに新規のエントリを作成する。いずれの場合でも、ページ索引付けモジュール127は、現在のエントリを示す状態値405をセットして、そのエントリの文書リスト225から文書番号301を、また文書のページ番号を格納する。次に、それはバンク217内のエントリ数401をインクリメントして(ステップ917)、バンク217のバンク番号と、バンク217内のバンクオフセット411を得る。
次に、ページ索引付けモジュール127は、停止ワードファイル135をロードする(ステップ919)が、これは、停止ワードが、そのページに対して生成されたワードキーに含まれないようにするためである。ページ索引付けモジュール127は、次いで、ページに対してワードキーを作成する(ステップ921)。ワードキーは、そのページを含むバンク217と関連したバンク索引223内のページに対して、ページキー509に格納されることになる。ページキー509用のワードキーは、先ず全てが作成され、次に続いて、ページキー509に格納される。というのは、ページキーサイズ513は、実際の記憶に先立って、ページキー509に対して決定されるためである。ワードキーは以下のように作成される。
図10を参照すると、そこには、所与のページのページキー509を構成するワードキーを作成する行程の流れ図が示されている。ページキーサイズ513がゼロに初期化されて(ステップ1001)、バッファ143、145がクリアされる。索引バッファ143を用いて、ページキー509が、それが作成される際に格納されることになる。ページバッファ145を用いて、ページのテキストデータが保持される。索引付けしようとするページが、ページバッファ145へとロードされる(ステップ1002)。ページ索引付けモジュール127は、ページバッファ145に格納される際に、ページのワードの全てにわたってループを実行する(ステップ1003)。ページ索引付けモジュール127は、現在のワードがファイル終端であるか否かを判定する(ステップ1005)。現在のワードがファイル終端でない場合、そのワードが停止ワードファイル135内の停止ワードであるか否かがチェックされる(ステップ1007)。これは、ハッシュ法、又は他の慣用的な技法により行うことができる。現在のワードが停止ワードである場合、ループ(ステップ1003)は継続する。
現在のワードが停止ワードでない場合、ページ索引付けモジュール127は、そのワードの長さをチェックして(ステップ1009)、その長さがnグラム長に等しくなるまで、ワードに「〜」を付加する。例えば、好適な実施例の場合、2レターのワードが、1つの「〜」で拡張されて、それらを3つのレターにする。更に、1レターのワードは拡張されない方が好ましい。というのは、それらは、探索用の識別可能なデータに殆ど寄与しないためである。
次に、ページ索引付けモジュール127は、ワード用のワードキーを作成する。これには、ワードに対してnグラム数kを決定するステップ(ステップ1011)が含まれる。ワードキーに対するnグラム数kは2のワード長である。
次に、ワードはそのnグラムに分解されて、各グラムがそのワードから読まれるが、これは第1文字で始まり、nグラムを作成するのに必要な文字数が読まれる。各nグラムに対して、nグラム番号が決定される(ステップ1013)。これは、上記のように、nグラム参照テーブル227内のnグラム番号を参照するか、又は直接、nグラム番号を計算することにより実行される。
いずれの場合でも、ステップ1011及び1013の結果は、そのワードに対するワードキーとなり、これは、番号k、及びワード内のnグラムの各々に対する個々のnグラム番号からなる。ワードキーはバッファ143に付け加えられる。ページキーサイズ513が更新されて(ステップ1014)、ワードキーのサイズが累算される。新規のページキーサイズ513は以下のようになる。
ページキーサイズ=ページキーサイズ+(1+k*(nグラム番号)のサイズ)
機能サイズは、nグラム番号を格納するのに用いられるバイト数となる。トリグラムの場合、これは2であるが、より大きなnグラムの場合には更に大きくなる。特別な要素がkを格納するために付加される。
そのようにして生成されワードキーに含まれる各nグラム番号に対して、nグラム・エントリマップ505、及び索引ページマップ507を更新する必要がある。nグラム番号は、nグラム・エントリマップ505への索引として用いられる。nグラム・エントリマップ505内の索引値が得られて(ステップ1015)、チェックされる(ステップ1017)。索引値がゼロである場合、それが意味するのは、nグラムが、バンク217内に以前の参照を有しておらず、新規の索引ページマップを作成すべきである、ということである。索引値がゼロでない場合、それが意味するのは、nグラムが、バンク217のあるページで以前に見出されて、そのnグラムに対する索引ページマップ507が既に存在している、ということである。次に、nグラム・エントリマップ505からの索引値1が、索引オフセット501に付加されて、正しい索引ページマップ507となる。従って、nグラム・エントリマップ505の索引値がゼロである場合、別の索引ページマップ507が、索引ページマップ507の現在の組の終わりに付加される(ステップ1019)。nグラム番号によって参照されたnグラム・エントリマップ505の索引値が、新規の索引ページマップ507の位置で更新される(ステップ1021)ため、nグラムに対する別の参照が作成される(索引付け時に)か、又は識別される(探索時に)場合に、nグラム・エントリマップ505を用いて、新規の索引ページマップ507を直接アクセスすることが可能になる。従って、あるバンク217に含めるべき第1ページの第1のnグラムに対して、そのnグラム(そのnグラム番号が何であっても)は、nグラム・エントリマップ505内で索引番号1を有することになり、それと第1の索引ページマップ507が関連することになる。次のnグラムは、やはりそのnグラム番号に関係なく、又は第1のnグラムからいかに「遠く」ても、そのnグラム・エントリマップ505内で索引値2を有することになり、第2の索引ページマップ507に割り当てられることになる。
nグラム・エントリマップ505内の索引値がゼロでない場合、ページ索引付けモジュール127は、その索引値1を用いて、nグラムに対する索引ページマップ507となる(ステップ1023)。
ページ索引付けモジュール127は、nグラムに対する索引ページマップ507内の(バンクオフセット第411)ビットをセットする。これは、バンク217内の(バンクオフセット第411)エントリが、nグラムに対するある参照を有することを意味する。これは、現在索引付けされているページである。
この更新は、ワードキー内の各nグラムに対して繰り返される(ステップ1013)。ページ索引付けモジュール127は、ページ内で次に利用可能なワードについて継続する(ステップ1003)。
一旦、ページに対する全てのワードキーが、ループ1003において完成すると、ページに対するワードキーの全体組は、完全なページキー509を構成することになる。ページキーサイズ513は、ページキー509全体のサイズとなり、バッファ143内に存在することになる。ここで残っているのは、このページキー509を、バンク索引223のページキーテーブル517内の適切な場所に格納することである。
ページ索引付けモジュール127は、バンク217に対する解放リスト221を走査して、今まさに完成したページキーのページキーサイズに等しいか、又はそれより大きなページキーサイズ513により、第1の利用可能なページキー509のページキーオフセット511を決定する(ステップ1029)。上述のように、解放リスト221は、削除されてしまった、従って他のページ用の他のページキーを格納するのに利用可能な空間を有するページに対するページキー509用のオフセット511を維持する。
かかるページキーオフセット511が突き止められると、新規に作成したページキーが、ページキーテーブル517内のページキー509エントリに書き込まれる。十分なサイズの間隙エントリがない場合、ページキーは、ページキーテーブル517内の最後の現存エントリの後に書き込まれる(ステップ1033)。いずれの場合でも、ページキーオフセット511、及びページキーサイズ513は更新される。
再度図9を参照すると、ページ索引付けモジュール127は、次いで、停止ワードファイル135をアンロードして(ステップ923)、索引監視モジュール121に制御を戻す(ステップ925)。
再度図8を参照すると、索引監視121は、索引付きページのバンク参照(バンク番号409、及びバンクオフセット411)によりDFSファイル211を更新して(ステップ807)、索引付きページに対する特定のイメージ及びテキストページとバンク参照を関連づける。これにより、探索時に、またユーザがページ画像を見たり、アクセス用のテキストデータにマッピングしたりする場合に、システム100がページに対する索引情報を検索することが可能になる。同様に、索引監視121は、文書リスト225からの文書番号301により、DFSファイル211を更新する(ステップ809)ことにより、やはり、システム100が文書を検索することが可能になる。最後に、索引監視121は、割当て済みメモリ資源を解放する(ステップ811)。次に、索引監視121は、アプリケーション監視119に制御を戻して、更なる索引付け、索引及び文書の転送(ステップ705)、又は探索(ステップ709)に対処する。
III.文書探索
再度図7を参照すると、ユーザは又、入力探索照会に一致する文書に対して、任意の数のドロワを探索する。一般に、探索には、探索照会内の各ワードをそのnグラムに分解し、どの文書ページがどのnグラムを含むかを判定して、結果としての一致に基づき任意のブール演算又は他の演算を実行するステップが伴う。更に詳細には、各バンクが探索されて、照会ワードのいずれのnグラムが、そのバンク内のいずれのページに出現するかが判定される。これらのページは注記される。次に各ページに対して、照会ワードのnグラムが、そのページの各ページキー内の各ワードキーにおける各nグラムと比較される。これは、照会ワードと各ページのワードの間の一致精度を判定する。
ここで図11を参照すると、そこには、入力探索照会でシステム100を探索する行程709の流れ図が示されており、これは探索監視123により管理される。
探索監視123は、先ず始めに、探索時に利用するのに十分なメモリ資源を割り当てる(ステップ1101)。これには、ページバッファ145及び探索バッファ143のクリアが含まれる。通常、約700kが、16,000文書を含むドロワを探索するために割り当てられる。加えて、探索監視123は、どのページエントリ413(バンクオフセット411による)が照会ワードに対するヒットを含むかを、各バンクに対して追跡する結果バッファを初期化する。
探索監視123は次いで、探索用に選択された全てのドロワ201にわたってループ1103を初期化し、その後、各ドロワ201内の全てのバンク217に対して、第2のループ1105を初期化する。
探索監視123は、現在のバンク217に対してバンク索引223を検索し(ステップ1107)、探索実行モジュール129を呼び出して、前処理(ステップ1109)演算を実行する。前処理1109により、一致パラメータを満足する探索照会ワード内のいずれかのnグラムと一致するような、現在のバンク内のページが識別される。従って、前処理は第1のフィルタリング・ステップであり、探索ワードのnグラムを何も含まないページを更に探索するのを不要にする。図12は、前処理演算の流れ図である。
探索実行モジュール129が、ページフラグリストアレイを初期化するが、これは、バンク217内の各ページに対して、任意の照会ワードの任意のnグラムに関してヒットを含むか否かを追跡し、それにより、更なる処理に対してページを適格にする。好適な実施例の場合、ページフラグリストアレイは1次元アレイであり、バンク217内の各ページに対して1つのエントリを有し、そのバンクオフセット411に対応する。すなわち、ページフラグリスト[Pmax]であり、ここでPmaxは、バンク217内のページの最大数である。
次に、探索実行モジュール129は、探索照会内の各ワードQにわたってループ1203を初期化する。探索実行モジュール129は又、nグラム一致カウンタアレイGも初期化する。nグラム一致カウンタアレイGは、ページに対して、照会ワードのうちnグラムがそのページに見出される回数を追跡する。すなわち、G[P]が、バンク217のページPにおいて、任意の照会ワードのうちのnグラムの発生数である。別のループ1205は、現在の照会ワードQ内の各nグラムにわたって開始される。現在の照会ワードQに対するnグラムは、索引付け時に、上記のようにして判定される。
探索実行モジュール129は、Qの現在のnグラムがバンク217内のいずれのページに存在するか否かを判定する(ステップ1207)が、これは、そのnグラムのnグラム番号を取って、バンク索引223内のそのnグラム番号に対して、nグラム・エントリマップ505の索引値をチェックすることにより行われる。上記のように、nグラム・エントリマップ505は、所与のnグラム番号、ゆえにnグラムに対して、バンク217内でそのnグラムの任意の発生があるか否かを示す。
索引値がゼロである場合、これは、そのバンク217に対するどのページにも、照会ワードQのそのnグラムの事例が存在しなかったことを意味する。この場合、ループ1205は継続する。
索引値がゼロでない場合、これは、バンク217内のあるページに、照会ワードQのnグラムの少なくとも1つの発生があることを意味し、その索引値は、その発生によりバンク217内のページを識別する、索引ページマップ507への索引を示す。従って、探索実行モジュール129は、索引ページマップ507に対して走査を行う(バンク索引223用の索引オフセットに(索引値1)を加えて)。
探索実行モジュール129は、次いで、索引ページマップ507にわたってループを行い(ステップ1209)、ページマップ内の各ビットBを読む。探索実行モジュール129は、各ページに対するビットがセットされているか否かを判定する(ステップ1211)。セットされていない場合、ループ1209は継続する。
ビットがセットされている場合、これは、そのページがそのテキストデータ内のどこかに照会ワードQのnグラムを含むことを示す。探索実行モジュール129は、nグラム一致カウンタG[P]をインクリメントする。これは、照会ワードQのnグラムがバンク217のページPに出現することを示す。
次に、探索実行モジュール129は、インクリメントしたカウント値G[P]が、そのページが現在の照会ワードQに対するヒットを含むと見なすのに十分であるか否かを試験する(ステップ1215)。これは、G[P]が、ユーザにより入力された一致パラメータで重み付けされる、照会ワードQ内のnグラム数に等しいか、又は大きいかを試験する。ユーザが、照会ワードQとあるページのワード間の正確な一致を所望する場合、照会ワードQ内のあらゆるnグラムがそのページに存在する必要があり、従って、照会ワードQのnグラムの各々に対する各索引ページマップ507内のページに対して、1つのビットをセットする必要がある。例えば、照会ワードが「doorknob」である場合、6個のnグラムが存在し、同一のページビットを、「doorknob」のnグラムに対する6個の索引ページマップ507内にセットする必要がある。ユーザがあまり正確でない一致を所望する場合、更に少ない(ある割合で)索引ページマップ507しかセットする必要がない。従って、試験1215は以下となる。
G[P]≦KQ*E/100
ここで、KQはQ内のnグラム数であり、Eは一致パラメータである。Eは、20等の有用な下境界と100の間のあるであるのが好ましい。
この試験1215が満足されれば、ページフラグリストアレイが更新されて(ステップ1217)、このページが照会ワードQに対してヒットを含むことが示される。すなわち、ページリストアレイが[Q,B]でセットされる。ここで、Bは現在のページの索引であり、ループ1209により制御される。その後、処理はループ1209から出るまで続く。全ループが完了すると、前処理1109(図11)が行われたことになる。
再度図11を参照すると、このようにして、前処理1109によりページリストアレイが生成され、これは、各照会ワードQに対して、現在処理されているバンク217内のどのページが、その照会ワードの一事例を有するかを示す。これは、ページのどこに、照会ワードとあるワード間の一致が発生するかを示すものではない。ここで、バンク217内の各ページが処理されて(ステップ1111)、更に、照会ワードとあるページのワード間の正確な一致が判定されて、任意のブール演算子を満足するか否かが判定可能となる。
次に、図13を参照すると、そこには、あるバンク217の処理1111の流れ図が示されている。この段階では、前処理1109時に選択されたページだけが更に処理される。探索実行モジュール129が、バンク217内の各ページエントリ413にわたってループ1301を開始するが、これはバンクオフセット411値だけ繰り返される。第2のループ1303が、探索照会内の各ワードQにわたって開始される。
探索実行モジュール129は、そのページが、照会ワードQの一事例を有するか否かをチェックする(ステップ1305)。これは好適には、[Q,バンクオフセット411]でのページリストアレイをチェックすることにより行われる。この値は、索引ページマップ507において決定されるページに、照会ワードQのいずれかの事例が存在するとしたら、前処理1109時にセットされることになる。ページがそのように指示されていない場合、ループ1303は継続する。
そうでなければ、ページに対するページキー509が、ページバッファ143へとロードされる(ステップ1307)。これは、バンクオフセット411を用いて行われ、ペーオフセットテーブル515内に索引付けされて、正しいページキー509に対する実際のページキーオフセット511が得られる。ページキー509は次に、処理されて(ステップ1309)、ページのnグラムの幾つが照会ワードに一致するかが判定される。図14は、この行程1309の流れ図を示す。
探索実行モジュール129が、各照会ワードQに関して、ページキー509内の各ワードキーWに対するワードキー一致カウンタを初期化する。これは2次元アレイ[Qn,Wn]であることが好ましく、Qnは照会ワードQの数であり、Wnはページキー509内のワードキーWの数である。
探索実行モジュール129は、一連のループを初期化する。外部のループ1403が、(図13に示すループ1303により制御されるような)現在の照会ワードQ内の各nグラムにわたって繰り返される。nグラムは、上記のように、比較で実際に使用されるnグラム番号と共に決定される。第2のループ1405が、ページに対するページキー509内の各ワードキーWにわたって繰り返される。上記のように、索引付け時には、各ワードが、そのワード用のnグラムの全てにより1つのワードキーを生成する。このループにより、各ワードキー(ゆえに、各ワード)が、各照会ワードと比較される。最後のループ1407が、あるワードキー内の各nグラムにわたって繰り返される。これらループの中核では、探索実行モジュール129が、照会ワードQの現在のnグラムを、ワードキーの現在のnグラムと比較する(ステップ1409)。それらが同一である場合、ワードキー一致カウンタがインクリメントされる(ステップ1411)(ゆえに、Q及びWの現在の繰り返しに対して、ワードキー一致カウンタアレイ[Q,W]がインクリメントされる)。これが意味するのは、照会ワードQに対する1つのnグラムが、ページ内のあるワードからの1つのnグラムに一致した、ということである。カウンタは、これらの一致の数を追跡することになる。
次に、探索実行モジュール129は、照会ワードQ自体とそのワード自体の間の一致を示すのに(ワードキー一致カウンタアレイ[Q,W]の値を用いて)十分な一致が存在するか否かを判定する(ステップ1413)。やはり、この試験は一致パラメータEに基づくものである。そこで、正確な一致を必要とする(E=100)場合、ワードキーW内のあらゆるnグラムが、照会ワードQ内のあらゆるnグラムと一致する必要がある。すなわち、ワードキー一致カウンタアレイ[Q,W]=KQとなる。ここで、KQは照会ワードQ内のnグラム数である。正確な一致が必要でない(E<100)場合、ある割合が一致する必要がある。一般に、
ワードキー一致カウンタアレイ[Q,W]≦KQ*E/100
となる。この試験が満足されると、探索実行モジュール129は、探索照会に対するヒットを示すように、バンク及びページエントリ411に対して結果バッファをセットする(ステップ1414)。内部のループ1407は完了する必要はない。というのは、nグラムが十分一致するためである。
次に続いて、探索実行モジュール129は、ループ1405及び1403を出て、ワードキーW内の各ワードに対する評価、及び(図13に示すループ1301により制御されるような)現在のページキー509内の各ワードキーWに対する評価を終了させる。
再度図13を参照すると、現在のページエントリ413が、各照会ワードQに対して処理される(ステップ1309)。一旦、全ての照会ワードの解析が終了すると、上記のように、探索実行モジュール129は、探索照会が任意のブール演算を含むか否かを判定する(ステップ1313)。ブール演算が必要とされる場合、探索実行モジュール129は、ブール処理1315を実施する。ブール処理1315慣用的に実施できる。というのは、この時点で、探索実行モジュール129は、照会ワードQが現在のページに対してヒットであるか否かを既に識別しているためである。偽の状態のみが、結果バッファにおいて識別される必要がある。というのは、ブール照会を満足するページが、ユーザに戻されることになるためである。ブール処理1315は、一般に、以下のようになされる。
照会ワードQが、AND演算用の引数であり、且つ(ワードキー一致カウンタにより決定されるような)ページに、照会ワードQの事例が存在しない場合、そのページを除去するように標示される。
照会ワードQが、NOT演算用の引数であり、且つそのページに照会ワードQの事例が存在する場合、そのページを除去するように標示される。照会ワードQ1、Q2の任意の対が、XOR用の引数であり、且つ唯一それらの両方ともそのページに見出されるか、又はそれらのいずれも見出されない場合、そのページを除去するように標示される。
照会ワードQが、句(引用符でのワード列)であり、且つ同一列が見出されない場合、そのページを除去するように標示される。
ブール処理1315の後、探索実行モジュール129の処理が続く。
ブール処理1315が必要でない場合、探索実行モジュール129は続いてループ1301を終了させ、バンク217内の次のページエントリ413に対して繰り返される。終了時に、探索実行モジュール129は、制御を探索監視123に戻す。
次に再度、図11を参照すると、探索監視123は次いで、探索リストモジュール131を呼び出して、探索行程の結果を整理統合する(ステップ1113)。探索結果の整理統合が用いられるのは、所与の文書のページが、多数のバンク217に常駐し得るためである。探索リストモジュール131が、結果バッファを再検討して、今まさに処理されたバンク217を識別する。各ヒットのバンク217及びバンクオフセット411によるページエントリ413が決定されて、探索リストモジュール131が、文書番号をアクセスして、そのページエントリ413を含む文書を取得する。そこから、DFSファイル211をアクセスすることができ、文書の残りのページがアクセスされて整理統合される。探索照会に一致する文書の整理統合リストが、探索監視123に戻される。
次に、探索監視123は、各バンク及び各ドロワにわたってループ1105、1103を完了させ、適切なドロワ及びバンクを閉じる。バンク及びドロワの全てに対する結果が、同様に整理統合され、探索照会に一致する文書の最終リストが展開されて(ステップ1117)、評価用にユーザに表示される(図7のステップ711)。探索監視123は次いで、探索時に使用したメモリを割当て解除して、アプリケーション監視119に制御を戻す(ステップ1119)。
情報及び検索システムに関して、本発明のnグラム分解法を説明した。しかし、nグラム分解の他の多数の利用も、本発明の範囲内にある。Nグラム分解は、他のテキスト処理法又はシステムで、内部の性能を改善するために使用することができる。例えば、nグラム分解を綴りチェッカで用いて、バッチ又は会話形式で、間違った綴りのワードを識別して、各々に対して可能な置換の更に正確なリストを提供することができる。同様に、nグラムをコンピュータ化辞書又は類語辞典で使用して、ワード根を識別し、また適切な定義又は同義語、反意語、その他を参照することができる。また、nグラムを同様な仕方で文法チェッカで使用して、文法解析の前にワードを識別することもできる。テキストデータを処理するためのnグラム分解のこれら及び他の利用は全て、本発明の範囲内である。

Claims (2)

  1. 文書を検索するコンピュータ実施の方法において、
    a)コンピュータ読み取り可能メモリ上に、nグラムにより文書を索引付けするための記憶構造を格納するステップであって、
    各文書は、文書番号、文書名、及び少なくとも1つのページを有し、各ページはページ番号を有し、
    前記記憶構造が、バンクと、該バンクに関連したバンク索引からなり、
    前記バンクは、ページエントリのリストからなり、各ページエントリは、ページを含む文書の文書番号と前記文書内のページ番号によりページを識別し、
    前記バンク索引が、複数のnグラム・エントリマップと複数の索引エントリマップとを備え、
    各nグラム・エントリマップは単一のnグラムと関連し、選択されたnグラム・エントリマップは、バンク内で識別された少なくとも1つのページが、前記nグラム・エントリマップと関連したnグラムを含むことを示す索引エントリマップへの索引を有し、
    各索引エントリマップは、nグラム・エントリマップの1つにより索引付けられ、各索引エントリマップは、複数の位置を有し、各位置は、前記バンク内のページエントリに対応し、各位置は、前記バンク内の対応するページエントリで識別されるページが、前記索引エントリマップを索引付けするnグラム・エントリマップに関連するnグラムを含むか否かを示すことからなる、ステップと、
    b)照会語を受け取るステップと、
    c)前記照会語内の複数のnグラムの各々に対して、
    i)前記照会語のnグラムと関連したバンク索引内のnグラムエントリマップから、索引エントリマップが前記nグラムに対して存在するか否かを判定するステップと、
    ii)現存する索引エントリマップに応答して、前記索引エントリマップから、前記索引エントリマップと関連したnグラムを含むページを識別する、前記バンク内の各ページエントリを決定するステップと、
    iii)前記nグラムを含む各ページに対して、nグラムカウンタをインクリメントするステップ、
    とを実施するステップと、
    d)前記バンク内の各ページに対して、前記ページに対するnグラムカウンタが、前記ページが前記照会語を含むことを示すために、前記照会語内のnグラムの数と十分類似しているか否かを判定するステップと、
    e)前記照会語内のnグラムの数と十分類似しているページ用のnグラムカウンタに応答して、後続の照会解析のためのページを含む文書を検索するステップと、
    を含む方法。
  2. 前記ページ用のnグラムカウンタが、前記照会語内のnグラムの数と十分類似するのは、
    G[P]K*E/100
    の場合であり、ここで、Pはページであり、G[P]はページP用のnグラム一致カウンタであり、Kは前記照会語内のnグラム数であり、Eはnグラム一致カウンタとKの間の一致の割合を制御するために選択された一致パラメータである、請求項の方法。
JP53114696A 1995-04-10 1996-04-10 Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法 Expired - Fee Related JP4162711B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/419,126 US5706365A (en) 1995-04-10 1995-04-10 System and method for portable document indexing using n-gram word decomposition
US08/419,126 1995-04-10
PCT/US1996/004945 WO1996032686A1 (en) 1995-04-10 1996-04-10 System and method for portable document indexing using n-gram word decomposition

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006031590A Division JP4559371B2 (ja) 1995-04-10 2006-02-08 Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法

Publications (2)

Publication Number Publication Date
JPH10501912A JPH10501912A (ja) 1998-02-17
JP4162711B2 true JP4162711B2 (ja) 2008-10-08

Family

ID=23660908

Family Applications (2)

Application Number Title Priority Date Filing Date
JP53114696A Expired - Fee Related JP4162711B2 (ja) 1995-04-10 1996-04-10 Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法
JP2006031590A Expired - Fee Related JP4559371B2 (ja) 1995-04-10 2006-02-08 Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2006031590A Expired - Fee Related JP4559371B2 (ja) 1995-04-10 2006-02-08 Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法

Country Status (10)

Country Link
US (1) US5706365A (ja)
EP (1) EP0764305B1 (ja)
JP (2) JP4162711B2 (ja)
AU (1) AU713572B2 (ja)
BR (1) BR9606306A (ja)
DE (1) DE69631457T2 (ja)
ES (1) ES2214535T3 (ja)
NO (1) NO965254L (ja)
NZ (1) NZ306268A (ja)
WO (1) WO1996032686A1 (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6415307B2 (en) * 1994-10-24 2002-07-02 P2I Limited Publication file conversion and display
US5729665A (en) * 1995-01-18 1998-03-17 Varis Corporation Method of utilizing variable data fields with a page description language
US6243172B1 (en) * 1995-01-18 2001-06-05 Varis Corporation Method and system for merging variable text and images into bitmaps defined by a page description language
US5875443A (en) * 1996-01-30 1999-02-23 Sun Microsystems, Inc. Internet-based spelling checker dictionary system with automatic updating
US5864630A (en) * 1996-11-20 1999-01-26 At&T Corp Multi-modal method for locating objects in images
US5852822A (en) * 1996-12-09 1998-12-22 Oracle Corporation Index-only tables with nested group keys
GB9701866D0 (en) * 1997-01-30 1997-03-19 British Telecomm Information retrieval
US5809496A (en) * 1997-02-20 1998-09-15 International Business Machines Corporation Hybrid search
JP3554459B2 (ja) * 1997-02-26 2004-08-18 株式会社日立製作所 テキストデータ登録検索方法
US5978797A (en) * 1997-07-09 1999-11-02 Nec Research Institute, Inc. Multistage intelligent string comparison method
US6016546A (en) * 1997-07-10 2000-01-18 International Business Machines Corporation Efficient detection of computer viruses and other data traits
US6487568B1 (en) * 1997-07-18 2002-11-26 Tesseron, Ltd. Method and system for flowing data to an arbitrary path defined by a page description language
US6118887A (en) * 1997-10-10 2000-09-12 At&T Corp. Robust multi-modal method for recognizing objects
BE1012981A3 (nl) 1998-04-22 2001-07-03 Het Babbage Inst Voor Kennis E Werkwijze en systeem voor het weervinden van documenten via een elektronisch databestand.
US5991714A (en) * 1998-04-22 1999-11-23 The United States Of America As Represented By The National Security Agency Method of identifying data type and locating in a file
AU5239499A (en) * 1998-07-28 2000-02-21 Triada, Ltd. Methods of deleting information in n-gram tree structures
US6169969B1 (en) * 1998-08-07 2001-01-02 The United States Of America As Represented By The Director Of The National Security Agency Device and method for full-text large-dictionary string matching using n-gram hashing
JP3696745B2 (ja) 1999-02-09 2005-09-21 株式会社日立製作所 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体
US7031985B1 (en) * 1999-03-08 2006-04-18 Oracle International Corporation Lexical cache
US6516329B1 (en) * 1999-04-26 2003-02-04 Gateway, Inc. Method of maintaining search results pages
DE10028624B4 (de) * 1999-06-09 2007-07-05 Ricoh Co., Ltd. Verfahren und Vorrichtung zur Dokumentenbeschaffung
US20020023123A1 (en) * 1999-07-26 2002-02-21 Justin P. Madison Geographic data locator
JP4115048B2 (ja) * 1999-08-17 2008-07-09 株式会社リコー 文書検索システム
US6785810B1 (en) 1999-08-31 2004-08-31 Espoc, Inc. System and method for providing secure transmission, search, and storage of data
EP1236354A4 (en) 1999-11-10 2009-04-22 Yahoo Inc INTERNET RADIO AND BROADCASTING METHOD
US6859805B1 (en) * 1999-11-29 2005-02-22 Actuate Corporation Method and apparatus for generating page-level security in a computer generated report
US6772156B1 (en) 1999-11-29 2004-08-03 Actuate Corporation Method and apparatus for creating and displaying a table of content for a computer-generated report having page-level security
US6389467B1 (en) 2000-01-24 2002-05-14 Friskit, Inc. Streaming media search and continuous playback system of media resources located by multiple network addresses
AU2001249096A1 (en) * 2000-03-06 2001-09-17 Iarchives, Inc. System and method for creating a searchable word index of a scanned document including multiple interpretations of word at a given document location
US6950553B1 (en) * 2000-03-23 2005-09-27 Cardiff Software, Inc. Method and system for searching form features for form identification
US7024485B2 (en) * 2000-05-03 2006-04-04 Yahoo! Inc. System for controlling and enforcing playback restrictions for a media file by splitting the media file into usable and unusable portions for playback
US8352331B2 (en) 2000-05-03 2013-01-08 Yahoo! Inc. Relationship discovery engine
US7162482B1 (en) * 2000-05-03 2007-01-09 Musicmatch, Inc. Information retrieval engine
US7251665B1 (en) * 2000-05-03 2007-07-31 Yahoo! Inc. Determining a known character string equivalent to a query string
US6556990B1 (en) * 2000-05-16 2003-04-29 Sun Microsystems, Inc. Method and apparatus for facilitating wildcard searches within a relational database
AU2001271980B2 (en) * 2000-07-11 2004-07-29 Excalibur Ip, Llc Online playback system with community bias
KR100406671B1 (ko) * 2000-07-24 2003-11-21 주식회사 유니마이다스 문장 표절 및 도용 검색 방법
JP5033277B2 (ja) * 2000-09-12 2012-09-26 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置および画像処理方法並びにコンピュータ読み取り可能な記録媒体
DE10048478C2 (de) * 2000-09-29 2003-05-28 Siemens Ag Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen
US8271333B1 (en) 2000-11-02 2012-09-18 Yahoo! Inc. Content-related wallpaper
US7406529B2 (en) * 2001-02-09 2008-07-29 Yahoo! Inc. System and method for detecting and verifying digitized content over a computer network
US20020156809A1 (en) * 2001-03-07 2002-10-24 O'brien Thomas A. Apparatus and method for locating and presenting electronic content
US7574513B2 (en) 2001-04-30 2009-08-11 Yahoo! Inc. Controllable track-skipping
SG103289A1 (en) * 2001-05-25 2004-04-29 Meng Soon Cheo System for indexing textual and non-textual files
WO2003001720A2 (en) * 2001-06-21 2003-01-03 Isc, Inc. Database indexing method and apparatus
JP4342753B2 (ja) 2001-08-10 2009-10-14 株式会社リコー 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体
US6925475B2 (en) * 2001-10-12 2005-08-02 Commissariat A L'energie Atomique Process and apparatus for management of multimedia databases
US7031910B2 (en) * 2001-10-16 2006-04-18 Xerox Corporation Method and system for encoding and accessing linguistic frequency data
US20030149566A1 (en) * 2002-01-02 2003-08-07 Esther Levin System and method for a spoken language interface to a large database of changing records
US7707221B1 (en) 2002-04-03 2010-04-27 Yahoo! Inc. Associating and linking compact disc metadata
US7305483B2 (en) 2002-04-25 2007-12-04 Yahoo! Inc. Method for the real-time distribution of streaming data on a network
US7370271B2 (en) * 2002-10-30 2008-05-06 Actuate Corporation Methods and apparatus for generating a spreadsheet report template
US7743061B2 (en) * 2002-11-12 2010-06-22 Proximate Technologies, Llc Document search method with interactively employed distance graphics display
US7284009B2 (en) * 2002-12-13 2007-10-16 Sun Microsystems, Inc. System and method for command line prediction
US20050004799A1 (en) * 2002-12-31 2005-01-06 Yevgenly Lyudovyk System and method for a spoken language interface to a large database of changing records
US6990224B2 (en) * 2003-05-15 2006-01-24 Federal Reserve Bank Of Atlanta Method and system for communicating and matching electronic files for financial transactions
JP4624354B2 (ja) * 2003-09-10 2011-02-02 ミュージックマッチ インコーポレイテッド 音楽購入及び再生のシステム及び方法
US7644076B1 (en) * 2003-09-12 2010-01-05 Teradata Us, Inc. Clustering strings using N-grams
US7325013B2 (en) * 2004-04-15 2008-01-29 Id3Man, Inc. Database with efficient fuzzy matching
US8874504B2 (en) * 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8131674B2 (en) 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7693856B2 (en) * 2004-06-25 2010-04-06 Apple Inc. Methods and systems for managing data
US7305385B1 (en) * 2004-09-10 2007-12-04 Aol Llc N-gram based text searching
US7925658B2 (en) * 2004-09-17 2011-04-12 Actuate Corporation Methods and apparatus for mapping a hierarchical data structure to a flat data structure for use in generating a report
US7478081B2 (en) * 2004-11-05 2009-01-13 International Business Machines Corporation Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system
JP4314204B2 (ja) * 2005-03-11 2009-08-12 株式会社東芝 文書管理方法、システム及びプログラム
US7870480B1 (en) 2005-03-14 2011-01-11 Actuate Corporation Methods and apparatus for storing and retrieving annotations accessible by a plurality of reports
KR100622129B1 (ko) 2005-04-14 2006-09-19 한국전자통신연구원 동적으로 변화하는 웹 페이지의 변조 점검 시스템 및 방법
US7991767B2 (en) * 2005-04-29 2011-08-02 International Business Machines Corporation Method for providing a shared search index in a peer to peer network
US7685106B2 (en) * 2005-04-29 2010-03-23 International Business Machines Corporation Sharing of full text index entries across application boundaries
US8700404B1 (en) 2005-08-27 2014-04-15 At&T Intellectual Property Ii, L.P. System and method for using semantic and syntactic graphs for utterance classification
US7805430B2 (en) * 2005-12-22 2010-09-28 Sap Ag Evaluation of name prefix and suffix during a search
US8307276B2 (en) * 2006-05-19 2012-11-06 Symantec Corporation Distributed content verification and indexing
US20080155399A1 (en) * 2006-12-20 2008-06-26 Yahoo! Inc. System and method for indexing a document that includes a misspelled word
WO2008120030A1 (en) * 2007-04-02 2008-10-09 Sobha Renaissance Information Latent metonymical analysis and indexing [lmai]
JP5224851B2 (ja) * 2008-02-27 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索エンジン、検索システム、検索方法およびプログラム
KR101615164B1 (ko) * 2009-03-20 2016-04-26 삼성전자주식회사 엔-그램 기반의 질의 처리 장치 및 그 방법
US20100306203A1 (en) * 2009-06-02 2010-12-02 Index Logic, Llc Systematic presentation of the contents of one or more documents
DE102009031872A1 (de) 2009-07-06 2011-01-13 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur automatischen Suche nach Dokumenten in einem Datenspeicher
US8761512B1 (en) 2009-12-03 2014-06-24 Google Inc. Query by image
JP5418218B2 (ja) * 2009-12-25 2014-02-19 富士通株式会社 情報処理プログラム、情報検索プログラム、情報処理装置、および情報検索装置
JP5083367B2 (ja) * 2010-04-27 2012-11-28 カシオ計算機株式会社 検索装置、検索方法、ならびに、コンピュータプログラム
JP5708117B2 (ja) * 2011-03-24 2015-04-30 カシオ計算機株式会社 Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JPWO2012150637A1 (ja) * 2011-05-02 2014-07-28 富士通株式会社 抽出方法、情報処理方法、抽出プログラム、情報処理プログラム、抽出装置、および情報処理装置
US8694474B2 (en) * 2011-07-06 2014-04-08 Microsoft Corporation Block entropy encoding for word compression
JP5802924B2 (ja) * 2011-07-29 2015-11-04 アーカイブ技術研究所株式会社 文書検索システムおよび文書検索プログラム
US9218411B2 (en) * 2012-08-07 2015-12-22 International Business Machines Corporation Incremental dynamic document index generation
US9026522B2 (en) 2012-10-09 2015-05-05 Verisign, Inc. Searchable web whois
US10318523B2 (en) 2014-02-06 2019-06-11 The Johns Hopkins University Apparatus and method for aligning token sequences with block permutations
US11282091B2 (en) 2016-09-30 2022-03-22 Transitiv, Inc. Systems, methods, and devices for dynamic page feed management
JP2018121133A (ja) * 2017-01-23 2018-08-02 京セラドキュメントソリューションズ株式会社 ファクシミリ装置
US11030151B2 (en) * 2017-03-29 2021-06-08 AVAST Software s.r.o. Constructing an inverted index
US10459999B1 (en) * 2018-07-20 2019-10-29 Scrappycito, Llc System and method for concise display of query results via thumbnails with indicative images and differentiating terms
JP2023023191A (ja) * 2021-08-04 2023-02-16 シャープ株式会社 記憶方法、記憶システム、読取装置、及び画像処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495566A (en) * 1981-09-30 1985-01-22 System Development Corporation Method and means using digital data processing means for locating representations in a stored textual data base
US5469354A (en) * 1989-06-14 1995-11-21 Hitachi, Ltd. Document data processing method and apparatus for document retrieval
US5062143A (en) * 1990-02-23 1991-10-29 Harris Corporation Trigram-based method of language identification
US5062142A (en) * 1990-12-14 1991-10-29 General Electric Company Data processor producing a medial axis representation of an extended region
US5265065A (en) * 1991-10-08 1993-11-23 West Publishing Company Method and apparatus for information retrieval from a database by replacing domain specific stemmed phases in a natural language to create a search query
US5375235A (en) * 1991-11-05 1994-12-20 Northern Telecom Limited Method of indexing keywords for searching in a database recorded on an information recording medium
GB9220404D0 (en) * 1992-08-20 1992-11-11 Nat Security Agency Method of identifying,retrieving and sorting documents
US5412807A (en) * 1992-08-20 1995-05-02 Microsoft Corporation System and method for text searching using an n-ary search tree
JP2990000B2 (ja) * 1993-09-01 1999-12-13 北海道日本電気ソフトウェア株式会社 検索システム

Also Published As

Publication number Publication date
EP0764305B1 (en) 2004-02-04
NO965254D0 (no) 1996-12-09
ES2214535T3 (es) 2004-09-16
US5706365A (en) 1998-01-06
DE69631457D1 (de) 2004-03-11
DE69631457T2 (de) 2004-09-16
BR9606306A (pt) 1997-09-09
EP0764305A1 (en) 1997-03-26
AU5449696A (en) 1996-10-30
JP2006155657A (ja) 2006-06-15
WO1996032686A1 (en) 1996-10-17
JPH10501912A (ja) 1998-02-17
JP4559371B2 (ja) 2010-10-06
AU713572B2 (en) 1999-12-02
NZ306268A (en) 1998-05-27
NO965254L (no) 1997-02-06

Similar Documents

Publication Publication Date Title
JP4162711B2 (ja) Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法
JP2741835B2 (ja) 入力テキスト・ストリングをワードで区切る方法
US6163775A (en) Method and apparatus configured according to a logical table having cell and attributes containing address segments
US8532384B2 (en) Method of retrieving information from a digital image
US6697801B1 (en) Methods of hierarchically parsing and indexing text
US20020176628A1 (en) Document imaging and indexing system
JPH02271468A (ja) データ処理方法
US5963969A (en) Document abstraction system and method thereof
US20070179932A1 (en) Method for finding data, research engine and microprocessor therefor
CN111428494A (zh) 专有名词的智能纠错方法、装置、设备及存储介质
JP2002510089A (ja) 光学的文字認識により作成された電子的文書を検索するためのシステムおよび方法
CN111400323A (zh) 数据检索方法、系统、设备及存储介质
KR100459832B1 (ko) N-그램워드(n-gramword)분해원리를이용하여이식가능한문서를인덱싱하는시스템및방법
US20060248037A1 (en) Annotation of inverted list text indexes using search queries
Kim et al. An approximate string-matching algorithm
KR101694179B1 (ko) 모음 제거 기반 인덱스 생성 방법 및 장치
CA2192435C (en) System and method for portable document indexing using n-gram word decomposition
JP2000231560A (ja) 文書自動分類方式
JP3780556B2 (ja) 自然言語事例検索装置及び自然言語事例検索方法
JP2560656B2 (ja) 文書ファイリングシステム
JP3693734B2 (ja) 情報検索装置およびその情報検索方法
JPH0991297A (ja) 文字列検索方法及び装置
JPH06309368A (ja) 文書検索装置
JPH0954781A (ja) 文書検索システム
JP2002351881A (ja) 構造化文書格納検索装置および構造化文書格納検索プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041019

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050419

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080618

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

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

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees