(57)【要約】【課題】検索時の精度向上及び検索結果の表記ゆれ吸収を可能にする文書検索方法及び文書検索装置並びにそのコンピュータプログラムを提供する。【解決手段】文書検索装置10は、入力された検索対象となる文字列を入力部1でクエリとして受け付け、正式名称／正規表現辞書31と、変換リスト41と、挿入リスト51とを用いて、受け付けたクエリの正規表現を作成して、この正規表現から単語の正式名称を一意に特定し、作成された正規表現を用いてクエリの拡張を行ってクエリ群を作成し、拡張されたクエリ群を用いて文書検索部6により文書検索を行い、当該クエリ群を含む文書データを抽出し、特定された正式名称と該正式名称に対応する正規表現とを用いて、抽出された文書データ中に含まれるクエリの表記を統一し、表記統一された文書データの情報を出力部８により出力する。【選択図】図１
2008287394.tif 000002
【特許請求の範囲】
【請求項１】
単語の正式名称と該正式名称の正規表現とを対にした情報をエントリとして持つ正式名称／正規表現辞書のデータベースと、検索対象となる文字列としてのクエリの正規表現作成時に変換規則として用いる任意に登録可能な変換リストのデータベースと、前記クエリの正規表現作成時に挿入する文字や記号を任意に登録できる挿入リストのデータベースとを備えたコンピュータ装置からなる文書検索装置に対してクエリを入力すると、前記文書検索装置が、文書データベースに格納されている複数の文書データの中から前記クエリを拡張したクエリ群を含む文書データを抽出して、該抽出結果を出力する文書検索方法であって、
前記文書検索装置は、
入力された前記検索対象となる文字列をクエリとして受け付け、
前記正式名称／正規表現辞書と、前記変換リストと、前記挿入リストとを用いて、前記受け付けたクエリの正規表現を作成して、該正規表現から単語の正式名称を一意に特定し、
作成された正規表現を用い、クエリの拡張を行ってクエリ群を作成し、
拡張された前記クエリ群を用いて文書検索を行い、当該クエリ群を含む文書データを抽出し、
前記特定された正式名称と該正式名称に対応する正規表現とを用いて、前記抽出された文書データ中に含まれるクエリの表記を統一し、
表記統一された文書データの情報を出力する
ことを特徴とする文書検索方法。
【請求項２】
前記文書検索装置は、新たなクエリが入力されたときに作成した正規表現と該正規表現から特定した単語の正式名称の情報を用いて前記正式名称／正規表現辞書を更新する
ことを特徴とする請求項１に記載の文書検索方法。
【請求項３】
検索対象となる文字列としてのクエリを入力すると、文書データベースに格納されている複数の文書データの中から前記クエリを拡張したクエリ群を含む文書データを抽出して、該抽出結果を出力する文書検索装置であって、
入力された前記検索対象となる文字列をクエリとして受け付ける入力手段と、
単語の正式名称と該正式名称の正規表現とを対にした情報をエントリとして持つ正式名称／正規表現辞書のデータベースと、
前記クエリの正規表現作成時に変換規則として用いる任意に登録可能な変換リストのデータベースと、
前記クエリの正規表現作成時に挿入する文字や記号を任意に登録できる挿入リストのデータベースと、
前記正式名称／正規表現辞書と、前記変換リストと、前記挿入リストとを用いて、前記受け付けたクエリの正規表現を作成して、該正規表現から単語の正式名称を一意に特定する正式名称特定手段と、
作成された正規表現を用いてクエリの拡張を行ってクエリ群を作成するクエリ拡張手段と、
拡張された前記クエリ群を用いて文書検索を行い、当該クエリ群を含む文書データを抽出する文書検索手段と、
前記正式名称特定手段により特定された正式名称と該正式名称に対応する正規表現とを用いて、前記抽出された文書データ中に含まれるクエリの表記を統一する表記統一手段と、
表記統一された文書データの情報を出力する出力手段とを備えた
ことを特徴とする文書検索装置。
【請求項４】
前記正式名称特定手段は、作成した正規表現と該正規表現から特定した単語の正式名称の情報を用いて前記正式名称／正規表現辞書を作成する手段を有することを特徴とする請求項３に記載の文書検索装置。
【請求項５】
単語の正式名称と該正式名称の正規表現とを対にした情報をエントリとして持つ正式名称／正規表現辞書のデータベースと、検索対象となる文字列としてのクエリの正規表現作成時に変換規則として用いる任意に登録可能な変換リストのデータベースと、前記クエリの正規表現作成時に挿入する文字や記号を任意に登録できる挿入リストのデータベースとを備えたコンピュータ装置からなる文書検索装置に対してクエリを入力すると、前記文書検索装置が、文書データベースに格納されている複数の文書データの中から前記クエリを拡張したクエリ群を含む文書データを抽出して、該抽出結果を出力する前記文書検索装置を動作させるコンピュータプログラムであって、
入力された前記検索対象となる文字列をクエリとして受け付けるステップと、
前記正式名称／正規表現辞書と、前記変換リストと、前記挿入リストとを用いて、前記受け付けたクエリの正規表現を作成して、該正規表現から単語の正式名称を一意に特定するステップと、
作成された正規表現を用い、クエリの拡張を行ってクエリ群を作成するステップと、
拡張された前記クエリ群を用いて文書検索を行い、当該クエリ群を含む文書データを抽出するステップと、
前記特定された正式名称と該正式名称に対応する正規表現とを用いて、前記抽出された文書データ中に含まれるクエリの表記を統一するステップと、
表記統一された文書データの情報を出力するステップとを含む
ことを特徴とするコンピュータプログラム。
【請求項６】
新たな検索対象となる文字列が入力されたときに作成した正規表現と該正規表現から特定した単語の正式名称の情報を用いて前記正式名称／正規表現辞書を更新するステップを含む
ことを特徴とする請求項５に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は検索装置に入力された検索対象となる文字列としてのクエリから、その同義の正規表現を生成して正規表現辞書作成を行い、質問拡張及び表記統一を行い、検索精度の向上及び、検索結果の表記ゆれ吸収を同時に可能にすることを特徴とした文書検索方法及び装置並びにそのコンピュータプログラムに関するものである。
【背景技術】
【０００２】
従来、文書検索装置では、検索者が検索対象となる文字列としてのクエリを入力すると文書データべースから該当クエリを含む文書を検索する。従来の文書検索装置では、検索者がクエリを入力すると、該当クエリを有する文書だけでなく、該当クエリの表記ゆれを有する文書もあわせて検索して文書の検索漏れを防止する機能が付加される事が多い。表記ゆれを吸収するため、検索装置は同義語辞書を用いる。その辞書は、クエリを拡張するだけでなく、検索された各文書に含まれるクエリの表記ゆれを吸収する際にも必要となる。
【０００３】
例えば、非特許文献１に記載されている質問応答システムでは、ユーザの質問文と知識データベースのテキストの表現のずれを、同義語や同義フレーズをグループ化した同義語辞書を用いて吸収している。この質問応答システムは、質問キーワードに対してその答えの元となるテキストを文書集合から検索するため、キーワードに対して適合するテキストを探すというタスクにおいて検索システムと等しい。また、この質問応答システムが、質問文と回答を含むテキスト中の表現のずれを吸収するために同義語辞書を用いる際には、クエリとその表記ゆれを含む表現からなる集合全てを展開した状態で辞書に登録する必要がある。文献１では919グループの同義表現、3512語、217フレーズが登録されている同義語辞書を、手作業で作成している。
【非特許文献１】大規模テキスト知識ベースに基づく自動質問応答−ダイアログナビ−、清田陽司,黒橋禎男,木戸冬子、自然言語処理 Vol.10 No.4 2003
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、表記ゆれ表現を含む辞書を作るには、以下のような課題がある。
【０００５】
・表記ゆれを含む表現パターンは無数にあるため、全てを登録すると辞書サイズが非常に大きくなってしまう。
【０００６】
・新しい単語や、表記ゆれは日々生成され続けているので、ある時点での表現を集めただけでは足りない場合がある。また、スピードある対応が必要になる。
【０００７】
・手作業で作成するには膨大な時間及びコストがかかってしまう。
【０００８】
上記のような課題は、英数記号を含む文字列によって構成される製品名でより顕著である。
【０００９】
本発明は上記の問題点に鑑みてなされたもので、検索時の精度向上及び検索結果の表記ゆれ吸収を可能にする文書検索方法及び文書検索装置並びにそのコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は上記の目的を達成するために、単語の正式名称と該正式名称の正規表現とを対にした情報をエントリとして持つ正式名称／正規表現辞書のデータベースと、検索対象となる文字列としてのクエリの正規表現作成時に変換規則として用いる任意に登録可能な変換リストのデータベースと、前記クエリの正規表現作成時に挿入する文字や記号を任意に登録できる挿入リストのデータベースとを備えたコンピュータ装置からなる文書検索装置に対してクエリを入力すると、前記文書検索装置が、文書データベースに格納されている複数の文書データの中から前記クエリを拡張したクエリ群を含む文書データを抽出して、該抽出結果を出力する文書検索方法であって、前記文書検索装置は、入力された前記検索対象となる文字列をクエリとして受け付け、前記正式名称／正規表現辞書と、前記変換リストと、前記挿入リストとを用いて、前記受け付けたクエリの正規表現を作成して、該正規表現から単語の正式名称を一意に特定し、作成された正規表現を用い、クエリの拡張を行ってクエリ群を作成し、拡張された前記クエリ群を用いて文書検索を行い、当該クエリ群を含む文書データを抽出し、前記特定された正式名称と該正式名称に対応する正規表現とを用いて、前記抽出された文書データ中に含まれるクエリの表記を統一し、表記統一された文書データの情報を出力する文書検索方法を提案する。
【００１１】
本発明の文書検索方法によれば、入力された英数記号列を含むクエリから正規表現で記述した表記ゆれパターンを自動的に生成し、その正規表現と正式名称を対にして辞書に登録することにより、検索時のクエリの拡張及び、検索結果の表記の統一を行う。
【００１２】
すなわち、本発明では
１．入力されたクエリの、様々な表記ゆれを含む表現を正規表現として記述し、辞書に登録する。
【００１３】
２．正規表現を全展開することで、考えられる全ての表記ゆれを含む正規表現を自動生成する。
【００１４】
３．新たな表記ゆれを発見した場合は、自動的に辞書中の正規表現を更新する。
を、英数記号を含む文字列を対象に行う。
【００１５】
このように正規表現を用いることにより、辞書ヘの登録単語数を削減することができ、１つの辞書をクエリ拡張と表記ゆれ吸収両方に使用可能であり、辞書サイズを縮小することができる。
【００１６】
また、考えられる全ての表記ゆれを含む表現を自動生成することにより、新語への対応スピード、網羅性共に向上が見込めると同時に、コストの削減にもなる。
【００１７】
さらに、入力されたクエリと正式名称、どちらも正規表現で記述するため、正式名称とは違うクエリが入力されても特定できる可能性が高い。
【００１８】
また、本発明は上記の文書検索方法を適用した文書検索装置、すなわち、検索対象となる文字列としてのクエリを入力すると、文書データベースに格納されている複数の文書データの中から前記クエリを拡張したクエリ群を含む文書データを抽出して、該抽出結果を出力する文書検索装置であって、入力された前記検索対象となる文字列をクエリとして受け付ける入力手段と、単語の正式名称と該正式名称の正規表現とを対にした情報をエントリとして持つ正式名称／正規表現辞書のデータベースと、前記クエリの正規表現作成時に変換規則として用いる任意に登録可能な変換リストのデータベースと、前記クエリの正規表現作成時に挿入する文字や記号を任意に登録できる挿入リストのデータベースと、前記正式名称／正規表現辞書と、前記変換リストと、前記挿入リストとを用いて、前記受け付けたクエリの正規表現を作成して、該正規表現から単語の正式名称を一意に特定する正式名称特定手段と、作成された正規表現を用いてクエリの拡張を行ってクエリ群を作成するクエリ拡張手段と、拡張された前記クエリ群を用いて文書検索を行い、当該クエリ群を含む文書データを抽出する文書検索手段と、前記正式名称特定手段により特定された正式名称と該正式名称に対応する正規表現とを用いて、前記抽出された文書データ中に含まれるクエリの表記を統一する表記統一手段と、表記統一された文書データの情報を出力する出力手段とを備えた文書検索装置を提案する。
【００１９】
さらに、本発明は、コンピュータ装置を上記文書検索装置として動作させるためのコンピュータプログラムとして、単語の正式名称と該正式名称の正規表現とを対にした情報をエントリとして持つ正式名称／正規表現辞書のデータベースと、検索対象となる文字列としてのクエリの正規表現作成時に変換規則として用いる任意に登録可能な変換リストのデータベースと、前記クエリの正規表現作成時に挿入する文字や記号を任意に登録できる挿入リストのデータベースとを備えたコンピュータ装置からなる文書検索装置に対してクエリを入力すると、前記文書検索装置が、文書データベースに格納されている複数の文書データの中から前記クエリを拡張したクエリ群を含む文書データを抽出して、該抽出結果を出力する前記文書検索装置を動作させるコンピュータプログラムであって、入力された前記検索対象となる文字列をクエリとして受け付けるステップと、前記正式名称／正規表現辞書と、前記変換リストと、前記挿入リストとを用いて、前記受け付けたクエリの正規表現を作成して、該正規表現から単語の正式名称を一意に特定するステップと、作成された正規表現を用い、クエリの拡張を行ってクエリ群を作成するステップと、拡張された前記クエリ群を用いて文書検索を行い、当該クエリ群を含む文書データを抽出するステップと、前記特定された正式名称と該正式名称に対応する正規表現とを用いて、前記抽出された文書データ中に含まれるクエリの表記を統一するステップと、表記統一された文書データの情報を出力するステップとを含むコンピュータプログラムを提案する。
【発明の効果】
【００２０】
本発明の文書検索方法及び文書検索装置によれば、正規表現を用いることにより、辞書ヘの登録単語数を削減することができ、１つの辞書をクエリ拡張と表記ゆれ吸収両方に使用可能であり、辞書サイズを縮小することができる。また、考えられる全ての表記ゆれを含む正規表現を自動生成することにより、新語への対応スピード、網羅性共に向上が見込めると同時に、コストの削減にもなる。さらに、入力されたクエリと正式名称、どちらも正規表現で記述するため、正式名称とは違うクエリが入力されても特定できる可能性が高まるという非常に優れた効果を奏する。
【００２１】
また、本発明のコンピュータプログラムを用いることにより、任意のコンピュータ装置によって本発明の文書検索方法を実施する文書検索装置を容易に構成することができるという非常に優れた効果を奏するものである。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の一実施形態を説明する。
【００２３】
図１は本発明の一実施形態における文書検索装置の機能ブロック図である。図において、１０は所定のコンピュータプログラムによって動作するコンピュータ装置からなる文書検索装置で、入力部１と、質問拡張部２、正式名称／正規表現辞書３１が格納されているデータベース３、変換リスト４１が格納されているデータベース４、挿入リスト５１が格納されているデータベース５、文書検索部６、表記統一部７、出力部８を備えている。これらの各構成部はコンピュータ装置のハードウェアとソフトウェアの双方によって構成されている。
【００２４】
詳細は後述するとして、ここでは先に概要を述べる。
【００２５】
入力部１では任意の形式で検索するクエリを受け付ける。質問拡張部２ではクエリが数字、アルファベット、記号、その他の文字種のうち２種以上を含む場合は複数の同義表現に拡張しその拡張したクエリ群を、そうでない場合はクエリをそのままの状態で文書検索部６へ出力する。文書検索部６では質問拡張部２の出力を含む文書を検索し、その結果である文書集合を表記統一部７へ渡す。表記統一部７では、クエリ拡張されている場合に限り、文書検索部６の返してきた文書データの集合に含まれる入力クエリの表記を統一し、文書データの集合を出力部８ヘ渡す。出力部８では処理結果を任意の形で出力する。
【００２６】
尚、入力部１及び出力部８における入出力方法や文書検索部４での検索方法については周知の既存技術(例えば、非特許文献２:情報の科学と技術 Vol.54 2004 No.2、特集インターネット検索エンジン、検索エンジンのアルゴリズム(兼宗進)(p78〜p83)、検索エンジンのアーキテクチャ(山名早人)(p84〜p89)に開示される技術)を使用することとする。
【００２７】
また、ここでの正規表現はPerlで書くことを例に説明を行っている。よって、他の表現を用いる場合には、その手法に準じる。また、正規表現の中でも“.*”や“.+”などの、“任意の文字を任意の数繰り返す”不確定な要素を含む表現は用いない。また、Perlの表現とは異なるが、空白記号を表現するのに便宜上“”を用いる。
【００２８】
本装置１０を使用する際には、事前の設定(辞書登録機能)を行う必要がある。
【００２９】
すなわち、ユーザは検索装置１０を利用するときに、辞書の更新（新語の登録および、正規表現拡張）を行うかどうかの「辞書登録機能」を、設定ファイルなどを用いて選択できるようにしておく。
【００３０】
本装置１０を初めて使用する際などに、正式名称／正規表現辞書３１を作成する必要がある場合には、「辞書登録機能」をＯＮにしておかなければならない。
【００３１】
本装置１０をクエリの拡張のみに使用する場合や、辞書登録されては困るような表記ゆれ表現をクエリとして用いる場合などには、「辞書登録機能」をＯＦＦにすることもできる。
【００３２】
また、クエリの拡張に使用する変換規則や記号などは、変換リスト４１、挿入リスト５１にあらかじめ設定しておくことができる。
【００３３】
次に、本装置１０の各構成部の動作を詳細に説明する。
【００３４】
入力部１は、ユーザが任意の形式で入力した検索対象となる文字列を取得し、この文字列をクエリとして受け付け、受け付けたクエリを質問拡張部２へ渡す。尚、クエリは文字列で構成される。
【００３５】
質問拡張部２は、例えば図２に示すように入力判別部２１と、正式名称特定部２２、クエリ拡張部２３とから構成され、正式名称／正規表現辞書３１と、変換リスト４１、挿入リスト５１を用いて処理を行う。
【００３６】
正式名称／正規表現辞書３１は、単語の同義表現の集合を正規表現で現して、単語の正式名称と対にしたものを１エントリとする辞書である。図３に正式名称／正規表現辞書３１の一例を示す。
【００３７】
変換リスト４１は、同義表現を多数もつブランド名や、削除しても意味の変化が生じないと思われる記号などを登録したリストである。同義表現を多く持つブランド名のようなエントリは、同義表現集合を１つのエントリとして変換項目に登録する。例えば図４のエントリ１〜４では（表現１，表現２，表現３）のように、変換項目の同義表現を「，(カンマ)」で区切った。また、削除のみ可能なエントリはエントリ５の（＆）のように１エントリ１表現で登録する。
【００３８】
挿入リスト５のエントリに登録した表現は、クエリを、表記ゆれを含む表現へと拡張する際に用いられる。よって、挿入リスト５には、表記ゆれ表現に頻繁に使用される空白記号やハイフンなど、クエリ拡張の際に挿入したい記号を登録しておく。挿入リスト５の一例を図５に示す。図５の挿入リスト５においては、エントリ１の挿入項目として「“”（空白記号）」が登録され、エントリ２の挿入項目として「-（ハイフン）」が登録されている。
【００３９】
入力判別部２１は、入力部１から入力したクエリが（アルファべット、数字、記号）のうちどれかを含み、２種類以上の文字種で構成されている場合は正式名称特定部２２へクエリを出力する。そうでない場合は文書検索部６へクエリを出力する。
【００４０】
正式名称特定部２２は、正式名称/正規表現辞書３１と、変換リスト４１、挿入リスト５１を用いて、図６に示す処理を行う。ここでの処理には事前の設定で行った「辞書登録機能」のＯＮ／ＯＦＦの情報が必要となるため、あらかじめその情報を取り込んでおきステップ(22s26),(22s27)の処理で使用する。
【００４１】
ここで、正式名称特定部２２が行う処理の詳細を図６及び図７のフローチャートを参照して説明する。
【００４２】
正式名称特定部２２は、入力判別部２１から受け取ったクエリと正式名称／正規表現辞書３１のエントリとを比較し、正式名称／正規表現辞書３１のエントリの正規表現に一致するものがあるか否かを判定し(22s1)、一致するものがあった場合には、ステップ(22s3)の処理へ進み、一致したエントリの正規表現をクエリ拡張部２３へ出力する。また、一致するものがなかった場合は、ステップ(22s2)の処理へ進み正規表現作成を行う。
【００４３】
ステップ(22s2)の正規表現作成の詳細処理は図７に示すとおりであり、まずクエリを文字種の異なる境界で分割し、配列の要素とする(22s21)。このとき、空白記号は要素とせず削除する。次にルール適用処理を行う(22s22)。このルール適用処理(22s22)の詳細は図８に示すとおりであり、この処理には変換リスト４１を用いる。
【００４４】
すなわち、ルール適用処理(22s22)では，ステップ(22s221)からステップ(22s226)の処理を、ステップ(22s21)で作成した配列の要素毎に繰り返し、全要素を調べたら繰り返しを終了する。
【００４５】
ステップ(22s222)では、配列要素が変換リストの表現と一致するか否かを判定し、一致する場合はステップ(22s223)の処理へ、そうでない場合はステップ(22s224)の処理へと進む。
【００４６】
ステップ(22s223)では、配列要素を(一致したエントリ，？)に変更して、ステップ(22s224)の処理へ進む。
【００４７】
ステップ(22s224)では、配列要素がアルファベットを含むか否かを判定し，アルファべットを含む場合はステップ(22s225)の処理へ、そうでない場合はステップ(22s226)ヘ処理を進める。
【００４８】
ステップ(22s225)では、配列要素を(そのまま、全て大文字、全て小文字、先頭だけ大文字)に変換し、要素中に重複が出た場合は重複部分を削除する。この後、ステップ(22s226)の処理へ進む。
【００４９】
ステップ(22s226)では、配列の全要素を調べ終わったら処理を終了して、ステップ(22s2)における記号挿入処理のステップ(22s23)の処理へ進む。
【００５０】
記号挿入処理のステップ(22s23)では、挿入リスト５１を「，(カンマ)」で区切ったものの最後に「？」の文字を付け足して１要素とし、クエリ配列要素間に挿入した後、ステップ(22s24)の処理へ進む。
【００５１】
正規表現作成処理のステップ(22s24)では、配列要素をつなげて、正規表現を作成する。この処理の詳細を図９のフローチャートに示す。
【００５２】
すなわち、ステップ(22s24)の処理では、配列の要素ごとにステップ(22s241)〜(22s248)までの処理を繰り返す。
【００５３】
ステップ(22s242)では１要素中の「，(カンマ)」で区切られた文字が全て１文字であるか否かを判定し，１文字である場合はステップ(22s243)の処理へ、そうでない場合はステップ(22s244)の処理へ進む。
【００５４】
ステップ(22s243)では、「，(カンマ)」を削除し、「()」の文字を「[]」の文字へ変換して、ステップ(22s245)の処理へ進む。
【００５５】
ステップ(22s244)では、「，(カンマ)」を「｜(パイプ)」へ変換して、ステップ(22s245)の処理へ進む。
【００５６】
ステップ(22s245)では、要素の最後に「？」の文字を含むか否かを調べ、要素の最後に「？」の文字を含む場合はステップ(22s246)の処理へ、要素の最後に「？」の文字を含まない場合はステップ(22s247)の処理へ進む。
【００５７】
ステップ(22s246)では、要素の外側の括弧の右外へ「？」の文字を移し、ステップ(22s247)の処理へ進む。
【００５８】
ステップ(22s247)では、全ての要素の処理が終わったら、ステップ(22s248)の処理へ進む。
【００５９】
ステップ(22s248)では、全要素をつなげて文字列とし、処理を終了する。この後、ステップ(22s25)の処理へと進む。
【００６０】
ステップ(22s25)では、作成した正規表現に一致する正式名称が正式名称／正規表現辞書３１にあるか否かを調べる。この結果、作成した正規表現に一致する正式名称が正式名称／正規表現辞書３１にある場合はステップ(22s26)の処理へ、ない場合はステップ(22s27)の処理へ進む。
【００６１】
ステップ(22s26)は、上記一致した正式名称に対応する正規表現を新しく作成した正規表現を含む形で拡張し、辞書登録機能がＯＮのときにはこれを登録する。このステップ(22s26)の処理の詳細を図１０のフローチャートを参照して説明する。ステップ(22s26)の処理では、図１０に示すように、ステップ(22s161)〜(22s2610)の処理を行う。
【００６２】
ステップ(22s261)では、２つの正規表現を、括弧表現の対を単位にして区切り、配列に格納する。このとき括弧表現がついていない部分には「()」の文字を付けてから格納する。この後、ステップ(22s262)の処理へ進む。
【００６３】
ステップ(22s262)では、２つの正規表現間で完全一致する要素を探し、そこを境界に一致しない要素のまとまり同士を前から比較していく。この後、ステップ(22s263)の処理へ進む。
【００６４】
ステップ(22s263)では、ステップ(22s262)で抽出した2つの正規表現間で一致しない要素のまとまり同士の中でも部分一致する部分を探す。この後、ステップ(22s264)の処理へ進む。
【００６５】
ステップ(22s264)では、要素内の１部分が異なるか否かを判定し，要素内の１部分だけ異なり他の部分は一致する場合にはステップ(22s265)の処理へ、それ以外はステップ(22s267)の処理へ進む。
【００６６】
ステップ(22s265)では、要素内の異なる部分が一文字であるか否かを判定し、要素内の異なる部分が一文字の場合はステップ(22s266)の処理へ、それ以外の場合はステップ(22s268)の処理へ進む。
【００６７】
ステップ(22s266)では、要素を囲む括弧が「[]」の文字のときは不一致文字を中に付け足し、「()」の文字のときは「｜（パイプ）」の文字でつなぐ。この後，ステップ(22s269)の処理へ進む。
【００６８】
ステップ(22s267)は、ステップ(22s264)の判定の結果、一致する要素がない場合の処理なので、それぞれの要素の括弧の外側へ「？」の文字をつけてから元の位置ヘ挿入する。この後、ステップ(22s269)の処理へ進む。
【００６９】
ステップ(22s268)では、「[]」の文字のときはこれを「()」の文字に変えて「｜（パイプ）」の文字でつなぐ。この後、ステップ(22s269)の処理へ進む。
【００７０】
ステップ(22s269)では、ステップ(22s262)の処理で検出した一致しない部分の全て（異なる部分の全て）を比較し終えたら繰り返し処理を終了して、ステップ(22s2610)の処理へ進む。
【００７１】
ステップ(22s2610)では、前述した「辞書登録機能」がＯＮの場合は、図３に示した正式名称／正規表現辞書３１の対応するエントリの正規表現を新たに作った正規表現に登録しなおしてからステップ(22s26)の処理を終了する。
【００７２】
ステップ(22s26)の処理を終了したら、ステップ(22s2)の処理を終了して、ステップ(22s23)の処理へ進む。
【００７３】
ステップ(22s27)では、もし辞書登録機能がＯＮの場合には、入力されたクエリを正式名称として、作成した正規表現とセットで図３に示した正式名称／正規表現辞書３１の新しいエントリとして登録する。そうしてステップ(22s2)の処理を終えたら、ステップ(22s3)の処理ヘ進む。
【００７４】
ステップ(22s3)では、ステップ(22s2)の正規表現作成処理が終わったら、辞書に登録されていた、または新しく作成した正式名称と正規表現の対をクエリ拡張部２３へ出力して処理を終了する。
【００７５】
クエリ拡張部２３は、上記作成された正規表現を用いてクエリの拡張を行ってクエリ群を作成する。クエリ拡張部２３の処理の詳細は図１１のフローチャートに示すとおりで、ステップ(23s1)〜(23s9)の処理を行う。
【００７６】
ステップ(23s1)では、正式名称特定部２３が出力した正規表現のうち、記号部分以外の全展開を行い、ステップ(23s2)の処理へ進む。
【００７７】
ステップ(23s2)〜(23s8)では、正規表現中の展開前の記号部分ごとにこれらの全ての処理を進める。
【００７８】
ステップ(23s3)では、処理対象となっている記号部分の前または後ろの文字が記号であるか否かを判定し、処理対象となっている記号部分の前または後ろの文字が記号である場合は処理中の情報をコピーして、ステップ(23s4)及びステップ(23s6)の処理を並行して進める。それ以外の場合はステップ(23s7)の処理を行う。
【００７９】
ステップ(23s4)では、処理中の記号部分の前後の記号を削除して、ステップ(23s3)の処理へ戻る。
【００８０】
ステップ(23s 5)では、処理対象となっている記号部分の前または後ろの何れかの文字がクエリの先頭または終端であるか否かを判定し、処理対象となっている記号部分の前または後ろの何れかの文字がクエリの先頭または終端だった場合にステップ(23s6)の処理を、それ以外の場合はステップ(23s7)の処理を行う。
【００８１】
ステップ(23s6)では、処理中の記号部分を展開せず削除して、ステップ(23s2)の処理へ進み次の記号部分の処理へ移る。
【００８２】
ステップ(23s7)では、処理中の記号部分を展開して、ステップ(23s8)の処理へと進む。
【００８３】
ステップ(23s8)では、正規表現中に含まれる記号部分を全て処理し終えたら繰り返し処理を終了し、ステップ(23s 9)の処理へ進む。
【００８４】
ステップ(23s 9)では、展開の終わったクエリのうち、先に生成したクエリと重複が生じたものは削除して、処理を終了する。
【００８５】
クエリ拡張部２３は、展開し終えたクエリの同義表現集合と、その正式名称、正規表現を文書検索部６へ渡す。また、クエリ拡張部２３は、クエリ拡張を行わなかった場合にはクエリのみを文書検索部６に渡す。
【００８６】
以上で質問拡張部２の処理は終了となる。
【００８７】
文書検索部６は、質問拡張部２から、[クエリのみ]またはクエリの[正式名称、正規表現、同義表現集合]を受け取る。そして、前者の場合はクエリを用いて、後者の場合はクエリの同義表現集合を用いて、周知の既存技術を用いて文書検索処理を行い、文書データベース100に蓄積されている複数の文書データの中から該当する文書データを抽出する。そして検索結果の文書データのリストと、正式名称、正規表現がある場合はそれも、表記統一部７へと出力する。
【００８８】
表記統一部７は、図１２に示すように、出力判別部７１と統一部７２とから構成されており、質問拡張部２において質問拡張を行った場合は検索結果とクエリの正式名称とその正規表現を文書検索部６から受け取る。質問拡張部２において質問拡張を行わなかった場合は検索結果のみを文書検索部６から受け取る。
【００８９】
出力判別部７１は、文書検索部６から受け取ったのが検索結果のみだった場合は何もせずそのまま出力部８へ検索結果を渡す。また、出力判別部７１は、文書検索部６から検索結果に加えて正式名称と正規表現も受け取った場合は統一部７２へこれらを渡して処理を依頼する。
【００９０】
統一部７２では、正規表現を用いて検索結果である文書データの集合中に含まれるクエリの表記ゆれを含む表現を探し、正式名称で書き換えを行う。そして、その結果を出力部８へ渡す。
【００９１】
出力部８は、任意の形式でクエリの表記が統一された文書データの情報を出力する。
【実施例】
【００９２】
次に、上記実施形態に関して具体例を用いた一実施例を詳細に説明する。
【００９３】
ここでは正規表現はPerlの表現にしたがっている。また、記号「“”」は空白記号(スペース)をあらわしている。
【００９４】
本実施例では、事前の設定(辞書登録機能)として、「辞書登録機能」をＯＮにしておく。また、本実施例では文書検索装置１０の入力部１へ検索対象となる文字列として「FOMA P902i」というクエリが入力されたものとして説明する。この場合、質問拡張部２で用いる正式名称/正規表現辞書３１、変換リスト４１、挿入リスト５１としては、それぞれ前述した図３，４，５に示したものを例として用いる。
【００９５】
質問拡張部２の入力判別部２１では、入力部１で受け付けたクエリ「FOMA P902i」を入力として受け取る。クエリ「FOMA P902i」はアルファべット、数字、空白記号からなるため、正式名称特定部２２へクエリを出力する。
【００９６】
正式名称特定部２２では、前述した図６に示す処理を行う。すなわち、正式名称特定部２２は、ステップ(22s 1)では入力判別部２１から受け取ったクエリ「FOMA P902i」は、図３に示す正式名称／正規表現辞書３１のエントリの正規表現に一致するものがないのでステップ(22s2)ヘ進み、正規表現作成を行う。
【００９７】
ステップ(22s2)の正規表現作成処理では、変換リスト４１と、挿入リスト５１、正式名称／正規表現辞書３１を用い、ステップ(22s21)において、まずクエリ「FOMA P902i」を文字種の異なる境界で分割し、[FOMA,P,902,i]とする。FOMAとPの間の“”（空白）は削除する。
【００９８】
次に、ステップ(22s22)でルール適用処理を行う。この処理には変換リスト４１を用いる。
【００９９】
ステップ(22s221)では、ステップ(22s21)の処理で作成した配列[F0MA,P,902,i]の要素ごとにステップ(22s221)〜(22s226)の処理を繰り返す。このとき[F0MA]の処理から行う。
【０１００】
ステップ(22s222)では、配列要素[FOMA]が変換リスト４１のエントリと一致するか否かを判定し、配列要素[FOMA]はエントリ１と一致するので、ステップ(22s223)の処理へと進む。
【０１０１】
ステップ(22s223)では、配列要素[FOMA]を[(FOMA,フォーマ,?)]に変更して、ステップ(22s224)の処理へ進む。
【０１０２】
ステップ(22s224)では、変更された配列要素(FOMA,フォーマ,?)はアルファべットを含むので、ステップ(22s225)へ処理を進める。
【０１０３】
ステップ(22s225)の処理では、(FOMA,フォーマ,?)→(FOMA, FOMA,foma,Foma,フォーマ,?)→(FOMA,foma,Foma,フォーマ,?)となり、ステップ(22s226)の処理へ進む。
【０１０４】
ステップ(22s226)では、全ての要素を調べていないので、ステップ(22s221)の処理へ戻る。
【０１０５】
ステップ(22s221)では、次の配列要素[P]の処理を行う。
【０１０６】
ステップ(22s222)では、配列要素[P]が変換リストと一致しないので、ステップ(22s224)の処理へ進む。
【０１０７】
ステップ(22s224)では、配列要素[P]はアルファベットを含むので、ステップ(22s225)へ処理を進める。
【０１０８】
ステップ(22s225)の処理では、P→(P,P,p,P)→(P,p)となり、ステップ(22s226)の処理へ進む。
【０１０９】
ステップ(22s226)では、全ての要素を調べていないので、ステップ(22s221)の処理へ戻り、残りの[902],[i]も同様に処理を行い、全ての要素の処理を行うと最終的な配列要素は[(FOMA,foma,Foma,フォーマ,?),(P,p),902,(i,I)]となる。その時点で処理を終了し、ステップ(22s2)の正規表現作成処理のステップ(22s23)の処理ヘ進む。
【０１１０】
ステップ(22s23)では、図５に示す挿入リスト５１を「，(カンマ)」で区切ったもの[“”，-]の最後に「？」の文字を付け足して１要素[“”,-,?]としてクエリ配列要素間に挿入し、[FOMA,foma,Foma,フォーマ,?),(“”,-,?),(P,p),(“”,-,?),902,(“”,-,?),(i,I)]とした後、ステップ(22s24)の処理ヘ進む。
【０１１１】
ステップ(22s24)では、配列要素をつなげて正規表現を作成する。すなわち、配列の要素ごとにステップ(22s241)〜(22s248)まで(FOMA,foma,Foma,フォーマ,?),(“”,-,?),(P,p),(“”,-,?),902,(“”,-,?),(i,I)の順に処理を７回繰り返す。まずは(FOMA, foma,Foma,フォーマ,?)の処理から行う。
【０１１２】
ステップ(22s242)の処理では、(FOMA,foma,Foma,フォーマ,?)は１要素中の「，(カンマ)」で区切られた文字が全て１文字でないので、ステップ(22s244)の処理へ進む。
【０１１３】
ステップ(22s244)では、「，(カンマ)」を「｜(パイプ)」へ変換し、(FOMA｜foma｜Foma｜フォーマ｜？)とした後、ステップ(22s245)の処理へ進む。
【０１１４】
ステップ(22s245)の処理では、配列要素(FOMA|foma|Foma|フォーマ｜？)は配列要素の最後に「？」の文字があるので、ステップ(22s246)の処理へ進む。
【０１１５】
ステップ(22s246)では、配列要素の外側の括弧の右外へ「？」の文字を移し、(FOMA｜foma｜Foma｜フォーマ)？として、ステップ(22s247)の処理 へ進む。
【０１１６】
ステップ(22s247)では、まだ全要素を調べていないので、ステップ(22s241)の処理へ戻る。
【０１１７】
次に、ステップ(22s241)では、配列要素(“”,-,？)の処理を行う。
【０１１８】
ステップ(22s242)の処理では、(“”,-,?)は、１要素中の「，(カンマ)」で区切られた文字が全て１文字であるので、ステップ(22s243)の処理へ進む。
【０１１９】
ステップ(22s243)では、配列要素(“”,-,？)の「，(カンマ)」を削除して、「()」の文字を「[]」の文字ヘ変換し、配列要素[“”-?]とした後に、ステップ(22s245)の処理へ進む。
【０１２０】
ステップ(22s245)では、配列要素[“”-?]は要素の最後に「？」の文字があるので、ステップ(22s246)の処理へ進む。
【０１２１】
ステップ(22s246)では、要素の外側の括弧の右外ヘ「？」の文字を移し、[“”-]？とした後、ステップ(22s247)の処理へ進む。
【０１２２】
ステップ(22s247)では、まだ全要素を調べていないので，ステップ(22s241)の処理へ戻り、残りの(P,p),(“”,-,?),902,(“”,-,?),(i,I)も同様にして処理を行う。全ての要素の処理が終わったら、ステップ(22s248)の処理へ進む。
【０１２３】
ステップ(22s247)の処理において、全ての要素の処理が終わったと判断したら、繰り返し処理を終了して、ステップ(22s28)の処理へと進む。
【０１２４】
ステップ(22s248)では、全ての要素の処理が終わったら、全要素をつなげて文字列(F0MA｜Foma｜foma)?[“”-]？[Pp][“”-]？902[“”-]？[iI]とし、ステップ(22s25)の処理へ進む。
【０１２５】
ステップ(22s25)では、作成した正規表現に一致する正式名称「DoCoMo P902i」が図３の正式名称／正規表現辞書３１のエントリ３にあるので、ステップ(22s26)の処理へ進む。
【０１２６】
ステップ(22s26)では、一致した正式名称に対応する正規表現を、新しく作成した正規表現を含む形で拡張する。
【０１２７】
ステップ(22s261)では、正式名称／正規表現辞書３１中の正規表現(DoCoMo|Docomo|ドコモ)[“”-]？[Pp][“”-]902[“”-]？iと新しく作成した正規表現(FOMA|Foma|foma)？[“”-]？[Pp][“”-]？902[“”-]？[iI]の２つの正規表現を、括弧表現の対を単位にして区切り、配列に格納する。このとき括弧表現がついていない部分には()を付けてから格納するので、[(DoCoMo｜Docomo｜ドコモ),[“”-]？,[Pp],[“”-],(902),[“”-]？,(i)]と、[(FOMA|Foma|foma)？,[“”-]？,[Pp],[“”-]？,(902),[“”-]？,[iI]]となる。この後、ステップ(22s262)の処理へ進む。
【０１２８】
ステップ(22s262)では、上記２つの正規表現間で一致する要素を探す。この結果、[[“”-]？,[Pp],[“”-],(902),[“”-]？]が一致しているので、一致部分の前後の要素のまとまり[(DoCoMo｜Docomo｜ドコモ)]と[(FOMA｜Foma｜foma)],[(i)]と[[iI]]を対象に以下のステップ(22s263)〜(22s268)の処理を繰り返し、前から比較していく。その際、挿入等の変更は新たに作成した配列(F0MA｜Foma｜foma)？[“”-]？[Pp][“”-]？902[“”-]？[iI]の要素に対して行う。まずは[(DoCoMo｜Docomo｜ドコモ)]と[(FOMA｜Foma｜foma)]の処理から行うためにステップ(22s263)ヘ進む。
【０１２９】
ステップ(22s263)では、ステップ(22s262)で抽出した２つの正規表現間で一致しない要素のまとまり同士の中でも部分一致する部分を探す。この結果，要素のまとまり[(DoCoMo｜Docomo｜ドコモ)]と[(FOMA｜Foma｜foma)]には部分一致が無いので、ステップ(22s264)の処理へ進む。
【０１３０】
ステップ(22s264)の処理では、要素内に一致する部分が無いので、ステップ(22s267)の処理へ進む。
【０１３１】
ステップ(22s267)の処理では、それぞれの要素の括弧の外側へ「？」の文字をつけて繋げ、[(DoCoMo｜Docomo｜ドコモ)？(FOMA｜Foma ｜foma)？]とし、ステップ(22s269)の処理へ進む。
【０１３２】
ステップ(22s269)の処理では、まだ全ての要素を比較していないので、ステップ(22s262)の処理へ戻り、次の異なる部分を比較処理を繰り返す。
【０１３３】
ステップ(22s262)では、２つの正規表現[(i)]と[[iI]]との間で一致する部分を探し、ステップ(22s263)の処理へ進む。
【０１３４】
ステップ(22s263)の処理では、ステップ(22s262)の処理で抽出した２つの正規表現間で一致しない要素のまとまり同士の中でも部分一致する部分を探す。ここでは、２つの正規表現[(i)]と[[iI]]ではiのみが等しい。この後、ステップ(22s264)の処理へ進む。
【０１３５】
ステップ(22s264)の処理では、２つの正規表現[(i)]と[[iI]]は要素内の１部分だけ異なり他の部分は一致するので、ステップ(22s265)の処理へ進む。
【０１３６】
ステップ(22s265)の処理では、２つの正規表現[(i)]と[[iI]]の要素内の異なる部分が一文字なので、ステップ(22s266)の処理ヘ進む。
【０１３７】
ステップ(22s266)の処理では、要素を囲む括弧が[]の時は不一致文字を中に付け足し、[[iI]]としてステップ(22s269)の処理へ進む。
【０１３８】
ステップ(22s269)の処理では、異なる部分を比較し終えたら、新たに作成中であった配列をつなげて文字列[(DoCoMo｜Docomo｜ドコモ)？(FOMA｜Foma｜foma)？,[“”-]？,[Pp],[“”-]？,(902),[“”-]？,[iI]]ヘ戻し、繰り返しを終了して、ステップ(22s2610)の処理へ進む。
【０１３９】
ステップ(22s2610)では、図３に示した正式名称/正規表現辞書３１のエントリ３をDoCoMo P9O2i／(DocoMo｜Docomo｜ドコモ)[“”-]？[Pp][“”-]902[“”-]？iからDoCoMo P902i／[(DoCoMo｜Docomo｜ドコモ)？(F0MA｜Foma｜foma)？[“”-]？[Pp][“”-]？902[“”-]？[iI]]に変更して、ステップ(22s26)の処理を終了し、ステップ(22s2)へ戻り、ステップ(22s2)の処理も終了し、ステップ(22s3)の処理へ進む。
【０１４０】
ステップ(22s3)では、ステップ(22s2)の正規表現作成処理が終わったら、DoCoMo P902i／[(DoCoMo｜Docomo｜ドコモ)？(FOMA｜Foma｜foma)？[“”-]？[Pp][“”-]？902[“”-]？[iI]]をクエリ拡張部２３へ出力して処理を終了する。
【０１４１】
クエリ拡張部２３では、前述した図１１に示す処理を行う。即ち、クエリ拡張部２３は、ステップ(23s1)では正式名称特定部２２が出力した正規表現のうち、記号部分以外の全展開を行い、(例１)FOMA[“”-]？P[“”-]？902[“”-]？i、(例２)[“”-]？p[“”-]？902[“”-]？i等としてステップ(23s2)の処理へ進む。
【０１４２】
ステップ(23s2)〜(23s8)では、正規表現中の展開前の記号部分ごとに処理を進める。
【０１４３】
上記(例１)の場合はステップ(23s3)〜(23s6)の処理は行わずにステップ(23s7)の処理でFOMA[“”-]？P[“”-]？902[“”-]？iをそのまま全展開し、
FOMA P 902 i
FOMA P 902-i
FOMA P 902i
FOMA P-902 i
FOMA P-902-i
FOMA P-902i
FOMA P902 i
FOMA P902-i
FOMA P902i
FOMA-P 902 i
FOMA-P 9O2-i
FOMA-P 9O2i
FOMA-P-902 i
FOMA-P-902-i
FOMA-P-902i
FOMA-P902 i
FOMA-P902-i
FOMA-P902i
FOMAP 902 i
FOMAP 902-i
FOMAP 902i
FOMAP-902 i
FOMAP-902-i
FOMAP-902i
FOMAP902 i
FOMAP902-i
FOMAP902i
としてステップ(23s8)の処理ヘと進む。
【０１４４】
上記(例２)の場合はステップ(23s5)の判定の結果、記号部分の前がクエリの先頭なので、ステップ(23s6)の処理を行ってp[“”-]？902[“”-]？iとなったものをステップ(23s7)で全展開して
p 9O2i
p 9O2-i
p 902i
P-902 i
P-902-i
p-9O2i
p902 i
p902-i
p902i
としてステップ(23s8)の処理ヘと進む。
【０１４５】
ステップ(23s8)では、展開した正規表現中に含まれる記号部分を全て処理し終えたら繰り返し処理を終了してステップ(23s9)の処理へ進む。
【０１４６】
ステップ(23s9)の処理では、展開の終わったクエリのうち、先に生成したクエリと重複が生じたものは削除する。ここでは重複はないため処理を終了して、展開し終えたクエリの同義表現集合 FOMA P-902i,FOMA-P902I,p902i等１７２８通りと、正式名称DoCoMo P902i、正規表現[(DoCoMo｜Docomo|ドコモ)?(F0MA｜Foma｜foma)?[“”-]?[Pp][“”-]?902[“”-]?[iI]]を文書検索部６へ渡す。以上で質問拡張部２の処理は終了となる。
【０１４７】
文書検索部６は、質問拡張部２から、クエリの[正式名称，正規表現，同義表現集合]を受け取り、クエリの同義表現集合を用いて、既存の技術で検索を行う。そして検索結果の文書データのリストと、正式名称、正規表現を表記統一部７へと出力する。
【０１４８】
表記統一部７は、前述した図１２に示す処理を行う。すなわち、表記統一部７では質問拡張部２でクエリの拡張を行っているため
・検索結果
・正式名称 DoCoMo P902i
・正規表現 [(DoCoMo｜Docomo｜ドコモ)?(FOMA｜Foma｜foma)?[“”-]?[Pp][“”-]?902[“”-]?[iI]]
を受け取る。
【０１４９】
これらを受け取った表記統一部７の出力判別部７１では、正式名称と正規表現が入力されるので、これらを統一部７２に渡して統一部７２での処理を進める。
【０１５０】
統一部７２では、正規表現[(DoCoMo｜Docomo｜ドコモ)?(FOMA｜Foma｜foma)?[“”-]?[Pp][“”-]?9O2[“”-]?[iI]]を用いて検索結果である文書データの集合中に含まれるクエリの表記ゆれを含む表現を探し、正式名称「DoCoMo P902i」で書き換えを行う。そしてその結果を出力部８へ渡す。
【０１５１】
出力部８は、任意の形式でクエリの表記が統一された文書データの集合をユーザに提示する。
【０１５２】
前述したように本発明の文書検索方法を適用した本実施形態の文書検索装置１０によれば、正規表現を用いることにより、辞書ヘの登録単語数を削減することができ、１つの辞書をクエリ拡張と表記ゆれ吸収両方に使用可能であり、辞書サイズを縮小することができる。また、考えられる全ての表記ゆれを含む正規表現を自動生成することにより、新語への対応スピード、網羅性共に向上すると同時に、コストを削減することができる。さらに、入力されたクエリと正式名称、どちらも正規表現で記述するため、正式名称とは違うクエリが入力されても特定できる可能性が高まる。さらにまた、本実施形態の文書検索装置１０に適用している本発明のコンピュータプログラムを用いることにより、任意のコンピュータ装置によって本発明の文書検索方法を実施する文書検索装置を容易に構成することができる。
【図面の簡単な説明】
【０１５３】
【図１】本発明の一実施形態における文書検索装置の機能ブロック図
【図２】本発明の一実施形態における質問拡張部の詳細構成を示す機能ブロック図
【図３】本発明の一実施形態における正式名称／正規表現辞書の一例を示す図
【図４】本発明の一実施形態における変換リストの一例を示す図
【図５】本発明の一実施形態における挿入リストの一例を示す図
【図６】本発明の一実施形態における正式名称特定部の処理動作を説明するフローチャート
【図７】本発明の一実施形態における正規表現作成処理の動作を説明するフローチャート
【図８】本発明の一実施形態におけるルール適用処理の動作を説明するフローチャート
【図９】本発明の一実施形態における正規表現作成処理の動作を説明するフローチャート
【図１０】本発明の一実施形態における正規表現拡張処理の動作を説明するフローチャート
【図１１】本発明の一実施形態におけるクエリ拡張部の処理動作を説明するフローチャート
【図１２】本発明の一実施形態における表記統一部の詳細構成を示す機能ブロック図
【符号の説明】
【０１５４】
１…入力部、２…質問拡張部、３，４，５…データベース、６…文書検索部、７…表記統一部、８…出力部、２１…入力判別部、２２…正式名称特定部、２３…クエリ拡張部、３１…正規名称／正規表現辞書、４１…変換リスト、５１…挿入リスト、７１…出力判別部、７２…統一部、100…文書データベース。
【図１】
2008287394.tif 000003
【図２】
2008287394.tif 000004
【図３】
2008287394.tif 000005
【図４】
2008287394.tif 000006
【図５】
2008287394.tif 000007
【図６】
2008287394.tif 000008
【図７】
2008287394.tif 000009
【図８】
2008287394.tif 000010
【図９】
2008287394.tif 000011
【図１０】
2008287394.tif 000012
【図１１】
2008287394.tif 000013
【図１２】
2008287394.tif 000014