JP3558267B2 - 文書検索装置 - Google Patents
文書検索装置 Download PDFInfo
- Publication number
- JP3558267B2 JP3558267B2 JP12631999A JP12631999A JP3558267B2 JP 3558267 B2 JP3558267 B2 JP 3558267B2 JP 12631999 A JP12631999 A JP 12631999A JP 12631999 A JP12631999 A JP 12631999A JP 3558267 B2 JP3558267 B2 JP 3558267B2
- Authority
- JP
- Japan
- Prior art keywords
- document
- word
- search
- appearance frequency
- specified
- 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】
このようなアルゴリズムを持つ全文検索エンジンを利用して複数の単語を条件に指定した検索を行う場合には、文書中にある単語が出現する回数(単語出現頻度:Term Frequency、以下、TFと略称する)と、ある単語に対して、その単語を含む文書が出現する回数(文書出現頻度:Document Frequency、以下、DFと略称する)を検索時に計算して、検索結果として得られた文書のスコアを求め、文書のランキングを行う。
【0004】
【発明が解決しようとする課題】
上記したように、従来の全文検索エンジンのインデックスでは、単語と文書管理番号、単語の位置情報のみを管理している。そのため、ランキングに必要なTF,DFの値を直接インデックスから求めることができない。ランキングを行うためには、指定された文字列の含まれている文書を検索する処理とは別に、TFとDFを算出するための検索を行う必要がある。
【0005】
また、ランキングの対象となる文書(検索にヒットした文書)や検索条件の単語数が多くなると、スコア計算のために実行される検索回数は検索結果文書数と検索指定単語の積に比例して増加する。
【0006】
従って、従来の検索エンジンを利用して複数の単語を条件に指定した検索を行う場合には、検索に要する時間が極端に増加してしまうという問題が発生する。
【0007】
本発明は、複数の単語が条件に指定された場合の文書検索を高速に行える文書検索装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明の文書検索装置は、複数の登録文書に関して予め算出された、単語毎の単語出現頻度及び文書出現頻度をもっているインデックス情報と、検索条件として指定された1個以上の単語の単語出現頻度(TF)及び文書出現頻度(DF)を前記インデックス情報から取得し、取得した単語出現頻度及び文書出現頻度に基づいて、登録文書をランキングして検索結果として出力する検索手段とを備える。
【0009】
この文書検索装置によれば、登録文書に関する単語毎のTF,DFが予め(典型的には、文書登録時に)計算されてインデックス情報として保持されているので、検索時にTF,DFを計算する手間が省け、検索速度が向上する。
【0010】
好適な実施形態では、可変長文字列である単語を固定長数値の単語IDに変換し、この単語IDによって単語を識別する。これにより、インデックス情報内のデータへのアクセス速度が高まり、検索速度が向上する。
【0011】
好適な実施形態では、インデックス情報には、各単語について日付別のDFが保持されており、検索手段は、検索条件として日付範囲を指定されたときには、指定された日付範囲のDFをインデックス情報から取得し、これを登録文書のランキングに用いる。これにより、日付の条件指定が行われたときの検索を高速に行うことができる。
【0012】
好適な実施形態では、インデックス情報は、登録文書別に各登録文書に含まれる単語を示した文書関連情報と、単語別に各単語が含まれる文書とTFとDFを示した単語関連情報とを有している。そして、検索手段は、検索条件として文字列が指定された場合には、指定された文字列を単語に分解し、分解した各単語についてのTFとDFをインデックス情報内の単語関連情報から取得し、取得したTF及びDFに基づいて登録文書をランキングするする。一方、検索条件として登録文書が指定された場合には、指定された登録文書に含まれる単語をインデックス情報内の文書関連情報によって識別し、識別した各単語についてのTFとDFをインデックス情報内の単語関連情報から取得し、取得したTF及びDFに基づいて登録文書をランキングする。これにより、特に、登録文書が条件として指定された場合の単語の抽出処理が簡単になり、検索速度が向上する。
【0014】
【発明の実施の形態】
【0015】
以下、本発明の実施の形態を添付図面に従って説明する。以下に説明する実施形態はコンピュータのソフトウェアにより実施されるものであるが、本発明は必ずしもコンピュータで実施しなければならないわけではなく、専用ハードウェアロジック回路によっても、又はそれらの組み合わせによっても実施することができる。
【0016】
図1は、本発明の一実施形態にかかるコンピュータが実行する文書登録処理の基本説明図である。文書登録処理は、文書検索を行う前に行われるものであるものである。
【0017】
検索エンジンにおける文書登録処理は以下のような流れで行われる。まず、(1)登録対象となる多数の文書の各々1を形態素解析器により単語に分解し、各文書1内でのそれぞれの単語の出現頻度TFと、それぞれの単語を含む文書の数(文書出現頻度)DFを集計する。次に、(2)可変長文字列である各単語を、固定長数値の単語IDに変換する。固定長数値の単語IDへの変換により、検索エンジンのインデックス5のデータアクセスが高速化されることになる。(1)、(2)の処理により、各文書1ごとに、その文書1に含まれる全ての単語の単語IDとTFのリスト2ができる。次に、(3)各単語毎に(各単語ID毎に)、その単語が含まれる文書の文書IDと単語出現頻度TFの組のリスト3と、登録処理を行った日付とその日付で集計したその単語の文書出現頻度DFの組のリスト4とを作成して、それらのリスト3、4をインデックス5に保存する。ここで、文書出現頻度DFを日付単位で管理するのは日付条件指定の場合の検索を高速化するためである。
【0018】
図2は文書検索処理の基本説明図である。
【0019】
検索エンジンにおける検索処理は以下のような流れで行われる。まず、(1)検索条件6として指定された単語(キーワード)を固定長数値の単語IDに変換する。次に、(2)その単語IDを検索キーにして、インデックス5から、その単語IDについての文書IDとTF,DFを取得する。DFは検索条件5で指令された日付範囲分のみ取得する。そして、(3)インデックス5から取得した各文書IDについてスコアを計算する。ここで、スコアとは文書の重要度を示す数値であり、その計算方法は後述する。最後に、(4)文書IDをスコアの降順に並べ変えて文書をランキングし、検索結果7とする。
【0020】
以上のように、この実施形態にかかる検索エンジンは、可変長文字列である登録単語を固定数値化することにより、検索エンジンのインデックス5のデータアクセスを高速化する。また、文書の登録時に予め各単語についてのTF,DFを求めておき、これを検索エンジンのインデックス5で管理する。また、文書検索は既に求められているTF,DFをインデックス5から取得することによって行う。さらに、DFを日付単位のファイルで保存しておくことにより、日付の条件指定が行われた場合の検索を高速に行う。
【0021】
図3は検索エンジンにおける単語から単語IDへの変換処理の説明図、図4は文書登録処理の具体例を示す説明図である。
【0022】
図3、図4を参照して、検索エンジンのインデックス5の構造を説明する。
【0023】
検索エンジンのインデックス5は、図3に示すような単語から単語IDへの変換を行うための対応関係を保持する変換テーブル10と、図4に示すような文書毎に単語IDとTFを管理するKVFテーブル16と、単語毎にTFとDFを管理するWVFテーブル18とを備えている。
【0024】
変換テーブル10は、SKT(Sorted Key Table;単語をハッシュ関数14にかけて得られたキーコードをソートして持っているテーブル)11、WPTM(Word Pointer Table Map;前のSKT内の各キーコードを次のWPTL内の単語IDへ結び付けるためのWPTLへのポインタをもっているテーブル)12、及びWPTL(Word Pointer Table List;単語IDが登録されているテーブル)13を有する。
【0025】
KVFテーブル16は、文書ID毎のKVF(Keyword Vector Files;文書毎の単語IDとTFを保持するファイル)17を有する。
【0026】
WVFテーブル18は、単語ID毎のWVF(Word Vector Files;単語毎のTFとDFを保持するファイル)を有する。WVFは、これは単語ID毎のTL(TF List ;単毎に文書IDとTFの組を保持するリストであり、図1のリスト3に相当する)19と、単語ID毎のDL(DL List ;単語毎に日付とDLの組を保持するリストであり、図1のリスト4に相当する)20とから構成される。
【0027】
図3に示すように、単語の単語IDへの変換は次の手順で行われる。
【0028】
まず、単語(例えば「情報」、「サービス」など)をハッシュ関数14にかけてキーコード(例えば「key001」、「kay002」など)を計算する。次に、計算したキーコード(例えば「key001」)に該当するキーコードを変換テーブル10のSKT11から選び、その選んだキーコードに対応するポインタ(例えば、「offset001」)をWPTM12から取得し、そして、その取得したポインタが指すWPTL13内の場所から単語ID(例えば「002」)を取得する。こうして、例えば単語「情報」が単語ID「002」に変換される。
【0029】
図4に示すように、検索エンジンにおける文書登録処理は以下のような手順で行われる。
【0030】
まず、登録対象となる文書に文書IDを付与し(ステップS1)、その登録文書を形態素解析器により単語単位に分解する(S2)。次に、分解された各単語をハッシュ関数によって固定長数値(キーコード)に変換し、そのキーコードを用いてインデックス内の変換テーブル(図3、参照番号10)から単語IDを取得する(S3)。変換テーブルに単語が登録されていない場合、新たに単語IDを発行し、変換テーブルに登録する。次に、その登録文書における各単語のTFを求めて、その文書IDについての単語IDとTFの組のリスト15を作り(S4)、このリスト15をKVFテーブル15に一つのKVF16として登録する(S6)。また、各単語についてのTFとDFをWVFテーブル18に登録する(S5)。すなわち、各単語ID毎に、その登録文書の文書IDと各単語のTFを、各単語IDをもつTL19に登録し、かつ、日付と各単語についての登録文書のDFを、各単語IDをもつDL20へ登録する。
【0031】
以上の登録処理が登録対象の全ての文書について繰り返され、検索エンジンのインデックスが準備される。
【0032】
図5は、複数の単語を指定した場合の文書検索処理の第1の具体例を示す説明図である。この例は、ある文字列(複数の単語から構成される)が検索条件としてユーザより指定された場合を示し、以下の処理が行われる。
【0033】
まず、検索条件の文字列を形態素解析器により単語単位に分解する(S11)。次に、分解されたすべての単語を、インデックスの変換テーブル(図3、参照番号10)を用いて、単語IDに変換する(S12)。次に、インデックスのWVFテーブル18から、各単語IDについての文書IDとTF及びDFを取得する(S13)。すなわち、各単語IDのTL19から文書IDとTFを取得し、各単語IDのDL20から検索条件で指定された日付範囲のDFを取得する。次に、ステップS13で取得した文書IDの各々について、以下の計算式を用いてスコア(score)の計算を行う。
【0034】
【数1】
ここで、上記計算式内の「TF」は、条件に合致するTF(つまり、各文書ID毎に、TL19から取得したTFを集計した値)である。上記計算式内の「DF」は、条件に合致するDF(つまり、各文書ID毎に、その文書に含まれる単語のDL20から取得したDFを集計した値)である。また、上記計算式内の「NDOC」は、検索対象となる文書数(つまり、TL19から取得した文書IDの個数)である。
【0035】
各文書のスコアを計算した後、文書IDをスコアの降順に並べて検索結果とする(S15)。
【0036】
図6は、複数単語を指定した場合の文書検索処理の第2の具体例を示す説明図である。この例は、ある登録文書(多数の単語を含んでいる)が検索条件として指定された場合を示し、以下の処理が行われる。
【0037】
インデックスのKVFテーブル16から、検索条件として指定された文書IDに含まれている単語IDとTFのリストを取得する(S21)。このとき、指定された文書IDに含まれている単語全てのIDを取得するのではなく、出現頻度(TF)の高い所定個数(例えば30個)の単語をその登録文書を特徴づける単語とみなし、その30単語の単語IDをKVFテーブル16から抽出する。KVFテーブル16では、出現頻度(TF)の順に単語IDがソートされているので、上位30単語を抽出すれば良い。次に、抽出した各単語ID毎に、インデックスのWVFテーブル18から、文書IDとTFと指定日付範囲のDFを取得する(S22)。すなわち、各単語IDのTL19から文書IDとTFを取得し、各単語IDのDL20から指定日付範囲のDFを取得する。次に、ステップS22で取得した文書IDの各々について、上述した計算式を用いてスコア(score)の計算を行う(S23)。そして、文書IDをスコアの降順に並べて検索結果とする(S24)。
【0038】
以上説明した実施形態によれば、複数の単語を指定した場合の検索に要する時間を短縮できる。検索条件に指定した単語(キーワード)の個数が多くなるほど、その効果が高くなる。例えば、発明者らが実施した試験では、キーワード数が5ワードの場合に、従来の検索エンジンに比較して検索速度が1.8倍に向上し、また、キーワード数が15ワードの場合には、従来の検索エンジンに比較して検索速度が52.6倍に向上するという結果が得られた。
【図面の簡単な説明】
【図1】本発明の一実施形態における文書登録処理の基本説明図である。
【図2】文書検索処理の基本説明図である。
【図3】同実施形態の単語から単語IDへの変換処理の説明図である。
【図4】文書登録処理の具体例を示す説明図である。
【図5】文書検索処理の第1の具体例を示す説明図である。
【図6】文書検索処理の第2の具体例を示す説明図である。
【符号の説明】
1 登録文書
5 インデックス
7 検索結果
10 変換テーブル
16 KVFテーブル
18 WVFテーブル
19 TL
20 DL
Claims (2)
- 複数の登録文書に関して予め算出された、単語毎の単語出現頻度及び文書出現頻度をもっているインデックス情報と、
検索条件として指定された1個以上の単語の単語出現頻度及び文書出現頻度を前記インデックス情報から取得し、取得した単語出現頻度及び文書出現頻度に基づいて、登録文書をランキングして検索結果として出力する検索手段と、
を備え、
前記インデックス情報には、各単語について日付別の文書出現頻度が保持されており、
前記検索手段は、検索条件として日付範囲を指定されたときには、指定された日付範囲の文書出現頻度を前記インデックス情報から取得して、登録文書のランキングに用いる、文書検索装置。 - 複数の登録文書に関して予め算出された、単語毎の単語出現頻度及び文書出現頻度をもっているインデックス情報と、
検索条件として指定された1個以上の単語の単語出現頻度及び文書出現頻度を前記インデックス情報から取得し、取得した単語出現頻度及び文書出現頻度に基づいて、登録文書をランキングして検索結果として出力する検索手段と、
を備え、
前記インデックス情報には、各単語について日付別の文書出現頻度が保持されており、
前記検索手段は、検索条件として日付範囲を指定されたときには、指定された日付範囲の文書出現頻度を前記インデックス情報から取得して、登録文書のランキングに用いる、
文書検索装置として、コンピュータを機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12631999A JP3558267B2 (ja) | 1999-05-06 | 1999-05-06 | 文書検索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12631999A JP3558267B2 (ja) | 1999-05-06 | 1999-05-06 | 文書検索装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000322416A JP2000322416A (ja) | 2000-11-24 |
JP3558267B2 true JP3558267B2 (ja) | 2004-08-25 |
Family
ID=14932255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12631999A Expired - Fee Related JP3558267B2 (ja) | 1999-05-06 | 1999-05-06 | 文書検索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3558267B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250980A (ja) | 2004-03-05 | 2005-09-15 | Oki Electric Ind Co Ltd | 文書検索システム、検索条件入力装置、検索実行装置、文書検索方法、および文書検索プログラム |
JP2007323274A (ja) * | 2006-05-31 | 2007-12-13 | Hitachi Electronics Service Co Ltd | 情報提供装置、情報提供方法及び情報提供プログラム |
CN101075252A (zh) * | 2007-06-21 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 一种网络搜索方法及系统 |
JP2009042968A (ja) * | 2007-08-08 | 2009-02-26 | Nec Corp | 情報選別システム、情報選別方法及び情報選別用プログラム |
JP6617499B2 (ja) * | 2015-09-29 | 2019-12-11 | 日本電気株式会社 | 情報処理装置、電子ホワイトボードの検索方法、及びプログラム |
CN107132993B (zh) * | 2016-02-26 | 2021-02-02 | 阿里巴巴(中国)有限公司 | 一种将数据写入内存的方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06195381A (ja) * | 1992-12-25 | 1994-07-15 | Mitsubishi Electric Corp | データ検索装置 |
JPH07319895A (ja) * | 1994-05-20 | 1995-12-08 | Toshiba Corp | 文書検索装置及び文書検索方法 |
JPH07319891A (ja) * | 1994-05-26 | 1995-12-08 | Fuji Xerox Co Ltd | 文書登録検索システム |
JPH0822470A (ja) * | 1994-07-05 | 1996-01-23 | Toshiba Corp | 資料作成支援システム |
JP2729356B2 (ja) * | 1994-09-01 | 1998-03-18 | 日本アイ・ビー・エム株式会社 | 情報検索システム及び方法 |
JPH09297766A (ja) * | 1996-05-01 | 1997-11-18 | N T T Data Tsushin Kk | 類似文書検索装置 |
JPH1049549A (ja) * | 1996-05-29 | 1998-02-20 | Matsushita Electric Ind Co Ltd | 文書検索装置 |
JP3607462B2 (ja) * | 1997-07-02 | 2005-01-05 | 松下電器産業株式会社 | 関連キーワード自動抽出装置及びこれを用いた文書検索システム |
JP4025443B2 (ja) * | 1998-12-04 | 2007-12-19 | 富士通株式会社 | 文書データ提供装置及び文書データ提供方法 |
-
1999
- 1999-05-06 JP JP12631999A patent/JP3558267B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000322416A (ja) | 2000-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5740029B2 (ja) | 対話型サーチクエリーを改良するためのシステム及び方法 | |
JP3636941B2 (ja) | 情報検索方法と情報検索装置 | |
US9031935B2 (en) | Search system, search method, and program | |
WO2014179409A1 (en) | Systems and methods for parsing search queries | |
JP3558267B2 (ja) | 文書検索装置 | |
JP2008117351A (ja) | 検索システム | |
JP3784060B2 (ja) | データベース検索システム、その検索方法及びプログラム | |
JP2004192546A (ja) | 情報検索方法、装置、プログラム、および記録媒体 | |
JP2004054882A (ja) | 類義語検索装置、方法、プログラム及び記憶媒体 | |
JPH0773197A (ja) | 異表記語辞書作成支援装置 | |
JPH064584A (ja) | 文章検索装置 | |
JP2010282403A (ja) | 文書検索方法 | |
JPH01149127A (ja) | 情報検索装置 | |
JP2009294768A (ja) | 情報共有装置及び情報共有プログラム | |
KR20070099418A (ko) | 특허 데이터베이스 시스템을 위한 검색방법 및 검색결과의단순한 폼 생성방법 | |
JPH06325091A (ja) | 類似度評価型データベース検索装置 | |
JP2002117043A (ja) | 文書検索装置、文書検索方法およびその方法を実施するためのプログラムを記録した記録媒体 | |
JP3486406B2 (ja) | 特許情報検索装置 | |
JPH11195041A (ja) | 文書検索装置、方法及び記録媒体 | |
JPH04340164A (ja) | マルチキーワード情報検索処理方式および検索ファイル作成装置 | |
JPH10177575A (ja) | 語句抽出装置および方法、情報記憶媒体 | |
JP2001092831A (ja) | 文書検索装置及び文書検索方法 | |
JPH08249341A (ja) | 文書データベースの文書格納・検索装置 | |
JP2005293165A (ja) | ファイル検索装置及びその方法 | |
JPS5834864B2 (ja) | 情報検索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040419 |
|
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: 20040514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040514 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120528 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140528 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |