JPH1196170A - データベース作成方法および情報検索方法および情報検索装置および記録媒体 - Google Patents
データベース作成方法および情報検索方法および情報検索装置および記録媒体Info
- Publication number
- JPH1196170A JPH1196170A JP9252354A JP25235497A JPH1196170A JP H1196170 A JPH1196170 A JP H1196170A JP 9252354 A JP9252354 A JP 9252354A JP 25235497 A JP25235497 A JP 25235497A JP H1196170 A JPH1196170 A JP H1196170A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- partial character
- character string
- information
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】テキスト中のキーワードの出現頻度に応じてシ
グネチャを用いた情報検索を行う際のフォルスドロップ
の発生を抑制でき、記憶領域のオーバーヘッドを抑え、
高速に前方一致検索が行えるデータベース作成方法およ
び情報検索方法および情報検索装置を提供する。 【解決手段】入力された情報中のキーワードから部分文
字列を切り出し、この切り出された部分文字列のキーワ
ード中での出現頻度に基づき前記部分文字列に割り当て
られた予め定められた長さのビット列を用いて前記入力
された情報に対する第1のシグネチャを生成し、前記入
力された情報を前記生成された第1のシグネチャと対応
付けて記憶してデータベースを作成する。
グネチャを用いた情報検索を行う際のフォルスドロップ
の発生を抑制でき、記憶領域のオーバーヘッドを抑え、
高速に前方一致検索が行えるデータベース作成方法およ
び情報検索方法および情報検索装置を提供する。 【解決手段】入力された情報中のキーワードから部分文
字列を切り出し、この切り出された部分文字列のキーワ
ード中での出現頻度に基づき前記部分文字列に割り当て
られた予め定められた長さのビット列を用いて前記入力
された情報に対する第1のシグネチャを生成し、前記入
力された情報を前記生成された第1のシグネチャと対応
付けて記憶してデータベースを作成する。
Description
【0001】
【発明の属する技術分野】本発明は、データベースの効
率的な検索を行うためのシグネチャ(ビット列)を用い
た情報検索方法およびそれを用いた情報検索装置に関す
る。
率的な検索を行うためのシグネチャ(ビット列)を用い
た情報検索方法およびそれを用いた情報検索装置に関す
る。
【0002】
【従来の技術】例えば、テキスト情報を処理する情報検
索システムは、任意の文字列を検索対象とする全文検索
方式と、キーワードによる検索を行う方式の2種類に大
別できる。
索システムは、任意の文字列を検索対象とする全文検索
方式と、キーワードによる検索を行う方式の2種類に大
別できる。
【0003】キーワードによる検索を行う方式では、事
前にキーワードに関する補助データベースを作成してお
くことで、検索速度の向上を行っている。作成される補
助データベースとしては、各キーワードごとにそれが出
現するテキスト中での位置を記録する転置ファイルを作
成する方式と、テキストのレコードごとにそこに出現す
るキーワードの情報を簡潔に表現したシグネチャファイ
ルを用いる方式がある。
前にキーワードに関する補助データベースを作成してお
くことで、検索速度の向上を行っている。作成される補
助データベースとしては、各キーワードごとにそれが出
現するテキスト中での位置を記録する転置ファイルを作
成する方式と、テキストのレコードごとにそこに出現す
るキーワードの情報を簡潔に表現したシグネチャファイ
ルを用いる方式がある。
【0004】転置ファイルを利用する方式では、高速な
検索が可能となる反面、転置ファイルのサイズが膨大に
なり記憶領域の効率が低下するという問題がある。シグ
ネチャファイルを用いる方式では、テキスト1レコード
中の情報をシグネチャとしてコンパクトに表現している
ため、記憶領域に関しては有利であるが、検索速度に関
する問題が生じる。しかしその単純な方式は、並列コン
ピュータ上での並列実行容易性など多くの可能性を秘め
ており、多くの研究開発が継続されている。
検索が可能となる反面、転置ファイルのサイズが膨大に
なり記憶領域の効率が低下するという問題がある。シグ
ネチャファイルを用いる方式では、テキスト1レコード
中の情報をシグネチャとしてコンパクトに表現している
ため、記憶領域に関しては有利であるが、検索速度に関
する問題が生じる。しかしその単純な方式は、並列コン
ピュータ上での並列実行容易性など多くの可能性を秘め
ており、多くの研究開発が継続されている。
【0005】ここで、シグネチャファイル法について図
1を参照して説明する。まず、以降の説明で用いる用語
について説明する。レコードとはワード(単語)の集ま
りである。単語のうち、検索対象とされるものを特にキ
ーワードとよぶ。シグネチャファイル法では、各キーワ
ードにシグネチャと呼ぶビット列を対応させる。ビット
列への対応をbcw関数とよぶ(binary cod
e word)。図1では、レコード中に出現する3つ
のキーワード「keyword1」、「keyword
2」、「keyword3」に対して、長さ10のビッ
ト列が対応している。ここで、ビット列のいずれも3ヶ
所のビットが「1」で、残りのビットは「0」となって
いることに注意する。
1を参照して説明する。まず、以降の説明で用いる用語
について説明する。レコードとはワード(単語)の集ま
りである。単語のうち、検索対象とされるものを特にキ
ーワードとよぶ。シグネチャファイル法では、各キーワ
ードにシグネチャと呼ぶビット列を対応させる。ビット
列への対応をbcw関数とよぶ(binary cod
e word)。図1では、レコード中に出現する3つ
のキーワード「keyword1」、「keyword
2」、「keyword3」に対して、長さ10のビッ
ト列が対応している。ここで、ビット列のいずれも3ヶ
所のビットが「1」で、残りのビットは「0」となって
いることに注意する。
【0006】ビット列の長さをビット長(この場合「1
0」)、このビット列のうち「1」となるビットの個数
(この場合「3」)を重みと呼ぶ。レコードに対するシ
グネチャとは、レコード中に出現するキーワードのシグ
ネチャ全部のビット毎の論理和を取ったものである。
0」)、このビット列のうち「1」となるビットの個数
(この場合「3」)を重みと呼ぶ。レコードに対するシ
グネチャとは、レコード中に出現するキーワードのシグ
ネチャ全部のビット毎の論理和を取ったものである。
【0007】この方式での検索方法を図2を参照して説
明する。すなわち、検索語(この場合「keyword
3」)に対して、先ほどと同じbcw関数を用いてビッ
ト列を作成する。そして、このビット列中で「1」にな
っているビット位置が全て「1」となっているシグネチ
ャを持つレコードを検索結果として出力する。つまり、
検索語のビット列とレコードのビット列との論理積が、
検索語のビット列に一致する場合に、そのテキストを検
索結果として出力する。このように、ビット列の論理操
作で検索が行えるため、シグネチャファイルによる検索
は十分な高速性を持っている。
明する。すなわち、検索語(この場合「keyword
3」)に対して、先ほどと同じbcw関数を用いてビッ
ト列を作成する。そして、このビット列中で「1」にな
っているビット位置が全て「1」となっているシグネチ
ャを持つレコードを検索結果として出力する。つまり、
検索語のビット列とレコードのビット列との論理積が、
検索語のビット列に一致する場合に、そのテキストを検
索結果として出力する。このように、ビット列の論理操
作で検索が行えるため、シグネチャファイルによる検索
は十分な高速性を持っている。
【0008】ところが、この方式ではフォルスドロップ
と呼ばれる問題が生じる。すなわち、図1のように「k
eyword1」と「keyword2」のビット毎の
論理和は「keyword3」のビット列を完全に含ん
でいるため、「keyword1」と「keyword
2」を含むレコードは「keyword3」を含まない
にもかかわらず、「keyword3」に対する検索出
力となってしまう。
と呼ばれる問題が生じる。すなわち、図1のように「k
eyword1」と「keyword2」のビット毎の
論理和は「keyword3」のビット列を完全に含ん
でいるため、「keyword1」と「keyword
2」を含むレコードは「keyword3」を含まない
にもかかわらず、「keyword3」に対する検索出
力となってしまう。
【0009】フォルスドロップの除去のためには、全文
文字検索アルゴリズムを適用しなければならず、シグネ
チャファイル法の検索速度を低下させてしまう原因とな
る。上述したようなフォルスドロップをいかに減少させ
るかが、シグネチャファイルを用いる検索システムの実
現の際には重要な問題となる。これは、上で説明したb
cw関数を最適に設計するという問題に他ならない。こ
のときの設計パラメタとしては、(1)ビット長、
(2)重み、(3)与えられたビット長、重みのもとで
ビット列を対応させる具体的方式、の3種類となる。次
に、これらの決定方法について従来技術を説明する。
文字検索アルゴリズムを適用しなければならず、シグネ
チャファイル法の検索速度を低下させてしまう原因とな
る。上述したようなフォルスドロップをいかに減少させ
るかが、シグネチャファイルを用いる検索システムの実
現の際には重要な問題となる。これは、上で説明したb
cw関数を最適に設計するという問題に他ならない。こ
のときの設計パラメタとしては、(1)ビット長、
(2)重み、(3)与えられたビット長、重みのもとで
ビット列を対応させる具体的方式、の3種類となる。次
に、これらの決定方法について従来技術を説明する。
【0010】参考文献1(Roberts、C.S.、
Partial−match retrieval v
ia the method of superimp
osed codes、 Proc. IEEE 6
7、 Dec.、 1624− 1642、 197
9.)では、次のような前提条件のもとで、bcw関数
の数学的解析を行い、ビット長と重みに関する設計指針
を与えた。
Partial−match retrieval v
ia the method of superimp
osed codes、 Proc. IEEE 6
7、 Dec.、 1624− 1642、 197
9.)では、次のような前提条件のもとで、bcw関数
の数学的解析を行い、ビット長と重みに関する設計指針
を与えた。
【0011】(前提条件1)各レコードに出現する相異
なるキーワード数は一定である。 (前提条件2)いずれのキーワードも等確率で出現す
る。 この2つの前提条件のもと、ビット長b、重みw、キー
ワード数r、のレコードがフォルスドロップする確率は
次式で与えられる。
なるキーワード数は一定である。 (前提条件2)いずれのキーワードも等確率で出現す
る。 この2つの前提条件のもと、ビット長b、重みw、キー
ワード数r、のレコードがフォルスドロップする確率は
次式で与えられる。
【0012】
【数1】 この式は、wがmよりも十分に小さい場合には次式で近
似できる。
似できる。
【0013】
【数2】
【0014】この式の値が最小になる場合、すなわちフ
ォルスドロップが最小になるのは、w/b=0.5のと
きであり、レコードのシグネチャ中でちょうど1/2の
ビットが「1」になるようにセットされた場合である。
w/bはシグネチャ中で「1」となるビットの割合を示
すものであるから、以降ではビット率とよぶことにす
る。
ォルスドロップが最小になるのは、w/b=0.5のと
きであり、レコードのシグネチャ中でちょうど1/2の
ビットが「1」になるようにセットされた場合である。
w/bはシグネチャ中で「1」となるビットの割合を示
すものであるから、以降ではビット率とよぶことにす
る。
【0015】ここで、シグネチャの符号長bは記憶領域
サイズと直接関係することに注意する。従って、システ
ムに許されるディスク使用量とフォルスドロップ除去の
ための検索速度低下とを上の式から推測しながら、最適
なb、wの値を採用することが従来の方法であった。
サイズと直接関係することに注意する。従って、システ
ムに許されるディスク使用量とフォルスドロップ除去の
ための検索速度低下とを上の式から推測しながら、最適
なb、wの値を採用することが従来の方法であった。
【0016】上記の解析においては、各レコードに出現
するキーワード数が一定であるということと(前提条件
1)、キーワードの出現確率が均等であること(前提条
件2)という2つの前提条件を仮定していた。ところ
が、一般のテキストデータベースにおいては、レコード
に現れるキーワード数は大きくばらついている。レコー
ドのフォーマットを強制的に規定することでレコード数
を一定とするのでは、実用上の運用に困難をきたすこと
になる。さらに、良く知られているように、自然言語
(日本語、英語など)においては、出現する単語の分析
は極めて偏ったものになっている。結局、上記の単純な
解析結果からは、実用的なテキストデータベースに対す
る最適な設計値を得ることができないということにな
る。
するキーワード数が一定であるということと(前提条件
1)、キーワードの出現確率が均等であること(前提条
件2)という2つの前提条件を仮定していた。ところ
が、一般のテキストデータベースにおいては、レコード
に現れるキーワード数は大きくばらついている。レコー
ドのフォーマットを強制的に規定することでレコード数
を一定とするのでは、実用上の運用に困難をきたすこと
になる。さらに、良く知られているように、自然言語
(日本語、英語など)においては、出現する単語の分析
は極めて偏ったものになっている。結局、上記の単純な
解析結果からは、実用的なテキストデータベースに対す
る最適な設計値を得ることができないということにな
る。
【0017】そこで、前提条件1、前提条件2を実用的
なレベルにまで緩和しようとする試みがなされている。
まず前提条件1についてであるが、レコードをキーワー
ド数が一定となるようにした論理的なブロックへと分割
するという方式が広く採用されている。
なレベルにまで緩和しようとする試みがなされている。
まず前提条件1についてであるが、レコードをキーワー
ド数が一定となるようにした論理的なブロックへと分割
するという方式が広く採用されている。
【0018】前提条件2に関しては、参考文献2(Ch
un−Wu Roger Leng、and Dik
Lun Lee:Optimal Weight As
signment for Signature Ge
neration、ACMTransactions
on Database Systems、Vol.1
7、No.2、1992.)に、レコードを単純にキー
ワード数一定となるように分割するのではなく、分割さ
れた各々のレコードに対するシグネチャにおいて「1」
にセットされるビット数が同一になるようなレコード分
割を行うような方式が提案されている。この方法は、キ
ーワード偏在という問題への対処療法的解決であり、本
質的な解決とは異なる。例えば、高頻度のキーワードに
より「1」にセットされるビットと、中頻度以下のキー
ワードで「1」にセットされるビットが同一である場
合、そうした中頻度以下のキーワードによる検索の際の
フォルスドロップが大きくなってしまう。一般的なテキ
スト情報データベースにおいては、高頻度や低頻度のキ
ーワードによる検索よりもむしろ、中頻度のキーワード
による検索が重要となる場合が多いため、この従来技術
は十分なものではなかった。
un−Wu Roger Leng、and Dik
Lun Lee:Optimal Weight As
signment for Signature Ge
neration、ACMTransactions
on Database Systems、Vol.1
7、No.2、1992.)に、レコードを単純にキー
ワード数一定となるように分割するのではなく、分割さ
れた各々のレコードに対するシグネチャにおいて「1」
にセットされるビット数が同一になるようなレコード分
割を行うような方式が提案されている。この方法は、キ
ーワード偏在という問題への対処療法的解決であり、本
質的な解決とは異なる。例えば、高頻度のキーワードに
より「1」にセットされるビットと、中頻度以下のキー
ワードで「1」にセットされるビットが同一である場
合、そうした中頻度以下のキーワードによる検索の際の
フォルスドロップが大きくなってしまう。一般的なテキ
スト情報データベースにおいては、高頻度や低頻度のキ
ーワードによる検索よりもむしろ、中頻度のキーワード
による検索が重要となる場合が多いため、この従来技術
は十分なものではなかった。
【0019】次に、前方一致検索に関しては説明する。
前方一致検索とは、例えば「comp」なる検索式を与
えることで、「computer」、「compute
rs」、「computation」などといったキー
ワードの前方部分が検索式「comp」と一致するキー
ワードによる検索を行うものであり、情報検索システム
の重要な機能となっている。ところが、単純なシグネチ
ャ法により前方一致検索を行う場合、「comp」を前
方の部分文字列とするキーワードを辞書などを利用して
生成し、生成された各々に対する検索を行う必要があ
り、検索速度や辞書保存のための記憶領域オーバヘッド
増大という問題がある。そこで従来技術による改良方式
が提案されている。
前方一致検索とは、例えば「comp」なる検索式を与
えることで、「computer」、「compute
rs」、「computation」などといったキー
ワードの前方部分が検索式「comp」と一致するキー
ワードによる検索を行うものであり、情報検索システム
の重要な機能となっている。ところが、単純なシグネチ
ャ法により前方一致検索を行う場合、「comp」を前
方の部分文字列とするキーワードを辞書などを利用して
生成し、生成された各々に対する検索を行う必要があ
り、検索速度や辞書保存のための記憶領域オーバヘッド
増大という問題がある。そこで従来技術による改良方式
が提案されている。
【0020】参考文献3(C.Faloutsos:A
ccess Methods for Text、AC
M Computing Surveys、Vol.1
7、No.1、1985.)に記載されている方式で
は、辞書を用いることなく(すなわち記憶領域のオーバ
ーヘッドなしに)前方一致検索を行う方法が提案されて
いる。しかし、単純に参考文献3の方式を適用したので
は、フォルスドロップの増大を招くことになり、現実的
なものではなくなってしまう。前方一致検索を可能にす
る方式は、フォルスドロップを減少させる方法と共に用
いなければ現実上の意味がない。
ccess Methods for Text、AC
M Computing Surveys、Vol.1
7、No.1、1985.)に記載されている方式で
は、辞書を用いることなく(すなわち記憶領域のオーバ
ーヘッドなしに)前方一致検索を行う方法が提案されて
いる。しかし、単純に参考文献3の方式を適用したので
は、フォルスドロップの増大を招くことになり、現実的
なものではなくなってしまう。前方一致検索を可能にす
る方式は、フォルスドロップを減少させる方法と共に用
いなければ現実上の意味がない。
【0021】特願平第7−121065号に記載の索引
型式作成装置においては、シグネチャを用いた情報検索
システムにおいて、キーワードの概念を拡張する発明が
提供されている。すなわち、テキスト中に頻繁に現れる
連続した文字列を統計データに基いて同定し、それをキ
ーワードに代る検索単位として採用しようとする方法で
ある。この方法は、頻繁に現れる文字列がキーワードと
なるため、そうした頻繁に現れる文字列に対する検索能
力を向上させる意味を持っている。しかし同発明におい
ては、頻繁に現れる文字列を見出す方式に主眼が置か
れ、フォルスドロップ数を減少させるための方式は従来
の発明を利用している。従って、頻繁に現れる文字列の
生起頻度に偏りが生じた場合には、フォルスドロップの
増大を招き実用上の利点が失われる可能性がある。
型式作成装置においては、シグネチャを用いた情報検索
システムにおいて、キーワードの概念を拡張する発明が
提供されている。すなわち、テキスト中に頻繁に現れる
連続した文字列を統計データに基いて同定し、それをキ
ーワードに代る検索単位として採用しようとする方法で
ある。この方法は、頻繁に現れる文字列がキーワードと
なるため、そうした頻繁に現れる文字列に対する検索能
力を向上させる意味を持っている。しかし同発明におい
ては、頻繁に現れる文字列を見出す方式に主眼が置か
れ、フォルスドロップ数を減少させるための方式は従来
の発明を利用している。従って、頻繁に現れる文字列の
生起頻度に偏りが生じた場合には、フォルスドロップの
増大を招き実用上の利点が失われる可能性がある。
【0022】特願平第3−190619号に記載の情報
検索システムにおいては、キーワードに対する索引の構
成をシステムの利用状況に応じて変更するというもので
ある。これは、より頻繁に利用されるキーワードに対す
る検索時間を徐々に高速化しようとするものであり、ニ
ューラルネットワークを利用した利用頻度情報の収集部
分と、キーワード格納装置内部でキーワードの再配置を
行う部分から構成されている。この発明では、システム
が十分に使い込まれないと高速化が達成できないという
問題がある。さらに、複数の利用者が同一のデータベー
スを利用する場合、利用者により異なるキーワードの傾
向を持つ場合への対応が論じられていないなどの問題が
ある。
検索システムにおいては、キーワードに対する索引の構
成をシステムの利用状況に応じて変更するというもので
ある。これは、より頻繁に利用されるキーワードに対す
る検索時間を徐々に高速化しようとするものであり、ニ
ューラルネットワークを利用した利用頻度情報の収集部
分と、キーワード格納装置内部でキーワードの再配置を
行う部分から構成されている。この発明では、システム
が十分に使い込まれないと高速化が達成できないという
問題がある。さらに、複数の利用者が同一のデータベー
スを利用する場合、利用者により異なるキーワードの傾
向を持つ場合への対応が論じられていないなどの問題が
ある。
【0023】特願平第6−32441号に記載のシグネ
チャの用いた文書検索装置においては、シグネチャを格
納する方式を工夫することで記憶領域サイズを小さくす
る方法が提供されている。この発明はフォルスドロップ
数の減少やデータの内容に合わせたシグネチャ作成方法
調整とは関係しないので、本発明とは独立のものであ
る。
チャの用いた文書検索装置においては、シグネチャを格
納する方式を工夫することで記憶領域サイズを小さくす
る方法が提供されている。この発明はフォルスドロップ
数の減少やデータの内容に合わせたシグネチャ作成方法
調整とは関係しないので、本発明とは独立のものであ
る。
【0024】その他に、従来技術によるシグネチャファ
イル法の改良方式は多数提案されている。例えば、参考
文献4(Dik Lun Lee、Young Man
Kim、and Gaurav Patel:Eff
icient Signature File Met
hods for Text Retrieval、I
EEE Trans.on Knowledge an
d Data Eng.,Vol.7、No.3、19
95.)には、シグネチャを用いるいくつかの方式につ
いて、その方式と数学的な解析が記載されている。例え
ば、レコードに対するシグネチャを用いるだけではな
く、複数のシグネチャに対するシグネチャをも考えるこ
とで、検索を他段階に行う方式が提案されており、ディ
スク装置とのアクセスを減らして検索高速化を行うこと
が可能となる。しかし、フォルスドロップ数を減少させ
るための方法とは独立であり、本発明の装置と共に用い
ることが可能である。
イル法の改良方式は多数提案されている。例えば、参考
文献4(Dik Lun Lee、Young Man
Kim、and Gaurav Patel:Eff
icient Signature File Met
hods for Text Retrieval、I
EEE Trans.on Knowledge an
d Data Eng.,Vol.7、No.3、19
95.)には、シグネチャを用いるいくつかの方式につ
いて、その方式と数学的な解析が記載されている。例え
ば、レコードに対するシグネチャを用いるだけではな
く、複数のシグネチャに対するシグネチャをも考えるこ
とで、検索を他段階に行う方式が提案されており、ディ
スク装置とのアクセスを減らして検索高速化を行うこと
が可能となる。しかし、フォルスドロップ数を減少させ
るための方法とは独立であり、本発明の装置と共に用い
ることが可能である。
【0025】
【発明が解決しようとする課題】以上説明したように、
従来のシグネチャを用いた情報検索システムでは、レコ
ード中に現れるキーワード数、各キーワードの出現頻度
のばらつきに応じたフォルスドロップには充分な対策が
講じられていなかった。
従来のシグネチャを用いた情報検索システムでは、レコ
ード中に現れるキーワード数、各キーワードの出現頻度
のばらつきに応じたフォルスドロップには充分な対策が
講じられていなかった。
【0026】そこで、本発明は、テキスト中のキーワー
ドの出現頻度に応じてシグネチャを用いた情報検索を行
う際のフォルスドロップの発生を抑制できるとともに、
記憶領域のオーバーヘッドを抑え、高速に前方一致検索
が行えるデータベース作成方法および情報検索方法およ
びそれを用いた情報検索装置を提供することを目的とす
る。
ドの出現頻度に応じてシグネチャを用いた情報検索を行
う際のフォルスドロップの発生を抑制できるとともに、
記憶領域のオーバーヘッドを抑え、高速に前方一致検索
が行えるデータベース作成方法および情報検索方法およ
びそれを用いた情報検索装置を提供することを目的とす
る。
【0027】
【課題を解決するための手段】本発明のデータベース作
成方法(請求項1)は、入力された情報中のキーワード
から部分文字列を切り出し、この切り出された部分文字
列のキーワード中での出現頻度に基づき前記部分文字列
に割り当てられた予め定められた長さのビット列を用い
て前記入力された情報に対する第1のシグネチャを生成
し、前記入力された情報を前記生成された第1のシグネ
チャと対応付けて記憶してデータベースを作成すること
により、例えばテキスト中のキーワードの出現頻度に応
じて、シグネチャを用いた情報検索を行う際のフォルス
ドロップの発生を抑制できるとともに、記憶領域のオー
バーヘッドを抑え、高速に前方一致検索が行える。
成方法(請求項1)は、入力された情報中のキーワード
から部分文字列を切り出し、この切り出された部分文字
列のキーワード中での出現頻度に基づき前記部分文字列
に割り当てられた予め定められた長さのビット列を用い
て前記入力された情報に対する第1のシグネチャを生成
し、前記入力された情報を前記生成された第1のシグネ
チャと対応付けて記憶してデータベースを作成すること
により、例えばテキスト中のキーワードの出現頻度に応
じて、シグネチャを用いた情報検索を行う際のフォルス
ドロップの発生を抑制できるとともに、記憶領域のオー
バーヘッドを抑え、高速に前方一致検索が行える。
【0028】本発明の情報検索方法(請求項2)は、情
報とそれに対応する第1のシグネチャとが対応付けられ
て記憶されたデータベースの検索方法であって、入力さ
れた検索情報中のキーワードから部分文字列を切り出
し、この切り出された各部分文字列についてその部分文
字列のキーワード中での出現頻度に基づいて予め割り当
てられたビット列を用いて前記検索情報に対応する第2
のシグネチャを生成し、この生成された第2のシグネチ
ャと前記データベース内の第1のシグネチャとを照合す
ることにより、前記検索情報に関連する情報を前記デー
タベースから検索することにより、例えばテキスト中の
キーワードの出現頻度に応じて、シグネチャを用いた情
報検索を行う際のフォルスドロップの発生を抑制できる
とともに、記憶領域のオーバーヘッドを抑え、高速に前
方一致検索が行える。
報とそれに対応する第1のシグネチャとが対応付けられ
て記憶されたデータベースの検索方法であって、入力さ
れた検索情報中のキーワードから部分文字列を切り出
し、この切り出された各部分文字列についてその部分文
字列のキーワード中での出現頻度に基づいて予め割り当
てられたビット列を用いて前記検索情報に対応する第2
のシグネチャを生成し、この生成された第2のシグネチ
ャと前記データベース内の第1のシグネチャとを照合す
ることにより、前記検索情報に関連する情報を前記デー
タベースから検索することにより、例えばテキスト中の
キーワードの出現頻度に応じて、シグネチャを用いた情
報検索を行う際のフォルスドロップの発生を抑制できる
とともに、記憶領域のオーバーヘッドを抑え、高速に前
方一致検索が行える。
【0029】本発明の情報検索方法(請求項3)は、入
力された情報中のキーワードから部分文字列を切り出
し、この切り出された部分文字列のキーワード中での出
現頻度に基づき前記部分文字列に割り当てられた予め定
められた長さのビット列を用いて前記入力された情報に
対する第1のシグネチャを生成し、前記入力された情報
を前記生成された第1のシグネチャと対応付けて記憶し
てデータベースを作成し、情報検索の際には、入力され
た検索情報中のキーワードから部分文字列を切り出し、
この切り出された各部分文字列についてその部分文字列
のキーワード中での出現頻度に基づいて予め割り当てら
れたビット列を用いて前記検索情報に対応する第2のシ
グネチャを生成し、この生成された第2のシグネチャと
前記データベース内の第1のシグネチャとを照合するこ
とにより、前記検索情報に関連する情報を前記データベ
ースから検索することにより、例えばテキスト中のキー
ワードの出現頻度に応じて、シグネチャを用いた情報検
索を行う際のフォルスドロップの発生を抑制できるとと
もに、記憶領域のオーバーヘッドを抑え、高速に前方一
致検索が行える。
力された情報中のキーワードから部分文字列を切り出
し、この切り出された部分文字列のキーワード中での出
現頻度に基づき前記部分文字列に割り当てられた予め定
められた長さのビット列を用いて前記入力された情報に
対する第1のシグネチャを生成し、前記入力された情報
を前記生成された第1のシグネチャと対応付けて記憶し
てデータベースを作成し、情報検索の際には、入力され
た検索情報中のキーワードから部分文字列を切り出し、
この切り出された各部分文字列についてその部分文字列
のキーワード中での出現頻度に基づいて予め割り当てら
れたビット列を用いて前記検索情報に対応する第2のシ
グネチャを生成し、この生成された第2のシグネチャと
前記データベース内の第1のシグネチャとを照合するこ
とにより、前記検索情報に関連する情報を前記データベ
ースから検索することにより、例えばテキスト中のキー
ワードの出現頻度に応じて、シグネチャを用いた情報検
索を行う際のフォルスドロップの発生を抑制できるとと
もに、記憶領域のオーバーヘッドを抑え、高速に前方一
致検索が行える。
【0030】本発明の情報検索装置(請求項4)は、入
力された情報中のキーワードから部分文字列を切り出す
切出手段と、この切り出し手段で切り出された部分文字
列の出現頻度に基づき前記部分文字列に予め定められた
長さのビット列を割り当てる割当手段と、前記部分文字
列に割り当てられたビット列を用いて前記入力された情
報に対する第1のシグネチャを生成する生成手段と、前
記入力された情報を前記生成手段で生成された第1のシ
グネチャと対応付けて記憶してデータベースを作成する
手段と、入力された検索情報中のキーワードから部分文
字列を切り出し、この切り出された各部分文字列につい
て前記生成手段で生成されたビット列を用いて、該検索
情報に対応する第2のシグネチャを生成し、この生成さ
れた第2のシグネチャと前記データベース内の第1のシ
グネチャとを照合することにより、前記検索情報に関連
する情報を前記データベースから検索する検索手段と、
を具備したことにより、例えばテキスト中のキーワード
の出現頻度に応じて、シグネチャを用いた情報検索を行
う際のフォルスドロップの発生を抑制できるとともに、
記憶領域のオーバーヘッドを抑え、高速に前方一致検索
が行える。
力された情報中のキーワードから部分文字列を切り出す
切出手段と、この切り出し手段で切り出された部分文字
列の出現頻度に基づき前記部分文字列に予め定められた
長さのビット列を割り当てる割当手段と、前記部分文字
列に割り当てられたビット列を用いて前記入力された情
報に対する第1のシグネチャを生成する生成手段と、前
記入力された情報を前記生成手段で生成された第1のシ
グネチャと対応付けて記憶してデータベースを作成する
手段と、入力された検索情報中のキーワードから部分文
字列を切り出し、この切り出された各部分文字列につい
て前記生成手段で生成されたビット列を用いて、該検索
情報に対応する第2のシグネチャを生成し、この生成さ
れた第2のシグネチャと前記データベース内の第1のシ
グネチャとを照合することにより、前記検索情報に関連
する情報を前記データベースから検索する検索手段と、
を具備したことにより、例えばテキスト中のキーワード
の出現頻度に応じて、シグネチャを用いた情報検索を行
う際のフォルスドロップの発生を抑制できるとともに、
記憶領域のオーバーヘッドを抑え、高速に前方一致検索
が行える。
【0031】
【発明の実施の形態】以下、本発明の実施形態について
図面を参照して説明する。図3は、本実施形態に係る情
報検索装置の構成例を示したものである。なお、図3に
おいて、実線は情報記憶時のデータの流れを示し、破線
は主に検索時のデータの流れを示している。
図面を参照して説明する。図3は、本実施形態に係る情
報検索装置の構成例を示したものである。なお、図3に
おいて、実線は情報記憶時のデータの流れを示し、破線
は主に検索時のデータの流れを示している。
【0032】まず、情報記憶時のデータの流れに沿っ
て、図3の各構成部について説明する。マスターデータ
ベース5は、個々のレコードの実データをその識別子と
ともに格納するためのものである。個々のレコードは、
テキスト形式の情報以外に図形情報や音声情報など計算
機で扱い得る様々な形式のデータを含んでいても良い。
マスターデータベース5の構造は、従来技術を用いて実
現される。本発明の情報検索装置に入力部1を介して入
力された情報をレコードとして蓄積する場合には、まず
このマスターデータベースにレコードの格納が行われ
る。
て、図3の各構成部について説明する。マスターデータ
ベース5は、個々のレコードの実データをその識別子と
ともに格納するためのものである。個々のレコードは、
テキスト形式の情報以外に図形情報や音声情報など計算
機で扱い得る様々な形式のデータを含んでいても良い。
マスターデータベース5の構造は、従来技術を用いて実
現される。本発明の情報検索装置に入力部1を介して入
力された情報をレコードとして蓄積する場合には、まず
このマスターデータベースにレコードの格納が行われ
る。
【0033】図4に、本実施形態の説明で用いる入力部
1を介して入力された情報、すなわち、レコードの一具
体例を示する。マスターデータベース5へのレコード格
納と並行して、キーワード切り出し部3では、例えば図
4に示すレコードのテキスト情報から図5に示すように
キーワードを抽出する。
1を介して入力された情報、すなわち、レコードの一具
体例を示する。マスターデータベース5へのレコード格
納と並行して、キーワード切り出し部3では、例えば図
4に示すレコードのテキスト情報から図5に示すように
キーワードを抽出する。
【0034】さらに、部分文字列切り出し部4では、図
5に示したような各キーワードのそれぞれを図6に示す
ように例えば2文字づつの部分文字列に分割する。図7
は、部分文字列切り出し部4における部分文字列切出処
理の手順の一例を示したフローチャートである。部分文
字列切り出し部4では、例えば、符号重み(ビット列中
の「1」となるビットの数)wを「5」、切り出す部分
文字列の長さkを「2」としている(ステップS1〜ス
テップS2)。キーワードの先頭(i=1)の文字から
順に2文字づつ、すなわち、1番目と2番目の文字、2
番目と3番目の文字、…5番目と6番目の文字というよ
うに、切り出す2文字の部分文字列の最初の文字の位置
がi=5となるまで部分文字列を切り出していき(ステ
ップS3〜ステップS7)、部分文字列「XX」とその
部分文字列の先頭の文字のキーワード中の出現位置(最
初から何文字目か)iの組み<XX、i>を出力してい
る(ステップS4)。
5に示したような各キーワードのそれぞれを図6に示す
ように例えば2文字づつの部分文字列に分割する。図7
は、部分文字列切り出し部4における部分文字列切出処
理の手順の一例を示したフローチャートである。部分文
字列切り出し部4では、例えば、符号重み(ビット列中
の「1」となるビットの数)wを「5」、切り出す部分
文字列の長さkを「2」としている(ステップS1〜ス
テップS2)。キーワードの先頭(i=1)の文字から
順に2文字づつ、すなわち、1番目と2番目の文字、2
番目と3番目の文字、…5番目と6番目の文字というよ
うに、切り出す2文字の部分文字列の最初の文字の位置
がi=5となるまで部分文字列を切り出していき(ステ
ップS3〜ステップS7)、部分文字列「XX」とその
部分文字列の先頭の文字のキーワード中の出現位置(最
初から何文字目か)iの組み<XX、i>を出力してい
る(ステップS4)。
【0035】例えば、キーワード「Objects」に
おいて、<Ob、1>は、部分文字列「Ob」が1番め
に出現することを、<bj、2>は部分文字列「bj」
が2番めに出現することを示している。
おいて、<Ob、1>は、部分文字列「Ob」が1番め
に出現することを、<bj、2>は部分文字列「bj」
が2番めに出現することを示している。
【0036】このようにして切り出された部分文字列
は、シグネチャ作成部9に与えられる。部分文字切り出
し部4では、さらに、部分文字列とその出現位置の組合
わせに対して、それがレコード中に出現する頻度を部分
文字列の統計情報として統計情報データベース7に格納
するようになっている。
は、シグネチャ作成部9に与えられる。部分文字切り出
し部4では、さらに、部分文字列とその出現位置の組合
わせに対して、それがレコード中に出現する頻度を部分
文字列の統計情報として統計情報データベース7に格納
するようになっている。
【0037】統計情報データベース7に格納された部分
文字列の統計情報データは、シグネチャ作成用データべ
ース更新部11で部分文字列のシグネチャを作成する際
に用いられる(後述)。
文字列の統計情報データは、シグネチャ作成用データべ
ース更新部11で部分文字列のシグネチャを作成する際
に用いられる(後述)。
【0038】シグネチャ作成部9は、キーワードから切
り出された部分文字列に基づきシグネチャ作成用データ
ベース6を参照して、キーワードのシグネチャおよびレ
コードのシグネチャを作成するものである。なお、ここ
では、例えば、部分文字列、キーワード、テキストのシ
グネチャを10ビットのビット列とする。
り出された部分文字列に基づきシグネチャ作成用データ
ベース6を参照して、キーワードのシグネチャおよびレ
コードのシグネチャを作成するものである。なお、ここ
では、例えば、部分文字列、キーワード、テキストのシ
グネチャを10ビットのビット列とする。
【0039】シグネチャ作成用データベース6は、各部
分文字列とその出現位置の組み合わせに対して、どのビ
ット位置を「1」にするか(すなわち、部分文字列とそ
の出現位置との組み合わせに対するシグネチャ)を定め
たテーブルを格納しているものである。
分文字列とその出現位置の組み合わせに対して、どのビ
ット位置を「1」にするか(すなわち、部分文字列とそ
の出現位置との組み合わせに対するシグネチャ)を定め
たテーブルを格納しているものである。
【0040】ここで、図8を参照して、シグネチャ作成
部9でキーワードのシグネチャを作成する手順を説明す
る。シグネチャ作成用データベース6には、部分文字列
切り出し部4で切り出された部分文字列とその出現位置
との組<xx、i>と、それに対応して予め定められた
10ビットのうちの「1」にするビット位置(すなわ
ち、部分文字列に対するシグネチャ)が対になって記憶
されている。例えば、図8に示すように、キーワード
「Objects」において、10ビットのビット列の
うち、<Ob、1>に対しては10ビット目、<bj、
2>に対しては3ビット目、<je、3>に対しては5
ビット目、<ec、4>に対しては7ビット目、<c
t、5>に対しては2ビット目が「1」となるようなシ
グネチャが割り当てられている。このように、キーワー
ドに対するシグネチャは、部分文字列とその出現位置と
に対し予め定められたシグネチャのビット毎の論理和を
とることで作成される。例えば、この場合、キーワード
「object」のシグネチャは「011010100
1」となる。
部9でキーワードのシグネチャを作成する手順を説明す
る。シグネチャ作成用データベース6には、部分文字列
切り出し部4で切り出された部分文字列とその出現位置
との組<xx、i>と、それに対応して予め定められた
10ビットのうちの「1」にするビット位置(すなわ
ち、部分文字列に対するシグネチャ)が対になって記憶
されている。例えば、図8に示すように、キーワード
「Objects」において、10ビットのビット列の
うち、<Ob、1>に対しては10ビット目、<bj、
2>に対しては3ビット目、<je、3>に対しては5
ビット目、<ec、4>に対しては7ビット目、<c
t、5>に対しては2ビット目が「1」となるようなシ
グネチャが割り当てられている。このように、キーワー
ドに対するシグネチャは、部分文字列とその出現位置と
に対し予め定められたシグネチャのビット毎の論理和を
とることで作成される。例えば、この場合、キーワード
「object」のシグネチャは「011010100
1」となる。
【0041】レコードのシグネチャは、レコード中の全
てのキーワードに対するシグネチャのビット毎の論理和
を取って作成する。シグネチャ作成部9で作成されたレ
コードのシグネチャは、シグネチャ格納データベース8
に蓄積される。例えば、先にマスターデータベース5に
格納されたレコードに付された識別子と同一の識別子と
組にしてそのシグネチャを格納する。
てのキーワードに対するシグネチャのビット毎の論理和
を取って作成する。シグネチャ作成部9で作成されたレ
コードのシグネチャは、シグネチャ格納データベース8
に蓄積される。例えば、先にマスターデータベース5に
格納されたレコードに付された識別子と同一の識別子と
組にしてそのシグネチャを格納する。
【0042】また、このときの格納方式としては、従来
技術(例えば参考文献4)を用いて、検索の高速化が可
能な方式とすることができる。なお、シグネチャ作成用
データベース6に格納されている部分文字列およびその
出現位置に対するシグネチャの割当方法は後述する。
技術(例えば参考文献4)を用いて、検索の高速化が可
能な方式とすることができる。なお、シグネチャ作成用
データベース6に格納されている部分文字列およびその
出現位置に対するシグネチャの割当方法は後述する。
【0043】次に、部分文字列の切り出しとシグネチャ
作成とについてさらに詳しく説明する。本発明の目的の
1つは、テキスト中のキーワードの出現頻度が偏ってい
るテキストデータベースにおいて、シグネチャによる検
索のフォルスドロップを減少させることであった。従来
技術においては、キーワードから乱数を利用してシグネ
チャを作成しようとしていたのだが、キーワード偏在に
よる影響を大きく受けるものであった。キーワードその
ものに対するデータベースを作成してシグネチャ作成を
統計的にコントロールしようとすると、膨大なキーワー
ドを格納する必要が生じる。中規模の辞書においても、
例えば講談社英和辞典では約9万語、旺文社英和中辞典
では約10万語の見出し語を持っているため、活用型や
技術専門用語を含めればキーワード単位でシグネチャ作
成をコントロールする方法は大きな記憶領域オーバーヘ
ッドを伴うことになり実用的ではない。また、検索時に
も膨大なキーワードを格納したデータベースをアクセス
することになるので、検索速度低下も問題となる。
作成とについてさらに詳しく説明する。本発明の目的の
1つは、テキスト中のキーワードの出現頻度が偏ってい
るテキストデータベースにおいて、シグネチャによる検
索のフォルスドロップを減少させることであった。従来
技術においては、キーワードから乱数を利用してシグネ
チャを作成しようとしていたのだが、キーワード偏在に
よる影響を大きく受けるものであった。キーワードその
ものに対するデータベースを作成してシグネチャ作成を
統計的にコントロールしようとすると、膨大なキーワー
ドを格納する必要が生じる。中規模の辞書においても、
例えば講談社英和辞典では約9万語、旺文社英和中辞典
では約10万語の見出し語を持っているため、活用型や
技術専門用語を含めればキーワード単位でシグネチャ作
成をコントロールする方法は大きな記憶領域オーバーヘ
ッドを伴うことになり実用的ではない。また、検索時に
も膨大なキーワードを格納したデータベースをアクセス
することになるので、検索速度低下も問題となる。
【0044】そこで、本発明では、キーワードから部分
文字を切り出し、その部分文字列に対するシグネチャを
作成するようになっている。部分文字列の可能な組み合
わせ数は、部分文字列の長さを短くとることで、その数
を自在に調整できるという事実に基づいている。例え
ば、文字種総数が「50」であるとすれば、長さ「2」
の部分文字列総数は「250」にしか過ぎない。部分文
字列の長さを幾つにするかという問題は、記憶領域のサ
イズを見ながら決定すれば良い。また、部分文字列その
ものだけではなく、本実施形態のように部分文字列がキ
ーワード中の何番めに出現するのかというような部分文
字列の出現位置の情報との組み合わせに対しシグネチャ
を作成するようにしてもよい。
文字を切り出し、その部分文字列に対するシグネチャを
作成するようになっている。部分文字列の可能な組み合
わせ数は、部分文字列の長さを短くとることで、その数
を自在に調整できるという事実に基づいている。例え
ば、文字種総数が「50」であるとすれば、長さ「2」
の部分文字列総数は「250」にしか過ぎない。部分文
字列の長さを幾つにするかという問題は、記憶領域のサ
イズを見ながら決定すれば良い。また、部分文字列その
ものだけではなく、本実施形態のように部分文字列がキ
ーワード中の何番めに出現するのかというような部分文
字列の出現位置の情報との組み合わせに対しシグネチャ
を作成するようにしてもよい。
【0045】本実施形態の場合には、長さ「2」の部分
文字列でその出現位置を考慮したものを採用している。
この場合、扱う文字種が「50」であり、出現位置とし
ては本実施形態の場合にはキーワードの先頭から5番目
までの部分文字列しか扱わない。従って、50・50・
5=12500種類の見出しを持つテーブルを用意すれ
ば十分である。従って、前方一致検索を行う際には記憶
領域のオーバーヘッドを小さく抑えることができるとい
う効果がある。
文字列でその出現位置を考慮したものを採用している。
この場合、扱う文字種が「50」であり、出現位置とし
ては本実施形態の場合にはキーワードの先頭から5番目
までの部分文字列しか扱わない。従って、50・50・
5=12500種類の見出しを持つテーブルを用意すれ
ば十分である。従って、前方一致検索を行う際には記憶
領域のオーバーヘッドを小さく抑えることができるとい
う効果がある。
【0046】なお、部分文字列に対するシグネチャのビ
ット長が長い程フォルスドロップの発生回数を抑えるこ
とができるが、逆に記憶領域が大きくなる。従って、シ
グネチャのビット長を決定する際には、これらを考慮し
て装置に最適な値を決定する必要がある。
ット長が長い程フォルスドロップの発生回数を抑えるこ
とができるが、逆に記憶領域が大きくなる。従って、シ
グネチャのビット長を決定する際には、これらを考慮し
て装置に最適な値を決定する必要がある。
【0047】次に、シグネチャ作成用データべース更新
部11について説明する。シグネチャ作成用データベー
ス更新部11では、統計情報データベース7に格納され
た部分文字列とその出現位置の組合わせの出現頻度(す
なわち、部分文字列のキーワード中での出現頻度、ある
いは、部分文字列の出現位置に関する頻度)の統計情報
データを参照して、部分文字列とその出現位置の組合わ
せに対するシグネチャ(具体的には、例えば10ビット
中のどのビット位置を「1」にするかを定めたもの)を
作成し、それを基に、シグネチャ作成用データベース
6、シグネチャ格納データベース8を更新するようにな
っている。
部11について説明する。シグネチャ作成用データベー
ス更新部11では、統計情報データベース7に格納され
た部分文字列とその出現位置の組合わせの出現頻度(す
なわち、部分文字列のキーワード中での出現頻度、ある
いは、部分文字列の出現位置に関する頻度)の統計情報
データを参照して、部分文字列とその出現位置の組合わ
せに対するシグネチャ(具体的には、例えば10ビット
中のどのビット位置を「1」にするかを定めたもの)を
作成し、それを基に、シグネチャ作成用データベース
6、シグネチャ格納データベース8を更新するようにな
っている。
【0048】部分文字列とその出現位置との組み合わせ
に対してビット位置を決める方法としては、各ビットが
「1」にセットされる確率が等しくなるようにするとい
う原則に従う。以下でその方法を説明する。
に対してビット位置を決める方法としては、各ビットが
「1」にセットされる確率が等しくなるようにするとい
う原則に従う。以下でその方法を説明する。
【0049】部分文字列とその出現位置に対するレコー
ド中の出現頻度の統計情報を従来技術を用いて容易に収
集することができる。例えば、部分文字列と出現位置を
見出しとするテーブルを作成し、部分文字列切り出し部
4からの出力が得られるたびに、出現回数を「1」つづ
つカウントアップすれば良い。このようにして計数され
た出現回数を部分文字列およびその出現位置の組み合わ
せについての統計情報データとして統計情報データベー
ス7に格納する。この統計情報データベース7の内容を
参照することにより、任意の時点における部分文字列の
キーワード中での出現頻度を直ちに計算することができ
る。
ド中の出現頻度の統計情報を従来技術を用いて容易に収
集することができる。例えば、部分文字列と出現位置を
見出しとするテーブルを作成し、部分文字列切り出し部
4からの出力が得られるたびに、出現回数を「1」つづ
つカウントアップすれば良い。このようにして計数され
た出現回数を部分文字列およびその出現位置の組み合わ
せについての統計情報データとして統計情報データベー
ス7に格納する。この統計情報データベース7の内容を
参照することにより、任意の時点における部分文字列の
キーワード中での出現頻度を直ちに計算することができ
る。
【0050】図9に示すフローチャートは、シグネチャ
作成用データベース更新部11における部分文字列のシ
グネチャ作成処理の手順の一例を示したもので、これに
従えば、ほぼ等確率で10ビット中の各ビットが「1」
となるように各部分文字列に対する10ビット中のビッ
ト位置を決定することができる。
作成用データベース更新部11における部分文字列のシ
グネチャ作成処理の手順の一例を示したもので、これに
従えば、ほぼ等確率で10ビット中の各ビットが「1」
となるように各部分文字列に対する10ビット中のビッ
ト位置を決定することができる。
【0051】図9のフローチャートにおいて、まず、1
0ビットのシグネチャの各ビット位置(i=1〜10)
について「1」となる確率p[i]を全て「0」に初期
化する(ステップS11〜ステップS13)。そして、
統計情報データベース7から、最も出現確率xの高い部
分文字列を選び(ステップS14)、その部分文字列に
対するシグネチャ10ビット中の「1」にするビット位
置を、その時点で、10ビットのシグネチャの各ビット
位置(i=1〜10)について「1」となる確率p
[i]が最も低いビット位置とする(ステップS15〜
ステップS16)。確率p[i]の値が最も低いビット
位置が複数存在する場合には、それらの中から任意のビ
ット位置を選んで良い。
0ビットのシグネチャの各ビット位置(i=1〜10)
について「1」となる確率p[i]を全て「0」に初期
化する(ステップS11〜ステップS13)。そして、
統計情報データベース7から、最も出現確率xの高い部
分文字列を選び(ステップS14)、その部分文字列に
対するシグネチャ10ビット中の「1」にするビット位
置を、その時点で、10ビットのシグネチャの各ビット
位置(i=1〜10)について「1」となる確率p
[i]が最も低いビット位置とする(ステップS15〜
ステップS16)。確率p[i]の値が最も低いビット
位置が複数存在する場合には、それらの中から任意のビ
ット位置を選んで良い。
【0052】そして、この割り当てられたシグネチャの
ビット位置jにおける「1」となる確率p[j]に、そ
の部分文字列の出現確率xを加算する(ステップS1
7)。次に、2番めの出現確率を持つ部分文字列を選
び、先と同様に、その部分文字列に対するシグネチャ1
0ビット中の「1」にするビット位置を、その時点で1
0ビットのシグネチャの各ビット位置(i=1〜10)
について「1」となる確率p[i]が最も低いビット位
置に割り当て、そのビット位置における「1」となる確
率p[j]に、その部分文字列の出現確率xを加算す
る。以下同様にして、部分文字列統計データベース7か
ら順次部分文字列を取り出し、それに対して、p[i]
の値が最も低いシグネチャのビット位置を割り当てて行
くということを、全ての部分文字列に対して繰り返し
(ステップS18)、その結果作成された新たなシグネ
チャをシグネチャ作成用データベース6に格納し、部分
文字列に対し割り当てられたシグネチャを更新する。
ビット位置jにおける「1」となる確率p[j]に、そ
の部分文字列の出現確率xを加算する(ステップS1
7)。次に、2番めの出現確率を持つ部分文字列を選
び、先と同様に、その部分文字列に対するシグネチャ1
0ビット中の「1」にするビット位置を、その時点で1
0ビットのシグネチャの各ビット位置(i=1〜10)
について「1」となる確率p[i]が最も低いビット位
置に割り当て、そのビット位置における「1」となる確
率p[j]に、その部分文字列の出現確率xを加算す
る。以下同様にして、部分文字列統計データベース7か
ら順次部分文字列を取り出し、それに対して、p[i]
の値が最も低いシグネチャのビット位置を割り当てて行
くということを、全ての部分文字列に対して繰り返し
(ステップS18)、その結果作成された新たなシグネ
チャをシグネチャ作成用データベース6に格納し、部分
文字列に対し割り当てられたシグネチャを更新する。
【0053】このようにして、各部分文字列ごとにシグ
ネチャの10ビットのうちの1ビットを「1」にする位
置を決定すれば良いのであるが、これを例えばユーザが
指定するタイミングで行うことにより、情報検索装置の
性能を自動的に向上させることができる。
ネチャの10ビットのうちの1ビットを「1」にする位
置を決定すれば良いのであるが、これを例えばユーザが
指定するタイミングで行うことにより、情報検索装置の
性能を自動的に向上させることができる。
【0054】汎用的な情報検索装置においては、どのよ
うなレコードデータが与えられるかを事前に予測するこ
とが困難である。従って、初期状態のシグネチャ作成用
データベース6としては、既存のものを用いて、シグネ
チャ作成部9にてシグネチャを作成することにする。こ
のときには、実際に入力部1を介して入力されるレコー
ドデータとは部分文字列の出現確率が異なるため、フォ
ルスドロップ率は大きくなる可能性がある。しかし、マ
スターデータベース5に格納されるデータが少量である
間は、たとえフォルスドロップが大きくても検索時間オ
ーバーヘッドが問題とはならない。
うなレコードデータが与えられるかを事前に予測するこ
とが困難である。従って、初期状態のシグネチャ作成用
データベース6としては、既存のものを用いて、シグネ
チャ作成部9にてシグネチャを作成することにする。こ
のときには、実際に入力部1を介して入力されるレコー
ドデータとは部分文字列の出現確率が異なるため、フォ
ルスドロップ率は大きくなる可能性がある。しかし、マ
スターデータベース5に格納されるデータが少量である
間は、たとえフォルスドロップが大きくても検索時間オ
ーバーヘッドが問題とはならない。
【0055】マスターデータベース5へのデータの追加
が継続されデータベースが大きくなるにつれ、フォルス
ドロップ数も増大するようになり検索速度低下が問題と
なり始める。そのとき、シグネチャ作成用データベース
更新部11で、それまでのデータ追加で統計情報データ
ベース7に収集された部分文字列の統計情報データを利
用して、図9に示したフローチャートに従って部分文字
列に対するシグネチャを作成し直し、シグネチャ作成用
データベース6を更新する。
が継続されデータベースが大きくなるにつれ、フォルス
ドロップ数も増大するようになり検索速度低下が問題と
なり始める。そのとき、シグネチャ作成用データベース
更新部11で、それまでのデータ追加で統計情報データ
ベース7に収集された部分文字列の統計情報データを利
用して、図9に示したフローチャートに従って部分文字
列に対するシグネチャを作成し直し、シグネチャ作成用
データベース6を更新する。
【0056】シグネチャ作成用データベース更新部11
は、シグネチャ作成用データベース6を更新すると、こ
の更新されたシグネチャ作成用データベース6を用い
て、それまでにシグネチャ格納データベース8に格納さ
れている全てのレコードのシグネチャをシグネチャ作成
部9の説明と同様にして作成し直す。シグネチャ格納デ
ータベース8では、作成し直されたシグネチャは、古い
シグネチャと置き換えられるため、この手続きによりシ
グネチャ格納データベース8のサイズが増加することは
ない。
は、シグネチャ作成用データベース6を更新すると、こ
の更新されたシグネチャ作成用データベース6を用い
て、それまでにシグネチャ格納データベース8に格納さ
れている全てのレコードのシグネチャをシグネチャ作成
部9の説明と同様にして作成し直す。シグネチャ格納デ
ータベース8では、作成し直されたシグネチャは、古い
シグネチャと置き換えられるため、この手続きによりシ
グネチャ格納データベース8のサイズが増加することは
ない。
【0057】次に、情報検索時のデータの流れに沿って
図3の各構成部について説明する。入力部1を介して入
力された検索指示要求に含まれる検索情報から、質問式
処理部2で検索条件となり得るテキスト情報が抽出され
る。
図3の各構成部について説明する。入力部1を介して入
力された検索指示要求に含まれる検索情報から、質問式
処理部2で検索条件となり得るテキスト情報が抽出され
る。
【0058】質問式処理部2は、検索条件となり得るテ
キスト情報を含む検索情報を入力部1を介して入力する
ようユーザとの対話形式にてユーザに促すようになって
いる。
キスト情報を含む検索情報を入力部1を介して入力する
ようユーザとの対話形式にてユーザに促すようになって
いる。
【0059】質問式処理部2で抽出された、検索条件と
してのテキスト情報はキーワード切り出し部3、続いて
部分文字列切り出し部4に入力され、情報記憶時の場合
と同様、キーワードの切り出し、部分文字列の切り出し
が行われる。
してのテキスト情報はキーワード切り出し部3、続いて
部分文字列切り出し部4に入力され、情報記憶時の場合
と同様、キーワードの切り出し、部分文字列の切り出し
が行われる。
【0060】シグネチャ作成部9では、情報記憶時の場
合に用いたのと同じシグネチャ作成用データベース6を
用いて、与えられた検索条件としてのテキスト情報中の
キーワードの部分文字列に対するシグネチャの作成を行
う。
合に用いたのと同じシグネチャ作成用データベース6を
用いて、与えられた検索条件としてのテキスト情報中の
キーワードの部分文字列に対するシグネチャの作成を行
う。
【0061】次に、シグネチャ比較装置10では、シグ
ネチャ作成部9で作成された検索条件のシグネチャとシ
グネチャ格納データベース8に格納されているシグネチ
ャとを比較し、双方の一致するレコードが存在する場合
は、そのレコードの識別子を読み出して、2次検索部1
2に転送する。
ネチャ作成部9で作成された検索条件のシグネチャとシ
グネチャ格納データベース8に格納されているシグネチ
ャとを比較し、双方の一致するレコードが存在する場合
は、そのレコードの識別子を読み出して、2次検索部1
2に転送する。
【0062】2次検索部12は、レコードの識別子をキ
ーとしてマスターデータベース5からレコードの実デー
タを取り出し、フォルスドロップ除去を行った後、出力
部13を介して出力する。
ーとしてマスターデータベース5からレコードの実デー
タを取り出し、フォルスドロップ除去を行った後、出力
部13を介して出力する。
【0063】出力部13は、例えば、プリンタ装置、デ
ィスプレイ装置、スピーカ装置等から構成されている。
以上説明したように、上記実施形態によれば、部分文字
列切り出し部4で入力された情報(レコード)中のキー
ワードを部分文字列に分割し、その際、その部分文字列
のキーワード中での出現頻度を計数して統計情報データ
ベース7に格納しておく。シグネチャ作成部7におい
て、シグネチャ作成用データベースに格納されている該
部分文字列に割り当てられたビット列(部分文字列のシ
グネチャ)に基づき前記入力された情報に対するビット
列(シグネチャ)を生成したら、そのビット列を前記入
力された情報に対応付けて、それぞれシグネチャ格納デ
ータベース8、マスターデータベース5に記憶する。情
報検索の際には、シグネチャ作成部9で、入力部1を介
して入力された検索情報に対するビット列を生成して、
それとシグネチャ格納データベース8に記憶されたビッ
ト列とを照合して情報を検索する。シグネチャ作成用デ
ータベース更新部11は、統計情報データベース7に格
納されている前記部分文字列のキーワード中での出現頻
度に基づき該部分文字列に予め定められた長さのビット
列を割り当て、それに伴いシグネチャ格納データベース
8に格納されているシグネチャを更新することにより、
一般的なキーワード出現頻度とは異なる特殊なキーワー
ド出現頻度を持つテキストデータベースに対しても、テ
キスト中に現れるキーワード数、各キーワードの出現頻
度のばらつきに応じてフォルスドロップの発生を抑制で
きる。また、キーワード中の部分文字列(例えば2文
字)とそのキーワード中の出現位置との組み合わせに対
し、シグネチャを割り当てるので前方一致検索を行う際
には記憶領域のオーバーヘッドを押さえることができ、
高速な情報検索が行える。
ィスプレイ装置、スピーカ装置等から構成されている。
以上説明したように、上記実施形態によれば、部分文字
列切り出し部4で入力された情報(レコード)中のキー
ワードを部分文字列に分割し、その際、その部分文字列
のキーワード中での出現頻度を計数して統計情報データ
ベース7に格納しておく。シグネチャ作成部7におい
て、シグネチャ作成用データベースに格納されている該
部分文字列に割り当てられたビット列(部分文字列のシ
グネチャ)に基づき前記入力された情報に対するビット
列(シグネチャ)を生成したら、そのビット列を前記入
力された情報に対応付けて、それぞれシグネチャ格納デ
ータベース8、マスターデータベース5に記憶する。情
報検索の際には、シグネチャ作成部9で、入力部1を介
して入力された検索情報に対するビット列を生成して、
それとシグネチャ格納データベース8に記憶されたビッ
ト列とを照合して情報を検索する。シグネチャ作成用デ
ータベース更新部11は、統計情報データベース7に格
納されている前記部分文字列のキーワード中での出現頻
度に基づき該部分文字列に予め定められた長さのビット
列を割り当て、それに伴いシグネチャ格納データベース
8に格納されているシグネチャを更新することにより、
一般的なキーワード出現頻度とは異なる特殊なキーワー
ド出現頻度を持つテキストデータベースに対しても、テ
キスト中に現れるキーワード数、各キーワードの出現頻
度のばらつきに応じてフォルスドロップの発生を抑制で
きる。また、キーワード中の部分文字列(例えば2文
字)とそのキーワード中の出現位置との組み合わせに対
し、シグネチャを割り当てるので前方一致検索を行う際
には記憶領域のオーバーヘッドを押さえることができ、
高速な情報検索が行える。
【0064】なお、上記実施形態で説明した質問式処理
部2、キーワード切り出し部3、部分文字列切り出し部
4、シグネチャ作成部9、シグネチャ比較部10、シグ
ネチャ作成用データベース更新部11、2次検索部12
の処理動作は、コンピュータに実行させることのできる
プログラムとして磁気ディスク(フロッピーディスク、
ハードディスク等)、光ディスク(CD−ROM、DV
D等)、半導体メモリなどの記録媒体に格納して頒布す
ることもできる。
部2、キーワード切り出し部3、部分文字列切り出し部
4、シグネチャ作成部9、シグネチャ比較部10、シグ
ネチャ作成用データベース更新部11、2次検索部12
の処理動作は、コンピュータに実行させることのできる
プログラムとして磁気ディスク(フロッピーディスク、
ハードディスク等)、光ディスク(CD−ROM、DV
D等)、半導体メモリなどの記録媒体に格納して頒布す
ることもできる。
【0065】
【発明の効果】以上説明したように、本発明によれば、
テキスト中のキーワードの出現頻度に応じて、シグネチ
ャを用いた情報検索を行う際のフォルスドロップの発生
を抑制でき、記憶領域のオーバーヘッドを抑え、高速に
前方一致検索が行える。
テキスト中のキーワードの出現頻度に応じて、シグネチ
ャを用いた情報検索を行う際のフォルスドロップの発生
を抑制でき、記憶領域のオーバーヘッドを抑え、高速に
前方一致検索が行える。
【図1】情報検索にシグネチャについて説明するための
図。
図。
【図2】シグネチャを用いた情報検索方法について説明
するための図。
するための図。
【図3】本発明の実施形態に係る情報検索装置の構成例
を示した図。
を示した図。
【図4】レコードデータの一具体例を示した図。
【図5】図4のレコードから切り出されたキーワードの
一例を示した図。
一例を示した図。
【図6】図5のキーワードから切り出された部分文字列
の一例を示した図。
の一例を示した図。
【図7】図3の部分文字切り出し部の処理動作について
説明するためのフローチャート。
説明するためのフローチャート。
【図8】図3のシグネチャ作成部でキーワードのシグネ
チャを作成する手順を説明するための図。
チャを作成する手順を説明するための図。
【図9】図3のシグネチャ作成用データベース更新部の
処理動作を説明するためのフローチャート。
処理動作を説明するためのフローチャート。
1…入力部 2…質問式処理部 3…キーワード切り出し部 4…部分文字列切り出し部 5…マスターデータベース 6…シグネチャ作成用データベース 7…統計情報データベース 8…シグネチャ格納データベース 9…シグネチャ作成部 10…シグネチャ比較部 11…シグネチャ作成用データベース更新部 12…2次検索部 13…出力部
Claims (6)
- 【請求項1】 入力された情報中のキーワードから部分
文字列を切り出し、この切り出された部分文字列のキー
ワード中での出現頻度に基づき前記部分文字列に割り当
てられた予め定められた長さのビット列を用いて前記入
力された情報に対する第1のシグネチャを生成し、前記
入力された情報を前記生成された第1のシグネチャと対
応付けて記憶してデータベースを作成することを特徴と
するデータベース作成方法。 - 【請求項2】 情報とそれに対応する第1のシグネチャ
とが対応付けられて記憶されたデータベースの検索方法
であって、 入力された検索情報中のキーワードから部分文字列を切
り出し、この切り出された各部分文字列についてその部
分文字列のキーワード中での出現頻度に基づいて予め割
り当てられたビット列を用いて前記検索情報に対応する
第2のシグネチャを生成し、この生成された第2のシグ
ネチャと前記データベース内の第1のシグネチャとを照
合することにより、前記検索情報に関連する情報を前記
データベースから検索することを特徴とする情報検索方
法。 - 【請求項3】 入力された情報中のキーワードから部分
文字列を切り出し、この切り出された部分文字列のキー
ワード中での出現頻度に基づき前記部分文字列に割り当
てられた予め定められた長さのビット列を用いて前記入
力された情報に対する第1のシグネチャを生成し、前記
入力された情報を前記生成された第1のシグネチャと対
応付けて記憶してデータベースを作成し、情報検索の際
には、入力された検索情報中のキーワードから部分文字
列を切り出し、この切り出された各部分文字列について
その部分文字列のキーワード中での出現頻度に基づいて
予め割り当てられたビット列を用いて前記検索情報に対
応する第2のシグネチャを生成し、この生成された第2
のシグネチャと前記データベース内の第1のシグネチャ
とを照合することにより、前記検索情報に関連する情報
を前記データベースから検索することを特徴とする情報
検索方法。 - 【請求項4】 入力された情報中のキーワードから部分
文字列を切り出す切出手段と、 この切り出し手段で切り出された部分文字列の出現頻度
に基づき前記部分文字列に予め定められた長さのビット
列を割り当てる割当手段と、 前記部分文字列に割り当てられたビット列を用いて前記
入力された情報に対する第1のシグネチャを生成する生
成手段と、 前記入力された情報を前記生成手段で生成された第1の
シグネチャと対応付けて記憶してデータベースを作成す
る手段と、 入力された検索情報中のキーワードから部分文字列を切
り出し、この切り出された各部分文字列について前記生
成手段で生成されたビット列を用いて、該検索情報に対
応する第2のシグネチャを生成し、この生成された第2
のシグネチャと前記データベース内の第1のシグネチャ
とを照合することにより、前記検索情報に関連する情報
を前記データベースから検索する検索手段と、 を具備したことを特徴とする情報検索装置。 - 【請求項5】 入力された情報中のキーワードから部分
文字列を切り出す切出手段と、 この切り出し手段で切り出された部分文字列の出現頻度
に基づき前記部分文字列に予め定められた長さのビット
列を割り当てる割当手段と、 前記部分文字列に割り当てられたビット列を用いて前記
入力された情報に対する第1のシグネチャを生成する生
成手段と、 前記入力された情報を前記生成手段で生成された第1の
シグネチャと対応付けて記憶してデータベースを作成す
る手段と、 を実行するプログラムを記録した機械読み取り可能な記
録媒体。 - 【請求項6】 入力された情報中のキーワードから部分
文字列を切り出す切出手段と、 この切り出し手段で切り出された部分文字列の出現頻度
に基づき前記部分文字列に予め定められた長さのビット
列を割り当てる割当手段と、 前記部分文字列に割り当てられたビット列を用いて前記
入力された情報に対する第1のシグネチャを生成する生
成手段と、 前記入力された情報を前記生成手段で生成された第1の
シグネチャと対応付けて記憶してデータベースを作成す
る手段と、 入力された検索情報中のキーワードから部分文字列を切
り出し、この切り出された各部分文字列について前記生
成手段で生成されたビット列を用いて、該検索情報に対
応する第2のシグネチャを生成し、この生成された第2
のシグネチャと前記データベース内の第1のシグネチャ
とを照合することにより、前記検索情報に関連する情報
を前記データベースから検索する検索手段と、 を実行するプログラムを記録した機械読み取り可能な記
録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9252354A JPH1196170A (ja) | 1997-09-17 | 1997-09-17 | データベース作成方法および情報検索方法および情報検索装置および記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9252354A JPH1196170A (ja) | 1997-09-17 | 1997-09-17 | データベース作成方法および情報検索方法および情報検索装置および記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1196170A true JPH1196170A (ja) | 1999-04-09 |
Family
ID=17236132
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9252354A Pending JPH1196170A (ja) | 1997-09-17 | 1997-09-17 | データベース作成方法および情報検索方法および情報検索装置および記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1196170A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100319761B1 (ko) * | 2000-01-21 | 2002-01-05 | 오길록 | 시그니처 파일을 이용한 데이터베이스 검색시스템에서의프레임 분할 병렬 처리 방법 |
| JP2010267108A (ja) * | 2009-05-15 | 2010-11-25 | Nippon Telegr & Teleph Corp <Ntt> | 類似文書を検出するための文書署名生成装置、文書署名生成方法、文書署名生成プログラム |
| CN102893265A (zh) * | 2010-03-10 | 2013-01-23 | 起元技术有限责任公司 | 管理可独立访问的数据单元的存储 |
| US8949189B2 (en) | 2006-11-01 | 2015-02-03 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
| US9811570B2 (en) | 2011-07-08 | 2017-11-07 | Ab Initio Technology Llc | Managing storage of data for range-based searching |
-
1997
- 1997-09-17 JP JP9252354A patent/JPH1196170A/ja active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100319761B1 (ko) * | 2000-01-21 | 2002-01-05 | 오길록 | 시그니처 파일을 이용한 데이터베이스 검색시스템에서의프레임 분할 병렬 처리 방법 |
| US8949189B2 (en) | 2006-11-01 | 2015-02-03 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
| JP2010267108A (ja) * | 2009-05-15 | 2010-11-25 | Nippon Telegr & Teleph Corp <Ntt> | 類似文書を検出するための文書署名生成装置、文書署名生成方法、文書署名生成プログラム |
| CN102893265A (zh) * | 2010-03-10 | 2013-01-23 | 起元技术有限责任公司 | 管理可独立访问的数据单元的存储 |
| JP2013522715A (ja) * | 2010-03-10 | 2013-06-13 | アビニシオ テクノロジー エルエルシー | 個別にアクセス可能なデータ単位の記憶の管理 |
| US9811570B2 (en) | 2011-07-08 | 2017-11-07 | Ab Initio Technology Llc | Managing storage of data for range-based searching |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9619565B1 (en) | Generating content snippets using a tokenspace repository | |
| US7275029B1 (en) | System and method for joint optimization of language model performance and size | |
| US9424294B2 (en) | Method for facet searching and search suggestions | |
| Gao et al. | Toward a unified approach to statistical language modeling for Chinese | |
| US8781817B2 (en) | Phrase based document clustering with automatic phrase extraction | |
| US8407239B2 (en) | Multi-stage query processing system and method for use with tokenspace repository | |
| US7739220B2 (en) | Context snippet generation for book search system | |
| US8661012B1 (en) | Ensuring that a synonym for a query phrase does not drop information present in the query phrase | |
| US7509313B2 (en) | System and method for processing a query | |
| US20130132410A1 (en) | Systems And Methods For Identifying Potential Duplicate Entries In A Database | |
| JP2002520712A (ja) | データ検索システムと方法およびサーチ・エンジンにおけるその使用 | |
| US8266150B1 (en) | Scalable document signature search engine | |
| CN112115232A (zh) | 一种数据纠错方法、装置及服务器 | |
| WO2012151255A1 (en) | Statistical spell checker | |
| CN114385777A (zh) | 文本数据处理方法、装置、计算机设备和存储介质 | |
| US9223833B2 (en) | Method for in-loop human validation of disambiguated features | |
| JP2021157282A (ja) | ラベル付与モデル生成装置、及びラベル付与モデル生成方法 | |
| JP3081093B2 (ja) | 索引作成方法およびその装置と文書検索装置 | |
| JP2002183194A (ja) | 検索式生成装置およびその方法 | |
| JP4091586B2 (ja) | 構造化文書管理システム、索引構築方法及びプログラム | |
| KR20060043583A (ko) | 언어 데이터의 로그의 압축 방법 및 시스템 | |
| JPH10177575A (ja) | 語句抽出装置および方法、情報記憶媒体 | |
| US20050102278A1 (en) | Expanded search keywords | |
| JPH07325837A (ja) | 抽象単語による通信文検索装置及び抽象単語による通信文検索方法 | |
| Cambazoglu et al. | The Indexing System |