JP4342753B2 - 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 - Google Patents
文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 Download PDFInfo
- Publication number
- JP4342753B2 JP4342753B2 JP2001243854A JP2001243854A JP4342753B2 JP 4342753 B2 JP4342753 B2 JP 4342753B2 JP 2001243854 A JP2001243854 A JP 2001243854A JP 2001243854 A JP2001243854 A JP 2001243854A JP 4342753 B2 JP4342753 B2 JP 4342753B2
- Authority
- JP
- Japan
- Prior art keywords
- document
- search
- character string
- word
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、文書検索装置、文書検索方法、プログラム及びそのプログラムを記憶したコンピュータ読み取り可能な記憶媒体に関し、より詳細には、登録された文書群から指定された文字列を含む文書を検索する文書検索装置、文書検索方法、プログラム及びそのプログラムを記憶したコンピュータ読み取り可能な記憶媒体に関する。
【0002】
【従来の技術】
登録された文書群から必要な文書を検索する文書検索方法には、文字列単位の検索(以下、文字列単位検索)と単語単位の検索(以下、単語単位検索)の2つの方法がある。
【0003】
文字列単位検索では、ユーザが指定した文字列(以下、検索文字列)を文字列として含む文書を検索する。文字列単位検索を高速化する方法としては、文書中のn文字組(以下、n−gram)を索引単位として、索引単位ごとに出現した文書識別子と文書内での出現位置を記録するn−gram索引を用意しておく方法が知られている。
【0004】
一方、単語単位検索では、ユーザが指定した検索文字列を単語として含む文書を検索する。単語単位検索を高速化する方法としては、文書中の単語を索引単位として、索引単位ごとに出現した文書識別子と文書内での出現位置を記録する単語索引を用意しておく方法が知られている。
【0005】
しかし、いずれの検索方法にも問題がある。文字列単位検索の場合、単語境界を無視して検索するため、ユーザが意図しない文書が検索結果に含まれることがある。例えば、「帯電」(電気を帯びること;electrification)を検索文字列とした場合、「彼女の携帯電話」という文書が検索されてしまう。
【0006】
一方、単語単位検索の場合、日本語においては単語の区切れが明示的に示されないため、索引を作成する際に形態素解析などを施して単語を切り出す必要があるが、現在の技術レベルでは形態素解析の誤りが避けられない。したがって、形態素解析誤りが原因で検索漏れが起こる。例えば、「東京都にある清水寺」という文書を登録する際、/東/京都/に/ある/清水寺/と形態素解析されるべきところを/東京/都/に/ある/清水/寺/のように誤って解析されれば、検索文字列が「京都」のときに「東京都にある清水寺」という文書を検索することができない。
【0007】
上述した問題を避けるには、システムが両検索方法をサポートし、ユーザがニーズに応じていずれかの検索方法を指定できるようにすればよい。そのような検索方法の従来技術が、特開2000−67070公報に記載されている。この発明では、文書登録時に単語の切れ目に特殊な区切り文字を挿入し、区切り文字を挿入したデータからn−gramを切り出し、索引を作成する。その際、区切り文字の前後を連結させて得られるn−gramも切り出して索引に記録する。ユーザが単語単位検索を指定した場合には区切り文字を含むn−gramを無視することなく検索処理を行い、文字列単位検索を指定した場合には区切り文字を含むn−gramを無視して検索処理を行う。
【0008】
別の従来技術としては、特開平7−85033号公報に記載された技術がある。この発明では、文字ごとにその文字が出現する文書、その文書における出現位置、および各出現位置が単語の先頭あるいは末尾かのフラグを記録しておく。検索時には文字ごとの出現位置に基づいて文字列単位の検索を実現するとともに、単語の先頭あるいは末尾かのフラグも参照することで単語単位の検索も実現する。
【0009】
【発明が解決しようとする課題】
しかしながら、特開2000−67070公報に記載された技術には以下の問題がある。特開2000−67070公報に記載された技術によれば、単語の切れ目を区切り文字で表現していることから、一般に文字は固定長(例えば、UCS2表現のユニコードでは2バイト)で表現されるため、表現可能な値がすべて意味ある文字として使われる場合には、この方法を適用できない。
【0010】
一方、特開平7−85033号公報に記載された技術には以下の問題がある。文字列単位の検索が文字索引に基づいているので、n−gram索引と比較して検索速度が遅い。
【0011】
さらに、両者に共通の問題点として以下の問題もある。単語の切れ目を発見するための形態素解析系(あるいはそれが使用する辞書)を更新した場合、切れ目の位置が変わるため、索引全体の作り直しが必要である。その結果、索引のメンテナンス作業に多大な時間を要する。
【0012】
そこで、文字列単位検索用のn−gram索引とは別個の単語境界位置索引を用いて単語単位検索を提供することにより、どんな文字コードに対しても適用可能であり、検索が高速で、索引のメンテナンスが簡単な文書検索方法が、本出願人により提案されている。
【0013】
しかしながら、このような単語境界位置索引を用いる場合、単語境界位置索引には単語の出現位置を多数記録する必要があるため、索引が大きくなってしまうという問題があった。
【0014】
本発明の目的は、単語境界位置索引を小型化することができる文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体を提供することである。
【0015】
本発明の目的は、検索処理の高速化を図ることができる文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体を提供することである。
【0016】
【課題を解決するための手段】
請求項1記載の発明の文書検索装置は、登録文書群から指定された検索文字列を含む文書を検索する文書検索装置において、登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解するテキスト分割手段と、登録文書中のn−gramに関する出現情報をn−gramごとに保持しておくn−gram索引と、登録文書中の単語境界に関する出現情報を圧縮して記録する単語境界位置索引と、検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する文字列単位検索手段と、この文字列単位検索手段の結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する単語単位検索手段と、を備える。
【0017】
したがって、文字列単位検索用のn−gram索引とは別個の単語境界位置索引を用いて単語単位検索を提供しているので、どんな文字コードに対しても適用可能であり、検索を高速にし、索引のメンテナンスを容易にすることが可能になる。また、単語境界位置索引に対して出現情報を圧縮して記録していることから、索引を小型化することが可能である。
【0018】
請求項1記載の発明の文書検索装置は、さらに、前記単語境界位置索引は、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮する。
【0019】
したがって、出現情報である単語境界が出現する文書における出現位置がブロック化されるので、検索時の伸長処理に時間がかかる単純に圧縮した場合に比べ、伸長処理時間が削減され、検索処理の高速化が図られる。
【0020】
請求項2記載の発明は、請求項1の文書検索装置において、前記ブロックは、固定長のブロックである。
【0021】
したがって、単語境界が出現する文書における出現位置のブロック化が容易になる。
【0022】
請求項3記載の発明は、請求項2の文書検索装置において、最後尾に位置する前記ブロックは、固定長以下とする。
【0023】
したがって、索引をさらに小型化することが可能である。
【0024】
請求項4記載の発明は、請求項1ないし3のいずれか一記載の文書検索装置において、前記ブロックには、当該ブロックに記録される出現位置のうち先頭あるいは末尾の出現位置そのものの圧縮データと、先頭あるいは末尾以外の出現位置に係るその直前の出現位置との差分の圧縮データとが記録される。
【0025】
したがって、検索文字列出現位置を照合する際に、出現位置が含まれる可能性のあるブロックを特定するまでは、各ブロックの圧縮された先頭あるいは末尾の出現位置そのもののみを伸長すればよいので、伸長すべきデータ量を削減することが可能になる。
【0026】
請求項5記載の発明は、請求項1ないし3のいずれか一記載の文書検索装置において、前記ブロックには、当該ブロックに記録される出現位置のうち先頭あるいは末尾の出現位置そのものの非圧縮データと、先頭あるいは末尾以外の出現位置に係るその直前の出現位置との差分の圧縮データとが記録される。
【0027】
したがって、出現位置との差分をとらないブロックの先頭あるいは末尾の出現位置そのものは圧縮されずに記録されることから、さらに検索処理を高速化することが可能になる。
【0028】
請求項6記載の発明は、請求項4または5記載の文書検索装置において、最後尾に位置する前記ブロックについては、末尾の出現位置そのものは記録されない。
【0029】
したがって、検索処理の高速化を図りつつデータ量を少なくすることが可能になる。
【0030】
請求項7記載の発明は、請求項1ないし6のいずれか一記載の文書検索装置において、前記単語境界位置索引と前記n−gram索引とでは、圧縮に使用する符号化手法が異なる。
【0031】
したがって、効率的な圧縮が可能になる。
【0032】
請求項8記載の発明の文書検索方法は、文書検索装置が以下の各工程を実行することにより、登録文書群から指定された検索文字列を含む文書を検索する文書検索方法において、登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解する工程と、登録文書中のn−gramに関する出現情報をn−gramごとにn−gram索引に保持しておく工程と、単語境界位置索引に登録文書中の単語境界に関する出現情報を圧縮して記録する工程と、検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する工程と、この検索結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する工程とを含み、前記単語境界位置索引は、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮したものである。
【0033】
したがって、文字列単位検索用のn−gram索引とは別個の単語境界位置索引を用いて単語単位検索を提供しているので、どんな文字コードに対しても適用可能であり、検索を高速にし、索引のメンテナンスを容易にすることが可能になる。また、単語境界位置索引に対して出現情報を圧縮して記録していることから、索引を小型化することが可能である。さらに、出現情報である単語境界が出現する文書における出現位置がブロック化されるので、検索時の伸長処理に時間がかかる単純に圧縮した場合に比べ、伸長処理時間が削減され、検索処理の高速化が図られる。
【0034】
請求項9記載の発明のプログラムは、コンピュータに、登録文書群から指定された検索文字列を含む文書を検索させるためのプログラムであって、登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解する機能と、登録文書中のn−gramに関する出現情報をn−gramごとにn−gram索引に保持しておく機能と、単語境界位置索引に登録文書中の単語境界に関する出現情報を圧縮して記録する機能と、検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する機能と、この検索結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する機能とを前記コンピュータに実現させるためのものであり、前記単語境界位置索引は、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮したものである。
【0035】
したがって、文字列単位検索用のn−gram索引とは別個の単語境界位置索引を用いて単語単位検索を提供しているので、どんな文字コードに対しても適用可能であり、検索を高速にし、索引のメンテナンスを容易にすることが可能になる。また、単語境界位置索引に対して出現情報を圧縮して記録していることから、索引を小型化することが可能である。さらに、出現情報である単語境界が出現する文書における出現位置がブロック化されるので、検索時の伸長処理に時間がかかる単純に圧縮した場合に比べ、伸長処理時間が削減され、検索処理の高速化が図られる。
【0036】
請求項10記載の発明のコンピュータに読み取り可能な記憶媒体は、請求項9記載のプログラムを記憶した。
【0037】
したがって、この記憶媒体のプログラムをコンピュータにインストールすることにより、請求項9記載のプログラムと同様の作用を得ることが可能になる。
【0038】
【発明の実施の形態】
本発明の第一の実施の形態を図1ないし図6に基づいて説明する。
【0039】
図1は、文書検索装置1のハードウェア構成を概略的に示すブロック図である。図1に示すように、文書検索装置1は、この文書検索装置1の各部を集中的に制御するCPU(Central Processing Unit)2を備えており、このCPU2には、BIOSなどを記憶した読出し専用メモリであるROM(Read Only Memory)3と、各種データを書換え可能に記憶するRAM(Random Access Memory)4とがバス5で接続されている。さらにバス5には、外部記憶となるHDD(Hard Disk Drive)6と、CD(Compact Disc)−ROM7を読み取るCD−ROMドライブ8と、文書検索装置1とネットワーク9との通信を司る通信制御装置10と、入力部として機能するキーボードやマウスなどの入力装置11と、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などの出力装置12とが、図示しないI/Oを介して接続されている。
【0040】
RAM4は、各種データを書換え可能に記憶する性質を有していることから、CPU2の作業エリアとして機能し、例えば入力バッファ、解析バッファ等の役割を果たす。また、HDD6には、各種のプログラムを格納するプログラムファイルが格納されている。
【0041】
図1に示すCD−ROM7は、この発明の記憶媒体を実施するものであり、所定のプログラムが記憶されている。CPU2は、CD−ROM7に記憶されているプログラムをCD−ROMドライブ8で読み取り、HDD6にインストールする。これにより、文書検索装置1は、後述するような各種の処理を行なうことが可能な状態となる。
【0042】
なお、記憶媒体としては、CD−ROM7のみならず、DVDなどの各種の光ディスク、各種光磁気ディスク、フロッピーディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、通信制御装置10を介してインターネットなどのネットワーク9からプログラムをダウンロードし、HDD6にインストールするようにしてもよい。この場合に、送信側のサーバでプログラムを記憶している記憶装置も、この発明の記憶媒体である。なお、プログラムは、所定のOS(Operating System)上で動作するものであってもよいし、その場合に後述の各種処理の一部の実行をOSに肩代わりさせるものであってもよいし、ワープロソフトなど所定のアプリケーションソフトやOSなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【0043】
次に、文書検索装置1のCPU2がプログラムに基づいて実行する各種処理の内容について説明する。本発明の文書検索装置1は、図2に示すように、CPU2がプログラムに基づいて動作することで各種機能を発揮する。
【0044】
図2において、テキスト分割手段21は、入力装置11やCD−ROMドライブ8等を介してユーザによって入力された登録文書あるいは検索条件に含まれるテキストをn−gramおよび単語に分解する。なお、単語への分割には形態素解析を利用するが、形態素解析は既存の手法(例えば、松本裕治他、「単語と辞書」言語の科学第3巻、岩波書店の53ページ以降に書かれている)を採用すればよい。
【0045】
n−gram索引22は、登録文書を分割したn−gramの情報を、検索のために保持するものである。
【0046】
単語境界位置索引23は、登録文書を分割した単語境界に関する出現情報を、検索のために保持するものである。
【0047】
文字列単位検索手段24は、テキスト分割手段21が検索文字列を分割したn−gramに基づいて、n−gram索引22を用いて検索文字列を含む文書を検索するものである。
【0048】
単語単位検索手段25は、文字列単位検索手段24で求められた文字列検索結果において検索文字列が単語として出現しているか否かを単語境界位置索引23を用いて決定するものである。
【0049】
ここで、文書検索装置1のCPU2がプログラムに基づいて実行する登録処理について説明する。登録処理は、テキスト分割手段21とn−gram索引22と単語境界位置索引23とにより実現され、概略的には、文書が与えられるとテキスト分割手段21でn−gramと単語に分割し、それら出現情報をn−gram索引22および単語境界位置索引23に記録するものである。なお、ここでは、図3に示す例を用いて、登録処理を説明する。
【0050】
登録文書(=文書1)の内容が図3(a)、その形態素解析結果は図3(b)の通りであるとする。いま、索引単位をbi−gram(2文字組;n=2のn−gram)とすると、この文書は「携帯」「帯電」のようなbi−gramに分割され、図3(c)のようなn−gram索引22ができる。ここで、左側の文字列(「携帯」など)が索引単位であるbi−gramを表し、右側の数字がその索引単位が出現した文書識別子、その文書での出現回数、各出現位置(文書先頭を1とした場合の文字数)を表す。例えば、「帯電」に対する{1,1,(5)}は、文書1には1回出現し、その位置は5文字目であることを意味する。なお、n−gram索引22の構成方法は、n=2であるbi−gram以外を用いてもかまわない。さらには、文字種に応じてnを調整する方法でもかまわない。また、索引のデータ量は多いので、圧縮することで小型化することが望ましい。n−gram索引22の圧縮方法としては、例えば、特開2000−348059公報に開示されている方法を用いることができる。
【0051】
図3(d)は単語境界位置索引23で、形態素解析結果で得られる単語境界の出現位置を記録したものである。データの記述方法はn−gram索引22と同じであり、{1,5,(1,3,4,6,8)}は文書1には5回出現し、その位置は1,3,4,6,8文字目であることを意味する。最後の8文字目は最後の単語の末尾位置に対応する。
【0052】
ここで、単語境界位置索引23には単語の出現位置を多数記録する必要があるため、単語境界位置索引23に記録する情報を圧縮することが望ましい。以下において、単語境界位置索引23の圧縮について説明する。
【0053】
単語境界位置索引23に記録される情報としてデータ量が多いのは、単語境界が出現する文書における出現位置である。圧縮手順について図4のフローチャートを参照しつつ以下に説明する。
【0054】
ステップS1:各出現位置について前の出現位置からの差分を求める。ただし、先頭においては前の出現位置として0を用いる。
【0055】
ステップS2:出現位置の差分を可変長符号を用いて表現する。
【0056】
図3(d)に示したの単語境界位置索引23であれば(1,3,4,6,8)が出現位置であり、これを例に上記手順を適用すると図5(c)のようになる。なお、この例では、ステップS2の可変長符号としてγ符号(I.H.Witten他、Managing Gigabytes (second edition), Morgan Kaufmannの117ページに記載)を用いている。
【0057】
次に、文書検索装置1のCPU2がプログラムに基づいて実行する文字列単位検索処理について説明する。文字列単位検索処理は、文字列単位検索手段24により実現され、概略的には、検索文字列に基づいてテキスト分割手段21によって分割されたn−gramに関する登録文書中の出現文書あるいは出現文書とその文書内での出現位置を用いて検索文字列を含む文書を決定するものである。なお、ここでは、図3に示す例を用いて、文字列単位検索処理を説明する。
【0058】
検索文字列を「帯電」とすると、(この検索文字列自体がbi−gramなので)テキスト分割手段21は「帯電」を抽出する。つぎに、文字列単位検索手段24は、n−gram索引22を調べると、「帯電」は文書1に出現していることがわかり、文書1を検索結果とする。検索文字列が「携帯電話」であれば、テキスト分割手段21は「携帯」「帯電」「電話」の3つのbi−gramを抽出する。つぎに、文字列単位検索手段24は、これらのbi−gramを全て含む文書を特定し、その文書においてbi−gramが連続した位置に出現している場合にはその文書を検索結果とする。この場合、「携帯」「帯電」「電話」の出現位置は4,5,6と1ずれているので、「携帯電話」は文書1において出現位置4に現われていると判断でき、文書1を検索結果とする
次に、文書検索装置1のCPU2がプログラムに基づいて実行する単語単位検索処理について説明する。単語単位検索処理は、単語単位検索手段25により実現され、概略的には、文字列単位検索において文字列単位検索手段24が求める検索文字列の文書における出現が単語としてであるか否かを判定するものである。処理手順を図6を参照しつつ以下に説明する。
【0059】
ステップS11:検索文字列を形態素解析し単語の区切りを得る。
【0060】
ステップS12:検索文字列で文字列検索を行い、検索文字列を含む文書を特定する(なお、後述するステップS13から戻ってきた場合には、検索文字列を含む次の文書を特定する)。見つからなければ(ステップS12のN)、処理を終了する。
【0061】
ステップS13:前述のステップS12で検索された文書について、検索文字列の出現位置を得る(なお、後述するステップS14から戻ってきた場合には、検索文字列の次の出現位置を得る)。見つからなければ(ステップS13のN)、ステップS12に戻る。
【0062】
ステップS14:前述のステップS13で得られた出現位置の先頭から末尾までに含まれる単語境界を単語境界位置索引23から得る。
【0063】
ステップS15:ステップS14で得られた単語境界の相対位置が、ステップS1)で得られた検索文字列の単語境界と一致する場合には(ステップS15のY)、ステップS12で特定された文書を検索結果に追加し(ステップS16)、ステップS12に戻る。相対位置が検索文字列の単語境界と一致しなければ(ステップS15のN)、ステップS13に戻る。
【0064】
ここで、検索文字列「帯電」を例に具体的に説明する。まず、形態素解析し/帯電/という結果が得られ、単語境界は1,3文字目(先頭位置が1文字目で、末尾位置は先頭位置に単語の長さ2を足して得られる)とわかる。次に、文字列検索すると文書1が特定され、そこでの出現位置は5文字目から7文字目とわかる。ところが、この文書における単語境界は・・・,4,6,・・・文字目で、一致しないことがわかる。これ以外の出現位置・文書は見つけられないので、単語単位検索によれば該当文書なしという検索結果になる。つまり、「帯電」は単語としては現われていないことがわかる。
【0065】
次いで、検索文字列が「携帯電話」の場合について以下に説明する。まず、形態素解析し/携帯/電話/という結果が得られ、単語境界は1,3,5文字目とわかる。次に文字列検索すると文書1が特定され、そこでの出現位置は4文字目から8文字目とわかる。一方、この出現位置付近の単語境界は4,6,8文字目であり、検索文字列における単語境界と一致する。したがって、文書1は検索結果に含まれる。この方法では、単語境界を文書の先頭からの文字数で表現しているので、特殊文字を使用する必要がなく、任意の文字コードに対して適用可能である。また、単語境界は文字列検索用のn−gram索引とは別に作成・管理されるので、形態素解析系の変更時には単語境界位置索引だけを作り直せばよく、索引のメンテナンス作業が軽減される。
【0066】
ここに、文字列単位検索用のn−gram索引22とは別個の単語境界位置索引23を用いて単語単位検索を提供しているので、どんな文字コードに対しても適用可能であり、検索を高速にし、索引のメンテナンスを容易にすることが可能になる。また、単語境界位置索引23に対して出現情報を圧縮して記録していることから、単語境界位置索引23を小型化することが可能である。
【0067】
本発明の第二の実施の形態を図7ないし図10に基づいて説明する。なお、前述した実施の形態と同一部分は同一符号で示し説明も省略する(他の実施の形態においても同様とする)。本実施の形態は、第一の実施の形態で説明した文書検索装置1の単語境界位置索引23に記録される情報圧縮の変形例である。
【0068】
日本語においては単語の平均の長さは2〜3文字程度であり、文書の長さが長くなるにしたがって出現位置が多数になる。第一の実施の形態で説明した方法では、検索語が文書の終わり近くに出現している場合に、膨大なデータを伸長しないと検索語の文書での出現位置が単語境界に一致するか否かを判定できず、検索時間がかかる。そこで、本実施の形態においては、圧縮情報(出現位置)をブロックに分け、伸長処理を減らし、検索処理を高速化するようにしたものである。
【0069】
ここで、図7は本実施の形態の圧縮情報(出現位置)を示す説明図である。図7に示すように、本実施の形態の文書検索装置1の単語境界位置索引23に記録される出現位置は、固定長のブロックを用いて圧縮されるものである。ブロックの先頭には、前の出現位置との差分をとらない出現位置そのものが圧縮されて記録され、残りの部分には、前の出現位置との差分が圧縮されて記録される。差分は、ブロックに入りきる限り、できるだけ多く詰める。なお、ブロックの個数は、ブロックの個数を圧縮して記録しておけば容易に知ることができる。また、圧縮位置情報表現ビット数を記録しておくことでも、ブロックサイズからブロックの個数を求めることができる。
【0070】
ここで、図6のステップS15において示した検索文字列の出現位置に一致する単語出現位置を求める検索手順について、図8のフローチャートを参照しつつ以下に説明する。
【0071】
ステップS21:ブロックが1つであるか2つ以上であるかを判断する。
【0072】
ステップS22:ブロックが1つであれば(ステップS21のY)、そのブロックのデータを伸長しながら検索文字列出現位置に一致する出現位置を探し、処理を終了する(見つかっても見つからなくても終了)。
【0073】
ステップS23:一方、ブロックが2つ以上であれば(ステップS21のN)、次のブロックの先頭のデータを伸長して得られる出現位置が検索文字列出現位置に一致するか否かを判断し、出現位置が検索文字列出現位置に一致すれば(ステップS23のY)、処理を終了する。
【0074】
出現位置が検索文字列出現位置に一致せず(ステップS23のN)、ブロックの先頭のデータを伸長して得られる出現位置が検索文字列出現位置より大きい場合には(ステップS24のY)、ステップS25に進む。
【0075】
ステップS25:検索文字列出現位置があるとすれば前のブロックにあることから、前のブロックに戻って、そのブロックのデータを伸長しながら検索文字列出現位置に一致する出現位置を探し、処理を終了する(見つかっても見つからなくても終了)。
【0076】
一方、出現位置が検索文字列出現位置に一致せず(ステップS23のN)、ブロックの先頭のデータを伸長して得られる出現位置が検索文字列出現位置より小さい場合(ステップS24のN)、次のブロックがある場合には(ステップS26のY)、ステップS23に戻る。
【0077】
ステップS27:また、現在のブロックが最後のブロックである場合には(ステップS26のN)、検索文字列出現位置があるとすれば現在のブロックにあることから、そのブロックのデータを伸長しながら検索文字列出現位置に一致する出現位置を探し、処理を終了する(見つかっても見つからなくても終了)。
【0078】
以上の処理により、検索文字列出現位置を照合するためには、それが含まれる可能性のあるブロックを特定するまではブロックの先頭のデータのみ伸長すればよいので、伸長すべきデータ量が削減できる。
【0079】
例えば、出現位置が(1,3,・・・,203,205,・・・,385,388,・・・450,452,・・・500)であり、それが3つの固定長ブロックによって図9のように圧縮されている場合(簡単のため各ブロック先頭の出現位置は圧縮していない値を書いている)、「帯電」という単語が450に出現していたとする。このような場合、「帯電」で単語単位検索したとき、450という出現位置はブロック3にあると判断できる。その際、ブロック1、ブロック2は先頭出現位置のみを伸長すればよい。
【0080】
ここに、出現情報である単語境界が出現する文書における出現位置がブロック化されるので、検索時の伸長処理に時間がかかる単純に圧縮した場合に比べ、伸長処理時間が削減され、検索処理の高速化が図られる。
【0081】
また、ブロックには、当該ブロックに記録される出現位置のうち先頭の出現位置そのものの圧縮データと、先頭以外の出現位置に係るその直前の出現位置との差分の圧縮データとが記録されることにより、検索文字列出現位置を照合する際に、出現位置が含まれる可能性のあるブロックを特定するまでは、各ブロックの圧縮された先頭の出現位置そのもののみを伸長すればよいので、伸長すべきデータ量を削減することが可能になる。
【0082】
なお、本実施の形態においては、固定長のブロックを用いて出現位置と前の出現位置との差分を圧縮して記録するようにしたが、最後のブロックだけは固定長以下(残っている出現位置を圧縮して詰めるのに必要な大きさ)としても良い。これにより、索引をさらに小型化することが可能になる。このようにすることで、図9のデータは図10のようになる。
【0083】
本発明の第三の実施の形態を図11ないし図13に基づいて説明する。本実施の形態は、第一の実施の形態で説明した文書検索装置1の単語境界位置索引23に記録される情報圧縮の変形例である。
【0084】
第二の実施の形態で説明した情報圧縮手法によれば、検索文字列出現位置が含まれる可能性のあるブロックを特定するために、ブロックの先頭のデータを伸長する必要があるとともに、場合によっては、前のブロックに戻る必要もあるため、検索速度に若干の問題があった。そこで、本実施の形態においては、さらに検索処理を高速化するようにしたものである。
【0085】
ここで、図11は本実施の形態の圧縮情報(出現位置)を示す説明図である。図11に示すように、本実施の形態の文書検索装置1の単語境界位置索引23に記録される出現位置は、ブロックを用いて圧縮されるものである。ブロックの先頭には、前の出現位置との差分が圧縮されて記録され、残りの末尾部分には、前の出現位置との差分をとらない出現位置そのものが圧縮されずに記録される。差分は、ブロックに入りきる限り、できるだけ多く詰める。
【0086】
ここで、図6のステップS15において示した検索文字列の出現位置に一致する単語出現位置を求める検索手順について、図12のフローチャートを参照しつつ以下に説明する。
【0087】
ステップS31:ブロックの末尾の出現位置が検索文字列出現位置に一致するか否かを判断し、出現位置が検索文字列出現位置に一致すれば(ステップS31のY)、処理を終了する。
【0088】
ブロックの末尾の出現位置が検索文字列出現位置に一致せず(ステップS31のN)、ブロックの末尾の出現位置が検索文字列出現位置より大きい場合には(ステップS32のY)、ステップS33に進む。
【0089】
ステップS33:検索文字列出現位置があるとすれば現在のブロックにあることから、現在のブロックのデータを伸長しながら検索文字列出現位置に一致する出現位置を探し、処理を終了する(見つかっても見つからなくても終了)。
【0090】
一方、出現位置が検索文字列出現位置に一致せず(ステップS31のN)、ブロックの末尾の出現位置が検索文字列出現位置より小さい場合には(ステップS32のN)、ステップS34に進む。
【0091】
ステップS34:次のブロックに進み、ステップS31に戻る。
【0092】
なお、最終ブロックの末尾の出現位置よりは検索文字列出現位置のほうが小さいはずなので、上の手順は必ず終了する。また、現在のブロックが最終ブロックであればステップS31あるいはステップS32で終了しているので、ステップS33においては必ず次のブロックが存在している。
【0093】
例えば、出現位置が(1,3,・・・,203,205,・・・,385,388,・・・450,452,・・・500)であり、それが3つのブロックによって図13のように圧縮されている場合、「帯電」という単語が450に出現していたとする。このような場合、「帯電」で単語単位検索したとき、450という出現位置は、ブロック末尾の出現位置が500であるブロック3にあると判断でき、ブロック1及びブロック2についてはデータを伸長する必要がない。
【0094】
ここに、ブロックには、当該ブロックに記録される出現位置のうち末尾の出現位置そのものの非圧縮データと、末尾以外の出現位置に係るその直前の出現位置との差分の圧縮データとが記録されることにより、出現位置との差分をとらないブロックの末尾の出現位置そのものは圧縮されずに記録されることから、さらに検索処理を高速化することが可能になる。
【0095】
本発明の第四の実施の形態を図14及び図15に基づいて説明する。本実施の形態は、第一の実施の形態で説明した文書検索装置1の単語境界位置索引23に記録される情報圧縮の変形例である。
【0096】
第三の実施の形態で説明した情報圧縮手法によれば、最終ブロックの末尾の出現位置を圧縮しないで記録しているので、検索文字列の照合手順は簡単になるが、出現位置を表現するのに必要なデータ量が多くなるという問題がある。そこで、本実施の形態においては、検索処理の高速化を図りつつデータ量が少なくなるようにしたものである。
【0097】
ここで、図14は本実施の形態の圧縮情報(出現位置)を示す説明図である。図14に示すように、本実施の形態の文書検索装置1の単語境界位置索引23に記録される出現位置は、ブロックを用いて圧縮されるものである。ブロックの先頭には、前の出現位置との差分が圧縮されて記録され、残りの末尾部分には、前の出現位置との差分をとらない出現位置そのものが圧縮されずに記録される。差分は、ブロックに入りきる限り、できるだけ多く詰める。ただし、本実施の形態においては、最終ブロックについては、末尾の出現位置が省略されている。
【0098】
ここで、図6のステップS15において示した検索文字列の出現位置に一致する単語出現位置を求める検索手順について、図15のフローチャートを参照しつつ以下に説明する。
【0099】
ステップS41:ブロックが最後のブロックであるか否かを判断し、ブロックが最後のブロックであれば(ステップS41のY)、ブロックのデータを伸長しながら検索文字列出現位置に一致する出現位置を探し(ステップS42)、処理を終了する(見つかっても見つからなくても終了)。
【0100】
一方、ブロックが最後のブロックでなければ(ステップS41のN)、ステップS43に進む。
【0101】
ステップS43:ブロックの末尾の出現位置が検索文字列出現位置に一致するか否かを判断し、出現位置が検索文字列出現位置に一致すれば(ステップS43のY)、処理を終了する。
【0102】
ブロックの末尾の出現位置が検索文字列出現位置に一致せず(ステップS43のN)、ブロックの末尾の出現位置が検索文字列出現位置より大きい場合には(ステップS44のY)、ステップS45に進む。
【0103】
ステップS45:検索文字列出現位置があるとすれば現在のブロックにあることから、現在のブロックのデータを伸長しながら検索文字列出現位置に一致する出現位置を探し、処理を終了する(見つかっても見つからなくても終了)。
【0104】
一方、出現位置が検索文字列出現位置に一致せず(ステップS43のN)、ブロックの末尾の出現位置が検索文字列出現位置より小さい場合には(ステップS44のN)、ステップS46に進む。
【0105】
ステップS46:次のブロックに進み、ステップS41に戻る。
【0106】
なお、現在のブロックが最終ブロックであればステップS41で終了しているので、ステップS46においては必ず次のブロックが存在している。
【0107】
ここに、最後尾に位置するブロックについては、出現位置そのものは記録されないことにより、検索処理の高速化を図りつつデータ量を少なくすることが可能になる。
【0108】
なお、各実施の形態においては、各索引22,23を小型化するために、圧縮するデータの分布にあわせた符号化手法を採用することが望ましい。例えば、単語境界位置索引23の場合、出現位置の差分は単語の長さに等しくなり、データの分布は値の小さな範囲に集中した分布となる。一方、n−gram索引22では、各n−gramごとの出現位置はばらばらであるため、出現位置の差分の分布は値の大きな範囲まで広く分散した分布となる。したがって、単語境界位置索引23とn−gram索引22とでは使用する符号化手法を変えることで、効率的な圧縮が実現できる。
【0109】
【発明の効果】
請求項1記載の発明の文書検索装置によれば、登録文書群から指定された検索文字列を含む文書を検索する文書検索装置において、登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解するテキスト分割手段と、登録文書中のn−gramに関する出現情報をn−gramごとに保持しておくn−gram索引と、登録文書中の単語境界に関する出現情報を圧縮して記録する単語境界位置索引と、検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する文字列単位検索手段と、この文字列単位検索手段の結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する単語単位検索手段と、を備えることにより、文字列単位検索用のn−gram索引とは別個の単語境界位置索引を用いて単語単位検索を提供することができるので、どんな文字コードに対しても適用可能であり、検索を高速にし、索引のメンテナンスを容易にすることができる。また、単語境界位置索引に対して出現情報を圧縮して記録していることから、索引を小型化することができる。
【0110】
請求項1記載の発明によれば、さらに、前記単語境界位置索引を、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮することにより、出現情報である単語境界が出現する文書における出現位置がブロック化されるので、検索時の伸長処理に時間がかかる単純に圧縮した場合に比べ、伸長処理時間を削減することができ、検索処理の高速化を図ることができる。
【0111】
請求項2記載の発明によれば、請求項1の文書検索装置において、前記ブロックは、固定長のブロックであることにより、単語境界が出現する文書における出現位置のブロック化を容易にすることができる。
【0112】
請求項3記載の発明によれば、請求項2の文書検索装置において、最後尾に位置する前記ブロックは、固定長以下とすることにより、索引をさらに小型化することができる。
【0113】
請求項4記載の発明によれば、請求項1ないし3のいずれか一記載の文書検索装置において、前記ブロックには、当該ブロックに記録される出現位置のうち先頭あるいは末尾の出現位置そのものの圧縮データと、先頭あるいは末尾以外の出現位置に係るその直前の出現位置との差分の圧縮データとが記録されることにより、検索文字列出現位置を照合する際に、出現位置が含まれる可能性のあるブロックを特定するまでは、各ブロックの圧縮された先頭あるいは末尾の出現位置そのもののみを伸長すればよいので、伸長すべきデータ量を削減することができる。
【0114】
請求項5記載の発明によれば、請求項1ないし3のいずれか一記載の文書検索装置において、前記ブロックには、当該ブロックに記録される出現位置のうち先頭あるいは末尾の出現位置そのものの非圧縮データと、先頭あるいは末尾以外の出現位置に係るその直前の出現位置との差分の圧縮データとが記録されることにより、出現位置との差分をとらないブロックの先頭あるいは末尾の出現位置そのものは圧縮されずに記録されることから、さらに検索処理を高速化することができる。
【0115】
請求項6記載の発明によれば、請求項4または5記載の文書検索装置において、最後尾に位置する前記ブロックについては、末尾の出現位置そのものは記録されないことにより、検索処理の高速化を図りつつデータ量を少なくすることができる。
【0116】
請求項7記載の発明によれば、請求項1ないし6のいずれか一記載の文書検索装置において、前記単語境界位置索引と前記n−gram索引とでは、圧縮に使用する符号化手法が異なることにより、圧縮を効率的に行うことができる。
【0117】
請求項8記載の発明の文書検索方法によれば、文書検索装置が以下の各工程を実行することにより、登録文書群から指定された検索文字列を含む文書を検索する文書検索方法において、登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解する工程と、登録文書中のn−gramに関する出現情報をn−gramごとにn−gram索引に保持しておく工程と、単語境界位置索引に登録文書中の単語境界に関する出現情報を圧縮して記録する工程と、検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する工程と、この検索結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する工程と、を含むことにより、文字列単位検索用のn−gram索引とは別個の単語境界位置索引を用いて単語単位検索を提供することができるので、どんな文字コードに対しても適用可能であり、検索を高速にし、索引のメンテナンスを容易にすることができる。また、単語境界位置索引に対して出現情報を圧縮して記録していることから、索引を小型化することができる。
さらに、前記単語境界位置索引を、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮することにより、出現情報である単語境界が出現する文書における出現位置がブロック化されるので、検索時の伸長処理に時間がかかる単純に圧縮した場合に比べ、伸長処理時間を削減することができ、検索処理の高速化を図ることができる。
【0118】
請求項9記載の発明のプログラムによれば、コンピュータに、登録文書群から指定された検索文字列を含む文書を検索させるためのプログラムであって、登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解する機能と、登録文書中のn−gramに関する出現情報をn−gramごとにn−gram索引に保持しておく機能と、単語境界位置索引に登録文書中の単語境界に関する出現情報を圧縮して記録する機能と、検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する機能と、この検索結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する機能と、を前記コンピュータに実現させることにより、文字列単位検索用のn−gram索引とは別個の単語境界位置索引を用いて単語単位検索を提供することができるので、どんな文字コードに対しても適用可能であり、検索を高速にし、索引のメンテナンスを容易にすることができる。また、単語境界位置索引に対して出現情報を圧縮して記録していることから、索引を小型化することができる。
さらに、前記単語境界位置索引を、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮することにより、出現情報である単語境界が出現する文書における出現位置がブロック化されるので、検索時の伸長処理に時間がかかる単純に圧縮した場合に比べ、伸長処理時間を削減することができ、検索処理の高速化を図ることができる。
【0119】
請求項10記載の発明のコンピュータに読み取り可能な記憶媒体によれば、請求項9記載のプログラムを記憶したことにより、この記憶媒体のプログラムをコンピュータにインストールすることで、請求項9記載のプログラムと同様の作用・効果を得ることができる。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態の文書検索装置のハードウェア構成を概略的に示すブロック図である。
【図2】文書検索装置の概要を示す機能ブロック図である。
【図3】登録文書と索引を例示的に示す説明図である。
【図4】圧縮処理の流れを示すフローチャートである。
【図5】出現位置の圧縮例を示す説明図である。
【図6】単語単位検索処理の流れを示すフローチャートである。
【図7】本発明の第二の実施の形態の圧縮情報(出現位置)を示す説明図である。
【図8】単語単位検索処理の流れを示すフローチャートである。
【図9】出現位置の圧縮例を示す説明図である。
【図10】出現位置の圧縮例を示す説明図である。
【図11】本発明の第三の実施の形態の圧縮情報(出現位置)を示す説明図である。
【図12】単語単位検索処理の流れを示すフローチャートである。
【図13】出現位置の圧縮例を示す説明図である。
【図14】本発明の第四の実施の形態の圧縮情報(出現位置)を示す説明図である。
【図15】単語単位検索処理の流れを示すフローチャートである。
【符号の説明】
1 文書検索装置
7 記憶媒体
21 テキスト分割手段
22 n−gram索引
23 単語境界位置索引
24 文字列単位検索手段
25 単語単位検索手段
Claims (10)
- 登録文書群から指定された検索文字列を含む文書を検索する文書検索装置において、
登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解するテキスト分割手段と、
登録文書中のn−gramに関する出現情報をn−gramごとに保持しておくn−gram索引と、
登録文書中の単語境界に関する出現情報を圧縮して記録する単語境界位置索引と、
検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する文字列単位検索手段と、
この文字列単位検索手段の結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する単語単位検索手段とを備え、
前記単語境界位置索引は、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮することを特徴とする文書検索装置。 - 前記ブロックは、固定長のブロックであることを特徴とする請求項1の文書検索装置。
- 最後尾に位置する前記ブロックは、固定長以下とすることを特徴とする請求項2の文書検索装置。
- 前記ブロックには、当該ブロックに記録される出現位置のうち先頭あるいは末尾の出現位置そのものの圧縮データと、先頭あるいは末尾以外の出現位置に係るその直前の出現位置との差分の圧縮データとが記録されることを特徴とする請求項1ないし3のいずれか一記載の文書検索装置。
- 前記ブロックには、当該ブロックに記録される出現位置のうち先頭あるいは末尾の出現位置そのものの非圧縮データと、先頭あるいは末尾以外の出現位置に係るその直前の出現位置との差分の圧縮データとが記録されることを特徴とする請求項1ないし3のいずれか一記載の文書検索装置。
- 最後尾に位置する前記ブロックについては、末尾の出現位置そのものは記録されないことを特徴とする請求項4または5記載の文書検索装置。
- 前記単語境界位置索引と前記n−gram索引とでは、圧縮に使用する符号化手法が異なることを特徴とする請求項1ないし6のいずれか一記載の文書検索装置。
- 文書検索装置が以下の各工程を実行することにより、登録文書群から指定された検索文字列を含む文書を検索する文書検索方法において、
登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解する工程と、
登録文書中のn−gramに関する出現情報をn−gramごとにn−gram索引に保持しておく工程と、
単語境界位置索引に登録文書中の単語境界に関する出現情報を圧縮して記録する工程と、
検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する工程と、
この検索結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する工程とを含み、
前記単語境界位置索引は、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮したものであることを特徴とする文書検索方法。 - コンピュータに、登録文書群から指定された検索文字列を含む文書を検索させるためのプログラムであって、
登録文書あるいは検索文字列であるテキストをn−gram(n文字組)および単語に分解する機能と、
登録文書中のn−gramに関する出現情報をn−gramごとにn−gram索引に保持しておく機能と、
単語境界位置索引に登録文書中の単語境界に関する出現情報を圧縮して記録する機能と、
検索文字列をn−gramに分割した結果に基づいて前記n−gram索引を参照して検索文字列を含む文書あるいはその文書における出現位置を検索する機能と、
この検索結果に対し検索文字列を単語に分割した結果に基づいて前記単語境界位置索引を参照して検索文字列が単語として現われているか否かを判断し、検索文字列を単語として含む文書を検索する機能とを前記コンピュータに実現させるためのものであり、
前記単語境界位置索引は、単語境界が出現する文書における出現位置を、1つの文書につき複数のブロックを用いて圧縮したものであることを特徴とするプログラム。 - 請求項9記載のプログラムを記憶したことを特徴とするコンピュータに読み取り可能な記憶媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001243854A JP4342753B2 (ja) | 2001-08-10 | 2001-08-10 | 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 |
EP20020255373 EP1288799A3 (en) | 2001-08-10 | 2002-07-31 | Document retrieval using index of reduced size |
US10/207,816 US7072889B2 (en) | 2001-08-10 | 2002-07-31 | Document retrieval using index of reduced size |
CNB021315280A CN1288581C (zh) | 2001-08-10 | 2002-08-10 | 用缩减大小的索引进行文献检索的设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001243854A JP4342753B2 (ja) | 2001-08-10 | 2001-08-10 | 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003058578A JP2003058578A (ja) | 2003-02-28 |
JP4342753B2 true JP4342753B2 (ja) | 2009-10-14 |
Family
ID=19073882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001243854A Expired - Fee Related JP4342753B2 (ja) | 2001-08-10 | 2001-08-10 | 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7072889B2 (ja) |
EP (1) | EP1288799A3 (ja) |
JP (1) | JP4342753B2 (ja) |
CN (1) | CN1288581C (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490092B2 (en) | 2000-07-06 | 2009-02-10 | Streamsage, Inc. | Method and system for indexing and searching timed media information based upon relevance intervals |
US7702666B2 (en) * | 2002-06-06 | 2010-04-20 | Ricoh Company, Ltd. | Full-text search device performing merge processing by using full-text index-for-registration/deletion storage part with performing registration/deletion processing by using other full-text index-for-registration/deletion storage part |
US7284009B2 (en) * | 2002-12-13 | 2007-10-16 | Sun Microsystems, Inc. | System and method for command line prediction |
CA2475189C (en) * | 2003-07-17 | 2009-10-06 | At&T Corp. | Method and apparatus for window matching in delta compressors |
JP4646289B2 (ja) * | 2004-07-14 | 2011-03-09 | 株式会社リコー | データベースマネジメントシステム |
JP4682627B2 (ja) * | 2005-01-27 | 2011-05-11 | 富士ゼロックス株式会社 | 文書検索装置および方法 |
JP4314204B2 (ja) * | 2005-03-11 | 2009-08-12 | 株式会社東芝 | 文書管理方法、システム及びプログラム |
JP4347264B2 (ja) * | 2005-05-20 | 2009-10-21 | キヤノン株式会社 | 文書管理システム |
JP4861078B2 (ja) * | 2006-06-30 | 2012-01-25 | 富士通株式会社 | 索引作成プログラム、索引作成装置および索引作成方法 |
US8261200B2 (en) * | 2007-04-26 | 2012-09-04 | Fuji Xerox Co., Ltd. | Increasing retrieval performance of images by providing relevance feedback on word images contained in the images |
JP2009037359A (ja) * | 2007-07-31 | 2009-02-19 | Hitachi Ltd | データ登録検索方法、データ登録検索プログラムおよびデータベースシステム |
JP5224851B2 (ja) * | 2008-02-27 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 検索エンジン、検索システム、検索方法およびプログラム |
KR101255557B1 (ko) * | 2008-12-22 | 2013-04-17 | 한국전자통신연구원 | 음절 분리에 기반한 문자열 검색 시스템 및 그 방법 |
US9442933B2 (en) | 2008-12-24 | 2016-09-13 | Comcast Interactive Media, Llc | Identification of segments within audio, video, and multimedia items |
US8713016B2 (en) | 2008-12-24 | 2014-04-29 | Comcast Interactive Media, Llc | Method and apparatus for organizing segments of media assets and determining relevance of segments to a query |
US11531668B2 (en) | 2008-12-29 | 2022-12-20 | Comcast Interactive Media, Llc | Merging of multiple data sets |
US8176043B2 (en) | 2009-03-12 | 2012-05-08 | Comcast Interactive Media, Llc | Ranking search results |
US20100250614A1 (en) * | 2009-03-31 | 2010-09-30 | Comcast Cable Holdings, Llc | Storing and searching encoded data |
US8533223B2 (en) | 2009-05-12 | 2013-09-10 | Comcast Interactive Media, LLC. | Disambiguation and tagging of entities |
US9892730B2 (en) | 2009-07-01 | 2018-02-13 | Comcast Interactive Media, Llc | Generating topic-specific language models |
JP5449521B2 (ja) * | 2010-02-24 | 2014-03-19 | 三菱電機株式会社 | 検索装置及び検索プログラム |
JP5441791B2 (ja) * | 2010-03-30 | 2014-03-12 | 株式会社日立ソリューションズ | 検索機能付きファイルストレージ装置及びプログラム |
US8606565B2 (en) * | 2010-11-10 | 2013-12-10 | Rakuten, Inc. | Related-word registration device, information processing device, related-word registration method, program for related-word registration device, and recording medium |
US9529908B2 (en) | 2010-11-22 | 2016-12-27 | Microsoft Technology Licensing, Llc | Tiering of posting lists in search engine index |
US8620907B2 (en) | 2010-11-22 | 2013-12-31 | Microsoft Corporation | Matching funnel for large document index |
US8478704B2 (en) | 2010-11-22 | 2013-07-02 | Microsoft Corporation | Decomposable ranking for efficient precomputing that selects preliminary ranking features comprising static ranking features and dynamic atom-isolated components |
US8713024B2 (en) | 2010-11-22 | 2014-04-29 | Microsoft Corporation | Efficient forward ranking in a search engine |
US9424351B2 (en) | 2010-11-22 | 2016-08-23 | Microsoft Technology Licensing, Llc | Hybrid-distribution model for search engine indexes |
JP5733285B2 (ja) * | 2012-09-20 | 2015-06-10 | カシオ計算機株式会社 | 検索装置、検索方法及びプログラム |
JP5900367B2 (ja) * | 2013-01-30 | 2016-04-06 | カシオ計算機株式会社 | 検索装置、検索方法及びプログラム |
US9535983B2 (en) * | 2013-10-29 | 2017-01-03 | Microsoft Technology Licensing, Llc | Text sample entry group formulation |
US9535883B2 (en) | 2014-10-24 | 2017-01-03 | Dropbox, Inc. | Modifying native document comments in a preview |
GB201421674D0 (en) * | 2014-12-05 | 2015-01-21 | Business Partners Ltd | Real time document indexing |
US10565182B2 (en) * | 2015-11-23 | 2020-02-18 | Microsoft Technology Licensing, Llc | Hardware LZMA compressor |
US10380195B1 (en) * | 2017-01-13 | 2019-08-13 | Parallels International Gmbh | Grouping documents by content similarity |
KR102326121B1 (ko) | 2017-09-20 | 2021-11-12 | 삼성에스디에스 주식회사 | 텍스트 컨텐츠 인덱싱 방법 및 그 장치 |
US12061637B2 (en) * | 2022-09-11 | 2024-08-13 | Microsoft Technology Licensing, Llc | Heuristic identification of shared substrings between text documents |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5020019A (en) | 1989-05-29 | 1991-05-28 | Ricoh Company, Ltd. | Document retrieval system |
JPH03129472A (ja) | 1989-07-31 | 1991-06-03 | Ricoh Co Ltd | 文書検索装置における処理方法 |
JP3415214B2 (ja) | 1993-09-09 | 2003-06-09 | 株式会社東芝 | 文書検索装置 |
US5706365A (en) | 1995-04-10 | 1998-01-06 | Rebus Technology, Inc. | System and method for portable document indexing using n-gram word decomposition |
US6006221A (en) * | 1995-08-16 | 1999-12-21 | Syracuse University | Multilingual document retrieval system and method using semantic vector matching |
US6014464A (en) * | 1997-10-21 | 2000-01-11 | Kurzweil Educational Systems, Inc. | Compression/ decompression algorithm for image documents having text graphical and color content |
JP2000067070A (ja) | 1998-08-24 | 2000-03-03 | Matsushita Electric Ind Co Ltd | 情報検索方法、検索ファイル作成方法及び情報検索装置 |
JP3696745B2 (ja) * | 1999-02-09 | 2005-09-21 | 株式会社日立製作所 | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2000348059A (ja) | 1999-06-09 | 2000-12-15 | Ricoh Co Ltd | 文書検索方法 |
CN1156779C (zh) | 1999-06-09 | 2004-07-07 | 株式会社理光 | 文献检索的方法和装置 |
JP3636941B2 (ja) * | 1999-07-19 | 2005-04-06 | 松下電器産業株式会社 | 情報検索方法と情報検索装置 |
JP4115048B2 (ja) | 1999-08-17 | 2008-07-09 | 株式会社リコー | 文書検索システム |
-
2001
- 2001-08-10 JP JP2001243854A patent/JP4342753B2/ja not_active Expired - Fee Related
-
2002
- 2002-07-31 EP EP20020255373 patent/EP1288799A3/en not_active Ceased
- 2002-07-31 US US10/207,816 patent/US7072889B2/en not_active Expired - Fee Related
- 2002-08-10 CN CNB021315280A patent/CN1288581C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030033297A1 (en) | 2003-02-13 |
CN1288581C (zh) | 2006-12-06 |
EP1288799A3 (en) | 2006-04-12 |
CN1402160A (zh) | 2003-03-12 |
US7072889B2 (en) | 2006-07-04 |
EP1288799A2 (en) | 2003-03-05 |
JP2003058578A (ja) | 2003-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4342753B2 (ja) | 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 | |
KR100597513B1 (ko) | 파일 처리 방법, 데이터 처리 장치 및 기억 매체 | |
EP0810534B1 (en) | Document display system and electronic dictionary | |
US20020116402A1 (en) | Information component based data storage and management | |
JPH08255155A (ja) | 全文登録語検索装置および方法 | |
JPH11259521A (ja) | 文書理解支援装置、要約文生成方法、並びに文書理解支援プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JPH09261072A (ja) | 文書管理装置及びデータ圧縮方法及びデータ復元方法 | |
US8190614B2 (en) | Index compression | |
JP3770919B2 (ja) | ファイル処理方法、データ処理装置及び記憶媒体 | |
JP4237813B2 (ja) | 構造化文書管理システム | |
JP3022539B1 (ja) | 文書検索装置 | |
JP2007286742A (ja) | 文書検索装置 | |
JP2002269139A (ja) | 文書検索方法 | |
JP2001109754A (ja) | 索引ファイルを使用した検索方法及びそれに用いる装置 | |
JPWO2005101210A1 (ja) | データ解析装置およびデータ解析プログラム | |
JPH10214268A (ja) | 文書検索方法および装置 | |
JP4091586B2 (ja) | 構造化文書管理システム、索引構築方法及びプログラム | |
JP5346156B2 (ja) | プログラム、転置インデックスの格納方法及び検索方法 | |
JP7377915B2 (ja) | 個別データ検索サービスを提供する方法、コンピュータ装置、およびコンピュータプログラム | |
JP5674974B2 (ja) | 圧縮データ処理プログラム、圧縮データ編集プログラム | |
JP4304226B2 (ja) | 構造化文書管理システム、構造化文書管理方法及びプログラム | |
US20160210304A1 (en) | Computer-readable recording medium, information processing apparatus, and conversion process method | |
JP4461151B2 (ja) | 構造化文書管理システム及びプログラム | |
JP4160627B2 (ja) | 構造化文書管理システム及びプログラム | |
JP3099683B2 (ja) | 情報検索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041004 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20051021 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060602 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060607 |
|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20060922 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090309 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090317 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090514 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090707 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090708 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120717 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120717 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120717 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130717 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |