JP5733285B2 - 検索装置、検索方法及びプログラム - Google Patents
検索装置、検索方法及びプログラム Download PDFInfo
- Publication number
- JP5733285B2 JP5733285B2 JP2012207530A JP2012207530A JP5733285B2 JP 5733285 B2 JP5733285 B2 JP 5733285B2 JP 2012207530 A JP2012207530 A JP 2012207530A JP 2012207530 A JP2012207530 A JP 2012207530A JP 5733285 B2 JP5733285 B2 JP 5733285B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- character string
- gram
- text
- delimiter
- 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.)
- Active
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/319—Inverted lists
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、検索装置、検索方法及びプログラムに関する。
大量の検索対象文書から効率よく検索キーワードを含む文書を検索するための機能を持つ検索システムが考案されている。例えば、特許文献1は、検索ヒット部位が複数単語に跨るか否かを検索結果の評価に含む処理(単語と単語の境界を意識した検索)と、含まない処理(任意語検索)とを必要に応じて使い分けることができる。特許文献1の検索システムでは、境界を意識した検索を実行するために、単語と単語の検索用インデックスとしてNグラムの出現位置情報の他に単語と単語の境界の位置情報を記憶する。
テキスト検索をするに当って、複数種類の検索結果をそれぞれ活用したい場合がある。例えば、あるキーワードを用いて検索対象の文書を完全一致検索で検索した結果を優先的に利用する一方、前方一致検索の結果も利用したい場合などである。
特許文献1の検索システムでは、複数の検索方法(境界を意識した検索と任意語検索)による検索結果を利用する場合には、ユーザはそれぞれの検索方法を別々に実行する指示操作を実行した上で、検索結果を別々に比較検討して必要な文書を探すこととなる。そのため、検索にあたってユーザの利便性が低いという問題があった。
本発明はこのような事情に鑑みて成されたものであり、ユーザにとって利便性が高い検索装置、検索方法及びプログラムを提供することを目的とする。
上記目的を達成するため、本発明に係る検索装置は、
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段と、
検索文字列を取得する取得手段と、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段と、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段と
を備えることを特徴とする。
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段と、
検索文字列を取得する取得手段と、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段と、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段と
を備えることを特徴とする。
本発明によれば、ユーザにとって利便性が高い検索装置、検索方法及びプログラムを提供できる。
以下、本発明の実施形態に係るテキスト検索装置100について、添付図面を参照しつつ説明する。
本発明の実施形態に係るテキスト検索装置100は、図1に示すような電子辞書で構成され、ユーザの操作に応じて検索キーワードを入力するキーボード100iと、検索キーワードに基づいて辞書を検索した検索結果を表示するLCD(Liquid Crystal Display)100hと、を備える。
テキスト検索装置100の内部には、図2に示すようなCPU(Central Processing Unit)100a、ROM(Read Only Memory)100b、RAM(Random Access Memory)100c、ハードディスク100d、メディアコントローラ100e、ビデオカード100g、及びスピーカ100jが内蔵され、図1に示したLCD100h及びキーボード100iとバスを介して接続されている。
CPU100aは、ROM100b若しくはハードディスク100dに保存されたプログラムにより、下記する検索処理のためにテキスト検索装置100の各部を制御し、また内部処理を実行する。RAM100cは、CPU100aによるプログラムの実行時において、処理対象とするデータを一時的に記憶する等、作業領域として用いられる。
ハードディスク100dは、各種のデータを保存したテーブルと、英和辞書等の辞書データと、を記憶する。尚、テキスト検索装置100は、ハードディスク100dの代わりに、フラッシュメモリを備えても良い。
メディアコントローラ100eは、フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、及びブルーレイディスク(Blue-ray Disc)(登録商標)を含む記録媒体から各種のデータ及びプログラムを読み出す。
ビデオカード100gは、CPU100aから出力されたデジタル信号に基づいて画像を描画(つまり、レンダリング)すると共に、描画された画像を表す画像信号を出力する。LCD100hは、ビデオカード100gから出力された画像信号に従って画像を表示する。尚、テキスト検索装置100は、LCD100hの代わりに、PDP(Plasma Display Panel)若しくはEL(Electroluminescence)ディスプレイを備えても良い。スピーカ100jは、CPU100aから出力された信号に基づいて音声を出力する。
ユーザが、辞書データを記録した記録媒体を図2に示したメディアコントローラ100eへ当該記録媒体を挿入すると、CPU100aは、メディアコントローラ100eから辞書データの信号を受信する。CPU100aは、メディアコントローラ100eから辞書データを取得すると、辞書データをハードディスク100dに保存する。その後、CPU100aは、辞書データで表される辞書を検索キーワードに基づいて検索するために用いられるデータ及び電子ファイルを生成する、図3に示すようなデータ等生成処理を実行する。これにより、CPU100aはテキスト検索装置100のその他の構成要素と協働して、図4に示すような生成部120として機能する。図4は、CPU100aが実行する機能を示す機能ブロック図である。そして、CPU100aは、テキスト検索装置100のその他の構成要素、特にハードディスク100dと協働することで、情報記憶部110として機能する。
情報記憶部110は、本実施形態で検索対象となる辞書データを記憶する。この辞書データは、図5(a)に示すように、見出語を表すテキスト(以下、見出語テキストという)と、見出語の解説を表すテキスト(以下、解説テキストという)と、例えば、成句や複合語など(以下、イディオムという)といった見出語の用例を表すテキスト(以下、用例テキストという)と、で構成される。解説テキストと用例テキストとを合わせて本文テキストと言う。言い換えれば、辞書データに含まれるテキストは、見出語を示すテキスト(見出語テキスト)と、見出語を説明するための本文(本文テキスト)と、の2つのカテゴリ(見出語カテゴリ、本文カテゴリ)に分類できる。本文カテゴリに属するテキストは、さらに見出語の解説と、その用例と、の二つ(解説カテゴリ、用例カテゴリ)に分類できる。
また、辞書データのうち、見出語テキストが占める部分を見出部CE、本文テキストがしめる部分を本文部CBという。
解説テキストは、当該テキストで表される内容が解説であることを表す解説タグに囲まれており、用例テキストは、当該テキストで表される内容が用例であることを表す用例タグに囲まれている。
また、辞書データのうち、見出語テキストが占める部分を見出部CE、本文テキストがしめる部分を本文部CBという。
解説テキストは、当該テキストで表される内容が解説であることを表す解説タグに囲まれており、用例テキストは、当該テキストで表される内容が用例であることを表す用例タグに囲まれている。
辞書データは見出部CEと本文部CBとの組を一つの構成単位として、この構成単位が連なって構成されている。各構成単位は、見出部CEに配置された見出語テキストのアルファベット順に並べられている。各構成単位において、見出語テキストを含む見出部CEの直後に、その見出語を説明するための本文テキストを含む本文部CBが配置されている。
また、各見出部CEには、見出部CEを識別する見出語番号が予め割り当てられている。辞書データには、この見出語番号を表す情報と、当該見出語番号で識別される見出部CEが格納された情報記憶部110における記憶領域の先頭アドレスを表す情報と、当該見出部CEの直後に格納された本文部CBの先頭アドレスを表す情報と、が対応付けられた情報が、見出語の数だけ含まれる。この構成単位は、一単位の「検索対象となる文書(文字列)」とも言う。この場合、辞書データは検索対象となる文書を複数束ねたデータと表現できる。
また、各見出部CEには、見出部CEを識別する見出語番号が予め割り当てられている。辞書データには、この見出語番号を表す情報と、当該見出語番号で識別される見出部CEが格納された情報記憶部110における記憶領域の先頭アドレスを表す情報と、当該見出部CEの直後に格納された本文部CBの先頭アドレスを表す情報と、が対応付けられた情報が、見出語の数だけ含まれる。この構成単位は、一単位の「検索対象となる文書(文字列)」とも言う。この場合、辞書データは検索対象となる文書を複数束ねたデータと表現できる。
本文部CBには、複数の解説テキストが、電子辞書の編集者が定めた並び順に従って配置されている。具体例としては、見出語のより一般的な意味内容を解説する解説テキストの方が、見出語のより特殊な意味内容を解説する解説テキストよりも先の位置に格納されている。あるいは、より使用頻度の高い意味内容を解説する解説テキストの方が、より使用頻度の低い意味内容を解説する解説テキストよりも先の位置に格納されているとしても良い。
本実施形態のテキスト検索装置100は、ユーザがキーボード100iを用いて検索キーワードを入力して確定操作を実行すると、検索キーワードを含む見出テキスト・解説テキスト・用例テキストを検索し、検索結果をテキスト区分毎に表示する(図6)。この検索処理では、検索キーワードを含む部位をヒット態様(部分一致・前方一致・後方一致又は完全一致)にかかわらず検出し、それぞれのヒット部位を優先度を付けて表示する。検索処理は、辞書データを検索キーワードによって検索するキー検索処理と、キー検索処理の検索ヒット部位が、どのような態様でヒットしたか、そのヒット態様(例えば、完全一致、前方一致、後方一致、部分一致の何れであるか)を決定するための区切検索処理と、が実行される。これにより、処理速度を向上させることが出来る。キー検索処理及び区切検索処理の内容については後述する。
ここで、本実施形態の検索処理に用いる検索用インデックス(転置インデックス)を生成するデータ等生成処理について、図3を参照して説明する。生成部120は、辞書データを取得すると図3に示すデータ等生成処理を開始する。
データ等生成処理では、まず生成部120が情報記憶部110に記憶された辞書コンテンツを表す辞書データを読み出す(ステップS1)。
そして、読み出した辞書データから、見出語テキストと本文テキスト(解説テキストと用例テキスト)とを抽出する(ステップS2)。具体的に説明する。本文部CBには、解説テキストと用例テキストとが混在しているので、まず生成部120は、これらのテキストを内容に応じて分類分けをする。そのために、生成部120は、辞書データに含まれる見出語番号を表す情報と、見出部CEの先頭アドレスを表す情報と、本文部CBの先頭アドレスを表す情報と、を用いて、辞書データから見出語テキストと本文テキストとを複数抽出する。
さらに、生成部120はステップS2で、抽出された見出語テキスト毎に、見出語テキストで表される見出語を解説する解説テキストを本文テキストから解説タグに基づいて複数抽出し、かつ見出語の用例を表す用例テキストを用例タグに基づいて本文テキストから複数抽出する。
さらに、生成部120はステップS2で、抽出された見出語テキスト毎に、見出語テキストで表される見出語を解説する解説テキストを本文テキストから解説タグに基づいて複数抽出し、かつ見出語の用例を表す用例テキストを用例タグに基づいて本文テキストから複数抽出する。
そして、インクリメント検索の対象となるカテゴリのテキスト(ここでは見出語)の先頭と末尾に、端部であることを示すマーク(区切文字、ここでは半角スペース)を挿入する(ステップS3)。なお、見出語が英語である場合には、単語と単語が半角スペースで区切られている箇所には半角スペースを挿入せず、先頭の半角スペースが無い部分や、単語の末尾がピリオド「.」、カンマ「,」、エクスクラメーションマーク「!」、クエッションマーク「?」等、単語の前後が半角スペースでない部分にのみ半角スペースを挿入する。
その後、生成部120は、図5(b)に示すような再配置コンテンツテキストデータ(CTD)を生成して保存する(ステップS4)。具体的には、見出語テキストに区切文字(ここでは「・」で代用して表示)を抽出した上で、構成単位ごとに抽出された解説テキストの並び順を変更せずにまとめて配置することで、抽出された複数の解説テキストが配置される部位(以下、解説部CCという)を生成する。
同様に、生成部120は、構成単位毎に、抽出された複数の用例テキストの並び順を変更せずにまとめて配置することで、抽出された複数の用例テキストが配置された部位(以下、用例部CXという)を生成する。
同様に、生成部120は、構成単位毎に、抽出された複数の用例テキストの並び順を変更せずにまとめて配置することで、抽出された複数の用例テキストが配置された部位(以下、用例部CXという)を生成する。
なお、ここでは見出部CEの前後(たとえば見出語「move」について、mの前とeの後ろ)に区切文字を挿入する例について説明した。区切文字の挿入箇所はこれに限らず、任意に設定可能である。例えば、解説部CC及び用例部CXに現れる各単語の前後に区切文字を挿入しても良い。あるいは、解説部CC及び用例部CXに現れるフレーズのうち重要なフレーズの前後にのみ区切文字を挿入するとしても良い。
生成部120は、このようにして見出部CEと、解説部CCと、用例部CXと、を対応付けた複数のデータ(再配置コンテンツテキストデータ、若しくは再配置CTD)を生成する。そして、生成部120は、生成した再配置コンテンツテキストデータを情報記憶部110へ保存する(ステップS4)。
その後、生成部120は、再配置コンテンツテキストデータで表される辞書を識別する辞書番号を生成する。次に、生成部120は、図7に示す辞書テーブルへ、生成された辞書番号を表す情報と、辞書の名称を表す情報と、再配置コンテンツテキストデータが格納された情報記憶部110の記憶領域の先頭アドレスを表す情報と、を対応付けた情報を情報記憶部110に保存する(ステップS5)。
その後、生成部120は、再配置コンテンツテキストデータで表されるテキスト(つまり、見出部CE、解説部CC、及び用例部CXに配置されたテキスト)のそれぞれについて、先頭から1文字ずつずらしながら1文字を切り出すことで、モノグラム文字列パタンを抽出する。また、同様に、生成部120は、再配置コンテンツテキストデータで表されるテキストの先頭から1文字ずつずらしながら2文字を切り出すことで、バイグラム文字列パタンを抽出する。以下、モノグラム文字列パタン、バイグラム文字列パタンを、Nグラム文字列パタンと総称する。尚、本実施形態では、文字は文字列に含まれるとし、特別に区別する記載がある場合を除き、文字と文字列とを区別しない。
次に、生成部120は、各Nグラム文字列パタンについて、Nグラム文字列パタンが再配置コンテンツテキストデータで表されるテキスト(以下、再配置テキストという)に出現する位置(以下、出現位置という)を1又は複数特定する。その後、生成部120は、Nグラム文字列パタン毎に、再配置テキストにおけるNグラム文字列パタンの出現頻度を算出する。ここで、出現頻度は、例えば、再配置テキストにNグラム文字列パタンが現われる総回数であるとして説明するが、これに限定される訳ではない。
次に、生成部120は、Nグラム文字列パタン毎に、Nグラム文字列パタンが出現する出現位置を示すアドレス(以下、出現位置アドレスという)を表す1又は複数の情報と、当該Nグラム文字列パタンの出現頻度を表す情報と、を対応付けた出現位置情報を生成する。
次に、生成部120は、出現位置情報を1又は複数含む電子ファイル(以下、出現位置情報ファイル若しくはAPファイルという)を生成し、情報記憶部110へ保存する(図3のステップS6)。
図8では、出現位置情報ファイル(APファイル)は「position.idx」という名称(ファイル名)で示されている。また、出現位置情報ファイルに保存された出現位置情報は、先頭アドレスから出現頻度用の所定バイト数までの領域に出現頻度を表す情報が格納され、当該領域の直後から出現位置用の所定バイト数毎に出現位置アドレスを表す情報が格納される。
図8では、出現位置情報ファイル(APファイル)は「position.idx」という名称(ファイル名)で示されている。また、出現位置情報ファイルに保存された出現位置情報は、先頭アドレスから出現頻度用の所定バイト数までの領域に出現頻度を表す情報が格納され、当該領域の直後から出現位置用の所定バイト数毎に出現位置アドレスを表す情報が格納される。
次に、生成部120は、Nグラムを表す情報(以下、Nグラム文字列パタン情報という)と、当該Nグラム文字列パタンの出現位置情報が格納された情報記憶部110の記憶領域の先頭アドレス(以下、出現位置情報格納アドレスという)を表す情報と、を対応付けた情報を複数含む電子ファイル(以下、Nグラム文字列パタンファイル若しくはSファイルという)を生成する。その後、生成部120は、Sファイルを情報記憶部110へ保存する(ステップS7)。
図8では、Sファイルは「pattern.idx」という名称(ファイル名)で示されている。
図8では、Sファイルは「pattern.idx」という名称(ファイル名)で示されている。
その後、生成部120は、見出語毎に、見出語の用例を表す用例テキストが分類された用例部CXの先頭アドレスと、当該用例テキストの先頭アドレスと、の差分(以下、用例部開始位置からの差分という)を、用例部CXに分類された用例テキストの個数(以下、用例個数という)だけ算出する。次に、生成部120は、見出語毎に、1又は複数の用例部開始位置からの差分を表す情報で構成される用例開始位置情報を生成し、生成された用例開始位置情報を複数含む電子ファイル(以下、用例開始位置情報ファイル若しくはEPファイルという)を生成する。
図8では、EPファイルは「example.idx」という名称(ファイル名)で示されている。
その後、生成部120は、用例開始位置情報ファイルを情報記憶部110へ保存する(図3に示すステップS8)。尚、EPファイルに保存された用例開始位置情報は、用例部開始位置からの差分を表す情報が、先頭アドレスから当該差分用の所定バイト数までの領域に格納され、当該領域の直後から所定バイト数毎に他の差分を表す情報が格納される。
図8では、EPファイルは「example.idx」という名称(ファイル名)で示されている。
その後、生成部120は、用例開始位置情報ファイルを情報記憶部110へ保存する(図3に示すステップS8)。尚、EPファイルに保存された用例開始位置情報は、用例部開始位置からの差分を表す情報が、先頭アドレスから当該差分用の所定バイト数までの領域に格納され、当該領域の直後から所定バイト数毎に他の差分を表す情報が格納される。
次に、生成部120は、見出語テキストを含む見出部CEを識別する見出番号と、当該見出部CEが格納された情報記憶部110の記憶領域の先頭アドレス(以下、見出部CEの開始位置を表すアドレスという)を表す情報と、当該見出語テキストで表される見出語を解説する解説テキストが配置された解説部CCの先頭アドレス(以下、解説部CCの開始位置を表すアドレスという)を表す情報と、当該見出語の用例を表す用例テキストが配置された用例部CXの先頭アドレス(以下、用例部CXの開始位置を表すアドレスという)を表す情報と、当該用例部CXの用例個数を表す情報と、当該用例部CXの用例部開始位置情報(EPファイル、図8のexample.idx)が情報記憶部110に格納された領域の先頭位置を表すアドレス(以下、用例部開始位置情報格納アドレスという)を表す情報と、当該見出語を掲載した辞書の辞書番号を表す情報と、を対応付けた情報を複数含む電子ファイル(以下、見出等ファイル若しくはTファイルという)を生成する。
図8では、Tファイルは「number.idx」という名称(ファイル名)で示されている。
生成部120は、Tファイルを情報記憶部110へ保存した後に(図3に示すステップS9)、データ等生成処理の実行を終了する。
図8では、Tファイルは「number.idx」という名称(ファイル名)で示されている。
生成部120は、Tファイルを情報記憶部110へ保存した後に(図3に示すステップS9)、データ等生成処理の実行を終了する。
図8(特に「pattern.idx」と「position.idx」)に示すような、文字列(ここではNグラム)と、文字列の検索対象となる文書における出現位置とを、対応付けて記録した索引構造を転置インデックスと呼ぶ。本実施形態では、データ等生成処理により、所定のカテゴリ(ここでは見出語)のテキストについて、文書の区切り(見出しの前後)に区切りを示す区切り文字(半角スペース)を付した再配置CTDの転置インデックスを生成する。
転置インデックスを情報記憶部110に記憶すると、この転置インデックスを用いて検索処理を実行する準備が整う。この状態で、ユーザが辞書の検索に用いる検索キーワードを入力する操作をキーボード100iを用いて実行すると、CPU100aがその情報を受け取り、図9に示すテキスト検索処理を実行する。
このテキスト検索処理を実行することにより、CPU100aは図4に示すような取得部130、付加部1410と抽出部1420とキー検出部1430と区切検出部1440とを含む検索部140、算出部150、決定部160、及び出力部170として機能する。また、CPU100aは、図2に示したビデオカード100g及びLCD100hと協働して表示部180として機能する。
このテキスト検索処理を実行することにより、CPU100aは図4に示すような取得部130、付加部1410と抽出部1420とキー検出部1430と区切検出部1440とを含む検索部140、算出部150、決定部160、及び出力部170として機能する。また、CPU100aは、図2に示したビデオカード100g及びLCD100hと協働して表示部180として機能する。
ユーザがキーボード100iを用いて検索キーワードを入力すると、CPU100aが図9に示すテキスト検索処理を開始する。テキスト検索処理では、まず取得部130が現在までに入力されたキーワード(検索キーワード)を取得する(ステップS11)。ここでは、確定した検索キーワードが区切り文字(スペース等)を含む場合、その区切り文字で入力された文字を区切って、複数の検索キーワードを取得したとする。
そして、付加部1410が、検索キーワードの前後に区切文字(半角スペース)を挿入して、検索文字列とする(ステップS12)。検索キーワードが複数ある場合には、それぞれの検索キーワードに区切文字を挿入する。
さらに、抽出部1420が区切文字を挿入した検索文字列からNグラム(検索パタン)を抽出する(ステップS13)。ステップS13で実行する抽出処理の例を、図10に示す。例えば入力された検索キーワードが一文字(図10(a)の例では「i」)の場合、検索文字列は区切文字を入れて3文字となる。この場合、N−gramとしてバイグラム「・i」(・は半角スペースを示す)と、モノグラム「i」と、バイグラム「i・」を抽出する。この3つのN−gramが、Nグラム文字列パタンとなる。このように先頭と末尾のn−gramをバイグラム以上の文字数を持つn−gramとすることで、検索文字列のうち検索キーワードの部分(ここではi)と区切との位置関係が失われることを防ぐことが出来る。なお、取得した検索キーワードが複数である場合は、各キーワードについてNグラム文字列パタンを生成する。
一方入力された検索キーワードが2文字以上(図10(b)の例では「move」の4文字)の場合、抽出されるn−gramは全てバイグラム(「・m」、「mo」、「ov」、「ve」及び「e・」)となる。このとき、先頭と末尾の区切文字を含むn−gramがバイグラム以上であるという条件で、各n−gramのnの値(含まれる文字の数)を自由に設定することが出来る。
次に、検索部140が検索対象となる辞書データに含まれる複数の文書(見出語と本文のセット)のうち、現在の処理ループで検索対象となる注目文書(一つの見出語とその解説文及び用例)を選択する(ステップS14)。そして検索部140が、注目文書を検索キーワードで検索する処理(キーワード検索処理)を開始する(ステップS15)。
ステップS15で実行されるキーワード検索処理を、図11を参照して説明する。
キーワード検索処理では、キー検出部1430が、ステップS13で抽出したNグラムのうちから、区切文字を含まないキーワード部分のNグラム(例えば検索文字列が「・move・」の場合にnグラム「mo」、「ov」及び「ve」)を選択する(ステップS101)。このとき、検索文字列が複数ある場合には、各検索文字列について同様にキーワード部分のNグラムを選択する。
そして、各Nグラムについて、出現頻度を取得する(ステップS102)。具体的には、まずキー検出部1430がAPファイル(つまり、出現位置情報ファイル)及びSファイル(つまり、Nグラム文字列パタンファイル)から、Nグラムの出現頻度を検索する。即ち、キー検出部1430は、Nグラム文字列パタンファイル(図8の「pattern.idx」)から、生成したNグラムを表す情報に対応付けられた出現位置情報格納アドレスを表す情報を検索する。そして、キー検出部1430は、出現位置情報ファイル(図8の「position.idx」)から、検索された情報で表される出現位置情報格納アドレスが指し示す位置を開始位置として、情報記憶部110に格納された出現位置情報を取得する。次に、キー検出部1430は、取得した出現位置情報の先頭アドレスから上記出現頻度用の所定バイト数までの領域に格納された出現頻度を表す情報を抽出する。
そして、出現頻度が最も少ないNグラムを特定する(ステップS103)。このようなNグラムに基づいて辞書から検索キーワードを検索すれば、出現頻度がより多いNグラムに基づいて辞書を検索するよりもテキスト検索処理が短時間で終了するためである。ここでは、「mo」の出現頻度が最も少ないとして説明を行う。
その後、キー検出部1430は、ステップS12で区切文字を付加した検索文字列が一つであるか、複数であるか判別する(ステップS104)。検索文字列が一つである場合(ステップS104;Yes)、その検索文字列を基準文字列(優先度を定めるにあたって基準となる検索文字列)とする(ステップS105)。そして、単一文字列検索処理を実行する(ステップS106)。
一方、検索文字列が複数である場合(ステップS104;No)、ステップS101で選択したNグラムのうち、最少の出現頻度のNグラムを含む検索文字列を基準文字列とし、基準文字列以外の検索文字列を検証文字列とする(ステップS107)。検索に要する計算量を削減するためである。そして、複数の検索文字列を検索する処理(複数文字列検索処理)を実行する(ステップS108)。具体的な処理内容については後述する。ステップS106乃至ステップS108の検索処理を終えると、図11のキーワード検索処理は終了する。
一方、検索文字列が複数である場合(ステップS104;No)、ステップS101で選択したNグラムのうち、最少の出現頻度のNグラムを含む検索文字列を基準文字列とし、基準文字列以外の検索文字列を検証文字列とする(ステップS107)。検索に要する計算量を削減するためである。そして、複数の検索文字列を検索する処理(複数文字列検索処理)を実行する(ステップS108)。具体的な処理内容については後述する。ステップS106乃至ステップS108の検索処理を終えると、図11のキーワード検索処理は終了する。
ステップS106で実行される単一文字列検索処理を、図12を参照して説明する。単一文字列検索処理では、まずキー検出部1430が図11のステップS101で選択した、基準文字列のNグラム(区切文字を含まないNグラム)を取得する(ステップS21)。
そして、基準文字列の再配置CTDにおける出現位置を全て取得する処理(出現位置取得処理)を実行する(ステップS22)。
ステップS22で実行される出現位置取得処理を、図13を参照して説明する。出現位置取得処理では、まずキー検出部1430が、ステップS21で取得した区切文字を含まないNグラムが一つであるか判別する(ステップS31)。例えば、入力された検索キーワードが3文字以上である場合など、キーワード部分のNグラムが一つでない場合は(S31;No)、Nグラムのうち注目Nグラムを選択して、検索対象の文書に現れる位置を選択する(ステップS32)。ここでは、図12のステップS21で取得したNグラムのうち、図11のステップS103で特定した出現頻度が最も少ないものを注目Nグラムとして特定する。ここでは、「mo」を注目Nグラムとする。出現頻度が最も少ないNグラムに基づいて辞書から検索キーワードを検索することにより、以下に記載するループ処理(図13のステップS32からステップS42までのループ)が少ない回数で終了するので、より高速に検索処理を実行出来るからである。
ステップS32では、最初には、キー検出部1430が注目Nグラムの出現位置情報における出現頻度を表す情報が格納された領域の直後から上記出現位置用の所定バイト数を読み込み、注目Nグラムの最初の出現位置を注目出現位置として選択する。
そして、キー検出部1430は注目Nグラム以外のNグラム(他のNグラム)の出現位置(特定出現位置)を特定する(ステップS33)。
具体的には、まず情報記憶部110が予め記憶する所定範囲を表す情報を取得する。さらに、キー検出部1430は、注目Nグラム以外のNグラム(「ov」、「ve」)の出現位置の内で、注目出現位置から所定範囲までの出現位置を、それぞれ特定出現位置とする(ステップS33)。
具体的には、まず情報記憶部110が予め記憶する所定範囲を表す情報を取得する。さらに、キー検出部1430は、注目Nグラム以外のNグラム(「ov」、「ve」)の出現位置の内で、注目出現位置から所定範囲までの出現位置を、それぞれ特定出現位置とする(ステップS33)。
次に、キー検出部1430は、注目出現位置と、他のNグラムの特定出現位置と、の連続性を評価して(ステップS34)、連続性の有無を判別し(ステップS35)、注目出現位置を含む位置に検索キーワードがあるか判別する。
具体的には、キー検出部1430はステップS34で注目Nグラムと他のNグラムについて、検索キーワード(あるいは検索文字列)における相対位置(距離及び前後関係)を取得する。例えば、注目Nグラム「mo」は、検索文字列(マーク挿入後)「・move・」において、他のNグラム「ov」の一文字前にあり、「ve」の2文字前に位置する。相対位置とは、このような「n文字後(前)に位置する」という位置情報である。
ステップS33でSファイルとAPファイルを参照して取得した注目出現位置と特定出現位置を比較して、再配置コンテンツテキストデータ上の注目Nグラムと他のNグラムとの相対位置を取得する。そして、全ての他のNグラムと注目Nグラムの相対位置が、検索キーワードと再配置コンテンツテキストデータとで一致した場合に、連続性があると評価される。一方、何れかの他のNグラムと注目Nグラムの相対位置が、検索キーワードと再配置コンテンツテキストデータとで異なる場合、連続性は無いと評価される。このようにして、注目出現位置における連続性を評価する(ステップS34)。
具体的には、キー検出部1430はステップS34で注目Nグラムと他のNグラムについて、検索キーワード(あるいは検索文字列)における相対位置(距離及び前後関係)を取得する。例えば、注目Nグラム「mo」は、検索文字列(マーク挿入後)「・move・」において、他のNグラム「ov」の一文字前にあり、「ve」の2文字前に位置する。相対位置とは、このような「n文字後(前)に位置する」という位置情報である。
ステップS33でSファイルとAPファイルを参照して取得した注目出現位置と特定出現位置を比較して、再配置コンテンツテキストデータ上の注目Nグラムと他のNグラムとの相対位置を取得する。そして、全ての他のNグラムと注目Nグラムの相対位置が、検索キーワードと再配置コンテンツテキストデータとで一致した場合に、連続性があると評価される。一方、何れかの他のNグラムと注目Nグラムの相対位置が、検索キーワードと再配置コンテンツテキストデータとで異なる場合、連続性は無いと評価される。このようにして、注目出現位置における連続性を評価する(ステップS34)。
キー検出部1430は、ステップS34における連続性の評価で、連続性ありと評価されたか否か判別する(ステップS35)。連続性なしと評価された場合は(ステップS35;NO)、その注目出現位置については検索ヒット部位とせず、処理を終了する。そして、注目Nグラムの出現位置の全てについて上記処理を実行したか否かを判別する(ステップS36)。
注目Nグラムの出現位置の全てについて上記処理済みではないと判別すると(ステップS36;No)、ステップS32に戻り、次の出現位置を選択して上記の処理を繰り返す。
一方、全出現位置について上記処理済みであると判別すると(ステップS36;Yes)、出現位置取得処理を終了する。
一方、連続性があると判別すると(ステップS35;Yes)、ステップS21で抽出した全Nグラムのうち先頭にあるNグラムの特定出現位置を、対象文字列(検索キーワード)の再配置テキストにおける出現位置として特定する(ステップS37)。
一方、ステップS31でNグラムが一つと判別された場合(ステップS31;Yes)は、その一つのNグラムを注目NグラムとしてステップS32と同様に出現位置を求め、注目出現位置を選択する(ステップS38)。そして、注目出現位置を検索キーワードの再配置テキストにおける出現位置として特定する(ステップS39)。
ステップS37又はステップS39で検索キーワードの出現位置(ヒット部位)を特定すると、区切検出部1440及び決定部160がそのヒット部位において検索キーワードがどのようにヒットしたか、その態様を判定する処理(ヒット態様決定処理)を実行する(ステップS40)。
ステップS40で実行されるヒット態様決定処理について、図14を参照して説明する。ヒット態様決定処理では、まず区切検出部1440が図9のステップS13で生成したNグラムのうち、区切文字を含むNグラムを取得する(ステップS201)。例えば検索キーワードが「move」である場合には、先頭のnグラム「・m」と尾部のnグラム「e・」を取得する。
そして、区切検出部1440がSファイルとAPファイルを参照して、ステップS201で取得したNグラムの出現位置を取得する(ステップS202)。この処理は、注目文書1つにつき一度だけ実行されるとしてもよい。
さらに、決定部160が図13のステップS37で特定された検索キーワードの出現位置と、ステップS202で取得した区切文字を含むnグラムの出現位置の隣接関係に応じてヒット態様を決定する(ステップS203)。具体的には、ステップS201で取得したNグラムのうち、先頭のnグラム(「・m」)が検索キーワードの出現位置の直前に存在し、かつ末尾のnグラム(「e・」)が出現位置の直後に存在する場合には、ヒット態様は「完全一致」であると決定する。一方、先頭のnグラム(「・m」)が検索キーワードの出現位置の直前に存在するが、末尾のnグラム(「e・」)が出現位置の直後に存在しない場合は、「前方一致」であると決定する。さらに、先頭のnグラムが検索キーワードの出現位置の直前に存在せず、末尾のnグラム(「e・」)が出現位置の直後に存在する場合、「後方一致」であると決定する。先頭のnグラムも末尾のnグラムも出現位置の前後に隣接していない場合は、「部分一致」であると決定する。そして、ヒット態様決定処理は終了する。
図13に戻って、ステップS40でヒット態様を決定すると、検索部140は、注目Nグラムの出現位置の全てを注目出現位置として上記処理を実行したかしたか否かを判別する(ステップS41)。未処理の出現位置が残っている場合(ステップS41;No)、次の出現位置について処理を繰り返す。このとき、まずステップS31でNグラムが一つであると判別したか否か判別する(ステップS42)。Nグラムが一つであった場合(ステップS42;Yes)、ステップS38に戻る。一方、Nグラムが複数であった場合(ステップS42;No)、ステップS32に戻る。
一方、全ての出現位置について上記処理済みであった場合(ステップS41;Yes)、対象文字列の全ての出現位置を特定したので、出現位置取得処理は終了する。
図12に戻って、出現位置取得処理で基準文字列の注目文書における出現位置を全て取得すると、次に検索部140は、注目文書にヒット部位(出現位置)が検出されたか否か判別する(ステップS23)。ヒット部位が検出されなかった場合は(ステップS23;No)、その注目文書についての単一文字列検索処理を終了する。
一方、ヒット部位が検出された場合は(ステップS23;Yes)、ヒット部位毎に図13ステップS40で決定されたヒット態様に応じてヒット部位の評価値を算出する(ステップS24)。具体的には、まず各出現位置(ヒット部位)が、どの構成単位のどの部位(見出部CE、解説部CC、及び用例部CXのいずれか)に含まれるか、特定する。
出現位置が何れの部位に含まれるか特定するために、まず検索部140は、検索キーワードについて特定した出現位置を表すアドレス以前のアドレスが指し示す位置から開始する見出部CEであって、開始位置を指し示すアドレスが最大の見出部CEを特定する。特定された見出部CEを特定見出部と呼ぶ。即ち、特定見出部とは、出現位置が属する構成単位の見出部CEである。
次に、検索部140は、Tファイル(見出等ファイル、図8の「number.idx」)を参照して、特定見出部の開始位置を指し示すアドレスを表す情報、当該特定見出部に分類された見出語テキストが表す見出語を解説する解説テキストが分類された解説部(以下、当該特定見出部に対応する解説部という)CCの開始位置を指し示すアドレスを表す情報、当該特定見出部に対応する用例部CXの開始位置を指し示すアドレスを表す情報、当該特定見出部に対応する用例開始位置情報格納アドレスを表す情報、当該見出語を掲載した辞書を識別する辞書番号を表す情報、及び当該特定見出部を識別する見出番号を表す情報を取得する。これらの情報から、特定見出部を示す識別子(見出番号)と、各部位の位置を特定できる情報を生成する。特定見出部を含む構成単位を特定構成単位と呼ぶ。また、各部位の位置から、特定した出現位置が特定構成単位のどの部位に位置するか定めることができる。この部位を特定部位とする。
ステップS24ではさらに、算出部150が図16に示す決定方法テーブルを参照して、現在の検索条件、各出現位置に対する評価値の決定方法(順位決定方法)を取得する。
例えば、検索キーワードが「単一」(つまり、1個)であり、見出部CEが出現部位である場合については、数式(1)を用いて評価値を算出するという情報を取得する。このとき、その見出部CEに含まれるテキストを特定テキストと呼ぶ。
さらに、算出部150は、評価値を算出する方法の情報を取得すると、その情報が示す方法で各出現部位の評価値を算出する(ステップS24)。この評価値の値が小さい程、出力優先度は高い。
例えば、検索キーワードが「単一」(つまり、1個)であり、見出部CEが出現部位である場合については、数式(1)を用いて評価値を算出するという情報を取得する。このとき、その見出部CEに含まれるテキストを特定テキストと呼ぶ。
さらに、算出部150は、評価値を算出する方法の情報を取得すると、その情報が示す方法で各出現部位の評価値を算出する(ステップS24)。この評価値の値が小さい程、出力優先度は高い。
本実施形態では、検索キーワードが一つであり、特定部位が見出部CEであった場合の出力優先度(Estidxid,0)は、以下の数式(1)を用いて算出する。
なお、NumStrheadlin,hdlidは特定部位(見出部)の文字列の長さであり、NumStrstdstrは基準文字列の長さである。EstDetectstdtrは基準文字列のヒット態様に応じた評価値であり、以下の数式(2)を用いて算出する。
なお、ValDetectはヒット態様に応じて定まる優先度に対するペナルティを示す値であり、より評価値の高い態様でヒットした場合に、より小さい数値になるように設定されている。ここでは、完全一致の場合に0、前方一致の場合に1、後方一致の場合に2、部分一致(中間一致)の場合に3となる。即ち、完全一致が最も評価が高く、前方一致、後方一致、部分一致の順に評価が低くなることを示す。この順序及び具体的な数値は、工場出荷時あるいはユーザの設定によって自由に設定することが出来る。
Val_PENALTY_DETECTは、ValDetectの重みであり、工場出荷時の設定又はユーザ操作によって定まる数値である。この数値が大きいほど、評価の低いヒット態様であった場合のペナルティ(優先度の低下)が大きくなる。
Val_PENALTY_DETECTは、ValDetectの重みであり、工場出荷時の設定又はユーザ操作によって定まる数値である。この数値が大きいほど、評価の低いヒット態様であった場合のペナルティ(優先度の低下)が大きくなる。
数式(1)で算出される評価値は、基準文字列と特定部位(見出部)の文字列(つまり、見出テキスト)とが完全に一致する場合に最小の値となり、特定見出部の見出テキストに基準文字列以外の文字が多く含まれる程大きい値となる。これは、通常、ユーザは、検索キーワードである基準文字列と完全一致する見出テキストの表示を所望することが多いからである。また、通常、ユーザは、検索キーワード以外の文字を多く含む見出テキストよりも検索キーワード以外の文字を少なく含む見出テキストの表示を所望することが多いからである。さらに、数式(1)で算出される評価値は、評価の低いヒット態様であればあるほど大きくなる。これは、ユーザは文字数の比率が同じであっても、評価の低いヒット態様(例えば部分一致)よりも評価の高いヒット態様(例えば前方一致)でヒットした検索結果を優先的に利用することを所望することが多いからである。
また、検索キーワードが一つであり、特定部位が解説部CCであった場合の出力優先度(Estidxid,1)は、以下の数式(3)を用いて算出する。
なお、Posstdstrは検索キーワードの特定した出現位置、PosStidxid,comentaryは、特定見出部に対応する解説部CCの開始位置である。数式(2)で算出される評価値は、基準文字列の特定出現位置が、解説部CCの開始位置に近い程小さい値となる。例えば、基準文字列をそれぞれ含む複数の解説テキストが同じ解説部CCに分類されている場合には、解説部CCにおいて先の位置に格納された解説テキストの評価値程小さい値となる。再配置コンテンツテキストデータの解説部CCに分類された解説テキストは、例えば、見出語の一般的な意味内容若しくは見出語の使用頻度の高い意味内容を解説する解説テキスト程先の位置に格納されており、通常、ユーザは、一般的な解説を行う若しくは使用頻度の高いテキストの表示を所望することが多いためである。つまり、解説部CCにおいて先の位置に格納された解説テキスト程ユーザが所望するテキストである可能性が高いと考えられるためである。このときには、その解説部CCのうち、特定部位を含む解説テキストの特定部位を含む所定の文字数の文字列を特定テキストと呼ぶ。
また、数式(3)では、ValDetectstdtrを加算している。解説部CCについて区切文字が挿入されていない場合は、本数式(3)のValDetectstdtrを0として、ヒット態様を考慮に入れない。一方、解説部CCに現れる所定の重要単語に区切文字を挿入した場合などには、ValDetectstdtrを数式(2)よりも大きく設定する、として、重要単語に対して評価の高い態様でヒット(例えば、重要単語と完全一致するなど)した部位の優先度がそうでない部位よりも高くなるように設定しても良い。
また、検索キーワードが一つであり、特定部位が用例部CXであった場合の出力優先度(Estidxid,2)は、以下の数式(4)を用いて算出する。
なお、PosStidxid,example,expidは、特定見出部idxidに対応する用例部CXにおける、基準文字列を含む用例テキスト(用例番号expidとする)の開始位置である。
なお、検索部140は、PosStidxid,example,expidは、次の手順で取得する。
まず、ステップS24で取得した用例開始位置情報格納アドレスに基づいて、図9に示したファイル名が「example.idx」のEPファイル(つまり、用例開始位置情報ファイル)から用例開始位置情報を参照して求める。さらに、用例番号用例開始位置情報に含まれる用例部の開始位置からの差分を表す情報の内で、算出された用例部CXの開始位置と、処理対象となる特定出現位置と、の差分以下であり、かつ最大の差分を求める。
次に、検索部140は、検索した差分を表す情報が用例開始位置情報において何番目の情報であるかを上記差分用の所定バイト数に基づいて特定し、特定した番号を用例番号とする。
その後、求めた差分を、特定見出部に対応した用例部CXの開始位置に加算することで、特定した用例番号の用例テキストの開始位置(PosStidxid,example,expid)を算出する。
なお、検索部140は、PosStidxid,example,expidは、次の手順で取得する。
まず、ステップS24で取得した用例開始位置情報格納アドレスに基づいて、図9に示したファイル名が「example.idx」のEPファイル(つまり、用例開始位置情報ファイル)から用例開始位置情報を参照して求める。さらに、用例番号用例開始位置情報に含まれる用例部の開始位置からの差分を表す情報の内で、算出された用例部CXの開始位置と、処理対象となる特定出現位置と、の差分以下であり、かつ最大の差分を求める。
次に、検索部140は、検索した差分を表す情報が用例開始位置情報において何番目の情報であるかを上記差分用の所定バイト数に基づいて特定し、特定した番号を用例番号とする。
その後、求めた差分を、特定見出部に対応した用例部CXの開始位置に加算することで、特定した用例番号の用例テキストの開始位置(PosStidxid,example,expid)を算出する。
数式(4)で算出される評価値は、基準文字列の特定出現位置が、用例テキストの開始位置に近い程小さい値となる。例えば、基準文字列をそれぞれ含む複数の解説テキストが同じ用例部CXに分類されている場合には、用例部CXにおける格納位置が先であるか後であるかではなく、用例テキストにおいて基準文字列「while」が使用される位置が先である程評価値が小さい値となる。通常、例えば、検索キーワードである基準文字列「while」の一般的な使用例若しくは使用頻度の高い使用例を表す用例テキスト程先の位置で基準文字列「while」を使用することが多いからである。また、通常、ユーザは、一般的な使用例を表すテキスト若しくは使用頻度の高いテキストの表示を所望することが多いためである。つまり、先の位置に基準文字列「while」が格納された用例テキスト程ユーザが所望するテキストである可能性が高いと考えられるためである。このときには、この用例テキストのうち特定部位を含む所定の長さの文字列を特定テキストと呼ぶ。すなわち、特定テキストとは、検索ヒット部位を含む、検索結果として表示されるべきテキストである。特定テキストは、上記説明に限らず、自由に設定された設定情報に基づき検索結果をふくむテキストから抽出されるとしてもよい。
また、数式(4)では、ValDetectstdtrを加算している。用例部CXについて区切文字が挿入されていない場合は、本数式(4)のValDetectstdtrを0として、ヒット態様を考慮に入れない。一方、用例部CXに現れる所定の重要単語に区切文字を挿入した場合などには、ValDetectstdtrを数式(2)よりも大きく設定する、として、重要単語に対して評価の高い態様でヒット(例えば、重要単語と完全一致するなど)した部位の優先度がそうでない部位よりも高くなるように設定しても良い。
そして、ステップS24で全ての出現位置について評価値を算出すると、単一文字列検索処理は終了する。
次に、ステップS108で実行される複数文字列検索処理について、図15を参照して説明する。
複数文字列検索処理では、まずキー検出部1430が図11のステップS101で選択した、基準文字列のNグラム(区切文字を含まないNグラム)を取得する(ステップS51)。
そして、基準文字列の再配置CTDにおける出現位置を全て取得する処理(出現位置取得処理、図13)を実行する(ステップS52)。
さらに、図11のS107で定めた検証文字列の一つについて、Nグラムを取得する(ステップS53)。
そして、検証文字列の再配置CTDにおける再配置CTDにおける出現位置を全て取得する処理(出現位置取得処理、図13)を実行する(ステップS54)。
そして、ある検証文字列の出現位置を全て取得すると、未処理の検証文字列があるか判別する(ステップS55)。未処理の検証文字列が有る場合(ステップS55;No)、次の未処理の検証文字列について、ステップS53から処理を繰り返す。
一方、全ての検証文字列について出現位置を取得している場合(ステップS55;Yes)、次にステップS52で取得した基準文字列の出現位置の一つを、注目出現位置として選択する(ステップS56)。
そして、注目出現位置から所定の範囲に、すべての検証文字列が存在するか、ステップS54で取得した検証文字列の出現位置に基づいて判別する(ステップS57)。ここで、所定の範囲とは、注目出現部位が、ある見出番号の見出部CEに有る場合は、その見出部全体を言う。また、解説部CCに有る場合は、その解説部CC全体の中で、所定の文字数の範囲を言う。また、用例部CXに有る場合は、その注目出現部位が属する用例テキスト(図5(b)の用例テキスト11、用例テキスト12、等のそれぞれ)が占める範囲を言う。
なお、この「所定の範囲」はこれに限らず、自由に設定可能である。また、ユーザ操作等により設定変更することが出来るとしても良い。
なお、この「所定の範囲」はこれに限らず、自由に設定可能である。また、ユーザ操作等により設定変更することが出来るとしても良い。
注目出現位置から所定の範囲に、すべての検証文字列が存在しない場合(ステップS57;No)、その注目出現部位は複数の検索キーワードに対する検索(AND検索)のヒット部位では無いとの判断のもと、注目出現部位を検索結果から排除する(ステップS58)。
一方、注目出現位置から所定の範囲に、すべての検証文字列が存在する場合(ステップS57;Yes)、注目出現部位を検索ヒット部位とする(ステップS59)。そして、その注目出現部位について評価値を算出する(ステップS60)。
ここで、本処理における評価値の算出方法を説明する。まず、算出部150が図16の決定方法テーブルを参照して、注目出現部位のカテゴリと、検索キーワードの単語数に合致する順位決定方法(算出方法)を取得する。
注目出現部位が見出部CEに位置する場合には、算出部150は、図16に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「見出部」を表す情報と、に対応付けられた順位決定方法「数式5」を表す情報を取得する。
次に、算出部150は、基準文字列と、各検証文字列の文字数を取得する。次に、そして、各数値を以下の数式(5)に代入して、注目出現部位の特定テキストの評価値を算出する。
ただし、EstDistWtihoutOrderは、検索キーワードの入力順を考慮せずに検索した場合には、対象文字列におけるヒット部位の先頭から末尾までの距離(図18参照)である。EstDistWtihoutOrderは以下の数式(6)を用いて算出される。
ただし、minPosは、以下の数式(7)でもとめられるDiststdstr、vfystrkがすべてのk(kは検証文字列の数)について最小と成るときの全ての検索文字列を含む範囲の先頭の位置である。
また、maxPosは、以下の数式(7)でもとめられるDiststdstr、vfystrkがすべてのk(kは検証文字列の数)について最大と成るときの全ての検索文字列を含む範囲の末尾の位置である。
また、maxPosは、以下の数式(7)でもとめられるDiststdstr、vfystrkがすべてのk(kは検証文字列の数)について最大と成るときの全ての検索文字列を含む範囲の末尾の位置である。
なお、NumStrstdsrtは基準文字列の文字数、NumStrvfystrkはk番目の検証文字列の文字数、Posstdstrは基準文字列の出現位置、Posvfystrkはk番目の検証文字列の出現位置を示す。
ここで、数式(7)で算出される基準文字列とk番目の検証文字列との距離について、基準文字列を「while」とし、1番目の検証文字列を「for」とした例を用いて説明する。図17(a)に示すように、基準文字列「while」の特定出現位置が、1番目の検証文字列「for」の特定出現位置よりも先である場合には、基準文字列「while」と1番目の検証文字列「for」との距離は、基準文字列「while」の先頭から検証文字列の末尾までの距離を表す。これに対して、図17(b)に示すように、基準文字列「while」の特定出現位置が、1番目の検証文字列「for」の特定出現位置よりも後である場合には、基準文字列「while」と1番目の検証文字列「for」との距離は、検証文字列「for」の先頭から基準文字列「while」の末尾まで距離を表す。
次に、数式(6)で算出される上限値maxPos及び下限値minPos並びにこれらを用いて算出される検索キーワード間距離(入力順を考慮しない場合)について、基準文字列「while」と1番目の検証文字列「for」と2番目の検証文字列「a」とを具体例として挙げて説明を行う。図18に示すように、上限値maxPos及び下限値minPosは、基準文字列と、基準文字列「while」との距離を最小とする1番目の検証文字列「for」と、基準文字列「while」との距離を最小とする2番目の検証文字列「a」と、基準文字列「while」、1番目の検証文字列「for」、及び2番目の検証文字列「a」の全てを含む最小の範囲(以下、最小包含範囲という)の下限値及び上限値である。また、検索キーワード間距離(入力順を考慮しない場合)は、当該下限値minPosと上限値maxPosとの差異である。
さらに、数式(5)のEstDitectは複数の検索キーワードのヒット態様の評価値の総合評価値であり、具体的には次の数式(8)で算出される。
なお、Mは検索文字列の個数である。EstDetectvfystrkはEstDetectstdstrと同様に定義される検証文字列のヒット態様の評価値であり、数式(9)で算出される。
なお、ValDetectvfystrkは、k番目の検証文字列が前方一致の場合に1、後方一致の場合に2、部分一致(中間一致)の場合に3となる。このとき、数式(9)のVal_Penalty_DETECTを、数式(2)のような基準文字列に対応する数値よりも小さくして、検証文字列のヒット態様の重要度が基準文字列よりも小さくなるようにしてもよい。
以上のように、数式(5)で算出される評価値は、最小包含範囲に含まれる文字列が、入力された検索キーワードのみである場合に最小値となる。また、検索キーワードの全てがより狭い最小包含範囲に含まれている程(つまり、検索キーワードのいずれかの使用が開始される位置が、全ての検索キーワードの使用が終了される位置により近い程)算出される評価値が小さい値となる。例えば、入力された複数の検索キーワードが「for」、「a」、及び「while」である場合には、「for a while」を含む用例テキストの評価値の方が、「for a brief while」を含む用例テキストの評価値よりも小さい値となる。また、「for a brief while」を含む用例テキストの評価値の方が、「for a job while」を含む「This will allow you to look 『for a job while』 you are working at a part-time job」というテキストの評価値よりも小さい値となる。つまり、通常、ユーザは、検索キーワードのみで構成されるイディオムの使用例を表す用例テキストの表示を所望することが多いからであり、かつ検索キーワード以外の文字列を多く含む用例テキストよりも検索キーワード以外の文字を少なく含む用例テキストの表示を所望するからである。また、入力された複数の検索キーワードの間に文字が多く使用されている用例テキスト程、入力された複数の検索キーワードで構成されるイディオムとは異なるイディオムの使用例を表すことが多いためである。
さらに、数式(5)で算出される評価値は、検証文字列と基準文字列のヒット態様が評価の低いヒット態様であればあるほど大きくなる。例えば、検証文字列と基準文字列が何れも評価の低いヒット態様(例えば部分一致)であるよりも、いずれかが評価の高いヒット態様(例えば前方一致)でヒットした場合の方が、優先度は高くなる(評価値は小さくなる)。これにより、よりユーザが所望する内容を含む割合が高いと考えられるような、複数の検索キーワードが合算して評価の高いヒット態様でヒットしている部位を優先的に表示できる。
また、特定テキストの特定カテゴリが解説部CCである場合には、算出部150は、決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「解説部」を表す情報と、に対応付けられた順位決定方法「数式10」を表す情報を取得する。
次に、算出部150は、数式(5)を用いて評価値を算出する場合と同様に、検索キーワード間距離及び下限値minPosを算出する。また、算出部150は、数式(3)を用いて評価値を算出する場合と同様に、特定見出部に対応する解説部CCの開始位置を算出する。その後、算出部150は、検索キーワード間距離及び下限値minPosと解説部CCの開始位置Posidxid,comentaryとを、以下の数式(10)に用いて特定テキストの評価値を算出する。
数式(10)で算出される評価値は、検索キーワード間距離(入力順を考慮しない場合)が同じ解説テキストであれば、検索キーワードを包含する最小包含範囲の下限値minPosが解説部CCの開始位置に近い程小さい値となる。また、数式(6)で算出される評価値は、下限値minPosと解説部CCの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離(入力順を考慮しない場合)が短い程小さい値となる。EstDetectについては、解説部CCに区切文字を挿入しない場合はVal_PENALTY_DETECTの値を0とする。解説部CCに区切文字を挿入している場合には、数式(5)と同様の値とする。
次に、特定テキストの特定カテゴリが用例部CXである場合には、決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、に対応付けられた順位決定方法「数式11」を表す情報を取得する。
この場合、数式(5)を用いて評価値を算出する場合と同様に、検索キーワード間距離及び下限値minPosを算出し、数式(10)を用いて評価値を算出する場合と同様に、用例テキストの開始位置を算出する。その後、算出部150は、検索キーワード間距離及び下限値minPosと用例テキストの開始位置Posidxid、example,expidとを、以下の数式(11)に用いて特定テキストの評価値を算出する。
数式(11)で算出される評価値は、同じ並び順の複数の検索キーワードの検索キーワード間距離(入力順を考慮しない場合)が同じであれば、下限値minPosが用例テキストの開始位置に近い程小さい値となり、下限値minPosと用例テキストの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離(入力順を考慮しない場合)が短い程小さい値となる。EstDetectについては数式(10)の場合と同様である。
以上のようにして注目出現部位の特定テキストについて評価値を算出すると、次に、S52で求めた基準文字列の出現位置の全ての出現位置を注目出現位置として上記処理を実行したかしたか否かを判別する(ステップS61)。未処理の出現位置が残っている場合(ステップS61;No)、次の未処理の出現位置についてステップS56から処理を繰り返す。
一方、全ての出現位置について上記処理済みであった場合(ステップS61;Yes)、複数文字列検索処理は終了する。
一方、全ての出現位置について上記処理済みであった場合(ステップS61;Yes)、複数文字列検索処理は終了する。
図9に戻って、注目文書についてステップS15のキーワード検索処理が終わりと、次に検索部140が辞書データに含まれる全ての文書(見出語とその本文)について検索処理を終了したか判別する(ステップS16)。未処理の文書が有る場合には(ステップS16;No)、次の見出語(及びその本文)を注目文書としてステップS14から処理を繰り返す。一方、全ての文書について検索処理済みである場合、(ステップS16;Yes)、次に検索結果を表示する(ステップS17)。
ステップS17では、まず決定部160が、カテゴリ毎に、図12のステップS24や図15のステップS60で算出された評価値に基づき、1又は複数の特定テキストの表示順位を決定する。本実施形態では、決定部160は、特定テキストの評価値が小さい特定テキストの表示順位程、先に表示される順位に決定する。そして、出力部170が、カテゴリ毎に、決定された表示順位で1又は複数の特定テキストを表示する、図6に示すような検索結果表示画面を表す信号を表示部180へ出力する。表示部180は、出力された信号に基づいて検索結果表示画面を表して、テキスト検索処理は終了する。
以上説明したとおり、本実施形態のテキスト検索装置によれば、前方一致、後方一致、部分一致、完全一致という複数の検索方法による検索結果を、一度の処理で実行し、その結果をユーザに提示することが出来る。そのため、ユーザにとって利便性が高い。
複数種類の検索方法を用いて検索をするユーザには、それぞれの検索方法による検索結果を比較して、所望の文書を検索したい場合がある。例えば、あるキーワードを用いて検索対象の文書を完全一致検索で検索した結果を優先的に利用する一方、前方一致検索の結果にも所望の文書が含まれていないか確認したい場合などである。本実施形態のテキスト検索装置によれば、このような場合でも一回の操作で完全一致検索と、前方一致検索以下の優先度が低い検索結果を得ることが出来る。
また、数式(1)の評価値や、先頭マークを含めた検索により、部分一致検索用の索引情報を用いて、検索キーワードが前方一致検索の対象となるテキストの先頭にある文字列を特定する手段(特定手段)を実現している。このため、利便性の高いテキスト検索機能を実現するために必要な計算量の増加が少ない。例えば、先頭マークを含める検索により、先頭にある文字列を特定することにより、先頭マークを含めない場合よりも検索ヒット候補を抑えることが出来、計算量が少なくてすむ。
また、各検索対処となる文書について、区切文字を含まないnグラム(検索キーワードに含まれるnグラム)によって先に検索し、ヒット部位が有った場合に限り区切文字を含むnグラムについて評価してヒット態様を決定する。これにより、ヒット部位が無かった場合にヒット態様の決定のためにのみ必要な区切文字を含むnグラムの位置を確認する処理を省略することができるため、処理を高速にすることが出来る。
さらに、検索インデックス(転置インデックス)を用いて、抽出した区切文字を含まないnグラムの位置を特定し、その連続性を評価する構成により、検索キーワードが検索対象の文書に現れる部位を高速に検出することが出来る。
また、数式(2)、数式(9)等を用いて定義される、前方一致、後方一致、部分一致及び完全一致といったヒット態様に応じて定まる数値を用いて評価値(表示優先度に対応)を算出する構成により、ユーザのニーズにあったヒット態様に合致する検索結果を優先的に表示することが出来る。そのため、ユーザが所望する文書をより効率よく検索できる。
また、見出語、説明部、用例部のそれぞれに応じた評価値の算定方法を用いて優先度を決定する構成により、ヒット部位の性質に合わせて優先度を算定することができる。よって、検索効率が高い。
また、完全一致、前方一致、後方一致、部分一致の順で、ヒット部位の優先度が高くなるように評価値を算定する。このため、最も重要度が高い、見出語に完全一致した検索結果から、最も重要度が低い中間部分のみ一致した部分一致まで、ユーザのニーズに合わせた順で検索結果を表示できる。
さらに、nグラムのnの値を2以上にすることで、nグラムの出現部位を数を減らすことが出来るため、処理速度が向上する。
(変形例)
以上、本発明の実施形態1について説明したが、本発明の実施形態はこれに限られない。
例えば、上記実施形態1では、区切文字は半角スペースであるとしたが、区切文字はこれに限られず自由に選択可能である。例えば、区切文字はシステムに予約されたユニークなマーク(その他で前方一致検索の対象となるテキストに現れないマーク)であってよい。
以上、本発明の実施形態1について説明したが、本発明の実施形態はこれに限られない。
例えば、上記実施形態1では、区切文字は半角スペースであるとしたが、区切文字はこれに限られず自由に選択可能である。例えば、区切文字はシステムに予約されたユニークなマーク(その他で前方一致検索の対象となるテキストに現れないマーク)であってよい。
また、実施形態1では再配置CTD及び転置インデックスを生成する処理(データ等生成処理)をテキスト検索装置100が実行するとしたが、これに限らず、予め外部装置が生成した再配置CTD及び転置インデックスを記憶部に記憶していることで足りる。例えば、工場出荷時において、各辞書データに対応する再配置CTDと転置インデックスとを記憶するとしても良い。
尚、実施形態1およびその変形例において、電子辞書は、電子辞典をも含む。つまり、電子辞書は、国語辞典、英和辞典、和英辞典、及び百科事典であっても良い。また、本発明では、テキスト検索装置100は、検索キーワードに基づいて辞書を検索するとして説明したが、検索の対象とされる文書は、辞書に限定される訳ではなく、どのような文書でも良い。また、インクリメント検索(前方一致検索)と、全文検索(部分一致検索)における具体的な方法、特に順位付けの方法については、任意に設定可能である。
また、上記各部を実現するための処理の具体的な内容は任意に変更可能である。例えば、上記実施形態では区切文字を含まないnグラムを先に検出した。しかし、これに限らず、区切文字を含むnグラムを先に処理しても良い。
検索の対象とされる文書は、例えば、「発明の名称」及び「特許請求の範囲」などのカテゴリにそれぞれ分類されたテキストで構成される特許明細書であっても良い。また、検索の対象とされる文書は、例えば、ある製品が有する機能の名称を表すテキストが分類されるカテゴリ(以下、機能名カテゴリという)と、当該機能を利用するための操作方法を表すテキストが分類されるカテゴリ(以下、操作方法カテゴリという)とを有する説明書であっても良い。
尚、本発明は、実施形態1、若しくはその変形例に係るテキスト検索装置100として提供できることはもとより、プログラムの適用により、既存のテキスト検索装置をテキスト検索装置100として機能させることもできる。すなわち、テキスト検索装置100による各機能構成を実現させるためのテキスト検索プログラムを、既存のテキスト検索装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、実施形態1、若しくは変形例に係るテキスト検索装置100として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD−ROM(Compact Disc-Read Only Memory)、又はDVD−ROM(Digital Versatile Disc-Read Only Memory)などの記録媒体に格納して配布できる他、インタネットなどの通信媒体を介して配布することもできる。また、再配置CTD及び転置インデックス等の上記処理に必要なデータの一部又は全部は、外部サーバに記憶されており、通信機能によりこれらのデータを取得して上記処理を実行する構成も可能である。
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。つまり、本発明のいくつかの実施形態を説明したが、上述した実施形態は本発明を説明するためのものであり、本発明の範囲を限定するものではない。本発明の範囲は、実施形態ではなく、特許請求の範囲に記載された発明とその均等の範囲を含む。
以下に本願出願の当初の特許請求の範囲に記載された発明を付記する。
以下に本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段と、
検索文字列を取得する取得手段と、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段と、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段と
を備えることを特徴とする検索装置
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段と、
検索文字列を取得する取得手段と、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段と、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段と
を備えることを特徴とする検索装置
(付記2)
前記一致状態判定手段は、一致状態として完全一致であるか部分一致であるかを判定することを特徴とする付記1に記載の検索装置。
前記一致状態判定手段は、一致状態として完全一致であるか部分一致であるかを判定することを特徴とする付記1に記載の検索装置。
(付記3)
前記文書データは複数の項目を有し、前記出力手段は一致状態に基づく優先度を、項目に応じて定められた算出方法により決定することを特徴とする付記1または2に記載の検索装置。
前記文書データは複数の項目を有し、前記出力手段は一致状態に基づく優先度を、項目に応じて定められた算出方法により決定することを特徴とする付記1または2に記載の検索装置。
(付記4)
前記文書データは、項目として見出語及び見出語の説明情報を含む辞書データであることを特徴とする付記1〜3の何れか1つに記載の検索装置。
前記文書データは、項目として見出語及び見出語の説明情報を含む辞書データであることを特徴とする付記1〜3の何れか1つに記載の検索装置。
(付記5)
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶装置を有するコンピュータを用いて実行される検索方法であって、
検索文字列を取得する取得ステップと、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成ステップと、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断ステップと、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記検索対象判断ステップで文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定ステップと、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力ステップと
を含むことを特徴とする検索方法。
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶装置を有するコンピュータを用いて実行される検索方法であって、
検索文字列を取得する取得ステップと、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成ステップと、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断ステップと、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記検索対象判断ステップで文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定ステップと、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力ステップと
を含むことを特徴とする検索方法。
(付記6)
コンピュータを、
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段、
検索文字列を取得する取得手段、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成手段、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段、
として機能させるためのプログラム。
コンピュータを、
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段、
検索文字列を取得する取得手段、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成手段、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段、
として機能させるためのプログラム。
100・・・テキスト検索装置、100a・・・CPU、100b・・・ROM、100c・・・RAM、100d・・・ハードディスク、100e・・・メディアコントローラ、100g・・・ビデオカード、100h・・・LCD、100i・・・キーボード、100j・・・スピーカ、110・・・情報記憶部、120・・・生成部、130・・・取得部、140・・・検索部、1410・・・付加部、1420・・・抽出部、1430・・・キー検出部、1440・・・区切検出部、150・・・算出部、160・・・決定部、170・・・出力部、180・・・表示部
Claims (6)
- Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段と、
検索文字列を取得する取得手段と、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段と、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段と、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段と
を備えることを特徴とする検索装置。 - 前記一致状態判定手段は、一致状態として完全一致であるか部分一致であるかを判定することを特徴とする請求項1に記載の検索装置。
- 前記文書データは複数の項目を有し、前記出力手段は一致状態に基づく優先度を、項目に応じて定められた算出方法により決定することを特徴とする請求項1または2に記載の検索装置。
- 前記文書データは、項目として見出語及び見出語の説明情報を含む辞書データであることを特徴とする請求項1〜3の何れか1項に記載の検索装置。
- Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶装置を有するコンピュータを用いて実行される検索方法であって、
検索文字列を取得する取得ステップと、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成ステップと、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断ステップと、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記検索対象判断ステップで文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定ステップと、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力ステップと
を含むことを特徴とする検索方法。 - コンピュータを、
Nグラム文字列パタンとこのNグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段、
検索文字列を取得する取得手段、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらNグラム文字列パタンを抽出して検索Nグラム列を生成する検索Nグラム生成手段、
前記生成された検索Nグラム列のうち前記区切り文字を含まないNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段、
前記生成された検索Nグラム列のうち前記区切り文字を含むNグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段、
として機能させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012207530A JP5733285B2 (ja) | 2012-09-20 | 2012-09-20 | 検索装置、検索方法及びプログラム |
BR102013023899-6A BR102013023899B1 (pt) | 2012-09-20 | 2013-09-18 | sistema de pesquisa e método de pesquisa |
EP13185253.5A EP2711854B1 (en) | 2012-09-20 | 2013-09-20 | Search system, method and program based on n-grams |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012207530A JP5733285B2 (ja) | 2012-09-20 | 2012-09-20 | 検索装置、検索方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014063306A JP2014063306A (ja) | 2014-04-10 |
JP5733285B2 true JP5733285B2 (ja) | 2015-06-10 |
Family
ID=49223632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012207530A Active JP5733285B2 (ja) | 2012-09-20 | 2012-09-20 | 検索装置、検索方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2711854B1 (ja) |
JP (1) | JP5733285B2 (ja) |
BR (1) | BR102013023899B1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110610389A (zh) * | 2018-06-14 | 2019-12-24 | 上海汽车集团股份有限公司 | 一种目标标准的确定方法及装置 |
KR102158317B1 (ko) * | 2018-12-18 | 2020-09-21 | 인하대학교 산학협력단 | 2차 q-그램에 대한 핑거프린트를 이용한 순위패턴매칭 알고리즘 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3696745B2 (ja) | 1999-02-09 | 2005-09-21 | 株式会社日立製作所 | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP4342753B2 (ja) * | 2001-08-10 | 2009-10-14 | 株式会社リコー | 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 |
US7685093B1 (en) * | 2006-09-15 | 2010-03-23 | Initiate Systems, Inc. | Method and system for comparing attributes such as business names |
US20090144266A1 (en) * | 2007-12-04 | 2009-06-04 | Eclipsys Corporation | Search method for entries in a database |
JP5083367B2 (ja) * | 2010-04-27 | 2012-11-28 | カシオ計算機株式会社 | 検索装置、検索方法、ならびに、コンピュータプログラム |
JP5505234B2 (ja) * | 2010-09-29 | 2014-05-28 | 富士通株式会社 | 文字列比較プログラム、文字列比較装置及び文字列比較方法 |
-
2012
- 2012-09-20 JP JP2012207530A patent/JP5733285B2/ja active Active
-
2013
- 2013-09-18 BR BR102013023899-6A patent/BR102013023899B1/pt active IP Right Grant
- 2013-09-20 EP EP13185253.5A patent/EP2711854B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2711854B1 (en) | 2017-11-01 |
EP2711854A1 (en) | 2014-03-26 |
JP2014063306A (ja) | 2014-04-10 |
BR102013023899B1 (pt) | 2020-12-15 |
BR102013023899A2 (pt) | 2014-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5900367B2 (ja) | 検索装置、検索方法及びプログラム | |
JP5910134B2 (ja) | テキスト検索装置及びプログラム | |
JP2015506515A (ja) | タグをドキュメントに自動的に追加するための方法、装置およびコンピュータ記憶媒体 | |
US20060230031A1 (en) | Document searching device, document searching method, program, and recording medium | |
JP5737079B2 (ja) | テキスト検索装置、テキスト検索プログラム、及びテキスト検索方法 | |
JP4001283B2 (ja) | 形態素解析装置および自然言語処理装置 | |
JP5733285B2 (ja) | 検索装置、検索方法及びプログラム | |
JP2009199302A (ja) | ドキュメントを解析するためのプログラム,装置および方法 | |
JPH0844771A (ja) | 情報検索装置 | |
JP5447368B2 (ja) | 新規事例生成装置、新規事例生成方法及び新規事例生成用プログラム | |
JP2008077252A (ja) | 文書ランキング方法、文書検索方法、文書ランキング装置、文書検索装置、及び記録媒体 | |
KR101835994B1 (ko) | 키워드 맵을 이용한 전자책 검색 서비스 제공 방법 및 장치 | |
JP5326781B2 (ja) | 抽出規則作成システム、抽出規則作成方法及び抽出規則作成プログラム | |
JP6447549B2 (ja) | テキスト検索装置、テキスト検索方法及びプログラム | |
JP5085584B2 (ja) | 記事特徴語抽出装置、記事特徴語抽出方法及びプログラム | |
JP4934115B2 (ja) | キーワード抽出装置、方法及びプログラム | |
JP4813312B2 (ja) | 電子文書検索方法、電子文書検索装置及びプログラム | |
JP5803481B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP6668855B2 (ja) | 検索装置、検索方法及びプログラム | |
JP2009140113A (ja) | 辞書編集装置、および辞書編集方法、並びにコンピュータ・プログラム | |
JP2021009591A (ja) | データ取得装置、データ取得方法、およびデータ取得プログラム | |
JP2005031813A (ja) | 抄録作成支援システム、プログラム、抄録作成支援方法及び特許文献検索システム並びにその検索方法 | |
JP2004318328A (ja) | 情報検索方法 | |
JP2009211285A (ja) | 文章入力補助装置、及び文章入力補助プログラム | |
JP2003196308A (ja) | 情報検索方法、情報検索装置及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140917 |
|
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: 20150317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150330 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5733285 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |