JPH10149367A - テキスト蓄積検索装置 - Google Patents

テキスト蓄積検索装置

Info

Publication number
JPH10149367A
JPH10149367A JP8307578A JP30757896A JPH10149367A JP H10149367 A JPH10149367 A JP H10149367A JP 8307578 A JP8307578 A JP 8307578A JP 30757896 A JP30757896 A JP 30757896A JP H10149367 A JPH10149367 A JP H10149367A
Authority
JP
Japan
Prior art keywords
index
text
search
sub
keyword
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.)
Pending
Application number
JP8307578A
Other languages
English (en)
Inventor
Shunichi Fukushima
俊一 福島
Susumu Akamine
享 赤峯
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP8307578A priority Critical patent/JPH10149367A/ja
Publication of JPH10149367A publication Critical patent/JPH10149367A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 複数件の電子化テキストを蓄積しておき、そ
のなかからキーワードなどの検索条件に合致するテキス
トのみを見つけ出すテキスト蓄積検索装置に関して、従
来に比べて安定して高速な検索性能を提供する。 【解決手段】 主インデックス登録手段4は、検索対象
テキストからN文字組を抽出して、テキスト識別・テキ
スト内位置とあわせて主インデックス格納手段5に書き
込む。副インデックス登録手段2は、検索対象テキスト
からN文字組を抽出して、副インデックス格納手段3の
キーの1つに一致するN文字組の場合に、テキスト識別
を副インデックス格納手段3に書き込む。キーワード検
索制御手段9は、入力されたキーワードに対して、まず
副インデックス検索手段7を起動して結果が得られなか
ったときは、さらに主インデックス検索手段8を起動す
ることで、キーワードの出現するテキスト識別集合を求
める。副インデックス管理手段6は、キーワード検索結
果格納手段11の内容を参照して、副インデックス格納
手段3の内容を更新する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数件の電子化テ
キスト(文字コード列)を全文データベースとして蓄積
しておき、そのなかからキーワードなどの検索条件に合
致するテキストのみを見つけ出すテキスト蓄積検索装置
に関する。
【0002】
【従来の技術】あるキーワードを含むテキストを見つけ
出す最も単純な方法は、蓄積された全テキストについ
て、テキストとキーワードを文字列照合するものであ
る。近年、電子化テキスト(文字コード列で表現され
る)は多量に流通・蓄積されており、検索の対象として
扱うべき全文データベースの規模は100MB(メガバ
イト、1MB=百万バイト)、さらにはGB(ギガバイ
ト、1GB=十億バイト)クラスになってきている。こ
のような大規模な全文データベースは、通常、磁気ディ
スク装置や光ディスク装置などに格納される。そのた
め、文字列照合方式では、全テキストを順次、ディスク
から読み出さねばならず、その読み出し速度×読み出し
量がボトルネックとなり、高速な検索速度は望めない。
【0003】そこで、高速なテキスト検索を実現するた
めに、従来、全文データベースに対して、事前に、検索
のための補助ファイル(全文インデックス)を作成して
おき、これを検索の際に参照する方法が採られている。
【0004】この全文インデックスのタイプは、二つの
観点から分類できる。どのような文字列をキーとするか
と、そのキーにどのような位置情報を対応付けるかとい
う二つの観点である。
【0005】まず、どのような文字列をキーとするかと
いう第一の観点からは、およそ次のような3種類に分類
できる。 (A)単語をキーとする。 (B)1文字、2文字組、3文字組など、一定の長さの
文字列をキーとする。 (C)同一字種文字列など、単語を近似した文字列をキ
ーとする。
【0006】次に、そのキーにどのような位置情報を対
応付けるかという第二の観点からは、次の2種類に分類
できる。 (ア)テキスト識別を対応付ける。 (イ)テキスト識別に加えて、テキスト内の位置(何文
字目や何単語目など)も対応付ける。
【0007】以下では、このような観点から全文インデ
ックスのタイプを3×2=6通りに分類し、従来のテキ
スト蓄積検索装置を説明する。
【0008】まず、(A・ア)や(A・イ)のタイプの
全文インデックスは、英語テキストを対象としたテキス
ト検索において、よく用いられている。英語テキストは
単語単位に空白で区切られる(分かち書きされる)のに
対して、日本語テキストはそのような分かち書きの習慣
がない。そこで、日本語テキストを対象としたテキスト
検索において(A・ア)や(A・イ)のタイプの全文イ
ンデックスを作成するためには、単語辞書を参照しなが
ら、べた書きテキストを単語単位に分割する処理(形態
素解析)を実行することが不可欠になる。特開平3−2
29364号公報「フルテキスト検索装置」には、(A
・ア)タイプのインデックスファイルを用いる検索装置
が記載されている。
【0009】(A・ア)や(A・イ)のタイプの全文イ
ンデックスを用いた検索装置では、検索条件としてキー
ワードが与えられると、そのキーワードと完全一致ある
いは部分一致する単語を全文インデックスのキー群から
検索する。一致するキー(単語)が全文インデックスに
存在した場合は、そのキーに対応するテキスト識別ある
いはテキスト内位置を読み出して、それらを検索結果と
する。
【0010】次に、(B・ア)タイプの全文インデック
スは、キーとする文字列の長さの違いに着目して整理す
ると、次のような従来例がある。特開昭62−2117
28号公報「日本語情報検索システム」では、キー文字
列長が1であり、各文字がどのテキストに出現したかと
いう文字成分表をインデックスファイルに用いている。
特開平6−68159号公報「検索装置」では、キー文
字列長を2としており、各2文字組がどのテキストに出
現したかをインデックスファイルに登録している。特開
平5−266080号公報「検索装置」では、キー文字
列長を2文字+数ビットとしている。特開平3−125
263号公報(特公平5−87865号公報)「情報検
索システムにおける連語索引を用いた検索法」、およ
び、特開平5−101102号公報「検索装置」では、
キー文字列長を一般的にNとしている。特開平7−10
5237号公報「索引作成方法およびその装置と文書検
索装置」では、1文字を粗く分類したキーによるインデ
ックスファイルと、2文字組を粗く分類したキーによる
インデックスファイルと、3文字組を粗く分類したキー
によるインデックスファイルを併用している。特開平5
−174067号公報「データベース検索システム」で
は、1文字をn通りに分類したものと、その1文字の以
降のN文字をm通りに分類したものとを組み合わせてキ
ーとし、それをテキスト識別に対応付けている。特開平
6−251058号公報「文書検索装置」、および、特
開平6−251059号公報「文書検索装置」では、キ
ー文字列長が1のインデックスファイルに、2文字組の
文字コードの差分をキーとしたインデックスファイルを
組み合わせて用いている。
【0011】(B・ア)タイプの全文インデックスを用
いた検索装置では、検索条件としてキーワードが与えら
れると、全文インデックス作成時と同様の方針で、キー
ワードの文字列を分割する。例えば、キーワードが「東
京都」であるとすると、全文インデックスのキー文字列
長を1とした検索装置ならば、「東」「京」「都」とい
う3つのキー文字に分割する。そして、各キーで全文イ
ンデックスを検索し、「東」の出現するテキストの集
合、「京」の出現するテキストの集合、「都」の出現す
るテキストの集合の各々を求めて、それらの集合の積集
合(すなわち、「東」「京」「都」の3文字ともが出現
するテキストの集合)を求める。もし全文インデックス
のキー文字列長が2の検索装置ならば、キーワードであ
る「東京都」を「東京」「京都」という2文字組に分割
し、同様に、「東京」の出現するテキストの集合と「京
都」の出現するテキストの集合の積集合を求めることに
なる。このようにして求めた積集合は、ゴミを含む可能
性がある。すなわち、「東京都」というキーワードでの
検索例であれば、「東」「京」「都」の3文字が出現し
ていても「東京都」のように3文字が並んで存在してい
る保証はないし、また、「東京」「京都」という2文字
組の両方が出現していても「東京都」という並びで存在
している保証はない。例えば、「東京都」という文字列
は含まなくても「……東京と京都は……」という文字列
を含むようなテキストはゴミとなる。したがって、この
ような(B・ア)タイプの全文インデックスの検索結果
からゴミを除去するためには、通常、この検索結果のテ
キストに対して、テキストとキーワードの文字列照合を
かけて、絞り込みを行なうことになる。ただし、全文イ
ンデックスのキー文字列長と検索条件のキーワード長と
が一致して、キーワードの文字列を分割する必要がない
場合については、上記のようなゴミは発生しない。例え
ば、全文インデックスのキー文字列長が3の検索装置で
「東京都」というキーワードで検索する場合ならばゴミ
は発生しないし、全文インデックスのキー文字列長が2
の検索装置でも「東京」というキーワードで検索する場
合ならばゴミは発生しない。
【0012】(B・イ)タイプには、次のような従来例
がある。特開昭64−8441号公報「文字列検索方
式」、および、特開平4−205560号公報「情報検
索処理方式および検索ファイル作成装置」では、キー文
字列長が1であり、各文字がどのテキストの何文字目に
出現したかをインデックスファイルに登録している。特
開平6−149882号公報「全文データベース検索装
置」では、キー文字列長を2としており、各2文字組が
どのテキストの何文字目に出現したかをインデックスフ
ァイルに登録している。特開平4−215181号公報
(特公平7−109603号公報)「情報検索処理方式
および検索ファイル作成装置」、特開平5−61910
号公報「全文インデックス検索方法」、特開平6−52
222号公報「情報検索処理装置」、特開平6−168
270号公報(特公平7−113926号公報)「イン
デックスを用いた文字列検索システム及びそのインデッ
クス作成装置」では、キー文字列長を一般的にNとして
いる。
【0013】(B・イ)タイプの全文インデックスを用
いた検索装置では、検索条件としてキーワードが与えら
れると、全文インデックス作成時と同様の方針で、キー
ワードの文字列を分割する。例えば、キーワードが「東
京都」であるとすると、全文インデックスのキー文字列
長を1とした検索装置ならば、「東」「京」「都」とい
う3つのキー文字に分割する。そして、各キーで全文イ
ンデックスを検索し、「東」の出現するテキスト識別・
テキスト内位置の組の集合、「京」の出現するテキスト
識別・テキスト内位置の組の集合、「都」の出現するテ
キスト識別・テキスト内位置の組の集合の各々を求め、
それらの集合の要素を組み合わせて、「東」「京」
「都」の3文字が同一テキストで「東京都」という連続
する3文字として出現する箇所を求める。もし全文イン
デックスのキー文字列長が2の検索装置ならば、キーワ
ードである「東京都」を「東京」「京都」という2文字
組に分割し(「東京」「都?」と分割する方法もある:
?は任意の1文字)、同様に出現位置の関係を判定す
る。なお、(B・イ)タイプの全文インデックスの検索
では、(B・ア)タイプの全文インデックスの検索の場
合と異なり、ゴミは発生しない。
【0014】また、(C・ア)や(C・イ)タイプの全
文インデックスでは、テキストを漢字・片仮名・平仮名
などの同一字種の連続単位に分割したものをキー文字列
とする。例えば、「フルテキスト検索システムを開発し
た」というテキストであれば、「フルテキスト」「検
索」「システム」「を」「開発」「した」の各々をキー
文字列とする。検索条件のキーワードについても同様に
分割し、全文インデックスにおいて、それらを含むキー
文字列を検索する。例えば、「テキスト検索」というキ
ーワードであれば、「テキスト」と「検索」に分割し、
「テキスト」を包含する前述の「フルテキスト」の出現
するテキストや、「検索」の出現するテキストを全文イ
ンデックスから得る。
【0015】特開平3−174652号公報「階層プリ
サーチ式文書検索方法及び装置及びこの装置に用いられ
る磁気ディスク装置」、および、特開平4−27455
7号公報「フルテキストサーチ方法および装置」では、
(B・ア)タイプの1文字をキーとしてテキスト識別を
対応付けたインデックスファイルである文字成分表と、
(C・ア)タイプのインデックスファイルである擬似本
文とを組み合わせて、テキスト検索に利用している。特
開平5−174064号公報「文書検索方法および装
置」では、(B・ア)タイプのN文字組をキーとしてテ
キスト識別を対応付けたインデックスファイルである連
接文字成分表と、(C・ア)タイプのインデックスファ
イルである擬似本文とを組み合わせて、テキスト検索に
利用している。これらの例では、まず(B・ア)タイプ
の文字成分表または連接文字成分表を検索し、その検索
結果(前述のようにゴミを含む可能性あり)に対して、
さらに(C・ア)タイプの擬似本文を検索する。擬似本
文との照合でもゴミが発生し得るケースがあるので、そ
の場合は、最終的にテキスト本体と照合して確認するこ
とになる。
【0016】また、以上で説明した6通りの全文インデ
ックスは、検索対象テキスト集合の全体に対して作成す
るのが基本であるが、特開平1−297724号公報
「学習型文字列検索装置と同装置の制御方式」では、部
分的にインデックスをもつ方法が示されている。ここに
記載された従来装置は、インデックスを用いずにテキス
ト全文に対して文字列照合を行なう方法を基本としてい
る。そして、一度、検索を実行して得られた結果を別に
保存しておくことで(いわば学習ファイル)、同じキー
ワードで検索を繰り返す場合に、2度目からは学習ファ
イルから結果をすぐに読み出せるために高速なレスポン
スを返せるというものである。
【0017】
【発明が解決しようとする課題】(A・ア)や(A・
イ)のタイプの全文インデックスを用いるテキスト蓄積
検索装置では、日本語テキストを対象とした場合、前述
のように全文インデックスの作成に形態素解析を用いな
くてはならない。この形態素解析は、10万語あるいは
数10万語の規模の単語辞書を参照してテキストを単語
に分割する処理であるから、インデックスファイルの作
成に時間がかかるという問題がある。さらに、単語辞書
に含まれていない単語(未登録語)がテキストに出現す
ることは避けられず、精度100%の解析は不可能に近
い。したがって、解析誤りにより、インデックスファイ
ルに正しく単語が登録されない現象が発生することにな
り、検索洩れが起きてしまうことも大きな問題である。
【0018】したがって、検索洩れのない検索には、
(B・ア)(B・イ)(C・ア)(C・イ)のいずれか
のタイプの全文インデックスを用いることになる。この
うち、(B・ア)や(C・ア)のタイプと(B・イ)や
(C・イ)のタイプとでは、検索速度に関する傾向が異
なる。
【0019】検索条件のキーワードに一致するキー文字
列が全文インデックスに登録されている場合には、その
キーワードでの検索速度は、(B・ア)や(C・ア)の
方が(B・イ)や(C・イ)よりも速い。なぜならば、
(B・ア)や(C・ア)のタイプではテキスト識別しか
読み出さないのに対して、(B・イ)や(C・イ)のタ
イプではテキスト識別だけでなくテキスト内位置もいっ
しょに読み出すため、その読み出し量の差にしたがって
検索速度に差が生じるからである。
【0020】一方、検索条件のキーワードが全文インデ
ックスに登録されているキー文字列よりも長くて、その
キーワードの文字列を複数に分割して検索を行なう場合
については、(B・ア)や(C・ア)よりも(B・イ)
や(C・イ)の方が検索速度が安定して速い。なぜなら
ば、(B・ア)や(C・ア)のタイプの全文インデック
スを用いると、前述のように、全文インデックスのキー
文字列長より長いキーワードで検索する場合に検索結果
にゴミが含まれてしまう(検索条件のキーワードを含ま
ないテキストも該当してしまう)。このゴミを除去する
ためには、(B・ア)や(C・ア)のタイプの全文イン
デックスの検索結果に対して、さらに文字列照合をかけ
るという多段階の検索処理を実行する必要が生じる。こ
の文字列照合処理は、前段階の(B・ア)や(C・ア)
タイプの全文インデックス検索での該当件数が少なけれ
ば、その処理量は少なくて済むが、前段階での該当件数
が多いと、かなり大きな処理負荷がかる。全文インデッ
クスのキー文字列長より長いキーワードで検索する場合
は原理的にゴミがゼロになるという保証がないので、最
終的に文字列照合の結果としても多数件が該当するよう
なキーワード(多数のテキストに出現するキーワード)
であるならば、文字列照合を多数件のテキストに対して
実行することは避けられない。したがって、(B・ア)
や(C・ア)のタイプの全文インデックスの検索とゴミ
を除去するための文字列照合を組み合わせた多段階の検
索では、文字列照合が検索速度のボトルネックになり、
(B・イ)や(C・イ)に比べて安定した検索速度が望
めない。一方、(B・イ)や(C・イ)のタイプは、上
述のようなゴミは発生しないので、後処理としての文字
列照合も不要である。
【0021】以上のような分析から、日本語テキストを
対象とした洩れのない検索で安定した検索速度を得るた
めには、(B・イ)や(C・イ)のような文字列をキー
としてテキスト識別・テキスト内位置の組を対応付ける
タイプの全文インデックスを基本とするのが有効であ
る。しかしながら、前述のように(B・イ)(C・イ)
タイプよりも(B・ア)(C・ア)タイプの方が検索速
度が速いケースもあり、より高速な検索に対する要求は
依然として存在する。
【0022】このとき、従来の技術の最後で触れた特開
平1−297724号公報に記載されたような学習ファ
イルを利用することが考えられる。しかし、その特開平
1−297724号公報に記載された方式のように、一
度実行された検索結果を1つ1つ単純に保存していくだ
けでは必ずしも効率がよくない。単純にすべての検索結
果を蓄積していくと高速なレスポンスを維持していくこ
とはできなくなる。
【0023】そこで、本発明の目的は、(B・イ)ある
いは(C・イ)タイプのような文字列をキーとしてテキ
スト識別+テキスト内位置を格納した全文インデックス
を基本に、その苦手な部分を補うような手法を効率よく
組み合わせることで、従来に比べて検索速度がさらに安
定して高速なテキスト蓄積検索装置を提供することであ
る。
【0024】
【課題を解決するための手段】本願第一の発明のテキス
ト蓄積検索装置は、N文字組をキーとして該N文字組の
出現するテキスト識別とテキスト内位置を格納する形式
の主インデックス格納手段と、N文字組をキーとして該
N文字組の出現するテキスト識別を格納する形式の副イ
ンデックス格納手段と、検索対象テキストからN文字組
を抽出してテキスト識別・テキスト内位置とあわせて前
記主インデックス格納手段に書き込む主インデックス登
録手段と、前記検索対象テキストからN文字組を抽出し
て前記副インデックス格納手段のキーの1つに一致する
N文字組の場合にテキスト識別を前記副インデックス格
納手段に書き込む副インデックス登録手段と、キーワー
ドから抽出したN文字組をキーとして前記主インデック
ス格納手段を検索して該当したN文字組の位置関係を判
定することで前記キーワードの出現するテキスト識別集
合を出力する主インデックス検索手段と、キーワードの
文字列をキーとして前記副インデックス格納手段を検索
して該当したテキスト識別集合を出力する副インデック
ス検索手段と、入力されたキーワードに対してまず前記
副インデックス検索手段を起動して結果が得られなかっ
たときはさらに前記主インデックス検索手段を起動する
ことで前記入力されたキーワードの出現するテキスト識
別集合を求めるキーワード検索制御手段と、前記キーワ
ード検索制御手段の処理結果を格納するキーワード検索
結果格納手段と、前記キーワード検索結果格納手段の内
容を参照して前記副インデックス格納手段の内容を更新
する副インデックス管理手段を備える。
【0025】また、本願第二の発明のテキスト蓄積検索
装置は、N文字組をキーとして該N文字組の出現するテ
キスト識別とテキスト内位置を格納する形式の主インデ
ックス格納手段と、N文字組をキーとして該N文字組の
出現するテキスト識別を格納する形式の副インデックス
格納手段と、検索対象テキストからN文字組を抽出して
テキスト識別・テキスト内位置とあわせて前記主インデ
ックス格納手段に書き込む主インデックス登録手段と、
前記検索対象テキストにおけるN文字組の出現傾向に基
づいて前記副インデックス格納手段のキーとするN文字
組リストを決定する副インデックス初期登録手段と、前
記検索対象テキストからN文字組を抽出して前記副イン
デックス格納手段のキーの1つに一致するN文字組の場
合にテキスト識別を前記副インデックス格納手段に書き
込む副インデックス追加登録手段と、キーワードから抽
出したN文字組をキーとして前記主インデックス格納手
段を検索して該当したN文字組の位置関係を判定するこ
とで前記キーワードの出現するテキスト識別集合を出力
する主インデックス検索手段と、キーワードの文字列を
キーとして前記副インデックス格納手段を検索して該当
したテキスト識別集合を出力する副インデックス検索手
段と、入力されたキーワードに対してまず前記副インデ
ックス検索手段を起動して結果が得られなかったときは
さらに前記主インデックス検索手段を起動することで前
記入力されたキーワードの出現するテキスト識別集合を
求めるキーワード検索制御手段を備える。
【0026】前述の全文インデックスのタイプと対応さ
せると、主インデックス格納手段は(B・イ)あるいは
(C・イ)、副インデックス格納手段は(B・ア)ある
いは(C・ア)ということになる。
【0027】入力されたキーワードが副インデックス格
納手段のキー文字列に一致するケースならば、副インデ
ックスの検索によって該当テキスト識別集合(検索結
果)を求める。前に説明したように、このようなケース
では、(B・ア)や(C・ア)のタイプの方が、(B・
イ)や(C・イ)のタイプよりも高速に検索結果が得ら
れるためである。
【0028】一方、入力されたキーワードが副インデッ
クス格納手段のキー文字列に一致しないときは、主イン
デックスを検索して該当テキスト識別集合を求める。前
に説明したように、このようなケースでは、(B・ア)
や(C・ア)のタイプはゴミが発生して、その除去に時
間を要するので、(B・イ)や(C・イ)のタイプの方
が高速に検索結果が得られるためである。
【0029】入力されたキーワードが副インデックス格
納手段のキー文字列に一致するか否かは、基本的に、ま
ず副インデックスを検索してみて、該当するキー文字列
が見つかるか否かで判断する。このとき、単に従来の2
タイプのインデックスを両方を用いるようにしたので
は、2つを合わせたインデックスのサイズが非常に大き
なものになって好ましくない。また、副インデックスの
検索をした後で主インデックスを検索するので、副イン
デックスのサイズが大きいと、その検索に要する時間が
オーバヘッドとなって、総合的な検索所要時間が増大し
てしまう。そこで、本願発明では、最終的にあらゆるキ
ーワードに対して検索結果が求められるように主インデ
ックスの格納内容と検索方法は従来通りとし、副インデ
ックスの格納内容に制限を加えるようにした。副インデ
ックスには、(B・イ)や(C・イ)タイプの主インデ
ックスの検索では時間がかかるが、(B・ア)や(C・
ア)タイプの小規模な副インデックスに置くことで検索
時間・効率が大幅に改善されるようなキー文字列とそれ
に対するテキスト識別集合に絞って格納する。
【0030】そのような副インデックスへの格納内容の
選別方法に関して、本願第一の発明では、検索の実行結
果・履歴をもとに副インデックスへの格納内容を追加・
削除するようにしている。ここでの選別方法は、従来の
技術の最後に触れた特開平1−297724号公報に記
載されたような検索履歴を単純に蓄積していくものでは
ない。検索履歴に基づいて、あまり使われないキー文字
列は削除したり、検索結果の件数(テキスト識別数)の
多いもの、検索結果のテキスト内位置数とテキスト識別
数の比が大きいものなど、主インデックスの苦手な部分
を補うようなものを選ぶ。
【0031】また、本願第二の発明では、検索対象テキ
ストにおける文字組の出現傾向を基づいて、副インデッ
クスに格納するキー文字列のリストを決定するようにし
ている。上記と同様、主インデックスの苦手な部分を補
うように、検索対象テキストにおける出現頻度が上位の
文字組、あるいは、出現頻度と出現密度の両方が上位の
文字組などを副インデックスのキー文字列として決定す
る。
【0032】副インデックスに格納するキー文字列の種
類は限定されているので、主インデックスに比べて副イ
ンデックスの容量は十分小さく抑えられる。また、その
キー文字列の種類が少なければ、ハッシュなどの手法に
より副インデックスにキーワードと一致するキー文字列
が存在するか否かのチェックは極めて高速に実行でき
る。したがって、副インデックスに格納するキー文字列
を制限する工夫により、上で述べたような2タイプのイ
ンデックスを単純に組み合わせた場合に生じる問題点は
回避または軽減できることになる。その結果、基本的に
は、(B・イ)や(C・イ)タイプの全文インデックス
と同等の検索速度をもち、しかも、そのタイプの全文イ
ンデックスでやや苦手とする種類のキーワード(該当件
数が非常に多いなど)に対しても、副インデックスの効
果によって従来に比べて高速な検索が可能になる。
【0033】
【発明の実施の形態】本発明の実施の形態を、図面を参
照して詳細に説明する。
【0034】まず、図1に本願第一の発明の実施の形態
を示す。以下では、これらの各構成要素について説明し
ていく。
【0035】テキスト格納手段1は、検索対象の電子化
テキスト(文字コード列)の集合を格納する。図2がテ
キスト格納手段1の内容の一例である。テキスト本体1
01は複数のテキストの集合であり、各テキストに対し
てはテキストを一意に指し示すテキスト識別100が付
与されている。図2では、テキスト識別として通番を与
えているが、必ずしも番号ではなく、例えばテキストフ
ァイル名などの文字列で識別してもかまわない。このテ
キスト格納手段1には通常、半導体メモリ、磁気ディス
ク装置、光ディスク装置などの記憶装置類が用いられ
る。
【0036】主インデックス格納手段5は、N文字組を
キーとして該N文字組の出現するテキスト識別とテキス
ト内位置を格納する。すなわち、前述の(B・イ)タイ
プまたは(C・イ)タイプのインデックスである。図3
(a)は、キー文字列長を1とした場合の主インデック
ス格納手段5の格納内容の例である。この図3(a)は
図2のテキスト集合に対応する。図3(a)における位
置情報501の領域は、n−mという形式で、n番目の
テキスト(テキスト識別:n)のm文字目という意味を
表わしている。すなわち、文字「い」は、テキスト1の
2文字目と5文字目、テキスト2の2文字目に出現して
いることが表わされている。さらに、図3(b)は、キ
ー文字列長を2とした場合の主インデックス格納手段5
の格納内容の例である。この図3(b)も図3(a)と
同様に図2のテキスト集合に対応している。図3(b)
では例えば、2文字組「ああ」はテキスト3の2文字目
と3文字目に出現していることなどが表わされている。
なお、図3(b)の位置情報501の領域における
「$」は、テキスト末尾のダミー記号を意味している。
この主インデックス格納手段5には通常、磁気ディスク
装置、光ディスク装置などの記憶装置類が用いられる
(インデックスサイズが小さいか、または高価な装置価
格が許される場合には半導体メモリに格納されることも
ある)。また、キー文字列長は、図3に例をあげたよう
な1や2に限らず、従来の技術の節で触れたように様々
なバリエーションがある(キー文字列長Nの値は可変で
もよい)。
【0037】副インデックス格納手段3は、N文字組を
キーとして該N文字組の出現するテキスト識別を格納す
る。すなわち、前述の(B・ア)タイプまたは(C・
ア)タイプのインデックスである。ただし、後述するよ
うに、主インデックスは、テキスト格納手段1に格納さ
れた検索対象テキストの全文のすべてをインデックスに
登録したものであるが、副インデックスは、その登録内
容/条件を制限する。図8(a)は、キー文字列長を1
とした場合の従来の(B・ア)タイプのインデックスの
格納内容の例である。同様に、図8(b)は、キー文字
列長を2とした場合の従来の(B・ア)タイプのインデ
ックスの格納内容の例である。図8(a)(b)とも図
2のテキスト集合に対応する。主インデックスの内容例
である図3(a)(b)における位置情報501の領域
は、n−mという形式で、n番目のテキスト(テキスト
識別:n)のm文字目という意味を表わしたが、この図
8(a)(b)における位置情報511はテキスト識別
nのみを記録したものである。すなわち、図8(a)で
は、文字「う」が、テキスト1、テキスト2、テキスト
3のいずれにも出現していることなどが表わされてい
る。同様に、図3(b)では、例えば2文字組「ああ」
はテキスト3のみに出現していることなどが表わされて
いる。図8(a)(b)では検索対象テキストの全文を
インデックスに登録しているのに対して、図9(a)
(b)の例は、その登録内容/条件に制限を加えたもの
である。この図9(a)(b)が、副インデックス格納
手段3の格納内容の例に相当する。この図9(a)
(b)では、図3(a)(b)において位置情報501
の件数が多いキー文字列に絞って登録した。これは登録
内容/条件の制限に関する一例であり、後述するように
他にもいろいろな制限の加え方が考えられる。この副イ
ンデックス格納手段3も通常、半導体メモリ、磁気ディ
スク装置、光ディスク装置などの記憶装置類が用いられ
る。また、主インデックス格納手段5と同様に、キー文
字列長は、図9に例をあげたような1や2に限らず、従
来の技術の節で触れたように様々なバリエーションがあ
る(キー文字列長Nの値は可変でもよい)。
【0038】主インデックス登録手段4は、テキスト格
納手段1に格納された検索対象テキストからN文字組を
抽出して、テキスト識別・テキスト内位置とあわせて主
インデックス格納手段5に書き込む。図4は、主インデ
ックス登録手段4におけるN文字組の抽出手順を示すフ
ローチャートの例である。図4のフローチャートでは、
先頭のテキストの先頭文字から順に1文字ずつ文字位置
をずらしながら、各文字位置からN文字組とその位置情
報の2つを取り出して出力している。位置情報は、テキ
スト識別とテキスト内位置の組であり、例えば、i番目
のテキストのj文字目であればi−j(iマイナスjで
はなくiとjの組を意味する)で表わせる。主インデッ
クス登録手段4では、以上のようにして得られたN文字
組と位置情報の組を、前述のような主インデックス格納
手段5に逐次あるいは一括して書き込む。図3(a)
(b)で言えば、N文字組はキー文字列500の領域
に、そのキー文字列の位置情報は位置情報501の領域
に書き込む。このようなインデックスファイルへの登録
・検索アルゴリズムには、よく知られたB−treeア
ルゴリズムやバイナリツリーアルゴリズムなどを用いれ
ばよい。なお、この主インデックス登録手段4では、位
置情報の並びについて、テキスト識別・テキスト内位置
の組を固定長バイト長で表現するに限らず、直前のテキ
スト識別・テキスト内位置との差分を求め、必要最小限
のバイト数+区切りフラグによる可変長表現を用いて容
量を圧縮するようにしてもよい。
【0039】副インデックス登録手段2は、テキスト格
納手段1に格納された検索対象テキストからN文字組を
抽出して、副インデックス格納手段3のキーの1つに一
致するN文字組の場合に、テキスト識別を副インデック
ス格納手段3に書き込む。この副インデックス登録手段
2は、主インデックス登録手段4に若干の変更を加える
ことで実現できる。変更点の第1は、N文字組の抽出手
順において、N文字組の位置情報としてテキスト識別だ
けを取り出せばよい(主インデックス登録手段4ではテ
キスト識別+テキスト内位置を取り出していた)。変更
点の第2は、N文字組の抽出結果を副インデックス格納
手段3に登録する際に、副インデックス格納手段3のキ
ー文字列になっていないN文字組のときは副インデック
ス格納手段3に登録しないことにする。主インデックス
登録手段4で用いるB−treeアルゴリズムなどで
は、まず登録すべきN文字組が既に主インデックスのキ
ー文字列500に存在するか否かを検索し、次に、既に
キー文字列になっている場合には、その位置情報501
を追加し、キー文字列になっていなければ、そのN文字
組をキー文字列に挿入した上で、新たに位置情報501
を対応付ける操作を行なう。したがって、副インデック
ス登録手段2では、抽出したN文字組が副インデックス
のキー文字列510に存在しなかった場合は、そこで登
録をやめるようにすればよい。変更点の第3は、N文字
組が副インデックスのキー文字列510に存在した場合
でも、そのN文字組に対して既に同じ位置情報511が
格納されているならば登録しないようにする。副インデ
ックス登録手段2では、位置情報511としてテキスト
内位置は抽出せずに、テキスト識別のみ抽出するので、
同じテキストに同じN文字組が複数回出現すれば、同じ
N文字組・テキスト識別の組が複数件抽出されることに
なる。副インデックスに登録する際には、それらの重複
を除去して書き込むということである。
【0040】検索条件入力手段10は、キーボード、音
声認識装置、文字認識装置などの入力装置のいずれか、
あるいは、それらの組み合わせを通してユーザから検索
条件を取り込み、その検索条件をキーワードと論理式に
分解する。図5(a)はユーザの入力する検索条件の表
現形式の例である。「*」はAND演算、「+」はOR
演算、括弧でくくられた範囲は優先して演算することを
意味している。図5(a)の検索条件は、「日本」、ま
たは、「アメリカ」「米国」「USA」のいずれか、が
出現するテキストを探して欲しいという意味の検索条件
である。図5(b)はユーザが検索条件を式を使わずに
入力しやすくした表形式の表現である。横方向はOR関
係で、縦方向は各行のAND関係を意味しており、図5
(b)は図5(a)と同じ意味の検索条件を表わしてい
る。図5(c)は図5(a)(b)を計算機で処理しや
すいような木構造表現に変換したものである。検索条件
入力手段10からキーワード検索制御手段9へはキーワ
ード60の文字列のみが渡される。
【0041】主インデックス検索手段8は、キーワード
から抽出したN文字組をキーとして主インデックス格納
手段5を検索し、該当したN文字組の位置関係を判定す
ることでキーワードの出現するテキスト識別集合を出力
する。検索すべきキーワードは、キーワード検索制御手
段9から1つずつ受け取る。キーワード文字列をN文字
組へ分割する方法は、少なくとも2通りの方法があり得
る。第一の方法は、前述の主インデックス登録手段4に
おけるN文字組の抽出手続きと同様の処理を実行するも
ので、キーワード文字列の先頭から1文字ずつずらしな
がらN文字組を取り出す方法である。第二の方法は、N
文字組がオーバラップしないようにN文字ずつずらして
取り出す方法である。ここで注意することは、この主イ
ンデックス検索手段8におけるNの値と主インデックス
登録手段4におけるNの値とが整合していなければなら
ない点である。また、キーワードの長さKがNより短い
場合は、キーワードの文字列(長さK)の後にN−K個
の任意文字とマッチさせるワイルドカードを付与したN
文字組を作成する。キーワードから抽出されたN文字組
をキー文字列として主インデックス格納手段5を検索す
る手順は、主インデックス登録手段4で用いたB−tr
eeアルゴリズムなどにしたがえばよい。また、主イン
デックスへの登録の際に、前述したような位置情報の圧
縮格納がされている場合は、この主インデックス検索手
段8において、圧縮された位置情報の復元を行なう。こ
の復元手順は、圧縮手順を逆順に適用すればよい。上記
のような検索の結果として、キーワードから抽出された
N文字組に関する位置情報の集合が得られ、各N文字組
のキーワード先頭からのずらし量と併せて、N文字組の
位置関係を判定する。図6のフローチャートは、この位
置関係の判定手順の例である。まず、キーワードを分割
したN文字組の1つを選択する(ステップ600)。こ
の選択は、キーワードの先頭側のN文字組から順番に選
択する方法や、対応する文字位置情報の数が少ないN文
字組から順番に選択する方法などが考えられる。次に、
そのN文字組がキーワードの先頭からZ文字分だけずら
したものであったならば、そのN文字組に対する文字位
置情報の集合の各要素からZ文字分だけ差し引き、それ
をヒット位置の集合Hとする(ステップ601)。未処
理のN文字組がまだあるかを判断し(ステップ60
2)、まだ残っているならば1つ選択し(ステップ60
3)、その選択したN文字組に対する文字位置情報の集
合の各要素から同様に、そのN文字組のずらし量分だけ
を差し引いた位置の集合を求め、集合Hと積をとった結
果を新たな集合Hとして繰り返す(ステップ604)。
すべてのN文字組を処理し終わったところで、集合Hの
要素がキーワードの出現位置の集合になる(ステップ6
05)。ステップ605まで終了した時点で、1つのキ
ーワードに対する出現位置(キーワードの先頭位置)が
テキスト識別・テキスト内位置の組で得られているが、
主インデックス検索手段8の最終的な出力としては、テ
キスト内位置の情報は削り、テキスト識別の重複を除去
したものをキーワード検索制御手段9へ渡す。
【0042】副インデックス検索手段7は、キーワード
の文字列をキーとして副インデックス格納手段3を検索
し、該当したテキスト識別集合を出力する。検索すべき
キーワードは、キーワード検索制御手段9から1つずつ
受け取る。この副インデックス検索手段7では、主イン
デックス検索手段8のようなキーワードのN文字組への
分割は行なわない。キーワードの文字列をそのままキー
文字列として副インデックス格納手段3を検索する。そ
の検索手順は、副インデックス登録手段2で用いたB−
treeアルゴリズムなどにしたがえばよい。また、副
インデックスへの登録の際に、前述したような位置情報
の圧縮格納がされている場合は、この副インデックス検
索手段7において、圧縮された位置情報の復元を行な
う。この復元手順は、圧縮手順を逆順に適用すればよ
い。上記のような検索の結果として、キーワードから抽
出されたN文字組に関する該当テキスト識別の集合が得
られ、それがキーワード検索制御手段9へ渡される。キ
ーワードの文字列に一致するキー文字列が副インデック
ス格納手段7に存在しないときは、「該当なし」を意味
するコード(信号)がキーワード検索制御手段9へ返さ
れる。
【0043】キーワード検索制御手段9は、入力された
キーワードに対して、まず副インデックス検索手段7を
起動し、その検索結果が得られなかったとき(該当なし
のとき)は、さらに主インデックス検索手段8を起動す
ることで、入力されたキーワードの出現するテキスト識
別集合を求める。
【0044】キーワード検索結果格納手段11は、キー
ワード検索制御手段9の処理結果を格納する。キーワー
ド検索制御手段9の処理結果は、基本的には、各キーワ
ードに対して、そのキーワードが出現したテキストのテ
キスト識別の集合が対応付けられたものである。その拡
張としては、テキスト識別の集合だけでなく、テキスト
内でのキーワード出現回数やキーワードの重要度なども
付与するようにしてもよい。このキーワード格納手段1
1は通常、半導体メモリ、磁気ディスク装置、光ディス
ク装置などの記憶装置類に格納されている。
【0045】論理条件解析手段12は、キーワード検索
結果格納手段11に格納された各キーワードの出現テキ
スト識別集合をもとに、検索条件入力手段10から入力
された検索条件全体としての該当テキスト識別集合を求
める。すなわち、検索条件が単一キーワードではなく論
理式で与えられているときは、各キーワードの出現テキ
スト識別集合について論理式に合わせた集合演算を行な
うことになる。その手順は、従来のテキスト蓄積検索装
置でもやられていることであるが、例えば、次のように
行なえばよい。図5(c)のような木構造表現と対応付
けれると、各キーワード60に対して、そのキーワード
が出現したテキスト識別集合が求められたところから考
えればよい。すると、論理式を満たすテキスト識別集合
を求める手順は、図5(c)のリーフ60から始めて、
各ノードに対応するテキスト識別の集合を順に求めて、
最終的にルートに対応するテキスト識別集合を求めれば
よいことになる。したがって、「+」のノードについて
は、その下位の2つのノードまたはリーフに対応するテ
キスト識別集合の和集合を求め、「*」のノードについ
ては、その下位の2つのノードまたはリーフに対応する
テキスト識別集合の積集合を求めていけばよい。
【0046】検索結果出力手段13は、検索条件入力手
段10から入力された検索条件に該当したテキスト識別
集合を出力する。すなわち、論理条件解析手段12の処
理結果を出力する。該当テキスト識別件数や該当テキス
ト識別リストを出力したり、さらには、テキスト格納手
段1から該当するテキストそのものを読み出して出力す
るようにしてもよい。
【0047】副インデックス管理手段6は、キーワード
検索結果格納手段11の内容を参照して、副インデック
ス格納手段3の内容を更新する。どのような条件で副イ
ンデックス格納手段3の内容を更新するかについて、以
下に述べる2通りの方法をはじめ、他にも様々な方法が
考えられる。
【0048】まず考えられるのは、前出した特開平1−
297724号公報に記載されている学習ファイルのよ
うに、一度検索を行なった結果(キーワード+該当テキ
スト識別集合)は順次、副インデックス格納手段3に追
加登録していくという方法である。ただし、この方法で
は、副インデックス可能手段3に格納される内容が増加
していき、最終的には、主インデックスと同様に、すべ
てのキー文字列を格納することになってしまう。本願発
明では、副インデックスに登録するキー文字列の種類を
制限して、副インデックスをコンパクトなものにするこ
とで、容量や検索の効率を保つようにしている。そのた
め、一度検索した結果をためていくのみでなく、何らか
のタイミングと条件で、副インデックスから削除するこ
とが必要になる。それには、副インデックス管理手段6
が、キーワード検索結果格納手段11に格納されたキー
ワードとテキスト識別集合を副インデックス格納手段3
に追加登録するとともに、キーワード検索の履歴情報を
保存し、この履歴情報に基づいて副インデックス格納手
段3から一部のキーを削除するようにするとよい。削除
の条件は、ある一定期間(キーワード検索の一定回数)
内でキーワードとして使われた回数が少ない(ある回数
以下)だったものを削除する方法などが考えられる。な
お、副インデックス格納手段3への追加登録や削除は、
従来のB−treeアルゴリズムなどにしたがえばよ
い。
【0049】副インデックス管理手段6における別な制
限方法は、後から削除するのではなく、キーワード検索
結果格納手段11に格納されたキーワードとテキスト識
別集合のうち、あらかじめ定めた条件に合致するものの
みを選別して、副インデックス格納手段3に追加登録す
るものである。あらかじめ定めた条件とは、例えば、キ
ーワードがヒットしたテキスト内位置の総数(出現頻
度)がある値を超えたものであるとか、該当したテキス
ト識別の総数がある値を超えたものであるとか、出現密
度(キーワードのヒット位置の総数を該当テキスト識別
の総数で割ったもの)がある値を超えたものなどが考え
られる。あるいは、キーワードの文字列長(ある長さ以
下とか、ある長さ以上とか)や文字種(漢字列のときと
か、片仮名列のときとか)を条件としてもよい。
【0050】なお、ここで述べた主インデックス登録手
段4、主インデックス格納手段5、主インデックス検索
手段8は、従来の(B・イ)あるいは(C・イ)タイプ
の検索装置に相当する部分なので、上記以外にも様々な
バリエーションがあり得る。
【0051】(実施例)次に、本願第一の発明のテキス
ト蓄積検索装置の動作を、実施例を用いて説明する。こ
こでは説明を簡単に行なうために、キー文字列長N=2
のテキスト蓄積検索装置の実施例を述べる。ただし、前
述のように、本願発明ではキー文字列長を制限している
わけではない。
【0052】まず、図2のようなテキストがテキスト格
納手段1に格納されたとすると、主インデックス登録手
段4は、N文字組と位置情報の組として、 [N文字組、位置情報]=[うい、1−1]、[いあ、
1−2]、[あう、1−3]、[うい、1−4]、[い
あ、1−5]、[あ$、1−6]、[あい、2−1]、
・・・・・・・・ を抽出する。なお、この例において「$」はテキスト末
尾のダミー記号である。これらをインデックス登録手段
4によって登録した結果が、図3(b)のようになる。
【0053】一方、この時点では、副インデックス格納
手段3には何も登録されていないものとする(本願第一
の発明では検索が繰り返されることで副インデックス格
納手段3に追加登録・削除がされていくことになる)。
【0054】さて、ここで検索条件入力手段10から
「いあ*あうい」が入力されたとする。
【0055】キーワード検索制御手段9は、まず、第一
のキーワード「いあ」について、副インデックス検索手
段7を起動する。この時点で副インデックス格納手段3
に「いあ」は登録されていないので、副インデックス検
索手段7では「該当なし」となり、キーワード検索制御
手段9は、次に、主インデックス検索手段8を起動して
「いあ」を検索する。主インデックス検索手段8では、
インデックスのキー文字列長とキーワード「いあ」の文
字列長が同じ(=2)なので、キーワードを分割する必
要はなく、「いあ」をそのままで図3(b)の主インデ
ックスを検索して、該当位置1−2、1−5(テキスト
1の2文字目と5文字目)が得られる。
【0056】キーワード検索制御手段9は、さらに、第
二のキーワード「あうい」について、副インデックス検
索手段9を起動し、同様に「該当なし」となる。続い
て、主インデックス検索手段8を起動するが、主インデ
ックス検索手段8では、キーワード「あうい」は「あ
う」と「うい」という2文字組に分割される(あるいは
「あう」と「い?」のように分割する手もある:?は任
意の1文字)。そして、これらの2文字組に対して主イ
ンデックス格納手段5から、次のような位置情報が読み
出される。
【0057】あう → 1−3 うい → 1−1、1−4 主インデックス検索手段8では、次に、これらの位置関
係を調べ、「あうい」という文字の並びが存在するかを
判断する。キーワード文字列において「あう」と「う
い」の文字位置り差は1(ずらし量=1)であり、「あ
う:1−3」「うい:1−4」が、この位置関係を満た
す。したがって、テキスト1の3文字目から5文字目に
キーワード「あうい」が存在することがわかる。
【0058】このようなキーワード検索の結果は、キー
ワード検索結果格納手段11に、キーワードと該当テキ
スト識別集合の組として書き込まれる。
【0059】いあ:1 あうい:1 次に、論理条件解析手段12では、「いあ*あうい」と
いう検索条件にあわせて、上記2つのテキスト識別集合
の積集合を求める。その結果として、検索条件に合致す
るテキスト識別としてテキスト1が得られる。最後に、
検索結果出力手段13が、テキスト1の内容を出力す
る。
【0060】以上は、副インデックス格納手段3にキー
文字列が登録されていない段階での動作例であったが、
検索が行なわれると、副インデックス管理手段6の動作
により、副インデックス格納手段3にキー文字列・テキ
スト識別が書き込まれていく。
【0061】ここでは、実施の形態の項で述べた2通り
の実現方法にしたがって、2通りの動作例を説明する。
【0062】まず第一の実現方法によれば、副インデッ
クス管理手段6は、キーワード検索結果格納手段11に
格納されたキーワードと該当テキスト識別集合を副イン
デックス格納手段3に登録する。したがって、上述のよ
うな検索が実行された後で、副インデックス格納手段3
には、新たに [N文字組、位置情報]=[いあ、1]、[あうい、
1] が書き込まれる。
【0063】副インデックス格納手段3に、このような
キー文字列が書き込まれた状態で、今度は検索条件入力
手段10から「ういあ*あうい」という検索条件が入力
されたとする。このとき、キーワード「ういあ」につい
ては、副インデックス検索手段7で「該当なし」とな
り、主インデックス検索手段8では「うい」と「いあ」
に分割して検索される。「うい」の位置情報1−1と1
−4、「いあ」の位置情報1−2と1−5が読み出され
るから、それらの位置関係をチェックすることで、キー
ワード「ういあ」のヒット位置として1−1と1−2、
該当テキスト識別としてテキスト1が求められる。一
方、キーワード「あうい」については、上で述べたよう
な登録がなされているから、副インデックス検索手段7
でヒットし、該当テキスト識別としてテキスト1が得ら
れる。したがって、キーワード「あうい」については主
インデックス検索手段8は起動されない。結局、「うい
あ*あうい」に対する該当テキスト識別はテキスト1と
なる。
【0064】この後も検索条件の入力と検索実行が繰り
返されて、次のような各キーワードの検索結果履歴が副
インデックス管理手段6に保持されていったものとす
る。
【0065】いあ:1 あうい:1 ういあ:1 あうい:1 いあ:1 あ:1、2、3 あああ:3 あ:1、2、3 あうい:1 これらは、重複して二度同じものを登録してしまうのを
避けながら、副インデックス管理手段6によって、副イ
ンデックス格納手段3に登録されていく。その一方で、
これらのうちのいくつかは、副インデックス管理手段6
によって、副インデックス格納手段3から削除される。
削除する条件として、キーワード5回の間に繰り返し検
索条件に使われなかったものという条件が定められてい
たものとすると、「ういあ」は副インデックス格納手段
3から削除されることになる。
【0066】これに対して、副インデックス管理手段6
の第二の実現方法によれば次のような動作になる。この
第二の実現方法では、副インデックス格納手段3に対し
て、後から削除は行なわないが、登録する段階で制限を
加える。ここでは、登録する条件としてキーワードの該
当テキスト識別数が全テキスト数の80%を超えるもの
という条件を用いるものとする。すると、キーワード検
索が繰り返されていく過程で、次のようなキーワード検
索結果格納手段11の履歴に対して、 いあ:1 あうい:1 ういあ:1 あうい:1 いあ:1 あ:1、2、3 →副インデックスへ登録 あああ:3 あ:1、2、3 →副インデックスへ登録(既登録な
ので登録省略) あうい:1 のような副インデックスへの登録が行なわれることにな
る。
【0067】なお、副インデックス格納手段3に既にキ
ー文字列が登録されている段階で、テキスト格納手段に
新規のテキストが追加された場合の動作は次のようにな
る。ここでは、テキスト格納手段1には図2のような3
件のテキストが既登録で、主インデックス格納手段5の
内容は図3(b)、副インデックス格納手段3の内容は
図9(b)のようになっているところで、テキスト格納
手段1に新たにテキスト4:「いいあう」が格納された
ものとする。
【0068】このとき、主インデックス登録手段4は、
主インデックス格納手段5へ次のようなN文字組と位置
情報を追加登録する。
【0069】[N文字組、位置情報]=[いい、4−
1]、[いあ、4−2]、[あう、4−3]、[う$、
4−4] これらのうち、「いい」は新しいキー文字列として追加
され、それ以外は既に存在するキー文字列に対する位置
情報の追加となる。これらが追加された結果の主インデ
ックス格納手段5の内容は図10(a)のようになる。
【0070】一方、副インデックス登録手段2は、既に
副インデックス格納手段3に登録されているキー文字列
のみについて位置情報を追加登録する。したがって、こ
の例では、テキスト4について副インデックス格納手段
3へ追加登録されるN文字組と位置情報は、次の1件だ
けである。
【0071】[N文字組、位置情報]=[いあ、4−
2] これを追加登録した副インデックス格納手段3の内容は
図10(b)のようになる。
【0072】次に、本願第二の発明の実施の形態を、図
7を用いて説明する。
【0073】テキスト格納手段1、主インデックス登録
手段4、主インデックス格納手段5、主インデックス検
索手段8、副インデックス格納手段3、副インデックス
検索手段7、キーワード検索制御手段9、検索条件入力
手段10、キーワード検索結果格納手段11、論理条件
解析手段12、検索結果出力手段13は、本願第一の発
明の実施の形態の項で既に説明済みのものと同様である
から、ここでは説明を省略する。また、副インデックス
追加登録手段15も、本願第一の発明の実施の形態の項
で説明した副インデックス登録手段2と等価な構成要素
として実現できるから、やはり説明を省略する。
【0074】そこで、残る構成要素であるところの副イ
ンデックス初期登録手段14について説明する。副イン
デックス初期登録手段14は、テキスト格納手段1に格
納された検索対象テキストにおけるN文字組の出現傾向
に基づいて、副インデックス格納手段3のキーとするN
文字組リストを決定する。そのN文字組リストの決定方
法としては、検索対象テキストにおける出現頻度が上位
のN文字組をリスト化する方法や、検索対象テキストに
おける出現頻度と出現密度の両方が上位のN文字組をリ
スト化する方法などが考えられる。
【0075】そのようなリスト作成のもとになるN文字
組の出現傾向を算出する方法は、少なくとも次のような
2通りが考えられる。第一の方法は、主インデックス格
納手段5の内容を参照する方法である。主インデックス
格納手段5には、各キー文字列の出現位置が列挙されて
いるから、その出現位置の数や該当テキスト件数などを
カウントすることでN文字組リストに登録すべきキー文
字列を選定できる。第二の方法は、テキスト格納手段1
中のテキストから直接N文字組を抽出してカウントして
いく方法である。この場合には、N文字組リストを作成
する際に用いるテキスト集合(いわばトレーニングテキ
スト集合)として、実際に検索対象とするテキスト集合
とは別なものを与えることも可能ではある。
【0076】この実施の形態では、副インデックス初期
登録手段14で決定されたN文字組を副インデックス格
納手段3のキー文字列とし、各テキスト識別の副インデ
ックス格納手段3への書き込みは、副インデックス追加
登録手段によって行なうことになる。副インデックス追
加登録手段15では、副インデックス格納手段における
キー文字列の種類を増やすことはせず、テキスト識別の
みを追加していく。
【0077】なお、副インデックス初期登録手段14と
副インデックス追加登録手段15とを一体化した構成要
素として実現することも可能である。
【0078】(実施例)本願第二の発明のテキスト蓄積
検索装置の動作を、実施例を用いて説明する。
【0079】本願第二の発明は、実施の形態の項で述べ
たように、副インデックス初期登録手段14を備える点
が本願第一の発明と異なる。そこで、ここでは副インデ
ックス初期登録手段14の動作例を中心に説明する。そ
れ以外の構成要素に関する動作および基本的な検索処理
の流れについては、既に説明済みの本願第一の発明の実
施例と同様なので、ここでは省略する。
【0080】テキスト格納手段1には図2のようなテキ
スト集合(3件)が最初にまとめて与えられたものとす
る。このとき、キー文字列長N=2として動作例を説明
するものとすると、主インデックス格納手段5には、主
インデックス登録手段4によって図3(b)のような内
容が格納される。
【0081】一方、副インデックス初期登録手段14
は、副インデックス格納手段3のキー文字列とするN文
字組リストを決定する。もしN文字組リストの決定方法
が、出現頻度が上位のN文字組を選ぶというものであっ
たとしたら、図3(b)で位置情報501に2件以上が
格納されているものが選ばれ、 N文字組リスト={ああ、あ$、いあ、うい} となる。これらをキー文字列として作成した副インデッ
クス格納手段3の内容は図9(b)のようになる。
【0082】あるいは、N文字組リストの決定方法が、
出現頻度のみならず出現密度も上位のN文字組を選ぶと
いうものであったとしたら、次のようになる。出現頻度
が上位の上記4つのN文字組について、実現密度を求め
ると、 ああ 出現頻度:2、該当テキスト件数:1、出現密度:2/1=2 あ$ 出現頻度:2、該当テキスト件数:2、出現密度:2/2=1 いあ 出現頻度:2、該当テキスト件数:1、出現密度:2/1=2 うい 出現頻度:2、該当テキスト件数:1、出現密度:2/1=2 となり、出現頻度と出現密度の両方が上位のN文字組
は、 N文字組リスト={ああ、あ$、いあ、うい} となる。
【0083】出現頻度が上位のN文字組を副インデック
スに登録すると、主インデックスで位置情報の読み出し
に時間がかかるキー文字列が副インデックスに取り出さ
れていることになるので、磁気ディスク装置におく大規
模な主インデックスに対して小規模な副インデックスを
ICメモリにおくような形態によって、効率のよい検索
が可能となる。また、出現密度が上位のN文字組は、前
述の(B・イ)や(C・イ)タイプのインデックスより
も(B・ア)や(C・ア)タイプのインデックスの方が
高速に位置情報を読み出せる効果が大きいものであるた
め、副インデックスにおくことでその効果が現われる。
【0084】
【発明の効果】以上で述べたような本願発明によれば、
文字列照合として検索洩れのない安定して高速なテキス
ト蓄積検索装置が得られる。本願発明では、文字列をキ
ーとして、テキスト識別+テキスト内位置を対応させた
全文インデックスを基本インデックス(主インデック
ス)としているため、文字列照合としての検索洩れは発
生しない。さらに、従来、このタイプの全文インデック
スでは苦手なタイプのキーワードに対して、小規模な副
インデックスを用意している。副インデックスへの登録
はあらかじめ定めた条件によって制限を加えており、小
規模なサイズに保てるため、磁気ディスク装置などにお
く主インデックスに対して副インデックスはICメモリ
上におくようにして、さらに検索速度が安定して高速に
できる。
【0085】また、本願発明によれば、検索対象のテキ
スト集合の文字列統計やユーザによる検索条件の入力パ
タンに適合させた副インデックスの構築が可能となる。
すなわち、使用条件に最適化させたテキスト蓄積検索装
置が得られることになる。
【図面の簡単な説明】
【図1】本願第一の発明の実施の形態を示すブロック図
である。
【図2】テキスト格納手段1の内容の例を示す図であ
る。
【図3】主インデックス格納手段5の格納内容の例を示
す図である。
【図4】主インデックス登録手段4におけるN文字組抽
出手順を示すフローチャートである。
【図5】検索条件の表現形式の例を示す図である。
【図6】主インデックス検索手段8におけるキーワード
の位置判定手順を示すフローチャートである。
【図7】本願第二の発明の実施の形態を示すブロック図
である。
【図8】副インデックス格納手段3の格納内容の例を示
す図である。
【図9】副インデックス格納手段3の格納内容の例を示
す図である。
【図10】主インデックス格納手段5と副インデックス
格納手段3の格納内容の例を示す図である。
【符号の説明】
1 テキスト格納手段 2 副インデックス登録手段 3 副インデックス格納手段 4 主インデックス登録手段 5 主インデックス格納手段 6 副インデックス管理手段 7 副インデックス検索手段 8 主インデックス検索手段 9 キーワード検索制御手段 10 検索条件入力手段 11 キーワード検索結果格納手段 12 論理条件解析手段 13 検索結果出力手段 14 副インデックス初期登録手段 15 副インデックス追加登録手段 60 キーワード 61 論理演算子 100 テキスト識別 101 テキスト本体 500・510 キー文字列 501・511 位置情報

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】N文字組をキーとして該N文字組の出現す
    るテキスト識別とテキスト内位置を格納する形式の主イ
    ンデックス格納手段と、N文字組をキーとして該N文字
    組の出現するテキスト識別を格納する形式の副インデッ
    クス格納手段と、検索対象テキストからN文字組を抽出
    してテキスト識別・テキスト内位置とあわせて前記主イ
    ンデックス格納手段に書き込む主インデックス登録手段
    と、前記検索対象テキストからN文字組を抽出して前記
    副インデックス格納手段のキーの1つに一致するN文字
    組の場合にテキスト識別を前記副インデックス格納手段
    に書き込む副インデックス登録手段と、キーワードから
    抽出したN文字組をキーとして前記主インデックス格納
    手段を検索して該当したN文字組の位置関係を判定する
    ことで前記キーワードの出現するテキスト識別集合を出
    力する主インデックス検索手段と、キーワードの文字列
    をキーとして前記副インデックス格納手段を検索して該
    当したテキスト識別集合を出力する副インデックス検索
    手段と、入力されたキーワードに対してまず前記副イン
    デックス検索手段を起動して結果が得られなかったとき
    はさらに前記主インデックス検索手段を起動することで
    前記入力されたキーワードの出現するテキスト識別集合
    を求めるキーワード検索制御手段と、前記キーワード検
    索制御手段の処理結果を格納するキーワード検索結果格
    納手段と、前記キーワード検索結果格納手段の内容を参
    照して前記副インデックス格納手段の内容を更新する副
    インデックス管理手段とを備えたことを特徴とするテキ
    スト蓄積検索装置。
  2. 【請求項2】前記副インデックス管理手段は、前記キー
    ワード検索結果格納手段に格納されたキーワードとテキ
    スト識別集合を前記副インデックス格納手段に追加登録
    するとともに、各キーワードの検索に使用された履歴情
    報を保存し、該履歴情報に基づいて前記副インデックス
    格納手段から一部のキーを削除するようにした請求項1
    記載のテキスト蓄積検索装置。
  3. 【請求項3】前記副インデックス管理手段は、前記キー
    ワード検索結果格納手段に格納されたキーワードとテキ
    スト識別集合のうち、あらかじめ定めた条件に合致する
    もののみを選別して前記副インデックス格納手段に追加
    登録するようにした請求項1記載のテキスト蓄積検索装
    置。
  4. 【請求項4】N文字組をキーとして該N文字組の出現す
    るテキスト識別とテキスト内位置を格納する形式の主イ
    ンデックス格納手段と、N文字組をキーとして該N文字
    組の出現するテキスト識別を格納する形式の副インデッ
    クス格納手段と、検索対象テキストからN文字組を抽出
    してテキスト識別・テキスト内位置とあわせて前記主イ
    ンデックス格納手段に書き込む主インデックス登録手段
    と、前記検索対象テキストにおけるN文字組の出現傾向
    に基づいて前記副インデックス格納手段のキーとするN
    文字組リストを決定する副インデックス初期登録手段
    と、前記検索対象テキストからN文字組を抽出して前記
    副インデックス格納手段のキーの1つに一致するN文字
    組の場合にテキスト識別を前記副インデックス格納手段
    に書き込む副インデックス追加登録手段と、キーワード
    から抽出したN文字組をキーとして前記主インデックス
    格納手段を検索して該当したN文字組の位置関係を判定
    することで前記キーワードの出現するテキスト識別集合
    を出力する主インデックス検索手段と、キーワードの文
    字列をキーとして前記副インデックス格納手段を検索し
    て該当したテキスト識別集合を出力する副インデックス
    検索手段と、入力されたキーワードに対してまず前記副
    インデックス検索手段を起動して結果が得られなかった
    ときはさらに前記主インデックス検索手段を起動するこ
    とで前記入力されたキーワードの出現するテキスト識別
    集合を求めるキーワード検索制御手段とを備えたことを
    特徴とするテキスト蓄積検索装置。
  5. 【請求項5】前記副インデックス初期登録手段は、前記
    検索対象テキストにおける出現頻度が上位のN文字組
    を、前記N文字組リストとして決定するようにした請求
    項4記載のテキスト蓄積検索装置。
  6. 【請求項6】前記副インデックス初期登録手段は、前記
    検索対象テキストにおける出現頻度と出現密度の両方が
    上位のN文字組を、前記N文字組リストとして決定する
    ようにした請求項4記載のテキスト蓄積検索装置。
JP8307578A 1996-11-19 1996-11-19 テキスト蓄積検索装置 Pending JPH10149367A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8307578A JPH10149367A (ja) 1996-11-19 1996-11-19 テキスト蓄積検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8307578A JPH10149367A (ja) 1996-11-19 1996-11-19 テキスト蓄積検索装置

Publications (1)

Publication Number Publication Date
JPH10149367A true JPH10149367A (ja) 1998-06-02

Family

ID=17970770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8307578A Pending JPH10149367A (ja) 1996-11-19 1996-11-19 テキスト蓄積検索装置

Country Status (1)

Country Link
JP (1) JPH10149367A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022775A (ja) * 1999-07-08 2001-01-26 Matsushita Electric Ind Co Ltd 情報検索装置、情報検索装置の情報圧縮方法および記録媒体
JP2005209193A (ja) * 2004-01-20 2005-08-04 Microsoft Corp ドキュメントインデックスのための低頻度ワードインデックス
US7940412B2 (en) 2006-02-08 2011-05-10 Kyocera Mita Corporation Image forming apparatus with job interruption handling
WO2011148511A1 (ja) * 2010-05-28 2011-12-01 富士通株式会社 情報生成プログラム/装置/方法、情報検索プログラム/装置/方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160724A (ja) * 1993-11-29 1995-06-23 Ricoh Co Ltd 文書検索装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160724A (ja) * 1993-11-29 1995-06-23 Ricoh Co Ltd 文書検索装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022775A (ja) * 1999-07-08 2001-01-26 Matsushita Electric Ind Co Ltd 情報検索装置、情報検索装置の情報圧縮方法および記録媒体
JP2005209193A (ja) * 2004-01-20 2005-08-04 Microsoft Corp ドキュメントインデックスのための低頻度ワードインデックス
US7940412B2 (en) 2006-02-08 2011-05-10 Kyocera Mita Corporation Image forming apparatus with job interruption handling
WO2011148511A1 (ja) * 2010-05-28 2011-12-01 富士通株式会社 情報生成プログラム/装置/方法、情報検索プログラム/装置/方法
CN102918524A (zh) * 2010-05-28 2013-02-06 富士通株式会社 信息生成程序、装置、方法以及信息检索程序、装置、方法
JP5741577B2 (ja) * 2010-05-28 2015-07-01 富士通株式会社 情報生成プログラム、情報生成装置、および情報生成方法
CN102918524B (zh) * 2010-05-28 2016-06-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

Similar Documents

Publication Publication Date Title
US10389378B2 (en) Computer product, information processing apparatus, and information search apparatus
US8095526B2 (en) Efficient retrieval of variable-length character string data
JP3849279B2 (ja) インデクス作成方法および検索方法
JP3143079B2 (ja) 辞書索引作成装置と文書検索装置
CN102142038B (zh) 用于记号空间资料库的多级查询处理系统与方法
JP4881322B2 (ja) 多重索引に基づく情報検索システム
JP2833580B2 (ja) 全文インデックス作成装置および全文データベース検索装置
US20120268297A1 (en) Computer product, information processing apparatus, and information search apparatus
US7222129B2 (en) Database retrieval apparatus, retrieval method, storage medium, and program
US6470334B1 (en) Document retrieval apparatus
JP3220865B2 (ja) フルテキストサーチ方法
JPH08147320A (ja) 情報検索方法及びシステム
US8682900B2 (en) System, method and computer program product for documents retrieval
JP2693914B2 (ja) 検索システム
JP3303881B2 (ja) 文書検索方法および装置
JPH10149367A (ja) テキスト蓄積検索装置
JP5169456B2 (ja) 文書検索システム、文書検索方法および文書検索プログラム
JPH04326164A (ja) データベース検索システム
JP2519129B2 (ja) マルチキ―ワ―ド情報検索処理方式および検索ファイル作成装置
JP2000207404A (ja) 文書検索方法及び装置並びに記録媒体
JP2682448B2 (ja) 索引検索方式
JPH09212523A (ja) 全文検索方法
JP5648360B2 (ja) 文字列検索装置、文字列検索方法および文字列検索プログラム
JP2921119B2 (ja) 数値検索装置および数値検索方法
JPH10177582A (ja) 最長一致検索方法及び装置