JPH09138809A - 全文検索方法 - Google Patents

全文検索方法

Info

Publication number
JPH09138809A
JPH09138809A JP7321178A JP32117895A JPH09138809A JP H09138809 A JPH09138809 A JP H09138809A JP 7321178 A JP7321178 A JP 7321178A JP 32117895 A JP32117895 A JP 32117895A JP H09138809 A JPH09138809 A JP H09138809A
Authority
JP
Japan
Prior art keywords
character string
character
important word
document
tree
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
JP7321178A
Other languages
English (en)
Inventor
Kumiko Wada
久美子 和田
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP7321178A priority Critical patent/JPH09138809A/ja
Publication of JPH09138809A publication Critical patent/JPH09138809A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【解決手段】 木の根のリストには、文書中から抽出し
た重要語文字列の先頭の文字がリストされる。重要語文
字列は、例えば文書中の平仮名以外の文字から成る語に
より構成される。ある先頭文字による木の根と直接リン
クされた木の節点のリストには、その先頭文字をもつ重
要語文字列の2番目の文字群が含められる。これらの文
字群はそれぞれ別々の木の節点にリンクされる。重要語
文字列を構成する文字の数によりそのリンク数が増減す
る。重要語文字列の出現位置情報は、例えばその先頭文
字の文書中の位置情報により表示される。 【効果】 重要語文字列と非重要語文字列とに振り分け
てから索引木を生成すると、全文にわたって無条件に索
引木を生成する場合に比べて索引木全体のデータ量を縮
小化し、検索処理の高速化が図れる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、大量の電子化文書
から指定された文字列を高速に検索するための全文検索
方法に関するものである。
【0002】
【従来の技術】電子メディアの著しい普及に伴い、報
道、出版、特許出願等様々な分野で大量の文書の電子化
が進んでいる。これらの大量の文書を、必要に応じて簡
単かつ高速に検索するための検索方式として、以下のよ
うな技術が紹介されている。そのひとつは、キーワード
検索方式である。これは、文書を登録する際に予めキー
ワードを付与しておき、それを用いて文書を検索する方
式である。この方式では、キーワードから該当文書を引
く転置ファイルを用いて文書を高速に検索できる。ま
た、キーワード付与時にある程度の言語解析あるいは主
題解析をするため、検索精度も良い。しかし、人手によ
るキーワード付与には専門的知識や労力が必要である
上、付与基準が作業者毎に異なるので質が一定しない
し、保守にも手間がかかる等の問題がある。キーワード
の自動抽出も試みられているが、高品質のものを得るに
は高品質な言語解析用の辞書が必要である等の問題があ
る。
【0003】そこで、キーワード検索方式に代わって全
文検索方式が注目されるに至った。全文検索方式とは、
書誌情報やキーワード等の、文書の本文データをもとに
加工作成されたデータ(二次情報という)でなく、本文
全体(一次情報という)を直接参照して、検索者が自由
に指定するキーワードをもとに検索する方式である。し
かし、全文検索方式では本文全体を走査することによっ
て検索するため、小規模文書に対しては有効だが、大規
模文書に対しては検索時間が問題となる。そこで、専用
ハードウェアが開発されているが、二次記憶上に格納さ
れた文書をメモリに転送するのに時間がかかってしまい
ハードウェアの性能を十分に出すことが困難であった
り、機種依存性が高く、ハードウェア自身が高価で簡単
に導入することが困難である等の問題がある。
【0004】そこで、より廉価でハードウェアの機種に
依存しない、ソフトウェアによる高速な全文検索方式が
注目されている。これらの方式では、検索を高速化する
ために索引ファイルを予め自動生成するものが多く、本
文中に出現する各文字に対してその出現位置情報を格納
する等、様々な手法が開発されている。なお、検索対象
文書中の全ての文字列を検索するために、木構造の隣接
文字情報を利用する高速全文検索方式も紹介されている
(情報処理学会第48回全国大会予稿集(4)pp.149〜
150.)。
【0005】
【発明が解決しようとする課題】ところで、上記のよう
な従来の全文検索方法には次のような解決すべき課題が
あった。上記のような方法では、文字列を検索するため
に木構造の文字出現位置情報から成る索引木を利用す
る。これは検索の高速化が可能であるが、索引木を格納
した索引ファイルの容量が本文の大きさに比べて著しく
大きくなる点に問題がある。検索対象になる文書は飛躍
的に増大し大容量化しつつある。従って、索引ファイル
の容量が本文に比べて余りに巨大になると、これに対応
することができない。しかも、索引ファイルが巨大化す
るに従って索引ファイル自体にアクセスする場合にもメ
モリ上に展開された索引ファイルの物理ページを超えて
アクセスする必要が生じる。従って、索引ファイルの書
換え等に伴う検索速度の低下を招く。
【0006】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉検索対象文書中の文字列を検索するためのも
のであって、文書中で選択した重要語文字列の先頭の各
文字を木の根のリストに設定し、文書中でその先頭の文
字に続く次の文字を木の節点のリストに設定し、更にそ
の次に続く文字を木の次の節点のリストに設定する、と
いうようにして、各文字列を構成する文字を相互にリン
クさせ、そのリンクの末端の木の葉の部分に当該文字列
の文書中の出現位置情報を格納するようにした索引木を
生成し、重要語文字列以外の非重要語文字列について
も、同様の構成の索引木を生成して、検索すべき文字列
についても、重要語文字列と非重要語文字列とに分割し
た後、先ず、重要語文字列について索引木を検索し、こ
れにより文書中の出現位置を確定できないときは、非重
要語文字列について索引木を検索する。
【0007】〈説明〉木の根のリストには、文書中から
抽出した重要語文字列の先頭の文字がリストされる。重
要語文字列は、例えば文書中の平仮名以外の文字から成
る語により構成される。ある先頭文字による木の根と直
接リンクされた木の節点のリストには、その先頭文字を
もつ重要語文字列の2番目の文字群が含められる。これ
らの文字群はそれぞれ別々の木の次の節点にリンクされ
る。木の節点は相互にリンクされ、重要語文字列を構成
する文字の数によりそのリンク数が増減する。重要語文
字列の出現位置情報は、例えばその先頭文字の文書中の
位置情報により表示される。重要語文字列と非重要語文
字列とに振り分けてから索引木を生成すると、全文にわ
たって無条件に索引木を生成する場合に比べて索引木全
体のデータ量を縮小化し、検索処理の高速化が図れる。
【0008】〈構成2〉検索対象文書中の文字列を検索
するためのものであって、文書中で選択した重要語文字
列の先頭の各文字を木の根のリストに設定し、文書中で
その先頭の文字に続く次の文字を木の節点のリストに設
定し、更にその次に続く文字を木の次の節点のリストに
設定する、というようにして、各文字列を構成する文字
を相互にリンクさせ、そのリンクの末端の木の葉の部分
に当該文字列の文書中の出現位置情報を格納するように
した索引木を生成し、重要語文字列以外の非重要語文字
列については、各文字毎に、その文書中の全ての出現位
置情報をリストした文字成分表を生成し、検索すべき文
字列についても、重要語文字列と非重要語文字列とに分
割した後、先ず、重要語文字列について索引木を検索
し、これにより文書中の出現位置を確定できないとき
は、非重要語文字列について文字成分表を参照する。
【0009】〈説明〉非重要語文字列は、1文字毎にそ
の文書中の出現位置を検査して、該当する出現位置情報
をリストしておく。こうすれば、索引木よりも検索速度
は低下するがデータ量はより少なくなり、しかも、全文
にわたって漏れなく検索できるので、検索の失敗もなく
なる。
【0010】〈構成3〉検索対象文書中の平仮名以外の
文字からなる文字列を重要語文字列とし、残りの文字列
を非重要語文字列とする。 〈説明〉一般に検索語は、名詞や動詞が多く、平仮名の
みによる助詞や接続詞はまれである。そこで、平仮名の
みで構成される文字列を除外して、検索頻度の高い重要
語文字列による索引木を、第1の検索対象にした。
【0011】〈構成4〉検索対象文書を形態素解析して
単語に切りわけて、検索語になりにくい単語を非重要語
文字列とし、それ以外の単語を重要語文字列とする。 〈説明〉自然言語処理装置の持つ形態素解析機能を利用
して、検索対象文書を単語に切りわける。ここで、普通
名詞や固有名詞、及び、動詞やサ変動詞から語尾変化す
る部分を除外した文字列を重要語文字列とし、検索語に
なりにくい付属語や助詞等は非重要語文字列とする。こ
うして重要語を選択すると索引木が合理的にかつ十分縮
小化される。
【0012】〈構成5〉検索対象文書を所定のサイズの
ブロックに分割して、ブロック内に重複して出現する文
字列に関する重複情報を削除して初出現位置情報のみに
基づく索引木を生成する。 〈説明〉検索対象文書の近接した位置に出現する同一の
語は、いずれか一方のみ検索対象にしても情報検索の目
的を損なわない。そこで、重複を排除して索引木の一層
の縮小化を図った。
【0013】〈構成6〉検索対象文書を所定のサイズの
ブロックに分割して、ブロック内に重複して出現する文
字列に関する重複情報を削除して初出現位置情報のみに
基づく文字成分表を生成する。 〈説明〉文字成分表も、重複を排除すると索引木と同様
にしてデータ量が縮小化される。
【0014】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈具体例1〉図1には、本発明の全文検索方法概略を説
明する説明図を図示した。本発明の方法を実施するため
には、例えばこの図に示すように、検索対象文書入力部
1、文字コード表生成/追加部2、重要語文字列及び非
重要語文字列生成部3、索引木生成/追加部4と非重要
語文字成分表生成/追加部5を用意する。検索対象文書
入力部1は、電子化された検索対象文書をその先頭の文
字から順に入力する部分である。検索対象文書6は最初
の文字から1文字ずつ順に読み取られこの装置に入力す
ることによって全文が検索対象となる。
【0015】文字コード表生成/追加部2は、検索対象
文書6を構成する各文字の出現位置を表示する一次文字
コード表7と、ある文字とこれに後続する文字との組合
せによって索引木の木の根から節点に向かう位置を表示
した二次文字コード表8とを生成する部分である。この
一次文字コード表7は、従って各文書中で出現する文字
とその内部番号とが対応付けられたものである。内部番
号というのは、例えば文書中の何番目に出現する文字か
ということを表現する記号であって、これが文書中の位
置情報となる。重要語文字列及び非重要語文字列生成部
3は検索対象文書6から重要語文字列を選択し、それ以
外の文字を非重要語文字列として処理する部分である。
【0016】図に示すように、重要語文字列9は、例え
ば漢字や片仮名、即ち平仮名以外の文字により構成され
た単語とする。また、非重要語文字列10は、平仮名に
より構成された部分とする。この実施例では、このよう
に平仮名かそれ以外の文字かによって重要語文字列と非
重要語文字列とを分け、それぞれリストを構成してい
る。索引木生成/追加部4は、重要語文字列9を用いて
図の右側に示すような索引木11を生成する部分であ
る。この索引木11は、図に示すように、まず重要語文
字列の先頭の各文字を木の根リストに設定する。木の根
リストというのは、図中で示した部分である。従っ
て、ここには検索という文字列の場合、「検」という文
字がリストされ、ユーザーという文字列の場合、「ユ」
という文字がリストされる。
【0017】次に、この索引木の木の根リストに続き、
その先頭の文字に続く2番目の文字を木の節点リストに
設定する。この木の節点リストは図に示すの部分であ
る。即ち、検索という言葉の場合「索」、ユーザーとい
う言葉の場合「ー」が木の節点のリストに設定される。
更に続く言葉があれば、図ののように木の次の節点の
リストが設定される。重要語文字列を構成する文字数が
多ければ、この次の節点がその文字数分だけ増える。そ
して、最後に木の葉の部分にその文字列の文書中の出現
位置情報12を格納する。即ち、検索という重要語文字
列の場合には、「検」という文字が検索対象文書6の中
のどの位置にあるかを出現位置情報12として表す。
【0018】このような索引木11は検索しようとする
文字列の先頭の文字を木の根リスト中から検索し、そこ
から順に木の節点や次の節点に向かって検索処理するこ
とによって該当する文字列が検索対象文書6の中のどこ
にあるかを非常に高速に検索できる。これは、既に紹介
した文献に示された内容のものである。本発明において
は、このような索引木を検索対象文書から選択した重要
語文字列について生成することを特徴とする。なお、こ
の具体例では、次の非重要語文字成分表生成/追加部5
を用いて、非重要語については索引木とは別のリストを
生成する。即ち、この成分表13は、各非重要語即ち検
索対象文書6中に含まれる平仮名がどの位置に配置され
ているかを示す位置情報をそのままリストした内容とな
っている。
【0019】なお、この検索処理やその具体的な動作は
後で説明することにして、図2を用いて検索処理装置の
ブロック図を説明する。検索処理を行う場合、本発明に
おいては検索語もこの図に示すような装置により重要語
文字列と非重要語文字列とに分割される。即ち、この装
置は検索パターン文字列入力部21、重要語文字列及び
非重要語文字列生成部22、索引木検索部23、非重要
語文字成分表検索部24及び結果出力部25から構成さ
れる。
【0020】検索パターン文字列入力部21は検索しよ
うとする文字列を1文字ずつ入力する部分である。ま
た、重要語文字列及び非重要語文字列生成部22は、図
1を用いて説明した装置と同様にして平仮名部分を非重
要語文字列とし、残りの漢字部分を重要語文字列とし
て、入力された文字列を分割する処理を行う部分であ
る。索引木検索部23は、こうして選択された重要語文
字列を用いて図1に示した索引木11を検索しその重要
語文字列の検索対象文書中の位置を検出する部分であ
る。非重要語文字成分表検索部24は、重要語文字列を
用いた検索を行った結果、複数の出現位置情報が得られ
た場合に、更にこれを絞り込むために使用される。即
ち、非重要語文字列を用いてその1文字ずつを取り出
し、図1で説明した非重要語文字成分表13を参照し
て、その位置情報を得る。こうして、重要語文字列と非
重要語文字列を組み合わせた検索パターン文字列が検索
対象文書中のどの位置に存在するかを検出する。
【0021】図3には、具体例1の索引木の構成説明図
を示す。この図に示すように、索引木11はに示した
木の根の部分と、に示した木の節点の部分を有し、こ
れらをポインタによって相互にリンクさせ、この末端の
木の葉の部分にその文字列の出現位置情報12を格納す
るようにしている。なお、文字列が短ければ木の葉に至
る前にその文字列が終了する場合もある。
【0022】図4には、非重要語文字成分表の構成説明
図を示す。非重要語文字成分表は、この図に示すよう
に、各非重要語1文字ずつの文字コードの内部番号14
とその出現位置情報12とを対応付けて示したものであ
る。なお、この出現位置情報は検索対象文書中でその文
字が出現した順番に配置される。このような文字成分表
を生成したのは、図3に示した索引木に比べてその情報
量が十分に小さくできるためである。即ち、索引木は図
の構造から分かるように、極めて大きな情報量となる。
【0023】これに比べて図4に示すような成分表は十
分に情報量が小さく、全体として索引ファイルを縮小化
できる効果がある。なお、検索速度の点を考慮すれば、
非重要語文字列についても索引木を生成することが好ま
しい。全体として1つの索引木を生成する従来技術に比
べて、本発明のように重要語文字列と非重要語文字列と
を分けた場合には、重要語文字列に対する索引ファイル
の容量は分けない場合より当然小さくなるので、即ち高
速検索を期待できる。従って、本発明の実施の形態とし
ては、非重要語文字列も索引木を使用して差し支えな
い。そして、非重要語文字列については、この索引木に
代えて図4に示した文字成分表を用いることによって、
更に索引ファイルの縮小化ができるという効果がある。
【0024】図5に、索引木の生成処理フローチャート
を示す。図1に示したような索引木の生成処理を行う場
合には、例えばこの図のような手順で実行される。ま
ず、ステップS1において検索対象文書を入力し、ステ
ップS2において先に説明した文字コード表を生成す
る。そして、ステップS3において、平仮名とその他の
文字とを区別することにより重要語文字列Sと非重要語
文字列Tとに分割する。そして、ステップS4におい
て、重要語文字列Sと文字並び情報を用いて索引木を生
成する。更に、ステップS5において、非重要語文字列
Tに含まれる文字の位置情報を非重要語文字成分表に登
録する。以上によって、索引木や非重要語文字成分表が
生成される。
【0025】図6には、検索処理フローチャートを示
す。検索処理はこの図に示すような手順で実施される。
まず、ステップS1において検索パターン文字列を入力
し、ステップS2において重要語文字列Spと非重要語
文字列Tpに分割する。次に、ステップS3において、
Spが空であるかどうかを判断する。即ち、重要語文字
列が存在するかどうかを判断する。検索パターン文字列
中に重要語文字列が存在すればステップS4に移り、重
要語文字列Spの文字隣接情報を用いて索引木を検索
し、該当文字列の候補を得る。即ち、索引木の木の根の
部分から木の葉の部分に向かって検索を行い、該当する
文字列の候補を得る。
【0026】なお、この文字列が検索対象文書中に複数
あれば、複数の出現位置情報が得られる。ステップS5
では、該当文字列の候補があったかどうかを判断し、あ
れば次のステップS6に移る。無ければステップS10
に移り、該当文字列無しという出力を行う。ステップS
6では、今度は検索パターン文字列の非重要語文字列に
ついての検索判断を行う。非重要語文字列が存在すれば
ステップS7に移り、非重要語文字成分表を検索する。
そして、ステップS8において、該当文字列があったか
どうかを判断し、最終的に該当文字列の位置情報を得て
ステップS9において、その結果を出力する。該当文字
列が無ければステップS10において、その旨を出力す
る。
【0027】〈具体例1の効果〉以上の例によれば、平
仮名以外の文字の並びと平仮名の並びとを分割して、そ
れぞれ別々の索引を生成することによって、全ての文字
に対し1つの索引木を生成する場合に比べ、非重要語を
検索する前に、絞り込みが有効に行われる。即ち、もと
のファイルxを2分割するとx>>a+bとなるわけで
はなく、最初に検索するファイルのサイズがxからaに
縮小され、大幅に小さいファイルを検索すればよくなる
ので効率がよくなる。しかも、重要語文字列については
従来技術と同様に高速検索が可能となる。また、平仮名
とそれ以外の文字とを分割する処理は比較的簡単に高速
に行うことができ、検索処理の低下を招かない。更に、
検索パターン文字列が平仮名のみの文字列である場合に
は、成分表を用いると検索速度はやや低下するが、全て
の文字列について情報を収集しているため、検索に失敗
してその文字列を見つけられないということはなく、十
分に実用的なものになる。
【0028】〈具体例2〉図7は、具体例2での索引木
説明図である。具体例2では実際の文字列を紹介しなが
ら索引木と検索処理の説明を行う。例えば、検索対象文
書中に、「きょうは蒸し暑く嫌だなあ」、「検索された
文書の」、「検索対象となる」、「検索するユーザー
が」といった文字列を含む場合には、この図に示すよう
な索引木が得られる。これらの文字列が含まれている場
合、まず、重要語文字列は「蒸暑嫌」、「検索文書」、
「検索対象」、「検索ユーザー」であって、非重要語文
字列は、それぞれこれらの漢字や片仮名を除いた「きょ
うはしくだなあ」、「されたの」、「となる」、「する
が」となる。この索引木のに示す木の根リストには上
記の「蒸」という字と「検」という字がリストされてい
る。そして、最初の文字列を構成する「暑」という字は
木の節点のリストに示されている。
【0029】このような文字の組合せが文書中で1通り
しかない場合にはここで位置が特定されるから、その
の木の節点リストに続けて木の葉に相当する部分に出現
位置情報12を格納する。また、一方、検索対象という
文字列に対しては、図のが木の根、が木の節点、
、は更にその次の木の節点のリストを構成してい
る。「検索文書」や「検索ユーザー」という文字列が存
在する場合には、検索の「索」という木の節点リストの
次に続く木の節点に、それぞれ別々の次の節点に向かう
文字「ユ」、「文」、「対」が表示されている。このよ
うにして、各文字列について出現位置情報12が表示さ
れる。
【0030】図8は、この具体例2を用いた場合の検索
処理フローチャートを示す。例えば、「検索対象」とい
う文字列を検索パターンにすると、まずステップS1で
この文字列を入力し、ステップS2で重要語文字列と非
重要語文字列とに分割する。「検索対象」という文字列
が重要語文字列で、非重要語文字列はこの場合存在しな
い。ステップS3では、重要語文字列を索引木を用いて
検索し、該当文字列の出現位置情報を得る。ステップS
4では、該当文字列があったかどうかを判断する。この
例の場合、該当文字列が存在するからステップS5に移
り、その出現位置情報を出力する。なお、非重要語文字
列は存在しないから、これで位置情報を出力して終了す
る。
【0031】〈具体例3〉上記具体例1や2では、ユー
ザーに検索される確率が高いと思われる重要語文字列を
平仮名であるかどうかを基準として選択し、重要語文字
列について索引木を生成するといった方法を採用した。
一方、上記のように平仮名とそれ以外の文字との区別は
極めて容易に行うことができるが、検索されやすい文字
列そのものは一定の普通名詞、固有名詞、動詞等の単語
である。このような単語をそれ以外の助詞や接続詞等の
付属語と区別して選択できればより実用的な索引木を生
成できる。この具体例3はその目的のために、自然言語
処理装置に通常付属している形態素解析機能を利用す
る。
【0032】図9には、これを実現するための装置のブ
ロック図を示す。この装置は、検索対象文書入力部1、
文字コード表生成/追加部2、形態素解析部15、重要
語文字列及び非重要語文字列生成部3、索引木生成/追
加部4、非重要語文字成分表生成/追加部5から構成さ
れている。図の形態素解析部15以外の部分は、既に図
1を用いて説明した装置の各部と同様の機能を持つ。形
態素解析部15は入力された検索対象文書を予め用意し
た辞書を参照しながら単語に分割し、その品詞や係り具
合い等、文法的な解析処理を行う装置である。この処理
の具体的な内容は既によく知られており、説明を省略す
る。
【0033】図10には、具体例3の検索処理装置のブ
ロック図を示した。この装置は、図2に示した装置に形
態素解析部26を追加したものである。この具体例3に
おいては、この形態素解析部26によって解析された結
果を元に重要語文字列及び非重要語文字列生成部22
が、入力された検索対象文書中から付属語等の重要でな
い語を除外し、あるいは動詞から語尾等を取り除いて重
要語文字列を生成する。
【0034】図11は、具体例3の索引木の生成処理フ
ローチャートを示す。図のステップS1において、まず
検索対象文書を入力し、ステップS2において、文字コ
ード表を生成する。これは、既に具体例1の説明図で説
明した通りの動作である。また、ステップS3では形態
素解析を行い、ステップS4では重要語文字列Sと非重
要語文字列Tとに分割する。これは図10を用いて説明
した通り、形態素解析の結果から品詞を認識し、検索対
象となると予想される文字列を重要語文字列に選択す
る。ステップS5では、重要語文字列Sの文字並び情報
を用いて索引木を生成し、ステップS6では非重要語文
字列Tに含まれる文字の位置情報を非重要語文字成分表
に登録する。この処理も、既に図1等を用いた具体例1
の動作と同様である。
【0035】図12には、具体例3の検索処理説明図を
示す。ステップS1において検索パターン文字列を入力
し、ステップS2において形態素解析を行う。即ち、検
索対象となる文字列についても同様の形態素解析を行
い、同様のルールに従って重要語文字列Spと非重要語
文字列Tpとに分割する(ステップS3)。そして、ス
テップS4において、Spは空であるかどうかを判断
し、空でなければステップS5において索引木を検索す
る。そして、ステップS6で、該当文字列の候補がある
かどうかを判断し、無ければステップS11に進み、該
当文字列が無いとして処理を終了する。また、該当する
文字列があればステップS7に移り、Tpが空であるか
どうかを判断する。そして、非重要語文字成分表を検索
することによって(ステップS8)、該当文字列の位置
を特定する。ステップS9においては、該当文字列があ
ると判断されれば、ステップS10に移り、位置情報を
出力する。なお、このフローチャートにおいて、形態素
解析を行い、重要語文字列と非重要語文字列とに分割す
る処理以外の部分については具体例1の処理とほぼ同様
となる。
【0036】〈具体例4〉具体例3の実際の例を具体例
4を用いて更に詳細に説明する。この具体例4では、先
に具体例2で説明したと同様の「きょうは蒸し暑く嫌だ
なあ」、「検索された文書の」、「検索対象となる」、
「検索するユーザーが」等の文字列を含む場合の索引木
を示す。図13が、その具体例4での索引木説明図であ
る。この図に示すように、この具体例では、木の根に相
当するの部分で具体例1とは異なり、漢字のみならず
平仮名もリストされる。即ち、ここで例示した「きょ
う」という文字列は全て平仮名で構成されているが、普
通名称である。従って、これが検索対象として候補にな
りやすいものとして重要語文字列に含められた。その他
の部分については、既に具体例2を用いて説明した通り
の内容になっている。
【0037】図14で、具体例4での検索処理を説明す
る。まず、ステップS1において、検索パターン文字列
として「きょうは蒸し暑く嫌だなあ」を入力する。そし
て、ステップS2において形態素解析をすると、今度は
先の具体例2とは異なり、平仮名も含められた「きょう
は蒸し暑嫌だ」を重要語文字列に選択する。そして、残
りの「はくなあ」が非重要語文字列となる(ステップS
3)。この重要語文字列を用いて図13に示した索引木
を検索して該当文字列の候補を得る(ステップS4)。
ステップS5では該当文字列があるかどうかを判断す
る。この例では、図13に示した索引木によると、「き
ょう蒸」という4文字で該当場所が1箇所に特定され
る。従って、ここで「き」という文字の出現位置情報が
表示される。従って、出現位置情報が1つだけ得られ
る。この結果、ステップS6ではその位置情報を出力す
る。以上のようにして形態素解析の結果を元に重要語文
字列と非重要語文字列とを分割することによって、より
検索しやすい索引木を得ることができる。
【0038】〈具体例5〉一般に、ユーザーが検索対象
文書の全文検索を行おうとする場合に、検索語は1語か
あるいは複数の語を指定するとしても2、3語あるいは
3、4語程度である。そして、これらの検索語が存在す
るページが検出できればよいケースがほとんどである。
ところが、検索語の中には検索対象文書中に頻繁に登場
するものがあり、その出現位置情報を全て索引木に含め
ると、索引木の容量が極めて大きくなる場合がある。そ
こで、この具体例では検索対象文書を一定のブロック、
例えば1ページ毎に区切り、同一ページに重複して出現
する検索語が存在する場合には、その最初に出現するも
のの出現位置情報のみを索引木に表示する。これによっ
て、索引木の縮小化を図るようにしている。
【0039】まず、図15にはその実現のための装置の
ブロック図を示す。この装置は、検索対象文書入力部
1、文字コード表生成/追加部2、形態素解析部15、
ブロック内重複語削除部16、重要語リスト及び非重要
語リスト生成部17、索引木生成/追加部18、非重要
語索引生成/追加部19から構成されている。この中で
ブロック内重複語削除部16、重要語リスト及び非重要
語リスト生成部17以外の部分は、これまで説明した具
体例と同様の機能を持つ部分である。ブロック内重複語
削除部16は、検索対象となる文書の一定の大きさのブ
ロックの中で繰り返し出現する文字列を削除する。そし
て、この場合には、最初に出現する文字列のみを代表と
して残す。その後、重要語リスト及び非重要語リスト生
成部17等がこれまで説明した通りの索引木や非重要語
文字成分表等を生成する。
【0040】図16には、実際にこうして生成された索
引木等を用いる検索処理装置のブロック図を示す。この
装置は検索パターン文字列入力部31、形態素解析部3
2、重要語リスト及び非重要語リスト生成部33、索引
木検索部34、非重要語索引検索部35、本文照合部3
6及び結果出力部37から構成される。このうちの本文
照合部36以外の部分はこれまで説明した具体例と同様
の構成機能を持つ部分である。本文照合部36は、この
具体例において、同一ブロック内で重複する文字列を削
除したことによる補償を行う部分である。即ち、ある重
要語文字列が検索され、その位置が検出された場合に、
本文を照合し、確かにその文字列が本文中に存在するか
を確認する部分である。この場合に、出現位置情報が同
一ブロック内の最初に出現する部分に指定されているた
め、同一ブロック内のそれ以外の部分に存在する文字列
である場合には、その出現位置情報が修正される。
【0041】図17には、具体例5の索引木の構成説明
図を示す。索引木11の全体的な構成自身はこれまでの
具体例と同様である。この具体例では出現位置情報12
に、同一文字列の場合には同一ブロック内に存在する場
合、代表となる1つの出現位置情報が含められる。更
に、別のブロック内に重複して存在する場合には、それ
ぞれの出現位置情報が含められる。従って、この出現位
置情報12は最大で検索対象文書の分割ブロック数だけ
の数が含められることになる。
【0042】図18には、具体例5の索引木の生成処理
説明図を示す。まず、ステップS1において検索対象文
書を入力し、更にステップS2において文字コード表を
生成し、ステップS3において形態素解析を行う。これ
らの処理はこれまでの具体例と同様である。ブロック内
重複語削除を行うステップS4において、この具体例で
は先に説明したような1ブロック中の同一文字列を検索
し、その1つを残して他を削除する。その後、ステップ
S5で、重要語リストと非重要語リストとに分割し、ス
テップS6で重要語リストに含まれる語の文字並び情報
を用いて索引木を生成し、ステップS7で非重要語リス
トに含まれる語の位置情報を非重要語索引に登録する。
これらの処理はこれまで説明した具体例と同様である。
【0043】図19は、こうして生成された具体例5の
索引木を用いて検索を行う処理のフローチャートであ
る。なお、図20は、図19の処理Aの部分と処理Bの
部分とを具体的に示したものである。即ち、図20
(a)は処理Aの部分、(b)は処理Bの部分を示して
いる。まず、検索パターン文字列を入力し(ステップS
1)、形態素解析を行う(ステップS2)。次に、形態
素解析の結果得られた語のリストに対して、リストを構
成する各語を1つずつ取り出し、重要語と非重要語に分
割し、重要語リストLpと、非重要語リストMpを生成
する(ステップS3)。
【0044】ステップS3で得られた重要語リストLp
が空でなければ(ステップS4)、まずLpを用いて検
索パターン文字列の出現位置の候補を求める。最初に該
当位置の候補集合Hを空に設定する(ステップS5)。
次に、Lpから最初の1語Wを取り出し、残りを新たに
Lpとする(ステップS6)。Wの文字隣接情報を用い
て索引木を検索し、Wの出現位置の集合Hwを得る(ス
テップS7)。Hの要素のうち、後続位置がHwに含ま
れると思われるもののみを新しくHの要素とする(ステ
ップS8)。Lpが空になるまで(ステップS9)これ
を繰り返す。
【0045】ここでHが空でなければ(ステップS1
0)、更に非重要語リストMpについて以下のように検
索の絞り込みを行う。Lpが空でないにもかかわらずH
が空ならば(ステップS10)、検索パターン文字列が
出現する該当文書はないことになるので、該当文字列無
しを出力して(ステップS20)終了する。ステップS
4でLpが空ならば、Mpを用いて以下のように検索を
行う。Mpが空でなければ(ステップS11)、Mpに
含まれる各語について非重要語索引を検索し、候補を絞
り込む(ステップS12〜S15)。Hが空でなければ
(ステップS16)、Hの各要素に対して本文で照合し
(ステップS17)、照合したならば(ステップS1
8)位置情報を出力して(ステップS19)終了、そう
でなければ、該当文字列無しを出力して(ステップS2
0)終了する。
【0046】Hの各要素のうち、位置情報の内容だけで
該当位置かどうかを確認できない場合とは、例えば2つ
の重要語a,bから成る検索パターン文字列を与えられ
たとき、aの出現位置としてpb =pa +mが成り立つ
ならば、pa は該当位置であり、pb >pa +mなら
ば、pa は該当位置でない。pb <pa +mが成り立
ち、pa とpb が同一ブロックを指しているときは、語
bがブロック内で重複して出現するためにpb がその初
出位置を表している可能性がある。従って、この場合は
本文で照合して確認すればよい。
【0047】図21には、具体例6での索引木を示す。
この例では、検索対象文書中に「きょうは…」、「ユー
ザーが検索した…」、「ユーティリティ」等の語を含む
場合の索引木を示したものである。この場合、重要語リ
ストには、「きょう」、「ユーザー」、「検索」、「ユ
ーティリティ」等の語が含まれることになる。また、非
重要語リストには、「は」、「が」、「した」等の語が
含まれる。その結果、この索引木には「きょう」、「ユ
ーザー」、「ユーティリティ」、「検索」といった文字
列の各文字がリストされ、その葉の部分に出現位置情報
が格納されている。なお、ここでは同一ブロックの重複
が削除されている。
【0048】上記のような索引木を用いて具体的にソフ
トウェアユーティリティを検索する場合の処理を説明す
る。図22は、具体例6での検索処理フローチャートで
ある。なお、この例も重要語文字列は存在するが、非重
要語文字列は存在しない例を示している。まず、検索パ
ターン文字列“ソフトウェアユーティリティ”が与えら
れる(ステップS1)。ここで、形態素解析を行い(ス
テップS2)、重要語リストLpと非重要語リストMp
を生成する。Lpは[“ソフトウェア”、“ユーティリ
ティ”]であり、Mpは[]である(ステップS3)。
【0049】最初に該当位置の候補集合Hを空に設定す
る(ステップS4)。次に、Lpの最初の要素である語
W=“ソフトウェア”に対して索引木を検索し、Hwを
求める(ステップS5)。このとき、H:=Hwとする
(ステップS6)。次に、Lpの次の語(そしてこの場
合はこれが最後の語である)W=“ユーティリティ”に
対して索引木を検索し、Hwを求める(ステップS
7)。Hの要素であり、後続位置がHwに含まれるもの
のみを新たにHの要素とすることによって、検索を絞り
込む(ステップS8)。この時点でHは空でなく(ステ
ップS9)、更に、Mpは空なので、Hに含まれる位置
情報がそのまま、該当文字列の出現位置の最終候補とな
る。最後に本文の候補ブロックに対して照合を行い(ス
テップS10)、照合したならば(ステップS11)位
置情報を出力して(ステップS12)終了する。
【0050】〈効果〉上記のような具体例によっても、
索引を更に大幅に縮小化することができ、アクセス時間
が高速化して、検索自体も迅速に行うことができる。な
お、上記の非重要語のための索引は上記の例の他、隣接
2文字成分表や各種のサロゲートファイルを用いて実現
することもできる。
【図面の簡単な説明】
【図1】本発明の全文検索方法説明図である。
【図2】検索処理装置のブロック図である。
【図3】具体例1の索引木の構成説明図である。
【図4】非重要語文字成分表の構成説明図である。
【図5】索引木の生成処理フローチャートである。
【図6】検索処理フローチャートである。
【図7】具体例2での索引木説明図である。
【図8】具体例2での検索処理フローチャートである。
【図9】具体例3の索引木生成/追加処理装置のブロッ
ク図である。
【図10】具体例3の検索処理装置のブロック図であ
る。
【図11】具体例3の索引木の生成処理フローチャート
である。
【図12】具体例3の検索処理フローチャートである。
【図13】具体例4での索引木説明図である。
【図14】具体例4での検索処理フローチャートであ
る。
【図15】具体例5の索引木生成/追加処理装置のブロ
ック図である。
【図16】具体例5の検索処理装置のブロック図であ
る。
【図17】具体例5の索引木の構成説明図である。
【図18】具体例5の索引木の生成処理フローチャート
である。
【図19】具体例5の検索処理フローチャート(その
1)である。
【図20】具体例5の検索処理フローチャート(その
2)である。
【図21】具体例6での索引木説明図である。
【図22】具体例6での検索処理フローチャートであ
る。
【符号の説明】
1 検索対象文書入力部 2 文字コード表生成/追加部 3 重要語文字列及び非重要語文字列生成部 4 索引木生成/追加部 5 非重要語文字成分表生成/追加部 6 検索対象文書 7 一次文字コード表 8 二次文字コード表 9 重要語文字列 10 非重要語文字列 11 索引木 13 非重要語文字成分表

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 検索対象文書中の文字列を検索するため
    のものであって、前記文書中で選択した重要語文字列の
    先頭の各文字を木の根のリストに設定し、前記文書中で
    その先頭の文字に続く次の文字を木の節点のリストに設
    定し、更にその次に続く文字を木の次の節点のリストに
    設定する、というようにして、各文字列を構成する文字
    を相互にリンクさせ、そのリンクの末端の木の葉の部分
    に当該文字列の前記文書中の出現位置情報を格納するよ
    うにした索引木を生成し、 前記重要語文字列以外の非重要語文字列についても、同
    様の構成の索引木を生成して、 検索すべき文字列についても、重要語文字列と非重要語
    文字列とに分割した後、 先ず、重要語文字列について前記索引木を検索し、 これにより文書中の出現位置を確定できないときは、非
    重要語文字列について前記索引木を検索することを特徴
    とする全文検索方法。
  2. 【請求項2】 検索対象文書中の文字列を検索するため
    のものであって、前記文書中で選択した重要語文字列の
    先頭の各文字を木の根のリストに設定し、前記文書中で
    その先頭の文字に続く次の文字を木の節点のリストに設
    定し、更にその次に続く文字を木の次の節点のリストに
    設定する、というようにして、各文字列を構成する文字
    を相互にリンクさせ、そのリンクの末端の木の葉の部分
    に当該文字列の前記文書中の出現位置情報を格納するよ
    うにした索引木を生成し、 前記重要語文字列以外の非重要語文字列については、 各文字毎に、その文書中の全ての出現位置情報をリスト
    した文字成分表を生成し、 検索すべき文字列についても、重要語文字列と非重要語
    文字列とに分割した後、 先ず、重要語文字列について前記索引木を検索し、 これにより文書中の出現位置を確定できないときは、非
    重要語文字列について前記文字成分表を参照することを
    特徴とする全文検索方法。
  3. 【請求項3】 検索対象文書中の平仮名以外の文字から
    なる文字列を重要語文字列とし、残りの文字列を非重要
    語文字列とすることを特徴とする請求項1または2記載
    の全文検索方法。
  4. 【請求項4】 検索対象文書を形態素解析して単語に切
    りわけて、検索語になりにくい単語を非重要語文字列と
    し、それ以外の単語を重要語文字列とすることを特徴と
    する請求項1または2記載の全文検索方法。
  5. 【請求項5】 検索対象文書を所定のサイズのブロック
    に分割して、ブロック内に重複して出現する文字列に関
    する重複情報を削除して初出現位置情報のみに基づく索
    引木を生成することを特徴とする請求項1から4に記載
    の全文検索方法。
  6. 【請求項6】 検索対象文書を所定のサイズのブロック
    に分割して、ブロック内に重複して出現する文字列に関
    する重複情報を削除して初出現位置情報のみに基づく文
    字成分表を生成することを特徴とする請求項2から4に
    記載の全文検索方法。
JP7321178A 1995-11-15 1995-11-15 全文検索方法 Pending JPH09138809A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7321178A JPH09138809A (ja) 1995-11-15 1995-11-15 全文検索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7321178A JPH09138809A (ja) 1995-11-15 1995-11-15 全文検索方法

Publications (1)

Publication Number Publication Date
JPH09138809A true JPH09138809A (ja) 1997-05-27

Family

ID=18129670

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7321178A Pending JPH09138809A (ja) 1995-11-15 1995-11-15 全文検索方法

Country Status (1)

Country Link
JP (1) JPH09138809A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013038527A1 (ja) * 2011-09-14 2015-03-23 富士通株式会社 抽出方法、抽出プログラム、抽出装置、および抽出システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013038527A1 (ja) * 2011-09-14 2015-03-23 富士通株式会社 抽出方法、抽出プログラム、抽出装置、および抽出システム

Similar Documents

Publication Publication Date Title
US5745745A (en) Text search method and apparatus for structured documents
US5706365A (en) System and method for portable document indexing using n-gram word decomposition
US9195738B2 (en) Tokenization platform
JP5038939B2 (ja) 情報検索システム、方法及びプログラム
JP2006048683A (ja) 情報検索システムにおけるフレーズ識別方法
JP2006048686A (ja) フレーズに基づく文書説明の生成方法
JP2006048684A (ja) 情報検索システムにおけるフレーズに基づく検索方法
JP2006048685A (ja) 情報検索システムにおけるフレーズに基づくインデックス化方法
US5963969A (en) Document abstraction system and method thereof
JP2927706B2 (ja) 類似文字列の展開方法、検索方法及びそれらの装置
CN105404677A (zh) 一种基于树形结构的检索方法
JP2005038395A (ja) データベース検索装置
JP2008083769A (ja) 文書検索装置および文書検索方法
JPH05120345A (ja) キーワード抽出装置
JP3612769B2 (ja) 情報検索装置および情報検索方法
JPH0773197A (ja) 異表記語辞書作成支援装置
CN105426490A (zh) 一种基于树形结构的索引方法
JPH0944523A (ja) 関連語提示装置
JPH08314947A (ja) キーワード自動抽出装置
KR100659370B1 (ko) 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법
JPH06348757A (ja) 文書検索装置および方法
JP3558267B2 (ja) 文書検索装置
JP2000207404A (ja) 文書検索方法及び装置並びに記録媒体
JPH09138809A (ja) 全文検索方法
JPH0584938B2 (ja)