JP5582358B2 - 文書検索システム、文書検索方法、及びプログラム - Google Patents
文書検索システム、文書検索方法、及びプログラム Download PDFInfo
- Publication number
- JP5582358B2 JP5582358B2 JP2011064724A JP2011064724A JP5582358B2 JP 5582358 B2 JP5582358 B2 JP 5582358B2 JP 2011064724 A JP2011064724 A JP 2011064724A JP 2011064724 A JP2011064724 A JP 2011064724A JP 5582358 B2 JP5582358 B2 JP 5582358B2
- Authority
- JP
- Japan
- Prior art keywords
- suffix
- document
- character
- specifying process
- specifying
- 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
Description
以下、本発明の第1実施の形態について、図1〜図9を用いて説明する。
まず、接尾辞配列構築手段407は、文書検索装置1に入力された文書集合データ101に基づいて、接尾辞配列105を構築する。具体的には、接尾辞配列構築手段407は、文書集合データ101に含まれるすべての文書102(図20参照)のすべての接尾辞103を抽出する。次に、接尾辞配列構築手段407は、抽出された各接尾辞を辞書順にソートすることによって、ソート結果104(図7参照)を生成し、接尾辞配列105を構築する。接尾辞配列構築手段407によって構築される接尾辞配列105は、すべての接尾辞の文書番号及び文書内位置を含む。
BWT構築手段408は、接尾辞配列105の各接尾辞のBWT107を構築する。具体的には、BWT構築手段408は、接尾辞配列105において、context iの文書番号が「d」で文書内位置が「p」であれば、文書dの位置「p−1」の文字をBWTのi番目の文字BWT[i]にセットすればよい。ただし、p=0である場合、BWT[i]に「$」をセットする。
サンプリング手段409は、接尾辞配列105の文書内位置pがサンプリング間隔bで割り切れる接尾辞の文書番号及び文書内位置を抽出する(サンプリングする)ことによってサンプリングされた接尾辞配列204を構築する。なお、サンプリング手段409による処理は、図4で詳細を説明する。
以下、本発明の第2実施形態を図10〜図16を用いて説明する。
以下、本発明の第3実施形態を図17〜図19を用いて説明する。
ただし、vはBWT107に同じ文字があるかを調べる範囲を調整するためのパラメータで、ユーザが指定する。
2 第2実施形態の文書検索装置
401 CPU(中央演算装置)
402 主記憶装置
403 補助記憶装置
404 リムーバブルメディア
405 ネットワーク
406 ユーザインタフェース部
407 接尾辞配列構築手段
408 BWT構築手段
409 第1実施形態のサンプリング手段
410 第1実施形態の検索手段
1102 第2実施形態のサンプリング手段
1103 第2実施形態の検索手段
Claims (11)
- プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備え、検索キーワードの入力を受け付け、文書における前記入力された検索キーワードの文書内位置を検索する文書検索システムであって、
前記プロセッサが、前記文書を構成する接尾辞を辞書順に並べた接尾辞配列データを生成する接尾辞配列データ生成部と、
前記プロセッサが、前記接尾辞配列データにおいて前記辞書順に並べられた接尾辞のうち一部の接尾辞の文書内位置をサンプリングするサンプリング部と、
前記プロセッサが、前記文書内で前記接尾辞の前にある一文字を追加した接尾辞の前記接尾辞配列データにおける対応箇所を特定する一文字前接尾辞特定処理を実行する一文字前接尾辞特定処理実行部と、
前記プロセッサが、前記サンプリング部によって前記文書内位置がサンプリングされなかった前記接尾辞に対して、前記一文字前接尾辞特定処理を繰り返し実行することによって、当該接尾辞の直近のサンプリングされた接尾辞の文書内位置に基づいて、当該接尾辞の文書内位置を特定する文書内位置特定部と、を備え、
前記文書内位置特定部は、前記接尾辞配列データから前記検索キーワードから始まる区間に含まれる接尾辞を特定し、前記特定した接尾辞の一文字前にある文字が一致するすべての接尾辞の中から最初の接尾辞及び最後の接尾辞を特定し、
前記一文字前接尾辞特定処理実行部は、前記特定した最初の接尾辞及び最後の接尾辞に対して、前記一文字前接尾辞特定処理を実行し、
前記文書内位置特定部は、
前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間を、前記接尾辞の一文字前にある文字が一致するすべての接尾辞に対する前記一文字前接尾辞特定処理の結果とし、
前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間に、前記文書内位置がサンプリングされた接尾辞が存在する場合には、当該文書内位置に前記一文字前接尾辞特定処理の実行回数を加算した値を、前記文書内位置がサンプリングされた接尾辞に対応する前記一文字前接尾辞特定処理の実行前の接尾辞の文書内位置に決定し、
前記接尾辞配列データから前記検索キーワードから始まる区間に含まれる全ての接尾辞の文書内位置が特定されない場合には、前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間の接尾辞の一文字前にある文字が一致するすべての接尾辞の中から最初の接尾辞及び最後の接尾辞を特定し、
前記一文字前接尾辞特定処理実行部は、前記特定した最初の接尾辞及び最後の接尾辞に対して、前記一文字前接尾辞特定処理を実行することを特徴とする文書検索システム。 - 前記文書検索システムは、前記プロセッサが、前記接尾辞配列データに含まれる各接尾辞に対して、前記サンプリング部によって文書内位置がサンプリングされた接尾辞から前記接尾辞に到達するまでの前記一文字前接尾辞特定処理の実行回数の最小値であるサンプル距離値を含むサンプル距離データを生成するサンプル距離データ生成部を備え、
前記文書内位置特定部は、前記プロセッサが、前記区間において前記接尾辞の一文字前にある文字が一致する接尾辞に対して前記一文字前接尾辞特定処理実行部に前記一文字前接尾辞特定処理を実行させるか否かを判定する一文字前接尾辞特定処理実行判定部を備え、
前記一文字前接尾辞特定処理実行判定部は、前記区間に到達するまでの前記一文字前接尾辞特定処理を実行した回数が、前記区間に含まれる接尾辞に対する前記サンプル距離値の最大値よりも小さければ、前記一文字前接尾辞特定処理実行部に前記一文字前接尾辞特定処理を実行させる必要があると判定することを特徴とする請求項1に記載の文書検索システム。 - 前記サンプル距離データが、前記接尾辞配列データにおける各接尾辞の位置を示す第1軸、及び、前記接尾辞配列データにおける各接尾辞の位置に対応する前記サンプル距離値を示す第2軸からなる2次元領域に、各接尾辞に対応する前記サンプル距離値を点で格納するウェーブレット木形式で記憶され、
前記一文字前接尾辞特定処理実行判定部は、前記ウェーブレット木形式で記憶した前記サンプル距離データに対して、前記区間の範囲によって特定される前記第1軸上の範囲であって、かつ、前記一文字前接尾辞特定処理の実行回数に1を加えた値以上の前記第2軸上の範囲に前記サンプル距離値を示す点が存在する場合、前記一文字前接尾辞特定処理実行部に前記一文字前接尾辞特定処理を実行させる必要があると判定することを特徴とする請求項2に記載の文書検索システム。 - 前記文書内位置特定部は、
予め設定された文字数間隔で、前記接尾辞と当該接尾辞の文書内位置とを対応付けた文書内位置データを生成し、
前記文字数間隔に位置しない接尾辞であっても、当該接尾辞の前記接尾辞配列データにおける位置を中心とする、ユーザが指定した大きさの範囲にある前記接尾辞の1文字前にある文字が、当該接尾辞の1文字前にある文字と一致しない場合、当該接尾辞の前記文書内位置データを生成することを特徴とする請求項1から請求項3のいずれか一つに記載の文書検索システム。 - 前記接尾辞の文書内位置が前記文書内位置特定部によって特定された場合、前記プロセッサが、前記特定した文書内位置を表示する表示部を備え、
前記表示部は、ある接尾辞の前記文書内位置を前記一文字前接尾辞特定処理実行部に前記一文字前接尾辞特定処理を実行させて特定した場合に、前記文書内位置が重複する場合、重複した文書内位置を一つの文書内位置として表示することを特徴とすることを特徴とする請求項4に記載の文書検索システム。 - プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備える文書検索システムにおける、検索キーワードの入力を受け付け、文書における前記入力された検索キーワードの文書内位置を検索する文書検索方法であって、
前記方法は、
前記プロセッサが、前記文書を構成する接尾辞を辞書順に並べた接尾辞配列データを生成する接尾辞配列データ生成ステップと、
前記プロセッサが、前記接尾辞配列データにおいて前記辞書順に並べられた接尾辞のうち一部の接尾辞の文書内位置をサンプリングするサンプリングステップと、
前記プロセッサが、前記文書内で前記接尾辞の前にある一文字を追加した接尾辞の前記接尾辞配列データにおける対応箇所を特定する一文字前接尾辞特定処理を実行する一文字前接尾辞特定処理実行ステップと、
前記プロセッサが、前記サンプリングステップによって前記文書内位置がサンプリングされなかった前記接尾辞に対して、前記一文字前接尾辞特定処理を繰り返し実行することによって、当該接尾辞の直近のサンプリングされた接尾辞の文書内位置に基づいて、当該接尾辞の文書内位置を特定する文書内位置特定ステップと、を含み、
前記文書内位置特定ステップでは、前記接尾辞配列データから前記検索キーワードから始まる区間に含まれる接尾辞を特定し、前記特定した接尾辞の一文字前にある文字が一致するすべての接尾辞の中から最初の接尾辞及び最後の接尾辞を特定し、
前記一文字前接尾辞特定処理実行ステップでは、
前記特定した最初の接尾辞及び最後の接尾辞に対して、前記一文字前接尾辞特定処理を実行し、
前記文書内位置特定ステップでは、
前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間を、前記接尾辞の一文字前にある文字が一致するすべての接尾辞に対する前記一文字前接尾辞特定処理の結果とし、
前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間に、前記文書内位置がサンプリングされた接尾辞が存在する場合には、当該文書内位置に前記一文字前接尾辞特定処理の実行回数を加算した値を、前記文書内位置がサンプリングされた接尾辞に対応する前記一文字前接尾辞特定処理の実行前の接尾辞の文書内位置に決定し、
前記接尾辞配列データから前記検索キーワードから始まる区間に含まれる全ての接尾辞の文書内位置が特定されない場合には、前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間の接尾辞の一文字前にある文字が一致するすべての接尾辞の中から最初の接尾辞及び最後の接尾辞を特定し、
前記一文字前接尾辞特定処理実行ステップでは、前記文書内位置特定ステップで特定した最初の接尾辞及び最後の接尾辞に対して、前記一文字前接尾辞特定処理を実行することを特徴とする文書検索方法。 - 前記方法は、前記プロセッサが、前記接尾辞配列データに含まれる各接尾辞に対して、前記サンプリング部によって文書内位置がサンプリングされた接尾辞から前記接尾辞に到達するまでの前記一文字前接尾辞特定処理の実行回数の最小値であるサンプル距離値を含むサンプル距離データを生成するサンプル距離データ生成ステップを含み、
前記文書内位置特定ステップは、前記プロセッサが、前記区間において前記接尾辞の一文字前にある文字が一致する接尾辞に対して前記一文字前接尾辞特定処理実行部に前記一文字前接尾辞特定処理を実行させるか否かを判定する一文字前接尾辞特定処理実行判定ステップを含み、
前記一文字前接尾辞特定処理実行判定ステップでは、前記区間に到達するまでの前記一文字前接尾辞特定処理を実行した回数が、前記区間に含まれる接尾辞に対する前記サンプル距離値の最大値よりも小さければ、前記一文字前接尾辞特定処理実行部に前記一文字前接尾辞特定処理を実行させる必要があると判定することを特徴とする請求項6に記載の文書検索方法。 - 前記サンプル距離データは、前記接尾辞配列データにおける各接尾辞の位置を示す第1軸、及び、前記接尾辞配列データにおける各接尾辞の位置に対応する前記サンプル距離値を示す第2軸からなる2次元領域に、各接尾辞に対応する前記サンプル距離値を点で格納するウェーブレット木形式で記憶するデータであり、
前記一文字前接尾辞特定処理実行判定ステップでは、前記ウェーブレット木形式で記憶した前記サンプル距離データに対して、前記区間の範囲によって特定される前記第1軸上の範囲であって、かつ、前記一文字前接尾辞特定処理の実行回数に1を加えた値以上の前記第2軸上の範囲に前記サンプル距離値を示す点が存在する場合、前記一文字前接尾辞特定処理実行部に前記一文字前接尾辞特定処理を実行させる必要があると判定することを特徴とする請求項7に記載の文書検索方法。 - 前記文書内位置特定ステップは、
予め設定された文字数間隔で、前記接尾辞と当該接尾辞の文書内位置とを対応付けた文書内位置データを生成するステップと、
前記文字数間隔に位置しない接尾辞であっても、当該接尾辞の前記接尾辞配列データにおける位置を中心とする、ユーザが指定した大きさの前記接尾辞の1文字前にある文字が、当該接尾辞の1文字前にある文字と一致しない場合、当該接尾辞の前記文書内位置データを生成するステップと、を含むことを特徴とする請求項6から請求項8のいずれか一つに記載の文書検索方法。 - 前記方法は、前記接尾辞の文書内位置が前記文書内位置特定部によって特定された場合、前記プロセッサが前記特定した文書内位置を表示する表示ステップを含み、
前記表示ステップでは、ある接尾辞の前記文書内位置を前記一文字前接尾辞特定処理実行ステップに前記一文字前接尾辞特定処理を実行させて特定した場合に、前記文書内位置が重複する場合、重複した文書内位置を一つの文書内位置として表示することを特徴とすることを特徴とする請求項9に記載の文書検索方法。 - プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備える文書検索システムにおいて、検索キーワードの入力を受け付け、文書における前記入力された検索キーワードの文書内位置を検索する処理を前記プロセッサに実行させるプログラムにおいて、
前記処理は、
前記文書を構成する接尾辞を辞書順に並べた接尾辞配列データを前記プロセッサに生成させる接尾辞配列データ生成ステップと、
前記接尾辞配列データにおいて前記辞書順に並べられた接尾辞のうち一部の接尾辞の文書内位置を前記プロセッサにサンプリングさせるサンプリングステップと、
前記文書内で前記接尾辞の前にある一文字を追加した接尾辞の前記接尾辞配列データにおける対応個所を特定する一文字前接尾辞特定処理を前記プロセッサに実行させる一文字前接尾辞特定処理実行ステップと、
前記サンプリングステップによって前記文書内位置がサンプリングされなかった前記接尾辞に対して、前記一文字前接尾辞特定処理を繰り返し実行することによって、当該接尾辞の直近のサンプリングされた接尾辞の文書内位置に基づいて、当該接尾辞の文書内位置を前記プロセッサに特定させる文書内位置特定ステップと、を含み、
前記文書内位置特定ステップでは、前記接尾辞配列データから前記検索キーワードから始まる区間に含まれる接尾辞を特定し、前記特定した接尾辞の一文字前にある文字が一致するすべての接尾辞の中から最初の接尾辞及び最後の接尾辞を特定し、
前記一文字前接尾辞特定処理実行ステップでは、前記特定した最初の接尾辞及び最後の接尾辞に対して、前記一文字前接尾辞特定処理を実行し、
前記文書内位置特定ステップでは、前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間を、前記接尾辞の一文字前にある文字が一致するすべての接尾辞に対する前記一文字前接尾辞特定処理の結果とし、
前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間に、前記文書内位置がサンプリングされた接尾辞が存在する場合には、当該文書内位置に前記一文字前接尾辞特定処理の実行回数を加算した値を、前記文書内位置がサンプリングされた接尾辞に対応する前記一文字前接尾辞特定処理の実行前の接尾辞の文書内位置に決定し、
前記接尾辞配列データから前記検索キーワードから始まる区間に含まれる全ての接尾辞の文書内位置が特定されない場合には、前記最初の接尾辞及び最後の接尾辞に対する前記一文字前接尾辞特定処理の実行によって特定された二つの接尾辞に挟まれる区間の接尾辞の一文字前にある文字が一致するすべての接尾辞の中から最初の接尾辞及び最後の接尾辞を特定し、
前記一文字前接尾辞特定処理実行ステップでは、前記文書内位置特定ステップで特定した最初の接尾辞及び最後の接尾辞に対して、前記一文字前接尾辞特定処理を実行することを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011064724A JP5582358B2 (ja) | 2011-03-23 | 2011-03-23 | 文書検索システム、文書検索方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011064724A JP5582358B2 (ja) | 2011-03-23 | 2011-03-23 | 文書検索システム、文書検索方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012203456A JP2012203456A (ja) | 2012-10-22 |
JP5582358B2 true JP5582358B2 (ja) | 2014-09-03 |
Family
ID=47184452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011064724A Expired - Fee Related JP5582358B2 (ja) | 2011-03-23 | 2011-03-23 | 文書検索システム、文書検索方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5582358B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532028B (zh) * | 2019-08-30 | 2023-11-21 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于eclipse生成接口文档的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3672242B2 (ja) * | 2001-01-11 | 2005-07-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体 |
JP2005056223A (ja) * | 2003-08-06 | 2005-03-03 | Inax Corp | テキストデータ検索システム、その方法及びそのプログラム |
JP5171346B2 (ja) * | 2008-03-28 | 2013-03-27 | 株式会社日立ハイテクノロジーズ | 文字列検索システム及び方法 |
WO2010119783A1 (ja) * | 2009-04-13 | 2010-10-21 | 株式会社日立製作所 | ペア文字列検索システム |
-
2011
- 2011-03-23 JP JP2011064724A patent/JP5582358B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012203456A (ja) | 2012-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734364B2 (en) | Method and system for document similarity analysis | |
US8533203B2 (en) | Identifying synonyms of entities using a document collection | |
US8190613B2 (en) | System, method and program for creating index for database | |
US10360294B2 (en) | Methods and systems for efficient and accurate text extraction from unstructured documents | |
EP2757521B1 (en) | Image search apparatus, image search method, program, and computer-readable recording medium | |
JP5985040B2 (ja) | データ解析装置、及びその方法 | |
EP2804115B1 (en) | Index scan device and index scan method | |
US11030183B2 (en) | Automatic content-based append detection | |
JP6428615B2 (ja) | 多次元範囲検索装置及び多次元範囲検索方法 | |
JPWO2013111287A1 (ja) | Sparqlクエリ最適化方法 | |
JP2013041385A (ja) | 文献検索方法、文献検索装置及び文献検索プログラム | |
JP5716966B2 (ja) | データ分析装置、データ分析方法及びプログラム | |
JP5869948B2 (ja) | パッセージ分割方法、装置、及びプログラム | |
JP5812007B2 (ja) | インデックス作成装置、データ検索装置、インデックス作成方法、データ検索方法、インデックス作成プログラムおよびデータ検索プログラム | |
JP5582358B2 (ja) | 文書検索システム、文書検索方法、及びプログラム | |
JP5736589B2 (ja) | 数列データ検索装置、数列データ検索方法及びプログラム | |
KR102062139B1 (ko) | 지능형 자료구조 기반의 데이터 처리 방법 및 그를 위한 장치 | |
WO2013069149A1 (ja) | データ検索装置、データの検索方法及びプログラム | |
JP5184987B2 (ja) | 索引情報作成装置、索引情報作成方法及びプログラム | |
CN111090743A (zh) | 一种基于词嵌入和多值形式概念分析的论文推荐方法及装置 | |
KR20190139227A (ko) | K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법 | |
JP5903372B2 (ja) | キーワード関連度スコア算出装置、キーワード関連度スコア算出方法、及びプログラム | |
JP5472929B2 (ja) | 文書検索装置、文書検索方法及び文書検索プログラム | |
JP4189251B2 (ja) | キーワード解析方法及びそれに使用するプログラム | |
JP2011008811A (ja) | プログラム、及びデータ抽出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130612 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140320 |
|
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: 20140617 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140702 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5582358 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |