(57)【特許請求の範囲】
【請求項１】
あらかじめ用意された複数の文書から任意の文書数だけをサンプリングするサンプリング手段と、
前記サンプリング手段によりサンプリングされた文書について、前記複数の文書に出現するキーワード別に文書毎の類似度を求め、当該類似度の分布から前記キーワード別に文書を絞り込むための類似度で示すしきい値を算出する算出手段と、
キーワード別に前記算出手段により算出されたしきい値以上の類似度をもつ文書を前記複数の文書から抽出する第１抽出手段と、
キーワード別に前記第１抽出手段により抽出された文書の当該文書と類似度との関係をインデックスとして登録するインデックス登録手段と、
複数のキーワードを含んだ検索質問を入力する質問入力手段と、
前記質問入力手段により入力された検索質問のキーワード別に、前記インデックス登録手段に登録されたインデックスを抽出する第２抽出手段と、
前記第２抽出手段により抽出されたすべてのインデックスに基づいて文書毎の類似度を集計する集計手段と、
前記集計手段の集計結果を回答する回答手段と、
を備えたことを特徴とする類似文書検索装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ユーザの検索質問に従って類似文書を検索する類似文書検索装置および類似文書検索方法に関する。
【０００２】
【従来の技術】
類似文書検索では、一般に、Ｃｏｓｉｎｅ  Ｍｅａｓｕｒｅもしくは確率モデルが使用されている。例えば、Ｃｏｓｉｎｅ  Ｍｅａｓｕｒｅでは、検索要求をｑ、文書をｄ、全文書集合をＴ、文書の大きさをＷｔ、文書中に含まれる単語をｗｉ，ｔとすると、検索式の文書に対する類似度は次式（１）によって与えられる。
【０００３】
【数１】
0003715413.tif 000002
【０００４】
この式を忠実に実行すると、一般の転置ファイル（ｉｎｖｅｒｔｅｄ  ｆｉｌｅ）を使用した類似検索では、最悪な場合、検索要求の単語がもつ文書数の合計分だけワーク領域が用意され、そのワーク領域中に文書番号に対する類似度が格納される。そして、最後に類似度の大小関係で文書番号の順番についてソートが行われ、その結果がユーザに提示される。ところが、この文書毎の類似度の計算やソートにかなりの時間が必要となる。
【０００５】
そこで、具体例を挙げる。図１７は従来の類似文書検索装置による類似文書検索の原理を説明する図である。従来、ユーザが検索質問として検索式である文書を入力すると（図１７の▲１▼）、その文書から文書中に含まれるキーワードへの分割が行われる（図１７の▲２▼）。ここでは、キーワードＡ，Ｂ，Ｃの３つに分割された例を挙げる。
【０００６】
例えば、文書が１０万件登録されていた場合には、その１０万件の文書（文書番号Ｄ１〜Ｄ１０００００）からなる転置インデックス（例えば文書番号と頻度との対応関係）より、キーワードＡ，Ｂ，Ｃがどの文書にどれだけの頻度で出現しているのかわかる（図１７の▲３▼）。キーワードＡ，Ｂ，Ｃについては、例えば、文書番号Ｄ１の文書中で頻度がそれぞれ“２”，“０”，“５”となり、文書番号Ｄ１０００００の文書中で頻度がそれぞれ“０”，“８”，“２”となる。
【０００７】
そして、頻度に対して重みなどを付加することでキーワード別に各文書の類似度が算出され、その後、キーワードＡ，Ｂ，Ｃ間の類似度が例えば論理和で加算される（図１７の▲４▼）。これにより、文書別の類似度が総合得点として得られる。この段階では、得点に関係なく文書が並んでいることから、さらに文書が得点順に並ぶように、文書番号にソートがかけられる。その結果、転置インデックスに登録されている文書番号は、例えば、Ｄ１０，Ｄ９９９９８…のように得点順に並べられる（図１７の▲５▼）。
【０００８】
【発明が解決しようとする課題】
ところが、従来例による類似文書検索装置では、キーワード別に求めたすべての文書から文書毎に類似度を集計し、その集計結果をさらに類似順にソートするようにしたので、検索対象となる文書数が多くなればなるほど、類似度の集計計算およびソートに時間を要することはもちろん、ソート量に応じて膨大な記憶容量を要するという問題があった。
【０００９】
この発明は、上述した従来例による問題を解消するため、類似文書の検索を高速化し、かつ、その検索結果に要する記憶容量を小さく押さえることが可能な類似文書検索装置および類似文書検索方法を得ることを目的とする。
【００１０】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項１の発明に係る類似文書検索装置は、あらかじめ用意された複数の文書から任意の文書数だけをサンプリングするサンプリング手段と、前記サンプリング手段によりサンプリングされた文書について、前記複数の文書に出現するキーワード別に文書毎の類似度を求め、当該類似度の分布から前記キーワード別に文書を絞り込むための類似度で示すしきい値を算出する算出手段と、キーワード別に前記算出手段により算出されたしきい値以上の類似度をもつ文書を前記複数の文書から抽出する第１抽出手段と、キーワード別に前記第１抽出手段により抽出された文書の当該文書と類似度との関係をインデックスとして登録するインデックス登録手段と、複数のキーワードを含んだ検索質問を入力する質問入力手段と、前記質問入力手段により入力された検索質問のキーワード別に、前記インデックス登録手段に登録されたインデックスを抽出する第２抽出手段と、前記第２抽出手段により抽出されたすべてのインデックスに基づいて文書毎の類似度を集計する集計手段と、前記集計手段の集計結果を回答する回答手段と、を備えたことを特徴とする。
【００１１】
この請求項１の発明によれば、任意の文書数だけをサンプリングした文書で事前にキーワード別のしきい値を求め、そのしきい値以上の類似度をもつ文書とその類似度との関係をインデックスとしてあらかじめ用意しておき、入力された検索質問のキーワード別に、インデックス中の文書だけで文書毎の類似度を集計して回答するようにしたので、全文書が集計対象とはならず、検索質問中のキーワード毎に集計対象を絞り込んだ状態で文書毎の類似度を集計して検索結果を得ることができ、これによって、類似文書の検索を高速化し、かつ、その検索結果に要する記憶容量を小さく押さえることが可能であり、さらに、検索時に、検索質問中のキーワード別に文書の絞り込みが不要となり、インデックスから直接類似度の集計を行うことができ、これによって、膨大な文書数のデータベースを検索する場合であっても、類似検索を一層高速化することが可能である。
【００２６】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係る類似文書検索装置および類似文書検索方法の好適な実施の形態を詳細に説明する。
【００２７】
（実施の形態１）
まず、原理について説明する。図１はこの発明の実施の形態１による類似文書検索装置を機能的に示したブロック図である。図１に示した類似文書検索装置は、質問入力部１、キーワード分割部２、キーワード類似度算出部３、キーワード別高類似文書判定部４、しきい値設定部５、類似度集計部である全類似度累計およびソート部６、および回答出力部７により構成される。
【００２８】
質問入力部１は、図示せぬユーザインタフェースにより検索質問を入力する。キーワード分割部２は、入力された検索質問をキーワード列に分割してキーワードを得る。キーワード類似度算出部３は、あらかじめ用意された転置インデックスを参照して分割されたキーワード別に文書毎の類似度を算出する。なお、検索対象としてあらかじめＴ（Ｔは自然数）個の文書が用意される。転置インデックスは、Ｔ個の文書中に出現するキーワード別に各文書での出現頻度を対応付けたものである。
【００２９】
キーワード別高類似文書判定部４は、分割されたキーワード別にしきい値設定部５で設定されたしきい値以上の類似度をもつ文書を判定する。しきい値設定部５は、キーワード別高類似文書判定部４に任意に設定したしきい値を供給する。全類似度累計およびソート部６は、各文書について文書番号および類似度から、しきい値以上の類似度をもつ文書を累計するとともに、類似度の高い順に文書番号の並びをソートする。回答出力部７は、ソートされた文書番号を図示せぬユーザインタフェースなどを通じて表示出力，印刷出力，伝送出力などする。
【００３０】
続いて、上記機能ブロックを用いて検索原理について説明する。図２はこの実施の形態１による類似文書検索の原理を説明する図である。まず、質問入力部１では、ユーザにより検索質問（検索式としての文書）が入力される（図２の▲１▼）。続くキーワード分割部２では、その文書からキーワードへの分割が行われる（図２の▲２▼）。ここでも、図１７の説明に合わせて、同様の検索質問からキーワードＡ，Ｂ，Ｃの３つに分割される。
【００３１】
そして、キーワード別類似度算出部３では、図１７に示した転置インデックスにより各キーワードＡ，Ｂ，Ｃの文書中における頻度が参照され（図２の▲３▼）、各頻度に対して重みなどが付加され、キーワード別に各文書の類似度が算出される。キーワード別高類似文書判定部４は、キーワード別類似度算出部３で算出された類似度をしきい値設定部５から供給されるしきい値と比較して、そのしきい値以上の類似度をもつ文書すなわち文書番号を検索回答対象として判定する（図２の▲４▼）。この段階に入ると、各キーワードＡ，Ｂ，Ｃについて、もともと回答対象として１０万件あった文書を例えば１万件まで絞り込むことができる。ここでは、全キーワードＡ，Ｂ，Ｃがいずれも共通して１万件まで絞り込めたものとする。
【００３２】
そして、つぎの全類似度累計およびソート部６では、キーワードＡ，Ｂ，Ｃ間で類似度（図２の▲４▼）が加算される（図２の▲５▼）。このため、従来、３０万件（文書数“１０万”×キーワード数“３”）で論理演算が行われていたが、今回は絞り込みにより３万件（文書数“１万”×キーワード数“３”）に絞り込まれｔｑあ状態で論理演算が行われる。このため、論理演算は高速化される。これにより、絞り込まれた文書別の類似度が総合得点として得られる。この段階では、類似度の得点に関係なく文書が並んでいることから、さらに文書が得点順に並ぶように、文書番号にソートがかけられる。このソートでも、ソート数が従来と比べて１／１０に絞り込まれていることから、処理の高速化が図られる。
【００３３】
その結果、文書番号は、例えば、Ｄ１０，Ｄ９９９９８…のように得点順に並べられる（図２の▲６▼）。この検索結果について、データ数（文書番号）が最小で１万件、最大でも３万件となるので、従来に比べて格段にデータの記憶容量が削減される。このようにして得られた文書番号は、回答出力部７により表示されたり、印刷されたり、通信により外部に送出される。
【００３４】
つぎに、上述した原理をハードウェア的に実現した場合について説明する。図３はこの発明の実施の形態１による類似文書検索装置をハードウェア的に示したブロック図である。図３に示した類似文書検索装置は、ＣＰＵ１０１，ＲＯＭ１０２，ＲＡＭ１０３，キーボード１０４，マウス１０５，ハードディスクドライブ（ＨＤＤ）１０６，フロッピーディスクドライブ（ＦＤＤ）１０７，ディスプレイ１０８，通信ユニット１０９，各部を接続してアドレス，データ，制御信号などを伝送するバス１１０などにより構成される。
【００３５】
ＣＰＵ１０１は、ＲＯＭ１０２に格納されたプログラム，ＨＤＤ１０６のアプリケーション１０６ａ，通信ユニット１０９を介して受信されるアプリケーションなどの各種プログラムに従って装置全体を制御する。このＣＰＵ１０１は、後述する図４および図５の各フローチャートに従うアプリケーションプログラムに従って、前述した質問入力部１，キーワード分割部２，キーワード別類似度算出部３，キーワード別高類似文書判定部４，全類似度累計およびソート部６および回答出力部７による機能を実現する。ＲＯＭ１０２は、ＣＰＵ１０１を各種プログラムに従って動作させるためのプログラムを格納している。
【００３６】
ＲＡＭ１０３は、ワークエリアの他に、検索処理時にしきい値を格納するために使用するしきい値レジスタ１０３ａ，検索質問が分割されたキーワードを格納するためにキーワードレジスタ１０３ｂをそれぞれ格納するバッファ１２ａ，１２ｂ，１２ｃなどを設けている。
【００３７】
キーボード１０４はユーザがしきい値を設定したり、検索質問を入力する場合などで操作するキーを備えている。マウス１０５は、ディスプレイ１０８上の位置入力を行うポインティングデバイスである。このマウス１０５については、しきい値の設定や検索質問の入力時にキーボード１０４と合わせて操作する仕様にしてもよい。ＨＤＤ１０６は、ハードディスクを内蔵し、ＣＰＵ１０１の制御に従ってデータのリード／ライトを行う大容量記憶装置である。
【００３８】
このＨＤＤ１０６は、図示せぬＯＳ（オペレーティングシステム）の他に、図４および図５のフローチャートに従う動作を実現するためのアプリケーション１０６ａ，文書ファイル１０６ｂ，転置インデックス１０６ｃ，ソートファイル１０６ｄなどをハードディスクに記憶する。ＦＤＤ１０７は、ＣＰＵ１０１の制御に従って着脱自在のフロッピーディスクに対してデータのリード／ライトを行う。ディスプレイ１０８はＣＰＵ１０１の制御に従って各種プログラムの実行で必要な表示画面を形成する。通信ユニット１０９は、回線やケーブルを介して外部装置と通信を行うためのユニットである。
【００３９】
つぎに、上記ハードウェア構成による動作について説明する。図４および図５はこの実施の形態１による動作を説明するフローチャート、図６はこの実施の形態１において類似度を使用したインデックスの一例を示す図、図７はこの実施の形態１によるキーワードとしきい値との関係例を示す図、図８はこの実施の形態１によるキーワードとしきい値以上の類似度をもつ文書との関係例を示す図、図９は図８の関係例をキーワード別に文書番号順にソートした場合の一例を示す図、そして、図１０はこの実施の形態１による検索結果例を示す図である。なお、転置インデックス１０６ｃに登録されている各キーワードには、あらかじめ類似度のしきい値が設定されているものとする。各キーワードとしきい値との関係はＲＡＭ１０３もしくはハードディスクにあらかじめ格納されているものとする。
【００４０】
まず、ディスプレイ１０８に検索質問の入力画面（図示省略）が形成されると、その入力画面に対してユーザはキーボード１０４やマウス１０５の操作により検索質問（文書）を入力する。その入力された検索質問はＲＡＭ１０３に格納される（ステップＳ１）。ここで、入力された検索質問は複数のキーワード列より構成されるものとする。その一例として、“日本の金メダル”を検索質問とする。
【００４１】
このようにして検索質問が入力されると、その検索質問はその文書を構成する個々のキーワードに分割される（ステップＳ２）。すなわち、検索質問“日本の金メダル”は２つのキーワード“日本”，“金メダル”に分割される。各キーワード“日本”，“金メダル”には、例えば分割順に番号が１，２の昇順で付加される。このため、キーワード“日本”，“金メダル”はそれぞれ番号“１”、 “２”を対応付けてキーワードレジスタ１０３ｂに格納される（ステップＳ３）。
【００４２】
つぎに、昇順でまず１番目のキーワード“日本”がキーワードレジスタ１０３ｂから読み出される（ステップＳ４）。このように、キーワードが読み出せた場合にはキーワードの存在が確認され（ステップＳ５）、処理はステップＳ９（図５参照）に移行する。ところが、キーワードをすべて読み出した場合には、キーワードの存在が確認されず、この場合には各キーワードについて文書の絞り込みが完了したことから（ステップＳ５）、続く全類似度の累計およびソート処理のため、処理はステップＳ６に移行する。
【００４３】
さて、処理がステップＳ９に移行した場合には、まず、転置インデックス１０６ｃが参照され、そのキーワード“日本”が出現する文書に関して、［文書番号，頻度］の組が取得される。この［文書番号，頻度］の組に基づいて重み付けなどの処理を通じて［文書番号，類似度］の組が求められる。このキーワード“日本”に関する［文書番号，類似度］の組のインデックスは、例えば図６に示したように、［１，１．３］，［２，２．５］，［１０，１０．３］，［１４，３．１］…のようになる。このインデックスはＲＡＭ１０３に一時格納される。
【００４４】
そして、キーワード“日本”のしきい値がＲＡＭ１０３もしくはハードディスクから読み出され、そのしきい値が例えば５．３であれば、しきい値“５．３”はキーワード“日本”に対応させてしきい値レジスタ１０３ａに格納される（ステップＳ１０）。続くステップＳ１１では、図６のインデックスが参照され、しきい値レジスタ１０３ａに格納されたしきい値“５．３”以上の類似度をもつ文書の存在が判定される。その際、ＲＡＭ１０３には、ワーク領域として一定個数分（例えば１万個：全文書数の１／１０）の要素をとるヒープが設けられ、そのヒープにしきい値以上の類似度をもつ文書の文書番号がプッシュされる。
【００４５】
このヒープへのプッシュでは、収容できる個数が決められていることから、類似度の小さい組から順にヒープからはじき出される。最終的には、類似度の高い組から降順で１万個分の［類似度，文書番号］の組が残る。ヒープにおいては、図８に示したように、類似度の小さい組から［６．１，２４］，［６．１，２０］，［６．１，１９］，［６．５，１００］…の順で１万個分の［類似度，文書番号］の組が配列される。このようにしてヒープに残った［類似度，文書番号］の組は、今度はヒープ上で文書番号の昇順にソートされる（ステップＳ１２）。そして、処理はステップＳ４に戻る。
【００４６】
処理がステップＳ４に戻ると、つぎ（２番目）のキーワード“金メダル”がキーワードレジスタ１０３ｂから読み出され、この場合にもキーワードが存在していることから、処理はステップＳ９に移行する。処理がステップＳ９に移行した場合には、まず、転置インデックス１０６ｃが参照され、そのキーワード“金メダル”が出現する文書に関して、［文書番号，頻度］の組が取得される。この［文書番号，頻度］の情報に基づいて重み付けなどの処理を通じて［文書番号，類似度］が求められる。
【００４７】
このキーワード“金メダル”に関する［文書番号，類似度］のインデックスは、例えば図６に示したように、［５，２．４］，［１０，３．５］，［１５，１．４］，［３１，２．８］…のようになる。このインデックスはＲＡＭ１０３に一時格納される。
【００４８】
そして、キーワード“金メダル”のしきい値がＲＡＭ１０３から読み出され、そのしきい値が例えば６．３であれば、しきい値“６．３”はキーワード“金メダル”に対応させてしきい値レジスタ１０３ａに格納される（ステップＳ１０）。続くステップＳ１１では、図６のインデックスが参照され、しきい値レジスタ１０３ａに格納されたしきい値“６．３”以上の類似度をもつ文書の存在が判定される。その際、ＲＡＭ１０３には、キーワード“日本”の場合と同様にワーク領域として一定個数分（例えば１万個）の要素をとるヒープが設けられる。
【００４９】
キーワード“金メダル”の場合には、例えば、図８に示したヒープのように、類似度の小さい組から［７．２，３５］，［７．２，３６］，［７．２，８１］，［７．３，１９］…の順で１万個分の［類似度，文書番号］の組が配列される。このようにしてヒープに残ったキーワード“金メダル”の［類似度，文書番号］の組は、今度はヒープ上で文書番号の昇順にソートされる（ステップＳ１２）。そして、処理はステップＳ４に戻る。
【００５０】
再びステップＳ４においてキーワードレジスタ１０３よりキーワードを読み出す処理が実行されるが、前述のキーワード“金メダル”の読み出してキーワードがすべて読み出されたので、つぎのキーワードはなし（空）として（ステップＳ５）、処理はステップＳ６に移行する。
【００５１】
続くステップＳ６では、ＲＡＭ１０３のヒープに配列された全キーワードについて文書毎の類似度が累計され、その累計結果が個々のキーワードについて［類似度，文書番号］をプッシュした方法でヒープ（１万個分）にプッシュされる。その結果、ヒープには、少なくともキーワード“日本”とキーワード“金メダル”とのいずれか一方が存在する文書の文書番号列が類似度の降順に配列される。
【００５２】
さらに、ステップＳ７において、ヒープに配列された１万個の［類似度，文書番号］の組が、例えば、図１０に示したヒープのように、類似度の大きい組から［１３．４，１９］，［１３．２，１０９］，［１３．１，４９］…の順でソートされる。
【００５３】
このソート結果はディスプレイ１０８に表示され、これが検索質問に対する回答となる（ステップＳ８）。ただし、この回答では一度に１万個分の表示は不可能なので、例えば２０個ずつ文書番号を表示することで対処する。また、このソート結果は、ソートファイル１０６ｄとしてＨＤＤ１０６のハードディスクに保存したり、容量に応じてフロッピーディスクに保存したり、あるいは、通信ユニット１０９を介して外部に通知するようにしてもよい。
【００５４】
以上の説明では、キーボード１０４やマウス１０５から検索質問を入力し、ディスプレイ１０８に検索結果を表示するスタンドアロンスタイルの一例を挙げているが、インターネットやＬＡＮ（ローカルエリアネットワーク）などのネットワーク上にこの類似文書検索装置を接続させた場合には、その装置がネットワークコンピュータとなる。この場合には、通信ユニット１０９を介して外部装置との間で、検索質問を入力し、その検索結果（ソート結果）を回答することができる。
【００５５】
以上説明したように、この実施の形態１によれば、入力された検索質問のキーワード別に、あらかじめ用意された複数の文書に基づいて文書毎の類似度を算出して、その算出された文書毎の類似度からあらかじめ用意されたしきい値以上の類似度をもつ文書を判定し、その判定されたすべての文書に基づいて文書毎の類似度を集計して回答する。これにより、転置インデックス１０６ｃに登録された全文書が集計対象とはならず、検索質問中のキーワード毎に集計対象を絞り込んだ状態で検索結果を得ることができるので、類似文書の検索を高速化し、かつ、その検索結果に要する記憶容量を小さく押さえることが可能である。
【００５６】
また、集計の際に、類似度をもつ文書の順番を類似度の大きい方から並ぶようにソートするようにしたので、類似度の大小関係を整理した状態で回答することが可能である。
【００５７】
また、ネットワークを介して検索質問の入力およびその回答を行うようにしたので、スタンドアロンスタイルに限定されず、ネットワークコンピュータとしての利用を図ることが可能である。
【００５８】
また、各キーワードについて集計前に［文書番号，類似度］の組の絞り込みを行うようにしたので、検索の高速化、ならびに、検索結果に要する記憶容量の抑制のため、各キーワードについて、しきい値以上の類似度をもつ文書が必要以上に多くなることを事前に防止することが可能である。
【００５９】
（実施の形態２）
さて、前述の実施の形態１では、各キーワードのしきい値を設定する場合について述べていないが、以下に説明する実施の形態２では、各キーワードのしきい値を設定する具体例について述べる。なお、この実施の形態１は、全体構成（機能的、ハードウェア的）を前述した実施の形態１と同様のものとするため、図示およびその説明を省略する。
【００６０】
そこで、以下に構成，動作ともに要部についてのみ説明する。まず、構成について説明する。図１１はこの発明の実施の形態２による類似文書検索装置の要部を機能的に示すブロック図である。この実施の形態２では、機能的な構成の一部が前述した実施の形態１と異なる。すなわち、図１１に示したように、図１のしきい値設定部５に替わってしきい値設定部５０が設けられる。
【００６１】
しきい値設定部５０は、サイズ設定部５１，サンプリング部５２およびしきい値算出部５３により構成される。サイズ設定部５１は、しきい値を設定する上で、キーワード別に最大候補数を設定する。この設定は、ユーザインタフェースを通じて行われる。サンプリング部５２は、エントリされたキーワードの文書について転置インデックス１０６ｃの先頭から所定個数分の文書をサンプリングして、類似度の分布を求める。しきい値算出部５３は、サンプリングで求められた類似度の分布とサイズ設定部５１で設定された最大候補数とからしきい値を算出し、注目のキーワード（しきい値の設定対象となるキーワードの意味）とそのしきい値とを対応させてＲＡＭ１０３もしくはハードディスクに登録する。
【００６２】
つぎに、動作について説明する。図１２はこの実施の形態２による動作の要部を説明するフローチャートであり、図１３はこの実施の形態２によるキーワード別の平均，分散およびしきい値の関係例を示す図である。なお、以下に説明するしきい値設定部５０とこれに関連する各部の機能とは、ＨＤＤ１０６のアプリケーション１０６ａに付加されるものである。なお、しきい値は転置インデックス１０６ｃと同じよう事前に準備されるので、以下に説明するしきい値設定処理は転置インデックス１０６ｃの生成と同様に事前に実施されるものである。
【００６３】
ここでは、転置インデックス１０６ｃの文書中のあるキーワードに対してしきい値を設定する動作について説明する。まず、転置インデックス１０６ｃの参照により、注目のキーワードに対する［文書番号，頻度］の組が取得され、ＲＡＭ１０３に格納される（ステップＳ２１）。続いて、サイズ設定部５１の機能として、注目のキーワードについて、しきい値以上の類似度をもつ文書がいくつ取得されるのか、その理想とされる数が最大候補数Ｊとして任意にＲＡＭ１０３に設定される（ステップＳ２２）。この最大候補数Ｊはユーザインタフェースにより任意に設定される数である。
【００６４】
さらに、サンプリング部５２の機能として、しきい値を求める際に使用する文書の数がサンプリング数Ｓとして任意にＲＡＭ１０３に設定される（ステップＳ２３）。このサンプリング数Ｓは、ユーザインタフェースにより任意に設定される数であり、サンプリング対象の先頭からＳ番目までの範囲を意味する。
【００６５】
ステップＳ２１で取得された［文書番号，頻度］の組のうち、先頭からＳ個（サンプリング数Ｓ）までの組に対して文書の類似度が算出され、さらに平均，分散などの統計量が求められる（ステップＳ２４）。ここで、平均をＭ、分散をσで表す。
【００６６】
そして、類似度の分布が特定の統計モデルに基づいている、すなわち正規分布をしていると仮定すると、先頭からＪ個（最大候補数Ｊ）が得られるような類似度のしきい値が次式（２）により求められる（ステップＳ２５）。
【００６７】
Ｔｈ＝Ｍ＋σ＊Ｄ    ・・・（２）
ここで、Ｔｈはしきい値であり、Ｄは距離値である。この距離値Ｄは、正規分布中、上位のＪ／Ｓ（％）を満たす平均の値である。以上のステップＳ２４およびステップＳ２５は、しきい値算出部５３の機能を示している。
【００６８】
このようにして求められたしきい値は、注目のキーワードに対応させてＲＡＭ１０３もしくはハードディスクに登録される（ステップＳ２６）。具体的には、キーワード“日本”，“金メダル”別に、平均，分散，しきい値のデータが記憶される（図１３参照）。図１３の例では、キーワード“日本”に関する平均，分散，しきい値は、それぞれ３．３，１．４，５．３となり、キーワード“金メダル”に関する平均，分散，しきい値は、それぞれ４．６，１．７，６．３となる。
【００６９】
なお、このしきい値設定処理は、単語ひとつよりなるキーワードに限らず、複合語，Ｎ−ｇｒａｍなどの文字列についても適用可能とする。複合語，Ｎ−ｇｒａｍなどの文字列を単語として認識させるには、キーボード１０４やマウス１０５を操作して単語としての登録を行っておけばよい。
【００７０】
以上説明したように、この実施の形態２によれば、任意の文書数だけをサンプリングした文書で事前にキーワード別のしきい値を求めておくようにしたので、しきい値の精度を無視すれば、各キーワードについて全文書を対象にしてしきい値を求めるような処理負担を軽減することが可能である。
【００７１】
（実施の形態３）
さて、上述した実施の形態２を前述の実施の形態１に適用したものを実施の形態３として以下に説明する。実施の形態によるしきい値設定方法は、前述した実施の形態１において、例えばしきい値が設定されていないキーワードがあった場合にそのキーワードについて文書を絞り込む前に実施すればよい。
【００７２】
図１４はこの発明の実施の形態３による動作の要部を説明するフローチャートである。図５のステップＳ９においてキーワードの［文書番号，類似度］が取得されると、つぎに、注目のキーワードについてしきい値がＲＡＭ１０３もしくはハードディスクに登録されているか否か判断する（ステップＳ４１）。ここで、キーワードに対するしきい値があらかじめ登録されているか否かは、キーワードが複合語か、それとも文字Ｎ−ｇｒａｍかによって決まる。
【００７３】
すなわち、キーワード“日本”のように、単語ひとつで構成されるキーワードについては、あらかじめしきい値を計算して対応付けておくことが可能である。一方、複合語や文字Ｎ−ｇｒａｍの場合には、単語の組み合わせなどの点から、すべてのケースについてあらかじめ計算しておくと、その記憶のために、転置インデックス１０６ｃとして膨大な記憶容量が必要となる。そこで、この実施の形態３では、複合語や文字Ｎ−ｇｒａｍを構成するキーワードについては、検索の時点でしきい値を計算することにする。この複合語やＮ−ｇｒａｍに該当するものを前述のキーワード“金メダル”として以下に説明する。
【００７４】
したがって、ステップＳ４１では、キーワード“日本”については、しきい値は登録済みであると判断されるが、キーワード“金メダル”については、しきい値は未登録であると判断される。このため、キーワード“日本”の場合には、処理は、前述した実施の形態１の通りにステップＳ１０に移行するが、キーワード“金メダル”の場合には、処理はステップＳ４２に移行する。
【００７５】
このステップＳ４２では、前述した実施の形態２によるしきい値設定処理（図１２参照）が実施される。このように、ステップＳ４２で未登録のしきい値が設定されると、その未登録のしきい値とこれに対応するキーワードとが対応付けてＲＡＭ１０３もしくはハードディスクに登録される。この後、処理はステップＳ１１に移行する。
【００７６】
以上説明したように、この実施の形態３によれば、検索処理中であっても、任意の文書数だけをサンプリングした文書で事前にキーワード別のしきい値を求めておくようにしたので、しきい値の精度を無視すれば、検索処理中において、各キーワードについて全文書を対象にしてしきい値を求めるような処理負担を軽減することが可能である。
【００７７】
（実施の形態４）
さて、この発明は、以下に説明する実施の形態４のように、前述した実施の形態１〜３で述べたしきい値以上の類似度をもつ文書について、図９に示したごとく高類似文書順に並ぶインデックスをあらかじめハードディスクなどの記憶装置に登録するように構成してもよい。以下に、動作についてのみ説明する。
【００７８】
図１５はこの発明の実施の形態４による動作の要部を説明するフローチャートであり、図１６はこの実施の形態４によるインデックス例を示す図である。前述した実施の形態２では、図１２のステップＳ２６によりしきい値を登録していたが、この実施の形態４では、ステップＳ２６はなく、ステップＳ２５の後にステップＳ５１に移行する。
【００７９】
ステップＳ５１では、ＲＡＭ１０３に設けられた最大候補数Ｊ分のヒープに対して、ステップＳ２５で求められたしきい値Ｔｈ以上の類似度をもつ文書すなわち［文書番号，類似度］の組がプッシュされる。ヒープにＪ個分の［文書番号，類似度］の組がプッシュされた後は、さらにヒープへのプッシュが行われると、最小の類似度をもつ組（要素）から捨てられる。このため、最終的には、類似度の大きい方からＪ個分の組が抽出された形でヒープに残る。
【００８０】
そして、より正確なしきい値を求める指示の有無がユーザインタフェースを通じて確認され（ステップＳ５２）、ステップＳ２５で求めたしきい値よりもさらに正確なしきい値を求める場合には、処理はステップＳ５３に移行し、一方、ステップＳ２５で求めたしきい値で十分な場合には、処理はステップＳ５４に移行する。ステップＳ５３では、ステップＳ５１でヒープにプッシュされた［文書番号，類似度］の組を類似度の小さい順にソートし、しきい値Ｔｈを最小の類似度で更新する処理が行われる。この後、処理はステップＳ５４に移行する。
【００８１】
ステップＳ５４において、ヒープ内の［文書番号，類似度］の組は文書番号順に昇順にソートされ、そのソート結果によりインデックスが構築される。このインデックスは例えばハードディスク（ＨＤＤ１０６）に登録される。インデックスの具体例としては、図１６に示した構成となる。
【００８２】
すなわち、インデックスは、キーワード“日本”，“金メダル”のそれぞれに対してしきい値と［文書番号，類似度］の組が対応付けた構成となる。図１６に示したインデックスでは、エントリが上位Ｓ個のみから構成され、さらにより正確なしきい値となったため、前述したしきい値とは異なる値をとっている。キーワード“日本”について、しきい値は２．９となり、［文書番号，類似度］の組は、［１０，１０．３］，［１４，３．１］，［３５，４．０］となる。また、キーワード“金メダル”について、しきい値は３．５となり、［文書番号，類似度］の組は、［１０，３．５］，［４１，３．９］，［４１，３．９］…となる。
【００８３】
このようにして転置インデックス１０６ｃに登録されている各キーワードのインデックスをあらかじめ用意しておけば、前述した実施の形態１におけるキーワード別類似度算出部３およびキーワード別高類似文書判定部４の機能が不要となる（図１参照）。すなわち、実施の形態１による図４および図５のフローチャートのうち、図４のフローチャートで示される動作で足りることになる。この実施の形態４は、ステップＳ１〜ステップＳ７のうちでステップＳ５を除く動作で足り、ステップＳ６においては、キーワード別のインデックスをハードディスクから抽出し、インデックスに示されるソート結果を累計して、一定個数分の文書番号を得るようにすればよい。
【００８４】
以上説明したように、この実施の形態４によれば、キーワード別にしきい値以上の類似度をもつ文書についてあらかじめインデックスとして形成しておけば、転置インデックス１０６ｃの文書数が膨大になればなるほど、実施の形態１におけるしきい値と各文書の類似度との比較処理が省けることによる時間短縮の効果が大きくなる。これにより、前述した実施の形態１〜３にくらべてさらに検索処理を高速化することが可能である。
【００８５】
【発明の効果】
以上説明したように、請求項１の発明によれば、任意の文書数だけをサンプリングした文書で事前にキーワード別のしきい値を求め、そのしきい値以上の類似度をもつ文書とその類似度との関係をインデックスとしてあらかじめ用意しておき、入力された検索質問のキーワード別に、インデックス中の文書だけで文書毎の類似度を集計して回答するようにしたので、全文書が集計対象とはならず、検索質問中のキーワード毎に集計対象を絞り込んだ状態で文書毎の類似度を集計して検索結果を得ることができ、これによって、類似文書の検索を高速化し、かつ、その検索結果に要する記憶容量を小さく押さえることが可能であり、さらに、検索時に、検索質問中のキーワード別に文書の絞り込みが不要となり、インデックスから直接類似度の集計を行うことができ、これによって、膨大な文書数のデータベースを検索する場合であっても、類似検索を一層高速化することが可能な類似文書検索装置が得られるという効果を奏する。
【図面の簡単な説明】
【図１】この発明の実施の形態１による類似文書検索装置を機能的に示したブロック図である。
【図２】この実施の形態１による類似文書検索の原理を説明する図である。
【図３】この発明の実施の形態１による類似文書検索装置をハードウェア的に示したブロック図である。
【図４】この実施の形態１による動作を説明するフローチャートである。
【図５】この実施の形態１による動作を説明するフローチャートである。
【図６】この実施の形態１において類似度を使用したインデックスの一例を示す図である。
【図７】この実施の形態１によるキーワードとしきい値との関係例を示す図である。
【図８】この実施の形態１によるキーワードとしきい値以上の類似度をもつ文書との関係例を示す図である。
【図９】図８の関係例をキーワード別に文書番号順にソートした場合の一例を示す図である。
【図１０】この実施の形態１による検索結果を示す図である。
【図１１】この発明の実施の形態２による類似文書検索装置の要部を機能的に示すブロック図である。
【図１２】この実施の形態２による動作の要部を説明するフローチャートである。
【図１３】この実施の形態２によるキーワード別の平均，分散およびしきい値の関係例を示す図である。
【図１４】この発明の実施の形態３による動作の要部を説明するフローチャートである。
【図１５】この発明の実施の形態４による動作の要部を説明するフローチャートである。
【図１６】この実施の形態４によるインデックス例を示す図である。
【図１７】従来の類似文書検索装置による類似文書検索の原理を説明する図である。
【符号の説明】
１  質問入力部
２  キーワード分割部
３  キーワード別類似度算出部
４  キーワード別高類似度判定部
５，５０  しきい値設定部
６  全類似度累計およびソート部
７  回答出力部
５１  サイズ設定部
５２  サンプリング部
５３  しきい値算出部
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  キーボード
１０５  マウス
１０６  ＨＤＤ
１０７  ＦＤＤ
１０８  ディスプレイ
１０９  通信ユニット
【図１】
0003715413.tif 000003
【図２】
0003715413.tif 000004
【図３】
0003715413.tif 000005
【図４】
0003715413.tif 000006
【図５】
0003715413.tif 000007
【図６】
0003715413.tif 000008
【図７】
0003715413.tif 000009
【図８】
0003715413.tif 000010
【図９】
0003715413.tif 000011
【図１０】
0003715413.tif 000012
【図１１】
0003715413.tif 000013
【図１２】
0003715413.tif 000014
【図１３】
0003715413.tif 000015
【図１４】
0003715413.tif 000016
【図１５】
0003715413.tif 000017
【図１６】
0003715413.tif 000018
【図１７】
0003715413.tif 000019