JPH05174064A - 文書検索方法及び装置 - Google Patents

文書検索方法及び装置

Info

Publication number
JPH05174064A
JPH05174064A JP3342695A JP34269591A JPH05174064A JP H05174064 A JPH05174064 A JP H05174064A JP 3342695 A JP3342695 A JP 3342695A JP 34269591 A JP34269591 A JP 34269591A JP H05174064 A JPH05174064 A JP H05174064A
Authority
JP
Japan
Prior art keywords
character
document
search
text
component table
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.)
Granted
Application number
JP3342695A
Other languages
English (en)
Other versions
JP3263963B2 (ja
Inventor
Naoki Minegishi
直材 嶺岸
Kanji Kato
寛次 加藤
Hisamitsu Kawaguchi
川口  久光
Atsushi Hatakeyama
敦 畠山
Katsumi Tada
勝巳 多田
Satoshi Asakawa
悟志 浅川
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 JP34269591A priority Critical patent/JP3263963B2/ja
Priority to EP92103168A priority patent/EP0501416B1/en
Priority to DE69231013T priority patent/DE69231013T2/de
Priority to US07/843,162 priority patent/US5469354A/en
Publication of JPH05174064A publication Critical patent/JPH05174064A/ja
Application granted granted Critical
Publication of JP3263963B2 publication Critical patent/JP3263963B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】実用規模のテキストデータベースを対象とした
場合でも,実用上許容しうる十分な検索時間で検索結果
が得られる高速なフルテキストサーチ方法を実現するた
めに,与えられた検索タームから十分な絞り込みを行な
うことのできる文字成分表の作成方法と検索方法を持つ
階層プリサーチ式の文書検索方法と,これを用いた検索
装置を提供する。 【構成】テキストデータを,ある長さnの文字列単位で
読み出し,各文字列に対応する文字成分表のエントリに
文字列が存在したことを表す情報を記録する連接文字成
分表作成手段(204)と,検索タームを長さnの文字
列に分割し,各文字列に対応する連接文字成分表のエン
トリに全て存在情報が記録されている文書を出力する文
字成分表サーチ手段(207)を設け,テキストそのも
のを検索する以前に階層的に文字成分表サーチを行うこ
とにより検索対象を絞り込み,フルテキストサーチを高
速に行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,テキストデータベース
を文字列を指定して文書の全文を対象として探索するフ
ルテキストサーチに係わり,特に探索用に補助的なファ
イルを用いて全文探索処理を等価的に高速化するための
文書検索方法及び装置に関する。
【0002】
【従来の技術】従来,インデクス情報を用いない文書検
索システムとして,登録時に文書を文字コード化したテ
キストとして直接計算機に登録し,検索時にはテキスト
データベース内の全ての文書の内容を読んで,与えられ
たキーワード(従来システムにおける統制キーワードと
区別するために,以後検索タームと呼ぶ)を含む文書を
探し出すフルテキストサーチが提案されている。このフ
ルテキストサーチ方式は,「情報処理学会研究報告 v
ol.89,no.66 情報学基礎14−7テキスト
データベース管理システムSIGMAとその応用(19
89.7.27)」の第2節冒頭で述べられているよう
に,テキストファイル全体を先頭から一文字ずつ走査す
ることが大きな特徴である。こうすることにより,キー
ワードに対応する文書識別子等を記述したインデクスフ
ァイルがなくとも,テキストデータベースのテキスト本
体を手掛かりにして検索することが可能となる。すなわ
ち,与えられた検索タームでテキストデータ全体を文字
列探索することによって,検索タームが記述されている
文書のみを検索結果として出力するわけである。
【0003】しかしながら,このフルテキストサーチ方
式は,テキストファイル全体を先頭から一文字ずつ走査
するために処理時間が掛かり,大規模なデータベースに
適用できないという問題があった。同文献第2節中にみ
られるように,汎用の大型計算機を持ってしても,2M
B/s程度の検索処理速度しか実現できない。数メガバ
イト程度のデータベースであれば,この速度でも検索時
間は実用域内に入る。しかし,オフィス等の実用規模の
データベースには数百メガバイトの容量が必要とされ,
この場合には数分という検索時間が掛かり十分な検索レ
スポンスが得られないことになる。
【0004】この問題を解決する方法として,「特開平
3−174652号公報」のように専用のハードウエア
を使用することによってテキストデータの読出しと検索
タームの探索処理の高速化を図ると共に,テキストをサ
ーチする以前にテキストデータを予め情報圧縮しておい
た補助ファイルをサーチし,テキスト本体をサーチする
文書件数を絞り込むことによって等価的に高速なフルテ
キストサーチを実現する情報検索装置を提案した。すな
わち,この検索装置では文字成分表サーチおよび凝縮本
文サーチと呼ぶプリサーチ手段を設け,これらを順次段
階的にサーチするこよにより階層的に絞り込みを行なう
という大きな特徴を持つ。このような絞り込みを行うこ
とにより,サーチ処理時間に占める割合の大きいテキス
ト本文の検索件数を減らし,全体的処理時間を短縮する
ことが可能となり,等価的に高速なフルテキストサーチ
が実現できることになる。
【0005】この方式の特徴である階層プリサーチは,
まず文字成分表サーチで文字単位の絞り込みを行い,次
に文字成分表サーチで絞り込まれた文書に対し凝縮本文
サーチで単語単位の絞り込みを行う方式である。また,
データベースの容量は,凝縮本文が本文の約30%,文
字成分表が1文書につき256バイト必要になる。
【0006】しかしながら,図2に示すようにこの方式
の文字成分表は,検索タームを構成する文字の有無のみ
で絞り込むので,その文字がどのような文,あるいはど
のような単語で使用されているのかは全く考慮していな
い。そのため,テキスト中に頻繁に出現する文字で構成
される検索タームを入力した場合,十分な絞り込みがで
きないという問題がある。このような場合は本文サーチ
の対象となる文書件数を削減することができないため,
十分な検索レスポンスが得られないことになる。
【0007】この他にもフルテキストサーチを高速化す
る方法として「情報処理学会研究報告 Vol.91,
No.46 データベース・システム83−1 文字列
照合を用いた全文検索における仮名文字検索の高速化手
法(1991.5.24)」のように,文書中に現れる
全ての文字について文字単位の位置情報を全てインデク
スとして蓄えておき,このインデクスを参照して指定さ
れた検索ターム中に現れる全ての文字が連続して現れる
文書を探し出す方法も考えられている。しかしこの方法
だと,例えば1件1万文字の文書に対して1文字につき
4バイトの位置情報を格納するとして約40KBのイン
デクスが必要になる。また,このような文書を10万件
含むテキストデータベースを構築しようとすると2GB
の文書本体の他にさらに4GBの容量のインデクスを持
たなければならないことになる。すなわち,実用規模の
データベースの場合にはインデクスの容量が膨大になっ
てしまい実用的とは言えない。
【0008】
【発明が解決しようとする課題】本発明の解決しようと
する課題は,実用規模のテキストデータベースを対象と
した場合でも,実用上許容しうる十分な検索時間で検索
結果が得られる高速なフルテキストサーチ方法を実現す
ることにある。具体的には,与えられた検索タームから
十分な絞り込みを行なうことのできる文字成分表の作成
方法と検索方法を持つ階層プリサーチ式の文書検索方法
と,これを用いた文書検索装置を提供することにある。
【0009】
【課題を解決するための手段】上記課題を解決するため
に,一例として以下の処理ステップから構成されるテキ
ストデータベース作成方法、若しくはフルテキストサー
チ方法を用いる。
【0010】(1)テキストデータを読み込むステップ (2)予め定められたn文字から構成される各文字列の
テキストデータ中における使用頻度を数え,各文字列を
上記使用頻度順に並べ替えるステップ (3)文字列数以下のエントリに各文字列を対応させ
て,両者の対応をハッシュテーブルとして記憶するステ
ップ (4)テキストデータ中で用いられている文字列に対応
するエントリにその文字列の存在を文字成分表として記
憶するステップにより,テキストデータベースを構築す
ると共に,検索時には, (5)与えられたキーワードをn文字の部分文字列に分
割するステップ (6)分割された各文字列に対応するエントリを前記文
字成分表から取り出すステップ (7)取り出された各文字成分表のエントリを参照して
キーワードを構成する各文字列が全て存在する文書を探
索するステップにより,指定された検索タームを含む可
能性のある文書のみを抽出する文字成分表サーチを行
う。
【0011】
【作用】上記処理ステップにより文字成分表を作成する
手順について図3を用いて説明する。
【0012】まず第1のステップで,テキストデータを
予め定められた長さnの文字列に分割する。
【0013】第2のステップで,分割された文字列が文
字成分表のどのエントリに対応するかハッシュテーブル
を用いて判定する。
【0014】第3のステップで,判定したエントリに該
当する文字列が文書に存在したことを表す情報を記録す
る。
【0015】このようにして作成した文字成分表を検索
する手順について次に図4を用いて説明する。
【0016】まず第1のステップで,検索タームを文字
成分表を作成した時と同じ文字列長nの部分文字列に分
割する。
【0017】第2のステップで,作成時に使用したもの
と同じハッシュテーブルを用いて該当する部分文字列の
文字成分表上でのエントリを得る。
【0018】第3のステップで,こうして得られた検索
ターム中の全ての部分文字列に対応する文字成分表のエ
ントリに全て存在情報が全て記述されている文書のみを
文字成分表サーチの出力結果とする。
【0019】このように,テキストデータ中の所定の長
さの文字列を単位として文字成分表を作成することによ
り,日本語文書で頻繁に使用され1文字単位では絞り込
めなかった文字でも,その前後の文字を手掛かりとし
て,より精度良く文書を文字成分表で絞り込めることに
なる。例えば“めまい”の場合,1文字単位では20%
程度にしか絞り込めないが,2文字を単位とすると3%
まで絞り込むことができる。その結果,テキストデータ
をスキャンしなければならない文書件数が減るために,
より短時間で文書のフルテキストサーチを終えることが
可能となる。
【0020】文字成分表作成の第2のステップで用いる
ハッシュテーブルは,登録する文書中での文字の頻度情
報に基づきできるかぎり平坦なヒット率を持つように各
文字列を分配する。このためにまず,全ての文字コード
に対してどの程度の文書にその文字が現れるか予め調査
し,できるかぎり頻度の少ない文字同士を文字成分表の
同じエントリにマッピングする。これにより,どの文字
が検索タームとして使われても平均的に最小のヒット率
が得られるようにする。
【0021】また,複数文字を単位として文字成分表を
作成する場合,全ての文字の組合せをエントリとした文
字成分表を作成する必要がある。この時,シフトJIS
コードの場合には文字数が全部で6,879あるため,
例えば2文字の文字の組合せで文字成分表を作成しよう
とすると6,879×6,879,すなわち47,320,
641種の組合せの文字列に対してエントリを用意する
必要がある。これはメモリを大量に使用するので実用上
好ましくない。
【0022】この問題を解決するために,まず1文字に
対してハッシングし例えば256種というような少ない
文字種にマッピングして,これらを組み合わせて256
×256=65,536種の組合せを作る。次に,この
256×256=65,536種の組合せに対しさらに
ハッシングしてより少ないエントリの部分文字列の成分
表(以後,連接文字成分表と呼ぶ)を作成する。例えば
65,536種を2,048エントリにハッシングする。
このように2段階のハッシングを行うことにより実用上
許容しうるメモリ容量で連接文字成分表を作成すること
が可能となる。
【0023】本方法に基づいて作成された,例えば2文
字を単位とする連接文字成分表を用いて検索する時に
は,“インターフェース”という検索タームが与えられ
た場合,これを2文字毎に,図5ののように分割し
て,“イン”,“ター”,“フェ”,“ース”あるい
は,図5ののように分割して,“イン”,“ンタ”,
“ター”,“ーフ”,“フェ”,“ェー”,“ース”と
し,各文字の組合せをエントリに持つ連接文字成分表か
ら,これらの文字の組み合わせを全て有する文書を探し
出す。
【0024】また,1文字の検索タームが指定された場
合に対応するために,上記の連接文字成分表と別に1文
字を単位とした文字成分表を用意しておく。この時,ハ
ッシングによって折り返しを受けない場合は,そのエン
トリには1文字しかマッピングされていないので,文字
成分表サーチの結果を最終結果とすることができるた
め,文字成分表サーチのみで検索処理を終了することが
可能となる。
【0025】このように,連接文字成分表でn文字から
なる部分文字列を1エントリとすることにより,1文字
よりも出現頻度を抑えることができ,頻繁に使用される
文字に関しても十分な絞り込みが行なえる。すなわち,
検索タームに依存しない安定した絞り込みが可能とな
る。この連接文字成分表サーチで,検索タームに関連し
ない文書を十分に切り捨てることができるため,検索の
対象となる凝縮本文とテキスト本文の件数を削減するこ
とが可能となる。その結果,検索処理時間に占める割合
が大きい本文サーチと凝縮本文サーチの処理時間を減ら
すことが可能になるため,全体の検索処理時間が大幅に
短縮されることになる。
【0026】例えば,「本文中で“あいまい”と“ファ
ジー”とが同一の文(センテンス)内に共起する文書を
探せ」という検索条件,すなわち二つの検索タームの本
文中での位置的な関係まで指定した条件式が与えられた
場合,直接本文を参照する従来の方法では検索処理速度
を2MB/sと仮定して,500MBのフルテキストを
全て探索するのに250秒,すなわち約4分掛かる。ま
た,従来の1文字の文字成分表を使用した階層型プリサ
ーチで,文字成分表でデータベース全件の30%に,凝
縮本文で全体の1%にしか絞り込めなかったとすると,
凝縮本文の容量が本文の30%の場合,検索対象となる
文字成分表の容量はデータベース全体からみると無視で
きるほど小さいので,検索すべき凝縮本文の容量は45
MBで,本文データの探索量は全データベース量の1
%,すなわち5MBとなるため,2MB/sの検索速度
では,25秒で検索処理を終了できる。これに対して,
連接文字成分表でデータベース全体の10%,すなわち
従来方式の3分の1に絞り込めたとすると,検索すべき
凝縮本文が15MB,本文が5MBとなり,10秒で検
索処理を終了できることになり約2.5倍の検索速度の
向上がもたらされる。このように,「連接文字成分表」
と「凝縮本文」により事前に2段階のプリサーチを行
い,それぞれ「n文字の部分文字列レベル」と「単語レ
ベル」のふるいに掛け,最も時間を要する本文サーチの
対象となる文書数をあらかじめ最小に絞り込んでおくこ
とによって,探索文書容量を削減することができるた
め,等価的に非常に高速なフルテキストサーチが実現で
きることになる。
【0027】さらに,単一でn文字以下の検索タームで
の検索の場合には,連接文字成分表サーチでの結果をそ
のまま最終結果とすることができるため,極めて短時間
に検索結果を得ることが可能となる。
【0028】以上説明したように,前記(1)〜(8)
の処理ステップから構成されるフルテキストサーチ方法
によれば,直接本文を探索する量を予め少なくすること
ができるため,等価的に非常に高速なフルテキストサー
チが可能となる。
【0029】
【実施例】以下,本発明の第一の実施例について図1を
用いて説明する。本文書検索装置は,ディスプレイ10
0,キーボード101,中央制御装置CPU102,本
文103,凝縮本文104,及び文字成分表105を格
納した記録媒体の1つである磁気ディスク110,フロ
ッピディスクドライバ(FDD)106,主メモリ20
0から構成される。107はフロッピディスクである。
【0030】主メモリ200には,文書登録制御プログ
ラム201,本文登録プログラム202,凝縮本文作成
登録プログラム203,連接文字成分表作成登録プログ
ラム204,階層検索制御プログラム205,検索条件
式解析プログラム206,文字成分表サーチプログラム
207,凝縮本文サーチプログラム208,本文サーチ
プログラム209が格納されるとともに,データエリア
210が確保されている。これらのプログラムはユーザ
のキーボード101の指示に応じてCPU102で実行
される。
【0031】文書の登録の際は図6に示すように,キー
ボード101から入力されるコマンドにより,文書登録
制御プログラム201を起動する。この文書登録プログ
ラムは,必ず最初に本文登録プログラム202を起動し
て,フロッピディスクドライバ106に挿入されたフロ
ッピディスク107からテキストデータを読み込み,読
み込んだテキストデータを本文103として磁気ディス
ク110へ格納する。テキストデータはフロッピーディ
スクを用いて入力することに限定されず、通信回線等を
用いて他の装置から入力するような構成をとってもかま
わない。次に文書登録制御プログラム201は,凝縮本
文作成登録プログラム203を起動して,本文103を
単語レベルで部分文字列へ分割し,分割した部分文字列
間で相互に文字列の包含関係を調べ,他の部分文字列に
含まれる文字列を排除した部分文字列の集合からなる凝
縮本文を作成し,これを凝縮本文104として磁気ディ
スク110へ格納する。最後に文書登録制御プログラム
201は,連接文字成分表作成登録プログラム203を
起動して,本文103中で用いられている予め定められ
たn文字の文字列を重複なく集めた文字成分表を作成
し,これを文字成分表105として磁気ディスク110
へ格納する。
【0032】検索の際には,キーボード101から入力
された検索条件式が,CPU102に送られる。CPU
102では,まず階層検索制御プログラム205が起動
され,その制御に基づいて検索条件式解析プログラム2
06,文字成分表サーチプログラム207,凝縮本文サ
ーチプログラム208,本文サーチプログラム209が
順次起動される。
【0033】すなわち,文字成分表サーチでは,入力さ
れた検索条件式中の検索タームをn文字の文字列レベル
に分解し,検索タームを構成する全ての文字列を含む文
書のみを抽出する。そして,文字成分表で抽出された文
書に対応する凝縮本文を参照し,与えられた検索ターム
を含む文書を抽出する。もし,与えられた検索条件式中
に単一の検索タームか,あるいは複数の検索ターム間の
論理的な関係が指定されているだけで,本文中での位置
関係までは指定されていない場合には,ここで検索を終
了し凝縮本文サーチの結果を検索結果として出力する。
それ以外の場合,すなわち与えられた検索条件式中に複
数の検索ターム間の本文中での位置関係が指定されてい
る場合には,凝縮本文サーチで抽出された文書に対応す
る本文データを参照し,与えられた検索タームを含み,
なおかつ検索ターム間の位置関係に関する条件を満たす
もののみを抽出し,検索結果として出力する。ここで位
置関係に関する条件とは,例えば 「“ニューロ”[8C]“コンピュータ”」 のように記述されるもので,「“ニューロ”と“コンピ
ュータ”が10文字以内に近接して現れる文書を探せ」
という意味を持つ近傍条件と,例えば 「“ニューロ”[S]“コンピュータ”」 のように記述されるもので,「“ニューロ”と“コンピ
ュータ”が同一の文(センテンス)に共起する文書を探
せ」という意味を持つ文脈条件がある。
【0034】以上が本発明の第一の実施例のフルテキス
トサーチ装置の概略である。
【0035】以下,本実施例における連接文字成分表の
登録及び検索方法の詳細について説明する。本実施例で
は,連接文字成分表の部分文字列長としてn=2の場合
を例にして説明する。(以後の実施例においても同様
に,n=2の場合を例に説明することにする。) まず「連接文字成分表」の作成は前述したように,文書の
登録時に文書登録制御プログラムに起動される連接文字
成分表作成登録プログラムを実行することによって自動
的に行われる。
【0036】「連接文字成分表」は「本文」から作成す
る。ここでは図7に示すように,「本文」に現われる2
文字の文字列の存在の有無を1ビットの情報で表す。図
8では文書1の例で,“オン”があるので‘1’を,ま
た“イオ”はないので‘0’を設定する。「経済」も同
様に‘1’を設定する。以下同様にして,連接文字成分
表の該当文字列部分に,「本文」にその文字列がある場
合には‘1’を,存在しない場合には‘0’を設定す
る。
【0037】このようにして,文書の登録時に「連接文
字成分表」を自動的に作成し,階層型プリサーチの準備
をしておく。
【0038】次に,検索方法を説明する。
【0039】検索条件式が入力されると階層検索制御プ
ログラムが起動され,まず最初に検索条件式解析プログ
ラムが実行される。次に,文字成分表サーチプログラム
が起動され,連接文字成分表を参照し,検索ターム中の
全ての文字列に対応する文字成分表の該当文字列部分に
‘1’が設定されているものを選び出す。次に,凝縮本
文サーチプログラムが起動され,文字成分表で選び出さ
れた文書の凝縮本文を参照し,条件式に与えられた検索
タームを含む文書を選び出す。最後に本文サーチでは,
検索タームの本文での出現位置が条件式と適合するもの
のみを選び出す。
【0040】以下,本実施例における階層検索制御手順
について,図9のPAD図を用いて概説する。まず第一
に,検索ターム中の部分文字列を使い文字成分表サーチ
を行う。文字成分表サーチの結果件数が0件であれば,
ここで0件という検索結果を出力して検索を終了する。
また,検索タームが2文字以下から構成される場合も,
ここで文字成分表サーチの結果を出力して検索を終了す
る。
【0041】もし,検索タームが2文字以上で構成さ
れ,かつ文字成分表サーチの結果件数が0件でなけれ
ば,次に凝縮本文サーチを行う。凝縮本文の結果件数が
0件であれば,ここで0件という検索結果を出力して検
索を終了する。また,近傍条件あるいは文脈条件の指定
のある場合,または“インサイダー取引”のような文字
種で分割される検索タームがある場合に限り本文サーチ
を行う。そうでない場合,ここで階層型プリサーチを終
了し凝縮本文の結果を検索結果として出力する。
【0042】次に,本実施例で用いる文字成分表(ここ
では,文字コード依存型連接文字成分表と呼ぶ)の作成
方法と,これを用いた文字成分表サーチの制御方法につ
いてさらに詳細に説明する。
【0043】まず本実施例で用いる文字コード依存型文
字成分表の作成方法について説明する。
【0044】図10に示すように,文字コード依存型連
接文字成分表は,連接文字を文字コードの列として表現
する連接文字成分表である。本図ではシフトJISコー
ドを例に説明している。同図で(XXXXXXXX)H
は1文字目の文字コードを上位2バイト,2文字目の文
字コードを下位2バイトとして全4バイトで16進表示
したものである。例えば“経済”(“経”=(8C6
F),“済”=(8DCF))という文字列が文書1の本文
中に存在することを示すのに,文書1のビットリストの
(8C6F8DCF)H番目に1を設定する。ビットリス
ト中のこの文字に対応するビット位置を文字成分表のエ
ントリ番号と呼ぶことにする。例えば“経済”のエント
リ番号は(8C6F8DCF)H,または10進数で表せ
ば,2,356,121,039となる。
【0045】次に,上記連接文字成分表を用いた文字成
分表サーチの制御及びサーチ動作を図11を用いて説明
する。まず検索条件式中の検索タームをそれぞれ2文字
単位に分解し,各部分文字列毎に文字成分表からビット
リストを読み出し,これらのビットANDをとる。ここ
では与えられた検索タームを構成する文字コードと文字
コードの組合せに対応するビットリスト中のエントリ番
号の位置がすべて1となるビットリストを持つ文書を求
めることとなる。例えば,図12のように“ライオン”
という文字列が検索タームとして与えられた場合,“ラ
イ”と“オン”に対応するビットリストの(83898
343)H番目と(83498393)H番目のビットが
すべて1である文書を文字成分表サーチの検索結果とす
る。すなわち,図4に示すように“ライ”を示す(83
898343)Hのエントリ番号のビットリスト120
0と,“オン”を示す(83498393)Hのエントリ
番号のビットリスト1201との間でビット毎にAND
演算を施し,ビットAND演算結果1202を得る。こ
のビットAND演算結果1202のビットリスト中で,
1となっているビット位置に対応する文書番号が文字成
分表サーチの検索結果としてのヒット文書を表すことに
なる。すなわち,“ライ”と“オン”の両方を含む文書
が抽出されることになる。
【0046】また,“ねこ”のようにちょうど連接文字
列の長さと同じ2文字で構成される検索タームの場合に
は,文字成分表サーチの結果をそのまま検索結果とする
ことができる。
【0047】“誠”のように2文字に満たない検索ター
ムに対しては,従来通り1文字単位の文字成分表を作成
しておいて対処する。
【0048】このように,本実施例における文字成分表
サーチでは,2文字単位の文字の並びを文書の登録時に
予め登録することにより,結果的に階層型プリサーチに
おける凝縮テキストの探索量を削減し全体の検索速度が
向上するため,より大量のフルテキストサーチが可能と
なる。また,本実施例では,文字成分表を2文字単位の
文字列で作成する場合について説明したが,3文字以上
の場合についても同様な処理が可能なことは容易に類推
できる。
【0049】次に,本発明の第二の実施例を図13を用
いて説明する。本実施例は,第一の実施例の検索ターム
の分割に重複を許すことによって,より絞り込みを高め
ることのできるフルテキストサーチ方法を提供するもの
である。
【0050】例えば,図の「“ライオン”」という条件
式が与えられたときには,まず,第1ステップとして連
接文字成分表をサーチする。第一の実施例では,与えら
れた検索タームを重複しない2文字の文字列に分割し,
これらの文字列を全て含む文書を出力していた。「“ラ
イオン”」という条件式の場合には,“ライ”,“オ
ン”の2つの文字列に分割し,これらの部分文字列を含
む文書を探す。すなわち,「“ライ”AND“オン”」
となる。
【0051】しかし,この方法だと“ライ”や“オン”
は含むが,“イオ”は含まない文書までが文字成分表サ
ーチの結果に含まれることになる。
【0052】この検索ノイズをなくすため,検索ターム
を重複する2文字の部分文字列に分割して,それらの文
字列を全て含む文書を探し出す。図13に示すように
「“ライオン”」という条件式の場合には,“ライ”,
“イオ”,“オン”の3つの文字列に分割する。すなわ
ち,「“ライ”AND“イオ”AND“オン”」とな
る。こうすることにより,“ライ”や“オン”は含むが
“イオ”は含まない文書を文字成分表サーチで削除する
ことが可能となる。その結果,文字成分表サーチでの一
層高い絞り込みが実現されることになる。
【0053】以上が本実施例における検索動作の説明で
ある。このように,文字成分表サーチで検索タームを重
複する部分文字列に分割することにより,重複しない場
合と比較して検索タームに関連のない文書をより切り捨
てることができるため,さらに高速なフルテキストサー
チを実現することができる。
【0054】次に,本発明の第三の実施例について説明
する。本実施例は,第一の実施例における連接文字成分
表の容量を削減し,コンパクトにするものである。第一
の実施例で用いた文字コード依存型文字成分表は処理が
簡単なものの,文字成分表の1文書あたりのビットリス
トが長いため文字成分表が大きくなるという問題があ
る。また,該当する文字コードあるいは文字コードの組
が実際には存在しないのにエントリを割当てているため
むだな部分が多いという問題もある。例えばシフトJI
Sコードの場合,図15に示すように(0000)Hから
(8140)Hの間,及び(A000)Hから(E040)H
の間,つまり0番目から33,087番目までと40,9
60番目から57,408番目までのエントリには該当
する文字コードがない。それにもかかわらず,文字コー
ドによってエントリを決定するためにこの部分も全て表
のエントリとして持っている必要がある。2文字の連接
文字による連接文字成分表の場合には図14の空白部分
エントリが全て無駄となっている。
【0055】本実施例の場合,このビットリスト中のむ
だな部分を排除するために一旦文字コードを変換し,ビ
ット位置を0番目からすきまなく使用できるように連接
文字成分表を作成する。以下,これを文字コード変換型
文字成分表と呼ぶ。この文字コード変換型文字成分表を
用いた本実施例の詳細を説明する。
【0056】文字コード変換型文字成分表を作成するた
めの文字コードへの変換式の例として次式をあげる。
【0057】 SCODE = (SJIS_H & 0xBF) * 0xC0 + SJIS_L − 0x6000 ・・・・・・・ (3−1)式 式中でSJIS_HがもとのシフトJISコードの上位
1バイト,SJIS_Lが下位1バイトを示し,SCO
DEは変換後の文字コードを示す。KEISコードや他
のコード体系についてもシフトJISコードとの対応が
とれているので同様の式でSCODEへの変換が可能で
ある。(3−1)式は,文字コード表に表すと図15のよ
うな変換を意味している。すなわち,(0000)Hから
(FFFF)Hまでの間に (8140)H〜(9FFC)H 及び (E040)H〜(FEFC)H と分散して配置されている文字コードを(0000)H
からすきまなく配置するように文字コードを変換するこ
とになる。
【0058】この(3−1)式を用いてコード変換する
ことにより,図16に示すようにビットリストの長さを
非常に短くすることができ,連接文字成分表の全体の容
量を極めて小さくすることができる。
【0059】文字コード変換型文字成分表の作成手順
は,図17に示すように,まず,文字コード依存型と同
じように「本文」から2文字読み出す。これらの文字をそ
れぞれ(3−1)式を用いて文字コード変換し,2文字に
対応する文字成分表のビットに‘1’を設定する。
【0060】検索手順は,図18に示すように,検索条
件式中の検索タームをそれぞれ2文字単位に分解して
(3−1)式を用いて文字コード変換し,各部分文字列毎
に文字成分表からビットリストを読み出し,これらのビ
ットANDをとる。
【0061】階層型プリサーチの制御は,第一の実施例
と同じである。但し,文字成分表サーチのときには入力
された検索タームは全て(3−1)式に基づいて文字コー
ド変換を施して用いることになる。制御は,図9の制御
手順をそのまま使用し,第一に検索ターム中の文字列を
使い文字成分表サーチを行い,第二に検索タームを用い
て凝縮本文サーチを行う。文脈条件の指定がなければこ
こで検索結果を出力し,検索を終了する。文脈条件の指
定があれば第三に本文サーチを行いその結果を出力す
る。
【0062】以上,文字コード変換型文字成分表を用い
た第三の実施例について説明した。本実施例によれば,
文字コードをコード変換し,ビット位置を0番目からす
きまなく並べた連接文字成分表を作成することにより,
連接文字成分表の文字の割り振られていないエントリを
無くすことができ,連接文字成分表の容量を非常に小さ
くすることができる。
【0063】次に,本発明の第四の実施例について説明
する。本実施例は,第三の実施例における連接文字成分
表の容量をハッシング手法を用いてさらに削減したもの
である。
【0064】第三の実施例の連接文字成分表の容量をさ
らに小さくするために,本実施例ではビットリスト中の
一つのエントリに複数の文字あるいは文字列を割り当て
る。すなわち,ハッシュ関数を用いて検索ターム中の文
字列とビットリスト中のビット位置を対応付ける方法を
用いる。このハッシュ関数として,例えば次の式を用い
ることができる。
【0065】 h((SCODE1)(SCODE2)) = mod((SCODE1)(SCODE2),N) ・・・・・・・ (4−1)式 式中でSCODE1は(3−1)式によってシフトJIS
から変換した1文字目の文字コードである。SCODE
2は(3−1)式によってシフトJISから変換した2文
字目の文字コードである。modは第1引き数を第2引
き数で割った余りを出力する関数である。Nは任意の整
数値である。Nとして例えば4,096を用いると,
“する”はエントリ番号617となる。
【0066】まず,本実施例における検索手順を,図1
9を用いて説明する。第一の実施例では,検索タームが
2文字からなる場合には,文字成分表サーチの結果を検
索結果として出力して階層検索を終了していた。しか
し,本実施例で用いる文字成分表の文字成分表サーチで
は,検索ノイズ生じる可能性があるために,凝縮本文サ
ーチまで階層検索を継続する必要がある。例えば,ひら
がなの“そこ”(シフトJISコード(82BB82B
1)H)は,(4−1)式でエントリ番号561である
が,漢字の“行列”(シフトJISコード(8D738
7F1)H)も同じエントリ番号561となる。このこ
とは,検索タームとして“行列”が与えられた場合,
“そこ”を含む文書もすべて文字成分表サーチの結果と
して検索されてくることになる。したがってさらに,凝
縮本文をスキャンして実際に漢字の“行列”を含む文書
を抽出し,これを検索結果として出力することになる。
【0067】次に,本実施例で用いる文字成分表の作成
手順を図20を用いて説明する。まず,文字コード変換
型と同じように「本文」から2文字読み出し,これらの文
字をそれぞれ(3−1)式を用いて文字コード変換する。
これら変換後の文字コードから(4−1)式を用いて2文
字のエントリ番号を得る。このエントリ番号に対応する
文字成分表のビットに‘1’を設定する。
【0068】このようにして作成した連接文字成分表を
図21に示す。この場合は,(4−1)式でNを4,09
6と設定したが,1文書を登録するのに4,096ビッ
トしか必要としないことが分かる。検索時には,与えら
れた検索タームの各文字について登録時と同じように,
(4−1)式のハッシュ関数を用いてエントリ番号を求
め,これに対応する文字成分表のビット位置を参照す
る。例えば,“ライオン”という文字列の場合,図21
のように“ライ”,“イオ”,及び“オン”に対応する
エントリ番号643,646,723の位置のビットが
すべて1の文書を文字成分表サーチの検索結果とする。
検索手順は図22に示すように,まず検索条件式中の検
索タームをそれぞれ2文字単位に分解して(3−1)式を
用いて文字コード変換し,さらに(4−1)式を用いてエ
ントリ番号を得る。各エントリ番号毎に文字成分表から
ビットリストを読み出し,これらのビットANDをと
る。こうして文字成分表サーチで求められた文書につい
て,次にその凝縮本文をサーチする。
【0069】以上,第四の実施例について説明した。本
実施例ではハッシュ関数を使って,文字成分表の1エン
トリに複数個の文字あるいは文字列を割り当てることに
より,文字成分表の容量を格段に小さくできるという効
果が得られる。
【0070】次に本発明の第五の実施例について説明す
る。
【0071】第四の実施例のように単純にハッシングし
た場合,ひらがなのように文書中に出現しやすい文字列
と,めったに出現しない文字の組合せで構成される文字
列とが同じエントリ番号となる可能性がでてくる。例え
ば,ひらがなの“そこ”と,漢字の“行列”は同じエン
トリ番号561となり,検索タームとして“行列”が与
えられた場合“そこ”を含む文書はすべて文字成分表サ
ーチの結果としてヒットすることになる。ひらがなの
“そこ”は日本語の文書では非常に使用頻度の高い文字
のためほぼ全件の文書が文字成分表サーチでヒットする
可能性がある。文字成分表サーチでの絞り込み率が低下
すると,スキャンする凝縮本文の容量も増えるために全
体の検索処理時間が増大することになる。
【0072】このような文字成分表サーチの絞り込み率
の低下を防ぐためには,ハッシュ関数を文字の使用頻度
を考慮して定める必要がある。本実施例において文字の
仕様頻度を考慮して作成する文字成分表を文字種別ハッ
シング型文字成分表と呼ぶ。文字種別ハッシング型文字
成分表を作成するには,例えば図23に示すように,各
文字種毎に文字成分表のエントリ領域を割り当て,その
領域内で文字コードにより折り返すようなハッシュ関数
を作る。このようなハッシュ関数を実現するには,文字
コードによって文字種を判定した後mod関数で折り返
してもよいし,文字コードとエントリ番号との対応表
(以後,ハッシュテーブルと呼ぶ)により実現すること
もできる。本実施例では,ひらがな,カタカナのエント
リをそれぞれ200とし,英字のエントリ数を100と
し,数字のエントリ数を50,JIS第1水準のエント
リ数を1500,JIS第2水準のエントリ数を10
0,その他のエントリ数を1946としている。漢字の
第1水準は使用頻度が高いため広いエントリを,第2水
準は使用頻度が低いため狭いエントリとしている。作成
手順は図24に示すように,入力された検索タームに対
して,文字コード変換した後に文字種を判定し,それぞ
れの文字種ごとに文字成分表の割り当てられたエントリ
の部分をmod関数を用いて折り返す。
【0073】すなわち,SCODE1とSCODE2の
両方が(021F)Hから(0271)Hの範囲にあれば,
ひらがな文字列であるので,そのSCODEを200で
modをとってこれをエントリ番号とする。
【0074】SCODE1とSCODE2の両方が(0
280)Hから(02D6)Hの範囲にあれば,カタカナ
文字列であるので,そのSCODEを200でmodを
とって,これにカタカナのハッシング領域の先頭である
200を足した値をエントリ番号とする。
【0075】SCODE1とSCODE2の両方が(0
1E0)Hから(021A)Hの範囲にあれば,英字文字
列であるので,そのSCODEを100でmodをとっ
て,これに英字のハッシング領域の先頭である400を
足した値をエントリ番号とする。
【0076】SCODE1とSCODE2の両方が(0
1CF)Hから(01D2)Hの範囲にあれば,数字文字
列であるので,そのSCODEを50でmodをとっ
て,これに数字のハッシング領域の先頭である500を
足した値をエントリ番号とする。SCODE1とSCO
DE2の両方が(069F)Hから(1272)Hの範囲に
あれば,JIS第1水準の漢字文字列であるので,その
SCODEを1,500でmodをとって,これにJI
S第1水準の漢字文字列のハッシング領域の先頭である
550を足した値をエントリ番号とする。
【0077】SCODE1とSCODE2の両方が(1
29F)Hから(2022)Hの範囲にあれば,JIS第
2水準の漢字文字列であるので,そのSCODEを10
0でmodをとって,これにJIS第2水準の漢字文字
列のハッシング領域の先頭である2,050を足した値
をエントリ番号とする。
【0078】これら文字種のコード範囲を図25に示
す。図の空白部分,すなわち上記の(SCODE1)(S
CODE2)以外の場合には,記号その他の文字種の組
合せによる文字列とみなし,その(SCODE1)(SC
ODE2)を1,946でmodをとって,これに記号の
ハッシング領域の先頭である2,150を足した値をエ
ントリ番号とする。
【0079】図26に示すように,検索においても作成
と同様の文字種判定を行い,得られたエントリ番号に対
応するビットリスト取り出しANDする。
【0080】この文字種別ハッシング型連接文字成分表
を用いた階層型プリサーチの制御手順は,第五の実施例
と同じである。すなわち,図19に示したように第一に
検索ターム中の文字を用いて文字成分表サーチを行い,
第二に検索タームを用いて凝縮本文サーチを行う。文脈
条件等が指定されていない場合には,ここで検索を終了
するが,そうでない場合には,第三に本文サーチを行い
結果を出力する。
【0081】以上説明したように,本実施例によれば,
使用頻度を考慮して文字種ごとに連接文字成分表のエン
トリ番号を対応させた文字種別ハッシング型文字成分表
を用いることにより,文字成分表サーチでのノイズをさ
らに少なくできるため,凝縮本文における文書のスキャ
ン量が減り,その分高速なフルテキストサーチが可能と
なる。
【0082】次に第六の実施例について説明する。これ
は,さらに文字成分表サーチにおける絞り込みの率を向
上させ,凝縮本文のスキャン量を減らすことのできる頻
度情報ハッシング型連接文字成分表を用いた階層型プリ
サーチの制御方法である。
【0083】まず,本実施例を用いた文書検索装置につ
いて図27を用いて説明する。本装置は,第一の実施例
の主メモリに,ハッシュテーブル作成プログラム280
5を新たに格納したものである。本プログラムの実行に
より,ハッシュテーブル2811を作成し,これを磁気
ディスク2710に格納する。
【0084】頻度情報ハッシング型連接文字成分表を作
成するには,図28の示すように,データベースに登録
してある文書の部分文字列の使用頻度を調べ,頻度情報
に基づいてハッシュ関数を決定する。頻度の大きい文字
については,同一エントリにできるだけ他の文字が入ら
ないようにし,頻度の少ない文字について同一エントリ
に複数個の文字が入るようにハッシュ関数を調整する。
こうすることにより,平均的に安定した絞り込み率が文
字成分表サーチで得られることになる。具体的には,ま
ずどの文字をハッシングの対象とするのか,すなわちど
の程度頻度の低い文字同士を同一エントリに割り付ける
かの目安を調べる。具体的な方法としては,図29に示
す処理手順に従い(3−1)式で得られるSCODEをも
とに一度データベース中で該当する文字列を使用してい
る文書数を調べ頻度順に並べ替える。次に,頻度の大き
いものから文字成分表のエントリ数分Ntだけとる。そ
してNt以上のエントリの頻度の合計S1より,ある頻
度Fに対しNt以下で頻度がF以下となるエントリのF
−(エントリの頻度)の合計S2を求め,これがS1より
小さくなるようなFの最大値をハッシングの目安とす
る。
【0085】ハッシングの目安を定めたら,次に図30
に示すようにNt以内で頻度がF以下のエントリに順次
Nt以上のエントリ番号を割り付けていく。この処理手
順を図31を用いて説明する。Nt以上のエントリ番号
の割付けは(Nt+1)番目のエントリをNtのエントリと
し,(Nt+2)番目を(Nt−1)番目のエントリとするよ
うに,Ntより順次頻度の大きいエントリを割り付けて
いく。割り付けていく過程では,F以上の頻度を持つエ
ントリの上には,他のエントリを割り付けないようにす
る。また,割り付けた結果,そのエントリの頻度がFを
超えるならば,その割付けは取り消して再度Nt番目の
エントリから割付けを開始する。割り付けたエントリ
は,図32に示すようにハッシュテーブルの形で記憶し
ておき,このテーブルを参照することによってハッシュ
関数を構成するものとする。すなわち,本図の例では,
(SCODE1)(SCODE2)が(096F0A8F)H
の文字列“経済”は,エントリ番号1682であること
が分かる。
【0086】検索は,図33に示すように,2文字単位
に分割した検索タームを,それぞれ(3−1)式を用い
て文字コード変換し,変換後のコードによりハッシュテ
ーブルを参照してエントリ番号を得る。次に,エントリ
番号に対応するビットリストを読み出しANDする。
【0087】階層検索の制御手順は,第五の実施例と同
じである。すなわち,図19の制御手順をそのまま使用
し,第一に検索ターム中の文字を用いて文字成分表サー
チを行い,第二に検索タームを用いて凝縮本文サーチを
行う。文脈条件等が指定されていない場合には,ここで
検索を終了するが,そうでない場合には,第三に本文サ
ーチを行い結果を出力する。
【0088】このように,本実施例によれば,データベ
ース中で実際に用いられる文字の頻度分布をもとに連接
文字成分表を作成することによって,文字成分表サーチ
で常に安定して高い絞り込み率が得られるため,検索タ
ームに依存せず安定して短時間の検索レスポンスを得る
ことができる。
【0089】最後に第七の実施例として,第六の実施例
のハッシュテーブルの容量を削減する頻度情報プレハッ
シング型連接文字成分表を用いた階層型プリサーチの制
御方法を説明する。第六の実施例のハッシュテーブル
は,全ての文字の組合せの数だけ容量が必要であるた
め,nが3あるいは4と増えていくと容量が膨大になっ
てしまうという問題がある。
【0090】まず,本実施例を用いた文書検索装置につ
いて図34を用いて説明する。本装置は,第六の実施例
の主メモリに,プレハッシュテーブル作成プログラム3
505を新たに格納したものである。本プログラムの実
行により,プレハッシュテーブル3512を作成し,こ
れを磁気ディスク3410に格納する。
【0091】頻度情報プレハッシング型連接文字成分表
を作成するには,図35の処理手順に従い,データベー
スに登録してある文書の文字の使用頻度を調べ,頻度情
報によりハッシュ関数を決定する。ハッシュ関数の構成
は第六の実施例と同じである。すなわち,本実施例では
いきなり部分文字列に対してハッシングせず,まず1文
字についてハッシングする。こうすることにより,6,
879種ある文字があたかもNt文字しか存在しないか
のように扱えることになる。このハッシングをプレハッ
シング,割り付けたエントリを記憶するテーブルをプレ
ハッシュテーブルと呼ぶ。プレハッシュテーブルの構造
は図32に示すように第六の実施例のハッシュテーブル
の構造と同じであり,6,879文字分あればよい。ま
た,1文字目と2文字目の文字種のプレハッシュエント
リ数とオフセットを格納したオフセットテーブルも用意
する。
【0092】次に,データベースに登録してある文書の
部分文字列の使用頻度を調べ,頻度情報によりハッシュ
関数を決定する。頻度情報は,上記プレハッシュテーブ
ルから構成されるプレハッシュ関数を文字コードから参
照して得られるプレハッシュエントリ番号の組合せ毎に
調べられる。ハッシュ関数の構成は,第六の実施例と同
じである。プレハッシュテーブルからハッシュテーブル
を参照するには,1文字目のプレハッシュエントリに2
文字目の文字種のプレハッシュエントリ数を掛けて,2
文字目のプレハッシュエントリとオフセットを足した数
字で参照する。例えば,“それ”という文字列の場合,
図36に示すように各文字のSCODEでプレハッシュ
テーブルを参照し,各文字のプレハッシュエントリを取
り出す。“そ”のプレハッシュエントリが16,“れ”
が7,また,オフセットテーブルに格納するひらがなの
プレハッシュエントリ数を30,オフセットを50とし
た場合,16×30+7+50=537でハッシュテー
ブルを参照する。ハッシュテーブルの構造は,第六の実
施例と同じである。
【0093】例えば,プレハッシュエントリ,すなわち
Ntを1,024とした場合,ハッシュテーブルは1,0
24×1,024分用意すればよい。
【0094】階層型プリサーチの制御手順は,第五の実
施例と同じである。すなわち,図19の制御手順をその
まま使用し,第一に検索ターム中の文字を用いて文字成
分表サーチを行い,第二に検索タームを用いて凝縮本文
サーチを行う。文脈条件等が指定されていない場合に
は,ここで検索を終了するが,そうでない場合には,第
三に本文サーチを行い結果を出力する。
【0095】このように,本実施例によれば,プレハッ
シングすることによりハッシュテーブルの容量を格段に
削減できるという効果が得られる。
【0096】
【発明の効果】本発明によれば,連接文字成分表を用い
て,階層的に部分文字列レベルで入力された検索ターム
に関連しない文書を高精度にふるい落すことにより,無
用の本文サーチを省くことができるため,等価的に高速
なフルテキストサーチが実現できることになり,大規模
な文書データベースでも実用的な応答速度でフルテキス
トサーチすることが可能となる。
【図面の簡単な説明】
【図1】本発明の第一の実施例の構成を示す図。
【図2】従来の文字成分表の構造を示す図。
【図3】文字成分表の作成手順を示すPAD図。
【図4】文字成分表の検索手順を示すPAD図。
【図5】連接の取り方を示す図。
【図6】文書の登録手順を示すPAD図。
【図7】文字コード依存型連接文字成分表の作成手順を
示すPAD図。
【図8】連接文字成分表の構造を示す図。
【図9】階層検索の制御手順を示すPAD図。
【図10】文字コード依存型連接文字成分表を示す図。
【図11】文字コード依存型連接文字成分表の検索手順
を示すPAD図。
【図12】文字成分表サーチの概要を示す図。
【図13】第二の実施例で用いる重複文字列による文字
成分表サーチの概要を示す図。
【図14】文字コード依存型連接文字成分表の無駄なエ
ントリを示す図。
【図15】第三の実施例で用いる文字成分表のコード変
換の処理を示す図。
【図16】文字コード変換型連接文字成分表を示す図。
【図17】文字コード変換型連接文字成分表の作成手順
を示すPAD図。
【図18】文字コード変換型連接文字成分表の検索手順
を示すPAD図。
【図19】ハッシング型連接文字成分表を用いた階層検
索制御手順を示すPAD図。
【図20】第四の実施例で用いるハッシュ型連接文字成
分表の作成手順を示すPAD図。
【図21】ハッシング型連接文字成分表を示す図。
【図22】ハッシング型連接文字成分表の検索手順を示
すPAD図。
【図23】第五の実施例で用いる文字種別ハッシング型
連接文字成分表を示す図。
【図24】文字種別ハッシング型連接文字成分表の作成
手順を示すPAD図。
【図25】各文字種の文字コード範囲を示した図。
【図26】文字種別ハッシング型連接文字成分表の検索
手順を示すPAD図。
【図27】本発明の第六の実施例の構成を示す図。
【図28】頻度情報ハッシング型連接文字成分表の作成
で用いるハッシングの目安を定める方法を示す図。
【図29】頻度情報ハッシング型連接文字成分表の作成
で用いるハッシングの目安を定める手順を示すPAD
図。
【図30】頻度情報ハッシングの概要を示す図。
【図31】頻度情報ハッシングの手順を示すPAD図。
【図32】ハッシュテーブルの概要を示す図。
【図33】頻度情報ハッシング型文字成分表の検索手順
を示すPAD図。
【図34】本発明の第七の実施例の構成を示す図。
【図35】頻度情報プレハッシング型連接文字成分表の
作成手順を示すPAD図。
【図36】プレハッシュテーブルを用いた連接文字成分
表のアクセス法を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 川口 久光 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 畠山 敦 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 多田 勝巳 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 浅川 悟志 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】文書情報を文字コードデータとして蓄積し
    たテキストデータベースを対象として,検索者が指定し
    たキーワードを含む文書をその本文内容を参照して検索
    する文書検索方法において,該テキストデータベースに
    文書を登録する際,該登録文書の本文文字列をひらが
    な,カタカナ,漢字,及び英数字等の少なくとも1種類
    の文字種で分割し,分割した各部分文字列の間で相互に
    文字列の包含関係を調べ,他の文字列に含まれる文字列
    を排除した部分文字列の集合からなる凝縮本文を作成す
    るステップと,使用可能な全ての2文字以上の文字列の
    情報を文書単位に用意しておき,該文書中で使用されて
    いる文字列については使用されていることを表す情報,
    使用されていない文字列については使用されていないこ
    とを表す情報を設定しておく連接文字成分表を作成する
    ステップと,登録対象文書の本文のほかに凝縮本文と連
    接文字成分表を合わせてテキストデータベースへ登録す
    るステップと,検索時には先ず検索者が指定したキーワ
    ード中の全ての2文字以上の文字列について全て使用さ
    れているものを探し出す文字成分表サーチステップと,
    次に該文字成分表サーチで抽出された文書に対する凝縮
    本文を参照して,検索者が指定したキーワードを構成す
    る部分文字列を含む文書のみを抽出する凝縮本文サーチ
    のステップと、該凝縮本文サーチにより,指定キーワー
    ドを含む文書を選び出し,最後に絞り込まれた文書の本
    文を参照して,キーワード間に付与された位置関係等の
    検索条件を満たすもののみを抽出する本文サーチのステ
    ップを備え,等価的に高速なフルテキストサーチを行う
    ことを特徴とする文書検索方法。
  2. 【請求項2】第1項記載の文書検索方法における連接文
    字成分表として,使用可能な全ての2文字以上の文字列
    に対して1ビットの情報を割り付けたビットリストを文
    書単位に用意しておき,該文書中で使用されている文字
    列について該当ビット位置を1に,使用されていない文
    字列については0を設定しておくことを特徴とする文書
    検索方法。
  3. 【請求項3】第2項記載のフルテキストサーチ方法にお
    ける連接文字成分表として,ひらがな,カタカナ,漢
    字,及び英数字等の文字種毎に予め設定したn文字の文
    字列を単位として作成することを特徴とする文書検索方
    法。
  4. 【請求項4】第2項記載の文書検索方法における連接文
    字成分表として,文字コードの組をハッシュ関数により
    実際に使われる文字の組合せの数より少ないエントリの
    ビットリストにマッピングすることを特徴とする文書検
    索方法。
  5. 【請求項5】第4項記載の文書検索方法における連接文
    字成分表として,実際に使われている文字列をひらが
    な,カタカナ,漢字,及び英数字等の少なくとも1種類
    の文字種で分割し,文字コードの組をハッシュ関数によ
    り,実際に使われる文字の組合せの数より少ないエント
    リのビットリストに文字種毎にマッピングすることを特
    徴とする文書検索方法。
  6. 【請求項6】第4項記載の文書検索方法における連接文
    字成分表へマッピングするハッシュ関数として,実際に
    使われる文字列の使用頻度を調べ,文字コードの組をハ
    ッシュ関数により,実際に使われている文字列の数より
    少ないビット数のビットリストにマッピングする際,使
    用頻度の低い文字列同士を同じビットにマッピングする
    ことを特徴とする文書検索方法。
  7. 【請求項7】第4項記載の文書検索方法における連接文
    字成分表へマッピングするハッシュ関数として,文字コ
    ードを該ハッシュ関数により,実際に使われている文字
    の数より少ないエントリのコードにマッピングし,ハッ
    シングした文字コードの組をさらに別のハッシュ関数に
    より,実際に使われている文字列の数より少ないエント
    リのビットリストにマッピングすることを特徴とする文
    書検索方法。
  8. 【請求項8】第2項記載の文書検索方法において,連接
    文字成分表をn文字の文字列を単位として作成した場
    合,文字成分表サーチステップで検索者が指定したキー
    ワード中の全ての重複しないn文字の文字列について,
    ビットリスト中の該当ビット位置が全て1であるものを
    探し出すことを特徴とする文書検索方法。
  9. 【請求項9】第2項記載の文書検索方法において,連接
    文字成分表をn文字の文字列を単位として作成した場
    合,文字成分表サーチステップで検索者が指定したキー
    ワード中の全ての重複するn文字の文字列について,ビ
    ットリスト中の該当ビット位置が全て1であるものを探
    し出すことを特徴とする文書検索方法。
  10. 【請求項10】第2項記載の文書検索方法において,連
    接文字成分表を1ないしn文字の文字列を単位として作
    成し,検索者が指定したキーワードがn文字以下の場
    合,文字成分表サーチステップの結果を最終結果とし検
    索処理を終了することを特徴とする文書検索方法。
  11. 【請求項11】文書情報を文字コードデータとして蓄積
    したテキストデータベースを対象として,検索者が指定
    したキーワードを含む文書をその本文内容を参照して検
    索する文書検索方法において,該テキストデータベース
    に文書を登録する際,該登録文書の本文文字列をひらが
    な,カタカナ,漢字,及び英数字等の少なくとも1種類
    の文字種で分割し,分割した各部分文字列の間で相互に
    文字列の包含関係を調べ,他の文字列に含まれる文字列
    を排除した部分文字列の集合からなる凝縮本文を作成す
    るステップと,使用可能な全ての1文字と2文字以上の
    文字列の情報を文書単位に用意しておき,該文書中で使
    用されている文字列について使用されていることを表す
    情報,使用されていない文字列については使用されてい
    ないことを表す情報を設定しておく単一文字成分表と連
    接文字成分表を作成するステップと,登録対象文書の本
    文のほかに凝縮本文と連接文字成分表を合わせてテキス
    トデータベースへ登録するステップと,検索時には先ず
    検索者が指定したキーワード中の全ての2文字以上の文
    字列について全て使用されているものを探し出す文字成
    分表サーチステップと,次に該文字成分表サーチで抽出
    された文書に対する凝縮本文を参照して,検索者が指定
    したキーワードを構成する部分文字列を含む文書のみを
    抽出する凝縮本文サーチのステップと、該凝縮本文サー
    チにより,指定キーワードを含む文書を選び出し,最後
    に絞り込まれた文書の本文を参照して,キーワード間に
    付与された位置関係等の検索条件を満たすもののみを抽
    出する本文サーチのステップを備え,等価的に高速なフ
    ルテキストサーチを行うことを特徴とする文書検索方
    法。
  12. 【請求項12】第11項記載の文書検索方法における連
    接文字成分表として,使用可能な全ての2文字以上の文
    字列に対して1ビットの情報を割り付けたビットリスト
    を文書単位に用意しておき,該文書中で使用されている
    文字列について該当ビット位置を1に,使用されていな
    い文字列については0を設定しておくことを特徴とする
    文書検索方法。
  13. 【請求項13】文書情報を文字コードデータとして蓄積
    するテキストデータベースを作成するテキストデータ作
    成方法において、(1)テキストデータを読み込むステ
    ップ、(2)予め定められたn文字から構成される各文
    字列のテキストデータ中における使用頻度を数え、各文
    字列を該使用頻度順に並べ替えるステップ、(3)文字
    列数以下のエントリに各文字列を対応させて、両者の対
    応をハッシュテーブルとして記憶するステップ、(4)
    テキストデータ中で用いられている文字列に対応するエ
    ントリにその文字列の存在を文字成分表として記憶する
    ステップ、を備え、テキストデータベースを作成するこ
    とを特徴とするテキストデータベース作成方法。
  14. 【請求項14】文書情報を文字コードデータとして蓄積
    したテキストデータベースを対象として、検索者が指定
    したキーワードを含む文書をその本文内容を参照して検
    索するフルテキストサーチ方法において、(1)テキス
    トデータを読み込むステップ、(2)予め定められたn
    文字から構成される各文字列のテキストデータ中におけ
    る使用頻度を数え、各文字列を該使用頻度順に並べ替え
    るステップ、(3)文字列数以下のエントリに各文字列
    を対応させて、両者の対応をハッシュテーブルとして記
    憶するステップ、(4)テキストデータ中で用いられて
    いる文字列に対応するエントリにその文字列の存在を文
    字成分表として記憶するステップ、(5)検索者が指定
    したキーワードをn文字の部分文字列に分割するステッ
    プ、(6)分割された各文字列に対応するエントリを文
    字成分表から取り出すステップ、(7)取り出された各
    文字成分表のエントリを参照してキーワードを構成する
    各文字列が全て存在する文書を検索するステップ、を備
    えたことを特徴とするフルテキストサーチ方法。
  15. 【請求項15】文書情報を文字コードデータとして蓄積
    したテキストデータベースを対象として,検索者が指定
    したキーワードを含む文書をその本文内容を参照して検
    索する文書検索装置において,該テキストデータベース
    に文書を登録する際,該登録文書の本文を登録する手段
    と、該登録文書の本文文字列をひらがな,カタカナ,漢
    字,及び英数字等の少なくとも1種類の文字種で分割
    し,分割した各部分文字列の間で相互に文字列の包含関
    係を調べ,他の文字列に含まれる文字列を排除した部分
    文字列の集合からなる凝縮本文を作成して登録する手段
    と,使用可能な全ての2文字以上の文字列の情報を文書
    単位に用意しておき,該文書中で使用されている文字列
    については使用されていることを表す情報,使用されて
    いない文字列については使用されていないことを表す情
    報を設定しておく連接文字成分表を作成して登録する手
    段と,検索時には先ず検索者が指定したキーワード中の
    全ての2文字以上の文字列について全て使用されている
    ものを探し出す文字成分表サーチ手段と,該文字成分表
    サーチ手段で抽出された文書に対する凝縮本文を参照し
    て,検索者が指定したキーワードを構成する部分文字列
    を含む文書のみを抽出する凝縮本文サーチ手段と、該凝
    縮本文サーチ手段により,指定キーワードを含む文書を
    選び出し,絞り込まれた文書の本文を参照して,キーワ
    ード間に付与された位置関係等の検索条件を満たすもの
    のみを抽出する本文サーチ手段を備え,等価的に高速な
    フルテキストサーチを行うことを特徴とする文書検索装
    置。
  16. 【請求項16】文書情報を文字コードデータとして蓄積
    したテキストデータベースを対象として,検索者が指定
    したキーワードを含む文書をその本文内容を参照して検
    索する文書検索装置において,該テキストデータベース
    に文書を登録する際,該登録文書の本文を登録する手段
    と、該登録文書の本文文字列をひらがな,カタカナ,漢
    字,及び英数字等の少なくとも1種類の文字種で分割
    し,分割した各部分文字列の間で相互に文字列の包含関
    係を調べ,他の文字列に含まれる文字列を排除した部分
    文字列の集合からなる凝縮本文を作成して登録する手段
    と,該部分文字列の使用頻度を調べて頻度情報に基づい
    てハッシュ関数を定め、実際に使われる文字の組合せよ
    り少ないエントリのビットリストにマッピングしてハッ
    シュテーブルを作成する手段と、使用可能な全ての2文
    字以上の文字列の情報を文書単位に用意しておき,該文
    書中で使用されている文字列について使用されているこ
    とを表す情報,使用されていない文字列については使用
    されていないことを表す情報を設定しておく連接文字成
    分表を該ハッシュテーブルを参照して作成して登録する
    手段と,検索時には先ず検索者が指定したキーワード中
    の全ての2文字以上の文字列について全て使用されてい
    るものを探し出す文字成分表サーチ手段と,該文字成分
    表サーチ手段で抽出された文書に対する凝縮本文を参照
    して,検索者が指定したキーワードを構成する部分文字
    列を含む文書のみを抽出する凝縮本文サーチ手段と、該
    凝縮本文サーチ手段により,指定キーワードを含む文書
    を選び出し,絞り込まれた文書の本文を参照して,キー
    ワード間に付与された位置関係等の検索条件を満たすも
    ののみを抽出する本文サーチ手段を備え,等価的に高速
    なフルテキストサーチを行うことを特徴とする文書検索
    装置。
  17. 【請求項17】被検索データの読込み装置と,該被検索
    データにおける各文字の使用頻度を数える計数装置と,
    各文字を使用頻度順に並べ替える選別装置と,文字数よ
    りも少ないビットに各文字を対応させる手段と,その対
    応を取る文字コードからビットへの変換手段と,任意一
    のビット操作をする手段を備えたことを特徴とする索引
    作成装置。
  18. 【請求項18】検索キーワードの入力装置と,キーワー
    ドを構成する文字列に対応したビットリストを文字成分
    表から取り出す手段と,各文字列のビットリストをAN
    Dする手段と,ビットリストから各文書に付与した文書
    識別子に変換する手段を備えたことを特徴とする検索装
    置。
JP34269591A 1989-06-14 1991-12-25 文書検索方法及び装置 Expired - Lifetime JP3263963B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP34269591A JP3263963B2 (ja) 1991-12-25 1991-12-25 文書検索方法及び装置
EP92103168A EP0501416B1 (en) 1991-02-28 1992-02-25 Method and apparatus for registering text document data and for document retrieval
DE69231013T DE69231013T2 (de) 1991-02-28 1992-02-25 Verfahren und Anordnung zum Registrieren von Textdokumenten und zur Dokumentwiederauffindung
US07/843,162 US5469354A (en) 1989-06-14 1992-02-28 Document data processing method and apparatus for document retrieval

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34269591A JP3263963B2 (ja) 1991-12-25 1991-12-25 文書検索方法及び装置

Publications (2)

Publication Number Publication Date
JPH05174064A true JPH05174064A (ja) 1993-07-13
JP3263963B2 JP3263963B2 (ja) 2002-03-11

Family

ID=18355783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34269591A Expired - Lifetime JP3263963B2 (ja) 1989-06-14 1991-12-25 文書検索方法及び装置

Country Status (1)

Country Link
JP (1) JP3263963B2 (ja)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105237A (ja) * 1993-10-08 1995-04-21 Matsushita Electric Ind Co Ltd 索引作成方法およびその装置と文書検索装置
JPH07319920A (ja) * 1994-05-24 1995-12-08 Hitachi Ltd 文書検索方法及び装置
JPH07325833A (ja) * 1994-05-31 1995-12-12 Fujitsu Ltd データベース装置
JPH08161357A (ja) * 1994-06-02 1996-06-21 Ricoh Co Ltd 文書管理装置
JPH08190572A (ja) * 1995-01-11 1996-07-23 Hitachi Ltd 文書検索方法
JPH08190571A (ja) * 1995-01-11 1996-07-23 Hitachi Ltd 文書検索方法
JPH08221443A (ja) * 1995-02-17 1996-08-30 Fujitsu Ltd 漢字を含むテキストの検索方法及び装置
JPH08263508A (ja) * 1995-03-24 1996-10-11 Hitachi Ltd 文書検索方法
JPH08329103A (ja) * 1995-05-31 1996-12-13 Ricoh Co Ltd 文書管理装置
JPH08329116A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd 構造化文書検索方法
JPH0991297A (ja) * 1995-09-26 1997-04-04 Nippon Steel Corp 文字列検索方法及び装置
JPH10269231A (ja) * 1997-03-25 1998-10-09 Hitachi Ltd 日英混在文書における文書検索方法
US6208987B1 (en) 1997-07-15 2001-03-27 Nec Corporation Hierarchically structured indexed information retrieval system
JP2003316817A (ja) * 2002-04-23 2003-11-07 Sc Grainger Co Ltd 検索方法、検索装置、検索システム、コンピュータプログラム及び記録媒体
JP2004178614A (ja) * 1994-06-02 2004-06-24 Ricoh Co Ltd 文書管理方法および文書管理装置
US7647303B2 (en) 2004-09-02 2010-01-12 Canon Kabushiki Kaisha Document processing apparatus for searching documents, control method therefor, program for implementing the method, and storage medium storing the program
WO2011148511A1 (ja) 2010-05-28 2011-12-01 富士通株式会社 情報生成プログラム/装置/方法、情報検索プログラム/装置/方法
US9496891B2 (en) 2014-08-20 2016-11-15 Fujitsu Limited Compression device, compression method, decompression device, decompression method, and computer-readable recording medium
US9576008B2 (en) 2013-04-30 2017-02-21 Fujitsu Limited System and method for search indexing
US9916314B2 (en) 2011-09-14 2018-03-13 Fujitsu Limited File extraction method, computer product, file extracting apparatus, and file extracting system
EP3404560A1 (en) 2017-05-16 2018-11-21 Fujitsu Limited Search program, search device, and search method
EP3404839A1 (en) 2017-05-16 2018-11-21 Fujitsu Limited Encoding program, encoding device, and encoding method
US10324963B2 (en) 2015-10-09 2019-06-18 Fujitsu Limited Index creating device, index creating method, search device, search method, and computer-readable recording medium
US10389378B2 (en) 2009-12-25 2019-08-20 Fujitsu Limited Computer product, information processing apparatus, and information search apparatus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014045320A1 (ja) 2012-09-21 2014-03-27 富士通株式会社 制御プログラム、制御方法および制御装置

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105237A (ja) * 1993-10-08 1995-04-21 Matsushita Electric Ind Co Ltd 索引作成方法およびその装置と文書検索装置
JPH07319920A (ja) * 1994-05-24 1995-12-08 Hitachi Ltd 文書検索方法及び装置
JPH07325833A (ja) * 1994-05-31 1995-12-12 Fujitsu Ltd データベース装置
JPH08161357A (ja) * 1994-06-02 1996-06-21 Ricoh Co Ltd 文書管理装置
JP2004178614A (ja) * 1994-06-02 2004-06-24 Ricoh Co Ltd 文書管理方法および文書管理装置
JPH08190572A (ja) * 1995-01-11 1996-07-23 Hitachi Ltd 文書検索方法
JPH08190571A (ja) * 1995-01-11 1996-07-23 Hitachi Ltd 文書検索方法
JPH08221443A (ja) * 1995-02-17 1996-08-30 Fujitsu Ltd 漢字を含むテキストの検索方法及び装置
JPH08263508A (ja) * 1995-03-24 1996-10-11 Hitachi Ltd 文書検索方法
JPH08329103A (ja) * 1995-05-31 1996-12-13 Ricoh Co Ltd 文書管理装置
JPH08329116A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd 構造化文書検索方法
JPH0991297A (ja) * 1995-09-26 1997-04-04 Nippon Steel Corp 文字列検索方法及び装置
JPH10269231A (ja) * 1997-03-25 1998-10-09 Hitachi Ltd 日英混在文書における文書検索方法
US6208987B1 (en) 1997-07-15 2001-03-27 Nec Corporation Hierarchically structured indexed information retrieval system
JP2003316817A (ja) * 2002-04-23 2003-11-07 Sc Grainger Co Ltd 検索方法、検索装置、検索システム、コンピュータプログラム及び記録媒体
US7647303B2 (en) 2004-09-02 2010-01-12 Canon Kabushiki Kaisha Document processing apparatus for searching documents, control method therefor, program for implementing the method, and storage medium storing the program
US10389378B2 (en) 2009-12-25 2019-08-20 Fujitsu Limited Computer product, information processing apparatus, and information search apparatus
WO2011148511A1 (ja) 2010-05-28 2011-12-01 富士通株式会社 情報生成プログラム/装置/方法、情報検索プログラム/装置/方法
US9501557B2 (en) 2010-05-28 2016-11-22 Fujitsu Limited Information generating computer product, apparatus, and method; and information search computer product, apparatus, and method
US9916314B2 (en) 2011-09-14 2018-03-13 Fujitsu Limited File extraction method, computer product, file extracting apparatus, and file extracting system
US10303672B2 (en) 2013-04-30 2019-05-28 Fujitsu Limited System and method for search indexing
US9576008B2 (en) 2013-04-30 2017-02-21 Fujitsu Limited System and method for search indexing
US9496891B2 (en) 2014-08-20 2016-11-15 Fujitsu Limited Compression device, compression method, decompression device, decompression method, and computer-readable recording medium
US10324963B2 (en) 2015-10-09 2019-06-18 Fujitsu Limited Index creating device, index creating method, search device, search method, and computer-readable recording medium
EP3404560A1 (en) 2017-05-16 2018-11-21 Fujitsu Limited Search program, search device, and search method
EP3404839A1 (en) 2017-05-16 2018-11-21 Fujitsu Limited Encoding program, encoding device, and encoding method
US11373040B2 (en) 2017-05-16 2022-06-28 Fujitsu Limited Computer-readable recording medium, encoding device, index generating device, search device, encoding method, index generating method, and search method

Also Published As

Publication number Publication date
JP3263963B2 (ja) 2002-03-11

Similar Documents

Publication Publication Date Title
JPH05174064A (ja) 文書検索方法及び装置
KR101157693B1 (ko) 토큰스페이스 저장소와 함께 사용하기 위한 멀티-스테이지질의 처리 시스템 및 방법
US7178100B2 (en) Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
US9619565B1 (en) Generating content snippets using a tokenspace repository
US6081804A (en) Method and apparatus for performing rapid and multi-dimensional word searches
US20090024384A1 (en) Data processing method and system, program for realizing the method, and computer readable storage medium storing the program
US20020165707A1 (en) Methods and apparatus for storing and processing natural language text data as a sequence of fixed length integers
JP3220865B2 (ja) フルテキストサーチ方法
JP3518933B2 (ja) 構造化文書検索方法
JP3303881B2 (ja) 文書検索方法および装置
Bookstein et al. Using bitmaps for medium sized information retrieval systems
JPH06348757A (ja) 文書検索装置および方法
JP3859044B2 (ja) インデクス作成方法および検索方法
JP3728264B2 (ja) インデックス作成装置、検索システム、及び制御方法
JP3565840B2 (ja) 文書管理方法および文書管理装置
JP3698400B2 (ja) 多言語文書処理装置、多言語文書処理方法及び記録媒体
JP3376996B2 (ja) フルテキストサーチ方法
JP3923961B2 (ja) Xml異体字検索システムおよびxml異体字検索方法
JP3288063B2 (ja) 可変長データの格納および参照システム
EP0336579A2 (en) Relational databases
JP3202341B2 (ja) データベースシステム
JPH09114854A (ja) 文書検索システム
JP3526748B2 (ja) 文字列探索装置および方法
JPH03137772A (ja) データベース利用システム
KR100440906B1 (ko) 문서 색인 시스템 및 그 방법

Legal Events

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

Free format text: PAYMENT UNTIL: 20071228

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081228

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081228

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091228

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111228

Year of fee payment: 10

EXPY Cancellation because of completion of term