(57)【特許請求の範囲】
【請求項１】
処理装置に接続された磁気ディスク装置に格納された文書を前記処理装置において検索する文書検索方法は、
前記処理装置が、前記磁気ディスク装置に格納された文書の集合から文書中の出現位置が１文字づつ異なる長さｎの固定長の文字列である複数のｎ−ｇｒａｍを抽出し、前記ｎ−ｇｒａｍの前記文書集合の文書における出現頻度に基づいて前記ｎ−ｇｒａｍの重要度を算出し、
前記処理装置が、前記処理装置に接続された入力装置から入力された検索条件文書から所定の値以上の前記重要度を持つｎ−ｇｒａｍを少なくとも一つ抽出し、前記抽出したｎ−ｇｒａｍの前記検索条件文書における出現頻度を算出し、
前記処理装置が、前記抽出したｎ−ｇｒａｍに対して前記算出した重要度と前記算出した出現頻度とに基づいて、前記検索条件文書に対する前記文書集合中の文書の類似度を算出することを特徴とする文書検索方法。
【請求項２】
前記処理装置が、前記文書集合から前記ｎ−ｇｒａｍを抽出した後で、前記少なくとも一つのｎ−ｇｒａｍの中から異なる文字種にまたがるｎ−ｇｒａｍを削除することを特徴とする請求項１記載の文書検索方法。
【請求項３】
前記処理装置が、前記類似度の算出の際に、前回算出された類似度が所定の基準を満たす文書を類似度算出の対象として前記文書集合から検索することを特徴とする請求項１記載の文書検索方法。
【請求項４】
前記処理装置が、前記重要度と前記出現頻度から算出した前記類似度を、前回算出された類似度によって補正することを特徴とする請求項１記載の文書検索方法。
【請求項５】
前記処理装置が、前記類似度の算出の際に、前回までに検索条件文書として用いられたことのある文書に対する前記類似度を所定の計算式によって補正することを特徴とする請求項１記載の文書検索方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、大規模文書データベースを対象に検索を行い、検索結果を検索条件に関連の深い順に整列して出力する文書検索システムに係る。特に、ユーザが検索結果の中から必要な文書を選択することによってその文書に関連の深い順に文書を並べ直すことができる類似文書検索方法に関する。このとき特に、大規模文書データベース中の文書は、日本語、中国語などのように分かち書きされていないものに向いている。
【０００２】
【従来の技術】
近年、ワードプロセッサ等により作成される電子化文書は増大しており、今後も増大していくことが見込まれる。このため、文書検索の対象となるデータベースも大規模になってきている。その結果、文書検索によって得られる検索結果としての文書集合も大型化する。それゆえ、この集合の中からユーザが、本当に欲しい文書を探し出すことが非常に困難になってきている。
【０００３】
この問題を解決するため、従来よりRelevance Ranking（レリバンス・ランキング）ならびにRelevance Feedback（レリバンス・フィードバック）と呼ばれる技術が提案されている。
【０００４】
レリバンス・ランキングについては、「Ranking Algorithms」（Donna Harman著，Information Retrieval，p.３６３−３９２）に具体的に記載されている。以下、これを従来技術１と呼ぶ。従来技術１は、ユーザが指定した検索条件（単一もしくは複数の単語の列）に関連の深い順にデータベース中の文書を並べるというものである。以下、図２を用いてその内容を説明する。
【０００５】
検索は、簡単なベクトル演算によって実現される。このベクトルの要素は、データベース中に出現する全ての単語を重複削除したもの（但し，ストップワード等は除く）である。図２の例では、（factors，information，help，human，operation，retrieval，systems）が要素となっている。検索条件式にその要素が存在すれば「１」を、存在しなければ「０」を該当位置に立てる。このことによって、検索条件式のベクトルＱ０が作成される。すなわち、「human factors in information retrieval systems」という検索条件式に対し、（１，１，０，１，０，１，１）というベクトルＱ０が作成される。
【０００６】
データベース中の文書に対しても同様に文書のベクトルが作成される。各要素である「human」「factors」「information」「retrieval」が含まれる文書１に対し、ベクトルV1（１，１，０，１，０，１，０）が作成される。また、「human」「factors」「help」「systems」が含まれる文書２に対し、ベクトルV2（１，０，１，１，０，０，１）が、作成される。さらに、「factors」「operation」「systems」を含む文書３に対し、ベクトルV3（１，０，０，０，１，０，１）が作成される。
【０００７】
ここで、ランキングに用いられる得点は、検索条件式のベクトルQ0と文書のベクトルViとのベクトル積Vi・Q0をとることによって算出される。その結果、文書１が４点、文書２が３点、文書３が２点となる。これらの文書を得点の高い順に並べることによって、レリバンス・ランキングが実現される。つまり、関連の高い文書から並べることができる。
【０００８】
なお、文書のベクトルについては、ベクトルの要素を「１」「０」ではなく、単語の出現頻度で表現することも可能である。例えば、文書１には、「human」が５個、「factors」が２個、「information」が３個、「retrieval」が３個含まれるとする。この文書１に対し、ベクトルV'1（２，３，０，５，０，３，０）が作成される。また、文書２には、「human」が５個、「factors」が２個、「help」が４個、「systems」が１個含まれるとする。この文書２に対し、ベクトルV'2（２，０，４，５，０，０，１）が作成される。また、「factors」が２個、「operation」が２個、「systems」が１個含まれるとする。この文書３に対し、ベクトルV'3（２，０，０，０，２，０，１）が作成される。
【０００９】
これらのベクトルV'iと検索条件式のベクトルQ0とのベクトル積V'i・Q0をとることによって、各文書の得点が算出される。その結果、文書１が１３点、文書２が８点、文書３が３点となる。この点に従って文書を降順に並べることによって、レリバンス・ランキングが実現される。つまり、文書１が最も関連が深く、文書３が最も関連がない、との結果を得る。
【００１０】
レリバンス・フィードバックについては、「Relevance Feedback and Other Query Modification Techniques」（Donna Harman著，Information Retrieval，p.２４１−２６３）に記載されている。以下、これを従来技術２と呼ぶ。これは、所定の観点でランキングされた文書の集合から適切な（もしくは不適切な）文書を、ユーザが指定することによって、その文書に関連の深い（もしくは関連のない）順にデータベース中の文書を並べ直すというものである。これは、所定の観点で行われたランキングに用いた検索条件のベクトルをユーザが指定した文書に基づいて修正する。さらに、この修正したベクトルを用いてランキングをし直すことによって実現される。修正後のベクトルを算出する最も単純な式は、以下の（数１）で表される。
【００１１】
【数１】
0003674119.tif 000002
【００１２】
ここで、Q0は、前回のランキングに用いた検索条件式のベクトルである。Q1は、修正後の検索条件式のベクトルである。Riは、適切な文書iのベクトルである。Siは、不適切な文書iのベクトルである。n1は、適切な文書の数である。n2は、不適切な文書の数である。
【００１３】
従来技術１や従来技術２のような方法を用いるには、データベース中の単語のイン
デックスを作成し、なおかつそれを検索に用いる単語インデックス方式を採用する必要がある。しかし、分かち書きのされていない日本語のような文書に対し，単語インデックス方式を用いると次のような問題が生じる。
【００１４】
（１）単語を抽出するために、文字種分割（文字種が変化したところで文字列を分割）や形態素解析等を用いる必要がある。このため、単語の抽出の仕方によっては検索できない単語が発生する。例えば、「開発作業」だけを単語として抽出した場合には「開発」では検索ができないことになる。
【００１５】
（２）また、検索漏れが生じる場合もある。例えば、文書１に「開発作業」というインデックスが、文書２に「開発」というインデックスが付与されているとする。「開発」が検索タームとして指定された場合、文書２は探し出すことができるが、文書１は探し出すことができない。このため、検索漏れが生じる。これらの問題は、単語を接続して新たな単語が作られる独語などにもある。
【００１６】
以上のような問題を解決するものとして、特開昭６４−３５６２７号公報（以下、従来技術３と呼ぶ）がある。この従来技術３は、分かち書きのされていない日本語のような文書に対しての問題を解決するものである。従来技術３は、n文字が連続する文字列（以下、n-gramと呼ぶ）のインデックスを用いて検索を行うn-gramインデックス方式である。本方式を用いれば、単語を意識することなく登録および検索を行うことが可能となる。従来技術３は、文書の登録時に、データベースへ登録する文書のテキストデータからn-gram（従来技術３では、文字連鎖と呼んでいる）とそのn-gramのテキスト中における出現位置をインデックスとして磁気ディスク装置に格納しておく。検索時には指定された検索文字列（以下、検索タームと呼ぶ）中に存在するn-gramを抽出する。抽出されたn-gramに対応するインデックスを上記磁気ディスク装置から読み込み、インデックス中のn-gramの出現位置を比較する。比較の結果、検索タームから抽出したn-gramの位置関係とインデックス中のn-gramの位置関係が、等しいかどうかを判定する。このことによって、指定された検索タームが出現する文書を高速に探し出す方式が開示されている。
【００１７】
以下、この従来技術３について図３を用いて具体的にその内容を説明する。本図では、説明の都合上、インデックスに出現位置のみを格納した場合を示す。実際には文書番号と出現位置を格納し文書検索に用いてもよい。また、本図ではn-gramのnの値を３と想定している。
【００１８】
まず、文書の登録時にデータベースに登録するテキスト３０１がインデックス作成部３０２に読み込まれ、n-gramインデックス３００が作成される。このn-gramインデックス３００には、テキスト３０１に出現する全ての3-gramとテキスト３０１におけるその3-gramの出現位置が格納される。例えば、本図に示すテキスト３０１では、「abc」という3-gramはテキスト３０１の２文字目、９文字目、・・・に現われる。したがって、n-gramインデックス３００には3-gram「abc」とこれに対応した形で出現位置｛２，９，・・・｝が格納される。
【００１９】
検索時には、まず、検索タームがn-gram抽出部３０３に入力され、検索ターム中に存在する全てのn-gramとそのn-gramの検索タームにおける出現位置が抽出される。次に、抽出されたn-gramとこれに対応するn-gramの検索タームにおける出現位置が、インデックス検索部３０４に入力される。インデックス検索部３０４では、検索タームから抽出されたn-gramに対応するインデックスがn-gramインデックス３００から読み込まれる。そして、これらのインデックスの中から検索ターム中の位置関係と同じ出現位置を持つものが抽出され、検索結果として出力される。本図の例では、検索タームとして「abcd」が入力された場合、まずn-gram抽出部３０３において、「n-gram「abc」，n-gram位置「１」」と「n-gram「bcd」，n-gram位置「２」」が抽出される。ここで、n-gram位置「１」は、検索タームの先頭、n-gram位置「２」は、その次の文字位置を示す。次に、インデックス検索部３０４において、n-gramインデックス３００からn-gram「abc」と「bcd」に対応するインデックスが読み込まれる。これらのインデックスにおける出現位置が、n-gram位置「１」とn-gram位置「２」のように連続するもの（すなわち隣接するもの）が、抽出され検索結果として出力される。実際には，文書番号もインデックスに格納されており、文書番号が一致していることも判定される。その結果、文書番号が一致し、出現位置が検索ターム中の位置関係と同じであるものが抽出され、その文書番号が検索結果として出力される。
【００２０】
本図では、n-gram「abc」の出現位置「２」とn-gram「bcd」の出現位置「３」が隣接するため、n-gram「abcd」が文字列として存在することが分かる。このため、テキスト中に検索ターム「abcd」が、出現することが示される。しかし、n-gram「abc」の出現位置「２」とn-gram「bcd」の出現位置「１８」、n-gram「abc」の出現位置「９」とn-gram「bcd」の出現位置「３」、n-gram「abc」の出現位置「９」とn-gram「bcd」の出現位置「２０」は隣接していない。このため、この位置には検索ターム「abcd」が出現しないことがわかる。
【００２１】
このようなn-gramインデックス方式において、レリバンス・フィードバックを実現する方法が、「特開平６−１１０９４８号」（以下，従来技術４と呼ぶ）に開示されている。以下、図４を用いて、本従来技術によるレリバンス・フィードバックの手順を説明する。
【００２２】
（ステップ１）データベース中のそれぞれの文書から全てのn-gram（nはあらかじめ決められた１以上の整数）を抽出する。
【００２３】
（ステップ２）上記（ステップ１）で抽出されたn-gramを重複削除したn-gramに対し、その出現頻度を基に文書毎にウェートを割り当てる。
【００２４】
（ステップ３）データベース中の文書間の共通性を所定の計算式を用いて算出し、この値を各n-gramのウェートから差し引く。
【００２５】
（ステップ４）上記（ステップ３）で算出したウェートを用いて、ユーザが選択した文書とデータベース中の文書との間の得点を算出する。
【００２６】
（ステップ５）上記（ステップ４）で算出した得点の高い順に文書を出力する。
【００２７】
以下、文書１「新開発の心電計による発作時の心電図」、文書２「新しいソフトウェアの開発作業」、文書３「ソフト開発を支援するソフトウェア」が、登録されているデータベースを対象にn-gramのnの値を２とし、文書２をユーザが選択した場合を例に具体的に手順を説明する。まず、データベース中の文書１〜文書３からn-gramを抽出する。
【００２８】
【表１】
0003674119.tif 000003
【００２９】
表１に、文書１中に存在する2-gramを重複削除した2-gramを全て示す。次に、示された2-gramの各々に対し正規化出現頻度（本従来技術ではウェートと呼んでいる）を計算する。この正規化出現頻度は、各々の2-gramの出現頻度をその文書中にある2-gramの総数で割ることによって得られる。文書２および文書３に対しても、同様の処理が施され、表２および表３に示す正規化出現頻度が得られる。
【００３０】
【表２】
0003674119.tif 000004
【００３１】
【表３】
0003674119.tif 000005
【００３２】
その後、データベース中の文書間の共通性が除去される。ここでは、まず第１にデータベース中に存在する2-gramを重複削除した2-gramについて、その平均ウェート（本従来技術では共通性ウェートと呼んでいる）が算出される。平均ウェートは、各2-gramについて、データベース中の全文書の正規化出現頻度の合計を全文書の数で割ることによって算出される。
【００３３】
【表４】
0003674119.tif 000006
【００３４】
表４に、文書１、文書２および文書３の間の平均ウェートを示す。例えば、2-gram「新開」の平均ウェートは、(0.063+0.0+0.0)/3=0.021である。また、2-gram「開発」の平均ウェートは、(0.063+0.077+0.067)/3=0.069となる。2-gram「新開」は、文書２および文書３に出現していないので、正規化出現頻度はそれぞれ0.0となっている。平均ウェートは各n-gramの正規化出現頻度の平均値である。この値をn-gramの正規化出現頻度から差し引くことにより、データベース中の文書間の共通性を除去する。もし、あるn-gramが全ての文書に同じ割合で出現していれば、正規化出現頻度も平均ウェートも全て同じ値となる。また、共通性を除去した正規化出現頻度（以下、正規化ウェートと呼ぶ）は、「０」となる。つまり、ストップワードのようにどの文書にも同じように出現するn-gramに対しては、正規化出現頻度を限りなく「０」に近づけ、その影響を小さくすることができる。表５、表６および表７に文書１、文書２および文書３の正規化ウェートを示す。
【００３５】
【表５】
0003674119.tif 000007
【００３６】
【表６】
0003674119.tif 000008
【００３７】
【表７】
0003674119.tif 000009
【００３８】
以上のようにして得られた正規化ウェートを用いて、ユーザが選択した文書とデータベース中の全文書との類似性を得点（以下、類似度と呼ぶ）として表わす。類似度は、以下に示す数２によって算出される。
【００３９】
【数２】
0003674119.tif 000010
【００４０】
ここで、Uiは、選択文書のn-gram（i）の正規化ウェートを示し、Riは、データベース中の文書のn-gram（i）の正規化ウェートを示す。数２を用いて、選択文書である文書２とデータベース中の全ての文書との類似度を算出すると以下のようになる。文書１は、0.018、文書２は、1、文書３は、0.119である。最後に、得られた得点の降順に文書が出力される。この例では、文書２、文書３、文書１の順で出力されることになる。
【００４１】
このようにn-gram単位でレリバンス・フィードバックを行っているため、単語の識別を行う必要がなく、分かち書きのされていない日本語のような文書に対しても適用が可能となっている。
【００４２】
【発明が解決しようとする課題】
しかしながら、以上説明した従来技術４では、以下に示す問題が残されている。
【００４３】
（１）処理時間の問題
日本語の場合、n-gramの種類数が多いため、データベース中の全てのn-gramを対象にして得点の算出処理を行うと膨大な時間が掛かる。英語の場合、文字の種類が55種であり、2-gramの種類数はその二乗の3,025種となる。しかし、日本語は漢字第１水準だけでも1,024種も存在し、その組み合わせとなる2-gramの種類は1,048,576種にもおよぶ。さらに平仮名、片仮名等も含めると2-gramの種類は膨大な数になり、得点の算出に長大な時間を要する。
【００４４】
（２）ランキング・ノイズの問題
n-gramを単位としてレリバンス・フィードバックを行っているため、全く関係のない文書が上位にランキングされる可能性がある。従来技術４の説明を行ったときに用いた文書１、文書２および文書３から構成されるデータベースに文書４「ソフトの新製品の新聞発表」を加えたデータベースを例にこの問題を説明する。本例で文書２が、ユーザに選択されたとする。
【００４５】
【表８】
0003674119.tif 000011
【００４６】
表８に文書４に存在する全ての2-gramを重複削除した2-gramに対する、正規化出現頻度を示す。この文書４の正規化出現頻度と表１〜表３に示した文書１〜文書３の正規化出現頻度を用いて、データベース中の文書間の共通性が除去される。
【００４７】
まず、各2-gramの平均ウェートが算出される。
【００４８】
【表９】
0003674119.tif 000012
【００４９】
表９に、文書１〜文書４における平均ウェートを示す。例えば、2-gram「ソフ」の平均ウェートは、(0.0+0.077+0.133+0.091)/4=0.075となる。次に、この平均ウェートをn-gramの正規化出現頻度から差し引くことにより、データベース中の文書間の共通性を除去した正規化ウェートを求める。
【００５０】
【表１０】
0003674119.tif 000013
【００５１】
【表１１】
0003674119.tif 000014
【００５２】
【表１２】
0003674119.tif 000015
【００５３】
表１０、表１１および表１２に示したものは文書１、文書２および文書４の共通性を除去した正規化ウェートである。これらを用いて、選択文書である文書２に対する文書１と文書４の類似度を算出し、比較すると以下の通りになる。文書１は0.043、文書４は、0.002である。
【００５４】
この結果、文書２、文書４ともにソフトウェアに関する文書であるにもかかわらず、全く関係のない文書１の方が文書２に類似していると判断されてしまう。これは、文書２の「開発作業」中の2-gramである「開発」、「発作」が文書１に存在しているためである。n-gramは単語のように意味的にまとまった単位の文字列ではないため、同じn-gramであっても同じ意味を持つn-gramとは限らない。そのため、この例のように全く関係のない文書が上位にランキングされてしまうという問題が生じる。
【００５５】
こうした問題に対し、本発明では以下の課題を解決することを目的とする。また、本発明は、n-gramを単位として行うレリバンス・フィードバックを対象としている。
【００５６】
（１）文字種の多い日本語のような言語に対しても、高速なレリバンス・フィードバックを実現する。
（２）n-gram単位に行うことによるノイズを減少させるレリバンス・フィードバックを実現する。
【００５７】
【課題を解決するための手段】
上記課題を解決するために、本発明では、テキストデータの登録処理として以下のステップを有する。
【００５８】
（ステップ１）：テキストデータを読み込むステップ
（ステップ２）上記（ステップ１）で読み込んだテキストデータからn文字（nは予め定められた１以上の整数）が連続する文字列（以下、n-gramと呼ぶ）を全て抽出し、そのn-gramのテキストデータにおける出現頻度を算出するステップ
（ステップ３）上記（ステップ２）で算出された出現頻度を該当する出現頻度ファイルに格納するステップ
（ステップ４）上記（ステップ２）で算出された出現頻度を基に、予め定められた算出式を用いて上記抽出n-gramに対する重みを算出するステップ
（ステップ５）上記（ステップ４）で算出された重みを該当する重みファイルに格納するステップ
これらのステップは、重みを算出する重み算出ステップである。
【００５９】
また、検索処理として以下のステップを有する。
【００６０】
（ステップ６）前記重みファイルを読み込むステップ
（ステップ７）前記出現頻度ファイルを読み込むステップ
（ステップ８）上記（ステップ６）で読み込まれた重みファイルの中で、重みが予め定められた基準を満たすn-gramを全て、ユーザが選択したテキスト（以下、選択文書と呼ぶ）から抽出し、そのn-gramの選択文書における出現頻度を算出するステップ
（ステップ９）上記（ステップ８）で抽出されたn-gramの対象データベース中のテキストデータの出現頻度を、上記（ステップ７）で読み込まれた出現頻度ファイルから得るステップ
（ステップ１０）上記（ステップ８）と上記（ステップ９）で算出された出現頻度ならびに上記（ステップ６）で読み込まれたn-gramの重みを用いて、予め定められた算出式を用いて選択文書とデータベース中のテキストデータ間の類似度を算出するステップ
（ステップ１１）上記（ステップ１０）で算出された類似度を、予め定められた方法で修正するステップ
（ステップ１２）上記（ステップ１１）で修正された類似度の降順に、テキストデータの一覧を出力するステップ
（ステップ１３）上記（ステップ１１）で修正された類似度を前回得点として主メモリに記憶するステップ
上記文書検索方法を用いた本発明の原理を、以下に説明する。
文書を登録する際には、（ステップ１）〜（ステップ５）からなる重み算出ステップを実行する。まず、（ステップ１）で登録対象となるテキストデータを読み込む。次に、（ステップ２）において、（ステップ１）で読み込まれたテキストデータ中の全てのn文字（nは予め定められた１以上の整数）が連続する文字列（以下、n-gramと呼ぶ）を抽出するそして、そのn-gramのテキストデータ中の出現頻度を算出する。例えば、表８に示した文書４「ソフトの新製品の新聞発表」から2-gramを抽出すると、「2-gram「ソフ」は1回出現する」、「2-gram「の新」は2回出現する」といった情報が得られる。そして、（ステップ３）において、（ステップ２）で算出された出現頻度を該当する出現頻度ファイルに格納する。図５に、出現頻度ファイルの例を示す。本図に示した出現頻度ファイルは、表１、表２、表３および表８に示した文書１〜文書４を登録した場合の例である。次に、（ステップ４）において（ステップ２）で算出された出現頻度を基に、予め定められた算出式を用いて上記n-gramに対する重みを算出する。そして、（ステップ５）においてその重みを該当する重みファイルに格納する。この重みとしては、例えば、従来技術４で示した平均ウェート（本従来技術では共通性ウェートと呼ばれている）を用いてもよい。重みの算出に、以下に示す数３を用いる。
【００６１】
【数３】
0003674119.tif 000016
【００６２】
ここで、Fijはn-gram（i）のデータベース中の文書jにおける出現頻度を示し、Cjはデータベース中の文書jに存在するn-gramの総数を示す。また、nはデータベース中の文書数である。図６に重みファイルの例を示す。ここで示した重みは、表１〜表４に示した文書１〜文書４が登録されている文書データベースを対象とし、数３を用いて算出したものである。
【００６３】
検索時にユーザからレリバンス・フィードバックの要求がなされた場合には、（ステップ６）〜（ステップ１１）からなるレリバンス・フィードバックステップを実行する。まず、（ステップ６）において（ステップ５）で作成された重みファイルをメモリに読み込む。次に、（ステップ７）において、（ステップ３）で作成された出現頻度ファイルをメモリに読み込む。次に、（ステップ８）において、（ステップ６）で読み込まれた重みファイルの中で重みが予め定められた基準を満たすn-gram全てをユーザが指定した選択文書から抽出し、そのn-gramの選択文書における出現頻度を算出する。
【００６４】
図７に文書４が選択された場合の（ステップ８）のn-gram抽出処理の概要を示す。本図では、nを２とし、2-gramを抽出するための基準として「重みが0.050以上のもの」としている。文書４から2-gramを全て抽出すると、「ソフ」「フト」「トの」「の新」「新製」「製品」「品の」「新聞」「聞発」「発表」の１０種類（「の新」のみ２回出現）の2-gramが抽出される。これに対し、「重みが0.050以上のもの」という基準で2-gramを抽出すると、重みが0.075の「ソフ」「フト」および0.052の「聞発」のみが抽出され、３種類の2-gramに削減できる。このように本発明では、選択文書から抽出するn-gramの種類数を削減している。
【００６５】
次に、（ステップ９）において、（ステップ８）で抽出されたn-gramの対象データベース中の全文書における出現頻度を（ステップ７）で読み込まれた出現頻度ファイルから得る。そして、（ステップ１０）において、（ステップ８）および（ステップ９）で算出された出現頻度ならびに（ステップ６）で読み込まれたn-gramの重みから、予め定められた算出式を用いて選択文書とデータベース中の全文書間の類似度を算出する。この算出式は、従来技術４で示した数２を用いてもよい。
【００６６】
次に、（ステップ１１）において、（ステップ１０）で算出された類似度を予め定められた方法で修正する。この修正には、以下の２つの方法がある。
【００６７】
（１）算出した類似度を０〜１の間に正規化して修正度とし、前回のランキングで得られた類似度に乗ずる。
【００６８】
通常のレリバンス・ランキングでは、ユーザが指定した検索タームで検索を行い、その結果得られた検索タームの出現頻度を基に類似度の算出を行う。すなわち、単語を単位としたランキングである。そのため、無意味なまとまりであるn-gramを単位としてランキングを行う場合よりノイズが少ない。しかし、n-gramを単位としてランキングを行う場合にでも、算出した類似度を０〜１の間に正規化して修正度とし、前回のランキングで得られた類似度に乗じて修正し新たな類似度を得ることにより、単語を単位としたランキングの結果を利用できる。このため、n-gramを単位とすることによるノイズを減少させることができる。
【００６９】
レリバンス・ランキングを行わずに、最初から文書を選択してレリバンス・フィードバックを行っていくこともできる。この場合，１回のレリバンス・フィードバックだけではノイズが存在する可能性が高い。しかし、上述したような修正を行いながらレリバンス・フィードバックを繰り返していくことにより、１回のレリバンス・フィードバックでユーザが選択した文書のみに対する類似度ではなく、それまでのレリバンス・フィードバックで選択してきた文書全てに対する類似度を算出するのと同様な効果が得られる。このため、 n-gramを単位とすることによるノイズを減少させることができる。
【００７０】
（２）前回までのレリバンス・フィードバックでユーザが選択した文書に対する類似度を高くする。
【００７１】
ユーザが選択した文書は、ユーザが欲している文書に近い文書である。このため、本来ならばレリバンス・フィードバックを繰り返していく過程において、常に高い類似度を持たなければならない文書である。しかし、n-gramをレリバンス・フィードバックの単位とすることによって、これらの文書がその他の関係のない文書より類似度が低くなってしまう可能性がある。そのため、それまでにユーザが選択した文書に対する得点を高く（すなわち、ランキングで上位になければならない文書の類似度を高く）することによって、その他の関係のない文書の類似度を相対的に下げることになる。このため、n-gramを単位とすることによるノイズを減少させることができる。
【００７２】
また本発明では、（ステップ８）においてユーザが指定した選択文書から抽出するn-gramを、その重みが予め定められた基準を満たすn-gramのみに限定し、その種類数を削減している。そのため、（ステップ９）における対象データベース中の全文書における出現頻度の取得処理と、（ステップ１０）における文書間の類似度算出処理を数を削減したn-gramのみを対象として行えばよい。このため、これらの処理に掛かる時間を削減することができる。その結果として、高速なレリバンス・フィードバックが可能となる。
【００７３】
以上の結果、文字種の多い日本語等の文書データベースを対象にn-gramを単位としたレリバンス・フィードバックを行った場合でも、（ステップ８）において処理対象となるn-gramの種類数を押さえることが可能になる。このため、得点算出のための処理を削減することができ、高速なレリバンス・フィードバックが可能となる。また、（ステップ１１）において、（ステップ１０）で算出した類似度を修正度として、前回のランキングによって得られた類似度を修正して新たな類似度を得るため、単語を単位としたランキングの類似度が利用できる。さらに、それまでのレリバンス・フィードバックでユーザが選択した文書全てにたいする類似度を算出するのと同様な効果が得られるため、n-gramを算出単位とすることによるノイズを削減することができる。
【００７４】
【発明の実施の形態】
以下、本発明の第一の実施例について図１を用いて説明する。
本発明を適用した文書検索システムは、ディスプレイ１００、キーボード１０１、中央演算処理装置（ＣＰＵ）１０２、磁気ディスク装置１０７、フロッピディスクドライバ（ＦＤＤ）１０８、主メモり１１１およびこれらを結ぶバス１１０から構成される。磁気ディスク装置１０７は二次記憶装置の一つであり、テキスト１０３、インデックス１０４、重みファイル１０５および出現位置ファイル１０６が格納される。ＦＤＤ１０８を介してフロッピディスク１０９に格納されている情報が、主メモリ１１１あるいは磁気ディスク装置１０７へ読み込まれる。
【００７５】
主メモリ１１１には、システム制御プログラム１１２、文書登録制御プログラム１１３、テキスト登録プログラム１１４、インデックス作成登録プログラム１１５、重みファイル作成登録プログラム１１６、検索制御プログラム１１９、検索条件式解析プログラム１２０、インデックス検索プログラム１２１、レリバンス・ランキングプログラム１２２、レリバンス・フィードバックプログラム１２３およびソートプログラム１２８が格納されるとともにワークエリア１２９が確保される。重みファイル作成登録プログラム１１６は、重み算出プログラム１１７および重みファイル作成プログラム１１８で構成される。また、レリバンス・フィードバックプログラム１２３は、ファイル読込みプログラム１２４、n-gram抽出プログラム１２５、出現頻度取得プログラム１２６およびフィードバック得点算出プログラム１２７で構成される。文書登録制御プログラム１１３および検索制御プログラム１１９は、ユーザによるキーボード１０１からの指示に応じてシステム制御プログラム１１２によって起動され、それぞれテキスト登録プログラム１１４、インデックス作成登録プログラム１１５、重みファイル作成登録プログラム１１６の制御と、検索条件式解析プログラム１２０、インデックス検索プログラム１２１、レリバンス・ランキングプログラム１２２、レリバンス・フィードバックプログラム１２３、ソートプログラム１２８の制御を行う。
【００７６】
以下、本実施例における文書検索システムの処理内容について説明する。
まず、システム制御プログラム１１２の処理内容について図８のＰＡＤ（Problem Analysis Diagram）図を用いて説明する。
【００７７】
システム制御プログラム１１２は、まずステップ８００で、キーボード１０１から入力されたコマンドを解析する。そしてこの結果が、ステップ８０１で登録実行のコマンドであると解析された場合には，ステップ８０２で文書登録制御プログラム１１３を起動して、文書の登録を行う。また、ステップ８０３で検索実行のコマンドであると解析された場合には、ステップ８０４で検索制御プログラム１１９を起動して、文書の検索を行う。以上がシステム制御プログラム１１２の処理内容である。
【００７８】
次に、文書登録制御プログラム１１３による文書登録の処理内容について、図９のＰＡＤ図を用いて説明する。
【００７９】
文書登録制御プログラム１１３は、システム制御プログラム１１２によって起動される。本プログラムは、まずステップ９００でテキスト登録プログラム１１４を起動し、ＦＤＤ１０８に挿入されたフロッピディスク１０９から登録する文書のテキストデータをワークエリア１２９に読み込み、これをテキスト１０３として磁気ディスク装置１０７へ格納する。テキストデータは、フロッピディスクを用いて入力するだけに限らず、通信回線やＣＤ−ＲＯＭ装置（図１には示していない）等を用いて他の装置から入力するような構成をとることも可能である。次に、ステップ９０１で文書登録制御プログラム１１３は、インデックス作成登録プログラム１１５を起動して、テキスト１０３中の所定のn-gramのテキスト１０３における出現位置をインデックス１０４として磁気ディスク装置１０７へ格納する。また、そのn-gramの出現頻度を出現頻度ファイル１０６として磁気ディスク装置１０７へ格納する。最後に、ステップ９０２で文書登録制御プログラム１１３は、重みファイル作成登録プログラム１１６を起動し、上記インデックス作成登録プログラム１１５で算出されたn-gramの出現頻度を基にn-gramの重みを算出し、重みファイル１０５として磁気ディスク装置１０７に格納する。以上が、文書登録制御プログラム１１３による文書登録の処理内容である。
【００８０】
次に、検索制御プログラム１１９による文書検索の処理内容について、図１０のＰＡＤ図を用いて説明する。
【００８１】
検索制御プログラム１１９は、まずステップ１０００で検索条件式解析プログラム１２０を起動する。そして、キーボード１０１から入力された検索条件式で指定されている検索方法がインデックス検索、レリバンス・ランキング、レリバンス・フィードバックのいずれであるのかを解析し、検索条件式から検索タームあるいは文書番号を抽出する。そして、検索条件式解析プログラム１２０によって解析する。この結果が、インデックス検索であった場合には、検索制御プログラム１１９は、インデックス検索プログラム１２１を起動し、検索条件式解析プログラム１２０によって抽出された検索タームのテキスト１０３における出現文書番号および出現位置を算出する（ステップ１００２）。
【００８２】
また、検索条件式解析プログラム１２０によって解析された結果が、レリバンス・ランキングであった場合には、検索制御プログラム１１９はインデックス検索プログラム１２１を起動し、検索条件式解析プログラム１２０によって抽出された検索タームのテキスト１０３における出現文書番号および出現位置を算出する（ステップ１００４）。次に、レリバンス・ランキングプログラム１２２を起動し、インデックス検索プログラム１２１によって算出された検索タームの出現文書番号および出現位置から各文書の類似度を算出する（ステップ１００５）。そして、ソートプログラム１２８を起動し、レリバンス・ランキングプログラム１２２によって算出された各文書の類似度を降順にソートする（ステップ１００６）。
【００８３】
また、第三番目のケースとして、検索条件式解析プログラム１２０によって解析された結果がステップ１００７でレリバンス・フィードバックであった場合には、検索制御プログラム１１９は、ステップ１００８でレリバンス・フィードバックプログラム１２３を起動し、検索条件式解析プログラム１２０によって抽出された番号の文書に対する各文書の類似度を算出する。そして、ソートプログラム１２８を起動し、レリバンス・フィードバックプログラム１２３によって算出された各文書の類似度を降順にソートする（ステップ１００９）。
【００８４】
最後に、検索制御プログラム１１９はステップ１０１０で、インデックス検索プログラム１２１によって算出された文書番号、あるいはソートプログラム１２８によってソートされた類似度を出力する。以上が検索制御プログラム１１９による文書検索の処理内容である。
【００８５】
次に、図９に示した文書登録制御プログラム１１３による文書登録処理におけるインデックス作成登録プログラム１１５および重みファイル作成登録プログラム１１６の処理内容について、図１１および図１２のＰＡＤ図を用いて説明する。
【００８６】
インデックス作成登録プログラム１１５は、図１１に示すようにまずステップ１１００でテキスト１０３から所定のn-gramとそのテキスト１０３における出現位置を抽出し、ワークエリア１２９に格納する。そして、ステップ１１０１で、抽出したn-gramの出現位置をインデックス１０４として磁気ディスク装置１０７に格納する。このインデックスの作成については、従来技術３に示されているような方法を用いてもよい。次に、ステップ１１０２で、ワークエリア１２９に格納されているn-gramの個数をカウントし、各々のn-gramのテキスト１０３の各文書中の出現頻度を算出する。そして、ステップ１１０３で、算出したn-gramの各文書中の出現頻度を出現頻度ファイル１０６として、磁気ディスク装置１０７に格納する。
【００８７】
重みファイル作成登録プログラム１１６は、図１２に示すように、まずステップ１２００で重み算出プログラム１１７を起動し、上記インデックス作成登録プログラム１１５よって算出されたn-gramのテキスト１０３の各文書中の出現頻度を基に各々のn-gramの重みを算出する。この重みには、例えば、従来技術３で開示されているような出現頻度を文書に含まれるn-gramの総数で割った正規化出現頻度の平均値（従来技術３では共通性ウェートと呼ばれている）を用いてもよい。最後に、ステップ１２０１で重みファイル作成プログラム１１８を起動し、重み算出プログラム１１７によって算出されたn-gramの重みを重みファイル１０５として磁気ディスク装置１０７に格納する。
【００８８】
次に、図１０に示した検索制御プログラム１１９による文書検索処理における検索条件式解析プログラム１２０、インデックス検索プログラム１２１、レリバンス・ランキングプログラム１２２およびレリバンス・フィードバックプログラム１２３の処理内容について、図１３〜図１６のＰＡＤ図を用いて説明する。
【００８９】
検索条件式解析プログラム１２０は、図１３に示すように、まずステップ１３００でキーボード１０１から入力された検索条件式に、インデックス検索、レリバンス・ランキング、レリバンス・フィードバックのいずれが指定されているのかを判定する。そして、判定結果がステップ１３０１でインデックス検索であった場合には、ステップ１３０２で検索条件式から検索タームを抽出する。ここで、抽出された検索タームが、ステップ１３０３で２つ以上であった場合には、ステップ１３０４でそれらの検索ターム間の論理的な関係あるいはテキスト１０３中での位置関係を検索条件式から抽出する。ここで、複数の検索ターム間の論理的な関係とは、例えば、ＡＮＤ条件やＯＲ条件がある。ここで、ＡＮＤ条件とは、検索式「「文書」（ＡＮＤ）「検索」」のように、「「文書」と「検索」の両方の文字列が現れる文書を探せ」という意味を持つ。また、ＯＲ条件とは、検索式「「文書」（ＯＲ）「検索」」のように、「「文書」か「検索」のどちらかの文字列が現れる文書を探せ」という意味を持つ。
【００９０】
また、複数の検索ターム間のテキスト１０３中での位置関係とは、文脈条件、近傍条件や隣接条件などがある。文脈条件とは、例えば検索式「「文書」（Ｓ）「検索」」のように、「「文書」と「検索」が同一の文（センテンス）に共起（同時に出現）する文書を探せ」という意味を持つ。近傍条件とは、検索式「「文書」（２Ｃ）「検索」」のように、「「文書」と「検索」が２文字以内に近接して現れる文書を探せ」という意味を持つ。さらに、隣接条件とは、検索式「「文書」（Ａ）「検索」」のように、「「文書」と「検索」が隣接して現れる文書を探せ」という意味を持つ。
【００９１】
また、ステップ１３０５において、検索条件式の判定結果がレリバンス・ランキングであった場合には、ステップ１３０６で検索条件式から検索タームを抽出する。また第三番目のケースとして、ステップ１３０７において、検索条件式でレリバンス・フィードバックであった判定された場合には、ステップ１３０８で検索条件式から文書番号を抽出する。
【００９２】
インデックス検索プログラム１２１は、図１４に示すように、まずステップ１４００において、上記検索条件式解析プログラム１２０によって抽出された検索タームのテキスト１０３における出現文書番号および出現位置を求める。このインデックス検索については、従来技術３に示されているような方法を用いてもよい。すなわち、検索タームに含まれるn-gramのインデックスの間で文書番号および出現位置を比較し、その文書番号が同じで出現位置の関係が検索タームにおける位置関係と等しいものを抽出する。次に、ステップ１４０１において、検索条件式解析プログラム１２０によって解析された結果がインデックス検索であった場合には、ステップ１４０２でキーボード１０１から入力された検索条件式中の検索ターム数を判定する。また、検索タームが検索条件式中に２つ以上存在する場合には、ステップ１４０３で算出した複数の出現文書番号および出現位置が検索条件式に指定されている検索条件と合致するものを抽出する。ここで、検索条件式解析プログラム１２０によって検索ターム間の論理的な関係が検索条件式から抽出されている場合には、得られた検索タームに対応する各出現文書番号で論理積や論理和をとる。また、検索タームのテキスト１０３中での位置関係が検索条件式から抽出されている場合には、得られた複数の検索タームの出現位置のうちで検索条件式で指定されている位置関係に合致するものを抽出する。
【００９３】
レリバンス・ランキングプログラム１２２は、図１５に示すように、まずステップ１５００において、上記インデックス検索プログラム１２１によって算出された検索タームの出現文書番号および出現位置を基に、検索タームの各文書中の出現頻度を算出する。そして、ステップ１５０１で算出した検索タームの出現頻度を基に、各文書の類似度を算出する。この類似度の算出については、従来技術１に開示されているベクトルによる算出方法を用いてもよいし、「A Very Fast Prototype Retrieval System using Statiscal Ranking」（Donna Harman and Gerald Candela著、SIGIR FORUM Spring/Summer １９８９，Vol.２３，No.３,４，pp.１００−１１０）で述べられている以下の数４を用いてもよい。
【００９４】
【数４】
0003674119.tif 000017
【００９５】
ここで、Qは検索条件式中の検索タームの数、Freq（jk）は検索タームkの文書j中の出現頻度、Mjは文書j中の単語の総数（日本語の場合はテキスト長で代用）を示す。また、IDF（k）は以下の数５で示される。
【００９６】
【数５】
0003674119.tif 000018
【００９７】
ここで、Nはデータベース中の文書の数、NumD（k）は検索タームkを１つ以上含む文書の数、すなわち、文書ヒット件数を示す。文書の類似度は、検索タームの出現頻度をテキスト長で正規化したものである。この値は、指定された検索タームが多く出現する文書ほど高くなる。また、IDF（k）は、検索タームの対象データベースにおける出現のばらつき具合を示す。IDF（k）は、検索タームが対象データベース中の全ての文書に出現する場合に最も小さく、偏って出現するほど大きくなる。全ての文書に出現する検索タームはストップワードであるため、IDF（k）を出現頻度に乗ずることによって、ストップワードの影響を抑えることができる。
【００９８】
レリバンス・フィードバックプログラム１２３は、図１６に示すように、まずステップ１６００でファイル読込みプログラム１２４を起動し、重みファイル１０５および出現頻度ファイル１０６をワークエリア１２９に読み込む。次に、ステップ１６０１において、n-gram抽出プログラム１２５を起動し、上記検索条件式解析プログラム１２０によって検索条件式から抽出された文書番号に対応する文書（以下、選択文書と呼ぶ）から重みが所定の基準を満たすn-gramを抽出する。ここで基準としては、重みが上位m（mは１以上の予め定められた整数）個にあるn-gramとしてもよいし、重みがある決められた範囲（例えば、i以上k未満、i,kは予め定められた数値）にあるn-gramとしてもよい。次に、ステップ１６０２において、出現頻度取得プログラム１２６を起動し、n-gram抽出プログラム１２５によって抽出されたn-gramの各文書中の出現頻度を出現頻度ファイル１０６から得る。最後に、ステップ１６０３において、フィードバック得点算出プログラム１２７を起動し、ファイル読込みプログラム１２４によって読み込まれたn-gramの重み、出現頻度取得プログラム１２６によって得られたn-gramの出現頻度を基にデータベース中の各文書の類似度を算出する。この類似度の算出については、従来技術４に開示されている数２のような算出式を用いてもよいし、n-gramを単語とみなしてレリバンス・ランキングで用いた数５を用いてもよい。
以上が、本発明の文書検索方法の第一の実施例である。
【００９９】
以下、図１２に示した本実施例における重みファイル作成登録プログラム１１６の処理手順について具体的に説明する。
【０１００】
まず、図１２の重みファイル作成登録プログラム１１６のステップ１２００における重み算出プログラム１１７の処理について、図１７〜図１８の例を用いて説明する。重み算出プログラム１１７は、重みファイル作成登録プログラム１１６によって起動される。この時、インデックス作成登録プログラム１１５によって算出されたn-gramの各文書における出現頻度が重み算出プログラム１１７へ渡される。図１７に文書１、文書２、文書３および文書４からなるテキスト１０３からインデックス作成登録プログラム１１５によって2-gramの出現頻度が算出される様子を示す。本図では、まず、テキスト１０３から2-gram１７００が抽出される。例えば、文書１「新開発の心電計による発作時の心電図」からは「新開、開発、発の、の心、心電、電計、計に、によ、よる、る発、発作、作時、時の、の心、心電、電図」という2-gram１７００が抽出される。
【０１０１】
次に、この抽出されたn-gramの出現頻度１７０１が算出される。本図に示すように、2-gram１７００から出現頻度１７０１が算出される。例えば、文書１からは「（新開，１）（開発，１）（発の，１）（の心，２）（心電，２）（電計，１）（計に，１）（によ，１）（よる，１）（る発，１）（発作，１）（作時，１）（時の，１）（電図，１）」という出現頻度１７０１が算出される。ここで、例えば（新開，１）とは2-gram（新開）は「１」回出現することを示す。このようにしてインデックス作成登録プログラム１１５によって算出されたn-gramの出現頻度が、重み算出プログラム１１７の起動時に渡される。そして、重み算出プログラム１１７は、図１２のステップ１２００で渡された出現頻度を基にn-gramの重みを算出する。重み算出の例を図１８に示す。本図では，2-gram「開発」と「ソフ」の算出例を示してある。また、重みには、出現頻度をテキスト長で割った正規化出現頻度の平均値を用いている。例えば、「開発」の正規化出現頻度は、テキスト長が17の文書１では0.059、テキスト長が14の文書２では0.071、テキスト長が16の文書３では0.063、テキスト長が12の文書４では0である。このため、その重みは0.048（=(0.059+0.071+0.063+0)/4）となる。
【０１０２】
次に、図１２の重みファイル作成登録プログラム１１６のステップ１２０１における重みファイル作成プログラム１１８の処理について説明する。重みファイル作成プログラム１１８は、重みファイル作成登録プログラム１１６によって重み算出プログラム１１７の次に起動される。重みファイル作成プログラム１１８は、図１２のステップ１２０１で重み算出プログラム１１７によって算出されたn-gramの重みを重みファイル１０５として磁気ディスク装置１０７に格納する。重みファイル１０５は、図６に示したような形式で作成する。
【０１０３】
以上が、本実施例における重みファイル作成登録プログラム１１６の詳細な手順である。この例ではn-gramのnの値を2として説明を行ったが、nが1、あるいは3以上についても同様に重みファイル作成登録の処理を行うことができる。
【０１０４】
以下、図１６に示した本実施例におけるレリバンス・フィードバックプログラム１２３の処理手順について具体的に説明する。
【０１０５】
まず、図１６のレリバンス・フィードバックプログラム１２３のステップ１６００におけるファイル読込みプログラム１２４の処理について説明する。ファイル読込みプログラム１２４は、レリバンス・フィードバックプログラム１２３によって起動される。本プログラム１２４は、図１６のステップ１６００で重みファイル１０５および出現頻度ファイル１０６を磁気ディスク装置１０７からワークエリア１２９に読み込む。ここで、読み込まれる重みファイル１０５および出現頻度ファイル１０６は、図６および図５に示した形式で作成されている。
【０１０６】
次に、図１６のレリバンス・フィードバックプログラム１２３のステップ１６０１におけるn-gram抽出プログラム１２５の処理について、図１９の例を用いて説明する。 n-gram抽出プログラム１２５は、レリバンス・フィードバックプログラム１２３によってファイル読込みプログラム１２４の次に起動される。本プログラム１２５は、図１６のステップ１６０１において、ユーザが指定した選択文書から所定のn-gramを抽出する。そして、抽出されたn-gramの中からその重みが所定の基準を満たすものだけを抽出する。この処理の例を図１９に示す。本図では、文書２「新しいソフトウェアの開発作業」を選択文書とし、n-gramのnの値を2とした場合を示している。また、基準としては（重みが0.040以上のn-gram）を用いる。まず、選択文書から2-gramを抽出する。この結果、文書２からは13種類の2-gram「新し，しい，いソ，ソフ，フト，トウ，ウェ，ェア，アの，の開，開発，発作，作業」が抽出される。次に、これらのn-gramから（重みが0.040以上のn-gram）という基準を満たすn-gramを抽出する。このとき、基準を満たすもののみ抽出してもよい。本例では、「ソフ」の重みが0.070、「フト」の重みが0.070、「開発」の重みが0.048で基準に当てはまる。このため、「ソフ、フト、開発」という2-gram１９００が抽出される。重みファイル１０５中の「の新」の重みは、0.042であり、基準を満たしている。しかし、「の新」は、文書２の中に存在しないので抽出されない。
【０１０７】
次に、図１６のレリバンス・フィードバックプログラム１２３のステップ１６０２における出現頻度取得プログラム１２６の処理について、図２０の例を用いて説明する。出現頻度取得プログラム１２６は、レリバンス・フィードバックプログラム１２３によって、n-gram抽出プログラム１２５の次に起動される。本プログラム１２６は、図１６のステップ１６０２において、n-gram抽出プログラム１２５によって抽出されたn-gramの各文書における出現頻度を出現頻度ファイル１０６から得る。この処理の例を図２０に示す。本図では、図１９の例で選択文書から抽出された「ソフ、フト、開発」という2-gram１９００の出現頻度を出現頻度ファイル１０６から得る。例えば、文書３の場合「（開発，１）、（ソフ，２）、（フト，２）」という出現頻度２０００を得ることができる。
【０１０８】
最後に、図１６のレリバンス・フィードバックプログラム１２３のステップ１６０３におけるフィードバック得点算出プログラム１２７の処理について、図２１の例を用いて説明する。フィードバック得点算出プログラム１２７は、レリバンス・フィードバックプログラム１２３によって出現頻度取得プログラム１２６の次に起動される。本プログラム１２７は、図１６のステップ１６０３において、上記ファイル読込みプログラム１２４によって読み込まれたn-gramの重みおよび出現頻度取得プログラム１２６によって得られたn-gramの出現頻度から各文書の類似度を算出する。この類似度の算出については、従来技術４に開示されている数２のような算出式を用いてもよいし、n-gramを単語とみなしてレリバンス・ランキングで用いた数４を用いてもよい。図２１に示す例では、類似度算出に従来技術４に示されている数２を用いており、正規化出現頻度がウェート、重みが共通性ウェートに相当する。類似度算出の結果、各文書に対する類似度が得られる。本図に示した例では、文書１は0.049点、文書２は1.000点、文書３は0.249点、文書４は−0.910点となる。
【０１０９】
以上説明したように、本実施例では，登録時にn-gramの重みを算出しておき，レリバンス・フィードバックを行う際には，テキストから抽出するn-gramとしてその重みが基準を満たしたものだけに限定し，類似度算出に用いるn-gramの種類数を減らすことにより，類似度算出に掛かる時間を削減し，高速なレリバンス・フィードバックを実現することが可能となる。
【０１１０】
このことにより、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、n-gramの種類数が限定される。このため得点算出のための処理を減らすことができ、高速なレリバンス・フィードバックが可能となる。
【０１１１】
次に、本発明の第二の実施例について説明する。本実施例で示す文書検索方法では，文書を登録する際に、異なる文字種にまたがるようなn-gramを削除してn-gramの出現頻度および重みを算出し格納しておくものである。このことにより、出現頻度ファイルおよび重みファイルの容量を削減するとともに、レリバンス・フィードバック時に選択文書からn-gramを抽出する際、選択文書から抽出するn-gramを同一文字種のものだけに限定できる。このことにより、レリバンス・フィードバックの処理に用いるn-gramの種類数を削減する。この方法によれば、必要な磁気ディスク装置の容量を削減できるとともに、レリバンス・フィードバックにおける類似度算出処理を高速に実現できることになる。
【０１１２】
本実施例は、基本的に第一の実施例（図１）と同様の構成をとるが、その中の文書登録制御プログラム１１３の制御下のインデックス作成登録プログラム１１５が異なる。このプログラムは、図２２に示すような構成となる。図２２に示すように文書登録制御プログラム１１３ａは、テキスト登録プログラム１１４、文字種分割出現頻度ファイル型インデックス作成登録プログラム２２００および重みファイル作成登録プログラム１１６を制御する。
【０１１３】
以下、本実施例における処理手順のうち、第一の実施例と異なる文字種分割出現頻度ファイル型インデックス作成登録プログラム２２００の処理手順について説明する。
【０１１４】
文字種分割出現頻度ファイル型インデックス作成登録プログラム２２００の処理内容を図２３のPAD図に示す。本プログラム２２００の処理内容は、図１１に示したインデックス作成登録プログラム１１５とステップ２３００が異なるだけである。本プログラム２２００は図２３に示すように、まずステップ１１００でテキスト１０３から所定のn-gramとそのテキスト１０３における出現位置を抽出し、ワークエリア１２９に格納する。そして、ステップ１１０１で、抽出したn-gramの出現位置をインデックス１０４として磁気ディスク装置１０７に格納する。次に、ステップ２３００において、ワークエリア１２９に格納されているn-gramの中で、異なる文字種にまたがるものを削除する。そして、ステップ１１０２において、ワークエリア１２９に格納されているn-gramの個数をカウントし、各々のn-gramのテキスト１０３の各文書中の出現頻度を算出する。そして、ステップ１１０３において、算出したn-gramの各文書中の出現頻度を出現頻度ファイル１０６として磁気ディスク装置１０７に格納する。以上が本発明の文書検索方法を適用した第二の実施例の概略である。
【０１１５】
以下、図２３に示した本実施例における文字種分割出現頻度ファイル型インデックス作成登録プログラム２２００の処理手順のうち、第一の実施例と処理結果が異なるステップ２３００、ステップ１１０２およびステップ１１０３について、図２４に示す例を用いて具体的に説明する。図１７に示したように、図２３のステップ１１００で文書１、文書２、文書３および文書４からなるテキスト１０３から2-gram１７００が抽出され、ワークエリア１２９に格納される。例えば、文書１「新開発の心電計による発作時の心電図」からは「新開、開発、発の、の心、心電、電計、計に、によ、よる、る発、発作、作時、時の、の心、心電、電図」という2-gram１７００が抽出される。そして、ステップ２３００において、この2-gram１７００の中で、異なる文字種にまたがるものが削除される。例えば、文書１から抽出された2-gramから異なる文字種にまたがる「発の、の心、計に、る発、時の、の心」が削除され、「新開、開発、心電、電計、によ、よる、発作、作時、心電、電図」という2-gram２４００が残される。次に、ステップ１１０２において、削除されずに残ったn-gramの出現頻度が算出される。
【０１１６】
本図に示すように、2-gram２４００から出現頻度２４０１が算出される。例えば、「新開、開発、心電、電計、によ、よる、発作、作時、心電、電図」という2-gram２４００からは、「（新開，１）、（開発，１）、（心電，２）、（電計，１）、（によ，１）、（よる，１）、（発作，１）、（作時，１）、（電図，１）」という出現頻度２４０１が算出される。ここで、例えば（新開，１）とは、2-gram「新開」は、「１」回出現することを示す。最後に、ステップ１１０３において、算出したn-gramの出現頻度を出現頻度ファイル１０６として磁気ディスク装置１０７に格納する。ここで、作成される出現頻度ファイル１０６には、異なる文字種にまたがるn-gramは存在しないので、図２５に示すようなファイルになる。
【０１１７】
重みファイル作成登録プログラム１１６の処理内容は、第一の実施例の図１２で示したものと同様である。しかし、上記文字種分割出現頻度ファイル型インデックス作成登録プログラム２２００によって算出される出現頻度は同一文字種のn-gramに対してのみである。そのため、本プログラム１１６によって作成される重みファイル１０５には、同一文字種のn-gramだけが含まれ、図２６に示すようになる。
【０１１８】
本実施例におけるレリバンス・フィードバックプログラム１２３の処理手順は、第一の実施例で示した図１６と全く同様である。しかし、上記重みファイル作成登録プログラム１１６によって作成される重みファイル１０５には同一文字種のn-gramだけが格納されているので、結果として選択文書から抽出されるn-gramも同一文字種のものだけになり、n-gram種が削減される。
【０１１９】
以上説明したように、本実施例では、文書を登録する際に異なる文字種にまたがるようなn-gramを削除して重みを算出する。このことにより、重みファイルの容量を小さくすることができるため、第一の実施例に比べ小容量の磁気ディスク装置を用いることができる。また、レリバンス・フィードバック時に選択文書から抽出するn-gramは同一文字種のもののみに限定するため、文書の類似度算出の処理に用いるn-gramの種類数を削減することができる。このため、第一の実施例に比べ高速なレリバンス・フィードバックを実現することが可能となる。
【０１２０】
以上により、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、n-gramの種類数が限定されるため、類似度算出のための処理を減らすことができ、高速なレリバンス・フィードバックを実現することがが可能となる。
【０１２１】
次に、本発明の第三の実施例について説明する。本実施例は、前回のレリバンス・ランキングやレリバンス・フィードバックで算出された文書の類似度を記憶しておく。レリバンス・フィードバックを行う際には、記憶しておいた類似度が予め定められたしきい値以上である文書に対してのみ類似度を算出する。ことにより、ユーザが欲する文書と関連が薄い文書に対する類似度算出処理を省くことができる。この方法によれば、レリバンス・フィードバックにおける類似度算出処理をさらに高速に実現できることになる。
【０１２２】
本実施例は、基本的に第一の実施例（図１）と同様の構成をとる。しかし、主メモリ１１１に、前回得点記憶部を確保するところと、検索制御プログラム１１９の制御下のレリバンス・フィードバックプログラム１２３が異なる。本発明を適用した文書検索システムのうち、主メモリ１１１の構成を図２７に示す。本図に示すように本実施例では、主メモリ１１１に前回記憶部２７０２が確保される。また、検索制御プログラム１１９ａは、検索条件式解析プログラム１２０、インデックス検索プログラム１２１、レリバンス・ランキングプログラム１２２、レリバンス・フィードバックプログラム１２３ａおよびソートプログラム１２８を制御する。レリバンス・フィードバックプログラム１２３ａは、ファイル読込みプログラム１２４、検索対象文書抽出プログラム２７００、n-gram抽出プログラム１２５、出現頻度取得プログラム１２６、フィードバック得点算出プログラム１２７および得点記憶プログラム２７０１で構成される。
【０１２３】
以下、本実施例における処理手順のうち、第一の実施例と異なるレリバンス・フィードバックプログラム１２３ａの処理手順について図２８を用いて説明する。本図は、第一の実施例で示した図１６とステップ２８００およびステップ２８０１が異なる。
【０１２４】
レリバンス・フィードバックプログラム１２３ａは、図２８に示すように、まずステップ１６００において、ファイル読込みプログラム１２４を起動し、重みファイル１０５および出現頻度ファイル１０６をワークエリア１２９に読み込む。次に、ステップ２８００において、検索対象文書抽出プログラム２７００を起動し、前回得点記憶部２７０２に記憶されている前回の類似度が予め定められたしきい値以上である文書の集合を検索対象文書集合とする。次に、ステップ１６０１でn-gram抽出プログラム１２５を起動し、検索条件式解析プログラム１２０によって検索条件式から抽出された選択文書から重みが所定の基準を満たすn-gramを抽出する。次に、ステップ１６０２において、出現頻度取得プログラム１２６を起動し、n-gram抽出プログラム１２５によって抽出されたn-gramの検索対象文書中の出現頻度を出現頻度ファイル１０６から得る。そして、ステップ１６０３でフィードバック得点算出プログラム１２７を起動し、ファイル読込みプログラム１２４によって読み込まれたn-gramの重み、出現頻度取得プログラム１２６によって得られたn-gramの出現頻度を基にデータベース中の各文書の類似度を算出する。最後に、ステップ２８０１において、得点記憶プログラム２７０１を起動し、算出された類似度を前回得点記憶部２７０２に記憶する。以上が本発明の文書検索方法を適用した第三の実施例の概略である。
【０１２５】
以下、図２８に示した本実施例におけるレリバンス・フィードバックプログラム１２３ａの処理手順のうち、第一の実施例と異なる部分について具体的に説明する。
【０１２６】
まず、図２８のステップ２８００において、起動される検索対象文書抽出プログラム２７００の処理について、図２９の例を用いて説明する。検索対象文書抽出プログラム２７００は、前回得点記憶部２７０２に記憶されている前回の類似度が予め定められたしきい値以上である文書の集合を検索対象文書集合とする。各文書の前回の類似度は、前回得点記憶部２７０２に図２９に示すような形式で記憶されている。この前回得点記憶部２７０２に記憶されている類似度が、予め定められたしきい値以上である文書番号を抽出し、その文書の集合を検索対象文書集合とする。図２９では、「0.1」をしきい値とし、それ以上の類似度を持つ文書番号を抽出し、検索対象文書集合としている。例えば、文書２は類似度が「0.59」なので集合に含まれるが、文書１は類似度が「0.08」なので集合には含まれない。
【０１２７】
この結果、本図では文書２、文書３および文書４の集合が作成され、検索対象文書集合となる。ここで得られた検索対象文書に対し、図２８のステップ１６０１〜ステップ１６０３で文書の類似度が算出される。例えば、文書２を選択文書とした場合には、第一の実施例で図１９〜図２１を用いて説明した中で文書１以外に対して行った類似度算出処理と同様の処理が行われる。この結果、文書２の類似度「1.000」、文書３の類似度「0.249」、文書４の類似度「−0.910」が得られる。最後に、図２８のステップ２８０１で得点記憶プログラム２７０１が起動され、算出された類似度を前回得点記憶部２７０２に記憶する。フィードバック得点算出プログラム１２７によって算出された文書２の類似度「1.000」、文書３の類似度「0.249」、文書４の類似度「−0.910」を前回得点記憶部２７０２に格納した例を図３０に示す。ここで、文書１は類似度が算出されていないため記憶されていない。
【０１２８】
以上説明したように、本実施例では、前回のレリバンス・ランキングやレリバンス・フィードバックで算出された文書の類似度を記憶しておき、レリバンス・フィードバックを行う際には，記憶してある前回類似度が予め定められたしきい値以上である文書に対してのみ類似度を算出する。このことにより、類似度算出対象文書が削減できるため、高速なレリバンス・フィードバックが実現できる。
【０１２９】
以上の構成により、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、類似度算出対象文書が削減される。このため、類似度算出の処理を軽減することができ、高速なレリバンス・フィードバックが可能となる。
【０１３０】
次に、本発明の第四の実施例について説明する。本実施例で示す文書検索方法では、前回のレリバンス・ランキングやレリバンス・フィードバックで算出された各文書の類似度を記憶しておく。レリバンス・フィードバックを行う際には、算出した類似度を０から１の間に正規化して修正率とし、その類似度を選択文書が最高類似度になるまで前回の類似度に乗ずる。このことにより、前回までのレリバンス・ランキングやレリバンス・フィードバックの結果を今回のレリバンス・フィードバックに反映する。本方法によれば、n-gram単位にレリバンス・フィードバックを行うことによるノイズを削減することが可能となる。
【０１３１】
本実施例は、基本的に第三の実施例（図２７）と同様の構成をとる。しかし、検索制御プログラム１１９ａの制御下のレリバンス・フィードバックプログラム１２３ａが異なる。本発明を適用した文書検索システムのうち、レリバンス・フィードバックプログラム１２３ｂの構成を図３１に示す。本図に示すように、レリバンス・フィードバックプログラム１２３ｂは、ファイル読込みプログラム１２４、n-gram抽出プログラム１２５、出現頻度取得プログラム１２６、フィードバック得点算出プログラム１２７、得点修正プログラム３１００および得点記憶プログラム２７０１で構成される。
【０１３２】
以下、本実施例における処理手順のうち、第三の実施例と異なるレリバンス・フィードバックプログラム１２３ｂの処理手順について、図３２を用いて説明する。本図は、第三の実施例で示した図２８からステップ２８００を削除し、ステップ３２００を追加したものである。
【０１３３】
レリバンス・フィードバックプログラム１２３ｂは、図３２に示すように、まずステップ１６００でファイル読込みプログラム１２４を起動し、重みファイル１０５および出現頻度ファイル１０６をワークエリア１２９に読み込む。次に、ステップ１６０１でn-gram抽出プログラム１２５を起動し、検索条件式解析プログラム１２０によって検索条件式から抽出された選択文書から重みが所定の基準を満たすn-gramを抽出する。次に、ステップ１６０２において、出現頻度取得プログラム１２６を起動し、n-gram抽出プログラム１２５によって抽出されたn-gramの検索対象文書中の出現頻度を出現頻度ファイル１０６から得る。そして、ステップ１６０３において、ィードバック得点算出プログラム１２７を起動し、ファイル読込みプログラム１２４によって読み込まれたn-gramの重み、出現頻度取得プログラム１２６によって得られたn-gramの出現頻度を基にデータベース中の各文書の類似度を算出する。次に、ステップ３２００で得点修正プログラム３１００を起動し、算出された類似度と前回得点記憶部２７０２に記憶されている前回の類似度を用いて新たな類似度を算出する。最後に、ステップ２８０１で得点記憶プログラム２７０１を起動し、算出された類似度を前回得点記憶部２７０２に記憶する。
【０１３４】
以下、図３２に示したレリバンス・フィードバックプログラム１２３ｂの処理手順のうち、ステップ３２００で起動される得点修正プログラム３１００の処理内容について、図３３のPAD図を用いて説明する。
【０１３５】
得点修正プログラム３１００は、レリバンス・フィードバックプログラム１２３ｂによって、フィードバック得点算出プログラム１２７の次に起動される。得点修正プログラム３１００は、ステップ３３００でフィードバック得点算出プログラム１２７によって算出された文書の類似度を正規化（例えば、最高類似度を１として０から１の間に）し、この値を修正率とする。次に、ステップ３３０２において、前回得点記憶部２７０２に記憶されている前回の類似度に上記修正率を乗じる。そして、ステップ３３０１で選択文書の類似度が最も高くなるまで、ステップ３３０２を繰り返す。以上が本発明の文書検索方法を適用した第四の実施例の概略である。
【０１３６】
以下、図３３に示した本実施例における得点修正プログラム３１００の処理手順について、図３４に示す例を用いて具体的に説明する。図３４の例では、文書４を選択文書としている。
【０１３７】
得点修正プログラム３１００は、レリバンス・フィードバックプログラム１２３ｂによって、フィードバック得点算出プログラム１２７の次に起動される。フィードバック得点算出プログラム１２７では、文書の類似度３４００が算出される。文書の類似度３４００としては、文書１（25点）、文書２（18点）、文書３（29点）および文書４（54点）などがある。図３３で、得点修正プログラム３１００は、ステップ３３００でフィードバック得点算出プログラム１２７によって算出された文書の類似度を正規化（例えば、最高類似度を１として０から１の間に）し、これを修正率とする。図３４の例では、文書４が５４点で最高類似度であるので、この５４点で各文書の類似度３４００を正規化し、修正率を得る。この結果、文書１（0.46）、文書２（0.33）、文書３（0.54）および文書４（1.00）という修正率３４０１が得られる。次に、ステップ３３０２において、前回得点記憶部２７０２に格納されている前回の類似度に修正率を乗じる。このことにより、ステップ３３０１で選択文書の類似度が最も高くなるまで、ステップ３３０２を繰り返す。
【０１３８】
図３４の例では、前回得点記憶部２７０２に、文書１（0.08点）、文書２（0.59点）、文書３（0.87点）および文書４（0.32点）という前回の類似度が格納されている。まず、１回目のステップ３３０２で、これらの類似度に修正率が掛けられる。例えば、文書１では、類似度0.08に修正率0.46が掛けられ、0.04という類似度が得られる。この結果、文書１（0.04点）、文書２（0.19点）、文書３（0.47点）および文書４（0.32点）という新たな類似度３４０２が得られる。
【０１３９】
しかし、この１回目のステップ３３０２が終了した時点では、選択文書である文書４（0.32点）は最も高い類似度になっていないので、もう一度ステップ３３０２を繰り返す。この結果、文書１（0.02点）、文書２（0.06点）、文書３（0.25点）および文書４（0.32点）という新たな類似度３４０３が得られる。この結果、文書４（0.32点）が最高類似度となっているため、ここでステップ３３０１のループ処理を終了する。
【０１４０】
図３４に示した例で、本得点修正プログラム３１００の処理を行なわずにレリバンス・フィードバックを行なうと文書４、文書３、文書１、文書２という順で出力される。すなわち、文書２「新しいソフトウェアの開発作業」より文書１「新開発の心電計による発作時の心電図」の方が、選択文書である文書４「ソフトの新製品の新聞発表」と関連が深いと判断される。なお、、本プログラムを実行することによって前回の選択文書との関連が低かった文書１の類似度を低くすることができる。
【０１４１】
以上説明したように、本実施例では、前回のレリバンス・ランキングやレリバンス・フィードバックで算出された各文書の類似度を記憶しておく。レリバンス・フィードバックを行う際には、算出した類似度を０から１の間に正規化し、選択文書が最高類似度になるまでその値を記憶してある前回の類似度に乗ずる。このことにより、ユーザが選択する一連の文書群と関連のない文書の類似度を下げることができ、結果としてユーザが希望するより関連の深い文書から表示を行うことが可能となる。
【０１４２】
以上により、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、前回までのレリバンス・ランキングやレリバンス・フィードバックで得た情報も類似度の算出に用いることにより、n-gramを算出単位とすることによるノイズを削減できる。また、より関連の深い文書から適切にランキングを行うことが可能となる。
【０１４３】
最後に、本発明の第五の実施例について説明する。本実施例の文書検索方法は、レリバンス・フィードバックにおいて、各文書の類似度を算出する際に、前回までの選択文書（すなわち、ユーザニーズと関連の高い一連の文書群）の類似度を高くすることによって、相対的に選択文書との関連の低い文書の類似度を下げる方法である。本方法によれば、n-gram単位にレリバンス・フィードバックを行うことによるノイズを削減することができる。また、第四の実施例と組み合わせることにより、さらにノイズを削減することができる。
【０１４４】
本実施例は、基本的に第一の実施例（図１）と同様の構成をとる。しかし、主メモリ１１１に選択フラグ格納部を確保するところと、検索制御プログラム１１９の制御下のレリバンス・フィードバックプログラム１２３が異なる。本発明を適用した文書検索システムのうち、主メモリ１１１の構成を図３５に示す。本図に示すように本実施例では、主メモリ１１１に選択フラグ格納部３５０１が確保される。また、検索制御プログラム１１９ｂは検索条件式解析プログラム１２０、インデックス検索プログラム１２１、レリバンス・ランキングプログラム１２２、レリバンス・フィードバックプログラム１２３ｃおよびソートプログラム１２８を制御する。レリバンス・フィードバックプログラム１２３ｃはファイル読込みプログラム１２４、n-gram抽出プログラム１２５、出現頻度取得プログラム１２６、フィードバック得点算出プログラム１２７および選択フラグ修正プログラム３５００で構成される。
【０１４５】
以下、本実施例における処理手順のうち、第一の実施例と異なるレリバンス・フィードバックプログラム１２３ｃの処理手順について図３６を用いて説明する。本図は、第一の実施例で示した図１６とステップ３６００が異なる。
【０１４６】
レリバンス・フィードバックプログラム１２３ｃは図３６に示すように、まずステップ１６００でファイル読込みプログラム１２４を起動する。そして、重みファイル１０５および出現頻度ファイル１０６をワークエリア１２９に読み込む。次に、ステップ１６０１でn-gram抽出プログラム１２５を起動し、検索条件式解析プログラム１２０によって検索条件式から抽出された選択文書から重みが所定の基準を満たすn-gramを抽出する。次に、ステップ１６０２において、出現頻度取得プログラム１２６を起動し、n-gram抽出プログラム１２５によって抽出されたn-gramの検索対象文書中の出現頻度を出現頻度ファイル１０６から得る。そして、ステップ１６０３でフィードバック得点算出プログラム１２７を起動し、ファイル読込みプログラム１２４によって読み込まれたn-gramの重み、出現頻度取得プログラム１２６によって得られたn-gramの出現頻度を基にデータベース中の各文書の類似度を算出する。最後に、ステップ３６００で選択フラグ修正プログラム３５００を起動し、選択フラグ格納部３５０１にフラグが設定されている文書の類似度を予め定められた割合で高くする。以上が本発明の文書検索方法を適用した第五の実施例の概略である。
【０１４７】
以下、図３６のステップ３６００で実行される選択フラグ修正プログラム３５００の処理手順について、図３７を用いて具体的に説明する。本図の例では、文書４が選択文書ととなっており、前回までのレリバンス・フィードバックで文書２が選択されているものとする。
【０１４８】
選択フラグ修正プログラム３５００は、レリバンス・フィードバックプログラム１２１ｃによって、フィードバック得点算出プログラム１２７の次に起動される。フィードバック得点算出プログラム１２７では、文書の類似度３４００が算出される。文書の類似度３４００としては、例えば文書１（25点）、文書２（18点）、文書３（29点）および文書４（54点）というようなものがある。得点修正プログラム３５００は、フィードバック得点算出プログラム１２７によって算出された文書の類似度の中で、選択フラグ格納部３５０１にフラグが設定されている文書の類似度を予め定められた割合で高くする。図３７に、選択フラグ格納部３５０１の例を示す。前回までのレリバンス・フィードバックで文書２が選択されているため、文書２に対する選択フラグはONに設定され、それ以外の文書に対する選択フラグはOFFになっている。選択フラグ修正プログラム３５００では、選択フラグが設定されている文書２の類似度を高くする。本例では、元の類似度の1.5倍に類似度を修正している。この結果、文書２の類似度は1.5倍され、27点となる。次に、現在選択されている文書のフラグを選択フラグ格納部３５０１に設定する。図３７では、選択フラグ格納部３５０１ａのように、選択文書である文書４の選択フラグがONに設定される。
【０１４９】
図３７に示した例で、本プログラムの処理を行なわずにレリバンス・フィードバックを行なうと文書４、文書３、文書１、文書２という順で出力される。すなわち、文書２「新しいソフトウェアの開発作業」より文書１「新開発の心電計による発作時の心電図」の方が、選択文書である文書４「ソフトの新製品の新聞発表」と関連が深いと判断される。しかし、本プログラムを実行することによって、ユーザが今までに選択した一連の文書群の類似度を高くし、相対的に文書１のような関連の低い文書の類似度を下げることが可能となる。
【０１５０】
以上説明したように、本実施例では、レリバンス・フィードバック時に、選択文書として選ばれた文書に印を付けておく。類似度を算出する際に、印の付けられた文書（すなわち、ユーザが指定するユーザニーズと関連の高い一連の文書群）の類似度を高くすることによって、相対的に選択文書との関連の低い文書の類似度を下げることができる。このため、より関連の深い文書から順に表示することが可能となる。
【０１５１】
以上の構成により、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、前回までのレリバンス・ランキングやレリバンス・フィードバックで得た情報も類似度の算出に利用することにより、n-gramを算出単位とすることによるノイズを削減できる。また、適切なランキング処理を実現することが可能となる。
【０１５２】
【発明の効果】
本発明によれば、n-gram単位にレリバンス・フィードバックを行なう場合でも、類似度算出に用いるn-gramの種類数や類似度を算出する文書数を限定できる。このため、類似度算出のための処理を軽減することができ、高速なレリバンス・フィードバックを実現することが可能となる。また、レリバンス・フィードバック時に、前回のレリバンス・ランキングやレリバンス・フィードバックの情報も類似度算出に利用することにより、特定の選択文書に対してはノイズとなる文書の類似度を低くすることができる。このため、n-gramを算出単位とすることによるノイズを削減でき、より適切なランキング結果を得ることが可能となる。この結果、文字種の多い日本語等の文書データベースを対象にn-gram単位のレリバンス・フィードバックを行った場合でも、高速で低ノイズのレリバンス・フィードバックが行える文書検索システムを提供することが可能となる。
【図面の簡単な説明】
【図１】本発明の第一の実施例の構成を示す図。
【図２】従来技術の説明図。
【図３】従来技術の説明図。
【図４】従来技術の説明図。
【図５】出現頻度ファイルの説明図。
【図６】重みファイルの説明図。
【図７】本発明の作用の説明図。
【図８】第一の実施例のシステム制御プログラム１１２の処理手順を示すＰＡＤ図。
【図９】第一の実施例の文書制御プログラム１１３の処理手順を示すＰＡＤ図。
【図１０】第一の実施例の検索制御プログラム１１９の処理手順を示すＰＡＤ図。
【図１１】第一の実施例のインデックス作成登録プログラム１１５の処理手順を示すＰＡＤ図。
【図１２】第一の実施例の重みファイル作成登録プログラム１１６の処理手順を示すＰＡＤ図。
【図１３】第一の実施例の検索条件式解析プログラム１２０の処理手順を示すＰＡＤ図。
【図１４】第一の実施例のインデックス検索プログラム１２１の処理手順を示すＰＡＤ図。
【図１５】第一の実施例のレリバンス・ランキングプログラム１２２の処理手順を示すＰＡＤ図。
【図１６】第一の実施例のレリバンス・フィードバックプログラム１２３の処理手順を示すＰＡＤ図。
【図１７】出現頻度算出処理の説明図。
【図１８】重み算出処理の説明図。
【図１９】  n-gram抽出処理の説明図。
【図２０】データベース中の各文献におけるn-gramの出現頻度取得処理の説明図。
【図２１】各文献の類似度算出処理の説明図。
【図２２】第二の実施例の文書登録制御プログラム１１３ａの制御下にあるプログラムの構成を示す図。
【図２３】第二の実施例の文字種分割出現頻度ファイル型インデックス作成登録プログラム２２００の処理手順を示すＰＡＤ図。
【図２４】第二の実施例の出現頻度算出処理の説明図。
【図２５】第二の実施例の出現頻度ファイルの説明図。
【図２６】第二の実施例の重みファイルの説明図。
【図２７】第三の実施例の構成を示す図。
【図２８】第三の実施例のレリバンス・フィードバックプログラム１２３ａの処理手順を示すＰＡＤ図。
【図２９】第三の実施例の検索対象文書抽出プログラム２７００の説明図。
【図３０】第三の実施例の前回得点記憶部２７０２の説明図。
【図３１】第四の実施例のレリバンス・フィードバックプログラム１２３ｂの構成を示す図。
【図３２】第四の実施例のレリバンス・フィードバックプログラム１２３ｂの処理手順を示すＰＡＤ図。
【図３３】第四の実施例の得点修正プログラム３１００の処理手順を示すＰＡＤ図。
【図３４】第四の実施例の得点修正プログラム３１００の処理手順の説明図。
【図３５】第五の実施例の構成を示す図。
【図３６】第五の実施例のレリバンス・フィードバックプログラム１２３ｃの処理手順を示すＰＡＤ図。
【図３７】第五の実施例の選択フラグ修正プログラム３５００の処理手順の説明図。
【符号の説明】
１００…ディスプレイ、１０１…キーボード、１０２…ＣＰＵ、１０３…テキスト、１０４…インデックス、１０５…重みファイル、１０６…出現頻度ファイル、１０７…磁気ディスク装置、１０８…ＦＤＤ、１０９…フロッピディスク、１１０…バス、１１１…主メモリ、１１２…システム制御プログラム、１１３…文書登録制御プログラム、１１４…テキスト登録プログラム、１１５…インデックス作成登録プログラム、１１６…重みファイル作成登録プログラム、１１７…重み算出プログラム、１１８…重みファイル作成プログラム、１１９…検索制御プログラム、１２０…検索条件式解析プログラム、１２１…インデックス検索プログラム、１２２…レリバンス・ランキングプログラム、１２３…レリバンス・フィードバックプログラム、１２４…ファイル読込みプログラム、１２５…n-gram抽出プログラム、１２６…出現頻度取得プログラム、１２７…フィードバック得点算出プログラム、１２８…ソートプログラム、１２９…ワークエリア、
【図１】
0003674119.tif 000019
【図２】
0003674119.tif 000020
【図３】
0003674119.tif 000021
【図４】
0003674119.tif 000022
【図５】
0003674119.tif 000023
【図６】
0003674119.tif 000024
【図７】
0003674119.tif 000025
【図８】
0003674119.tif 000026
【図９】
0003674119.tif 000027
【図１０】
0003674119.tif 000028
【図１１】
0003674119.tif 000029
【図１２】
0003674119.tif 000030
【図１３】
0003674119.tif 000031
【図１４】
0003674119.tif 000032
【図１５】
0003674119.tif 000033
【図１６】
0003674119.tif 000034
【図１７】
0003674119.tif 000035
【図１８】
0003674119.tif 000036
【図１９】
0003674119.tif 000037
【図２０】
0003674119.tif 000038
【図２１】
0003674119.tif 000039
【図２２】
0003674119.tif 000040
【図２３】
0003674119.tif 000041
【図２４】
0003674119.tif 000042
【図２５】
0003674119.tif 000043
【図２６】
0003674119.tif 000044
【図２７】
0003674119.tif 000045
【図２８】
0003674119.tif 000046
【図２９】
0003674119.tif 000047
【図３０】
0003674119.tif 000048
【図３１】
0003674119.tif 000049
【図３２】
0003674119.tif 000050
【図３３】
0003674119.tif 000051
【図３４】
0003674119.tif 000052
【図３５】
0003674119.tif 000053
【図３６】
0003674119.tif 000054
【図３７】
0003674119.tif 000055