JP4639077B2 - 語彙と文法を有する言語の上のストリングの内部構造の各レベルにインデックス付けを行うためのシステム及び方法 - Google Patents

語彙と文法を有する言語の上のストリングの内部構造の各レベルにインデックス付けを行うためのシステム及び方法 Download PDF

Info

Publication number
JP4639077B2
JP4639077B2 JP2004360775A JP2004360775A JP4639077B2 JP 4639077 B2 JP4639077 B2 JP 4639077B2 JP 2004360775 A JP2004360775 A JP 2004360775A JP 2004360775 A JP2004360775 A JP 2004360775A JP 4639077 B2 JP4639077 B2 JP 4639077B2
Authority
JP
Japan
Prior art keywords
bit
index
string
bit 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
JP2004360775A
Other languages
English (en)
Other versions
JP2005182795A (ja
Inventor
ルー クロード
ジャクマン ベルナール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
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 Xerox Corp filed Critical Xerox Corp
Publication of JP2005182795A publication Critical patent/JP2005182795A/ja
Application granted granted Critical
Publication of JP4639077B2 publication Critical patent/JP4639077B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • 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/99932Access augmentation or optimizing
    • 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)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、言語上のストリングを解析するためのシステム及び方法に関する。
語彙と文法を有する言語上のストリング(列、記号列)の内部構造の各レベルを格納し、インデックス(索引語)付け(インデキシング)を行うためのシステム及び方法には多くの従来技術がある。最もよく知られているのは、インターネットで利用できる様々な「サーチエンジン」である。従来のサーチエンジンは、典型的には、ユーザにサーチストリングを入力させる。サーチストリングは、インターネットのコンテンツの全文や要約と比較される。従来のサーチエンジンは、2つの重大な設計上の制約、すなわち正確さとスピード、により制限されている。したがってその結果、例えば多くのサーチエンジンは、典型的には、サーチに要する時間を削減するために、そのサーチストリングに適合する全てのウェブページよりもはるかに少ない検索結果を返すに留まる。
多くの従来のサーチエンジンは、サーチストリングの語彙が適合する検索結果を返すに過ぎない。従来のサーチエンジンは、同じ単語群或いは同じ単語からなる列、を含んだ文書群を求めるものであって、サーチストリング中の単語間の文法上の関係は無視されている。その結果、検索条件に適合するものとして求められた多くの文書は、サーチストリング中に含まれる用語を無作為に並べた組合せを含むだけで、全体的な文脈では無関係である場合もある。
サーチエンジンの中には、サーチストリング中の単語同士の距離がユーザの定義した単語数までの場合にのみ文書を返すことにより、文書をサーチする間に、サーチストリング中に存在する文法的な関係の生の表現を保存しようとするものがあった。しかしながら、このシステムは、サーチストリングの単語間の許容可能な距離を規定するために複雑なオペレータ(演算子)を用いる必要があった。さらに、このシステムは、文法的な関係を単語同士の近さによって極めて粗く近似しようとするものにすぎない。
他の従来の、更に多少複雑なインデキシングシステムは、多重ベクトル(multi-vector)環境における軸を定めるために、「トークン」を用いている。「トークン」は、単一の単語、または複数語の表現である。各トークンは多重ベクトル環境ないでの軸を定める。文書はまずトークンのリストへと分解される。各トークンは、多次元軸表現におけるその文書の位置を示すベクトルを規定するのに用いられる。1つのベクトルの0でない値は、それぞれその文書中に実際に存在するトークンに対応する。ベクトルの値は、インデックス付け処理済みの全ての文においてトークンが現れる回数に対する、その文書においてトークンが現れる回数に基づき計算される。クエリ(検索要求)に対し、サーチにおいてある文書の集合が合致した場合、そのクエリに対するベクトルが計算される。そして、クエリと文書との近さの近似として、クエリのベクトルのコサインが、各文書のベクトルのコサインと比較される。
このようなベクトル利用のシステムの主たる欠点は、クエリと文書との間の類似度を近似する比較が文書全体についての計算(global calculus)によりなされている点である。文書全体の計算では、類似していると判定された各文書に対し、どの部分が合致しているのか個別に再解析しなければならない。さらに、ベクトルシステムは文書中の単語の間の文法的な関係を保持せずに、トークン・フレーズ(トークンの句)を文法的な関係を近似するものとして用いている。このようなトークン・フレーズは、サーチストリングの文法的な関係を正確に表現しないことがしばしばである。
米国特許第6026388号明細書 米国特許第5963940号明細書
本発明は、上記従来技術の問題点の解決を図るものである。
本発明の様々な態様では、語彙と文法を持つ言語の上のストリング(例えばテキスト文を含む文書)の内部構造に対し、そのストリングの内部的な文法構造を保持しながら、或いは高速サーチを可能としながら、或いはその両方を実現しながら、インデックス付けを行う。様々な実施例では、一回のサーチにおいて、単一のストリングのどの部分がサーチストリングに対し合致(マッチ)したのかを判定するためのその単一ストリングに対する再度のサーチを行うことなく、文書の全てのレベルに即座にアクセスできる。
また本発明の様々な実施例では、ストリングにインデックスがつけられると、そのインデックスは、そのストリングの構造単位群の構成上の表現を保持する。また本発明の様々な例では、インデックスは、文書中の言語に従った語彙の要素同士の間の文法的な関係を保持する。そしてストリングには、構成要素レベル(n-1)同士の文法的関係のうちのいくつかを無視することにより、複数の異なるレベル(n)についてのインデックス付けが行われる。
現代英語で書かれた文字文書は、語彙と文法を持つ言語の上のストリングの一例である。文書(ストリング)は語彙、例えば様々な文や段落を構成する英語の単語、と文法、例えば様々な単語の配置を規定する英文法規則、とを含んでいる。本発明に係るシステム及び方法の様々な実施例では、文書は言語の文法に従って多くのレベルにおいてインデックス付けされる。例えば、その文書全体の表現を含むインデックスもあれば、文書中の個々の段落の表現を含むインデックス、それら段落の中の個々の文の表現を含むインデックス、それら文についての文法的な関係の表現を含んだインデックスなどがあり得る。様々な実施例では、文書の各レベルのインデックスを維持することで、文書の構造が保存される。インデクックス付けされた文書の様々なレベルをサーチすることで、本発明の様々な実施例では、語彙だけでなく、単語同士の文法的関係又は構造的関係或いはその両方の関係をも用いて、正確な検索結果を求めることができる。
本発明の様々な実施例では、ストリングの語彙と文法の両方に対しインデックス付け又はサーチ又はその両方を行うのに、バイナリビットのベクトルを用いる。様々な実施例では、ストリングは、語彙の1又は複数の要素、及び文法上でのそれら要素同士の間の関係又は質(クオリティ)を表す小さい単位(まとまり単位:grouped unit)に分解される。そして、それらの単位は、各々対応する要素に分解される。1つの要素は、語彙の1又は複数の単語か、又は文法に従った1又は複数の関係である。
また、様々な実施例では、各要素はそれぞれビットベクトルにより表現される。要素に対するビットベクトルは、「まとまり単位」ごとに合併(論理和)される。すなわち、1つのまとまり単位の各要素に対する様々なビットベクトルは合併され、そのまとまり単位に対するビットベクトルが求められる。処理は更に続き、1つの文の中の各まとまり単位のビットベクトルを合併することにより、文に対するビットベクトルが求められ、段落内の各文のビットベクトルを合併することにより、段落に対するビットベクトルが求められ、更に文書中の各段落のビットベクトルを合併することにより、文書のビットベクトルが求められる。
また本発明の様々な実施例では、文書群のコーパスがサーチされる際、文書群はトップダウンの流れでサーチされる。まずサーチストリングが、インデックス付け済みの文書がビットベクトルに変換されるのと同様の方法で、ビットベクトルに変換される。それから、そのサーチストリングのビットベクトルが、コーパスの各文書の文書ビットベクトルと、共通部分算出演算(AND演算)される。文書のビットベクトルとサーチストリングのビットベクトルとの共通部分が、そのサーチストリングのビットベクトルと等しい場合、その文書はサーチ条件に合致するものである。次いで、文書中の段落が、同様の方法でサーチされる。すなわち、サーチストリングのビットベクトルと、各段落の段落ビットベクトルとの共通部分算出の演算がなされる。段落のビットベクトルとサーチストリングのビットベクトルとの共通部分が、そのサーチストリングのビットベクトルと等しい場合、その段落はサーチ条件に合致するものである。次いで、段落中の文が同様の方法でサーチされる。本発明に係るシステム及び方法の様々な実施例では、文書群のコーパスをサーチするのにビットベクトルを用い、トップダウン方式(すなわち上位レベルから下位レベルへと進むやりかた)で各文書を巡る1回のサーチでサーチを行う。サーチ処理がストリング(すなわちこの場合は文書)のある構成要素レベルへと進むのは、その前のレベルがサーチ条件(サーチストリング)に合致すると判定された場合にのみである。
以下、図面を参照して、本発明を実施するための最良の形態(以下「実施形態」と呼ぶ)について説明する。
図1は、本発明に係る、語彙と文法とを備えた言語の上の文書やその他のテキスト文字列或いはその他のタイプのストリング(記号列:string)の内部構造の各レベルを格納し、それら各レベルにインデックス付けを行うための方法の例を示すフローチャートである。説明を簡単にするために、この実施形態では、ストリングは、テキスト文を含んだ文書であるとする。概略的には、ストリングは必ずしも文書であるとは限らないが、以下の説明では、このようなストリングのことを「文書」と呼ぶ。図1に示すように、この方法の処理手順は、ステップS100から開始し、次のステップS110では新たな文書が入力される。説明の便宜上、この新たな文書(英文)は次の段落の記載を含んでいるものとする。
"Showers continued throughout the week in the Bahia cocoa zone, alleviating the drought since early January and improving prospects for the coming temporao, although normal humidity levels have not been restored, Commissary Smith said in its weekly review. The dry period means the temporao will be late this year. Arrivals for the week ended February 22 were 155,221 bags of 60 kilos making a cumulative total for the season of 5.93 mln against 5.81 at the same stage last year. Again it seems that cocoa delivered earlier on consignment was included in the arrivals figures."
次にステップS120では、その新たな文書がパーズ処理(構文解析)され、複数の「まとまり単位」へと分けられる。1つのまとまり単位は、少なくとも1つの単語又は数又はその両方と、そのストリングの言語の中での、まとまり単位の中のそれら単語や数の文法的又はテキスト的な関係、すなわち「質」とを含んでいる。図3〜8は、上記文書例の各文に含まれるまとまり単位のうちのいくつかを表すリストを示している。例えば、"weekly review"という句に対しては、図3においてL6の行の"MOD (review, weekly)"というまとまり単位により、この言語での "review"と"weekly"という単語同士の間の修飾関係が示されている。ここでは、"weekly"は、名詞"review" に対する修飾形容詞である。同様に、"Commissary Smith said"については、図3のL21の行において、"SUBJ (said, Smith)" が、 "Smith" と "said"という単語同士のこの言語における文法的な関係、すなわちこの言語では"Smith" は、動詞"said"の主語(SUBJで示されている)であるという関係、を表している。
文書がパーズ処理によりまとまり単位に分けられると、処理はステップS130に進み、各まとまり単位がそれぞれ構成要素に分解される。図3〜8を参照すると、各まとまり単位は少なくとも1つの単語又は数と、この言語における、それら単語や数の間の少なくとも1つの文法的すなわちテキスト的な関係、すなわち質、を含んでいる。1つのまとまり単位の中での単語や数は、そのグループ(まとまり単位)の1要素により表される。同様に、少なくとも1つの文法的又はテキスト的な関係すなわち質は、まとまり単位の中の1要素により表される。図9〜14は、上述した新たな文書の例を構成する要素群を示した表を示す。処理はステップS140に進む。
ステップS140では、マスタ要素インデックスが存在するか否かが判定される。もし、例示した新たな文書の例が、同じインデックスを使って解析すべき文書群のコーパスにおいて、格納されインデックス付けされる最初の文書である場合は、以前に解析された文書群からの要素群を含んだマスタ要素インデックスは存在しない場合がある。マスタ要素インデックスが存在していない場合は、処理はステップS150に進む。そうでなければ処理はステップS170に飛ぶ。
ステップS150では、各構成要素に対し、異なるインデックス番号が割り当てられる。様々な実施例において、インデックス番号は、その新たな文書において各要素が現れる順序に従って、各文書に対して続き番号で割り当てられる整数である。図9〜14に示したように、各要素には0〜224のインデックス番号が割り当てられる。続いてステップS160では、各構成要素とそれに対応するインデックス番号とがマスタ要素インデックスに記録される。図9〜14に示した表は、マスタ要素インデックスの一例である。しかしながら、マスタ要素インデックスがこれ以外にもざまざまな適切な形態をとりうることは了解されたい。処理は続いてステップS210に飛ぶ。
一方、ステップS170では、上記新たな文書の構成要素が、既存のマスタ要素インデックス内の要素と比較される。ついでステップS180では、上記新たな文書の構成要素のうちマスタ要素インデックス内にすでに存在するものそれぞれに対し、マスタ要素インデックスから求められるその構成要素に対応するインデックス番号が割り当てられる。次にステップS190では、マスタ要素インデックスに存在しない各構成要素に対し、そのマスタ要素インデックスにないインデックス番号がそれぞれ割り当てられる。様々な実施例では、新たなインデックス番号もまた整数(概略的にいえば、これも続き番号として付与される)であり、マスタ要素インデックスに存在しない各構成要素に割り当てられ、マスタ要素インデックスに存在しない最も小さい整数から始まる。処理はステップS200へと続く。
ステップS200では、マスタ要素インデックスに存在しない構成要素とこれに対応する新たなインデックス番号は、マスタ要素インデックスに記録される。次に、ステップS210で、各構成要素のビットインデックスが求められる。ここでは、構成要素のビットインデックスは、ビットストリングのうちの、その構成要素のインデックス番号に対応する位置(ビットストリング上での位置)のビットをセットことにより、求められる。説明を簡単にするため、文書例は16ビット長のビットストリングを用いて記述されるものとする。すなわち、各ビットストリングは、それぞれ、16個の構成要素までを表現することができる。しかしながら、これは一例であり、もっと長いビットストリングを用いてももちろんよい。したがって、この文書例では、図10のL1046の行における要素"improve" は、第3番目の16ビット長ビットストリングの14番目のビットが1にセットされたビットインデックスを持つ。
本質的には、要素に対するビットインデックスは、その要素のインデックス番号に1を足したものをn(ここでnは各ビットストリングのビット数)で割ることで、特定のnビット長ビットストリングの番号とそのビットストリング上で1にセットすべき特定のビット位置とを得ることにより、求められる。様々な実施例では、ビットストリング数は"Int ((i+1)/n) + 1"で求められる。ビット位置は、様々な実施例では、Modn(i+1)で求められる。ここで、iは要素のインデックス番号であり、nは各ビットストリングのビット数である。 "improve"は、46番目の要素でありインデックス番号が45なので、"Int ((45+1)/16) + 1"の演算、すなわち(45+1)を16で割って1を加える計算の結果は3となり、Mod16(45+1)は14となる。したがって、最初の2つのビットストリングはすべて0で埋められ、第3番目のビットストリングの14番目のビットが1にセットされる。ここでインデックス番号に1を加える必要があることに留意されたい。これはインデックス番号が0から始まるためである。この代わりにインデックス番号を1から始めるのであれば、上述の各演算においてインデックス番号iに1を足す必要はない。
この実施形態では、後に図15〜20を参照して説明するように、16ビット長のビットストリングは、ランクによって参照されるようになっている。様々な実施例では、第1番目のビットストリングはランク0であり、第2番目のビットストリングはランク1、第3番目のビットストリングはランク2となる。以下同様である。したがって、16ビット長のビットストリングの場合、要素"improve" は、ランク2のビットストリングの14番目のビットによりインデックス付けされることになる。ここでランクの値2は、Int ((i+1)/n)で求められる。ここでiは要素のインデックス番号であり、nは各ビットストリングのビット数である。同様に、図12のL1160の行の要素"mean"は、ランク9のビットストリングの15番目のビットに格納される。処理は、次にステップS220に進む。
ステップS220では、各まとまり単位ごとに、そのまとまり単位の中の各要素のビットインデックスを合併(union:ビットごとの論理和演算)することにより、上に例示した新たな文書のまとまり単位に対しビットインデックス値が割り当てられる。例えば、図3を参照すると、行L7のまとまり単位 "MOD (zone, Bahia)"は、要素"MOD"、要素"zone" 及び要素"Bahia"のそれぞれのビットインデックスの合併演算結果である。したがって、ユニット "MOD (zone, Bahia)" についてのビットインデックスは、ランク0のビットストリングの第1番目のビット、ランク3のビットストリングの第5及び第6番目のビットを合併したものである。次に、ステップS230では、各まとまり単位についてのビットインデックスがマスタビットインデックスに記録される。この記録では、各まとまり単位は、そのユニットが属する文、段落、及び文書に関連づけられる。次にステップS240では、文中の各まとまり単位のビットインデックスを合併することにより、上記新たな文書の各文のビットインデックスが求められる。次にステップS250では、上記新たな文書の各文のビットインデックスがマスタビットインデックスに記録される。この記録では、各文は、その文が属する段落及び文書に関連づけられる。処理は次にステップS260に進む。
ステップS260では、各段落ごとに、その段落の中の各文のビットインデックスを合併することにより、その段落に対するビットインデックスが求められる。そしてステップS270では、上記新たな文書の各段落のビットインデックスがマスタビットインデックスに記録される。この記録では、各段落はそれが属する文書に関連づけられる。次にステップS280では、上記新たな文書の各段落のビットインデックスの合併演算により、その新たな文書のビットインデックスが求められる。更にステップS290では、その新たな文書に対するビットインデックスがマスタビットインデックスに記録される。そして処理はステップS300に進み、本方法の処理は終了する。
図15〜20は、例示した上記新たな文書の各文、その新たな文書の各段落、及びその新たな文の全体、のそれぞれについてのビットインデックスを示した図である。注意していただきたいのは、例示した上記文書は1段落しかないので、文書のビットインデックスと段落のビットインデックスは同一であることである。また、この実施形態では、上記新たな文書は、インデックス付けされた唯一の文書なので、文書インデックスと段落インデックスの両方が、インデックス内にすべての要素を含んでいる。したがって、最初の14個のビットのストリングはすべて1にセットされ、15番目のビットストリング(ランク14)の最初のビットが1にセットされる。ビットインデックス全体では225要素((16×14)+1)あるからである。なお、他の文書をインデックス付けしたあと当該文書をインデックス付けした場合、他の文書が含む要素の中には当該文書には現れてこない要素もあるので、文書のビットインデックスや段落のビットインデックスには途中に0が現れることがある。
図15〜20に示されるように、各文書、各段落、及び各文書に対するビットインデックスは、それぞれ、段落や文がそのファイルすなわち文書に属しているかを示すIDファイル欄、文がどの段落に属しているかを示すID段落欄、文書の番号を示すID文欄、各リミットのおけるビットインデックス内の各ビットストリングのランクを示すランク欄、及び各ビットストリングのバイナリ表現に対応する十進値を示す値欄を含む。わかりやすくするために、図15〜20には、各ビットストリングのバイナリデータを示すためのバイナリ欄が追加されている。
しかしながら、様々な実施例では、バイナリデータ自体は格納されない。それよりも、そのバイナリのビットストリングの十進値のみが記録される。例示のために、第1番目の文は、ランク0から9までの10個のビットストリングにわたってインデックス付けされている。最初の9個の16ビット長ビットストリング内の各ビットは1にセットされる。従って、それら16ビット長ビットストリングそれぞれの十進値は65535(すなわち216−1)である。10番目の16ビット長ビットストリング、すなわち、ランク9のビットストリングは、最初の3つのビットのみが1にセットされており、十進値では7(23−1)となる。第1番目の文のビットインデックスから推測できるように、その第1番目の文は上記新たな文書の最初の146個の要素を含んでいる。最初から9個の16ビット長ビットストリングは、0から143(すなわち(16×9)−1)までのインデックス番号を持つ要素を表し、第10番目の16ビット長ビットストリングはインデックス番号144,145及び146の要素を表す。
同様に、第2番目の文は、マスタビットインデックスの最初から11個の16ビット長ビットストリングの中の要素を含んでいる、図17及び図18から推測できるように、第2番目の文は第1番目の文と同じ要素をかなりの数含んでおり、最初から10個の16ビット長ビットストリングのビットのうちの多くは1にセットされている。しかし、第2番目の文は全ての要素を含んでいるわけではなく、最初から10個の16ビット長ビットストリングのビットのうちの多くは0にセットされている。さらに、第2の文はインデックス番号147〜161を持つ新たな要素を含んでいる。これらの要素はランク9のビットストリングの4番目から16番目のビットと、ランク10のビットストリングの最初の2ビットに格納される。第3及び第4番目の文についてのビットインデックスも同様に構成される。図20に示した表は、例示した文書の第4番目の文を表したものであるが、この第4番目の文にはランク10のビットストリング内のインデックスが与えられた要素がないので、その表にはランク10のビットストリングについての行を含まないことに留意されたい。
図21は、ストリングインデックス付けシステム100の一例の機能ブロック図である。このシステム100は、語彙と文法とを持つ言語の上のストリングにインデックス付けをするのに用いることができるものである。図21に示すように、ストリングインデックス付けシステム100は、入出力インタフェース110、コントローラ120,メモリ130、パーズ処理回路、ルーチン又はアプリケーション140、分解回路、ルーチン又はアプリケーション150,比較回路、ルーチン又はアプリケーション160,要素インデックス割当回路、ルーチン又はアプリケーション170,インデックス変換回路、ルーチン又はアプリケーション180,及び合併回路、ルーチン又はアプリケーション190を備え、それらは1以上のデータバスやコントロールバス及び/又はアプリケーション・プログラミング・インタフェース(API)195などにより相互接続されている。
この実施形態では、入出力インタフェース110はリンク210を介してデータ供給源200に接続されている。データ供給源200は、例えばローカル接続又はリモート接続されたラップトップコンピュータやパーソナルコンピュータ、PDA(Personal Digital Assistant)、タブレットコンピュータ、有線や無線のネットワークのクライアントやサーバなどのようにデータの格納や送信又はその両方を行う各種装置、などである。ここでの有線や無線のネットワークには、イントラネットやエクストラネット、ローカルエリアネットワークやワイドエリアネットワーク、ストレージ・エリア・ネットワーク、インターネット(特にワールド・ワイド・ウェブ)などである。データ供給源200は、入出力インタフェース110に対しストリングデータを供給可能なものであれば、既知の、又はこれから開発されるいかなる供給源でもよい。
この実施形態では、入出力インタフェース110は、1以上のリンク104を介して1以上の入力装置102に接続されている。入力装置102は、例えばキーボード、マウス、トラックボール、トラックパッド、タッチスクリーン、或いはデータや制御信号をストリングインデックス付けシステム100に対して入力するための既存又はこれから開発される他のあらゆる装置であり、それらの複数でもよい。この実施形態では、入出力インタフェース110は1以上のリンク230を介して1以上のデータ出力先220に接続されている。データ出力先220は、例えばローカル接続又はリモート接続されたラップトップコンピュータやパーソナルコンピュータ、PDA(Personal Digital Assistant)、タブレットコンピュータ、有線や無線のネットワークのクライアントやサーバなどのようにデータの受信や格納、送信又はそれらすべてを行う各種装置、などである。ここでの有線や無線のネットワークには、イントラネットやエクストラネット、ローカルエリアネットワークやワイドエリアネットワーク、ストレージ・エリア・ネットワーク、インターネット(特にワールド・ワイド・ウェブ)などである。データ出力先220は、1以上のリンク230から供給されるインデックス付けされたストリングデータを受信し、送信又は格納のうちの少なくとも1つを行うことができるものであればいかなる装置でもよい。
リンク104,210及び230は、入力装置102やデータ供給源200、データ出力先220と、入出力インタフェース110とを接続するものであれば、既存の、或いはこれから開発されるいかなるものであってもよい。特にリンク104,210及び230は、それぞれ、直接的なケーブル接続、ワイドエリアネットワークやローカルエリアネットワークやストレージ・エリア・ネットワークを介する接続、イントラネットを介する接続、エクストラネットを介する接続、インターネットを介する接続、その他の分散処理ネットワーク又はシステムを介する接続、或いは赤外線や無線電波やその他の無線接続などのどれでもよく、それらのうちのいくつかの組合せでもよい。
図21に示したように、メモリ130は複数のメモリ部分を含んでいる。メモリ部分には、例えば、マスタ要素インデックス部分131,マスタビットインデックス部分132,関連情報部分(associations portion)133,文書テキスト部分134,及び一時領域部分135などがある。メモリ130のマスタ要素インデックス部分131は、マスタ要素インデックスを格納する。メモリ130のマスタビットインデックス部分132は、マスタビットインデックスを格納する。メモリ130の関連情報部分133は、要素やまとまり単位、文、段落、文書全体、の相互間の関連を示す情報を格納する。メモリ130の文書テキスト部分134は、インデックス付け済みの各文書の本文テキストを格納する。最後に、一時領域部分135は、ストリングインデックス付けシステム100の処理の中で必要な様々なデータを一時的に保存する。
図21に示したメモリ130は、可変の揮発性又は不揮発性メモリ、非可変の、すなわち固定のメモリなどの様々なメモリやその組合せとして実装することができる。可変メモリは、揮発性であれ不揮発性であれ、SRAM(static random access memory)やDRAM(dynamic random access memory)、フレキシブルディスクとそのディスクドライブ、書込又は書換可能な光学ディスクとそのディスクドライブ、ハードディスクドライブ、フラッシュメモリ等、或いはそれらのうちの複数のものの組合せをもちいて実装することができる。同様に、非可変すなわち固定のメモリは、ROM(read only memory)、PROM(programmable ROM)、EPROM(erasable programmable ROM)、EEPROM(electrically erasable programmable ROM)、CD−ROMやDVD−ROMなどのような光ROMディスクとそのディスクドライブ等、或いはそれらのうちの複数の組合せを用いて実装することもできる。
パーズ処理回路、ルーチン又はアプリケーション140は、文書や他のストリングを受け取り、その文書又はストリングのまとまり単位群を出力する。分解回路、ルーチン又はアプリケーション150は、1以上のまとまり単位を受け取り、それら各まとまり単位をそれを構成する要素へと分解する。比較回路、ルーチン又はアプリケーション160は、まとまり単位の要素又は要素群を受け取り、その群の各要素がマスタ要素インデックスにあるかどうかを判定する。要素インデックス割当回路、ルーチン、又はアプリケーション170は、比較回路、ルーチン又はアプリケーション160によりマスタ要素インデックスにないと判定された要素や要素群を受け取り、それら各要素に対し適切なインデックスにおけるインデックス番号をそれぞれ割り当てる。インデックス変換回路、ルーチン又はアプリケーション180は、要素のインデックス又はインデックス群を受け取り、各要素のインデックスをビットストリングにおいてそのインデックスに対応するビット、すなわちビットインデックスに変換する。最後に、合併回路、ルーチン又はアプリケーション190は、2以上のビットインデックスを受け取り、それら入力されたビットインデックスの合併(ビットごとの論理和の結果)を示すビットインデックスを出力する。
処理では、図21に示したストリングインデックス付けシステム100は、データ供給源200からリンク210を通し入出力インタフェース110を介して新たな文書がカレントの文書として入力されることにより動作する。再び、説明の便宜上、この実施形態では、語彙と文法とを持つ言語の上のストリングは、テキスト本文を含んだ文書であるとする。以下、特に言及しなくても、インデックス付けシステム100内のすべての動作はコントローラ120の制御下で行われるものと了解されたい。カレントの文書はメモリ130の文書テキスト部分134に格納される。そして、カレント文書はパーズ処理回路、ルーチン又はアプリケーション140に入力される。パーズ処理回路、ルーチン又はアプリケーション140は、カレント文書をパーズ(構文解析)して、複数のまとまり単位を求める。パーズ処理回路、ルーチン又はアプリケーション140は、それら求めたまとまり単位をメモリ130の一時領域部分135へと出力すると共に、各要素が属する文や段落、文書を表すデータをメモリ130の関連情報部分133に格納する。分解回路、ルーチン又はアプリケーション150は、パーズ処理回路、ルーチン又はアプリケーション140から直接に、又はメモリ130の一時領域部分135から、それらまとまり単位を受け取る。分解回路、ルーチン又はアプリケーション150は、それらまとまり単位を要素に分解する。分解回路、ルーチン又はアプリケーション150は、それら要素をメモリ130の一時領域部分135に、又は比較回路、ルーチン又はアプリケーション160に、或いはその両方に、出力する。
次にコントローラ120は、この文書のためのマスタ要素インデックスが既に存在しているかどうかを判定する。そのようなマスタ要素インデックスが既に存在していれば、比較回路、ルーチン又はアプリケーション160がその既存のマスタ要素インデックスをマスタ要素インデックス部分131から受け取る。そして、比較回路、ルーチン又はアプリケーション160は、メモリ130の一時領域部分135に格納された要素群を受け取る。
比較回路、ルーチン又はアプリケーション160は、入力されたマスタ要素インデックスの中の要素と、メモリ130の一時領域部分135から入力された要素とを比較する。メモリ130の一時領域部分135に格納されているがメモリ130のマスタ要素インデックス部分131内の要素とは合致しない要素は、この比較回路、ルーチン又はアプリケーション160により、要素インデックス割当回路、ルーチン又はアプリケーション170に対し直接的に又は間接的に出力される。要素インデックス割当回路、ルーチン又はアプリケーション170は、それら各要素に対し、メモリ130のマスタ要素インデックス部分131内にない異なる要素インデックス番号をそれぞれ割り当てる。要素インデックス割当回路、ルーチン又はアプリケーション170は、要素と要素インデックス番号とを、メモリ130のマスタ要素インデックス部分131に格納されたマスタ要素インデックスに追加する。
一方、例えばメモリ130のマスタ要素インデックス部分131内に未だかつてデータが格納されたことがないなどの理由でマスタ要素インデックスが存在しない場合、要素インデックス割当回路、ルーチン又はアプリケーション170はメモリ130の一時領域部分135に格納されている全ての要素を受け取る。要素インデックス割当回路、ルーチン又はアプリケーション170は、各要素に異なるインデックス番号を割り当て、マスタ要素インデックスを作成し、これをマスタ要素インデックス部分131に格納し、それら各要素とインデックス番号とをメモリ130のマスタ要素インデックス部分131に追加する。
次にインデックス変換回路、ルーチン又はアプリケーション180は、カレント文書の各要素とそれに対応するインデックス番号を受け取る。インデックス変換回路、ルーチン又はアプリケーション180は、各要素のインデックス番号をビットストリング上の対応ビット、すなわちその要素のビットインデックスへと変換する。対応するビットインデックス(これは実施形態ではインデックス番号に対応するランクとビットストリング内での位置とにより表されるが)は、図21に示すように、インデックス変換回路、ルーチン又はアプリケーション180により、メモリ130のマスタビットインデックス部分132又は合併回路、ルーチン又はアプリケーション190或いはその両方へと出力される。
そして合併回路、ルーチン又はアプリケーション190は、カレント文書の各要素と、これに対応するメモリ130のマスタビットインデックス部分132からのビットインデックスと、メモリ130の関連情報部分133からの関連情報データとを受け取る。合併回路、ルーチン又はアプリケーション190は、上記新たな文書(すなわちカレント文書)の各まとまり単位に対してビットインデックスを割り当てる。この割当は、当該まとまり単位内の全ての要素の合併を、関連情報に従って求めることにより行う。そして、合併回路、ルーチン又はアプリケーション190は各まとまり単位についてのビットインデックスをメモリ130のマスタビットインデックス部分132に出力すると共に、それらまとまり単位に対するビットインデックスから、メモリ130の関連情報部分133に格納された関連する文、段落及び文書の情報への相互参照情報を出力する。
合併回路、ルーチン又はアプリケーション190は、メモリ130のマスタビットインデックス部分132から選ばれた文についてのまとまり単位のビットインデックスと、メモリ130の関連情報部分133からの関連情報データとを受け取る。選ばれた各文ごとに、合併回路、ルーチン又はアプリケーション190は、カレント文書中の当該選ばれた文に対してビットインデックスを割り当てる。この割当は、その文に含まれる各まとまり単位のビットインデックスの合併を、その関連情報データに従って求めることにより行われる。合併回路、ルーチン又はアプリケーション190はカレント文書の各文についてのビットインデックスをメモリ130のマスタビットインデックス部分132に出力すると共に、それら各文のビットインデックスからそれに関連する段落や文書への相互参照情報を、メモリ130の関連情報部分133へと出力する。
次に合併回路、ルーチン又はアプリケーション190は、メモリ130のマスタビットインデックス部分132からカレント文書中の選ばれた段落の各文書のビットインデックスを受け取り、メモリ130の関連情報部分133から関連情報データを受け取る。選ばれた段落ごとに、合併回路、ルーチン又はアプリケーション190は、カレント文書のその選ばれた段落に対するビットインデックスを割り当てる。この割当は、その段落内の全ての文のビットインデックスの合併を関連情報データに従って求めることにより行われる。それから、合併回路、ルーチン又はアプリケーション190は、カレント文書の各段落のビットインデックスをメモリ130のマスタビットインデックス部分132に出力すると共に、各段落からその段落を含む文書への相互参照情報をメモリ130の関連情報部分133に出力する。
最後に、合併回路、ルーチン又はアプリケーション190は、メモリ130のマスタビットインデックス部分132に格納された全ての段落のビットインデックスと、メモリ130の関連情報部分133に格納された関連情報データとを受け取る。合併回路、ルーチン又はアプリケーション190は、カレント文書の全ての段落のビットインデックスをその関連情報データに従って合併することにより、カレント文書に対しビットインデックスを割り当てる。そして合併回路、ルーチン又はアプリケーション190は、カレント文書のビットインデックスをメモリ130のマスタビットインデックス部分132に出力する。
図21に示したストリングインデックス付けシステム100の一例の処理の結果、メモリ130のマスタビットインデックス部分132は、カレント文書の完全なビットインデックスを有することになる。この完全なビットインデックスは、各要素とそれに対応するビットインデックスとを有し、これは当該要素が属するまとまり単位、当該要素が属する文、当該要素が属する段落、及び当該要素が属する文書、に対し適切に関連づけられている。同様に、マスタビットインデックスはカレント文書の各文のビットインデックスを有し、これはその文が属する段落、及びその文が属する文書に対し適切に関連づけられている。マスタビットインデックスはカレント文書の各段落のビットインデックスを有し、これはその文書に対して適切に関連づけられている。そしてメモリ130のマスタビットインデックス部分132は、カレント文書についてのビットインデックスを有する。
コストやその他の設計上の制約に応じ、適切ならば、ストリングインデックス付けシステム100の上述の要素を1つ乃至複数組み合わせて1つの要素にしたり、或いは複数の要素に分けたりしてもよい。
図22〜図25は、少なくとも1つの文書などのストリングのコーパスをサーチするための本発明に係る方法を示すフローチャートである。図22〜図25に示すように、この方法の処理手順はステップS1000から始まり、続くステップS1010では、サーチストリングが入力される。サーチストリングは、例えばサーチターム(検索語)、自然言語、ブール演算子により結合されたサーチターム、特定分野のクエリ、或いは語彙と文法を持つ特定の言語の要素に分解することができる既存或いはこれから開発されるサーチ技術、演算子、要素その他、或いはその言語の文法に従った単語間の関係など、或いはそれらの組合せなどである。
次にステップS1020では、サーチストリング内の各要素のビットインデックスが求められる。サーチストリングの要素は、サーチストリングの種類に応じた様々な方法で求めることができる。例えば、サーチストリングが自然言語要素を含んでいるならば、そのサーチストリングは、文書にインデックス付けするための上述と同様の方法で、パーズ処理によりまとまり単位に分けられ、更にそのまとまり単位は構成要素へと分解される。また、もしブール・サーチストリングが用いられる場合は、要素は、そのブール・サーチストリングに含まれる言語の語である。ステップS1020の様々な例では、マスタビットインデックスがそのサーチストリングの各要素についてサーチされる。サーチストリングの要素の位置がマスタビットインデックスから見つけられると、そのサーチストリングのその要素にはマスタビットインデックスにおけるその要素に対応するビットインデックスが割り当てられる。一方、その要素がマスタビットインデックスに存在しなければ、マスタビットインデックスにない一意的なビットインデックスがその要素に割り当てられる。様々な実施例では、割り当てられるビットインデックスは、インデックス中で既に1にセットされた部分ではない、次のビットとなる。例えば、図9〜図14が全部のビットインデックスを表しているとすると、サーチストリングにおいてそのインデックス中に存在していないインデックス付けすべき次の要素は、225番の要素であり、ランク14の整数の組の中の2番目のビットを1にセットすることにより表される。
次にステップS1030では、サーチストリングの各要素のビットインデックスを合併することによりそのサーチストリング全体についてのビットインデックスが求められる。OR演算子を含んだブール・サーチストリングが入力された場合、そのOR演算子によりできる要素組合せごとに、その組合せを含んだビットインデックスが生成される。処理はステップS1040に進む。
ステップS1040では、第1の又は次の文書が文書コーパスの中からカレント文書として選択される。次にステップS1050では、サーチストリングのビットインデックスとカレント文書のビットインデックスとの共通部分(ビットごとの論理積)が求められる。次にステップS1060では、サーチストリングのビットインデックスとカレント文書のビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいか否かを判定する。この結果、サーチストリングのビットインデックスとカレント文書のビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しい場合は、カレント文書はそのサーチストリングの各要素を含んでいることになる。従って処理はステップS1070に進む。一方、サーチストリングのビットインデックスとカレント文書のビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分には等しくはない場合は、カレント文書はそのサーチストリングの各要素を含んでいないことになり、処理はステップS1230に飛ぶ。
ステップS1070では、その文書が(サーチストリングに対して)合致したものとして印付けされる。次にステップS1080では、そのカレント文書の第1番目の又は次の段落(処理ループの最初の回では「第1番目の段落」、それ以降の回では「次の段落」である)がカレント段落として選択される。次にS1090は、サーチストリングのビットインデックスとカレント段落のビットインデックスとの共通部分が求められる。次にステップS1100では、サーチストリングのビットインデックスとカレント段落のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分に等しいか否かが判定される。サーチストリングのビットインデックスとカレント段落のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分に等しい場合は、その段落はサーチストリングの要素のすべてを含んでいることになる。この場合処理はステップS1120に進む。一方、サーチストリングのビットインデックスとカレント段落のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分には等しくない場合は、その段落はサーチストリングの要素の全部を含んでいるわけではないということなので、処理はステップS1110に進む。
ステップS1110では、カレント文書のすべての段落をカレント段落として選択し終わったかどうかが判定される。カレント文書のすべての段落を選択し終わっていない場合は、処理はステップS1080に戻り、次の段落がカレント段落として選択される。カレント文書のすべての段落をカレント段落として選択し終わった場合は、処理はステップS1230に飛ぶ。
ステップS1120では、カレント段落がサーチストリングに合致したものとして印付けされる。次にステップS1130では、そのカレント段落の第1番目又は次の文がカレントの文として選択される。次にS1140では、サーチストリングのビットインデックスとカレント文のビットインデックスとの共通部分が求められる。次にステップS1150では、サーチストリングのビットインデックスとカレント文のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分に等しいか否かが判定される。サーチストリングのビットインデックスとカレント文のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分に等しい場合は、その文はサーチストリングの要素のすべてを含んでいることになる。この場合処理はステップS1170に進む。一方、サーチストリングのビットインデックスとカレント文のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分には等しくない場合は、その文はサーチストリングの要素の全部を含んでいるわけではないということなので、処理はステップS1160に進む。
ステップS1160では、カレント段落のすべての文をカレント文として選択し終わったかどうかが判定される。カレント段落のすべての文を選択し終わっていない場合は、処理はステップS1130に戻り、次の文がカレント文として選択される。カレント段落のすべての文をカレント文として選択し終わった場合は、処理はステップS1110に戻り、カレント文書のすべての段落がカレント段落として選択済みであるかが判定される。
ステップS1170では、カレント文がサーチストリングに対し合致したものとして印付けされる。次にステップS1180では、そのカレント文の第1番目の又は次のまとまり単位がカレントのまとまり単位として選択される。次にS1190では、サーチストリングのビットインデックスとカレントのまとまり単位のビットインデックスとの共通部分が求められる。次にステップS1200では、サーチストリングのビットインデックスとカレントのまとまり単位のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分に等しいか否かが判定される。サーチストリングのビットインデックスとカレントのまとまり単位のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分に等しい場合は、そのまとまり単位はサーチストリングの要素のすべてを含んでいることになる。この場合処理はステップS1210に進む。一方、サーチストリングのビットインデックスとカレントのまとまり単位のビットインデックスとの共通部分が、そのサーチストリングのビットインデックスに十分には等しくない場合は、そのまとまり単位はサーチストリングの要素の全部を含んでいるわけではないということなので、処理はステップS1220に進む。
ステップS1210では、カレントのまとまり単位がサーチストリングに合致したものとして印付けされる。次にステップS1220では、カレント文内のすべてのまとまり単位をカレントのまとまり単位として選択し終わったかどうかが判定される。カレント文のすべてのまとまり単位をカレントのまとまり単位として選択し終わっていない場合は、処理はステップS1180に戻り、次のまとまり単位がカレントのまとまり単位として選択される。カレント文のすべてのまとまり単位をカレントのまとまり単位として選択し終わった場合は、処理はステップS1160に戻り、カレント段落のすべての文がカレント文として選択済みであるかが判定される。
ステップS1230では、文書コーパス内のすべての文書がカレント文書として選択済みであるか否かが判定される。すべての文書をカレント文書として選択し終わっていない場合は、処理はステップS1040に戻り、次の文書がカレント文書として選択される。もしすべての文書をカレント文書として選択し終わった場合は、ステップS1240に進み、処理手順が終了する。
入力されたサーチストリングがOR演算子やこれと同等のものを含んでいる場合には、そのサーチストリングは、OR演算子等により結ばれる要素のいずれを選択するかにより複数の組合せに分けることができ、それら各組合せがそれぞれ1つサーチストリングとなるので、サーチ処理は入力されたサーチストリングを分解してできるサーチストリングごとに独立に実行される。それら各サーチストリングのサーチ終わると、各々のサーチ結果は合併され、ブール・サーチストリング全体の処理結果となる。
図26は、本発明に係る、インデックス付けされた文書等のコーパスの内部構造の各レベルをサーチするのに利用可能なストリングサーチシステム400の一実施形態を示す。図26に示したように、ストリングサーチシステム400は、入出力インタフェース410,コントローラ420,メモリ430,ビットインデックス判定回路、ルーチン又はアプリケーション440,比較回路、ルーチン又はアプリケーション460,共通部分算出回路、ルーチン又はアプリケーション470,印付け回路、ルーチン又はアプリケーション480を備え、それらは1以上のデータバスやコントロールバス及び/又はアプリケーション・プログラミング・インタフェース(API)495などにより適切に相互接続されている。入出力インタフェース410は、リンク210を介してデータ供給源200に接続されている。データ供給源200は、ネットワークのクライアントやサーバや、インターネット(特にワールド・ワイド・ウェブ)上の装置などのように、データの格納や送信又はその両方を行うことができるようなものであればどのような装置でもよい。データ供給源200は、本実施形態の方法によりインデックス付けされた文書その他のコーパスについてのインデックスの情報を、本実施形態のストリングサーチシステム400の入出力インタフェース410に対して供給できるようなものであれば、既知の又はこれから開発されるどのようなデータ供給源であってもよい。
入出力インタフェース410は、1以上のリンク404を介して1以上の入力装置402に接続されている。入力装置402は、例えばキーボード、マウス、トラックボール、トラックパッド、タッチスクリーン、或いはデータや制御信号をストリングサーチシステム400に対して入力するための既存又はこれから開発される他のあらゆる装置であり、それらの複数でもよい。さらにこの実施形態では、入出力インタフェース410は1以上のリンク230を介して1以上のデータ出力先220に接続されている。データ出力先220は、例えばローカル接続又はリモート接続されたラップトップコンピュータやパーソナルコンピュータ、PDA(Personal Digital Assistant)、タブレットコンピュータ、有線や無線のネットワークのクライアントやサーバなどのようにデータの受信や格納、送信又はそれらすべてを行う各種装置、などである。ここでの有線や無線のネットワークには、イントラネットやエクストラネット、ローカルエリアネットワークやワイドエリアネットワーク、ストレージ・エリア・ネットワーク、インターネット(特にワールド・ワイド・ウェブ)などである。データ出力先220は、1以上のリンク230から供給されるインデックス付けされたストリングデータを受信し、送信又は格納のうちの少なくとも1つを行うことができるものであればいかなる装置でもよい。
リンク404,210及び230は、入力装置402やデータ供給源200、データ出力先220と、入出力インタフェース410とを接続するものであれば、既存の、或いはこれから開発されるいかなるものであってもよい。特にリンク404,210及び230は、それぞれ、直接的なケーブル接続、ワイドエリアネットワークやローカルエリアネットワークを介する接続、イントラネットを介する接続、エクストラネットを介する接続、インターネットを介する接続、その他の分散処理ネットワーク又はシステムを介する接続、或いは赤外線や無線電波やその他の無線接続などのどれでもよく、それらのうちのいくつかの組合せでもよい。
図26に示したように、メモリ430は複数のメモリ部分を含んでいる。メモリ部分には、例えば、マスタ要素インデックス部分431,マスタビットインデックス部分432,関連情報部分433,文書テキスト部分434,サーチストリング部分435,及び結果部分436などがある。メモリ430のマスタ要素インデックス部分431は、マスタ要素インデックスを格納する。メモリ430のマスタビットインデックス部分432は、マスタビットインデックスを格納する。メモリ430の関連情報部分433は、要素やまとまり単位、文、段落、文書全体の間の関連を示す情報を格納する。メモリ430の文書テキスト部分434は、インデックス付け済みの各文書の本文テキストを格納する。メモリ430のサーチストリング部分435には、サーチストリングの本文とビットインデックスが格納される。最後に、結果部分436には、サーチ結果が格納される。
図26に示したメモリ430は、可変の揮発性又は不揮発性メモリ、非可変の、すなわち固定のメモリなどの様々なメモリやその組合せとして実装することができる。可変メモリは、揮発性であれ不揮発性であれ、SRAMやDRAM、フレキシブルディスクとそのディスクドライブ、書込又は書換可能な光学ディスクとそのディスクドライブ、ハードディスクドライブ、フラッシュメモリ等、或いはそれらのうちの複数のものの組合せをもちいて実装することができる。同様に、非可変すなわち固定のメモリは、ROM、PROM、EPROM、EEPROM、CD−ROMやDVD−ROMなどのような光ROMディスクとそのディスクドライブ等、或いはそれらのうちの複数の組合せを用いて実装することもできる。
ビットインデックス判定回路、ルーチン又はアプリケーション440は、サーチストリングを受け取り、そのサーチストリングのビットインデックスを求める。比較回路、ルーチン又はアプリケーション460は、少なくとも2つのビットインデックスを受け取り、それらビットインデックス同士が互いに十分に等しいか否か(すなわち1つのビットインデックスが他のビットインデックスに完全に含まれるかどうか)を判定する。共通部分算出回路、ルーチン又はアプリケーション470は、2以上のビットインデックスを受け取り、それらビットインデックス群の共通部分を計算する。最後に、印付け回路、ルーチン又はアプリケーション480は、まとまり単位、文、段落、或いは文書に対し、それがサーチストリングに適合したことを示す印を付ける。
処理では、図26に示したストリングサーチシステム400は、1以上の入力装置402からリンク404を介し入出力インタフェース410を通してサーチストリングを受け取る。またこの代わりに、データ供給源200からリンク210を通し入出力インタフェース410を介してサーチストリングを受け取るようにしてもよい。以下、特に言及しなくても、ストリングサーチシステム400内のすべての動作はコントローラ420の制御下で行われるものと了解されたい。サーチストリングはメモリ430のサーチストリング部分435に格納される。次にビットインデックス判定回路、ルーチン又はアプリケーション440がそのサーチストリングを受け取る。ビットインデックス判定回路、ルーチン又はアプリケーション440は、そのサーチストリングのビットインデックスを求める。次に、様々な例では、そのサーチストリングのビットインデックスは、メモリ430のサーチストリング部分435に格納される。
サーチストリングのビットインデックスが求められると、そのサーチストリングのビットインデックスが、メモリ430のサーチストリング部分435から、又はビットインデックス判定回路、ルーチン又はアプリケーション440から直接に、共通部分算出回路、ルーチン又はアプリケーション470に入力される。次にメモリ430のマスタビットインデックス部分432から第1番目の文書のビットインデックスがカレント文書ビットインデックスとして選ばれ、共通部分算出回路、ルーチン又はアプリケーション470に入力される。共通部分算出回路、ルーチン又はアプリケーション470は、サーチストリングのビットインデックスとカレント文書ビットインデックスとの共通部分を求める(すなわちビットごとの論理和を算出する)。
次に、サーチストリングのビットインデックスとカレント文書ビットインデックスとの共通部分が比較回路、ルーチン又はアプリケーション460に入力される。比較回路、ルーチン又はアプリケーション460は、サーチストリングのビットインデックスとカレント文書ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいかどうかを判定する。サーチストリングのビットインデックスとカレント文書ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいとは言えない場合は、メモリ430のマスタビットインデックス部分432から次の文書のビットインデックスがカレント文書ビットインデックスとして選ばれる。全ての文書のビットインデックスが選択済みになった場合、或いはマスタビットインデックス部分432が空になった場合は、サーチ処理は完了であり、印付けされたまとまり単位、文、段落、及び文書のすべてがメモリ430の結果部分436に格納されている。
サーチストリングのビットインデックスとカレント文書ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しい場合は、印付け回路、ルーチン又はアプリケーション480は、メモリ430のマスタビットインデックス部分432内のカレント文書に対し、その文書がサーチストリングに合致することを示すように印付けを行う(すなわち、そのカレント文書がそのサーチストリングに合致したことを示す情報を例えばメモリ430に記憶する)。次に、コントローラ420の制御の下で、その合致した文書の第1番目の段落のビットインデックスが、カレント段落ビットインデックスとして選ばれ、メモリ430のマスタビットインデックス部分432から共通部分算出回路、ルーチン又はアプリケーション470に入力される。共通部分算出回路、ルーチン又はアプリケーション470は、サーチストリングのビットインデックスとカレント段落ビットインデックスとの共通部分を求める。
次に、サーチストリングのビットインデックスとカレント段落ビットインデックスとの共通部分が、比較回路、ルーチン又はアプリケーション460に入力される。比較回路、ルーチン又はアプリケーション460は、サーチストリングのビットインデックスとカレント段落ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいかどうかを判定する。サーチストリングのビットインデックスとカレント段落ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいとは言えない場合は、メモリ430のマスタビットインデックス部分432から次の段落のビットインデックスがカレント段落ビットインデックスとして選ばれる。カレント文書の全ての段落のビットインデックスが選択済みになった場合は、メモリ430のマスタビットインデックス部分432から次の文書のビットインデックスが上述のように選択される。
サーチストリングのビットインデックスとカレント段落ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しい場合は、印付け回路、ルーチン又はアプリケーション480は、メモリ430のマスタビットインデックス部分432内のカレント段落について、その段落がサーチストリングに合致することを示すように印付けを行う。次に、コントローラ420の制御の下で、その合致した段落の第1番目の文のビットインデックスが、カレント文ビットインデックスとして選ばれ、メモリ430のマスタビットインデックス部分432から共通部分算出回路、ルーチン又はアプリケーション470に入力される。共通部分算出回路、ルーチン又はアプリケーション470は、サーチストリングのビットインデックスとカレント文ビットインデックスとの共通部分を求める。
次に、サーチストリングのビットインデックスとカレント文ビットインデックスとの共通部分が、比較回路、ルーチン又はアプリケーション460に入力される。比較回路、ルーチン又はアプリケーション460は、サーチストリングのビットインデックスとカレント文ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいかどうかを判定する。サーチストリングのビットインデックスとカレント文ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいとは言えない場合は、メモリ430のマスタビットインデックス部分432から次の文のビットインデックスがカレント文ビットインデックスとして選ばれる。カレント段落の全ての文のビットインデックスが選択済みになった場合は、メモリ430のマスタビットインデックス部分432から次の段落のビットインデックスが上述のように選択される。
サーチストリングのビットインデックスとカレント文ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しい場合は、印付け回路、ルーチン又はアプリケーション480は、メモリ430のマスタビットインデックス部分432内のカレント文について、その文がサーチストリングに合致することを示すように印付けを行う。次に、コントローラ420の制御の下で、その合致した文の中の第1番目のまとまり単位のビットインデックスが、カレントまとまり単位ビットインデックスとして選ばれ、メモリ430のマスタビットインデックス部分432から共通部分算出回路、ルーチン又はアプリケーション470に入力される。共通部分算出回路、ルーチン又はアプリケーション470は、サーチストリングのビットインデックスとカレントまとまり単位ビットインデックスとの共通部分を求める。
次に、サーチストリングのビットインデックスとカレントまとまり単位ビットインデックスとの共通部分が、比較回路、ルーチン又はアプリケーション460に入力される。比較回路、ルーチン又はアプリケーション460は、サーチストリングのビットインデックスとカレントまとまり単位ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいかどうかを判定する。サーチストリングのビットインデックスとカレントまとまり単位ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しいとは言えない場合は、メモリ430のマスタビットインデックス部分432から次のまとまり単位のビットインデックスがカレントまとまり単位ビットインデックスとして選ばれる。
サーチストリングのビットインデックスとカレントまとまり単位ビットインデックスとの共通部分が、サーチストリングのビットインデックスと十分に等しい場合は、印付け回路、ルーチン又はアプリケーション480は、メモリ430のマスタビットインデックス部分432内のカレントのまとまり単位について、そのまとまり単位がサーチストリングに合致することを示すように印付けを行う。次に、コントローラ420の制御の下で、合致したカレント文の中の次のまとまり単位のビットインデックスがカレントまとまり単位ビットインデックスに選ばれ、上述のようにサーチが行われる。カレント文の全てのまとまり単位のビットインデックスが選択済みになった場合は、メモリ430のマスタビットインデックス部分432から次の文のビットインデックスが上述のように選択される。
コストやその他の設計上の制約に応じ、適切ならば、ストリングインデックス付けシステム100の上述の要素を1つ乃至複数組み合わせて1つの要素にしたり、或いは複数の要素に分けたりしてもよいことは了解されるであろう。
本発明に係るシステムや方法が上述の実施形態に限定されるものでないことを了解されたい。例えば、様々な実施例において、比較回路、ルーチン又はアプリケーションは、サーチストリングのビットインデックスとまとまり単位、文、段落又は文書のビットインデックスとの共通部分の100%とそのサーチストリングのビットインデックスとが等しい場合(完全一致の場合)にのみ、そのまとまり単位、文、段落又は文書が十分に等しいと判定しても良い。この方式によれば正確なサーチ結果が得られる。しかしながら他の様々な実施例では、サーチストリングのビットインデックスとまとまり単位、文、段落又は文書のビットインデックスとの共通部分のうちの100%未満の所定の割合(例えば確信度により決定される)が等しい場合でも、十分に等しいとすることもできる。これにより、正確さでは劣るがより多くの数のサーチ結果を得ることができる。
更に、本発明に係るシステムや方法がテキスト文を含む文書に限られる訳でないことを了解されたい。例えば、写真のようなグラフィック(図形的絵画的)文書も言語と文法とに適切に分解し、同様の方法でインデックス付けすることができる。例えば、画像の被写体、場所、背景、前景、色、その他の様々な特徴は上述の要素に対応するか、或いは要素を構成する。それら要素にはビットインデックスが割り当てられ、マスタビットインデックスに登録される。次にユーザが仮に"girl in Paris"(パリの少女)等のようなサーチストリングを入力すると、そのサーチストリングはgirl(少女),subject(被写体),Paris(パリ), location(場所)又はbackground(背景)の合併を表すビットインデックスに変換される(関連する言語及び文法では、"girl"(少女)は写真の"subject"(被写体)であり、"Paris"(パリ)はその写真の"location"(場所)又は"background"(背景)であると想定した場合)。そして、この変形例の装置はパリの少女を含んだグラフィック文書をサーチストリングに合致したサーチ結果として出力する。
以上、本発明の好適な実施形態を説明したが、様々な変形例やバリエーション、改良、実質的に等価な構成が、既知のものか現在は予測できないものかに依らず、この技術分野の通常の知識を有する者には明らかであろう。したがって、上述の実施形態はあくまで例示的なものにすぎず、本発明が上記実施形態に限られるわけではない。本発明の範囲から逸脱することなく様々な変更が可能でる。したがって、本発明は、既知の或いはこれから開発される変形例やバリエーション、改良、実質的な等価物をすべて包含したものである。
文書例に対しインデックス付けする方法の一実施例の流れを示すフローチャートである。 文書例に対しインデックス付けする方法の一実施例の流れを示すフローチャートである。 文書例の第1番目の文のいくつかのまとまり単位の表現例を示す図である。 文書例の第1番目の文のいくつかのまとまり単位の表現例を示す図である。 文書例の第2番目の文のいくつかのまとまり単位の表現例を示す図である。 文書例の第3番目の文のいくつかのまとまり単位の表現例を示す図である。 文書例の第3番目の文のいくつかのまとまり単位の表現例を示す図である。 文書例の第4番目の文のいくつかのまとまり単位の表現例を示す図である。 文書例の要素群を示す図である。 文書例の要素群を示す図である。 文書例の要素群を示す図である。 文書例の要素群を示す図である。 文書例の要素群を示す図である。 文書例の要素群を示す図である。 文書例についてのビットインデックスと関連情報とを含んだ表を示す図である。 文書例の段落についてのビットインデックスと関連情報とを含んだ表を示す図である。 文書例の第1番目の文についてのビットインデックスと関連情報とを含んだ表を示す図である。 文書例の第2番目の文についてのビットインデックスと関連情報とを含んだ表を示す図である。 文書例の第3番目の文についてのビットインデックスと関連情報とを含んだ表を示す図である。 文書例の第4番目の文についてのビットインデックスと関連情報とを含んだ表を示す図である。 本発明に係るストリングインデックス付けシステムの一例を示すブロック図である。 実施形態におけるインデックス付けされた文書のサーチのための方法の一例を示すフローチャートである。 実施形態におけるインデックス付けされた文書のサーチのための方法の一例を示すフローチャートである。 実施形態におけるインデックス付けされた文書のサーチのための方法の一例を示すフローチャートである。 実施形態におけるインデックス付けされた文書のサーチのための方法の一例を示すフローチャートである。 本発明に係る文書サーチシステムの一例を示すブロック図である。
符号の説明
102 入力装置、110 入出力インタフェース、120 コントローラ、130 メモリ、131 マスタ要素インデックス、132 マスタビットインデックス、133 関連情報、134 文書テキスト、135 一時領域、140 パーズ回路、ルーチン又はアプリケーション、150 分解回路、ルーチン又はアプリケーション、160 比較回路、ルーチン又はアプリケーション、170 要素インデックス割当回路、ルーチン又はアプリケーション、180 インデックス変換回路、ルーチン又はアプリケーション、190 合併回路、ルーチン又はアプリケーション、200 データ供給源、220 データ出力先。

Claims (2)

  1. 語彙と文法を持つ言語の上の少なくと1つのストリングに対してインデックス付けを行うための方法であって、
    分割手段が、ストリングごとに、当該ストリングに対してパーズ処理を行うことにより、前記ストリングを、前記語彙の少なくとも1つの単語と前記文法上での前記単語間の関係と、を含んだ複数の構成部分に分割し、
    第1のビットインデックス算出手段が、各構成部分について、各ビットがそれぞれ前記ストリング中に現れる前記語彙の各単語と前記文法上での前記関係とに対してそれぞれ一意に対応づけられたビットインデックスであって、当該構成部分に含まれる単語及び関係に対応する各ビットが第1の値にセットされ、他の各ビットが第2の値にセットされたビットインデックスを求め、
    第2のビットインデックス算出手段が、複数の構成部分から構成される少なくとも1つの集合の各々について、その集合に含まれる各構成部分のビットインデックスのビットごとの論理和を求めることで、その集合のビットインデックスを求める、
    方法。
  2. 語彙と文法を持つ言語の上の少なくとも1つのストリングに対してインデックス付けを行うストリングインデックス付けシステムであって、
    少なくとも1つのストリングの入力を受け、前記ストリングに対してパーズ処理を行うことにより、前記ストリングを、前記語彙の少なくとも1つの単語と前記文法上での前記単語間の関係とを含んだ少なくとも1つの構成部分に分割する分割手段と、
    各構成部分に含まれる各単語及び各関係に対してそれぞれ一意なインデックス番号を割り当てるインデックス割当手段と、
    各インデックス番号、各ビットがそれぞれ前記各インデックス番号に対してそれぞれ一意に対応づけられたビットインデックスであって、当該インデックス番号に対応するビットが第1の値にセットされ他のビットが第2の値にセットされたビットインデックスに変換することにより、各単語及び各関係のビットインデックスを求めるインデックス変換手段と、
    2以上のビットインデックスの入力を受け、それら2以上のビットインデックスのビットごとの論理和の演算結果を表すビットインデックスを出力する合併手段であって、前記各構成部分のビットインデックスを、それぞれ当該構成部分に含まれる各単語及び各関係に対応するビットインデックスのビットごとの論理和により求め、複数の構成部分から構成される集合のビットインデックスを、当該集合に含まれる各構成部分のビットインデックスのビットごとの論理和により求める合併手段と、
    を備えるストリングインデックス付けシステム。
JP2004360775A 2003-12-19 2004-12-14 語彙と文法を有する言語の上のストリングの内部構造の各レベルにインデックス付けを行うためのシステム及び方法 Expired - Fee Related JP4639077B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/739,191 US7194450B2 (en) 2003-12-19 2003-12-19 Systems and methods for indexing each level of the inner structure of a string over a language having a vocabulary and a grammar

Publications (2)

Publication Number Publication Date
JP2005182795A JP2005182795A (ja) 2005-07-07
JP4639077B2 true JP4639077B2 (ja) 2011-02-23

Family

ID=34677538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004360775A Expired - Fee Related JP4639077B2 (ja) 2003-12-19 2004-12-14 語彙と文法を有する言語の上のストリングの内部構造の各レベルにインデックス付けを行うためのシステム及び方法

Country Status (2)

Country Link
US (1) US7194450B2 (ja)
JP (1) JP4639077B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7324648B1 (en) 2003-07-08 2008-01-29 Copyright Clearance Center, Inc. Method and apparatus for secure key delivery for decrypting bulk digital content files at an unsecure site
US8006307B1 (en) * 2003-07-09 2011-08-23 Imophaze Research Co., L.L.C. Method and apparatus for distributing secure digital content that can be indexed by third party search engines
US8886617B2 (en) 2004-02-20 2014-11-11 Informatica Corporation Query-based searching using a virtual table
US7243110B2 (en) * 2004-02-20 2007-07-10 Sand Technology Inc. Searchable archive
US7467155B2 (en) * 2005-07-12 2008-12-16 Sand Technology Systems International, Inc. Method and apparatus for representation of unstructured data
US7797303B2 (en) 2006-02-15 2010-09-14 Xerox Corporation Natural language processing for developing queries
US20070219773A1 (en) * 2006-03-17 2007-09-20 Xerox Corporation Syntactic rule development graphical user interface
US7949514B2 (en) * 2007-04-20 2011-05-24 Xerox Corporation Method for building parallel corpora
US7788084B2 (en) 2006-09-19 2010-08-31 Xerox Corporation Labeling of work of art titles in text for natural language processing
US7774198B2 (en) * 2006-10-06 2010-08-10 Xerox Corporation Navigation system for text
US7890318B2 (en) * 2007-05-23 2011-02-15 Xerox Corporation Informing troubleshooting sessions with device data
US7844633B2 (en) * 2007-09-13 2010-11-30 International Business Machines Corporation System and method for storage, management and automatic indexing of structured documents
US9547640B2 (en) * 2013-10-16 2017-01-17 International Business Machines Corporation Ontology-driven annotation confidence levels for natural language processing
CN104750701A (zh) * 2013-12-27 2015-07-01 中兴通讯股份有限公司 搜索处理方法、装置及终端
US10733164B2 (en) 2015-06-23 2020-08-04 Microsoft Technology Licensing, Llc Updating a bit vector search index
US10242071B2 (en) 2015-06-23 2019-03-26 Microsoft Technology Licensing, Llc Preliminary ranker for scoring matching documents
US11392568B2 (en) 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US10467215B2 (en) * 2015-06-23 2019-11-05 Microsoft Technology Licensing, Llc Matching documents using a bit vector search index
US10565198B2 (en) 2015-06-23 2020-02-18 Microsoft Technology Licensing, Llc Bit vector search index using shards
US11281639B2 (en) 2015-06-23 2022-03-22 Microsoft Technology Licensing, Llc Match fix-up to remove matching documents
US10229143B2 (en) 2015-06-23 2019-03-12 Microsoft Technology Licensing, Llc Storage and retrieval of data from a bit vector search index
US11823798B2 (en) 2016-09-28 2023-11-21 Merative Us L.P. Container-based knowledge graphs for determining entity relations in non-narrative text
US11016973B2 (en) 2016-11-29 2021-05-25 Sap Se Query plan execution engine
US10885032B2 (en) 2016-11-29 2021-01-05 Sap Se Query execution pipelining with shared states for query operators
US10372707B2 (en) 2016-11-29 2019-08-06 Sap Se Query execution pipelining with pump operators
US10521426B2 (en) 2016-11-29 2019-12-31 Sap Se Query plan generation for split table query operations
US10558661B2 (en) 2016-11-29 2020-02-11 Sap Se Query plan generation based on table adapter
US10733184B2 (en) 2016-11-29 2020-08-04 Sap Se Query planning and execution with source and sink operators
US10776353B2 (en) 2017-01-26 2020-09-15 Sap Se Application programming interface for database access
US10671625B2 (en) * 2017-01-26 2020-06-02 Sap Se Processing a query primitive call on a value identifier set
US10860579B2 (en) 2017-01-30 2020-12-08 Sap Se Query planning and execution with reusable memory stack
GB201710925D0 (en) * 2017-07-07 2017-08-23 Nalanda Tech Ltd A Searching method and apparatus
US10949219B2 (en) 2018-06-15 2021-03-16 Sap Se Containerized runtime environments
US10866831B2 (en) 2018-06-15 2020-12-15 Sap Se Distributed execution of data processing pipelines
US10733034B2 (en) 2018-06-15 2020-08-04 Sap Se Trace messaging for distributed execution of data processing pipelines
US11275485B2 (en) 2018-06-15 2022-03-15 Sap Se Data processing pipeline engine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314966A (ja) * 1995-05-19 1996-11-29 Toshiba Corp 文書検索装置のインデックス作成方法及び文書検索装置
JPH08329112A (ja) * 1995-06-06 1996-12-13 Fujitsu Ltd フリーテキスト検索システム
JP2000207395A (ja) * 1999-01-19 2000-07-28 Matsushita Electric Ind Co Ltd 日本語解析装置および日本語解析方法ならびに日本語解析プログラムを記録した記録媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469354A (en) * 1989-06-14 1995-11-21 Hitachi, Ltd. Document data processing method and apparatus for document retrieval
US5625554A (en) * 1992-07-20 1997-04-29 Xerox Corporation Finite-state transduction of related word forms for text indexing and retrieval
US5701459A (en) * 1993-01-13 1997-12-23 Novell, Inc. Method and apparatus for rapid full text index creation
US5379366A (en) * 1993-01-29 1995-01-03 Noyes; Dallas B. Method for representation of knowledge in a computer as a network database system
US5963940A (en) * 1995-08-16 1999-10-05 Syracuse University Natural language information retrieval system and method
US6026388A (en) * 1995-08-16 2000-02-15 Textwise, Llc User interface and other enhancements for natural language information retrieval system and method
US5742816A (en) * 1995-09-15 1998-04-21 Infonautics Corporation Method and apparatus for identifying textual documents and multi-mediafiles corresponding to a search topic
US5893094A (en) * 1997-07-25 1999-04-06 Claritech Corporation Method and apparatus using run length encoding to evaluate a database
US6513032B1 (en) * 1998-10-29 2003-01-28 Alta Vista Company Search and navigation system and method using category intersection pre-computation
US7962326B2 (en) * 2000-04-20 2011-06-14 Invention Machine Corporation Semantic answering system and method
CA2340531C (en) * 2001-03-12 2006-10-10 Ibm Canada Limited-Ibm Canada Limitee Document retrieval system and search method using word set and character look-up tables

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314966A (ja) * 1995-05-19 1996-11-29 Toshiba Corp 文書検索装置のインデックス作成方法及び文書検索装置
JPH08329112A (ja) * 1995-06-06 1996-12-13 Fujitsu Ltd フリーテキスト検索システム
JP2000207395A (ja) * 1999-01-19 2000-07-28 Matsushita Electric Ind Co Ltd 日本語解析装置および日本語解析方法ならびに日本語解析プログラムを記録した記録媒体

Also Published As

Publication number Publication date
US7194450B2 (en) 2007-03-20
US20050138000A1 (en) 2005-06-23
JP2005182795A (ja) 2005-07-07

Similar Documents

Publication Publication Date Title
JP4639077B2 (ja) 語彙と文法を有する言語の上のストリングの内部構造の各レベルにインデックス付けを行うためのシステム及び方法
JP3272288B2 (ja) 機械翻訳装置および機械翻訳方法
US5099426A (en) Method for use of morphological information to cross reference keywords used for information retrieval
JP3601653B2 (ja) 情報検索装置および方法
US8280721B2 (en) Efficiently representing word sense probabilities
US5285386A (en) Machine translation apparatus having means for translating polysemous words using dominated codes
EP2643770A2 (en) Text segmentation with multiple granularity levels
WO2001029699A1 (en) Method and system to analyze, transfer and generate language expressions using compiled instructions to manipulate linguistic structures
US6915300B1 (en) Method and system for searching indexed string containing a search string
JP3992348B2 (ja) 形態素解析方法および装置、並びに日本語形態素解析方法および装置
JPH1069497A (ja) データベースアクセス装置およびその方法
EP0524694B1 (en) A method of inflecting words and a data processing unit for performing such method
JP3430431B2 (ja) データベース検索装置及びデータベース検索方法
WO2009136426A1 (ja) 検索クエリ提供装置
CN112052651A (zh) 诗词生成方法、装置、电子设备及存储介质
JP3873305B2 (ja) 仮名漢字変換装置および仮名漢字変換方法
JP3500698B2 (ja) キーワード抽出装置及びキーワード抽出方法
JPH0261768A (ja) 電子辞書装置及び電子辞書検索方法
JP3628565B2 (ja) 辞書検索方法、装置、および辞書検索プログラムを記録した記録媒体
CN117291155A (zh) 数据生成方法、模型训练方法、文本纠错方法及相关装置
JPH0612451A (ja) 例文検索システム
JP2000259627A (ja) 自然言語文関係判定装置、自然言語文関係判定方法およびこれを用いた検索装置、検索方法ならびに記録媒体
Takeda et al. CRITAC-A Japanese Text Proofreading System
JPH0157829B2 (ja)
JPH03229367A (ja) テキストベース検索方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

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

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

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

Free format text: PAYMENT UNTIL: 20131203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees