JP2010198288A - 検索方法及び装置 - Google Patents

検索方法及び装置 Download PDF

Info

Publication number
JP2010198288A
JP2010198288A JP2009042098A JP2009042098A JP2010198288A JP 2010198288 A JP2010198288 A JP 2010198288A JP 2009042098 A JP2009042098 A JP 2009042098A JP 2009042098 A JP2009042098 A JP 2009042098A JP 2010198288 A JP2010198288 A JP 2010198288A
Authority
JP
Japan
Prior art keywords
text
words
independent words
similarity
independent
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
JP2009042098A
Other languages
English (en)
Other versions
JP5245908B2 (ja
Inventor
Tomoya Iwakura
友哉 岩倉
Aoshi Okamoto
青史 岡本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009042098A priority Critical patent/JP5245908B2/ja
Publication of JP2010198288A publication Critical patent/JP2010198288A/ja
Application granted granted Critical
Publication of JP5245908B2 publication Critical patent/JP5245908B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】検索対象を適切に絞り込み処理を高速化する。
【解決手段】本方法は、記憶装置に格納されている入力テキストから自立語を抽出するステップと、抽出された自立語を条件として入力テキストとの類似度が、記憶装置に格納されている類似度閾値以上となる、既存テキスト中の自立語語数の範囲を特定する範囲特定ステップと、自立語語数が自立語語数の範囲内である既存テキストに限定して、記憶装置に格納されている、当該既存テキスト中の自立語と抽出された自立語とを用いて当該既存テキストと入力テキストの類似度を算出し、記憶装置に格納する類似度算出ステップと、記憶装置に格納された類似度が類似度閾値以上となる既存テキストを特定するステップとを含む。
【選択図】図1

Description

本技術は、入力テキストと類似するテキストを探索する検索技術に関する。
従来技術における検索技術の一例を図1乃至図3を用いて説明する。最初に、インデックスを生成する処理について図1及び図2を用いて説明する。まず、テキストIDが「1」である「太郎と花子と二郎と三郎が泣く。」というテキストが入力される(図1(a))。そうすると、入力テキストから、周知の単語切り出し技術を用いて単語のうち自立語(名詞及び動詞)を切り出す。本例では、「太郎」「花子」「二郎」「三郎」「泣く」が切り出される(図1(b))。そして、各単語に対応付けて当該単語が出現したテキストのIDが格納されるインデックスDBに、抽出された単語「太郎」「花子」「二郎」「三郎」「泣く」のそれぞれに対応付けてID「1」が登録される(図1(c))。さらに、各テキストに対応付けて単語数が登録されるテキストサイズDBに、今回の入力テキストのID「1」に対応付けて単語数「5」が登録される(図1(d))。
その後、テキストIDが「2」である「太郎と花子と二郎が泣く。」というテキストが入力される(図2(a))。そうすると、入力テキストから、「太郎」「花子」「二郎」「泣く」という自立語が切り出される(図2(b))。そして、インデックスDBに、抽出された単語「太郎」「花子」「二郎」「泣く」のそれぞれのレコードに、テキストID「2」が追加される(図2(c))。さらに、テキストサイズDBに、今回の入力テキストのID「2」に対応付けて単語数「4」が登録される(図2(d))。
このような前処理が行われた後に、検索キーとなるテキストが入力される。例えば、「太郎と二郎が泣く。」というテキストが入力されたものとする(図3(a))。そうすると、周知の単語切り出し技術を用いて自立語が切り出されて、「太郎」「二郎」「泣く」が得られる(図3(b))。ここで、図2(c)に示したインデックスDBに対して、「太郎」で検索すると、テキストのID「1」及び「2」が得られ、「二郎」で検索するとテキストのID「1」及び「2」が得られ、「泣く」で検索するとテキストのID「1」及び「2」が得られる。ここで、得られたテキストID毎に、一致する単語数をカウントして、共通出現単語数格納部に格納しておく。今回の例では、テキストIDが「1」のテキストについては一致する単語数は3個、テキストIDが「2」のテキストについても一致する単語数は3個である(図3(c))。
ここでは、例えば2つのテキストの類似度に余弦(コサイン)類似度を用いるものとする。また、例えばテキストAを当該テキストAに含まれる単語についてのバイナリベクトルAで表し、テキストBを当該テキストBに含まれる単語についてのバイナリベクトルBで表すものとする。バイナリベクトルは、ある単語が出現する場合、対応する次元の値を「1」、それ以外については「0」とするベクトルである。例えば、「太郎」「花子」「二郎」「泣く」「三郎」という順番の場合には、テキストID「1」のバイナリベクトルは(1,1,1,1,1)であり、テキストID「2」のバイナリベクトルは(1,1,1,1,0)である。また、検索キーとなるテキストは(1,0,1,1,0)となる。
この際、テキストAとテキストBとのコサイン類似度は、以下のように算出される。
cos(A,B)=A・B/(|A||B|)1/2
A及びBは、それぞれテキストに含まれる単語のバイナリベクトルであり、A・Bは、AとBの内積である。バイナリベクトルの場合には、A・Bは、AとBに共通に含まれる単語数であり、共通出現単語数格納部に格納されている値と一致する。|A|はAの長さであり、ここではAに含まれる単語(ここでは自立語)の数であり、|B|はBの長さであり、ここではBに含まれる単語の数である。|A||B|は、Aの長さとBの長さの積である。
このようなコサイン類似度を用いる場合、分母は、検索キーとなる入力テキストの単語数とテキストサイズDBに登録されている単語数とを用いて算出され、分子は、共通出現単語数格納部に格納されている値を用いればよい。
具体的に、検索キーとなる入力テキストとテキストID「1」のテキストとのコサイン類似度cos(入力,1)=3/(3×5)1/2=0.774であり、検索キーとなる入力テキストとテキストID「2」のテキストとのコサイン類似度cos(入力,2)=3/(3×4)1/2=0.866となる(図3(d))。
従って、類似度閾値s=0.85以上という条件が設定されていれば、検索キーとなる入力テキストに類似するテキストとして、テキストID「2」が出力される(図3(e))。
このような技術では、インデックスDBに登録されており且つ単語が1つでも一致するテキストであれば、全て類似度計算を実施しなければならないので、インデックスDBに登録されているテキストの数が多くなると、非常に検索時間が長くなってしまう。そこで、従来技術にも検索対象を絞り込むような技術は存在しているが、統計的に絞り込みの条件を設定しており、絞り込みが適切ではない場合も生じ得る。
特開平11−66086号公報
以上のように、検索処理の高速化のためには検索対象の絞り込みは有効であるが、従来技術では適切に絞り込みがなされない場合も生じ得る。
従って、本技術の目的は、検索対象を適切に絞り込むための新規な技術を提供することである。
本検索方法は、記憶装置に格納されている入力テキストから自立語を抽出するステップと、抽出された自立語を条件として入力テキストとの類似度が、記憶装置に格納されている類似度閾値以上となる、既存テキスト中の自立語語数の範囲を特定する範囲特定ステップと、自立語語数が自立語語数の範囲内である既存テキストに限定して、記憶装置に格納されている、当該既存テキスト中の自立語と抽出された自立語とを用いて当該既存テキストと入力テキストの類似度を算出し、記憶装置に格納する類似度算出ステップと、記憶装置に格納された類似度が類似度閾値以上となる既存テキストを特定するステップとを含む。
検索対象を適切に絞り込むことができる。
図1は、従来技術のインデックス生成処理を説明するための図である。 図2は、従来技術のインデックス生成処理を説明するための図である。 図3は、従来技術の検索処理を説明するための図である。 図4は、検索装置の機能ブロック図である。 図5は、第1の実施の形態のメインの処理フローを示す図である。 図6は、インデックスDBに格納されるデータの一例を示す図である。 図7は、テキストサイズDBに格納されるデータの一例を示す図である。 図8は、インデックス変換処理後のインデックスDBに格納されるデータの一例を示す図である。 図9は、インデックス生成処理の処理フローを示す図である。 図10は、インデックス生成処理の処理フローを示す図である。 図11は、インデックス変換処理の処理フローを示す図である。 図12は、共通出現単語数算出処理の処理フローを示す図である。 図13は、共通出現単語数算出処理の処理フローを示す図である。 図14(a)乃至(e)は、第1の実施の形態の処理を具体的に説明するための図である。 図15は、類似テキスト選択処理の処理フローを示す図である。 図16は、第2の実施の形態のメインの処理フローを示す図である。 図17は、サイズ別インデックスDBの一例を示す図である。 図18は、サイズ別インデックスDBの一例を示す図である。 図19は、サイズ別インデックス生成処理の処理フローを示す図である。 図20は、サイズ別インデックス生成処理の処理フローを示す図である。 図21(a)及び(b)は、サイズ別インデックス生成処理を説明するための具体例を示す図である。 図22(a)及び(b)は、サイズ別インデックス生成処理を説明するための具体例を示す図である。 図23は、第2共通出現単語数算出処理の処理フローを示す図である。 図24は、第2共通出現単語数算出処理の処理フローを示す図である。 図25(a)乃至(e)は、第2の実施の形態の処理を具体的に説明するための図である。 図26は、第3の実施の形態のメインの処理フローを示す図である。 図27は、第3共通出現単語数算出処理の処理フローを示す図である。 図28は、比較対象テキストのサイズ範囲決定処理の処理フローを示す図である。 図29(a)乃至(e)は、第3の実施の形態の処理を具体的に説明するための図である。 図30は、第4共通出現単語数算出処理の処理フローを示す図である。 図31は、コンピュータの機能ブロック図である。
[実施の形態1]
第1の実施の形態について図4乃至図15を用いて説明する。
まず、図4に本実施の形態における検索装置の機能ブロック図を示す。検索装置100は、入力部11と、入力部11から入力されたインデックス対象テキストを格納するインデックス対象テキスト格納部12と、インデックス対象テキスト格納部12に格納されているデータを用いてインデックス生成処理を実施するインデックス生成部13と、インデックス生成部13により生成されたインデックスのデータを格納するインデックスDB14と、インデックス生成部13により生成されたテキストサイズのデータを格納するテキストサイズDB15と、テキストサイズDB15のデータに基づきインデックスDB14に格納されたインデックスデータについて変換処理を実施するインデックス変換部16と、入力部11から入力された検索キーである入力テキストを格納する検索入力テキスト格納部18と、入力部11から入力された類似度閾値を格納する類似度閾値格納部20と、インデックスDB14とテキストサイズDB15と検索入力テキスト格納部18と類似度閾値格納部20とに格納されているデータを用いて処理を行う共通出現単語数算出部17と、共通出現単語数算出部17の処理結果を格納する共通出現単語数格納部19と、共通出現単語数格納部19とテキストサイズDB15と検索入力テキスト格納部18と類似度閾値格納部20とに格納されたデータを用いて処理を実施する類似テキスト選択処理部21と、類似テキスト選択処理部21の処理結果を格納するテキストID格納部22と、テキストID格納部22に格納されているデータを出力する出力部23とを有する。なお、共通出現単語数算出部17は、検索処理を行っても目的の文書(すなわちテキスト)が得られないと判断した場合には解無し通知を出力部23に出力するようになっている。
次に、図5乃至図15を用いて検索装置100の処理内容について説明する。まず、インデックス生成部13は、入力部11から入力され且つインデックス対象テキスト格納部12に格納されているインデックス対象テキストに対してインデックス生成処理を実施する(図5:ステップS1)。インデックス生成処理については、本実施の形態では従来技術と同様であるが、後に詳しく述べる。インデックス生成処理では、例えば図6に示すようなデータがインデックスDB14に格納される。データ構造については従来技術で説明したものと同じである。さらに、インデックス生成処理では、例えば図7に示すようなデータがテキストサイズDB15に格納される。データ構造については従来技術で説明したものと同じである。
そして、インデックス変換部16は、インデックスDB14に新たにデータが蓄積されると、インデックス変換処理を実施する(ステップS3)。インデックス変換処理については、後に詳しく述べる。簡単に述べれば、インデックスDB14に格納されている各単語について、テキストIDをそのテキストが含む単語の数に基づき昇順で並び替える。すなわち、図6のようなインデックスDB14が存在する場合には、図7のようなテキストサイズDB15に格納されている各テキストの単語数に応じてテキストIDを昇順にソートする。図7の例では、単語数の小さい順に、ID「2」「1」「3」「4」の順番になるので、図8に示すように各単語についてテキストIDが並べ替えられる。
そして、共通出現単語数算出部17は、入力部11により入力され且つ検索入力テキスト格納部18に格納された、検索キーとなる入力テキストについて、インデックスDB14とテキストサイズDB15と類似度閾値格納部20とに格納されているデータを用いて検索対象テキストを絞り込みつつ類似度計算に必要なデータである共通出現単語数を算出する共通単語算出処理を実施する(ステップS5)。共通出現単語数は、従来技術の説明において述べたコサイン類似度を用いる場合に必要な内積A・Bの値に該当する。検索対象テキストが絞り込まれているので、本実施の形態によれば共通出現単語数格納部19に格納されるテキストIDの数は従来技術より少なくなっている。共通出現単語数算出処理については、後に詳しく述べる。
そして、類似テキスト選択処理部21は、検索入力テキスト格納部18と類似度閾値格納部20とテキストサイズDB15と共通出現単語数格納部19とに格納されているデータに基づき、共通出現単語数格納部19に格納されているテキストID毎に類似度を算出して、テキストIDと共にテキストID格納部22に格納する類似テキスト選択処理を実施する(ステップS7)。類似テキスト選択処理については、出力部23の処理も含まれるが、詳細については後に述べる。
以上のような処理を実施することによって、検索キーとなる入力テキストに対して類似度閾値以上の類似度となるテキストを、高速に抽出することができるようになる。
次に、図9及び図10を用いて、インデックス生成処理について説明する。インデックス生成部13は、インデックス対象テキスト格納部12に格納されているインデックス対象のテキストのうち未処理のテキストを1つ特定する(ステップS11)。そして、インデックスDB14において未使用のIDを、特定されたテキスト用に選択する(ステップS15)。また、テキストサイズDB15において、選択されたIDに対応する値を0に初期化する(ステップS17)。
その後、インデックス生成部13は、特定されたテキストから自立語(名詞及び動詞の単語)を、周知の方法で切り出し、例えばメインメモリなどの記憶装置に格納する(ステップS19)。そして、未処理の単語を1つ特定する(ステップS21)。処理は端子Aを介して図10の処理に移行する。
図10の処理の説明に移行して、インデックス生成部13は、インデックスDB14において、特定された単語に対応付けて、選択されたIDを登録する(ステップS23)。さらに、テキストサイズDB15において、選択されたIDに対応する値に「1」を加算する(ステップS25)。そして、未処理の単語があるか判断して(ステップS27)、未処理の単語が存在している場合には端子Bを介してステップS21に戻る。一方、未処理の単語が存在していない場合には、未処理のテキストがインデックス対象テキスト格納部12に存在するか判断する(ステップS29)。未処理のテキストが存在する場合には端子Cを介してステップS11に戻る。一方、未処理のテキストが存在しない場合には、元の処理に戻る。
以上のような処理を実施することによって、図6のようなインデックスDB14のデータが生成され、さらに図7のようなテキストサイズDB15のデータが生成される。
次に、インデックス変換処理について図11を用いて説明する。インデックス変換部16は、インデックスDB14において未処理の単語を1つ特定する(ステップS31)。そして、特定された単語に対応付けて登録されているIDに対応する単語数をテキストサイズDB15から特定し、単語数に基づき昇順にIDをソートする(ステップS33)。さらに、インデックスDB14において、特定された単語に対応付けてソート結果(すなわちソート後のID列)を登録する(ステップS35)。
この後、インデックス変換部16は、インデックスDB14において未処理の単語が存在するか判断し(ステップS37)、未処理の単語が存在する場合にはステップS31に戻る。一方、全ての単語を処理した場合には、元の処理に戻る。
このような処理を実施することによって、図6に示したようなインデックスDB14は、図8に示すようなインデックスDB14に変換される。テキストIDが単語数の順番で並んでいるので、小さい順に処理すれば、ある順番以降のIDについては、以下で述べるサイズ範囲外ということで処理対象外となり、検索対象テキストの絞り込みを容易に且つ高速に実施できるようになる。
次に、図12乃至図15を用いて共通出現単語数算出処理について説明する。共通出現単語数算出部17は、検索入力テキスト格納部18から、検索キーとなる入力テキストを読み出す(ステップS41)。また、共通出現単語数格納部19を初期化する(ステップS43)。そして、入力テキストから自立語(動詞及び名詞の単語)を、周知の方法にて切り出し、単語数と共に、例えば検索入力テキスト格納部18に格納する(ステップS45)。そして、入力テキストの単語数と、類似度閾値格納部20に格納されている類似度閾値sとから、比較対象テキストのサイズ範囲を決定し、例えばメインメモリなどの記憶装置に格納する(ステップS47)。
サイズ範囲は、例えばコサイン類似度の場合には、以下の算式にて算出できる。
Figure 2010198288
ここで入力テキストの単語数は|A|で表されており、|Bi|が比較対象テキストの単語数を表している。この(1)式が得られる理由については後に詳細に述べるが、コサイン類似度の計算式から導出されており、類似度閾値sが与えられているとすると、入力テキストの単語数を変数とした上限値及び下限値算出関数となっている。この範囲以外では、入力テキストの単語数からして類似度閾値sの条件を満たすことはあり得ない。また、この式には、確率論的な観点はない。このようにして比較対象テキストのサイズ範囲が狭くなれば、比較対象テキストが解析的に絞り込まれるので、比較すべきテキストが漏れなく処理されると共にその処理の高速化が図られる。なお、上限値と下限値とにより整数のサイズ範囲が得られない場合もある。すなわち、上限値が2.8で下限値が2.5というような範囲が算出された場合には、整数の解(すなわちサイズ範囲)は得られないので、検索処理を実施しても目的の文書を特定することはできない。従って、共通出現単語数算出部17は、出力部23に解無し通知を行い、出力部23は、検索の解無し(例えば「条件に合致するような文書は存在しませんでした。」というようなメッセージ)を表示装置や印刷装置などの出力装置に出力して、処理を終了する。
その後、共通出現単語数算出部17は、入力テキストから抽出された単語のうち未処理の単語を特定する(ステップS49)。そして、インデックスDB14に、特定された単語が登録されている判断する(ステップS51)。登録されていない場合には、未処理の単語が存在するか判断し(ステップS53)、未処理の単語が存在する場合にはステップS49に戻る。未処理の単語が存在しない場合には、端子Gを介して本処理を終了して元の処理に戻る。
一方、インデックスDB14に、特定された単語が登録されている場合には、共通出現単語数算出部17は、インデックスDB14において、特定された単語に対応付けられているIDのうち単語数が少ない方から未処理のIDを1つ特定する(ステップS55)。処理は端子Fを介して図13の処理に移行する。
図13の処理の説明に移行して、共通出現単語数算出部17は、特定されたIDの単語数をテキストサイズDB15から読み出して、当該単語数がサイズ範囲内であるか判断する(ステップS57)。単語数がサイズ範囲内ではない場合には、ステップS61に移行する。単語数が下限値未満である場合には、これから単語数が増加してサイズ範囲内に入る場合もあるので、ステップS61に移行して、上限値を超えていないことを確認した上で、次の処理を決定する。
一方、単語数がサイズ範囲内である場合には、共通出現単語数算出部17は、共通出現単語数格納部19において、特定されたIDに対応付けられている値を1インクリメントする(ステップS59)。そして、特定されたIDの単語数がサイズ範囲の上限を超えたか判断する(ステップS61)。特定されたIDの単語数がサイズ範囲の上限を超えた場合には、この単語についてはこれ以上処理する必要はないので、ステップS65に移行する。一方、特定されたIDの単語数がサイズ範囲の上限以下であれば、処理に係る単語について未処理のIDがまだ存在するか判断する(ステップS63)。未処理のIDが存在する場合には、端子Eを介してステップS55に戻る。
一方、未処理のIDが存在しない場合には、共通出現単語数算出部17は、入力テキストから抽出された単語のうち未処理の単語が存在しているか判断する(ステップS65)。未処理の単語が存在している場合には、端子Dを介してステップS49に戻る。未処理の単語が存在しない場合には、入力テキストから抽出された単語を全て処理したことになるので、元の処理に戻る。
図14を用いて図12及び図13の処理を具体的に説明する。例えば、検索キーとなる入力テキスト「太郎と二郎が泣く。」が得られると(図14(a))、ステップS45で「太郎」「二郎」「泣く」という3自立語(単語)に分割される。また、類似度閾値sが0.85と設定されているものとする。そうすると、比較対象テキストのサイズ範囲は、(1)式から、2.1675(=s2*|A|=0.852*3)≦比較対象テキストの単語数≦4.1522(=|A|/s2=3/0.852)であるから、整数である単語数は「3」及び「4」でなければならないということになる。
そして、「太郎」で図8のインデックスDB14を検索すると、該当レコードが存在し、ID「2」「1」「3」「4」が得られ、ID「2」の単語数は図7のテキストサイズDB15から「4」であることが分かる。従って、共通出現単語数格納部19には、ID「2」に対応付けて共通出現単語数「1」を登録する。次に、ID「1」の単語数は図7のテキストサイズDB15から「5」であることが分かる。「5」はサイズ範囲外であり上限を超えているので、「太郎」についての処理は終了する。次に、「二郎」で図8のインデックスDB14を検索すると、該当レコードが存在し、ID「2」「1」が得られる。「太郎」と同様に、ID「2」の単語数「4」だけがサイズ範囲内であるので、共通出現単語数格納部19には、ID「2」に対応付けて共通出現単語数「2」を登録する。さらに、「泣く」で図8のインデックスDB14を検索すると、該当レコードが存在し、ID「2」「1」が得られる。「太郎」「二郎」と同様に、ID「2」の単語数「4」だけがサイズ範囲内であるので、共通出現単語数格納部19には、ID「2」に対応付けて共通出現単語数「3」を登録する(図13(c))。この後の処理については、処理フローの説明をしてから説明する。
次に、類似テキスト選択処理を図15を用いて説明する。類似テキスト選択処理部21は、共通出現単語数格納部19に登録されているIDのうち未処理のIDを特定する(ステップS251)。そして、特定されたIDについて類似度を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS252)。例えばコサイン類似度であれば、共通出現単語数格納部19から、特定されたIDに対応付けている共通出現単語数(=A・B)を読み出し、テキストサイズDB15から、特定されたIDに対応付けられている単語数を読み出し、例えば検索入力テキスト格納部18から入力テキストの単語数を読み出し、共通出現単語数/{(特定されたIDに対応付けられている単語数)1/2*(入力テキストの単語数)1/2}でコサイン類似度を算出する。
図14の例では、コサイン類似度cos(入力,2)は、3/{3*4}1/2=0.866と算出される(図14(d))。
そして、類似テキスト選択処理部21は、計算された類似度が類似度閾値s以上であるか判断する(ステップS253)。計算された類似度が類似度閾値s未満であれば、ステップS249に移行する。計算された類似度が類似度閾値s以上であれば、特定されたID及び類似度をテキストID格納部22に格納する(ステップS254)。図14(d)で算出された類似度は、類似度閾値s=0.85以上であるから、テキストID格納部22に格納される。
その後、類似テキスト選択処理部21は、ステップS247の後に又は計算された類似度が類似度閾値s未満であれば、共通出現単語数格納部19内の全てのIDについて処理したか判断する(ステップS255)。未処理のIDが存在する場合にはステップS241に戻る。一方、未処理のIDが存在しない場合には、出力部23は、テキストID格納部22に格納されているテキストID又はテキストID及び類似度を、表示装置や印刷装置などの出力装置に出力する(ステップS256)。例えば、検索装置100にネットワークに接続されている他のコンピュータに送信するようにしても良い。図14の例では、ID「2」が出力される(図14(e))。
従来技術のような手法を採用すると、図3(c)に示すように、2つのIDが特定されてしまうが、図14(c)に示すように、比較対象テキストが絞り込まれて1つのIDのみが特定される。そして、IDの数が減れば類似度の計算回数も削減され、処理全体が高速化される。
[実施の形態2]
本実施の形態では、絞り込み後のテキストをより簡単に特定できるようにして、処理を高速化するものである。具体的には、インデックスDBに格納されるデータを、単語数毎に生成する。
本実施の形態に係る検索装置の構成は、インデックス変換部16を有しない部分を除き、図4で示した機能ブロック図と同じである。従って本実施の形態では、図4をベースに説明する。但し、各処理部は以下で述べるような異なる処理を実施する。
図16に、第2の実施の形態に係るメインの処理フローを示す。まず、インデックス生成部13は、入力部11から入力され且つインデックス対象テキスト格納部12に格納されているインデックス対象テキストに対してサイズ別インデックス生成処理を実施する(ステップS261)。サイズ別インデックス生成処理については、後に詳しく述べる。なお、図17及び図18に示すようなインデックスデータが、インデックスDB14に格納される。図17のインデックスデータは単語数「4」のインデックスデータであり、図18のインデックスデータは単語数「5」のインデックスデータである。このように、単語数毎に、インデックスデータが生成されるようになる。なお、サイズ別インデックス生成処理では、例えば図7に示すようなデータがテキストサイズDB15に格納される。データ構造については従来技術で説明したものと同じである。
また、共通出現単語数算出部17は、入力部11により入力され且つ検索入力テキスト格納部18に格納された、検索キーとなる入力テキストについて、インデックスDB14とテキストサイズDB15と類似度閾値格納部20とに格納されているデータを用いて比較対象テキストを絞り込みつつ類似度計算に必要なデータである共通出現単語数を算出する第2共通単語算出処理を実施する(ステップS263)。インデックスデータを絞り込むことにより、比較対象テキストが絞り込まれる。第2共通出現単語数算出処理については、後に詳しく述べる。
そして、類似テキスト選択処理部21は、検索入力テキスト格納部18と類似度閾値格納部20とテキストサイズDB15と共通出現単語数格納部19とに格納されているデータに基づき、共通出現単語数格納部19に格納されているテキストID毎に類似度を算出して、テキストIDと共にテキストID格納部22に格納する類似テキスト選択処理を実施する(ステップS265)。類似テキスト選択処理については、図15で述べたものと同一である。従って、ここでは説明は省略する。
以上のような処理を実施することによって、検索キーとなる入力テキストに対して類似度閾値以上の類似度となるテキストを、さらに高速に抽出することができるようになる。
次に、サイズ別インデックス生成処理について図19乃至図22を用いて説明する。インデックス生成部13は、インデックス対象テキスト格納部12に格納されているインデックス対象のテキストのうち未処理のテキストを1つ特定する(ステップS71)。そして、インデックスDB14において未使用のIDを、特定されたテキスト用に選択する(ステップS73)。また、テキストサイズDB15において、選択されたIDに対応する値を0に初期化する(ステップS75)。
その後、インデックス生成部13は、特定されたテキストから自立語(名詞及び動詞の単語)を、周知の方法で切り出し、例えばメインメモリなどの記憶装置に格納する(ステップS77)。ここで単語数をカウントする。そして、未処理の単語を1つ特定する(ステップS79)。処理は端子Hを介して図20の処理に移行する。
図20の処理の説明に移行して、インデックス生成部13は、特定されたテキストの単語数に対応するサイズ別インデックスDBを選択する(ステップS81)。サイズ別インデックスDBは、インデックスDB14内に設けられている。そして、サイズ別インデックスDBにおいて、特定された単語に対応付けて、選択されたIDを登録する(ステップS83)。さらに、テキストサイズDB15において、選択されたIDに対応する値に「1」を加算する(ステップS85)。そして、未処理の単語があるか判断して(ステップS87)、未処理の単語が存在している場合には端子Jを介してステップS79に戻る。一方、未処理の単語が存在していない場合には、未処理のテキストがインデックス対象テキスト格納部12に存在するか判断する(ステップS89)。未処理のテキストが存在する場合には端子Kを介してステップS71に戻る。一方、未処理のテキストが存在しない場合には、元の処理に戻る。
例えば、図21(a)のようにID「1」のテキスト「太郎と花子と二郎が泣く。」から、自立語を抽出すると図21(b)のように「太郎」「花子」「二郎」「泣く」という単語が得られる。そして上で述べたような処理を実施することによって、単語数4のためのサイズ別インデックスDB(図17)が得られる。さらに、図22(a)のようにID「2」のテキスト「太郎と花子と二郎と三郎が泣く。」から、自立語を抽出すると図22(b)のように「太郎」「花子」「二郎」「三郎」「泣く」という単語が得られる。そして上で述べたような処理を実施することによって、単語数5のためのサイズ別インデックスDB(図18)が得られる。さらに図7のようなテキストサイズDB15のデータが生成される。
次に、第2共通出現単語数算出処理を図23乃至図25を用いて説明する。共通出現単語数算出部17は、検索入力テキスト格納部18から、検索キーとなる入力テキストを読み出す(図23:ステップS91)。また、共通出現単語数格納部19を初期化する(ステップS93)。そして、入力テキストから自立語(動詞及び名詞の単語)を、周知の方法にて切り出し、単語数と共に、例えば検索入力テキスト格納部18に格納する(ステップS95)。そして、入力テキストの単語数と、類似度閾値格納部20に格納されている類似度閾値sとから、比較対象テキストのサイズ範囲を決定し、例えばメインメモリなどの記憶装置に格納する(ステップS97)。例えば上で述べた(1)式に従って、サイズ範囲を算出する。なお、上限値と下限値とにより整数のサイズ範囲が得られない場合もある。すなわち、上限値が2.8で下限値が2.5というような範囲が算出された場合には、整数の解(すなわちサイズ範囲)は得られないので、検索処理を実施しても目的の文書を特定することはできない。従って、共通出現単語数算出部17は、出力部23に解無し通知を行い、出力部23は、検索の解無し(例えば「条件に合致するような文書は存在しませんでした。」というようなメッセージ)を表示装置や印刷装置などの出力装置に出力して、処理を終了する。
その後、共通出現単語数算出部17は、入力テキストから抽出された単語のうち未処理の単語を特定する(ステップS99)。そして、上で決定されたサイズ範囲内における未処理のサイズに係るサイズ別インデックスDBを1つ選択する(ステップS101)。そして、選択されたサイズ別インデックスDBを、特定された単語で検索して、当該サイズ別インデックスDBに、特定された単語が登録されているか判断する(ステップS103)。登録されていない場合には、端子Mを介してステップS111に移行する。
一方、選択されたサイズ別インデックスDBに、特定された単語が登録されている場合には、共通出現単語数算出部17は、選択されたサイズ別インデックスDBにおいて、特定された単語に対応付けられているIDのうち未処理のIDを1つ特定する(ステップS105)。処理は端子Lを介して図24の処理に移行する。
図24の処理の説明に移行して、共通出現単語数算出部17は、共通出現単語数格納部19において、特定されたIDに対応付けられている値を1インクリメントする(ステップS107)。そして、処理に係る単語について未処理のIDがまだ存在するか判断する(ステップS109)。未処理のIDが存在する場合には、端子Nを介してステップS105に戻る。
一方、未処理のIDが存在しない場合には、共通出現単語数算出部17は、ステップS101で選択されたサイズ別インデックスDBのうち、未処理のサイズに係るサイズ別インデックスDBが存在するか判断する(ステップS111)。未処理のサイズに係るサイズ別インデックスDBが存在する場合には、端子Pを介してステップS101に戻る。一方、ステップS101で選択されたサイズ別インデックスDBを全て処理した場合には、入力テキストから抽出された単語のうち未処理の単語が存在しているか判断する(ステップS113)。未処理の単語が存在している場合には、端子Qを介してステップS99に戻る。未処理の単語が存在しない場合には、入力テキストから抽出された単語を全て処理したことになるので、元の処理に戻る。
図25を用いて図23及び図24の処理を具体的に説明する。例えば、検索キーとなる入力テキスト「太郎と二郎が泣く。」が得られると(図25(a))、ステップS95で「太郎」「二郎」「泣く」という3自立語(単語)に分割される(図25(b))。また、類似度閾値sが0.85と設定されているものとする。そうすると、比較対象テキストのサイズ範囲は、(1)式から、2.1675(=s2*|A|=0.852*3)≦比較対象テキストの単語数≦4.1522(=|A|/s2=3/0.852)であるから、整数である単語数は「3」及び「4」ということになる。
従って、単語数「3」のサイズ別インデックスDBと単語数「4」のサイズ別インデックスDBとを選択する。但し、本例では、単語数「4」のサイズ別インデックスDB(図17)が選択される。
そして、「太郎」で図17のサイズ別インデックスDBを検索すると、該当レコードが存在し、ID「1」が得られるので、共通出現単語数格納部19には、ID「1」に対応付けて共通出現単語数「1」を登録する。次に、「二郎」で図17のサイズ別インデックスDBを検索すると、該当レコードが存在し、ID「1」が得られる。「太郎」と同様に、共通出現単語数格納部19には、ID「1」に対応付けて共通出現単語数「2」を登録する。さらに、「泣く」で図17のサイズ別インデックスDBを検索すると、該当レコードが存在し、ID「1」が得られる。「太郎」「二郎」と同様に、共通出現単語数格納部19には、ID「1」に対応付けて共通出現単語数「3」を登録する(図25(c))。
そうすると、第1の実施の形態と同じ類似テキスト選択処理が実施される。図25の例では、コサイン類似度cos(入力,1)は、3/{3*4}1/2=0.866と算出される(図25(d))。図25(d)で算出された類似度は、類似度閾値s=0.85以上であるから、テキストID格納部22に格納される。そして出力部23により、ID「1」が出力される(図25(e))。
このように、サイズ別インデックスDBを用いることによって、テキストサイズDB15へのアクセス回数が減少していることが分かる。従って、その分検索時における処理速度が向上する。そのほか、比較対象テキストが絞り込まれる点については第1の実施の形態と同様である。
[実施の形態3]
本実施の形態では、さらに比較対象テキストのサイズ範囲を絞り込む方法を採用する。本実施の形態に係る検索装置の構成は、インデックス変換部16を有しない部分を除き、図4で示した機能ブロック図と同じである。従って本実施の形態では、図4をベースに説明する。但し、各処理部は以下で述べるような異なる処理を実施する。
図26に本実施の形態に係るメイン処理フローを示す。まず、インデックス生成部13は、入力部11から入力され且つインデックス対象テキスト格納部12に格納されているインデックス対象テキストに対してインデックス生成処理を実施する(ステップS121)。インデックス生成処理については、図9及び図10に示したものと同じであるから、説明を省略する。
そして、インデックス変換部16は、インデックスDB14に新たにデータが蓄積されると、インデックス変換処理を実施する(ステップS123)。このインデックス変換処理についても、図11に示したものと同じであるから、説明を省略する。
また、共通出現単語数算出部17は、入力部11により入力され且つ検索入力テキスト格納部18に格納された、検索キーとなる入力テキストについて、インデックスDB14とテキストサイズDB15と類似度閾値格納部20とに格納されているデータを用いて比較対象テキストを絞り込みつつ類似度計算に必要なデータである共通出現単語数を算出する第3共通単語算出処理を実施する(ステップS125)。比較対象テキストがさらに絞り込まれるので、本実施の形態によれば共通出現単語数格納部19に格納されるテキストIDの数は第1の実施の形態より少なくなっている。第3共通出現単語数算出処理については、後に詳しく述べる。
そして、類似テキスト選択処理部21は、検索入力テキスト格納部18と類似度閾値格納部20とテキストサイズDB15と共通出現単語数格納部19とに格納されているデータに基づき、共通出現単語数格納部19に格納されているテキストID毎に類似度を算出して、テキストIDと共にテキストID格納部22に格納する類似テキスト選択処理を実施する(ステップS127)。類似テキスト選択処理については、図15で述べたものと同一である。従って、ここでは説明は省略する。
以上のような処理を実施することによって、検索キーとなる入力テキストに対して類似度閾値以上の類似度となるテキストを、さらに高速に抽出することができるようになる。
次に、図27乃至図29を用いて第3共通出現単語数算出処理について説明する。共通出現単語数算出部17は、検索入力テキスト格納部18から、検索キーとなる入力テキストを読み出す(ステップS131)。また、共通出現単語数格納部19を初期化する(ステップS133)。そして、入力テキストから自立語(動詞及び名詞の単語)を、周知の方法にて切り出し、単語数と共に、例えば検索入力テキスト格納部18に格納する(ステップS135)。そして、比較対象テキストのサイズ範囲決定処理を実施する(ステップS137)。この比較対象テキストのサイズ範囲決定処理は、第1の実施の形態よりもさらに比較対象テキストの範囲を絞り込むための処理であり、図28を用いて説明する。
比較対象テキストのサイズ範囲決定処理を図28を用いて説明する。まず、共通出現単語数算出部17は、単語カウンタZを0に初期化する(ステップS151)。また、入力テキストの未処理の単語を1つ特定する(ステップS153)。そして、特定された単語で、インデックスDB14を検索して、インデックスDB14内に、特定された単語が登録されているか判断する(ステップS155)。登録されていれば、単語カウンタZを1インクリメントする(ステップS157)。そしてステップS159に移行する。一方、登録されていなければステップS159に移行する。
ステップS159では、共通出現単語数算出部17は、入力テキストから抽出された単語に未処理の単語が存在しているか判断する(ステップS159)。未処理の単語が存在している場合にはステップS153に戻る。一方、全ての単語について処理した場合には、サイズ範囲の下限値を、(1)式に従って、入力テキストの単語数を用いて算出する(ステップS161)。サイズ範囲の下限値については、変更はない。
一方、共通出現単語数算出部17は、サイズ範囲の上限値を、(2)式に従って単語カウンタZの値を用いて算出する(ステップS163)。
Figure 2010198288
そして、共通出現単語数算出部17は、ステップS161で算出した下限値と、ステップS163で算出した上限値とから整数の解(すなわちサイズ範囲)が得られるか判断する(ステップS165)。単語カウンタZの値が小さい場合には、上限値と下限値が逆転する場合もある。また、例えば上限値が2.8で下限値が2.5というような範囲が算出されても、使用可能なサイズ範囲は整数にならない。もし、整数のサイズ範囲が得られないような場合には、これ以上処理を実施しても条件を満たすような文書は得られない。従って、共通出現単語数算出部17は、出力部23に解無し通知を行い、出力部23は、検索の解無し(例えば「条件に合致するような文書は存在しませんでした。」というようなメッセージ)を表示装置や印刷装置などの出力装置に出力して(ステップS167)、処理を終了する。一方、上で述べた下限値と上限値で整数の解が得られる場合には、元の処理に戻る。
ステップS163で(2)式を使用できるのは、入力テキストの単語のうち、インデックスDB14に登録されている単語の数が内積(A・B)の上限値となるという条件を利用すると、入力テキストの単語数ではなく、入力テキストに含まれる単語のうち実際にインデックスDB14に登録されている単語の数によって上限値を決定できるためである。詳細については、後に述べる。
通常単語カウンタZの値は入力テキストの単語数より小さい値になるので、第1の実施の形態より上限値が下がる。従って、比較対象テキストのサイズ範囲がさらに狭められ、処理の高速化が図られる。
図29の例を用いて具体例を説明する。例えば、検索キーとなる入力テキスト「太郎と二郎と五郎が泣く。」が得られると(図29(a))、ステップS135で「太郎」「二郎」「五郎」「泣く」という4自立語(単語)に分割される。ここで、図28に従って、これらの単語でインデックスDB14(図8)を検索すると、「五郎」は登録されておらず、「太郎」「二郎」「泣く」の3つの単語が登録されていることが分かる。そうすると、単語カウンタZの値は「3」となる(図29(c))。
そして、類似度閾値sが0.85と設定されているものとする。そうすると、比較対象テキストのサイズ範囲は、(2)式から、下限値は、2.89(=s2*|A|=0.852*4)であり、上限値は3.11(=Z2/(|A|*s2)=32/(4*0.852))となる。この例では、整数であるサイズ範囲は「3」だけということになる(図29(d)及び(e))。もしも、上限値を入力テキストの単語数「4」で算出すると、5.53と算出される。従って、上限値は整数「5」となり、「3」「4」「5」がサイズ範囲となって、範囲が絞り込まれていることが分かる。
その後、共通出現単語数算出部17は、入力テキストから抽出された単語のうち未処理の単語を特定する(ステップS139)。そして、インデックスDB14に、特定された単語が登録されている判断する(ステップS141)。登録されていない場合には、未処理の単語が存在するか判断し(ステップS143)、未処理の単語が存在する場合にはステップS139に戻る。未処理の単語が存在しない場合には、端子Gを介して本処理を終了して元の処理に戻る。
一方、インデックスDB14に、特定された単語が登録されている場合には、共通出現単語数算出部17は、インデックスDB14において、特定された単語に対応付けられているIDのうち単語数が少ない方から未処理のIDを1つ特定する(ステップS145)。処理は端子Fを介して図13の処理に移行する。
図13については既に説明しており、処理内容は同じであるから、説明を省略する。
以上述べたように、入力テキストの単語のインデックスDB14への登録状況に応じて、可能であれば比較対象テキストのサイズ範囲がさらに狭められ、処理の高速化が図られる。
[実施の形態4]
第3の実施の形態では、ステップS137において前もってインデックスDB14を、入力テキストから抽出された単語で検索する例を示したが、インデックスDB14の検索回数は増加してしまう。そこで例えば図30に示すような処理を採用するようにしても良い。
まず、共通出現単語数算出部17は、検索入力テキスト格納部18から、検索キーとなる入力テキストを読み出す(ステップS171)。また、共通出現単語数格納部19を初期化する(ステップS173)。そして、入力テキストから自立語(動詞及び名詞の単語)を、周知の方法にて切り出し、単語数と共に、例えば検索入力テキスト格納部18に格納する(ステップS175)。そして、入力テキストの単語数と、類似度閾値格納部20に格納されている類似度閾値sとから、比較対象テキストのサイズ範囲を決定し、例えばメインメモリなどの記憶装置に格納する(ステップS177)。この処理は例外を含めてステップS47と同じである。
また、共通出現単語数算出部17は、単語カウンタZに、入力テキストの単語数を初期的に設定する(ステップS179)。また、入力テキストから抽出された単語のうち未処理の単語を特定する(ステップS181)。そして、インデックスDB14に、特定された単語が登録されている判断する(ステップS183)。登録されていない場合には、未処理の単語が存在するか判断し(ステップS185)、未処理の単語が存在する場合には、単語カウンタZ=(Z−1)として、ステップS163と同様に単語カウンタZを用いて(2)式に従ってサイズ範囲の上限値を再計算する(ステップS187)。
そして、共通出現単語数算出部17は、ステップS177で算出した下限値と、ステップS187で算出した上限値とから整数の解(すなわちサイズ範囲)が得られるか判断する(ステップS191)。単語カウンタZの値が小さい場合には、上限値と下限値が逆転する場合もある。また、例えば上限値が2.8で下限値が2.5というような範囲が算出されても、使用可能なサイズ範囲は整数にならない。もし、整数のサイズ範囲が得られないような場合には、これ以上処理を実施しても条件を満たすような文書は得られない。従って、共通出現単語数算出部17は、出力部23に解無し通知を行い、出力部23は、検索の解無し(例えば「条件に合致するような文書は存在しませんでした。」というようなメッセージ)を表示装置や印刷装置などの出力装置に出力して(ステップS193)、処理を終了する。一方、上で述べた下限値と上限値で整数の解が得られる場合には、ステップS181に戻る。このようにすれば、インデックスDB14を検索する回数を削減することができ、さらにサイズ範囲を動的に変更することができるようになる。なお、未処理の単語が存在しない場合には、端子Gを介して本処理を終了して元の処理に戻る。
一方、インデックスDB14に、特定された単語が登録されている場合には、共通出現単語数算出部17は、インデックスDB14において、特定された単語に対応付けられているIDのうち単語数が少ない方から未処理のIDを1つ特定する(ステップS189)。処理は端子Fを介して図13の処理に移行する。
図13については既に説明しており、処理内容は同じであるから、説明を省略する。
[その他の実施の形態]
例えば第2の実施の形態のように、サイズ別インデックスDBを採用する場合においても、第3の実施の形態のように、入力テキストから抽出された単語がインデックスDBに登録されているか否かに応じてサイズ範囲を変更するようにしても良い。さらに、第4の実施の形態を第2の実施の形態に適用しても良い。
[(1)式について詳細説明]
ステップS47の説明で示した(1)式がどのようにして得られるのかについて説明する。なお、入力テキストの単語数は|A|で表され、|Bi|は比較対象テキストの単語数を表しているものとする。
(条件1)|Bi|≦|A|の場合、AとBiに共通に含まれる単語数A・Biの上限値は、Bi・Biであるので、以下の式が得られる。
Figure 2010198288
このようにして得られた(3)式をさらに変形すれば、以下の式がサイズ範囲の下限値を算出するための式として得られる。
Figure 2010198288
なお、Bi・Biを|Bi|に置換しているのは、Bi・BiはBiとBiに共通して含まれる単語数、すなわちBiに含まれる単語数|Bi|であるからである。
(条件2)|A|≦|Bi|の場合、AとBiに共通に含まれる単語数A・Biの上限値は、A・Aなので、以下の式が成立する。
Figure 2010198288
このようにして得られた(4)式をさらに変形すれば、以下の式がサイズ範囲の上限値を算出するための式として得られる。
Figure 2010198288
以上の条件1及び2から、入力テキストAを条件として、類似度閾値sを満たすデータを既存テキスト集合B={Bi}(1≦i≦N)から抽出する場合には、以下の式を満たすテキストBiだけを比較対象とすればよい。
Figure 2010198288
(5)式の両辺を二乗すれば、(1)式が得られる。
[類似度の他の例について]
上で述べた実施の形態では、類似度の計算はコサイン類似度ということで説明した。しかし、類似度計算については他の計算方法を採用することも可能である。例えば、バイナリベクトルではなく、各単語について出現する回数まで考慮してコサイン類似度を算出するようにしても良い。以下、出現回数を考慮する場合について前提条件から説明する。
1.前提条件
例えば、テキストAにおいて「太郎」が1回、「花子」が2回、「泣く」が1回出現する場合、A={太郎:1,花子:2,泣く:1}と表記するものとする。ここで、「:」の後の数字が出現回数である。
この場合のAのサイズ|A|は、Aに含まれる単語とそれらの出現数から計算するものとする。具体的には、各単語の出現数の二乗和とする。上で述べたAであれば、|A|=12+22+12=6となる。
また、Bi={太郎:1,花子:3,二郎:1,三郎:1,泣く:1}とすると、内積A・Biは以下のように算出される。すなわち、共通に含まれる単語は{太郎,花子,泣く}であるので、それぞれの出現回数の積和となる。
A・Bi=(Aにおける「太郎」の出現回数)×(Biにおける「太郎」の出現回数)+(Aにおける「花子」の出現回数)×(Biにおける「花子の出現回数)+(Aにおける「泣く」の出現回数)×(Biにおける「泣く」の出現回数)=(1×1)+(2×3)+(1×1)=8
従って、出現回数を考慮する場合におけるコサイン類似度は、以下のように算出される。
Figure 2010198288
次に、サイズ範囲(ここでは上限値)の算出法について説明する。最初に、B={Bi}中のテキストに出現する全ての単語の集合をWとする。すなわち、Bに属するテキストは、W中の単語を含むものとする。
具体的には、B={B1,B2}であり、B1={太郎:1,花子:3,二郎:1,三郎:1,泣く:1}、B2={太郎:1,花子:2,二郎:1,泣く:1}である場合、W={太郎,花子,二郎,三郎,泣く}となる。
また、BにおけるW中のある単語wの出現回数の最大値をMAX(w)と表記する。具体的には、MAX(太郎)=1、MAX(花子)=3、MAX(二郎)=1、MAX(三郎)=1、MAX(泣く)=1である。
さらに、Wmaxを、BのW中の各単語とそれらの最大値で表される集合とする。上で述べた例では、Wmax={太郎:1,花子:3,二郎:1,三郎:1,泣く:1}と表される。
このような前提の下、サイズ範囲の計算を考えると、入力テキストAとB中のテキストとの内積の上限値はAとWmaxとの内積A・Wmaxとなる。
従って、B中のテキストのうち入力テキストAと類似度閾値s以上の類似度を有するテキストを探索する場合には、以下の条件が成り立つ。
Figure 2010198288
整理すると、以下のような関係が得られる。
Figure 2010198288
両辺を二乗すれば、|Bi|についての条件となる。
Figure 2010198288
[Zを用いても良い理由]
単語カウンタZは、入力テキストAとインデックス対象テキストBiとの内積の最大値となる。
従って、(4)式のA・Aの代わりにZを用いて、以下のように定義できる。
Figure 2010198288
これは、A・Bi≦Z≦|A|であるから、(4)式における分子のA・AをZに置換しても不等号は成り立つ。そうすると、式(6)から、Zを用いた上限値の(7)式が導出される。最終的には、(7)式の両辺を二乗すれば、(2)式のうち上限を算出する式が得られる。
Figure 2010198288
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図4に示した機能ブロック図は、一例であって、必ずしも実際のプログラムモジュール構成と一致するわけではない。さらに、処理フローについても処理結果が変わらない限り、処理順番を入れ替えたり並列実行したりすることが可能である。さらに、上で述べた例では、自立語を抽出する例を示したが、自立語+付属語で上で述べた処理を実施する場合もある。
なお、上で述べた検索装置は、コンピュータ装置であって、図31に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上本実施の形態をまとめると以下のようになる。
本検索方法は、記憶装置に格納されている入力テキストから自立語を抽出するステップと、抽出された自立語を条件として入力テキストとの類似度が、記憶装置に格納されている類似度閾値以上となる、既存テキスト中の自立語語数の範囲を特定する範囲特定ステップと、自立語語数が自立語語数の範囲内である既存テキストに限定して、記憶装置に格納されている、当該既存テキスト中の自立語と抽出された自立語とを用いて当該既存テキストと入力テキストの類似度を算出し、記憶装置に格納する類似度算出ステップと、記憶装置に格納された類似度が類似度閾値以上となる既存テキストを特定するステップとを含む。
このように類似度算出の対象となる既存テキストを絞り込むことによって、検索速度を向上させることができるようになる。
また、上で述べた範囲特定ステップが、入力テキストと既存テキストとの類似度を算出するための類似度算出式に基づき予め規定され且つ入力テキスト中の自立語の語数を変数として類似度が類似度閾値以上となる既存テキスト中の自立語語数の範囲を算出する算式を用いて、抽出された上記自立語の語数を入力として上記類似度閾値以上となる既存テキスト中の自立語語数の範囲を算出する範囲算出ステップを含むようにしてもよい。このような算式を予め用意しておくことによって、入力テキストから抽出された自立語の語数をベースに、例えば範囲の上限値及び下限値又は上限値を算出することができるようになる。
さらに、上で述べた範囲算出ステップにおいて、いずれかの既存テキストに出現する、入力テキスト内の自立語のみの語数を、自立語語数の範囲の上限値算出のための入力としてさらに用いて、既存テキスト中の自立語語数の範囲を算出するようにしてもよい。このように、既存テキストに出現しない自立語が入力テキスト内に存在する場合には、より範囲を限定的にして、検索速度をさらに向上させることができるようになる。
また、上で述べた類似度算出ステップが、既存テキストに出現する自立語毎に当該自立語を含む既存テキストの識別子が当該自立語を含む既存テキスト中の自立語語数順に列挙されている、記憶装置内のインデックス格納部を、抽出された自立語で検索して、一致する自立語について自立語語数が上記自立語語数の範囲内である既存テキストの識別子を順に抽出するステップを含むようにしてもよい。このようなインデックス格納部を用意することによって、上記自立語語数の範囲内である既存テキストの識別子を高速に抽出することができるようになる。
さらに、上で述べた類似度算出ステップが、既存テキストに出現する自立語毎に当該自立語を含む既存テキストの識別子が列挙されており且つ既存テキスト中の自立語語数毎に設けられている、記憶装置内のインデックス格納部のうち、自立語語数の範囲に含まれる自立語語数についてのインデックス格納部を選択するステップと、選択されたインデックス格納部を、抽出された上記自立語で検索して、一致する自立語を含む既存テキストの識別子を抽出するステップとを含むようにしてもよい。このようにインデックス格納部を既存テキスト中の自立語語数毎に設けることによって、上記自立語語数の範囲内にある既存テキストの識別子を高速に抽出することができるようになる。
また、上で述べた類似度算出ステップが、抽出された既存テキストの識別子について、一致する自立語の語数をカウントするステップと、既存テキストの識別子に対応付けて当該既存テキスト中の自立語語数が格納されているテキストサイズ格納部から、抽出された既存テキストの識別子に対応付けられている当該既存テキスト中の自立語語数を読み出し、当該既存テキスト中の自立語語数と、入力テキストから抽出された自立語の語数と、一致する自立語の語数とから、既存テキストと前記入力テキストとの類似度を算出するステップとをさらに含むようにしてもよい。例えば類似度として余弦値を採用する場合には、このような処理によってさらに高速に類似度を算出することができる。
さらに、上で述べた範囲算出ステップが、インデックス格納部を、入力テキストから抽出された自立語で検索して一致する自立語の語数を特定するステップと、入力テキストと既存テキストとの類似度を算出するための類似度算出式に基づき予め規定され且つ入力テキスト中の自立語の語数を変数として類似度が類似度閾値以上となる既存テキスト中の自立語語数の範囲を算出する算式を用いて、特定された自立語の語数を入力として上記類似度閾値以上となる既存テキスト中の自立語語数の範囲を算出するステップとを含むようにしてもよい。このように既存テキストに含まれない自立語が入力テキストに含まれる場合には、より自立語語数の範囲を限定することができる。よって、上で述べたように事前に確認するようにしても良い。
さらに、上で述べた類似度算出ステップが、インデックス格納部を、入力テキストから抽出された自立語で検索して一致する自立語が登録されていないことを検出した場合に、入力テキストから抽出された自立語から、登録されていない自立語を除いたものを条件として入力テキストとの類似度が、記憶装置に格納されている類似度閾値以上となる、既存テキスト中の自立語語数の範囲を再設定するステップをさらに含むようにしてもよい。このように、入力テキストから抽出された自立語で検索して一致する自立語が登録されていないことを検出すれば、動的に自立語語数の範囲を変更するようにしても良い。
なお、上で述べたような処理をハードウエアに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
記憶装置に格納されている入力テキストから自立語を抽出するステップと、
抽出された前記自立語を条件として前記入力テキストとの類似度が、前記記憶装置に格納されている類似度閾値以上となる、既存テキスト中の自立語語数の範囲を特定する範囲特定ステップと、
自立語語数が前記自立語語数の範囲内である既存テキストに限定して、前記記憶装置に格納されている、当該既存テキスト中の自立語と抽出された前記自立語とを用いて当該既存テキストと前記入力テキストの類似度を算出し、前記記憶装置に格納する類似度算出ステップと、
前記記憶装置に格納された前記類似度が前記類似度閾値以上となる前記既存テキストを特定するステップと、
を含み、コンピュータに実行される検索方法。
(付記2)
前記範囲特定ステップが、
前記入力テキストと前記既存テキストとの類似度を算出するための類似度算出式に基づき予め規定され且つ前記入力テキスト中の自立語の語数を変数として類似度が類似度閾値以上となる前記既存テキスト中の自立語語数の範囲を算出する算式を用いて、抽出された前記自立語の語数を入力として前記類似度閾値以上となる前記既存テキスト中の自立語語数の範囲を算出する範囲算出ステップ
を含む付記1記載の検索方法。
(付記3)
前記範囲算出ステップにおいて、
いずれかの前記既存テキストに出現する、前記入力テキスト内の自立語のみの語数を、前記自立語語数の範囲の上限値算出のための入力としてさらに用いて、前記既存テキスト中の自立語語数の範囲を算出する
付記2記載の検索方法。
(付記4)
前記類似度算出ステップが、
前記既存テキストに出現する自立語毎に当該自立語を含む前記既存テキストの識別子が当該自立語を含む前記既存テキスト中の自立語語数順に列挙されている、前記記憶装置内のインデックス格納部を、抽出された前記自立語で検索して、一致する前記自立語について前記自立語語数が前記自立語語数の範囲内である前記既存テキストの識別子を順に抽出するステップ、
を含む付記1記載の検索方法。
(付記5)
前記類似度算出ステップが、
前記既存テキストに出現する自立語毎に当該自立語を含む前記既存テキストの識別子が列挙されており且つ前記既存テキスト中の自立語語数毎に設けられている、前記記憶装置内のインデックス格納部のうち、前記自立語語数の範囲に含まれる自立語語数についてのインデックス格納部を選択するステップと、
選択された前記インデックス格納部を、抽出された前記自立語で検索して、一致する前記自立語を含む前記既存テキストの識別子を抽出するステップと、
を含む付記1記載の検索方法。
(付記6)
前記類似度算出ステップが、
抽出された前記既存テキストの識別子について、一致する前記自立語の語数をカウントするステップと、
前記既存テキストの識別子に対応付けて当該既存テキスト中の自立語語数が格納されているテキストサイズ格納部から、抽出された前記既存テキストの識別子に対応付けられている当該既存テキスト中の自立語語数を読み出し、当該既存テキスト中の自立語語数と、前記入力テキストから抽出された前記自立語の語数と、一致する前記自立語の語数とから、前記既存テキストと前記入力テキストとの類似度を算出するステップと、
をさらに含む付記4又は5記載の検索方法。
(付記7)
前記範囲算出ステップが、
前記インデックス格納部を、前記入力テキストから抽出された前記自立語で検索して一致する自立語の語数を特定するステップと、
前記入力テキストと既存テキストとの類似度を算出するための類似度算出式に基づき予め規定され且つ前記入力テキスト中の自立語の語数を変数として類似度が類似度閾値以上となる前記既存テキスト中の自立語語数の範囲を算出する算式を用いて、特定された前記自立語の語数を入力として前記類似度閾値以上となる前記既存テキスト中の自立語語数の範囲を算出するステップと、
を含む付記4乃至6のいずれか1つ記載の検索方法。
(付記8)
前記類似度算出ステップが、
前記インデックス格納部を、前記入力テキストから抽出された前記自立語で検索して一致する自立語が登録されていないことを検出した場合に、前記入力テキストから抽出された前記自立語から、登録されていない自立語を除いたものを条件として前記入力テキストとの類似度が、前記記憶装置に格納されている類似度閾値以上となる、前記既存テキスト中の自立語語数の範囲を再設定するステップ
をさらに含む付記4又は5記載の検索方法。
(付記9)
付記1乃至8のいずれか1つ記載の検索方法をコンピュータに実行させるためのプログラム。
(付記10)
記憶装置に格納されている入力テキストから自立語を抽出する手段と、
抽出された前記自立語を条件として前記入力テキストとの類似度が、前記記憶装置に格納されている類似度閾値以上となる、既存テキスト中の自立語語数の範囲を特定する範囲特定手段と、
自立語語数が前記自立語語数の範囲内である既存テキストに限定して、前記記憶装置に格納されている、当該既存テキスト中の自立語と抽出された前記自立語とを用いて当該既存テキストと前記入力テキストの類似度を算出し、前記記憶装置に格納する類似度算出手段と、
前記記憶装置に格納された前記類似度が前記類似度閾値以上となる前記既存テキストを特定する手段と、
を有する検索装置。
11 入力部 12 インデックス対象テキスト格納部
13 インデックス生成部 14 インデックスDB
15 テキストサイズDB 16 インデックス変換部
17 共通出現単語数算出部 18 検索入力テキスト格納部
19 共通出現単語数格納部 20 類似度閾値格納部
21 類似テキスト選択処理部 22 テキストID格納部
23 出力部

Claims (7)

  1. 記憶装置に格納されている入力テキストから自立語を抽出するステップと、
    抽出された前記自立語を条件として前記入力テキストとの類似度が、前記記憶装置に格納されている類似度閾値以上となる、既存テキスト中の自立語語数の範囲を特定する範囲特定ステップと、
    自立語語数が前記自立語語数の範囲内である既存テキストに限定して、前記記憶装置に格納されている、当該既存テキスト中の自立語と抽出された前記自立語とを用いて当該既存テキストと前記入力テキストの類似度を算出し、前記記憶装置に格納する類似度算出ステップと、
    前記記憶装置に格納された前記類似度が前記類似度閾値以上となる前記既存テキストを特定するステップと、
    を含み、コンピュータに実行される検索方法。
  2. 前記範囲特定ステップが、
    前記入力テキストと前記既存テキストとの類似度を算出するための類似度算出式に基づき予め規定され且つ前記入力テキスト中の自立語の語数を変数として類似度が類似度閾値以上となる前記既存テキスト中の自立語語数の範囲を算出する算式を用いて、抽出された前記自立語の語数を入力として前記類似度閾値以上となる前記既存テキスト中の自立語語数の範囲を算出する範囲算出ステップ
    を含む請求項1記載の検索方法。
  3. 前記範囲算出ステップにおいて、
    いずれかの前記既存テキストに出現する、前記入力テキスト内の自立語のみの語数を、前記自立語語数の範囲の上限値算出のための入力としてさらに用いて、前記既存テキスト中の自立語語数の範囲を算出する
    請求項2記載の検索方法。
  4. 前記類似度算出ステップが、
    前記既存テキストに出現する自立語毎に当該自立語を含む前記既存テキストの識別子が当該自立語を含む前記既存テキスト中の自立語語数順に列挙されている、前記記憶装置内のインデックス格納部を、抽出された前記自立語で検索して、一致する前記自立語について前記自立語語数が前記自立語語数の範囲内である前記既存テキストの識別子を順に抽出するステップ、
    を含む請求項1記載の検索方法。
  5. 前記類似度算出ステップが、
    前記既存テキストに出現する自立語毎に当該自立語を含む前記既存テキストの識別子が列挙されており且つ前記既存テキスト中の自立語語数毎に設けられている、前記記憶装置内のインデックス格納部のうち、前記自立語語数の範囲に含まれる自立語語数についてのインデックス格納部を選択するステップと、
    選択された前記インデックス格納部を、抽出された前記自立語で検索して、一致する前記自立語を含む前記既存テキストの識別子を抽出するステップと、
    を含む請求項1記載の検索方法。
  6. 請求項1乃至5のいずれか1つ記載の検索方法をコンピュータに実行させるためのプログラム。
  7. 記憶装置に格納されている入力テキストから自立語を抽出する手段と、
    抽出された前記自立語を条件として前記入力テキストとの類似度が、前記記憶装置に格納されている類似度閾値以上となる、既存テキスト中の自立語語数の範囲を特定する範囲特定手段と、
    自立語語数が前記自立語語数の範囲内である既存テキストに限定して、前記記憶装置に格納されている、当該既存テキスト中の自立語と抽出された前記自立語とを用いて当該既存テキストと前記入力テキストの類似度を算出し、前記記憶装置に格納する類似度算出手段と、
    前記記憶装置に格納された前記類似度が前記類似度閾値以上となる前記既存テキストを特定する手段と、
    を有する検索装置。
JP2009042098A 2009-02-25 2009-02-25 検索方法及び装置 Expired - Fee Related JP5245908B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009042098A JP5245908B2 (ja) 2009-02-25 2009-02-25 検索方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009042098A JP5245908B2 (ja) 2009-02-25 2009-02-25 検索方法及び装置

Publications (2)

Publication Number Publication Date
JP2010198288A true JP2010198288A (ja) 2010-09-09
JP5245908B2 JP5245908B2 (ja) 2013-07-24

Family

ID=42822958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009042098A Expired - Fee Related JP5245908B2 (ja) 2009-02-25 2009-02-25 検索方法及び装置

Country Status (1)

Country Link
JP (1) JP5245908B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012164193A (ja) * 2011-02-08 2012-08-30 Nippon Telegr & Teleph Corp <Ntt> 類似文書判定方法、類似文書判定装置及び類似文書判定プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153396A (ja) * 1997-07-29 1999-02-26 Just Syst Corp 文書処理装置、文書処理プログラムが記憶された記憶媒体および文書処理方法
JPH1166086A (ja) * 1997-08-19 1999-03-09 Fujitsu Ltd 類似文書検索装置および類似文書検索方法
JP2002073681A (ja) * 2000-08-28 2002-03-12 Hitachi Ltd 類似文書検索方法および装置および、類似文書検索方法のためのプログラムが記録された記憶媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153396A (ja) * 1997-07-29 1999-02-26 Just Syst Corp 文書処理装置、文書処理プログラムが記憶された記憶媒体および文書処理方法
JPH1166086A (ja) * 1997-08-19 1999-03-09 Fujitsu Ltd 類似文書検索装置および類似文書検索方法
JP2002073681A (ja) * 2000-08-28 2002-03-12 Hitachi Ltd 類似文書検索方法および装置および、類似文書検索方法のためのプログラムが記録された記憶媒体

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200900334023; 森康弘、外2名: 'XML文書検索のための類似度計算の効率化手法' DEWS2005論文集 [online] , 20050502, p.1-8, (社)電子情報通信学会データ工学研究専門委員会 *
JPN6013011625; Marios Hadjieleftheriou、外3名: 'Fast Indexes and Algorithms for Set Similarity Selection Queries' Data Engineering, 2008. ICDE 2008. IEEE 24th International Conference on [online] , 20080412, p.267-276 *
JPN6013011626; 森康弘、外2名: 'XML文書検索のための類似度計算の効率化手法' DEWS2005論文集 [online] , 20050502, p.1-8, (社)電子情報通信学会データ工学研究専門委員会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012164193A (ja) * 2011-02-08 2012-08-30 Nippon Telegr & Teleph Corp <Ntt> 類似文書判定方法、類似文書判定装置及び類似文書判定プログラム

Also Published As

Publication number Publication date
JP5245908B2 (ja) 2013-07-24

Similar Documents

Publication Publication Date Title
CN110162695B (zh) 一种信息推送的方法及设备
CN104462085B (zh) 检索关键词纠错方法及装置
JP4429236B2 (ja) 分類ルール作成支援方法
JP5316158B2 (ja) 情報処理装置、全文検索方法、全文検索プログラム、及び記録媒体
EP2945071B1 (en) Index generating device and method, and search device and search method
US10613785B1 (en) Scalable binning for big data deduplication
US20110184932A1 (en) Search using proximity for clustering information
JP2006018829A (ja) 自動分類生成
JP2008027072A (ja) データベース分析プログラム、データベース分析装置、データベース分析方法
CN108376129A (zh) 一种纠错方法及装置
US20150234848A1 (en) Methods and systems for efficient representation of file sets
US20190362187A1 (en) Training data creation method and training data creation apparatus
US8140546B2 (en) Computer system for performing aggregation of tree-structured data, and method and computer program product therefor
CN107273546B (zh) 仿冒应用检测方法以及系统
JP5245908B2 (ja) 検索方法及び装置
JP2012022499A (ja) 情報処理装置、情報処理方法、及びプログラム
US9600565B2 (en) Data structure, index creation device, data search device, index creation method, data search method, and computer-readable recording medium
CN115982390B (zh) 一种产业链构建和迭代扩充开发方法
WO2023081032A1 (en) Query-based database redaction
JP2011090463A (ja) 文書検索システム、情報処理装置およびプログラム
JP6081609B2 (ja) データ分析システム及びその方法
CN104615605B (zh) 用于预测数据对象的类目的方法和装置
JP2009230483A (ja) 情報検索方法、プログラム及び装置
CN113569027B (zh) 一种文档标题处理方法、装置及电子设备
JP5652519B2 (ja) 情報検索方法、プログラム及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130301

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Ref document number: 5245908

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02