JP4734400B2 - 文書検索装置およびプログラム - Google Patents

文書検索装置およびプログラム Download PDF

Info

Publication number
JP4734400B2
JP4734400B2 JP2008322555A JP2008322555A JP4734400B2 JP 4734400 B2 JP4734400 B2 JP 4734400B2 JP 2008322555 A JP2008322555 A JP 2008322555A JP 2008322555 A JP2008322555 A JP 2008322555A JP 4734400 B2 JP4734400 B2 JP 4734400B2
Authority
JP
Japan
Prior art keywords
character string
partial character
information
document
index
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.)
Expired - Fee Related
Application number
JP2008322555A
Other languages
English (en)
Other versions
JP2010146273A (ja
Inventor
正道 楯岡
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008322555A priority Critical patent/JP4734400B2/ja
Publication of JP2010146273A publication Critical patent/JP2010146273A/ja
Application granted granted Critical
Publication of JP4734400B2 publication Critical patent/JP4734400B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、検索対象の文字列を含む文書を検索する文書検索装置およびプログラムに関する。
大規模な文書データベースから指定された検索文字列が含まれる文書を高速に探し出す方式として、転置索引方式が知られている。
転置索引方式とは、文書の登録時に文書から所定の部分文字列を抽出し、各々の部分文字列を、文書を識別する文書識別情報(文書番号など)を含む部分文字列出現情報を備えるインデクスとして格納しておき、検索時には検索文字列を所定の部分文字列に区切り、各部分文字列に対応するインデクスを読み出し、当該部分文字列を含む文書を識別する文書識別情報を抽出することによって、当該検索文字列を含む文書を探し出す方式である。
文書から部分文字列を抽出するに当たっては、文書の文字列を辞書を使って形態素(意味を持つ最小の単位)に分解する形態素解析により個々の形態素を取り出す方法や、文書の文字列をN文字ごとのN−gramと呼ばれる部分文字列に区切って個々のN−gramを取り出す方法が知られている。
以下に、N−gram(N=2)を用いた転置索引の例について説明する。
図9に示されるように、文書データベースには、文書番号1で識別される文書の文字列「abracadabra」と、文書番号2で識別される文書の文字列「academia」とが登録されるものとする。また、図10に示されるように、検索文字列として「braca」が入力されるものとする。
文書の登録時には、図11に示されるように、文書中の全てのN−gram、即ち、部分文字列「a○」、「ab」、「ac」、「ad」、「br」、「ca」、「da」、「de」、「em」、「ia」、「mi」、「ra」をそれぞれインデクスとする索引情報を登録する。なお、「a○」は、「a」一文字で文書の終端に達していることを示す。索引情報の中において、個々のインデクスはレコードとして少なくとも1つの部分文字列出現情報を備え、個々の部分文字列出現情報は、当該部分文字列を含む文書の文書番号と、その文書の中での当該部分文字列の出現場所を示す情報とを含んでいる。
検索時には、指定された検索文字列をN−gramである部分文字列に区切り、それぞれの部分文字列に対応するインデクスから部分文字列出現情報を読み出す。次に、読み出された個々の部分文字列情報に共通して含まれる文書番号を抽出することにより、当該検索文字列を含む文書を探し出す。なお、指定された検索文字列が複数の部分文字列から成る場合においては、部分文字列出現情報間で出現位置情報の隣接判定を行うことにより、より正確に当該検索文字列を含む文書を探し出すことができる。
例えば、「braca」という文字列を含む文書を検索したい場合、当該検索文字列は、「br」、「ac」、「ca」という三つの部分文字列に分割される(もし、検索文字列の終端で一文字だけ残ってしまった場合には、先行する部分文字列と一文字重なる部分文字列を用いる)。
次に、それぞれの部分文字列に対応するインデクスを読み出す。この場合、「br」に対応するインデクスには、[文書番号=1、出現場所=2]と[文書番号=1、出現場所=9]の二つの部分文字列出現情報が備えられ、「ac」に対応するインデクスには、[文書番号=1、出現場所=4]と[文書番号=2、出現場所=1]の二つの部分文字列出現情報が備えられ、「ca」に対応するインデクスには、[文書番号=1、出現場所=5]と[文書番号=2、出現場所=2]の二つの部分文字列出現情報が備えられている。
これを付き合わせると、[文書番号=1、出現場所=2]に「br」があり、「文書番号=1、出現場所=4」に「ac」があり、「文書番号=1、出現場所=5」に「ca」があることから、文書番号1の2文字目から「braca」という文字列が含まれていることがわかる。これにより、「braca」を含む文書は、文書番号1の文書であるという結果が得られる。
以上のように、転置索引方式は、文書全体を走査することなしに、インデクスの読込みと出現位置情報の隣接判定だけで検索が行えるため、大規模な文書データベースに適用した場合においても高速なフルテキストサーチを実現できる可能性がある。
しかしながら、大規模な文書データベースに転置索引方式を適用した場合、文書データベースに登録された文書に含まれる部分文字列の数は膨大なものとなり、それに従い、個々のインデクスの容量も大きくなる。
また、従来の文書検索装置では、検索文字列を所定の部分文字列に分割した後、それぞれの部分文字列に対応するインデクスを全て読み出し、隣接判定を行わなければならない。前述した例では、「br」に対応するインデクス、「ac」に対応するインデクス、「ca」に対応するインデクスを全て読み出す必要がある。このため、検索文字列を所定の部分文字列に区切り、対応するインデクスを読み出す際に、全ての部分文字列に対応する部分文字列出現情報を読み出すのにかなりの時間を要し、検索に時間がかかる。
また、読み出した部分文字列出現情報から、共通の文書識別情報を抽出する作業や、出現位置情報による隣接判定の回数も増えるため、やはり検索に時間がかかる。
特に、検索文字列の長さが、所定の部分文字列に対して長い場合、対応するインデクスも多くなり、部分文字列出現情報の読み出しや、共通の文書識別情報の抽出、出現位置情報による隣接判定にかかる時間が増え、検索時間が長くなってしまう。
本発明は上記実情に鑑みてなされたものであり、文書データベースが大規模で、また、検索文字列の長さが所定の部分文字列に対して長い場合であっても、文書検索を高速に行うことができる文書検索装置を提供することを目的とする。
本発明の一態様による文書検索装置は、記憶媒体に記憶される複数の文書の中から、入力装置を通じて指定される検索文字列を含む文書を検索する文書検索装置であって、前記複数の文書に含まれる個々の部分文字列をそれぞれインデクスとし、個々のインデクスはレコードとして少なくとも1つの部分文字列出現情報を備え、個々の部分文字列出現情報は、少なくとも当該部分文字列を含む文書内での当該部分文字列に後続する部分文字列、および、当該後続する部分文字列に対応するインデクスのレコードにおける抽出すべき部分文字列出現情報の配置位置を指定するものであり、個々の部分文字列出現情報の少なくとも一部が文書を識別するための文書識別情報を含んでいる、索引情報を記憶する索引情報記憶手段と、入力装置を通じて指定される検索文字列を複数の部分文字列に区切る部分文字列区切手段と、区切られた検索文字列の先頭に位置する部分文字列に対応する前記索引情報内のインデクスのレコードから全ての部分文字列出現情報を読み出す手段と、読み出された全ての部分文字列出現情報のうち、指定されている後続の部分文字列が前記検索文字列の中の後続する部分文字列に合致するものがある場合に、該当する部分文字列出現情報を抽出する手段と、抽出された部分文字列出現情報に指定されている後続の部分文字列に対応する前記索引情報内のインデクスのレコードから、当該抽出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出す手段と、読み出された部分文字列出現情報に指定されている後続の部分文字列が前記検索文字列の中の後続する部分文字列に合致する場合に、当該読み出された部分文字列出現情報に指定されている後続の部分文字列に対応する前記索引情報内のインデクスのレコードから、当該読み出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出すという処理を繰り返す手段と、前記繰り返しの処理において読み出される部分文字列出現情報に指定されている後続の部分文字列が、前記検索文字列の中の終端に位置する部分文字列に合致した時点で、個々の部分文字列出現情報のいずれかの読み出しにおいて得られた文書識別情報を出力する手段とを具備することを特徴とする。
本発明によれば、文書データベースが大規模で、また、検索文字列の長さが所定の部分文字列に対して長い場合であっても、文書検索を高速に行えるようにすることができる。
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の一実施形態に係る文書検索装置の構成の一例を示す図である。
本実施形態に係る文書検索装置は、部分文字列として、N−gram(N=2)を用いた転置索引により検索を行うものである。この文書検索装置は、例えばコンピュータであり、記憶部1、メモリ2、制御部3、入力部4、表示部5などを備えている。
記憶部1は、例えばハードディスクなどの不揮発性の情報記憶媒体であり、文書の検索を行うための文書検索プログラム、文書の復元を行うための文書復元プログラム、文書の検索に使用する索引情報、文書の復元に使用する文書復元用情報、各種の文書を含む文書データベースなどを格納している。
メモリ2は、例えばRAMなどの揮発性の情報記憶媒体であり、制御部3により記憶部1からロードされる各種の情報を保持する。
制御部3は、例えばCPUなどのプロセッサであり、文書検索プログラムや文書復元プログラムを実行するものである。
入力部4は、例えばキーボードやマウスなどの入力装置であり、文書検索の際に検索文字列を入力したり、文書復元の際に文書番号を入力したりするものである。
表示部5は、例えばLCDなどの表示装置であり、文書検索の際に検索文字列の入力を促す画面、文書検索の結果を示す画面、文書復元の際に文書番号を入力を促す画面、文書復元の結果を示す画面などを表示するものである。
文書の検索を行う際には、メモリ2上に、索引情報記憶領域11、検索文字列記憶領域12、および検索作業領域13が形成される。
索引情報記憶領域11には、文書の検索に使用する索引情報11Aが記憶される。索引情報11Aは、文書データベースの各文書に含まれる個々の部分文字列をそれぞれインデクスとする転置索引の情報である。個々のインデクスはレコードとして少なくとも1つの部分文字列出現情報を備えている。個々の部分文字列出現情報は、少なくとも特定の文書内での当該部分文字列に後続する部分文字列、および、当該後続する部分文字列に対応するインデクスのレコードにおける抽出すべき部分文字列出現情報の配置位置を示す情報を含んでいる。また、個々の部分文字列出現情報の少なくとも一部は、文書を識別するための文書識別情報である文書番号を含んでいる。
検索文字列記憶領域12には、文書を検索するために入力部1から入力された検索文字列が記憶される。検索文字列は、制御部3により複数の部分文字列、例えばN文字ごとのN−gram(N=2)に区切られる。
検索作業領域13には、文書の検索作業において索引情報11A内から順次読み出される部分文字列出現情報が記憶されると共に、当該部分文字列出現情報から得られる文書番号が記憶される。検索作業領域13に記憶された文書番号は、検索処理が検索文字列の終端にまで達した時点で、検索対象の文書を確定するために使用される。なお、検索作業領域13に記憶される部分文字列出現情報は、新たな部分文字列出現情報が読み出されるたびに上書きされてもよい。
また、文書の復元を行う際には、メモリ2上に、さらに復元用情報記憶領域14および復元作業領域15が形成される。
復元用情報記憶領域14には、文書の復元に使用する文書復元用情報14Aが記憶される。文書復元用情報14Aは、文書の文書番号毎に、レコードとして、当該文書の先頭に位置する部分文字列、および、当該部分文字列に対応する索引情報11A内のインデクスのレコードにおける抽出すべき部分文字列出現情報の配置位置が指定された先頭情報を有する。
復元作業領域15には、復元対象となる文書の文書番号が記憶されると共に、文書の復元作業において文書復元情報内から読み出される当該文書の先頭に位置する部分文字列をはじめ、索引情報11A内から順次読み出される部分文字列出現情報から得られる部分文字列が順次記憶される。
制御部3により実行される文書検索プログラムは、記憶部1から索引情報11Aを取り出してメモリ2の索引情報記憶領域11に記憶させる機能と、入力部4を通じて指定される検索文字列を、検索文字領域12に記憶させ、複数の部分文字列に区切る機能と、区切られた検索文字列の先頭に位置する部分文字列に対応する索引情報11A内のインデクスのレコードから全ての部分文字列出現情報を読み出して検索作業領域13に記憶させる機能と、読み出された全ての部分文字列出現情報のうち、指定されている後続の部分文字列が前記検索文字列の中の後続する部分文字列に合致するものがある場合に、該当する部分文字列出現情報を抽出する機能と、抽出された部分文字列出現情報に指定されている後続の部分文字列に対応する索引情報11A内のインデクスのレコードから、当該抽出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出して検索作業領域13に記憶させる機能と、読み出された部分文字列出現情報に指定されている後続の部分文字列が前記検索文字列の中の後続する部分文字列に合致する場合に、当該読み出された部分文字列出現情報に指定されている後続の部分文字列に対応する索引情報11A内のインデクスのレコードから、当該読み出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出して検索作業領域13に記憶させるという処理を繰り返す機能と、前記繰り返しの処理において読み出される部分文字列出現情報に指定されている後続の部分文字列が、前記検索文字列の中の終端に位置する部分文字列に合致した時点で、個々の部分文字列出現情報のいずれかの読み出しにおいて得られた文書番号(および対応する文書の内容もしくはその一部)を表示部5に出力する機能とを実現させる。
また、制御部3により実行される文書復元プログラムは、記憶部1から文書復元用情報14Aを取り出してメモリ2の復元用情報記憶領域14に記憶させる機能と、入力部4を通じて指定される文書番号もしくは前記出力する機能から出力される文書番号に対応する先頭情報を、文書復元用情報14A内のレコードから読み出す機能と、読み出された先頭情報に指定されている部分文字列を復元作業領域15に記憶させると共に、当該読み出された先頭情報に指定されている部分文字列に対応する前記索引情報内のインデクスのレコードから、当該読み出された先頭情報に指定されている配置位置にある部分文字列出現情報を読み出す機能と、読み出された部分文字列出現情報に指定されている後続の部分文字列を復元作業領域15に記憶させると共に、当該読み出された部分文字列出現情報に指定されている後続の部分文字列に対応する前記索引情報内のインデクスのレコードから、当該読み出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出すという処理を繰り返す機能と、前記繰り返しの処理において読み出される部分文字列出現情報に後続の部分文字列が指定されていないことが認められた時点で、復元作業領域15に記憶されている個々の部分文字列を合わせたものを1つの文書として記憶部1もしくは表示部5に出力する機能とを実現させる。
なお、本実施形態における個々の部分文字列は、文字列をN文字ごとのN−gramに分解したものであるが、代わりに、文字列を、辞書を使って形態素解析により個々の形態素(意味を持つ最小の単位)に分解したものとすることも可能である。
図2は、索引情報11Aの具体例を示す図である。
記憶部1の文書データベースには、前述の図9に示したように、文書番号1で識別される文書の文字列「abracadabra」と、文書番号2で識別される文書の文字列「academia」とが登録されるものとする。これらの文書の登録時には、文書中の全てのN−gram(N=2)、即ち、部分文字列「a○」、「ab」、「ac」、「ad」、「br」、「ca」、「da」、「de」、「em」、「ia」、「mi」をそれぞれインデクスとする索引情報11Aを登録する。なお、「a○」は、「a」一文字で文書の終端に達していることを示す。索引情報11Aの中において、個々のインデクスはレコードとして少なくとも1つの部分文字列出現情報を備えている。個々の部分文字列出現情報は、当該部分文字列を含む文書を識別するための文書識別情報としての文書番号、その文書内での当該部分文字列に後続する部分文字列、および、当該後続する部分文字列に対応するインデクスのレコードにおける抽出すべき部分文字列出現情報の配置位置を示す情報を含んでいる。
例えば、部分文字列「ab」に対応するインデクスの1つ目の部分文字列出現情報は、後続する部分文字列が「ra」であり、当該後続する部分文字列に対応するインデクスのレコードにおける抽出すべき部分文字列出現情報の位置は、1つ目であることを示している。
ここで、図2に示される索引情報に基づき、例えば前述の図10に示した検索文字列「braca」を含む文書を検索する場合の手順について説明する。
最初に、検索文字列「braca」は、「br」、「ac」、「a○」という3つの部分文字列、即ち、3つのN−gram(N=2)に分割される。
次に、検索文字列の中の先頭に位置する部分文字列「br」に対応するインデクスのレコードから全ての部分文字列出現情報を読み出す。
「br」に対応するインデクスには、[文書番号=1、後続=「ac」、1]と[文書番号=1、後続=「a○」、1]の二つの部分文字列出現情報が備えられており、この中で、後続する部分文字列が、検索文字列の中の後続する部分文字列「ac」に合致するものは、[文書番号=1、後続=「ac」、1]であることがわかるので、「ac」に対応するインデクスのレコードから1つ目の部分文字列出現情報[文書番号=1、後続=「ad」、1]を読み出す。
読み出された部分文字列出現情報[文書番号=1、後続=「ad」、1]から、後続する部分文字列が、検索文字列の中の後続する部分文字列「a○」に合致する部分文字列出現情報を抽出すると、[文書番号=1、後続=「ad」、1]が得られる。ここで、検索文字列の部分文字列としての「a○」は、文字aの後に何が続いても良いことを示すので、「ad」も合致するものに含まれる。このとき、本検索処理が検索文字列の終端に達しているため、「a○」に対応するインデクスのレコードから部分文字列出現情報を読み出す必要はない。
この結果から、「braca」を含む文書は、文書番号1の文書であることが確認できる。
このように本実施形態においては、検索文字列を部分文字列に区切った後は、図3に示されるように、最初の部分文字列に対応するインデクス(例えば「br」)のレコードを全て読み出し、当該インデクスのレコードに格納された個々の部分文字列出現情報のうち、後続する部分文字列が当該検索文字列の中の後続する部分文字列に合致するもののみを抽出し、得られた部分文字列出現情報に指定されているインデクス(例えば「ad」)のレコードから、当該抽出された部分文字列出現情報に指定されている配置位置の部分文字列出現情報のみを読み出す処理を、検索文字列の終端の部分文字列(例えば「a○」)に達するまで繰り返すことにより、文書を高速に検索することが可能となる。すなわち、従来は各レコードに存在する全ての部分文字列出現情報を読み出さなければならなかったのに対し、本実施形態では図3のように読み出すべき部分文字列出現情報を少なくすることを可能としている。
また、本実施形態では、部分文字列出現情報に含まれる後続する部分文字列と検索文字列の後続する部分文字列との比較を行うだけで、部分文字列出現情報を容易に抽出でき、読み出した部分文字列出現情報から、共通の文書識別情報を抽出する作業や、出現位置情報による隣接判定のような複雑な処理を行う必要がない。
図4は、図2に示される索引情報の変形例を示す図である。
図2の索引情報は、全ての部分文字列出現情報が文書番号を含むものであったが、図4の索引情報は、一部の部分文字列出現情報のみが文書番号を含んでおり、文書番号を含まない部分文字列出現情報も存在する。
即ち、図4の索引情報では、例えば図5に示されるように、各文書を構成する複数の部分文字列のうち、1つおきに配置された部分文字列(文書番号1の文書の例では、「ab」、「ca」、「br」、「br」、「ad」、「ra」が該当し、文書番号2の文書の例では、「ac」、「em」、「ca」、「mi」が該当する)に対応する索引情報内のインデクスは、当該文書の文書番号を含む部分文字列出現情報を備えており、一方、上記の部分文字列以外の、1つおきに配置された部分文字列(文書番号1の文書の例では、「ra」、「da」、「a○」、「ac」、「ab」が該当し、文書番号2の文書の例では、「ad」、「ia」、「de」、「a○」が該当する。)に対応する前記索引情報内のインデクスは、当該文書の文書番号が省略された部分文字列出現情報を備えている。
ここで、図4に示される索引情報に基づき、例えば前述の図10に示した検索文字列「braca」を含む文書を検索する場合の手順について説明する。
最初に、検索文字列「braca」は、「br」、「ac」、「a○」という3つの部分文字列、即ち、3つのN−gram(N=2)に分割される。
次に、検索文字列の中の先頭に位置する部分文字列「br」に対応するインデクスのレコードから全ての部分文字列出現情報を読み出す。
「br」に対応するインデクスには、[文書番号=1、後続=「ac」、1]と[文書番号=1、後続=「a○」、1]の二つの部分文字列出現情報が備えられており、この中で、後続する部分文字列が、検索文字列の中の後続する部分文字列「ac」に合致するものは、[文書番号=1、後続=「ac」、1]であることがわかるので、「ac」に対応するインデクスのレコードから1つ目の部分文字列出現情報[後続=「ad」、1]を読み出す。
読み出された部分文字列出現情報[後続=「ad」、1]から、後続する部分文字列が、検索文字列の中の後続する部分文字列「a○」に合致する部分文字列出現情報を抽出すると、[後続=「ad」、1]が得られる。ここで、検索文字列の部分文字列としての「a○」は、文字aの後に何が続いても良いことを示すので、「ad」も合致するものに含まれる。このとき、本検索処理が検索文字列の終端に達しているため、「a○」に対応するインデクスのレコードから部分文字列出現情報を読み出す必要はない。
この結果から、「braca」を含む文書は、文書番号1の文書であることが確認できる。
このように、文書番号が省略された部分文字列出現情報を備えた索引情報を採用することにより、レコードのサイズをより一層小さくすることが可能となる。
次に、文書を文書データベースに残していないか、もしくは消失してしまった場合に、当該文書を索引情報11Aを利用して復元する方法について説明する。
ここでは、図6に示される文書復元用情報に基づき、例えば図2に示される索引情報を利用して文書番号2の文書「academia」を復元する場合の手順を説明する。
図6の文書復元用情報から、復元対象の文書の文書番号2に対応する先頭情報[先頭=「ac」、2]を読み出す。
読み出された先頭情報[先頭=「ac」、2]を参照すると、復元対象の文書の先頭にある部分文字列は「ac」であり、次に参照すべき部分文字列出現情報は、「ac」に対応するインデクスのレコードにある2つ目の部分文字列出現情報[文書番号=2、後続=「ad」、2]であることがわかる。
この部分文字列出現情報[文書番号=2、後続=「ad」、2]に含まれる、後続する部分文字列を指定する情報を参照すると、後続する部分文字列は「ad」であり、次に参照すべき部分文字列出現情報は、「ad」に対応するインデクスのレコードにある2つ目の部分文字列出現情報[文書番号=2、後続=「em」、2]であることがわかる。
この部分文字列出現情報[文書番号=2、後続=「em」、2]に含まれる、後続する部分文字列を指定する情報を参照すると、後続する部分文字列は「em」であり、次に参照すべき部分文字列出現情報は、「em」に対応するインデクスの1つ目のレコードにある部分文字列出現情報[文書番号=2、後続=「ia」、1]であることがわかる。
この部分文字列出現情報[文書番号=2、後続=「ia」、1]に含まれる、後続する部分文字列を指定する情報を参照すると、後続する部分文字列は「ia」であり、次に参照すべき部分文字列出現情報は、「ia」に対応するインデクスのレコードにある1つ目の部分文字列出現情報[文書番号=2、後続=なし]であることがわかる。
この部分文字列出現情報[文書番号=2、後続=なし]に含まれる、後続する部分文字列を特定する情報を参照すると、後続する部分文字列は無いため、当該文書の最後まで達したことがわかる。
ここで、先頭から始まる部分文字列に対応する部分文字列出現情報に対応する部分文字列である「ac」から後続の部分文字列を結合していくと、「ac」「ad」「em」「ia」となり、文書番号2に対応する文書の文字列「academia」を復元することができる。
このように、登録後に文書が残っていなくても、当該文書を復元することが可能となる。
次に、図7を参照して、制御部3が文書検索プログラムを実行することにより実現される文書検索の動作の一例を説明する。
制御部3は、検索文字列を入力すると(ステップS11)、この検索文字列を検索文字列記憶領域12において一定の部分文字列、即ち、N文字ごとのN−gram(N=2)に区切り(ステップS12)、先頭の部分文字列に対応する索引情報11A内のインデクスのレコードから全ての部分文字列出現情報を読み出し、検索作業領域13に記憶させる(ステップS13)。
次に、制御部3は、読み出した全ての部分文字列出現情報のうち、指定されている後続の部分文字列が検索文字列の中の後続する部分文字列に合致するものがあるか否かを判定する(ステップS14)。合致するものがなければ(ステップS15のNO)、該当する文書が無いことを示すメッセージを表示部5に出力し(ステップS22)、一方、合致するものがあれば(ステップS15のYES)、当該部分文書文字列情報を抽出する(ステップS16)。また、当該部分文書文字列情報から文書番号が得られれば、その文書番号を検索作業領域13に記憶させる。
次に、制御部3は、当該部分文書文字列情報に指定されている後続の部分文字列に対応するインデクスのレコードから、当該部分文書文字列情報に指定されている配置位置の部分文字列出現情報を読み出し、検索作業領域13に記憶させる(ステップS17)。また、当該部分文書文字列情報から文書番号が得られれば、その文書番号を検索作業領域13に記憶させる。
次に、制御部3は、読み出した部分文字列出現情報に指定されている後続の部分文字列が、検索文字列の中の後続する部分文字列に合致するか否かを判定する(ステップS18)。合致しなければ(ステップS19のNO)、該当する文書が無いことを示すメッセージを表示部5に出力し(ステップS22)、一方、合致すれば(ステップS19のYES)、本検索処理が検索文字列の終端に達していない限り(ステップS20のNO)、ステップS17からの処理を繰り返す。
本検索処理が検索文字列の終端に達している場合には(ステップS20のYES)、いずれかの部分文字列出現情報から得られた文書番号(検索作業領域13に記憶されている文書番号)を表示部5に出力する(ステップS21)。
次に、図8を参照して、制御部3が文書復元プログラムを実行することにより実現される文書復元の動作の一例を説明する。
制御部3は、文書番号を入力すると(ステップS31)、この文書番号を復元作業領域15に記憶し、文書復元用情報記憶領域14に記憶されている文書復元用情報14Aから、当該文書番号に対応する先頭情報を読み出し(ステップS32)、読み出した先頭情報に指定されている部分文字列を復元作業領域15に記憶させる(ステップS33)。
次に、制御部3は、読み出した先頭情報に指定されている部分文字列に対応する索引情報11A内のインデクスのレコードから、当該部分文書文字列情報に指定されている配置位置の部分文字列出現情報を読み出す(ステップS34)。
次に、制御部3は、読み出した部分文字列出現情報に後続の部分文字列が指定されていれば(ステップS35のYES)、当該部分文字列出現情報に指定されている後続の部分文字列を復元作業領域15に記憶させ(ステップS36)、当該部分文字列出現情報に指定されている後続の部分文字列に対応する索引情報11A内のインデクスのレコードから、当該部分文書文字列情報に指定されている配置位置の部分文字列出現情報を読み出し(ステップS37)、再びステップS35からの処理を繰り返す。
一方、読み出した部分文字列出現情報に後続の部分文字列が無ければ(ステップS35のNO)、文書の復元に必要な全ての部分文字列が得られたことになるため、復元作業領域15に記憶されている個々の部分文字列を合わせた文字列を出力し、文書として記憶部1に記憶させる(ステップS38)。
以上説明したように本実施形態によれば、文書データベースが大規模で、また、検索文字列の長さが所定の部分文字列に対して長い場合であっても、文書検索を高速に行うことができ、また、文書を文書データベースに残していなくても、文書を容易に復元することができる。
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
なお、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係る文書検索装置の構成の一例を示す図。 図1中の索引情報記憶領域に記憶される索引情報の具体例を示す図。 読み出すべき部分文字列出現情報が少ないことを示す図。 図2に示される索引情報の変形例を示す図。 図4に示される索引情報の中で文書番号が省略される部分文字列出現情報を説明するための図。 図1中の文書復元用情報記憶領域に記憶される文書復元用情報の具体例を示す図。 制御部が文書検索プログラムを実行することにより実現される文書検索の動作の一例を示すフローチャート。 制御部が文書復元プログラムを実行することにより実現される文書復元の動作の一例を示すフローチャート。 文書データベースに登録される文書の例を示す図。 検索文字列の一例を示す図。 従来の転置索引情報の一例を示す図。
符号の説明
1…記憶部、2…メモリ、3…制御部、4…入力部、5…表示部、11…索引情報記憶領域、12…検索文字列記憶領域、13…検索作業領域、14…復元用情報記憶領域、14A…索引情報、15…復元作業領域、15A…文書復元用情報。

Claims (7)

  1. 記憶媒体に記憶される複数の文書の中から、入力装置を通じて指定される検索文字列を含む文書を検索する文書検索装置であって、
    前記複数の文書に含まれる個々の部分文字列をそれぞれインデクスとし、個々のインデクスはレコードとして少なくとも1つの部分文字列出現情報を備え、個々の部分文字列出現情報は、少なくとも当該部分文字列を含む文書内での当該部分文字列に後続する部分文字列、および、当該後続する部分文字列に対応するインデクスのレコードにおける抽出すべき部分文字列出現情報の配置位置を指定するものであり、個々の部分文字列出現情報の少なくとも一部が文書を識別するための文書識別情報を含んでいる、索引情報を記憶する索引情報記憶手段と、
    入力装置を通じて指定される検索文字列を複数の部分文字列に区切る部分文字列区切手段と、
    区切られた検索文字列の先頭に位置する部分文字列に対応する前記索引情報内のインデクスのレコードから全ての部分文字列出現情報を読み出す手段と、
    読み出された全ての部分文字列出現情報のうち、指定されている後続の部分文字列が前記検索文字列の中の後続する部分文字列に合致するものがある場合に、該当する部分文字列出現情報を抽出する手段と、
    抽出された部分文字列出現情報に指定されている後続の部分文字列に対応する前記索引情報内のインデクスのレコードから、当該抽出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出す手段と、
    読み出された部分文字列出現情報に指定されている後続の部分文字列が前記検索文字列の中の後続する部分文字列に合致する場合に、当該読み出された部分文字列出現情報に指定されている後続の部分文字列に対応する前記索引情報内のインデクスのレコードから、当該読み出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出すという処理を繰り返す手段と、
    前記繰り返しの処理において読み出される部分文字列出現情報に指定されている後続の部分文字列が、前記検索文字列の中の終端に位置する部分文字列に合致した時点で、個々の部分文字列出現情報のいずれかの読み出しにおいて得られた文書識別情報を出力する手段と
    を具備することを特徴とする文書検索装置。
  2. 前記索引情報の中には、文書識別情報を含む部分文字列出現情報と、文書識別情報を含まない部分文字列出現情報とが存在することを特徴とする請求項1に記載の文書検索装置。
  3. 前記複数の文書を構成する複数の部分文字列のうち、1つおきに配置された部分文字列に対応する前記索引情報内のインデクスは、当該文書の文書識別情報が省略された部分文字列出現情報を備えていることを特徴とする請求項1に記載の文書検索装置。
  4. 個々の部分文字列は、文字列をN文字ごとのN−gramに分解したものであることを特徴とする請求項1乃至3のいずれか1項に記載の文書検索装置。
  5. 個々の部分文字列は、文字列を形態素解析により個々の形態素に分解したものであることを特徴とする請求項1乃至3のいずれか1項に記載の文書検索装置。
  6. 文書の文書識別情報毎に、レコードとして、当該文書の先頭に位置する部分文字列、および、当該部分文字列に対応する前記索引情報内のインデクスのレコードにおける抽出すべき部分文字列出現情報の配置位置が指定された先頭情報を有する、文書復元用情報を記憶する手段と、
    入力装置を通じて指定される文書識別情報もしくは前記出力する手段から出力される文書識別情報に対応する先頭情報を、前記文書復元用情報内のレコードから読み出す手段と、
    読み出された先頭情報に指定されている部分文字列を前記記憶領域に記憶させると共に、当該読み出された先頭情報に指定されている部分文字列に対応する前記索引情報内のインデクスのレコードから、当該読み出された先頭情報に指定されている配置位置にある部分文字列出現情報を読み出す手段と、
    読み出された部分文字列出現情報に指定されている後続の部分文字列を所定の記憶領域に記憶させると共に、当該読み出された部分文字列出現情報に指定されている後続の部分文字列に対応する前記索引情報内のインデクスのレコードから、当該読み出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出すという処理を繰り返す手段と、
    前記繰り返しの処理において読み出される部分文字列出現情報に後続の部分文字列が指定されていないことが認められた時点で、前記記憶領域に記憶されている個々の部分文字列を合わせたものを1つの文書として出力する手段と
    を更に具備することを特徴とする請求項1乃至5のいずれか1項に記載の文書検索装置。
  7. 記憶媒体に記憶される複数の文書の中から、入力装置を通じて指定される検索文字列を含む文書を検索するためのプログラムであって、
    前記複数の文書に含まれる個々の部分文字列をそれぞれインデクスとし、個々のインデクスはレコードとして少なくとも1つの部分文字列出現情報を備え、個々の部分文字列出現情報は、少なくとも当該部分文字列を含む文書内での当該部分文字列に後続する部分文字列、および、当該後続する部分文字列に対応するインデクスのレコードにおける抽出すべき部分文字列出現情報の配置位置を指定するものであり、個々の部分文字列出現情報の少なくとも一部が文書を識別するための文書識別情報を含んでいる、索引情報を記憶媒体に記憶させる機能と、
    入力装置を通じて指定される検索文字列を複数の部分文字列に区切る機能と、
    区切られた検索文字列の先頭に位置する部分文字列に対応する前記索引情報内のインデクスのレコードから全ての部分文字列出現情報を読み出す機能と、
    読み出された全ての部分文字列出現情報のうち、指定されている後続の部分文字列が前記検索文字列の中の後続する部分文字列に合致するものがある場合に、該当する部分文字列出現情報を抽出する機能と、
    抽出された部分文字列出現情報に指定されている後続の部分文字列に対応する前記索引情報内のインデクスのレコードから、当該抽出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出す機能と、
    読み出された部分文字列出現情報に指定されている後続の部分文字列が前記検索文字列の中の後続する部分文字列に合致する場合に、当該読み出された部分文字列出現情報に指定されている後続の部分文字列に対応する前記索引情報内のインデクスのレコードから、当該読み出された部分文字列出現情報に指定されている配置位置にある部分文字列出現情報を読み出すという処理を繰り返す機能と、
    前記繰り返しの処理において読み出される部分文字列出現情報に指定されている後続の部分文字列が、前記検索文字列の中の終端に位置する部分文字列に合致した時点で、個々の部分文字列出現情報のいずれかの読み出しにおいて得られた文書識別情報を出力する機能と
    をコンピュータに実現させることを特徴とするプログラム。
JP2008322555A 2008-12-18 2008-12-18 文書検索装置およびプログラム Expired - Fee Related JP4734400B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008322555A JP4734400B2 (ja) 2008-12-18 2008-12-18 文書検索装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008322555A JP4734400B2 (ja) 2008-12-18 2008-12-18 文書検索装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2010146273A JP2010146273A (ja) 2010-07-01
JP4734400B2 true JP4734400B2 (ja) 2011-07-27

Family

ID=42566653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008322555A Expired - Fee Related JP4734400B2 (ja) 2008-12-18 2008-12-18 文書検索装置およびプログラム

Country Status (1)

Country Link
JP (1) JP4734400B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5708117B2 (ja) * 2011-03-24 2015-04-30 カシオ計算機株式会社 Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP6972653B2 (ja) 2017-05-16 2021-11-24 富士通株式会社 解析プログラム、解析方法および解析装置
JP7006462B2 (ja) 2018-04-02 2022-01-24 富士通株式会社 データ生成プログラム、データ生成方法および情報処理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000200287A (ja) * 1999-01-07 2000-07-18 Fuji Xerox Co Ltd 文書検索装置
JP2000231563A (ja) * 1999-02-09 2000-08-22 Hitachi Ltd 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004164223A (ja) * 2002-11-12 2004-06-10 Fujitsu Ltd N文字インデックス作成プログラムおよびn文字インデックス検索プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000200287A (ja) * 1999-01-07 2000-07-18 Fuji Xerox Co Ltd 文書検索装置
JP2000231563A (ja) * 1999-02-09 2000-08-22 Hitachi Ltd 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004164223A (ja) * 2002-11-12 2004-06-10 Fujitsu Ltd N文字インデックス作成プログラムおよびn文字インデックス検索プログラム

Also Published As

Publication number Publication date
JP2010146273A (ja) 2010-07-01

Similar Documents

Publication Publication Date Title
US20070050709A1 (en) Character input aiding method and information processing apparatus
JP4160548B2 (ja) 文書要約作成システム、方法、及びプログラム
JP4237813B2 (ja) 構造化文書管理システム
US8065283B2 (en) Term synonym generation
JP4734400B2 (ja) 文書検索装置およびプログラム
JP2007219620A (ja) テキスト検索装置、テキスト検索プログラム、及びテキスト検索方法
JP3784060B2 (ja) データベース検索システム、その検索方法及びプログラム
JP2018067264A (ja) データ検索プログラム、データ検索装置およびデータ検索方法
JP2010272006A (ja) 関係抽出装置、関係抽出方法、及びプログラム
JP6723726B2 (ja) 入力支援装置
JP6589704B2 (ja) 文境界推定装置、方法およびプログラム
JP2007133682A (ja) 全文検索システム、及び、その全文検索方法
JP4682627B2 (ja) 文書検索装置および方法
JP5184987B2 (ja) 索引情報作成装置、索引情報作成方法及びプログラム
JP7083473B2 (ja) 入力支援装置
JP4294386B2 (ja) 異表記正規化処理装置、異表記正規化処理プログラムおよび記憶媒体
JP4304226B2 (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP2013077084A (ja) 文例辞書生成プログラム及び文例辞書生成装置
JP4160627B2 (ja) 構造化文書管理システム及びプログラム
JP4139805B2 (ja) 字句をデータに変換する装置、方法及びプログラム
JP2007172315A (ja) 同義語辞書生成システム、同義語辞書生成方法および同義語辞書生成プログラム
JP5742454B2 (ja) 入力支援プログラム、入力支援装置、及び入力支援方法
JP2022175661A (ja) 校正支援装置、校正支援方法、及びプログラム
JP2003177923A (ja) ポーティング支援システムにおける予約語変換方法
JP6172447B2 (ja) 関連性判定システム、方法、およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110425

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees