JPH0954781A - 文書検索システム - Google Patents
文書検索システムInfo
- Publication number
- JPH0954781A JPH0954781A JP7231915A JP23191595A JPH0954781A JP H0954781 A JPH0954781 A JP H0954781A JP 7231915 A JP7231915 A JP 7231915A JP 23191595 A JP23191595 A JP 23191595A JP H0954781 A JPH0954781 A JP H0954781A
- Authority
- JP
- Japan
- Prior art keywords
- index
- word
- document
- index word
- character
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000605 extraction Methods 0.000 claims abstract description 14
- 230000000877 morphologic effect Effects 0.000 claims description 18
- 238000000034 method Methods 0.000 description 66
- 238000012545 processing Methods 0.000 description 28
- 230000006835 compression Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【解決手段】 文書の全体検索のために、その文書の形
態素解析等により、意味のある語句のみを抽出して索引
ファイルを生成する。また、あるいは、文書の句切りや
文字種に着目して文書を区切る。そして、索引語を抽出
する。 【効果】 検索対象になり得る意味のある語句のみによ
り索引ファイルを構成すれば、索引ファイルの容量が十
分小さくなり、メモリが節約でき、しかも、検索速度が
速くなる。
態素解析等により、意味のある語句のみを抽出して索引
ファイルを生成する。また、あるいは、文書の句切りや
文字種に着目して文書を区切る。そして、索引語を抽出
する。 【効果】 検索対象になり得る意味のある語句のみによ
り索引ファイルを構成すれば、索引ファイルの容量が十
分小さくなり、メモリが節約でき、しかも、検索速度が
速くなる。
Description
【0001】
【発明の属する技術分野】本発明は、大量の電子化文書
から指定された文字列を高速に検索するための文書検索
システムに関するものである。
から指定された文字列を高速に検索するための文書検索
システムに関するものである。
【0002】
【従来の技術】電子メディアの著しい普及に伴い、報
道、出版、特許出願等様々な分野で大量の文書の電子化
が進んでいる。これらの大量の文書を、必要に応じて簡
単かつ高速に検索するための検索方式として、以下のよ
うな技術が紹介されている。そのひとつは、キーワード
検索方式である。これは、文書を登録する際に予めキー
ワードを付与しておき、それを用いて文書を検索する方
式である。この方式では、キーワードから該当文書を引
く転置ファイルを用いて文書を高速に検索できる。ま
た、キーワード付与時にある程度の言語解析あるいは主
題解析をするため、検索精度も良い。しかし、人手によ
るキーワード付与には専門的知識や労力が必要である
上、付与基準が作業者毎に異なるので質が一定しない
し、保守にも手間がかかる等の問題がある。キーワード
の自動抽出も試みられているが、高品質のものを得るに
は高品質な言語解析用の辞書が必要である等の問題があ
る。
道、出版、特許出願等様々な分野で大量の文書の電子化
が進んでいる。これらの大量の文書を、必要に応じて簡
単かつ高速に検索するための検索方式として、以下のよ
うな技術が紹介されている。そのひとつは、キーワード
検索方式である。これは、文書を登録する際に予めキー
ワードを付与しておき、それを用いて文書を検索する方
式である。この方式では、キーワードから該当文書を引
く転置ファイルを用いて文書を高速に検索できる。ま
た、キーワード付与時にある程度の言語解析あるいは主
題解析をするため、検索精度も良い。しかし、人手によ
るキーワード付与には専門的知識や労力が必要である
上、付与基準が作業者毎に異なるので質が一定しない
し、保守にも手間がかかる等の問題がある。キーワード
の自動抽出も試みられているが、高品質のものを得るに
は高品質な言語解析用の辞書が必要である等の問題があ
る。
【0003】そこで、キーワード検索方式に代わって全
文検索方式が注目されるに至った。全文検索方式とは、
書誌情報やキーワード等の、文書の本文データをもとに
加工作成されたデータ(二次情報という)でなく、本文
全体(一次情報という)を直接参照して、検索者が自由
に指定するキーワードをもとに検索する方式である。し
かし、全文検索方式では本文全体を走査することによっ
て検索するため、小規模文書に対しては有効だが、大規
模文書に対しては検索時間が問題となる。そこで、専用
ハードウェアが開発されているが、二次記憶上に格納さ
れた文書をメモリに転送するのに時間がかかってしまい
ハードウェアの性能を十分に出すことが困難であった
り、機種依存性が高く、ハードウェア自身が高価で簡単
に導入することが困難である等の問題がある。
文検索方式が注目されるに至った。全文検索方式とは、
書誌情報やキーワード等の、文書の本文データをもとに
加工作成されたデータ(二次情報という)でなく、本文
全体(一次情報という)を直接参照して、検索者が自由
に指定するキーワードをもとに検索する方式である。し
かし、全文検索方式では本文全体を走査することによっ
て検索するため、小規模文書に対しては有効だが、大規
模文書に対しては検索時間が問題となる。そこで、専用
ハードウェアが開発されているが、二次記憶上に格納さ
れた文書をメモリに転送するのに時間がかかってしまい
ハードウェアの性能を十分に出すことが困難であった
り、機種依存性が高く、ハードウェア自身が高価で簡単
に導入することが困難である等の問題がある。
【0004】そこで、より廉価でハードウェアの機種に
依存しない、ソフトウェアによる高速な全文検索方式が
注目されている。これらの方式では、検索を高速化する
ために索引ファイルを予め自動生成するものが多く、本
文中に出現する各文字に対してその出現位置情報を格納
する等、様々な手法が開発されている。
依存しない、ソフトウェアによる高速な全文検索方式が
注目されている。これらの方式では、検索を高速化する
ために索引ファイルを予め自動生成するものが多く、本
文中に出現する各文字に対してその出現位置情報を格納
する等、様々な手法が開発されている。
【0005】
【発明が解決しようとする課題】ところで、上記のよう
な従来の全文検索方法では、ユーザが指定した任意の文
字列を高速に検索可能とするために、索引ファイルの容
量が本文の大きさに比べて著しく大きくなる傾向があ
る。検索対象となる文書は飛躍的に増加し大容量化しつ
つあり、索引ファイルの容量が本文に比べてあまりに巨
大だと対応することができない。
な従来の全文検索方法では、ユーザが指定した任意の文
字列を高速に検索可能とするために、索引ファイルの容
量が本文の大きさに比べて著しく大きくなる傾向があ
る。検索対象となる文書は飛躍的に増加し大容量化しつ
つあり、索引ファイルの容量が本文に比べてあまりに巨
大だと対応することができない。
【0006】一方、索引ファイルの容量を小さく抑える
と、検索速度が不十分になったり、検索洩れが起こる等
の危険がある。本発明では、より小さい容量の索引ファ
イルに、より意味のある情報を格納し、一般にユーザが
検索対象とする文字列を十分にカバーして、それを高速
に検索できるようにすることを目的とする。
と、検索速度が不十分になったり、検索洩れが起こる等
の危険がある。本発明では、より小さい容量の索引ファ
イルに、より意味のある情報を格納し、一般にユーザが
検索対象とする文字列を十分にカバーして、それを高速
に検索できるようにすることを目的とする。
【0007】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 (構成1)検索対象となる電子化された文書を受け入れ
て、その文書を構成する語句に関する情報を得る形態素
解析部と、この形態素解析部の出力から、検索対象とな
り得る意味のある語句のみを主索引語として抽出する主
索引語抽出部と、各主索引語と文書中の出現位置情報と
を対応付けた索引ファイルを生成する索引ファイル生成
部とを備える。 (説明)電子化された文書とは、文字コード化されて、
情報処理装置によって演算処理できるような形式の文書
をいう。形態素解析部は、解析により語句の品詞を含む
情報を得る。意味のある語句とは、助詞単独といった、
それのみでは意味のない、通常では検索対象となり得な
い語句を除外した語句のことである。これにより、現実
に使用される可能性のある語句以外の索引ファイル登録
を防止して、索引ファイルの縮小化を図る。出現位置情
報とは、索引語の文書中の位置を表すデータである。
するため次の構成を採用する。 (構成1)検索対象となる電子化された文書を受け入れ
て、その文書を構成する語句に関する情報を得る形態素
解析部と、この形態素解析部の出力から、検索対象とな
り得る意味のある語句のみを主索引語として抽出する主
索引語抽出部と、各主索引語と文書中の出現位置情報と
を対応付けた索引ファイルを生成する索引ファイル生成
部とを備える。 (説明)電子化された文書とは、文字コード化されて、
情報処理装置によって演算処理できるような形式の文書
をいう。形態素解析部は、解析により語句の品詞を含む
情報を得る。意味のある語句とは、助詞単独といった、
それのみでは意味のない、通常では検索対象となり得な
い語句を除外した語句のことである。これにより、現実
に使用される可能性のある語句以外の索引ファイル登録
を防止して、索引ファイルの縮小化を図る。出現位置情
報とは、索引語の文書中の位置を表すデータである。
【0008】ユーザが実際に検索を行うとき、検索対象
文書中の全ての語句が等しい確率で検索対象とされるわ
けではない。文書中にはユーザに検索されやすいものと
そうでないものが存在する。例えば、助詞や接続詞等の
付属語のみをキーとした検索が行われることはまれであ
る。そこで、ユーザの検索対象となるような語句を適当
な処理によって本文から切り出し、それらの出現位置情
報を格納した索引ファイルを生成し、これらの語句につ
いて高速に検索できるようにする。
文書中の全ての語句が等しい確率で検索対象とされるわ
けではない。文書中にはユーザに検索されやすいものと
そうでないものが存在する。例えば、助詞や接続詞等の
付属語のみをキーとした検索が行われることはまれであ
る。そこで、ユーザの検索対象となるような語句を適当
な処理によって本文から切り出し、それらの出現位置情
報を格納した索引ファイルを生成し、これらの語句につ
いて高速に検索できるようにする。
【0009】また、文字を単位として出現位置情報を格
納するのでなく、語句を単位として格納することによ
り、多くの情報を格納しながら索引ファイルの容量を小
さく保つ。各語句から発生する部分語を索引ファイルに
格納すると、索引ファイルの容量が大きくなりがちだ
が、語句の切り出し時に形態素解析を用いて不要語を削
除する。
納するのでなく、語句を単位として格納することによ
り、多くの情報を格納しながら索引ファイルの容量を小
さく保つ。各語句から発生する部分語を索引ファイルに
格納すると、索引ファイルの容量が大きくなりがちだ
が、語句の切り出し時に形態素解析を用いて不要語を削
除する。
【0010】(構成2)検索対象となる電子化された文
書を受け入れて、その文書を構成する文字の文字種に着
目して、文書を構成する語句を主索引語として切り出す
語句切り出し部と、主索引語と文書中の出現位置情報と
を対応付けた索引ファイルを生成する索引ファイル生成
部とを備える。 (説明)文字種に着目するとは、文書中の区切りとなる
「、」や「。」、「→」等の特殊な文字種を検出する処
理を含む。また、例えば平仮名の直後に出現する漢字を
区切り文字として語句を切り出すような処理を含む、例
えば「コンピュータの技術における、……」では「コン
ピュータの」、「技術における」が切り出される。この
ような区切り文字を検出する処理は形態素解析処理と比
べて簡便で高速化でき、多量の文書から迅速に索引ファ
イルを生成できる。主索引語を切り出すのは、区切り文
字を境にして切り出すのであって、助詞等も含めた索引
語が生成されてよい。
書を受け入れて、その文書を構成する文字の文字種に着
目して、文書を構成する語句を主索引語として切り出す
語句切り出し部と、主索引語と文書中の出現位置情報と
を対応付けた索引ファイルを生成する索引ファイル生成
部とを備える。 (説明)文字種に着目するとは、文書中の区切りとなる
「、」や「。」、「→」等の特殊な文字種を検出する処
理を含む。また、例えば平仮名の直後に出現する漢字を
区切り文字として語句を切り出すような処理を含む、例
えば「コンピュータの技術における、……」では「コン
ピュータの」、「技術における」が切り出される。この
ような区切り文字を検出する処理は形態素解析処理と比
べて簡便で高速化でき、多量の文書から迅速に索引ファ
イルを生成できる。主索引語を切り出すのは、区切り文
字を境にして切り出すのであって、助詞等も含めた索引
語が生成されてよい。
【0011】(構成3)主索引語の第2番目以上の文字
から始まる、主索引語の一部による部分文字列を補助索
引語として、その補助索引語とその文中の出現位置情報
とを対応付けて、索引ファイルに格納することが好まし
い。 (説明)主索引語の一部による部分文字列を検索可能に
すれば、主索引語が接頭語等を含む複合語の場合に、そ
の部分に対する検索も高速にできる効果がある。
から始まる、主索引語の一部による部分文字列を補助索
引語として、その補助索引語とその文中の出現位置情報
とを対応付けて、索引ファイルに格納することが好まし
い。 (説明)主索引語の一部による部分文字列を検索可能に
すれば、主索引語が接頭語等を含む複合語の場合に、そ
の部分に対する検索も高速にできる効果がある。
【0012】(構成4)主索引語及び補助索引語が非平
仮名と平仮名文字列により構成されるとき、語尾の平仮
名文字列を、前記主索引語または補助索引語の語長が縮
小されるように圧縮することが好ましい。 (説明)検索の際に重要度の低い平仮名部分の語尾を圧
縮することによって、検索語の語長を制限し、索引ファ
イルを小容量で実現できる。
仮名と平仮名文字列により構成されるとき、語尾の平仮
名文字列を、前記主索引語または補助索引語の語長が縮
小されるように圧縮することが好ましい。 (説明)検索の際に重要度の低い平仮名部分の語尾を圧
縮することによって、検索語の語長を制限し、索引ファ
イルを小容量で実現できる。
【0013】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈具体例1〉図1は、本発明の文書検索システムの索引
ファイル生成/追加処理装置のブロック図である。ここ
で、具体例1として、索引ファイル生成の際の索引語の
抽出に形態素解析を用いる場合の処理について説明す
る。図1の装置は、検索対象文書入力部1と、形態素解
析部2と、主索引語抽出部3と、補助索引語生成部4
と、先頭文字ハッシュ表生成/追加部5と、索引項目表
生成/追加部6とから構成されている。検索対象文書入
力部1では、電子化された文書が入力される。ここには
図示しないメモリ等が設けられ、検索対象となる文書が
一時記憶される。形態素解析部2は、文書を文字単位で
区切って予め用意した辞書と照合し、文書で使用されて
いる単語や文書の構文等を解析し各単語のかかり具合い
等もデータとして得る部分である。これは、従来より文
書の自動的な構文解析のために使用されていた装置と全
く同様の構成をしている。即ち、検索対象文書入力部1
から入力された対象文書に対し形態素解析部2は所定の
形態素解析を施し、その結果を主索引語抽出部3に向け
て出力する。
例を用いて説明する。 〈具体例1〉図1は、本発明の文書検索システムの索引
ファイル生成/追加処理装置のブロック図である。ここ
で、具体例1として、索引ファイル生成の際の索引語の
抽出に形態素解析を用いる場合の処理について説明す
る。図1の装置は、検索対象文書入力部1と、形態素解
析部2と、主索引語抽出部3と、補助索引語生成部4
と、先頭文字ハッシュ表生成/追加部5と、索引項目表
生成/追加部6とから構成されている。検索対象文書入
力部1では、電子化された文書が入力される。ここには
図示しないメモリ等が設けられ、検索対象となる文書が
一時記憶される。形態素解析部2は、文書を文字単位で
区切って予め用意した辞書と照合し、文書で使用されて
いる単語や文書の構文等を解析し各単語のかかり具合い
等もデータとして得る部分である。これは、従来より文
書の自動的な構文解析のために使用されていた装置と全
く同様の構成をしている。即ち、検索対象文書入力部1
から入力された対象文書に対し形態素解析部2は所定の
形態素解析を施し、その結果を主索引語抽出部3に向け
て出力する。
【0014】主索引語抽出部3は、形態素解析の結果得
られた語情報をもとにして、検索に用いられやすい品詞
の語だけを抽出する部分である。付属語や句読点等は、
独自でユーザの検索対象となることは少ないので、不要
語として切り捨て、索引生成の対象から除外する。ここ
では例えば、自立語と未知語、英数字を索引生成対象と
する。ここで索引生成対象として抽出された語を便宜上
「主索引語」と呼ぶことにする。
られた語情報をもとにして、検索に用いられやすい品詞
の語だけを抽出する部分である。付属語や句読点等は、
独自でユーザの検索対象となることは少ないので、不要
語として切り捨て、索引生成の対象から除外する。ここ
では例えば、自立語と未知語、英数字を索引生成対象と
する。ここで索引生成対象として抽出された語を便宜上
「主索引語」と呼ぶことにする。
【0015】補助索引語生成部4は、全ての主索引語に
対して補助索引語を生成する部分である。補助索引語と
は、与えられた主索引語W(語長L)に対して、Wの第
i番目から最後までの文字から成る部分文字列をいう
(0<i<L)。あるひとつの主索引語に対して、その
語長がLのとき、高々L−1個の補助索引語が生成され
る。以下、便宜上、主索引語と補助索引語を合わせて索
引語と呼ぶ。その説明は図3を用いて行う。先頭文字ハ
ッシュ表生成/追加部5と索引項目表生成/追加部6と
は、主索引語抽出部3で抽出した主索引語及び、補助索
引語生成部4で生成した補助索引語をもとに索引ファイ
ル21を生成する部分である。
対して補助索引語を生成する部分である。補助索引語と
は、与えられた主索引語W(語長L)に対して、Wの第
i番目から最後までの文字から成る部分文字列をいう
(0<i<L)。あるひとつの主索引語に対して、その
語長がLのとき、高々L−1個の補助索引語が生成され
る。以下、便宜上、主索引語と補助索引語を合わせて索
引語と呼ぶ。その説明は図3を用いて行う。先頭文字ハ
ッシュ表生成/追加部5と索引項目表生成/追加部6と
は、主索引語抽出部3で抽出した主索引語及び、補助索
引語生成部4で生成した補助索引語をもとに索引ファイ
ル21を生成する部分である。
【0016】図2は、生成された索引ファイルを用い
て、ユーザに指定された検索パターン文字列を検索する
ための検索処理装置のブロック図である。この装置は、
検索パターン文字列入力部11と、形態素解析部12、
索引語抽出部13、自立索引語検索部14、未知語検索
部15、本文照合部16及び結果出力部17から構成さ
れている。検索パターン文字列は、文書検索のためにオ
ペレータ等によってキーボード等を用いて入力される。
検索パターン文字列入力部11は、このようなキーボー
ド、その他の入力装置から構成される。形態素解析部1
2は、図1で用いた形態素解析部2と全く同様の構成の
もので、同一部分を索引ファイルの生成にもまた検索処
理のためにも使用することができる。この形態素解析部
12は、文書データ検索のために入力された検索パター
ン文字列の形態素解析を行う。
て、ユーザに指定された検索パターン文字列を検索する
ための検索処理装置のブロック図である。この装置は、
検索パターン文字列入力部11と、形態素解析部12、
索引語抽出部13、自立索引語検索部14、未知語検索
部15、本文照合部16及び結果出力部17から構成さ
れている。検索パターン文字列は、文書検索のためにオ
ペレータ等によってキーボード等を用いて入力される。
検索パターン文字列入力部11は、このようなキーボー
ド、その他の入力装置から構成される。形態素解析部1
2は、図1で用いた形態素解析部2と全く同様の構成の
もので、同一部分を索引ファイルの生成にもまた検索処
理のためにも使用することができる。この形態素解析部
12は、文書データ検索のために入力された検索パター
ン文字列の形態素解析を行う。
【0017】索引語抽出部13は、形態素解析の結果と
して得られた語リストのうち、不要語を取り除いて、実
際に索引の対象となる索引語を抽出する。自立索引語検
索部14と、未知語検索部15と、本文照合部16は、
実際の検索を行う部分である。まず、自立索引語検索部
14は、索引語抽出部13で抽出された索引語のうち、
品詞が自立語、英数字であるもの全てについて索引ファ
イルを検索し、出現位置情報の候補を得る。次に、未知
語検索部15は、索引語抽出部13の索引語で未知語と
判定されたものがあれば、それらについても索引ファイ
ルを検索し、出現位置の候補を得る。なお、未知語と言
うのは形態素解析部12の用いる単語辞書に無い単語の
ことをいう。最後に、本文照合部16は、検索パターン
文字列が不要語を含むならば、それらについて本文を用
いて照合し、結果出力部17は、得られた検索結果を出
力する。即ち、例えば「コンピュータの技術」という検
索パターン文字列を入力したとすれば、「コンピュー
タ」と「技術」とが索引ファイル中で検索される。この
とき、「の」は不要語である。従って、「コンピュー
タ」の出現位置と「技術」の出現位置の付近で「コンピ
ュータの技術」という文字列が無いかを今度は直接対象
文書本文を見ながら照合して検索結果を得る。
して得られた語リストのうち、不要語を取り除いて、実
際に索引の対象となる索引語を抽出する。自立索引語検
索部14と、未知語検索部15と、本文照合部16は、
実際の検索を行う部分である。まず、自立索引語検索部
14は、索引語抽出部13で抽出された索引語のうち、
品詞が自立語、英数字であるもの全てについて索引ファ
イルを検索し、出現位置情報の候補を得る。次に、未知
語検索部15は、索引語抽出部13の索引語で未知語と
判定されたものがあれば、それらについても索引ファイ
ルを検索し、出現位置の候補を得る。なお、未知語と言
うのは形態素解析部12の用いる単語辞書に無い単語の
ことをいう。最後に、本文照合部16は、検索パターン
文字列が不要語を含むならば、それらについて本文を用
いて照合し、結果出力部17は、得られた検索結果を出
力する。即ち、例えば「コンピュータの技術」という検
索パターン文字列を入力したとすれば、「コンピュー
タ」と「技術」とが索引ファイル中で検索される。この
とき、「の」は不要語である。従って、「コンピュー
タ」の出現位置と「技術」の出現位置の付近で「コンピ
ュータの技術」という文字列が無いかを今度は直接対象
文書本文を見ながら照合して検索結果を得る。
【0018】図3は、索引ファイルの構成説明図を示
す。図1の索引ファイル21は、ひとつの先頭文字ハッ
シュ表22と、N個の索引項目表23から成る。Nは、
全ての索引語の先頭に出現する文字種の総数である。索
引項目表23は、索引語の先頭文字毎に存在する。各索
引項目表は、ある文字で始まる全ての索引語に関する出
現位置情報を格納したもので、索引語をキーとして、そ
の出現位置情報を検索できる構成になっている。
す。図1の索引ファイル21は、ひとつの先頭文字ハッ
シュ表22と、N個の索引項目表23から成る。Nは、
全ての索引語の先頭に出現する文字種の総数である。索
引項目表23は、索引語の先頭文字毎に存在する。各索
引項目表は、ある文字で始まる全ての索引語に関する出
現位置情報を格納したもので、索引語をキーとして、そ
の出現位置情報を検索できる構成になっている。
【0019】図4は、先頭文字ハッシュ表22の格納デ
ータ形式である。先頭文字ハッシュ表22は、索引語の
先頭文字をキーとして、対応する索引項目表を検索する
ためのハッシュ表である。先頭文字ハッシュ表22の各
データは3つのデータ項目の組で表される。図4に示し
た項目31は索引語の先頭に出現する1文字、項目32
はそれぞれ対応する索引項目表へのポインタである。項
目33は、先頭文字ハッシュ表の次のバケットへのポイ
ンタである。次のバケットがない場合はnull(無効
データ)である。
ータ形式である。先頭文字ハッシュ表22は、索引語の
先頭文字をキーとして、対応する索引項目表を検索する
ためのハッシュ表である。先頭文字ハッシュ表22の各
データは3つのデータ項目の組で表される。図4に示し
た項目31は索引語の先頭に出現する1文字、項目32
はそれぞれ対応する索引項目表へのポインタである。項
目33は、先頭文字ハッシュ表の次のバケットへのポイ
ンタである。次のバケットがない場合はnull(無効
データ)である。
【0020】図5は、索引項目表の格納データ形式であ
る。各データは4つのデータ項目の組で表される。項目
41は索引語を表す固定長文字列、項目42は項目41
に索引語が格納しきれない場合、その残余文字列へのポ
インタである。残余文字列がない場合はnullであ
る。項目43はこの索引語に対応する出現位置情報の総
数を表す。出現位置情報には2種類の表現形式がある。
ひとつは本文中の具体的な出現位置を示す値となってい
る場合で、もうひとつは索引項目表中の別の索引項目へ
のポインタとなっている場合である。ある索引語に対応
する出現位置情報が後者の形式でのみ格納されている場
合は、項目43の総数を負数で表す。そうでない場合は
正数で表す。項目44は出現位置情報のリストへのポイ
ンタである。
る。各データは4つのデータ項目の組で表される。項目
41は索引語を表す固定長文字列、項目42は項目41
に索引語が格納しきれない場合、その残余文字列へのポ
インタである。残余文字列がない場合はnullであ
る。項目43はこの索引語に対応する出現位置情報の総
数を表す。出現位置情報には2種類の表現形式がある。
ひとつは本文中の具体的な出現位置を示す値となってい
る場合で、もうひとつは索引項目表中の別の索引項目へ
のポインタとなっている場合である。ある索引語に対応
する出現位置情報が後者の形式でのみ格納されている場
合は、項目43の総数を負数で表す。そうでない場合は
正数で表す。項目44は出現位置情報のリストへのポイ
ンタである。
【0021】〈動作〉以下、本発明の文字検索システム
の具体的な動作をフローチャートを用いて説明する。ま
ず、予め索引ファイルを生成する。図6と図7は、索引
ファイルの生成処理を示すフローチャートである。ま
ず、ステップS1で検索対象文書を入力し、ステップS
2で形態素解析を行う。次に、形態素解析の結果得られ
た語のうち、不要語を削除して主索引語を抽出する(ス
テップS3)。抽出された各主索引語について、ステッ
プS4以降の処理を繰り返す。
の具体的な動作をフローチャートを用いて説明する。ま
ず、予め索引ファイルを生成する。図6と図7は、索引
ファイルの生成処理を示すフローチャートである。ま
ず、ステップS1で検索対象文書を入力し、ステップS
2で形態素解析を行う。次に、形態素解析の結果得られ
た語のうち、不要語を削除して主索引語を抽出する(ス
テップS3)。抽出された各主索引語について、ステッ
プS4以降の処理を繰り返す。
【0022】始めに、Wを主索引語とし(ステップS
5)、Wの先頭文字aで先頭文字ハッシュ表を検索する
(ステップS6)。文字aに対応する索引項目表がある
ならば(ステップS7)、Wの出現位置情報を索引項目
表に登録する(ステップS9)。このステップS9で
は、索引項目表をキーWで検索し、Wのデータがないな
らば、Wをキーとして新たにWの出現位置情報を格納す
る。既にWのデータがあるならば、Wの出現位置情報
を、出現位置情報リストの先頭に追加する。ステップS
7で索引項目表がないならば、ステップS8で新たに文
字aに対応する索引項目表を生成してからステップS9
を行う。
5)、Wの先頭文字aで先頭文字ハッシュ表を検索する
(ステップS6)。文字aに対応する索引項目表がある
ならば(ステップS7)、Wの出現位置情報を索引項目
表に登録する(ステップS9)。このステップS9で
は、索引項目表をキーWで検索し、Wのデータがないな
らば、Wをキーとして新たにWの出現位置情報を格納す
る。既にWのデータがあるならば、Wの出現位置情報
を、出現位置情報リストの先頭に追加する。ステップS
7で索引項目表がないならば、ステップS8で新たに文
字aに対応する索引項目表を生成してからステップS9
を行う。
【0023】次に、補助索引語の登録処理を行う。まず
ステップS10でLをWの語長から1引いた値とし、X
0をWとする(ステップS11)。さらに、LがL>0
を満たす間(ステップS12)、ステップS13以下の
処理を繰り返す。ステップS13では、Wの最後からL
文字をとって部分文字列Xを生成し、これを補助索引語
とする。次に、Xに関する情報を索引ファイルに格納す
る。まず、Xの先頭文字aで先頭文字ハッシュ表を検索
し(ステップS14)、文字aに対応する項目表がある
ならば(ステップS15)、Xで索引項目表を検索する
(ステップS16)。該当するデータがあるならば(ス
テップS17)、Xに対応する出現位置情報リストの最
後にX0へのポインタを追加登録する(ステップS1
8)。これ以降の補助索引語は既に索引ファイルに登録
されているので、主索引語Wに対応する補助索引語の登
録はここで打ち切り、次の主索引語の登録処理を行う
(ステップS4)。
ステップS10でLをWの語長から1引いた値とし、X
0をWとする(ステップS11)。さらに、LがL>0
を満たす間(ステップS12)、ステップS13以下の
処理を繰り返す。ステップS13では、Wの最後からL
文字をとって部分文字列Xを生成し、これを補助索引語
とする。次に、Xに関する情報を索引ファイルに格納す
る。まず、Xの先頭文字aで先頭文字ハッシュ表を検索
し(ステップS14)、文字aに対応する項目表がある
ならば(ステップS15)、Xで索引項目表を検索する
(ステップS16)。該当するデータがあるならば(ス
テップS17)、Xに対応する出現位置情報リストの最
後にX0へのポインタを追加登録する(ステップS1
8)。これ以降の補助索引語は既に索引ファイルに登録
されているので、主索引語Wに対応する補助索引語の登
録はここで打ち切り、次の主索引語の登録処理を行う
(ステップS4)。
【0024】ステップS17でXのデータがないなら
ば、XをキーとしてX0へのポインタを出現位置情報リ
ストに格納する(ステップS20)。即ち、X0:=X
(ステップS21)、L:=L−1(ステップS22)
としてステップS12へ戻る。
ば、XをキーとしてX0へのポインタを出現位置情報リ
ストに格納する(ステップS20)。即ち、X0:=X
(ステップS21)、L:=L−1(ステップS22)
としてステップS12へ戻る。
【0025】ステップS15でaに対応する索引項目表
がないならば、文字aに対応する索引項目表を新たに生
成し(ステップS19)、Xに対応するデータを新たに
生成してその出現位置情報としてX0へのポインタを格
納する(ステップS20)。更にX0:=X(ステップ
S21)、L:=L−1(ステップS22)としてステ
ップS12以降の補助索引語の生成、登録処理を繰り返
す。以上のようにして、全ての主索引語や補助索引語に
対する登録処理が終ると、処理が終了する(ステップS
4)。
がないならば、文字aに対応する索引項目表を新たに生
成し(ステップS19)、Xに対応するデータを新たに
生成してその出現位置情報としてX0へのポインタを格
納する(ステップS20)。更にX0:=X(ステップ
S21)、L:=L−1(ステップS22)としてステ
ップS12以降の補助索引語の生成、登録処理を繰り返
す。以上のようにして、全ての主索引語や補助索引語に
対する登録処理が終ると、処理が終了する(ステップS
4)。
【0026】図8と図9は、生成された索引ファイルを
用いて検索を行う場合の検索処理を示すフローチャート
である。まず、検索パターン文字列を入力し(ステップ
S1)、その文字列の形態素解析を行う(ステップS
2)。次に、ステップS3で形態素解析の結果得られた
語のリストから索引語Wi(0≦i<n)を抽出する。
このとき、不要語として切り捨てられる語が存在する場
合は(ステップS4)、ステップS5でflag:=
1、そうでない場合は、ステップS6でflag:=0
とする。次に、得られた索引語に対して索引ファイルを
検索する。まず、最初に出現位置情報の候補集合Hを空
に設定する(ステップS7)。
用いて検索を行う場合の検索処理を示すフローチャート
である。まず、検索パターン文字列を入力し(ステップ
S1)、その文字列の形態素解析を行う(ステップS
2)。次に、ステップS3で形態素解析の結果得られた
語のリストから索引語Wi(0≦i<n)を抽出する。
このとき、不要語として切り捨てられる語が存在する場
合は(ステップS4)、ステップS5でflag:=
1、そうでない場合は、ステップS6でflag:=0
とする。次に、得られた索引語に対して索引ファイルを
検索する。まず、最初に出現位置情報の候補集合Hを空
に設定する(ステップS7)。
【0027】Wiのうち自立語及び英数字のみを取り出
してXj(0≦j<m)とし、(ステップS8)、Xj
間の距離djを算出する(ステップS9)。例えば、
「コンピュータの技術」という検索パターン文字列の場
合には、「コンピュータ」と「技術」とは自立語で、両
者の間には「の」が存在する。この場合、両者の距離は
「の」の文字コードのバイト数即ち2バイトとなる。
尚、出現位置情報をその語の文字列の第1文字目が出現
する場所とすることもできる。このとき、「コンピュー
タの技術」の「コンピュータ」の出現位置情報が例えば
301(バイト目)とすれば「技術」の出現位置情報は
これに7文字分の14バイトを加算した315となる。
即ち、「コンピュータ」と「技術」の距離は14バイト
というように表すこともできる。次に、ステップS10
〜17でこれらの索引語について検索する。処理は以下
のように行う。ステップS10で、j:=0として、j
<mの間(ステップS11)以下の処理を繰り返す。X
jで索引ファイルを検索するために処理Aを実行する
(ステップS12)。処理Aは図10で後述する。該当
するデータがあれば(ステップS13)、Xjの出現位
置情報をH0の要素として登録し(ステップS14)、
HとH0の要素を参照して、距離djを満たすもののみ
を新たにHの要素とする(ステップS15)。例えば
「コンピュータの技術」という検索パターン文字列の場
合に、「コンピュータ」と「技術」という語句の間の距
離が2バイト以上の物を除外するためにこの処理を行
う。ステップS16では、j:=j+1として、ステッ
プS11へ戻る。
してXj(0≦j<m)とし、(ステップS8)、Xj
間の距離djを算出する(ステップS9)。例えば、
「コンピュータの技術」という検索パターン文字列の場
合には、「コンピュータ」と「技術」とは自立語で、両
者の間には「の」が存在する。この場合、両者の距離は
「の」の文字コードのバイト数即ち2バイトとなる。
尚、出現位置情報をその語の文字列の第1文字目が出現
する場所とすることもできる。このとき、「コンピュー
タの技術」の「コンピュータ」の出現位置情報が例えば
301(バイト目)とすれば「技術」の出現位置情報は
これに7文字分の14バイトを加算した315となる。
即ち、「コンピュータ」と「技術」の距離は14バイト
というように表すこともできる。次に、ステップS10
〜17でこれらの索引語について検索する。処理は以下
のように行う。ステップS10で、j:=0として、j
<mの間(ステップS11)以下の処理を繰り返す。X
jで索引ファイルを検索するために処理Aを実行する
(ステップS12)。処理Aは図10で後述する。該当
するデータがあれば(ステップS13)、Xjの出現位
置情報をH0の要素として登録し(ステップS14)、
HとH0の要素を参照して、距離djを満たすもののみ
を新たにHの要素とする(ステップS15)。例えば
「コンピュータの技術」という検索パターン文字列の場
合に、「コンピュータ」と「技術」という語句の間の距
離が2バイト以上の物を除外するためにこの処理を行
う。ステップS16では、j:=j+1として、ステッ
プS11へ戻る。
【0028】ステップS13で該当するデータがないな
らば、検索パターン文字列は見つからないことになるの
で、ステップS17でHを空にして、処理Dへ進む。全
てのXjについて以上の処理を終了したら、次に、Wi
のうち未知語があれば、それらについて検索を行う。図
9のステップS18で、Wiのうち未知語をUj(0≦
j<r)とし、ステップS19でUjに隣接するWとの
距離djを算出する。ステップS20でj:=0とし
て、ステップS21によりj<rの間以下の処理を繰り
返す。Ujで索引ファイルを検索するために処理Cを実
行する(ステップS22)。処理Cは、例えば、処理A
と同様にしてUjで索引ファイルを検索すればよいこれ
も図10により詳述する。該当するデータがあれば(ス
テップS23)、Ujの出現位置情報をH0の要素とし
て登録し(ステップS24)、HとH0の要素を参照し
て、距離djを満たすもののみを新たにHの要素とする
(ステップS25)。
らば、検索パターン文字列は見つからないことになるの
で、ステップS17でHを空にして、処理Dへ進む。全
てのXjについて以上の処理を終了したら、次に、Wi
のうち未知語があれば、それらについて検索を行う。図
9のステップS18で、Wiのうち未知語をUj(0≦
j<r)とし、ステップS19でUjに隣接するWとの
距離djを算出する。ステップS20でj:=0とし
て、ステップS21によりj<rの間以下の処理を繰り
返す。Ujで索引ファイルを検索するために処理Cを実
行する(ステップS22)。処理Cは、例えば、処理A
と同様にしてUjで索引ファイルを検索すればよいこれ
も図10により詳述する。該当するデータがあれば(ス
テップS23)、Ujの出現位置情報をH0の要素とし
て登録し(ステップS24)、HとH0の要素を参照し
て、距離djを満たすもののみを新たにHの要素とする
(ステップS25)。
【0029】ステップS26では、j:=j+1とし
て、ステップS21へ戻る。ステップS23で該当する
データがないならば、検索パターン文字列は見つからな
いことになるので、ステップS27でHを空にして、処
理Dへ進む。全てのUjについて以上の処理を終了した
ら、最後に、Wiの抽出時に不要語があった場合、それ
らを含めた本文照合を行う。ステップS28でflag
が1ならば不要語があったことを意味するので、Hの各
要素について本文照合し、照合するもののみをHの要素
とする(ステップS29)。そうでなければ、本文照合
はしなくてよい。最後にステップS30でHを出力し
て、終了する(ステップS31)。
て、ステップS21へ戻る。ステップS23で該当する
データがないならば、検索パターン文字列は見つからな
いことになるので、ステップS27でHを空にして、処
理Dへ進む。全てのUjについて以上の処理を終了した
ら、最後に、Wiの抽出時に不要語があった場合、それ
らを含めた本文照合を行う。ステップS28でflag
が1ならば不要語があったことを意味するので、Hの各
要素について本文照合し、照合するもののみをHの要素
とする(ステップS29)。そうでなければ、本文照合
はしなくてよい。最後にステップS30でHを出力し
て、終了する(ステップS31)。
【0030】図10は、索引語が自立語である場合の、
索引ファイルの検索処理(処理A)について示したフロ
ーチャートである。まずWを索引語とし(ステップS
1)、出現位置の候補集合Mを空に設定する(ステップ
S2)。次に、Wの先頭文字aで先頭文字ハッシュ表を
検索し(ステップS3)、文字aに対応する索引項目表
があるならば(ステップS4)、索引項目表をWに対す
る前方一致で検索する(ステップS5)。該当データが
あるならば(ステップS6)、以下の処理を行う。
索引ファイルの検索処理(処理A)について示したフロ
ーチャートである。まずWを索引語とし(ステップS
1)、出現位置の候補集合Mを空に設定する(ステップ
S2)。次に、Wの先頭文字aで先頭文字ハッシュ表を
検索し(ステップS3)、文字aに対応する索引項目表
があるならば(ステップS4)、索引項目表をWに対す
る前方一致で検索する(ステップS5)。該当データが
あるならば(ステップS6)、以下の処理を行う。
【0031】前方一致で照合したならば(ステップS
7)、Wの後続の索引語を用いて更に照合するかどうか
検査し、照合するならば(ステップS8)、Mにその出
現位置情報を追加して(ステップS9)、ステップS5
へ戻る。このようにして、索引項目表で満足するものを
全て取り出して処理を繰り返す。全ての該当するデータ
を取り出したら、Mを出力して(ステップS11)終
了。なお、ステップS4で、文字aに対応する索引項目
表がない場合は、Mを空にして検索を終了する。
7)、Wの後続の索引語を用いて更に照合するかどうか
検査し、照合するならば(ステップS8)、Mにその出
現位置情報を追加して(ステップS9)、ステップS5
へ戻る。このようにして、索引項目表で満足するものを
全て取り出して処理を繰り返す。全ての該当するデータ
を取り出したら、Mを出力して(ステップS11)終
了。なお、ステップS4で、文字aに対応する索引項目
表がない場合は、Mを空にして検索を終了する。
【0032】〈具体例1の効果〉以上の具体例1では、
対象となる文書データから形態素解析を用いて主索引語
を抽出する。このとき品詞情報を用いて、自立語等のユ
ーザが検索対象としやすい語を積極的に抽出し、単体で
は検索対象となり得ないと思われる語を積極的に除外す
ることができる。これによって、確実に意味のある文字
並びのみを索引生成対象とし、それ以外の文字並びに関
する出現位置情報を索引ファイルに格納しないようにす
ることができるので、索引ファイルの容量を大幅に縮小
し、しかも多くの意味ある情報を索引ファイルに含める
ことができる。また、ユーザの検索が名詞句について行
われることが多いとすれば、具体例1では、これらの検
索に対して特に、極めて高速に解が得られる。複合語や
未知語の検索では、上記の場合の検索より速度的には幾
分劣るものの、補助索引語に関する情報を格納すること
によって十分実用的な検索が可能である。
対象となる文書データから形態素解析を用いて主索引語
を抽出する。このとき品詞情報を用いて、自立語等のユ
ーザが検索対象としやすい語を積極的に抽出し、単体で
は検索対象となり得ないと思われる語を積極的に除外す
ることができる。これによって、確実に意味のある文字
並びのみを索引生成対象とし、それ以外の文字並びに関
する出現位置情報を索引ファイルに格納しないようにす
ることができるので、索引ファイルの容量を大幅に縮小
し、しかも多くの意味ある情報を索引ファイルに含める
ことができる。また、ユーザの検索が名詞句について行
われることが多いとすれば、具体例1では、これらの検
索に対して特に、極めて高速に解が得られる。複合語や
未知語の検索では、上記の場合の検索より速度的には幾
分劣るものの、補助索引語に関する情報を格納すること
によって十分実用的な検索が可能である。
【0033】〈具体例2〉具体例2として、索引語の抽
出を簡易語句解析によって実現する場合の処理について
示す。図11は、具体例2の文書検索システムの索引フ
ァイル生成/追加処理装置のブロック図である。図11
の装置は、検索対象文書入力部51と、索引語の簡易切
り出し部52と、補助索引語の圧縮展開部53と、先頭
文字ハッシュ表生成/追加部54と、索引項目表生成/
追加部55とから構成されている。検索対象文書入力部
1には、電子化された文書が入力される。ここには図示
しないメモリ等が設けられ、検索対象となる文書が一時
記憶される。索引語の簡易切り出し部52は、文書を適
当に簡易的に区切って語句を取り出す部分である。ここ
で切り出した語句を便宜上索引語と呼ぶことにする。
出を簡易語句解析によって実現する場合の処理について
示す。図11は、具体例2の文書検索システムの索引フ
ァイル生成/追加処理装置のブロック図である。図11
の装置は、検索対象文書入力部51と、索引語の簡易切
り出し部52と、補助索引語の圧縮展開部53と、先頭
文字ハッシュ表生成/追加部54と、索引項目表生成/
追加部55とから構成されている。検索対象文書入力部
1には、電子化された文書が入力される。ここには図示
しないメモリ等が設けられ、検索対象となる文書が一時
記憶される。索引語の簡易切り出し部52は、文書を適
当に簡易的に区切って語句を取り出す部分である。ここ
で切り出した語句を便宜上索引語と呼ぶことにする。
【0034】日本語文を簡易的に語句に区切る方法とし
ては様々なものがあるが、ここでは、例えば句読点や漢
字、アルファベット、片仮名等の文字種を区切り記号と
した、文字種による簡易切り出しを考える。句読点は単
語の切れ目を表すものである。また、日本語の自立語の
先頭文字は漢字で表記されることが多いことや、ほとん
どの名詞は非平仮名列で表示される、等の経験則を利用
すると、文字種を用いた簡易切り出しで、ある程度正し
く語句の先頭を割り出すことができる。
ては様々なものがあるが、ここでは、例えば句読点や漢
字、アルファベット、片仮名等の文字種を区切り記号と
した、文字種による簡易切り出しを考える。句読点は単
語の切れ目を表すものである。また、日本語の自立語の
先頭文字は漢字で表記されることが多いことや、ほとん
どの名詞は非平仮名列で表示される、等の経験則を利用
すると、文字種を用いた簡易切り出しで、ある程度正し
く語句の先頭を割り出すことができる。
【0035】次に、補助索引語の圧縮展開部53は、簡
易切り出し部52で切り出した各索引語について、補助
索引語を生成し、索引ファイルへの格納用に圧縮する。
その生成方法は具体例1の場合と同様である。ある索引
語W(語長Lとする)の補助索引語は、高々L−1個あ
り、それぞれ索引語の第i番目から最後までの文字から
成る部分文字列(0<i<L)である。もとの索引語及
び補助索引語は、圧縮して索引ファイルに格納する。文
字列の圧縮方法としては様々な方法が考えられるが、こ
こでは例えば、以下のような方法を考える。即ち、索引
語及び補助索引語の語尾の部分が平仮名文字から成る場
合、語尾の平仮名文字部分を、ある適当な文字数で折り
たたむことによって圧縮する。例えば、圧縮単位文字数
を4とすると、9文字から成る平仮名部分列は、4文字
ずつ折りたたまれて、圧縮結果は4文字となる。折りた
たみによる圧縮方法は従来より各種のものが知られてい
るが、例えば複数の文字コードの対応するビットの論理
和をとって圧縮データを得る。このようにすると、補助
索引語の語尾を圧縮して索引ファイルの縮小化を図ると
同時にひとつの索引語から生成される補助索引語の個数
も抑えることが可能となり、ファイルを更に小さくする
ことができる。
易切り出し部52で切り出した各索引語について、補助
索引語を生成し、索引ファイルへの格納用に圧縮する。
その生成方法は具体例1の場合と同様である。ある索引
語W(語長Lとする)の補助索引語は、高々L−1個あ
り、それぞれ索引語の第i番目から最後までの文字から
成る部分文字列(0<i<L)である。もとの索引語及
び補助索引語は、圧縮して索引ファイルに格納する。文
字列の圧縮方法としては様々な方法が考えられるが、こ
こでは例えば、以下のような方法を考える。即ち、索引
語及び補助索引語の語尾の部分が平仮名文字から成る場
合、語尾の平仮名文字部分を、ある適当な文字数で折り
たたむことによって圧縮する。例えば、圧縮単位文字数
を4とすると、9文字から成る平仮名部分列は、4文字
ずつ折りたたまれて、圧縮結果は4文字となる。折りた
たみによる圧縮方法は従来より各種のものが知られてい
るが、例えば複数の文字コードの対応するビットの論理
和をとって圧縮データを得る。このようにすると、補助
索引語の語尾を圧縮して索引ファイルの縮小化を図ると
同時にひとつの索引語から生成される補助索引語の個数
も抑えることが可能となり、ファイルを更に小さくする
ことができる。
【0036】先頭文字ハッシュ表生成/追加部54と索
引項目表生成/追加部55とは、主索引語及び補助索引
語をもとに索引ファイルを生成する。索引ファイルの構
成は、実施の形態1とほぼ同様である。ただし、索引項
目表に格納される索引語は、圧縮された形式で格納され
ている。
引項目表生成/追加部55とは、主索引語及び補助索引
語をもとに索引ファイルを生成する。索引ファイルの構
成は、実施の形態1とほぼ同様である。ただし、索引項
目表に格納される索引語は、圧縮された形式で格納され
ている。
【0037】図12は、生成された索引ファイルを用い
て、ユーザに指定された検索パターン文字列を検索する
ための検索処理装置のブロック図である。この装置は、
検索パターン文字列入力部61と、索引語の簡易切り出
し部62、索引語の圧縮部63、索引ファイル検索部6
4、本文照合部65及び結果出力部66から構成されて
いる。検索パターン文字列は、文書検索のためにオペレ
ータ等によってキーボード等を用いて入力される。検索
パターン文字列入力部61は、このようなキーボード、
その他の入力装置から構成される。索引語の簡易切り出
し部62は、索引語を切り出す。次に、索引語の圧縮部
63は、得られた索引語を圧縮する。圧縮方法は、索引
ファイルの生成時と同様の方法で行う。索引ファイル検
索部64は、圧縮された索引語で索引ファイルを検索す
る。索引語を圧縮して検索しているため、ここで得られ
る解集合には誤った解も含まれる可能性がある。そこ
で、最終的には本文照合部65によって本文と照合を行
い、結果出力部66から結果を出力する。
て、ユーザに指定された検索パターン文字列を検索する
ための検索処理装置のブロック図である。この装置は、
検索パターン文字列入力部61と、索引語の簡易切り出
し部62、索引語の圧縮部63、索引ファイル検索部6
4、本文照合部65及び結果出力部66から構成されて
いる。検索パターン文字列は、文書検索のためにオペレ
ータ等によってキーボード等を用いて入力される。検索
パターン文字列入力部61は、このようなキーボード、
その他の入力装置から構成される。索引語の簡易切り出
し部62は、索引語を切り出す。次に、索引語の圧縮部
63は、得られた索引語を圧縮する。圧縮方法は、索引
ファイルの生成時と同様の方法で行う。索引ファイル検
索部64は、圧縮された索引語で索引ファイルを検索す
る。索引語を圧縮して検索しているため、ここで得られ
る解集合には誤った解も含まれる可能性がある。そこ
で、最終的には本文照合部65によって本文と照合を行
い、結果出力部66から結果を出力する。
【0038】〈動作〉まず、予め索引ファイルを生成す
る。図13は、索引ファイルの生成処理を示すフローチ
ャートである。まずステップS1で検索対象文書を入力
し、ステップS2で索引語の簡易切り出しを行う。切り
出された各索引語について、ステップS3以降の処理を
繰り返す。始めに、Wを索引語とし(ステップS4)、
Wの語長をLとする(ステップS5)。また、Wに対す
る文字列の圧縮開始位置をpとする(ステップS6)。
具体的には、例えばWの最初の数文字が漢字で残りが平
仮名文字の場合、pは最初に平仮名文字が出現した位置
である。p<Lならば(ステップS7)、Wのp番目以
降の文字を折りたたみ圧縮したものをW1とする(ステ
ップS8)。そして、pに圧縮単位文字数を加えた値を
qとする(ステップS9)。
る。図13は、索引ファイルの生成処理を示すフローチ
ャートである。まずステップS1で検索対象文書を入力
し、ステップS2で索引語の簡易切り出しを行う。切り
出された各索引語について、ステップS3以降の処理を
繰り返す。始めに、Wを索引語とし(ステップS4)、
Wの語長をLとする(ステップS5)。また、Wに対す
る文字列の圧縮開始位置をpとする(ステップS6)。
具体的には、例えばWの最初の数文字が漢字で残りが平
仮名文字の場合、pは最初に平仮名文字が出現した位置
である。p<Lならば(ステップS7)、Wのp番目以
降の文字を折りたたみ圧縮したものをW1とする(ステ
ップS8)。そして、pに圧縮単位文字数を加えた値を
qとする(ステップS9)。
【0039】qは、補助索引語を生成する際の生成抑止
パラメータとして用いる。理論的には、与えられた語長
Lの索引語Wに対して、その補助索引語はL−1個あ
り、それぞれWの第i番目から最後までの文字から成る
L−1個の部分文字列である。しかし、ここでは文字並
びを折り畳んで圧縮する方法をとっているので、p番目
以降の補助索引語については圧縮単位文字数分の補助索
引語を生成してしまえば、残りは生成する必要がない。
ステップS7でp≧Lならば、Wの後半部分が非平仮名
なので圧縮を行わない。そこで、ステップS10でW
1:=Wとし、ステップS11でq:=Lとする。
パラメータとして用いる。理論的には、与えられた語長
Lの索引語Wに対して、その補助索引語はL−1個あ
り、それぞれWの第i番目から最後までの文字から成る
L−1個の部分文字列である。しかし、ここでは文字並
びを折り畳んで圧縮する方法をとっているので、p番目
以降の補助索引語については圧縮単位文字数分の補助索
引語を生成してしまえば、残りは生成する必要がない。
ステップS7でp≧Lならば、Wの後半部分が非平仮名
なので圧縮を行わない。そこで、ステップS10でW
1:=Wとし、ステップS11でq:=Lとする。
【0040】次に、索引語Wの圧縮形式W1を索引ファ
イルに登録する。まずW1の先頭文字aで先頭文字ハッ
シュ表を検索する(ステップS12)。文字aに対応す
る索引項目表があるならば(ステップS13)、W1の
データを索引項目表に登録する(ステップS15)。ま
ず索引項目表をキーW1で検索し、W1のデータがない
ならば、W1をキーとして新たにWの出現位置情報を格
納する。既にW1のデータがあるならば、Wの出現位置
情報を、出現位置情報リストの先頭に追加する。ステッ
プS13で索引項目表がないならば、新たに文字aに対
応する索引項目表を生成してから(ステップS14)ス
テップS15を実行する。
イルに登録する。まずW1の先頭文字aで先頭文字ハッ
シュ表を検索する(ステップS12)。文字aに対応す
る索引項目表があるならば(ステップS13)、W1の
データを索引項目表に登録する(ステップS15)。ま
ず索引項目表をキーW1で検索し、W1のデータがない
ならば、W1をキーとして新たにWの出現位置情報を格
納する。既にW1のデータがあるならば、Wの出現位置
情報を、出現位置情報リストの先頭に追加する。ステッ
プS13で索引項目表がないならば、新たに文字aに対
応する索引項目表を生成してから(ステップS14)ス
テップS15を実行する。
【0041】次に、索引語Wに対応する補助索引語を生
成して索引ファイルに登録する。まず、ステップS16
でX0:=W1とし、ステップS17でi:=1とす
る。図14へ移り、i≦qの間(ステップS18)、以
下の処理を繰り返す。まず、Wの第i番目から最後まで
の文字をとった部分文字列Xを生成し(ステップS1
9)、Xのp番目以降の平仮名列を圧縮したものをX1
とする(ステップS20)。X1の先頭文字aで先頭文
字ハッシュ表を検索し(ステップS21)、文字aに対
応する索引項目表があるならば(ステップS22)、索
引項目表をキーX1で検索する(ステップS23)。既
にX1のデータがあるならば(ステップS24)、X0
へのポインタを出現位置情報リストの最後に追加する
(ステップS25)。これ以降の補助索引語は既に索引
ファイルに登録されているので、索引語Wに対応する補
助索引語の生成はここで打ち切り、ステップS3に戻っ
て次の索引語の登録処理を行う(ステップS3)。
成して索引ファイルに登録する。まず、ステップS16
でX0:=W1とし、ステップS17でi:=1とす
る。図14へ移り、i≦qの間(ステップS18)、以
下の処理を繰り返す。まず、Wの第i番目から最後まで
の文字をとった部分文字列Xを生成し(ステップS1
9)、Xのp番目以降の平仮名列を圧縮したものをX1
とする(ステップS20)。X1の先頭文字aで先頭文
字ハッシュ表を検索し(ステップS21)、文字aに対
応する索引項目表があるならば(ステップS22)、索
引項目表をキーX1で検索する(ステップS23)。既
にX1のデータがあるならば(ステップS24)、X0
へのポインタを出現位置情報リストの最後に追加する
(ステップS25)。これ以降の補助索引語は既に索引
ファイルに登録されているので、索引語Wに対応する補
助索引語の生成はここで打ち切り、ステップS3に戻っ
て次の索引語の登録処理を行う(ステップS3)。
【0042】ステップS24でX1のデータがないなら
ば、X1をキーとしてX0へのポインタを出現位置情報
リストに格納する(ステップS27)。ステップS28
でX0:=X1とし、ステップS29でi:=i+1と
してステップS18へ戻る。また、ステップS22で文
字aに対応する索引項目表がないならば、新たに文字a
に対応する索引項目表を生成してから(ステップS2
6)、ステップS27以降を実行する。このようにし
て、全ての索引語について索引ファイルへの登録処理が
完了すれば処理を終了する(ステップS30)。
ば、X1をキーとしてX0へのポインタを出現位置情報
リストに格納する(ステップS27)。ステップS28
でX0:=X1とし、ステップS29でi:=i+1と
してステップS18へ戻る。また、ステップS22で文
字aに対応する索引項目表がないならば、新たに文字a
に対応する索引項目表を生成してから(ステップS2
6)、ステップS27以降を実行する。このようにし
て、全ての索引語について索引ファイルへの登録処理が
完了すれば処理を終了する(ステップS30)。
【0043】図15は、生成された索引ファイルを用い
て検索を行う場合の処理を示すフローチャートである。
まず、検索パターン文字列を入力し(ステップS1)、
索引語の簡易切り出しを行う(ステップS2)。最初
に、該当する出現位置情報の候補集合Hを空に設定する
(ステップS3)。そして、ステップS2で切り出され
た全ての索引語に対してステップS4以降の検索処理を
繰り返し、解の候補集合を絞り込む。
て検索を行う場合の処理を示すフローチャートである。
まず、検索パターン文字列を入力し(ステップS1)、
索引語の簡易切り出しを行う(ステップS2)。最初
に、該当する出現位置情報の候補集合Hを空に設定する
(ステップS3)。そして、ステップS2で切り出され
た全ての索引語に対してステップS4以降の検索処理を
繰り返し、解の候補集合を絞り込む。
【0044】まず、Wを索引語とし(ステップS5)、
Wの圧縮文字列をW1とする(ステップS6)。圧縮方
法は、索引ファイルの生成時と同様の方法で行う。次
に、W1の先頭文字aで先頭文字ハッシュ表を検索し
(ステップS7)、文字aに対応する索引項目表がある
ならば(ステップS8)、その索引項目表をキーW1の
前方一致で検索する(ステップ9)。キーW1に前方一
致するデータがあれば(ステップS10)、それらの全
てのデータの出現位置情報リストを取り出してH0とし
(ステップS11)、H:=H∩H0とする(ステップ
S12)。ステップS13でi:=i+1としてステッ
プS4へ戻る。このようにして、全ての索引語について
検索処理が完了したら、Hに含まれる各出現位置情報に
ついて、本文と照合し(ステップS15)、最終的な解
を出力して(ステップS16)、終了する(ステップS
17)。ステップS8で文字aに対応する索引項目表が
ない場合、あるいはステップS10でキーW1に前方一
致するデータがない場合は、Hを空にして(ステップS
14)検索を終了する。
Wの圧縮文字列をW1とする(ステップS6)。圧縮方
法は、索引ファイルの生成時と同様の方法で行う。次
に、W1の先頭文字aで先頭文字ハッシュ表を検索し
(ステップS7)、文字aに対応する索引項目表がある
ならば(ステップS8)、その索引項目表をキーW1の
前方一致で検索する(ステップ9)。キーW1に前方一
致するデータがあれば(ステップS10)、それらの全
てのデータの出現位置情報リストを取り出してH0とし
(ステップS11)、H:=H∩H0とする(ステップ
S12)。ステップS13でi:=i+1としてステッ
プS4へ戻る。このようにして、全ての索引語について
検索処理が完了したら、Hに含まれる各出現位置情報に
ついて、本文と照合し(ステップS15)、最終的な解
を出力して(ステップS16)、終了する(ステップS
17)。ステップS8で文字aに対応する索引項目表が
ない場合、あるいはステップS10でキーW1に前方一
致するデータがない場合は、Hを空にして(ステップS
14)検索を終了する。
【0045】〈具体例2の効果〉この具体例2では、文
字種を用いた簡易切り出しを用いて検索語を切り出す。
従って、具体例1に比べて非常に軽い処理で索引語を抽
出できるのが特徴のひとつである。それでありながら、
既知の日本語文に関する経験則を用いて切り出しを行う
ため、ある程度高い確率で正しく語の先頭を識別でき
る。このように切り出した語に対して、更に補助索引語
を生成して索引ファイルに格納する。抽出した語をもと
に索引ファイルを生成する従来技術では、しばしば語を
なさない文字並びについて、高速に検索できないという
欠点があったが、この例によれば、このような場合の検
索でも十分高速に検索を実現することができる。
字種を用いた簡易切り出しを用いて検索語を切り出す。
従って、具体例1に比べて非常に軽い処理で索引語を抽
出できるのが特徴のひとつである。それでありながら、
既知の日本語文に関する経験則を用いて切り出しを行う
ため、ある程度高い確率で正しく語の先頭を識別でき
る。このように切り出した語に対して、更に補助索引語
を生成して索引ファイルに格納する。抽出した語をもと
に索引ファイルを生成する従来技術では、しばしば語を
なさない文字並びについて、高速に検索できないという
欠点があったが、この例によれば、このような場合の検
索でも十分高速に検索を実現することができる。
【0046】具体例2では、本文を適当に分割して生成
される語を単位として対応する出現位置情報を格納し、
更に、これに加えて補助索引語に関する情報を格納す
る。従って、具体例1と比較すると句読点等の特殊な文
字を除き、任意の文字列について均一に高速に検索する
ことが可能である。一方、具体例1と比べると、助動詞
等の付属語はほとんど検索対象にならないにも関わら
ず、これらの情報を省略できない。従って、前方一致操
作によって複数のデータ項目に対するアクセスが必要で
あり、索引ファイル容量も大きくなりがちである。しか
し、この具体例2では、各索引語に対して、語尾の圧縮
等によって補助索引語の生成に抑制効果のある、効率よ
い圧縮方法を採用できるから、結果的には索引ファイル
の容量を小さく抑えることができる。
される語を単位として対応する出現位置情報を格納し、
更に、これに加えて補助索引語に関する情報を格納す
る。従って、具体例1と比較すると句読点等の特殊な文
字を除き、任意の文字列について均一に高速に検索する
ことが可能である。一方、具体例1と比べると、助動詞
等の付属語はほとんど検索対象にならないにも関わら
ず、これらの情報を省略できない。従って、前方一致操
作によって複数のデータ項目に対するアクセスが必要で
あり、索引ファイル容量も大きくなりがちである。しか
し、この具体例2では、各索引語に対して、語尾の圧縮
等によって補助索引語の生成に抑制効果のある、効率よ
い圧縮方法を採用できるから、結果的には索引ファイル
の容量を小さく抑えることができる。
【図1】索引ファイル生成/追加処理装置のブロック図
である。
である。
【図2】検索処理装置のブロック図である。
【図3】索引ファイルの構成説明図である。
【図4】先頭文字ハッシュ表の格納データ形式説明図で
ある。
ある。
【図5】索引項目表の格納データ形式説明図である。
【図6】索引ファイル生成処理動作フローチャート(そ
の1)である。
の1)である。
【図7】索引ファイル生成処理動作フローチャート(そ
の2)である。
の2)である。
【図8】検索処理動作フローチャート(その1)であ
る。
る。
【図9】検索処理動作フローチャート(その2)であ
る。
る。
【図10】処理Aの自立語の索引ファイル検索動作フロ
ーチャートである。
ーチャートである。
【図11】索引ファイル生成/追加処理装置のブロック
図である。
図である。
【図12】検索処理装置のブロック図である。
【図13】索引ファイル生成処理動作フローチャート
(その1)である。
(その1)である。
【図14】索引ファイル生成処理動作フローチャート
(その2)である。
(その2)である。
【図15】検索処理動作フローチャートである。
1 検索対象文書入力部 2 形態素解析部 3 主索引語抽出部 4 補助索引語生成部 5 先頭文字ハッシュ表生成/追加部 6 索引項目表生成/追加部
Claims (4)
- 【請求項1】 検索対象となる電子化された文書を受け
入れて、その文書を構成する語句に関する情報を得る形
態素解析部と、 この形態素解析部の出力から、検索対象となり得る意味
のある語句のみを主索引語として抽出する主索引語抽出
部と、 各主索引語と前記文書中の出現位置情報とを対応付けた
索引ファイルを生成する索引ファイル生成部とを備えた
ことを特徴とする文書検索システム。 - 【請求項2】 検索対象となる電子化された文書を受け
入れて、その文書を構成する文字の文字種に着目して、
文書を構成する語句を主索引語として切り出す語句切り
出し部と、 前記主索引語と前記文書中の出現位置情報とを対応付け
た索引ファイルを生成する索引ファイル生成部とを備え
たことを特徴とする文書検索システム。 - 【請求項3】 主索引語の第2番目以降の文字から始ま
る、主索引語の一部による部分文字列を補助索引語とし
て、その補助索引語とその文書中の出現位置情報とを対
応つけて、索引ファイルに格納したことを特徴とする請
求項1または2記載の文書検索システム。 - 【請求項4】 主索引語及び補助索引語が非平仮名と平
仮名文字列により構成されるとき、語尾の平仮名文字列
を、前記主索引語または補助索引語の語長が縮小される
ように圧縮することを特徴とする請求項2記載の文書検
索システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7231915A JPH0954781A (ja) | 1995-08-17 | 1995-08-17 | 文書検索システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7231915A JPH0954781A (ja) | 1995-08-17 | 1995-08-17 | 文書検索システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0954781A true JPH0954781A (ja) | 1997-02-25 |
Family
ID=16931060
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7231915A Pending JPH0954781A (ja) | 1995-08-17 | 1995-08-17 | 文書検索システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0954781A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008154823A1 (fr) * | 2007-06-21 | 2008-12-24 | Tencent Technology (Shenzhen) Company Limited | Procédé, système et dispositif de recherche |
| KR100911413B1 (ko) * | 2007-11-08 | 2009-08-11 | 한국과학기술정보연구원 | 데이터베이스와 정보검색 통합을 위한 문서단위 동적색인관리 특성을 갖는 정보검색 시스템 및 그 방법 |
| JP2011527058A (ja) * | 2008-07-03 | 2011-10-20 | ニュアンス コミュニケーションズ,インコーポレイテッド | モバイルデバイス上で日本語テキストを処理する方法およびシステム |
-
1995
- 1995-08-17 JP JP7231915A patent/JPH0954781A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008154823A1 (fr) * | 2007-06-21 | 2008-12-24 | Tencent Technology (Shenzhen) Company Limited | Procédé, système et dispositif de recherche |
| KR100911413B1 (ko) * | 2007-11-08 | 2009-08-11 | 한국과학기술정보연구원 | 데이터베이스와 정보검색 통합을 위한 문서단위 동적색인관리 특성을 갖는 정보검색 시스템 및 그 방법 |
| JP2011527058A (ja) * | 2008-07-03 | 2011-10-20 | ニュアンス コミュニケーションズ,インコーポレイテッド | モバイルデバイス上で日本語テキストを処理する方法およびシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5890103A (en) | Method and apparatus for improved tokenization of natural language text | |
| JP4544674B2 (ja) | 選択文字列に関連する情報を提供するシステム | |
| US6654717B2 (en) | Multi-language document search and retrieval system | |
| JP2742115B2 (ja) | 類似文書検索装置 | |
| WO1997004405A9 (en) | Method and apparatus for automated search and retrieval processing | |
| JP2002342361A (ja) | 情報検索装置 | |
| JPH0954781A (ja) | 文書検索システム | |
| KR20020054254A (ko) | 사전구조를 이용한 한국어 형태소 분석방법 | |
| JPS61248160A (ja) | 文書情報登録方式 | |
| JPH09245051A (ja) | 自然言語事例検索装置及び自然言語事例検索方法 | |
| JP3666066B2 (ja) | 多言語文書登録検索装置 | |
| JPH07325837A (ja) | 抽象単語による通信文検索装置及び抽象単語による通信文検索方法 | |
| JPH1173422A (ja) | 類似文書検索システムおよびそれに用いる記憶媒体 | |
| JPH0652151A (ja) | 共起学習装置及びこれを用いたかな漢字変換装置 | |
| KR20020003701A (ko) | 디지털 문서의 키워드를 자동으로 추출하는 방법 | |
| JP2003228578A (ja) | 情報検索方法及び情報検索装置及び情報検索装置の制御プログラム | |
| Lin et al. | Pm-based indexing for chinese text retrieval | |
| JPH07141381A (ja) | 電子辞書表示装置 | |
| JPH05174067A (ja) | データベース検索システム | |
| JP4183767B2 (ja) | 文字列検索装置およびその検索方法 | |
| JPH08161344A (ja) | ファイル検索管理用のキーワードデータベースファイル作成方法および装置 | |
| JPH09212524A (ja) | 全文検索方法および電子化辞書装置 | |
| JPH0721212A (ja) | 文書処理装置 | |
| JP2001184365A (ja) | 文書検索システムおよび記録媒体 | |
| JPH06332949A (ja) | 電子ファイリング装置 |