JP3456127B2 - インデクスキーの高速拡張機能を備えた文書検索方法および装置 - Google Patents

インデクスキーの高速拡張機能を備えた文書検索方法および装置

Info

Publication number
JP3456127B2
JP3456127B2 JP30907797A JP30907797A JP3456127B2 JP 3456127 B2 JP3456127 B2 JP 3456127B2 JP 30907797 A JP30907797 A JP 30907797A JP 30907797 A JP30907797 A JP 30907797A JP 3456127 B2 JP3456127 B2 JP 3456127B2
Authority
JP
Japan
Prior art keywords
index
character string
gram
position information
connection
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
JP30907797A
Other languages
English (en)
Other versions
JPH11143901A (ja
Inventor
菅谷  奈津子
勝己 多田
卓哉 岡本
忠孝 松林
靖司 川下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP30907797A priority Critical patent/JP3456127B2/ja
Publication of JPH11143901A publication Critical patent/JPH11143901A/ja
Application granted granted Critical
Publication of JP3456127B2 publication Critical patent/JP3456127B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、新聞記事や特許明
細書のように日々増加していく大規模な文書データベー
スから、所望の文書を探索する文書検索に係わり、特に
文書の全文を対象として、指定した文字列の存在を探索
するフルテキストサーチのための文書検索方法および装
置に関する。
【0002】
【従来の技術】大規模な文書データベースから指定され
た検索文字列(以下、検索タームと呼ぶ)が含まれる文
書を高速に探し出す方式として、n−gramインデク
ス方式(以下、方式1と呼ぶ)がある。n−gramイ
ンデクス方式とは、文書の登録時に文書中の全てのn−
gram(連続するn文字からなる文字列)についてそ
の出現位置情報をインデクスとして格納しておき、検索
時には検索ターム中のn−gramに対しそのインデク
スを参照し、検索ターム中の位置関係とインデクス中の
位置関係が等しいかどうかを判定(以下、隣接判定と呼
ぶ)することによって、検索タームが出現する文書を探
し出す方式である。図2に1−gramインデクス方式
の例を示す。本図に示すように、方式1では、文書の登
録時に文書中の全てのn−gram (図2の例ではn
=1)についてその出現位置情報をインデクスとして格
納する。例えば、“に”という1−gramは文書‘0
01’の‘3’文字目に出現するので、その文書番号
‘001’と文字位置‘3’を“に”に対応するインデ
クス200に格納する。検索時には、指定された検索タ
ームから抽出したn−gram (図2の例ではn=
1)のインデクス間で出現位置情報の隣接判定を行うこ
とにより、検索タームの出現位置情報を取得する。例え
ば、“微生物”が検索タームとして指定された場合に
は、この検索タームからまず、1−gram “微”、
“生”および“物”を抽出する。そして、“微”に対応
するインデクス201、“生”に対応するインデクス2
02および“物”に対応するインデクス203の間で出
現位置情報の隣接判定を行うことによって、“微生物”
の出現位置情報を取得する。本図の例では、“微”、
“生”および“物”が文書番号‘001’の‘9’文字
目から、文書番号‘056’の‘5’文字目から隣り合
っているので、それらの出現位置に“微生物”が存在す
ることが分かる。以上のように、方式1では、文書を走
査することなしに、インデクスの読込みと出現位置情報
の隣接判定だけで検索が行えるため、大規模な文書デー
タベースに適用した場合でも高速なフルテキストサーチ
を実現できる可能性がある。
【0003】しかし、方式1では、nを1とすると、す
なわち1−gramのインデクスを用いると、1−gr
amは全文書中(データベース中)における出現頻度が
高いため、一つの1−gramに対する出現位置情報が
増え、個々のインデクスの容量が大きくなる。このため
インデクスの読込みに時間が掛かるばかりでなく、出現
位置情報による隣接判定の回数も増えるため、検索に時
間が掛かるという問題が生じる。検索を高速にするため
にはnの値を増やした容量の小さなインデクスを作成す
る必要があるが、短い検索タームが指定された場合でも
検索が行えるようにnの小さなインデクスも全て作成し
ておかなければならない。その結果、総インデクス容量
が増加することになる。
【0004】また、方式1のようなインデクス型の文書
検索方法では、“キー探索技法−IV トライとその応
用”(青江順一著、情報処理Vol.34、No.2、
1993、pp.244−251)に記載されているト
ライのような木構造で文字列(方式1の場合はn−gr
am)を管理する必要がある。トライとは検索対象とな
る文字列すなわちキーワードの集合(以下、キー集合と
呼ぶ)における各キーワード(以下、キーと呼ぶ)に共
通な前方部分文字列を共通の節で括り出して作られる木
構造である。このトライは登録や検索の際に用いられ、
登録する文字列あるいは検索ターム中の文字列でキーを
辿ってトライを探索することにより、その文字列に対応
するインデクスを指し示すポインタ情報を取得すること
ができる。トライの探索に掛かる時間はキーの数に依存
しないため、大規模なデータベースに適用した場合で
も、高速にキーワードを探索できるという特徴がある。
図3にキー集合{baby、badge、badge
r、jar}に対応するトライを示す。このトライでは
節1(300)から節2(301)へ枝ラベルb(30
2)が定義され、二重丸で示すキーの末尾にあたる節に
はそのキーに対するインデクスへのポインタ情報が設定
されている。例えば、検索タームとして“baby”が
指定された場合には、文字列“baby”で本図のトラ
イを探索することにより、節5(303)に設定されて
いるポインタ情報Pt1が得られ、このポインタ情報P
t1が示す先に検索ターム“baby”に対応するイン
デクスが格納されていることになる。方式1において、
このトライを用いてn−gramを管理する際、個々の
インデクスの容量を小さくして検索を高速にするために
n−gramを長くしたインデクスを作成すると、 n
−gramの種類が増え、トライの節が増えるため、ト
ライ全体の規模が大きくなってしまうという問題があ
る。
【0005】この総インデクス容量とインデクスを管理
する木構造の容量の増加という問題を解決するために
「特開平8−194718号」(以下、公知例1と呼
ぶ)で、インデクスの容量がある基準値(以下、基準イ
ンデクスサイズと呼ぶ)を超えたn−gramに対して
のみ、nの値を増やして容量の小さなインデクスを作成
することにより、常に容量の小さなインデクスの読込み
と出現位置情報の隣接判定で済むようにして、高速な検
索を実現するとともに、総インデクス容量およびインデ
クスを管理する木構造(以下、トライで説明する)の容
量の増加を防ぐ方式が開示されている。図4に公知例1
に開示されているインクリメンタルn−gramインデ
クス方式の概要を示す。本方式では、文書の登録時にn
−gramに対応するインデクスを作成するともに、文
書中の2文字の接続情報をトライ122に登録する。そ
して、文書を登録していき、インデクスの容量が基準イ
ンデクスサイズを超えた場合には、対応するn−gra
mに1文字追加したn−gram (以下、拡張n−g
ramと呼ぶ)のインデクスを作成する。以下、図4を
用いてインデクスの作成方法を具体的に説明する。 n
−gramに1文字追加した拡張n−gramを作成す
るためには、まずトライ122を参照してそのn−gr
amに続く可能性のあるn−gramを取得する。そし
て、検出されたn−gram (以下、接続n−gra
mと呼ぶ)のインデクスと基準インデクスサイズより容
量が大きくなったn−gram (以下、基準インデク
ス超過n−gramと呼ぶ)のインデクスの間で出現位
置情報の隣接判定を行うことにより、拡張n−gram
のインデクスを作成する。本図の例では、“生”という
1−gramに対応するインデクスが基準インデクスサ
イズより大きくなっており、“生”が基準インデクス超
過n−gramとなる。ここで、まず、“生”という文
字でトライ122を探索し、“生”に続く接続n−gr
amを取得する。本図に示す例では、トライ122を探
索することにより、“生”の後ろに“物”と“息”が続
くことが分かる。そこで、“生”と“物”、“生”と
“息”のインデクスの間で出現位置情報の隣接判定を行
うことにより、“生物”、“生息”といった“生”に1
文字追加した拡張n−gramのインデクス400を作
成する。以上のように、公知例1を用いることにより、
容量が大きく検索に時間が掛かるインデクスに対して
は、そのn−gramに1文字追加した拡張n−gra
mに対するインデクスを作成するため、常に容量の小さ
なインデクスの読込みと出現位置情報の隣接判定で済む
ようになるため、高速な検索を実現することができるよ
うになる。また、それ以外のインデクスに対しては、
n−gramの長さを増やしたインデクスを作成しない
ため、総インデクス容量およびn−gramを管理する
木構造(トライ)の容量の増加を防ぐことができる。
【0006】
【発明が解決しようとする課題】以上説明した公知例1
に開示されている方式によると、基準インデクスサイズ
より容量が大きく検索に時間が掛かるインデクスに対し
ては、そのキーであるn−gramに1文字を追加した
容量の小さなインデクスを作成することになるため、常
に容量の小さなインデクスの読込みと出現位置情報の隣
接判定で済むようになり、高速な検索を実現することが
可能となる。また、基準インデクスサイズより容量の小
さなインデクスに対しては、それ以上n−gramを長
くしたインデクスを作成しないため、総インデクス容量
およびn−gramを管理する木構造(トライ)の容量
の増加を防ぐことが可能となる。
【0007】しかし、 n−gramに1文字追加した
拡張n−gramのインデクスの作成処理に時間が掛か
る可能性がある。拡張n−gramのインデクスを作成
するには、基準インデクス超過n−gramのインデク
スと、トライを探索して検出された複数の接続n−gr
amのインデクスの読込みと、それらのインデクス間で
の出現位置情報の隣接判定を行わなければならない。日
本語の場合、数千種類の文字が存在するため、トライを
探索して得られる接続n−gramは数百から千数百種
にも及ぶ。そのため、1つの接続n−gram毎に基準
インデクス超過n−gramと接続n−gramのイン
デクスを読み込んで出現位置情報の隣接判定を行うとい
う、通常の検索処理の繰り返しを行うと時間が掛かるこ
とになる。この処理時間を短縮するために、基準インデ
クス超過n−gramのインデクスを主記憶装置上に常
駐させることが考えられる。しかし、インデクス型の検
索方式ではインデクスに格納されている出現位置情報を
圧縮していることが多く、数百から千数百といった接続
n−gramとの隣接判定処理毎に出現位置情報を解凍
していたのでは時間が掛かってしまう。そこで、出現位
置情報の圧縮を解凍した状態で主記憶装置上に常駐させ
ようとすると、必要な主記憶装置容量が膨大になり、現
実的ではない。
【0008】こうした問題に対し、本発明では以下の課
題を解決することを目的とする。すなわち、本発明の目
的は、基準インデクス超過n−gramのインデクスの
出現位置情報を1つ圧縮解凍した後に複数の接続n−g
ramとの隣接判定処理を行うことにより、接続n−g
ram数が多い場合でも、基準インデクス超過n−gr
amのインデクスに対する読込みおよび解凍処理を一度
で済ませて、拡張n−gramのインデクスを高速に作
成することが可能な文書検索システムを提供することに
ある。
【0009】
【課題を解決するための手段】上記課題を解決するため
に、本発明では、文書情報を文字コードデータとして蓄
積したテキストデータベースを対象として、登録対象テ
キストデータから所定のn−gramと、該n−gra
mの該対象テキストデータにおけるテキスト識別情報と
出現位置情報を含む位置情報を抽出し、該位置情報をイ
ンデクスとして記憶し、前記n−gramと前記インデ
クスの記憶位置を管理するためのn−gramテーブル
を更新するインデクス作成登録ステップと、前記テキス
トデータから作成した前記n−gramに対応するイン
デクスの容量と予め定められた基準インデクスサイズと
を比較するインデクス容量比較ステップと、前記基準イ
ンデクスサイズより大きい容量のインデクスに対応する
n−gramに続く複数のn−gram(接続n−gr
amと呼ぶ)を、前記n−gramテーブルを参照して
探索する接続n−gram探索ステップと、前記n−g
ramに対応するインデクスと前記複数の接続n−gr
amに対応するインデクスから、前記n−gramに前
記接続n−gramを追加したn−gram(拡張n−
gramと呼ぶ)と該拡張n−gramに対応するイン
デクスを作成するn−gram拡張ステップを有するn
−gramインクリメントステップと、検索タームから
前記n−gramテーブルを参照して所定のn−gra
mを抽出し、該当インデクスを読み出し、該検索ターム
におけるn−gramと同じ位置関係を持つ位置情報を
抽出するインデクス検索ステップを有する文書検索方法
において、前記n−gram拡張ステップは、予め定め
られた使用可能な主記憶装置容量に基づき、前記n−g
ramと前記複数の接続n−gramと前記複数の拡張
n−gramに対して主記憶装置上にワークエリアを割
り当てるワークエリア割り当てステップと、前記n−g
ramと前記複数の接続n−gramのインデクスを前
記ワークエリアに読み込むインデクス読込みステップ
と、前記n−gramに対応するインデクスから取得し
た位置情報を、前記複数の接続n−gramに対応する
インデクスから取得した複数の位置情報と連続して比較
し、テキスト識別情報が一致する条件と出現位置情報が
隣接する条件を満たす接続n−gramが存在する場合
には、前記n−gramの位置情報を該接続n−gra
mに対応する拡張n−gramのインデクスとして前記
ワークエリアに作成する拡張n−gram作成ステップ
と、前記ワークエリアに作成された前記複数の拡張n−
gramのインデクスを二次記憶装置に書き込むインデ
クス書込みステップを有するようにする。
【0010】以下、この文書検索方法において、公知例
1に開示されている方式と異なるn−gram拡張ステ
ップの処理内容について説明する。
【0011】ワークエリア割り当てステップでは、予め
定められた使用可能な主記憶装置容量に基づき、基準イ
ンデクス超過n−gramのインデクスの読込み用、複
数の接続n−gramのインデクスの読込み用および複
数の拡張n−gramのインデクスの作成用に主記憶装
置上のワークエリアを割り当てる。ここで、使用可能な
主記憶装置容量が基準インデクス超過n−gram、接
続n−gramおよび拡張n−gramのインデクス容
量の合計よりも大きい場合には、 (1)図5に示すように、基準インデクス超過n−gr
am、接続n−gramおよび拡張n−gramの全て
にインデクス容量と同じ容量のワークエリアを割り当て
る。
【0012】使用可能な主記憶装置容量が基準インデク
ス超過n−gram、接続n−gramおよび拡張n−
gramのインデクス容量の合計よりも小さい場合に
は、予め定められた割り当て方法に基づきワークエリア
を割り当てる。この割り当てには、以下のような方法を
用いる。
【0013】(2)図6に示すように、基準インデクス
超過n−gram、接続n−gramおよび拡張n−g
ramの全てに同じ容量のワークエリアを割り当てる。
【0014】(3)図7に示すように、基準インデクス
超過n−gram、接続n−gramおよび拡張n−g
ramのインデクス容量のそれぞれに応じて、ワークエ
リアを比例配分する。
【0015】(4)図8に示すように、インデクス容量
の小さなn−gramにはインデクス容量と同じ容量の
ワークエリアを割り当て、インデクス容量の大きなn−
gramに対しては、該ワークエリアの中で最も大きい
容量を割り当てる。
【0016】なお、拡張n−gramのインデクス容量
は、基準インデクス超過n−gramと接続n−gra
mのインデクス間で出現位置情報の隣接判定を行わなけ
れば分からないので、接続n−gramのインデクス容
量で代用する。これは、拡張n−gramのインデクス
は接続n−gramのインデクスの小さい方より大きく
なることはないためである。
【0017】さらに、使用可能な主記憶装置容量が少な
い場合には、接続n−gramと拡張n−gramの一
部に対してn−gram拡張ステップの処理を行い、全
ての接続n−gramと拡張n−gramに対する処理
が終了するまでn−gram拡張ステップの処理を繰り
返すことも可能である。しかし、この場合には基準イン
デクス超過n−gramのインデクスに対する読込みと
圧縮解凍処理が繰り返しの数だけ増加するため、拡張n
−gramのインデクス作成性能が劣化する。
【0018】以下のステップは図9を用いて説明する。
【0019】インデクス読込みステップでは、まず、
〈1〉ワークエリア割り当てステップで割り当てられた
主記憶装置上のワークエリアに基準インデクス超過n−
gramのインデクスを読み込む。次に、〈2〉ワーク
エリア割り当てステップで割り当てられた主記憶装置上
のワークエリアに接続n−gramのインデクスを読み
込む。本図の例では、ワークエリア902に基準インデ
クス超過n−gram“生”のインデクス202を読み
込み、ワークエリア903および905に接続n−gr
am“物”のインデクス203および“息”のインデク
ス900を読み込む。ここで、上記(1)のように、イ
ンデクス容量と同じ容量のワークエリアが基準インデク
ス超過n−gramと全ての接続n−gramに対して
割り当てられている場合には、一度に基準インデクス超
過n−gramと全ての接続n−gramのインデクス
を読み込む。(2)、(3)および(4)のように、イ
ンデクス容量よりもワークエリアが小さい場合には、ワ
ークエリアに読み込むことができるだけのインデクスを
読み込み、下記に述べる拡張n−gram作成ステップ
においてワークエリアに読み込まれたインデクスに対す
る処理が終わった時点で、インデクス読込みステップを
再度実行する。
【0020】拡張n−gram作成ステップでは、基準
インデクス超過n−gramに対応するインデクスから
解凍して取得した位置情報を、複数の接続n−gram
に対応するインデクスから解凍して取得した位置情報と
連続して比較し、位置情報が隣接している接続n−gr
amが存在する場合には、基準インデクス超過n−gr
amの位置情報を接続n−gramに対応する拡張n−
gramのインデクスとしてワークエリアに格納する。
以下、図9を用いて具体的に説明する。まず、〈3〉ワ
ークエリア902に格納されている基準インデクス超過
n−gram“生”のインデクスの圧縮を解凍して位置
情報を1つ取得する。次に、〈4〉ワークエリア903
に格納されている接続n−gram“物”のインデクス
とワークエリア905に格納されている“息”のインデ
クスの圧縮を解凍して位置情報をそれぞれ1つ取得し、
〈3〉で取得した基準インデクス超過n−gram
“生”の位置情報と比較する。そして、〈5〉比較した
結果、隣接していると判定された場合には、基準インデ
クス超過n−gram“生”の位置情報を、拡張n−g
ramのインデクスとしてワークエリアに格納する。図
に示す例の場合、“物”、“息”ともに位置情報が隣接
しているので、その位置情報を拡張n−gram“生
物”のインデクスとしてワークエリア904に、“生
息”のインデクスとしてワークエリア906に格納す
る。さらに、〈6〉ワークエリア902に格納されてい
る基準インデクス超過n−gram“生”のインデクス
の圧縮を解凍して位置情報を1つ取得する。次に、
〈7〉ワークエリア903に格納されている接続n−g
ram“物”のインデクスとワークエリア905に格納
されている“息”のインデクスの圧縮を解凍して位置情
報をそれぞれ1つ取得し、〈6〉で取得した基準インデ
クス超過n−gram“生”の位置情報と比較する。そ
して、〈8〉比較した結果、隣接していると判定された
場合には、対応する拡張n−gramのワークエリアに
格納する。図に示す例の場合、“息”の位置情報が隣接
しているので、その位置情報を拡張n−gram“生
息”のインデクスとしてワークエリア906に格納す
る。
【0021】インデクス書き込みステップでは、〈9〉
ワークエリアに格納されている拡張n−gramのイン
デクスを二次記憶装置へ書き込む。本処理は、拡張n−
gram作成ステップを行っている際に、拡張n−gr
amのワークエリアが一杯になった場合にも行う。図に
示す例では、ワークエリア904に格納されている拡張
n−gram“生物”のインデクスをインデクス400
として、ワークエリア906に格納されている“生息”
のインデクスをインデクス901として二次記憶装置に
格納する。
【0022】以上説明したように、本方式では、基準イ
ンデクス超過n−gramのインデクスから一つ位置情
報を解凍する度に、複数の接続n−gramのインデク
スから解凍して取得した位置情報と、連続して隣接判定
を行い、基準インデクス超過n−gramに1文字増や
した拡張n−gramのインデクスを作成する。単純に
検索処理と同様の処理を繰り返すだけでは拡張n−gr
amのインデクスを作成するのに、基準インデクス超過
n−gramのインデクスの読込み処理と隣接判定(位
置情報の解凍)処理を接続n−gramの数だけ行わな
ければならないが、本方式では、基準インデクス超過n
−gramの読込み処理と隣接判定処理を各々一度行う
だけで、拡張n−gramのインデクスを作成すること
ができる。その結果、基準インデクス超過n−gram
を1文字増やした拡張n−gramのインデクスの作成
時間を大幅に短縮することが可能となる。
【0023】
【発明の実施の形態】以下、本発明の実施例について図
1を用いて説明する。
【0024】本発明を適用した文書登録検索システム
は、ディスプレイ100、キーボード101、中央演算
処理装置(CPU)102、テキスト107およびイン
デクス108を格納する二次記憶装置としての磁気ディ
スク装置106、フロッピディスクドライバ(FDD)
104、主記憶装置109から構成される。バス103
にはCPU102、磁気ディスク装置106、FDD1
04および主記憶装置109が接続されている。フロッ
ピディスク105に格納されている情報は、FDD10
4によりアクセスされる。
【0025】主記憶装置109には、文書登録制御プロ
グラム110、インデクス作成プログラム112、イン
クリメントプログラム113、検索制御プログラム11
1、インデクス検索プログラム121が格納されるとと
もにトライ格納テーブル122およびワークエリア12
3が確保される。インクリメントプログラム113はイ
ンデクス容量比較プログラム114、接続n−gram
探索プログラム115およびn−gram拡張プログラ
ム116で構成され、n−gram拡張プログラム11
6はワークエリア割り当てプログラム117、インデク
ス読込みプログラム118、拡張n−gram作成プロ
グラム119およびインデクス書込みプログラム120
で構成される。文書登録制御プログラム110および検
索制御プログラム111はユーザによるキーボード10
1からの指示に応じてCPU102で実行される。
【0026】以下、本実施例における登録処理と検索処
理について説明する。登録の際は図10のPAD(Pr
oblem Analysis Diagram)図に
示すように、ステップ1000でキーボード101から
コマンドを入力し、文書登録制御プログラム110を起
動する。次に、ステップ1001で上記文書登録制御プ
ログラム110はインデクス作成プログラム112を起
動して、FDD104に挿入されたフロッピディスク1
05から登録文書のテキストデータをワークエリア12
3に読み込み、これをテキスト107として磁気ディス
ク装置106へ格納する。そして、テキスト107から
所定のn−gramとテキスト107における文書番号
(テキスト識別情報)とその文字位置(出現位置情報)
を含む位置情報を抽出し、インデクス108として磁気
ディスク装置106へ格納する。テキストデータはフロ
ッピディスクを用いて入力するだけに限らず、通信回線
やCD−ROM装置(図1には示していない)等を用い
て他の装置から入力するような構成をとることも可能で
ある。最後に、ステップ1002で文書登録制御プログ
ラム110は、インクリメントプログラム113を起動
し、インデクス作成プログラム112によって作成され
たインデクス108が予め定められた基準インデクスサ
イズより大きくなったn−gram(基準インデクス超
過n−gram)に対して、後述するインクリメント処
理を行う。
【0027】検索の際には、検索制御プログラム111
がキーボード101から入力された検索条件式をインデ
クス検索プログラム121へ渡し、入力された検索条件
式を満たす文書番号を取得する。この検索処理の内容は
公知例1に開示されている方式と同様である。
【0028】以下、図10に示した本実施例における登
録処理手順のうち、インクリメントプログラム113の
処理手順について図11を用いて詳細に説明する。本プ
ログラムでは、ステップ1100でインデクス作成プロ
グラム112によって作成されたインデクスの個数分、
ステップ1101からステップ1104の一連の処理を
繰り返す。この一連の処理では、まずステップ1101
で、インデクス容量比較プログラム114を起動し、イ
ンデクス容量とインデクスへのポインタ情報を取得す
る。そしてステップ1102で、処理対象であるインデ
クスが基準インデクスサイズより大きい、すなわちイン
デクスのキーであるn−gramが基準インデクス超過
n−gramである場合には、ステップ1103および
ステップ1104の処理を行う。ステップ1103で
は、接続n−gram探索プログラム115を起動し、
トライ格納テーブル122を参照して基準インデクス超
過n−gramに続く全ての接続n−gramを探索す
る。そして、ステップ1104でn−gram拡張プロ
グラム116を起動し、基準インデクス超過n−gra
mのインデクスと接続n−gramのインデクスから拡
張n−gramのインデクスを作成する。
【0029】最後に、図11に示すインクリメントプロ
グラム113の処理手順の中で公知例1に開示されてい
る方式と処理が異なるn−gram拡張プログラム11
6の処理内容について図12を用いて詳細に説明する。
本プログラムでは、まずステップ1200で、ワークエ
リア割り当てプログラム117を起動し、予め定められ
た使用可能な主記憶装置容量に基づき、基準インデクス
超過n−gramのインデクスの読込み用、複数の接続
n−gramのインデクスの読込み用および複数の拡張
n−gramのインデクスの作成用に主記憶装置上のワ
ークエリア123を割り当てる。ここで、使用可能な主
記憶装置容量が基準インデクス超過n−gram、接続
n−gramおよび拡張n−gramのインデクス容量
の合計よりも大きい場合には、 (1)図5に示すように、基準インデクス超過n−gr
am、接続n−gramおよび拡張n−gramの全て
にインデクス容量と同じ容量のワークエリアを割り当て
る。
【0030】使用可能な主記憶装置容量が基準インデク
ス超過n−gram、接続n−gramおよび拡張n−
gramのインデクス容量の合計よりも小さい場合に
は、予め定められた割り当て方法に基づきワークエリア
を割り当てる。この割り当てには、以下のような方法を
用いる。
【0031】(2)図6に示すように、基準インデクス
超過n−gram、接続n−gramおよび拡張n−g
ramの全てに同じ容量のワークエリアを割り当てる。
【0032】(3)図7に示すように、基準インデクス
超過n−gram、接続n−gramおよび拡張n−g
ramのインデクス容量のそれぞれに応じて、ワークエ
リアを比例配分する。
【0033】(4)図8に示すように、インデクス容量
の小さなn−gramにはインデクス容量と同じ容量の
ワークエリアを割り当て、インデクス容量の大きなn−
gramに対しては、該ワークエリアの中で最も大きい
容量を割り当てる。
【0034】なお、拡張n−gramのインデクス容量
は、基準インデクス超過n−gramと接続n−gra
mのインデクス間で出現位置情報の隣接判定を行わなけ
れば分からないので、接続n−gramのインデクス容
量で代用する。これは、拡張n−gramのインデクス
は接続n−gramのインデクスの小さい方より大きく
なることはないためである。
【0035】さらに、使用可能な主記憶装置容量が少な
い場合には、接続n−gramと拡張n−gramの一
部に対してn−gram拡張ステップの処理を実行し、
全ての接続n−gramと拡張n−gramに対する処
理が終了するまでn−gram拡張ステップの処理を繰
り返すことも可能である。しかし、この場合には基準イ
ンデクス超過n−gramのインデクスに対する読込み
と圧縮解凍処理が繰り返しの数だけ増加するため、拡張
n−gramのインデクス作成性能が劣化する。
【0036】次にステップ1201で、拡張n−gra
m作成プログラム119を起動し、基準インデクス超過
n−gramおよび複数の接続n−gramのインデク
スに対して処理が全て終了するまでステップ1202か
らステップ1208の一連の処理を繰り返す。
【0037】この繰り返し処理では、まずステップ12
02で、インデクス読込みプログラム118を起動し、
基準インデクス超過n−gramおよび複数の接続n−
gramのインデクス108を磁気ディスク装置106
から読み込み、ワークエリア123に格納する。図9に
示す例では、上記(4)の割り当て方法を用いており、
インデクス容量の小さい接続n−gram“物”および
“息”に対しては、インデクス容量と同じ容量のワーク
エリアが割り当てられているため、インデクスを全て読
み込んで格納する。しかし、使用可能な主記憶装置容量
が少ないため、基準インデクス超過n−gram“生”
に対して割り当てられたワークエリア902はインデク
ス容量よりも小さくなり、全てのインデクスを読み込む
ことはできない。
【0038】次にステップ1203で、インデクス読込
みプログラム118によってワークエリア123に格納
されたインデクスに対しての処理が全て終了するまで、
ステップ1204からステップ1208の一連の処理を
繰り返す。
【0039】本繰り返し処理では、まずステップ120
4で、ワークエリア123に格納されている基準インデ
クス超過n−gramのインデクスを解凍して出現位置
情報を1つ取得する。次にステップ1205で、ワーク
エリア123に格納されている複数の接続n−gram
のインデクスを解凍して出現位置情報をそれぞれ1つ取
得する。そしてステップ1206で、基準インデクス超
過n−gramと複数の接続n−gramの間で出現位
置情報を比較し、隣接している場合には対応する拡張n
−gramのインデクスとしてワークエリア123に格
納する。図9の例では、基準インデクス超過n−gra
m“生”のインデクスから取得した出現位置情報が接続
n−gram“物”および“息”の出現位置情報と隣接
しているため、基準インデクス超過n−gram“生”
の出現位置情報を、拡張n−gram“生物”のインデ
クスとしてワークエリア904に、“生息”のインデク
スとしてワークエリア906に格納する。次に、ステッ
プ1207で、ワークエリア123に格納されている拡
張n−gramのインデクス容量を調査する。そして、
フルである拡張n−gramのワークエリアがあると判
断された場合には、ステップ1208でインデクス書込
みプログラム120を起動し、ワークエリア123に格
納されている拡張n−gramのインデクスをインデク
ス108として磁気ディスク装置106に追加格納す
る。
【0040】最後に、拡張n−gram作成プログラム
119による処理が全て終了した段階で、ステップ12
09で、インデクス書込みプログラム120を起動し、
ワークエリア123に格納されている拡張n−gram
のインデクスをインデクス108として磁気ディスク装
置106に追加格納する。図9に示す例では、拡張n−
gram作成プログラム119によってワークエリア9
04内に作成された拡張n−gram“生物”のインデ
クスを“生物”のインデクス400として、ワークエリ
ア906内に作成された“生息”のインデクスを“生
息”のインデクス901として磁気ディスク装置106
へ追加格納してn−gram拡張プログラム116の処
理を終了する。
【0041】以上説明したように、本実施例では、予め
定められた基準インデクスサイズよりもインデクス容量
が大きくなったn−gram(基準インデクス超過n−
gram)に1文字追加した容量の小さなインデクスを
作成する際に、基準インデクス超過n−gram、複数
の接続n−gramおよび複数の拡張n−gramに対
してインデクス読込みあるいは書込み用のワークエリア
を用意しておき、基準インデクス超過n−gramのイ
ンデクスの圧縮を解凍して位置情報を1つ取得する度
に、複数の接続n−gramの位置情報と隣接判定を行
うことにより、接続n−gram数が多い場合でも、基
準インデクス超過n−gramのインデクスに対する読
込みと圧縮解凍処理を1度で済ませることができるた
め、拡張n−gramのインデクスを高速に作成するこ
とが可能となる。なお、本実施例ではn−gramテー
ブルとしてトライ格納テーブルを用いているが、トライ
格納テーブル以外の木構造のテーブルを用いてもよい。
【0042】以上本発明によれば、新聞記事や特許明細
書のように日々件数が増大していく大規模な文書データ
ベースにおいて、検索用インデクス容量の大きなn−g
ramに1文字追加して複数の容量の小さなインデクス
を作成する際に、インデクスの読込みと圧縮解凍処理を
各々一度行えば済むようになるため、追加する文字数、
すなわち作成するインデクス数が多い場合でも時間の掛
からないインデクスの作成処理が実現できることにな
る。
【0043】
【発明の効果】本発明によれば、予め定められた基準イ
ンデクスサイズよりもインデクス容量が大きくなったn
−gram(基準インデクス超過n−gram)に1文
字追加した複数の容量の小さなインデクスを作成する際
に、基準インデクス超過n−gram 、基準インデク
ス超過n−gramに接続する複数の接続n−gram
および基準インデクス超過n−gramに1文字追加し
た複数の拡張n−gramに対してインデクス読込みあ
るいは書込み用のワークエリアを用意しておき、基準イ
ンデクス超過n−gramのインデクスの圧縮を解凍し
て位置情報を1つ取得する度に、複数の接続n−gra
mの位置情報と隣接判定を行うことにより、接続n−g
ram数が多い場合でも、基準インデクス超過n−gr
amのインデクスに対する読込みと圧縮解凍処理が1度
で済むため、拡張n−gramのインデクスを高速に作
成することが可能となる。この結果、基準インデクス超
過n−gramに対する接続n−gram数が多い場合
でも、拡張n−gramのインデクスを高速に作成する
ことが可能な文書検索システムを実現することが可能と
なる。
【図面の簡単な説明】
【図1】本発明の実施例の構成を示す図
【図2】方式1の処理内容を示す図
【図3】トライの構成を示す図
【図4】公知例1「特開平8−194718号」に開示
されている方式の処理内容を示す図
【図5】ワークエリア割り当て方法(1)の説明図
【図6】ワークエリア割り当て方法(2)の説明図
【図7】ワークエリア割り当て方法(3)の説明図
【図8】ワークエリア割り当て方法(4)の説明図
【図9】本発明の処理内容を示す図
【図10】文書登録の処理内容を示すPAD図
【図11】インクリメントプログラム113の処理内容
を示すPAD図
【図12】n−gram拡張プログラム116の処理内
容を示すPAD図
【符号の説明】
100・・・ディスプレイ、 101・・・キーボード、 102・・・CPU 、 103・・・バス、 104・・・フロッピディスクドライバ、 105・・・フロッピディスク、 106・・・磁気ディスク装置、 107・・・テキスト、 108・・・インデクス、 109・・・主記憶装置、 110・・・文書登録制御プログラム、 111・・・検索制御プログラム、 112・・・インデクス作成プログラム、 113・・・インクリメントプログラム、 114・・・インデクス容量比較プログラム、 115・・・接続n−gram探索プログラム、 116・・・ n−gram拡張プログラム、 117・・・ワークエリア割り当てプログラム、 118・・・インデクス読込みプログラム、 119・・・拡張n−gram作成プログラム、 120・・・インデクス書込みプログラム、 121・・・インデクス検索プログラム、 122・・・トライ格納テーブル、 123・・・ワークエリア、 200・・・“に”のインデクス、 201・・・“微”のインデクス、 202・・・“生”のインデクス、 203・・・“物”のインデクス、 300・・・節1、 301・・・節2、 302・・・枝ラベルb、 303・・・節5、 400・・・拡張n−gram“生物”のインデクス、 900・・・接続n−gram“息”のインデクス、 901・・・拡張n−gram“生息”のインデクス、 902・・・基準インデクス超過n−gram“生”の
ワークエリア、 903・・・接続n−gram“物”のワークエリア、 904・・・拡張n−gram“生物”のワークエリ
ア、 905・・・接続n−gram“息”のワークエリア、 906・・・拡張n−gram“生息”のワークエリア
───────────────────────────────────────────────────── フロントページの続き (72)発明者 岡本 卓哉 神奈川県川崎市幸区鹿島田890番地 株 式会社日立製作所 情報・通信開発本部 内 (72)発明者 松林 忠孝 神奈川県川崎市幸区鹿島田890番地 株 式会社日立製作所 情報・通信開発本部 内 (72)発明者 川下 靖司 神奈川県横浜市戸塚区戸塚町5030番地 株式会社日立製作所 ソフトウェア開発 本部内 (56)参考文献 特開 平8−194718(JP,A) 青江順一,(キー探索技法IV)トラ イとその応用,情報処理,情報処理学 会,1993年 2月15日,第34巻,第2 号,第244〜251頁 (58)調査した分野(Int.Cl.7,DB名) G06F 17/30 G06F 12/00

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】文書情報を文字コードデータとして蓄積し
    たテキストデータベースを対象とした文書検索方法にお
    いて、 登録対象テキストデータから所定の部分文字列と、該部
    分文字列の該対象テキストデータにおけるテキスト識別
    情報と出現位置情報を含む位置情報を抽出し、該位置情
    報をインデクスとして記憶し、前記部分文字列と前記イ
    ンデクスの記憶位置を管理するための文字列テーブルを
    更新するインデクス作成登録ステップと、 前記テキストデータから作成した前記部分文字列に対応
    するインデクスの容量と予め定められた基準インデクス
    サイズとを比較するインデクス容量比較ステップと、 前記基準インデクスサイズより大きい容量のインデクス
    に対応する部分文字列に続く複数の文字列(接続文字列
    と呼ぶ)を、前記文字列テーブルを参照して探索する接
    続文字列探索ステップと、 前記部分文字列に対応するインデクスと前記複数の接続
    文字列に対応するインデクスから、前記部分文字列に前
    記接続文字列を追加した文字列(拡張文字列と呼ぶ)と
    該拡張文字列に対応するインデクスを作成する文字列拡
    張ステップと、 検索タームから前記文字列テーブルを参照して所定の部
    分文字列を抽出し、該当インデクスを読み出し、該検索
    タームにおける部分文字列と同じ位置関係を持つ位置情
    報を抽出するインデクス検索ステップとを有し、 前記文字列拡張ステップは、前記部分文字列に対応する
    インデクスから取得した位置情報を、前記複数の接続文
    字列に対応するインデクスから取得した複数の位置情報
    と連続して比較する隣接判定一括処理ステップを有する
    ことを特徴とした文書検索方法。
  2. 【請求項2】 文書情報を文字コードデータとして蓄積し
    たテキストデータベースを対象として文書検索を行う文
    書検索装置において、 登録対象テキストデータから所定の部分文字列と、該部
    分文字列の該対象テキストデータにおけるテキスト識別
    情報と出現位置情報を含む位置情報を抽出し、該位置情
    報をインデクスとして記憶し、前記部分文字列と前記イ
    ンデクスの記憶位置を管理するための文字列テーブルを
    更新するインデクス作成登録手段と、 前記テキストデータから作成した前記部分文字列に対応
    するインデクスの容量と予め定められた基準インデクス
    サイズとを比較するインデクス容量比較手段と、 前記基準インデクスサイズより大きい容量のインデクス
    に対応する部分文字列に続く複数の文字列(接続文字列
    と呼ぶ)を、前記文字列テーブルを参照して探索する接
    続文字列探索手段と、 前記部分文字列に対応するインデクスと前記複数の接続
    文字列に対応するインデクスから、前記部分文字列に前
    記接続文字列を追加した文字列(拡張文字列と呼ぶ)と
    該拡張文字列に対応するインデクスを作成する文字列拡
    張手段と、 検索タームから前記文字列テーブルを参照して所定の部
    分文字列を抽出し、該当インデクスを読み出し、該検索
    タームにおける部分文字列と同じ位置関係を持つ位置情
    報を抽出するインデクス検索手段とを備え、 前記文字列拡張手段は、 予め定められた使用可能な主記憶装置容量に基づき、前
    記部分文字列と前記複数の接続文字列と前記複数の拡張
    文字列に対して主記憶装置上にワークエリアを割り当て
    るワークエリア割り当て手段と、 前記部分文字列と前記複数の接続文字列のインデクスを
    前記ワークエリアに読み込むインデクス読込み手段と、 前記部分文字列に対応するインデクスから取得した位置
    情報を、前記複数の接続文字列に対応するインデクスか
    ら取得した複数の位置情報と連続して比較し、テキスト
    識別情報が一致する条件と出現位置情報が隣接する条件
    を満たす接続文字列が存在する場合には、前記部分文字
    列の位置情報を該接続文字列に対応する拡張文字列のイ
    ンデクスとして前記ワークエリアに作成する拡張文字列
    作成手段と、 前記ワークエリアに作成された前記複数の拡張文字列の
    インデクスを二次記憶装置に書き込むインデクス書込み
    手段を有することを特徴とした文書検索装置。
JP30907797A 1997-11-11 1997-11-11 インデクスキーの高速拡張機能を備えた文書検索方法および装置 Expired - Fee Related JP3456127B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30907797A JP3456127B2 (ja) 1997-11-11 1997-11-11 インデクスキーの高速拡張機能を備えた文書検索方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30907797A JP3456127B2 (ja) 1997-11-11 1997-11-11 インデクスキーの高速拡張機能を備えた文書検索方法および装置

Publications (2)

Publication Number Publication Date
JPH11143901A JPH11143901A (ja) 1999-05-28
JP3456127B2 true JP3456127B2 (ja) 2003-10-14

Family

ID=17988614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30907797A Expired - Fee Related JP3456127B2 (ja) 1997-11-11 1997-11-11 インデクスキーの高速拡張機能を備えた文書検索方法および装置

Country Status (1)

Country Link
JP (1) JP3456127B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3459053B2 (ja) * 1995-01-12 2003-10-20 株式会社日立製作所 文書検索方法および装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
青江順一,(キー探索技法IV)トライとその応用,情報処理,情報処理学会,1993年 2月15日,第34巻,第2号,第244〜251頁

Also Published As

Publication number Publication date
JPH11143901A (ja) 1999-05-28

Similar Documents

Publication Publication Date Title
US10614032B2 (en) Quick filename lookup using name hash
JP3152868B2 (ja) 検索装置および辞書/テキスト検索方法
US6782380B1 (en) Method and system for indexing and searching contents of extensible mark-up language (XML) documents
US6523030B1 (en) Sort system for merging database entries
US20020165707A1 (en) Methods and apparatus for storing and processing natural language text data as a sequence of fixed length integers
CN100557605C (zh) 类型路径索引
US20070198566A1 (en) Method and apparatus for efficient storage of hierarchical signal names
US20070174238A1 (en) Indexing and searching numeric ranges
US8027961B2 (en) System and method for composite record keys ordered in a flat key space for a distributed database
JPH1097449A (ja) 多値局所化ストリング
JPH05174064A (ja) 文書検索方法及び装置
CN101777045A (zh) 一种通过索引解析xml文档的方法
JP3459053B2 (ja) 文書検索方法および装置
CN102867049A (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
US20030023584A1 (en) Universal information base system
JP3518933B2 (ja) 構造化文書検索方法
JP2001109754A (ja) 索引ファイルを使用した検索方法及びそれに用いる装置
JP3620968B2 (ja) 文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体
JP3456127B2 (ja) インデクスキーの高速拡張機能を備えた文書検索方法および装置
JP3728264B2 (ja) インデックス作成装置、検索システム、及び制御方法
JP2962287B2 (ja) 構造化文書検索装置及びプログラムを記録した機械読み取り可能な記録媒体
JP4521413B2 (ja) データベース管理システム及びプログラム
JP2772125B2 (ja) 辞書検索方式
JP2990312B2 (ja) データアクセス方法および装置
JP3236747B2 (ja) データ伸長方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080801

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080801

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090801

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100801

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees