JP5900367B2 - 検索装置、検索方法及びプログラム - Google Patents

検索装置、検索方法及びプログラム Download PDF

Info

Publication number
JP5900367B2
JP5900367B2 JP2013016199A JP2013016199A JP5900367B2 JP 5900367 B2 JP5900367 B2 JP 5900367B2 JP 2013016199 A JP2013016199 A JP 2013016199A JP 2013016199 A JP2013016199 A JP 2013016199A JP 5900367 B2 JP5900367 B2 JP 5900367B2
Authority
JP
Japan
Prior art keywords
character string
search
gram
target character
search target
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
Application number
JP2013016199A
Other languages
English (en)
Other versions
JP2014146301A (ja
Inventor
佐藤 勝彦
勝彦 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2013016199A priority Critical patent/JP5900367B2/ja
Priority to US14/137,319 priority patent/US9292508B2/en
Priority to CN201410044001.6A priority patent/CN103970826B/zh
Publication of JP2014146301A publication Critical patent/JP2014146301A/ja
Application granted granted Critical
Publication of JP5900367B2 publication Critical patent/JP5900367B2/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • 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/93Document management systems

Landscapes

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

Description

本発明は、検索装置、検索方法及びプログラムに関する。
文書を検索するに当たって、検索キーワードと完全に一致しない部分をヒット部位とする曖昧検索機能をもつ検索システムが知られている。例えば、特許文献1は、検索対象のテキストに現れる文字の位置を記録した検索インデックスを用いて曖昧検索を実行する技術を開示している。特許文献1の技術では、まず検索キーワードに現れる文字が検索対象のテキストに現れる位置を取得する。そしてその文字が、キーワードに現れる位置から所定範囲内の誤差で検索対象文字列にも現れる場合に類似度を加算する。このように算出した類似度に基づいて曖昧検索を実施する。
特開平8−235212号公報
特許文献1に記載の技術では、キーワードに現れる位置から所定範囲内の誤差で検索対象にも現れる文字の数が等しい検索対象文字列に対しては、同じ類似度が算出される。そのため、非常に検索キーワードに近い検索対象の文字列と、とびとびに検索キーワードに含まれる文字が現れるに過ぎない文字列とが、同一の類似度となってしまう。そのため、検索結果がユーザが所望する文書である精度が低いという問題があった。
本発明はこのような事情に鑑みて成されたものであり、高い精度で曖昧検索を実行できる検索装置、検索方法及びプログラムを提供することを目的とする。
上記目的を達成するため、本発明に係る検索装置は、
検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
キーワードを取得する取得手段と、
前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
前記生成手段が生成した検索文字列から複数のNグラム列を抽出し、この抽出されたNグラム列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
前記検索対象文字列に含まれるNグラムを1つずつ選択する選択手段と、
前記選択手段により1つのNグラムが選択される毎に、前記検索対象文字列と前記検索文字列とを選択された前記1つのNグラムが現れる位置を基準に比較した場合に、同じ相対位置で一致するNグラムの数をカウントするカウント手段と、
前記カウント手段でカウントされたカウント値の頻度と、前記検索対象文字列と前記検索文字列との文字長の差分と、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価する評価手段と、
前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段と、
を備えることを特徴とする。
本発明によれば、高い精度で曖昧検索を実行できる。
本発明の実施形態1に係るテキスト検索装置の一例を示す斜視図である。 実施形態1に係るテキスト検索装置の一構成例を表す図である。 実施形態1に係るテキスト検索装置が実行するデータ等生成処理の一例を表すフローチャートである。 実施形態1に係るテキスト検索装置の機能構成の一例を表すブロック図である。 (a)は、テキスト検索装置が記憶する辞書データの一例を表す図である。(b)は、テキスト検索装置が記憶する再配置コンテンツテキストデータの一例を表す図である。 実施形態1に係るテキスト検索装置が表示するテキスト検索の結果表示画面の一例を表す図である。 実施形態1に係るテキスト検索装置が記憶する辞書テーブルの一例を表す図である。 実施形態1に係るテキスト検索装置が記憶する転置インデックスを含む電子ファイルの一例を表す図である。 実施形態1に係るテキスト検索装置が実行するテキスト検索処理の一例を表すフローチャートである。 実施形態1に係るテキスト検索装置が実行するnグラム抽出処理の概要を示す図である。 実施形態1に係るテキスト検索装置が実行する曖昧検索処理の一例を表すフローチャートである。 実施形態1に係る位置検索結果の一例を表す図である。 (a)実施形態1に係る検索パタンのnグラムが注目文字列において現れる位置情報の例を示す図である。(b)位置情報の組合せの例を表す図である。 実施形態1に係るテキスト検索装置が実行する一致度を求める処理の概要を説明するための図である。
以下、本発明の実施形態に係るテキスト検索装置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)、及びブルーレイディスク(Blu-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に配置された見出語テキストのアルファベット順に並べられている。各構成単位において、見出語テキストを含む見出部CEの直後に、その見出語を説明するための本文テキストを含む本文部CBが配置されている。
また、各見出部CEには、見出部CEを識別する見出語番号が予め割り当てられている。辞書データには、この見出語番号を表す情報と、当該見出語番号で識別される見出部CEが格納された情報記憶部110における記憶領域の先頭アドレスを表す情報と、当該見出部CEの直後に格納された本文部CBの先頭アドレスを表す情報と、が対応付けられた情報が、見出語の数だけ含まれる。この構成単位は、一単位の「検索対象となる文書(文字列)」とも言う。この場合、辞書データは検索対象となる文書を複数束ねたデータと表現できる。
本文部CBには、複数の解説テキストが、電子辞書の編集者が定めた並び順に従って配置されている。具体例としては、見出語のより一般的な意味内容を解説する解説テキストの方が、見出語のより特殊な意味内容を解説する解説テキストよりも先の位置に格納されている。あるいは、より使用頻度の高い意味内容を解説する解説テキストの方が、より使用頻度の低い意味内容を解説する解説テキストよりも先の位置に格納されているとしても良い。
本実施形態のテキスト検索装置100は、ユーザがキーボード100iを用いて検索キーワードを入力して確定操作を実行すると、上述した見出語のうち、検索キーワードとの類似度に基づいて算出される評価値が所定の閾値より大きい見出語を、評価値が高い順に表示する(図6)。評価値の算出方法については後述する。
この実施形態では、テキスト検索装置100に記憶されている辞書(図7参照)のうちユーザの指定した検索対象辞書(図6の例では英和辞書1、及び百科事典)に含まれる見出語が曖昧検索の対象文書となる。
ここで、本実施形態の検索処理に用いる検索用インデックス(転置インデックス)を生成するデータ等生成処理について、図3を参照して説明する。生成部120は、辞書データを取得すると図3に示すデータ等生成処理を開始する。
データ等生成処理では、まず生成部120が情報記憶部110に記憶された辞書コンテンツを表す辞書データを読み出す(ステップS1)。
そして、読み出した辞書データから、見出語テキストと本文テキスト(解説テキストと用例テキスト)とを抽出する(ステップS2)。具体的に説明する。本文部CBには、解説テキストと用例テキストとが混在しているので、まず生成部120は、これらのテキストを内容に応じて分類分けをする。そのために、生成部120は、辞書データに含まれる見出語番号を表す情報と、見出部CEの先頭アドレスを表す情報と、本文部CBの先頭アドレスを表す情報と、を用いて、辞書データから見出語テキストと本文テキストとを複数抽出する。
さらに、生成部120はステップS2で、抽出された見出語テキスト毎に、見出語テキストで表される見出語を解説する解説テキストを本文テキストから解説タグに基づいて複数抽出し、かつ見出語の用例を表す用例テキストを用例タグに基づいて本文テキストから複数抽出する。
そして、曖昧の対象となるカテゴリのテキスト(ここでは見出語)の先頭と末尾に、端部であることを示すマーク(区切文字、ここでは半角スペース)を挿入する(ステップS3)。なお、見出語が英語である場合には、単語と単語が半角スペースで区切られている箇所には半角スペースを挿入せず、先頭の半角スペースが無い部分や、単語の末尾がピリオド「.」、カンマ「,」、エクスクラメーションマーク「!」、クエッションマーク「?」等、単語の前後が半角スペースでない部分にのみ半角スペースを挿入する。この結果、検索対象となる複数のテキスト(ここでは複数の見出し語)に区切文字(半角スペース)を挿入した文字列が再生される。この区切文字を含む文字列は、後述する処理で曖昧検索処理の対象となるため、対象文字列とも言う。
その後、生成部120は、図5(b)に示すような再配置コンテンツテキストデータ(CTD)を生成して保存する(ステップS4)。具体的には、見出語テキストに区切文字(ここでは「・」で代用して図示)を抽出した上で、構成単位ごとに抽出された解説テキストの並び順を変更せずにまとめて配置することで、抽出された複数の解説テキストが配置される部位(以下、解説部CCという)を生成する。
同様に、生成部120は、構成単位毎に、抽出された複数の用例テキストの並び順を変更せずにまとめて配置することで、抽出された複数の用例テキストが配置された部位(以下、用例部CXという)を生成する。
なお、ここでは見出部CEの両端部(たとえば見出語「salad」について、sの前とdの後ろ)に区切文字を挿入する例について説明した。区切文字の挿入箇所はこれに限らず、任意に設定可能である。例えば、解説テキスト及び用例テキストが曖昧検索の対象なる場合には、解説部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」という名称(ファイル名)で示されている。また、出現位置情報ファイルに保存された出現位置情報は、先頭アドレスから出現頻度用の所定バイト数までの領域に出現頻度を表す情報が格納され、当該領域の直後から出現位置用の所定バイト数毎に出現位置アドレスを表す情報が格納される。出現位置アドレスを表す情報は、例えば辞書データを記録しているハードディスク100dにおける、対象のNグラムが辞書データ上に現れる位置に対応するアドレスの情報であればよい。
次に、生成部120は、Nグラムを表す情報(以下、Nグラム文字列パタン情報という)と、当該Nグラム文字列パタンの出現位置情報が格納された情報記憶部110の記憶領域の先頭アドレス(以下、出現位置情報格納アドレスという)を表す情報と、を対応付けた情報を複数含む電子ファイル(以下、Nグラム文字列パタンファイル若しくはSファイルという)を生成する。その後、生成部120は、Sファイルを情報記憶部110へ保存する(ステップS7)。
図8では、Sファイルは「pattern.idx」という名称(ファイル名)で示されている。
次に、生成部120は、見出語テキストを含む見出部CEを識別する見出番号と、当該見出部CEが格納された情報記憶部110の記憶領域の先頭アドレス(以下、見出部CEの開始位置を表すアドレスという)を表す情報と、当該見出語テキストで表される見出語を解説する解説テキストが配置された解説部CCの先頭アドレス(以下、解説部CCの開始位置を表すアドレスという)を表す情報と、当該見出語の用例を表す用例テキストが配置された用例部CXの先頭アドレス(以下、用例部CXの開始位置を表すアドレスという)を表す情報と、当該用例部CXの用例個数を表す情報と、当該用例部CXの用例部開始位置情報が情報記憶部110に格納された領域の先頭位置を表すアドレス(以下、用例部開始位置情報格納アドレスという)を表す情報と、当該見出語を掲載した辞書の辞書番号を表す情報と、を対応付けた情報を複数含む電子ファイル(以下、見出等ファイル若しくはTファイルという)を生成する(ステップS8)。ここで、見出部の開始位置から、解説部の開始位置の直前までが見出し番号に対応する見出語が格納されている範囲である。また、解説部の開始位置から、用例部の開始位置の直前までが見出し番号に対応する解説部が格納されている範囲である。また、用例部の開始位置から、次の見出部の開始位置の直前までが見出し番号に対応する用例部が格納されている範囲である。用例部に複数の用例が含まれる場合、各用例の範囲は用例開始情報格納アドレスに格納された用例開始アドレスによって定まる。図8の見出語の開始位置から見出し番号までの、一つの見出し番号に対応する情報(見出し語等情報)は固定長(例えば1Kバイト)とする。図8では、Tファイルは「number.idx」という名称(ファイル名)で示されている。
次に、生成部120は再配置CTDに含まれる見出語のうち、同じ文字長の見出語をまとめたグループの情報を示す見出しグループ情報(Gファイル)を生成する(ステップS9)。Gファイルは、そのグループの文字数(n文字)と、n文字(n=1〜MAX)の見出語の位置に対応する情報(ここでは見出し番号)を対応づけて記録する。生成部120はGファイルを作るにあたって、まず1〜MAXの文字数に対応するグループをMAX個生成する。MAXの値は、再配置CTDに含まれる見出語の最大長であり、予め測定され記憶部110に記憶されている。そして、Tファイルが定義する見出部の情報を一づつ参照して、見出部の開始位置から解説部の開始位置の直前までの領域に対応する見出語の文字数と、その見出しの語の見出し番号を抽出する。そして、抽出した見出し番号を、抽出した文字数のグループに登録する。生成部120はTファイルが定義する全ての見出部についてこの処理を実行して、Gファイルを生成する。生成部120は、生成したGファイルを情報記憶部110へ保存した後に(図3に示すステップS9)、データ等生成処理の実行を終了する。図8では、Tファイルは「ngroup.idx」という名称(ファイル名)で示されている。見出し語等情報は固定長の情報なので、既知の値であるTファイルの先頭を参照すれば、見出し語番号から対応する見出し語等情報の先頭アドレスが得られる。なお、見出語の位置に対応する情報として、対応する見出し語等情報の先頭アドレスをGファイルに記録しても良い。
図8(特に「pattern.idx」と「position.idx」)に示すような、文字列(ここではNグラム)と、文字列の検索対象となる文書における出現位置とを、対応付けて記録した索引構造を転置インデックスと呼ぶ。本実施形態では、データ等生成処理により、所定のカテゴリ(ここでは見出語)のテキストについて、文書の区切り(見出しの前後)に区切りを示す区切文字(半角スペース)を付した再配置CTDの転置インデックスを生成する。
転置インデックスを情報記憶部110に記憶すると、この転置インデックスを用いて検索処理を実行する準備が整う。この状態で、ユーザが辞書の検索に用いる検索キーワードを入力する操作をキーボード100iを用いて実行すると、CPU100aがその情報を受け取り、図9に示すテキスト検索処理を実行する。
このテキスト検索処理を実行することにより、CPU100aは図4に示すような取得部130、付加部1410と抽出部1420と特定部1430とを含む検索部140、算出部150、決定部160、及び出力部170として機能する。また、CPU100aは、図2に示したビデオカード100g及びLCD100hと協働して表示部180として機能する。
ユーザがキーボード100iを用いて対象辞書を指定した上で検索キーワードを入力すると、CPU100aが図9に示すテキスト検索処理を開始する。テキスト検索処理では、まず取得部130が現在までに入力されたキーワード(検索キーワード)及び検索対象となる辞書を指定する情報を取得する(ステップS11)。ここでは、確定した検索キーワードが区切文字(スペース等)を含む場合、その区切文字で入力された文字を区切って、複数の検索キーワードを取得したとする。
そして、付加部1410が、検索キーワードの前後に区切文字(半角スペース)を挿入して、検索文字列とする(ステップS12)。検索キーワードが複数ある場合には、それぞれの検索キーワードに区切文字を挿入する。
さらに、抽出部1420が区切文字を挿入した検索文字列からNグラムの列(検索パタン)を抽出する(ステップS13)。ステップS13で実行する抽出処理の例を、図10に示す。以下、ユーザが英単語「salad」を間違えて「salaed」と入力した場合を例にとって説明する。この場合、Nグラムとして区切文字を含むバイグラム「・s」及び「d・」(・は半角スペースを示す)と、モノグラム「s」、「a」、「l」、「a」、「e」、「d」と、を抽出する。この8つのNグラムが、Nグラム文字列パタン(検索パタン)となる。このうち、モノグラム「e」が打ち間違いにより発生した不正なモノグラムである(不正率1/8)。このように先頭と末尾のNグラムをバイグラム以上の文字数を持つNグラムとすることで、検索文字列のうち検索キーワードの部分(ここではs及びd)と区切との位置関係が失われることを防ぐことが出来る。また、検索文字列に含まれる全ての文字は、Nグラムの何れかに含まれるため、検索文字列と対象文字列の類似度を求めるに当って、検索文字列全体の特長を反映させることが出来る。
また、区切文字を含まない部分(キーワードの部分)についてはモノグラムを抽出することにより、一文字間違えた場合に前後のNグラムに間違えが及び、後述する類似度が下がりすぎてしまうことを防止する。例えば全てバイグラムで抽出した場合に、上記の例ではキーワードの部分からバイグラム「・s」、「sa」、「al」、「le」、「ea」、「ad」、「d・」が抽出される。この場合、一字の打ち間違えで2つの不適切なバイグラム(「le」及び「ea」)が発生するため(不正率2/7)、類似度が大きく下がってしまう。本実施形態では、ステップS12で生成した検索文字列のうち区切文字を含まない部分(検索キーワードの部分)からはモノグラムを抽出することにより、打ち間違いの影響が過度に大きくならないようにしている。
次に、検索部140が検索対象となる辞書データに含まれる複数の文書(本実施形態では再配置CTDに含まれる見出語テキスト)を、区切文字を付加した検索キーワードで曖昧に検索する処理(曖昧検索処理)を実行する(ステップS14)。
ステップS14で実行される曖昧検索処理を、図11を参照して説明する。
曖昧検索処理では、検索部140が検索文字列の文字数を取得する(ステップS101)。例えば検索文字列が「・salaed・」の場合は、文字数(文字列の長さ)8を取得する。
次に、検索部140がGファイルを参照して、検索対象となる文字列(対象文字列)を抽出する(ステップS102)。具体的には、検索部140はまずステップS101で取得した文字数から予め定められた誤差値の範囲内の数値を算出する。例えば、ステップS101で文字数8であり、かつ誤差値が4に設定されている場合、4〜12が誤差値の範囲内の数値となる。誤差値は工場出荷時に設定された数値あるいはユーザの設定操作によって設定された数値であってよい。本実施形態では、この範囲内の見出し語が、対象文字列となる。次に、検索部140がGファイルのグループから、文字長が誤差値の範囲内であるグループを抽出する。さらに、検索部140が抽出したグループに記録されている見出し番号を抽出する。検索部140は、抽出した見出し番号が示す見出等情報を用いて、対象文字列が格納されているメモリ領域を抽出する。具体的には、抽出した見出し番号の見出等情報の“見出部の開始位置”から“解説部の開始位置”の直前までの領域を対象文字列が存在する出現領域として抽出する。なお、検索対象とする辞書が指定されている場合には、指定された辞書番号以外の見出部については上記処理対象としない。
次に、特定部1430が図9のステップS13で生成した検索文字列に含まれるNグラムの位置を特定する(ステップS103)。例えば、特定部1430は図8のSファイルから、テキスト検索処理のステップS13で生成したNグラム列(検索パタン)のNグラムと合致するNグラム文字列パタン情報を取得する。そして、Sファイルから取得したNグラム文字列パタン情報に対応付けられた出現位置情報格納アドレスを取得する。そして、情報記憶部110上の取得したアドレスに記録されたAPファイルを読み出して、検索文字列に含まれるNグラムが現れる位置情報を取得する。その結果、例えば図12に示したように、ステップS13で生成した各Nグラムと、そのNグラムに対してしてAPファイルに記録されているNグラムの出現位置(辞書データ上に現れる位置のアドレス)と、を対応づけた情報が得られる。
特定部1430はステップS103にて、図12の表に記録されたアドレスから、検索対象の範囲(ステップS102で抽出した領域)に含まれるアドレスをさらに抽出する。この結果得られたアドレス(位置情報)が、検索文字列に含まれるNグラムが対象文書(見出語)に現れる出現位置となる。各出現位置に現れるNグラムは、検索文字列にも対象文字列にも現れる部分列であるので、共通文字列とも言う。なお、処理量を減らすため、ステップS102で抽出した検索対象のうち、検索文字列に含まれるNグラムを一つも含まないものをこの段階で検索対象から排除しても良い。
次に、検索部140はステップS102で抽出した対象文字列から、現在処理対象となる文字列(注目文字列)を選択する(ステップS104)。具体的には、ステップS102で抽出した対象文字列のうち、未だ下記処理を実行していない最も見出し番号が少ないものを、注目文字列として選択する。
そして、算出部150が決定部160を用いて、注目文字列と検索文字列の類似度の評価として、ランク付け評価値を算出する(ステップS105〜ステップS112)。具体的には、まず算出部150は比較対象となる出現位置の組合せを決定する(ステップS105)。出現位置の組合せについて、図13を参照して説明する。例えば、検索文字列「・salaed・」の検索パタン(「・s」、「s」、「a」、「l」、「a」、「e」、「d」及び「d・」)と、注目文字列「・salad・」とを比較する場合、検索パタンのNグラムは注目文字列において、図13(a)に示したような位置に現れる。「・s」、「s」、「l」、「d」及び「d・」はそれぞれ1箇所に現れている。一方、「a」は注目文字列の先頭から2文字目と4文字目の2カ所に現れ、「e」は注目文字列に含まれていないため、一カ所も出現位置がない。なお、図13のテーブルを求めるためには、例えばステップS103で検出した検索パタンの対象文字列における出現位置のテーブルから、注目文字列の範囲に含まれる位置情報のみを抽出する。そして、抽出した位置情報から注目文字列の先頭位置を減算すればよい。
図13(a)の「a」のように、検索パタンに複数の出現位置が存在するNグラムが含まれる場合、図13(b)のように各nグラムについて出現位置を一つずつ選択した組合せが複数抽出される。ステップS105で算出部150は、この組合せを順次そのループに置ける検索文字列と注目文字列の比較処理の対象として選択する。
次に、決定部160が注目文字列のステップS105で決定した組合せにおいて、検索文字列に含まれるNグラムが検索文字列と類似した位置関係で現れる頻度を決定する。(ステップS106〜ステップS109)。
まず、決定部160は注目文字列に現れるNグラムから、処理対象となる注目Nグラムを選択する(ステップS106)。ここでは、注目文字列の出現位置のうち、未だ注目位置として選択されていない最も先頭のアドレスに現れるNグラムを選択するものとする。
次に、決定部160が注目Nグラムが現れる位置を基準にして、検索文字列から得られるNグラム列(検索パタン)と注目文字列から得られるNグラム列(注目パタン)において、相対位置が一致(又は類似)するNグラムをカウントする(ステップS107)。なお、注目位置を基準としたNグラムの相対位置とは、注目位置のアドレスから対象のNグラムの先頭アドレスを減算した値である。カウントした結果は、注目位置に現れるNグラム(注目Nグラム)を基準とした、注目パタンと検索パタンの一致度と考えることが出来る。
ステップS107の処理を、検索文字列が「・salaed・」、注目文字列が「・salad・」であり、ステップS105で決定した組合せが「組合せ2」である場合を例にとって、図14(a)〜(c)を参照して説明する。ここでは理解を簡単にするため、検出パタンと注目パタン(注目文字列から、抽出部1420と同じルールでNグラムを抽出した場合のNグラム列)を並べて比較する場合について説明する。
検索文字列が「・salaed・」、注目文字列(比較対象となる見出語)が「・salad・」であった場合、検索パタンはバイグラム「・s」、モノグラム「s」、「a」、「l」、「a」、「e」及び「d」、バイグラム「d・」が並んだNグラム列である。一方、注目パタンはバイグラム「・s」、モノグラム「s」、「a」、「l」、「a」及び「d」、バイグラム「d・」が並んだNグラム列である。図14(a)〜(c)のアスタリスクは、出現位置(検索パタンに含まれるNグラムが現れる部位)に現れるNグラムである。
曖昧検索処理において最初の注目位置として、先頭の出現位置(「・s」の先頭アドレス)が選択される。この場合、注目出現位置に現れる注目Nグラムは「・s」である。注目Nグラムが現れる位置で注目パタンと検索パタンを並べると、図14(a)の左のようになる。
その結果、注目パタンと検索パタンにおいて、Nグラム「・s」、「s」、「a」、「l」及び「a」の5つが重なる(位置関係が一致している)ことが解る。図14(a)〜(c)においては、相対位置が一致している場合Nグラムの組み合わせを○で、一致していない組み合わせを×で表している。そこで、一致度のヒストグラムの一致数g=5の部分に1を加える(図14(a))。このカウント結果「5」は、注目パタンと検索パタンに共に現れるNグラム「・s」を基準として、基準となるNグラムと位置関係が一致する共通のNグラムの数を示す。
ステップS107にて相対位置が一致する共通のNグラムの数をカウントすると、次に全出現位置についてカウント処理済であるか否か判別する(ステップS108)。未処理の出現位置がある場合(ステップS108;No)、ステップS106に戻って、次の出現位置を注目位置として注目Nグラムを選択する。
そして、各出現位置を注目位置として、注目位置に現れるNグラム(共通部分列)を基準として、位置関係が一致する共通のNグラムの数をカウントする。検索パタンに注目Nグラムが2回以上現れる場合は、複数の出現位置のうち現在選択された組合せ(この例では「組合せ2」)の出現位置についてカウントする(図14(b))。
末尾のNグラムまでカウントし、一致した数をヒストグラムに登録すると(図14(c))、ステップS108にて全出現位置が処理済と判別され(ステップS108;Yes)、次に決定部160がカウント結果を集計して、検索文字列と注目文字列の類似係数(FuzzyEstidxid,hdlid)を求める(ステップS109)。本実施形態では、次の式(1)を用いて算出する。
Figure 0005900367
ただし、idxidは見出し番号、hdlidは検索対象が見出語であることを示す。gは、ヒストグラムの横軸(一致数)を、Freqはヒストグラムの縦軸(一致数gのカウント結果が得られた頻度)を、Mは検索文字列を構成するNグラムの数である。 図14(c)のヒストグラムでは、式(1)の分子(Σの値)は2*2+5*5=29となる。この値は、注目パタンと検索パタンにおいて、すべての共通するNグラム(共通文字列)の相対位置が一致する頻度(累計一致頻度)である。全Nグラムが一致した場合、この累計一致頻度はMの二乗となる。式(1)では、累計一致頻度をMの二乗で除算することにより、一致頻度を正規化している。FConstは所定の定数であり、この例では100とする。なお、類似係数は式(1)に限らず、例えば予め実験によって求めた好適なFreqとFuzzyEstidxid,hdlidの対応関係を記録したテーブルを参照して求めても良い。このとき、検索パタンのNグラムが注目文字列に検索パタンのNグラムがgだけ連続合致する頻度が、所定範囲のgの値について大きくなれば大きくなることが望ましい。
ステップS109で検索文字列と注目文字列の類似度(FuzzyEstidxid,hdlid)を求めると、次に算出部150が類似係数に基づいて注目文字列を検索結果として表示する際の評価値(ランク評価値)を、ステップS105で決定された組合せについて算出する(ステップS110)。本実施形態では、ランク評価値が高いほど検索結果としての評価が高く、優先的に表示される。
ランク評価値(Estidxid,hadlid)は、ステップS109で求めた類似係数と、検索文字列と対象文字列(注目文字列)の長さ(文字長)の差とによって定まる。本実施形態では、以下の式(2)を用いて算出する。
Figure 0005900367
ここで、EstDiffLengthidxid,hdlidは、検索文字列と対象文字列(注目文字列)の長さ(文字長)の差の評価値である。ここで、EstDiffLengthidxid,hdlidは、文字長の差が0である場合に最も大きくなり、差が大きくなればなるほど小さくなる任意の方法でもとめてよいが、ここでは以下の式(3)によって求める。
EstDiffLengthidxid,hdlid=Δl×Dconst…(3)
なお、Δlは検索文字列と対象文字列(注目文字列)の長さ(文字長)の差を示す変数である。Dconstは、所定の定数(ここでは−1)である。
また、EstSpBigramidxid,hdlidは検索文字列のNグラムのうち、区切文字を含むNグラムが対象文字列(注目文字列)に現れるか否かによって定まる評価値である。EstSpBigramidxid,hdlidは、区切文字を含むNグラムが対象文字列(注目文字列)に現れる場合に大きくする設定と、逆に小さくする(マイナスの値にする)設定との何れもが可能である。ここでは、以下の式(4)を用いて算出する。
EstSpBigramidxid,hdlid
=EstTop×TopConst+EstLast×LastConst…(4)
ただし、EstTopは検索文字列の先頭のNグラム(図14の例では「・s」)が対象文字列に現れる場合に1となり、現れない場合に0となる変数である。EstLastは検索文字列の末尾のNグラム(図14の例では「d・」)が対象文字列に現れる場合に1となり、現れない場合に0となる変数である。TopConst及びLastConstは、予め設定された重み付けの定数である。
本実施例では、区切文字を含むNグラムが対象文字列(注目文字列)に現れる場合にマイナスの数値を取るように、TopConst及びLastConstをマイナスの数値(例えば、共に−5)に設定する。これは、本実施形態において検索キーワードの最初と最後の文字(図14の例では「s」及び「d」)が、モノグラムとバイグラムの両方で現れるため、評価値に与える影響が強く成り過ぎて検索ノイズの原因となる場合があるためである。具体的には、例えば図14で「s」が検索キーワードと見出語の先頭に存在する場合に、それぞれ二つのNグラム(「s」及び「・s」)が合致するため、評価値が大きく上昇する一方、その他の文字(例えば「e」)が合致しないことについて評価値に与える影響が小さくなりすぎる場合がある。この場合に、先頭がsであり、かつ末尾がdであるが、その他の文字が大きく異なる見出語(例えばssdなど)の評価値が不適切なほどに大きくなってしまう怖れがある。そこで、TopConst及びLastConstをマイナスの数値に設定することで、端部の文字が与える影響が大きくなりすぎないように調整することが出来る。
一方で、Nグラムが対象文字列(注目文字列)に現れる場合にEstSpBigramidxid,hdlidを大きくする設定が有効である場合もある。例えば、端部(先頭と末尾)の文字が検索キーワードと見出語で一致することを検索結果の条件として強く求める場合(例えば、前方一致しないキーワードの表示順位を大きく下げたい場合)などである。TopConst及びLastConstの値は、ユーザの設定操作によって自由に変更可能である。
ランク評価値は、検索文字列と対象文字列(見出語)との類似度を総合的に評価した数値であるので、検索文字列と対象文字列との類似度と表現することも出来る。本実施形態では、Fconstを100とし、Dconstを−1に設定した。その結果、正規化した累計一致頻度が大きい対象文字列はそうでない対象文字列よりも(長さの差にかかわらず)ランク評価値が高くなる。また、正規化した累計一致頻度が同じ対象文字列については、長さの差が小さい対象文字列ほどランク評価値が高くなる。
ステップS110でランク評価値を算出すると、次に算出部150は図13に示した複数の組合せの中に、未処理の組合せがあるか否か判別する(ステップS111)。判別の結果、未処理の組合せが有る場合には(ステップS111;YES)、次の未処理の組合せについて、ステップS105から処理を繰り返す。一方、全ての組合せについて処理済である場合は(ステップS111;NO)、ステップS105で決定した全組み合わせについてステップS110で算出したランク付け評価値のうち、最大のランク付け評価値を、注目文字列検索文字列の類似度を評価するランク付け評価値として決定する(ステップS112)。
ステップS112の処理が終わると、検索部140はステップS102で抽出した見出語番号の全ての見出語について処理を終了したか判別する(ステップS113)。未処理の見出語が有る場合(ステップS113;No)には、次の見出語を注目文字列としてステップS104から処理を繰り返す。
一方、全見出語について上記処理済みであると判別すると(ステップS113;Yes)、曖昧検索処理を終了する。
図9に戻って、ステップS14で曖昧検索処理が終了すると、出力部170が検索結果を出力して、表示部180に検索結果を表示させる(ステップS15)。
具体的には、曖昧検索処理(図11)のステップS110で算出したランク評価値が高い順に、所定数の見出語を当該見出語を含む辞書の種別と共に表示部180に表示させる(図6)。あるいは、ランク評価値が所定の閾値以上の見出語を全て表示するとしても良い。
以上説明したとおり、本実施形態のテキスト検索装置は、端部(最初の一文字、最後の一文字)が一致するか否か、及び検索キーワードと検索対象の文書(見出語等)の文字長の違いを考慮した曖昧検索を実行する。そのため、高い精度で曖昧検索を実行することが出来る。
また、検索文字列に現れる全ての文字が、抽出部が抽出するNグラムの何れかに含まれるため、検索文字列全体を反映した、精度が高い曖昧検索の結果を得ることが出来る。
また、検索文字列と対象文字列とに共通するNグラムのそれぞれが現れる位置を基準として、相対位置が一致する共通のNグラムの数を求め、その結果を用いて類似度を算出しているので、検索文字列と対象文字列に違いがあったとしても、文字列全体がどの程度似ているかを反映した態様で曖昧検索の結果を出力できる。
また、本実施形態のテキスト検索装置は検索文字列と対象文字列の文字長の差が小さいほどランク評価値(検索文字列と対象文字列の類似度に対応)が高くなるように設定されている。このため、検索文字列と対象文字列の長さが近いものを優先的に表示することとなる。逆に言えば、ユーザが入力した文字長と大きく異なる見出語は表示優先度が下がる(あるいは表示されない)ため、検索ノイズを減少させることができる。
さらに、図8に示したような転置インデックスを用いて曖昧検索を実行するため、曖昧検索を高速に実行することが出来る。この転置インデックスは、曖昧検索以外の検索処理にも利用可能である。このため、曖昧検索を含む複数の検索機能を実現するに当って、使用する記憶容量が少なくてすむ。
図8に示したような転置インデックスには、検索対象となる文字列(見出語)を文字長毎にグループ分けした上で各グループに属する文書を特定する情報(Gファイル)が含まれる。本実施形態のテキスト検索装置は、曖昧検索に当って、Gファイルを参照して検索キーワードと大きく異なる文字長の文書については曖昧検索の対象としない(検索処理を省略する)構成により、曖昧検索を高速に実行することができる。
また、処理対象となる検索パタンとして、区切文字を含む端部のNグラムについてはバイグラムを、含まないNグラム(検索キーワードの文字列に対応)についてはモノグラムを、それぞれ抽出する。この構成により、区切文字と検索キーワードの位置関係を保持しつつ、一つの不一致が複数のNグラムに影響を与えることによって、類似度が下がりすぎることを防止することができる。
また、検索パタンに含まれるNグラムの何れかが注目文字列の複数箇所に現れる場合に、図13に示したような複数箇所の出現位置の組合せのそれぞれについてランク付け評価値を算出し、最大のランク付け評価値を注目文字列の評価値とする。注目文字列の複数箇所に現れるNグラムについて、そのNグラムを注目Nグラムとして求められる一致頻度を比較するだけでは、何れの位置がより精度が高いランク付け評価値が得られる望ましい位置であるか推定することが出来ない場合がある。このような構成により、Nグラムの何れかが注目文字列の複数箇所に現れる場合でも、精度が高い曖昧検索を実行する事が出来る。
(変形例)
以上、本発明の実施形態1について説明したが、本発明の実施形態はこれに限られない。
例えば、上記実施形態1では、区切文字は半角スペースであるとしたが、区切文字はこれに限られず自由に選択可能である。例えば、区切文字はシステムに予約されたユニークなマーク(その他で曖昧検索の対象となるテキストに現れないマーク)であってよい。
さらに、実施形態1およびその変形例において、ステップS107にて注目文字列において、共通のNグラムが検索文字列と同じ位置関係で現れる頻度をカウントした。しかし、同じ位置関係に限られず、類似した位置関係に表れる頻度をカウントしてもよい。この場合、例えば類似範囲として検索文字列の位置と相対位置の絶対値が所定の文字数(例えば1文字)の範囲でズレていた場合にも、共通の位置に現れた場合と同様に一致度ヒストグラムに加算する。あるいは、一致度ヒストグラムに加算するに当たって、出現位置が検索文字列と一致していた場合には重み1を、一文字ズレていた場合には重み0.5を用いて重付け加算するなど、より類似した位置に現れるほど一致頻度が高くなるように算出方法を設定してもよい。
この場合、検索文字列と注目文字列において、Nグラムが現れる位置が完全に一致していなくても所定の類似範囲に含まれたことに基づいてランク付け評価値が上がるので、入力エラーが多い場合でもユーザが所望の検索結果となる割合が増すという効果が得られる。
また、実施形態1では再配置CTD及び転置インデックスを生成する処理(データ等生成処理)をテキスト検索装置100が実行するとしたが、これに限らず、予め外部装置が生成した再配置CTD及び転置インデックスを記憶部に記憶していることで足りる。例えば、工場出荷時において、各辞書データに対応する再配置CTDと転置インデックスとを記憶するとしても良い。
検索対象となる対象文字列は、見出し語に限らず、解説テキスト・用例テキスト出会っても良い。
尚、実施形態1およびその変形例において、テキスト検索装置100は、検索キーワードに基づいて辞書を検索するとして説明したが、検索の対象とされる文書は、辞書に限定される訳ではなく、どのような文書でも良い。
検索の対象とされる文書は、例えば、「発明の名称」及び「特許請求の範囲」などのカテゴリにそれぞれ分類されたテキストで構成される特許明細書であっても良い。また、検索の対象とされる文書は、例えば、ある製品が有する機能の名称を表すテキストが分類されるカテゴリ(以下、機能名カテゴリという)と、当該機能を利用するための操作方法を表すテキストが分類されるカテゴリ(以下、操作方法カテゴリという)とを有する説明書であっても良い。
尚、本発明は、実施形態1、若しくはその変形例に係るテキスト検索装置100として提供できることはもとより、プログラムの適用により、既存のテキスト検索装置をテキスト検索装置100として機能させることもできる。すなわち、テキスト検索装置100による各機能構成を実現させるためのテキスト検索プログラムを、既存のテキスト検索装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、実施形態1、若しくは変形例に係るテキスト検索装置100として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD−ROM(Compact Disc Read Only Memory)又はDVD−ROM(Digital Versatile Disk Read Only Memory)などの記録媒体に格納して配布できる他、インタネットなどの通信媒体を介して配布することもできる。また、再配置CTD及び転置インデックス等の上記処理に必要なデータの一部又は全部は、外部サーバに記憶されており、通信機能によりこれらのデータを取得して上記処理を実行する構成も可能である。
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。つまり、本発明のいくつかの実施形態を説明したが、上述した実施形態は本発明を説明するためのものであり、本発明の範囲を限定するものではない。本発明の範囲は、実施形態ではなく、特許請求の範囲に記載された発明とその均等の範囲を含む。
以下に本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
キーワードを取得する取得手段と、
前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
前記生成手段が生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定手段の特定結果に基づいて決定する決定手段と、
前記決定手段の決定結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価する評価手段と、
前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段と、
を備えることを特徴とする検索装置。
(付記2)
前記特定手段は、前記検索文字列が含む文字列の全てが、何れかの部分列に含まれるように複数の部分列を抽出する抽出手段を含み、
前記特定手段は、前記抽出手段が抽出した部分列について前記特定する処理を実行する、
ことを特徴とする付記1に記載の検索装置。
(付記3)
前記抽出手段が抽出する部分列のうち、前記区切文字を含む部分列は何れも2以上の文字を含む、
ことを特徴とする付記2に記載の検索装置。
(付記4)
複数の前記検索対象文字列に含まれる、所定数の文字を含む部分列のそれぞれが前記検索対象文字列に現れる位置を示すインデックスを記憶する記憶手段を更に備え、
前記特定手段は、前記インデックスを用いて前記部分列が現れる位置を特定する、
ことを特徴とする付記1〜3の何れか1つに記載の検索装置。
(付記5)
前記インデックスは、前記複数の検索対象文字列を文字長に基づいてグループ分けした上で、当該グループ毎に検索対象文字列への参照をまとめた情報を含み、
前記特定手段は、前記グループの文字長と前記検索文字列の文字長との誤差が所定の閾値よりも小さいグループに含まれる検索対象文字列について、前記特定する処理を実行する一方、前記所定の閾値より大きいグループに含まれる検索対象文字列については前記特定する処理を省略する、
ことを特徴とする付記4に記載の検索装置。
(付記6)
前記抽出手段が抽出する部分列のうち、前記区切文字を含まない部分列は何れも1文字からなる、
ことを特徴とする付記3に記載の検索装置。
(付記7)
検索対象文字列の両端部に区切文字が付加されている文書データから所望の検索対象文字列を検索する方法であって、
キーワードを取得し、
前記取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成し、
前記生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定し、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定した結果に基づいて決定し、
前記決定した結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価し、
前記評価結果に基づいて前記検索対象文字列を出力する、
ことを特徴とする検索方法。
(付記8)
コンピュータを、
検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
キーワードを取得する取得手段と、
前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
前記生成手段が生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定手段の特定結果に基づいて決定する決定手段と、
前記決定手段の決定結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価する評価手段と、
前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段
として機能させるためのプログラム。
100・・・テキスト検索装置、100a・・・CPU、100b・・・ROM、100c・・・RAM、100d・・・ハードディスク、100e・・・メディアコントローラ、100g・・・ビデオカード、100h・・・LCD、100i・・・キーボード、100j・・・スピーカ、110・・・情報記憶部、120・・・生成部、130・・・取得部、140・・・検索部、1410・・・付加部、1420・・・抽出部、1430・・・特定部、150・・・算出部、160・・・決定部、170・・・出力部、180・・・表示部

Claims (8)

  1. 検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
    キーワードを取得する取得手段と、
    前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
    前記生成手段が生成した検索文字列から複数のNグラム列を抽出し、この抽出されたNグラム列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
    前記検索対象文字列に含まれるNグラムを1つずつ選択する選択手段と、
    前記選択手段により1つのNグラムが選択される毎に、前記検索対象文字列と前記検索文字列とを選択された前記1つのNグラムが現れる位置を基準に比較した場合に、同じ相対位置で一致するNグラムの数をカウントするカウント手段と、
    前記カウント手段でカウントされたカウント値の頻度と、前記検索対象文字列と前記検索文字列との文字長の差分と、に基づいて当該検索対象文字列と当該検索文字列との類似度を評価する評価手段と、
    前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段と、
    を備えることを特徴とする検索装置。
  2. 前記特定手段は、前記検索文字列が含む文字列の全てが、何れかのNグラム列に含まれるように複数のNグラム列を抽出する抽出手段を含み、
    前記特定手段は、前記抽出手段が抽出したNグラム列について前記特定する処理を実行する、
    ことを特徴とする請求項1に記載の検索装置。
  3. 前記抽出手段が抽出するNグラム列のうち、前記区切文字を含むNグラム列は何れも2以上の文字を含む、
    ことを特徴とする請求項2に記載の検索装置。
  4. 複数の前記検索対象文字列に含まれる、所定数の文字を含むNグラム列のそれぞれが前記検索対象文字列に現れる位置を示すインデックスを記憶する記憶手段を更に備え、
    前記特定手段は、前記インデックスを用いて前記Nグラム列が現れる位置を特定する、
    ことを特徴とする請求項1〜3の何れか1項に記載の検索装置。
  5. 前記インデックスは、前記複数の検索対象文字列を文字長に基づいてグループ分けした上で、当該グループ毎に検索対象文字列への参照をまとめた情報を含み、
    前記特定手段は、前記グループの文字長と前記検索文字列の文字長との誤差が所定の閾値よりも小さいグループに含まれる検索対象文字列について、前記特定する処理を実行する一方、前記所定の閾値より大きいグループに含まれる検索対象文字列については前記特定する処理を省略する、
    ことを特徴とする請求項4に記載の検索装置。
  6. 前記抽出手段が抽出するNグラム列のうち、前記区切文字を含まないNグラム列は何れも1文字からなる、
    ことを特徴とする請求項3に記載の検索装置。
  7. コンピュータにより実行される、検索対象文字列の両端部に区切文字が付加されている文書データから所望の検索対象文字列を検索する方法であって、
    キーワードを取得し、
    前記取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成し、
    前記生成した検索文字列から複数のNグラム列を抽出し、この抽出されたNグラム列が、前記文書データの検索対象文字列に現れる出現位置を特定し、
    前記検索対象文字列に含まれるNグラムを1つずつ選択し、
    前記検索対象文字列に含まれる1つのNグラムが選択される毎に、前記検索対象文字列と前記検索文字列とを選択された前記1つのNグラムが現れる位置を基準に比較した場合に、同じ相対位置で一致するNグラムの数をカウントし、
    前記カウントされたカウント値の頻度と、前記検索対象文字列と前記検索文字列との文字長の差分と、に基づいて当該検索対象文字列と当該検索文字列との類似度を評価し、
    前記評価結果に基づいて前記検索対象文字列を出力する、
    ことを特徴とする検索方法。
  8. コンピュータを、
    検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
    キーワードを取得する取得手段と、
    前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
    前記生成手段が生成した検索文字列から複数のNグラム列を抽出し、この抽出されたNグラム列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
    前記検索対象文字列に含まれるNグラムを1つずつ選択する選択手段と、
    前記選択手段により1つのNグラムが選択される毎に、前記検索対象文字列と前記検索文字列とを選択された前記1つのNグラムが現れる位置を基準に比較した場合に、同じ相対位置で一致するNグラムの数をカウントするカウント手段と、
    前記カウント手段でカウントされたカウント値の頻度と、前記検索対象文字列と前記検索文字列との文字長の差分と、に基づいて当該検索対象文字列と当該検索文字列との類似度を評価する評価手段と、
    前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段
    として機能させるためのプログラム。
JP2013016199A 2013-01-30 2013-01-30 検索装置、検索方法及びプログラム Active JP5900367B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013016199A JP5900367B2 (ja) 2013-01-30 2013-01-30 検索装置、検索方法及びプログラム
US14/137,319 US9292508B2 (en) 2013-01-30 2013-12-20 Search device, search method and recording medium
CN201410044001.6A CN103970826B (zh) 2013-01-30 2014-01-29 检索装置及检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013016199A JP5900367B2 (ja) 2013-01-30 2013-01-30 検索装置、検索方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2014146301A JP2014146301A (ja) 2014-08-14
JP5900367B2 true JP5900367B2 (ja) 2016-04-06

Family

ID=51224130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013016199A Active JP5900367B2 (ja) 2013-01-30 2013-01-30 検索装置、検索方法及びプログラム

Country Status (3)

Country Link
US (1) US9292508B2 (ja)
JP (1) JP5900367B2 (ja)
CN (1) CN103970826B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598986B (zh) * 2015-10-16 2020-11-27 北京国双科技有限公司 相似度计算的方法及装置
US10037365B2 (en) * 2016-01-29 2018-07-31 Integral Search International Ltd. Computer-implemented patent searching method in connection to matching degree
US9892789B1 (en) 2017-01-16 2018-02-13 International Business Machines Corporation Content addressable memory with match hit quality indication
US10303681B2 (en) * 2017-05-19 2019-05-28 Microsoft Technology Licensing, Llc Search query and job title proximity computation via word embedding
JP2018197926A (ja) * 2017-05-23 2018-12-13 株式会社オーエス ソフトウェア及び薬歴作成支援装置
CN107958039A (zh) * 2017-11-21 2018-04-24 北京百度网讯科技有限公司 一种检索词纠错方法、装置及服务器
JP7180132B2 (ja) 2018-06-12 2022-11-30 富士通株式会社 処理プログラム、処理方法および情報処理装置
US20230267155A1 (en) * 2022-02-23 2023-08-24 The Knot Worldwide Inc. Matching online accounts with overlapping characteristics based on non-homogenous data types

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2669601B2 (ja) * 1994-11-22 1997-10-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 情報検索方法及びシステム
JP3715672B2 (ja) 1995-03-01 2005-11-09 キヤノン株式会社 テキスト検索方法及び装置
JP2000067070A (ja) * 1998-08-24 2000-03-03 Matsushita Electric Ind Co Ltd 情報検索方法、検索ファイル作成方法及び情報検索装置
JP4342753B2 (ja) * 2001-08-10 2009-10-14 株式会社リコー 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体
JP2006106889A (ja) * 2004-09-30 2006-04-20 Casio Comput Co Ltd 情報表示制御装置及びプログラム
JP5004868B2 (ja) * 2008-05-20 2012-08-22 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
JP5594134B2 (ja) * 2010-12-28 2014-09-24 富士通株式会社 文字列検索装置,文字列検索方法および文字列検索プログラム
JP5699743B2 (ja) * 2011-03-30 2015-04-15 カシオ計算機株式会社 検索方法、検索装置、ならびに、コンピュータプログラム

Also Published As

Publication number Publication date
US20140214808A1 (en) 2014-07-31
CN103970826B (zh) 2017-09-01
CN103970826A (zh) 2014-08-06
US9292508B2 (en) 2016-03-22
JP2014146301A (ja) 2014-08-14

Similar Documents

Publication Publication Date Title
JP5900367B2 (ja) 検索装置、検索方法及びプログラム
JP5010885B2 (ja) 文書検索装置、文書検索方法および文書検索プログラム
US8996571B2 (en) Text search apparatus and text search method
JP2003281186A (ja) 類似性判断のための例題ベース検索方法及び検索システム
JP5737079B2 (ja) テキスト検索装置、テキスト検索プログラム、及びテキスト検索方法
JP2009193219A (ja) インデックス作成装置、その方法、プログラム及び記録媒体
CN114297143A (zh) 一种搜索文件的方法、显示文件的方法、装置及移动终端
JP2009199302A (ja) ドキュメントを解析するためのプログラム,装置および方法
US11645312B2 (en) Attribute extraction apparatus and attribute extraction method
JP7324058B2 (ja) 文章解析方法、文章解析プログラム、および文章解析システム
JP2011159078A (ja) 情報処理装置、判定プログラム及び判定方法
JP5447368B2 (ja) 新規事例生成装置、新規事例生成方法及び新規事例生成用プログラム
JP2008225846A (ja) 単語意味タグ付与装置および方法、プログラム並びに記録媒体
JP5733285B2 (ja) 検索装置、検索方法及びプログラム
US20130110499A1 (en) Information processing device, information processing method and information recording medium
CN110909532B (zh) 用户名称匹配方法、装置、计算机设备和存储介质
JP6447549B2 (ja) テキスト検索装置、テキスト検索方法及びプログラム
JP5326781B2 (ja) 抽出規則作成システム、抽出規則作成方法及び抽出規則作成プログラム
JP4934115B2 (ja) キーワード抽出装置、方法及びプログラム
CN112380873B (zh) 一种规范文书中被选中项确定方法及装置
CN112084777B (zh) 一种实体链接方法
TWI703453B (zh) 建議詞語生成裝置、記錄有建議詞語生成程式之電腦可讀取之記錄媒體及建議詞語生成方法
JP2000339342A (ja) 文書検索方法および文書検索装置
WO2017126057A1 (ja) 情報検索方法
JP2021009591A (ja) データ取得装置、データ取得方法、およびデータ取得プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R150 Certificate of patent or registration of utility model

Ref document number: 5900367

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150