JP3715413B2 - 類似文書検索装置および類似文書検索方法 - Google Patents
類似文書検索装置および類似文書検索方法 Download PDFInfo
- Publication number
- JP3715413B2 JP3715413B2 JP22230197A JP22230197A JP3715413B2 JP 3715413 B2 JP3715413 B2 JP 3715413B2 JP 22230197 A JP22230197 A JP 22230197A JP 22230197 A JP22230197 A JP 22230197A JP 3715413 B2 JP3715413 B2 JP 3715413B2
- Authority
- JP
- Japan
- Prior art keywords
- document
- keyword
- similarity
- threshold value
- 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
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
この発明は、ユーザの検索質問に従って類似文書を検索する類似文書検索装置および類似文書検索方法に関する。
【0002】
【従来の技術】
類似文書検索では、一般に、Cosine Measureもしくは確率モデルが使用されている。例えば、Cosine Measureでは、検索要求をq、文書をd、全文書集合をT、文書の大きさをWt、文書中に含まれる単語をwi,tとすると、検索式の文書に対する類似度は次式(1)によって与えられる。
【0003】
【数1】
【0004】
この式を忠実に実行すると、一般の転置ファイル(inverted file)を使用した類似検索では、最悪な場合、検索要求の単語がもつ文書数の合計分だけワーク領域が用意され、そのワーク領域中に文書番号に対する類似度が格納される。そして、最後に類似度の大小関係で文書番号の順番についてソートが行われ、その結果がユーザに提示される。ところが、この文書毎の類似度の計算やソートにかなりの時間が必要となる。
【0005】
そこで、具体例を挙げる。図17は従来の類似文書検索装置による類似文書検索の原理を説明する図である。従来、ユーザが検索質問として検索式である文書を入力すると(図17の▲1▼)、その文書から文書中に含まれるキーワードへの分割が行われる(図17の▲2▼)。ここでは、キーワードA,B,Cの3つに分割された例を挙げる。
【0006】
例えば、文書が10万件登録されていた場合には、その10万件の文書(文書番号D1〜D100000)からなる転置インデックス(例えば文書番号と頻度との対応関係)より、キーワードA,B,Cがどの文書にどれだけの頻度で出現しているのかわかる(図17の▲3▼)。キーワードA,B,Cについては、例えば、文書番号D1の文書中で頻度がそれぞれ“2”,“0”,“5”となり、文書番号D100000の文書中で頻度がそれぞれ“0”,“8”,“2”となる。
【0007】
そして、頻度に対して重みなどを付加することでキーワード別に各文書の類似度が算出され、その後、キーワードA,B,C間の類似度が例えば論理和で加算される(図17の▲4▼)。これにより、文書別の類似度が総合得点として得られる。この段階では、得点に関係なく文書が並んでいることから、さらに文書が得点順に並ぶように、文書番号にソートがかけられる。その結果、転置インデックスに登録されている文書番号は、例えば、D10,D99998…のように得点順に並べられる(図17の▲5▼)。
【0008】
【発明が解決しようとする課題】
ところが、従来例による類似文書検索装置では、キーワード別に求めたすべての文書から文書毎に類似度を集計し、その集計結果をさらに類似順にソートするようにしたので、検索対象となる文書数が多くなればなるほど、類似度の集計計算およびソートに時間を要することはもちろん、ソート量に応じて膨大な記憶容量を要するという問題があった。
【0009】
この発明は、上述した従来例による問題を解消するため、類似文書の検索を高速化し、かつ、その検索結果に要する記憶容量を小さく押さえることが可能な類似文書検索装置および類似文書検索方法を得ることを目的とする。
【0010】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項1の発明に係る類似文書検索装置は、あらかじめ用意された複数の文書から任意の文書数だけをサンプリングするサンプリング手段と、前記サンプリング手段によりサンプリングされた文書について、前記複数の文書に出現するキーワード別に文書毎の類似度を求め、当該類似度の分布から前記キーワード別に文書を絞り込むための類似度で示すしきい値を算出する算出手段と、キーワード別に前記算出手段により算出されたしきい値以上の類似度をもつ文書を前記複数の文書から抽出する第1抽出手段と、キーワード別に前記第1抽出手段により抽出された文書の当該文書と類似度との関係をインデックスとして登録するインデックス登録手段と、複数のキーワードを含んだ検索質問を入力する質問入力手段と、前記質問入力手段により入力された検索質問のキーワード別に、前記インデックス登録手段に登録されたインデックスを抽出する第2抽出手段と、前記第2抽出手段により抽出されたすべてのインデックスに基づいて文書毎の類似度を集計する集計手段と、前記集計手段の集計結果を回答する回答手段と、を備えたことを特徴とする。
【0011】
この請求項1の発明によれば、任意の文書数だけをサンプリングした文書で事前にキーワード別のしきい値を求め、そのしきい値以上の類似度をもつ文書とその類似度との関係をインデックスとしてあらかじめ用意しておき、入力された検索質問のキーワード別に、インデックス中の文書だけで文書毎の類似度を集計して回答するようにしたので、全文書が集計対象とはならず、検索質問中のキーワード毎に集計対象を絞り込んだ状態で文書毎の類似度を集計して検索結果を得ることができ、これによって、類似文書の検索を高速化し、かつ、その検索結果に要する記憶容量を小さく押さえることが可能であり、さらに、検索時に、検索質問中のキーワード別に文書の絞り込みが不要となり、インデックスから直接類似度の集計を行うことができ、これによって、膨大な文書数のデータベースを検索する場合であっても、類似検索を一層高速化することが可能である。
【0026】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係る類似文書検索装置および類似文書検索方法の好適な実施の形態を詳細に説明する。
【0027】
(実施の形態1)
まず、原理について説明する。図1はこの発明の実施の形態1による類似文書検索装置を機能的に示したブロック図である。図1に示した類似文書検索装置は、質問入力部1、キーワード分割部2、キーワード類似度算出部3、キーワード別高類似文書判定部4、しきい値設定部5、類似度集計部である全類似度累計およびソート部6、および回答出力部7により構成される。
【0028】
質問入力部1は、図示せぬユーザインタフェースにより検索質問を入力する。キーワード分割部2は、入力された検索質問をキーワード列に分割してキーワードを得る。キーワード類似度算出部3は、あらかじめ用意された転置インデックスを参照して分割されたキーワード別に文書毎の類似度を算出する。なお、検索対象としてあらかじめT(Tは自然数)個の文書が用意される。転置インデックスは、T個の文書中に出現するキーワード別に各文書での出現頻度を対応付けたものである。
【0029】
キーワード別高類似文書判定部4は、分割されたキーワード別にしきい値設定部5で設定されたしきい値以上の類似度をもつ文書を判定する。しきい値設定部5は、キーワード別高類似文書判定部4に任意に設定したしきい値を供給する。全類似度累計およびソート部6は、各文書について文書番号および類似度から、しきい値以上の類似度をもつ文書を累計するとともに、類似度の高い順に文書番号の並びをソートする。回答出力部7は、ソートされた文書番号を図示せぬユーザインタフェースなどを通じて表示出力,印刷出力,伝送出力などする。
【0030】
続いて、上記機能ブロックを用いて検索原理について説明する。図2はこの実施の形態1による類似文書検索の原理を説明する図である。まず、質問入力部1では、ユーザにより検索質問(検索式としての文書)が入力される(図2の▲1▼)。続くキーワード分割部2では、その文書からキーワードへの分割が行われる(図2の▲2▼)。ここでも、図17の説明に合わせて、同様の検索質問からキーワードA,B,Cの3つに分割される。
【0031】
そして、キーワード別類似度算出部3では、図17に示した転置インデックスにより各キーワードA,B,Cの文書中における頻度が参照され(図2の▲3▼)、各頻度に対して重みなどが付加され、キーワード別に各文書の類似度が算出される。キーワード別高類似文書判定部4は、キーワード別類似度算出部3で算出された類似度をしきい値設定部5から供給されるしきい値と比較して、そのしきい値以上の類似度をもつ文書すなわち文書番号を検索回答対象として判定する(図2の▲4▼)。この段階に入ると、各キーワードA,B,Cについて、もともと回答対象として10万件あった文書を例えば1万件まで絞り込むことができる。ここでは、全キーワードA,B,Cがいずれも共通して1万件まで絞り込めたものとする。
【0032】
そして、つぎの全類似度累計およびソート部6では、キーワードA,B,C間で類似度(図2の▲4▼)が加算される(図2の▲5▼)。このため、従来、30万件(文書数“10万”×キーワード数“3”)で論理演算が行われていたが、今回は絞り込みにより3万件(文書数“1万”×キーワード数“3”)に絞り込まれtqあ状態で論理演算が行われる。このため、論理演算は高速化される。これにより、絞り込まれた文書別の類似度が総合得点として得られる。この段階では、類似度の得点に関係なく文書が並んでいることから、さらに文書が得点順に並ぶように、文書番号にソートがかけられる。このソートでも、ソート数が従来と比べて1/10に絞り込まれていることから、処理の高速化が図られる。
【0033】
その結果、文書番号は、例えば、D10,D99998…のように得点順に並べられる(図2の▲6▼)。この検索結果について、データ数(文書番号)が最小で1万件、最大でも3万件となるので、従来に比べて格段にデータの記憶容量が削減される。このようにして得られた文書番号は、回答出力部7により表示されたり、印刷されたり、通信により外部に送出される。
【0034】
つぎに、上述した原理をハードウェア的に実現した場合について説明する。図3はこの発明の実施の形態1による類似文書検索装置をハードウェア的に示したブロック図である。図3に示した類似文書検索装置は、CPU101,ROM102,RAM103,キーボード104,マウス105,ハードディスクドライブ(HDD)106,フロッピーディスクドライブ(FDD)107,ディスプレイ108,通信ユニット109,各部を接続してアドレス,データ,制御信号などを伝送するバス110などにより構成される。
【0035】
CPU101は、ROM102に格納されたプログラム,HDD106のアプリケーション106a,通信ユニット109を介して受信されるアプリケーションなどの各種プログラムに従って装置全体を制御する。このCPU101は、後述する図4および図5の各フローチャートに従うアプリケーションプログラムに従って、前述した質問入力部1,キーワード分割部2,キーワード別類似度算出部3,キーワード別高類似文書判定部4,全類似度累計およびソート部6および回答出力部7による機能を実現する。ROM102は、CPU101を各種プログラムに従って動作させるためのプログラムを格納している。
【0036】
RAM103は、ワークエリアの他に、検索処理時にしきい値を格納するために使用するしきい値レジスタ103a,検索質問が分割されたキーワードを格納するためにキーワードレジスタ103bをそれぞれ格納するバッファ12a,12b,12cなどを設けている。
【0037】
キーボード104はユーザがしきい値を設定したり、検索質問を入力する場合などで操作するキーを備えている。マウス105は、ディスプレイ108上の位置入力を行うポインティングデバイスである。このマウス105については、しきい値の設定や検索質問の入力時にキーボード104と合わせて操作する仕様にしてもよい。HDD106は、ハードディスクを内蔵し、CPU101の制御に従ってデータのリード/ライトを行う大容量記憶装置である。
【0038】
このHDD106は、図示せぬOS(オペレーティングシステム)の他に、図4および図5のフローチャートに従う動作を実現するためのアプリケーション106a,文書ファイル106b,転置インデックス106c,ソートファイル106dなどをハードディスクに記憶する。FDD107は、CPU101の制御に従って着脱自在のフロッピーディスクに対してデータのリード/ライトを行う。ディスプレイ108はCPU101の制御に従って各種プログラムの実行で必要な表示画面を形成する。通信ユニット109は、回線やケーブルを介して外部装置と通信を行うためのユニットである。
【0039】
つぎに、上記ハードウェア構成による動作について説明する。図4および図5はこの実施の形態1による動作を説明するフローチャート、図6はこの実施の形態1において類似度を使用したインデックスの一例を示す図、図7はこの実施の形態1によるキーワードとしきい値との関係例を示す図、図8はこの実施の形態1によるキーワードとしきい値以上の類似度をもつ文書との関係例を示す図、図9は図8の関係例をキーワード別に文書番号順にソートした場合の一例を示す図、そして、図10はこの実施の形態1による検索結果例を示す図である。なお、転置インデックス106cに登録されている各キーワードには、あらかじめ類似度のしきい値が設定されているものとする。各キーワードとしきい値との関係はRAM103もしくはハードディスクにあらかじめ格納されているものとする。
【0040】
まず、ディスプレイ108に検索質問の入力画面(図示省略)が形成されると、その入力画面に対してユーザはキーボード104やマウス105の操作により検索質問(文書)を入力する。その入力された検索質問はRAM103に格納される(ステップS1)。ここで、入力された検索質問は複数のキーワード列より構成されるものとする。その一例として、“日本の金メダル”を検索質問とする。
【0041】
このようにして検索質問が入力されると、その検索質問はその文書を構成する個々のキーワードに分割される(ステップS2)。すなわち、検索質問“日本の金メダル”は2つのキーワード“日本”,“金メダル”に分割される。各キーワード“日本”,“金メダル”には、例えば分割順に番号が1,2の昇順で付加される。このため、キーワード“日本”,“金メダル”はそれぞれ番号“1”、 “2”を対応付けてキーワードレジスタ103bに格納される(ステップS3)。
【0042】
つぎに、昇順でまず1番目のキーワード“日本”がキーワードレジスタ103bから読み出される(ステップS4)。このように、キーワードが読み出せた場合にはキーワードの存在が確認され(ステップS5)、処理はステップS9(図5参照)に移行する。ところが、キーワードをすべて読み出した場合には、キーワードの存在が確認されず、この場合には各キーワードについて文書の絞り込みが完了したことから(ステップS5)、続く全類似度の累計およびソート処理のため、処理はステップS6に移行する。
【0043】
さて、処理がステップS9に移行した場合には、まず、転置インデックス106cが参照され、そのキーワード“日本”が出現する文書に関して、[文書番号,頻度]の組が取得される。この[文書番号,頻度]の組に基づいて重み付けなどの処理を通じて[文書番号,類似度]の組が求められる。このキーワード“日本”に関する[文書番号,類似度]の組のインデックスは、例えば図6に示したように、[1,1.3],[2,2.5],[10,10.3],[14,3.1]…のようになる。このインデックスはRAM103に一時格納される。
【0044】
そして、キーワード“日本”のしきい値がRAM103もしくはハードディスクから読み出され、そのしきい値が例えば5.3であれば、しきい値“5.3”はキーワード“日本”に対応させてしきい値レジスタ103aに格納される(ステップS10)。続くステップS11では、図6のインデックスが参照され、しきい値レジスタ103aに格納されたしきい値“5.3”以上の類似度をもつ文書の存在が判定される。その際、RAM103には、ワーク領域として一定個数分(例えば1万個:全文書数の1/10)の要素をとるヒープが設けられ、そのヒープにしきい値以上の類似度をもつ文書の文書番号がプッシュされる。
【0045】
このヒープへのプッシュでは、収容できる個数が決められていることから、類似度の小さい組から順にヒープからはじき出される。最終的には、類似度の高い組から降順で1万個分の[類似度,文書番号]の組が残る。ヒープにおいては、図8に示したように、類似度の小さい組から[6.1,24],[6.1,20],[6.1,19],[6.5,100]…の順で1万個分の[類似度,文書番号]の組が配列される。このようにしてヒープに残った[類似度,文書番号]の組は、今度はヒープ上で文書番号の昇順にソートされる(ステップS12)。そして、処理はステップS4に戻る。
【0046】
処理がステップS4に戻ると、つぎ(2番目)のキーワード“金メダル”がキーワードレジスタ103bから読み出され、この場合にもキーワードが存在していることから、処理はステップS9に移行する。処理がステップS9に移行した場合には、まず、転置インデックス106cが参照され、そのキーワード“金メダル”が出現する文書に関して、[文書番号,頻度]の組が取得される。この[文書番号,頻度]の情報に基づいて重み付けなどの処理を通じて[文書番号,類似度]が求められる。
【0047】
このキーワード“金メダル”に関する[文書番号,類似度]のインデックスは、例えば図6に示したように、[5,2.4],[10,3.5],[15,1.4],[31,2.8]…のようになる。このインデックスはRAM103に一時格納される。
【0048】
そして、キーワード“金メダル”のしきい値がRAM103から読み出され、そのしきい値が例えば6.3であれば、しきい値“6.3”はキーワード“金メダル”に対応させてしきい値レジスタ103aに格納される(ステップS10)。続くステップS11では、図6のインデックスが参照され、しきい値レジスタ103aに格納されたしきい値“6.3”以上の類似度をもつ文書の存在が判定される。その際、RAM103には、キーワード“日本”の場合と同様にワーク領域として一定個数分(例えば1万個)の要素をとるヒープが設けられる。
【0049】
キーワード“金メダル”の場合には、例えば、図8に示したヒープのように、類似度の小さい組から[7.2,35],[7.2,36],[7.2,81],[7.3,19]…の順で1万個分の[類似度,文書番号]の組が配列される。このようにしてヒープに残ったキーワード“金メダル”の[類似度,文書番号]の組は、今度はヒープ上で文書番号の昇順にソートされる(ステップS12)。そして、処理はステップS4に戻る。
【0050】
再びステップS4においてキーワードレジスタ103よりキーワードを読み出す処理が実行されるが、前述のキーワード“金メダル”の読み出してキーワードがすべて読み出されたので、つぎのキーワードはなし(空)として(ステップS5)、処理はステップS6に移行する。
【0051】
続くステップS6では、RAM103のヒープに配列された全キーワードについて文書毎の類似度が累計され、その累計結果が個々のキーワードについて[類似度,文書番号]をプッシュした方法でヒープ(1万個分)にプッシュされる。その結果、ヒープには、少なくともキーワード“日本”とキーワード“金メダル”とのいずれか一方が存在する文書の文書番号列が類似度の降順に配列される。
【0052】
さらに、ステップS7において、ヒープに配列された1万個の[類似度,文書番号]の組が、例えば、図10に示したヒープのように、類似度の大きい組から[13.4,19],[13.2,109],[13.1,49]…の順でソートされる。
【0053】
このソート結果はディスプレイ108に表示され、これが検索質問に対する回答となる(ステップS8)。ただし、この回答では一度に1万個分の表示は不可能なので、例えば20個ずつ文書番号を表示することで対処する。また、このソート結果は、ソートファイル106dとしてHDD106のハードディスクに保存したり、容量に応じてフロッピーディスクに保存したり、あるいは、通信ユニット109を介して外部に通知するようにしてもよい。
【0054】
以上の説明では、キーボード104やマウス105から検索質問を入力し、ディスプレイ108に検索結果を表示するスタンドアロンスタイルの一例を挙げているが、インターネットやLAN(ローカルエリアネットワーク)などのネットワーク上にこの類似文書検索装置を接続させた場合には、その装置がネットワークコンピュータとなる。この場合には、通信ユニット109を介して外部装置との間で、検索質問を入力し、その検索結果(ソート結果)を回答することができる。
【0055】
以上説明したように、この実施の形態1によれば、入力された検索質問のキーワード別に、あらかじめ用意された複数の文書に基づいて文書毎の類似度を算出して、その算出された文書毎の類似度からあらかじめ用意されたしきい値以上の類似度をもつ文書を判定し、その判定されたすべての文書に基づいて文書毎の類似度を集計して回答する。これにより、転置インデックス106cに登録された全文書が集計対象とはならず、検索質問中のキーワード毎に集計対象を絞り込んだ状態で検索結果を得ることができるので、類似文書の検索を高速化し、かつ、その検索結果に要する記憶容量を小さく押さえることが可能である。
【0056】
また、集計の際に、類似度をもつ文書の順番を類似度の大きい方から並ぶようにソートするようにしたので、類似度の大小関係を整理した状態で回答することが可能である。
【0057】
また、ネットワークを介して検索質問の入力およびその回答を行うようにしたので、スタンドアロンスタイルに限定されず、ネットワークコンピュータとしての利用を図ることが可能である。
【0058】
また、各キーワードについて集計前に[文書番号,類似度]の組の絞り込みを行うようにしたので、検索の高速化、ならびに、検索結果に要する記憶容量の抑制のため、各キーワードについて、しきい値以上の類似度をもつ文書が必要以上に多くなることを事前に防止することが可能である。
【0059】
(実施の形態2)
さて、前述の実施の形態1では、各キーワードのしきい値を設定する場合について述べていないが、以下に説明する実施の形態2では、各キーワードのしきい値を設定する具体例について述べる。なお、この実施の形態1は、全体構成(機能的、ハードウェア的)を前述した実施の形態1と同様のものとするため、図示およびその説明を省略する。
【0060】
そこで、以下に構成,動作ともに要部についてのみ説明する。まず、構成について説明する。図11はこの発明の実施の形態2による類似文書検索装置の要部を機能的に示すブロック図である。この実施の形態2では、機能的な構成の一部が前述した実施の形態1と異なる。すなわち、図11に示したように、図1のしきい値設定部5に替わってしきい値設定部50が設けられる。
【0061】
しきい値設定部50は、サイズ設定部51,サンプリング部52およびしきい値算出部53により構成される。サイズ設定部51は、しきい値を設定する上で、キーワード別に最大候補数を設定する。この設定は、ユーザインタフェースを通じて行われる。サンプリング部52は、エントリされたキーワードの文書について転置インデックス106cの先頭から所定個数分の文書をサンプリングして、類似度の分布を求める。しきい値算出部53は、サンプリングで求められた類似度の分布とサイズ設定部51で設定された最大候補数とからしきい値を算出し、注目のキーワード(しきい値の設定対象となるキーワードの意味)とそのしきい値とを対応させてRAM103もしくはハードディスクに登録する。
【0062】
つぎに、動作について説明する。図12はこの実施の形態2による動作の要部を説明するフローチャートであり、図13はこの実施の形態2によるキーワード別の平均,分散およびしきい値の関係例を示す図である。なお、以下に説明するしきい値設定部50とこれに関連する各部の機能とは、HDD106のアプリケーション106aに付加されるものである。なお、しきい値は転置インデックス106cと同じよう事前に準備されるので、以下に説明するしきい値設定処理は転置インデックス106cの生成と同様に事前に実施されるものである。
【0063】
ここでは、転置インデックス106cの文書中のあるキーワードに対してしきい値を設定する動作について説明する。まず、転置インデックス106cの参照により、注目のキーワードに対する[文書番号,頻度]の組が取得され、RAM103に格納される(ステップS21)。続いて、サイズ設定部51の機能として、注目のキーワードについて、しきい値以上の類似度をもつ文書がいくつ取得されるのか、その理想とされる数が最大候補数Jとして任意にRAM103に設定される(ステップS22)。この最大候補数Jはユーザインタフェースにより任意に設定される数である。
【0064】
さらに、サンプリング部52の機能として、しきい値を求める際に使用する文書の数がサンプリング数Sとして任意にRAM103に設定される(ステップS23)。このサンプリング数Sは、ユーザインタフェースにより任意に設定される数であり、サンプリング対象の先頭からS番目までの範囲を意味する。
【0065】
ステップS21で取得された[文書番号,頻度]の組のうち、先頭からS個(サンプリング数S)までの組に対して文書の類似度が算出され、さらに平均,分散などの統計量が求められる(ステップS24)。ここで、平均をM、分散をσで表す。
【0066】
そして、類似度の分布が特定の統計モデルに基づいている、すなわち正規分布をしていると仮定すると、先頭からJ個(最大候補数J)が得られるような類似度のしきい値が次式(2)により求められる(ステップS25)。
【0067】
Th=M+σ*D ・・・(2)
ここで、Thはしきい値であり、Dは距離値である。この距離値Dは、正規分布中、上位のJ/S(%)を満たす平均の値である。以上のステップS24およびステップS25は、しきい値算出部53の機能を示している。
【0068】
このようにして求められたしきい値は、注目のキーワードに対応させてRAM103もしくはハードディスクに登録される(ステップS26)。具体的には、キーワード“日本”,“金メダル”別に、平均,分散,しきい値のデータが記憶される(図13参照)。図13の例では、キーワード“日本”に関する平均,分散,しきい値は、それぞれ3.3,1.4,5.3となり、キーワード“金メダル”に関する平均,分散,しきい値は、それぞれ4.6,1.7,6.3となる。
【0069】
なお、このしきい値設定処理は、単語ひとつよりなるキーワードに限らず、複合語,N−gramなどの文字列についても適用可能とする。複合語,N−gramなどの文字列を単語として認識させるには、キーボード104やマウス105を操作して単語としての登録を行っておけばよい。
【0070】
以上説明したように、この実施の形態2によれば、任意の文書数だけをサンプリングした文書で事前にキーワード別のしきい値を求めておくようにしたので、しきい値の精度を無視すれば、各キーワードについて全文書を対象にしてしきい値を求めるような処理負担を軽減することが可能である。
【0071】
(実施の形態3)
さて、上述した実施の形態2を前述の実施の形態1に適用したものを実施の形態3として以下に説明する。実施の形態によるしきい値設定方法は、前述した実施の形態1において、例えばしきい値が設定されていないキーワードがあった場合にそのキーワードについて文書を絞り込む前に実施すればよい。
【0072】
図14はこの発明の実施の形態3による動作の要部を説明するフローチャートである。図5のステップS9においてキーワードの[文書番号,類似度]が取得されると、つぎに、注目のキーワードについてしきい値がRAM103もしくはハードディスクに登録されているか否か判断する(ステップS41)。ここで、キーワードに対するしきい値があらかじめ登録されているか否かは、キーワードが複合語か、それとも文字N−gramかによって決まる。
【0073】
すなわち、キーワード“日本”のように、単語ひとつで構成されるキーワードについては、あらかじめしきい値を計算して対応付けておくことが可能である。一方、複合語や文字N−gramの場合には、単語の組み合わせなどの点から、すべてのケースについてあらかじめ計算しておくと、その記憶のために、転置インデックス106cとして膨大な記憶容量が必要となる。そこで、この実施の形態3では、複合語や文字N−gramを構成するキーワードについては、検索の時点でしきい値を計算することにする。この複合語やN−gramに該当するものを前述のキーワード“金メダル”として以下に説明する。
【0074】
したがって、ステップS41では、キーワード“日本”については、しきい値は登録済みであると判断されるが、キーワード“金メダル”については、しきい値は未登録であると判断される。このため、キーワード“日本”の場合には、処理は、前述した実施の形態1の通りにステップS10に移行するが、キーワード“金メダル”の場合には、処理はステップS42に移行する。
【0075】
このステップS42では、前述した実施の形態2によるしきい値設定処理(図12参照)が実施される。このように、ステップS42で未登録のしきい値が設定されると、その未登録のしきい値とこれに対応するキーワードとが対応付けてRAM103もしくはハードディスクに登録される。この後、処理はステップS11に移行する。
【0076】
以上説明したように、この実施の形態3によれば、検索処理中であっても、任意の文書数だけをサンプリングした文書で事前にキーワード別のしきい値を求めておくようにしたので、しきい値の精度を無視すれば、検索処理中において、各キーワードについて全文書を対象にしてしきい値を求めるような処理負担を軽減することが可能である。
【0077】
(実施の形態4)
さて、この発明は、以下に説明する実施の形態4のように、前述した実施の形態1〜3で述べたしきい値以上の類似度をもつ文書について、図9に示したごとく高類似文書順に並ぶインデックスをあらかじめハードディスクなどの記憶装置に登録するように構成してもよい。以下に、動作についてのみ説明する。
【0078】
図15はこの発明の実施の形態4による動作の要部を説明するフローチャートであり、図16はこの実施の形態4によるインデックス例を示す図である。前述した実施の形態2では、図12のステップS26によりしきい値を登録していたが、この実施の形態4では、ステップS26はなく、ステップS25の後にステップS51に移行する。
【0079】
ステップS51では、RAM103に設けられた最大候補数J分のヒープに対して、ステップS25で求められたしきい値Th以上の類似度をもつ文書すなわち[文書番号,類似度]の組がプッシュされる。ヒープにJ個分の[文書番号,類似度]の組がプッシュされた後は、さらにヒープへのプッシュが行われると、最小の類似度をもつ組(要素)から捨てられる。このため、最終的には、類似度の大きい方からJ個分の組が抽出された形でヒープに残る。
【0080】
そして、より正確なしきい値を求める指示の有無がユーザインタフェースを通じて確認され(ステップS52)、ステップS25で求めたしきい値よりもさらに正確なしきい値を求める場合には、処理はステップS53に移行し、一方、ステップS25で求めたしきい値で十分な場合には、処理はステップS54に移行する。ステップS53では、ステップS51でヒープにプッシュされた[文書番号,類似度]の組を類似度の小さい順にソートし、しきい値Thを最小の類似度で更新する処理が行われる。この後、処理はステップS54に移行する。
【0081】
ステップS54において、ヒープ内の[文書番号,類似度]の組は文書番号順に昇順にソートされ、そのソート結果によりインデックスが構築される。このインデックスは例えばハードディスク(HDD106)に登録される。インデックスの具体例としては、図16に示した構成となる。
【0082】
すなわち、インデックスは、キーワード“日本”,“金メダル”のそれぞれに対してしきい値と[文書番号,類似度]の組が対応付けた構成となる。図16に示したインデックスでは、エントリが上位S個のみから構成され、さらにより正確なしきい値となったため、前述したしきい値とは異なる値をとっている。キーワード“日本”について、しきい値は2.9となり、[文書番号,類似度]の組は、[10,10.3],[14,3.1],[35,4.0]となる。また、キーワード“金メダル”について、しきい値は3.5となり、[文書番号,類似度]の組は、[10,3.5],[41,3.9],[41,3.9]…となる。
【0083】
このようにして転置インデックス106cに登録されている各キーワードのインデックスをあらかじめ用意しておけば、前述した実施の形態1におけるキーワード別類似度算出部3およびキーワード別高類似文書判定部4の機能が不要となる(図1参照)。すなわち、実施の形態1による図4および図5のフローチャートのうち、図4のフローチャートで示される動作で足りることになる。この実施の形態4は、ステップS1〜ステップS7のうちでステップS5を除く動作で足り、ステップS6においては、キーワード別のインデックスをハードディスクから抽出し、インデックスに示されるソート結果を累計して、一定個数分の文書番号を得るようにすればよい。
【0084】
以上説明したように、この実施の形態4によれば、キーワード別にしきい値以上の類似度をもつ文書についてあらかじめインデックスとして形成しておけば、転置インデックス106cの文書数が膨大になればなるほど、実施の形態1におけるしきい値と各文書の類似度との比較処理が省けることによる時間短縮の効果が大きくなる。これにより、前述した実施の形態1〜3にくらべてさらに検索処理を高速化することが可能である。
【0085】
【発明の効果】
以上説明したように、請求項1の発明によれば、任意の文書数だけをサンプリングした文書で事前にキーワード別のしきい値を求め、そのしきい値以上の類似度をもつ文書とその類似度との関係をインデックスとしてあらかじめ用意しておき、入力された検索質問のキーワード別に、インデックス中の文書だけで文書毎の類似度を集計して回答するようにしたので、全文書が集計対象とはならず、検索質問中のキーワード毎に集計対象を絞り込んだ状態で文書毎の類似度を集計して検索結果を得ることができ、これによって、類似文書の検索を高速化し、かつ、その検索結果に要する記憶容量を小さく押さえることが可能であり、さらに、検索時に、検索質問中のキーワード別に文書の絞り込みが不要となり、インデックスから直接類似度の集計を行うことができ、これによって、膨大な文書数のデータベースを検索する場合であっても、類似検索を一層高速化することが可能な類似文書検索装置が得られるという効果を奏する。
【図面の簡単な説明】
【図1】この発明の実施の形態1による類似文書検索装置を機能的に示したブロック図である。
【図2】この実施の形態1による類似文書検索の原理を説明する図である。
【図3】この発明の実施の形態1による類似文書検索装置をハードウェア的に示したブロック図である。
【図4】この実施の形態1による動作を説明するフローチャートである。
【図5】この実施の形態1による動作を説明するフローチャートである。
【図6】この実施の形態1において類似度を使用したインデックスの一例を示す図である。
【図7】この実施の形態1によるキーワードとしきい値との関係例を示す図である。
【図8】この実施の形態1によるキーワードとしきい値以上の類似度をもつ文書との関係例を示す図である。
【図9】図8の関係例をキーワード別に文書番号順にソートした場合の一例を示す図である。
【図10】この実施の形態1による検索結果を示す図である。
【図11】この発明の実施の形態2による類似文書検索装置の要部を機能的に示すブロック図である。
【図12】この実施の形態2による動作の要部を説明するフローチャートである。
【図13】この実施の形態2によるキーワード別の平均,分散およびしきい値の関係例を示す図である。
【図14】この発明の実施の形態3による動作の要部を説明するフローチャートである。
【図15】この発明の実施の形態4による動作の要部を説明するフローチャートである。
【図16】この実施の形態4によるインデックス例を示す図である。
【図17】従来の類似文書検索装置による類似文書検索の原理を説明する図である。
【符号の説明】
1 質問入力部
2 キーワード分割部
3 キーワード別類似度算出部
4 キーワード別高類似度判定部
5,50 しきい値設定部
6 全類似度累計およびソート部
7 回答出力部
51 サイズ設定部
52 サンプリング部
53 しきい値算出部
101 CPU
102 ROM
103 RAM
104 キーボード
105 マウス
106 HDD
107 FDD
108 ディスプレイ
109 通信ユニット
Claims (1)
- あらかじめ用意された複数の文書から任意の文書数だけをサンプリングするサンプリング手段と、
前記サンプリング手段によりサンプリングされた文書について、前記複数の文書に出現するキーワード別に文書毎の類似度を求め、当該類似度の分布から前記キーワード別に文書を絞り込むための類似度で示すしきい値を算出する算出手段と、
キーワード別に前記算出手段により算出されたしきい値以上の類似度をもつ文書を前記複数の文書から抽出する第1抽出手段と、
キーワード別に前記第1抽出手段により抽出された文書の当該文書と類似度との関係をインデックスとして登録するインデックス登録手段と、
複数のキーワードを含んだ検索質問を入力する質問入力手段と、
前記質問入力手段により入力された検索質問のキーワード別に、前記インデックス登録手段に登録されたインデックスを抽出する第2抽出手段と、
前記第2抽出手段により抽出されたすべてのインデックスに基づいて文書毎の類似度を集計する集計手段と、
前記集計手段の集計結果を回答する回答手段と、
を備えたことを特徴とする類似文書検索装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22230197A JP3715413B2 (ja) | 1997-08-19 | 1997-08-19 | 類似文書検索装置および類似文書検索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22230197A JP3715413B2 (ja) | 1997-08-19 | 1997-08-19 | 類似文書検索装置および類似文書検索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1166086A JPH1166086A (ja) | 1999-03-09 |
JP3715413B2 true JP3715413B2 (ja) | 2005-11-09 |
Family
ID=16780224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22230197A Expired - Fee Related JP3715413B2 (ja) | 1997-08-19 | 1997-08-19 | 類似文書検索装置および類似文書検索方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3715413B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001243247A (ja) * | 2000-03-02 | 2001-09-07 | Satake Corp | 分散処理情報検索装置及びその方法 |
JP4100637B2 (ja) | 2005-12-08 | 2008-06-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 翻訳のための装置、方法、プログラム及び翻訳支援サービス提供方法 |
WO2007099812A1 (ja) | 2006-03-01 | 2007-09-07 | Nec Corporation | 質問回答装置、質問回答方法および質問回答用プログラム |
JP5245908B2 (ja) * | 2009-02-25 | 2013-07-24 | 富士通株式会社 | 検索方法及び装置 |
JP5345918B2 (ja) * | 2009-10-13 | 2013-11-20 | 日本電信電話株式会社 | 文書検索方法、文書検索装置、文書検索プログラム |
JP6596848B2 (ja) | 2015-03-10 | 2019-10-30 | 富士ゼロックス株式会社 | アクセス権推定装置及びアクセス権推定プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02130673A (ja) * | 1988-11-10 | 1990-05-18 | Chubu Nippon Denki Software Kk | データ検索方式 |
JPH07146880A (ja) * | 1993-11-22 | 1995-06-06 | Nippon Steel Corp | 文書検索装置及び方法 |
-
1997
- 1997-08-19 JP JP22230197A patent/JP3715413B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1166086A (ja) | 1999-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100544514B1 (ko) | 검색 쿼리 연관성 판단 방법 및 시스템 | |
US7349928B2 (en) | System and method for identifying relationships between database records | |
JP3918531B2 (ja) | 類似文書検索方法およびシステム | |
US7194471B1 (en) | Document classification system and method for classifying a document according to contents of the document | |
JP5010885B2 (ja) | 文書検索装置、文書検索方法および文書検索プログラム | |
US8510312B1 (en) | Automatic metadata identification | |
WO2000010103A1 (fr) | Procede et dispositif de recuperation, de stockage et de triage de donnees formatees en tableaux | |
CN111428494A (zh) | 专有名词的智能纠错方法、装置、设备及存储介质 | |
JP4226862B2 (ja) | 文書検索装置 | |
US7440938B2 (en) | Method and apparatus for calculating similarity among documents | |
JP5281104B2 (ja) | 広告管理装置、広告選択装置、広告管理方法、広告管理プログラム及び広告管理プログラムを記録した記録媒体 | |
JP3654850B2 (ja) | 情報検索システム | |
CN107193996B (zh) | 相似病历匹配检索系统 | |
JP2000200281A (ja) | 情報検索装置および情報検索方法ならびに情報検索プログラムを記録した記録媒体 | |
JP3715413B2 (ja) | 類似文書検索装置および類似文書検索方法 | |
CN101248433B (zh) | 具有签名产生及关联性检测的匹配引擎 | |
JP2004192546A (ja) | 情報検索方法、装置、プログラム、および記録媒体 | |
JP3547074B2 (ja) | データ検索方法、その装置および記録媒体 | |
JPH064584A (ja) | 文章検索装置 | |
CN112199461B (zh) | 基于块索引结构的文档检索方法、装置、介质和设备 | |
JP3081093B2 (ja) | 索引作成方法およびその装置と文書検索装置 | |
JP3558267B2 (ja) | 文書検索装置 | |
JPH09153051A (ja) | 類似文書検索方法 | |
JP2732661B2 (ja) | テキスト型データベース装置 | |
JP3317341B2 (ja) | 類似度計算方法及び装置、類似文書検索方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040419 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040419 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040602 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040702 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050607 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050805 |
|
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: 20050823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050825 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080902 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110902 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130902 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |