JP2011232943A - 検索装置、ならびに、コンピュータプログラム - Google Patents

検索装置、ならびに、コンピュータプログラム Download PDF

Info

Publication number
JP2011232943A
JP2011232943A JP2010102368A JP2010102368A JP2011232943A JP 2011232943 A JP2011232943 A JP 2011232943A JP 2010102368 A JP2010102368 A JP 2010102368A JP 2010102368 A JP2010102368 A JP 2010102368A JP 2011232943 A JP2011232943 A JP 2011232943A
Authority
JP
Japan
Prior art keywords
search
gram
character string
grams
appearance frequency
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.)
Granted
Application number
JP2010102368A
Other languages
English (en)
Other versions
JP5083367B2 (ja
JP2011232943A5 (ja
Inventor
Katsuhiko Sato
勝彦 佐藤
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2010102368A priority Critical patent/JP5083367B2/ja
Priority to CN201110112548.1A priority patent/CN102236697B/zh
Priority to US13/094,012 priority patent/US8412697B2/en
Publication of JP2011232943A publication Critical patent/JP2011232943A/ja
Publication of JP2011232943A5 publication Critical patent/JP2011232943A5/ja
Application granted granted Critical
Publication of JP5083367B2 publication Critical patent/JP5083367B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数の文書から、指定された検索文字列を含む文書を効率的に絞り込むのに好適な検索装置等を提供する。
【解決手段】検索対象の複数の文書データから抽出されたNグラムについて、出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶部11を備えた検索装置10において、Nグラム抽出部13は、検索文字列からNグラムを抽出し、最少頻度導出部14は、検索文字列から抽出されたNグラムのうち、複数の文書データに関して最少出現頻度を有するNグラムを導出し、検索Nグラム選定部15は、検索文字列を被覆し、かつ、導出された最少出現頻度を有するNグラムを含む複数の検索Nグラムを、検索文字列から抽出されたNグラムのうちから選定し、文書特定部16は、選定された複数の検索Nグラムについて、複数の文書データのうちから検索文字列を含む文書データを特定する。
【選択図】図1

Description

本発明は、複数の文書から、指定された検索文字列を含む文書を絞り込む検索装置、ならびに、コンピュータプログラムに関する。
文書の電子化の増大に伴い、これまでに蓄積されてきた大量の文書群から所望の文書を見つけ出す検索技術の重要性が高まっている。
英語などの多くの言語においては、単語を索引単位として索引ファイルを作成して、これを用いて高速な検索処理を実現することが一般的である。しかし、日本語の場合、スペース等によって単語の切れ目が明示的に示されないため、しばしば、Nグラムを索引単位とする方法が用いられている。
Nグラムとは、連続するN文字からなる部分文字列のことである。Nグラムによる索引ファイル(以下、転置インデックスと呼称する)の作成には、文字列にのみ基づくため、単語を認識する必要がない。しかし、検索処理される検索語が複数のNグラムに分割されて処理されるので、長い検索語で検索処理を行う場合、検索時間が増大するという問題がある。
このような問題に対し、非特許文献1において、検索処理の高速化の技術が開示されている。具体的に、非特許文献1では、Nグラムの文書頻度の和を処理の高速化の推定値として計算し、実際に文書の検索処理に用いるNグラムの選定に利用することで、検索処理の高速化を行う。
小川泰嗣,松田透,"n−gram索引を用いた効率的な文書検索法",電子情報通信学会論文誌(D-I),Vol.J82-D-I,No.1,pp.121-129,1999年1月
このようなNグラムを用いた検索の、検索処理の高速化において、より単純な処理によって高速化を実現したい、との要望がある。すなわち、携帯電話や小型電子機器に搭載された小型の電子辞書等といった、限られた処理速度や容量においても、効率的な検索を実現したい、というものである。
本発明は、以上のような課題を解決するためのものであり、複数の文書から、指定された検索文字列を含む文書を効率的に絞り込むのに好適な検索装置、ならびに、コンピュータプログラムを提供することを目的とする。
上記目的を達成するため、本発明の第1の観点にかかる検索装置は、
検索対象の複数の文書データから抽出された「N文字の文字列であるNグラム(Nは自然数)」のそれぞれについて、前記複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶手段と、
検索文字列からNグラムを抽出するNグラム抽出手段と、
前記転置インデックスの出現頻度情報に基づいて、前記検索文字列から抽出されたNグラムのうち、前記複数の文書データに関して最少出現頻度を有するNグラムを導出する最少頻度導出手段と、
前記検索文字列を被覆し、かつ、前記導出された最少出現頻度を有するNグラムを含む複数の検索Nグラムを、前記検索文字列から抽出されたNグラムのうちから選定する検索Nグラム選定手段と、
前記選定された複数の検索Nグラムについて、前記転置インデックスの出現位置情報に基づいて、前記複数の文書データのうちから前記検索文字列を含む文書データを特定する文書特定手段と、
を備えることを特徴とする。
上記検索装置において、
前記検索Nグラム選定手段は、前記検索文字列を被覆する最小限度の数または最小限度の数に1を加えた数の検索Nグラムを、前記検索文字列から抽出されたNグラムのうちから選定する、
ことが望ましい。
上記検索装置において、
前記検索Nグラム選定手段は、前記複数の検索Nグラムとして、前記検索文字列から抽出されたNグラムのうち、
(a)まず、前記検索文字列の先頭の文字から順に、N文字単位で重複しないように分割し、分割されたそれぞれのN文字列で構成されるNグラムを選定し、
(b)次に、前記選定されたNグラムで前記検索文字列を被覆できない場合には、前記検索文字列の末尾の文字を含むNグラムを追加して選定し、
(c)最後に、選定されたNグラム中に前記最少出現頻度を有するNグラムが含まれていない場合には、前記最少出現頻度を有するNグラムを追加して選定する、
ことが望ましい。
上記検索装置において、
前記検索Nグラム選定手段は、前記複数の検索Nグラムとして、前記検索文字列から抽出されたNグラムのうち、
(a)まず、前記検索文字列の先頭および/又は末尾の文字を含むNグラムを選定し、
(b)次に、前記最少出現頻度を有するNグラムを追加して選定し、
(c)最後に、前記検索文字列における、前記最少出現頻度を有するNグラムを構成する文字列の位置を基準に、前方および/又は後方へ、N文字単位で重複しないように分割し、分割されたそれぞれのN文字列で構成されるNグラムを追加して選定する、
ことが望ましい。
上記検索装置において、
前記文書特定手段は、前記転置インデックスの出現頻度情報に基づいて、前記選定された複数の検索Nグラムのうち、出現頻度の少ない検索Nグラムから順に、文書データの特定に用いる、
ことが望ましい。
上記目的を達成するため、本発明の第2の観点にかかるコンピュータプログラムは、
検索対象の複数の文書データから抽出された「N文字の文字列であるNグラム(Nは自然数)」のそれぞれについて、前記複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶手段を備えるコンピュータを、
検索文字列からNグラムを抽出するNグラム抽出手段、
前記転置インデックスの出現頻度情報に基づいて、前記検索文字列から抽出されたNグラムのうち、前記複数の文書データに関して最少出現頻度を有するNグラムを導出する最少頻度導出手段、
前記検索文字列を被覆し、かつ、前記導出された最少出現頻度を有するNグラムを含む複数の検索Nグラムを、前記検索文字列から抽出されたNグラムのうちから選定する検索Nグラム選定手段、
前記選定された複数の検索Nグラムについて、前記転置インデックスの出現位置情報に基づいて、前記複数の文書データのうちから前記検索文字列を含む文書データを特定する文書特定手段、
として機能させる。
本発明によれば、複数の文書から、指定された検索文字列を含む文書を効率的に絞り込むのに好適な検索装置、ならびに、コンピュータプログラムを提供することができる。
検索装置の概要構成図である。 検索装置が構成されるコンピュータ装置の概要構成の1例を示す図である。 検索装置が構成されるコンピュータ装置の概要構成の別の例を示す図である。 検索装置の検索処理の流れを示すフローチャートである。 転置インデックスの具体的な構成を示す図である。 実施形態1に係る、検索Nグラムの選定処理の流れを示すフローチャートである。 実施形態2に係る、検索Nグラムの選定処理の流れを示すフローチャートである。
以下、本発明の実施形態に係る検索装置について説明する。以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。
(実施形態1)
以下、図1を参照して実施形態1に係る検索装置10について説明する。
検索装置10は、記憶部11と、入力部12と、Nグラム抽出部13と、最少頻度導出部14と、検索Nグラム選定部15と、文書特定部16と、出力部17と、を備える。
記憶部11は、検索対象の複数の文書データから抽出されたNグラムについて、複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する。記憶部11は、例えば、ハードディスク装置によって構成される。
具体的には、1個の文書データNdoc文字の文字列から構成されていた場合、Ndoc−N+1個のNグラム(N文字列)が抽出され、さらに、複数の文書データについて同様にNグラムが抽出され、同一パターンのNグラムに関して、それぞれの出現位置と出現頻度とを記載した転置インデックスが、記憶部11に記憶される。
入力部12は、ユーザから検索文字列を受け付ける。具体的には、キーボードやタッチパネル等の入力装置によってユーザが入力した検索文字列を受付ける。そして、受け付けた検索文字列を、Nグラム抽出部13へ供給する。
Nグラム抽出部13は、入力部12によって受け付けられた検索文字列から、Nグラムを抽出する。すなわち、コンピュータ装置のCPUなどによって、検索文字列を構成するNグラムのうち、抽出可能なものを抽出する。そして、抽出されたNグラムを、最少頻度導出部14へ供給する。
具体的には、ユーザがM文字の検索文字列を入力したとき、Nグラム抽出部13は、検索文字列から抽出可能なすべてのNグラム(N文字列)を抽出する。すなわち、M−N+1個のNグラムが抽出されることになる。
最少頻度導出部14は、記憶部11に記憶されている転置インデックスの出現頻度情報に基づいて、Nグラム抽出部13により抽出されたNグラムのうち、複数の文書データに関して最少出現頻度を有するNグラムを導出する。最少頻度導出部14は、Nグラム抽出部13により抽出されたNグラムに、導出された最少出現頻度を有するNグラムの情報を付して、検索Nグラム選定部15へ供給する。
すなわち、最少頻度導出部14では、上述したM−N+1個のNグラムのうち、複数の文書データの中で最も出現頻度が少ないNグラムが、導出される。
検索Nグラム選定部15は、検索文字列を被覆し、かつ、最少頻度導出部14により導出された最少出現頻度を有するNグラムを含む複数の検索Nグラムを、Nグラム抽出部13により抽出されたNグラムのうちから選定する。検索Nグラム選定部15は、選定された複数の検索Nグラムを、文書特定部16へ供給する。
すなわち、Nグラム抽出部13によって抽出されたすべてのNグラムには、位置が隣り合うものには重なりがあるため、後述する文書データの特定には、抽出されたすべてのNグラムを使用する必要はなく、検索文字列を被覆するNグラムがあれば十分である。そのため、検索Nグラム選定部15は、検索文字列を被覆する検索Nグラムを、Nグラム抽出部13によって抽出されたNグラムのうちから選定する。
ここで、選定されたNグラムには、最少頻度導出部14によって導出された最少出現頻度を有するNグラムを、必ず含める。この最少出現頻度を有するNグラムを、後述する文書データの特定に用いることで、効率的に文書データの絞り込みが行えるようになる。
文書特定部16は、検索Nグラム選定部15により選定された複数の検索Nグラムについて、記憶部11に記憶されている転置インデックスの出現位置情報に基づいて、複数の文書データのうちから検索文字列を含む文書データを特定する。そして、特定された文書データを、出力部17へ供給する。
すなわち、文書特定部16では、複数の検索Nグラムの出現位置が、検索文字列における順序で連続に出現するかどうかを判定し、連続で出現すると判定された位置の文書データを、特定する。
出力部17は、文書特定部16により特定された文書データを受け、ユーザへ出力する。具体的には、例えばディスプレイ等の出力装置を用いて、文書データの情報を出力する。
以下、図2Aおよび図2Bを用いて、図1に示した検索装置10が物理的に構成される一般的なコンピュータ装置の概要構成を説明する。
図2Aにおいて、コンピュータ装置20は、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、RAM(Random Access Memory)23、HDD(Hard Disk Drive)24、入力装置25、出力装置26、通信制御装置27により構成される。各構成要素は、命令やデータを転送するための伝送経路であるシステムバスにより、相互に接続されている。
CPU21は、コンピュータ装置20全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
ROM22は、コンピュータ装置20全体の動作制御に必要なコンピュータプログラムや各種データを記憶する。特に本実施形態では、検索処理のため必要なコンピュータプログラムや各種データを記憶する。
RAM23は、データやコンピュータプログラムを一時的に記憶するためのもので、ROM22から読み出したコンピュータプログラムやデータ、その他処理の進行に必要なデータが保持される。
HDD24は、検索処理の動作のために必要なデータ等を記憶するためのもので、特に本実施形態では、検索対象の複数の文書データ28、および、複数の文書データ28から抽出されたNグラムのそれぞれについて、複数の文書データ28中の出現位置と出現頻度とを構成要素とする転置インデックス29、を記憶する記憶部11として動作することが想定される。
入力装置25は、例えばキーボードやタッチパネル等によって構成され、ユーザからの入力を受け付ける。本実施形態では、Nグラム抽出部13へ供給されるユーザが入力した検索文字列を受け付ける。
出力装置26は、例えばディスプレイ等によって構成され、コンピュータ装置20の処理結果を出力する。本実施形態では、文書特定部16により特定された検索文字列を含む文書データ28を、ユーザへ出力する。
通信制御装置27は、コンピュータ装置20をインターネット等のコンピュータ通信網に接続するためのものであり、コンピュータ通信網に接続してデータをやり取りする場合に必要となる。例えば、本実施形態において、上述したHDD24に記憶されている検索対象の複数の文書データ28は、通信制御装置27を介して取得できるようにすることも可能である。
本実施形態では、複数の文書データ28は、HDD24内ではなく、コンピュータ装置20の外に存在していてもよい。この例について、図2Bを用いて説明する。
図2Bは、図2Aと同様な図であるが、この例では、複数の文書データ28はHDD24には存在せず、コンピュータ装置20の外に存在する。この場合、通信制御装置27によりコンピュータ通信網を介して文書データ28へ接続することになる。
そのため、図2Bの実施形態では図2Aでのものに比べ、コンピュータ装置20内に文書データ28を記憶する必要がなく、インターネットに適切に接続可能な環境であれば、小型の電子辞書のような限られた容量の装置においても実現しやすくなる。
このような構成によって実現される検索装置10について、具体的な検索処理の詳細を、以下に図3を参照して、フローチャートを用いて説明していく。
検索装置10の処理が開始されると、まず検索装置10は、入力装置25によってユーザから検索文字列を受け付け(ステップS301)、Nグラム抽出部13によって、受け付けられた検索文字列から、Nグラムを抽出する(ステップS302)。
具体的に、ユーザが「高速化全文検索処理」という9文字の検索文字列を入力したとする。このとき、N=2による検索処理の場合、抽出されるNグラム(バイグラム)は、前から順に「高速」、「速化」、「化全」、「全文」、「文検」、「検索」、「索処」、「処理」、の8個(9−2+1個)である。また、例えば、N=3による検索処理の場合、抽出されるNグラム(トリグラム)は、前から順に「高速化」、「速化全」、「化全文」、「全文検」、「文検索」、「検索処」、「索処理」の7個(9−3+1個)である。
ここでNの値は、検索装置10において予め定めらている値であり、N=2、N=3、あるいはそれ以外の自然数の値をとるが、以下では説明のために、その都度N=2やN=3などの場合を用いて説明をする。
次に、最少頻度導出部14によって、抽出されたNグラムの中から、最少出現頻度のNグラムを導出する(ステップS303)。ここで、出現頻度の情報は、記憶部11に記憶されている、転置インデックス29によって、取得する。
以下、図4を用いて、本実施形態に係る転置インデックス29の具体的な構成を説明する。本図に示すように、転置インデックス29は、Nグラム文字列パターンと出現位置情報格納アドレスが記載されたファイル(pattern.idx)、各Nグラム文字列パターンについての出現頻度と出現位置が記載されたファイル(position.idx)、文書番号と各文書の先頭文字位置が記載されたファイル(number.idx)の3つのファイルから構成される。
ここで、出現位置は、検索対象の文書群を文書番号順に並べたテキストの先頭文字位置を基準とした位置である。同様に、本図中の各文書番号の先頭文字位置も、検索対象の文書群を文書番号順に並べたテキストの先頭文字位置を基準とした位置である。
図3に戻って、このような転置インデックス29の情報を用いて、ステップS303では、ステップS302にて抽出されたNグラムの中で、出現頻度が最も少ないNグラムが導出される。
ここで、最少出現頻度のNグラムが複数あるときは、いずれか1個、典型的には検索文字列の位置が前方にあるもの、を導出する。また、最少出現頻度がゼロのNグラムが1つでも存在する場合には、複数の文書データ28中に検索文字列が存在しないということになるので、以下のステップに進まずに、典型的には「検索文字列が見つかりませんでした。」等をユーザへ出力して、処理を終了する(図示せず)。
次に、検索装置10は、検索Nグラム選定部15によって、抽出されたNグラムの中から、最少出現頻度のNグラムを含むように、検索Nグラムを選定する(ステップS304)。ここでの選定処理の詳細は、以下の図5のフローチャートを参照して、説明する。
以下、図5を用いて、実施形態1に係る、検索Nグラムの選定処理の流れを説明する。
まず、選定処理では、検索文字列の先頭から重複しないように検索Nグラムを選定する(ステップS501)。
具体的に、上述した「高速化全文検索処理」という9文字の検索文字列に対し、N=2による検索処理で、「高速」、「速化」、「化全」、「全文」、「文検」、「検索」、「索処」、「処理」、の8個のNグラム(バイグラム)が抽出された場合を考える。ステップS501では、先頭から重複しないように、「高速」、「化全」、「文検」、「索処」、の4個が選定される。
次に、選定された検索Nグラムが、検索文字列を被覆しているかを判定する(ステップS502)。例えば、上記で選定された4個のNグラム(バイグラム)では、検索文字列の末尾の「理」という文字が被覆されていない(ステップS502;NO)。したがって、検索文字列の末尾の文字を含むNグラムを、検索用文字列に追加して選定する(ステップS503)。
具体的に、上記で被覆されていない末尾の「理」文字を含むバイグラムである「処理」が追加して選定される。この状態で、「高速」、「化全」、「文検」、「索処」、「処理」の5個のバイグラムが選定され、全体で「高速化全文検索処理」という9文字の検索文字列を被覆できたことになる。ここで選定された5個のバイグラムは、9文字の検索文字列を被覆できる最小限度の数([9文字/2文字]=5個、[x]はx以上の最小の自然数とする)である。この後、ステップS504へ移行する。
一方で、例えば、上述したN=3のトリグラムによる検索処理の場合、ステップS501で選定されるNグラム(トリグラム)は、「高速化」、「全文検」、「索処理」の3個となり、この3個で検索文字列を被覆([9文字/3文字]=3個)できているため(ステップS502;YES)、ステップS503での処理はされずにステップS504へ移行することになる。
そして、選定された検索Nグラムが、最少出現頻度のNグラムを有しているか、が判定される(ステップS504)。ここで、ステップS303において導出された、最少出現頻度のNグラムの情報を用いて、判定する。
具体的に、上述したN=2のバイグラムによる検索処理の場合、ステップS504の直前では、「高速」、「化全」、「文検」、「索処」、「処理」の5個のバイグラムが選定されている状態である。例えば、最少出現頻度のバイグラムが、「索処」であった場合、選定された5個のバイグラムに含まれているので(ステップS504;YES)、このまま検索Nグラムの選定処理を終了する。
一方で、例えば、最少出現頻度のバイグラムが、「速化」であった場合、選定された5個のバイグラムに含まれていないので(ステップS504;NO)、最少出現頻度のNグラム、すなわち「速化」のバイグラムを、検索Nグラムに追加して選定し(ステップS505)、検索Nグラムの選定処理を終了する。この例では最終的に、「高速」、「速化」、「化全」、「文検」、「索処」、「処理」の6個のバイグラムが検索Nグラムとして選定されたことになる。
図3に戻って、ここから、上記ステップS304において選定された検索Nグラムを用いて、文書特定部16によって検索文字列が含まれる文書データ28を特定する処理に移行する。具体的に、「高速化全文検索処理」という9文字の検索文字列に対し、N=2による検索処理の場合において、ステップS304にて選定された検索用バイグラムが、上述した「高速」、「化全」、「文検」、「索処」、「処理」の5個のバイグラムであった場合を考える。
まず、選定された検索Nグラムを、出現頻度の少ない順に並べる(ステップS305)。この処理は、転置インデックス29の各Nグラムの出現頻度情報を基に行われる。すなわち、上記5個のバイグラムの出現頻度が、それぞれ、「高速」10回、「化全」8回、「文検」5回、「索処」3回、「処理」13回、であったとき、出現頻度の少ない順に、「索処」、「文検」、「化全」、「高速」、「処理」、と並べ替えられる。
ここで出現頻度の少ない順に検索Nグラムを並べる理由は、特定されるべき文書データ28は、すべての検索Nグラムを含んでいるはずであり、出現頻度の多いNグラムを基準として文書データ28を絞り込むことに比べ、出現頻度の少ないNグラムを基準として文書データ28を絞り込んでいく方が、効率的に絞り込むことができるからである。
次に、最少出現頻度のNグラムにおける出現位置の中に、未評価のものがあるかどうかを判定する(ステップS306)。すなわち、最少出現頻度のバイグラム「索処」の3回の出現位置が、複数の文書データ28の中において、「100文字目」、「300文字目」、「700文字目」であった場合、ここではいずれも未評価な状態なので(ステップS306;YES)、ステップS307に移行する。
そして、未評価の出現位置に着目する(ステップS307)。すなわち、上記最少出現頻度のバイグラム「索処」の3回の出現位置「100文字目」、「300文字目」、「700文字目」において、ここではいずれも未評価な状態なので、まず最初の出現位置である「100文字目」に着目することが典型的である。
そして、着目された出現位置と連続する出現位置を、他のすべての検索Nグラムが有するか、を判定する(ステップS308)。具体的には、出現頻度の少ない順にバイグラムを選び、以下の(a)〜(d)の判定処理を行う。すなわち、それぞれのバイグラムの出現位置が、検索文字列「高速化全文検索処理」を構成しているとするならどの出現位置に存在するのか、を判定する。
(a)検索用バイグラム「文検」は、最少出現頻度のバイグラム「索処」よりも2文字前方に位置しているはずなので、その5回の出現位置の中に、「98文字目(=100−2文字目)」の出現位置を有するか。
(b)検索用バイグラム「化全」は、最少出現頻度のバイグラム「索処」よりも4文字前方に位置しているはずなので、その8回の出現位置の中に、「96文字目(=100−4文字目)」の出現位置を有するか。
(c)検索用バイグラム「高速」は、最少出現頻度のバイグラム「索処」よりも6文字前方に位置しているはずなので、その10回の出現位置の中に、「94文字目(=100−6文字目)」の出現位置を有するか。
(d)検索用バイグラム「処理」は、最少出現頻度のバイグラム「索処」よりも1文字後方に位置しているはずなので、その13回の出現位置の中に、「101文字目(=100+1文字目)」の出現位置を有するか。
ここで、上記(a)〜(d)のうち、1つでも有しない検索用バイグラムがあった場合(ステップS308;NO)、ステップS306の判定へ戻り、ステップS307において、最少出現頻度のバイグラム「索処」のもつ未評価の出現位置、すなわちここでは、「300文字目」、に着目し直す。そして着目された「300文字目」について、ステップS308の判定処理を再び繰り返す。
一方、上記(a)〜(d)の判定において、すべての検索用バイグラムが対応する連続した出現位置を有している、と判定された場合は(ステップS308;YES)、その連続した出現位置に検索文字列「高速化全文検索処理」があるということになる。そのため、ここで検索装置10は、連続した出現位置と、文書番号の先頭文字位置とから、文書番号を特定し、保持する(ステップS309)。すなわち、検索文字列の出現位置と、転置インデックス29の文書番号とその先頭文字位置を比較して、ここでの出現位置を含む文書番号を特定し、保持する。
そして、ステップS306に戻り、再び最少出現頻度のNグラムにおける出現位置の中に、未評価のものがあるかどうかを判定する。具体的に、上記の例において、最少出現頻度のバイグラム「索処」の3回の出現位置が、複数の文書データ28の中において、「100文字目」、「300文字目」、「700文字目」であった場合、現在の処理が最初の「100文字目」に着目された処理であるなら、未評価の「300文字目」、「700文字目」のものがあるため(ステップS309;YES)、ステップS307に戻って、未評価のものに着目した処理を繰り返す。
一方、最少出現頻度のNグラムにおける出現位置を、すべて評価した場合(ステップS306;NO)、ステップS309において保持されたすべての文書番号に対応する文書データ28を、ユーザへ出力する(ステップS310)。その後、処理を終了する。すなわち、ステップS306〜S309の繰り返し処理において、ステップS309を通った回数分の、言い換えると、検索文字列を含むと特定された文書データ28の数だけ、文書データ28が出力されることになる。
ここで、もし検索文字列を含むと特定された文書データ28が1つもなければ、ステップS309においては、いずれの文書データ28も出力せず、典型的には「検索文字列が見つかりませんでした。」等をユーザへ出力して、処理を終了する。
以上により、実施形態1では、検索文字列の先頭の文字から順に重複しないように選定していくという単純な処理に基づいた、高速な検索Nグラム選定処理と、必ず最少出現頻度のNグラムを含む少数(検索文字列を被覆する最小限度またはそれに1を加えた数)の検索Nグラムを選定することによる、効率的な文書特定処理と、の両立が実現できる。
これにより、例えば、携帯電話や小型電子機器に搭載された小型の電子辞書等といった、限られた処理速度や容量における、効率的な検索を実現することが可能になる。
(実施形態2)
次に、本発明の実施形態2について説明する。実施形態1では、検索Nグラムの選定において、最初に検索文字列の先頭の文字から順に重複しないように選定した。実施形態2では、最少出現頻度のNグラムの検索文字列の中での位置を基準に、検索Nグラムを選定していく。以下、詳述する。
ここで、実施形態1の説明に用いた、検索装置の概要構成図(図1)、検索装置が構成されるコンピュータ装置の概要構成図(図2)、検索処理の流れを示すフローチャート(図3)、および、転置インデックス29の具体的な構成(図4)、は実施形態2においても共通であり、そのため、これらの説明は割愛する。実施形態2では、検索Nグラムの選定処理の流れ(図5)が実施形態1と異なっており、以下に新たにフローチャートを用いて説明する。
以下、図6を用いて、実施形態2に係る、検索Nグラムの選定処理の流れを説明する。
まず、検索装置10は、Nグラム抽出部13により抽出されたNグラムの中から、検索文字列の先頭又は末尾の文字を含む2つのNグラムを、検索Nグラムに選定する(ステップS601)。
具体的に、例えば、「高速化された全文検索処理」という12文字の検索文字列に対し、N=2による検索処理で、「高速」、「速化」、「化さ」、「され」、「れた」、「た全」、「全文」、「文検」、「検索」、「索処」、「処理」、の11個のNグラム(バイグラム)が抽出された場合において、ステップS601では、先頭の文字を含むNグラム「高速」、および、末尾の文字を含むNグラム「処理」、の2つのNグラムが選定されることになる。
次に、最少出現頻度のNグラムを、検索Nグラムに追加して選定する(ステップS602)。そして、選定された最少出現頻度のNグラムの位置を基準に、前方へ、重複しないように検索Nグラムを追加して選定し(ステップS603)、同様に後方へも、重複しないように検索Nグラムを追加して選定する(ステップS604)。
具体的に、上記の例において、最少出現頻度のバイグラムが「れた」であった場合、まずステップS602において、このバイグラム「れた」が選定される。さらに、ステップS603において、前方へ重複しないように、すなわち、ここでは「化さ」が選定される。最後に、ステップS604において、後方へ重複しないように、すなわち、ここでは「全文」、および、「検索」の2つのバイグラムが選定される。
すなわち、最少出現頻度のバイグラムの先頭文字が検索文字列の中で奇数番目に位置しているので、奇数番目を先頭とするその他のバイグラムを選定する、ということになる。また、一般にNグラムの場合には、検索文字列の中での位置をNで除した余りが、最少出現頻度のNグラムと等しいものを、選定すればよいことになる。
結果として、ステップS601で選定された2つのバイグラムとあわせて、「高速」、「化さ」、「れた」、「全文」、「検索」、「処理」、という6個のバイグラムが、検索Nグラムとして選定される。これは、最少出現頻度のバイグラムを含み、しかも、上記の12文字の検索文字列を被覆する最小限の個数のバイグラムである。
他方、別の具体例として、最少出現頻度のバイグラムが「た全」であった場合、まずステップS602において、このバイグラム「た全」が選定される。さらに、ステップS603において、前方へ重複しないように、すなわち、ここでは「され」、および、「速化」が選定される。最後に、ステップS604において、後方へ重複しないように、すなわち、ここでは「文検」、および、「索処」の2つのバイグラムが選定される。
すなわち、最少出現頻度のバイグラムの先頭文字が検索文字列の中で偶数番目に位置しているので、偶数番目を先頭とするその他のバイグラムを選定する、ということになる。また、一般にNグラムの場合には、上記と同様に、検索文字列の中での位置をNで除した余りが、最少出現頻度のNグラムと等しいものを、選定すればよいことになる。
結果として、ステップS601で選定された2つのバイグラムとあわせて、「高速」、「速化」、「され」、「た全」、「文検」、「索処」、という7個のバイグラムが、検索Nグラムとして選定される。これは、最少出現頻度のバイグラムを含み、そして、上記の12文字の検索文字列を被覆する最小限の個数より1個多い数のバイグラムとなる。
このような処理によって選定された検索Nグラムを基にして、実施形態1において説明したように、文書特定部16による処理へ移行していく。
以上により、実施形態2では、最少出現頻度のNグラムを基準として、検索文字列を被覆するNグラムを選定することにより、必ず最少出現頻度のNグラムを含む少数(検索文字列を被覆する最小限度またはそれに1を加えた数)の検索Nグラムを選定することができる。これにより、高速な検索Nグラム選定処理と、効率的な文書特定処理と、の両立が実現できる。
また、本発明での実施形態は、上述した実施形態に加え、上記検索装置10としてコンピュータ装置20を機能させるためのコンピュータプログラムであってもよい。
上記コンピュータプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記憶することができる。
また、上記コンピュータプログラムは、コンピュータプログラムが実行されるコンピュータ装置20とは独立して、コンピュータ通信網を介して配付・販売することができる。また、上記情報記憶媒体は、コンピュータ装置20とは独立して配付・販売することができる。
10…検索装置、11…記憶部、12…入力部、13…Nグラム抽出部、14…最少頻度導出部、15…検索Nグラム選定部、16…文書特定部、17…出力部、20…コンピュータ装置、21…CPU、22…ROM、23…RAM、24…HDD、25…入力装置、26…出力装置、27…通信制御装置、28…文書データ、29…転置インデックス

Claims (6)

  1. 検索対象の複数の文書データから抽出された「N文字の文字列であるNグラム(Nは自然数)」のそれぞれについて、前記複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶手段と、
    検索文字列からNグラムを抽出するNグラム抽出手段と、
    前記転置インデックスの出現頻度情報に基づいて、前記検索文字列から抽出されたNグラムのうち、前記複数の文書データに関して最少出現頻度を有するNグラムを導出する最少頻度導出手段と、
    前記検索文字列を被覆し、かつ、前記導出された最少出現頻度を有するNグラムを含む複数の検索Nグラムを、前記検索文字列から抽出されたNグラムのうちから選定する検索Nグラム選定手段と、
    前記選定された複数の検索Nグラムについて、前記転置インデックスの出現位置情報に基づいて、前記複数の文書データのうちから前記検索文字列を含む文書データを特定する文書特定手段と、
    を備えることを特徴とする検索装置。
  2. 前記検索Nグラム選定手段は、前記検索文字列を被覆する最小限度の数または最小限度の数に1を加えた数の検索Nグラムを、前記検索文字列から抽出されたNグラムのうちから選定する、
    ことを特徴とする請求項1に記載の検索装置。
  3. 前記検索Nグラム選定手段は、前記複数の検索Nグラムとして、前記検索文字列から抽出されたNグラムのうち、
    (a)まず、前記検索文字列の先頭の文字から順に、N文字単位で重複しないように分割し、分割されたそれぞれのN文字列で構成されるNグラムを選定し、
    (b)次に、前記選定されたNグラムで前記検索文字列を被覆できない場合には、前記検索文字列の末尾の文字を含むNグラムを追加して選定し、
    (c)最後に、選定されたNグラム中に前記最少出現頻度を有するNグラムが含まれていない場合には、前記最少出現頻度を有するNグラムを追加して選定する、
    ことを特徴とする請求項2に記載の検索装置。
  4. 前記検索Nグラム選定手段は、前記複数の検索Nグラムとして、前記検索文字列から抽出されたNグラムのうち、
    (a)まず、前記検索文字列の先頭および/又は末尾の文字を含むNグラムを選定し、
    (b)次に、前記最少出現頻度を有するNグラムを追加して選定し、
    (c)最後に、前記検索文字列における、前記最少出現頻度を有するNグラムを構成する文字列の位置を基準に、前方および/又は後方へ、N文字単位で重複しないように分割し、分割されたそれぞれのN文字列で構成されるNグラムを追加して選定する、
    ことを特徴とする請求項2に記載の検索装置。
  5. 前記文書特定手段は、前記転置インデックスの出現頻度情報に基づいて、前記選定された複数の検索Nグラムのうち、出現頻度の少ない検索Nグラムから順に、文書データの特定に用いる、
    ことを特徴とする請求項1から4のいずれか1項に記載の検索装置。
  6. 検索対象の複数の文書データから抽出された「N文字の文字列であるNグラム(Nは自然数)」のそれぞれについて、前記複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶手段を備えるコンピュータを、
    検索文字列からNグラムを抽出するNグラム抽出手段、
    前記転置インデックスの出現頻度情報に基づいて、前記検索文字列から抽出されたNグラムのうち、前記複数の文書データに関して最少出現頻度を有するNグラムを導出する最少頻度導出手段、
    前記検索文字列を被覆し、かつ、前記導出された最少出現頻度を有するNグラムを含む複数の検索Nグラムを、前記検索文字列から抽出されたNグラムのうちから選定する検索Nグラム選定手段、
    前記選定された複数の検索Nグラムについて、前記転置インデックスの出現位置情報に基づいて、前記複数の文書データのうちから前記検索文字列を含む文書データを特定する文書特定手段、
    として機能させるためのコンピュータプログラム。
JP2010102368A 2010-04-27 2010-04-27 検索装置、検索方法、ならびに、コンピュータプログラム Active JP5083367B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010102368A JP5083367B2 (ja) 2010-04-27 2010-04-27 検索装置、検索方法、ならびに、コンピュータプログラム
CN201110112548.1A CN102236697B (zh) 2010-04-27 2011-04-26 检索装置以及检索方法
US13/094,012 US8412697B2 (en) 2010-04-27 2011-04-26 Searching apparatus and searching method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010102368A JP5083367B2 (ja) 2010-04-27 2010-04-27 検索装置、検索方法、ならびに、コンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2011232943A true JP2011232943A (ja) 2011-11-17
JP2011232943A5 JP2011232943A5 (ja) 2012-01-05
JP5083367B2 JP5083367B2 (ja) 2012-11-28

Family

ID=44816678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010102368A Active JP5083367B2 (ja) 2010-04-27 2010-04-27 検索装置、検索方法、ならびに、コンピュータプログラム

Country Status (3)

Country Link
US (1) US8412697B2 (ja)
JP (1) JP5083367B2 (ja)
CN (1) CN102236697B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014186482A (ja) * 2013-03-22 2014-10-02 Hitachi Solutions Ltd 全文検索装置
JPWO2014045320A1 (ja) * 2012-09-21 2016-08-18 富士通株式会社 制御プログラム、制御方法および制御装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2857986A4 (en) * 2012-05-31 2015-10-14 Fujitsu Ltd INDEX GENERATION PROGRAM AND RESEARCH PROGRAM
JP5733285B2 (ja) * 2012-09-20 2015-06-10 カシオ計算機株式会社 検索装置、検索方法及びプログラム
CN114003685B (zh) * 2022-01-04 2022-06-07 广州奥凯信息咨询有限公司 分词位置索引构建方法及其装置、文档检索方法及其装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213158A (ja) * 2006-02-07 2007-08-23 Toshiba Corp 構造化文書検索装置および構造化文書検索方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9220404D0 (en) * 1992-08-20 1992-11-11 Nat Security Agency Method of identifying,retrieving and sorting documents
US5706365A (en) * 1995-04-10 1998-01-06 Rebus Technology, Inc. System and method for portable document indexing using n-gram word decomposition
EP0834139A4 (en) * 1995-06-07 1998-08-05 Int Language Engineering Corp COMPUTER-ASSISTED TRANSLATION TOOLS
US6574632B2 (en) * 1998-11-18 2003-06-03 Harris Corporation Multiple engine information retrieval and visualization system
US6292772B1 (en) * 1998-12-01 2001-09-18 Justsystem Corporation Method for identifying the language of individual words
AU777693B2 (en) * 1999-03-05 2004-10-28 Canon Kabushiki Kaisha Database annotation and retrieval
US7162482B1 (en) * 2000-05-03 2007-01-09 Musicmatch, Inc. Information retrieval engine
US7031910B2 (en) * 2001-10-16 2006-04-18 Xerox Corporation Method and system for encoding and accessing linguistic frequency data
US20050060643A1 (en) * 2003-08-25 2005-03-17 Miavia, Inc. Document similarity detection and classification system
JP4314204B2 (ja) * 2005-03-11 2009-08-12 株式会社東芝 文書管理方法、システム及びプログラム
JP4851353B2 (ja) * 2007-01-31 2012-01-11 株式会社リコー 画像処理装置及び画像処理方法
JP4398988B2 (ja) * 2007-03-26 2010-01-13 株式会社東芝 構造化文書を管理する装置、方法およびプログラム
US7877258B1 (en) * 2007-03-29 2011-01-25 Google Inc. Representing n-gram language models for compact storage and fast retrieval
US8073869B2 (en) * 2008-07-03 2011-12-06 The Regents Of The University Of California Method for efficiently supporting interactive, fuzzy search on structured data
JP5300974B2 (ja) * 2009-04-06 2013-09-25 三菱電機株式会社 検索装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213158A (ja) * 2006-02-07 2007-08-23 Toshiba Corp 構造化文書検索装置および構造化文書検索方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2014045320A1 (ja) * 2012-09-21 2016-08-18 富士通株式会社 制御プログラム、制御方法および制御装置
US10318483B2 (en) 2012-09-21 2019-06-11 Fujitsu Limited Control method and control device
JP2014186482A (ja) * 2013-03-22 2014-10-02 Hitachi Solutions Ltd 全文検索装置

Also Published As

Publication number Publication date
JP5083367B2 (ja) 2012-11-28
US20110264675A1 (en) 2011-10-27
US8412697B2 (en) 2013-04-02
CN102236697A (zh) 2011-11-09
CN102236697B (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
JP2007004633A (ja) 言語モデル作成装置およびそれにより作成された言語モデルを使用する言語処理装置
US20180267953A1 (en) Context-based text auto completion
JP5141560B2 (ja) 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法
JP5083367B2 (ja) 検索装置、検索方法、ならびに、コンピュータプログラム
US20110316796A1 (en) Information Search Apparatus and Information Search Method
US20120330955A1 (en) Document similarity calculation device
CN104462030B (zh) 字符转换装置、字符转换方法
JP4724051B2 (ja) キーワード生成方法、文書検索方法、話題範囲推定方法、話題境界推定方法、及びこれらの装置とそのプログラム、その記録媒体
JP5980520B2 (ja) 効率的にクエリを処理する方法及び装置
JP5664467B2 (ja) 検索プログラム、検索方法、検索装置、およびノード
CN104021201B (zh) 一种数据转换方法及装置
WO2012015021A1 (en) Stroke and structure input method and system
JP5601116B2 (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP5601123B2 (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP2010146061A (ja) 例文表示装置、例文表示方法および例文表示プログラム
JP5526985B2 (ja) 検索プログラム、検索装置、および検索方法
JP5533197B2 (ja) 検索装置、ならびに、コンピュータプログラム
JP5601121B2 (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP5708117B2 (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP6884565B2 (ja) 文章検索装置、文章検索方法及び文章検索プログラム
JP5457302B2 (ja) 形態素結合装置、形態素結合方法及び自然言語処理システム
JP5526987B2 (ja) 管理プログラム、管理装置、および管理方法
JP5526986B2 (ja) 管理プログラム、管理装置、および管理方法
CN102169485B (zh) 用于搜索多个串的方法和系统
JP2012069070A (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120126

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: 20120807

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: 20120820

R150 Certificate of patent or registration of utility model

Ref document number: 5083367

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3