(57)【特許請求の範囲】
【請求項１】
検索装置における検索方法であって、
前記検索装置は、
登録文書から所定の長さの部分文字列を抽出し、
該部分文字列の前記登録文書内の位置情報と該部分文字列とを、抽出文字部分文字列として格納し、
前記登録文書内に英数字文字列が含まれている場合に、
前記英数字文字列から単語を抽出し、
前記抽出した単語に含まれる部分文字列を前記抽出文字部分文字列から削除し、
前記抽出した単語の前記登録文書内の位置情報と前記抽出した単語とを、抽出英数字文字列として格納し、
前記登録文書の文書番号と削除処理後の前記抽出文字部分文字列と前記抽出英数字文字列とに基づいて、インデクス情報に前記文書番号と前記位置情報とを登録し、
検索文字列を取得し、
前記検索文字列から部分文字列を抽出し、
該部分文字列の前記検索文字列内の位置情報と該部分文字列とを、検索部分文字列として格納し、
前記検索文字列内に英数字文字列が含まれている場合に、
前記英数字文字列から単語を抽出し、
前記抽出した単語に含まれる部分文字列を前記検索部分文字列から削除し、
前記抽出した単語の前記検索文字列内の位置情報と前記抽出した単語とを、検索英数字文字列として格納し、
削除処理後の前記検索部分文字列と前記検索英数字文字列とに基づいて、前記インデクス情報を検索する
ことを特徴とする検索方法。
【請求項２】
検索装置であって、
登録文書から所定の長さの部分文字列を抽出し、
該部分文字列の前記登録文書内の位置情報と該部分文字列とを、抽出文字部分文字列として格納し、
前記登録文書内に英数字文字列が含まれている場合に、
前記英数字文字列から単語を抽出し、
前記抽出した単語に含まれる部分文字列を前記抽出文字部分文字列から削除し、
前記抽出した単語の前記登録文書内の位置情報と前記抽出した単語とを、抽出英数字文字列として格納し、
前記登録文書の文書番号と前記抽出文字部分文字列と前記抽出英数字文字列とに基づいて、インデクス情報に前記文書番号と前記位置情報とを登録する、
インデクス登録手段と、
検索文字列を取得し、
前記検索文字列から部分文字列を抽出し、
該部分文字列の前記検索文字列内の位置情報と該部分文字列とを、検索部分文字列として格納し、
前記検索文字列内に英数字文字列が含まれている場合に、
前記英数字文字列から単語を抽出し、
前記抽出した単語に含まれる部分文字列を前記検索部分文字列から削除し、
前記抽出した単語の前記検索文字列内の位置情報と前記抽出した単語とを、検索英数字文字列として格納し、
削除処理後の前記検索部分文字列と前記検索英数字文字列とに基づいて、前記インデクス情報を検索する、
インデクス検索手段と、
を有することを特徴とする検索装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文書を検索する文書検技術に関する。
【０００２】
【従来の技術】
従来より、文書を登録時に文字コード化したテキストとして直接計算機に入力してデータベース化し、検索時に指定された検索文字列（以下、検索タームと呼ぶ）が含まれる文書を探し出すフルテキストサーチ方法が「特開昭６４―３５６２７号公報」に開示されている。この従来例では、文書の登録時にデータベースに登録する文書のテキストから文字連鎖と呼ばれる特定数の文字が連続する文字列と、その文字連鎖のテキストにおける出現位置を示す情報をインデクスとして磁気ディスク装置に格納しておく。検索時には、検索ターム中に存在する文字連鎖を抽出し、これらに対応するインデクス中の文字連鎖の位置情報を比較し、抽出した文字連鎖の検索ターム中の位置関係とインデクス中の文字連鎖の位置情報の関係が等しいかを判定（以下、隣接判定と呼ぶ）することによって、指定された検索タームが出現する文書を探し出す方式が提案されている。
【０００３】
この従来例について、図２を用いて具体的にその内容を説明する。この従来例では、特定文字数を３に想定している。まず、文書の登録時にデータベースに登録するテキスト２０１がインデクス作成部２０２に読み込まれ、文字連鎖インデクス２００が作成される。この文字連鎖２００には、テキスト２０１に出現する全ての３文字の文字連鎖とその文字連鎖のテキスト２０１における出現位置を示すポインタが格納される。
【０００４】
例えば、本図に示すテキスト２０１では、“ａｂｃ”という文字連鎖はｐｔ１、ｐｔ２、・・・で示される位置に現れるので、文字連鎖インデクス２００には、文字連鎖“ａｂｃ”とこれに対応した形でポインタｐｔ１、ｐｔ２、・・・が格納される。検索時には、まず、検索タームが文字連鎖抽出部２０３に入力され、検索ターム中に存在する全ての３文字の文字連鎖と、これに対応する文字連鎖位置が生成される。次に、生成された文字連鎖とこれに対応する文字連鎖位置がインデクス検索部２０４に入力される。インデクス検索部２０４では、検索タームから抽出された文字連鎖に対応するインデクスが文字連鎖インデクス２００から読み込まれ、これらのインデクスの間でポインタによって示される文字位置が隣接しているものが抽出され検索結果として出力される。例えば、検索タームとして“ａｂｃｄ”が入力された場合には、まず、文字連鎖抽出部２０３において＜文字連鎖“ａｂｃ”、文字連鎖位置“０”＞と＜文字連鎖“ｂｃｄ”、文字連鎖位置“１”＞が抽出される。ここで、文字連鎖位置“０”は検索タームの先頭、文字連鎖位置“１”はその次の文字位置を示している。次に、インデクス検索部２０４において、文字連鎖インデクス２００から文字連鎖“ａｂｃ”および“ｂｃｄ”に対応するインデクスが読み込まれる。これらのインデクスにおける位置ポインタが文字連鎖位置“０”と文字連鎖位置“１”のように連続するもの、すなわち隣接するものが抽出され検索結果として出力される。
【０００５】
本図では文字連鎖“ａｂｃ”のポインタｐｔ１と文字連鎖“ｂｃｄ”のポインタｐｔ３が示す位置が隣接するため、文字連鎖“ａｂｃｄ”が文字列として存在することが分かり、テキスト中に検索ターム“ａｂｃｄ”が出現することが示される。
【０００６】
次に、日本語の文書を登録した場合について説明する。本例では、前記従来例と同様に特定文字数を３に想定している。
【０００７】
まず、文書の登録時にデータベースに登録するテキスト２０１がインデクス作成部２０２に読み込まれ、文字連鎖インデクス２００が作成される。この文字連鎖２００には、テキスト２０１に出現する全ての３文字の文字連鎖とその文字連鎖のテキスト２０１における出現位置を示すポインタが格納される。例えば、テキスト２０１として“９６年度ＮＡＳＤ加入名簿”という文字連鎖を想定するとｐｔ１、ｐｔ２、ｐｔ３、・・・で示される位置に現れるので、文字連鎖インデクス２００には、文字連鎖“９６年”、“６年度”、“年度Ｎ”、・・・、“ＮＡＳ”、“ＡＳＤ”、・・・、“入名簿”とこれに対応した形でポインタｐｔ１、ｐｔ２、ｐｔ３、・・・が格納される。
【０００８】
検索時には、まず検索タームが文字連鎖抽出部２０３に入力され、検索ターム中に存在する全ての３文字の文字連鎖と、これに対応する文字連鎖位置が生成される。次に、生成された文字連鎖とこれに対応する文字連鎖位置がインデクス検索部２０４に入力される。インデクス検索部２０４では、検索タームから抽出された文字連鎖に対応するインデクスが文字連鎖インデクス２００から読み込まれ、これらのインデクスの間でポインタによって示される文字位置が隣接しているものが抽出され検索結果として出力される。例えば、検索タームとして“ＮＡＳＤ”が入力された場合には、まず、文字連鎖抽出部２０３において＜文字連鎖“ＮＡＳ”、文字連鎖位置“０”＞と＜文字連鎖“ＡＳＤ”、文字連鎖位置“１”＞が抽出される。次に、インデクス検索部２０４において、文字連鎖インデクス２００から文字連鎖“ＮＡＳ”および“ＡＳＤ”に対応するインデクスが読み込まれる。これらのインデクスにおける位置ポインタが文字連鎖位置“０”と文字連鎖位置“１”のように連続するもの、すなわち隣接するものが抽出され検索結果として出力される。本図では文字連鎖“ＮＡＳ”のポインタｐｔ５と文字連鎖“ＡＳＤ”のポインタｐｔ６が示す位置が隣接するため、文字連鎖“ＮＡＳＤ”が文字列として存在することが分かり、テキスト中に検索ターム“ＮＡＳＤ”が出現することが示される。
【０００９】
このように、検索タームから抽出した文字連鎖の検索ターム中における位置関係とインデクス中の文字連鎖の位置情報を隣接判定することにより、指定された検索タームが出現する文書を探し出している。
【００１０】
【発明が解決しようとする課題】
しかしながら、この従来例では、検索ターム“ＮＡＳＤ”が指定された場合、単語として一致しているかという判断を行っていないため、登録文書中に“ＮＡＳＤＡ”や“ＮＡＳＤＡＱ”が存在し、インデクスに登録されている場合には、“ＮＡＳＤＡ”や“ＮＡＳＤＡＱ”の部分文字列が検索されてしまい、検索ノイズが発生してしまうという問題が生じる。
【００１１】
本発明の目的は、所定長文字列で検索したい場合と単語で検索したい場合とを、所定条件により選択できる検索方法およびシステムを提供することにある。
【００１２】
【課題を解決するための手段】
格納された文書から所定長の文字列を抽出して該抽出文字列のインデクス情報を第１のインデクスに格納し、上記格納文書から単語を抽出して該抽出単語のインデクス情報を第２のインデクスに格納し、キーワードを入力したとき、設定された条件を満たしている場合は、第２のインデクスを参照し、該条件を満たさない場合は第１のインデクスを参照することにより、上記課題を改善する。
【００１３】
【発明の実施の形態】
以下、本発明の実施例を説明する。
【００１４】
まず、本発明が適用された文書検索システムの構成について図１を用いて説明する。本システムは、ディスプレイ１０１、キーボード１０２、ＣＰＵ１０３、メモリ１０４、磁気ディスク１０５およびフロッピーディスクドライブ（ＦＤＤ）１０６から構成される。
【００１５】
ディスプレイ１０１、キーボード１０２、メモリ１０４、磁気ディスク１０５およびＦＤＤ１０６は、ＣＰＵ１０３よりバスを介してアクセスされる。磁気ディスク１０５には、インデックスファイル８０００が格納される。
【００１６】
メモリ１０４には、システム制御プログラム５０００、検索インタフェースプログラム６０００、登録制御プログラム２０００、検索制御プログラム３０００、キーワード割り付けプログラム２１００、インデックス作成登録プログラム２２００およびインデックス検索プログラム３１００がロードされ、ワークエリア４０００が確保される。
【００１７】
本文書検索システムの文書データベースに登録される文書は、フロッピーディスク１０７に格納され、ＦＤＤ１０６を介してＣＰＵ１０３によりアクセスされる。本システムでは、電源投入時ＣＰＵ１０３によりシステム制御プログラム５０００が起動され、システム制御プログラム５０００の制御のもとに登録制御プログラム２０００および検索制御プログラム３０００が起動される。
【００１８】
このような構成の本システムにおける文書の登録処理の概略について説明する。
【００１９】
ユーザがキーボード１０２から入力した指示に従って、システム制御プログラム５０００が登録制御プログラム２０００を起動する。
【００２０】
登録制御プログラム２０００では、最初、文書を登録する前に、ユーザがキーボード１０２から入力した指示に従い、インデクス登録プログラム２１００を起動し、インデックスファイル８０００の初期設定を行う。
【００２１】
インデックス作成登録プログラム２１００では、ユーザがキーボード１０２から入力した指示に従い、フロッピーディスク１０７に格納された登録対象の文書を、ＦＤＤ１０６を介してメモリ１０４のワークエリア４０００に読み込む。
【００２２】
この登録文書に文書番号を割付け、検索に必要な所定の長さの部分文字列とその位置情報を抽出する。抽出した部分文字列に対応するインデックスファイル８０００の中のインデクスに文書番号と部分文字列の位置情報を登録する。
【００２３】
次に、本システムにおける文書の検索動作の概略について説明する。ユーザがキーボード１０２から入力した指示に従い、システム制御プログラム５０００は検索制御プログラム３０００と検索インタフェースプログラム６０００を起動する。
【００２４】
その後、ユーザがキーボード１０２から入力した検索タームを含む質問語は、検索インタフェースプログラム６０００に入力され、検索制御プログラム３０００に送られる。
【００２５】
検索制御プログラム３０００では、インデックス検索プログラム３１００を起動するとともに本プログラムへ前記質問語を送る。
【００２６】
インデックス検索プログラム３１００では、受け取った質問語に含まれる検索タームに対応するインデックスから文書番号を読み出し、検索結果として検索制御プログラム３０００へ送出する。
【００２７】
本検索結果は、検索インタフェースプログラム６０００へと送られ、検索結果文書番号としてディスプレイ１０１に表示される。
【００２８】
次に、インデクス登録プログラム２１００の構成とインデクス登録処理について図３を用いて説明する。
【００２９】
インデクス登録プログラム２１００は、部分文字列抽出ステップ２１１０、英単語抽出ステップ２１２０、部分文字列削除ステップ２１３０およびインデクス追加ステップ２１３０から構成される。
【００３０】
まず、部分文字列抽出ステップ２１１０では、ワークエリア４０００に格納された登録文書に、文書毎にユニークな文書番号を割り付けるとともに、その文書から所定の長さの部分文字列を全て抽出し、その位置情報とともにワークエリア４０００に格納する。この位置情報とは、文書中における部分文字列が存在した文字位置を示す。
【００３１】
次に、英単語抽出ステップ２１２０では、ワークエリア４０００に格納されている登録文書から英数字が連続している英数字文字列を抽出し、区切り文字を検出することにより、英数字文字列から単語を抽出する。このような英数字文字列から単語を抽出する技術は、一般に知られており、その技術をそのまま用いる。さらに、部分文字列削除ステップ２１３０では、抽出された単語に含まれるワークエリア４０００に格納された部分文字列を削除し、抽出した単語とその文書中における位置情報を新たな抽出部分文字列として、ワークエリア４０００に格納する。
【００３２】
その後、インデクス追加ステップ２１４０では、ワークエリア４０００に格納された抽出部分文字列に対応するインデクスファイル８０００におけるインデクスに、登録文書の文書番号とその抽出部分文字列に対応する位置情報を追加登録する。
【００３３】
以上が、インデクス登録プログラム２１００の文書登録処理である。
【００３４】
次にインデクス検索プログラム３１００の構成とインデクス検索処理について、図４を用いて説明する。
【００３５】
インデクス検索プログラム３１００は、検索ターム取得ステップ３１１０、部分文字列抽出ステップ３１２０、英数字文字列判定ステップ３１３０、単語抽出ステップ３１４０、部分文字列削除ステップ３１５０、部分文字列マージステップ３１６０およびインデクス参照ステップ３１７０から構成される。
【００３６】
まず、検索ターム取得ステップ３１１０では、検索制御プログラム３０００から送られた質問語をワークエリア４０００を経由して取得し、その中に含まれる検索タームを抽出する。
【００３７】
次に、部分文字列抽出ステップ３１２０では、検索タームから所定の長さの部分文字列を全て抽出し、検索ターム中における位置情報とともにワークエリア４０００に格納する。
【００３８】
さらに、英数字文字列判定ステップ３１３０では、検索ターム中に英数字文字列が存在するかを検索ターム中に英数字が連続している部分があるか否かで判定し、存在する場合のみ、単語抽出ステップ３１４０、部分文字列削除ステップ３１５０、部分文字列マージステップ３１６０を実行する。
【００３９】
単語抽出ステップ３１４０では、抽出した英数字文字列より区切り文字を検出することにより単語を抽出し、検索ターム中における位置情報とともにワークエリア４０００に格納する。次に、部分文字列削除ステップ３１５０では、すでに抽出した部分文字列の中で単語に含まれてしまうものを削除する。これは、単語に含まれている部分文字列を削除しないと、単語を意識した検索が実現できないからである。さらに、部分文字列マージステップ３１６０では、抽出した単語およびその位置情報をすでに抽出した部分文字列およびその位置情報とマージする。このようにすることにより、単語を特別に処理する必要がなく、部分文字列の一つとして検索に用いることができる。
【００４０】
その後、インデクス参照ステップ３１７０では、ワークエリア４０００に格納した部分文字列とその位置情報を用いて、インデクスファイル８０００に格納されている部分文字列に対応するインデクスを読み出し、検索ターム中における部分文字列の位置関係と同じものを探索する。そして、インデクスに格納されている位置情報が、検索ターム中の全ての部分文字列が検索ターム中の位置関係と同じ位置情報を持つ場合、この位置情報に対応する文書番号を検索結果として取得する。このように探索することにより検索タームを含む文書を検索することができる。このインデクス参照ステップ３１７０には、部分文字列を用いて検索を行う従来例をそのまま使用することができる。
【００４１】
本実施例について、具体例を用いて詳細に説明する。ここでは、部分文字列の長さとして３文字を想定する。
【００４２】
登録文書中に“ＮＡＳＤＡ”や“ＮＡＳＤＡＱ”が存在している場合、登録時には、単語抽出ステップ２１２０において、単語として“ＮＡＳＤＡ”と“ＮＡＳＤＡＱ”を抽出し、その部分文字列がワークファイル４０００に格納されている場合には、“ＮＡＳＤＡ”や“ＮＡＳＤＡＱ”の部分文字列“ＮＡＳ”、“ＡＳＤ”、…は部分文字列削除ステップ２１３０において削除されてしまう。したがって、インデクスは“ＮＡＳＤＡ”や“ＮＡＳＤＡＱ”に対応するもののみがインデクス追加ステップ２１４０において作成されることになる。すなわち、単語のインデクスを作成することになる。
【００４３】
さらに、検索時には、検索タームとして“ＮＡＳＤ”が指定されたとすると英数字文字列判定ステップ３１３０は、検索タームに英数字が含まれていると判断するため、単語抽出ステップ３１４０が実行され、検索タームから単語“ＮＡＳＤ”を抽出する。次に部分文字列削除ステップ３１５０が実行され、“ＮＡＳＤ”の部分文字列である“ＮＡＳ”や“ＡＳＤ”を格納されているワークファイル４０００から削除する。次に部分文字列マージステップ３１６０が実行され単語“ＮＡＳＤ”は部分文字列“ＮＡＳＤ”としてワークファイル４０００に格納される。その後、インデクス参照ステップ３１７０が実行され“ＮＡＳＤ”に対応するインデクスを参照する。この場合、“ＮＡＳＤＡ”や“ＮＡＳＤＡＱ”に含まれる部分文字列として“ＮＡＳＤ”のインデクスは作成されておらず、単語“ＮＡＳＤ”のみのインデクスしか作成されていないので、検索ノイズを含まずに検索することが実現できている。
【００４４】
本例では、日本語と英語が混在している文書について説明してきたが、英語以外のフランス語やドイツ語などのようにアルファベットを用い、単語を抽出できる言語であれば、同様に本発明を適用することが可能である。
【００４５】
また、日本文字とアルファベットに限定されるのではなく、異なる種類の言語の文字が混在する文書にも適用可能である。
【００４６】
以上により、日本語と英語が混在した文書が登録された文書データーベースにおいて、検索タームとして英単語が指定された場合に、検索タームが英単語の部分文字列としてヒットすることなく英単語としてヒットさせることにより、検索ノイズの発生を抑止することが可能となる。
【００４７】
【発明の効果】
本発明によれば、所定長文字列で検索したい場合と単語で検索したい場合とを、設定された条件により選択することが可能となる。
【図面の簡単な説明】
【図１】本発明が適用された文書検索システムの構成を示す図である。
【図２】従来例のインデクスの例を示す図である。
【図３】本発明を用いたインデクス作成処理を示すPAD図である。
【図４】本発明を用いたインデクス検索処理を示すPAD図である。
【符号の説明】
１０１…ディスプレイ、１０２…キーボード、  １０３…ＣＰＵ、
１０４…メモリ、      １０５…磁気ディスク、１０６…ＦＤＤ、
１０７…フロッピーディスク、            ２０００…登録制御プログラム、
２１００…インデクス登録プログラム、    ３０００…検索制御プログラム、
３１００…インデクス検索プログラム、    ４０００…ワークエリア、
５０００…システム制御プログラム、
６０００…検索インタフェースプログラム、８０００…インデクスファイル。
【図１】
0004031844.tif 000002
【図２】
0004031844.tif 000003
【図３】
0004031844.tif 000004
【図４】
0004031844.tif 000005