Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3620968B2 - Document retrieval method, apparatus for implementing the same, and medium on which processing program is recorded - Google Patents
[go: Go Back, main page]

JP3620968B2 - Document retrieval method, apparatus for implementing the same, and medium on which processing program is recorded - Google Patents

Document retrieval method, apparatus for implementing the same, and medium on which processing program is recorded Download PDF

Info

Publication number
JP3620968B2
JP3620968B2 JP22182998A JP22182998A JP3620968B2 JP 3620968 B2 JP3620968 B2 JP 3620968B2 JP 22182998 A JP22182998 A JP 22182998A JP 22182998 A JP22182998 A JP 22182998A JP 3620968 B2 JP3620968 B2 JP 3620968B2
Authority
JP
Japan
Prior art keywords
index
search
character string
program
partial character
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
JP22182998A
Other languages
Japanese (ja)
Other versions
JP2000057151A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP22182998A priority Critical patent/JP3620968B2/en
Publication of JP2000057151A publication Critical patent/JP2000057151A/en
Application granted granted Critical
Publication of JP3620968B2 publication Critical patent/JP3620968B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は新聞記事や特許明細書の様に日々増加していく大規模な文書データベースから所望の文書を探索する文書検索システムに関し、特に指定した文字列の存在を文書の全文を対象として探索するフルテキストサーチの為の文書検索システムに適用して有効な技術に関するものである。
【0002】
【従来の技術】
指定された検索文字列(以下、検索タームと呼ぶ)が含まれる文書を大規模な文書データベースから高速に探し出す方法として、n−gramインデクス方式(以下、方法1と呼ぶ)がある。
【0003】
n−gramインデクス方式とは、文書の登録時に文書中の全てのn−gram(連続するn文字からなる文字列)についてその出現位置情報をインデクスとして格納しておき、検索時には検索ターム中のn−gramに対してそのインデクスを参照し、検索ターム中の位置関係とインデクス中の位置関係が等しいかどうかを判定(以下、隣接判定と呼ぶ)することによって、検索タームが出現する文書を探し出す方法である。
【0004】
図20は従来の1−gramインデクス方式の一例を示す図である。本図に示す様に、方法1では、文書の登録時に文書中の全てのn−gram(図20の例ではn=1)についてその出現位置情報をインデクスとして格納する。例えば、“に”という1−gramは文書‘001’の‘3’文字目に出現するので、その文書番号‘001’と文字位置‘3’を“に”に対応するインデクス200に格納する。
【0005】
検索時には、指定された検索タームから抽出したn−gramのインデクス間で出現位置情報の隣接判定を行うことにより、検索タームの出現位置情報を取得する。例えば、“微生物”が検索タームとして指定された場合には、この検索タームからまず、1−gram“微”、“生”及び“物”を抽出する。そして、“微”に対応するインデクス201、“生”に対応するインデクス202及び“物”に対応するインデクス203の間で出現位置情報の隣接判定を行うことによって、“微生物”の出現位置情報を取得する。本図の例では、“微”、“生”及び“物”が文書番号‘001’の‘9’文字目からと、文書番号‘056’の‘5’文字目からとで隣り合っているので、それらの出現位置に“微生物”が存在することが分かる。
【0006】
以上の様に方法1では、文書を走査することなしにインデクスの読込みと出現位置情報の隣接判定だけで検索が行える為、大規模な文書データベースに適用した場合でも高速なフルテキストサーチを実現できる可能性がある。
【0007】
しかし方法1では、nを1とすると、すなわち1−gramのインデクスを用いると、1−gramは全文書中(データベース中)における出現頻度が高い為、一つの1−gramに対する出現位置情報が増え、個々のインデクスのサイズが大きくなる。この為インデクスの読込みに時間が掛かるばかりでなく、出現位置情報による隣接判定の回数も増える為、検索に時間が掛かるという問題が生じる。
【0008】
検索を高速にする為にはnの値を増やしたサイズの小さなインデクスを作成する必要があるが、短い検索タームが指定された場合でも検索が行える様にnの小さなインデクスも全て作成しておかなければならない。その結果、総インデクスサイズが膨大になってしまう。
【0009】
また、方法1の様なインデクス型の文書検索方法では、“キー探索技法−IVトライとその応用”(青江順一著、情報処理Vol.34、No.2、1993、pp.244−251)に記載されているトライの様な木構造で文字列(方法1の場合はn−gram)を管理する必要がある。
【0010】
トライとは検索対象となる文字列すなわちキーワードの集合(以下、キー集合と呼ぶ)における各キーワード(以下、キーと呼ぶ)に共通な前方部分文字列を共通の節で括り出して作られる木構造である。
【0011】
このトライは登録や検索の際に用いられ、登録する文字列或いは検索ターム中の文字列でキーを辿ってトライを探索することにより、その文字列に対応するインデクスを指し示すポインタ情報を取得することができる。トライの探索に掛かる時間はキーの数に依存しない為、大規模なデータベースに適用した場合でも、高速にキーワードを探索できるという特徴がある。
【0012】
図21は従来のキー集合{baby、badge、badger、jar}に対応するトライの構成を示す図である。このトライでは節1(300)から節2(301)へ枝ラベルb(302)が定義され、二重丸で示すキーの末尾にあたる節にはそのキーに対するインデクスへのポインタ情報が設定されている。
【0013】
例えば、検索タームとして“baby”が指定された場合には、文字列“baby”で本図のトライを探索することにより、節5(303)に設定されているポインタ情報Pt1が得られ、このポインタ情報Pt1が示す先に検索ターム“baby”に対応するインデクスが格納されていることになる。
【0014】
方法1において、このトライを用いてn−gramを管理する際、個々のインデクスのサイズを小さくして検索を高速にする為にn−gramを長くしたインデクスを作成すると、n−gramの種類が増え、トライの節が増える為、トライ全体の規模が膨大になってしまうという問題がある。
【0015】
以上説明した、検索時間の長大化と、総インデクスサイズとインデクスを管理する木構造サイズの巨大化という相反する問題を解決する為に、インデクスのサイズがある基準値(以下、基準インデクスサイズと呼ぶ)を超えたn−gramに対してのみ、nの値を増やしてサイズの小さなインデクスを作成することにより、常にサイズの小さなインデクスの読込みと出現位置情報の隣接判定で済む様にして、高速な検索を実現すると共に、総インデクスサイズ及びインデクスを管理する木構造(以下、トライで説明する)サイズの巨大化を防ぐ文書検索方法及び装置が特開平8−194718号公報(以下、公知例1と呼ぶ)に開示されている。
【0016】
図22は従来の公知例1の処理内容を示す図である。本方法では、文書の登録時にn−gramに対応するインデクスを作成する共に、文書中の2文字の接続情報をトライ401に登録する。そして、文書を登録していき、インデクスのサイズが基準インデクスサイズを超えた場合には、対応するn−gramに文字列を追加したn−gram(以下、拡張n−gramと呼ぶ)のインデクスを作成する。
【0017】
以下、図22を用いてインデクスの作成方法を具体的に説明する。n−gramに文字列を追加した拡張n−gramを作成する為には、まずトライ401を参照してそのn−gramに続く可能性のあるn−gramを取得する。
【0018】
そして、検出されたn−gram(以下、接続n−gramと呼ぶ)のインデクスと基準インデクスサイズよりサイズが大きくなったn−gram(以下、基準インデクス超過n−gramと呼ぶ)のインデクスの間で出現位置情報の隣接判定を行うことにより、拡張n−gramのインデクスを作成する。
【0019】
本図の例では、“生”という1−gramに対応するインデクスが基準インデクスサイズより大きくなっており、“生”が基準インデクス超過n−gramとなる。ここで、まず“生”という文字でトライ401を探索し、“生”に続く接続n−gramを取得する。本図に示す例では、トライ401を探索することにより、“生”の後ろに“物”と“息”が続くことが分かる。そこで、“生”と“物”、“生”と“息”のインデクスの間で出現位置情報の隣接判定を行うことにより、“生物”、“生息”といった“生”に文字列を追加した拡張n−gramのインデクス400を作成する。
【0020】
以上の様に、公知例1に開示されている文書検索方法及び装置を用いることにより、サイズが大きく検索に時間が掛かるインデクスに対しては、そのn−gramに文字列を追加した拡張n−gramに対するインデクスを作成する為、サイズの小さなインデクスの読込みと出現位置情報の隣接判定で済む様になり、高速な検索を実現することができる様になる。また、それ以外のインデクスに対しては、n−gramの長さを増やしたインデクスを作成しない為、総インデクスサイズ及びn−gramを管理する木構造(トライ)サイズの巨大化を防ぐことができる。
【0021】
【発明が解決しようとする課題】
以上説明した公知例1に開示されている文書検索方法及び装置によると、基準インデクスサイズよりサイズが大きく検索に時間が掛かるインデクスに対しては、そのキーであるn−gramに文字列を追加したサイズの小さなインデクスを作成することになる為、サイズの小さなインデクスの読込みと出現位置情報の隣接判定で済む様になり、高速な検索を実現することが可能となる。また、基準インデクスサイズよりサイズの小さなインデクスに対しては、それ以上n−gramを長くしたインデクスを作成しない為、総インデクスサイズ及びn−gramを管理する木構造(トライ)サイズの巨大化を防ぐことが可能となる。
【0022】
しかし、公知例1に開示されている文書検索方法及び装置では、インデクスのサイズのみに基づいてn−gramに文字列を追加した拡張n−gramのインデクスを作成している。その結果、実際には検索にあまり用いられることのないn−gram(例えば、助詞として用いられる平仮名等)に対してもインデクスサイズが大きくなった場合には、拡張n−gramのインデクスが作成されることになる。
【0023】
これらのn−gramは検索にあまり用いられることがない為、インデクスサイズというコストを支払っても、検索性能の高速化というメリットが得られないn−gramであり、無駄なインデクスになるという問題がある。
【0024】
本発明の目的は上記問題を解決し、検索性能の高速化を図ると共に総インデクスサイズの増加を最小限に抑えることが可能な技術を提供することにある。
【0025】
【課題を解決するための手段】
本発明は、特定の検索タームを含むテキストデータを検索する文書検索システムにおいて、テキストデータから作成した部分文字列に対応するインデクスのサイズが基準インデクスサイズより大きく、該インデクスに対応する部分文字列が検索される可能性が高い場合に、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを作成するものである。
【0026】
本発明の文書検索システムでは、まずインデクス作成登録ステップで、文書情報を文字コードデータとして蓄積したテキストデータベースを対象として、登録対象テキストデータから所定の部分文字列と、該部分文字列の該対象テキストデータにおけるテキスト識別情報及び出現位置情報を含む位置情報とを抽出し、該位置情報をインデクスとして記憶し、前記部分文字列と前記インデクスの記憶位置を管理する為の部分文字列テーブルを更新する。
【0027】
特定の検索タームを含むテキストデータを検索する場合には、インデクス検索ステップにより、前記部分文字列テーブルを参照して検索タームから所定の部分文字列を抽出し、該当インデクスを読み出し、該検索タームにおける部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出する。
【0028】
一方、インデクスサイズ比較ステップでは、テキストデータから作成した部分文字列に対応するインデクスのサイズと予め定められた基準インデクスサイズとを比較し、該インデクスのサイズが該基準インデクスサイズより大きい場合には、検索可能性判定ステップにより、該インデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを判定する。
【0029】
該部分文字列が前記インデクス検索ステップで検索される可能性が高い場合には、文字列インクリメントステップにより、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを作成し、前記部分文字列テーブルを更新する。
【0030】
前記検索可能性判定ステップは、特定のインデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを、例えばインデクスに対応する参照頻度に応じて判定する。
【0031】
すなわち、前記インデクス検索ステップでインデクスの読み出しを行った際に、インデクスの読み出し回数を管理する参照頻度テーブルを参照頻度テーブル更新ステップにより更新し、前記検索可能性判定ステップである参照頻度比較ステップは、前記参照頻度テーブル内の該インデクスに対応する参照頻度と予め定められた基準参照頻度とを比較し、前記参照頻度テーブル内の該インデクスに対応する参照頻度が基準参照頻度より大きい場合には、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを文字列インクリメントステップにより作成する。
【0032】
また前記検索可能性判定ステップは、特定のインデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを、ユーザが入力した重要語に応じて判定しても良い。
【0033】
すなわち、ユーザが入力した重要語を重要語登録ステップにより重要語テーブルに格納しておき、前記検索可能性判定ステップである重要文字列検索ステップは、該インデクスに対応する部分文字列が前記重要語テーブルに格納されている重要語に含まれるかどうかを調べる。該インデクスに対応する部分文字列が前記重要語テーブルの重要語に含まれている場合には、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを文字列インクリメントステップにより作成する。
【0034】
また前記検索可能性判定ステップは、特定のインデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを、相互に関連のある語を予め関連付けた関連語に応じて判定しても良い。
【0035】
すなわち、相互に関連のある語を予め関連付けて格納した関連語ファイルを作成しておき、前記検索可能性判定ステップである展開語検索ステップは、該インデクスに対応する部分文字列が前記関連語テーブルに格納されている関連語に含まれるかどうかを調べる。該インデクスに対応する部分文字列が前記関連語テーブルの関連語に含まれている場合には、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを文字列インクリメントステップにより作成する。
【0036】
なお前記関連語ファイルは、前記インデクス検索ステップで検索ターム及び関連語における部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出する際に、検索ターム展開ステップにより用いられるファイルである。
【0037】
前記の様に本発明によれば、基準インデクスサイズよりインデクスサイズが大きい部分文字列に対して、そのインデクスへの参照頻度と予め定められた基準参照頻度とを比較し、基準参照頻度より多い場合にはその部分文字列に文字列を増やしたサイズの小さなインデクスを作成することにより、インデクスが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高い部分文字列に対しては、検索を高速化することが可能となる。
【0038】
また、インデクスは大きいが、実際には検索にあまり用いられることのない部分文字列(例えば、助詞として用いられる平仮名等)に対しては、文字列を増やしたインデクスを作成しない為、総インデクスサイズを抑えることが可能となる。その結果、総インデクスサイズの最小限の増加で、検索性能の向上を図ることが可能な文書検索システムを実現することができる。
【0039】
以上の様に本発明の文書検索システムによれば、インデクスサイズが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高い部分文字列に対してのみ、文字数を増やしたサイズの小さなインデクスを作成するので、検索性能の高速化を図ると共に総インデクスサイズの増加を最小限に抑えることが可能である。
【0040】
【発明の実施の形態】
(実施形態1)
以下にサイズが大きく参照頻度の高いインデクスについて、当該インデクスに対応するn−gramに文字列を追加した拡張n−gramと拡張n−gramに対応するインデクスを作成する実施形態1の文書検索システムについて説明する。
【0041】
図1は本実施形態の文書検索システムの概略構成を示す図である。本実施形態の文書検索システムは、ディスプレイ100、キーボード101、中央演算処理装置(CPU)102、テキスト107及びインデクス108を格納する二次記憶装置としての磁気ディスク装置106、フロッピディスクドライブ(FDD)104、主記憶装置109から構成される。また、バス103にはCPU102、磁気ディスク装置106、FDD104及び主記憶装置109が接続されている。
【0042】
フロッピディスク105に格納されている情報は、FDD104によりアクセスされる。主記憶装置109には、システム制御プログラム110、文書登録制御プログラム111、インクリメント制御プログラム112、検索制御プログラム113、インデクス作成登録プログラム114、インクリメントプログラム115、検索プログラム119が格納されると共にトライ格納テーブル122、参照頻度テーブル123及びワークエリア124が確保される。
【0043】
インクリメントプログラム115は、インデクスサイズ比較プログラム116、参照頻度比較プログラム117及びn−gramインクリメントプログラム118で構成される。検索プログラム119はインデクス検索プログラム120及び参照頻度テーブル更新プログラム121で構成される。
【0044】
以上のプログラムは磁気ディスク装置106、フロッピディスク105やCD−ROM等のコンピュータで読み書きできる記録媒体に格納することもできる。
【0045】
なおインデクス検索プログラム120は、検索タームの部分文字列に対応するインデクスにより、前記検索タームにおける部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出するインデクス検索ステップの処理を行う。
【0046】
インデクスサイズ比較プログラム116は、テキストデータから作成した部分文字列に対応するインデクスのサイズと予め定められた基準インデクスサイズとを比較するインデクスサイズ比較ステップの処理を行う。
【0047】
参照頻度比較プログラム117は、該インデクスのサイズが該基準インデクスサイズより大きい場合に、参照頻度テーブル123内の該インデクスに対応する参照頻度と予め定められた基準参照頻度とを比較して、該インデクスに対応する部分文字列がインデクス検索プログラム120で検索される可能性が高いかどうかを判定する参照頻度比較ステップの処理を行う。
【0048】
n−gramインクリメントプログラム118は、該部分文字列がインデクス検索プログラム120で検索される可能性が高い場合に、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを作成する文字列インクリメントステップの処理を行う。
【0049】
参照頻度テーブル更新プログラム121は、インデクスの読み出し回数を管理する参照頻度テーブル123を更新する参照頻度テーブル更新ステップの処理を行う。
【0050】
システム制御プログラム110はキーボード101からの指示を受け起動する。文書登録制御プログラム111はキーボード101からの文書登録指示により、システム制御プログラム110によって起動され、インデクス作成登録プログラム114の制御を行う。
【0051】
インクリメント制御プログラム112はキーボード101からのインクリメント指示により、システム制御プログラム110によって起動され、インクリメントプログラム115の制御を行う。検索制御プログラム113はキーボード101からの検索指示により、システム制御プログラム110によって起動され、検索プログラム119の制御を行う。
【0052】
以下、本実施形態における処理内容の概要を説明する。登録の際には、キーボード101からの文書登録指示により、システム制御プログラム110が文書登録制御プログラム111を起動する。そして、文書登録制御プログラム111はインデクス作成登録プログラム114を起動し、フロッピディスク105からテキストデータを読み込んでテキスト107として磁気ディスク装置106に格納すると共に、テキスト107における所定のn−gramの出現位置情報をインデクス108として磁気ディスク装置106に格納する。
【0053】
このインデクス作成登録プログラム114の処理内容は公知例1に開示されている方法と同様である。またテキストデータはフロッピディスク105を用いて入力するだけに限らず、通信回線やCD−ROM装置(図示せず)等を用いて他の装置から入力する様な構成をとることも可能である。
【0054】
検索の際には、キーボード101からの検索指示により、システム制御プログラム110が検索制御プログラム113を起動し、検索制御プログラム113が検索プログラム119を起動する。
【0055】
図2は本実施形態の検索プログラム119の処理内容を示す図である。検索プログラム119は、図2のPAD(Problem Analysis Diagram)図に示す様に、ステップ600でインデクス検索プログラム120を起動し、キーボード101から入力された検索タームのテキスト107における出現位置情報をインデクス108から取得する。このインデクス検索プログラム120の処理内容は方法1及び公知例1に開示されている方法と同様である。
【0056】
そして、ステップ601で参照頻度テーブル更新プログラム121を起動し、インデクス検索プログラム120で用いたインデクスに対応する参照頻度テーブル123内の該当参照頻度を更新する。
【0057】
インクリメントの際には、キーボード101からのインクリメント指示により、システム制御プログラム110がインクリメント制御プログラム112を起動し、インクリメント制御プログラム112がインクリメントプログラム115を起動する。
【0058】
図3は本実施形態のインクリメントプログラム115の処理内容を示す図である。図3に示す様にインクリメントプログラム115は、ステップ700で全てのインデクスに対してステップ701からステップ705までの一連の処理を繰り返す。
【0059】
この繰り返し処理中でインクリメントプログラム115は、まずステップ701でインデクスサイズ比較プログラム116を起動し、処理対象インデクスのサイズと予め定められた基準インデクスサイズを比較する。
【0060】
そして、ステップ702で処理対象インデクスが基準インデクスサイズより大きいと判断された場合には、ステップ703で参照頻度比較プログラム117を起動し、参照頻度テーブル123に格納されている処理対象インデクスの参照頻度と予め定められた基準参照頻度を比較する。
【0061】
そして、ステップ704で処理対象インデクスの参照頻度が基準参照頻度より多いと判断された場合には、ステップ705でn−gramインクリメントプログラム118を起動し、処理対象インデクスのキーであるn−gramに文字列を追加したサイズの小さなインデクスを作成する。このn−gramインクリメントプログラム118の処理内容は公知例1に開示されている方法と同様である。
【0062】
図4は本実施形態の文書検索システムの処理例を示す図である。以下、本実施形態の処理概要について図4を用いて説明する。インデクス作成登録プログラム114の処理は、公知例1に開示されている方法と同様なので省略する。
【0063】
まず、検索プログラム119の処理概要について説明する。インデクス検索プログラム120では、ユーザが入力した検索タームから、トライの様なn−gramテーブルを参照して所定のn−gramを抽出し、n−gramに対応するインデクスの記憶位置を取得する。そして、取得したn−gramに対応するインデクスの記憶位置からインデクスを読み出し、検索タームにおけるn−gramと同じ位置関係を持つ位置情報を抽出する。この位置情報取得ステップは方法1及び公知例1に開示されている方法と同様の処理になる。
【0064】
参照頻度テーブル更新プログラム121では、位置情報取得ステップで読み出したインデクスの参照頻度(読み出した回数)を更新する。図4の例では、検索タームとして、“微生物”と“生物”が用いられたので、“微”に対応する参照頻度を‘1’“生”に対応する参照頻度を‘2’“物”に対応する参照頻度を‘2’に更新する。ここで、“に”に対応するインデクスは検索に用いられていないので参照頻度は‘0’のままである。
【0065】
次に、インクリメントプログラム115の処理概要を説明する。インデクスサイズ比較プログラム116では、インデクス作成登録プログラム114によってテキストデータから作成したn−gramに対応するインデクスのサイズと予め定められた基準インデクスサイズとを比較する。
【0066】
インデクスサイズ比較プログラム116で、n−gramに対応するインデクスのサイズが予め定められた基準インデクスサイズより大きいと判断された場合には、参照頻度比較プログラム117でインデクスに対応する参照頻度を参照頻度テーブル123から取得し、予め定められた基準参照頻度と比較する。
【0067】
参照頻度比較プログラム117で、n−gramに対応するインデクスの参照頻度が予め定められた基準参照頻度よりも多いと判断された場合には、n−gramインクリメントプログラム118で該当インデクスに対応するn−gramに文字列を追加した拡張n−gramと拡張n−gramに対応するインデクスを作成する。
【0068】
インデクスサイズ比較プログラム116及びn−gramインクリメントプログラム118は公知例1に開示されている方法と同様の処理になる。図4に示す例の場合、“に”と“生”のインデクスが大きくなっており、インデクスサイズ比較プログラム116で基準インデクスサイズよりも大きいと判断される。その為、“に”と“生”に対して参照頻度比較プログラム117が実行される。
【0069】
参照頻度比較プログラム117では、“に”と“生”の参照頻度を参照頻度テーブル123から取得し、予め定められた基準参照頻度と比較する。図4に示す例の場合、基準参照頻度は‘1’である。この結果、“生”に対応する参照頻度のみが基準参照頻度より多いと判断され、n−gramインクリメントプログラム118が実行されることにより、“生”に文字列を追加した拡張n−gramに対応するインデクスが作成される。ここで“に”に対応する参照頻度は基準参照頻度より少ないので、インデクスが大きいにもかかわらず、拡張n−gramのインデクスは作成されない。
【0070】
以上の様に、本実施形態では、基準インデクスサイズよりインデクスが大きいn−gramに対して、そのインデクスへの参照頻度と予め定められた基準参照頻度とを比較し、基準参照頻度より多い場合にはそのn−gramに文字列を増やしたサイズの小さなインデクスを作成する。そして、基準参照頻度より参照頻度が少ない場合には、たとえインデクスが大きいとしても、そのn−gramに文字列を増やしたサイズの小さなインデクスを作成しない。
【0071】
こうすることにより、インデクスが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高いn−gramに対しては、検索を高速化することができる。そして、インデクスは大きいが、実際には検索にあまり用いられることのないn−gram(例えば、助詞として用いられる平仮名等)に対しては、文字列を増やしたインデクスを作成しない為、総インデクスサイズを抑えることが可能となる。その結果、総インデクスサイズの最小限の増加で、検索性能の向上を図ることが可能となる。
【0072】
以下、本実施形態における処理内容のうち、公知例1に開示されている方法と異なる検索プログラム119及びインクリメントプログラム115の処理内容を具体例を用いて詳細に説明する。
【0073】
検索プログラム119の処理内容は図2に示す通りである。まずステップ600で、インデクス検索プログラム120を起動し、キーボード101から入力された検索タームのテキスト107における出現位置情報をインデクス108から取得する。本処理内容は図20(図20の例ではn=1)に示す様に方法1及び公知例1に開示されている方法と同様である。
【0074】
例えば“微生物”が検索タームとして指定された場合には、この検索タームからまず、1−gram“微”、“生”及び“物”を抽出する。そして“微”に対応するインデクス201、“生”に対応するインデクス202及び“物”に対応するインデクス203の間で出現位置情報の隣接判定を行うことによって“微生物”の出現位置情報を取得する。
【0075】
本図の例では、“微”、“生”及び“物”が文書番号‘001’の‘9’文字目から、文書番号‘056’の‘5’文字目から隣り合っているので、それらが示す位置に“微生物”が存在することが分かる。
【0076】
次にステップ601で、参照頻度テーブル更新プログラム121を起動し、インデクス検索プログラム120で用いたインデクスに対応する参照頻度テーブル123内の該当参照頻度を更新する。
【0077】
図5は本実施形態の更新前の参照頻度テーブル123の初期状態を示す図である。本図に示す様に、参照頻度テーブル123は、個々のインデクスに対応した参照頻度が格納されるエントリで構成される。
【0078】
図6は本実施形態の検索タームとして“微生物”が指定された場合の参照頻度テーブル123の更新結果を示す図である。インデクス検索プログラム120では、1−gram“微”、“生”及び“物”のインデクスを用いて、“微生物”の出現位置情報を取得する。その為、参照頻度テーブル更新プログラム121では、“微”、“生”及び“物”のインデクスに対応する参照頻度テーブル123の該当参照頻度を‘1’に増やす。このとき、“に”のインデクスに対応する個所は‘0’のままである。
【0079】
次に、検索タームとして“生物”が指定されたとする。このとき、インデクス検索プログラム120では、1−gram“生”及び“物”のインデクスを用いて、“生物”の出現位置情報を取得する。その為、参照頻度テーブル更新プログラム121では、“生”及び“物”のインデクスに対応する参照頻度テーブル123の該当参照頻度を‘1’増やす。
【0080】
図7は本実施形態の検索ターム“生物”における参照頻度テーブル更新プログラム121の処理内容を示す図である。“生”及び“物”のインデクスに対応する参照頻度は‘2’となり、“に”の参照頻度は‘0’、“微”の参照頻度は‘1’のままである。以上が、検索プログラム119の詳細な処理内容である。
【0081】
インクリメントプログラム115の処理内容は図3に示す通りである。まずステップ700で、テキスト107から作成された全てのインデクスに対してステップ701からステップ705までの一連の処理を繰り返す。
【0082】
この繰り返し処理では、まずステップ701で、インデクスサイズ比較プログラム116を起動し、処理対象インデクスのサイズと予め定められた基準インデクスサイズを比較する。図4に示した例では、“に”及び“生”のインデクスが基準インデクスサイズより大きくなっている。
【0083】
次に、ステップ702でインデクスが基準インデクスサイズより大きいと判断された場合には、ステップ703で参照頻度比較プログラム117を起動し、参照頻度テーブル123に格納されている処理対象インデクスの参照頻度と予め定められた基準参照頻度を比較する。
【0084】
そして、ステップ704で参照頻度が基準参照頻度より多いと判断された場合には、ステップ705でn−gramインクリメントプログラム118を起動し、処理対象インデクスのキーであるn−gramに文字列を追加したサイズの小さなインデクスを作成する。
【0085】
図4の例では、“に”及び“生”のインデクスが基準インデクスサイズより大きいと判断される為、これらのインデクスに対応する参照頻度と予め定められた基準参照頻度を比較する。
【0086】
図4の例では、基準参照頻度を1としている。そこで、参照頻度が‘2’である“生”のインデクスはn−gramインクリメントプログラム118の処理対象となるが、参照頻度が‘0’である“に”のインデクスはn−gramインクリメントプログラム118の処理対象とはならない。
【0087】
最後に、“生”に文字列を追加したサイズの小さなインデクスを作成して、インクリメントプログラム115の処理を終了する。n−gramインクリメントプログラム118の処理内容は図22に示す公知例1に開示されている方法と同様である。
【0088】
以上説明した様に、本実施形態では、基準インデクスサイズよりインデクスが大きいn−gramに対して、そのインデクスへの参照頻度と予め定められた基準参照頻度とを比較し、基準参照頻度より多い場合にはそのn−gramに文字列を増やしたサイズの小さなインデクスを作成する。
【0089】
そして、基準参照頻度より参照頻度が少ない場合には、たとえインデクスが大きいとしても、そのn−gramに文字列を増やしたサイズの小さなインデクスを作成しない。こうすることにより、インデクスが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高いn−gramに対しては、検索を高速化することが可能となる。
【0090】
また、インデクスは大きいが、実際には検索にあまり用いられることのないn−gram(例えば、助詞として用いられる平仮名等)に対しては、文字列を増やしたインデクスを作成しない為、総インデクスサイズを抑えることが可能となる。
【0091】
以上により、新聞記事や特許明細書の様に日々件数が増大していく大規模な文書データベースにおいて、出現頻度が高い、すなわちインデクスが大きい検索タームが指定された場合でも、総インデクスサイズの最小限の増加で高速な検索が実現できることになる。
【0092】
以上説明した様に本実施形態の文書検索システムによれば、インデクスサイズが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高い部分文字列に対してのみ、文字数を増やしたサイズの小さなインデクスを作成するので、検索性能の高速化を図ると共に総インデクスサイズの増加を最小限に抑えることが可能である。
【0093】
(実施形態2)
以下にインデクスサイズが大きく重要語に含まれるインデクスについて、当該インデクスに対応するn−gramに文字列を追加した拡張n−gramと拡張n−gramに対応するインデクスを作成する実施形態2の文書検索システムについて説明する。
【0094】
本実施形態は、基準インデクスサイズよりインデクスが大きいn−gramに文字列を追加したサイズの小さなインデクスを作成する際に、ユーザが指定した重要語にそのn−gramが含まれているかどうかを検索し、含まれている場合にのみ文字列を追加したサイズの小さなインデクスの作成を行う方法である。
【0095】
検索に良く用いると思われる重要語をユーザに指定してもらうことにより、インデクスが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高いn−gramに対しての検索の高速化を、総インデクスサイズの最低限の増加で実現できることになる。
【0096】
本実施形態は基本的に実施形態1(図1)と同様の構成をとるが、その中の主記憶装置109内の構成が異なる。
【0097】
図8は本実施形態の主記憶装置109aの概略構成を示す図である。主記憶装置109aには、システム制御プログラム110a、文書登録制御プログラム111、インクリメント制御プログラム112、検索制御プログラム113、重要語登録制御プログラム1100、インデクス作成登録プログラム114、インクリメントプログラム115a、検索プログラム119a、重要語登録プログラム1102が格納されると共にトライ格納テーブル122、重要語テーブル1103及びワークエリア124が確保される。
【0098】
インクリメントプログラム115aはインデクスサイズ比較プログラム116、重要文字列検索プログラム1101及びn−gramインクリメントプログラム118で構成される。検索プログラム119aはインデクス検索プログラム120で構成される。以上のプログラムは磁気ディスク装置106、フロッピディスク105やCD−ROM等のコンピュータで読み書きできる記録媒体に格納することもできる。
【0099】
なお重要文字列検索プログラム1101は、該インデクスに対応する部分文字列が重要語テーブル1103に格納されている重要語に含まれるかどうかを調べ、該インデクスに対応する部分文字列がインデクス検索プログラム120で検索される可能性が高いかどうかを判定する重要文字列検索ステップの処理を行う。また重要語登録プログラム1102は、ユーザが入力した重要語を重要語テーブル1103に格納する重要語登録ステップの処理を行う。
【0100】
システム制御プログラム110aはキーボード101からの指示を受け起動する。文書登録制御プログラム111はキーボード101からの文書登録指示により、システム制御プログラム110aによって起動され、インデクス作成登録プログラム114の制御を行う。
【0101】
インクリメント制御プログラム112はキーボード101からのインクリメント指示により、システム制御プログラム110aによって起動され、インクリメントプログラム115aの制御を行う。検索制御プログラム113はキーボード101からの検索指示により、システム制御プログラム110aによって起動され、検索プログラム119aの制御を行う。重要語登録制御プログラム1100はキーボード101からの検索指示により、システム制御プログラム110aによって起動され、重要語登録プログラム1102の制御を行う。
【0102】
以下、実施形態1と異なる検索プログラム119a、重要語登録プログラム1102及びインクリメントプログラム115aの処理概要を説明する。
【0103】
検索の際には、キーボード101からの検索指示により、システム制御プログラム110aが検索制御プログラム113を起動し、検索制御プログラム113が検索プログラム119aを起動する。
【0104】
検索プログラム119aは、インデクス検索プログラム120を起動し、キーボード101から入力された検索タームのテキスト107における出現位置情報をインデクス108から取得する。このインデクス検索プログラム120の処理内容は方法1及び公知例1に開示されている方法と同様である。
【0105】
重要語を登録する際には、キーボード101からの重要語登録指示により、システム制御プログラム110aが重要語登録制御プログラム1100を起動し、重要語登録制御プログラム1100が重要語登録プログラム1102を起動する。重要語登録プログラム1102は、キーボード101から入力された重要語を重要語テーブル1103に格納する。
【0106】
インクリメントの際には、キーボード101からのインクリメント指示により、システム制御プログラム110aがインクリメント制御プログラム112を起動し、インクリメント制御プログラム112がインクリメントプログラム115aを起動する。
【0107】
図9は本実施形態のインクリメントプログラム115aの処理内容を示す図である。インクリメントプログラム115aは、図9に示す様に、ステップ1200で、テキスト107から作成された全てのインデクスに対してステップ1201からステップ1205までの一連の処理を繰り返す。
【0108】
この繰り返し処理では、まずステップ1201で、インデクスサイズ比較プログラム116を起動し、処理対象インデクスのサイズと予め定められた基準インデクスサイズを比較する。
【0109】
そして、ステップ1202で処理対象インデクスが基準インデクスサイズより大きいと判断された場合には、ステップ1203で重要文字列検索プログラム1101を起動し、処理対象n−gramで、重要語テーブル1103に格納されている重要語を検索する。
【0110】
そして、ステップ1204で処理対象n−gramが重要語テーブル1103に格納されている重要語の一部を構成していると判断された場合には、ステップ1205でn−gramインクリメントプログラム118を起動し、処理対象インデクスのキーであるn−gramに文字列を追加したサイズの小さなインデクスを作成する。このn−gramインクリメントプログラム118の処理内容は公知例1に開示されている方法と同様である。以上が本実施形態における処理内容の概要である。
【0111】
以下、本実施形態における処理内容のうち、方法1、公知例1に開示されている方法及び実施形態1と異なる重要語登録プログラム1102及びインクリメントプログラム115aの処理内容を具体例を用いて詳細に説明する。
【0112】
重要語登録プログラム1102では、キーボード101から入力された重要語を重要語テーブル1103に格納する。
【0113】
図10は本実施形態の重要語テーブル1103の一例を示す図である。本図に示す例では、ユーザは“微生物”に関する文書でデータベースを構築しており、頻繁に検索に用いる単語である“ウイルス”、“バクテリア”、“かび”、“酵母”、“細菌”、“単細胞生物”、“微生物”、…をキーボード101から入力した。重要語登録プログラム1102はこれら入力された文字列を重要語として重要語テーブル1103に格納する。
【0114】
インクリメントプログラム115aの処理内容は図9に示す通りである。まずステップ1200で、テキスト107から作成された全てのインデクスに対してステップ1201からステップ1205までの一連の処理を繰り返す。
【0115】
この繰り返し処理では、まずステップ1201で、インデクスサイズ比較プログラム116を起動し、処理対象インデクスのサイズと予め定められた基準インデクスサイズを比較する。このインデクスサイズ比較プログラム116の処理内容は実施形態1と同様である。
【0116】
図11は本実施形態のインクリメントプログラム115aの処理内容の例を示す図である。本図に示す例では、“に”及び“生”のインデクスが基準インデクスサイズより大きくなっている。
【0117】
次に、ステップ1202で処理対象インデクスが基準インデクスサイズより大きいと判断された場合には、ステップ1203で重要文字列検索プログラム1101を起動し、処理対象n−gramで、重要語テーブル1103に格納されている重要語を検索する。
【0118】
そして、ステップ1204で処理対象n−gramが重要語テーブル1103に格納されている重要語の一部を構成していると判断された場合には、ステップ1205でn−gramインクリメントプログラム118を起動し、処理対象インデクスのキーであるn−gramに文字列を追加したサイズの小さなインデクスを作成する。
【0119】
図11の例では、“に”及び“生”のインデクスが基準インデクスサイズより大きいと判断される為、“に”及び“生”で、重要語テーブル1103に格納されている重要語を検索する。
【0120】
図11の例では、“生”は重要語“単細胞生物”及び“微生物”に含まれるが、“に”を含む重要語は存在しない。そこで、“生”のインデクスはn−gramインクリメントプログラム118の処理対象となるが、“に”のインデクスはn−gramインクリメントプログラム118の処理対象とはならない。
【0121】
最後に、“生”に文字列を追加したサイズの小さなインデクスを作成して、インクリメントプログラム115aの処理を終了する。n−gramインクリメントプログラム118の処理内容は図22に示す公知例1に開示されている方法と同様である。
【0122】
以上説明した様に、本実施形態では、基準インデクスサイズよりインデクスが大きいn−gramに対して、そのn−gramがユーザが指定した重要語に含まれているかどうかを検索し、含まれている場合にはそのn−gramに文字列を増やしたサイズの小さなインデクスを作成する。
【0123】
そして、n−gramがユーザが指定した重要語に含まれていない場合には、たとえインデクスが大きいとしても、そのn−gramに文字列を増やしたサイズの小さなインデクスを作成しない。
【0124】
検索に良く用いると思われる重要語をユーザに指定してもらうことにより、インデクスが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高い重要語に含まれるn−gramに対しては、検索を高速化することが可能となる。
【0125】
また、インデクスは大きいが、ユーザが検索にあまり用いないn−gramに対しては、文字列を増やしたインデクスを作成しない為、総インデクスサイズを抑えることが可能となる。
【0126】
以上により、新聞記事や特許明細書の様に日々件数が増大していく大規模な文書データベースにおいて、出現頻度が高い、すなわちインデクスが大きい検索タームが指定された場合でも、総インデクスサイズの最小限の増加で高速な検索が実現できることになる。
【0127】
(実施形態3)
以下にインデクスサイズが大きく関連語に含まれるインデクスについて、当該インデクスに対応するn−gramに文字列を追加した拡張n−gramと拡張n−gramに対応するインデクスを作成する実施形態3の文書検索システムについて説明する。
【0128】
ユーザがある検索タームを指定し、その検索タームと同じ意味を持つ語(以下、同義語)の検索も同時に行うことを指定した場合には、ユーザが指定した検索タームが一つであったとしても、実際に検索を行う検索タームの数は多くなり、検索に時間が掛かることになる。
【0129】
そこで、本実施形態では、基準インデクスサイズよりインデクスが大きいn−gramに文字列を追加したサイズの小さなインデクスを作成する際に、同義語展開用の辞書やルールを参照して、複数に展開される語に含まれるn−gramであるかどうかを検索し、含まれる場合にのみ文字列を追加したサイズの小さなインデクスを作成する方法である。
【0130】
こうすることにより、インデクスが大きく検索に時間が掛かり、かつ同義語の検索の様に複数語に対して検索を行わなければならない場合でも、総インデクスサイズの最低限の増加で高速な検索を実現できることになる。
【0131】
本実施形態は基本的に実施形態1(図1)と同様の構成をとるが、その中の主記憶装置109内の構成が異なる。
【0132】
図12は本実施形態の主記憶装置109bの概略構成を示す図である。主記憶装置109bには、システム制御プログラム110、文書登録制御プログラム111、インクリメント制御プログラム112、検索制御プログラム113、インデクス作成登録プログラム114、インクリメントプログラム115b、検索プログラム119bが格納されると共にトライ格納テーブル122、同義語展開用辞書1502及びワークエリア124が確保される。
【0133】
インクリメントプログラム115bはインデクスサイズ比較プログラム116、展開語検索プログラム1500及びn−gramインクリメントプログラム118で構成される。検索プログラム119bは検索ターム展開プログラム1501及びインデクス検索プログラム120で構成される。
【0134】
以上のプログラムは磁気ディスク装置106、フロッピディスク105やCD−ROM等のコンピュータで読み書きできる記録媒体に格納することもできる。
【0135】
展開語検索プログラム1500は、該インデクスに対応する部分文字列が同義語展開用辞書1502に格納されている同義語に含まれるかどうかを調べ、該インデクスに対応する部分文字列がインデクス検索プログラム120で検索される可能性が高いかどうかを判定する展開語検索ステップの処理を行う。
【0136】
また検索ターム展開プログラム1501は、相互に関連のある語を予め関連付けて格納した関連語ファイルに相当する同義語展開用辞書1502を上記検索タームで探索し、該検索タームに関連のある1つ以上の同義語を取得する検索ターム展開ステップの処理を行い、インデクス検索プログラム120は、前記検索ターム及び同義語における部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出する処理を行う。
【0137】
システム制御プログラム110はキーボード101からの指示を受け起動する。文書登録制御プログラム111はキーボード101からの文書登録指示により、システム制御プログラム110によって起動され、インデクス作成登録プログラム114の制御を行う。
【0138】
インクリメント制御プログラム112はキーボード101からのインクリメント指示により、システム制御プログラム110によって起動され、インクリメントプログラム115bの制御を行う。検索制御プログラム113はキーボード101からの検索指示により、システム制御プログラム110によって起動され、検索プログラム119bの制御を行う。
【0139】
以下、実施形態1と異なる検索プログラム119b及びインクリメントプログラム115bの処理概要を説明する。
【0140】
検索の際には、キーボード101からの検索指示により、システム制御プログラム110が検索制御プログラム113を起動し、検索制御プログラム113が検索プログラム119bを起動する。
【0141】
図13は本実施形態の検索プログラム119bの処理内容を示す図である。図13に示す様に検索プログラム119bは、ステップ1600で検索ターム展開プログラム1501を起動し、キーボード101から入力された検索タームで同義語展開用辞書1502を探索し、検索タームを複数の同義語に展開する。
【0142】
次にステップ1601で、インデクス検索プログラム120を起動し、検索ターム展開プログラム1501によって展開された同義語全てのテキスト107における出現位置情報をインデクス108から取得する。このインデクス検索プログラム120の処理内容は方法1及び公知例1に開示されている方法と同様である。
【0143】
インクリメントの際には、キーボード101からのインクリメント指示により、システム制御プログラム110がインクリメント制御プログラム112を起動し、インクリメント制御プログラム112がインクリメントプログラム115bを起動する。
【0144】
図14は本実施形態のインクリメントプログラム115bの処理内容を示す図である。図14に示す様にインクリメントプログラム115bは、ステップ1700でテキスト107から作成された全てのインデクスに対してステップ1701からステップ1705までの一連の処理を繰り返す。
【0145】
この繰り返し処理では、まずステップ1701で、インデクスサイズ比較プログラム116を起動し、処理対象インデクスのサイズと予め定められた基準インデクスサイズを比較する。
【0146】
そして、ステップ1702で処理対象インデクスが基準インデクスサイズより大きいと判断された場合には、ステップ1703で展開語検索プログラム1500を起動し、処理対象n−gramで、同義語展開用辞書1502に格納されている同義語を検索する。
【0147】
そして、ステップ1704で処理対象n−gramが複数に展開される語に含まれると判断された場合には、ステップ1705でn−gramインクリメントプログラム118を起動し、処理対象インデクスのキーであるn−gramに文字列を追加したサイズの小さなインデクスを作成する。このn−gramインクリメントプログラム118の処理内容は公知例1に開示されている方法と同様である。以上が本実施形態における処理内容の概要である。
【0148】
以下、本実施形態における処理内容のうち、実施形態1と異なる検索プログラム119b及びインクリメントプログラム115bの処理内容を具体例を用いて詳細に説明する。
【0149】
検索プログラム119bの処理内容は図13に示す通りである。まずステップ1600で、検索ターム展開プログラム1501を起動し、キーボード101から入力された検索タームで同義語展開用辞書1502を探索し、検索タームを複数の同義語に展開する。
【0150】
図15は本実施形態の同義語展開用辞書1502による検索タームの同義語展開の例を示す図である。例えば、検索タームとして“計算機”が指定されたとする。検索ターム展開プログラム1501は、この検索ターム“計算機”で同義語展開用辞書1502を探索し、“計算機”と同じ意味を持つ語である同義語を取得する。
【0151】
図15に示す同義語展開用辞書1502の例では、同義語の集合をカンマ(、)をデリミタとして一行に記載している。この同義語展開用辞書1502を用いて“計算機”を同義語の集合に展開すると、展開後検索ターム1800として“計算機”、“電子計算機”、“電算機”、“COMPUTER”及び“コンピュータ”が得られる。
【0152】
次にステップ1601で、インデクス検索プログラム120を起動し、検索ターム展開プログラム1501によって展開された同義語全てのテキスト107における出現位置情報をインデクス108から取得する。このインデクス検索プログラム120の処理内容は方法1及び公知例1に開示されている方法と同様である。
【0153】
インクリメントプログラム115bの処理内容は図14に示す通りである。まずステップ1700で、テキスト107から作成された全てのインデクスに対してステップ1701からステップ1705までの一連の処理を繰り返す。
【0154】
この繰り返し処理では、まずステップ1701で、インデクスサイズ比較プログラム116を起動し、処理対象インデクスのサイズと予め定められた基準インデクスサイズを比較する。このインデクスサイズ比較プログラム116の処理内容は実施形態1と同様である。
【0155】
図16は本実施形態のインクリメントプログラム115bの処理内容を示す図である。本図に示す例では、“に”及び“生”のインデクスが基準インデクスサイズより大きくなっている。
【0156】
次に、ステップ1702で処理対象インデクスが基準インデクスサイズより大きいと判断された場合には、ステップ1703で展開語検索プログラム1500を起動し、処理対象n−gramで、同義語展開用辞書1502に格納されている同義語を検索する。
【0157】
そして、ステップ1704で処理対象n−gramが複数に展開される語に含まれると判断された場合には、ステップ1705でn−gramインクリメントプログラム118を起動し、処理対象インデクスのキーであるn−gramに文字列を追加したサイズの小さなインデクスを作成する。
【0158】
図16の例では、“に”及び“生”のインデクスが基準インデクスサイズより大きいと判断される為、“に”及び“生”で、同義語展開用辞書1502に格納されている重要語を検索する。
【0159】
図16の例では、“生”は“海洋生物”及び“海生生物”に含まれるが、“に”を含む語は存在しない。そこで、“生”のインデクスはn−gramインクリメントプログラム118の処理対象となるが、“に”のインデクスはn−gramインクリメントプログラム118の処理対象とはならない。
【0160】
最後に、“生”に文字列を追加したサイズの小さなインデクスを作成して、インクリメントプログラム115bの処理を終了する。n−gramインクリメントプログラム118の処理内容は図22に示す公知例1に開示されている方法と同様である。
【0161】
以上説明した様に、本実施形態では、基準インデクスサイズよりインデクスが大きいn−gramに対して、同義語展開用の辞書やルールを参照して、複数に展開される語に含まれるn−gramであるかどうかを検索し、含まれている場合にはそのn−gramに文字列を増やしたサイズの小さなインデクスを作成する。そして、n−gramが複数に展開される語に含まれていない場合には、たとえインデクスが大きいとしても、そのn−gramに文字列を増やしたサイズの小さなインデクスを作成しない。
【0162】
こうすることにより、インデクスが大きく検索に時間が掛かり、かつ同義語の検索の様に複数語に対して検索を行わなければならない場合でも、検索を高速化することが可能となる。また、インデクスは大きいが、複数に展開される語に含まれていないn−gramに対しては、文字列を増やしたインデクスを作成しない為、総インデクスサイズを抑えることが可能となる。
【0163】
以上により、新聞記事や特許明細書の様に日々件数が増大していく大規模な文書データベースにおいて、出現頻度が高い、すなわちインデクスが大きい検索タームが指定され、その検索タームの同義語の検索も同時に行うことが指定された場合でも、総インデクスサイズの最小限の増加で高速な検索が実現できることになる。
【0164】
(実施形態4)
以下にインデクスサイズが大きく処理時間の大きいインデクスについて、当該インデクスに対応するn−gramに文字列を追加した拡張n−gramと拡張n−gramに対応するインデクスを作成する実施形態4の文書検索システムについて説明する。
【0165】
本実施形態は、インデクスの読込み及び隣接判定により検索タームの出現位置情報を取得する際に、その処理時間を計測しておき、その処理時間が予め定められた目標検索時間を超過した場合には、取得した出現位置情報をインデクス化し、磁気ディスク装置へ格納する方法である。
【0166】
検索に時間が掛かる検索タームについては一度検索を行えば、二度目からは一度目に作成したインデクスの読込みだけで検索タームの出現位置情報が取得できる為、インデクスが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高いn−gramに対しての検索の高速化を、総インデクスサイズの最低限の増加で実現できることになる。しかも、一度目の検索時に取得した出現位置情報をそのままインデクスとして利用できる為、高速なインデクス作成を行うことができる。
【0167】
本実施形態は基本的に実施形態1(図1)と同様の構成をとるが、その中の主記憶装置109内の構成が異なる。
【0168】
図17は本実施形態の主記憶装置109cの概略構成を示す図である。主記憶装置109cには、システム制御プログラム110c、文書登録制御プログラム111、検索制御プログラム113c、インデクス作成登録プログラム114、検索及びインクリメントプログラム2000が格納されると共にトライ格納テーブル122及びワークエリア124が確保される。検索及びインクリメントプログラム2000はインデクス検索プログラム120及びインデクス作成プログラム2001で構成される。
【0169】
以上のプログラムは磁気ディスク装置106、フロッピディスク105やCD−ROM等のコンピュータで読み書きできる記録媒体に格納することもできる。
【0170】
なおインデクス作成プログラム2001は、インデクス検索プログラム120における処理時間を測定し、該処理時間が予め定められた基準処理時間より長い場合に、インデクス検索プログラム120において得られた位置情報をインデクスとして登録するインデクス作成ステップの処理を行う。
【0171】
システム制御プログラム110cはキーボード101からの指示を受け起動する。文書登録制御プログラム111はキーボード101からの文書登録指示により、システム制御プログラム110cによって起動され、インデクス作成登録プログラム114の制御を行う。検索制御プログラム113cはキーボード101からの検索指示により、システム制御プログラム110cによって起動され、検索及びインクリメントプログラム2000の制御を行う。
【0172】
以下、実施形態1と異なる検索及びインクリメントプログラム2000の処理概要を説明する。検索の際には、キーボード101からの検索指示により、システム制御プログラム110cが検索制御プログラム113cを起動し、検索制御プログラム113cが検索及びインクリメントプログラム2000を起動する。
【0173】
図18は本実施形態のインクリメントプログラム2000の処理内容を示す図である。図18に示す様に検索及びインクリメントプログラム2000は、まずステップ2100でインデクス検索プログラム120を起動し、キーボード101から入力された検索タームのテキスト107における出現位置情報をインデクス108から取得すると共に、インデクス検索プログラム120の処理時間を計測する。インデクス検索プログラム120の処理内容は方法1及び公知例1に開示されている方法と同様である。
【0174】
そして、計測した処理時間が予め定められた目標検索時間を超過したとステップ2101で判断された場合には、ステップ2102でインデクス作成プログラム2001を起動し、取得した出現位置情報をインデクス108として磁気ディスク装置106に格納する。
【0175】
そして、ステップ2103で、検索タームをキーとしてトライ格納テーブル122に登録し、インデクスへのポインタ情報を格納する。このトライ格納テーブル122へのキーの追加方法は公知例1に開示されている方法と同様である。以上が本実施形態における処理内容の概要である。
【0176】
以下、本実施形態における処理内容のうち、実施形態1と異なる検索及びインクリメントプログラム2000の処理内容を具体例を用いて詳細に説明する。
【0177】
検索及びインクリメントプログラム2000の処理内容は図18に示すとおりである。まずステップ2100で、インデクス検索プログラム120を起動し、キーボード101から入力された検索タームのテキスト107における出現位置情報をインデクス108から取得すると共に、インデクス検索プログラム120の処理時間を計測する。インデクス検索プログラム120の処理内容は方法1及び公知例1に開示されている方法と同様である。
【0178】
図19は本実施形態のインクリメントプログラム2000の処理例を示す図である。本図に示す例では、検索タームとして“生物”が指定されている。その為、インデクス検索プログラム120は“生”のインデクス202と“物”のインデクス203を磁気ディスク装置106からワークエリア124に読み込み、これらのインデクス間で隣接判定を行うことにより、“生物”の出現位置情報2200を取得する。
【0179】
検索及びインクリメントプログラム2000は、このインデクス検索プログラム120の処理時間を計測しておく。そして、計測した処理時間が予め定められた目標検索時間を超えているとステップ2101で判断された場合には、ステップ2102でインデクス作成プログラム2001を起動し、取得した出現位置情報2200をインデクス108として磁気ディスク装置106に格納する。
【0180】
図19に示す例では、インデクス検索プログラム120の処理時間は予め定められた目標検索時間を超えている為、“生物”の出現位置情報2200を“生物”のインデクス2201として磁気ディスク装置106に格納する。
【0181】
最後に、ステップ2103で、検索タームをキーとしてトライ格納テーブル122に登録し、インデクスへのポインタ情報を格納する。このトライ格納テーブル122へのキーの追加方法は公知例1に開示されている方法と同様である。
【0182】
以上説明した様に、本実施形態では、インデクスの読込み及び隣接判定により検索タームの出現位置情報を取得する際に、その処理時間を計測しておき、その処理時間が予め定められた目標検索時間を超過した場合には、取得した出現位置情報をインデクス化し、磁気ディスク装置106へ格納する。
【0183】
検索に時間が掛かる検索タームについては一度検索を行えば、二度目からは一度目に作成したインデクスの読込みだけで検索タームの出現位置情報が取得できる為、インデクスが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高いn−gramに対しては、検索を高速化することが可能となる。
【0184】
また、インデクスは大きいが、検索に用いられないn−gramに対しては、文字列を増やしたインデクスを作成しない為、総インデクスサイズを抑えることが可能となる。しかも、一度目の検索時に取得した出現位置情報をそのままインデクスとして利用できる為、高速なインデクス作成が可能となる。
【0185】
以上により、新聞記事や特許明細書の様に日々件数が増大していく大規模な文書データベースにおいて、出現頻度が高い、すなわちインデクスが大きい検索タームが指定された場合でも、総インデクスサイズの最小限の増加で高速な検索が実現できることになる。
【0186】
【発明の効果】
本発明によればインデクスサイズが大きく検索に時間が掛かり、かつ検索に用いられる可能性が高い部分文字列に対してのみ、文字数を増やしたサイズの小さなインデクスを作成するので、検索性能の高速化を図ると共に総インデクスサイズの増加を最小限に抑えることが可能である。
【図面の簡単な説明】
【図1】実施形態1の文書検索システムの概略構成を示す図である。
【図2】実施形態1の検索プログラム119の処理内容を示す図である。
【図3】実施形態1のインクリメントプログラム115の処理内容を示す図である。
【図4】実施形態1の文書検索システムの処理例を示す図である。
【図5】実施形態1の更新前の参照頻度テーブル123の初期状態を示す図である。
【図6】実施形態1の検索タームとして“微生物”が指定された場合の参照頻度テーブル123の更新結果を示す図である。
【図7】実施形態1の検索ターム“生物”における参照頻度テーブル更新プログラム121の処理内容を示す図である。
【図8】実施形態2の主記憶装置109aの概略構成を示す図である。
【図9】実施形態2のインクリメントプログラム115aの処理内容を示す図である。
【図10】実施形態2の重要語テーブル1103の一例を示す図である。
【図11】実施形態2のインクリメントプログラム115aの処理内容の例を示す図である。
【図12】実施形態3の主記憶装置109bの概略構成を示す図である。
【図13】実施形態3の検索プログラム119bの処理内容を示す図である。
【図14】実施形態3のインクリメントプログラム115bの処理内容を示す図である。
【図15】実施形態3の同義語展開用辞書1502による検索タームの同義語展開の例を示す図である。
【図16】実施形態3のインクリメントプログラム115bの処理内容を示す図である。
【図17】実施形態4の主記憶装置109cの概略構成を示す図である。
【図18】実施形態4のインクリメントプログラム2000の処理内容を示す図である。
【図19】実施形態4のインクリメントプログラム2000の処理例を示す図である。
【図20】従来の1−gramインデクス方式の一例を示す図である。
【図21】従来のキー集合{baby、badge、badger、jar}に対応するトライの構成を示す図である。
【図22】従来の公知例1の処理内容を示す図である。
【符号の説明】
100…ディスプレイ、101…キーボード、102…CPU、103…バス、104…FDD、105…フロッピディスク、106…磁気ディスク装置、107…テキスト、108…インデクス、109…主記憶装置、110…システム制御プログラム、111…文書登録制御プログラム、112…インクリメント制御プログラム、113…検索制御プログラム、114…インデクス作成登録プログラム、115…インクリメントプログラム、116…インデクスサイズ比較プログラム、117…参照頻度比較プログラム、118…n−gramインクリメントプログラム、119…検索プログラム、120…インデクス検索プログラム、121…参照頻度テーブル更新プログラム、122…トライ格納テーブル、123…参照頻度テーブル、124…ワークエリア、1100…重要語登録制御プログラム、1101…重要文字列検索プログラム、1102…重要語登録プログラム、1103…重要語テーブル、1500…展開語検索プログラム、1501…検索ターム展開プログラム、1502…同義語展開用辞書、1800…展開後検索ターム、2000…インクリメントプログラム、2001…インデクス作成プログラム、2200…出現位置情報、2201…インデクス、200〜203…インデクス、400…インデクス、401…トライ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a document search system that searches for a desired document from a large-scale document database that increases daily, such as newspaper articles and patent specifications, and in particular searches for the entire text of a document for the presence of a specified character string. The present invention relates to a technique effective when applied to a document search system for full text search.
[0002]
[Prior art]
There is an n-gram index method (hereinafter referred to as method 1) as a method for quickly searching a document including a specified search character string (hereinafter referred to as a search term) from a large-scale document database.
[0003]
In the n-gram index method, the appearance position information of all n-grams (character strings consisting of consecutive n characters) in a document is stored as an index when the document is registered, and n in the search term is retrieved. A method of searching for a document in which a search term appears by referring to the index with respect to -gram and determining whether the positional relationship in the search term is equal to the positional relationship in the index (hereinafter referred to as adjacency determination) It is.
[0004]
FIG. 20 is a diagram showing an example of a conventional 1-gram index method. As shown in the figure, in the method 1, at the time of document registration, the appearance position information is stored as an index for all n-grams in the document (n = 1 in the example of FIG. 20). For example, since 1-gram “ni” appears at the “3” character of the document “001”, the document number “001” and the character position “3” are stored in the index 200 corresponding to “ni”.
[0005]
At the time of a search, the appearance position information of a search term is acquired by performing adjacency determination of the appearance position information between n-gram indexes extracted from a specified search term. For example, when “microorganism” is designated as a search term, 1-gram “fine”, “raw”, and “thing” are first extracted from this search term. Then, the appearance position information of “microorganism” is obtained by performing adjacent determination of the appearance position information among the index 201 corresponding to “fine”, the index 202 corresponding to “raw”, and the index 203 corresponding to “thing”. get. In the example of this figure, “Fine”, “Raw” and “Object” are adjacent to each other from the “9” character of the document number “001” and the “5” character of the document number “056”. Therefore, it turns out that "microorganisms" exist in those appearance positions.
[0006]
As described above, method 1 can perform a search only by reading an index and determining the adjacency determination of appearance position information without scanning the document. Therefore, even when applied to a large-scale document database, high-speed full-text search can be realized. there is a possibility.
[0007]
However, in Method 1, when n is 1, that is, when an index of 1-gram is used, since 1-gram has a high appearance frequency in all documents (in the database), appearance position information for one 1-gram increases. , The size of each index increases. For this reason, not only does it take time to read an index, but also the number of adjacent determinations based on the appearance position information increases, which causes a problem that it takes time to search.
[0008]
In order to speed up the search, it is necessary to create a small index with a larger value of n. However, make sure that all the small indexes of n are created so that the search can be performed even when a short search term is specified. There must be. As a result, the total index size becomes enormous.
[0009]
In addition, in the index type document retrieval method such as method 1, “Key search technique—IV try and its application” (Junichi Aoe, Information Processing Vol.34, No.2, 1993, pp.244-251). It is necessary to manage character strings (n-gram in the case of method 1) with a tree structure like the trie described.
[0010]
A trie is a tree structure created by grouping forward substrings common to each keyword (hereinafter referred to as a key) in a character string to be searched, that is, a set of keywords (hereinafter referred to as a key set). It is.
[0011]
This trie is used for registration and search, and by searching for the trie by tracing the key with the character string to be registered or the character string in the search term, pointer information indicating the index corresponding to the character string is obtained. Can do. Since the time required to search for a trie does not depend on the number of keys, it is characterized in that keywords can be searched at high speed even when applied to a large database.
[0012]
FIG. 21 is a diagram showing the structure of a trie corresponding to a conventional key set {baby, badge, badger, jar}. In this trie, branch label b (302) is defined from clause 1 (300) to clause 2 (301), and pointer information to the index for the key is set in the clause corresponding to the end of the key indicated by a double circle. .
[0013]
For example, when “baby” is designated as a search term, the pointer information Pt1 set in clause 5 (303) is obtained by searching for a trie in this figure using the character string “baby”. The index corresponding to the search term “baby” is stored at the destination indicated by the pointer information Pt1.
[0014]
In Method 1, when managing an n-gram using this trie, if an index with a longer n-gram is created in order to reduce the size of each index and increase the search speed, the type of n-gram is changed. As the number of trials increases and the number of trials increases, there is a problem that the scale of the whole trial becomes enormous.
[0015]
In order to solve the contradictory problems described above, that is, an increase in search time and an increase in the total index size and the tree structure size for managing the index, the index size is a certain reference value (hereinafter referred to as the reference index size). Only for n-grams exceeding), by increasing the value of n and creating a small index, it is always possible to read a small index and determine the adjacency of appearance position information. A document retrieval method and apparatus that realizes retrieval and prevents the enlargement of the size of the total index size and the tree structure that manages the index (which will be described in the following) will be disclosed in Japanese Patent Laid-Open No. 8-194718 (hereinafter referred to as known example 1). Are disclosed).
[0016]
FIG. 22 is a diagram showing the processing contents of the conventional example 1 of the related art. In this method, an index corresponding to n-gram is created when a document is registered, and connection information of two characters in the document is registered in the trie 401. Then, when the document is registered and the index size exceeds the reference index size, an index of an n-gram (hereinafter referred to as an extended n-gram) obtained by adding a character string to the corresponding n-gram is used. create.
[0017]
Hereinafter, the index creation method will be described in detail with reference to FIG. In order to create an extended n-gram in which a character string is added to an n-gram, an n-gram that may follow the n-gram is first acquired by referring to the trie 401.
[0018]
And between the index of the detected n-gram (hereinafter referred to as connection n-gram) and the index of the n-gram (hereinafter referred to as reference index excess n-gram) whose size is larger than the reference index size. An extension n-gram index is created by performing adjacency determination on appearance position information.
[0019]
In the example of this figure, the index corresponding to 1-gram “raw” is larger than the reference index size, and “raw” is the reference index excess n-gram. Here, first, the trie 401 is searched with the characters “raw”, and the connection n-gram following “raw” is acquired. In the example shown in the figure, by searching for the try 401, it can be seen that “raw” and “breath” follow “raw”. Therefore, character strings were added to “live” such as “living” and “inhabiting” by performing adjacent determination of appearance position information between the indexes of “raw” and “things” and “raw” and “breath”. An extended n-gram index 400 is created.
[0020]
As described above, by using the document search method and apparatus disclosed in the known example 1, for an index that is large in size and takes a long time to search, an extended n− that is obtained by adding a character string to the n−gram. Since an index for a gram is created, it is only necessary to read a small-sized index and determine the adjacency of appearance position information, thereby realizing a high-speed search. In addition, for other indexes, since an index with an increased n-gram length is not created, it is possible to prevent an increase in the total index size and the tree structure (tri) size for managing the n-gram. .
[0021]
[Problems to be solved by the invention]
According to the document search method and apparatus disclosed in the known example 1 described above, for an index that is larger than the reference index size and takes a long time to search, a character string is added to the key n-gram. Since a small-sized index is created, reading of a small-sized index and adjacency determination of appearance position information can be completed, and high-speed search can be realized. In addition, for an index having a size smaller than the reference index size, since an index with a longer n-gram is not created, the tree structure (tri) size for managing the total index size and the n-gram is prevented from being enlarged. It becomes possible.
[0022]
However, in the document search method and apparatus disclosed in the known example 1, an extended n-gram index is created by adding a character string to the n-gram based only on the size of the index. As a result, when the index size becomes large even for n-grams (for example, hiragana used as particles) that are rarely used in search, an extended n-gram index is created. Will be.
[0023]
Since these n-grams are rarely used for searching, there is a problem that even if the cost of the index size is paid, the merit of speeding up the search performance cannot be obtained, resulting in a useless index. is there.
[0024]
An object of the present invention is to provide a technique capable of solving the above-described problems, speeding up search performance, and minimizing an increase in the total index size.
[0025]
[Means for Solving the Problems]
According to the present invention, in a document search system for searching text data including a specific search term, the size of an index corresponding to a partial character string created from the text data is larger than a reference index size, and the partial character string corresponding to the index is When the possibility of searching is high, an extended partial character string obtained by adding a character string to the partial character string and an index corresponding to the extended partial character string are created.
[0026]
In the document search system of the present invention, first, in the index creation / registration step, for a text database in which document information is stored as character code data, a predetermined partial character string from the registration target text data and the target text of the partial character string Text identification information in the data and position information including appearance position information are extracted, the position information is stored as an index, and the partial character string and the partial character string table for managing the storage position of the index are updated.
[0027]
When searching for text data including a specific search term, an index search step refers to the partial character string table, extracts a predetermined partial character string from the search term, reads the corresponding index, Extracts position information of text data having the same positional relationship as the partial character string.
[0028]
On the other hand, in the index size comparison step, the size of the index corresponding to the partial character string created from the text data is compared with a predetermined reference index size, and when the size of the index is larger than the reference index size, In the search possibility determination step, it is determined whether or not the partial character string corresponding to the index is highly likely to be searched in the index search step.
[0029]
If the partial character string is likely to be searched in the index search step, the character string increment step corresponds to the extended partial character string obtained by adding the character string to the partial character string and the extended partial character string. An index is created and the partial character string table is updated.
[0030]
The search possibility determination step determines whether or not a partial character string corresponding to a specific index is highly likely to be searched in the index search step, for example, according to a reference frequency corresponding to the index.
[0031]
That is, when the index is read in the index search step, the reference frequency table that manages the number of times the index is read is updated by the reference frequency table update step, and the reference frequency comparison step that is the search possibility determination step includes: The reference frequency corresponding to the index in the reference frequency table is compared with a predetermined standard reference frequency, and when the reference frequency corresponding to the index in the reference frequency table is larger than the standard reference frequency, An extended partial character string obtained by adding a character string to the partial character string and an index corresponding to the extended partial character string are created by a character string increment step.
[0032]
The searchability determination step may determine whether or not there is a high possibility that a partial character string corresponding to a specific index is searched in the index search step according to an important word input by the user.
[0033]
That is, the important word input by the user is stored in the important word table by the important word registration step, and the important character string search step, which is the search possibility determination step, includes the partial character string corresponding to the index as the important word. Check whether it is included in a key word stored in the table. When the partial character string corresponding to the index is included in the important word of the important word table, an extended partial character string obtained by adding a character string to the partial character string and an index corresponding to the extended partial character string are displayed. Created by the string increment step.
[0034]
Further, the search possibility determination step determines whether or not there is a high possibility that a partial character string corresponding to a specific index is searched in the index search step according to a related word in which words that are related to each other are related in advance. You may judge.
[0035]
That is, a related word file in which related words are stored in association with each other in advance is created, and the expanded word search step, which is the searchability determination step, includes a partial character string corresponding to the index in the related word table. To see if it is included in the related terms stored in. When a partial character string corresponding to the index is included in the related word of the related word table, an extended partial character string obtained by adding a character string to the partial character string and an index corresponding to the extended partial character string are displayed. Created by the string increment step.
[0036]
The related word file is a file used by the search term expansion step when extracting the position information of the text data having the same positional relationship as the search term and the partial character string in the related word in the index search step.
[0037]
As described above, according to the present invention, when a partial character string having an index size larger than the standard index size is compared with the reference frequency of the index and a predetermined standard reference frequency, the partial character string is larger than the standard reference frequency. By creating an index with a small size by adding a character string to the substring, search is performed for substrings that have a large index and take a long time to search and are likely to be used for the search. It is possible to increase the speed.
[0038]
In addition, for substrings that are large in index but are not often used in search (for example, hiragana used as particles), an index with an increased string is not created, so the total index size Can be suppressed. As a result, it is possible to realize a document search system capable of improving the search performance with a minimum increase in the total index size.
[0039]
As described above, according to the document search system of the present invention, a small index with a large number of characters is added only to a partial character string that has a large index size and takes a long time to search and is likely to be used for the search. Therefore, the search performance can be increased and the increase in the total index size can be minimized.
[0040]
DETAILED DESCRIPTION OF THE INVENTION
(Embodiment 1)
The document search system according to the first embodiment that creates an extended n-gram obtained by adding a character string to an n-gram corresponding to the index and an index corresponding to the extended n-gram for an index having a large size and a high reference frequency. explain.
[0041]
FIG. 1 is a diagram showing a schematic configuration of a document search system according to the present embodiment. The document retrieval system of this embodiment includes a display 100, a keyboard 101, a central processing unit (CPU) 102, a magnetic disk device 106 as a secondary storage device that stores text 107 and an index 108, and a floppy disk drive (FDD) 104. The main storage device 109 is configured. Further, the CPU 103, the magnetic disk device 106, the FDD 104, and the main storage device 109 are connected to the bus 103.
[0042]
Information stored in the floppy disk 105 is accessed by the FDD 104. The main storage device 109 stores a system control program 110, a document registration control program 111, an increment control program 112, a search control program 113, an index creation registration program 114, an increment program 115, a search program 119 and a tri storage table 122. A reference frequency table 123 and a work area 124 are secured.
[0043]
The increment program 115 includes an index size comparison program 116, a reference frequency comparison program 117, and an n-gram increment program 118. The search program 119 includes an index search program 120 and a reference frequency table update program 121.
[0044]
The above program can be stored in a recording medium that can be read and written by a computer, such as the magnetic disk device 106, the floppy disk 105, and a CD-ROM.
[0045]
The index search program 120 performs an index search step of extracting position information of text data having the same positional relationship as the partial character string in the search term by using an index corresponding to the partial character string of the search term.
[0046]
The index size comparison program 116 performs an index size comparison step process for comparing the size of the index corresponding to the partial character string created from the text data with a predetermined reference index size.
[0047]
The reference frequency comparison program 117 compares the reference frequency corresponding to the index in the reference frequency table 123 with a predetermined standard reference frequency when the size of the index is larger than the standard index size, and The reference frequency comparison step is performed to determine whether or not the partial character string corresponding to is likely to be searched by the index search program 120.
[0048]
The n-gram increment program 118 corresponds to an extended partial character string obtained by adding a character string to the partial character string and the extended partial character string when there is a high possibility that the partial character string will be searched by the index search program 120. The character string increment step for creating the index to be performed is performed.
[0049]
The reference frequency table update program 121 performs a process of a reference frequency table update step for updating the reference frequency table 123 that manages the number of times the index is read.
[0050]
The system control program 110 is activated in response to an instruction from the keyboard 101. The document registration control program 111 is activated by the system control program 110 in response to a document registration instruction from the keyboard 101 and controls the index creation / registration program 114.
[0051]
The increment control program 112 is activated by the system control program 110 in response to an increment instruction from the keyboard 101 and controls the increment program 115. The search control program 113 is activated by the system control program 110 in response to a search instruction from the keyboard 101 and controls the search program 119.
[0052]
Hereinafter, an outline of the processing content in the present embodiment will be described. At the time of registration, the system control program 110 activates the document registration control program 111 in response to a document registration instruction from the keyboard 101. Then, the document registration control program 111 activates the index creation / registration program 114, reads text data from the floppy disk 105 and stores it as text 107 in the magnetic disk device 106, and information on the occurrence position of a predetermined n-gram in the text 107. Is stored in the magnetic disk device 106 as an index 108.
[0053]
The processing content of the index creation / registration program 114 is the same as the method disclosed in the known example 1. The text data is not limited to be input using the floppy disk 105, but can be configured to be input from another device using a communication line, a CD-ROM device (not shown), or the like.
[0054]
In the search, the system control program 110 starts the search control program 113 and the search control program 113 starts the search program 119 in response to a search instruction from the keyboard 101.
[0055]
FIG. 2 is a diagram showing the processing contents of the search program 119 of this embodiment. As shown in a PAD (Problem Analysis Diagram) diagram of FIG. 2, the search program 119 starts the index search program 120 in step 600, and the appearance position information in the text 107 of the search term input from the keyboard 101 is retrieved from the index 108. get. The processing content of the index search program 120 is the same as the method disclosed in Method 1 and Known Example 1.
[0056]
In step 601, the reference frequency table update program 121 is activated to update the corresponding reference frequency in the reference frequency table 123 corresponding to the index used in the index search program 120.
[0057]
At the time of increment, the system control program 110 activates the increment control program 112 and the increment control program 112 activates the increment program 115 according to the increment instruction from the keyboard 101.
[0058]
FIG. 3 is a diagram showing the processing contents of the increment program 115 of this embodiment. As shown in FIG. 3, the increment program 115 repeats a series of processing from step 701 to step 705 for all indexes in step 700.
[0059]
During this repetitive process, the increment program 115 first activates the index size comparison program 116 in step 701, and compares the size of the index to be processed with a predetermined reference index size.
[0060]
If it is determined in step 702 that the processing target index is larger than the reference index size, the reference frequency comparison program 117 is started in step 703 and the reference frequency of the processing target index stored in the reference frequency table 123 is set. A predetermined reference frequency is compared.
[0061]
If it is determined in step 704 that the reference frequency of the processing target index is higher than the reference reference frequency, the n-gram increment program 118 is started in step 705 and characters are added to the n-gram that is the key of the processing target index. Create a small index with columns added. The processing content of the n-gram increment program 118 is the same as the method disclosed in the known example 1.
[0062]
FIG. 4 is a diagram showing a processing example of the document search system of this embodiment. Hereinafter, an outline of processing according to the present embodiment will be described with reference to FIG. Since the process of the index creation / registration program 114 is the same as the method disclosed in the known example 1, it is omitted.
[0063]
First, the processing outline of the search program 119 will be described. The index search program 120 extracts a predetermined n-gram from a search term input by the user with reference to an n-gram table such as a trie, and acquires the storage location of the index corresponding to the n-gram. Then, the index is read from the storage position of the index corresponding to the acquired n-gram, and the position information having the same positional relationship as the n-gram in the search term is extracted. This position information acquisition step is the same processing as the method disclosed in the method 1 and the known example 1.
[0064]
The reference frequency table update program 121 updates the index reference frequency (number of times read) read in the position information acquisition step. In the example of FIG. 4, “microorganism” and “organism” are used as search terms, so the reference frequency corresponding to “Fine” is “1”, and the reference frequency corresponding to “Raw” is “2” “thing”. The reference frequency corresponding to is updated to “2”. Here, since the index corresponding to “ni” is not used in the search, the reference frequency remains “0”.
[0065]
Next, an outline of processing of the increment program 115 will be described. The index size comparison program 116 compares the size of the index corresponding to the n-gram created from the text data by the index creation registration program 114 with a predetermined reference index size.
[0066]
When the index size comparison program 116 determines that the size of the index corresponding to n-gram is larger than a predetermined reference index size, the reference frequency comparison program 117 sets the reference frequency corresponding to the index to the reference frequency table. 123 and is compared with a predetermined reference frequency.
[0067]
When the reference frequency comparison program 117 determines that the reference frequency of the index corresponding to n-gram is higher than a predetermined standard reference frequency, the n-gram increment program 118 uses the n−gram corresponding to the corresponding index. An extended n-gram with a character string added to gram and an index corresponding to the extended n-gram are created.
[0068]
The index size comparison program 116 and the n-gram increment program 118 are the same as the method disclosed in the known example 1. In the case of the example shown in FIG. 4, the indexes “ni” and “raw” are large, and the index size comparison program 116 determines that the index is larger than the reference index size. Therefore, the reference frequency comparison program 117 is executed for “ni” and “raw”.
[0069]
In the reference frequency comparison program 117, “Ni” and “Raw” reference frequencies are acquired from the reference frequency table 123 and compared with a predetermined reference frequency. In the case of the example shown in FIG. 4, the standard reference frequency is “1”. As a result, it is determined that only the reference frequency corresponding to “raw” is higher than the standard reference frequency, and the n-gram increment program 118 is executed, so that an extended n-gram in which a character string is added to “raw” is supported. The index to be created is created. Here, since the reference frequency corresponding to “ni” is less than the standard reference frequency, an extended n-gram index is not created even though the index is large.
[0070]
As described above, in the present embodiment, for an n-gram having an index larger than the standard index size, the reference frequency to the index is compared with a predetermined standard reference frequency, and the n-gram is larger than the standard reference frequency. Creates a small index with a character string added to the n-gram. When the reference frequency is lower than the standard reference frequency, even if the index is large, a small-sized index obtained by increasing the character string in the n-gram is not created.
[0071]
By doing so, it is possible to speed up the search for an n-gram that has a large index and takes a long time to search and is likely to be used for the search. For n-grams (for example, hiragana characters used as particles) that are large in index but are not often used in search, an index with an increased character string is not created, so the total index size Can be suppressed. As a result, it is possible to improve search performance with a minimum increase in the total index size.
[0072]
Hereinafter, the processing contents of the search program 119 and the increment program 115 different from the method disclosed in the known example 1 among the processing contents in the present embodiment will be described in detail using specific examples.
[0073]
The processing contents of the search program 119 are as shown in FIG. First, in step 600, the index search program 120 is activated, and the appearance position information in the text 107 of the search term input from the keyboard 101 is acquired from the index 108. The contents of this processing are the same as the method disclosed in Method 1 and Known Example 1 as shown in FIG. 20 (n = 1 in the example of FIG. 20).
[0074]
For example, when “microorganism” is designated as a search term, 1-gram “fine”, “raw” and “thing” are first extracted from this search term. Then, the appearance position information of “microorganism” is acquired by performing adjacency determination of the appearance position information among the index 201 corresponding to “fine”, the index 202 corresponding to “raw”, and the index 203 corresponding to “thing”. .
[0075]
In the example of this figure, “Fine”, “Raw” and “Object” are adjacent from the “9” character of the document number “001” and from the “5” character of the document number “056”. It can be seen that “microorganism” exists at the position indicated by.
[0076]
Next, in step 601, the reference frequency table update program 121 is activated to update the corresponding reference frequency in the reference frequency table 123 corresponding to the index used in the index search program 120.
[0077]
FIG. 5 is a diagram illustrating an initial state of the reference frequency table 123 before update according to the present embodiment. As shown in the figure, the reference frequency table 123 includes entries that store reference frequencies corresponding to individual indexes.
[0078]
FIG. 6 is a diagram showing an update result of the reference frequency table 123 when “microorganism” is designated as the search term of this embodiment. The index search program 120 acquires the appearance position information of “microorganisms” using the 1-gram “fine”, “raw”, and “thing” indexes. Therefore, the reference frequency table update program 121 increases the corresponding reference frequency of the reference frequency table 123 corresponding to the indexes “fine”, “raw”, and “thing” to “1”. At this time, the location corresponding to the index “ni” remains “0”.
[0079]
Next, it is assumed that “organism” is designated as the search term. At this time, the index search program 120 uses the 1-gram “raw” and “thing” indexes to obtain the appearance position information of “living organism”. Therefore, in the reference frequency table update program 121, the corresponding reference frequency in the reference frequency table 123 corresponding to the “raw” and “thing” indexes is increased by “1”.
[0080]
FIG. 7 is a diagram showing the processing contents of the reference frequency table update program 121 in the search term “living organism” of the present embodiment. The reference frequency corresponding to the indexes of “raw” and “thing” is “2”, the reference frequency of “ni” remains “0”, and the reference frequency of “fine” remains “1”. The above is the detailed processing content of the search program 119.
[0081]
The processing contents of the increment program 115 are as shown in FIG. First, in step 700, a series of processing from step 701 to step 705 is repeated for all indexes created from the text 107.
[0082]
In this repetitive processing, first, in step 701, the index size comparison program 116 is started, and the size of the processing target index is compared with a predetermined reference index size. In the example shown in FIG. 4, the “ni” and “raw” indexes are larger than the reference index size.
[0083]
Next, if it is determined in step 702 that the index is larger than the reference index size, the reference frequency comparison program 117 is started in step 703, and the reference frequency of the processing target index stored in the reference frequency table 123 is stored in advance. Compare established standard reference frequencies.
[0084]
If it is determined in step 704 that the reference frequency is higher than the standard reference frequency, the n-gram increment program 118 is started in step 705 and a character string is added to the n-gram that is the key of the index to be processed. Create a small index.
[0085]
In the example of FIG. 4, since it is determined that the indexes “ni” and “raw” are larger than the standard index size, the reference frequencies corresponding to these indexes are compared with a predetermined standard reference frequency.
[0086]
In the example of FIG. 4, the reference reference frequency is 1. Therefore, a “raw” index with a reference frequency of “2” is a processing target of the n-gram increment program 118, but an index of “ni” with a reference frequency of “0” is an object of the n-gram increment program 118. Not subject to processing.
[0087]
Finally, a small index with a character string added to “raw” is created, and the process of the increment program 115 is terminated. The processing content of the n-gram increment program 118 is the same as the method disclosed in the known example 1 shown in FIG.
[0088]
As described above, in the present embodiment, for an n-gram having an index larger than the standard index size, the reference frequency to the index is compared with a predetermined standard reference frequency, and is greater than the standard reference frequency. In this case, a small index is created by increasing the character string in the n-gram.
[0089]
When the reference frequency is lower than the standard reference frequency, even if the index is large, a small-sized index obtained by increasing the character string in the n-gram is not created. By doing so, it is possible to speed up the search for an n-gram that has a large index and takes a long time to search and is likely to be used for the search.
[0090]
In addition, for n-grams (eg hiragana used as particles) that are large in index but are not often used in searches, the total index size is not created because an index with an increased character string is not created. Can be suppressed.
[0091]
As described above, even if a search term with a high frequency of occurrence, that is, a large index is specified in a large-scale document database whose number of articles increases every day, such as newspaper articles and patent specifications, the total index size is minimized. As a result, the high-speed search can be realized.
[0092]
As described above, according to the document search system of the present embodiment, only a partial character string that has a large index size and takes a long time to search and is likely to be used for the search has a small size with an increased number of characters. Since the index is created, it is possible to speed up the search performance and minimize the increase in the total index size.
[0093]
(Embodiment 2)
The document search according to the second embodiment for creating an extended n-gram in which a character string is added to an n-gram corresponding to the index and an index corresponding to the extended n-gram for an index having a large index size and included in an important word. The system will be described.
[0094]
In the present embodiment, when an index with a small size obtained by adding a character string to an n-gram having an index larger than the reference index size is created, it is searched whether the n-gram is included in the keyword specified by the user. However, this is a method of creating a small index with a character string added only when it is included.
[0095]
By having the user specify key words that are likely to be used frequently in searches, it is possible to speed up searches for n-grams that have a large index and take a long time to search. This can be achieved with a minimum increase in the total index size.
[0096]
This embodiment basically has the same configuration as that of the first embodiment (FIG. 1), but the configuration in the main storage device 109 is different.
[0097]
FIG. 8 is a diagram showing a schematic configuration of the main storage device 109a of this embodiment. The main storage device 109a includes a system control program 110a, a document registration control program 111, an increment control program 112, a search control program 113, a keyword registration control program 1100, an index creation registration program 114, an increment program 115a, a search program 119a, an important A word registration program 1102 is stored, and a trie storage table 122, an important word table 1103, and a work area 124 are secured.
[0098]
The increment program 115a includes an index size comparison program 116, an important character string search program 1101, and an n-gram increment program 118. The search program 119a is composed of an index search program 120. The above program can be stored in a recording medium that can be read and written by a computer, such as the magnetic disk device 106, the floppy disk 105, and a CD-ROM.
[0099]
The important character string search program 1101 checks whether or not the partial character string corresponding to the index is included in the important word stored in the important word table 1103, and the partial character string corresponding to the index is the index search program 120. The important character string search step is performed to determine whether or not there is a high possibility of being searched. The keyword registration program 1102 performs a keyword registration step for storing the keyword input by the user in the keyword table 1103.
[0100]
The system control program 110a is activated in response to an instruction from the keyboard 101. The document registration control program 111 is activated by the system control program 110a in response to a document registration instruction from the keyboard 101, and controls the index creation / registration program 114.
[0101]
The increment control program 112 is activated by the system control program 110a in response to an increment instruction from the keyboard 101, and controls the increment program 115a. The search control program 113 is activated by the system control program 110a in response to a search instruction from the keyboard 101, and controls the search program 119a. The keyword registration control program 1100 is activated by the system control program 110 a in response to a search instruction from the keyboard 101, and controls the keyword registration program 1102.
[0102]
Hereinafter, processing outlines of the search program 119a, the keyword registration program 1102, and the increment program 115a different from the first embodiment will be described.
[0103]
When searching, the system control program 110a starts the search control program 113 and the search control program 113 starts the search program 119a in response to a search instruction from the keyboard 101.
[0104]
The search program 119 a activates the index search program 120 and obtains the appearance position information in the text 107 of the search term input from the keyboard 101 from the index 108. The processing content of the index search program 120 is the same as the method disclosed in Method 1 and Known Example 1.
[0105]
When registering a key word, the system control program 110a starts the key word registration control program 1100 according to a key word registration instruction from the keyboard 101, and the key word registration control program 1100 starts the key word registration program 1102. The important word registration program 1102 stores the important words input from the keyboard 101 in the important word table 1103.
[0106]
At the time of increment, the system control program 110a activates the increment control program 112 according to an increment instruction from the keyboard 101, and the increment control program 112 activates the increment program 115a.
[0107]
FIG. 9 is a diagram showing the processing contents of the increment program 115a of this embodiment. As shown in FIG. 9, the increment program 115 a repeats a series of processing from step 1201 to step 1205 for all indexes created from the text 107 in step 1200.
[0108]
In this repetitive processing, first, in step 1201, the index size comparison program 116 is started, and the size of the processing target index is compared with a predetermined reference index size.
[0109]
If it is determined in step 1202 that the processing target index is larger than the reference index size, the important character string search program 1101 is started in step 1203 and stored in the important word table 1103 as the processing target n-gram. Search for important words.
[0110]
If it is determined in step 1204 that the processing target n-gram constitutes a part of the important word stored in the important word table 1103, the n-gram increment program 118 is started in step 1205. A small-sized index is created by adding a character string to the n-gram that is the key of the processing target index. The processing content of the n-gram increment program 118 is the same as the method disclosed in the known example 1. The above is the outline of the processing content in the present embodiment.
[0111]
Hereinafter, among the processing contents in the present embodiment, the processing contents of the method 1, the method disclosed in the known example 1, and the processing contents of the keyword registration program 1102 and the increment program 115a different from the first embodiment will be described in detail using specific examples. To do.
[0112]
The important word registration program 1102 stores the important words input from the keyboard 101 in the important word table 1103.
[0113]
FIG. 10 is a diagram showing an example of the important word table 1103 of this embodiment. In the example shown in this figure, the user builds a database with documents related to “microorganisms”, and the words “virus”, “bacteria”, “mold”, “yeast”, “bacteria” “Single-cell organism”, “microorganism”,... The important word registration program 1102 stores these input character strings in the important word table 1103 as important words.
[0114]
The processing contents of the increment program 115a are as shown in FIG. First, in step 1200, a series of processing from step 1201 to step 1205 is repeated for all indexes created from the text 107.
[0115]
In this repetitive processing, first, in step 1201, the index size comparison program 116 is started, and the size of the processing target index is compared with a predetermined reference index size. The processing contents of the index size comparison program 116 are the same as those in the first embodiment.
[0116]
FIG. 11 is a diagram showing an example of processing contents of the increment program 115a of the present embodiment. In the example shown in the figure, the “ni” and “raw” indexes are larger than the reference index size.
[0117]
Next, when it is determined in step 1202 that the processing target index is larger than the reference index size, the important character string search program 1101 is started in step 1203 and stored in the important word table 1103 as the processing target n-gram. Search for important words.
[0118]
If it is determined in step 1204 that the processing target n-gram constitutes a part of the important word stored in the important word table 1103, the n-gram increment program 118 is started in step 1205. A small-sized index is created by adding a character string to the n-gram that is the key of the processing target index.
[0119]
In the example of FIG. 11, since it is determined that the indexes “ni” and “raw” are larger than the reference index size, the important words stored in the important word table 1103 are searched using “ni” and “raw”. .
[0120]
In the example of FIG. 11, “living” is included in the important words “single cell organism” and “microorganism”, but there is no important word including “ni”. Therefore, the “raw” index is the processing target of the n-gram increment program 118, but the “ni” index is not the processing target of the n-gram increment program 118.
[0121]
Finally, a small index with a character string added to “raw” is created, and the process of the increment program 115a is terminated. The processing content of the n-gram increment program 118 is the same as the method disclosed in the known example 1 shown in FIG.
[0122]
As described above, in the present embodiment, for an n-gram having an index larger than the reference index size, whether or not the n-gram is included in the keyword specified by the user is included. In this case, a small index with a character string added to the n-gram is created.
[0123]
If n-gram is not included in the important word designated by the user, even if the index is large, an index with a small size in which the character string is increased is not created in the n-gram.
[0124]
For n-grams included in important words that have a large index and are likely to be used for searching by having the user specify important words that are often used for searching It becomes possible to speed up the search.
[0125]
In addition, for n-grams that are large in index but are not frequently used by the user for searching, an index with an increased character string is not created, so that the total index size can be suppressed.
[0126]
As described above, even if a search term with a high frequency of occurrence, that is, a large index is specified in a large-scale document database whose number of articles increases every day, such as newspaper articles and patent specifications, the total index size is minimized. As a result, the high-speed search can be realized.
[0127]
(Embodiment 3)
The document search according to the third embodiment that creates an extended n-gram in which a character string is added to an n-gram corresponding to the index and an index corresponding to the extended n-gram for an index that has a large index size and is included in a related word. The system will be described.
[0128]
If a user specifies a search term and specifies that a search is also performed for a word having the same meaning as the search term (hereinafter referred to as a synonym), the search term specified by the user is assumed to be one. However, the number of search terms that are actually searched increases, and the search takes time.
[0129]
Therefore, in this embodiment, when creating a small index by adding a character string to an n-gram having an index larger than the reference index size, the index is expanded into a plurality by referring to a dictionary and rules for synonym expansion. This is a method of searching for n-grams included in a word and creating a small index with a character string added only if included.
[0130]
This makes it possible to search at high speed with a minimum increase in the total index size, even if the index is large and it takes a long time to search, and multiple words must be searched like a synonym search. It will be possible.
[0131]
This embodiment basically has the same configuration as that of the first embodiment (FIG. 1), but the configuration in the main storage device 109 is different.
[0132]
FIG. 12 is a diagram showing a schematic configuration of the main storage device 109b of the present embodiment. The main storage device 109b stores a system control program 110, a document registration control program 111, an increment control program 112, a search control program 113, an index creation registration program 114, an increment program 115b, a search program 119b, and a tri storage table 122. The synonym expansion dictionary 1502 and the work area 124 are secured.
[0133]
The increment program 115b includes an index size comparison program 116, an expanded word search program 1500, and an n-gram increment program 118. The search program 119b includes a search term expansion program 1501 and an index search program 120.
[0134]
The above program can be stored in a recording medium that can be read and written by a computer, such as the magnetic disk device 106, the floppy disk 105, and a CD-ROM.
[0135]
The expanded word search program 1500 checks whether the partial character string corresponding to the index is included in the synonym stored in the synonym expansion dictionary 1502, and the partial character string corresponding to the index is the index search program 120. The expanded word search step is performed to determine whether or not there is a high possibility of being searched.
[0136]
Further, the search term expansion program 1501 searches the synonym expansion dictionary 1502 corresponding to the related word file in which the words related to each other are stored in advance in association with the search term, and one or more related to the search term. The index search program 120 performs a process of extracting position information of text data having the same positional relationship as the partial character string in the search term and the synonym.
[0137]
The system control program 110 is activated in response to an instruction from the keyboard 101. The document registration control program 111 is activated by the system control program 110 in response to a document registration instruction from the keyboard 101 and controls the index creation / registration program 114.
[0138]
The increment control program 112 is activated by the system control program 110 in response to an increment instruction from the keyboard 101, and controls the increment program 115b. The search control program 113 is activated by the system control program 110 in response to a search instruction from the keyboard 101, and controls the search program 119b.
[0139]
Hereinafter, processing outlines of the search program 119b and the increment program 115b different from the first embodiment will be described.
[0140]
When searching, the system control program 110 starts the search control program 113 and the search control program 113 starts the search program 119b in response to a search instruction from the keyboard 101.
[0141]
FIG. 13 is a diagram showing the processing contents of the search program 119b of this embodiment. As shown in FIG. 13, the search program 119b starts the search term expansion program 1501 in step 1600, searches the synonym expansion dictionary 1502 using the search terms input from the keyboard 101, and converts the search terms into a plurality of synonyms. expand.
[0142]
Next, in step 1601, the index search program 120 is started, and appearance position information in the text 107 of all synonyms expanded by the search term expansion program 1501 is acquired from the index 108. The processing content of the index search program 120 is the same as the method disclosed in Method 1 and Known Example 1.
[0143]
At the time of increment, the system control program 110 activates the increment control program 112 and the increment control program 112 activates the increment program 115b according to the increment instruction from the keyboard 101.
[0144]
FIG. 14 is a diagram showing the processing contents of the increment program 115b of this embodiment. As shown in FIG. 14, the increment program 115 b repeats a series of processing from step 1701 to step 1705 for all indexes created from the text 107 in step 1700.
[0145]
In this iterative process, first, in step 1701, the index size comparison program 116 is started, and the size of the processing target index is compared with a predetermined reference index size.
[0146]
If it is determined in step 1702 that the processing target index is larger than the reference index size, the expanded word search program 1500 is started in step 1703 and stored in the synonym expansion dictionary 1502 as the processing target n-gram. Search for synonyms.
[0147]
If it is determined in step 1704 that the processing target n-gram is included in a plurality of expanded words, the n-gram increment program 118 is started in step 1705, and the processing target index key n- Create a small index with a character string added to gram. The processing content of the n-gram increment program 118 is the same as the method disclosed in the known example 1. The above is the outline of the processing content in the present embodiment.
[0148]
Hereinafter, the processing contents of the search program 119b and the increment program 115b which are different from the processing contents in the first embodiment will be described in detail using specific examples.
[0149]
The processing contents of the search program 119b are as shown in FIG. First, in step 1600, the search term expansion program 1501 is started, the synonym expansion dictionary 1502 is searched with the search term input from the keyboard 101, and the search term is expanded into a plurality of synonyms.
[0150]
FIG. 15 is a diagram showing an example of search term synonym expansion by the synonym expansion dictionary 1502 of this embodiment. For example, assume that “computer” is designated as the search term. The search term expansion program 1501 searches the synonym expansion dictionary 1502 with this search term “computer” and acquires synonyms that are words having the same meaning as “computer”.
[0151]
In the example of the synonym expansion dictionary 1502 shown in FIG. 15, a set of synonyms is described in one line with a comma (,) as a delimiter. When “computer” is expanded into a set of synonyms using this synonym expansion dictionary 1502, “computer”, “electronic computer”, “computer”, “COMPUTER”, and “computer” are searched as expanded search terms 1800. can get.
[0152]
Next, in step 1601, the index search program 120 is started, and appearance position information in the text 107 of all synonyms expanded by the search term expansion program 1501 is acquired from the index 108. The processing content of the index search program 120 is the same as the method disclosed in Method 1 and Known Example 1.
[0153]
The processing contents of the increment program 115b are as shown in FIG. First, in step 1700, a series of processing from step 1701 to step 1705 is repeated for all indexes created from the text 107.
[0154]
In this iterative process, first, in step 1701, the index size comparison program 116 is started, and the size of the processing target index is compared with a predetermined reference index size. The processing contents of the index size comparison program 116 are the same as those in the first embodiment.
[0155]
FIG. 16 is a diagram showing the processing contents of the increment program 115b of this embodiment. In the example shown in the figure, the “ni” and “raw” indexes are larger than the reference index size.
[0156]
Next, if it is determined in step 1702 that the processing target index is larger than the reference index size, the expanded word search program 1500 is started in step 1703 and stored in the synonym expansion dictionary 1502 as the processing target n-gram. Search for synonyms that are being used.
[0157]
If it is determined in step 1704 that the processing target n-gram is included in a plurality of expanded words, the n-gram increment program 118 is started in step 1705, and the processing target index key n- Create a small index with a character string added to gram.
[0158]
In the example of FIG. 16, since it is determined that the indexes “ni” and “raw” are larger than the reference index size, the important words stored in the synonym expansion dictionary 1502 are “ni” and “raw”. Search for.
[0159]
In the example of FIG. 16, “raw” is included in “marine life” and “marine life”, but there is no word including “ni”. Therefore, the “raw” index is the processing target of the n-gram increment program 118, but the “ni” index is not the processing target of the n-gram increment program 118.
[0160]
Finally, a small index with a character string added to “raw” is created, and the process of the increment program 115b is terminated. The processing content of the n-gram increment program 118 is the same as the method disclosed in the known example 1 shown in FIG.
[0161]
As described above, in the present embodiment, with respect to an n-gram having an index larger than the reference index size, the n-gram included in a plurality of words is referred to by referring to a dictionary and rules for synonym expansion. If it is included, an index with a small size is created by increasing the character string in the n-gram. If n-gram is not included in a plurality of expanded words, even if the index is large, an index with a small size obtained by adding a character string to the n-gram is not created.
[0162]
This makes it possible to speed up the search even when the index is large and it takes a long time to search, and a search must be performed for a plurality of words like a search for synonyms. In addition, for n-grams that are large but not included in a plurality of expanded words, an index with an increased character string is not created, so that the total index size can be suppressed.
[0163]
As described above, a search term having a high frequency of occurrence, that is, a large index, is specified in a large-scale document database whose number of cases is increasing every day, such as newspaper articles and patent specifications, and synonyms of the search terms are also searched. Even if it is specified to be performed simultaneously, a high-speed search can be realized with a minimum increase in the total index size.
[0164]
(Embodiment 4)
The document search system according to the fourth embodiment that creates an extended n-gram obtained by adding a character string to an n-gram corresponding to the index and an index corresponding to the extended n-gram for an index having a large index size and a long processing time. Will be described.
[0165]
This embodiment measures the processing time when acquiring the search term appearance position information by reading the index and determining the adjacency, and if the processing time exceeds a predetermined target search time, In this method, the obtained appearance position information is indexed and stored in the magnetic disk device.
[0166]
For search terms that take a long time to search, once the search is performed, the appearance position information of the search term can be acquired only by reading the index created the first time, so the index is large and the search takes time. It is possible to increase the search speed for an n-gram that is highly likely to be used for a search with a minimum increase in the total index size. In addition, since the appearance position information acquired at the first search can be used as an index as it is, high-speed index creation can be performed.
[0167]
This embodiment basically has the same configuration as that of the first embodiment (FIG. 1), but the configuration in the main storage device 109 is different.
[0168]
FIG. 17 is a diagram showing a schematic configuration of the main storage device 109c of this embodiment. The main storage device 109c stores a system control program 110c, a document registration control program 111, a search control program 113c, an index creation registration program 114, a search and increment program 2000, and a trie storage table 122 and a work area 124. The The search and increment program 2000 includes an index search program 120 and an index creation program 2001.
[0169]
The above program can be stored in a recording medium that can be read and written by a computer, such as the magnetic disk device 106, the floppy disk 105, and a CD-ROM.
[0170]
The index creation program 2001 measures the processing time in the index search program 120, and registers the position information obtained in the index search program 120 as an index when the processing time is longer than a predetermined reference processing time. Process the creation step.
[0171]
The system control program 110c is activated in response to an instruction from the keyboard 101. The document registration control program 111 is activated by the system control program 110c in response to a document registration instruction from the keyboard 101, and controls the index creation / registration program 114. The search control program 113c is activated by the system control program 110c in response to a search instruction from the keyboard 101, and controls the search and increment program 2000.
[0172]
Hereinafter, a processing outline of the search and increment program 2000 different from the first embodiment will be described. When searching, the system control program 110 c starts the search control program 113 c and the search control program 113 c starts the search and increment program 2000 according to a search instruction from the keyboard 101.
[0173]
FIG. 18 is a diagram showing the processing contents of the increment program 2000 of this embodiment. As shown in FIG. 18, the search and increment program 2000 first starts the index search program 120 in step 2100, acquires the appearance position information in the text 107 of the search term input from the keyboard 101 from the index 108, and searches the index. The processing time of the program 120 is measured. The processing content of the index search program 120 is the same as the method disclosed in Method 1 and Known Example 1.
[0174]
If it is determined in step 2101 that the measured processing time has exceeded a predetermined target search time, the index creation program 2001 is started in step 2102 and the obtained appearance position information is set as the index 108 to the magnetic disk. Store in device 106.
[0175]
In step 2103, the search term is registered as a key in the trie storage table 122, and the pointer information to the index is stored. The method of adding a key to the trie storage table 122 is the same as the method disclosed in the known example 1. The above is the outline of the processing content in the present embodiment.
[0176]
Hereinafter, processing contents of the search and increment program 2000 different from those in the first embodiment will be described in detail using specific examples.
[0177]
The processing contents of the search and increment program 2000 are as shown in FIG. First, in step 2100, the index search program 120 is started, appearance position information in the text 107 of the search term input from the keyboard 101 is acquired from the index 108, and the processing time of the index search program 120 is measured. The processing content of the index search program 120 is the same as the method disclosed in Method 1 and Known Example 1.
[0178]
FIG. 19 is a diagram showing a processing example of the increment program 2000 of the present embodiment. In the example shown in this figure, “organism” is designated as the search term. For this reason, the index search program 120 reads the “raw” index 202 and the “thing” index 203 from the magnetic disk device 106 into the work area 124, and makes an adjacency determination between these indexes, so that “living organism” appears. The position information 2200 is acquired.
[0179]
The search and increment program 2000 measures the processing time of the index search program 120. If it is determined in step 2101 that the measured processing time exceeds a predetermined target search time, the index creation program 2001 is started in step 2102, and the acquired appearance position information 2200 is set as the index 108. It is stored in the magnetic disk device 106.
[0180]
In the example shown in FIG. 19, since the processing time of the index search program 120 exceeds a predetermined target search time, the appearance position information 2200 of “living organism” is stored in the magnetic disk device 106 as an index 2201 of “living organism”. To do.
[0181]
Finally, in step 2103, the search term is registered as a key in the trie storage table 122, and the pointer information to the index is stored. The method of adding a key to the trie storage table 122 is the same as the method disclosed in the known example 1.
[0182]
As described above, in the present embodiment, when the search term appearance position information is obtained by reading the index and determining the adjacency, the processing time is measured, and the processing time is determined in advance as the target search time. Is exceeded, the acquired appearance position information is indexed and stored in the magnetic disk device 106.
[0183]
For search terms that take a long time to search, once the search is performed, the appearance position information of the search term can be acquired only by reading the index created the first time, so the index is large and the search takes time. For n-grams that are likely to be used for searching, it is possible to speed up searching.
[0184]
In addition, for n-grams that are large in index but are not used for searching, an index with an increased character string is not created, so that the total index size can be suppressed. In addition, since the appearance position information acquired at the time of the first search can be used as it is as an index, high-speed index creation is possible.
[0185]
As described above, even if a search term with a high frequency of occurrence, that is, a large index is specified in a large-scale document database whose number of articles increases every day, such as newspaper articles and patent specifications, the total index size is minimized. As a result, the high-speed search can be realized.
[0186]
【The invention's effect】
According to the present invention, a small-sized index with an increased number of characters is created only for a partial character string that has a large index size and takes a long time to search, and is likely to be used for searching. And an increase in the total index size can be minimized.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a schematic configuration of a document search system according to a first embodiment.
FIG. 2 is a diagram illustrating processing contents of a search program 119 according to the first embodiment.
FIG. 3 is a diagram illustrating processing contents of an increment program 115 according to the first embodiment.
FIG. 4 is a diagram illustrating a processing example of the document search system according to the first embodiment.
FIG. 5 is a diagram illustrating an initial state of a reference frequency table 123 before update according to the first exemplary embodiment.
6 is a diagram showing an update result of a reference frequency table 123 when “microorganism” is designated as a search term in the first embodiment. FIG.
7 is a diagram showing the processing contents of a reference frequency table update program 121 in the search term “organism” of the first embodiment. FIG.
FIG. 8 is a diagram illustrating a schematic configuration of a main storage device 109a according to the second embodiment.
FIG. 9 is a diagram illustrating processing contents of an increment program 115a according to the second embodiment.
FIG. 10 is a diagram illustrating an example of an important word table 1103 according to the second embodiment.
FIG. 11 is a diagram illustrating an example of processing contents of an increment program 115a according to the second embodiment.
FIG. 12 is a diagram illustrating a schematic configuration of a main storage device 109b according to the third embodiment.
FIG. 13 is a diagram illustrating processing contents of a search program 119b according to the third embodiment.
FIG. 14 is a diagram illustrating processing contents of an increment program 115b according to the third embodiment.
FIG. 15 is a diagram showing an example of synonym expansion of search terms by the synonym expansion dictionary 1502 of the third embodiment.
FIG. 16 is a diagram illustrating processing contents of an increment program 115b according to the third embodiment.
FIG. 17 is a diagram illustrating a schematic configuration of a main storage device 109c according to the fourth embodiment.
FIG. 18 is a diagram illustrating processing contents of an increment program 2000 according to the fourth embodiment.
FIG. 19 is a diagram illustrating a processing example of an increment program 2000 according to the fourth embodiment.
FIG. 20 is a diagram illustrating an example of a conventional 1-gram index method.
FIG. 21 is a diagram showing a configuration of a trie corresponding to a conventional key set {baby, badge, badger, jar}.
FIG. 22 is a diagram showing the processing contents of a known example 1 in the related art.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100 ... Display, 101 ... Keyboard, 102 ... CPU, 103 ... Bus, 104 ... FDD, 105 ... Floppy disk, 106 ... Magnetic disk apparatus, 107 ... Text, 108 ... Index, 109 ... Main storage device, 110 ... System control program 111 ... Document registration control program, 112 ... Increment control program, 113 ... Search control program, 114 ... Index creation registration program, 115 ... Increment program, 116 ... Index size comparison program, 117 ... Reference frequency comparison program, 118 ... n- Gram increment program, 119 ... search program, 120 ... index search program, 121 ... reference frequency table update program, 122 ... trie storage table, 123 ... reference frequency table , 124 ... work area, 1100 ... important word registration control program, 1101 ... important character string search program, 1102 ... important word registration program, 1103 ... important word table, 1500 ... expanded word search program, 1501 ... search term expansion program, 1502 ... Synonym expansion dictionary, 1800 ... Search term after expansion, 2000 ... Increment program, 2001 ... Index creation program, 2200 ... Appearance position information, 2201 ... Index, 200 to 203 ... Index, 400 ... Index, 401 ... Trie.

Claims (7)

特定の検索タームを含むテキストデータを検索する文書検索方法において、
検索タームの部分文字列に対応するインデクスにより、該検索タームの部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出するインデクス検索ステップと、
テキストデータの部分文字列に対応するインデクスのサイズと予め定められた基準インデクスサイズとを比較するインデクスサイズ比較ステップと、
該インデクスのサイズが該基準インデクスサイズより大きい場合に、該インデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを判定する検索可能性判定ステップと、
該部分文字列が前記インデクス検索ステップで検索される可能性が高い場合に、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを作成する文字列インクリメントステップとを有することを特徴とする文書検索方法。
In a document search method for searching text data including a specific search term,
An index search step for extracting position information of text data having the same positional relationship as the partial character string of the search term by an index corresponding to the partial character string of the search term;
An index size comparison step for comparing the size of the index corresponding to the partial character string of the text data with a predetermined reference index size;
A searchability determination step for determining whether or not a partial character string corresponding to the index is likely to be searched in the index search step when the size of the index is larger than the reference index size;
A character string increment that creates an extended partial character string obtained by adding a character string to the partial character string and an index corresponding to the extended partial character string when the partial character string is likely to be searched in the index search step And a document search method.
インデクスの読み出し回数を管理する参照頻度テーブルを更新する参照頻度テーブル更新ステップを有し、
前記検索可能性判定ステップは、前記参照頻度テーブル内の該インデクスに対応する参照頻度と予め定められた基準参照頻度とを比較して、該インデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを判定する参照頻度比較ステップであることを特徴とする請求項1に記載された文書検索方法。
A reference frequency table update step for updating a reference frequency table for managing the number of times the index is read;
The search possibility determination step compares a reference frequency corresponding to the index in the reference frequency table with a predetermined reference frequency, and searches for a partial character string corresponding to the index in the index search step. The document search method according to claim 1, wherein the document search method is a reference frequency comparison step for determining whether or not there is a high possibility of being performed.
ユーザが入力した重要語を重要語テーブルに格納する重要語登録ステップを有し、
前記検索可能性判定ステップは、該インデクスに対応する部分文字列が前記重要語テーブルに格納されている重要語に含まれるかどうかを調べ、該インデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを判定する重要文字列検索ステップであることを特徴とする請求項1に記載された文書検索方法。
A key word registration step of storing key words input by the user in the key word table;
The searchability determination step checks whether or not the partial character string corresponding to the index is included in the important word stored in the important word table, and the partial character string corresponding to the index is determined in the index search step. 2. The document search method according to claim 1, wherein the document search method is an important character string search step for determining whether or not there is a high possibility of being searched.
相互に関連のある語を予め関連付けて格納した関連語ファイルを上記検索タームで探索し、該検索タームに関連のある1つ以上の関連語を取得する検索ターム展開ステップを有し、
前記インデクス検索ステップは、前記検索タームまたは関連語における部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出し、
前記検索可能性判定ステップは、該インデクスに対応する部分文字列が前記関連語テーブルに格納されている関連語に含まれるかどうかを調べ、該インデクスに対応する部分文字列が前記インデクス検索ステップで検索される可能性が高いかどうかを判定する展開語検索ステップであることを特徴とする請求項1に記載された文書検索方法。
A search term expansion step of searching for a related word file in which words related to each other in advance are stored with the search term and acquiring one or more related words related to the search term;
The index search step extracts position information of text data having the same positional relationship as a partial character string in the search term or related word,
The searchability determination step checks whether or not the partial character string corresponding to the index is included in the related word stored in the related word table, and the partial character string corresponding to the index is determined by the index search step. 2. The document search method according to claim 1, wherein the document search method is a expanded word search step for determining whether or not the search possibility is high.
特定の検索タームを含むテキストデータを検索する文書検索方法において、
検索タームの部分文字列に対応するインデクスにより、前記検索タームの部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出するインデクス検索ステップと、
前記インデクス検索ステップにおける処理時間を測定し、該処理時間が予め定められた基準処理時間より長い場合に、前記インデクス検索ステップにおいて得られた位置情報をインデクスとして登録するインデクス作成ステップとを有することを特徴とする文書検索方法。
In a document search method for searching text data including a specific search term,
An index search step for extracting position information of text data having the same positional relationship as the partial character string of the search term by an index corresponding to the partial character string of the search term;
An index creation step of measuring the processing time in the index retrieval step and registering the position information obtained in the index retrieval step as an index when the processing time is longer than a predetermined reference processing time. A document retrieval method as a feature.
特定の検索タームを含むテキストデータを検索する文書検索装置において、
検索タームの部分文字列に対応するインデクスにより、前記検索タームの部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出するインデクス検索処理部と、
テキストデータの部分文字列に対応するインデクスのサイズと予め定められた基準インデクスサイズとを比較するインデクスサイズ比較処理部と、
該インデクスのサイズが該基準インデクスサイズより大きい場合に、該インデクスに対応する部分文字列が前記インデクス検索処理部で検索される可能性が高いかどうかを判定する検索可能性判定処理部と、
該部分文字列が前記インデクス検索処理部で検索される可能性が高い場合に、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを作成する文字列インクリメント処理部とを備えることを特徴とする文書検索装置。
In a document search apparatus for searching text data including a specific search term,
An index search processing unit for extracting position information of text data having the same positional relationship as the partial character string of the search term by an index corresponding to the partial character string of the search term;
An index size comparison processing unit that compares the size of the index corresponding to the partial character string of the text data with a predetermined reference index size;
A search possibility determination processing unit that determines whether or not a partial character string corresponding to the index is highly likely to be searched by the index search processing unit when the size of the index is larger than the reference index size;
When the partial character string is highly likely to be searched by the index search processing unit, an extended partial character string obtained by adding a character string to the partial character string and a character string for creating an index corresponding to the extended partial character string A document search apparatus comprising an increment processing unit.
特定の検索タームを含むテキストデータを検索する文書検索装置としてコンピュータを機能させる為のプログラムを記録した媒体において、検索タームの部分文字列に対応するインデクスにより、前記検索タームにおける部分文字列と同じ位置関係を持つテキストデータの位置情報を抽出するインデクス検索処理部と、
テキストデータから作成した部分文字列に対応するインデクスのサイズと予め定められた基準インデクスサイズとを比較するインデクスサイズ比較処理部と、該インデクスのサイズが該基準インデクスサイズより大きい場合に、該インデクスに対応する部分文字列が前記インデクス検索処理部で検索される可能性が高いかどうかを判定する検索可能性判定処理部と、
該部分文字列が前記インデクス検索処理部で検索される可能性が高い場合に、該部分文字列に文字列を追加した拡張部分文字列と該拡張部分文字列に対応するインデクスを作成する文字列インクリメント処理部としてコンピュータ機能させる為のプログラムを記録したことを特徴とする媒体。
The same position as the partial character string in the search term by an index corresponding to the partial character string of the search term in the medium recording the program for causing the computer to function as a document search device for searching text data including a specific search term An index search processing unit for extracting positional information of text data having a relationship;
An index size comparison processing unit that compares the size of an index corresponding to a partial character string created from text data with a predetermined reference index size, and when the index size is larger than the reference index size, A searchability determination processing unit that determines whether or not a corresponding partial character string is highly likely to be searched by the index search processing unit;
When the partial character string is highly likely to be searched by the index search processing unit, an extended partial character string obtained by adding a character string to the partial character string and a character string for creating an index corresponding to the extended partial character string A medium in which a program for causing a computer to function as an increment processing unit is recorded.
JP22182998A 1998-08-05 1998-08-05 Document retrieval method, apparatus for implementing the same, and medium on which processing program is recorded Expired - Fee Related JP3620968B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22182998A JP3620968B2 (en) 1998-08-05 1998-08-05 Document retrieval method, apparatus for implementing the same, and medium on which processing program is recorded

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22182998A JP3620968B2 (en) 1998-08-05 1998-08-05 Document retrieval method, apparatus for implementing the same, and medium on which processing program is recorded

Publications (2)

Publication Number Publication Date
JP2000057151A JP2000057151A (en) 2000-02-25
JP3620968B2 true JP3620968B2 (en) 2005-02-16

Family

ID=16772851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22182998A Expired - Fee Related JP3620968B2 (en) 1998-08-05 1998-08-05 Document retrieval method, apparatus for implementing the same, and medium on which processing program is recorded

Country Status (1)

Country Link
JP (1) JP3620968B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392238B1 (en) * 2000-08-23 2008-06-24 Intel Corporation Method and apparatus for concept-based searching across a network
JP4314204B2 (en) 2005-03-11 2009-08-12 株式会社東芝 Document management method, system and program
JP4491480B2 (en) * 2007-10-11 2010-06-30 株式会社日立製作所 Index construction method, document retrieval apparatus, and index construction program
JP5159277B2 (en) * 2007-11-30 2013-03-06 三菱電機株式会社 N character index generation device, document search device, N character index generation method, document search method, N character index generation program, and document search program
JP5169456B2 (en) * 2008-05-09 2013-03-27 日本電気株式会社 Document search system, document search method, and document search program
JP5033843B2 (en) * 2009-06-30 2012-09-26 クラリオン株式会社 Name search device
JP5560971B2 (en) * 2010-07-05 2014-07-30 日本電気株式会社 Document search apparatus, document search method, and program
JP6319740B2 (en) 2014-03-25 2018-05-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method for speeding up data compression, computer for speeding up data compression, and computer program therefor
WO2016001991A1 (en) 2014-06-30 2016-01-07 株式会社日立製作所 Search method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3459053B2 (en) * 1995-01-12 2003-10-20 株式会社日立製作所 Document search method and apparatus

Also Published As

Publication number Publication date
JP2000057151A (en) 2000-02-25

Similar Documents

Publication Publication Date Title
JP3696745B2 (en) Document search method, document search system, and computer-readable recording medium storing document search program
US6782380B1 (en) Method and system for indexing and searching contents of extensible mark-up language (XML) documents
Leser et al. What makes a gene name? Named entity recognition in the biomedical literature
JP4162711B2 (en) System and method for portable document indexing using N-gram word decomposition
Zhang et al. Bed-tree: an all-purpose index structure for string similarity search based on edit distance
US4775956A (en) Method and system for information storing and retrieval using word stems and derivative pattern codes representing familes of affixes
US6321192B1 (en) Adaptive learning method and system that matches keywords using a parsed keyword data structure having a hash index based on an unicode value
US6496820B1 (en) Method and search method for structured documents
US6263333B1 (en) Method for searching non-tokenized text and tokenized text for matches against a keyword data structure
Gelfand et al. Comparative analysis of regulatory patterns in bacterial genomes
CN101388012A (en) Pinyin checking system and method with confusing sound recognition
EP1844391A2 (en) Multiple index based information retrieval system
CN111400323B (en) Data retrieval method, system, equipment and storage medium
US20060106849A1 (en) Idle CPU indexing systems and methods
CN100423005C (en) Method and system for indexing entity
WO2008128351A1 (en) Language independent index storage system and retrieval method
JP3620968B2 (en) Document retrieval method, apparatus for implementing the same, and medium on which processing program is recorded
CN110347804B (en) Sensitive information detection method of linear time complexity
JP2004220176A (en) Database search system and search method, method for forming data file used for search, and storage medium storing data file
EP0235525A2 (en) Statistical information access system
Mustafa et al. SISDOM: A multilingual document retrieval system
JP2007133682A (en) Full-text search system and full-text search method
Pujari et al. Building Efficient Inverted Indexes and Dictionaries for Informal Information Retrieval Systems
Yannakoudakis An efficient file structure for specialized dictionaries and other “lumpy” data
Fang et al. Chinese Word Segmentation for Agriculture.

Legal Events

Date Code Title Description
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: 20041109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041116

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20071126

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101126

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees