JP3674119B2 - 類似文書検索方法 - Google Patents
類似文書検索方法 Download PDFInfo
- Publication number
- JP3674119B2 JP3674119B2 JP31032595A JP31032595A JP3674119B2 JP 3674119 B2 JP3674119 B2 JP 3674119B2 JP 31032595 A JP31032595 A JP 31032595A JP 31032595 A JP31032595 A JP 31032595A JP 3674119 B2 JP3674119 B2 JP 3674119B2
- Authority
- JP
- Japan
- Prior art keywords
- document
- program
- gram
- similarity
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、大規模文書データベースを対象に検索を行い、検索結果を検索条件に関連の深い順に整列して出力する文書検索システムに係る。特に、ユーザが検索結果の中から必要な文書を選択することによってその文書に関連の深い順に文書を並べ直すことができる類似文書検索方法に関する。このとき特に、大規模文書データベース中の文書は、日本語、中国語などのように分かち書きされていないものに向いている。
【0002】
【従来の技術】
近年、ワードプロセッサ等により作成される電子化文書は増大しており、今後も増大していくことが見込まれる。このため、文書検索の対象となるデータベースも大規模になってきている。その結果、文書検索によって得られる検索結果としての文書集合も大型化する。それゆえ、この集合の中からユーザが、本当に欲しい文書を探し出すことが非常に困難になってきている。
【0003】
この問題を解決するため、従来よりRelevance Ranking(レリバンス・ランキング)ならびにRelevance Feedback(レリバンス・フィードバック)と呼ばれる技術が提案されている。
【0004】
レリバンス・ランキングについては、「Ranking Algorithms」(Donna Harman著,Information Retrieval,p.363−392)に具体的に記載されている。以下、これを従来技術1と呼ぶ。従来技術1は、ユーザが指定した検索条件(単一もしくは複数の単語の列)に関連の深い順にデータベース中の文書を並べるというものである。以下、図2を用いてその内容を説明する。
【0005】
検索は、簡単なベクトル演算によって実現される。このベクトルの要素は、データベース中に出現する全ての単語を重複削除したもの(但し,ストップワード等は除く)である。図2の例では、(factors,information,help,human,operation,retrieval,systems)が要素となっている。検索条件式にその要素が存在すれば「1」を、存在しなければ「0」を該当位置に立てる。このことによって、検索条件式のベクトルQ0が作成される。すなわち、「human factors in information retrieval systems」という検索条件式に対し、(1,1,0,1,0,1,1)というベクトルQ0が作成される。
【0006】
データベース中の文書に対しても同様に文書のベクトルが作成される。各要素である「human」「factors」「information」「retrieval」が含まれる文書1に対し、ベクトルV1(1,1,0,1,0,1,0)が作成される。また、「human」「factors」「help」「systems」が含まれる文書2に対し、ベクトルV2(1,0,1,1,0,0,1)が、作成される。さらに、「factors」「operation」「systems」を含む文書3に対し、ベクトルV3(1,0,0,0,1,0,1)が作成される。
【0007】
ここで、ランキングに用いられる得点は、検索条件式のベクトルQ0と文書のベクトルViとのベクトル積Vi・Q0をとることによって算出される。その結果、文書1が4点、文書2が3点、文書3が2点となる。これらの文書を得点の高い順に並べることによって、レリバンス・ランキングが実現される。つまり、関連の高い文書から並べることができる。
【0008】
なお、文書のベクトルについては、ベクトルの要素を「1」「0」ではなく、単語の出現頻度で表現することも可能である。例えば、文書1には、「human」が5個、「factors」が2個、「information」が3個、「retrieval」が3個含まれるとする。この文書1に対し、ベクトルV'1(2,3,0,5,0,3,0)が作成される。また、文書2には、「human」が5個、「factors」が2個、「help」が4個、「systems」が1個含まれるとする。この文書2に対し、ベクトルV'2(2,0,4,5,0,0,1)が作成される。また、「factors」が2個、「operation」が2個、「systems」が1個含まれるとする。この文書3に対し、ベクトルV'3(2,0,0,0,2,0,1)が作成される。
【0009】
これらのベクトルV'iと検索条件式のベクトルQ0とのベクトル積V'i・Q0をとることによって、各文書の得点が算出される。その結果、文書1が13点、文書2が8点、文書3が3点となる。この点に従って文書を降順に並べることによって、レリバンス・ランキングが実現される。つまり、文書1が最も関連が深く、文書3が最も関連がない、との結果を得る。
【0010】
レリバンス・フィードバックについては、「Relevance Feedback and Other Query Modification Techniques」(Donna Harman著,Information Retrieval,p.241−263)に記載されている。以下、これを従来技術2と呼ぶ。これは、所定の観点でランキングされた文書の集合から適切な(もしくは不適切な)文書を、ユーザが指定することによって、その文書に関連の深い(もしくは関連のない)順にデータベース中の文書を並べ直すというものである。これは、所定の観点で行われたランキングに用いた検索条件のベクトルをユーザが指定した文書に基づいて修正する。さらに、この修正したベクトルを用いてランキングをし直すことによって実現される。修正後のベクトルを算出する最も単純な式は、以下の(数1)で表される。
【0011】
【数1】
【0012】
ここで、Q0は、前回のランキングに用いた検索条件式のベクトルである。Q1は、修正後の検索条件式のベクトルである。Riは、適切な文書iのベクトルである。Siは、不適切な文書iのベクトルである。n1は、適切な文書の数である。n2は、不適切な文書の数である。
【0013】
従来技術1や従来技術2のような方法を用いるには、データベース中の単語のイン
デックスを作成し、なおかつそれを検索に用いる単語インデックス方式を採用する必要がある。しかし、分かち書きのされていない日本語のような文書に対し,単語インデックス方式を用いると次のような問題が生じる。
【0014】
(1)単語を抽出するために、文字種分割(文字種が変化したところで文字列を分割)や形態素解析等を用いる必要がある。このため、単語の抽出の仕方によっては検索できない単語が発生する。例えば、「開発作業」だけを単語として抽出した場合には「開発」では検索ができないことになる。
【0015】
(2)また、検索漏れが生じる場合もある。例えば、文書1に「開発作業」というインデックスが、文書2に「開発」というインデックスが付与されているとする。「開発」が検索タームとして指定された場合、文書2は探し出すことができるが、文書1は探し出すことができない。このため、検索漏れが生じる。これらの問題は、単語を接続して新たな単語が作られる独語などにもある。
【0016】
以上のような問題を解決するものとして、特開昭64−35627号公報(以下、従来技術3と呼ぶ)がある。この従来技術3は、分かち書きのされていない日本語のような文書に対しての問題を解決するものである。従来技術3は、n文字が連続する文字列(以下、n-gramと呼ぶ)のインデックスを用いて検索を行うn-gramインデックス方式である。本方式を用いれば、単語を意識することなく登録および検索を行うことが可能となる。従来技術3は、文書の登録時に、データベースへ登録する文書のテキストデータからn-gram(従来技術3では、文字連鎖と呼んでいる)とそのn-gramのテキスト中における出現位置をインデックスとして磁気ディスク装置に格納しておく。検索時には指定された検索文字列(以下、検索タームと呼ぶ)中に存在するn-gramを抽出する。抽出されたn-gramに対応するインデックスを上記磁気ディスク装置から読み込み、インデックス中のn-gramの出現位置を比較する。比較の結果、検索タームから抽出したn-gramの位置関係とインデックス中のn-gramの位置関係が、等しいかどうかを判定する。このことによって、指定された検索タームが出現する文書を高速に探し出す方式が開示されている。
【0017】
以下、この従来技術3について図3を用いて具体的にその内容を説明する。本図では、説明の都合上、インデックスに出現位置のみを格納した場合を示す。実際には文書番号と出現位置を格納し文書検索に用いてもよい。また、本図ではn-gramのnの値を3と想定している。
【0018】
まず、文書の登録時にデータベースに登録するテキスト301がインデックス作成部302に読み込まれ、n-gramインデックス300が作成される。このn-gramインデックス300には、テキスト301に出現する全ての3-gramとテキスト301におけるその3-gramの出現位置が格納される。例えば、本図に示すテキスト301では、「abc」という3-gramはテキスト301の2文字目、9文字目、・・・に現われる。したがって、n-gramインデックス300には3-gram「abc」とこれに対応した形で出現位置{2,9,・・・}が格納される。
【0019】
検索時には、まず、検索タームがn-gram抽出部303に入力され、検索ターム中に存在する全てのn-gramとそのn-gramの検索タームにおける出現位置が抽出される。次に、抽出されたn-gramとこれに対応するn-gramの検索タームにおける出現位置が、インデックス検索部304に入力される。インデックス検索部304では、検索タームから抽出されたn-gramに対応するインデックスがn-gramインデックス300から読み込まれる。そして、これらのインデックスの中から検索ターム中の位置関係と同じ出現位置を持つものが抽出され、検索結果として出力される。本図の例では、検索タームとして「abcd」が入力された場合、まずn-gram抽出部303において、「n-gram「abc」,n-gram位置「1」」と「n-gram「bcd」,n-gram位置「2」」が抽出される。ここで、n-gram位置「1」は、検索タームの先頭、n-gram位置「2」は、その次の文字位置を示す。次に、インデックス検索部304において、n-gramインデックス300からn-gram「abc」と「bcd」に対応するインデックスが読み込まれる。これらのインデックスにおける出現位置が、n-gram位置「1」とn-gram位置「2」のように連続するもの(すなわち隣接するもの)が、抽出され検索結果として出力される。実際には,文書番号もインデックスに格納されており、文書番号が一致していることも判定される。その結果、文書番号が一致し、出現位置が検索ターム中の位置関係と同じであるものが抽出され、その文書番号が検索結果として出力される。
【0020】
本図では、n-gram「abc」の出現位置「2」とn-gram「bcd」の出現位置「3」が隣接するため、n-gram「abcd」が文字列として存在することが分かる。このため、テキスト中に検索ターム「abcd」が、出現することが示される。しかし、n-gram「abc」の出現位置「2」とn-gram「bcd」の出現位置「18」、n-gram「abc」の出現位置「9」とn-gram「bcd」の出現位置「3」、n-gram「abc」の出現位置「9」とn-gram「bcd」の出現位置「20」は隣接していない。このため、この位置には検索ターム「abcd」が出現しないことがわかる。
【0021】
このようなn-gramインデックス方式において、レリバンス・フィードバックを実現する方法が、「特開平6−110948号」(以下,従来技術4と呼ぶ)に開示されている。以下、図4を用いて、本従来技術によるレリバンス・フィードバックの手順を説明する。
【0022】
(ステップ1)データベース中のそれぞれの文書から全てのn-gram(nはあらかじめ決められた1以上の整数)を抽出する。
【0023】
(ステップ2)上記(ステップ1)で抽出されたn-gramを重複削除したn-gramに対し、その出現頻度を基に文書毎にウェートを割り当てる。
【0024】
(ステップ3)データベース中の文書間の共通性を所定の計算式を用いて算出し、この値を各n-gramのウェートから差し引く。
【0025】
(ステップ4)上記(ステップ3)で算出したウェートを用いて、ユーザが選択した文書とデータベース中の文書との間の得点を算出する。
【0026】
(ステップ5)上記(ステップ4)で算出した得点の高い順に文書を出力する。
【0027】
以下、文書1「新開発の心電計による発作時の心電図」、文書2「新しいソフトウェアの開発作業」、文書3「ソフト開発を支援するソフトウェア」が、登録されているデータベースを対象にn-gramのnの値を2とし、文書2をユーザが選択した場合を例に具体的に手順を説明する。まず、データベース中の文書1〜文書3からn-gramを抽出する。
【0028】
【表1】
【0029】
表1に、文書1中に存在する2-gramを重複削除した2-gramを全て示す。次に、示された2-gramの各々に対し正規化出現頻度(本従来技術ではウェートと呼んでいる)を計算する。この正規化出現頻度は、各々の2-gramの出現頻度をその文書中にある2-gramの総数で割ることによって得られる。文書2および文書3に対しても、同様の処理が施され、表2および表3に示す正規化出現頻度が得られる。
【0030】
【表2】
【0031】
【表3】
【0032】
その後、データベース中の文書間の共通性が除去される。ここでは、まず第1にデータベース中に存在する2-gramを重複削除した2-gramについて、その平均ウェート(本従来技術では共通性ウェートと呼んでいる)が算出される。平均ウェートは、各2-gramについて、データベース中の全文書の正規化出現頻度の合計を全文書の数で割ることによって算出される。
【0033】
【表4】
【0034】
表4に、文書1、文書2および文書3の間の平均ウェートを示す。例えば、2-gram「新開」の平均ウェートは、(0.063+0.0+0.0)/3=0.021である。また、2-gram「開発」の平均ウェートは、(0.063+0.077+0.067)/3=0.069となる。2-gram「新開」は、文書2および文書3に出現していないので、正規化出現頻度はそれぞれ0.0となっている。平均ウェートは各n-gramの正規化出現頻度の平均値である。この値をn-gramの正規化出現頻度から差し引くことにより、データベース中の文書間の共通性を除去する。もし、あるn-gramが全ての文書に同じ割合で出現していれば、正規化出現頻度も平均ウェートも全て同じ値となる。また、共通性を除去した正規化出現頻度(以下、正規化ウェートと呼ぶ)は、「0」となる。つまり、ストップワードのようにどの文書にも同じように出現するn-gramに対しては、正規化出現頻度を限りなく「0」に近づけ、その影響を小さくすることができる。表5、表6および表7に文書1、文書2および文書3の正規化ウェートを示す。
【0035】
【表5】
【0036】
【表6】
【0037】
【表7】
【0038】
以上のようにして得られた正規化ウェートを用いて、ユーザが選択した文書とデータベース中の全文書との類似性を得点(以下、類似度と呼ぶ)として表わす。類似度は、以下に示す数2によって算出される。
【0039】
【数2】
【0040】
ここで、Uiは、選択文書のn-gram(i)の正規化ウェートを示し、Riは、データベース中の文書のn-gram(i)の正規化ウェートを示す。数2を用いて、選択文書である文書2とデータベース中の全ての文書との類似度を算出すると以下のようになる。文書1は、0.018、文書2は、1、文書3は、0.119である。最後に、得られた得点の降順に文書が出力される。この例では、文書2、文書3、文書1の順で出力されることになる。
【0041】
このようにn-gram単位でレリバンス・フィードバックを行っているため、単語の識別を行う必要がなく、分かち書きのされていない日本語のような文書に対しても適用が可能となっている。
【0042】
【発明が解決しようとする課題】
しかしながら、以上説明した従来技術4では、以下に示す問題が残されている。
【0043】
(1)処理時間の問題
日本語の場合、n-gramの種類数が多いため、データベース中の全てのn-gramを対象にして得点の算出処理を行うと膨大な時間が掛かる。英語の場合、文字の種類が55種であり、2-gramの種類数はその二乗の3,025種となる。しかし、日本語は漢字第1水準だけでも1,024種も存在し、その組み合わせとなる2-gramの種類は1,048,576種にもおよぶ。さらに平仮名、片仮名等も含めると2-gramの種類は膨大な数になり、得点の算出に長大な時間を要する。
【0044】
(2)ランキング・ノイズの問題
n-gramを単位としてレリバンス・フィードバックを行っているため、全く関係のない文書が上位にランキングされる可能性がある。従来技術4の説明を行ったときに用いた文書1、文書2および文書3から構成されるデータベースに文書4「ソフトの新製品の新聞発表」を加えたデータベースを例にこの問題を説明する。本例で文書2が、ユーザに選択されたとする。
【0045】
【表8】
【0046】
表8に文書4に存在する全ての2-gramを重複削除した2-gramに対する、正規化出現頻度を示す。この文書4の正規化出現頻度と表1〜表3に示した文書1〜文書3の正規化出現頻度を用いて、データベース中の文書間の共通性が除去される。
【0047】
まず、各2-gramの平均ウェートが算出される。
【0048】
【表9】
【0049】
表9に、文書1〜文書4における平均ウェートを示す。例えば、2-gram「ソフ」の平均ウェートは、(0.0+0.077+0.133+0.091)/4=0.075となる。次に、この平均ウェートをn-gramの正規化出現頻度から差し引くことにより、データベース中の文書間の共通性を除去した正規化ウェートを求める。
【0050】
【表10】
【0051】
【表11】
【0052】
【表12】
【0053】
表10、表11および表12に示したものは文書1、文書2および文書4の共通性を除去した正規化ウェートである。これらを用いて、選択文書である文書2に対する文書1と文書4の類似度を算出し、比較すると以下の通りになる。文書1は0.043、文書4は、0.002である。
【0054】
この結果、文書2、文書4ともにソフトウェアに関する文書であるにもかかわらず、全く関係のない文書1の方が文書2に類似していると判断されてしまう。これは、文書2の「開発作業」中の2-gramである「開発」、「発作」が文書1に存在しているためである。n-gramは単語のように意味的にまとまった単位の文字列ではないため、同じn-gramであっても同じ意味を持つn-gramとは限らない。そのため、この例のように全く関係のない文書が上位にランキングされてしまうという問題が生じる。
【0055】
こうした問題に対し、本発明では以下の課題を解決することを目的とする。また、本発明は、n-gramを単位として行うレリバンス・フィードバックを対象としている。
【0056】
(1)文字種の多い日本語のような言語に対しても、高速なレリバンス・フィードバックを実現する。
(2)n-gram単位に行うことによるノイズを減少させるレリバンス・フィードバックを実現する。
【0057】
【課題を解決するための手段】
上記課題を解決するために、本発明では、テキストデータの登録処理として以下のステップを有する。
【0058】
(ステップ1):テキストデータを読み込むステップ
(ステップ2)上記(ステップ1)で読み込んだテキストデータからn文字(nは予め定められた1以上の整数)が連続する文字列(以下、n-gramと呼ぶ)を全て抽出し、そのn-gramのテキストデータにおける出現頻度を算出するステップ
(ステップ3)上記(ステップ2)で算出された出現頻度を該当する出現頻度ファイルに格納するステップ
(ステップ4)上記(ステップ2)で算出された出現頻度を基に、予め定められた算出式を用いて上記抽出n-gramに対する重みを算出するステップ
(ステップ5)上記(ステップ4)で算出された重みを該当する重みファイルに格納するステップ
これらのステップは、重みを算出する重み算出ステップである。
【0059】
また、検索処理として以下のステップを有する。
【0060】
(ステップ6)前記重みファイルを読み込むステップ
(ステップ7)前記出現頻度ファイルを読み込むステップ
(ステップ8)上記(ステップ6)で読み込まれた重みファイルの中で、重みが予め定められた基準を満たすn-gramを全て、ユーザが選択したテキスト(以下、選択文書と呼ぶ)から抽出し、そのn-gramの選択文書における出現頻度を算出するステップ
(ステップ9)上記(ステップ8)で抽出されたn-gramの対象データベース中のテキストデータの出現頻度を、上記(ステップ7)で読み込まれた出現頻度ファイルから得るステップ
(ステップ10)上記(ステップ8)と上記(ステップ9)で算出された出現頻度ならびに上記(ステップ6)で読み込まれたn-gramの重みを用いて、予め定められた算出式を用いて選択文書とデータベース中のテキストデータ間の類似度を算出するステップ
(ステップ11)上記(ステップ10)で算出された類似度を、予め定められた方法で修正するステップ
(ステップ12)上記(ステップ11)で修正された類似度の降順に、テキストデータの一覧を出力するステップ
(ステップ13)上記(ステップ11)で修正された類似度を前回得点として主メモリに記憶するステップ
上記文書検索方法を用いた本発明の原理を、以下に説明する。
文書を登録する際には、(ステップ1)〜(ステップ5)からなる重み算出ステップを実行する。まず、(ステップ1)で登録対象となるテキストデータを読み込む。次に、(ステップ2)において、(ステップ1)で読み込まれたテキストデータ中の全てのn文字(nは予め定められた1以上の整数)が連続する文字列(以下、n-gramと呼ぶ)を抽出するそして、そのn-gramのテキストデータ中の出現頻度を算出する。例えば、表8に示した文書4「ソフトの新製品の新聞発表」から2-gramを抽出すると、「2-gram「ソフ」は1回出現する」、「2-gram「の新」は2回出現する」といった情報が得られる。そして、(ステップ3)において、(ステップ2)で算出された出現頻度を該当する出現頻度ファイルに格納する。図5に、出現頻度ファイルの例を示す。本図に示した出現頻度ファイルは、表1、表2、表3および表8に示した文書1〜文書4を登録した場合の例である。次に、(ステップ4)において(ステップ2)で算出された出現頻度を基に、予め定められた算出式を用いて上記n-gramに対する重みを算出する。そして、(ステップ5)においてその重みを該当する重みファイルに格納する。この重みとしては、例えば、従来技術4で示した平均ウェート(本従来技術では共通性ウェートと呼ばれている)を用いてもよい。重みの算出に、以下に示す数3を用いる。
【0061】
【数3】
【0062】
ここで、Fijはn-gram(i)のデータベース中の文書jにおける出現頻度を示し、Cjはデータベース中の文書jに存在するn-gramの総数を示す。また、nはデータベース中の文書数である。図6に重みファイルの例を示す。ここで示した重みは、表1〜表4に示した文書1〜文書4が登録されている文書データベースを対象とし、数3を用いて算出したものである。
【0063】
検索時にユーザからレリバンス・フィードバックの要求がなされた場合には、(ステップ6)〜(ステップ11)からなるレリバンス・フィードバックステップを実行する。まず、(ステップ6)において(ステップ5)で作成された重みファイルをメモリに読み込む。次に、(ステップ7)において、(ステップ3)で作成された出現頻度ファイルをメモリに読み込む。次に、(ステップ8)において、(ステップ6)で読み込まれた重みファイルの中で重みが予め定められた基準を満たすn-gram全てをユーザが指定した選択文書から抽出し、そのn-gramの選択文書における出現頻度を算出する。
【0064】
図7に文書4が選択された場合の(ステップ8)のn-gram抽出処理の概要を示す。本図では、nを2とし、2-gramを抽出するための基準として「重みが0.050以上のもの」としている。文書4から2-gramを全て抽出すると、「ソフ」「フト」「トの」「の新」「新製」「製品」「品の」「新聞」「聞発」「発表」の10種類(「の新」のみ2回出現)の2-gramが抽出される。これに対し、「重みが0.050以上のもの」という基準で2-gramを抽出すると、重みが0.075の「ソフ」「フト」および0.052の「聞発」のみが抽出され、3種類の2-gramに削減できる。このように本発明では、選択文書から抽出するn-gramの種類数を削減している。
【0065】
次に、(ステップ9)において、(ステップ8)で抽出されたn-gramの対象データベース中の全文書における出現頻度を(ステップ7)で読み込まれた出現頻度ファイルから得る。そして、(ステップ10)において、(ステップ8)および(ステップ9)で算出された出現頻度ならびに(ステップ6)で読み込まれたn-gramの重みから、予め定められた算出式を用いて選択文書とデータベース中の全文書間の類似度を算出する。この算出式は、従来技術4で示した数2を用いてもよい。
【0066】
次に、(ステップ11)において、(ステップ10)で算出された類似度を予め定められた方法で修正する。この修正には、以下の2つの方法がある。
【0067】
(1)算出した類似度を0〜1の間に正規化して修正度とし、前回のランキングで得られた類似度に乗ずる。
【0068】
通常のレリバンス・ランキングでは、ユーザが指定した検索タームで検索を行い、その結果得られた検索タームの出現頻度を基に類似度の算出を行う。すなわち、単語を単位としたランキングである。そのため、無意味なまとまりであるn-gramを単位としてランキングを行う場合よりノイズが少ない。しかし、n-gramを単位としてランキングを行う場合にでも、算出した類似度を0〜1の間に正規化して修正度とし、前回のランキングで得られた類似度に乗じて修正し新たな類似度を得ることにより、単語を単位としたランキングの結果を利用できる。このため、n-gramを単位とすることによるノイズを減少させることができる。
【0069】
レリバンス・ランキングを行わずに、最初から文書を選択してレリバンス・フィードバックを行っていくこともできる。この場合,1回のレリバンス・フィードバックだけではノイズが存在する可能性が高い。しかし、上述したような修正を行いながらレリバンス・フィードバックを繰り返していくことにより、1回のレリバンス・フィードバックでユーザが選択した文書のみに対する類似度ではなく、それまでのレリバンス・フィードバックで選択してきた文書全てに対する類似度を算出するのと同様な効果が得られる。このため、 n-gramを単位とすることによるノイズを減少させることができる。
【0070】
(2)前回までのレリバンス・フィードバックでユーザが選択した文書に対する類似度を高くする。
【0071】
ユーザが選択した文書は、ユーザが欲している文書に近い文書である。このため、本来ならばレリバンス・フィードバックを繰り返していく過程において、常に高い類似度を持たなければならない文書である。しかし、n-gramをレリバンス・フィードバックの単位とすることによって、これらの文書がその他の関係のない文書より類似度が低くなってしまう可能性がある。そのため、それまでにユーザが選択した文書に対する得点を高く(すなわち、ランキングで上位になければならない文書の類似度を高く)することによって、その他の関係のない文書の類似度を相対的に下げることになる。このため、n-gramを単位とすることによるノイズを減少させることができる。
【0072】
また本発明では、(ステップ8)においてユーザが指定した選択文書から抽出するn-gramを、その重みが予め定められた基準を満たすn-gramのみに限定し、その種類数を削減している。そのため、(ステップ9)における対象データベース中の全文書における出現頻度の取得処理と、(ステップ10)における文書間の類似度算出処理を数を削減したn-gramのみを対象として行えばよい。このため、これらの処理に掛かる時間を削減することができる。その結果として、高速なレリバンス・フィードバックが可能となる。
【0073】
以上の結果、文字種の多い日本語等の文書データベースを対象にn-gramを単位としたレリバンス・フィードバックを行った場合でも、(ステップ8)において処理対象となるn-gramの種類数を押さえることが可能になる。このため、得点算出のための処理を削減することができ、高速なレリバンス・フィードバックが可能となる。また、(ステップ11)において、(ステップ10)で算出した類似度を修正度として、前回のランキングによって得られた類似度を修正して新たな類似度を得るため、単語を単位としたランキングの類似度が利用できる。さらに、それまでのレリバンス・フィードバックでユーザが選択した文書全てにたいする類似度を算出するのと同様な効果が得られるため、n-gramを算出単位とすることによるノイズを削減することができる。
【0074】
【発明の実施の形態】
以下、本発明の第一の実施例について図1を用いて説明する。
本発明を適用した文書検索システムは、ディスプレイ100、キーボード101、中央演算処理装置(CPU)102、磁気ディスク装置107、フロッピディスクドライバ(FDD)108、主メモり111およびこれらを結ぶバス110から構成される。磁気ディスク装置107は二次記憶装置の一つであり、テキスト103、インデックス104、重みファイル105および出現位置ファイル106が格納される。FDD108を介してフロッピディスク109に格納されている情報が、主メモリ111あるいは磁気ディスク装置107へ読み込まれる。
【0075】
主メモリ111には、システム制御プログラム112、文書登録制御プログラム113、テキスト登録プログラム114、インデックス作成登録プログラム115、重みファイル作成登録プログラム116、検索制御プログラム119、検索条件式解析プログラム120、インデックス検索プログラム121、レリバンス・ランキングプログラム122、レリバンス・フィードバックプログラム123およびソートプログラム128が格納されるとともにワークエリア129が確保される。重みファイル作成登録プログラム116は、重み算出プログラム117および重みファイル作成プログラム118で構成される。また、レリバンス・フィードバックプログラム123は、ファイル読込みプログラム124、n-gram抽出プログラム125、出現頻度取得プログラム126およびフィードバック得点算出プログラム127で構成される。文書登録制御プログラム113および検索制御プログラム119は、ユーザによるキーボード101からの指示に応じてシステム制御プログラム112によって起動され、それぞれテキスト登録プログラム114、インデックス作成登録プログラム115、重みファイル作成登録プログラム116の制御と、検索条件式解析プログラム120、インデックス検索プログラム121、レリバンス・ランキングプログラム122、レリバンス・フィードバックプログラム123、ソートプログラム128の制御を行う。
【0076】
以下、本実施例における文書検索システムの処理内容について説明する。
まず、システム制御プログラム112の処理内容について図8のPAD(Problem Analysis Diagram)図を用いて説明する。
【0077】
システム制御プログラム112は、まずステップ800で、キーボード101から入力されたコマンドを解析する。そしてこの結果が、ステップ801で登録実行のコマンドであると解析された場合には,ステップ802で文書登録制御プログラム113を起動して、文書の登録を行う。また、ステップ803で検索実行のコマンドであると解析された場合には、ステップ804で検索制御プログラム119を起動して、文書の検索を行う。以上がシステム制御プログラム112の処理内容である。
【0078】
次に、文書登録制御プログラム113による文書登録の処理内容について、図9のPAD図を用いて説明する。
【0079】
文書登録制御プログラム113は、システム制御プログラム112によって起動される。本プログラムは、まずステップ900でテキスト登録プログラム114を起動し、FDD108に挿入されたフロッピディスク109から登録する文書のテキストデータをワークエリア129に読み込み、これをテキスト103として磁気ディスク装置107へ格納する。テキストデータは、フロッピディスクを用いて入力するだけに限らず、通信回線やCD−ROM装置(図1には示していない)等を用いて他の装置から入力するような構成をとることも可能である。次に、ステップ901で文書登録制御プログラム113は、インデックス作成登録プログラム115を起動して、テキスト103中の所定のn-gramのテキスト103における出現位置をインデックス104として磁気ディスク装置107へ格納する。また、そのn-gramの出現頻度を出現頻度ファイル106として磁気ディスク装置107へ格納する。最後に、ステップ902で文書登録制御プログラム113は、重みファイル作成登録プログラム116を起動し、上記インデックス作成登録プログラム115で算出されたn-gramの出現頻度を基にn-gramの重みを算出し、重みファイル105として磁気ディスク装置107に格納する。以上が、文書登録制御プログラム113による文書登録の処理内容である。
【0080】
次に、検索制御プログラム119による文書検索の処理内容について、図10のPAD図を用いて説明する。
【0081】
検索制御プログラム119は、まずステップ1000で検索条件式解析プログラム120を起動する。そして、キーボード101から入力された検索条件式で指定されている検索方法がインデックス検索、レリバンス・ランキング、レリバンス・フィードバックのいずれであるのかを解析し、検索条件式から検索タームあるいは文書番号を抽出する。そして、検索条件式解析プログラム120によって解析する。この結果が、インデックス検索であった場合には、検索制御プログラム119は、インデックス検索プログラム121を起動し、検索条件式解析プログラム120によって抽出された検索タームのテキスト103における出現文書番号および出現位置を算出する(ステップ1002)。
【0082】
また、検索条件式解析プログラム120によって解析された結果が、レリバンス・ランキングであった場合には、検索制御プログラム119はインデックス検索プログラム121を起動し、検索条件式解析プログラム120によって抽出された検索タームのテキスト103における出現文書番号および出現位置を算出する(ステップ1004)。次に、レリバンス・ランキングプログラム122を起動し、インデックス検索プログラム121によって算出された検索タームの出現文書番号および出現位置から各文書の類似度を算出する(ステップ1005)。そして、ソートプログラム128を起動し、レリバンス・ランキングプログラム122によって算出された各文書の類似度を降順にソートする(ステップ1006)。
【0083】
また、第三番目のケースとして、検索条件式解析プログラム120によって解析された結果がステップ1007でレリバンス・フィードバックであった場合には、検索制御プログラム119は、ステップ1008でレリバンス・フィードバックプログラム123を起動し、検索条件式解析プログラム120によって抽出された番号の文書に対する各文書の類似度を算出する。そして、ソートプログラム128を起動し、レリバンス・フィードバックプログラム123によって算出された各文書の類似度を降順にソートする(ステップ1009)。
【0084】
最後に、検索制御プログラム119はステップ1010で、インデックス検索プログラム121によって算出された文書番号、あるいはソートプログラム128によってソートされた類似度を出力する。以上が検索制御プログラム119による文書検索の処理内容である。
【0085】
次に、図9に示した文書登録制御プログラム113による文書登録処理におけるインデックス作成登録プログラム115および重みファイル作成登録プログラム116の処理内容について、図11および図12のPAD図を用いて説明する。
【0086】
インデックス作成登録プログラム115は、図11に示すようにまずステップ1100でテキスト103から所定のn-gramとそのテキスト103における出現位置を抽出し、ワークエリア129に格納する。そして、ステップ1101で、抽出したn-gramの出現位置をインデックス104として磁気ディスク装置107に格納する。このインデックスの作成については、従来技術3に示されているような方法を用いてもよい。次に、ステップ1102で、ワークエリア129に格納されているn-gramの個数をカウントし、各々のn-gramのテキスト103の各文書中の出現頻度を算出する。そして、ステップ1103で、算出したn-gramの各文書中の出現頻度を出現頻度ファイル106として、磁気ディスク装置107に格納する。
【0087】
重みファイル作成登録プログラム116は、図12に示すように、まずステップ1200で重み算出プログラム117を起動し、上記インデックス作成登録プログラム115よって算出されたn-gramのテキスト103の各文書中の出現頻度を基に各々のn-gramの重みを算出する。この重みには、例えば、従来技術3で開示されているような出現頻度を文書に含まれるn-gramの総数で割った正規化出現頻度の平均値(従来技術3では共通性ウェートと呼ばれている)を用いてもよい。最後に、ステップ1201で重みファイル作成プログラム118を起動し、重み算出プログラム117によって算出されたn-gramの重みを重みファイル105として磁気ディスク装置107に格納する。
【0088】
次に、図10に示した検索制御プログラム119による文書検索処理における検索条件式解析プログラム120、インデックス検索プログラム121、レリバンス・ランキングプログラム122およびレリバンス・フィードバックプログラム123の処理内容について、図13〜図16のPAD図を用いて説明する。
【0089】
検索条件式解析プログラム120は、図13に示すように、まずステップ1300でキーボード101から入力された検索条件式に、インデックス検索、レリバンス・ランキング、レリバンス・フィードバックのいずれが指定されているのかを判定する。そして、判定結果がステップ1301でインデックス検索であった場合には、ステップ1302で検索条件式から検索タームを抽出する。ここで、抽出された検索タームが、ステップ1303で2つ以上であった場合には、ステップ1304でそれらの検索ターム間の論理的な関係あるいはテキスト103中での位置関係を検索条件式から抽出する。ここで、複数の検索ターム間の論理的な関係とは、例えば、AND条件やOR条件がある。ここで、AND条件とは、検索式「「文書」(AND)「検索」」のように、「「文書」と「検索」の両方の文字列が現れる文書を探せ」という意味を持つ。また、OR条件とは、検索式「「文書」(OR)「検索」」のように、「「文書」か「検索」のどちらかの文字列が現れる文書を探せ」という意味を持つ。
【0090】
また、複数の検索ターム間のテキスト103中での位置関係とは、文脈条件、近傍条件や隣接条件などがある。文脈条件とは、例えば検索式「「文書」(S)「検索」」のように、「「文書」と「検索」が同一の文(センテンス)に共起(同時に出現)する文書を探せ」という意味を持つ。近傍条件とは、検索式「「文書」(2C)「検索」」のように、「「文書」と「検索」が2文字以内に近接して現れる文書を探せ」という意味を持つ。さらに、隣接条件とは、検索式「「文書」(A)「検索」」のように、「「文書」と「検索」が隣接して現れる文書を探せ」という意味を持つ。
【0091】
また、ステップ1305において、検索条件式の判定結果がレリバンス・ランキングであった場合には、ステップ1306で検索条件式から検索タームを抽出する。また第三番目のケースとして、ステップ1307において、検索条件式でレリバンス・フィードバックであった判定された場合には、ステップ1308で検索条件式から文書番号を抽出する。
【0092】
インデックス検索プログラム121は、図14に示すように、まずステップ1400において、上記検索条件式解析プログラム120によって抽出された検索タームのテキスト103における出現文書番号および出現位置を求める。このインデックス検索については、従来技術3に示されているような方法を用いてもよい。すなわち、検索タームに含まれるn-gramのインデックスの間で文書番号および出現位置を比較し、その文書番号が同じで出現位置の関係が検索タームにおける位置関係と等しいものを抽出する。次に、ステップ1401において、検索条件式解析プログラム120によって解析された結果がインデックス検索であった場合には、ステップ1402でキーボード101から入力された検索条件式中の検索ターム数を判定する。また、検索タームが検索条件式中に2つ以上存在する場合には、ステップ1403で算出した複数の出現文書番号および出現位置が検索条件式に指定されている検索条件と合致するものを抽出する。ここで、検索条件式解析プログラム120によって検索ターム間の論理的な関係が検索条件式から抽出されている場合には、得られた検索タームに対応する各出現文書番号で論理積や論理和をとる。また、検索タームのテキスト103中での位置関係が検索条件式から抽出されている場合には、得られた複数の検索タームの出現位置のうちで検索条件式で指定されている位置関係に合致するものを抽出する。
【0093】
レリバンス・ランキングプログラム122は、図15に示すように、まずステップ1500において、上記インデックス検索プログラム121によって算出された検索タームの出現文書番号および出現位置を基に、検索タームの各文書中の出現頻度を算出する。そして、ステップ1501で算出した検索タームの出現頻度を基に、各文書の類似度を算出する。この類似度の算出については、従来技術1に開示されているベクトルによる算出方法を用いてもよいし、「A Very Fast Prototype Retrieval System using Statiscal Ranking」(Donna Harman and Gerald Candela著、SIGIR FORUM Spring/Summer 1989,Vol.23,No.3,4,pp.100−110)で述べられている以下の数4を用いてもよい。
【0094】
【数4】
【0095】
ここで、Qは検索条件式中の検索タームの数、Freq(jk)は検索タームkの文書j中の出現頻度、Mjは文書j中の単語の総数(日本語の場合はテキスト長で代用)を示す。また、IDF(k)は以下の数5で示される。
【0096】
【数5】
【0097】
ここで、Nはデータベース中の文書の数、NumD(k)は検索タームkを1つ以上含む文書の数、すなわち、文書ヒット件数を示す。文書の類似度は、検索タームの出現頻度をテキスト長で正規化したものである。この値は、指定された検索タームが多く出現する文書ほど高くなる。また、IDF(k)は、検索タームの対象データベースにおける出現のばらつき具合を示す。IDF(k)は、検索タームが対象データベース中の全ての文書に出現する場合に最も小さく、偏って出現するほど大きくなる。全ての文書に出現する検索タームはストップワードであるため、IDF(k)を出現頻度に乗ずることによって、ストップワードの影響を抑えることができる。
【0098】
レリバンス・フィードバックプログラム123は、図16に示すように、まずステップ1600でファイル読込みプログラム124を起動し、重みファイル105および出現頻度ファイル106をワークエリア129に読み込む。次に、ステップ1601において、n-gram抽出プログラム125を起動し、上記検索条件式解析プログラム120によって検索条件式から抽出された文書番号に対応する文書(以下、選択文書と呼ぶ)から重みが所定の基準を満たすn-gramを抽出する。ここで基準としては、重みが上位m(mは1以上の予め定められた整数)個にあるn-gramとしてもよいし、重みがある決められた範囲(例えば、i以上k未満、i,kは予め定められた数値)にあるn-gramとしてもよい。次に、ステップ1602において、出現頻度取得プログラム126を起動し、n-gram抽出プログラム125によって抽出されたn-gramの各文書中の出現頻度を出現頻度ファイル106から得る。最後に、ステップ1603において、フィードバック得点算出プログラム127を起動し、ファイル読込みプログラム124によって読み込まれたn-gramの重み、出現頻度取得プログラム126によって得られたn-gramの出現頻度を基にデータベース中の各文書の類似度を算出する。この類似度の算出については、従来技術4に開示されている数2のような算出式を用いてもよいし、n-gramを単語とみなしてレリバンス・ランキングで用いた数5を用いてもよい。
以上が、本発明の文書検索方法の第一の実施例である。
【0099】
以下、図12に示した本実施例における重みファイル作成登録プログラム116の処理手順について具体的に説明する。
【0100】
まず、図12の重みファイル作成登録プログラム116のステップ1200における重み算出プログラム117の処理について、図17〜図18の例を用いて説明する。重み算出プログラム117は、重みファイル作成登録プログラム116によって起動される。この時、インデックス作成登録プログラム115によって算出されたn-gramの各文書における出現頻度が重み算出プログラム117へ渡される。図17に文書1、文書2、文書3および文書4からなるテキスト103からインデックス作成登録プログラム115によって2-gramの出現頻度が算出される様子を示す。本図では、まず、テキスト103から2-gram1700が抽出される。例えば、文書1「新開発の心電計による発作時の心電図」からは「新開、開発、発の、の心、心電、電計、計に、によ、よる、る発、発作、作時、時の、の心、心電、電図」という2-gram1700が抽出される。
【0101】
次に、この抽出されたn-gramの出現頻度1701が算出される。本図に示すように、2-gram1700から出現頻度1701が算出される。例えば、文書1からは「(新開,1)(開発,1)(発の,1)(の心,2)(心電,2)(電計,1)(計に,1)(によ,1)(よる,1)(る発,1)(発作,1)(作時,1)(時の,1)(電図,1)」という出現頻度1701が算出される。ここで、例えば(新開,1)とは2-gram(新開)は「1」回出現することを示す。このようにしてインデックス作成登録プログラム115によって算出されたn-gramの出現頻度が、重み算出プログラム117の起動時に渡される。そして、重み算出プログラム117は、図12のステップ1200で渡された出現頻度を基にn-gramの重みを算出する。重み算出の例を図18に示す。本図では,2-gram「開発」と「ソフ」の算出例を示してある。また、重みには、出現頻度をテキスト長で割った正規化出現頻度の平均値を用いている。例えば、「開発」の正規化出現頻度は、テキスト長が17の文書1では0.059、テキスト長が14の文書2では0.071、テキスト長が16の文書3では0.063、テキスト長が12の文書4では0である。このため、その重みは0.048(=(0.059+0.071+0.063+0)/4)となる。
【0102】
次に、図12の重みファイル作成登録プログラム116のステップ1201における重みファイル作成プログラム118の処理について説明する。重みファイル作成プログラム118は、重みファイル作成登録プログラム116によって重み算出プログラム117の次に起動される。重みファイル作成プログラム118は、図12のステップ1201で重み算出プログラム117によって算出されたn-gramの重みを重みファイル105として磁気ディスク装置107に格納する。重みファイル105は、図6に示したような形式で作成する。
【0103】
以上が、本実施例における重みファイル作成登録プログラム116の詳細な手順である。この例ではn-gramのnの値を2として説明を行ったが、nが1、あるいは3以上についても同様に重みファイル作成登録の処理を行うことができる。
【0104】
以下、図16に示した本実施例におけるレリバンス・フィードバックプログラム123の処理手順について具体的に説明する。
【0105】
まず、図16のレリバンス・フィードバックプログラム123のステップ1600におけるファイル読込みプログラム124の処理について説明する。ファイル読込みプログラム124は、レリバンス・フィードバックプログラム123によって起動される。本プログラム124は、図16のステップ1600で重みファイル105および出現頻度ファイル106を磁気ディスク装置107からワークエリア129に読み込む。ここで、読み込まれる重みファイル105および出現頻度ファイル106は、図6および図5に示した形式で作成されている。
【0106】
次に、図16のレリバンス・フィードバックプログラム123のステップ1601におけるn-gram抽出プログラム125の処理について、図19の例を用いて説明する。 n-gram抽出プログラム125は、レリバンス・フィードバックプログラム123によってファイル読込みプログラム124の次に起動される。本プログラム125は、図16のステップ1601において、ユーザが指定した選択文書から所定のn-gramを抽出する。そして、抽出されたn-gramの中からその重みが所定の基準を満たすものだけを抽出する。この処理の例を図19に示す。本図では、文書2「新しいソフトウェアの開発作業」を選択文書とし、n-gramのnの値を2とした場合を示している。また、基準としては(重みが0.040以上のn-gram)を用いる。まず、選択文書から2-gramを抽出する。この結果、文書2からは13種類の2-gram「新し,しい,いソ,ソフ,フト,トウ,ウェ,ェア,アの,の開,開発,発作,作業」が抽出される。次に、これらのn-gramから(重みが0.040以上のn-gram)という基準を満たすn-gramを抽出する。このとき、基準を満たすもののみ抽出してもよい。本例では、「ソフ」の重みが0.070、「フト」の重みが0.070、「開発」の重みが0.048で基準に当てはまる。このため、「ソフ、フト、開発」という2-gram1900が抽出される。重みファイル105中の「の新」の重みは、0.042であり、基準を満たしている。しかし、「の新」は、文書2の中に存在しないので抽出されない。
【0107】
次に、図16のレリバンス・フィードバックプログラム123のステップ1602における出現頻度取得プログラム126の処理について、図20の例を用いて説明する。出現頻度取得プログラム126は、レリバンス・フィードバックプログラム123によって、n-gram抽出プログラム125の次に起動される。本プログラム126は、図16のステップ1602において、n-gram抽出プログラム125によって抽出されたn-gramの各文書における出現頻度を出現頻度ファイル106から得る。この処理の例を図20に示す。本図では、図19の例で選択文書から抽出された「ソフ、フト、開発」という2-gram1900の出現頻度を出現頻度ファイル106から得る。例えば、文書3の場合「(開発,1)、(ソフ,2)、(フト,2)」という出現頻度2000を得ることができる。
【0108】
最後に、図16のレリバンス・フィードバックプログラム123のステップ1603におけるフィードバック得点算出プログラム127の処理について、図21の例を用いて説明する。フィードバック得点算出プログラム127は、レリバンス・フィードバックプログラム123によって出現頻度取得プログラム126の次に起動される。本プログラム127は、図16のステップ1603において、上記ファイル読込みプログラム124によって読み込まれたn-gramの重みおよび出現頻度取得プログラム126によって得られたn-gramの出現頻度から各文書の類似度を算出する。この類似度の算出については、従来技術4に開示されている数2のような算出式を用いてもよいし、n-gramを単語とみなしてレリバンス・ランキングで用いた数4を用いてもよい。図21に示す例では、類似度算出に従来技術4に示されている数2を用いており、正規化出現頻度がウェート、重みが共通性ウェートに相当する。類似度算出の結果、各文書に対する類似度が得られる。本図に示した例では、文書1は0.049点、文書2は1.000点、文書3は0.249点、文書4は−0.910点となる。
【0109】
以上説明したように、本実施例では,登録時にn-gramの重みを算出しておき,レリバンス・フィードバックを行う際には,テキストから抽出するn-gramとしてその重みが基準を満たしたものだけに限定し,類似度算出に用いるn-gramの種類数を減らすことにより,類似度算出に掛かる時間を削減し,高速なレリバンス・フィードバックを実現することが可能となる。
【0110】
このことにより、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、n-gramの種類数が限定される。このため得点算出のための処理を減らすことができ、高速なレリバンス・フィードバックが可能となる。
【0111】
次に、本発明の第二の実施例について説明する。本実施例で示す文書検索方法では,文書を登録する際に、異なる文字種にまたがるようなn-gramを削除してn-gramの出現頻度および重みを算出し格納しておくものである。このことにより、出現頻度ファイルおよび重みファイルの容量を削減するとともに、レリバンス・フィードバック時に選択文書からn-gramを抽出する際、選択文書から抽出するn-gramを同一文字種のものだけに限定できる。このことにより、レリバンス・フィードバックの処理に用いるn-gramの種類数を削減する。この方法によれば、必要な磁気ディスク装置の容量を削減できるとともに、レリバンス・フィードバックにおける類似度算出処理を高速に実現できることになる。
【0112】
本実施例は、基本的に第一の実施例(図1)と同様の構成をとるが、その中の文書登録制御プログラム113の制御下のインデックス作成登録プログラム115が異なる。このプログラムは、図22に示すような構成となる。図22に示すように文書登録制御プログラム113aは、テキスト登録プログラム114、文字種分割出現頻度ファイル型インデックス作成登録プログラム2200および重みファイル作成登録プログラム116を制御する。
【0113】
以下、本実施例における処理手順のうち、第一の実施例と異なる文字種分割出現頻度ファイル型インデックス作成登録プログラム2200の処理手順について説明する。
【0114】
文字種分割出現頻度ファイル型インデックス作成登録プログラム2200の処理内容を図23のPAD図に示す。本プログラム2200の処理内容は、図11に示したインデックス作成登録プログラム115とステップ2300が異なるだけである。本プログラム2200は図23に示すように、まずステップ1100でテキスト103から所定のn-gramとそのテキスト103における出現位置を抽出し、ワークエリア129に格納する。そして、ステップ1101で、抽出したn-gramの出現位置をインデックス104として磁気ディスク装置107に格納する。次に、ステップ2300において、ワークエリア129に格納されているn-gramの中で、異なる文字種にまたがるものを削除する。そして、ステップ1102において、ワークエリア129に格納されているn-gramの個数をカウントし、各々のn-gramのテキスト103の各文書中の出現頻度を算出する。そして、ステップ1103において、算出したn-gramの各文書中の出現頻度を出現頻度ファイル106として磁気ディスク装置107に格納する。以上が本発明の文書検索方法を適用した第二の実施例の概略である。
【0115】
以下、図23に示した本実施例における文字種分割出現頻度ファイル型インデックス作成登録プログラム2200の処理手順のうち、第一の実施例と処理結果が異なるステップ2300、ステップ1102およびステップ1103について、図24に示す例を用いて具体的に説明する。図17に示したように、図23のステップ1100で文書1、文書2、文書3および文書4からなるテキスト103から2-gram1700が抽出され、ワークエリア129に格納される。例えば、文書1「新開発の心電計による発作時の心電図」からは「新開、開発、発の、の心、心電、電計、計に、によ、よる、る発、発作、作時、時の、の心、心電、電図」という2-gram1700が抽出される。そして、ステップ2300において、この2-gram1700の中で、異なる文字種にまたがるものが削除される。例えば、文書1から抽出された2-gramから異なる文字種にまたがる「発の、の心、計に、る発、時の、の心」が削除され、「新開、開発、心電、電計、によ、よる、発作、作時、心電、電図」という2-gram2400が残される。次に、ステップ1102において、削除されずに残ったn-gramの出現頻度が算出される。
【0116】
本図に示すように、2-gram2400から出現頻度2401が算出される。例えば、「新開、開発、心電、電計、によ、よる、発作、作時、心電、電図」という2-gram2400からは、「(新開,1)、(開発,1)、(心電,2)、(電計,1)、(によ,1)、(よる,1)、(発作,1)、(作時,1)、(電図,1)」という出現頻度2401が算出される。ここで、例えば(新開,1)とは、2-gram「新開」は、「1」回出現することを示す。最後に、ステップ1103において、算出したn-gramの出現頻度を出現頻度ファイル106として磁気ディスク装置107に格納する。ここで、作成される出現頻度ファイル106には、異なる文字種にまたがるn-gramは存在しないので、図25に示すようなファイルになる。
【0117】
重みファイル作成登録プログラム116の処理内容は、第一の実施例の図12で示したものと同様である。しかし、上記文字種分割出現頻度ファイル型インデックス作成登録プログラム2200によって算出される出現頻度は同一文字種のn-gramに対してのみである。そのため、本プログラム116によって作成される重みファイル105には、同一文字種のn-gramだけが含まれ、図26に示すようになる。
【0118】
本実施例におけるレリバンス・フィードバックプログラム123の処理手順は、第一の実施例で示した図16と全く同様である。しかし、上記重みファイル作成登録プログラム116によって作成される重みファイル105には同一文字種のn-gramだけが格納されているので、結果として選択文書から抽出されるn-gramも同一文字種のものだけになり、n-gram種が削減される。
【0119】
以上説明したように、本実施例では、文書を登録する際に異なる文字種にまたがるようなn-gramを削除して重みを算出する。このことにより、重みファイルの容量を小さくすることができるため、第一の実施例に比べ小容量の磁気ディスク装置を用いることができる。また、レリバンス・フィードバック時に選択文書から抽出するn-gramは同一文字種のもののみに限定するため、文書の類似度算出の処理に用いるn-gramの種類数を削減することができる。このため、第一の実施例に比べ高速なレリバンス・フィードバックを実現することが可能となる。
【0120】
以上により、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、n-gramの種類数が限定されるため、類似度算出のための処理を減らすことができ、高速なレリバンス・フィードバックを実現することがが可能となる。
【0121】
次に、本発明の第三の実施例について説明する。本実施例は、前回のレリバンス・ランキングやレリバンス・フィードバックで算出された文書の類似度を記憶しておく。レリバンス・フィードバックを行う際には、記憶しておいた類似度が予め定められたしきい値以上である文書に対してのみ類似度を算出する。ことにより、ユーザが欲する文書と関連が薄い文書に対する類似度算出処理を省くことができる。この方法によれば、レリバンス・フィードバックにおける類似度算出処理をさらに高速に実現できることになる。
【0122】
本実施例は、基本的に第一の実施例(図1)と同様の構成をとる。しかし、主メモリ111に、前回得点記憶部を確保するところと、検索制御プログラム119の制御下のレリバンス・フィードバックプログラム123が異なる。本発明を適用した文書検索システムのうち、主メモリ111の構成を図27に示す。本図に示すように本実施例では、主メモリ111に前回記憶部2702が確保される。また、検索制御プログラム119aは、検索条件式解析プログラム120、インデックス検索プログラム121、レリバンス・ランキングプログラム122、レリバンス・フィードバックプログラム123aおよびソートプログラム128を制御する。レリバンス・フィードバックプログラム123aは、ファイル読込みプログラム124、検索対象文書抽出プログラム2700、n-gram抽出プログラム125、出現頻度取得プログラム126、フィードバック得点算出プログラム127および得点記憶プログラム2701で構成される。
【0123】
以下、本実施例における処理手順のうち、第一の実施例と異なるレリバンス・フィードバックプログラム123aの処理手順について図28を用いて説明する。本図は、第一の実施例で示した図16とステップ2800およびステップ2801が異なる。
【0124】
レリバンス・フィードバックプログラム123aは、図28に示すように、まずステップ1600において、ファイル読込みプログラム124を起動し、重みファイル105および出現頻度ファイル106をワークエリア129に読み込む。次に、ステップ2800において、検索対象文書抽出プログラム2700を起動し、前回得点記憶部2702に記憶されている前回の類似度が予め定められたしきい値以上である文書の集合を検索対象文書集合とする。次に、ステップ1601でn-gram抽出プログラム125を起動し、検索条件式解析プログラム120によって検索条件式から抽出された選択文書から重みが所定の基準を満たすn-gramを抽出する。次に、ステップ1602において、出現頻度取得プログラム126を起動し、n-gram抽出プログラム125によって抽出されたn-gramの検索対象文書中の出現頻度を出現頻度ファイル106から得る。そして、ステップ1603でフィードバック得点算出プログラム127を起動し、ファイル読込みプログラム124によって読み込まれたn-gramの重み、出現頻度取得プログラム126によって得られたn-gramの出現頻度を基にデータベース中の各文書の類似度を算出する。最後に、ステップ2801において、得点記憶プログラム2701を起動し、算出された類似度を前回得点記憶部2702に記憶する。以上が本発明の文書検索方法を適用した第三の実施例の概略である。
【0125】
以下、図28に示した本実施例におけるレリバンス・フィードバックプログラム123aの処理手順のうち、第一の実施例と異なる部分について具体的に説明する。
【0126】
まず、図28のステップ2800において、起動される検索対象文書抽出プログラム2700の処理について、図29の例を用いて説明する。検索対象文書抽出プログラム2700は、前回得点記憶部2702に記憶されている前回の類似度が予め定められたしきい値以上である文書の集合を検索対象文書集合とする。各文書の前回の類似度は、前回得点記憶部2702に図29に示すような形式で記憶されている。この前回得点記憶部2702に記憶されている類似度が、予め定められたしきい値以上である文書番号を抽出し、その文書の集合を検索対象文書集合とする。図29では、「0.1」をしきい値とし、それ以上の類似度を持つ文書番号を抽出し、検索対象文書集合としている。例えば、文書2は類似度が「0.59」なので集合に含まれるが、文書1は類似度が「0.08」なので集合には含まれない。
【0127】
この結果、本図では文書2、文書3および文書4の集合が作成され、検索対象文書集合となる。ここで得られた検索対象文書に対し、図28のステップ1601〜ステップ1603で文書の類似度が算出される。例えば、文書2を選択文書とした場合には、第一の実施例で図19〜図21を用いて説明した中で文書1以外に対して行った類似度算出処理と同様の処理が行われる。この結果、文書2の類似度「1.000」、文書3の類似度「0.249」、文書4の類似度「−0.910」が得られる。最後に、図28のステップ2801で得点記憶プログラム2701が起動され、算出された類似度を前回得点記憶部2702に記憶する。フィードバック得点算出プログラム127によって算出された文書2の類似度「1.000」、文書3の類似度「0.249」、文書4の類似度「−0.910」を前回得点記憶部2702に格納した例を図30に示す。ここで、文書1は類似度が算出されていないため記憶されていない。
【0128】
以上説明したように、本実施例では、前回のレリバンス・ランキングやレリバンス・フィードバックで算出された文書の類似度を記憶しておき、レリバンス・フィードバックを行う際には,記憶してある前回類似度が予め定められたしきい値以上である文書に対してのみ類似度を算出する。このことにより、類似度算出対象文書が削減できるため、高速なレリバンス・フィードバックが実現できる。
【0129】
以上の構成により、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、類似度算出対象文書が削減される。このため、類似度算出の処理を軽減することができ、高速なレリバンス・フィードバックが可能となる。
【0130】
次に、本発明の第四の実施例について説明する。本実施例で示す文書検索方法では、前回のレリバンス・ランキングやレリバンス・フィードバックで算出された各文書の類似度を記憶しておく。レリバンス・フィードバックを行う際には、算出した類似度を0から1の間に正規化して修正率とし、その類似度を選択文書が最高類似度になるまで前回の類似度に乗ずる。このことにより、前回までのレリバンス・ランキングやレリバンス・フィードバックの結果を今回のレリバンス・フィードバックに反映する。本方法によれば、n-gram単位にレリバンス・フィードバックを行うことによるノイズを削減することが可能となる。
【0131】
本実施例は、基本的に第三の実施例(図27)と同様の構成をとる。しかし、検索制御プログラム119aの制御下のレリバンス・フィードバックプログラム123aが異なる。本発明を適用した文書検索システムのうち、レリバンス・フィードバックプログラム123bの構成を図31に示す。本図に示すように、レリバンス・フィードバックプログラム123bは、ファイル読込みプログラム124、n-gram抽出プログラム125、出現頻度取得プログラム126、フィードバック得点算出プログラム127、得点修正プログラム3100および得点記憶プログラム2701で構成される。
【0132】
以下、本実施例における処理手順のうち、第三の実施例と異なるレリバンス・フィードバックプログラム123bの処理手順について、図32を用いて説明する。本図は、第三の実施例で示した図28からステップ2800を削除し、ステップ3200を追加したものである。
【0133】
レリバンス・フィードバックプログラム123bは、図32に示すように、まずステップ1600でファイル読込みプログラム124を起動し、重みファイル105および出現頻度ファイル106をワークエリア129に読み込む。次に、ステップ1601でn-gram抽出プログラム125を起動し、検索条件式解析プログラム120によって検索条件式から抽出された選択文書から重みが所定の基準を満たすn-gramを抽出する。次に、ステップ1602において、出現頻度取得プログラム126を起動し、n-gram抽出プログラム125によって抽出されたn-gramの検索対象文書中の出現頻度を出現頻度ファイル106から得る。そして、ステップ1603において、ィードバック得点算出プログラム127を起動し、ファイル読込みプログラム124によって読み込まれたn-gramの重み、出現頻度取得プログラム126によって得られたn-gramの出現頻度を基にデータベース中の各文書の類似度を算出する。次に、ステップ3200で得点修正プログラム3100を起動し、算出された類似度と前回得点記憶部2702に記憶されている前回の類似度を用いて新たな類似度を算出する。最後に、ステップ2801で得点記憶プログラム2701を起動し、算出された類似度を前回得点記憶部2702に記憶する。
【0134】
以下、図32に示したレリバンス・フィードバックプログラム123bの処理手順のうち、ステップ3200で起動される得点修正プログラム3100の処理内容について、図33のPAD図を用いて説明する。
【0135】
得点修正プログラム3100は、レリバンス・フィードバックプログラム123bによって、フィードバック得点算出プログラム127の次に起動される。得点修正プログラム3100は、ステップ3300でフィードバック得点算出プログラム127によって算出された文書の類似度を正規化(例えば、最高類似度を1として0から1の間に)し、この値を修正率とする。次に、ステップ3302において、前回得点記憶部2702に記憶されている前回の類似度に上記修正率を乗じる。そして、ステップ3301で選択文書の類似度が最も高くなるまで、ステップ3302を繰り返す。以上が本発明の文書検索方法を適用した第四の実施例の概略である。
【0136】
以下、図33に示した本実施例における得点修正プログラム3100の処理手順について、図34に示す例を用いて具体的に説明する。図34の例では、文書4を選択文書としている。
【0137】
得点修正プログラム3100は、レリバンス・フィードバックプログラム123bによって、フィードバック得点算出プログラム127の次に起動される。フィードバック得点算出プログラム127では、文書の類似度3400が算出される。文書の類似度3400としては、文書1(25点)、文書2(18点)、文書3(29点)および文書4(54点)などがある。図33で、得点修正プログラム3100は、ステップ3300でフィードバック得点算出プログラム127によって算出された文書の類似度を正規化(例えば、最高類似度を1として0から1の間に)し、これを修正率とする。図34の例では、文書4が54点で最高類似度であるので、この54点で各文書の類似度3400を正規化し、修正率を得る。この結果、文書1(0.46)、文書2(0.33)、文書3(0.54)および文書4(1.00)という修正率3401が得られる。次に、ステップ3302において、前回得点記憶部2702に格納されている前回の類似度に修正率を乗じる。このことにより、ステップ3301で選択文書の類似度が最も高くなるまで、ステップ3302を繰り返す。
【0138】
図34の例では、前回得点記憶部2702に、文書1(0.08点)、文書2(0.59点)、文書3(0.87点)および文書4(0.32点)という前回の類似度が格納されている。まず、1回目のステップ3302で、これらの類似度に修正率が掛けられる。例えば、文書1では、類似度0.08に修正率0.46が掛けられ、0.04という類似度が得られる。この結果、文書1(0.04点)、文書2(0.19点)、文書3(0.47点)および文書4(0.32点)という新たな類似度3402が得られる。
【0139】
しかし、この1回目のステップ3302が終了した時点では、選択文書である文書4(0.32点)は最も高い類似度になっていないので、もう一度ステップ3302を繰り返す。この結果、文書1(0.02点)、文書2(0.06点)、文書3(0.25点)および文書4(0.32点)という新たな類似度3403が得られる。この結果、文書4(0.32点)が最高類似度となっているため、ここでステップ3301のループ処理を終了する。
【0140】
図34に示した例で、本得点修正プログラム3100の処理を行なわずにレリバンス・フィードバックを行なうと文書4、文書3、文書1、文書2という順で出力される。すなわち、文書2「新しいソフトウェアの開発作業」より文書1「新開発の心電計による発作時の心電図」の方が、選択文書である文書4「ソフトの新製品の新聞発表」と関連が深いと判断される。なお、、本プログラムを実行することによって前回の選択文書との関連が低かった文書1の類似度を低くすることができる。
【0141】
以上説明したように、本実施例では、前回のレリバンス・ランキングやレリバンス・フィードバックで算出された各文書の類似度を記憶しておく。レリバンス・フィードバックを行う際には、算出した類似度を0から1の間に正規化し、選択文書が最高類似度になるまでその値を記憶してある前回の類似度に乗ずる。このことにより、ユーザが選択する一連の文書群と関連のない文書の類似度を下げることができ、結果としてユーザが希望するより関連の深い文書から表示を行うことが可能となる。
【0142】
以上により、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、前回までのレリバンス・ランキングやレリバンス・フィードバックで得た情報も類似度の算出に用いることにより、n-gramを算出単位とすることによるノイズを削減できる。また、より関連の深い文書から適切にランキングを行うことが可能となる。
【0143】
最後に、本発明の第五の実施例について説明する。本実施例の文書検索方法は、レリバンス・フィードバックにおいて、各文書の類似度を算出する際に、前回までの選択文書(すなわち、ユーザニーズと関連の高い一連の文書群)の類似度を高くすることによって、相対的に選択文書との関連の低い文書の類似度を下げる方法である。本方法によれば、n-gram単位にレリバンス・フィードバックを行うことによるノイズを削減することができる。また、第四の実施例と組み合わせることにより、さらにノイズを削減することができる。
【0144】
本実施例は、基本的に第一の実施例(図1)と同様の構成をとる。しかし、主メモリ111に選択フラグ格納部を確保するところと、検索制御プログラム119の制御下のレリバンス・フィードバックプログラム123が異なる。本発明を適用した文書検索システムのうち、主メモリ111の構成を図35に示す。本図に示すように本実施例では、主メモリ111に選択フラグ格納部3501が確保される。また、検索制御プログラム119bは検索条件式解析プログラム120、インデックス検索プログラム121、レリバンス・ランキングプログラム122、レリバンス・フィードバックプログラム123cおよびソートプログラム128を制御する。レリバンス・フィードバックプログラム123cはファイル読込みプログラム124、n-gram抽出プログラム125、出現頻度取得プログラム126、フィードバック得点算出プログラム127および選択フラグ修正プログラム3500で構成される。
【0145】
以下、本実施例における処理手順のうち、第一の実施例と異なるレリバンス・フィードバックプログラム123cの処理手順について図36を用いて説明する。本図は、第一の実施例で示した図16とステップ3600が異なる。
【0146】
レリバンス・フィードバックプログラム123cは図36に示すように、まずステップ1600でファイル読込みプログラム124を起動する。そして、重みファイル105および出現頻度ファイル106をワークエリア129に読み込む。次に、ステップ1601でn-gram抽出プログラム125を起動し、検索条件式解析プログラム120によって検索条件式から抽出された選択文書から重みが所定の基準を満たすn-gramを抽出する。次に、ステップ1602において、出現頻度取得プログラム126を起動し、n-gram抽出プログラム125によって抽出されたn-gramの検索対象文書中の出現頻度を出現頻度ファイル106から得る。そして、ステップ1603でフィードバック得点算出プログラム127を起動し、ファイル読込みプログラム124によって読み込まれたn-gramの重み、出現頻度取得プログラム126によって得られたn-gramの出現頻度を基にデータベース中の各文書の類似度を算出する。最後に、ステップ3600で選択フラグ修正プログラム3500を起動し、選択フラグ格納部3501にフラグが設定されている文書の類似度を予め定められた割合で高くする。以上が本発明の文書検索方法を適用した第五の実施例の概略である。
【0147】
以下、図36のステップ3600で実行される選択フラグ修正プログラム3500の処理手順について、図37を用いて具体的に説明する。本図の例では、文書4が選択文書ととなっており、前回までのレリバンス・フィードバックで文書2が選択されているものとする。
【0148】
選択フラグ修正プログラム3500は、レリバンス・フィードバックプログラム121cによって、フィードバック得点算出プログラム127の次に起動される。フィードバック得点算出プログラム127では、文書の類似度3400が算出される。文書の類似度3400としては、例えば文書1(25点)、文書2(18点)、文書3(29点)および文書4(54点)というようなものがある。得点修正プログラム3500は、フィードバック得点算出プログラム127によって算出された文書の類似度の中で、選択フラグ格納部3501にフラグが設定されている文書の類似度を予め定められた割合で高くする。図37に、選択フラグ格納部3501の例を示す。前回までのレリバンス・フィードバックで文書2が選択されているため、文書2に対する選択フラグはONに設定され、それ以外の文書に対する選択フラグはOFFになっている。選択フラグ修正プログラム3500では、選択フラグが設定されている文書2の類似度を高くする。本例では、元の類似度の1.5倍に類似度を修正している。この結果、文書2の類似度は1.5倍され、27点となる。次に、現在選択されている文書のフラグを選択フラグ格納部3501に設定する。図37では、選択フラグ格納部3501aのように、選択文書である文書4の選択フラグがONに設定される。
【0149】
図37に示した例で、本プログラムの処理を行なわずにレリバンス・フィードバックを行なうと文書4、文書3、文書1、文書2という順で出力される。すなわち、文書2「新しいソフトウェアの開発作業」より文書1「新開発の心電計による発作時の心電図」の方が、選択文書である文書4「ソフトの新製品の新聞発表」と関連が深いと判断される。しかし、本プログラムを実行することによって、ユーザが今までに選択した一連の文書群の類似度を高くし、相対的に文書1のような関連の低い文書の類似度を下げることが可能となる。
【0150】
以上説明したように、本実施例では、レリバンス・フィードバック時に、選択文書として選ばれた文書に印を付けておく。類似度を算出する際に、印の付けられた文書(すなわち、ユーザが指定するユーザニーズと関連の高い一連の文書群)の類似度を高くすることによって、相対的に選択文書との関連の低い文書の類似度を下げることができる。このため、より関連の深い文書から順に表示することが可能となる。
【0151】
以上の構成により、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、前回までのレリバンス・ランキングやレリバンス・フィードバックで得た情報も類似度の算出に利用することにより、n-gramを算出単位とすることによるノイズを削減できる。また、適切なランキング処理を実現することが可能となる。
【0152】
【発明の効果】
本発明によれば、n-gram単位にレリバンス・フィードバックを行なう場合でも、類似度算出に用いるn-gramの種類数や類似度を算出する文書数を限定できる。このため、類似度算出のための処理を軽減することができ、高速なレリバンス・フィードバックを実現することが可能となる。また、レリバンス・フィードバック時に、前回のレリバンス・ランキングやレリバンス・フィードバックの情報も類似度算出に利用することにより、特定の選択文書に対してはノイズとなる文書の類似度を低くすることができる。このため、n-gramを算出単位とすることによるノイズを削減でき、より適切なランキング結果を得ることが可能となる。この結果、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、高速で低ノイズのレリバンス・フィードバックが行える文書検索システムを提供することが可能となる。
【図面の簡単な説明】
【図1】本発明の第一の実施例の構成を示す図。
【図2】従来技術の説明図。
【図3】従来技術の説明図。
【図4】従来技術の説明図。
【図5】出現頻度ファイルの説明図。
【図6】重みファイルの説明図。
【図7】本発明の作用の説明図。
【図8】第一の実施例のシステム制御プログラム112の処理手順を示すPAD図。
【図9】第一の実施例の文書制御プログラム113の処理手順を示すPAD図。
【図10】第一の実施例の検索制御プログラム119の処理手順を示すPAD図。
【図11】第一の実施例のインデックス作成登録プログラム115の処理手順を示すPAD図。
【図12】第一の実施例の重みファイル作成登録プログラム116の処理手順を示すPAD図。
【図13】第一の実施例の検索条件式解析プログラム120の処理手順を示すPAD図。
【図14】第一の実施例のインデックス検索プログラム121の処理手順を示すPAD図。
【図15】第一の実施例のレリバンス・ランキングプログラム122の処理手順を示すPAD図。
【図16】第一の実施例のレリバンス・フィードバックプログラム123の処理手順を示すPAD図。
【図17】出現頻度算出処理の説明図。
【図18】重み算出処理の説明図。
【図19】 n-gram抽出処理の説明図。
【図20】データベース中の各文献におけるn-gramの出現頻度取得処理の説明図。
【図21】各文献の類似度算出処理の説明図。
【図22】第二の実施例の文書登録制御プログラム113aの制御下にあるプログラムの構成を示す図。
【図23】第二の実施例の文字種分割出現頻度ファイル型インデックス作成登録プログラム2200の処理手順を示すPAD図。
【図24】第二の実施例の出現頻度算出処理の説明図。
【図25】第二の実施例の出現頻度ファイルの説明図。
【図26】第二の実施例の重みファイルの説明図。
【図27】第三の実施例の構成を示す図。
【図28】第三の実施例のレリバンス・フィードバックプログラム123aの処理手順を示すPAD図。
【図29】第三の実施例の検索対象文書抽出プログラム2700の説明図。
【図30】第三の実施例の前回得点記憶部2702の説明図。
【図31】第四の実施例のレリバンス・フィードバックプログラム123bの構成を示す図。
【図32】第四の実施例のレリバンス・フィードバックプログラム123bの処理手順を示すPAD図。
【図33】第四の実施例の得点修正プログラム3100の処理手順を示すPAD図。
【図34】第四の実施例の得点修正プログラム3100の処理手順の説明図。
【図35】第五の実施例の構成を示す図。
【図36】第五の実施例のレリバンス・フィードバックプログラム123cの処理手順を示すPAD図。
【図37】第五の実施例の選択フラグ修正プログラム3500の処理手順の説明図。
【符号の説明】
100…ディスプレイ、101…キーボード、102…CPU、103…テキスト、104…インデックス、105…重みファイル、106…出現頻度ファイル、107…磁気ディスク装置、108…FDD、109…フロッピディスク、110…バス、111…主メモリ、112…システム制御プログラム、113…文書登録制御プログラム、114…テキスト登録プログラム、115…インデックス作成登録プログラム、116…重みファイル作成登録プログラム、117…重み算出プログラム、118…重みファイル作成プログラム、119…検索制御プログラム、120…検索条件式解析プログラム、121…インデックス検索プログラム、122…レリバンス・ランキングプログラム、123…レリバンス・フィードバックプログラム、124…ファイル読込みプログラム、125…n-gram抽出プログラム、126…出現頻度取得プログラム、127…フィードバック得点算出プログラム、128…ソートプログラム、129…ワークエリア、
Claims (5)
- 処理装置に接続された磁気ディスク装置に格納された文書を前記処理装置において検索する文書検索方法は、
前記処理装置が、前記磁気ディスク装置に格納された文書の集合から文書中の出現位置が1文字づつ異なる長さnの固定長の文字列である複数のn−gramを抽出し、前記n−gramの前記文書集合の文書における出現頻度に基づいて前記n−gramの重要度を算出し、
前記処理装置が、前記処理装置に接続された入力装置から入力された検索条件文書から所定の値以上の前記重要度を持つn−gramを少なくとも一つ抽出し、前記抽出したn−gramの前記検索条件文書における出現頻度を算出し、
前記処理装置が、前記抽出したn−gramに対して前記算出した重要度と前記算出した出現頻度とに基づいて、前記検索条件文書に対する前記文書集合中の文書の類似度を算出することを特徴とする文書検索方法。 - 前記処理装置が、前記文書集合から前記n−gramを抽出した後で、前記少なくとも一つのn−gramの中から異なる文字種にまたがるn−gramを削除することを特徴とする請求項1記載の文書検索方法。
- 前記処理装置が、前記類似度の算出の際に、前回算出された類似度が所定の基準を満たす文書を類似度算出の対象として前記文書集合から検索することを特徴とする請求項1記載の文書検索方法。
- 前記処理装置が、前記重要度と前記出現頻度から算出した前記類似度を、前回算出された類似度によって補正することを特徴とする請求項1記載の文書検索方法。
- 前記処理装置が、前記類似度の算出の際に、前回までに検索条件文書として用いられたことのある文書に対する前記類似度を所定の計算式によって補正することを特徴とする請求項1記載の文書検索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31032595A JP3674119B2 (ja) | 1995-11-29 | 1995-11-29 | 類似文書検索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31032595A JP3674119B2 (ja) | 1995-11-29 | 1995-11-29 | 類似文書検索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09153051A JPH09153051A (ja) | 1997-06-10 |
JP3674119B2 true JP3674119B2 (ja) | 2005-07-20 |
Family
ID=18003882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31032595A Expired - Fee Related JP3674119B2 (ja) | 1995-11-29 | 1995-11-29 | 類似文書検索方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3674119B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11143902A (ja) * | 1997-11-11 | 1999-05-28 | Hitachi Ltd | n−gramを用いた類似文書検索方法 |
JPH11154164A (ja) * | 1997-11-21 | 1999-06-08 | Hitachi Ltd | 全文検索処理における適合度算出方法および該方法に係るプログラムを格納した記憶媒体 |
JP3915267B2 (ja) | 1998-09-07 | 2007-05-16 | 富士ゼロックス株式会社 | 文書検索装置および文書検索方法 |
JP3861529B2 (ja) * | 1999-10-20 | 2006-12-20 | 株式会社日立製作所 | 文書検索方法 |
US9092523B2 (en) | 2005-02-28 | 2015-07-28 | Search Engine Technologies, Llc | Methods of and systems for searching by incorporating user-entered information |
KR101374651B1 (ko) | 2005-03-18 | 2014-03-17 | 써치 엔진 테크놀로지스, 엘엘씨 | 서치 결과를 향상시키기 위해 사용자로부터의 피드백을 적용하는 서치 엔진 |
JP2008077543A (ja) * | 2006-09-25 | 2008-04-03 | Fujitsu Ltd | レポート引用元情報取得装置、レポート引用元情報取得方法及びレポート引用元情報取得プログラム |
JP4979070B2 (ja) * | 2007-03-28 | 2012-07-18 | Kddi株式会社 | 動画像提示システム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH064584A (ja) * | 1992-06-24 | 1994-01-14 | Sharp Corp | 文章検索装置 |
GB9220404D0 (en) * | 1992-08-20 | 1992-11-11 | Nat Security Agency | Method of identifying,retrieving and sorting documents |
JP3398729B2 (ja) * | 1994-02-18 | 2003-04-21 | 富士通株式会社 | キーワード自動抽出装置およびキーワード自動抽出方法 |
-
1995
- 1995-11-29 JP JP31032595A patent/JP3674119B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09153051A (ja) | 1997-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3696745B2 (ja) | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP5740029B2 (ja) | 対話型サーチクエリーを改良するためのシステム及び方法 | |
US6993517B2 (en) | Information retrieval system for documents | |
US7519590B2 (en) | Method and system for performing phrase/word clustering and cluster merging | |
KR100451978B1 (ko) | 정보 검색 방법과 정보 검색 장치 | |
US20090144249A1 (en) | Method and system for retrieving information based on meaningful core word | |
JP2001524717A (ja) | 情報管理及び検索 | |
JPH09101990A (ja) | 情報フィルタリング装置 | |
US6549898B1 (en) | Method of and an apparatus for retrieving and delivering documents and a recording media on which a program for retrieving and delivering documents are stored | |
CN111428494A (zh) | 专有名词的智能纠错方法、装置、设备及存储介质 | |
US20180246896A1 (en) | Corpus Specific Generative Query Completion Assistant | |
US10102199B2 (en) | Corpus specific natural language query completion assistant | |
JP3674119B2 (ja) | 類似文書検索方法 | |
JP2000200281A (ja) | 情報検索装置および情報検索方法ならびに情報検索プログラムを記録した記録媒体 | |
Kosinov | Evaluation of N-grams Conflation Approach in Text-Based Information Retrieval. | |
JP5418138B2 (ja) | 文書検索システム、情報処理装置およびプログラム | |
JP4230710B2 (ja) | 検索装置、検索方法、ならびに、プログラム | |
JPH064584A (ja) | 文章検索装置 | |
JPH1145268A (ja) | 文書検索装置およびその装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JPH11143902A (ja) | n−gramを用いた類似文書検索方法 | |
JP3081093B2 (ja) | 索引作成方法およびその装置と文書検索装置 | |
JP3715413B2 (ja) | 類似文書検索装置および類似文書検索方法 | |
JP4567025B2 (ja) | テキスト分類装置、テキスト分類方法及びテキスト分類プログラム並びにそのプログラムを記録した記録媒体 | |
JPH06348757A (ja) | 文書検索装置および方法 | |
JP2002132789A (ja) | 文書検索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040831 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041022 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041207 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041228 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050314 |
|
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: 20050405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050418 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080513 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090513 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100513 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110513 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110513 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120513 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120513 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130513 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130513 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |