JPH11184893A - パターン照合装置及び文書処理装置 - Google Patents

パターン照合装置及び文書処理装置

Info

Publication number
JPH11184893A
JPH11184893A JP9366538A JP36653897A JPH11184893A JP H11184893 A JPH11184893 A JP H11184893A JP 9366538 A JP9366538 A JP 9366538A JP 36653897 A JP36653897 A JP 36653897A JP H11184893 A JPH11184893 A JP H11184893A
Authority
JP
Japan
Prior art keywords
dictionary
index information
search
reverse
character string
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.)
Granted
Application number
JP9366538A
Other languages
English (en)
Other versions
JP3501267B2 (ja
Inventor
Toshiyuki Sugio
俊之 杉尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP36653897A priority Critical patent/JP3501267B2/ja
Publication of JPH11184893A publication Critical patent/JPH11184893A/ja
Application granted granted Critical
Publication of JP3501267B2 publication Critical patent/JP3501267B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 省資源で高速な検索を行うことのできるシス
テムを実現する。 【解決手段】 不確定な可変長の文字列の混在を想定し
た表記を含んで構成される索引情報を格納する辞書ファ
イル8に加えて、任意の文字列の順序を逆転し、かつ、
文字列中に不確定な可変長の文字列の混在を想定した表
記を含んで構成される索引情報を格納するリバース辞書
ファイル9を設ける。各辞書ファイル8、9は、平衡木
の構造を持ち、かつ、その節点ノードに部分木に含まれ
る最小値を格納している。スコープ設定手段5は、質問
範囲を限定した質問語を出力する。辞書アクセス手段6
は、スコープ設定手段5の出力した質問語で、辞書ファ
イル8およびリバース辞書ファイル9を検索する。候補
選択手段7は、両辞書から得られた索引情報が一致し、
かつ、これら索引情報が、与えられた質問語に少なくと
も部分的に一致している索引情報を検索候補として出力
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文字列パターンの
照合を行うパターン照合装置に関し、また、このパター
ン照合装置を応用した文書検索システム、データベース
システム、辞書検索システム、および機械翻訳システム
等の文書処理装置に関するものである。
【0002】
【従来の技術】情報処理システムの普及に伴い、文字列
の集まりからなる電子化された文書データ(以下、電子
化文書と呼ぶ)を扱う機会が増えている。特に、計算機
ネットワークの普及が上記の傾向に拍車をかけることに
なり、情報処理を行う上で、大量の文書の中から検索者
が探したい特定の文字列(以下、質問語と呼ぶ)を含む
文書を検索する要求は、増大の一途をたどりつつある。
【0003】このような検索処理を実現する方法とし
て、インデックスを使用したインデックス検索方式が広
く知られている。この方式は、質問語に一致するキーワ
ードのインデックスを参照することにより、検索対象で
ある文書を検索することを可能とする。インデックス検
索方式が具備すべき検索機能には、完全一致検索機能と
部分一致検索機能がある。完全一致検索機能は、質問語
とキーワードが完全に一致する場合の検索機能である。
一方、部分一致検索機能は、検索者がキーワードを構成
する全ての文字を正確に記憶していないときに用いられ
る検索方法で、キーワードの記憶の確かな文字列部分の
みを質問語として検索する機能である。さらに、部分一
致検索機能には、キーワードの末尾文字列が不明の場合
にキーワードの先頭文字列のみを質問語とする前方一致
検索、キーワードの先頭文字列が不明の場合にキーワー
ドの末尾文字列のみを質問語とする後方一致検索、キー
ワードの先頭と末尾文字列が不明の場合にキーワードの
中間文字列のみを質問語とする中間一致検索がある。
【0004】この種の検索装置に関連して、例えば、 文献1:特開平8−16617号公報「文書検索方法お
よび装置」に開示される技術が提案されている。この方
法および装置は、文書データベースシステム(辞書デー
タベースシステム、機械翻訳システムの辞書システム等
に適用しても同様である)に必要とされる検索機能の一
つである部分一致検索機能をインデックス検索方式で実
現する場合に生じる下記の(課題1)を解決することを
目的とする。
【0005】(課題1)「部分一致検索機能をインデッ
クス検索方式で実現するには、キーワード中の部分文字
列を全て別個のキーワードとしてインデックスに登録し
ておく必要があるため、インデックスに登録するキーワ
ード数が莫大となり、更に、インデックス格納領域も巨
大となる。」
【0006】この(課題1)を解決する手段として、文
献1の方法および装置では、インデックスを作成した全
てのキーワードを並べて単語テーブルを作成し、与えら
れた質問語と単語テーブル内のキーワードを文字列照合
し、照合の結果抽出された質問語を含むキーワードを新
たな質問語としてインデックスを参照し、前記の与えら
れた質問語と部分的または完全に一致するキーワードを
含む文書を検索するようにしている。また、前記の単語
テーブルの作成に際して、この単語テーブルに登録する
キーワードの先頭と末尾に所定の区切りコードを付加す
るようにしている。
【0007】更に、前記の与えられた質問語と単語テー
ブル内のキーワードとの文字列照合に際して、キーワー
ドの先頭文字列と質問語とが一致するキーワードを含む
文書を検索する場合には、この質問語の先頭に前記の所
定の区切りコードを付加し、この区切りコードを付加し
た質問語と単語テーブル内のキーワードとを文字列照合
するようにしている。また、与えられた質問語と単語テ
ーブル内のキーワードとの文字列照合に際して、キーワ
ードの末尾文字列と該質問語とが一致するキーワードを
含む文書を検索する場合には、この質問語の末尾に所定
の区切りコードを付加し、この区切りコードを付加して
質問語と単語テーブル内のキーワードとを文字列照合す
るようにしている。また、前記の与えられた質問語と単
語テーブル内のキーワードとの文字列照合に際して、キ
ーワードの中間文字列と質問語とが一致するキーワード
を含む文書を検索する場合には、この質問語に前記の所
定の区切りコードを付加することなく、この質問語と単
語テーブル内のキーワードとを文字列照合するようにし
ている。また、前記の与えられた質問語と単語テーブル
内のキーワードとの文字列照合に際して、この質問語と
完全一致するキーワードを含む文書を検索する場合に
は、この質問語の先頭と末尾に前記の所定の区切りコー
ドを付加し、この区切りコードを付加した質問語と単語
テーブル内のキーワードとを文字列照合するようにして
いる。
【0008】しかし、文献1の方法および装置によれ
ば、質問語を再構成して新たな質問語を1以上作成し、
インデックスを検索することになるので、単語テーブル
に登録される文字列の種類が増大するにつれて新たに作
成される質問語の数は増大し、従って、検索回数が再構
成された質問語に比例して増大し、検索速度は著しく低
下し、実用上の検索速度要求に応えられなくなるという
(課題2)が生じる。
【0009】(課題2)「検索要求が発生するたびに、
検索に必要な質問語を再構成すれば、検索回数は、再構
成された質問語に比例して増大し、検索速度は著しく低
下し、実用上の検索速度要求に応えられなくなる。」
【0010】この(課題2)を解決する方法は、文献1
の方法および装置が発明される以前に、既に、 文献2:日高、稲永、吉田著「拡張B-treeと日本語単語
辞書への応用」電子通信学会論文誌 ’84/4 Vol.
J67-D No4に示す方法として開示されている。文献2
の方法によれば、(課題2)を解決する手段として、木
構造探索法の一つであるB-Treeを拡張した探索法(以
下、拡張B-Treeと呼ぶ)を提案している。この方法によ
って、与えられた質問語の先頭(左端)に位置する単語
(新たな質問語)が、1回の検索で全て取り出せる。つ
まり、(課題2)で問題とした検索回数の増大を抑制す
ることが実現できる。
【0011】
【発明が解決しようとする課題】しかしながら、上記の
文献1および文献2で提案されている方法および装置に
よれば、検索の対象となるインデックスは、確定した文
字列が連続する表現(以下、連続表現と呼ぶ)を想定し
ており、検索対象となるインデックスに、不確定な可変
長の文字列(以下、ワイルドカードと呼ぶ)が含まれ、
連続表現とワイルドカードが混在する表現(以下、離散
表現と呼ぶ)であることを想定していない。
【0012】検索対象として離散表現を扱う要求は、質
問語にワイルドカードを含めて部分一致検索をする文献
1の方法とは逆に、検索対象のインデックスをワイルド
カードを含めた離散表現として、質問語に部分一致する
インデックスを検索するという場合に発生する。例え
ば、辞書システムの見出しに一般的に使われる用例やイ
ディオム(「〜と〜する」等)も含めて登録しておき、
それらを検索する場合や、質問語を文章として、それに
適用できる離散表現を検索する機械翻訳システムを実現
する場合等がそれにあたる。
【0013】このような要求は、文書検索システム、デ
ータベースシステム、および機械翻訳システム等を実現
する上で、一般的な要求であるが、文献1および文献2
で提案されている方法および装置をもってしても、
【0014】(1)文献1の発明では、前方一致検索と
後方一致検索を少なくとも2回以上実施する必要があ
り、前記の(課題2)の程度が更に増幅される。 (2)文献2の方法では、後方一致検索の機能がない、
つまり、与えられた質問語の先頭(左端)に位置する単
語しか検索することができないので、質問語に適合しな
い誤った検索結果を生ずる可能性がある。という理由に
より、省資源で、高速な検索手段を実現することができ
ないという問題があった。
【0015】このような点から、省資源で高速な検索を
行うことのできるシステムの実現が望まれていた。
【0016】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈請求項1の構成〉与えられた質問語に対して、質問範
囲を限定した順方向と逆方向の文字列からなる質問語を
出力するスコープ設定手段と、不確定な可変長の文字列
の混在を想定した表記を含んで構成される索引情報を格
納する辞書と、任意の文字列の順序を逆転し、かつ、こ
の文字列中に不確定な可変長の文字列の混在を想定した
表記を含んで構成される索引情報を格納するリバース辞
書と、スコープ設定手段により、質問範囲が限定された
質問語に適合する索引情報を辞書およびリバース辞書か
ら検索する辞書アクセス手段と、辞書アクセス手段で検
索された索引情報のうち、辞書から得られた索引情報の
文字列と、リバース辞書から得られた索引情報の逆方向
の文字列が一致し、かつ、これら文字列が、与えられた
質問語に少なくとも部分的に一致している索引情報を検
索候補として出力する候補選択手段とを備えたことを特
徴とするパターン照合装置である。
【0017】〈請求項1の説明〉請求項1の発明は、検
索の対象となるインデックスが、例えば、「〜と〜す
る」といったように、不確定な可変長の文字列(いわゆ
るワイルドカード)が含まれているものであっても検索
できるようにしたものである。そこで、本発明では、順
方向の文字列からなる索引情報を有する辞書に加えて、
逆方向の文字列からなる索引情報を有するリバース辞書
を備えている。
【0018】スコープ設定手段がある質問語を出力する
と、辞書アクセス手段は、この質問語に一致する索引情
報が辞書およびリバース辞書に存在するかを検索する。
ここで、辞書アクセス手段による各辞書の検索方法はど
のような方法であってもよい。また、質問語に索引情報
が一致するとは、例えば、質問語が「あいうえお」で、
索引情報として「あ〜お:但し〜は不確定な可変長の文
字列を示す」が存在した場合は質問語と索引情報とが一
致する、といったように定義する。そして、候補選択手
段は、辞書アクセス手段で検索された索引情報が一致し
た場合に、その索引情報を検索候補として出力する。
【0019】即ち、ある索引情報に対して、先頭から末
尾方向と、その逆方向との両方から一致判定を行うこと
になるため、索引情報に不確定な可変長の文字列が含ま
れているものであっても、これが、質問語に一致してい
るかを正確に判定することができる。
【0020】また、請求項1の発明において、質問語や
索引情報の文字列とは、例えば音声による文字列も含む
ものとする。
【0021】〈請求項2の構成〉与えられた質問語に対
して、質問範囲を限定した順方向と逆方向の文字列から
なる質問語を出力するスコープ設定手段と、不確定な可
変長の文字列の混在を想定した表記を含んで構成される
索引情報と、この索引情報に一意に対応するデータを格
納する辞書と、任意の文字列の順序を逆転し、かつ、こ
の文字列中に不確定な可変長の文字列の混在を想定した
表記を含んで構成される索引情報と、この索引情報に一
意に対応するデータを格納するリバース辞書と、スコー
プ設定手段により、質問範囲が限定された質問語に適合
する索引情報を辞書およびリバース辞書から検索する辞
書アクセス手段と、辞書アクセス手段で検索された索引
情報のうち、辞書から得られた索引情報の文字列と、リ
バース辞書から得られた索引情報の逆方向の文字列が一
致し、かつ、これら文字列が、与えられた質問語に少な
くとも部分的に一致している索引情報に対応するデータ
を検索候補として出力する候補選択手段とを備えたこと
を特徴とする文書処理装置である。
【0022】〈請求項2の説明〉請求項2の発明は、任
意の質問語に対して、検索データを出力する文書処理装
置に関するものである。即ち、辞書およびリバース辞書
は索引情報に一意に対応するデータを有しており、候補
選択手段は、検索候補として、このデータを出力する。
ここで、質問語やデータはどのようなものであってもよ
く、例えば、データとして索引情報に対応する省略語を
格納し、質問語である入力文書に対してその内容を省略
する語を検索する文書検索装置や、データとして住所を
格納し、質問語である氏名に対して、その住所を出力す
るデータベース等、種々の質問語やデータであってもよ
い。
【0023】〈請求項3の構成〉請求項1に記載のパタ
ーン照合装置において、辞書アクセス手段が、辞書で質
問語に適合した索引情報を出力した場合、この索引情報
の文字列の順序を逆転してリバース辞書の索引情報を作
成するリバース辞書生成手段を設けたことを特徴とする
パターン照合装置である。
【0024】〈請求項3の説明〉請求項3の発明は、辞
書で質問語に適合した索引情報からリバース辞書の索引
情報を作成するようにしたものである。これにより、請
求項1の発明の効果に加えて、リバース辞書の容量を小
さくすることができると共に、更に高速な検索を行うこ
とができる。
【0025】〈請求項4の構成〉請求項1または3に記
載のパターン照合装置において、不確定な可変長の文字
列の混在を想定した表記部分を質問語から補い、かつ、
補う文字列の長さが最も小さい索引情報を選択する候補
選択手段を備えたことを特徴とするパターン照合装置で
ある。
【0026】〈請求項4の説明〉請求項4の発明は、候
補選択手段において、例えば、質問語として「動くのは
植物のみではない」に対する索引情報として、「動くの
は〜ではない」と「動くのは〜のみではない」といった
ように複数の索引情報が存在した場合、「〜」の部分に
質問語を補う。そして、この場合、補う文字列の長さが
小さい「動くのは〜のみではない」が選択される。従っ
て、請求項4の発明では、より確実な候補を選択できる
効果がある。
【0027】〈請求項5の構成〉与えられた質問語に対
して、質問範囲を限定するスコープ設定手段と、不確定
な可変長の文字列の混在を想定した表記を含んで構成さ
れる索引情報を格納する辞書と、任意の文字列の順序を
逆転し、かつ、この文字列中に不確定な可変長の文字列
の混在を想定した表記を含んで構成される索引情報を格
納するリバース辞書と、スコープ設定手段により、質問
範囲が限定された質問語に適合する索引情報を辞書およ
びリバース辞書から検索する辞書アクセス手段とを備え
ると共に、スコープ設定手段は、辞書アクセス手段で検
索された全ての索引情報に対して、各索引情報に対応し
た値であるコストを算出するよう構成されたことを特徴
とするパターン照合装置である。
【0028】〈請求項5の説明〉請求項5の発明は、請
求項1、3、4の発明が、検索候補の絞り込みを候補選
択手段で行うのに対し、辞書アクセス手段で検索された
全ての索引情報に対して、各索引情報に対応した値であ
るコストをスコープ設定手段によって算出するようにし
た点を特徴とするものである。ここで、コストとは、例
えば索引情報の検索候補としての確実性を示す値である
が、どのような値を示すものであってもよい。請求項5
の発明は、このように構成されていることにより、網羅
的な検索を効率よく実施することができる。
【0029】〈請求項6の構成〉与えられた入力文に対
して、質問範囲を限定した質問語を設定するスコープ設
定手段と、不確定な可変長の文字列の混在を想定した表
記を含んで構成される索引情報を格納する辞書と、任意
の文字列の順序を逆転し、かつ、この文字列中に不確定
な可変長の文字列の混在を想定した表記を含んで構成さ
れる索引情報を格納するリバース辞書と、スコープ設定
手段で設定された質問語に適合する索引情報を辞書およ
びリバース辞書から検索する辞書アクセス手段とを備え
ると共に、スコープ設定手段は、辞書アクセス手段で検
索された全ての索引情報を形態素解析の候補として出力
するよう構成されたことを特徴とする文書処理装置であ
る。
【0030】〈請求項6の説明〉請求項6の発明は、辞
書アクセス手段で検索された全ての索引情報を形態素解
析の候補として出力するようにしたものである。従っ
て、任意の入力文を与えることによって、不確定な可変
長の文字列の混在を想定した表記を含んで構成される文
字列も形態素解析結果として出力することができるとい
う効果が得られる。
【0031】〈請求項7の構成〉請求項6に記載の文書
処理装置において、辞書アクセス手段で検索された全て
の索引情報に対して、各索引情報に対応した値であるコ
ストを算出して出力するよう構成されたことを特徴とす
る文書処理装置である。
【0032】〈請求項7の説明〉請求項7の発明は、請
求項6の発明に加えて、請求項5の発明と同様に、各索
引情報にコストを付与するようにしたものである。これ
により、文書処理装置として、形態素解析の結果をより
確実に把握することができる。
【0033】〈請求項8の構成〉与えられた質問語に対
して、質問範囲を限定するスコープ設定手段と、不確定
な可変長の文字列の混在を想定した表記を含んで構成さ
れる索引情報を格納する辞書と、任意の文字列の順序を
逆転し、かつ、当該文字列中に不確定な可変長の文字列
の混在を想定した表記を含んで構成される索引情報を格
納するリバース辞書と、前記スコープ設定手段により、
質問範囲が限定された質問語に適合する索引情報を前記
辞書およびリバース辞書から検索する辞書アクセス手段
と、前記辞書アクセス手段で検索された全ての索引情報
に対して、各索引情報に対応した値であるコストを算出
すると共に、当該コストに基づき予め定められた条件に
適合する索引情報を出力する出力制御手段を備えたこと
を特徴とするパターン照合装置である。
【0034】〈請求項8の説明〉請求項8の発明は、請
求項5の発明では、スコープ設定手段がコストを計算す
るのに対し、出力制御手段がコスト計算を行い、かつ、
このコストを用いて、予め定められた条件に適合する索
引情報を出力するようにした点を特徴とするものであ
る。ここで、予め定められた条件とは、例えばコストに
ある閾値を設け、この閾値以上のコストを持つ索引情報
のみを出力するといったものであるが、これ以外のどの
ような条件であってもよい。請求項8の発明はこのよう
に構成されていることにより、条件を種々設定すること
により、質問語に対する様々な検索結果を得ることがで
きるという効果が得られる。
【0035】〈請求項9の構成〉与えられた質問語に対
して、質問範囲を限定するスコープ設定手段と、不確定
な可変長の文字列の混在を想定した表記を含んで構成さ
れる索引情報を格納する辞書と、任意の文字列の順序を
逆転し、かつ、この文字列中に不確定な可変長の文字列
の混在を想定した表記を含んで構成される索引情報を格
納するリバース辞書と、スコープ設定手段により、質問
範囲が限定された質問語に適合する索引情報を前記辞書
およびリバース辞書から検索する辞書アクセス手段と、
辞書アクセス手段で検索された全ての索引情報に対し
て、各索引情報に対応した値であるコストを算出すると
共に、与えられた質問語から想定される全ての索引情報
の組み合わせから、コストに基づき予め定められた条件
に適合する索引情報の組み合わせを出力する出力制御手
段を備えたことを特徴とするパターン照合装置である。
【0036】〈請求項9の説明〉請求項9の発明は、請
求項8の発明が、コストに基づき索引情報を出力するよ
うにしたのに対して、与えられた質問語から想定される
全ての索引情報の組み合わせから、各索引情報のコスト
に基づいて条件にあった組み合わせを出力するようにし
たものである。ここで条件とは、例えば、索引情報の組
み合わせの総コストがある閾値以上あるかといったもの
であるが、この条件はどのようなものであってもよい。
請求項9の発明はこのように構成されていることによ
り、条件を種々設定することにより、様々な索引情報の
組み合わせの検索結果を得ることができるという効果が
得られる。
【0037】〈請求項10の構成〉与えられた質問語に
対して、質問範囲を限定するスコープ設定手段と、不確
定な可変長の文字列の混在を想定した表記を含んで構成
される索引情報と、この索引情報に一意に対応するデー
タとを格納する辞書と、任意の文字列の順序を逆転し、
かつ、この文字列中に不確定な可変長の文字列の混在を
想定した表記を含んで構成される索引情報と、この索引
情報に一意に対応するデータとを格納するリバース辞書
と、スコープ設定手段により、質問範囲が限定された質
問語に適合する索引情報を辞書およびリバース辞書から
検索する辞書アクセス手段と、辞書アクセス手段で検索
された全ての索引情報に対して、各索引情報に対応した
値であるコストを算出すると共に、このコストに基づき
予め定められた条件に適合する索引情報のデータを出力
する出力制御手段を備えたことを特徴とする文書処理装
置である。
【0038】〈請求項10の説明〉請求項10の発明
は、請求項8の発明のパターン照合装置を用いて質問語
に対する索引情報のデータを出力する文書処理装置とし
たものである。これにより、出力制御手段におけるコス
ト値の算出方法や出力条件の設定を任意のものとするこ
とにより、例えば、重要語のみを出力する情報フィルタ
装置や、見出しの関連用語や関係の情報を出力するシソ
ーラス装置等に応用することができる。
【0039】〈請求項11の構成〉請求項5、8、9の
いずれかに記載のパターン照合装置において、辞書アク
セス手段が、辞書で質問語に適合した索引情報を出力し
た場合、この索引情報の文字列の順序を逆転してリバー
ス辞書の索引情報を作成するリバース辞書生成手段を設
けたことを特徴とするパターン照合装置である。
【0040】〈請求項11の説明〉請求項11の発明
は、請求項5、8、9のいずれかの発明に対して、請求
項3と同様のリバース辞書生成手段を設けたものであ
る。これにより、請求項5、8、9のいずれかの発明の
効果に加えて、省資源でより高速な検索を行うことがで
きる効果が得られる。
【0041】〈請求項12の構成〉
【請求項10】 請求項1、3、4、5、8、9、11
のいずれかに記載のパターン照合装置において、辞書お
よびリバース辞書は、部分木を指示するポインタと、部
分木に含まれる索引情報の最小値を格納する領域と、部
分木に含まれる索引情報の部分的な重複情報を格納する
領域との組を集合として持つ節点ノードと、索引情報を
格納する領域と索引情報に関連するデータを格納する領
域の集合とを持つ葉ノードを備え、全ての節点ノード
は、少なくとも二つ以上の最大数の根から葉ノードへの
経路は全て等しい距離である平衡探索木であるB-Treeの
特徴を有すると共に、部分木の最小値を格納する領域に
は、木構造の配置方向によって一意に決まる順序規則を
満足する部分木の最小索引情報を格納するよう構成した
ことを特徴とするパターン照合装置である。
【0042】〈請求項12の説明〉請求項12の発明
は、辞書およびリバース辞書の構成として、平衡探索木
であるB-Treeとし、かつ、部分木に含まれる索引情報の
最小値を格納する領域を設けたものである。従って、辞
書およびリバース辞書がこのような構成を有することに
より、目的とする索引情報に至る経路を木の深さのオー
ダに抑えることができ、辞書あるいはリバース辞書に数
十万の索引情報を格納したとしても、高速な検索を実現
することができるという効果が得られる。
【0043】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。
【0044】《具体例1》 〈構成〉図1は、本発明であるパターン照合装置の具体
例1の構成を示すブロック図である。
【0045】図において、1は、本装置へ文書を入力し
たり、本装置の動作の結果である検索データを出力する
ための入出力手段、2は、本装置の結果である検索デー
タを利用して、第1の言語を第2の言語に翻訳する機械
翻訳装置、3は、本装置の結果である検索データを利用
して文書を検索する文書検索装置、4は、機械翻訳装置
2や文書検索装置3等の文書処理装置へ検索データを受
け渡すためのデータ線、5は、本装置に入力された文書
から質問語にあたる文書素片の範囲を決定するスコープ
設定手段、6は、本装置の検索対象である辞書を参照す
る、または、更新する辞書アクセス手段、7は、辞書ア
クセス手段を介して検索された複数の検索データの候補
から最適なデータを選択する候補選択手段、8は、本装
置の検索対象である辞書データを格納する辞書ファイ
ル、9は、本装置の別の目的の検索対象である辞書デー
タを格納するリバース辞書ファイルをそれぞれ示してい
る。
【0046】機械翻訳装置2や文書検索装置3等の文書
処理装置は、その目的を翻訳や検索に限定するものでは
なく、例えばデータ検索等、一般的に検索を目的とする
装置、または、システムであれば何でも適用可能であ
る。また、入出力手段1を介して出力される検索データ
は、機械翻訳装置2や文書検索装置3等の文書処理装置
の使用目的に応じて、辞書ファイル8やリバース辞書フ
ァイル9に格納する検索対象データに連動して変化させ
ることができる。また、データ線4は、有線、無線を問
わず、例えば、LAN(Local Area Network)のような
形態であっても良い。
【0047】以下、本具体例の説明では、検索対象であ
る辞書データを離散表現とし、文書テキストに照合する
最適な離散表現を検索することを目的とするパターン照
合装置を想定して説明を進める。
【0048】図2は、具体例1のパターン照合装置にお
ける辞書ファイル8およびリバース辞書ファイル9の構
成例を示す説明図である。
【0049】辞書ファイル8とリバース辞書ファイル9
は、格納する検索対象データに応じた機構を有すれば、
異なる機構であっても構わないが、本具体例では、辞書
ファイル8とリバース辞書ファイル9は、格納されるデ
ータの種類が異なるだけで、機構は同様のものを用いる
ものとして説明する。従って、図2で説明する構成例
は、辞書ファイル8とリバース辞書ファイル9に共通す
る。尚、辞書ファイル8とリバース辞書ファイル9の機
構としては、文献2に開示されるように、多分木のTR
IEや2分木のPATRICIA等の短所を補って優る
平衡木である拡張B-Treeの概念を基に、実用に供するこ
とを加味して、簡略化や拡張を施したB-Tree(以下、改
良B-Treeと呼ぶ)の形態で説明を進める。
【0050】改良B-Treeは、B-Treeおよび拡張B-Treeの
以下の特徴を踏襲する。 ・全ての内部節点(以下、節点ノードと呼ぶ)は、少な
くとも2以上の子ノードを持つ機構を備える。 ・節点ノードが持つことができる子ノードの最大数をも
って、当該B-Treeの「次数」を定義することができる。 ・木の根から端点(以下、葉ノードと呼ぶ)への経路は
全部同じ距離である。
【0051】上記の特徴に加えて、改良B-Treeは、以下
の特徴を兼ね備える。 ・各節点ノードには、その子ノードへのポインタを格納
する領域とその子ノードが形成する部分木の最小値を格
納する領域を有する。尚、ここで、部分木の値とは、例
えばその先頭文字の文字コードの値とする。
【0052】図2(a)は、改良B-Treeの節点ノードの
一般式を示す図である。節点ノードNodeは、当該ノード
の子ノードから構成される部分木を指示するポインタの
格納領域Pと、部分木に属するインデックス(以下、見
出しと呼ぶ)の最小値を格納する領域Mと、部分木に含
まれる部分見出しを格納する領域Tの組の集合である。
ポインタPと最小値Mと部分見出しTの組は、当該B-Tr
eeの次数mの数だけ存在することができる。更に、改良
B-Treeでは、以下に示す関係が成立する。
【0053】・自然数i、およびjが、i<jの関係に
あるとき、i番目の部分木の最小値Miとj番目の部分
木の最小値Mjの間には、Mi<Mjという関係が必ず
成立する。
【0054】例えば、次数3の改良B-Treeであれば、そ
れぞれの節点ノードには、(P1,M1,T1)(P
2,M2,T2)(P3,M3,T3)の三つの格納領
域の組が存在し、M1<M2<M3の関係が成立する。
即ち、P1が指示する部分木に含まれる見出しのうち、
最大のものであっても、P2が指示する部分木の最小の
見出しよりは必ず小さいという関係が成立する。同様
に、P2が指示する部分木に含まれる見出しのうち、最
大のものであっても、P3が指示する部分木の最小の見
出しよりは必ず小さいという関係が成立する。
【0055】即ち、改良B-Treeの小さい順位に位置する
(左側に位置する)部分木に含まれる見出しであるほど
小さな値を持つことがわかる。また、T1には、P1が
指示する部分木に含まれる見出しで最左部分文字列の重
複部分があればその部分見出しが格納される。同様に、
T2、T3にもそれぞれの部分木に含まれる見出しで最
左部分文字列の重複部分があればその部分見出しが格納
される。部分見出しTは、(文献2)において第二種の
キーと呼ばれており、その格納手段については(文献
2)と同様であるので、ここでの説明は割愛する。
【0056】図2(b)は、改良B-Treeの葉ノードの一
般式を示す図である。葉ノードLeafは、見出しの格納領
域Kと、見出しに対応するデータの格納領域の集合Dか
ら構成されている。葉ノードは子ノードを持つことがな
く、見出しおよび複数のデータの実体が格納される。但
し、データ格納領域を必ずしも葉ノードに含める必要が
ない場合には、空集合とすることも可能である。
【0057】図2(c)は、次数3の改良B-Treeの模式
図である。図中100、101、102は、節点ノード
であり、103〜108は、葉ノードを示す。節点ノー
ド101を例にして詳細に説明すると、節点ノードに
は、その子ノードが構成する部分木を指示するポインタ
の格納領域(P11、P12、P13)と、各部分木に
含まれる見出しの最小値の格納領域(M11、M12、
M13)と、各部分木に含まれる部分見出しの格納領域
(T11、T12、T13)とが具備されている。尚、
図2(c)に示す葉ノードのデータ格納領域は簡略化の
ため割愛してある。
【0058】前述した改良B-Treeの性質から、図2
(c)においては、M110<M120<M130<M
210<M220<M230の関係が成立しており、左
側に位置する葉ノードの見出しであるほど小さな値をも
つ。更に、各節点ノードの最小値格納領域の関係を見る
と、例えば、節点ノード100のM1には、101、1
03、104、105で構成される第1番目の部分木に
含まれる見出しの最小値M110の見出しが格納されて
おり、M2には、102、106、107、108で構
成される第2番目の部分木に含まれる見出しの最小値M
210の見出しが格納されている。尚、節点ノード10
0には部分木が二つしか存在してなく、従って、この場
合は3番目の最小値格納領域M3およびポインタ格納領
域P3には、空要素φを格納しておく。
【0059】図2(c)に示す木構造は、一般には3次
のB-Tree、または、2−3木と呼ばれる探索木であり、
節点ノードが2または3の子ノードを持ち、根ノード
(100)から葉ノードまでの距離は一定であるという
B-Treeの一般的な特徴を踏襲する。以下、本具体例で
は、図2(c)に示した次数3の2−3木の構成を持つ
改良B-Treeを例として説明を進める。
【0060】図3および図4は、辞書ファイル8の構成
例を示す説明図である。この辞書ファイル8は、見出し
として、「で」「ではない」「のは」「のはら」「の
み」「植物」「水の中」「動く」「動くのは〜でない」
「動くのは〜のみでない」「動くのはらの草木」の11
語を登録した場合の改良B-Treeの構成例を示す図であ
る。
【0061】例えば、これらの図に示すように、節点ノ
ード200のM1には、その子ノードが形成する部分木
の最小値である葉ノード208見出しである「で」が格
納されている。また、節点ノード200のM2には同様
に、葉ノード212の見出しの「のみ」が格納されてい
る。更に、節点ノード200のM3は、その子ノードが
存在しないためφが格納されている。尚、ノードの値の
設定規則は、「で」と「ではない」というように、
“で”が先頭文字で重複していた場合は、重複文字以降
の文字コードの値でその大小関係を設定する。また、
「動くのは〜のみでない」と「動くのはらの草木」とい
ったように、“動くのは”までが重複し、その次の文字
が“〜”であった場合は、この“〜”の文字コードの値
によってその大小関係を決定する。尚、〜は、ワイルド
カードを示す表記であるがこれについては後述する。
【0062】図5および図6は、リバース辞書ファイル
9の構成を示す説明図である。このリバース辞書ファイ
ル9は、図示のように、辞書ファイル8の各見出しの文
字列を順序を逆転した見出しとして登録した場合の改良
B-Treeの構成例を示す図である。即ち、見出しとして、
「いなはで」「いなはで〜はのく動」「いなはでみの〜
はのく動」「く動」「で」「はの」「みの」「らはの」
「中の水」「物植」「木草のらはのく動」の11語が登
録されている。
【0063】〈動作〉図7は、具体例1のパターン照合
装置におけるスコープ設定手段5の動作を示すフローチ
ャートである。
【0064】以下、スコープ設定手段5の動作を説明す
るにあたり、用語の定義、記号の補足説明を加える。先
ず、スコープは、S(種別,開始位置,終了位置)とし
て表記する。「種別」は、スコープSが表す文字列の並
びを区別するための記号であり、sは順方向、rは逆方
向の文字列であることを示す。「開始位置」は、スコー
プ設定手段5が最初に得た入力文書中の文字位置であ
り、スコープSが表す先頭文字の位置を示す。「終了位
置」は、スコープ設定手段5が最初に得た入力文書中の
文字位置であり、スコープSが表す最終文字の位置を示
す。例えば、「あいうえおかきくけこ」という入力文書
に対して、文字列「えおか」をスコープとして表現する
場合には、順方向、開始位置は「え」の位置である4、
終了位置は「か」の位置である6として、S(s,4,
6)と表記することにする。同様に、逆順文字列「けく
きか」をスコープとして表現する場合には、逆方向、開
始位置は「か」の位置である6、終了位置は「け」の位
置である9として、S(r,6,9)と表記することに
する。以下の説明では、スコープは上記に示した表記に
従う。
【0065】スコープ設定手段5は、先ず、入出力手段
1から入力文書を得て、当該入力文書の先頭位置を記憶
域Bに格納し、入力文書の任意の位置Zを記憶域Eに格
納する(ステップS101)。この状態では、記憶域B
=1、記憶域E=Zとなっている。
【0066】次に、候補バッファと呼ぶ記憶域を初期化
(記憶域の中を空に)する(ステップS102)。続い
て、最初の検索のために、順方向検索位置の記憶域Xに
記憶域Bの内容を複写し、逆方向検索位置の記憶域Yに
記憶域Eの内容を複写する(ステップS103)。
【0067】次に、スコープS(s,X,Y)が表す順
方向文字列が存在するかどうかの検査を行い(ステップ
S104)、S(s,X,Y)が存在しない(即ち、S
(s,X,Y)=φである)ならば、後述するステップ
S121以降を実行する。S(s,X,Y)が存在する
ならば、S(s,X,Y)が表す順方向文字列を、辞書
アクセス手段6に転送する(ステップS105)。
【0068】辞書アクセス手段6は、S(s,X,Y)
が表す順方向文字列をキーとして辞書ファイル8を検索
し、検索結果を順方向検索候補としてスコープ設定手段
5に返送する(尚、辞書アクセス手段6の動作について
は後述する)。
【0069】次に、スコープ設定手段5は、辞書アクセ
ス手段6からの順方向検索候補を受け取る(ステップS
106)。そして、順方向検索候補が存在するかの検査
を行い(ステップS107)、順方向検索候補が存在し
ないならば、順方向検索位置が指示する1文字を候補バ
ッファに格納されている文字列の末尾に追加する(ステ
ップS108)。更に、ステップS109において、順
方向検索位置Xを1文字分だけ進め(Xを1だけ増加さ
せる。即ち、X=X+1とする)、ステップS104へ
戻り、以降の同様の動作を繰り返す。
【0070】ステップS107において、順方向検索候
補が存在する場合には、その時点での順方向検索位置X
および逆方向検索位置Yが指示するスコープS(r,
X,Y)が表す逆方向文字列が存在するかどうかの検査
を行い(ステップS110)、S(r,X,Y)が存在
しない(即ち、S(r,X,Y)=φである)ならば、
後述するステップS121以降を実行する。一方、ステ
ップS110において、S(r,X,Y)が存在するな
らば、S(r,X,Y)が表す逆方向文字列を、辞書ア
クセス手段6に転送する(ステップS111)。
【0071】辞書アクセス手段6は、S(r,X,Y)
が表す逆方向文字列をキーとしてリバース辞書ファイル
9を検索し、検索結果を逆方向検索候補としてスコープ
設定手段5に返送する(ここでの辞書アクセス手段6の
動作についても後述する)。
【0072】次に、スコープ設定手段5は、辞書アクセ
ス手段6からの逆方向検索候補を受け取る(ステップS
112)。そして、逆方向検索候補が存在するかの検査
を行い(ステップS113)、逆方向検索候補が存在し
ないならば、ステップS114において、逆方向検索位
置Yを1文字分だけ戻して(Yを1だけ減少させる。即
ち、Y=Y−1とする)、ステップS110へ戻り、以
降の同様の動作を繰り返す。
【0073】ステップS113において、逆方向検索候
補が存在する場合には、候補バッファに格納されている
文字列を、辞書に存在しなかった見出し(以下、未知語
と呼ぶ)として入出力手段1に返送し(ステップS11
5)、候補バッファに格納されている文字列を消去する
ことにより初期化する(ステップS116)。
【0074】次に、スコープ設定手段5は、ステップS
106で辞書アクセス手段6から得た順方向検索候補、
および、ステップS112で辞書アクセス手段6から得
た逆方向検索候補と、当該時点の順方向検索位置Xおよ
び逆方向検索位置Yが指示するスコープS(s,X,
Y)が表す文字列を候補選択手段7に転送する(ステッ
プS117)。候補選択手段7は、最適な候補を選択
し、検索結果として、スコープ設定手段5に返送する
(候補選択手段7の動作については後述する)。
【0075】次に、スコープ設定手段5は、候補選択手
段7から返送されてきた検索結果を受け取る(ステップ
S118)。ここで、検索結果が存在するかどうかの検
査を行い(ステップS119)、検索結果が存在するな
らば、当該検索結果を候補バッファに格納し、以後の検
索における順方向検索位置Xを、当該時点の逆方向検索
位置Yの次の位置まで進める(ステップS120)。一
方、ステップS119の検索で検索結果が存在しない場
合は、ステップS114へ戻り、以降の処理を繰り返
す。
【0076】次に、候補バッファに格納されている検索
結果を入出力手段1に転送し、候補バッファに格納され
ている文字列を消去することにより初期化する(ステッ
プS121)。尚、ステップS121以降の処理は、ス
テップS104で、S(s,X,Y)が存在しない場
合、および、ステップS110で、S(r,X,Y)が
存在しない場合も同様に実行される。
【0077】次に、逆方向検索位置Yには記憶域Eの値
を代入する(ステップS122)。最後に、入力文書に
未検索部分が存在するかどうかの検査を行い(ステップ
S123)、入力文書に未検索部分が存在する(即ち、
当該時点での順方向検索位置Xが記憶域Eに格納されて
いる値より小さい)ならば、ステップS104へ戻り、
以降の処理を同様に繰り返す。ステップS123で入力
文書に未検索部分が存在しないならば、スコープ設定手
段5は動作を終了する。
【0078】図9は、具体例1における辞書アクセス手
段6の動作を示すフローチャートである。辞書アクセス
手段6は、先ず、検索キーをスコープS(H,X,Y)
が表す文字列として受け取る(ステップS201)。次
に、受け取った文字列が順方向文字列であるか逆方向文
字列であるかの検査を行い(ステップS202)、逆方
向文字列である(即ち、スコープ種別Hがrである)な
らば、スコープS(r,X,Y)が表す文字列をキーと
してリバース辞書ファイル9を検索する(ステップS2
03)。更に、得られた検索結果候補のそれぞれの文字
列を逆順に並べ替えることにより、順方向の文字列並び
を持つ検索結果を生成し(ステップS204)、ステッ
プS206へ進む。
【0079】一方、ステップS202において、スコー
プS(H,X,Y)が表す文字列が順方向文字列である
(即ち、スコープ種別Hがsである)ならば、スコープ
S(s,X,Y)が表す文字列をキーとして辞書ファイ
ル8を検索し(ステップS205)、ステップS206
へ進む。最後に、辞書アクセス手段6は、検索結果候補
を返送し(ステップS206)、動作を終了する。
【0080】尚、ステップS203およびステップS2
05の検索に際し、検索対象見出しがワイルドカード
(「〜」で表記する)を含む離散表現である場合には、
ワイルドカード部分には、キー文字列の任意の部分が照
合可能であるとする。例えば、スコープS(H,X,
Y)が表す文字列が「あいうえおかきく」であれば、検
索対象見出しとして、「あ〜く」、「あい〜お」、「あ
いうえ〜き」等が照合可能である。
【0081】図10は、具体例1における候補選択手段
の動作を示すフローチャートである。候補選択手段7
は、先ず、一つ以上の順方向検索候補および一つ以上の
逆方向検索候補と、当該時点の順方向検索位置Xおよび
逆方向検索位置Yが指示するスコープS(s,X,Y)
が表す文字列を受け取る(ステップS301)。次に、
受け取ったスコープS(s,X,Y)が表す文字列を参
照しながら、順方向検索候補と逆方向検索候補のそれぞ
れを照合する(ステップS302)。次に、照合する候
補が存在するかどうかの検査を行い(ステップS30
3)、照合する候補が存在しなければ、候補選択手段7
は動作を終了する(ステップS309)。
【0082】ステップS303において、照合する候補
が存在する場合には、更に、照合する候補が複数あるか
どうかの検査を行い(ステップS304)、複数存在す
る場合は、更に、複数の候補の中に連続表現が含まれて
いるかどうかの検査を行い(ステップS305)、候補
に連続表現が含まれているならば、複数の候補中の最長
の連続表現を選択する(ステップS306)。
【0083】また、ステップS305で候補に連続表現
が含まれていないと判断された場合は、スコープS
(s,X,Y)が表す文字列を参照して、複数の候補中
の最も適合範囲の長い離散表現を選択する(ステップS
307)。この場合、離散表現に含まれるワイルドカー
ド部分とスコープS(s,X,Y)が表す文字列の任意
の部分が照合したと見なし、離散表現見出しのワイルド
カード部分以外が最も長く照合する条件下で、S(s,
X,Y)との適合範囲が最も大きくなる離散表現を選択
することになる。
【0084】ステップS306またはステップS307
の動作が終了した後、もしくは、ステップS304で、
照合する候補が単独である場合、候補選択手段7は、選
択された当該候補を返送して(ステップS308)、動
作を終了する。
【0085】以下、上述したパターン照合装置を動作を
一例を用いて説明する。先ず、入出力手段1が以下に示
す(例文1)を入力文書として得たとする。 (例文1)「水の中で動くのは植物のみではない」
【0086】ここで、辞書ファイル8には、図3および
図4に示す構成で見出しが登録されているものとし、リ
バース辞書ファイル9には、図5および図6に示す構成
で見出しが登録されているものとする。
【0087】スコープ設定手段5は、入出力手段1から
(例文1)を得て、(例文1)の先頭を記憶域Bに、ま
た、(例文1)の任意の位置として(例文1)の最後を
Z(Z=15)を記憶域Eに格納する(ステップS10
1)。この時点で、B=1、E=16である。次に、候
補バッファを初期化して(ステップS102)、順方向
検索位置XにBを、逆方向検索位置YにEを代入する
(ステップS103)。この時点で、X=1、Y=16
である。スコープS(s,1,16)が表す文字列は
「水の中で動くのは植物のみでない」であるので(ステ
ップS104)、S(s,1,16)を辞書アクセス手
段6に転送する(ステップS105)。
【0088】辞書アクセス手段6は、S(s,1,1
6)を受け取り(ステップS201)、スコープ種別は
s(順方向)であるので(ステップS202)、スコー
プS(s,1,16)が表す文字列「水の中で動くのは
植物のみではない」をキーとして、辞書ファイル8を検
索する(ステップS205)。
【0089】ここで、辞書アクセス手段9の探索手順を
具体的に説明する。辞書ファイル8には図3および図4
に示す11語が登録されている。キー文字列は「水の中
で動くのは植物のみではない」である。探索は根ノード
200から開始する。先ず、キー文字列をノード200
の最小値格納領域の格納値のそれぞれと照合し、キー文
字列より小さな値を持つ最小値のうち、最大のものを見
つける。この場合、「で」と「のみ」とキー文字列の関
係から、「のみ」が最大の最小値であることが判る。即
ち、キー文字列の値は、先頭文字の“水”の文字コード
であり、これは「で」「のみ」より大きいため、「で」
「のみ」のうち値の大きい「のみ」が最大の最小値とな
る。そして、「のみ」が最大の最小値であったため、ノ
ード200の2番目の部分木の最上ノード202が探索
対象となる。
【0090】ノード202においても、同様にキー文字
列を最小値格納領域の格納値のそれぞれと照合し、キー
文字列より小さな値を持つ最小値のうち、最大のものを
見つける。この場合、「のみ」と「動く」と「動くのは
〜のみではない」とキー文字列の関係から、「のみ」が
最大の最小値であることが判る。即ち、キー文字列の
“水”の文字コードは「のみ」より大きく、「動く」よ
り小さいため、「のみ」となる。これにより、ノード2
02の1番目の部分木の最上ノード205が探索対象と
なる。
【0091】更に、ノード205においても、同様にキ
ー文字列を最小値格納領域の格納値のそれぞれと照合
し、キー文字列より小さな値を持つ最小値のうち、最大
のものを見つける。この場合、「のみ」と「植物」と
「水の中」とキー文字列の関係から、「水の中」が最大
の最小値であることが判る。これにより、ノード205
の3番目の部分木の最上ノード214が探索対象とな
る。ノード214は葉ノードであり、キー文字列と最左
部分文字列であることから、「水の中」が検索結果とし
て決定される。つまり、「水の中で動くのは植物のみで
はない」に対し、最左部分文字列である「水の中」が検
索され、辞書アクセス手段6は、「水の中」を検索結果
候補として返送する(ステップS206)。
【0092】しかる後にスコープ設定手段5は、辞書ア
クセス手段6から、文字列「水の中」を順方向検索候補
として受け取る(ステップS106)。ここで、順方向
検索候補が存在するので(ステップS107)、次に、
S(r,1,16)が表す文字列「いなはでみの物植は
のく動で中の水」を検査し(ステップS110)、この
ステップS110において、S(r,1,16)がφで
はないので、S(r,1,16)を辞書アクセス手段6
に転送する(ステップS111)。
【0093】辞書アクセス手段6は、S(r,1,1
6)を受け取り(ステップS201)、スコープ種別は
r(逆方向)であるので(ステップS202)、スコー
プS(r,1,16)が表す文字列「いなはでみの物植
はのく動で中の水」をキーとして、リバース辞書ファイ
ル9を検索する(ステップS203)。
【0094】ここで、辞書アクセス手段6の探索手順を
具体的に説明する。リバース辞書ファイル9には図5お
よび図6に示す11語が登録されている。キー文字列は
「いなはでみの物植はのく動で中の水」である。探索は
根ノード300から開始する。先ず、キー文字列をノー
ド300の最小値格納領域の格納値のそれぞれと照合
し、キー文字列より小さな値を持つ最小値のうち、最大
のものを見つける。この場合、「いなはで」と「みの」
とキー文字列の関係から、「いなはで」が最大の最小値
であることが判る。尚、この場合の値の大小関係は、上
述した辞書ファイル8の場合と同様である。これによ
り、ノード300の1番目の部分木の最上ノード301
が探索対象となる。
【0095】ノード301においても、同様にキー文字
列を最小値格納領域の格納値のそれぞれと照合し、キー
文字列より小さな値を持つ最小値のうち、最大のものを
見つける。この場合、「いなはで」と「いなはでみの〜
はのく動」と「で」とキー文字列の関係から、「いなは
でみの〜はのく動」が最大の最小値であることが判る。
これにより、ノード301の2番目の部分木の最上ノー
ド304が探索対象となる。尚、ノード301には、ノ
ード303、309、316で構成される第1の部分木
に含まれる部分見出し「いなはで」「いなはで〜はのく
動」が格納されており、ノード301の2番目の部分木
の最上ノード304を探索対象にする場合には、当該部
分木の左にある第1の部分見出し「いなはで」「いなは
で〜はのく動」は検索結果として採用される。
【0096】更に、ノード304においても、同様にキ
ー文字列を最小値格納領域の格納値のそれぞれと照合
し、キー文字列より小さな値を持つ最小値のうち、最大
のものを見つける。この場合、「いなはでみの〜はのく
動」と「く動」とキー文字列の関係から、「いなはでみ
の〜はのく動」が最大の最小値であることが判る。これ
により、ノード304の1番目の部分木の最上ノード3
17が探索対象となる。ノード317は葉ノードであ
り、キー文字列と最左部分文字列であることから、「い
なはでみの〜はのく動」が検索結果として決定される。
【0097】従って、「いなはでみの物植はのく動で中
の水」に対し、最左部分文字列である「いなはで」、
「いなはで〜はのく動」、「いなはでみの〜はのく動」
が検索され、それらの検索結果の文字列を逆順に並べ替
えることにより(ステップS204)、辞書アクセス手
段6は、「ではない」、「動くのは〜ではない」、「動
くのは〜のみではない」の三つの文字列を検索結果候補
として返送する(ステップS206)。
【0098】しかる後にスコープ設定手段5は、辞書ア
クセス手段6から、「ではない」、「動くのは〜でな
い」、「動くのは〜のみではない」の三つの文字列を逆
方向検索候補として受け取る(ステップS112)。こ
こで、逆方向検索候補が存在するので(ステップS11
3)、候補バッファに格納されている未知語文字列(こ
の時点では未知語は格納されていないが便宜上当該ステ
ップを実行する)を、入出力手段1に転送し(ステップ
S115)、かつ、候補バッファを初期化する(ステッ
プS116)。
【0099】更に、ステップS106で得た順方向検索
候補「水の中」と、ステップS112で得た逆方向検索
候補「ではない」、「動くのは〜ではない」、「動くの
は〜のみではない」の三つの文字列と、スコープS
(r,1,16)とを候補選択手段7に転送する(ステ
ップS117)。
【0100】候補選択手段7は、順/逆方向検索候補と
S(s,1,16)を受け取り(ステップS301)、
順方向検索候補「水の中」と、逆方向検索候補の「では
ない」、「動くのは〜ではない」、「動くのは〜のみで
はない」の三つの文字列を最適に照合する(ステップS
302)。
【0101】その結果、ステップS303において、照
合する候補が存在しない、即ち、「水の中」と「ではな
い」、「水の中」と「動くのは〜ではない」、「水の
中」と「動くのは〜のみではない」のいずれの組み合わ
せを検査しても、照合する組は存在しないので、候補選
択手段7はそのまま動作を終了する。
【0102】しかる後に、スコープ設定手段5は、候補
選択手段7からの検索結果を受け取ろうとする(ステッ
プS118)が、受け取る検索結果が候補選択手段7か
ら返送されてこないため、検索結果が存在しないことに
なり(ステップS119)、その結果、ステップS11
4に戻り、以降の処理を繰り返すことになる。この時点
で、逆方向検索位置Yの値が1減じられ、この時点でX
=1、Y=15となる(ステップS114)。
【0103】そして、ステップS110以降へ戻り、以
下同様の動作を行った結果、ステップS114で、X=
1、Y=3となり、S(r,1,3)が表す文字列「中
の水」を検査し(ステップS110)、S(r,1,
3)がφではないので、S(r,1,3)を辞書アクセ
ス手段6に転送する(ステップS111)。
【0104】辞書アクセス手段6は、S(r,1,3)
を受け取り(ステップS201)、スコープ種別はr
(逆方向)であるので(ステップS202)、スコープ
S(r,1,3)が表す文字列「中の水」をキーとし
て、リバース辞書ファイル9を検索する(ステップS2
03)。その結果、「中の水」に対し、最左部分文字列
である「中の水」が検索され、それらの検索結果の文字
列を逆順に並べ替えることにより(ステップS20
4)、辞書アクセス手段6は、文字列「水の中」を検索
結果候補として返送する(ステップS206)。
【0105】しかる後にスコープ設定手段5は、辞書ア
クセス手段6から、文字列「水の中」を逆方向検索候補
として受け取る(ステップS112)。ここで、逆方向
検索候補が存在するので(ステップS113)、候補バ
ッファに格納されている未知語文字列(この時点では未
知語は格納されていないが便宜上当該ステップを実行す
る)を、入出力手段1に転送し(ステップS115)、
かつ、候補バッファを初期化する(ステップS11
6)。更に、ステップS106で得た順方向検索候補
「水の中」と、ステップS112で得た逆方向検索候補
「水の中」と、スコープS(r,1,3)とを候補選択
手段7に転送する(ステップS117)。
【0106】候補選択手段7は、順/逆方向検索候補と
S(s,1,3)を受け取り(ステップS301)、順
方向検索候補「水の中」と逆方向検索候補「水の中」を
最適に照合する(ステップS302)。その結果、照合
する候補が存在し(ステップS303)、かつ、照合す
る候補は単独である(ステップS304)ので、候補選
択手段7は、照合した候補「水の中」を返送する(ステ
ップS308)。
【0107】しかる後に、スコープ設定手段5は、候補
選択手段7から検索結果として「水の中」を受け取り
(ステップS118)、検索結果が存在するので(ステ
ップS119)、当該検索結果である「水の中」を候補
バッファに格納し、順方向検索位置Xにその時点での逆
方向検索位置Yの次の位置(Y+1=4)を代入する
(ステップS120)。
【0108】次に、候補バッファに格納された文字列
「水の中」を入出力手段1に転送した後、候補バッファ
を初期化する(ステップS121)。ここで、逆方向検
索位置Yに記憶域Eの値を代入する(ステップS12
0)。この時点で、X=4、Y=16である。更に、入
力文書に未検索部分が存在する(即ち、当該時点での順
方向検索位置Xが記憶域Eに格納されている値より小さ
い)ので(ステップS123)、ステップS104に戻
る。この時点で、スコープS(s,4,16)が表す文
字列は、「で動くのは植物のみではない」となる。
【0109】以下、同様にして、ステップS121で、
「で」が入出力手段1に転送され、その時点で、X=
5、Y=16となる。ステップS104へ戻り、スコー
プS(s,5,16)が表す文字列は、「動くのは植物
のみではない」となる。以下、同様の動作を続けると、
ステップS106で辞書アクセス手段6から返送される
順方向検索候補は、「動く」、「動くのは〜ではな
い」、「動くのは〜のみではない」の3候補となり、更
に、動作を継続して、ステップS112で辞書アクセス
手段6から返送される逆方向検索候補は、「ではな
い」、「動くのは〜ではない」、「動くのは〜のみでは
ない」の3候補となる。
【0110】これらの順方向検索候補と逆方向検索候補
とスコープS(s,5,16)が候補選択手段7に転送
され(ステップS117)、候補選択手段7は、ステッ
プS302でそれらの候補群を最適に照合する。即ち、
順方向検索候補と逆方向検索候補に共通する「動くのは
〜ではない」と「動くのは〜のみではない」が候補とし
て存在し(ステップS303)、照合する候補が複数で
あり(ステップS304)、かつ、候補に連続表現が含
まれていない(ステップS305)ので、スコープS
(s,5,16)が表す文字列「動くのは植物のみでは
ない」を参照して、「動くのは〜ではない」と「動くの
は〜のみではない」のうち、ワイルドカード部分の適合
範囲が小さい離散表現を選択する(ステップS30
7)。
【0111】つまり、「動くのは〜ではない」の場合の
ワイルドカード適合範囲は「植物のみ」、「動くのは〜
のみではない」の場合のワイルドカード適合範囲は「植
物」となり、「動くのは〜のみではない」の場合がワイ
ルドカード部分の適合範囲が小さいので、「動くのは〜
のみではない」が選択される。
【0112】その結果、ステップS120へ戻り、スコ
ープ設定手段5は、検索結果「動くのは〜のみではな
い」を候補バッファに格納し、順方向検索位置XにY+
1の値である17を代入する。以後、候補バッファに格
納されている文字列「動くのは〜のみではない」が入出
力手段1に転送される(ステップS121)。最後に、
入力文書に未検索部分が存在するかどうかの検査を行い
(ステップS123)、入力文書に未検索部分が存在し
ない(即ち、当該時点での順方向検索位置X(=17)
が記憶域Eに格納されている値16より大きい)ので、
スコープ設定手段5は動作を終了する(ステップS12
4)。入出力手段1は、スコープ設定手段5から順次転
送されてくる(未知語も含む)検索結果である「水の
中」、「で」、「動くのは〜のみではない」を出力する
ことになる。
【0113】〈効果〉以上に説明したパターン照合装置
の具体例1によれば、辞書ファイルの構成において、平
衡木の構造を持つB-Treeの節点ノードに部分木に含まれ
るインデックスの最小値を格納する機構を設けたことに
より、目的とするインデックスに至る経路を木の深さの
オーダに抑えることができ、辞書に数十万のインデック
スを格納したとしても、高速な検索を実現することがで
きる。
【0114】また、通常の検索に供せられる辞書ファイ
ルに加えて、当該辞書ファイルに格納されているインデ
ックスを逆順に並べ替えた新たなインデックスを格納す
るリバース辞書ファイルを具備し、質問語の順方向およ
び逆方向の検索を可能とする手段を備えたことにより、
インデックスに離散表現を含めたとしても辞書アクセス
の回数を増やすことなく、目的とするインデックスを高
速に検索することが可能となる。
【0115】〈利用形態〉上記具体例1では、図2
(b)に示す辞書ファイルの葉ノードのデータ格納領域
を省略し、インデックスそのものを検索対象とする形態
のパターン照合装置として説明したが、文書処理装置と
して、例えば、具体例1の形態に加えて、データ格納領
域にインデックスに一意に対応する省略語を格納するこ
とにより、質問語である入力文書に対してその内容を省
略する語を検索する文書要約装置としての利用形態が考
えられる。これにより、例えば、「水の中で動く虫」と
いう質問語に対して、この質問語に対応した索引情報の
データとして「水中の虫」というデータを格納しておく
ことにより、質問語の要約データを出力することができ
る。
【0116】また、検索対象である辞書データを離散表
現とし、文書テキストに照合する最適な離散表現を検索
することを目的とするパターン照合装置である具体例1
の辞書の形態に対し、インデックスおよびインデックス
に一意に対応するデータを変えてしまえば、例えば、イ
ンデックスに氏名を、データ格納領域にインデックスに
一意に対応する住所データを格納することにより、質問
語である氏名に対応する住所を検索する住所データベー
ス装置等、様々な文書処理装置としての応用が期待でき
る。
【0117】《具体例2》 〈構成〉図11は、本発明であるパターン照合装置の具
体例2の構成を示すブロック図である。
【0118】図の装置は、入出力手段1、機械翻訳装置
2、文書検索装置3、データ線4、辞書アクセス手段
6、候補選択手段7、辞書ファイル8、リバース辞書フ
ァイル9、スコープ設定手段10、リバース辞書生成手
段11からなる。
【0119】ここで、スコープ設定手段10およびリバ
ース生成手段11以外の構成については具体例1と同様
であるため、ここでの説明は省略する。
【0120】スコープ設定手段10は、本装置に入力さ
れた文書から質問語にあたる文書素片の範囲を決定する
機能を有している。また、リバース辞書生成手段11
は、必要に応じてリバース辞書ファイル9を生成する機
能を有している。
【0121】具体例2においては、リバース辞書ファイ
ル9を予め具備する具体例1の構成に対して、リバース
辞書生成手段11を設けることにより、リバース辞書フ
ァイル9を必要に応じて生成する点に特徴がある。
【0122】以下、本具体例の説明では、検索対象であ
る辞書データを離散表現とし、文書テキストに照合する
最適な離散表現を検索することを目的とするパターン照
合装置を想定して説明を進める。
【0123】具体例2においては、辞書ファイル8およ
びリバース辞書ファイル9は、図2に示す具体例1と同
様の構成のものを採用する。もちろん、辞書ファイル8
とリバース辞書ファイル9は、格納する検索対象データ
に応じた機構を有すれば、異なる機構であっても構わな
いが、本具体例では、辞書ファイル8とリバース辞書フ
ァイル9は、格納されるデータの種類が異なるだけで、
機構は図2(c)に示した次数3の2−3木の構成を持
つ改良B-Treeを用いるものとして説明する。
【0124】具体例2における辞書ファイル8の登録例
として、図3および図4に示す具体例1と同様の登録例
を採用する。
【0125】図12および図13は、具体例2における
リバース辞書ファイル9の登録例を示す図である。図1
2に示す(a)は、リバース辞書ファイル9の初期状態
であり、(b)は、初期状態(a)に「中の水」という
1語を登録した場合を示す図である。また、図13に示
す(c)は、初期状態(a)に「く動」という1語を登
録した場合を示す図である。(d)は、(c)に「いな
はで〜はのく動」という1語を追加した場合を示す図で
ある。(e)は、(d)に「いなはでみの〜はのく動」
という1語を追加した場合を示す図である。
【0126】〈動作〉図14および図15は、本発明で
あるパターン照合装置の具体例2におけるスコープ設定
手段10の動作を示すフローチャートである。
【0127】具体例2におけるスコープ設定手段10の
動作は、具体例1におけるスコープ設定手段5とほぼ同
様である。両者の違いは、辞書ファイル8から順方向検
索候補が検索された後、当該検索候補から新たにリバー
ス辞書9を生成し、その辞書から逆方向検索候補を得る
点にある。即ち、図面に示したフローチャートで異なる
のは、ステップS401のみである。以上を鑑み、図1
4および図15を参照しながら具体例2におけるスコー
プ設定手段10の動作を説明する。尚、スコープは、具
体例1と同様に表記するものとする。
【0128】スコープ設定手段10は、先ず、入出力手
段1から入力文書を得て、当該入力文書の先頭位置を記
憶域Bに格納し、入力文書の任意の位置Zを記憶域Eに
格納する(ステップS101)。この状態では、記憶域
B=1、記憶域E=Zとなっている。次に、候補バッフ
ァと呼ぶ記憶域を初期化(記憶域の中を空に)する(ス
テップS102)。続いて、最初の検索のために、順方
向検索位置の記憶域Xに記憶域Bの内容を複写し、逆方
向検索位置の記憶域Yに記憶域Eの内容を複写する(ス
テップS103)。
【0129】次に、スコープS(s,X,Y)が表す順
方向文字列が存在するかどうかの検査を行い(ステップ
S104)、S(s,X,Y)が存在しない(即ち、S
(s,X,Y)=φである)ならば、後述するステップ
S121以降を実行する。S(s,X,Y)が存在する
ならば、S(s,X,Y)が表す順方向文字列を、辞書
アクセス手段6に転送する(ステップS105)。辞書
アクセス手段6は、S(s,X,Y)が表す順方向文字
列をキーとして辞書ファイル8を検索し、その検索結果
を順方向検索候補としてスコープ設定手段10に返送す
る。
【0130】次に、スコープ設定手段10は、辞書アク
セス手段6からの順方向検索候補を受け取る(ステップ
S106)。次に、順方向検索候補が存在するかの検査
を行い(ステップS107)、順方向検索候補が存在し
ないならば、順方向検索位置が指示する1文字を候補バ
ッファに格納されている文字列の末尾に追加する(ステ
ップS108)。更に、ステップS109において、順
方向検索位置Xを1文字分だけ進め(Xを1だけ増加さ
せる。即ち、X=X+1とする)、ステップS104へ
戻り、以降の同様の動作を繰り返す。
【0131】一方、ステップS107において、順方向
検索候補が存在する場合には、当該順方向検索候補をリ
バース辞書生成手段11に転送する(ステップS40
1)。
【0132】リバース辞書生成手段11は、スコープ設
定手段10から渡された順方向検索候補から新たにリバ
ース辞書ファイル9を生成する(尚、リバース辞書生成
手段11の動作については後述する)。
【0133】次に、スコープ設定手段10は、その時点
での順方向検索位置Xおよび逆方向検索位置Yが指示す
るスコープS(r,X,Y)が表す逆方向文字列が存在
するかどうかの検査を行い(ステップS110)、S
(r,X,Y)が存在しない(即ち、S(r,X,Y)
=φである)ならば、後述するステップS121以降を
実行する。一方、S(r,X,Y)が存在するならば、
S(r,X,Y)が表す逆方向文字列を、辞書アクセス
手段6に転送する(ステップS111)。
【0134】辞書アクセス手段6は、S(r,X,Y)
が表す逆方向文字列をキーとしてリバース辞書生成手段
11が生成したリバース辞書ファイル9を検索し、その
検索結果を逆方向検索候補としてスコープ設定手段10
に返送する。
【0135】次に、スコープ設定手段10は、辞書アク
セス手段6からの逆方向検索候補を受け取る(ステップ
S112)。次に、逆方向検索候補が存在するかの検査
を行い(ステップS113)、逆方向検索候補が存在し
ないならば、ステップS114において、逆方向検索位
置Yを1文字分だけ戻し(Yを1だけ減少させる。即
ち、Y=Y−1とする)、ステップS110へ戻り、以
降の同様の動作を繰り返す。
【0136】一方、ステップS113において、逆方向
検索候補が存在する場合には、候補バッファに格納され
ている文字列を辞書に存在しなかった見出し(以下、未
知語と呼ぶ)として入出力手段1に返送し(ステップS
115)、候補バッファに格納されている文字列を消去
することにより初期化する(ステップS116)。
【0137】次に、スコープ設定手段10は、ステップ
S106で辞書アクセス手段6から得た順方向検索候
補、および、ステップS112で辞書アクセス手段6か
ら得た逆方向検索候補と、当該時点の順方向検索位置X
および逆方向検索位置Yが指示するスコープS(s,
X,Y)が表す文字列を候補選択手段7に転送する(ス
テップS117)。
【0138】候補選択手段7は、最適な候補を選択し検
索結果として、スコープ設定手段10に返送する。次
に、スコープ設定手段10は、候補選択手段7から返送
されてきた検索結果を受け取る(ステップS118)。
ここで、検索結果が存在するかどうかの検査を行い(ス
テップS119)、検索結果が存在するならば、当該検
索結果を候補バッファに格納し、以後の検索における順
方向検索位置Xを、当該時点の逆方向検索位置Yの次の
位置まで進める(ステップS120)。また、ステップ
S119の検索で検索結果が存在しない場合は、ステッ
プS114へ戻り、以降を繰り返す。
【0139】次に、候補バッファに格納されている検索
結果を入出力手段1に転送し、候補バッファに格納され
ている文字列を消去することにより初期化する(ステッ
プS121)。尚、ステップS121以降のステップ
は、ステップS104でS(s,X,Y)が存在しない
場合、および、ステップS110でS(r,X,Y)が
存在しない場合も同様に実行される。
【0140】次に、逆方向検索位置Yには記憶域Eの値
を代入する(ステップS122)。最後に、入力文書に
未検索部分が存在するかどうかの検査を行い(ステップ
S123)、入力文書に未検索部分が存在する(即ち、
当該時点での順方向検索位置Xが記憶域Eに格納されて
いる値より小さい)ならば、ステップS104へ戻り、
以降を同様に繰り返す。ステップS123で入力文書に
未検索部分が存在しないならば、スコープ設定手段10
は動作を終了する。
【0141】前述した具体例2におけるスコープ設定手
段10の動作の説明中にある辞書アクセス手段6の動作
は、具体例1のそれと同様であるため、ここでの説明は
省略する。
【0142】図16は、本発明であるパターン照合装置
の具体例2におけるリバース辞書生成手段11の動作を
示すフローチャートである。
【0143】リバース辞書生成手段11は、先ず、順方
向検索候補を受け取り、その中の未処理の候補を選択し
て、当該順方向検索候補の逆順文字列Wを生成し、検査
対象ノードをリバース辞書ファイル9の根ノードである
節点ノードとする(ステップS501)。次に、当該ノ
ードの最小値格納領域に格納されている文字列MnとW
を比較し、Mn>Wである最大のMnを見つけ、当該M
nを最小値として持つ部分木へのポインタPnの指示す
るノードを検査対象ノードとして決定する(ステップS
502)。同時に、Wが、当該ノードのMn+1の見出
し(即ち、ステップS502で決定した検査対象ノード
を含む部分木の右隣の部分木の最小値見出し)の部分文
字列であれば、Tnに部分文字列の部分を部分見出しと
して格納する(ステップS503)。
【0144】次に、ステップS502で決定した検査対
象ノードを当該ノードとし、当該ノードの種別が葉ノー
ドであるかどうかを検査する(ステップS504)。当
該ノードが葉ノードでなければ、ステップS502に戻
り、以降の動作を繰り返す。ステップS504で、当該
ノードが葉ノードでなければ、ステップS502に戻り
以降の動作を繰り返す。ステップS504で、当該ノー
ドが葉ノードである場合には、当該葉ノードの見出し格
納領域に格納されている文字列とWを比較する(ステッ
プS505)。その結果、当該葉ノードにWが存在しな
いのであれば、新規に葉ノード生成し、Wを新規葉ノー
ドの見出し格納領域に格納する(ステップS506)。
但し、リバース辞書ファイル9が初期状態になるとき
は、新規に葉ノードを生成する必要はなく、予め存在す
る葉ノードの空の見出し格納領域にWを格納する。
【0145】ステップS505において、Wが当該葉ノ
ードに存在する場合は、以後に説明するステップS50
9を実行する。ノードが新規に生成されたことにより、
新規ノードと兄弟の関係(即ち、同じ親ノードを持つ関
係)にある子ノードの総数が当該B-Treeの次数(図16
では次数3の場合である)を超える場合には(ステップ
S507)、更に新規に節点ノードを生成し、当該ノー
ドの1レベル上位の(即ち当該ノードの親である)節点
ノードの部分木のうち、大きい見出しを持つ二つの部分
木を、新規に生成した節点ノードの部分木とする(ステ
ップS508)。
【0146】更に、ステップS507に戻り、同様にノ
ード数の制限をチェックし、当該レベルのノード数がB-
Treeの次数の範囲内に収まれば、当該部分木の各節点ノ
ードの最小値格納領域の値を調整し(ステップS50
9)、最後に、リバース辞書生成手段11は、受け取っ
た順方向検索候補の全てを処理したかどうかの検査を行
い(ステップS510)、未処理の順方向検索候補が存
在する場合には、ステップS501に戻り、以降の同様
の動作を繰り返す。順方向検索候補の全てを処理した場
合には、リバース辞書生成手段11は動作を終了する。
【0147】また、具体例2における候補選択手段7の
動作は、具体例1における候補選択手段7の動作と同様
であるため、ここでの説明は省略する。
【0148】以下、具体例2のパターン照合装置の動作
を具体的な一例を用いて説明する。尚、スコープ設定手
段10の動作は図14および図15のステップに沿って
説明し、辞書アクセス手段6および候補選択手段7の動
作は、具体例1における図9および図10を援用して説
明する。
【0149】(例文1)「水の中で動くのは植物のみで
はない」をスコープ設定手段10が入力文書として得た
とする。
【0150】ここで、辞書ファイル8には、図3および
図4に示す構成で見出しが登録されているものとする。
また、リバース辞書ファイル9には、何も登録されてい
ない状態、即ち、リバース辞書ファイル9は、図12の
(a)のノード900、901から構成される状態にあ
るものとする。スコープ設定手段10は、入出力手段1
から(例文1)を得て、(例文1)の先頭を記憶域B
に、(例文1)の任意の位置として(例文1)の最後を
Z(Z=15)を記憶域Eに格納する(ステップS10
1)。
【0151】この時点で、B=1、E=16である。次
に、候補バッファを初期化して(ステップS102)、
順方向検索位置XにBを、逆方向検索位置YにEを代入
する(ステップS103)。この時点で、X=1、Y=
16である。スコープS(s,1,16)が表す文字列
は「水の中で動くのは植物のみでない」であるので(ス
テップS104)、S(s,1,16)を辞書アクセス
手段6に転送する(ステップS105)。
【0152】辞書アクセス手段6は、S(s,1,1
6)を受け取り(ステップS201)、スコープ種別は
s(順方向)であるので(ステップS202)、スコー
プS(s,1,16)が表す文字列「水の中で動くのは
植物のみではない」をキーとして、辞書ファイル8を検
索する(ステップS205)。その結果、「水の中で動
くのは植物のみではない」に対し、最左部分文字列であ
る「水の中」が検索され、辞書アクセス手段6は、「水
の中」を検索結果候補として返送する(ステップS20
6)。
【0153】しかる後にスコープ設定手段10は、辞書
アクセス手段6から、文字列「水の中」を順方向検索候
補として受け取る(ステップS106)。ここで、順方
向検索候補が存在するので(ステップS107)、それ
をリバース辞書生成手段11に転送する(ステップS4
01)。
【0154】リバース辞書生成手段11は、順方向検索
候補である「水の中」を受け取り、その逆順文字列Wと
して「中の水」を生成し、最初の検査対象ノードを図1
2中の(a)のノード900とする(ステップS50
1)。次に、当該ノード900の最小値格納領域に格納
されている文字列とWを比較し、当該ノードの最小値格
納領域に格納されている文字列はないので、第1の部分
木へのポインタが指示するノード901を検査対象ノー
ドとして決定する(ステップS502)。ここで、ノー
ド901は、葉ノードであり(ステップS504)、か
つ、当該葉ノード901にはWが存在しないので(ステ
ップS505)、Wをノード901の見出し格納領域へ
格納する(ステップS506)。ここで、ノード900
の子ノードは、ノード901のみであり、B-Treeの次数
3より小さいので(ステップS507)、当該部分木の
最小値となるWを、ノード900の第1の最小値格納領
域に格納する(ステップS509)。以上で、全ての順
方向検索候補を処理したので(ステップS510)、リ
バース辞書生成手段11は動作を終了する。この時点
で、リバース辞書ファイル9は、図12中の(b)の状
態になっている。
【0155】次に、スコープ設定手段10は、S(r,
1,16)が表す文字列「いなはでみの物植はのく動で
中の水」を検査し(ステップS110)、S(r,1,
16)がφではないので、S(r,1,16)を辞書ア
クセス手段6に転送する(ステップS111)。ここ
で、ステップS110〜S114を幾度か繰り返した
後、ステップS114で、X=1、Y=3となり、辞書
アクセス手段6は、S(r,1,3)が表す文字列「中
の水」をキーとして、リバース辞書ファイル9を検索す
る(ステップS203)。その結果、「中の水」に対
し、最左部分文字列である「中の水」が検索され、それ
らの検索結果の文字列を逆順に並べ替えることにより
(ステップS204)、辞書アクセス手段6は、文字列
「水の中」を検索結果候補として返送する(ステップS
206)。
【0156】しかる後にスコープ設定手段10は、辞書
アクセス手段6から、文字列「水の中」を逆方向検索候
補として受け取る(ステップS112)。ここで、逆方
向検索候補が存在するので(ステップS113)、ステ
ップS106で得た順方向検索候補「水の中」と、ステ
ップS112で得た逆方向検索候補「水の中」と、スコ
ープS(s,1,3)とを候補選択手段7に転送する
(ステップS117)。
【0157】候補選択手段7は、順/逆方向検索候補と
S(s,1,3)を受け取り(ステップS301)、順
方向検索候補「水の中」と逆方向検索候補「水の中」を
最適に照合する(ステップS302)。その結果、照合
する候補が存在し(ステップS303)、かつ、照合す
る候補は単独である(ステップS304)ので、候補選
択手段7は、照合した候補「水の中」を返送する(ステ
ップS308)。
【0158】しかる後に、スコープ設定手段10は、候
補選択手段7から検索結果として「水の中」を受け取り
(ステップS118)、検索結果が存在するので(ステ
ップS119)、当該検索結果である「水の中」を候補
バッファに格納し、順方向検索位置Xにその時点での逆
方向検索位置Yの次の位置(Y+1=4)を代入する
(ステップS120)。次に、候補バッファに格納され
た文字列「水の中」を入出力手段1に転送した後、候補
バッファを初期化する(ステップS121)。
【0159】そして、逆方向検索位置Yに記憶域Eの値
を代入する(ステップS120)。この時点で、X=
4、Y=16である。更に、入力文書に未検索部分が存
在する(即ち、当該時点での順方向検索位置Xが記憶域
Eに格納されている値より小さい)ので(ステップS1
23)、ステップS104に戻る。この時点で、スコー
プS(s,4,16)が表す文字列は、「で動くのは植
物のみではない」となる。以下、同様にして、ステップ
S121で、「で」が入出力手段1に転送され、その時
点で、X=5、Y=16となる。ステップS104へ戻
り、スコープS(s,5,16)が表す文字列は、「動
くのは植物のみではない」となる。以下、同様の動作を
続けると、ステップS106で辞書アクセス手段6から
返送される順方向検索候補は、「動く」、「動くのは〜
ではない」、「動くのは〜のみではない」の3候補とな
る。ここで、順方向検索候補が存在するので(ステップ
S107)、それをリバース辞書生成手段11に転送す
る(ステップS401)。
【0160】リバース辞書生成手段11は、順方向検索
候補である「動く」、「動くのは〜ではない」、「動く
のは〜のみではない」を受け取り、その中から最初に
「動く」を選択し、その逆順文字列Wとして「く動」を
生成し、最初の検査対象ノードを図12中の(a)のノ
ード900とする(ステップS501)。次に、当該ノ
ード900の最小値格納領域に格納されている文字列と
Wを比較し、当該ノードの最小値格納領域に格納されて
いる文字列はないので、第1の部分木へのポインタが指
示するノード901を検査対象ノードとして決定する
(ステップS502)。
【0161】ここで、ノード901は、葉ノードであり
(ステップS504)、かつ、当該葉ノード901には
Wが存在しないので(ステップS505)、Wをノード
901の見出し格納領域へ格納する(ステップS50
6)。ここで、ノード900の子ノードは、ノード90
1のみであり、B-Treeの次数3以下であるので(ステッ
プS507)、当該部分木の最小値となるWを、ノード
900の第1の最小値格納領域に格納する(ステップS
509)。この時点で、リバース辞書ファイル9は、図
12中の(a)の状態から図13中の(c)の状態に変
化する。
【0162】次に、未処理の順方向検索候補があと二つ
残っているので(ステップS509)、ステップS50
1へ戻る。リバース辞書生成手段11は、次に、「動く
のは〜ではない」を選択し、その逆順文字列Wとして
「いなはで〜はのく動」を生成し、最初の検査対象ノー
ドを図13中の(c)のノード902とする(ステップ
S501)。次に、当該ノード902の最小値格納領域
に格納されている文字列「く動」のみであるので、「く
動」が含まれる第1の部分木へのポインタが指示するノ
ード903を検査対象ノードとして決定する(ステップ
S502)。ここで、ノード903は、葉ノードであり
(ステップS504)、かつ、当該葉ノード903には
Wが存在しないので(ステップS505)、新規にノー
ド904を生成し、Wをノード904の見出し格納領域
へ格納する(ステップS506)。
【0163】このとき、ノード904の最小値である
「いなはで〜はのく動」の方がノード903の最小値
「く動」より小さいので、ノード902の第1の部分木
はノード904となり、第2の部分木はノード903と
なる。ここで、ノード902の子ノードは、ノード90
4、903であり、B-Treeの次数以下であるので(ステ
ップS507)、ノード902の第1、第2の最小値格
納領域を調整する(ステップS509)。その結果、リ
バース辞書ファイル9は、図13中の(c)の状態から
図13中の(d)の状態に変化する。
【0164】次に、未処理の順方向検索候補があと一つ
残っているので(ステップS509)、ステップS50
1へ戻る。リバース辞書生成手段11は、次に、「動く
のは〜のみではない」を選択し、その逆順文字列Wとし
て「いなはでみの〜はのく動」を生成し、最初の検査対
象ノードを図13中の(d)のノード902とする(ス
テップS501)。
【0165】次に、当該ノード902の最小値格納領域
に格納されている文字列「く動」と「いなはで〜はのく
動」とWである「いなはでみの〜はのく動」を比較し、
「いなはで〜はのく動」が最大の最小値であるので、
「いなはで〜はのく動」が含まれる第1の部分木へのポ
インタが指示するノード904を検査対象ノードとして
決定する(ステップS502)。ここで、第1の部分木
の最小値「いなはで〜はのく動」は、Wである「いなは
でみの〜はのく動」の最左部分文字列であるので(ワイ
ルドカード「〜」以降比較の対象としない)、「いなは
で〜はのく動」を部分見出しの格納領域に格納する(ス
テップS503)。
【0166】ここで、ノード904は、葉ノードであり
(ステップS504)、かつ、当該葉ノード904には
Wが存在しないので(ステップS505)、新規にノー
ド905を生成し、Wをノード905の見出し格納領域
へ格納する(ステップS506)。ここで、ノード90
5の「いなはでみの〜はのく動」の方がノード903の
最小値「く動」より小さく、ノード904の最小値であ
る「いなはで〜はのく動」の方がノード905の最小値
「いなはでみの〜はのく動」より大きいので、ノード9
02の第1の部分木はノード904となり、第2の部分
木はノード905となり、第3の部分木はノード903
となる。いま、ノード902の子ノードは、ノード90
4、905、903であり、B-Treeの次数3以下である
ので(ステップS507)、ノード902の第1、第
2、第3の最小値格納領域を調整する(ステップS50
9)。その結果、リバース辞書ファイル9は、図13中
の(d)の状態から図13中の(e)の状態に変化す
る。以上で、全ての順方向検索候補を処理したので(ス
テップS510)、リバース辞書生成手段11は動作を
終了する。
【0167】しかる後に、スコープ設定手段10は、辞
書アクセス手段6を介して、スコープS(r,5,1
6)が表す文字列「動くのは植物のみではない」をキー
として、図13中の(e)に示すリバース辞書ファイル
を検索し(ステップS111)、「動くのは〜ではな
い」、「動くのは〜のみではない」の二つの逆方向検索
候補を受け取る(ステップS112)。これらの順方向
検索候補と逆方向検索候補とスコープS(s,5,1
6)が候補選択手段7に転送され(ステップS11
7)、候補選択手段7は、ステップS702でそれらの
候補群を最適に照合する。
【0168】即ち、順方向検索候補と逆方向検索候補に
共通する「動くのは〜ではない」と「動くのは〜のみで
はない」が候補として存在し(ステップS303)、照
合する候補が複数であり(ステップS304)、かつ、
候補に連続表現が含まれていない(ステップS305)
ので、スコープS(s,5,16)が表す文字列「動く
のは植物のみではない」を参照して、「動くのは〜のみ
ではない」のうち、ワイルドカード部分の適合範囲が小
さい離散表現を選択する(ステップS307)。
【0169】つまり、「動くのは〜ではない」の場合の
ワイルドカード適合範囲は「植物のみ」、「動くのは〜
のみではない」の場合のワイルドカード適合範囲は「植
物」となり、「動くのは〜のみではない」の場合がワイ
ルドカード部分の適合範囲が小さいので、「動くのは〜
のみではない」が選択される。その結果、ステップS1
20へ戻り、スコープ設定手段10は、検索結果「動く
のは〜のみではない」を候補バッファに格納し、順方向
検索位置XにY+1の値である17を代入する。以後、
候補バッファに格納されている文字列「動くのは〜のみ
ではない」が入出力手段1に転送される(ステップS1
21)。最後に、入力文書に未検索部分が存在するかど
うかの検査を行い(ステップS123)、入力文書に未
検索部分が存在しない(即ち、当該時点での順方向検索
位置X(=17)が記憶域Eに格納されている値16よ
り大きい)ので、スコープ設定手段10は動作を終了す
る。入出力手段1は、スコープ設定手段10から順次転
送されてくる(未知語も含む)検索結果である「水の
中」、「で」、「動くのは〜のみではない」を出力する
ことになる。
【0170】〈効果〉以上に説明したパターン照合装置
の具体例2によれば、辞書ファイルの構成において、平
衡木の構造を持つB-Treeの節点ノードに部分木に含まれ
るインデックスの最小値を格納する機構を設けたことに
より、目的とするインデックスに至る経路を木の深さの
オーダに抑えることができ、辞書に数十万のインデック
スを格納したとしても、高速な検索を実現することがで
きる。
【0171】また、通常の検索に供せられる辞書ファイ
ルに加えて、当該辞書ファイルに格納されているインデ
ックスを逆順に並べ替えた新たなインデックスを格納す
るリバース辞書ファイルを具備し、質問語の順方向およ
び逆方向の検索を可能とする手段を備えたことにより、
インデックスに離散表現を含めたとしても辞書アクセス
の回数を増やすことなく、目的とするインデックスを高
速に検索することが可能となる。
【0172】更に、リバース辞書ファイルは、通常の検
索の結果得られる順方向の検索候補のみを対象として新
規に生成されるので、リバース辞書ファイルに登録され
る語数を大幅に削減することができ、その結果、逆方向
検索候補を減らすことができるので、順方向検索候補と
逆方向検索候補を照合して実施される候補選択の負荷を
大幅に改善することができる。つまり、具体例1で得ら
れる効果を踏襲し、更に高速な検索を可能とするパター
ン照合装置を実現することができる。
【0173】〈利用形態〉具体例2では、リバース辞書
ファイルの検索を高速化するために、逐次新規に当該辞
書を生成する形態のパターン照合装置として説明した
が、リバース辞書ファイルを新規に作り直すことをせず
に、登録語を蓄積していく形態にすれば、入力文書に応
じた検索結果を学習する学習装置に応用することができ
る。更に、リバース辞書ファイルを複数具備する形態と
すれば、入力文書の分野や表現形態に応じて言い回しや
表現が違う文書に適合する柔軟な検索を実現する目的指
向のデータベース装置としての応用も考えられる。
【0174】《具体例3》 〈構成〉図17は、本発明であるパターン照合装置の具
体例3の構成を示すブロック図である。
【0175】図の装置は、入出力手段1、機械翻訳装置
2、文書検索装置3、データ線4、辞書アクセス手段
6、辞書ファイル8、リバース辞書ファイル9、スコー
プ設定手段12、コストテーブル13からなる。
【0176】ここで、スコープ設定手段12およびコス
トテーブル13以外の構成については具体例1、2と同
様であるため、ここでの説明は省略する。
【0177】スコープ設定手段12は、本装置に入力さ
れた文書から質問語にあたる文書素片の範囲を決定し、
その組み合わせで質問語全体のコストを計算しその結果
を出力する機能を有している。また、コストテーブル1
3は、スコープ設定手段12によるコスト計算の結果を
格納する格納部である。
【0178】具体例3においては、具体例1および具体
例2が検索候補の絞り込みを実施することに対して、質
問語のスコープの範囲の設定の組み合わせから複数の検
索結果をコストとして計算する機能を付加したスコープ
設定手段12、および、スコープ設定手段12のコスト
計算の結果を格納するコストテーブル13を具備するこ
とにより、候補を絞り込まずに全ての可能性のある候補
にコストを付与して出力する点に特徴がある。
【0179】以下、本具体例の説明では、検索対象であ
る辞書データを離散表現とし、文書テキストに照合する
最適な離散表現を検索することを目的とするパターン照
合装置を想定して説明を進める。
【0180】具体例3においては、辞書ファイル8およ
びリバース辞書ファイル9は、図2に示す具体例1と同
様の構成のものを採用する。もちろん、辞書ファイル8
とリバース辞書ファイル9は、格納する検索対象データ
に応じた機構を有すれば、異なる機構であっても構わな
いが、本具体例では、辞書ファイル8とリバース辞書フ
ァイル9は、格納されるデータの種類が異なるだけで、
機構は図2(c)に示した次数3の2−3木の構成を持
つ改良B-Treeを用いるものとして説明する。
【0181】具体例3における辞書ファイル8の登録例
として、図3および図4に示す具体例1と同様の登録例
を採用する。また、具体例3におけるリバース辞書ファ
イル8の登録例として、図5および図6に示す具体例1
と同様の登録例を採用する。
【0182】図18および図19は、具体例3における
コストテーブル13の構成説明図および一例を示す説明
図である。コストテーブル13には、本装置に入力され
た質問語に適合する複数の検索結果にコストが付与した
レコード(以下、コストレコードと呼ぶ)が格納され
る。図18は、コストテーブル13に格納されるコスト
レコードの構成例を表す図である。500は、m個に分
割された質問語のn番目(1≦n≦mとする)の素片で
あるQn、501は、n番目の質問語の素片Qnに対応
する検索候補であるIn、502は、コストレコードの
総コストを表すCt、503は、n番目の検索候補In
に対するコストCn、504は、n番目の質問語の素片
Qnの文字列の長さL(Qn)、505は、n番目の検
索候補Inの種別K(In)、506は、n番目の検索
候補Inのコスト計算時に使用される重み値W(K(I
n))、507は、m個に分割された質問語の文字列の
長さの総和Lt、508は、コストレコードの構成を表
すRecordをそれぞれ示している。
【0183】コストレコードの総コストCtは、n番目
の検索候補Inに対するコストCnのm個の総和であ
り、n番目の検索候補Inに対するコストCnは、n番
目の質問語の素片Qnの文字列の長さL(Qn)と、n
番目の検索候補Inの重み値W(K(In))の積を質
問語の文字列の長さの総和Ltで除したものと定義す
る。また、検索候補Inの重み値W(K(In))は、
n番目の検索候補Inの種別K(In)が、未知語(Un
known)、離散表現(Discontinuity)、連続表現(Cont
inuity)のいずれかであるかにより、定数値a、b、c
のいずれかの値をとるものと定義する。コストレコード
Recordは、総コストCt、および、CtとInとQnの
組のm個の集合とから構成される。但し、n番目の質問
語の素片Qnと検索候補Inの文字列が一致する場合
は、Qnは空文字列φとして格納される。
【0184】尚、図18に示したコストテーブル13の
構成例におけるコスト計算のための定義は普遍的なもの
ではなく、目的や条件により任意の定義として構わな
い。以下の説明では、便宜上、図18の定義を採用し、
506における定数値a、b、cはそれぞれ、0.1、
0.5、1.0であるものとする。
【0185】また、図19は、「風に動くのはらの草木
は枯れているのではない」という質問語に対するコスト
テーブル13の実際の格納例を表す図である。
【0186】〈動作〉図20および図21は、本発明で
あるパターン照合装置の具体例3におけるスコープ設定
手段12の動作を示すフローチャートである。
【0187】具体例3におけるスコープ設定手段12の
動作は、具体例1におけるスコープ設定手段5および具
体例2におけるスコープ設定手段10の動作である辞書
ファイル8から順方向検索候補を得て、更に、リバース
辞書9から逆方向検索候補を得て、両者を照合して最終
候補を絞り込むのではなく、質問語に対する順方向検索
候補と逆方向検索候補の全ての照合可能性を検査し、そ
れぞれの可能な組み合わせに対してコストを付与して出
力する点が異なる。以上を鑑み、図20および図21を
参照しながら具体例3におけるスコープ設定手段12の
動作を説明する。尚、スコープは、具体例1と同様に表
記するものとする。
【0188】スコープ設定手段12は、先ず、入出力手
段1から質問語である入力文書を得て、記憶域Lに入力
文書の文字列の長さを、記憶域Posに1を格納する
(ステップS601)。次に、最初の検索のために、順
方向検索位置の記憶域Xに記憶域Posの値を、逆方向
検索位置の記憶域YにLの値を複写する(ステップS6
02)。次に、スコープS(s,X,Y)が表す順方向
文字列を、辞書アクセス手段6に転送する(ステップS
603)。
【0189】辞書アクセス手段6は、S(s,X,Y)
が表す順方向文字列をキーとして辞書ファイル8を検索
し、その検索結果を順方向検索候補としてスコープ設定
手段12に返送するので、スコープ設定手段12は、辞
書アクセス手段6からの順方向検索候補を受け取る(ス
テップS604)。ここで、順方向検索候補が存在する
かの検査を行い(ステップS605)、順方向検索候補
が存在しないならば、ステップS606において、順方
向検索位置Xを1文字分だけ進め(Xを1だけ増加させ
る。即ち、X=X+1とする)、ステップS603へ戻
り、以降の同様の動作を繰り返す。
【0190】一方、ステップS605において、順方向
検索候補が存在する場合には、コストテーブル13を走
査し、格納されているコストレコードの最大のnを持つ
質問語の素片Qnの末端がPos−1であるコストレコ
ードをコストテーブル13から取り出し、S(s,Po
s,X−1)が表す未知語文字列のコストを計算し、取
り出したそれぞれのコストレコードに追加し、それらを
退避域に格納し、記憶域Posに記憶域Xの値を代入す
る(ステップS607)。
【0191】次に、ステップS604で得た順方向検索
候補の全てを処理したかどうかを検査し(ステップS6
08)、未処理の順方向検索候補が存在するならば、逆
方向検索位置Yを当該順方向検索候補の末尾とする(ス
テップS609)。次に、スコープS(r,X,Y)が
表す逆方向文字列を辞書アクセス手段に転送する(ステ
ップS610)。
【0192】辞書アクセス手段6は、S(r,X,Y)
が表す逆方向文字列をキーとしてリバース辞書ファイル
9を検索し、その検索結果を逆方向検索候補としてスコ
ープ設定手段12に返送するので、スコープ設定手段1
2は、辞書アクセス手段6からの逆方向検索候補を受け
取る(ステップS611)。
【0193】ここで、当該順方向検索候補と異なる逆方
向検索候補が得られたかどうかを検査し(ステップS6
12)、逆方向検索候補が存在しなければ、逆方向検索
位置Yを1文字分戻す、即ち、Y=Y−1とする(ステ
ップS613)。そして、当該時点での順方向検索位置
Xと逆方向検索位置Yを比較し(ステップS614)、
順方向検索位置Xが逆方向検索位置Yより小さい、即
ち、スコープS(r,X,Y)が存在するならば、ステ
ップS610に戻り、以降の動作を繰り返す。
【0194】また、ステップS614で、順方向検索位
置Xが逆方向検索位置Yより大きい、即ち、スコープS
(r,X,Y)が存在しないならば、ステップS607
で格納された退避域の全コストレコードの末尾に、当該
順方向検索候補を追加し、コストテーブル13に格納す
る(ステップS615)。しかる後に、ステップS60
8に戻り、未処理の順方向検索候補について同様の動作
を繰り返す。
【0195】また、ステップS612の検査で、当該順
方向検索候補と異なる逆方向検索候補が存在する場合に
は、当該順方向検索候補が照合するスコープのうち、当
該逆方向検索候補を含む各要素のコストを計算し(ステ
ップS616)、ステップS607で格納された退避域
の全コストレコードの末尾に、ステップS616で設定
した当該逆方向検索候補とその他の要素を追加し、コス
トテーブル13に格納する(ステップS617)。
【0196】そして、ステップS611で得た全ての逆
方向検索候補についての処理を実施したかどうかの検査
を行い(ステップS618)、未処理の逆方向検索候補
が存在するならば、ステップS616へ戻り、同様の動
作を繰り返す。
【0197】また、ステップS618で全ての逆方向検
索候補の処理が終了していたならば、ステップS613
に戻り、以降の動作を継続する。更に、ステップS60
8において、順方向検索候補の全てが処理されているな
らば、当該時点でのコストテーブル13を走査し、コス
トレコードを一つ選択し、当該コストレコードの要素の
末尾の次の位置を記憶域Posに代入する(ステップS
619)。
【0198】そして、記憶域Pos値と記憶域Lに格納
されている質問語である入力文書の長さを比較し(ステ
ップS620)、Posの値がLの値より小さい、即
ち、当該コストレコード中に未検索の質問語の素片が残
されているならば、ステップS602に戻り、以降の同
様の動作を繰り返す。また、ステップS620で、Po
sの値がLの値以上である、即ち、当該コストレコード
中に未検索の質問語の素片が残されていないならば、当
該時点でのコストテーブル13に未処理のコストレコー
ドが存在するかどうかを検査し(ステップS621)、
未処理のコストレコードが存在するならば、ステップS
619に戻り、別のコストレコードを選択し、同様の動
作を繰り返す。また、ステップS621で全てのコスト
レコードの処理が終了していれば、コストテーブルの各
コストレコードの総コストCtを計算し、コストテーブ
ル13を入出力手段に転送し、スコープ設定手段12は
動作を終了する。
【0199】前述した具体例3におけるスコープ設定手
段12の動作の説明中にある辞書アクセス手段6の動作
は、具体例1のそれと同様である。具体例3における辞
書アクセス手段6の動作は、図6に示すフローチャート
に準ずる。
【0200】以下、具体例3であるパターン照合装置の
動作を具体的な一例により説明する。先ず、入出力手段
1が以下に示す(例文2)を入力文書として得たとす
る。(例文2)「風に動くのはらの草木は枯れているの
ではない」
【0201】ここで、辞書ファイル8には、図3および
図4に示す構成で見出しが登録されているものとし、リ
バース辞書ファイル9には、図5および図6に示す構成
で見出しが登録されているものとする。
【0202】スコープ設定手段12は、入出力手段1か
ら(例文2)を得て、記憶域Lに(例文2)の文字列の
長さ(=21)を、記憶域Posに1をそれぞれ格納す
る(ステップS601)。次に、順方向検索位置の記憶
域Xに記憶域Posの値である1を、逆方向検索位置の
記憶域YにLの値である21を複写する(ステップS6
02)。この時点で、Pos=1、X=1、Y=21で
ある。
【0203】次に、スコープS(s,1,21)が表す
順方向文字列「風に動くのはらの草木は枯れているので
はない」を辞書アクセス手段6に転送し(ステップS6
03)、辞書アクセス手段6は、図9に示す動作によ
り、図3および図4に示す辞書ファイル8を検索する
が、順方向検索候補が見つからないので、何も返送しな
い(ステップS604)。つまり、順方向検索候補が存
在しないので(ステップS605)、順方向検索位置X
を1文字進める(ステップS606)。この時点で、P
os=1、X=2、Y=21である。
【0204】ステップS603に戻り、スコープS
(s,2,21)が表す順方向文字列「に動くのはらの
草木は枯れているのではない」を辞書アクセス手段6に
転送し(ステップS603)、辞書アクセス手段6は、
図9に示す動作により、図3および図4に示す辞書ファ
イル8を検索するが、順方向検索候補が見つからないの
で、何も返送しない(ステップS604)。つまり、順
方向検索候補が存在しないので(ステップS605)、
順方向検索位置Xを1文字進める(ステップS60
6)。この時点で、Pos=1、X=3、Y=21であ
る。
【0205】ステップS603に戻り、スコープS
(s,3,21)が表す順方向文字列「動くのはらの草
木は枯れているのではない」を辞書アクセス手段6に転
送し(ステップS603)、辞書アクセス手段6は、図
9に示す動作により、図3および図4に示す辞書ファイ
ル8を検索すると、「動く」、「動くのはらの草木」、
「動くのは〜ではない」の三つの順方向検索候補を返送
するので、スコープ設定手段12は、辞書アクセス手段
6からの順方向検索候補を受け取る(ステップS60
4)。ここで、順方向検索候補が存在するので(ステッ
プS605)、コストテーブル13を走査し、格納され
ているコストレコードのnが最大の質問語の素片Qnの
末端がPos−1、即ち、1−1=0であるコストレコ
ードをコストテーブル13から取り出す。しかし、コス
トテーブル13には何も格納されていないので、S
(s,Pos,X−1)=S(s,1,3−1)が表す
未知語文字列「風に」のコストが図18に示した定義5
03により以下のように計算され、 C1 = L(Q1)*W(K(I1))/Lt = L(風に)*W(K(風に))/21 = 2*W(UnKnown)/21 = 2*a/21 = 2*0.1/21 = 0.00952… ≒ 0.01 退避域には、(C1,I1,Q1)=(0.01,風に,
φ)が格納され、記憶域Posに記憶域X=3の値を代
入する(ステップS607)。
【0206】次に、逆方向検索位置Yを当該順方向検索
候補「動く」の末尾である4とする(ステップS60
9)。この時点で、Pos=3、X=3、Y=4であ
る。次に、スコープS(r,3,4)が表す逆方向文字
列「く動」を辞書アクセス手段6に転送し(ステップS
610)、辞書アクセス手段6は、図9に示す動作によ
り、図5および図6に示すリバース辞書ファイル9を検
索すると、「動く」という逆方向検索候補を返送するの
で、スコープ設定手段12は、辞書アクセス手段6から
の逆方向検索候補を受け取る(ステップS611)。こ
こで、当該順方向検索候補「動く」と異なる逆方向検索
候補が存在しないので(ステップS612)、逆方向検
索位置Y=Y−1とする(ステップS613)。この時
点で、Pos=3、X=3、Y=3である。
【0207】いま、X<Yでないので(ステップS61
4)、退避域に格納されていたコストレコード[(0.0
1,風に,φ)]に、当該順方向検索候補のコストを計
算して追加し、その結果、[(0.01,風に,φ),(0.
10,動く,φ)]をコストテーブル13に格納する(ス
テップS615)。
【0208】次に、ステップS608に戻り、未処理の
順方向検索候補「動くのはらの草木」が存在するので、
逆方向検索位置Yを当該順方向検索候補「動くのはらの
草木」の末尾である10とする(ステップS609)。
この時点で、Pos=3、X=3、Y=10である。次
に、スコープS(r,3,10)が表す逆方向文字列
「木草のらはのく動」を辞書アクセス手段6に転送し
(ステップS610)、辞書アクセス手段6は、図9に
示す動作により、図5および図6に示すリバース辞書フ
ァイル9を検索すると、「動くのはらの草木」という逆
方向検索候補を返送するので、スコープ設定手段12
は、辞書アクセス手段6からの逆方向検索候補を受け取
る(ステップS611)。ここで、当該順方向検索候補
「動くのはらの草木」と異なる逆方向検索候補が存在し
ないので(ステップS612)、逆方向検索位置Y=Y
−1とする(ステップS613)。この時点で、Pos
=3、X=3、Y=9である。
【0209】いま、X<Yであるので(ステップS61
4)、ステップS610に戻り、スコープS(r,3,
9)が表す逆方向文字列「草のらはのく動」を辞書アク
セス手段6に転送し(ステップS610)、辞書アクセ
ス手段6は、図9に示す動作により、図5および図6に
示すリバース辞書ファイル9を検索すると、該当候補は
存在せず、スコープ設定手段12は、辞書アクセス手段
6からの逆方向検索候補を受け取らないので(ステップ
S612)、逆方向検索位置Y=Y−1とする(ステッ
プS613)。この時点で、Pos=3、X=3、Y=
8である。
【0210】いま、X<Yであるので(ステップS61
4)、ステップS610に戻り、スコープS(r,3,
8)が表す逆方向文字列「のらはのく動」を辞書アクセ
ス手段6に転送し(ステップS610)、辞書アクセス
手段6は、図9に示す動作により、図5および図6に示
すリバース辞書ファイル9を検索すると、該当候補は存
在せず、スコープ設定手段12は、辞書アクセス手段6
からの逆方向検索候補を受け取らないので(ステップS
612)、逆方向検索位置Y=Y−1とする(ステップ
S613)。この時点で、Pos=3、X=3、Y=7
である。
【0211】いま、X<Yであるので(ステップS61
4)、ステップS610に戻り、スコープS(r,3,
7)が表す逆方向文字列「らはのく動」を辞書アクセス
手段6に転送し(ステップS610)、辞書アクセス手
段6は、図9に示す動作により、図5および図6に示す
リバース辞書ファイル9を検索すると、「のはら」とい
う逆方向検索候補を返送するので、スコープ設定手段1
2は、辞書アクセス手段6からの逆方向検索候補を受け
取る(ステップS611)。ここで、当該順方向検索候
補「動くのはらの草木」と異なる逆方向検索候補「のは
ら」が存在するので(ステップS612)、当該順方向
検索候補の示すスコープ「動くのはらの草木」の逆方向
検索候補「のはら」とそれ以外のスコープのコストを計
算し、(0.10,動く,φ)、(0.14,のはら,φ)、
(0.01,の草木,φ)を得る(ステップS616)。
【0212】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該順方向検索候補を
含む前記の3要素を追加し、その結果、[(0.01,風
に,φ),(0.10,動く,φ),(0.14,のはら,
φ),(0.01,の草木,φ)]をコストテーブル13に
格納する(ステップS617)。これで、逆方向検索候
補を全て処理したので(ステップS618)、ステップ
S613に戻り、Y=Y−1とする。この時点で、Po
s=3、X=3、Y=6である。
【0213】いま、X<Yであるので(ステップS61
4)、ステップS610に戻り、スコープS(r,3,
6)が表す逆方向文字列「はのく動」を辞書アクセス手
段6に転送し(ステップS610)、辞書アクセス手段
6は、図9に示す動作により、図5および図6に示すリ
バース辞書ファイル9を検索すると、「のは」という逆
方向検索候補を返送するので、スコープ設定手段12
は、辞書アクセス手段6からの逆方向検索候補を受け取
る(ステップS611)。ここで、当該順方向検索候補
「動くのはらの草木」と異なる逆方向検索候補「のは」
が存在するので(ステップS612)、当該順方向検索
候補の示すスコープ「動くのはらの草木」の逆方向検索
候補「のは」とそれ以外のスコープのコストを計算し、
(0.10,動く,φ)、(0.10,のは,φ)、(0.02,ら
の草木,φ)を得る(ステップS616)。
【0214】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該逆方向検索候補を
含む前記の3要素を追加し、その結果、[(0.01,風
に,φ),(0.10,動く,φ),(0.10,のは,φ),
(0.02,らの草木,φ)]をコストテーブル13に格納
する(ステップS617)。これで、逆方向検索候補を
全て処理したので(ステップS618)、ステップS6
13に戻り、以下同様の動作を繰り返し、Pos=3、
X=3、Y=4の時、スコープS(r,3,4)が表す
逆方向文字列「く動」を辞書アクセス手段6に転送し
(ステップS610)、辞書アクセス手段6は、図9に
示す動作により、図5および図6に示すリバース辞書フ
ァイル9を検索すると、「動く」という逆方向検索候補
を返送するので、スコープ設定手段12は、辞書アクセ
ス手段6からの逆方向検索候補を受け取る(ステップS
611)。
【0215】ここで、当該順方向検索候補「動くのはら
の草木」と異なる逆方向検索候補「動く」が存在するの
で(ステップS612)、当該順方向検索候補の示すス
コープ「動くのはらの草木」の逆方向検索候補「動く」
とそれ以外のスコープのコストを計算し、(0.10,動
く,φ)、(0.03,のはらの草木,φ)を得る(ステッ
プS616)。
【0216】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該逆方向検索候補を
含む前記の3要素を追加し、その結果、[(0.01,風
に,φ),(0.10,動く,φ),(0.03,のはらの草
木,φ)]をコストテーブル13に格納する(ステップ
S617)。これで、逆方向検索候補を全て処理したの
で(ステップS618)、ステップS613に戻り、Y
=Y−1となり、その時点で、Pos=3、X=3、Y
=3である。
【0217】ここで、X<Yでないので(ステップS6
14)、退避域に格納されていたコストレコード[(0.
01,風に,φ)]に、当該順方向検索候補のコストを計
算し追加し、その結果、[(0.01,風に,φ),(0.3
8,動くのはらの草木,φ)]をコストテーブル13に
格納する(ステップS615)。この時点で、コストテ
ーブル13には、 [(0.01,風に,φ),(0.10,動く,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.14,
のはら,φ),(0.01,の草木,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.10,
のは,φ),(0.02,らの草木,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.03,
のはらの草木,φ)] [(0.01,風に,φ),(0.38,動くのはらの草木,
φ)] が格納されている。
【0218】次に、ステップS608に戻り、未処理の
順方向検索候補「動くのは〜ではない」が存在するの
で、逆方向検索位置Yを当該順方向検索候補「動くのは
〜ではない」の末尾である21とする(ステップS60
9)。この時点で、Pos=3、X=3、Y=21であ
る。
【0219】次に、スコープS(r,3,21)が表す
逆方向文字列「いなはでのるいてれ枯は木草のらはのく
動」を辞書アクセス手段6に転送し(ステップS61
0)、辞書アクセス手段6は、図9に示す動作により、
図5および図6に示すリバース辞書ファイル9を検索す
ると、「ではない」と「動くのは〜ではない」という逆
方向検索候補を返送するので、スコープ設定手段12
は、辞書アクセス手段6からの逆方向検索候補を受け取
る(ステップS611)。ここで、当該順方向検索候補
「動くのはらの草木は枯れているのではない」と異なる
逆方向検索候補「ではない」が存在するので(ステップ
S612)、当該順方向検索候補の示すスコープ「動く
のはらの草木は枯れているのではない」の逆方向検索候
補「ではない」とそれ以外のスコープのコストを計算
し、(0.07,動くのはらの草木は枯れているの,φ)、
(0.19,ではない,φ)を得る(ステップS616)。
【0220】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該順方向検索候補を
含む前記の2要素を追加し、その結果、[(0.01,風
に,φ),(0.07,動くのはらの草木は枯れているの,
φ),(0.19,ではない,φ)]をコストテーブル13
に格納する(ステップS617)。これで、逆方向検索
候補を全て処理したので(ステップS618)、ステッ
プS613に戻り、Y=Y−1とする。この時点で、P
os=3、X=3、Y=20である。
【0221】いま、X<Yであるので(ステップS61
4)、ステップS610に戻り、スコープS(r,3,
20)が表す逆方向文字列「なはでのるいてれ枯は木草
のらはのく動」を辞書アクセス手段6に転送し(ステッ
プS610)、辞書アクセス手段6は、図9に示す動作
により、図5および図6に示すリバース辞書ファイル9
を検索すると、該当候補は存在せず、スコープ設定手段
12は、辞書アクセス手段6からの逆方向検索候補を受
け取らないので(ステップS612)、逆方向検索位置
Y=Y−1とする(ステップS613)。この時点で、
Pos=3、X=3、Y=19である。
【0222】いま、X<Yであるので(ステップS61
4)、ステップS610に戻り、スコープS(r,3,
19)が表す逆方向文字列「はでのるいてれ枯は木草の
らはのく動」を辞書アクセス手段6に転送し(ステップ
S610)、辞書アクセス手段6は、図9に示す動作に
より、図5および図6に示すリバース辞書ファイル9を
検索すると、該当候補は存在せず、スコープ設定手段1
2は、辞書アクセス手段6からの逆方向検索候補を受け
取らないので(ステップS612)、逆方向検索位置Y
=Y−1とする(ステップS613)。この時点で、P
os=3、X=3、Y=18である。
【0223】いま、X<Yであるので(ステップS61
4)、ステップS610に戻り、スコープS(r,3,
18)が表す逆方向文字列「でのるいてれ枯は木草のら
はのく動」を辞書アクセス手段6に転送し(ステップS
610)、辞書アクセス手段6は、図9に示す動作によ
り、図5および図6に示すリバース辞書ファイル9を検
索すると、「で」という逆方向検索候補を返送するの
で、スコープ設定手段12は、辞書アクセス手段6から
の逆方向検索候補を受け取る(ステップS611)。こ
こで、当該順方向検索候補「動くのはらの草木は枯れて
いるのではない」と異なる逆方向検索候補「で」が存在
するので(ステップS612)、当該順方向検索候補の
示すスコープ「動くのはらの草木は枯れているのではな
い」の逆方向検索候補「で」とそれ以外のスコープのコ
ストを計算し、(0.07,動くのはらの草木は枯れている
の,φ)、(0.05,で,φ)、(0.01,はない,φ)を
得る(ステップS616)。
【0224】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該逆方向検索候補を
含む前記の3要素を追加し、その結果、[(0.01,風
に,φ),(0.07,動くのはらの草木は枯れているの,
φ),(0.05,で,φ),(0.01,はない,φ)]をコ
ストテーブル13に格納する(ステップS617)。こ
れで、逆方向検索候補を全て処理したので(ステップS
618)、ステップS613に戻り、以下の動作を繰り
返し、Pos=3、X=3、Y=10の時、スコープS
(r,3,10)が表す逆方向文字列「木草のらはのく
動」を辞書アクセス手段6に転送する(ステップS61
0)。
【0225】辞書アクセス手段6は、図9に示す動作に
より、図5および図6に示すリバース辞書ファイル9を
検索すると、「動くのはらの草木」という逆方向検索候
補を返送するので、スコープ設定手段12は、辞書アク
セス手段6からの逆方向検索候補を受け取る(ステップ
S611)。ここで、当該順方向検索候補「動くのはら
の草木は枯れているのではない」と異なる逆方向検索候
補「動くのはらの草木」が存在するので(ステップS6
12)、当該順方向検索候補の示すスコープ「動くのは
らの草木は枯れているのではない」の逆方向検索候補
「動くのはらの草木」とそれ以外のスコープのコストを
計算し、(0.38,動くのはらの草木,φ)、(0.05,は
枯れているのではない,φ)を得る(ステップS61
6)。
【0226】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該逆方向検索候補を
含む前記の2要素を追加し、その結果、[(0.01,風
に,φ),(0.38,動くのはらの草木,φ),(0.05,
は枯れているのではない,φ)]をコストテーブル13
に格納する(ステップS617)。これで、逆方向検索
候補を全て処理したので(ステップS618)、ステッ
プS613に戻り、以下同様の動作を繰り返し、Pos
=3、X=3、Y=7の時、スコープS(r,3,7)
が表す逆方向文字列「らはのく動」を辞書アクセス手段
6に転送し(ステップS610)、辞書アクセス手段6
は、図9に示す動作により、図5および図6に示すリバ
ース辞書ファイル9を検索すると、「のはら」という逆
方向検索候補を返送するので、スコープ設定手段12
は、辞書アクセス手段6からの逆方向検索候補を受け取
る(ステップS611)。ここで、当該順方向検索候補
「動くのはらの草木は枯れているのではない」と異なる
逆方向検索候補「のはら」が存在するので(ステップS
612)、当該順方向検索候補の示すスコープ「動くの
はらの草木は枯れているのではない」の逆方向検索候補
「のはら」とそれ以外のスコープのコストを計算し、
(0.10,動く,φ)、(0.14,のはら,φ)、(0.07,
の草木は枯れているのではない,φ)を得る(ステップ
S616)。
【0227】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該逆方向検索候補を
含む前記の3要素を追加し、その結果、[(0.01,風
に,φ),(0.10,動く,φ),(0.14,のはら,
φ),(0.07,の草木は枯れているのではない,φ)]
をコストテーブル13に格納する(ステップS61
7)。これで、逆方向検索候補を全て処理したので(ス
テップS618)、ステップS613に戻り、以下同様
の動作を繰り返し、Pos=3、X=3、Y=6の時、
スコープS(r,3,6)が表す逆方向文字列「はのく
動」を辞書アクセス手段6に転送する(ステップS61
0)。
【0228】辞書アクセス手段6は、図9に示す動作に
より、図5および図6に示すリバース辞書ファイル9を
検索すると、「のは」という逆方向検索候補を返送する
ので、スコープ設定手段12は、辞書アクセス手段6か
らの逆方向検索候補を受け取る(ステップS611)。
ここで、当該順方向検索候補「動くのはらの草木は枯れ
ているのではない」と異なる逆方向検索候補「のは」が
存在するので(ステップS612)、当該順方向検索候
補の示すスコープ「動くのはらの草木は枯れているので
はない」の逆方向検索候補「のは」とそれ以外のスコー
プのコストを計算し、(0.10,動く,φ)、(0.10,の
は,φ)、(0.07,らの草木は枯れているのではない,
φ)を得る(ステップS616)。
【0229】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該逆方向検索候補を
含む前記の3要素を追加し、その結果、[(0.01,風
に,φ),(0.10,動く,φ),(0.10,のは,φ),
(0.07,らの草木は枯れているのではない,φ)]をコ
ストテーブル13に格納する(ステップS617)。こ
れで、逆方向検索候補を全て処理したので(ステップS
618)、ステップS613に戻り、以下同様の動作を
繰り返し、Pos=3、X=3、Y=4の時、スコープ
S(r,3,4)が表す逆方向文字列「く動」を辞書ア
クセス手段6に転送する(ステップS610)。
【0230】辞書アクセス手段6は、図9に示す動作に
より、図5および図6に示すリバース辞書ファイル9を
検索すると、「動く」という逆方向検索候補を返送する
ので、スコープ設定手段12は、辞書アクセス手段6か
らの逆方向検索候補を受け取る(ステップS611)。
ここで、当該順方向検索候補「動くのはらの草木は枯れ
ているのではない」と異なる逆方向検索候補「動く」が
存在するので(ステップS612)、当該順方向検索候
補の示すスコープ「動くのはらの草木は枯れているので
はない」の逆方向検索候補「のは」とそれ以外のスコー
プのコストを計算し、(0.10,動く,φ)、(0.08,の
はらの草木は枯れているのではない,φ)を得る(ステ
ップS616)。
【0231】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ)]に、当該逆方向検索候補を
含む前記の2要素を追加し、その結果、[(0.01,風
に,φ),(0.10,動く,φ),(0.08,のはらの草木
は枯れているのではない,φ)]をコストテーブル13
に格納する(ステップS617)。これで、逆方向検索
候補を全て処理したので(ステップS618)、ステッ
プS613に戻り、Y=Y−1となり、その時点で、P
os=3、X=3、Y=3である。
【0232】ここで、X<Yでないので(ステップS6
14)、退避域に格納されていたコストレコード[(0.
01,風に,φ)]に、当該順方向検索候補のコストを計
算し追加し、その結果、[(0.01,風に,φ),(0.4
5,動くのは〜ではない,動くのはらの草木は枯れてい
るのではない)]をコストテーブル13に格納する(ス
テップS615)。この時点で、コストテーブル13に
は、 [(0.01,風に,φ),(0.10,動く,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.14,
のはら,φ),(0.01,の草木,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.10,
のは,φ),(0.02,らの草木,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.03,
のはらの草木,φ)] [(0.01,風に,φ),(0.38,動くのはらの草木,
φ)] [(0.01,風に,φ),(0.07,動くのはらの草木は枯
れているの,φ),(0.19,ではない,φ)] [(0.01,風に,φ),(0.07,動くのはらの草木は枯
れているの,φ),(0.05,で,φ),(0.01,はな
い,φ)] [(0.01,風に,φ),(0.38,動くのはらの草木,
φ),(0.05,は枯れているのではない,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.14,
のはら,φ),(0.07,の草木は枯れているのではな
い,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.10,
のは,φ),(0.07,らの草木は枯れているのではな
い,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.08,
のはらの草木は枯れているのではない,φ)] [(0.01,風に,φ),(0.45,動くのは〜ではない,
動くのはらの草木は枯れているのではない)] が追加される。
【0233】更に、ステップS608に戻り、全て(三
つ)の順方向検索候補を処理したので、次に、コストテ
ーブル13の1コストレコードである[(0.01,風に,
φ),(0.10,動く,φ)]を選択し、Pos=5とす
る(ステップS619)。いま、Pos(=5)<L
(=21)であるので(ステップS620)、ステップ
S602に戻る。ここで、順方向検索位置X=Pos
(=5)、逆方向検索位置Y=L(=21)とする。こ
の時点で、Pos=5、X=5、Y=21である。
【0234】次に、スコープS(s,5,21)が表す
順方向文字列「のはらの草木は枯れているのではない」
を辞書アクセス手段6に転送し(ステップS603)、
辞書アクセス手段6は、図9に示す動作により、図3お
よび図4に示す辞書ファイル8を検索すると、「の
は」、「のはら」の二つの順方向検索候補を返送するの
で、スコープ設定手段12は、辞書アクセス手段6から
の順方向検索候補を受け取る(ステップS604)。こ
こで、順方向検索候補が存在するので(ステップS60
5)、コストテーブル13を走査し、格納されているコ
ストレコードのnが最大の質問語の素片Qnの末端がP
os−1、即ち、5−1=4であるコストレコードをコ
ストテーブル13から取り出す。
【0235】その結果、該当する[(0.01,風に,
φ),(0.10,動く,φ)]なるコストレコードがコス
トテーブル13から取り出され、それに、S(s,5,
5−1)なる未知語文字列を追加する。ところが、S
(s,5,5−1)なる未知語文字列は存在しないの
で、退避域には、[(0.01,風に,φ),(0.10,動
く,φ)]が、格納され、Pos=X(=5)とする
(ステップS607)。
【0236】次に、逆方向検索位置Yを当該順方向検索
候補「のは」の末尾である6とする(ステップS60
9)。この時点で、Pos=5、X=5、Y=6であ
る。次に、スコープS(r,5,6)が表す逆方向文字
列「はの」を辞書アクセス手段6に転送し(ステップS
610)、辞書アクセス手段6は、図9に示す動作によ
り、図5および図6に示すリバース辞書ファイル9を検
索すると、「のは」という逆方向検索候補を返送するの
で、スコープ設定手段12は、辞書アクセス手段6から
の逆方向検索候補を受け取る(ステップS611)。こ
こで、当該順方向検索候補「のは」と異なる逆方向検索
候補が存在しないので(ステップS612)、逆方向検
索位置Y=Y−1とする(ステップS613)。この時
点で、Pos=5、X=5、Y=5である。
【0237】ここで、X<Yでないので(ステップS6
14)、退避域に格納されていたコストレコード[(0.
01,風に,φ),(0.10,動く,φ)]に、当該順方向
検索候補のコストを計算し追加し、その結果、[(0.0
1,風に,φ),(0.10,動く,φ),(0.10,のは,
φ)]をコストテーブル13に格納する(ステップS6
15)。そして、ステップS608に戻り、同様に、逆
方向検索位置Yを当該順方向検索候補「のはら」の末尾
である7とする(ステップS609)。この時点で、P
os=5、X=5、Y=7である。
【0238】次に、スコープS(r,5,7)が表す逆
方向文字列「らはの」を辞書アクセス手段6に転送し
(ステップS610)、辞書アクセス手段6は、図9に
示す動作により、図5および図6に示すリバース辞書フ
ァイル9を検索すると、「のはら」という逆方向検索候
補を返送するので、スコープ設定手段12は、辞書アク
セス手段6からの逆方向検索候補を受け取る(ステップ
S611)。ここで、当該順方向検索候補「のはら」と
異なる逆方向検索候補が存在しないので(ステップS6
12)、逆方向検索位置Y=Y−1とする(ステップS
613)。この時点で、Pos=5、X=5、Y=6で
ある。
【0239】次に、スコープS(r,5,6)が表す逆
方向文字列「はの」を辞書アクセス手段6に転送する
(ステップS610)、辞書アクセス手段6は、図9に
示す動作により、図5および図6に示すリバース辞書フ
ァイル9を検索すると、「のは」という逆方向検索候補
を返送するので、スコープ設定手段12は、辞書アクセ
ス手段6からの逆方向検索候補を受け取る(ステップS
611)。ここで、当該順方向検索候補「のはら」と異
なる逆方向検索候補「のは」が存在するので(ステップ
S612)、当該順方向検索候補の示すスコープ「のは
ら」の逆方向検索候補「のは」とそれ以外のスコープの
コストを計算し、(0.10,のは,φ)、(0.005,ら,
φ)を得る(ステップS616)。
【0240】次に、退避域に格納されていたコストレコ
ード[(0.01,風に,φ),(0.10,動く,φ)]に、
当該逆方向検索候補を含む前記の2要素を追加し、その
結果、[(0.01,風に,φ),(0.10,動く,φ),
(0.10,のは,φ),(0.005,ら,φ)]をコストテ
ーブル13に格納する(ステップS617)。ここで、
全ての逆方向検索候補を処理したので、ステップS61
3に戻り、Y=Y−1となり、その時点で、Pos=
5、X=5、Y=5である。
【0241】ここで、X<Yでないので(ステップS6
14)、退避域に格納されていたコストレコード[(0.
01,風に,φ),(0.10,動く,φ)]に、当該順方向
検索候補のコストを計算し追加し、その結果、[(0.0
1,風に,φ),(0.10,動く,φ),(0.14,のは
ら,φ)]をコストテーブル13に格納する(ステップ
S615)。
【0242】この時点で、コストテーブル13には、 [(0.01,風に,φ),(0.10,動く,φ),(0.14,
のはら,φ),(0.01,の草木,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.10,
のは,φ),(0.02,らの草木,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.03,
のはらの草木,φ)] [(0.01,風に,φ),(0.38,動くのはらの草木,
φ)] [(0.01,風に,φ),(0.07,動くのはらの草木は枯
れているの,φ),(0.19,ではない,φ)] [(0.01,風に,φ),(0.07,動くのはらの草木は枯
れているの,φ),(0.05,で,φ),(0.01,はな
い,φ)] [(0.01,風に,φ),(0.38,動くのはらの草木,
φ),(0.05,は枯れているのではない,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.14,
のはら,φ),(0.07,の草木は枯れているのではな
い,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.10,
のは,φ),(0.07,らの草木は枯れているのではな
い,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.08,
のはらの草木は枯れているのではない,φ)] [(0.01,風に,φ),(0.45,動くのは〜ではない,
動くのはらの草木は枯れているのではない)] [(0.01,風に,φ),(0.10,動く,φ),(0.10,
のは,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.10,
のは,φ),(0.005,ら,φ)] [(0.01,風に,φ),(0.10,動く,φ),(0.14,
のはら,φ)] が格納されていることになる。
【0243】以後、同様に、コストテーブル13中の末
尾の位置がLより小さいコストレコードを次々に処理
し、全てのコストレコードを処理した段階で(ステップ
S621)、コストテーブル13に格納されているコス
トレコードの総コストを計算し、最終的には、図19に
示すコストテーブル13を入出力手段1に転送して、ス
コープ設定手段12は動作を終了する。
【0244】〈効果〉以上に説明したパターン照合装置
の具体例3によれば、辞書ファイルの構成において、平
衡木の構造を持つB-Treeの節点ノードに部分木に含まれ
るインデックスの最小値を格納する機構を設けたことに
より、目的とするインデックスに至る経路を木の深さの
オーダに抑えることができ、辞書に数十万のインデック
スを格納したとしても、高速な検索を実現することがで
きる。
【0245】また、通常の検索に供せられる辞書ファイ
ルに加えて、当該辞書ファイルに格納されているインデ
ックスを逆順に並べ替えた新たなインデックスを格納す
るリバース辞書ファイルを具備し、質問語の順方向およ
び逆方向の検索を可能とする手段を備えたことにより、
インデックスに離散表現を含まれたとしても辞書アクセ
スの回数を増やすことなく、目的とするインデックスを
高速に検索することが可能となる。
【0246】更に、質問語のスコープの範囲の設定の組
み合わせから順方向および逆方向の検索を組み合わせて
実施することにより、複数の検索結果のコストを計算す
る手段、および、コスト計算の結果を格納するコストテ
ーブルを具備したので、質問語から検索可能な検索結果
の候補を高速に網羅的に出力することができる。つま
り、具体例1で得られる効果を踏襲し、更に高速で網羅
的な検索を効率良く実施可能とするパターン照合装置を
実現することができる。
【0247】〈利用形態〉具体例3では、質問語から想
定可能なあらゆる検索パターンをコストとともに出力す
る形態のパターン照合装置として説明したが、文書処理
装置として、出力されるコストテーブルの質問語の素片
部分を組み合わせて出力すれば、複数の可能性を網羅す
る形態素解析装置に応用することができる。
【0248】《具体例4》 〈構成〉図22は、本発明であるパターン照合装置の具
体例4の構成を示すブロック図である。
【0249】図の装置は、入出力手段1、機械翻訳装置
2、文書検索装置3、データ線4、辞書アクセス手段
6、辞書ファイル8、リバース辞書ファイル9、コスト
テーブル13、スコープ設定手段14、出力制御手段1
5からなる。
【0250】ここで、スコープ設定手段14および出力
制御手段15以外の構成については具体例3と同様であ
るため、ここでの説明は省略する。
【0251】スコープ設定手段14は、本装置に入力さ
れた文書から質問語にあたる文書素片の範囲を決定し、
その組み合わせを編集しその結果をコストテーブル13
に格納する機能を有している。また、出力制御手段15
は、コストテーブル13中の各要素のコスト、および、
コストレコードの総コストを計算し、出力条件に適合す
るデータを出力する機能を有している。
【0252】具体例4においては、具体例3が候補を絞
り込まずに全ての可能性のある候補にコストを付与して
出力する形態を採ることに対して、コスト計算方法の切
り替えを行う手段を具備し、候補決定時に行っていたコ
スト計算を保留し、全ての可能性のある候補の検索終了
時に総括してコスト計算を実施し、かつ、出力条件によ
り出力データを制御する手段を具備することにより、任
意の戦略に即した検索結果を出力する点に特徴がある。
【0253】以下、本具体例の説明では、検索対象であ
る辞書データを離散表現とし、文書テキストに照合する
最適な離散表現を検索することを目的とするパターン照
合装置を想定して説明を進める。
【0254】具体例4においては、辞書ファイル8およ
びリバース辞書ファイル9は、図2に示す具体例1と同
様の構成のものを採用する。もちろん、辞書ファイル8
とリバース辞書ファイル9は、格納する検索対象データ
に応じた機構を有すれば、異なる機構であっても構わな
いが、本具体例では、辞書ファイル8とリバース辞書フ
ァイル9は、格納されるデータの種類が異なるだけで、
機構は図2(c)に示した次数3の2−3木の構成を持
つ改良B-Treeを用いるものとして説明する。
【0255】具体例4における辞書ファイル8の登録例
として、図3および図4に示す具体例1と同様の登録例
を採用する。また、具体例4におけるリバース辞書ファ
イル8の登録例として、図5および図6に示す具体例1
と同様の登録例を採用する。
【0256】具体例4におけるコストテーブル13の構
成は、図18に示す具体例3におけるコストテーブルの
構成に準ずる。但し、図18に示すコストテーブル13
に格納されるコストレコードの定義については、図18
で示した定義に限定されるものではなく、出力制御手段
15中に、コスト計算のための定義を記述する領域を設
けて、入出力手段1を通じて任意に変更できる形態を採
っても良い。以下の説明では、便宜上、図18の定義を
採用し、506における定数値a、b、cはそれぞれ
0.1、0.5、1.0であるものとする。
【0257】〈動作〉図23および図24は、本発明で
あるパターン照合装置の具体例4におけるスコープ設定
手段14の動作を示すフローチャートである。
【0258】具体例4におけるスコープ設定手段14の
動作は、具体例3におけるスコープ設定手段12の動作
に準ずるが、具体例4におけるスコープ設定手段14に
おいては、コスト計算を実施せずに、質問語に対する可
能な検索結果の組み合わせのみを編集し出力する点が異
なる。尚、コスト計算は、後述する出力制御手段に委託
することになる。以上を鑑み、図23および図24を参
照しながら具体例4におけるスコープ設定手段14の動
作を説明する。尚、スコープは、具体例1と同様に表記
するものとする。
【0259】スコープ設定手段14は、先ず、入出力手
段1から質問語である入力文書を得て、記憶域Lに入力
文書の文字列の長さを、記憶域Posに1を格納する
(ステップS601)。次に、最初の検索のために、順
方向検索位置の記憶域Xに記憶域Posの値を、逆方向
検索位置の記憶域YにLの値を複写する(ステップS6
02)。次に、スコープS(s,X,Y)が表す順方向
文字列を、辞書アクセス手段6に転送する(ステップS
603)。
【0260】辞書アクセス手段6は、S(s,X,Y)
が表す順方向文字列をキーとして辞書ファイル8を検索
し、その検索結果を順方向検索候補としてスコープ設定
手段14に返送するので、スコープ設定手段14は、辞
書アクセス手段6からの順方向検索候補を受け取る(ス
テップS604)。ここで、順方向検索候補が存在する
かの検査を行い(ステップS605)、順方向検索候補
が存在しないならば、順方向検索位置Xを1文字分だけ
進め(Xを1だけ増加させる。即ち、X=X+1とす
る)(ステップS606)、ステップS603へ戻り、
以降の同様の動作を繰り返す。
【0261】一方、ステップS605において、順方向
検索候補が存在する場合には、コストテーブル13を走
査し、格納されているコストレコードの最大のnを持つ
質問語の素片Qnの末端がPos−1であるコストレコ
ードをコストテーブル13から取り出し、S(s,Po
s,X−1)が表す未知語文字列を取り出したそれぞれ
のコストレコードに追加し、それらを退避域に格納し、
記憶域Posに記憶域Xの値を代入する(ステップS7
01)。
【0262】次に、ステップS604で得た順方向検索
候補の全てを処理したかどうかを検査し(ステップS6
08)、未処理の順方向検索候補が存在するならば、逆
方向検索位置Yを当該順方向検索候補の末尾とする(ス
テップS609)。次に、スコープS(r,X,Y)が
表す逆方向文字列を辞書アクセス手段に転送する(ステ
ップS610)。
【0263】辞書アクセス手段6は、S(r,X,Y)
が表す逆方向文字列をキーとしてリバース辞書ファイル
9を検索し、その検索結果を逆方向検索候補としてスコ
ープ設定手段14に返送するので、スコープ設定手段1
4は、辞書アクセス手段6からの逆方向検索候補を受け
取る(ステップS611)。ここで、当該順方向検索候
補と異なる逆方向検索候補が得られたかどうかを検査し
(ステップS612)、逆方向検索候補が存在しなけれ
ば、逆方向検索位置Yを1文字分戻す、即ち、Y=Y−
1とする(ステップS613)。
【0264】更に、当該時点での順方向検索位置Xと逆
方向検索位置Yを比較し(ステップS614)、順方向
検索位置Xが逆方向検索位置Yより小さい、即ち、スコ
ープS(r,X,Y)が存在するならば、ステップS6
10に戻り、以降の動作を繰り返す。一方、ステップS
614で、順方向検索位置Xが逆方向検索位置Yより大
きい、即ち、スコープS(r,X,Y)が存在しないな
らば、ステップS607で格納された退避域の全コスト
レコードの末尾に、当該順方向検索候補を追加し、コス
トテーブル13に格納する(ステップS702)。
【0265】しかる後に、ステップS608に戻り、未
処理の順方向検索候補について同様の動作を繰り返す。
また、ステップS612の検査で、当該順方向検索候補
と異なる逆方向検索候補が存在する場合には、ステップ
S701で格納された退避域の全コストレコードの末尾
に、当該順方向検索候補が示すスコープ中の当該逆方向
検索候補とその他の要素を追加し、コストテーブル13
に格納する(ステップS617)。ここで、ステップS
611で得た全ての逆方向検索候補についての処理を実
施したかどうかの検査を行い(ステップS618)、未
処理の逆方向検索候補が存在するならば、ステップS6
17へ戻り同様の動作を繰り返す。また、ステップS6
18で全ての逆方向検索候補の処理が終了していたなら
ば、ステップS613に戻り、以降の動作を継続する。
【0266】更に、ステップS608において、順方向
検索候補の全てが処理されているならば、当該時点での
コストテーブル13を走査し、コストレコードを一つ選
択し、当該コストレコードの要素の末尾の次の位置を記
憶域Posに代入する(ステップS619)。ここで、
記憶域Pos値と記憶域Lに格納されている質問語であ
る入力文書の長さを比較し(ステップS620)、Po
sの値がLの値より小さい、即ち、当該コストレコード
中に未検索の質問語の素片が残されているならば、ステ
ップS602に戻り、以降の同様の動作を繰り返す。
【0267】また、ステップS620で、Posの値が
Lの値以上である、即ち、当該コストレコード中に未検
索の質問語の素片が残されていないならば、当該時点で
のコストテーブル13に未処理のコストレコードが存在
するかどうかを検査し(ステップS621)、未処理の
コストレコードが存在するならば、ステップS619に
戻り、別のコストレコードを選択し同様の動作を繰り返
す。また、ステップS621で全てのコストレコードの
処理が終了していれば、コストテーブル13を出力制御
手段に転送し(ステップS703)、スコープ設定手段
14は動作を終了する。
【0268】前述した具体例4におけるスコープ設定手
段14の動作の説明中にある辞書アクセス手段6の動作
は、具体例1のそれと同様である。具体例4における辞
書アクセス手段6の動作は、図9に示すフローチャート
に準ずる。
【0269】図25は、本発明であるパターン照合装置
の具体例4における出力制御手段15の動作を示すフロ
ーチャートである。
【0270】出力制御手段15は、先ず、スコープ設定
手段14が編集したコストテーブル13を受け取る(ス
テップS801)。この時点で、コストテーブル13に
格納されているそれぞれのコストレコードには、見出し
と見出しに対応する質問語の組のみが格納されており、
コスト値は格納されていない形態である。
【0271】次に、コストテーブル13からコスト値が
付与されていないコストレコードを選択する(ステップ
S802)。そして、出力制御手段15は、当該コスト
レコードに格納されている各見出し毎のコスト値を計算
し、該当する位置へ計算したコスト値を格納する(ステ
ップS803)。次に、ステップS803で計算した見
出し毎のコスト値を利用して、コストレコードの総コス
トを計算しコストレコードの該当位置へ格納する(ステ
ップS804)。
【0272】ここで、コストテーブル13中の全てのコ
ストレコードのコスト値を計算したかどうかを検査し
(ステップS805)、未計算のコストレコードが残さ
れていれば、ステップS802に戻り、以降の同様の動
作を繰り返す。ステップS805において、全てのコス
トレコードのコスト計算が完了していれば、次に、出力
制御手段15は、コストテーブル13から出力するデー
タとなる出力対象、および、出力対象を選別するための
評価対象を決定する(ステップS806)。つまり、出
力対象、評価対象の選択方法により、出力制御手段15
が出力するデータの構成が決まる。
【0273】例えば、出力対象をコストレコード、評価
対象を総コストとすれば、コストテーブル13の中か
ら、条件に合うコストレコードのみを選択して出力する
ことが可能となる。次に、出力制御手段15は、ステッ
プS806で決定した評価対象に対する出力条件となる
閾値を決定する(ステップS807)。最後に、出力制
御手段15は、コストテーブル13を走査し、ステップ
S807で設定した閾値より大きな値を持つ評価対象に
対応する出力対象をコストテーブル13から選択し(ス
テップS808)、動作を終了する。
【0274】以下、具体例3であるパターン照合装置の
動作を具体例により説明する。先ず、出力手段1が具体
例3の説明で用いた(例文2)「風に動くのはらの草木
は枯れているのではない」を入力文書として得たとす
る。ここで、辞書ファイル8には、図3および図4に示
す構成で見出しが登録されているものとし、リバース辞
書ファイル9には、図5および図6に示す構成で見出し
が登録されているものとする。
【0275】尚、具体例4におけるスコープ設定手段1
4の動作は、具体例3におけるスコープ設定手段12の
動作とほぼ同様であるので、以下の説明では、具体例3
におけるスコープ設定手段12の動作に準ずる部分はそ
の概略のみを示す。
【0276】スコープ設定手段14は、入出力手段1か
ら(例文2)を得て、 (イ)入力文書の当該Posを始点とする未知語文字列
を、コストテーブル13からPos−1まで検索が終了
しデータが格納されているコストレコードの該当位置に
追加し、その結果を退避域に格納し、Posを未知語文
字列の次の位置に移行する(ステップS601〜ステッ
プS701)。 (ロ)当該Posを始点とする順方向検索候補検索し、
検索されたそれぞれの順方向検索候補が示す範囲を持つ
入力文書のスコープの中に逆方向検索候補を探し(ステ
ップS609〜ステップS611)、 (ハ)逆方向検索候補が存在すれば、それを含む候補
を、退避域のコストレコードに付加し、コストテーブル
13に格納する(ステップS617〜ステップS61
8)。 (ニ)逆方向検索候補が存在しなければ、逆方向検索位
置を縮退して、(ロ)から繰り返す(ステップS61
3)。 (ホ)逆方向検索候補が全く存在しないことが確定すれ
ば、当該順方向検索候補を退避域のコストレコードに付
加し、コストテーブル13に格納する(ステップS70
2)。 (ヘ)コストテーブル13の任意のコストレコードから
次のPosを決定し、(イ)から繰り返す(ステップS
619〜ステップS620)。
【0277】以上の動作を経た時点でのコストテーブル
13は、以下のようになっている。 [(,風に,φ),(,動くのはらの草木は枯れている
の,φ),(,ではない,φ)] [(,風に,φ),(,動くのはらの草木は枯れている
の,φ),(,で,φ),(,はない,φ)] [(,風に,φ),(,動くのはらの草木,φ),(,
は枯れているのではない,φ)] [(,風に,φ),(,動く,φ),(,のはら,
φ),(,の草木は枯れているのではない,φ)] [(,風に,φ),(,動く,φ),(,のは,φ),
(,らの草木は枯れているのではない,φ)] [(,風に,φ),(,動く,φ),(,のはらの草木
は枯れているのではない,φ)] [(,風に,φ),(,動くのは〜ではない,動くのは
らの草木は枯れているのではない,φ)] [(,風に,φ),(,動く,φ),(,のはら,
φ),(,の草木,φ),(,は枯れているの,φ),
(,で,φ),(,はない,φ)] [(,風に,φ),(,動く,φ),(,のはら,
φ),(,の草木,φ),(,は枯れているの,φ),
(,ではない,φ)] [(,風に,φ),(,動く,φ),(,のは,φ),
(,らの草木,φ),(,は枯れているの,φ),(,
で,φ),(,はない,φ)] [(,風に,φ),(,動く,φ),(,のは,φ),
(,らの草木,φ),(,は枯れているの,φ),(,
ではない,φ)] [(,風に,φ),(,動く,φ),(,のはらの草
木,φ),(,は枯れているの,φ),(,で,φ),
(,はない,φ)] [(,風に,φ),(,動く,φ),(,のはらの草
木,φ),(,は枯れているの,φ),(,ではない,
φ)] [(,風に,φ),(,動くのはらの草木,φ),(,
は枯れているの,φ),(,で,φ),(,はない,
φ)] [(,風に,φ),(,動くのはらの草木,φ),(,
は枯れているの,φ),(,ではない,φ)] [(,風に,φ),(,動く,φ),(,のは,φ),
(,らの草木は枯れているの,φ),(,で,
φ),(,はない,φ)] [(,風に,φ),(,動く,φ),(,のは,φ),
(,らの草木は枯れているの,φ),(,ではない,
φ)] [(,風に,φ),(,動く,φ),(,のは,φ),
(,ら,φ),(,の草木は枯れているの,φ),(,
で,φ),(,はない,φ)] [(,風に,φ),(,動く,φ),(,のは,φ),
(,ら,φ),(,の草木は枯れているの,φ),(,
ではない,φ)] [(,風に,φ),(,動く,φ),(,のはら,
φ),(,の草木は枯れているの,φ),(,で,
φ),(,はない,φ)] [(,風に,φ),(,動く,φ),(,のはら,
φ),(,の草木は枯れているの,φ),(,ではな
い,φ)]
【0278】スコープ設定手段14は、上記の状態のコ
ストテーブル13を出力制御手段15に転送し(ステッ
プS703)、動作を終了する。次に、出力制御手段1
5は、先ず、スコープ設定手段14が編集した上記の状
態にあるコストテーブル13を受け取る(ステップS8
01)。そして、コストテーブル13からコスト値が付
与されていないコストレコード[(,風に,φ),(,
動くのはらの草木は枯れているの,φ),(,ではな
い,φ)]を選択する(ステップS802)。次に、出
力制御手段15は、当該コストレコードに格納されてい
る各見出し毎のコスト値を計算し、該当する位置へ計算
したコスト値を格納する(ステップS803)。
【0279】具体的には、図18に示す定義によって以
下のようにコストが計算される。 ・ステップS802で選択したコストレコード[(,風
に,φ),(,動くのはらの草木は枯れているの,
φ),(,ではない,φ)]から、I1=Q1=“風
に”、I2=Q2=“動くのはらの草木は枯れている
の”、I3=Q3=“ではない”となる。 ・1番目の見出しに対するコストC1は、C1=L(Q
1)*W(K(I1))/Lt=L(風に)*W(Unkn
own)/Lt=2*0.1/21≒0.01となり、第
1番目の要素は、(0.01,風に,φ)となる。 ・2番目の見出しに対するコストC2は、C2=L(Q
2)*W(K(I2))/Lt=L(動くのはらの草木
は枯れているの)*W(Unknown)/Lt=15*0.
1/21≒0.07となり、第2番目の要素は、(0.0
7,動くのはらの草木は枯れているの,φ)となる。 ・3番目の見出しに対するコストC3は、C3=L(Q
3)*W(K(I3))/Lt=L(ではない)*W
(Continuity)/Lt=4*1.0/21≒0.19と
なり、第3番目の要素は、(0.19,ではない,φ)とな
る。
【0280】次に、上記で計算した見出し毎のコスト値
を利用して、コストレコードの総コストを計算すると、
Ct=C1+C2+C3=0.01+0.07+0.19=0.27とな
り、この値を当該コストレコードの該当位置へ格納する
ことにより、当該コストレコードは、[0.27,(0.01,
風に,φ),(0.07,動くのはらの草木は枯れている
の,φ),(0.19,ではない,φ)]となる(ステップ
S804)。以下、同様に全てのコストレコードのコス
トを計算して該当位置へ格納すると(ステップS80
5)、コストテーブル13は、図19に示す状態にな
る。
【0281】次に、出力制御手段15は、コストテーブ
ル13から出力するデータとなる出力対象、および、出
力対象を選別するための評価対象を決定する。例えば、
コストテーブル中の見出しを出力対象に、そのコスト値
を評価対象にし(ステップS806)、閾値を0.1に
設定する(ステップS807)と、出力制御手段15
は、コスト値>0.1である「ではない」、「動くのは
らの草木」、「のはら」、「動くのは〜ではない」の4
つの見出しを出力する(ステップS808)。
【0282】また、例えば、コストテーブル中の質問語
を出力対象に、コストレコードの総コストを評価対象に
し(ステップS806)、閾値を0.5に設定する(ス
テップS807)と、出力制御手段15は、総コスト値
>0.5である「風に/動くのはらの草木/は枯れてい
るの/ではない」という質問語の素片を出力する(ステ
ップS808)。
【0283】〈効果〉以上に説明したパターン照合装置
の具体例4によれば、辞書ファイルの構成において、平
衡木の構造を持つB-Treeの節点ノードの部分木に含まれ
るインデックスの最小値を格納する機構を設けたことに
より、目的とするインデックスに至る経路を木の深さの
オーダに抑えることができ、辞書に数十万のインデック
スを格納したとしても、高速な検索を実現することがで
きる。
【0284】また、通常の検索に供せられる辞書ファイ
ルに加えて、当該辞書ファイルに格納されているインデ
ックスを逆順に並べ替えた新たなインデックスを格納す
るリバース辞書ファイルを具備し、質問語の順方向およ
び逆方向の検索を可能とする手段を備えたことにより、
インデックスに離散表現を含めたとしても辞書アクセス
の回数を増やすことなく、目的とするインデックスを高
速に検索することが可能となる。
【0285】更に、質問語のスコープの範囲の設定の組
み合わせから順方向および逆方向の検索を組み合わせて
実施することにより複数の検索結果を検索する手段、お
よび、複数の検索結果を保存するコストテーブルを具備
したので、質問語から検索可能な検索結果の候補を高速
に網羅的に出力することができる。
【0286】また、コストテーブルに保存した複数の検
索結果に対して、任意の方法に従いコストを付与する手
段、および、付与されたコストを手がかりに出力データ
を編集する手段を設けたので、目的に応じた検索データ
を高速に網羅的に出力することができる。つまり、具体
例1、具体例3で得られる効果を踏襲し、更に高速で網
羅的な検索を効率良く実施可能とするパターン照合装置
を実現することができる。
【0287】〈利用形態〉具体例4では、評価対象をコ
スト値とし、それと閾値の比較関係により検索結果を編
集する形態のパターン照合装置として説明したが、コス
ト値の算出方法や出力条件の設定を限定することなく任
意のものとすることにより、文書処理装置として、例え
ば、重要語のみを出力する情報フィルタ装置や、見出し
の関連用語や関係の情報を出力するシソーラス装置等に
応用することができる。
【図面の簡単な説明】
【図1】本発明のパターン照合装置の具体例1を示す構
成図である。
【図2】本発明のパターン照合装置における辞書ファイ
ルおよびリバース辞書ファイルの構成例を示す説明図で
ある。
【図3】辞書ファイルの構成例を示す説明図(その1)
である。
【図4】辞書ファイルの構成例を示す説明図(その2)
である。
【図5】リバース辞書ファイルの構成例を示す説明図
(その1)である。
【図6】リバース辞書ファイルの構成例を示す説明図
(その2)である。
【図7】本発明のパターン照合装置の具体例1における
スコープ設定手段の動作を示すフローチャート(その
1)である。
【図8】本発明のパターン照合装置の具体例1における
スコープ設定手段の動作を示すフローチャート(その
2)である。
【図9】本発明のパターン照合装置の具体例1における
辞書アクセス手段の動作を示すフローチャートである。
【図10】本発明のパターン照合装置の具体例1におけ
る候補選択手段の動作を示すフローチャートである。
【図11】本発明のパターン照合装置の具体例2を示す
構成図である。
【図12】本発明のパターン照合装置の具体例2におけ
るリバース辞書ファイルの登録例を示す図(その1)で
ある。
【図13】本発明のパターン照合装置の具体例2におけ
るリバース辞書ファイルの登録例を示す図(その2)で
ある。
【図14】本発明のパターン照合装置の具体例2におけ
るスコープ設定手段の動作を示すフローチャート(その
1)である。
【図15】本発明のパターン照合装置の具体例2におけ
るスコープ設定手段の動作を示すフローチャート(その
2)である。
【図16】本発明のパターン照合装置の具体例2におけ
るリバース辞書生成手段の動作を示すフローチャートで
ある。
【図17】本発明のパターン照合装置の具体例3を示す
構成図である。
【図18】本発明のパターン照合装置の具体例3におけ
るコストテーブルの構成説明図である。
【図19】本発明のパターン照合装置の具体例3におけ
るコストテーブルの一例を示す説明図である。
【図20】本発明のパターン照合装置の具体例3におけ
るスコープ設定手段の動作を示すフローチャート(その
1)である。
【図21】本発明のパターン照合装置の具体例3におけ
るスコープ設定手段の動作を示すフローチャート(その
2)である。
【図22】本発明のパターン照合装置の具体例4を示す
構成図である。
【図23】本発明のパターン照合装置の具体例4におけ
るスコープ設定手段の動作を示すフローチャート(その
1)である。
【図24】本発明のパターン照合装置の具体例4におけ
るスコープ設定手段の動作を示すフローチャート(その
2)である。
【図25】本発明のパターン照合装置の具体例4におけ
る出力制御手段の動作を示すフローチャートである。
【符号の説明】
5、10、12、14 スコープ設定手段 6 辞書アクセス手段 7 候補選択手段 8 辞書ファイル 9 リバース辞書ファイル 11 リバース辞書生成手段 13 コストテーブル 15 出力制御手段

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 与えられた質問語に対して、質問範囲を
    限定した順方向と逆方向の文字列からなる質問語を出力
    するスコープ設定手段と、 不確定な可変長の文字列の混在を想定した表記を含んで
    構成される索引情報を格納する辞書と、 任意の文字列の順序を逆転し、かつ、当該文字列中に不
    確定な可変長の文字列の混在を想定した表記を含んで構
    成される索引情報を格納するリバース辞書と、 前記スコープ設定手段により、質問範囲が限定された質
    問語に適合する索引情報を前記辞書およびリバース辞書
    から検索する辞書アクセス手段と、 前記辞書アクセス手段で検索された索引情報のうち、前
    記辞書から得られた索引情報の文字列と、前記リバース
    辞書から得られた索引情報の逆方向の文字列が一致し、
    かつ、これら文字列が、前記与えられた質問語に少なく
    とも部分的に一致している索引情報を検索候補として出
    力する候補選択手段とを備えたことを特徴とするパター
    ン照合装置。
  2. 【請求項2】 与えられた質問語に対して、質問範囲を
    限定した順方向と逆方向の文字列からなる質問語を出力
    するスコープ設定手段と、 不確定な可変長の文字列の混在を想定した表記を含んで
    構成される索引情報と、当該索引情報に一意に対応する
    データを格納する辞書と、 任意の文字列の順序を逆転し、かつ、当該文字列中に不
    確定な可変長の文字列の混在を想定した表記を含んで構
    成される索引情報と、当該索引情報に一意に対応するデ
    ータを格納するリバース辞書と、 前記スコープ設定手段により、質問範囲が限定された質
    問語に適合する索引情報を前記辞書およびリバース辞書
    から検索する辞書アクセス手段と、 前記辞書アクセス手段で検索された索引情報のうち、前
    記辞書から得られた索引情報の文字列と、前記リバース
    辞書から得られた索引情報の逆方向の文字列が一致し、
    かつ、これら文字列が、前記与えられた質問語に少なく
    とも部分的に一致している索引情報に対応するデータを
    検索候補として出力する候補選択手段とを備えたことを
    特徴とする文書処理装置。
  3. 【請求項3】 請求項1に記載のパターン照合装置にお
    いて、 辞書アクセス手段が、辞書で質問語に適合した索引情報
    を出力した場合、当該索引情報の文字列の順序を逆転し
    てリバース辞書の索引情報を作成するリバース辞書生成
    手段を設けたことを特徴とするパターン照合装置。
  4. 【請求項4】 請求項1または3に記載のパターン照合
    装置において、 不確定な可変長の文字列の混在を想定した表記部分を質
    問語から補い、かつ、補う文字列の長さが最も小さい索
    引情報を選択する候補選択手段を備えたことを特徴とす
    るパターン照合装置。
  5. 【請求項5】 与えられた質問語に対して、質問範囲を
    限定するスコープ設定手段と、 不確定な可変長の文字列の混在を想定した表記を含んで
    構成される索引情報を格納する辞書と、 任意の文字列の順序を逆転し、かつ、当該文字列中に不
    確定な可変長の文字列の混在を想定した表記を含んで構
    成される索引情報を格納するリバース辞書と、 前記スコープ設定手段により、質問範囲が限定された質
    問語に適合する索引情報を前記辞書およびリバース辞書
    から検索する辞書アクセス手段とを備えると共に、 前記スコープ設定手段は、 前記辞書アクセス手段で検索された全ての索引情報に対
    して、各索引情報に対応した値であるコストを算出する
    よう構成されたことを特徴とするパターン照合装置。
  6. 【請求項6】 与えられた入力文に対して、質問範囲を
    限定した質問語を設定するスコープ設定手段と、 不確定な可変長の文字列の混在を想定した表記を含んで
    構成される索引情報を格納する辞書と、 任意の文字列の順序を逆転し、かつ、当該文字列中に不
    確定な可変長の文字列の混在を想定した表記を含んで構
    成される索引情報を格納するリバース辞書と、 前記スコープ設定手段で設定された質問語に適合する索
    引情報を前記辞書およびリバース辞書から検索する辞書
    アクセス手段とを備えると共に、 前記スコープ設定手段は、 前記辞書アクセス手段で検索された全ての索引情報を形
    態素解析の候補として出力するよう構成されたことを特
    徴とする文書処理装置。
  7. 【請求項7】 請求項6に記載の文書処理装置におい
    て、 辞書アクセス手段で検索された全ての索引情報に対し
    て、各索引情報に対応した値であるコストを算出して出
    力するよう構成されたことを特徴とする文書処理装置。
  8. 【請求項8】 与えられた質問語に対して、質問範囲を
    限定するスコープ設定手段と、 不確定な可変長の文字列の混在を想定した表記を含んで
    構成される索引情報を格納する辞書と、 任意の文字列の順序を逆転し、かつ、当該文字列中に不
    確定な可変長の文字列の混在を想定した表記を含んで構
    成される索引情報を格納するリバース辞書と、 前記スコープ設定手段により、質問範囲が限定された質
    問語に適合する索引情報を前記辞書およびリバース辞書
    から検索する辞書アクセス手段と、 前記辞書アクセス手段で検索された全ての索引情報に対
    して、各索引情報に対応した値であるコストを算出する
    と共に、当該コストに基づき予め定められた条件に適合
    する索引情報を出力する出力制御手段を備えたことを特
    徴とするパターン照合装置。
  9. 【請求項9】 与えられた質問語に対して、質問範囲を
    限定するスコープ設定手段と、 不確定な可変長の文字列の混在を想定した表記を含んで
    構成される索引情報を格納する辞書と、 任意の文字列の順序を逆転し、かつ、当該文字列中に不
    確定な可変長の文字列の混在を想定した表記を含んで構
    成される索引情報を格納するリバース辞書と、 前記スコープ設定手段により、質問範囲が限定された質
    問語に適合する索引情報を前記辞書およびリバース辞書
    から検索する辞書アクセス手段と、 前記辞書アクセス手段で検索された全ての索引情報に対
    して、各索引情報に対応した値であるコストを算出する
    と共に、前記与えられた質問語から想定される全ての索
    引情報の組み合わせから、前記コストに基づき予め定め
    られた条件に適合する索引情報の組み合わせを出力する
    出力制御手段を備えたことを特徴とするパターン照合装
    置。
  10. 【請求項10】 与えられた質問語に対して、質問範囲
    を限定するスコープ設定手段と、 不確定な可変長の文字列の混在を想定した表記を含んで
    構成される索引情報と、当該索引情報に一意に対応する
    データとを格納する辞書と、 任意の文字列の順序を逆転し、かつ、当該文字列中に不
    確定な可変長の文字列の混在を想定した表記を含んで構
    成される索引情報と、当該索引情報に一意に対応するデ
    ータとを格納するリバース辞書と、 前記スコープ設定手段により、質問範囲が限定された質
    問語に適合する索引情報を前記辞書およびリバース辞書
    から検索する辞書アクセス手段と、 前記辞書アクセス手段で検索された全ての索引情報に対
    して、各索引情報に対応した値であるコストを算出する
    と共に、当該コストに基づき予め定められた条件に適合
    する索引情報のデータを出力する出力制御手段を備えた
    ことを特徴とする文書処理装置。
  11. 【請求項11】 請求項5、8、9のいずれかに記載の
    パターン照合装置において、 辞書アクセス手段が、辞書で質問語に適合した索引情報
    を出力した場合、当該索引情報の文字列の順序を逆転し
    てリバース辞書の索引情報を作成するリバース辞書生成
    手段を設けたことを特徴とするパターン照合装置。
  12. 【請求項12】 請求項1、3、4、5、8、9、11
    のいずれかに記載のパターン照合装置において、 辞書およびリバース辞書は、 部分木を指示するポインタと、部分木に含まれる索引情
    報の最小値を格納する領域と、部分木に含まれる索引情
    報の部分的な重複情報を格納する領域との組を集合とし
    て持つ節点ノードと、 索引情報を格納する領域と索引情報に関連するデータを
    格納する領域の集合とを持つ葉ノードを備え、 全ての節点ノードは、少なくとも二つ以上の最大数の根
    から葉ノードへの経路は全て等しい距離である平衡探索
    木であるB-Treeの特徴を有すると共に、 前記部分木の最小値を格納する領域には、木構造の配置
    方向によって一意に決まる順序規則を満足する部分木の
    最小索引情報を格納するよう構成したことを特徴とする
    パターン照合装置。
JP36653897A 1997-12-24 1997-12-24 パターン照合装置及び文書処理装置 Expired - Fee Related JP3501267B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36653897A JP3501267B2 (ja) 1997-12-24 1997-12-24 パターン照合装置及び文書処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36653897A JP3501267B2 (ja) 1997-12-24 1997-12-24 パターン照合装置及び文書処理装置

Publications (2)

Publication Number Publication Date
JPH11184893A true JPH11184893A (ja) 1999-07-09
JP3501267B2 JP3501267B2 (ja) 2004-03-02

Family

ID=18487042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36653897A Expired - Fee Related JP3501267B2 (ja) 1997-12-24 1997-12-24 パターン照合装置及び文書処理装置

Country Status (1)

Country Link
JP (1) JP3501267B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274545A (ja) * 1993-03-23 1994-09-30 Nec Software Ltd 検索方式
JPH07296005A (ja) * 1994-04-25 1995-11-10 Nippon Telegr & Teleph Corp <Ntt> 日本語テキスト登録・検索装置
JPH0816617A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd 文書検索方法及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274545A (ja) * 1993-03-23 1994-09-30 Nec Software Ltd 検索方式
JPH07296005A (ja) * 1994-04-25 1995-11-10 Nippon Telegr & Teleph Corp <Ntt> 日本語テキスト登録・検索装置
JPH0816617A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd 文書検索方法及び装置

Also Published As

Publication number Publication date
JP3501267B2 (ja) 2004-03-02

Similar Documents

Publication Publication Date Title
US10055439B2 (en) Fast, scalable dictionary construction and maintenance
Apostolico The myriad virtues of subword trees
US6564211B1 (en) Fast flexible search engine for longest prefix match
JP5376163B2 (ja) 文書管理・検索システムおよび文書の管理・検索方法
US7689588B2 (en) Method of syntactic pattern recognition of sequences
KR100638695B1 (ko) 구조화 문서의 데이터를 검색하는 장치 및 방법
CN110795526B (zh) 一种用于检索系统的数学公式索引创建方法与系统
US6735600B1 (en) Editing protocol for flexible search engines
Belazzougui et al. Representing the suffix tree with the CDAWG
Jansson et al. Linked dynamic tries with applications to LZ-compression in sublinear time and space
Takagi et al. Linear-size CDAWG: New repetition-aware indexing and grammar compression
Brodal et al. Cache-oblivious string dictionaries
Fischer et al. Deterministic sparse suffix sorting on rewritable texts
Cordova et al. Simple and efficient fully-functional succinct trees
Didier et al. Character sets of strings
CN117763077A (zh) 数据查询方法及装置
Funakoshi et al. Minimal unique palindromic substrings after single-character substitution
Hasan et al. Approximate string matching algorithms: a brief survey and comparison
Sumiyoshi et al. Faster and simpler online/sliding rightmost Lempel-Ziv factorizations
JPH11184893A (ja) パターン照合装置及び文書処理装置
Inenaga Towards a complete perspective on labeled tree indexing: New size bounds, efficient constructions, and beyond
Monostori et al. Efficiency of data structures for detecting overlaps in digital documents
KR100441346B1 (ko) 엑스엠엘 문서의 저장방법 및 엑스엠엘 문서 또는 인덱스노드 탐색방법
Jo et al. Space-efficient data structure for next/previous larger/smaller value queries
JP2006146355A (ja) 類似文書検索方法および装置

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031126

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081212

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081212

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091212

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees