JP3696745B2 - 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents
文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDFInfo
- Publication number
- JP3696745B2 JP3696745B2 JP03090999A JP3090999A JP3696745B2 JP 3696745 B2 JP3696745 B2 JP 3696745B2 JP 03090999 A JP03090999 A JP 03090999A JP 3090999 A JP3090999 A JP 3090999A JP 3696745 B2 JP3696745 B2 JP 3696745B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- word
- document
- gram
- extracted
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、大規模な文書データベースの全文を対象として、指定した文字列の存在する文書を高速に検索するフルテキストサーチに係わり、データベース、文書管理システム、文書ファイリングシステムおよびDTP(Desk Top Publishing)システムなどに適用されるものである。
【0002】
【従来の技術】
大規模な文書データベースから指定された検索文字列(以下、検索タームと呼ぶ)が含まれる文書を高速に探し出す方式として、n−gramインデクス方式(以下、方式1と呼ぶ)がある。
n−gramインデクス方式とは、文書の登録時に文書中の全てのn−gram(連続するn文字からなる文字列)についてその出現位置情報をインデクスとして格納しておき、検索時には検索ターム中のn−gramに対しそのインデクスを参照し、検索ターム中の位置関係とインデクス中の位置関係が等しいかどうかを判定(以下、隣接判定と呼ぶ)することによって、検索タームが出現する文書を探し出す方式である。
【0003】
図2に1−gramインデクス方式の例を示す。
本図に示すように、方式1では、文書の登録時に文書中の全てのn−gram(図2の例ではn=1)についてその出現位置情報をインデクスとして格納する。
例えば、“に”という1−gramは文書‘001’の‘3’文字目に出現するので、その文書番号‘001’と文字位置‘3’を“に”に対応するインデクス200に格納する。
検索時には、指定された検索タームから抽出したn−gram(図2の例ではn=1)のインデクス間で出現位置情報の隣接判定を行うことにより、検索タームの出現位置情報を取得する。
例えば、“微生物”が検索タームとして指定された場合には、この検索タームからまず、1−gram “微”、“生”および“物”を抽出する。
そして、“微”に対応するインデクス201、“生”に対応するインデクス202および“物”に対応するインデクス203の間で出現位置情報の隣接判定を行うことによって、“微生物”の出現位置情報を取得する。
本図の例では、“微”、“生”および“物”が文書番号‘001’の‘9’文字目から、文書番号‘056’の‘5’文字目から隣り合っているので、それらの出現位置に“微生物”が存在することが分かる。
以上のように、方式1では、文書を走査することなしに、インデクスの読込みと出現位置情報の隣接判定だけで検索が行えるため、大規模な文書データベースに適用した場合でも高速なフルテキストサーチを実現できる可能性がある。
【0004】
しかし、方式1では、nを1とすると、すなわち1−gramのインデクスを用いると、1−gramは全文書中(データベース中)における出現頻度が高いため、一つの1−gramに対する出現位置情報が増え、個々のインデクスの容量が大きくなる。
このためインデクスの読込みに時間が掛かるばかりでなく、出現位置情報による隣接判定の回数も増えるため、検索に時間が掛かるという問題が生じる。
検索を高速にするためにはnの値を増やした容量の小さなインデクスを作成する必要があるが、短い検索タームが指定された場合でも検索が行えるようにnの小さなインデクスも全て作成しておかなければならない。
その結果、総インデクス容量が増加することになる。
【0005】
また、方式1のようなインデクス型の文書検索方法では、“キー探索技法−IV トライとその応用”(青江順一著、情報処理Vol.34、No.2、1993、pp.244−251)に記載されているトライのような木構造で文字列(方式1の場合はn−gram)を管理する必要がある。
トライとは検索対象となる文字列すなわちキーワードの集合(以下、キー集合と呼ぶ)における各キーワード(以下、キーと呼ぶ)に共通な前方部分文字列を共通の節で括り出して作られる木構造である。
このトライは登録や検索の際に用いられ、登録する文字列あるいは検索ターム中の文字列でキーを辿ってトライを探索することにより、その文字列に対応するインデクスを指し示すポインタ情報を取得することができる。
トライの探索に掛かる時間はキーの数に依存しないため、大規模なデータベースに適用した場合でも、高速にキーワードを探索できるという特徴がある。
【0006】
図3にキー集合{baby、badge、badger、jar}に対応するトライを示す。
このトライでは節1(300)から節2(301)へ枝ラベルb(302)が定義され、二重丸で示すキーの末尾にあたる節にはそのキーに対するインデクスへのポインタ情報が設定されている。
例えば、検索タームとして“baby”が指定された場合には、文字列“baby”で本図のトライを探索することにより、節5(303)に設定されているポインタ情報Pt1が得られ、このポインタ情報Pt1が示す先に検索ターム“baby”に対応するインデクスが格納されていることになる。
方式1において、このトライを用いてn−gramを管理する際、個々のインデクスの容量を小さくして検索を高速にするためにn−gramを長くしたインデクスを作成すると、n−gramの種類が増え、トライの節が増えるため、トライ全体の規模が大きくなってしまうという問題がある。
【0007】
この総インデクス容量とインデクスを管理する木構造の容量の増加という問題を解決するために「特開平8−194718号」(以下、公知例1と呼ぶ)で、インデクスの容量がある基準値(以下、基準インデクスサイズと呼ぶ)を超えたn−gramに対してのみ、nの値を増やして容量の小さなインデクスを作成することにより、常に容量の小さなインデクスの読込みと出現位置情報の隣接判定で済むようにして、高速な検索を実現するとともに、総インデクス容量およびインデクスを管理する木構造(以下、トライで説明する)の容量の増加を防ぐ方式が開示されている。
図4に公知例1に開示されているインクリメンタルn−gramインデクス方式の概要を示す。
本方式では、文書の登録時にn−gramに対応するインデクスを作成するともに、文書中の2文字の接続情報をトライ122に登録する。
そして、文書を登録していき、インデクスの容量が基準インデクスサイズを超えた場合には、対応するn−gramに1文字追加したn−gram (以下、拡張n−gramと呼ぶ)のインデクスを作成する。
以下、図4を用いてインデクスの作成方法を具体的に説明する。
n−gramに1文字追加した拡張n−gramを作成するためには、まずトライ122を参照してそのn−gramに続く可能性のあるn−gramを取得する。
そして、検出されたn−gram(以下、接続n−gramと呼ぶ)のインデクスと基準インデクスサイズより容量が大きくなったn−gram(以下、基準インデクス超過n−gramと呼ぶ)のインデクスの間で出現位置情報の隣接判定を行うことにより、拡張n−gramのインデクスを作成する。
本図の例では、“生”という1−gramに対応するインデクスが基準インデクスサイズより大きくなっており、“生”が基準インデクス超過n−gramとなる。
ここで、まず、“生”という文字でトライ122を探索し、“生”に続く接続n−gramを取得する。
本図に示す例では、トライ122を探索することにより、“生”の後ろに“物”と“息”が続くことが分かる。
そこで、“生”と“物”、“生”と“息”のインデクスの間で出現位置情報の隣接判定を行うことにより、“生物”、“生息”といった“生”に1文字追加した拡張n−gramのインデクス400を作成する。
以上のように、公知例1を用いることにより、容量が大きく検索に時間が掛かるインデクスに対しては、そのn−gramに1文字追加した拡張n−gramに対するインデクスを作成するため、常に容量の小さなインデクスの読込みと出現位置情報の隣接判定で済むようになるため、高速な検索を実現することができるようになる。
また、それ以外のインデクスに対しては、n−gramの長さを増やしたインデクスを作成しないため、総インデクス容量およびn−gramを管理する木構造(トライ)の容量の増加を防ぐことができる。
【0008】
【発明が解決しようとする課題】
以上説明したように、公知例1に開示されているn−gram型のインデクス方式によると、基準インデクスサイズより容量が大きく検索に時間が掛かるインデクスに対しては、そのキーであるn−gramに1文字を追加した容量の小さなインデクスを作成することになるため、常に容量の小さなインデクスの読込みと出現位置情報の隣接判定で済むようになり、高速な検索を実現することが可能となる。
また、基準インデクスサイズより容量の小さなインデクスに対しては、それ以上n−gramを長くしたインデクスを作成しないため、総インデクス容量およびn−gramを管理する木構造(トライ)の容量の増加を防ぐことが可能となる。
【0009】
しかし、n−gram型のインデクス方式による全文検索では、検索対象に指定された検索タームが、検索タームの持つ本来の意味ではなく、別単語中の部分語として含まれるようなノイズ文書が検索されてしまうという問題がある。
例えば、登録対象文書中の全ての隣り合う2文字に対しインデクスを作成する2−gramインデクス方式では、登録対象文書中の“電気温水器”という文字列から“電気”、“気温”、“温水”および“水器”がインデクス作成対象文字列として抽出される。
そして、検索時に“気温”という検索タームが指定された場合には、“気温”に該当する2−gramインデクスを参照することにより検索結果を得る。
このため、検索ターム本来の“気温”としての意味ではなく、“電気”の部分文字“気”と“温水器”の部分文字“温”が隣接して現れた前記文書も、検索結果として抽出されてしまうことになる。
【0010】
これに対し、指定された検索タームが別単語中の部分語として含まれるような文書をノイズ文書として排除する方法として、従来から形態素解析を用いた単語インデクス方式が用いられており、その概要が「鍵を握るインデクス処理」(日経バイト記事、1996年10月号、158ページ〜167ページ)」内の161ページ右(以下、公知例2と呼ぶ)に示されている。
この方式では、文書登録時に、登録対象文書中の文字列を品詞毎に分解し、その中から辞書を用いて有意語(単語)を抽出する形態素解析処理を行う。そして、これらの有意語に対し、検索用のインデクスを作成する。
【0011】
本方式によると、先述した登録対象文書中の文字列“電気温水器”から、単語として“電気温水器”のみが抽出され、検索用のインデクスが作成される。
すなわち、“気温”は単語として抽出されないため、インデクスは作成されず、検索タームとして“気温”が指定された場合にも本文書は検索されることなく検索結果から排除されることになる。
しかし、単語インデクス方式では、逆に辞書に登録されていない語(新語、造語、略語、複合語など)は検索できないという問題がある。
すなわち、先ほどの例において辞書中に“電気温水器”が登録されていない場合には、“電気温水器”に対しインデクスが作成されず、その結果検索タームとして“電気温水器”が指定された場合に本文書が検索できないという問題がある。
【0012】
このようにn−gram型のインデクシング方式と形態素解析型の単語インデクシング方式には、互いに相反する問題点(辞書に未登録の語を含む任意語の検索を実現しようとすると、指定された検索タームが別単語中の部分語として含まれるノイズ文書が検索されてしまう)がある。
すなわち、検索時に検索目的に応じてこれらの検索機能を使い分けるためには、n−gram型のインデクシング方式と形態素解析型の単語インデクシング方式を併用する必要がある。
つまり、n−gramと単語の両方についてインデクスを作成することになり、十分な検索性能を得るためにはインデクス容量が大きくなりシステムが高価になる、十分な登録性能が得られない、ならびに保守性に劣るという問題点があった。
【0013】
すなわち、本発明が解決しようとする課題は、指定された検索タームを含む文書を漏れなく検索できる任意語での検索と、指定された検索タームが別単語中の部分文字列として存在する文書を検索結果から排除する単語境界を意識した検索を、検索目的に応じて使いわけることのできる、保守性に優れた検索システムを、高性能かつ安価に提供することである。
【0014】
【課題を解決するための手段】
上記課題を解決するために、本発明は、
予め登録された文書の集合を対象として、指定された文字列を含む文書の検索を行なう文書検索システムにおける文書検索方法であり、
登録する文書のテキストデータを対象として単語の抽出処理を行い、該テキストデータ中の単語の先頭位置と末尾位置を識別し、先頭または末尾を示す識別情報をそれぞれ単語先頭文字または末尾文字に付加したテキストデータを生成する単語境界識別ステップと、
該生成したテキストデータから所定長の部分文字列(n−gram)を抽出する登録用n−gram抽出ステップと、
前記抽出n−gramについて、該テキストデータのテキスト識別情報と該テキストデータにおける出現位置情報を含む文字位置情報を抽出するとともに、前記単語境界識別ステップの識別結果に基づき、該n−gramの先頭文字が単語の先頭位置であった場合には単語の先頭境界識別情報を、また該n−gramの末尾文字が単語の末尾位置であった場合には単語の末尾境界識別情報を抽出し、該抽出n−gramについて抽出した情報を有する該抽出n−gramに対応する検索用インデクスを生成し、記憶する単語境界情報格納型n−gramインデクス作成登録ステップとを有するようにしている。
【0015】
さらに、前記単語境界識別ステップは、単語の抽出処理において、形態素解析用の単語辞書と、漢字、カタカナ、ひらがな、数字、アルファベット、および記号のうち少なくとも2種類以上の文字種別情報と、所定長の部分文字列の前方および後方において文字種の変化点に現れる頻度を統計的に蓄積した文字種境界確率とのうち、少なくとも1つ以上を用いるようにしている。
【0016】
また、予め登録された文書の集合を対象として、指定された文字列を含む文書の検索を行なう文書検索システムにおける文書検索方法であり、
指定された検索タームから、所定長の部分文字列(n−gram)を抽出する検索用n−gram抽出ステップと、
前記n−gramに関するテキスト識別情報と該テキストデータにおける出現位置情報と単語の先頭境界識別情報と単語の末尾境界識別情報を有するインデクスデータを抽出する検索用インデクス抽出ステップと、
検索用インデクス抽出ステップにおいて抽出されたインデクス中のテキスト識別情報と、出現位置情報と、単語の先頭境界識別情報ないし末尾境界識別情報の少なくとも一つ以上とを用いて、別単語中の部分文字列として含まれる文書をノイズとして排除して指定された検索タームを含む文書を漏れなく検索する単語識別検索ステップとを有するようにしている。
【0017】
さらに、指定された検索条件が、指定された検索タームを含む文書を漏れなく検索する任意語検索であるか、指定された検索タームが別単語中の部分文字列として存在する文書を検索結果から排除する単語境界を意識した単語識別検索であるかを判定する検索条件判定ステップと、
該検索条件判定ステップにおける判定結果が任意語検索の場合には、検索用インデクス抽出ステップにおいて抽出されたインデクス中のテキスト識別情報と出現位置情報基づき、指定された検索タームを含む全ての文書を漏れなく検索する任意語検索ステップを有し、
前記検索条件判定ステップにおける判定結果が単語識別検索の場合には、前記単語識別検索ステップを実行するようにしている。
【0018】
また、予め登録された文書の集合を対象として、指定された文字列を含む文書の検索を行なう文書検索システムであり、
登録する文書のテキストデータを対象として単語の抽出処理を行い、該テキストデータ中の単語の先頭位置と末尾位置を識別し、先頭または末尾を示す識別情報をそれぞれ単語先頭文字または末尾文字に付加したテキストデータを生成する単語境界識別手段と、
該生成したテキストデータから所定長の部分文字列(n−gram)を抽出する登録用n−gram抽出手段と、
前記抽出n−gramについて、該テキストデータのテキスト識別情報と該テキストデータにおける出現位置情報を含む文字位置情報を抽出するとともに、前記単語境界識別ステップの識別結果に基づき、該n−gramの先頭文字が単語の先頭位置であった場合には単語の先頭境界識別情報を、また該n−gramの末尾文字が単語の末尾位置であった場合には単語の末尾境界識別情報を抽出し、該抽出n−gramについて抽出した情報を有する該抽出n−gramに対応する検索用インデクスを生成し、記憶する単語境界情報格納型n−gramインデクス作成登録手段とを有するようにしている。
【0019】
また、予め登録された文書の集合を対象として、指定された文字列を含む文書の検索を行なう文書検索システムであり、
指定された検索タームから、所定長の部分文字列(n−gram)を抽出する検索用n−gram抽出手段と、
前記n−gramに関するテキスト識別情報と該テキストデータにおける出現位置情報と単語の先頭境界識別情報と単語の末尾境界識別情報を有するインデクスデータを抽出する検索用インデクス抽出手段と、
指定された検索条件が、指定された検索タームを含む文書を漏れなく検索する任意語検索であるか、指定された検索タームが別単語中の部分文字列として存在する文書を検索結果から排除する単語境界を意識した単語識別検索であるかを判定する検索条件判定手段と、
該判定の結果が任意語検索の場合に、検索用インデクス抽出手段により抽出されたインデクス中のテキスト識別情報と出現位置情報基づき、指定された検索タームを含む全ての文書を漏れなく検索する任意語検索手段と、
前記判定の結果が単語識別検索の場合に、検索用インデクス抽出手段により抽出されたインデクス中のテキスト識別情報と、出現位置情報と、単語の先頭境界識別情報ないし末尾境界識別情報の少なくとも一つ以上とを用いて、別単語中の部分文字列として含まれる文書をノイズとして排除して指定された検索タームを含む文書を漏れなく検索する単語識別検索手段とを有するようにしている。
【0020】
また、文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体であり、
指定された検索タームから、所定長の部分文字列(n−gram)を抽出する手順と、
前記n−gramに関するテキスト識別情報と該テキストデータにおける出現位置情報と単語の先頭境界識別情報と単語の末尾境界識別情報を有するインデクスデータを抽出する手順と、
指定された検索条件が、指定された検索タームを含む文書を漏れなく検索する任意語検索であるか、指定された検索タームが別単語中の部分文字列として存在する文書を検索結果から排除する単語境界を意識した単語識別検索であるかを判定する手順と、
該判定結果が任意語検索の場合に、前記抽出されたインデクス中のテキスト識別情報と出現位置情報基づき、指定された検索タームを含む全ての文書を漏れなく検索する手順と、
前記判定結果が単語識別検索の場合に、前記抽出されたインデクス中のテキスト識別情報と、出現位置情報と、単語の先頭境界識別情報ないし末尾境界識別情報の少なくとも一つ以上とを用いて、別単語中の部分文字列として含まれる文書をノイズとして排除して指定された検索タームを含む文書を漏れなく検索する手順とを有するようにしている。
【0021】
【発明の実施の形態】
本発明による文書検索システムの第一の実施例の構成を図1に示す。
本図に示す文書検索システムは検索結果を表示するディスプレイ10、登録および検索のコマンドを入力するキーボード20、登録処理および検索処理を実行する中央演算処理装置CPU30、フロッピディスクからデータを読み出すフロッピディスクドライバ40、データベースへ登録する文書データを格納したフロッピディスク50、登録および検索用のプログラムならびにデータなどを一時的に格納する主メモリ60、各種データおよびプログラムを格納する磁気ディスク70およびこれらを接続するバス80で構成される。
主メモリ60にはシステム制御プログラム100に加え、登録用のプログラムとして登録制御プログラム110、単語境界識別プログラム111、登録用n−gram抽出プログラム112および単語境界情報格納型n−gramインデクス作成登録プログラム113が、また検索用のプログラムとして検索制御プログラム120、検索用n−gram抽出プログラム121、検索用インデクス抽出プログラム122、検索条件判定プログラム123、任意語検索プログラム124および単語識別検索プログラム125が磁気ディスク70から読み出されるとともに、ワークエリア130が確保される。
また、磁気ディスク70にはテキスト格納領域140、単語境界情報格納型n−gramインデクス格納領域141、形態素解析用辞書格納領域142および各種プログラム格納領域143が確保されている。
以上が本文書検索システムの構成である。
【0022】
次に、本実施例における本文書検索システムの文書登録時の処理の概要について説明する。
始めに、キーボード20から入力される登録コマンドによりシステム制御プログラム100は登録制御プログラム110を起動し、文書の登録処理を開始する。 文書登録時の処理を図5に示すPAD(Problem Analysis Diagram)を用いて説明する。
登録制御プログラム110は、フロッピディスク50に格納されている全ての登録対象文書について、ステップ1001からステップ1005までに示す一連の処理を繰り返し実行する(ステップ1000)。
まず、ステップ1001ではフロッピディスクドライバ40を通じてフロッピディスク50に格納されている登録対象文書群から未処理の文書を1個選択し、主メモリ60上のワークエリア130に読み出す。
次に、ステップ1002で、ステップ1001で読み込んだ登録対象文書に対し、文書データベース中で該当文書を一意に識別するための番号である文書識別子を割り当てる。また、登録対象文書を磁気ディスク70上のテキスト格納領域140に格納する。
【0023】
さらに、ステップ1003において主メモリ60上のワークエリア130に読み込まれた登録対象文書に対し、単語境界識別プログラム111を実行し、磁気ディスク70上の形態素解析用辞書142を参照しながら形態素解析処理を行うことにより、単語の抽出処理を行い、単語の境界位置に識別記号を付加していく。
そして、ステップ1004で登録用n−gram抽出プログラム112を実行し、登録対象文書中から所定長の部分文字列(n−gram)を検索用インデクス生成対象文字列として抽出する。
最後に、単語境界情報格納型n−gramインデクス作成登録プログラム113を実行し、ステップ1004において抽出されたn−gramの文字位置情報に加え、該当n−gramの先頭文字が単語の先頭境界に当たる場合には先頭境界識別情報を、また該当n−gramの末尾文字が単語の末尾境界に当たる場合には末尾境界識別情報を付加した検索用インデクスを作成する。
そして、これを磁気ディスク70上の単語境界情報格納型n−gramインデクス格納領域141に格納する。
以上が本実施例における登録処理の概要である。
【0024】
次に、図5におけるステップ1003、ステップ1004およびステップ1005の処理内容について簡単に説明を補足する。
まず、ステップ1003における単語境界識別プログラムでは登録対象文書の内容を解析することにより単語を抽出し、各単語の先頭および末尾に識別記号を付与したテキストを生成しワークエリア130に出力する。
なお、本実施例における単語の抽出処理では公知例2に記載されている形態素解析技術に基づく方法も用いるものとする。
【0025】
また、ステップ1004における登録用n−gram抽出処理では、ステップ1003によりワークエリア130上に生成された単語の先頭および末尾の識別記号を付与されたテキストから、所定長の部分文字列(n−gram)を抽出する。
ここで抽出するn−gramの文字長は検索性能および検索用インデクスの容量に大きく依存するが、説明の簡略化のため本実施例では登録対象文書中の全ての1文字を抽出する方法(1−gramインデクス方式)を用いるものとする。
そして、単語の先頭を表す識別記号直後および単語の末尾を表す識別記号直前の1−gramについては、それを識別するための符号を付与する。
【0026】
さらに、ステップ1005における単語境界情報格納型n−gramインデクス作成登録プログラムでは、ステップ1004で抽出した登録対象文書中の全ての1文字(1−gram)について、登録対象文書における文書識別子と各1−gramが登録対象文書内の何文字目に現れたかを示す出現位置情報の組みを文字位置情報として生成する。
また、各1−gramが単語の先頭を表す識別記号直後の場合には単語の先頭境界識別情報を、単語の末尾を表す識別記号を直前の1−gramについては単語の末尾境界識別情報を付与した検索用インデクスを作成する。
【0027】
以下、本プログラムの処理内容について図6に示すPADを用いて説明する。
まず、ステップ1100では既に登録済みの文書があるか否かを判定する。
そして、その判定の結果、まだ登録された文書が存在しない場合にはステップ1101においてトライおよび検索用インデクス(単語境界情報格納型n−gramインデクス)の初期化処理を行う。
次に、ステップ1102において該当文書の文書識別子を抽出した後、ステップ1103において、単語境界情報を付与したテキストデータの先頭から末尾に至るまでステップ1104からステップ1108に示す一連の処理を繰り返す。
すなわち、ステップ1104において登録用n−gramとしてテキストデータから1文字(1−gram)を読み込み、ステップ1105において該当文字がトライに登録済みであるか否かを判定する。
そして、トライ未登録の場合にはステップ1106において該当文字に関するインデクス格納領域をアロケートした後、ステップ1107でトライへの登録処理を行う。
そして、ステップ1108において該当文字に関するインデクス格納領域末尾に該当文書の文書識別子、文字位置を格納するとともに、該当文字が単語の先頭境界の場合には単語の先頭境界フラグに“1”を付与する。
また該当文字が単語の末尾境界の場合には単語の末尾境界識フラグに“1”を付与した検索用インデクス(単語境界情報格納型n−gramインデクス)を生成し、これを磁気ディスク70上の単語境界情報格納型n−gramインデクス格納領域141に格納する。
以上が、本実施例におけるステップ1003、1004および1005の処理内容である。
【0028】
次に、本実施例における文書登録時の具体的な処理内容について、「新型の電気温水器を開発した。」という文書が登録された場合を例に説明する。
本例では、登録対象文書は1件であるため図5に示すPADにおけるステップ1000の繰り返し処理は、本文書のみを対象として実行されることになる。
まず、図5に示すPADにおけるステップ1001では、「新型の電気温水器を開発した。」というテキストデータを主メモリ60上ワークエリア130に読み込む。
そして図5に示すPADにおけるステップ1002において、本登録対象文書をデータベース中で一意に識別するための番号として文書識別子001を割り当てる。 次に、図5に示すPADにおけるステップ1003では、形態素解析用辞書を参照することにより単語として“新型”、“電気温水器”および“開発”を識別する。
そして図7に示すように、それらの前方と末尾に、それぞれ単語の先頭を表わす識別記号“[TOW]”(TOWはTop Of Wordの略)およびそれぞれ単語の末尾を表わす識別記号“[EOW]”(EOWはEnd Of Wordの略)を付加して主メモリ60上のワークエリア130に格納する。
【0029】
さらにステップ1004では、図8に示すようにステップ1003において生成された単語の境界情報を付加したテキストデータから、登録対象となるn−gramとして該当文書中の全ての1文字“新”、“型”、“の”、“電”、“気”、“温”、“水”、“器”、“を”、・・・を抽出する。
そして、単語の先頭境界の直後の文字にあたる“新”、“電”および“開”に対し先頭境界情報を、また単語の末尾境界の直前の文字にあたる“型”、“器”および“発”に対し末尾境界情報を付与する。
【0030】
最後にステップ1005で、ステップ1004において抽出したn−gramに対し該当文書の文書識別子(Did)および該当文書内での文字位置(Pos)を出現位置情報として格納するとともに、単語の境界フラグを付与した検索用インデクス(単語境界情報格納型n−gramインデクス)およびトライを生成する。
【0031】
すなわち、まずはじめに図6に示すPADのステップ1100を実行するが、この時点では登録済みの文書が存在しないためステップ1100での判定結果は“なし”となり、ステップ1101においてトライおよび単語境界情報格納型n−gramインデクスの初期化処理を行う。
そして、ステップ1102において登録対象文書の文書識別子“001”を抽出する。
次にステップ1103における繰り返し処理の1回目の処理としてステップ1104で第一文字目の“新”を抽出する。
この時点では“新”は未だ登録されていないため、ステップ1105での判定結果は“未登録”であり、ステップ1106において“新”に関するインデクス領域をアロケートするとともにステップ1107において該当インデクス領域へのポインタ“Pt1”をトライに登録する。
そして、ステップ1108において文書識別子Didとして“001”を、文字位置Posとして“1”を格納するとともに単語の先頭境界フラグに“1”を、末尾境界フラグに“0”付与したインデクスを生成する。
次に、ステップ1103における繰り返し処理の2回目の処理としてステップ1104で第二文字目の“型”を抽出する。
この時点では“型”は未登録のため、ステップ1105での判定結果は“未登録”とあり、ステップ1106において“型”に関するインデクス領域をアロケートするとともにステップ1107において該当インデクス領域へのポインタ“Pt2”をトライに登録する。
そして、ステップ1108において文書識別子Didとして“001”を、文字位置Posとして“2”を格納するとともに単語の先頭境界フラグに“0”を、末尾境界フラグに“1”付与したインデクスを生成する。
以下、同様の処理を全てのテキストデータに対し繰り返すことにより図8に示すトライおよび検索用インデクス(単語境界情報格納型n−gramインデクス)を生成する。
そして、これを磁気ディスク70上の単語境界情報格納型n−gramインデクス格納領域141に格納することにより登録処理を完了する。
以上が本実施例における登録時の処理例である。
【0032】
次に、検索時の処理について説明する。
本実施例における文書検索システムに対してネットワークを介してユーザから検索コマンドが入力されると、システム制御プログラム100は検索制御プログラム120を起動し、文書の検索処理を開始する。
文書検索時の処理を図9に示すPADを用いて説明する。
始めに、検索制御プログラム120はステップ2000で検索用n−gram抽出プログラム121を実行し、指定された検索タームから全ての1文字(1−gram)を抽出することにより検索用のn−gramを抽出する。
次に、ステップ2001で検索用インデクス抽出プログラム122を実行し、ステップ2000で抽出した全ての1−gramについて検索用インデクス(単語境界識別情報格納型n−gramインデクス)を参照し、検索を実行するために必要となるインデクスデータを抽出する。
そして、ステップ2002において検索条件判定プログラム123を実行し、指定された検索条件が単語の境界を意識しない任意語での検索であるか、単語の境界を意識した単語識別検索であるかを判定する。
そして、指定された検索条件が任意語検索の場合にはステップ2003において任意語検索プログラム124を実行し、単語境界を意識しない任意語での検索を行う。
また、指定された検索条件が単語識別検索の場合には、ステップ2004で単語識別検索プログラム125を実行し、単語境界を意識した検索を行う。
最後に、検索制御プログラム120は、以上の処理によって得られた検索結果をシステム制御プログラム100を介して検索者に返送することにより検索処理を終了する。
以上が、本実施例における検索処理の概要である。
【0033】
次に、図9におけるステップ2003およびステップ2004の処理内容について簡単に説明を補足する。
まず、ステップ2003における任意語検索プログラム124では、単語の先頭および末尾境界フラグを参照することなく従来技術(例えば、公知例1)に示されているように指定された検索タームを含む文書の検索を行う。
すなわち、各n−gramに関するインデクスデータとして格納されている文書識別子と文字位置を参照し、各n−gramが同一文書中に存在し、かつ各n−gramの並びが検索タームと同一である文書を抽出することにより検索を行う。
【0034】
また、ステップ2004における単語識別検索プログラム125では、上述したステップ2003における任意語検索処理に加え、単語の先頭および末尾境界フラグを利用した判定処理を行う。
ここで想定している単語識別検索としては単語の前方一致検索(例えば検索タームとして“気温”を指定した場合に“気温差”、“気温変化”などを含む文書を検索)、後方一致検索(例えば検索タームとして“気温”を指定した場合に“外気温”、“平均気温”などを含む文書を検索)、ならびに完全一致検索(例えば検索タームとして“気温”を指定した場合に“気温”そのものを含む文書のみを検索)がある。
そして、これらのそれぞれに対し、前方一致検索の場合には検索タームの先頭から抽出したn−gramに関する単語の先頭境界フラグに“1”が設定されているものだけを、後方一致検索の場合には検索タームの末尾から抽出したn−gramに関する単語の末尾境界フラグに“1”が設定されているものだけを、また完全一致検索の場合にはこれらの両方に“1”が設定されているものだけを抽出することにより単語境界を意識した検索を実行する。
以上が検索時処理の処理内容である。
【0035】
次に、各種検索条件が指定された場合について、具体的な検索処理の内容を例を挙げて説明する。
まず、図8に示すトライおよび検索用インデクスを対象として検索ターム“電気温水器”で任意語検索を行った場合の処理例について図10を用いて説明する。
まず、図9に示すPADのステップ2000において検索用n−gram抽出処理を実行することにより、検索ターム中“電気温水器”中の全ての1−gram“電”、“気”、“温”、“水”および“器”を抽出する。
そしてステップ2001において検索用インデクス抽出処理を実行することにより図8に示すトライおよび検索用インデクスから“電”、“気”、“温”、“水”および“器”に該当するインデクスデータを抽出する。
そして、本例では検索条件は任意語検索であるため、ステップ2002における判定結果は“任意語検索”となり、ステップ2003の任意語検索処理を実行する。
すなわち、本処理では“電”、“気”、“温”、“水”および“器”に関するインデクスデータが同一の文書識別子(Did)を持ち、かつ文字位置(Pos)が1ずつ異なって連続しているか否かを判定することにより、文書識別子Didが001である文書の文字位置4に指定された検索タームが存在することが分かる。
【0036】
次に、先ほどと同様に図8に示すトライおよび検索用インデクスを対象として検索ターム“電気温水器”で単語の完全一致検索を行った場合の処理例について図11を用いて説明する。
まず、図9に示すPADのステップ2000およびステップ2001においては、先ほどの例と同一の処理を行うことにより、図8に示すトライおよび検索用インデクスから“電”、“気”、“温”、“水”および“器”に該当するインデクスデータを抽出する。
次に、ステップ2002で検索条件の判定処理を行うが、本例では検索条件は単語の完全一致検索(単語識別検索)であるため、判定結果は“単語識別検索”となり、ステップ2004の単語識別検索処理を実行する。
すなわち、本処理では“電”、“気”、“温”、“水”および“器”に関するインデクスデータが同一の文書識別子(Did)を持ち、かつ文字位置(Pos)が1ずつ異なって連続しているか否かを判定することにより、文書識別子Didが001である文書の文字位置4に指定された検索タームが存在することが分かる。
さらに単語の境界判定処理を行うことにより、検索ターム“電気温水器”から抽出した先頭のn−gram“電”の先頭境界フラグが“1”であり、かつ末尾のn−gram“器”の末尾境界フラグが“1”であるものを抽出することにより、検索結果として文書識別子Didが001である文書の文字位置4を検索結果として出力する。
【0037】
さらに、先ほどと同様に図8に示すトライおよび検索用インデクスを対象として検索ターム“気温”で単語の完全一致検索を行った場合の処理例について図12を用いて説明する。
まず、図9に示すPADのステップ2000およびステップ2001において、検索用n−gram抽出処理および検索用インデクス抽出処理を行うことにより、図8に示すトライおよび検索用インデクスから“気”および“温”に該当するインデクスデータを抽出する。
次に、ステップ2002で検索条件の判定処理を行うが、本例では検索条件は単語の完全一致検索(単語識別検索)であるため、判定結果は“単語識別検索”となり、ステップ2004の単語識別検索処理を実行する。
すなわち、本処理では“気”および“温”に関するインデクスデータが同一の文書識別子(Did)を持ち、かつ文字位置(Pos)が1ずつ異なって連続しているか否かを判定することにより、文書識別子Didが001である文書の文字位置5に指定された検索タームが存在することが分かる。
さらに単語の境界判定処理では、検索ターム“気温”から抽出した先頭のn−gram“気”の先頭境界フラグが“1”であり、かつ末尾のn−gram“温”の末尾境界フラグが“1”であるものを抽出するが、ここではこれらのフラグが共に“0”であるため検索結果として出力されない。
以上が本実施例における文書検索時の処理内容である。
【0038】
このように、本発明によると文書の登録時に登録対象文書に対し形態素解析処理を行い単語の境界を識別するとともに、該当n−gramが単語の先頭境界であったか否かを示す先頭境界フラグ、ならびに末尾境界であったか否かを示す末尾境界フラグを付加した検索用のインデクスを生成する。
そして、検索時に検索条件が単語の境界を意識した単語識別検索の場合には、検索タームの先頭から抽出したn−gramに関する先頭境界フラグおよび末尾から抽出したn−gramに関する末尾境界フラグから、単語識別検索(単語の前方一致検索、末尾一致検索、完全一致検索)を実現することが可能になる。
さらに、本例では図7における形態素解析用辞書に“電気温水器”が登録されていることを前提として説明を行った。
しかし、文書登録の時点で“電気”および“温水器”が辞書に登録されているが、その複合語である“電気温水器”が辞書に登録されていない場合にも、“電”が“電気温水器”を構成する単語“電気”の先頭境界であり、“器”が“電気温水器”を構成する単語“温水器”の末尾境界であることから、複合語である検索ターム“電気温水器”に対する単語一致検索を実現することが可能である。
【0039】
なお、本実施例では登録対象1件毎に磁気ディスク70におけるテキスト格納領域140ならびに単語境界情報格納型n−gramインデクス格納領域141上のデータを更新していく方式について述べたが、全ての登録対象文書に対するテキストおよび単語境界情報格納型n−gramインデクスを主メモリ60上のワークエリア180に作成したあと、これらを一括して磁気ディスク70に書き込む方式であっても構わない。
【0040】
また、本実施例では単語境界識別プログラム111として公知例2に示されている形態素解析処理を行う方式について述べたが、文書の先頭から順次単語辞書を機械的に参照しながら文字列を抽出していく方法であっても構わないし、例えば漢字、カタカナやアルファベットなどの連続した同一文字種文字列を単語として切り出すといったように、漢字、カタカナ、平仮名、数字、記号およびアルファベットといった文字種情報を用いて分割した単語を用いる方法であっても構わない。
また、特願平10−148721に開示したように、テキストデータベースから抽出した各n−gram前後での文字種の区切れ目に着目し、全出現頻度に対してその前後に文字種の区切れ目が出現した確率(文字種境界確率)を用いて単語を抽出する処理であっても構わない。
すなわち、本方式に基づく文書検索方法では、所定の文書から抽出したn−gramに対し、該当n−gramの出現回数を算出する。また、該当n−gramの前に文字種の変化点が現れた回数および該当n−gramの後方で文字種の変化点が現れた回数を計数することにより、各n−gramの前方に文字種の変化点が現れる確率と各n−gramの後方で文字種の変化点が現れる確率を算出し、それぞれを前方文字種境界確率および後方文字種境界確率としておく。
そして文書登録時には、登録文書内の各文字位置において、その前後のn−gramを抽出し、前方側のn−gramにおける後方文字種境界確率と後方n−gramにおける前方文字種境界確率から、単語境界を判定する方式であっても構わない。
【0041】
さらに、本実施例における登録用n−gram抽出プログラム112では登録対象文書から、また検索用n−gram抽出プログラム122では検索タームから全ての1文字を文字列を抽出する1−gramインデクス方式について述べたが、1文字以上の所定長の部分文字列に対して検索用インデクスを作成するn−gramインデクス方式一般について本発明に示す検索機能は適用可能であることは云うまでもない。
また、公知例1に示されているように、データベース中での出現頻度に応じてインデクス作成対象とする部分文字列長(n−gram長)を動的に変更するインクリメンタルn−gramインデクス方式に適用することも可能である。
【0042】
そして、本実施例では検索用プログラムおよび登録用プログラムを磁気ディスク上70上の各種プログラム格納領域143に格納したが、光磁気ディスク装置など他の二次記憶装置に格納する構成であっても構わない。
また、CD−ROMなどの可搬型の媒体に格納し、これらを必要に応じてCD−ROMドライブ(図示せず)から読み出す構成であっても構わない。
また、上記実施例からも明らかなように、登録用のプログラムと検索用のプログラムは独立して動作することが可能であることから、これらを別々の媒体に格納することも可能であるし、別々のコンピュータシステムないしはCPUで動作させることも可能である。
【0043】
【発明の効果】
本発明によると、指定された検索タームを含む文書を漏れなく検索できる任意語での検索と、指定された検索タームが別単語中の部分文字列として存在する文書を検索結果から排除する単語境界を意識した検索を、検索目的に応じて使いわけることのできる、保守性に優れた検索システムを、高性能かつ安価に提供することが可能になる。
【図面の簡単な説明】
【図1】本発明の第一の実施例における構成を示す図である。
【図2】従来方式1(n−gramインデクス方式)の概要を示す図である。
【図3】従来方式におけるトライの構成を示す図である。
【図4】公知例1の処理内容を示す図である。
【図5】実施例における登録処理のフローを示す図である。
【図6】実施例における単語境界情報格納型n−gramインデクス作成登録プログラムの処理フローを示す図である。
【図7】実施例における登録処理(単語境界識別処理)の例を示す図である。
【図8】実施例における登録処理(登録用n−gram抽出処理および単語境界情報格納型n−gramインデクス作成登録処理)の例を示す図である。
【図9】実施例における検索処理のフローを示す図である。
【図10】実施例における検索処理の例(1)を示す図である。
【図11】実施例における検索処理の例(2)を示す図である。
【図12】実施例における検索処理の例(3)を示す図である。
【符号の説明】
10 ディスプレイ
20 キーボード
30 中央演算処理装置CPU
40 フロッピディスクドライバ
50 フロッピディスク
60 主メモリ
70 磁気ディスク
80 バス
100 システム制御プログラム
110 登録制御プログラム
111 単語境界識別プログラム
112 登録用n−gram抽出プログラム
113 単語境界情報格納型n−gramインデクス作成登録プログラム
120 検索制御プログラム
121 検索用n−gram抽出プログラム
122 検索用インデクス抽出プログラム
123 検索条件判定プログラム
124 任意語検索プログラム
125 単語識別検索プログラム
130 ワークエリア
140 テキスト格納領域
141 単語境界情報格納型n−gramインデクス格納領域
142 形態素解析用辞書格納領域
143 各種プログラム格納領域
Claims (7)
- 予め登録された文書の集合を対象として、指定された文字列を含む文書の検索を行なう文書検索システムにおける文書検索方法であって、
前記文書検索システムの備える単語境界識別手段により、登録する文書のテキストデータを対象として、該文書を特定するための識別情報である文書識別情報(文書識別子)を付与し、さらに単語の抽出処理を行い、該テキストデータ中の抽出した単語の先頭文字と末尾文字を識別し、先頭文字を示す単語の先頭境界識別情報を該抽出した単語の先頭文字に付加し、末尾文字を示す単語の末尾境界識別情報を該抽出した単語の末尾文字に付加した単語境界付きテキストデータを生成する単語境界識別ステップと、
前記文書検索システムの備える登録用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インデクス作成登録ステップとを有することを特徴とする文書検索方法。 - 請求項1記載の文書検索方法において、
前記単語境界識別ステップは、単語の抽出処理において、形態素解析用の単語辞書と、漢字、カタカナ、ひらがな、数字、アルファベット、および記号のうち少なくとも2種類以上の文字種別情報と、所定長の部分文字列の前方および後方において文字種の変化点に現れる頻度を統計的に蓄積した文字種境界確率とのうち、少なくとも1つ以上を用いることを特徴とする文書検索方法。 - 請求項1記載の文書検索方法において、
前記文書検索システムの備える検索用n−gram抽出手段により、指定された検索タームから所定長の部分文字列(n−gram)(以下、検索用n−gramという)を抽出する検索用n−gram抽出ステップと、
前記文書検索システムの備える検索用インデクス抽出手段により、前記検索用n−gram抽出ステップにより抽出した検索用n−gram毎に、前記登録された検索用インデクスから前記抽出された検索用n−gramを含む検索用インデクスを抽出する検索用インデクス抽出ステップと、
前記文書検索システムの備える単語識別検索手段により、前記検索用インデクス抽出ステップにおいて抽出された検索用インデクス中の文書識別情報と、出現位置情報と、単語の先頭境界識別情報と末尾境界識別情報を用いて、前記検索タームが、該検索タームとは異なる別単語中の部分文字列として含まれる文書をノイズとして排除して前記検索タームを含む文書を漏れなく検索する単語識別検索を行う単語識別検索ステップとを有することを特徴とする文書検索方法。 - 請求項3記載の文書検索方法において、
前記文書検索システムの備える検索条件判定手段により、指定された検索条件が、前記検索タームを含む文書を漏れなく検索する任意語検索であるか、前記検索タームが別単語中の部分文字列として存在する文書を検索結果から排除する単語境界を意識した単語識別検索であるかを判定する検索条件判定ステップと、
前記文書検索システムの備える任意語検索手段により、前記検索条件判定ステップにおける判定結果が任意語検索の場合には、前記検索用インデクス抽出ステップにおいて抽出された検索用インデクス中の文書識別情報と出現位置情報基づき、前記検索タームを含む全ての文書を漏れなく検索する任意語検索を行う任意語検索ステップを有し、
前記検索条件判定ステップにおける判定結果が単語識別検索の場合には、前記単語識別検索ステップを実行することを特徴とする文書検索方法。 - 予め登録された文書の集合を対象として、指定された文字列を含む文書の検索を行なう文書検索システムであって、
登録する文書のテキストデータを対象として、該文書を特定するための文書識別情報(文書識別子)を付与し、さらに単語の抽出処理を行い、該テキストデータ中の抽出した単語の先頭文字と末尾文字を識別し、先頭文字を示す単語の先頭境界識別情報を該抽出した単語の先頭文字に付加し、末尾文字を示す単語の末尾境界識別情報を該抽出した単語の末尾文字に付加した単語境界付きテキストデータを生成する単語境界識別手段と、
該生成した単語境界付きテキストデータから所定長の部分文字列(n−gram)を抽出する登録用n−gram抽出手段と、
該登録用n−gram抽出ステップで抽出した所定長の部分文字列(n−gram)(以下、抽出n−gramという)について、前記付与した文書識別情報と、該単語境界付きテキストデータ中における該抽出n−gramの出現位置情報を含む文字位置情報を抽出するとともに、該単語境界付きテキストデータにおいて該抽出n−gramの先頭文字が単語の先頭文字であった場合には単語の先頭境界識別情報を、また該抽出n−gramの末尾文字が単語の末尾文字であった場合には単語の末尾境界識別情報を夫々該単語境界付きテキストデータから抽出し、該抽出n−gramについて該抽出した文書識別情報と文字位置情報と単語の先頭境界識別情報と単語の末尾境界識別情報を有する該抽出n−gramに対応する検索用インデクスを生成し、登録する単語境界情報格納型n−gramインデクス作成登録手段とを有することを特徴とする文書検索システム。 - 請求項5記載の文書検索システムにおいて、
指定された検索タームから所定長の部分文字列(n−gram)(以下、検索用n−gramという)を抽出する検索用n−gram抽出手段と、
該検索用n−gram抽出手段により抽出した検索用n−gram毎に、前記登録された検索用インデクスから前記抽出された検索用n−gramを含む検索用インデクスを抽出する検索用インデクス抽出手段と、
指定された検索条件が、前記検索タームを含む文書を漏れなく検索する任意語検索であるか、前記検索タームが別単語中の部分文字列として存在する文書を検索結果から排除する単語境界を意識した単語識別検索であるかを判定する検索条件判定手段と、
前記検索条件判定手段による判定の結果が任意語検索の場合に、前記検索用インデクス抽出手段において抽出された検索用インデクス中の文書識別情報と出現位置情報基づき、前記検索タームを含む全ての文書を漏れなく検索する任意語検索を行う任意語検索手段と、
前記判定の結果が単語識別検索の場合に、前記検索用インデクス抽出手段において抽出された検索用インデクス中の文書識別情報と、出現位置情報と、単語の先頭境界識別情報と末尾境界識別情報を用いて、前記検索タームが、該検索タームとは異なる別単語中の部分文字列として含まれる文書をノイズとして排除して前記検索タームを含む文書を漏れなく検索する単語識別検索を行う単語識別検索手段とを有することを特徴とする文書検索システム。 - 少なくとも、処理装置と、記憶装置と、入出力装置を備えたコンピュータに、予め登録された文書の集合を対象として指定された文字列を含む文書の検索を行わせる文書検索プログラムであって、前記コンピュータに、
入力された指定の単語を検索タームとし、該検索タームから所定長の部分文字列(n−gram)(以下、検索用n−gramという)を抽出する検索用n−gram抽出手順と、
該検索用n−gram抽出手順により抽出した検索用n−gram毎に、前記記憶装置に登録されている検索用インデクスであって登録文書のテキストデータに割り当てられた文書識別情報(文書識別子)と該テキストデータから抽出された該テキストデータにおける出現位置情報と単語の先頭境界識別情報と単語の末尾境界識別情報を有する検索用インデクス、から前記抽出された検索用n−gramを含む検索用インデクスを抽出する検索用インデクス抽出手順と
入力された指定の検索条件が、前記検索タームを含む文書を漏れなく検索する任意語検索であるか、前記検索タームが別単語中の部分文字列として存在する文書を検索結果から排除する単語境界を意識した単語識別検索であるかを判定する検索条件判定手順と、
該判定の結果が任意語検索の場合に、前記検索用インデクス抽出手順において抽出された検索用インデクス中の文書識別情報と出現位置情報基づき、前記検索タームを含む全ての文書を漏れなく検索する任意語検索手順と、
前記判定の結果が単語識別検索の場合に、前記検索用インデクス抽出手順において抽出された検索用インデクス中の文書識別情報と、出現位置情報と、単語の先頭境界識別情報と末尾境界識別情報を用いて、前記検索タームが、該検索タームとは異なる別単語中の部分文字列として含まれる文書をノイズとして排除して前記検索タームを含む文書を漏れなく検索する単語識別検索手順と、を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03090999A JP3696745B2 (ja) | 1999-02-09 | 1999-02-09 | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US10/456,519 US7039636B2 (en) | 1999-02-09 | 2003-06-09 | Document retrieval method and document retrieval system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03090999A JP3696745B2 (ja) | 1999-02-09 | 1999-02-09 | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000231563A JP2000231563A (ja) | 2000-08-22 |
JP3696745B2 true JP3696745B2 (ja) | 2005-09-21 |
Family
ID=12316847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03090999A Expired - Fee Related JP3696745B2 (ja) | 1999-02-09 | 1999-02-09 | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7039636B2 (ja) |
JP (1) | JP3696745B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552463B2 (en) | 2016-03-29 | 2020-02-04 | International Business Machines Corporation | Creation of indexes for information retrieval |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3636941B2 (ja) * | 1999-07-19 | 2005-04-06 | 松下電器産業株式会社 | 情報検索方法と情報検索装置 |
AU2001251736A1 (en) * | 2000-03-27 | 2001-10-08 | Documentum, Inc | Method and apparatus for generating metadata for a document |
US20020022953A1 (en) * | 2000-05-24 | 2002-02-21 | Bertolus Phillip Andre | Indexing and searching ideographic characters on the internet |
JP2002032770A (ja) * | 2000-06-23 | 2002-01-31 | Internatl Business Mach Corp <Ibm> | 文書処理方法、文書処理システムおよび媒体 |
JP3662519B2 (ja) * | 2000-07-13 | 2005-06-22 | シャープ株式会社 | 光ピックアップ |
US7092870B1 (en) * | 2000-09-15 | 2006-08-15 | International Business Machines Corporation | System and method for managing a textual archive using semantic units |
JP4342753B2 (ja) * | 2001-08-10 | 2009-10-14 | 株式会社リコー | 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 |
JP4003468B2 (ja) | 2002-02-05 | 2007-11-07 | 株式会社日立製作所 | 適合性フィードバックによる類似データ検索方法および装置 |
US7284009B2 (en) * | 2002-12-13 | 2007-10-16 | Sun Microsystems, Inc. | System and method for command line prediction |
US8024176B2 (en) * | 2003-09-30 | 2011-09-20 | Dictaphone Corporation | System, method and apparatus for prediction using minimal affix patterns |
US20070162497A1 (en) * | 2003-12-08 | 2007-07-12 | Koninklijke Philips Electronic, N.V. | Searching in a melody database |
JP2006072744A (ja) * | 2004-09-02 | 2006-03-16 | Canon Inc | 文書処理装置、その制御方法、プログラム、及び記憶媒体 |
JP4549839B2 (ja) * | 2004-12-20 | 2010-09-22 | 大日本印刷株式会社 | 検索装置および方法 |
JP4682627B2 (ja) * | 2005-01-27 | 2011-05-11 | 富士ゼロックス株式会社 | 文書検索装置および方法 |
US7386570B2 (en) * | 2005-03-31 | 2008-06-10 | International Business Machines Corporation | Method, system and program product for providing high performance data lookup |
CA2657212C (en) * | 2005-07-15 | 2017-02-28 | Indxit Systems, Inc. | Systems and methods for data indexing and processing |
US20080021902A1 (en) * | 2006-07-18 | 2008-01-24 | Dawkins William P | System and Method for Storage Area Network Search Appliance |
JP2008083769A (ja) * | 2006-09-26 | 2008-04-10 | Just Syst Corp | 文書検索装置および文書検索方法 |
JP5010885B2 (ja) * | 2006-09-29 | 2012-08-29 | 株式会社ジャストシステム | 文書検索装置、文書検索方法および文書検索プログラム |
JP5141560B2 (ja) | 2007-01-24 | 2013-02-13 | 富士通株式会社 | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
JP4491480B2 (ja) * | 2007-10-11 | 2010-06-30 | 株式会社日立製作所 | インデクス構築方法、文書検索装置及びインデクス構築プログラム |
JP5224851B2 (ja) | 2008-02-27 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 検索エンジン、検索システム、検索方法およびプログラム |
US8359326B1 (en) * | 2008-04-02 | 2013-01-22 | Google Inc. | Contextual n-gram analysis |
US20110106814A1 (en) * | 2008-10-14 | 2011-05-05 | Yohei Okato | Search device, search index creating device, and search system |
JP4734400B2 (ja) * | 2008-12-18 | 2011-07-27 | 株式会社東芝 | 文書検索装置およびプログラム |
KR101255557B1 (ko) * | 2008-12-22 | 2013-04-17 | 한국전자통신연구원 | 음절 분리에 기반한 문자열 검색 시스템 및 그 방법 |
JP5285491B2 (ja) * | 2009-04-10 | 2013-09-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報検索システム、方法及びプログラム、索引作成システム、方法及びプログラム、 |
CN101963965B (zh) | 2009-07-23 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 基于搜索引擎的文档索引方法、数据查询方法及服务器 |
US8874663B2 (en) * | 2009-08-28 | 2014-10-28 | Facebook, Inc. | Comparing similarity between documents for filtering unwanted documents |
TWI647578B (zh) * | 2010-03-09 | 2019-01-11 | 阿里巴巴集團控股有限公司 | Search engine based document indexing method, data query method and server |
US20110238679A1 (en) * | 2010-03-24 | 2011-09-29 | Rovi Technologies Corporation | Representing text and other types of content by using a frequency domain |
JP5514002B2 (ja) * | 2010-06-14 | 2014-06-04 | 日本電信電話株式会社 | 検索装置及び方法及びプログラム |
JP5640578B2 (ja) * | 2010-09-03 | 2014-12-17 | 日本電気株式会社 | 文書処理装置、文書処理方法、及び、プログラム |
EP2639705B1 (en) * | 2010-11-10 | 2016-04-13 | Rakuten, Inc. | Related-word registration device, information processing device, related-word registration method, program for related-word registration device, and recording medium |
JP5522017B2 (ja) * | 2010-12-14 | 2014-06-18 | キヤノンマーケティングジャパン株式会社 | 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム |
JP5178813B2 (ja) * | 2010-12-16 | 2013-04-10 | ヤフー株式会社 | 検索システム及び方法 |
JP5699744B2 (ja) * | 2011-03-30 | 2015-04-15 | カシオ計算機株式会社 | 検索方法、検索装置、ならびに、コンピュータプログラム |
US20130007004A1 (en) * | 2011-06-30 | 2013-01-03 | Landon Ip, Inc. | Method and apparatus for creating a search index for a composite document and searching same |
US20130174029A1 (en) * | 2012-01-04 | 2013-07-04 | Freedom Solutions Group, LLC d/b/a Microsystems | Method and apparatus for analyzing a document |
US20130174030A1 (en) * | 2012-01-04 | 2013-07-04 | Freedom Solutions Group, LLC, d/b/a Microsystems | Method and apparatus for analyzing abbreviations in a document |
US9171069B2 (en) | 2012-07-31 | 2015-10-27 | Freedom Solutions Group, Llc | Method and apparatus for analyzing a document |
CN103631784B (zh) * | 2012-08-21 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 页面内容检索方法和*** |
JP5733285B2 (ja) | 2012-09-20 | 2015-06-10 | カシオ計算機株式会社 | 検索装置、検索方法及びプログラム |
JP6050165B2 (ja) * | 2013-03-22 | 2016-12-21 | 株式会社日立ソリューションズ | 全文検索装置 |
CN103678282B (zh) * | 2014-01-07 | 2016-05-25 | 苏州思必驰信息科技有限公司 | 一种分词方法及装置 |
US9535883B2 (en) * | 2014-10-24 | 2017-01-03 | Dropbox, Inc. | Modifying native document comments in a preview |
GB201421674D0 (en) * | 2014-12-05 | 2015-01-21 | Business Partners Ltd | Real time document indexing |
JP6880956B2 (ja) * | 2017-04-10 | 2021-06-02 | 富士通株式会社 | 解析プログラム、解析方法および解析装置 |
JP7095264B2 (ja) * | 2017-11-13 | 2022-07-05 | 富士通株式会社 | 情報生成プログラム、単語抽出プログラム、情報処理装置、情報生成方法及び単語抽出方法 |
JP7102710B2 (ja) * | 2017-11-22 | 2022-07-20 | 富士通株式会社 | 情報生成プログラム、単語抽出プログラム、情報処理装置、情報生成方法及び単語抽出方法 |
US11204905B2 (en) * | 2018-06-27 | 2021-12-21 | Datastax, Inc. | Trie-based indices for databases |
CN109885641B (zh) * | 2019-01-21 | 2021-03-09 | 瀚高基础软件股份有限公司 | 一种数据库中文全文检索的方法及*** |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1251570A (en) | 1985-05-14 | 1989-03-21 | Kouji Miyao | Bilingual translation system with self intelligence |
US5651095A (en) | 1993-10-04 | 1997-07-22 | British Telecommunications Public Limited Company | Speech synthesis using word parser with knowledge base having dictionary of morphemes with binding properties and combining rules to identify input word class |
US5752051A (en) | 1994-07-19 | 1998-05-12 | The United States Of America As Represented By The Secretary Of Nsa | Language-independent method of generating index terms |
JP3459053B2 (ja) | 1995-01-12 | 2003-10-20 | 株式会社日立製作所 | 文書検索方法および装置 |
JP2929963B2 (ja) * | 1995-03-15 | 1999-08-03 | 松下電器産業株式会社 | 文書検索装置および単語索引作成方法および文書検索方法 |
US5706365A (en) | 1995-04-10 | 1998-01-06 | Rebus Technology, Inc. | System and method for portable document indexing using n-gram word decomposition |
JP3148692B2 (ja) | 1996-09-04 | 2001-03-19 | 株式会社エイ・ティ・アール音声翻訳通信研究所 | 類似検索装置 |
JP3554459B2 (ja) | 1997-02-26 | 2004-08-18 | 株式会社日立製作所 | テキストデータ登録検索方法 |
US6094634A (en) | 1997-03-26 | 2000-07-25 | Fujitsu Limited | Data compressing apparatus, data decompressing apparatus, data compressing method, data decompressing method, and program recording medium |
JP3143079B2 (ja) | 1997-05-30 | 2001-03-07 | 松下電器産業株式会社 | 辞書索引作成装置と文書検索装置 |
US6226628B1 (en) | 1998-06-24 | 2001-05-01 | Microsoft Corporation | Cross-file pattern-matching compression |
US6169969B1 (en) | 1998-08-07 | 2001-01-02 | The United States Of America As Represented By The Director Of The National Security Agency | Device and method for full-text large-dictionary string matching using n-gram hashing |
-
1999
- 1999-02-09 JP JP03090999A patent/JP3696745B2/ja not_active Expired - Fee Related
-
2003
- 2003-06-09 US US10/456,519 patent/US7039636B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552463B2 (en) | 2016-03-29 | 2020-02-04 | International Business Machines Corporation | Creation of indexes for information retrieval |
US10606815B2 (en) | 2016-03-29 | 2020-03-31 | International Business Machines Corporation | Creation of indexes for information retrieval |
US11868378B2 (en) | 2016-03-29 | 2024-01-09 | International Business Machines Corporation | Creation of indexes for information retrieval |
US11874860B2 (en) | 2016-03-29 | 2024-01-16 | International Business Machines Corporation | Creation of indexes for information retrieval |
Also Published As
Publication number | Publication date |
---|---|
US7039636B2 (en) | 2006-05-02 |
US20030200211A1 (en) | 2003-10-23 |
JP2000231563A (ja) | 2000-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3696745B2 (ja) | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
EP1910948B1 (en) | Processor for fast phrase searching | |
US7516125B2 (en) | Processor for fast contextual searching | |
US20070179932A1 (en) | Method for finding data, research engine and microprocessor therefor | |
CN111428494A (zh) | 专有名词的智能纠错方法、装置、设备及存储介质 | |
JPH11110416A (ja) | データベースからドキュメントを検索するための方法および装置 | |
JPH1153384A (ja) | キーワード抽出装置及びキーワード抽出方法並びにキーワード抽出プログラムを格納したコンピュータ読み取り可能な記録媒体 | |
Bellare et al. | Learning extractors from unlabeled text using relevant databases | |
JPH0525138B2 (ja) | ||
EP0241717A2 (en) | Linguistic analysis method and apparatus | |
CN109885641A (zh) | 一种数据库中文全文检索的方法及*** | |
JP5107556B2 (ja) | 改善された中国語−英語翻訳ツール | |
JP3022539B1 (ja) | 文書検索装置 | |
JPH08147311A (ja) | 構造化文書検索方法及び装置 | |
JP3784060B2 (ja) | データベース検索システム、その検索方法及びプログラム | |
JP3620968B2 (ja) | 文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体 | |
JPH11143902A (ja) | n−gramを用いた類似文書検索方法 | |
JP2002132789A (ja) | 文書検索方法 | |
JP3780556B2 (ja) | 自然言語事例検索装置及び自然言語事例検索方法 | |
JP3376996B2 (ja) | フルテキストサーチ方法 | |
JP2001060164A (ja) | データ処理方法およびデータ処理システム並びにその実施装置及びその処理プログラムを記録した記録媒体 | |
JPH08115330A (ja) | 類似文書検索方法および装置 | |
JPH10283368A (ja) | 情報処理装置及びその方法 | |
JP5412137B2 (ja) | 機械学習装置及び方法 | |
JPH07296005A (ja) | 日本語テキスト登録・検索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050418 |
|
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: 20050621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050630 |
|
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: 20080708 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100708 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100708 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110708 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110708 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120708 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130708 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |