(57)【特許請求の範囲】
【請求項１】
ある定められた文字セットに含まれる文字のＮ個（一定個数）以下の並びのうち相異なるものを記号として有限個登録した記号データに対して機械検索可能な記号辞書を作成する方法であって、
記号辞書作成の第１ステップでは、記号被覆手段が前記記号データ中の各記号に対して、前記文字セット中の各文字について、当該１文字の文字列だけからなる初期状態のメタ記号として登録した、初期状態のメタ記号辞書を用いた極大単語切り出し法（ある記号Ｓのさまざまな部分文字列に文字列照合するメタ記号辞書中のメタ記号のうちで、照合文字区間が、他のどの照合文字列にも、完全には含まれない照合だけを取り出す単語切り出し方法）によって照合するメタ記号を検索し、被覆結果（すなわち被覆対象の前記記号中の部分文字列と照合するメタ記号と照合開始文字位置の対を要素とし、前記記号中のどの位置の文字も、被覆結果中のいずれかの前記記号の部分文字列に含まれるような集合）を求め、前記被覆結果をメタ記号集計手段が集計して、前記記号データ中での各メタ記号の総出現度数をメタ記号度数表に蓄積し、メタ記号辞書更新判定手段がメタ記号度数表を参照し、前記メタ記号度数表中の度数が０のメタ記号を削除し、度数が記号内容で定まる所定の定数以上であるものについて、その末尾にメタ記号辞書中の一文字の各メタ記号に対して、その一文字を追加したメタ記号を追加し、
記号辞書作成の第２ステップでは、前記記号被覆手段が前記記号データ中の各記号に対して、現時点のメタ記号辞書を用いた前記極大単語切り出し法によって照合するメタ記号を検索して被覆結果を求め、この被覆結果をメタ記号集計手段が集計して、各メタ記号の前記記号データ中での総出現度数をメタ記号度数表に蓄積し、メタ記号辞書更新判定手段が前記メタ記号度数表を参照し、度数が記号データ内容と第２ステップの繰り返し回数で決まる所定の定数以上であるものについて、末尾に、定められた文字セット中の任意の一文字を追加するとともに、メタ記号辞書更新判定手段におけるメタ記号の追加と削除がまったくない場合に停止する停止条件を満足するまで、前記第２ステップを繰り返し行い、
記号辞書構築の第３ステップでは、前記メタ記号辞書更新判定手段が前記メタ記号度数表を参照し、メタ記号度数表中の度数が所定の定数未満の、２文字以上のメタ記号の削除を行い、
記号辞書構築の第４ステップでは、前記記号被覆手段が第３ステップで算出した前記メタ記号辞書を用いて前記記号データに対して前記極大単語切り出し法によって被覆結果を求め、メタ記号出現情報作成手段が前記被覆結果から各メタ記号が出現する記号の番号と出現文字位置とを記録したメタ記号出現情報を算出し、
記号辞書作成の第５ステップでは、記号辞書作成手段が、前記メタ記号辞書と前記メタ記号出現情報とから、メタ記号情報とメタ記号出現情報とを格納した、機械検索可能な記号辞書を作成することを特徴とする記号辞書作成方法。
【請求項２】
請求項１記載の記号辞書作成方法によって作成されたメタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって完全一致検索（すなわち質問文字列と同一の記号の検索）する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆結果（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合）を求め、被覆結果がない（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合がない）場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を作業域に格納し、記号辞書検索の第２ステップでは、記号番号集合算定手段が、前記記号辞書中のメタ記号出現情報を検索して、前記被覆結果中の全ての要素に共通して含まれる記号番号（高々１つ）があれば、検索結果として出力して検索処理を終了し、前記被覆結果中の全ての要素に共通して含まれる記号番号がなければ検索結果なしとして検索処理を終了することを特徴とする記号辞書検索方法。
【請求項３】
請求項１記載の記号辞書作成方法によって作成されたメタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって前方一致検索（すなわち質問文字列を先頭部分に持つ全ての記号の検索）する方法であって、記号辞書検索の第１ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆結果（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合）を求め、被覆結果がない（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合がない）場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第２ステップでは、右延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最右部分文字列（すなわち、質問文字列の第ｊ文字（１≦ｊ≦｜Ｑ｜）から最終文字までの部分文字列）Ｒの右延長メタ記号（すなわち文字列Ｒを先頭部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ,｜Ｒ｜＋ｊ）を前記被覆結果に追加して記録し、記号辞書検索の第３ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の右延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力することを特徴とする記号辞書検索方法。
【請求項４】
請求項１記載の記号辞書作成方法によって作成されたメタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって後方一致検索（すなわち質問文字列を末尾部分に持つ全ての記号の検索）する方法であって、記号辞書検索の第１ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆結果（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合）を求め、被覆結果がない（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合がない）場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第２ステップでは、左延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が｜Ｑ｜＋１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最左部分文字列（すなわち、質問文字列の第１文字から第ｊ文字（１≦ｊ≦｜Ｑ｜）までの部分文字列）Ｌの左延長メタ記号（すなわち文字列Ｌを末尾部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ＋１−｜Ｌ｜，ｊ＋１）を前記被覆結果に追加して記録し、記号辞書検索の第３ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の左延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力することを特徴とする記号辞書検索方法。
【請求項５】
請求項１記載の記号辞書作成方法によって作成されたメタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって中間一致検索（すなわち質問文字列を含む全ての記号の検索）する方法であって、記号辞書検索の第１ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆結果（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合）を求め、被覆結果がない（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合がない）場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第２ステップでは、右延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最右部分文字列（すなわち、質問文字列の第ｊ文字（１≦ｊ≦｜Ｑ｜）から最終文字までの部分文字列）Ｒの右延長メタ記号（すなわち文字列Ｒを先頭部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ,｜Ｒ｜＋ｊ）を前記被覆結果に追加して記録し、記号辞書検索の第３ステップでは、左延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が｜Ｑ｜＋１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最左部分文字列（すなわち、質問文字列の第１文字から第ｊ文字（１≦ｊ≦｜Ｑ｜）までの部分文字列）Ｌの左延長メタ記号（すなわち文字列Ｌを末尾部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ＋１−｜Ｌ｜，ｊ＋１）を前記被覆結果に追加して記録し、記号辞書検索の第４ステップでは、両延長メタ記号算定手段が前記メタ記号情報を検索して、Ｑの両延長メタ記号（すなわち文字列Ｑを第ｊ文字から第ｊ＋｜Ｑ｜文字の部分（１＜ｊ）に含むメタ記号）Ｘを全て検索して、要素（Ｘ，１−ｊ，１−ｊ＋｜Ｘ｜）を前記被覆結果に追加して記録し、記号辞書検索の第５ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力することを特徴とする記号辞書検索方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子化されて蓄積された記号情報を、計算機を利用して管理・検索する、データベース装置や文書検索装置等に使用される機械検索可能な記号辞書の作成と検索に関するものである。
【０００２】
【従来の技術】
近年、ワードプロセッサやパーソナルコンピュータの普及、ＣＤ−ＲＯＭ等の大容量かつ低価格な記憶媒体の普及、イーサネットに代表されるネットワークの発達により、リレーショナルデータベースや全文検索データベース等のデータベースシステムが実用化され、広く利用されるようになってきた。
その中で、人名，地名，組織名，住所，分類コード，部品コード等、数文字〜数百文字程度の比較的短い文字列を「記号」として扱い、記号のＣＳＶリスト（カンマ「，」によって連結された記号の列で、例えば取引き会社名のフィールドとして「森下電器産業，森下通信工業，九州森下電器」など）をデータベースの１項目（フィールド）に格納し、このフィールドに対して、記号単位の完全一致照合，前方一致照合，後方一致照合，中間一致照合（部分一致照合，任意一致照合とも言う）によるレコードの検索（前方一致照合の例では「取引き会社名フィールドに『森下』で始まる記号を含むレコードを検索せよ」といった条件の検索）を高速に行うことが求められている。
【０００３】
上記の４種類の照合方法のうち、完全一致照合，および前方一致照合のみ行えれば十分である用途には、「アルゴリズム第２巻（Ｒ．セジウィック著，野下浩平他訳，近代科学社，１９９２年刊，ＩＳＢＮ４−７６４９−０１８９−７，５２頁〜７２頁）」や「アルゴリズムとデータ構造ハンドブック（Ｇ．Ｈ．Ｇｏｎｎｅｔ著，玄  光男他訳，啓学出版，１９８７年刊，ＩＳＢＮ４−７６６５−０３２６−０，１１１頁〜１２２頁）」等の成書に記述されているＴＲＩＥ（基数探索木とも呼ぶ）というデータ構造を使用すれば、効率のよい検索処理が実現できる。これに加えて後方一致照合が必要な場合には、記号の文字順序を反転させたデータに対してＴＲＩＥを作成し、検索すればよい。
【０００４】
中間一致照合をも行う必要がある場合には、ＴＲＩＥでは効率的な検索処理は困難で、従来は、例えば特開平３−４２７７４号広報に開示されているような方法が用いられていた。
【０００５】
この方法では、記号辞書作成の際には、記号の文字列を文字単位に分割し、文字毎に、記号の番号と、記号中での当該文字の出現文字位置の対を記録した辞書情報を作成し、記号辞書検索の際には、質問文字列を文字単位に分解し、各文字に対応する辞書情報を検索して、記号番号が同一で、出現文字位置が連続する記号番号の集合を検索結果として出力する。
【０００６】
しかしながら、上記の従来の記号辞書作成方法では、記号の種類が数万種類以上に達する場合には、作成する記号辞書ファイルが検索対象の記号データの２倍以上の大きさになり、使用できる記憶装置の容量に制約のある場合に実現が困難である、という課題があった。
【０００７】
また、上記の従来の記号辞書検索方法では、文字列が長く、高頻出の文字を多数含む記号を検索する場合には、記号辞書から検索すべきデータ量が多くなり、検索速度が低下するという課題があった。
【０００８】
この従来の記号辞書検索方法の欠点は、記号辞書の記録を、１文字単位ではなく、２文字以上のＮ文字連鎖について行うことによってある程度緩和することが可能だが、その場合でも、例えば「１９９８０００００１２３Ａ」のような、先頭に年度を記述し、多数桁の整数値で、ほとんどの記号の先頭部分数桁が０の連続であるような記号を多数集めた記号データを検索するような場合には、先頭の１０文字以上が一致する記号が数多く存在するため、Ｎ文字連続のＮが２〜４程度である場合には、やはり記号辞書から検索すべきデータ量が多くなり、検索速度が低下するという課題があった。
【０００９】
さらに、文字連鎖数のＮを大きくすると、出現するＮ文字連鎖の種類が急激に増加し、記号辞書の作成が困難になり、また作成した記号辞書の容量も増加するという課題があった。また、この従来の記号辞書検索方法では、文字列が長く、高頻出の文字を多数含む記号を検索する場合には、完全一致検索が最も処理時間がかかるため、完全一致照合が質問の大部分を占めるような用途では、平均検索速度が低下するという課題があった。
【００１０】
【発明が解決しようとする課題】
このように、上記の従来の記号辞書作成方法では、作成する記号辞書ファイルが検索対象の記号データの２倍以上の大きさになり、使用できる記憶装置の容量に制約のある場合に実現が困難である、という課題があった。
【００１１】
また、上記の従来の記号辞書検索方法では、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合には、記号辞書から検索すべきデータ量が多くなり、検索速度が低下するという課題があった。
【００１２】
さらに、文字連鎖数Ｎを大きくすると、出現するＮ文字連鎖の種類が急激に増加し、記号辞書の作成が困難になり、また作成した記号辞書の容量も増加するという課題があった。
【００１３】
本発明の記号辞書作成方法は、記号データ中の記号を被覆する、記号より短い部分文字列の集合である「メタ記号」と呼ぶ文字列（いわゆる記号）を集めたメタ記号辞書を自動的に作成し、このメタ記号辞書中のメタ記号で記号データ中の各記号を被覆し、各記号がどのように被覆されたか、という情報を、各メタ記号毎に記録したメタ記号出現情報を作成することで、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成を可能にし、本発明の記号辞書検索方法は、質問文字列を、記号辞書に含まれるメタ記号辞書を検索してメタ記号で被覆し、被覆結果に左，右，両延長メタ記号の検索結果を追加し、質問文字列あるいはその左，右，両延長文字列を被覆する被覆結果中の要素集合毎に、共通して含まれる記号番号集合を求めることにより、中間一致照合まで含めた高速な検索が可能で、しかも完全一致照合が質問の大部分を占めるような用途でも、平均検索速度が低下しない記号検索を可能にするものである。
【００１４】
【課題を解決するための手段】
この目的を達成するため、本発明の第１の様態による記号辞書作成方法は、記号データ中の各記号を、メタ記号辞書を検索して、極大単語切り出し法などの切り出し手法によって被覆結果を求める、記号被覆手段と、被覆結果を集計するメタ記号集計手段と、記号データ中での各メタ記号の総出現度数を蓄積するメタ記号度数表と、メタ記号度数表を参照し、前記メタ記号度数表中の度数が０のメタ記号を削除し、度数が記号内容で定まる所定の定数以上であるものについて、その末尾にメタ記号辞書中の一文字の各メタ記号に対して、その一文字を追加したメタ記号を追加し、また、停止条件を満足するか否かを判定するメタ記号辞書更新判定手段と、被覆結果から各メタ記号が出現する記号の番号と出現文字位置とを記録したメタ記号出現情報を算出するメタ記号出現情報作成手段と、メタ記号辞書とメタ記号出現情報とから、機械検索可能な記号辞書を作成する記号辞書作成手段とを有することにより、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成を可能にするという効果を奏するものである。
【００１５】
また、本発明の第２の様態による、完全一致照合の記号辞書検索方法は、記号辞書中のメタ記号辞書を検索し、検索条件である質問文字列に対して、重複最長一致単語切り出し法によって被覆結果を求める質問文字列被覆手段と、前記記号辞書中のメタ記号出現情報を検索し、第１ステップで求めた被覆結果中の各要素に対して、当該メタ記号を当該位置に含む記号番号の集合を求めるメタ記号出現情報検索手段と、被覆結果中の全要素について、対応する記号番号集合の共通部分を求め、求めた共通部分が空でないなら、その要素である記号番号を検索結果として出力して検索処理を終了し、空集合ならば検索結果なしとして検索処理を終了する記号番号算定手段とを有することにより、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、高速な完全一致照合による記号辞書検索が可能になるという効果を奏するものである。
【００１６】
また、本発明の第３の様態による、前方一致照合の記号辞書検索方法は、前記記号辞書中のメタ記号辞書を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆を求め、被覆がない場合には、検索結果なしとして検索処理を終了し、被覆がある場合には被覆結果を記録する質問文字列被覆手段と、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最右部分文字列（すなわち、質問文字列の第ｊ文字（１≦ｊ≦｜Ｑ｜）から最終文字までの部分文字列）Ｒの右延長メタ記号（すなわち文字列Ｒを先頭部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ，｜Ｒ｜＋ｊ）を前記被覆結果に追加して記録する右延長メタ記号算定手段と、前記質問文字列、またはその任意の右延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力する記号番号集合算定手段とを有することにより、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、高速な前方一致照合による記号辞書検索が可能になるという効果を奏するものである。
【００１７】
また、本発明の第４の様態による、後方一致照合の記号辞書検索方法は、記号辞書中のメタ記号辞書を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆を求め、被覆がない場合には、検索結果なしとして検索処理を終了し、被覆がある場合には被覆結果を記録する質問文字列被覆手段と、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が｜Ｑ｜＋１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最左部分文字列（すなわち、質問文字列の第１文字から第ｊ文字（１≦ｊ≦｜Ｑ｜）までの部分文字列）Ｌの左延長メタ記号（すなわち文字列Ｌを末尾部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ＋１−｜Ｌ｜，ｊ＋１）を前記被覆結果に追加して記録する左延長メタ記号算定手段と、前記質問文字列、またはその任意の左延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力する記号番号集合算定手段とを有することにより、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、高速な後方一致照合による記号辞書検索が可能になるという効果を奏するものである。
【００１８】
また、本発明の第５の様態による、中間一致照合の記号辞書検索方法は、記号辞書中のメタ記号辞書を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆を求め、被覆がない場合には、検索結果なしとして検索処理を終了し、被覆がある場合には被覆結果を記録する質問文字列被覆手段と、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最右部分文字列（すなわち、質問文字列の第ｊ文字（１≦ｊ≦｜Ｑ｜）から最終文字までの部分文字列）Ｒの右延長メタ記号（すなわち文字列Ｒを先頭部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ，｜Ｒ｜＋ｊ）を前記被覆結果に追加して記録する右延長メタ記号算定手段と、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が｜Ｑ｜＋１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最左部分文字列（すなわち、質問文字列の第１文字から第ｊ文字（１≦ｊ≦｜Ｑ｜）までの部分文字列）Ｌの左延長メタ記号（すなわち文字列Ｌを末尾部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ＋１−｜Ｌ｜，ｊ＋１）を前記被覆結果に追加して記録する左延長メタ記号算定手段と、前記メタ記号辞書を検索して、Ｑの両延長メタ記号ｘを全て検索して、要素（ｘ，１−ｊ，１−ｊ＋｜ｘ｜）を前記被覆結果に追加して記録する両延長メタ記号算定手段と、前記質問文字列、またはその任意の延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力する記号番号集合算定手段とを有することにり、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、高速な中間一致照合による記号辞書検索が可能になるという効果を奏するものである。
【００１９】
【発明の実施の形態】
本発明の請求項１記載の発明は、記号辞書作成方法として、
ある定められた文字セットに含まれる文字のＮ個（一定個数）以下の並びのうち相異なるものを記号として有限個登録した記号データに対して機械検索可能な記号辞書を作成する方法であって、記号辞書作成の第１ステップでは、記号被覆手段が前記記号データ中の各記号に対して、前記文字セット中の各文字について、当該１文字の文字列だけからなる初期状態のメタ記号として登録した、初期状態のメタ記号辞書を用いた極大単語切り出し法（ある記号Ｓのさまざまな部分文字列に文字列照合するメタ記号辞書中のメタ記号のうちで、照合文字区間が、他のどの照合文字列にも、完全には含まれない照合だけを取り出す単語切り出し方法）によって照合するメタ記号を検索し、被覆結果（すなわち被覆対象の前記記号中の部分文字列と照合するメタ記号と照合開始文字位置の対を要素とし、前記記号中のどの位置の文字も、被覆結果中のいずれかの前記記号の部分文字列に含まれるような集合）を求め、前記被覆結果をメタ記号集計手段が集計して、前記記号データ中での各メタ記号の総出現度数をメタ記号度数表に蓄積し、メタ記号辞書更新判定手段がメタ記号度数表を参照し、前記メタ記号度数表中の度数が０のメタ記号を削除し、度数が記号内容で定まる所定の定数以上であるものについて、その末尾にメタ記号辞書中の一文字の各メタ記号に対して、その一文字を追加したメタ記号を追加し、記号辞書作成の第２ステップでは、前記記号被覆手段が前記記号データ中の各記号に対して、現時点のメタ記号辞書を用いた前記極大単語切り出し法によって照合するメタ記号を検索して被覆結果を求め、この被覆結果をメタ記号集計手段が集計して、各メタ記号の前記記号データ中での総出現度数をメタ記号度数表に蓄積し、メタ記号辞書更新判定手段が前記メタ記号度数表を参照し、度数が記号データ内容と第２ステップの繰り返し回数で決まる所定の定数以上であるものについて、末尾に、定められた文字セット中の任意の一文字を追加するとともに、メタ記号辞書更新判定手段におけるメタ記号の追加と削除がまったくない場合に停止する停止条件を満足するまで、前記第２ステップを繰り返し行い、記号辞書構築の第３ステップでは、前記メタ記号辞書更新判定手段が前記メタ記号度数表を参照し、メタ記号度数表中の度数が所定の定数未満の、２文字以上のメタ記号の削除を行い、記号辞書構築の第４ステップでは、前記記号被覆手段が第３ステップで算出した前記メタ記号辞書を用いて前記記号データに対して前記極大単語切り出し法によって被覆結果を求め、メタ記号出現情報作成手段が前記被覆結果から各メタ記号が出現する記号の番号と出現文字位置とを記録したメタ記号出現情報を算出し、記号辞書作成の第５ステップでは、記号辞書作成手段が、前記メタ記号辞書と前記メタ記号出現情報とから、メタ記号情報とメタ記号出現情報とを格納した、機械検索可能な記号辞書を作成するようにしたものであり、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成を可能にするという作用を有する。
【００２６】
本発明の請求項２記載の発明は、請求項１記載の記号辞書作成方法によって作成された記号辞書検索方法として、メタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって完全一致検索（すなわち質問文字列と同一の記号の検索）する方法であって、記号辞書検索の第1ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆結果（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合）を求め、被覆結果がない（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合がない）場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を作業域に格納し、記号辞書検索の第２ステップでは、記号番号集合算定手段が、前記記号辞書中のメタ記号出現情報を検索して、前記被覆結果中の全ての要素に共通して含まれる記号番号（高々１つ）があれば、検索結果として出力して検索処理を終了し、前記被覆結果中の全ての要素に共通して含まれる記号番号がなければ検索結果なしとして検索処理を終了するようにしたものであり、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、高速な完全一致照合による記号辞書検索が可能になるという作用を有する。
【００２７】
本発明の請求項３記載の発明は、請求項１記載の記号辞書作成方法によって作成された記号辞書検索方法として、メタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって前方一致検索（すなわち質問文字列を先頭部分に持つ全ての記号の検索）する方法であって、記号辞書検索の第１ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆結果（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合）を求め、被覆結果がない（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合がない）場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第２ステップでは、右延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最右部分文字列（すなわち、質問文字列の第ｊ文字（１≦ｊ≦｜Ｑ｜）から最終文字までの部分文字列）Ｒの右延長メタ記号（すなわち文字列Ｒを先頭部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ,｜Ｒ｜＋ｊ）を前記被覆結果に追加して記録し、記号辞書検索の第３ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の右延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力するようにしたものであり、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、高速な前方一致照合による記号辞書検索が可能になるという作用を有する。
【００２８】
本発明の請求項４記載の発明は、請求項１記載の記号辞書作成方法によって作成された記号辞書検索方法として、メタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって後方一致検索（すなわち質問文字列を末尾部分に持つ全ての記号の検索）する方法であって、記号辞書検索の第１ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆結果（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合）を求め、被覆結果がない（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合がない）場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第２ステップでは、左延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が｜Ｑ｜＋１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最左部分文字列（すなわち、質問文字列の第１文字から第ｊ文字（１≦ｊ≦｜Ｑ｜）までの部分文字列）Ｌの左延長メタ記号（すなわち文字列Ｌを末尾部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ＋１−｜Ｌ｜，ｊ＋１）を前記被覆結果に追加して記録し、記号辞書検索の第３ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の左延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力するようにしたものであり、文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、高速な後方一致照合による記号辞書検索が可能になるという作用を有する。
【００２９】
本発明の請求項５記載の発明は、請求項１記載の記号辞書作成方法によって作成された記号辞書検索方法として、メタ記号情報とメタ記号出現情報とを格納した記号辞書を任意の文字列によって中間一致検索（すなわち質問文字列を含む全ての記号の検索）する方法であって、記号辞書検索の第１ステップでは、質問文字列被覆手段が、前記記号辞書中のメタ記号情報を検索し、検索条件である質問文字列Ｑに対して、重複最長一致単語切り出し法によって被覆結果（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合）を求め、被覆結果がない（すなわち被覆対象文字列中の部分文字列と照合するメタ記号ｍ，照合文字開始位置ｓ，照合終了文字位置ｅ（１≦ｓ＜ｅ≦｜Ｑ｜＋１）の対（ｍ，ｓ，ｅ）を被覆要素とし、Ｑのどの文字も１つ以上の被覆要素に含まれるような集合がない）場合には、検索結果なしとして検索処理を終了し、被覆結果がある場合には被覆結果を記録し、記号辞書検索の第２ステップでは、右延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果中で、照合開始文字位置が１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最右部分文字列（すなわち、質問文字列の第ｊ文字（１≦ｊ≦｜Ｑ｜）から最終文字までの部分文字列）Ｒの右延長メタ記号（すなわち文字列Ｒを先頭部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ,｜Ｒ｜＋ｊ）を前記被覆結果に追加して記録し、記号辞書検索の第３ステップでは、左延長メタ記号算定手段が、前記記号辞書のメタ記号情報を検索して、前記被覆結果のうち、照合終了文字位置が｜Ｑ｜＋１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、前記質問文字列の第ｊ最左部分文字列（すなわち、質問文字列の第１文字から第ｊ文字（１≦ｊ≦｜Ｑ｜）までの部分文字列）Ｌの左延長メタ記号（すなわち文字列Ｌを末尾部分に含むメタ記号）になっているメタ記号ｘを全て検索して、要素（ｘ，ｊ＋１−｜Ｌ｜，ｊ＋１）を前記被覆結果に追加して記録し、記号辞書検索の第４ステップでは、両延長メタ記号算定手段が前記メタ記号情報を検索して、Ｑの両延長メタ記号（すなわち文字列Ｑを第ｊ文字から第ｊ＋｜Ｑ｜文字の部分（１＜ｊ）に含むメタ記号）Ｘを全て検索して、要素（Ｘ，１−ｊ，１−ｊ＋｜Ｘ｜）を前記被覆結果に追加して記録し、記号辞書検索の第５ステップでは、記号番号集合算定手段が、前記質問文字列、またはその任意の延長文字列を被覆する前記被覆結果中の要素の集合Ｃを系統的に生成しつつ、前記記号辞書中のメタ記号出現情報を検索して、Ｃ中の全ての要素に共通して含まれる記号番号集合ＳＣを求めて検索結果の一部として記録する動作を行って、全てのＳＣの和集合を最終的な検索結果として出力する文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合でも、高速な中間一致照合による記号辞書検索が可能になるという効果を奏するものである。
【００３０】
（実施の形態１）
以下、本発明の第１の実施の形態について、図面を参照しながら説明する。図１は本発明の請求項１乃至７にかかる、記号辞書作成装置の一実施の形態の全体構成を表わすブロック図である。図１において、１０１は辞書の作成対象である記号データ、１０２はメタ記号辞書、１０３はメタ記号辞書１０２を検索して、極大単語切り出し法によって記号データ中の各記号の被覆結果を求める記号被覆手段、１０４は記号被覆手段１０３の出力する被覆結果を受け取って、被覆要素として切り出されたメタ記号を集計するメタ記号集計手段、１０５はメタ記号集計手段１０４の集計結果を蓄えるメタ記号度数表、１０６はメタ記号度数表１０５の集計結果をもとに、メタ記号辞書１０２へのメタ記号の追加、メタ記号辞書１０２からのメタ記号の削除、およびメタ記号辞書更新処理の停止条件の判定をおこなうメタ記号辞書更新判定手段、１０７は記号被覆手段１０３の出力する被覆結果を受け取って、メタ記号毎に、当該メタ記号が被覆要素として切り出された記号番号と、切り出された文字位置とを記録したメタ記号出現情報を作成するメタ記号出現情報作成手段、１０８はメタ記号出現情報作成手段１０７が作成したメタ記号出現情報、１０９はメタ記号辞書１０２とメタ記号出現情報１０８とから、検索可能な記号辞書を作成する記号辞書作成手段、１１０は記号辞書作成手段１０９が作成する、検索可能な記号辞書である。また、図６は、記号被覆手段１０３における記号データ１０１中の各被覆対象記号から、メタ記号辞書１０２を用いて、極大単語切り出し法によって被覆結果を求める際の処理の手順を表す流れ図である。
【００３１】
以上の構成の記号辞書作成装置において、その動作を、日付、１５分刻みの時刻、ローマ字表記の苗字をつなげた記号データから、検索可能な記号辞書を作成する例を用いて説明する。図１５は、記号データの例である。この図では一部の記号を省略しており、実際には合計１０００個の相異なる記号が、日付、時刻の順に記号データとして格納されているとする。各記号の最大文字数は１０００文字とする。また、第１ステップにおけるメタ記号の追加のしきい値Ｃ１は記号数の１／２０とする。この例では、記号数が１０００なので、Ｃ１＝５０となる。第２ステップでのｋ回目の繰り返しにおけるメタ記号の追加のしきい値Ｃｋはｋ＜１０では記号数の１／１０とし、１０≦ｋでは、記号数の１／５とする。この例では、ｋ＜１０ではＣｋ＝１００，１０≦ｋでは、Ｃｋ＝２００となる。第３ステップでのしきい値Ｅの値は５と定める。なお、この記号データ中では、「−」、「／」の２種の特殊記号、「０」〜「９」の数字、「Ａ」〜「Ｚ」までの英字のみを使用するものとし、その他の文字は使用されることはないとする。このような記号を被覆するためのメタ記号辞書として、記号辞書の作成に先立って、予め、図１６のような、記号中で出現する可能性のあるすべての１文字からなる内容のメタ記号辞書を用意する。記号被覆手段において、効率よく被覆を求めることができるように、メタ記号辞書は、図３０のようなディジタル木のデータ構造（すなわちＴＲＩＥ）として保持するものとする。ある文字列に最長一致するメタ記号の検索処理は、このようなＴＲＩＥを用いることにより、ＴＲＩＥの根（左端の黒丸）から、文字列の１文字目，２文字目，…を鍵にして木構造をたどり、最も根から遠い２重丸のノードまでの部分文字列を出力することで、効率よく行うことが可能になる。記号辞書作成の第１ステップでは、記号被覆手段１０３が、記号データ１０１に格納された、図１５の記号データを、順に読み込んで、メタ記号辞書１０２に格納された図３０の内容のメタ記号辞書を検索して、極大単語切り出し法によって被覆結果を求める。「極大単語切り出し法」とは、ある記号Ｓのさまざまな部分文字列に文字列照合するメタ記号辞書中のメタ記号のうちで、照合文字区間が、他のどの照合文字列にも、完全には含まれない照合だけを取り出す単語切り出しの方法である。例えば、記号「東京都議会」を、６個のメタ記号を含むメタ記号辞書｛東，東京，東京都，京都，都議会，議会｝を検索して極大単語切り出しを行うと、図６に示した流れ図のように被覆処理を行うことにより、
｛（東京都，１，４），（都議会，３，６）｝という被覆結果が得られる。
【００３２】
ただし、（Ｘ，ｓ，ｅ）は、Ｘがメタ記号を、ｓが照合開始文字位置を、ｅが照合終了文字位置（すなわち照合している部分のすぐ右の文字の文字位置）を、それぞれ表し、この３つ組みを「被覆要素」と呼ぶ。「東」や「東京」や「京都」というメタ記号は、「東京都議会」の部分文字列と照合するものの、メタ記号辞書にはあるが、「東京都」という照合部分（１文字目から３文字目まで）に完全に含まれてしまうので、被覆結果には入らない。この「他の照合部分に完全に含まれてしまう照合を取り除く」処理は、図６では６０３で判定しており、記号Ｓのｉ文字目からｉ＋ｊ−１文字目までと照合するメタ記号Ｍに対して、１〜ｉ−１文字目からの、すでに求めた照合結果のうち、照合終了位置（＝照合部分右隣の文字位置）ｅが、ｉ＋ｊ以上ならば、その照合（Ｘ，ｓ，ｅ）の照合文字区間［ｓ，ｅ−１］は文字区間［ｉ，ｉ＋ｊ−１］を完全に含むことになり、その場合には６０３の判定が「ｙｅｓ」となって、被覆結果集合Ｃには、照合した結果は加えない。
【００３３】
さて、図１６のメタ記号辞書中のメタ記号はいずれも１文字であるから、第１ステップでの記号被覆手段の被覆処理においては、切り出したメタ記号は必ず１文字であり、図６の６０３の判定が「ｙｅｓ」になることはなく、例えば、記号
「１９９８−ＪＡＮ−０１／ＡＭ０２００／ＫＡＷＡＹＡＳＵ」
は、
｛（１，１，２），（９，２，３），…，（Ｓ，２６，２７），（Ｕ，２７，２８）｝
のように、１文字ずつ被覆される。記号中に出現する可能性のある文字はすべてメタ記号辞書に含まれているので、必ず空でない被覆結果を求めることができる。各記号の被覆結果は、メタ記号集計手段１０４に渡され、各メタ記号が、被覆要素として何回切り出されたかが、メタ記号度数表１０５に記録される。例えば、記号データ中の最初の記号「１９９８−ＪＡＮ−０１／ＡＭ０２００／ＫＡＷＡＹＡＳＵ」の処理の後では、メタ記号度数表の内容は、「−」が２回，「／」が２回，「０」が４回，「１」が２回，「２」が１回，「８」が１回，「９」が２回，「Ａ」が５回，「Ｊ」が１回，「Ｋ」が１回，「Ｍ」が１回，「Ｎ」が１回，「Ｓ」が１回，「Ｕ」が１回，「Ｗ」が１回，「Ｙ」が１回となる。その他の文字の度数は０回である。記号データ１０１中の１０００個の記号を処理した後のメタ記号度数表の内容は図１７のようになる。この例では、どの記号も「ｙｙｙｙ−ｍｍｍ−ｄｄ／ＸＸｈｈｍｍ／ｎａｍｅ」の形をしているので、「−」と「／」は２０００度数（１記号に２回＊１０００記号分）となる。また、メタ記号「Ｈ」，「Ｉ」，「Ｑ」，「Ｘ」，「Ｚ」は図１５の記号データ中には１度も表れないことがわかる。この時点で、メタ記号表度数表中の、度数が０である上記の５種のメタ記号が、メタ記号辞書から削除される。図１８は、削除後の各メタ記号についての度数表である。しきい値Ｃ１が５０であり、図１８中の全てのメタ記号が文字数が１と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図１８中の全てのメタ記号について、図１８中の各メタ記号を末尾に追加した「――」，「−／」，「−０」などの２文字のメタ記号を追加し、図１９のようなメタ記号を含むメタ記号辞書に更新する。メタ記号辞書の実際の構造は、図３１のようなディジタル木のデータ構造（すなわちＴＲＩＥ）として構築し、保持される。以上で記号辞書作成の第１ステップを終了する。
【００３４】
記号辞書作成の第２ステップでは、上述した第１ステップでの各記号の被覆と切り出したメタ記号の度数の集計が、図１９のメタ記号辞書を用いて再度行われる。例えば、記号
「１９９８−ＪＡＮ−０１／ＡＭ０２００／ＫＡＷＡＹＡＳＵ」
は、
｛（１９，１，３），（９９，２，４），…，（ＡＳ，２５，２７），（ＳＵ，２６，２８）｝
のように、２文字ずつ被覆される。記号中に出現する可能性のある文字はすべてメタ記号辞書に含まれているので、必ず空でない被覆結果を求めることができる。なお、第２ステップでの被覆処理では、文字数の異なるメタ記号がメタ記号辞書１０２に混在するため、第１ステップと異なり、図６の流れ図において、ステップ６０３の判定が「ｙｅｓ」になる場合があり、最長一致で切り出した全てのメタ記号が被覆結果に入るわけではない（上記の例では、末尾の（Ｕ，２７，２８）は、（ＳＵ，２６，２８）があるので、被覆結果には入らない）。記号データ１０１中の１０００個の記号を処理した後のメタ記号度数表のうち、度数が０でないメタ記号の部分は図２０のようになる。これを図１８と比べると、例えば図１８で２０００度数のメタ記号「−」は、図２０では「−０」〜「−Ｓ」の「−」で始まる１２種の２文字のメタ記号と、「８−」，「Ｂ−」，「Ｃ−」，「Ｇ−」，「Ｌ−」，「Ｎ−」，「Ｐ−」，「Ｒ−」，「Ｔ−」，「Ｖ−」，「Ｙ−」の「−」で終わる１１種のメタ記号の、合計２３種のメタ記号に度数が分散していることがわかる。「−」で始まる１２種の２文字のメタ記号の度数の合計値と、「−」で終わる１１種の２文字のメタ記号の度数の合計値は、共にちょうど２０００で、記号中の文字「−」は、この文字「−」を共有する「−」で始まるメタ記号と、「−」で終わるメタ記号の２つのメタ記号に含まれることが見て取れる。しきい値Ｃ２が１００であり、図２０中の全てのメタ記号が文字数が２と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２０中の「−０」，「−１」，「−２」，「−Ａ」等、度数が１００以上の、６２種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加した「―０―」，「−０／」，「−００」などの３文字のメタ記号を追加し、メタ辞書を更新する。また同時に、メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が１つ以上発生しているので、第２ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書１０２を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が１以上のメタ記号の部分は図２１のようになる。例えば、記号
「１９９８−ＪＡＮ−０１／ＡＭ０２００／ＫＡＷＡＹＡＳＵ」
は、
｛（１９９，１，４），（９９８，２，５），（９８−，３，６），（８−Ｊ，４，７），（−ＪＡ，５，８），（ＡＮ−，７，１０），（Ｎ−０，８，１１），…，（ＹＡＳ，２４，２７），（ＡＳＵ，２５，２８）｝
のように被覆され、文字「Ｊ」からの最長一致メタ記号「ＪＡ」は被覆結果には含まれないことがわかる。また、図２１では、２文字のメタ記号と３文字のメタ記号が混在しており、記号を被覆する際に、出現度数の大きい部分は３文字のメタ記号で、出現度数の比較的少ない部分は２文字のメタ記号を使って被覆が行われていることが確認できる。しきい値Ｃ３が１００であり、図２１中の全てのメタ記号が文字数が３文字以下と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２１中の「−０１」，「−０２」，「−０３」，「−０４」等、度数が１００以上の、４２種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加した「―０１―」，「−０１／」，「−０１０」などのメタ記号を追加し、メタ辞書を更新する。また同時に、メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が１つ以上発生しているので、第２ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書１０２を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が１以上のメタ記号の部分は図２２のようになる。しきい値Ｃ４が１００であり、図２２中の全てのメタ記号が文字数が４文字以下と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２２中の「−ＮＯＶ」，「／ＡＭ０」，「／ＡＭ１」，「／ＫＡＷ」等、度数が１００以上の、３１種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加した「―ＮＯＶ―」，「−ＮＯＶ／」，「−ＮＯＶ０」などのメタ記号を追加し、メタ辞書を更新する。
【００３５】
また同時に、メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が１つ以上発生しているので、第２ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書１０２を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が１以上のメタ記号の部分は図２３のようになる。図２３を図２２を比較すると、度数が１以上のメタ記号の種類は、メタ記号を追加したにも関わらず、２種類減少しており、文字数の多いメタ記号による極大単語切り出しによって、より文字数の少ないメタ記号が切り出し結果から「締め出されていく」ことが確認できる。しきい値Ｃ５が１００であり、図２３中の全てのメタ記号が文字数が５文字以下と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２３中の「−ＮＯＶ−」，「／ＫＡＷＡ」，「／ＳＵＤＡ」，「／ＳＵＫＡ」等、度数が１００以上の、２０種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加した「―ＮＯＶ――」，「−ＮＯＶ−／」，「−ＮＯＶ−０」などのメタ記号を追加し、メタ記号辞書を更新する。
【００３６】
また同時に、メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が１つ以上発生しているので、第２ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書１０２を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が１以上のメタ記号の部分は図２４のようになる。図２４を図２２を比較すると、度数が１以上のメタ記号の種類はさらに減少しており、文字数の多いメタ記号による極大単語切り出しによって、より文字数の少ないメタ記号が切り出し結果から「締め出されていく」ことが確認できる。しきい値Ｃ６が１００であり、図２４中の全てのメタ記号が文字数が６文字以下と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２４中の度数が１００以上の、１６種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加したメタ記号を追加し、メタ記号辞書を更新する。
【００３７】
また同時に、メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が１つ以上発生しているので、第２ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書１０２を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が１以上のメタ記号の部分は図２５のようになる。しきい値Ｃ７が１００であり、図２５中の全てのメタ記号が文字数が７文字以下と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２５中の度数が１００以上の、９種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加したメタ記号を追加しようとするが、「／ＳＵＤＡ」，「／ＳＵＫＡＷＡ」，「／ＳＵＷＡ」，「９８−ＮＯＶ」，「ＷＡＤＡ」の５種のメタ記号については、すでにメタ記号辞書中に末尾に１文字を追加したメタ記号がすべて含まれているので、残りの４種のメタ記号について追加処理を行い、メタ記号辞書を更新する。また同時に、メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が１つ以上発生しているので、第２ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。なお、図２５と図２４とを比較すると、メタ記号「ＳＵＫＡＷＡ」の度数が１８７から８１と減少している。これは図２５のメタ記号「／ＳＵＫＡＷＡ」の存在で、「１９９８…／ＳＵＫＡＷＡ」という記号の「ＳＵＫＡＷＡ」が被覆結果から除かれ、「１９９８…ＹＡＳＵＫＡＷＡ」という記号の「ＳＵＫＡＷＡ」のみの度数になったことによることが確認できる。更新したメタ記号辞書１０２を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が１以上のメタ記号の部分は図２６のようになる。しきい値Ｃ８が１００であり、図２６中の全てのメタ記号が文字数が８文字以下と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２６中の度数が１００以上の、６種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加したメタ記号を追加しようとするが、「／ＳＵＤＡ」，「／ＳＵＫＡＷＡ」，「／ＳＵＷＡ」，「９９８−ＮＯＶ」，「ＷＡＤＡ」の５種のメタ記号については、すでにメタ記号辞書中に末尾に１文字を追加したメタ記号がすべて含まれているので、残りのメタ記号「１９９８−ＮＯＶ」について追加処理を行い、メタ記号辞書を更新する。
【００３８】
また同時に、メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が１つ以上発生しているので、第２ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書１０２を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が１以上のメタ記号の部分は図２７のようになる。しきい値Ｃ９が１００であり、図２７中の全てのメタ記号が文字数が９文字以下と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２７中の度数が１００以上の、５種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加したメタ記号を追加しようとするが、「／ＳＵＤＡ」，「／ＳＵＫＡＷＡ」，「／ＳＵＷＡ」，「ＷＡＤＡ」の４種のメタ記号については、すでにメタ記号辞書中に末尾に１文字を追加したメタ記号がすべて含まれているので、残りのメタ記号「１９９８−ＮＯＶ−」について追加処理を行い、メタ記号辞書を更新する。また同時に、メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が１つ以上発生しているので、第２ステップを終了せず、引き続き、更新したメタ記号辞書を使って同様な被覆・集計・更新処理を行うという判定を下す。更新したメタ記号辞書１０２を使って同様な被覆・集計処理を行った後のメタ記号度数表のうち、度数が１以上のメタ記号の部分は図２８のようになる。しきい値Ｃ１０が１００であり、図２８中の全てのメタ記号が文字数が１０文字以下と、最大文字数１０００未満なので、メタ記号辞書更新判定手段１０６は、図２８中の度数が１００以上の、４種のメタ記号について、図１８中の各メタ記号（すなわち、１文字のメタ記号）を末尾に追加したメタ記号を追加しようとするが、「／ＳＵＤＡ」，「／ＳＵＫＡＷＡ」，「／ＳＵＷＡ」，「ＷＡＤＡ」の４種のメタ記号は、すでにメタ記号辞書中に末尾に１文字を追加したメタ記号がすべて含まれているので、追加処理は行われず、メタ記号辞書は更新されない。メタ記号辞書更新判定手段１０６は、上記のように、メタ記号の追加が発生していないので、第２ステップを終了する。
【００３９】
記号辞書作成の第３ステップでは、メタ記号辞書参照更新手段１０６が、メタ記号度数表１０５を参照し、しきい値Ｅ（すなわち５）未満の度数を持つ、２文字以上のメタ記号を、メタ記号辞書１０２から削除する。図２８を見ると、度数が１以上のメタ記号のうち、度数が５未満のものはなく、この場合には、度数が０である、２文字以上のメタ記号がすべて削除され、結果的にメタ記号辞書１０２の内容は、図２８のメタ記号に、図１８のメタ記号を加えたものになる。メタ記号辞書の実際の構造は、図３２のようなディジタル木のデータ構造（すなわちＴＲＩＥ）として構築し、保持される。以上で記号辞書作成の第３ステップを終了する。
【００４０】
記号辞書作成の第４ステップでは、記号被覆手段１０３が第３ステップで算出した図３２のメタ記号辞書１０２を用いて記号データ１０１中の各記号データを被覆して被覆結果を求め、メタ記号出現情報作成手段１０８が、被覆結果から各メタ記号が出現する記号の番号と、出現文字位置とを記録したメタ記号出現情報１０８を作成する。この場合には、図２９のようなメタ記号出現情報が作成される。ただし、図２９では、解釈を容易にするため、記号の番号の代わりに記号の文字列を用いている。この作成処理は、本質的にはいわゆる転置処理（ｉｎｖｅｒｓｉｏｎ）であり、情報検索システムで通常用いられる手法によって、効率よく行うことができる。照合文字位置は、照合部分の左側の文字数（図２９の「左文字数」）と、照合部分の右側の文字数（図２９の「右文字数」）によって表されている。図２９のような内容が、メタ記号ごとにまとまった表として記録され、メタ記号と、照合文字位置を鍵にして検索することで、指定したメタ記号を指定した文字位置に含む記号の番号の列（集合）を効率よく求めることができる。以上で記号辞書作成の第４ステップを終了する。
【００４１】
記号辞書作成の第５ステップでは、記号辞書作成手段１０９が、メタ記号辞書１０２と、メタ記号出現情報１０８とから、機械検索可能な記号辞書１１０を作成する。その際、メタ記号出現情報１０８は、図２９のような内容の表をそのまま記号辞書１１０内に格納するが、メタ記号辞書１０２については、図３２のようなＴＲＩＥ構造の情報の他に、図３３のようなメタ記号の延長情報を付加したメタ記号延長表を、メタ記号情報として、記号辞書１１０に格納する。図３３のメタ記号延長表は、メタ記号辞書中の各メタ記号Ｍ毎に、Ｍを文字列として含んだメタ記号辞書中のメタ記号と、左右の延長部分の文字数の３つ組を記録した表で、例えばメタ記号「−」の延長情報は、
｛（−，０，０），（−０１，０，２），…，（−２９，０，２），（−３，０，１），…，
（Ｒ−０，１，１），（Ｒ−３，１，１）｝
のようになる。このメタ記号の延長表の作成も、先のメタ記号出現情報１０８の作成処理と同様にして行うことができる。以上で記号辞書作成の第４ステップが終了し、記号辞書１１０が作成され、記号辞書作成が完了する。
以上の説明のように、本発明の第１の実施の形態の記号辞書作成方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号辞書を作成し、このメタ記号辞書を使って記号の被覆情報を記録するので、より少ない情報量で記号辞書が作成でき、記号辞書検索の際にも、高頻度で出現する部分文字列を含んだ記号の検索が、従来の記号辞書の検索に比べて高速に行えるようになる。さらに、このメタ記号辞書の作成は、しきい値を設定すれば機械的に実行可能なので、人手をかけずに、記号データの文字列分布の偏りに適応した、最適な記号辞書を作成することが可能になる。
【００４２】
（実施の形態２）
以下、本発明の第２の形態について、図面を参照しながら説明する。図２は、本発明の請求項８にかかる、記号辞書検索装置の全体構成を表わすブロック図である。図２において、２０１はメタ記号情報とメタ記号出現情報とを格納した記号辞書、２０２は検索条件である文字列を入力する検索条件入力手段、２０３は、検索条件入力手段２０２から入力された検索条件である質問文字列を、記号辞書２０１を使い、重複最長一致単語切り出し法によって被覆し、被覆結果を求める質問文字列被覆手段、２０４は質問文字列被覆手段２０３の求めた被覆結果、２０５は被覆結果２０４と、記号辞書２０１のメタ記号出現情報とから、質問文字列と完全一致する、すなわち、質問文字列をまったく同一な記号の番号を算定する記号番号算定手段、２０６は記号番号算定手段２０５の算定した記号の番号などを出力する検索結果出力手段である。
【００４３】
以上の構成の記号辞書検索装置において、その動作を、実施の形態１で例にあげた記号辞書と、簡単な検索条件を例に、図面を参照して説明する。図７は質問文字列被覆手段２０３における被覆結果を求める処理の手順を記述した流れ図、図８は記号番号算定手段２０５における記号番号の算定処理の手順を記述した流れ図、図３４は、検索条件として、質問文字列「１９９８−ＮＯＶ−０１／ＰＭ１０３０／ＫＡＷＡＹＡＳＵ  」と完全一致する記号の番号を求めよ、という条件を与えた場合の記号辞書検索の過程での主要な中間データを記述した概念図である。
【００４４】
まず、記号辞書検索の第１ステップでは、質問文字列被覆手段２０３が、記号辞書２０１中のメタ記号情報を検索し、質問文字列「１９９８−ＮＯＶ−０１／ＰＭ１０３０／ＫＡＷＡＹＡＳＵ」に対して、重複最長一致単語切り出し法によって被覆を求め、図３４の＊ＳＴＥＰ１のＣの被覆結果を得る。「重複最長一致単語切り出し法」とは、被覆対象文字列の左側から最長一致するメタ記号を求めていくが、メタ記号同士の部分的重複を許し、かつ、あるメタ記号Ａの照合文字区間が、１つ以上のほかのメタ記号群Ｂ，…，Ｘの照合文字区間の和からなる区間に完全に含まれる場合には、そのメタ記号Ａは被覆要素として記録しない、という被覆方法である。具体的には、図７のステップ７０２で、直前の切り出し結果より末尾側で、「間があかない」ような照合文字区間をもつメタ記号のうちで、最も末尾側までカバーするメタ記号の集合Ｈをまず求め、Ｈの中から、照合開始位置がもっとも先頭側のもの、すなわち最も文字数の多いメタメタ記号を被覆要素として用い、この被覆要素の照合文字区間を基準にして、次の末尾側の被覆要素をさらに決定する、という、先頭から末尾への一連の切り出し処理で、極大単語切り出し法で得られる被覆結果の部分集合が得られる被覆方法である。この質問文字列の場合には被覆結果２０４が空でないので記号番号算定手段２０５での処理が開始されるが、被覆結果なしの場合には、ただちに処理を停止し、検索結果なしとする。以降の処理は、図８に沿って進められる。まずステップ８０１で、被覆結果中で、照合開始文字位置ｓが１である要素（Ｃ中で高々１つ）を探す。この例では（１９９８−ＮＯＶ−０，１，１１）が見つかる。続いて記号辞書中のメタ記号出現情報の中で、Ｍ＝「１９９８−ＮＯＶ−０」の出現記号情報で（Ｘ，０，ｎ−ｅ＋１）の形のもの（ｎは質問文字列の文字数で、この例では１４）を残らず探し、その記号Ｘの記号番号の集合をＡとして記録する。なお、図３４では、読みやすさを考慮して、記号番号でなく、記号文字列を用いて集合Ａ，Ｂを記述している。この例では  １９９８−ＮＯＶ−０１／ＡＭ０８３０／ＮＯＤＡ  等の記号の記号番号が求まる。Ａが求まった後、Ｃから今選択した要素（１９９８−ＮＯＶ−０，１，１１）を削除する。Ｃは、図３４の＊ＳＴＥＰ２のＣのようになり、図８のステップ８０２の「Ｃが空集合か？」という条件判定は「ｎｏ」となって、ステップ８０３に進む。ステップ８０３では、この例の場合には、Ｃの先頭の要素（１／Ｐ，１１，１４）を選択し、Ｂとして、「１９９８−ＪＡＮ−０１／ＰＭ０６５／ＮＯＤＡ」などを含む、図３４の＊ＳＴＥＰ３のＢのような記号（に対応する記号の番号）を求める。その後、ＡとＢとの共通部分を求めて、Ａに格納する。すなわちＡの内容を、Ｂにあるものだけに絞り込む。この例の場合には、Ａの内容は、４つの記号（の番号）に絞り込まれる。続いて、図８のステップ８０４で判定処理が行われ、Ａが空ではないので、ステップ８０５に進み、Ｃからステップ８０３で選択した要素（１／Ｐ，１１，１４）を削除し、ステップ８０２に戻る。以降、＊ＳＴＥＰ４〜＊ＳＴＥＰ６まで、同様にして次々とＣから要素を選択して、メタ記号出現情報からＢを求め、��間結果Ａを絞り込んでいく。その間、ＡもＣも空にはならないので、処理が途中で終了することはない。
【００４５】
最後に、＊ＳＴＥＰ７の処理が終了した、図８のステップ８０５の終了時点で、Ｃが空となって、ステップ８０２の判定が「ｙｅｓ」になって、記号番号算定手段２０５における処理が終了し、Ａの要素である、記号「１９９８−ＮＯＶ−０１／ＰＭ１０３０／ＫＡＷＡＹＡＳＵ」の番号が、検索結果表示手段２０６に出力され、記号検索処理が終了する。
【００４６】
以上の説明のように、本発明の第２の実施の形態の記号辞書検索方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号情報が作成されており、このメタ記号情報を使って、質問文字列から一旦被覆結果を構成し、この被覆結果と、メタ記号出現情報とを使って検索処理を行うので、高頻度で出現する部分文字列を含んだ記号の検索時でも、従来の記号辞書の検索に比べて高速に行えるようになる。
【００４７】
（実施の形態３）
以下、本発明の第３の形態について、図面を参照しながら説明する。図３は、本発明の請求項９にかかる、記号辞書検索装置の全体構成を表わすブロック図である。図３において、３０１はメタ記号情報とメタ記号出現情報とを格納した記号辞書、３０２は検索条件である文字列を入力する検索条件入力手段、３０３は、検索条件入力手段３０２から入力された検索条件である質問文字列を、記号辞書３０１を使い、極大単語切り出し法によって被覆し、被覆結果を求める質問文字列被覆手段、３０４は質問文字列被覆手段３０３の求めた被覆結果、３０５は被覆結果３０４と、記号辞書３０１のメタ記号出現情報とから、質問文字列と前方一致する、すなわち、質問文字列を先頭部分に含む記号の番号の集合を算定する記号番号集合算定手段、３０７は、記号辞書３０１のメタ記号情報を検索して、被覆結果３０４のうちで、最も照合開始文字位置の大きい被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、質問文字列の最右部分文字列Ｒの右延長メタ記号（すなわちＲを先頭部分に含むメタ記号）になっているメタ記号の番号と照合位置との組を、残らず求めて被覆結果３０４に追加格納する右延長メタ記号算定手段、３０６は記号番号集合算定手段３０５の算定した記号の番号などを出力する検索結果出力手段である。なお、図３の構成要素３０１乃至３０４は、第２の実施の形態のブロック図である図２の構成要素２０１乃至２０４と対応する。
【００４８】
以上の構成の記号辞書検索装置において、その動作を、実施の形態１で例にあげた記号辞書と、簡単な検索条件を例に、図面を参照して説明する。図７は質問文字列被覆手段３０３における被覆結果を求める処理の手順を記述した流れ図、図９，図１０は記号番号集合算定手段３０５における記号番号集合の算定処理の手順を記述した流れ図、図３５，図３６は、検索条件として、質問文字列「１９９８−ＮＯＶ−０１／ＰＭ」と前方一致する記号の番号の集合を求めよ、という条件を与えた場合の記号辞書検索の過程での主要な中間データを記述した概念図である。
【００４９】
まず、記号辞書検索の第１ステップでは、質問文字列被覆手段３０３が、記号辞書３０１中のメタ記号情報を検索し、質問文字列「１９９８−ＮＯＶ−０１／ＰＭ」に対して、重複最長一致単語切り出し法によって被覆を求め、図３５の＊ＳＴＥＰ１のＣの被覆結果を得る。被覆処理の手順は、実施の形態２で示した記号の被覆処理の手順と同一である。この質問文字列の場合には被覆結果３０４が空でないので右延長メタ記号算定手段３０７での処理が開始されるが、被覆結果なしの場合には、ただちに処理を停止し、検索結果なしとする。次に、右延長メタ記号算定手段３０７が、記号辞書３０１のメタ記号情報を検索して、被覆結果３０４のうち、最も照合開始位置の大きい被覆要素のメタ記号Ｚに対して、その延長メタ記号（すなわちＺを含む文字列のメタ記号）を求める。求めた延長メタ記号のうちで、質問文字列の第ｊ最右部分文字列Ｒ（すなわち質問文字列の第ｊ文字から最終文字までの部分文字列）の右延長メタ記号（すなわち文字列Ｒを先頭部分に含むメタ記号）になっているメタ記号Ｘだけを選別し、
（Ｘ，ｊ，｜Ｒ｜＋ｊ）
を被覆結果３０４に追加する。この例の場合には、Ｚ＝「Ｍ」となり、その延長メタ記号は、「／ＡＭ０１」，…  ，「／ＡＭ１２」，「／ＰＭ０１」，「／ＰＭ０２」，…，「／ＰＭ１２」，「１９９８−ＭＡＲ」，「１９９８−ＭＡＹ」
の２６種が求まる。このうちで、質問文字列「１９９８−ＮＯＶ−０１／ＰＭ」の最右部分列の右延長メタ記号にもなっている、
「／ＰＭ０１」，「／ＰＭ０２」，…，「／ＰＭ１２」
の１２種のメタ記号が、右延長メタ記号算定手段３０７によって、被覆結果３０４に追加される。図３５の＊ＳＴＥＰ２が、この様子を示している。こうして、右延長メタ記号まで含めた被覆が求まったならば、記号番号集合算定手段３０５が、記号番号集合を求める。以降の処理は、図９，図１０に沿って進められる。まずステップ９０１で、被覆結果中で、照合開始文字位置ｓが１である要素からなる集合Ｄを求める。この例ではＤ＝｛（１９９８−ＮＯＶ−０，１，１１）｝となる。また、最終結果の集合ＳＣを空に初期化する。Ｄが空でないので、ステップ９０３に進み、Ｄからただ１つの要素（１９９８−ＮＯＶ−０，１，１１）を選択し、記号辞書３０１中のメタ記号出現情報の中で、Ｍ＝「１９９８−ＮＯＶ−０」の出現記号情報で（Ｘ，０，＊）の形のものを残らず探し、その記号Ｘの記号番号の集合をＡとして記録する。ただし、「＊」は、任意の値（ｄｏｎ’ｔ  ｃａｒｅ）を表す。なお、図３５，図３６では、読みやすさを考慮して、記号番号でなく、記号文字列を用いてＡ，Ｃ，Ｄ等の集合を記述している。この例では＊ＳＴＥＰ４で、  １９９８−ＮＯＶ−０１／ＡＭ０８３０／ＮＯＤＡ  等の記号の記号番号が求まる。Ａが求まった後、Ｄから今選択した要素（１９９８−ＮＯＶ−０，１，１１）を削除する。ステップ９０４の「Ａが空集合か？」という条件判定は「ｎｏ」となって、ステップ９０５に進む。ステップ９０５では、ｑが質問文字列の文字数ｎより大きいか否かを判定し、大きければ最終結果の集合ＳＣに、この時点での集合Ａの要素を加え、大きくなければ、図１０の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ１（Ａ，ｐ，ｑ）  を呼び出す。この場合には、ｎ＝１４，ｑ＝１１なので  ｑ＜ｎであり、ステップ９０７に移って、図１０の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ１（Ａ，ｐ，ｑ）を呼び出して、処理を進める。図１０のステップ９０８では、手続きの引数である文字位置ｐ，ｑに対して、照合開始文字位置ｓがｐより大きく、ｑ以下であるような被覆結果Ｃ中の要素からなる集合Ｄｐを求める。
【００５０】
この例の場合には、ｐ＝１，ｑ＝１１であり、Ｃから１＜ｓ≦１１である要素を求めると、図３５の＊ＳＴＥＰ５のように、Ｄ１＝｛  （１／Ｐ，１１，１４）｝となる。Ｄ１が空ではないので、ステップ９０９は「ｎｏ」となり、ステップ９１０に進む。Ｄ１から、最初の要素（１／Ｐ，１１，１４）を選び、メタ記号「１／Ｐ」の出現メタ記号情報から、（Ｘ，１０，＊）の形の要素をもれなく探して、Ａとの共通部分をとって、中間結果Ａを絞り込んで、結果をＡ１に格納する。ただし、「＊」は、任意の値を表す。この例の場合には、図３５の＊ＳＴＥＰ６のように、Ａが３要素にまで絞り込まれる。さらに、Ｄ１から、今選択したＤ１の要素  （１／Ｐ，１１，１４  ）を削除する。Ａ１が空でないので、ステップ９１１の判定は「ｎｏ」となり、ステップ９１２に進む。ｎ＝１４に対して、ｕ＝１２であり、ステップ９１２の判定は「ｎｏ」となる。
【００５１】
ステップ９１４では、Ａ１，ｔ＝１１，ｕ＝１４を引数として、図１０の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ１を再帰的に呼び出し、処理を続け、中間結果であるＡｐを図３５，図３６のように絞り込んでいく。図３６の＊ＳＴＥＰ１８では、ｕ＝１７と、ｎ＝１４以上なので、Ａ１１が最終結果ＳＣの一部として記録され、別の結果を探すため、再び検索処理が続行される。このようにして、被覆結果３０４から、系統的に被覆要素の組み合わせを生成しつつ、記号辞書３０１中のメタ記号出現情報を検索して、生成した被覆要素の組に共通して含まれる記号の番号の集合を求め、最終結果の集合ＳＣに記録していく。すべての被覆要素の組み合わせを処理した＊ＳＴＥＰ２０の時点で処理を終了し、その時のＳＣが、検索結果となる。
【００５２】
以上の説明のように、本発明の第３の実施の形態の記号辞書検索方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号情報が作成されており、このメタ記号情報を使って、質問文字列から一旦被覆結果を構成し、この被覆結果と、右延長メタ記号算定手段が追加した要素を加えた被覆結果から、メタ記号出現情報とを使って検索処理を行うので、高頻度で出現する部分文字列を含んだ記号の前方一致検索時でも、従来の記号辞書の検索に比べて高速に行えるようになる。
【００５３】
（実施の形態４）
以下、本発明の第４の形態について、図面を参照しながら説明する。図４は、本発明の請求項１０にかかる、記号辞書検索装置の全体構成を表わすブロック図である。図４において、４０１はメタ記号情報とメタ記号出現情報とを格納した記号辞書、４０２は検索条件である文字列を入力する検索条件入力手段、４０３は、検索条件入力手段４０２から入力された検索条件である質問文字列を、記号辞書４０１を使い、重複最長一致単語切り出し法によって被覆し、被覆結果を求める質問文字列被覆手段、４０４は質問文字列被覆手段４０３の求めた被覆結果、４０８は、記号辞書４０１のメタ記号情報を検索して、被覆結果４０４のうちで照合開始文字位置が１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、質問文字列の最左部分文字列Ｌの左延長メタ記号（すなわちＬを末尾部分に含むメタ記号）になっているメタ記号の番号と照合位置との組を、残らず求めて被覆結果４０４に追加格納する左延長メタ記号算定手段、４０５は被覆結果４０４と、記号辞書４０１のメタ記号出現情報とから、質問文字列と後方一致する、すなわち、質問文字列を末尾部分に含む記号の番号の集合を算定する記号番号集合算定手段、４０６は記号番号集合算定手段４０５の算定した記号の番号などを出力する検索結果出力手段である。なお、図４の構成要素４０１乃至４０４は、第３の実施の形態のブロック図である図３の構成要素３０１乃至３０４と対応する。以上の構成の記号辞書検索装置において、その動作を、実施の形態１で例にあげた記号辞書と、簡単な検索条件を例に、図面を参照して説明する。
【００５４】
図７は質問文字列被覆手段４０３における被覆結果を求める処理の手順を記述した流れ図、図１１，図１２は記号番号集合算定手段４０５における記号番号集合の算定処理の手順を記述した流れ図、図３７は、検索条件として、質問文字列「ＫＡＷＡ」と後方一致する記号の番号の集合を求めよ、という条件を与えた場合の記号辞書検索の過程での主要な中間データを記述した概念図である。まず、記号辞書検索の第１ステップでは、質問文字列被覆手段４０３が、記号辞書４０１中のメタ記号情報を検索し、質問文字列「１ＫＡＷＡ」に対して、重複最長一致単語切り出し法によって被覆を求め、図３７の＊ＳＴＥＰ１のＣの被覆結果を得る。被覆処理の手順は、実施の形態３で示した記号の被覆処理の手順と同一である。この質問文字列の場合には被覆結果４０４が空でないので左延長メタ記号算定手段４０８での処理が開始されるが、被覆結果なしの場合には、ただちに処理を停止し、検索結果なしとする。次に、左延長メタ記号算定手段４０８が、記号辞書４０１のメタ記号情報を検索して、被覆結果４０４のうち、照合開始位置が１である被覆要素のメタ記号Ｚに対して、その延長メタ記号（すなわちＺを含む文字列のメタ記号）を求める。求めた延長メタ記号のうちで、質問文字列の第ｊ最左部分文字列Ｌ（すなわち質問文字列の第１文字から第ｊ文字までの部分文字列）の左延長メタ記号（すなわち文字列Ｌを末尾部分に含むメタ記号）になっているメタ記号Ｘだけを選別し、
（Ｘ，ｊ＋１−｜Ｌ｜，ｊ＋１）
を被覆結果４０４に追加する。この例の場合には、Ｚ＝「ＫＡＷＡ」となり、その延長メタ記号は、
「／ＳＵＫＡＷＡ」，「０／ＫＡＷＡＤ」，「０／ＫＡＷＡＮ」，「０／ＫＡＷＡＹ」，「５／ＫＡＷＡＤ」，「５／ＫＡＷＡＮ」，「５／ＫＡＷＡＹ」，
「ＫＡＷＡ」，「ＳＵＫＡＷＡ」
の９種が求まる。このうちで、質問文字列「ＫＡＷＡ」の最左部分列の左延長メタ記号にもなっている、
「／ＳＵＫＡＷＡ」，「／ＫＡＷＡ」
の２種のメタ記号が、左延長メタ記号算定手段４０８によって、被覆結果４０４に追加される。図３７の＊ＳＴＥＰ２が、この様子を示している。こうして、左延長メタ記号まで含めた被覆が求まったならば、記号番号集合算定手段４０５が、記号番号集合を求める。以降の処理は、図１１，図１２に沿って進められる。まずステップ１００１で、被覆結果中で、照合終了文字位置ｅがｎである要素からなる集合Ｄを求める。この例では
Ｄ＝｛（ＫＡＷＡ，１，５），（／ＳＵＫＡＷＡ，−２，５），（ＳＵＫＡＷＡ，−１，５）｝
となる。また、最終結果の集合ＳＣを空に初期化する。Ｄが空でないので、ステップ１００３に進み、Ｄから要素（ＫＡＷＡ，１，５）を選択し、記号辞書４０１中のメタ記号出現情報の中で、Ｍ＝「ＫＡＷＡ」の出現記号情報で（Ｘ，＊，０）の形のものを残らず探し、その記号Ｘの記号番号の集合をＡとして記録する。なお、図３７では、読みやすさを考慮して、記号番号でなく、記号文字列を用いてＡ，Ｃ，Ｄ等を記述している。この例では＊ＳＴＥＰ４で、  １９９８−ＪＡＮ−１７／ＰＭ０９３０／ＮＯＫＡＷＡ等の記号の記号番号が求まる。
【００５５】
Ａが求まった後、Ｄから今選択した要素（ＫＡＷＡ，１，５）を削除する。ステップ１００４の「Ａが空集合か？」という条件判定は「ｎｏ」となって、ステップ１００５に進む。ステップ１００５では、選択した被覆要素の照合開始位置ｔが１以下であるか否かを調べ、１以下ならば、最終結果の集合ＳＣに、この時点での集合Ａの要素を加え、２以上ならば、図１２の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ２（Ａ，ｐ，ｑ）  を呼び出す。この場合には、ｔ＝１なので、最終結果の集合ＳＣに、この時点での集合Ａの要素を加え、別の結果を探すため、再び検索処理が続行される。このようにして、被覆結果４０４から、系統的に被覆要素の組み合わせを生成しつつ、記号辞書４０１中のメタ記号出現情報を検索して、生成した被覆要素の組に共通して含まれる記号の番号の集合を求め、最終結果の集合ＳＣに記録していく。すべての被覆要素の組み合わせを処理した＊ＳＴＥＰ６の時点で処理を終了し、その時のＳＣが、検索結果となる。以上の説明のように、本発明の第４の実施の形態の記号辞書検索方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号情報が作成されており、このメタ記号情報を使って、質問文字列から一旦被覆結果を構成し、この被覆結果と、左延長メタ記号算定手段が追加した要素を加えた被覆結果から、メタ記号出現情報とを使って検索処理を行うので、高頻度で出現する部分文字列を含んだ記号の後方一致検索時でも、従来の記号辞書の検索に比べて高速に行えるようになる。
【００５６】
（実施の形態５）
以下、本発明の第５の形態について、図面を参照しながら説明する。図５は、本発明の請求項１１にかかる、記号辞書検索装置の全体構成を表わすブロック図である。図５において、５０１はメタ記号情報とメタ記号出現情報とを格納した記号辞書、５０２は検索条件である文字列を入力する検索条件入力手段、５０３は、検索条件入力手段５０２から入力された検索条件である質問文字列を、記号辞書５０１を使い、重複最長一致単語切り出し法によって被覆し、被覆結果を求める質問文字列被覆手段、５０４は質問文字列被覆手段５０３の求めた被覆結果、５０７は、記号辞書５０１のメタ記号情報を検索して、被覆結果５０４のうちで、最も照合開始文字位置の大きい被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、質問文字列の最右部分文字列Ｒの右延長メタ記号（すなわちＲを先頭部分に含むメタ記号）になっているメタ記号の番号と照合位置との組を、残らず求めて被覆結果５０４に追加格納する右延長メタ記号算定手段、５０８は、記号辞書５０１のメタ記号情報を検索して、被覆結果５０４のうちで照合開始文字位置が１である被覆要素のメタ記号Ｚの延長メタ記号（すなわち、Ｚを含むメタ記号）のうちで、質問文字列の最左部分文字列Ｌの左延長メタ記号（すなわちＬを末尾部分に含むメタ記号）になっているメタ記号の番号と照合位置との組を、残らず求めて被覆結果５０４に追加格納する左延長メタ記号算定手段、５０９は記号辞書５０１のメタ記号情報を検索して、質問文字列の両延長メタ記号（すなわち質問文字列Ｑを第ｊ文字から第ｊ＋｜Ｑ｜文字の部分（１＜ｊ）に含むメタ記号）Ｘを全て検索して、要素（Ｘ，１−ｊ，１−ｊ＋｜Ｘ｜）を被覆結果５０４に追加格納する両延長メタ記号算定手段、５０５は被覆結果５０４と、記号辞書５０１のメタ記号出現情報とから、質問文字列と中間一致する、すなわち、質問文字列を含む記号の番号の集合を算定する記号番号集合算定手段、５０６は記号番号集合算定手段５０５の算定した記号の番号などを出力する検索結果出力手段である。なお、図５の構成要素５０１乃至５０４および５０６は、第２の実施の形態のブロック図である図２の構成要素２０１乃至２０４および２０６と対応し、図５の構成要素５０７は第３の実施の形態のブロック図である図３の構成要素３０７と対応し、図５の構成要素５０８は第４の実施の形態のブロック図である図４の構成要素４０８と対応する。以上の構成の記号辞書検索装置において、その動作を、実施の形態１で例にあげた記号辞書と、簡単な検索条件を例に、図面を参照して説明する。
【００５７】
図７は質問文字列被覆手段５０３における被覆結果を求める処理の手順を記述した流れ図、図１３，図１４は記号番号集合算定手段５０５における記号番号集合の算定処理の手順を記述した流れ図、図３８，図３９は、検索条件として、質問文字列「ＫＡＷＡＤＡ」と中間一致する記号の番号の集合を求めよ、という条件を与えた場合の記号辞書検索の過程での主要な中間データを記述した概念図である。まず、記号辞書検索の第１ステップでは、質問文字列被覆手段５０３が、記号辞書５０１中のメタ記号情報を検索し、質問文字列「ＫＡＷＡＤＡ」に対して、重複最長一致単語切り出し法によって被覆を求め、図３８の＊ＳＴＥＰ１のＣの被覆結果を得る。被覆処理の手順は、実施の形態３で示した記号の被覆処理の手順と同一である。この質問文字列の場合には被覆結果５０４が空でないので右延長メタ記号算定手段５０７での処理が開始されるが、被覆結果なしの場合には、ただちに処理を停止し、検索結果なしとする。次に、右延長メタ記号算定手段５０７が、記号辞書５０１のメタ記号情報を検索して、被覆結果５０４のうち、最も照合開始位置の大きい被覆要素のメタ記号Ｚに対して、その延長メタ記号（すなわちＺを含む文字列のメタ記号）を求める。求めた延長メタ記号のうちで、質問文字列の第ｊ最右部分文字列Ｒ（すなわち質問文字列の第ｊ文字から最終文字までの部分文字列）の右延長メタ記号（すなわち文字列Ｒを先頭部分に含むメタ記号）になっているメタ記号Ｘだけを選別し、
（Ｘ，ｊ，｜Ｒ｜＋ｊ）
を被覆結果５０４に追加する。この例の場合には、Ｚ＝「ＷＡＤＡ」となり、その延長メタ記号として「ＷＡＤＡ」ただ１種が求まる。これは、質問文字列「ＫＡＷＡＤＡ」の最右部分列の右延長メタ記号にもなっているので、右延長メタ記号算定手段５０７は、被覆結果５０４に追加するが、すでに被覆結果５０４に同一の被覆要素が含まれているため被覆結果５０４は変化しない。図３８の＊ＳＴＥＰ２が、この様子を示している。次に、左延長メタ記号算定手段５０８が、記号辞書５０１のメタ記号情報を検索して、被覆結果５０４のうち、照合開始位置が１である被覆要素のメタ記号Ｚに対して、その延長メタ記号（すなわちＺを含む文字列のメタ記号）を求める。求めた延長メタ記号のうちで、質問文字列の第ｊ最左部分文字列Ｌ（すなわち質問文字列の第１文字から第ｊ文字までの部分文字列）の左延長メタ記号（すなわち文字列Ｌを末尾部分に含むメタ記号）になっているメタ記号Ｘだけを選別し、
（Ｘ，ｊ＋１−｜Ｌ｜，ｊ＋１）
を被覆結果５０４に追加する。この例の場合には、Ｚ＝「ＫＡＷＡ」となり、その延長メタ記号は、
「／ＳＵＫＡＷＡ」，「０／ＫＡＷＡＤ」，「０／ＫＡＷＡＮ」，「０／ＫＡＷＡＹ」，「５／ＫＡＷＡＤ」，
「５／ＫＡＷＡＮ」，「５／ＫＡＷＡＹ」，「ＫＡＷＡ」，「ＳＵＫＡＷＡ」
の９種が求まる。このうちで、質問文字列「ＫＡＷＡＤＡ」の最左部分列の左延長メタ記号にもなっている、
「／ＳＵＫＡＷＡ」，「０／ＫＡＷＡＤ」，「５／ＫＡＷＡＤ」，「ＫＡＷＡ」，「ＳＵＫＡＷＡ」
の５種のメタ記号が、左延長メタ記号算定手段５０８によって、被覆結果５０４に追加される。図３８の＊ＳＴＥＰ３が、この様子を示している。次に、両延長メタ記号算定手段５０９が、記号辞書５０１のメタ記号情報を検索して、質問文字列「ＫＡＷＡＤＡ」の両延長メタ記号（すなわち文字列「ＫＡＷＡＤＡ」を第ｊ文字から第ｊ＋６文字の部分（１＜ｊ）に含むメタ記号）Ｘを全て検索して、要素（Ｘ，１−ｊ，１−ｊ＋｜Ｘ｜）を被覆結果５０４に追加する。この例の場合には、「ＫＡＷＡＤＡ」を含むメタ記号は、記号辞書５０１のメタ記号情報中にはなく、したがって被覆結果５０４には何も追加されない。図４２の＊ＳＴＥＰ４が、この様子を示している。こうして、右延長メタ記号、左延長メタ記号、両延長記号まで含めた被覆が求まったならば、記号番号集合算定手段５０５が、記号番号集合を求める。以降の処理は、図１３，図１４に沿って進められる。まずステップ１１０１で、被覆結果中で、照合開始文字位置ｓが１以下である要素からなる集合Ｄを求める。この例では
Ｄ＝｛  （ＫＡＷＡ，１，５），  （／ＳＵＫＡＷＡ，−１，５），  （０／ＫＡＷＡＤ，−１，６），  （５／ＫＡＷＡＤ，−１，６），  （ＳＵＫＡＷＡ，−１，５）  ｝
となる。また、最終結果の集合ＳＣを空に初期化する。
【００５８】
図３８の＊ＳＴＥＰ５がこの様子を示している。Ｄが空でないので、ステップ１１０３に進み、Ｄから要素（ＫＡＷＡ，１，  ）を選択し、記号辞書５０１中のメタ記号出現情報の中で、Ｍ＝「ＫＡＷＡ」の各出現記号情報（Ｘ，Ｌ，Ｒ）に対して、（Ｘ，Ｌ）の形の要素の集合を求めてＡとして記録する。なお、図３８，図３９では、読みやすさを考慮して、記号番号でなく、記号文字列を用いてＡ，Ｃ，Ｄ等を記述している。この例では＊ＳＴＥＰ６で、  （１９９８−ＪＡＮ−１７／ＰＭ０９３０／ＮＯＫＡＷＡ，２１）  等の要素が求まる。Ａが求まった後、Ｄから今選択した要素（ＫＡＷＡ，１，５）を削除する。ステップ１１０４の「Ａが空集合か？」という条件判定は「ｎｏ」となって、ステップ１１０５に進む。ステップ１１０５では、選択した被覆要素の照合終了位置ｑがｎより大きいか否かを調べ、ｎより大きければ、最終結果の集合ＳＣに、この時点での集合Ａの要素を加え、ｎ以下ならば、図１４の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ３（Ａ，ｐ，ｑ）  を呼び出す。この場合には、ｑ＝５なので、手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ３（Ａ，１，５）  を呼び出す。図１４のステップ１１０８では、照合位置（ｓ，ｅ）が１＜ｓ≦５＜ｅである要素をＣから全て選び、Ｄ１とする。この例では、Ｄ１＝｛（ＷＡＤＡ，３，７）｝  となる。Ｄ１が空でないので、１１０９の判定は「ｎｏ」となり、ステップ１１１０に進む。ステップ１１１０では、Ｄ１から唯一の要素  （ＷＡＤＡ，３，７）  を選択し、Ｍ＝「ＷＡＤＡ」の各出現記号情報  （Ｘ，Ｌ，Ｒ）  に対して、（Ｘ，Ｌ−２）  をＢに記録し、選択した要素をＤ１から削除する。さらに、Ａ  ∩  Ｂ  を計算するが、共通部分がなく、Ａ１は空となって、ステップ１１１１の判定結果が「ｙｅｓ」となり、ステップ１１０９に戻る。ところが、Ｄ１は空なので、ステップ１１０９での判定結果は「ｙｅｓ」となり、ｓｅｌｅｃｔ＿ｃｏｖｅｒ３  から戻る。図３８の＊ＳＴＥＰ８がこの様子を示している。図１３のステップ１１０２では、Ｄが空でないため、再びステップ１１０３に進む。ステップ１１０３では、Ｄから要素（／ＳＵＫＡＷＡ，２，５）  を選択し、＊ＳＴＥＰ９のようなＡを算出し、ステップ１１０７まで進み、再び図１４の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ３（Ａ，１，５）  を呼び出す。図１４のステップ１１０８では、照合位置（ｓ，ｅ）が１＜ｓ≦５＜ｅである要素をＣから全て選び、Ｄ１とする。この例では、Ｄ１＝｛（ＷＡＤＡ，３，７）  ｝  となる。図３８の＊ＳＴＥＰ１０がこの様子を示している。Ｄ１が空でないので、１１０９の判定は「ｎｏ」となり、ステップ１１１０に進む。ステップ１１１０では、Ｄ１から唯一の要素  （ＷＡＤＡ，３，７）  を選択し、Ｍ＝「ＷＡＤＡ」の各出現記号情報  （Ｘ，Ｌ，Ｒ）  に対して、（Ｘ，Ｌ−２）  をＢに記録し、選択した要素をＤ１から削除する。さらに、Ａ  ∩  Ｂ  を計算するが、共通部分がなく、Ａ１は空となって、ステップ１１１１の判定結果が「ｙｅｓ」となり、ステップ１１０９に戻る。ところが、Ｄ１は空なので、ステップ１１０９での判定結果は「ｙｅｓ」となり、ｓｅｌｅｃｔ＿ｃｏｖｅｒ３  から戻る。図３８の＊ＳＴＥＰ１１がこの様子を示して���る。図１３のステップ１１０２では、Ｄが空でないため、再びステップ１１０３に進む。ステップ１１０３では、Ｄから要素（０／ＫＡＷＡＤ，−１，６）を選択し、＊ＳＴＥＰ１２のようなＡを算出し、ステップ１１０７まで進み、再び図１４の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ３（Ａ，，６）を呼び出す。図１４のステップ１１０８では、照合位置（ｓ，ｅ）が１＜ｓ≦６＜ｅである要素をＣから全て選び、Ｄ１とする。この例では、Ｄ１＝｛（ＷＡＤＡ，３，７）｝  となる。図３９の＊ＳＴＥＰ１３がこの様子を示している。Ｄ１が空でないので、１１０９の判定は「ｎｏ」となり、ステップ１１１０に進む。
【００５９】
ステップ１１１０では、Ｄ１から唯一の要素  （ＷＡＤＡ，３，）を選択し、Ｍ＝「ＷＡＤＡ」の各出現記号情報  （Ｘ，Ｌ，Ｒ）  に対して、（Ｘ，Ｌ−２）  をＢに記録し、選択した要素をＤ１から削除する。さらに、Ａ  ∩  Ｂ  を計算する。この共通部分Ａ１が空でなく、かつｕ＝７はｎ＝６より大きいので、ステップ１１１３に進み、最終結果の一部として、Ａ１をＳＣに加える。ステップ１１０９に戻ると、Ｄ１が空なので、ｓｅｌｅｃｔ＿ｃｏｖｅｒ３  から戻る。図３９の＊ＳＴＥＰ１４がこの様子を示している。図１３のステップ１１０２では、Ｄが空でないため、再びステップ１１０３に進む。ステップ１１０３では、Ｄから要素（５／ＫＡＷＡＤ，−１，６）を選択し、＊ＳＴＥＰ１５のようなＡを算出し、ステップ１１０７まで進み、再び図１４の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ３（Ａ，１，６）  を呼び出す。図１４のステップ１１０８では、照合位置（ｓ，ｅ）が１＜ｓ≦６＜ｅである要素をＣから全て選び、Ｄ１とする。この例では、Ｄ１＝｛（ＷＡＤＡ，３，７）｝  となる。図３９の＊ＳＴＥＰ１６がこの様子を示している。Ｄ１が空でないので、１１０９の判定は「ｎｏ」となり、ステップ１１１０に進む。ステップ１１１０では、Ｄ１から唯一の要素  （ＷＡＤＡ，３，７）  を選択し、Ｍ＝「ＷＡＤＡ  」の各出現記号情報  （Ｘ，Ｌ，Ｒ）  に対して、（Ｘ，Ｌ−２）  をＢに記録し、選択した要素をＤ１から削除する。さらに、Ａ  ∩  Ｂ  を計算する。この共通部分Ａ１が空でなく、かつｕ＝７はｎ＝６より大きいので、ステップ１１１３に進み、最終結果の一部として、Ａ１をＳＣに加える。ステップ１１０９に戻ると、Ｄ１が空なので、ｓｅｌｅｃｔ＿ｃｏｖｅｒ３  から戻る。図３９の＊ＳＴＥＰ１７がこの様子を示している。図１３のステップ１１０２では、Ｄが空でないため、再びステップ１１０３に進む。ステップ１１０３では、Ｄから要素（ＳＵＫＡＷＡ，−１，５）  を選択し、＊ＳＴＥＰ１８のようなＡを算出し、ステップ１１０７まで進み、再び図１４の手続き  ｓｅｌｅｃｔ＿ｃｏｖｅｒ３（Ａ，１，５）  を呼び出す。図１４のステップ１１０８では、照合位置（ｓ，ｅ）が１＜ｓ≦５＜ｅである要素をＣから全て選び、Ｄ１とする。この例では、Ｄ１＝｛（ＷＡＤＡ，３，７）｝となる。図３８の＊ＳＴＥＰ１９がこの様子を示している。Ｄ１が空でないので、１１０９の判定は「ｎｏ」となり、ステップ１１１０に進む。ステップ１１１０では、Ｄ１から唯一の要素  （ＷＡＤＡ，３，７）を選択し、Ｍ＝「ＷＡＤＡ」の各出現記号情報  （Ｘ，Ｌ，Ｒ）  に対して、（Ｘ，Ｌ−２）  をＢに記録し、選択した要素をＤ１から削除する。さらに、Ａ  ∩  Ｂ  を計算するが、共通部分がなく、Ａ１は空となって、ステップ１１１１の判定結果が「ｙｅｓ」となり、ステップ１１０９に戻る。ところが、Ｄ１は空なので、ステップ１１０９での判定結果は「ｙｅｓ」となり、ｓｅｌｅｃｔ＿ｃｏｖｅｒ３  から戻る。図３８の＊ＳＴＥＰ２０がこの様子を示している。図１３のステップ１１０２では、Ｄが空であるので、記号番号集合の算定処理を終了する。この時点における、ＳＣが、中間一致照合する記号（の番号）と、照合部分の左側（記号の先頭側）の文字数の組��集合をもれなく保持しているので、各組の第１要素を取り出せば、中間一致検索結果が得られる。このようにして、被覆結果５０４から、系統的に被覆要素の組み合わせを生成しつつ、記号辞書５０１中のメタ記号出現情報を検索して、生成した被覆要素の組に共通して含まれる記号の番号の集合を求めることができる。
【００６０】
以上の説明のように、本発明の第５の実施の形態の記号辞書検索方法によれば、記号データ中で高頻度で出現する部分文字列については、より多くの文字数を持つメタ記号を持ったメタ記号情報が作成されており、このメタ記号情報を使って、質問文字列から一旦被覆結果を構成し、この被覆結果と、右延長メタ記号算定手段、左延長メタ記号算定手段、両延長メタ記号算定手段の３つの手段が追加した要素を加えた被覆結果から、メタ記号出現情報とを使って検索処理を行うので、高頻度で出現する部分文字列を含んだ記号の中間一致検索時でも、従来の記号辞書の検索に比べて高速に行えるようになる。
【００６１】
以上、本発明の５種類の実施の形態における説明のように、本発明の記号辞書作成方法および記号辞書検索方法によれば、
（１）記号データ中の記号を被覆するより短い「メタ記号」と呼ぶ記号を集めたメタ記号辞書を自動的に作成し、このメタ記号辞書中のメタ記号で記号データ中の各記号を被覆し、各記号がどのように被覆されたか、という情報を、各メタ記号毎に記録したメタ記号出現情報を作成する
（２）質問文字列を、記号辞書に含まれるメタ記号辞書を検索してメタ記号で被覆し、被覆結果に左，右，両延長メタ記号の検索結果を追加し、質問文字列あるいはその左，右，両延長文字列を被覆する被覆結果中の要素集合毎に、共通して含まれる記号番号集合を求めることにより、従来の記号辞書作成方法および記号辞書検索方法における、
（１）作成する記号辞書ファイルが検索対象の記号データの２倍以上の大きさになり、使用できる記憶装置の容量に制約のある場合に実現が困難である。
（２）文字列が長く、高頻出の文字，あるいは文字連鎖を含む記号を検索する場合には、記号辞書から検索すべきデータ量が多くなり、検索速度が低下する。
（３）文字連鎖を利用する方法において、文字連鎖数Ｎを大きくすると、出現するＮ文字連鎖の種類が急激に増加し、記号辞書の作成が困難になり、また作成した記号辞書の容量も増加する
という様々な課題を解決できる。
【００６２】
このように、従来の記号辞書作成，検索技術では困難であった、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成を可能になり、しかも完全一致照合が質問の大部分を占めるような用途でも、平均検索速度が低下しない記号検索を可能になるので、実用上、非常に大きな効果が得られる。
【００６３】
なお、上記の５種の実施の形態において、文字セットとして、英数字と特殊記号対象としたが、漢字やギリシャ文字を追加した文字セットを対象としても、同様に実施できる。また、第１の実施の形態において、記号辞書の作成に先立って図１６のような１文字のみのメタ記号辞書を用意したが、図１６の内容に加えて「１９９８−」、「ＡＭ」など予め出現が予測できる２文字以上のメタを含む、メタ記号辞書を用意してもよく、その場合も上記の説明と同様な手順で記号辞書が作成できる。また、メタ記号情報の格納形式として、ＴＲＩＥ構造と表構造を用いたが、有限状態機械やＰＡＴＲＩＣＩＡ木，ハッシュ表など、他のデータ構造を用いた場合にも、上述の説明と同様の手順で実施できる。メタ記号出現情報の格納形式についても、表ではなく、ＴＲＩＥやハッシュ表など他のデータ構造を用いた場合にも、やはり上述の説明と同様の手順で実施できる。
【００６４】
記号辞書検索においても、説明の便宜のため被覆結果などを、集合を用いて表現したが、リンクトリストやヒープ、木構造、ハッシュ表など、他のデータ構造を用いた場合にも、やはり上述の説明と同様の手順で実施できる。
【００６５】
【発明の効果】
以上のように本発明の記号辞書作成方法は記号データを完全一致照合、前方一致照合、後方一致照合、中間一致照合によって機械検索するための記号辞書の作成に際して、記号データ中の記号を被覆するより短い「メタ記号」と呼ぶ記号を集めたメタ記号辞書を自動的に作成し、このメタ記号辞書中のメタ記号で記号データ中の各記号を被覆し、各記号がどのように被覆されたか、という情報を、各メタ記号毎に記録したメタ記号出現情報を作成することにより、中間一致照合まで含めた高速な検索が可能で、かつ容量の小さな記号辞書の作成が可能になるという、優れた効果を奏するものである。
【００６６】
また、本発明の記号辞書検索方法は、記号辞書の完全一致照合、前方一致照合、後方一致照合、中間一致照合による機械検索に際して、質問文字列を、記号辞書に含まれるメタ記号辞書を検索してメタ記号で被覆し、被覆結果に左，右，両延長メタ記号の検索結果を追加し、質問文字列あるいはその左，右，両延長文字列を被覆する被覆結果中の要素集合毎に、共通して含まれる記号番号集合を求めることにより、容量の小さな記号辞書を用いて、中間一致照合まで含めた高速な検索が可能で、しかも完全一致照合が質問の大部分を占めるような用途でも、平均検索速度が低下しない記号検索が可能になるという、優れた効果を奏するものである。
【００６７】
本発明の効果は、検索対象となる記号データが数万種類以上の記号を含んでおり、各記号の文字数が多く、数多くの記号に共通に含まれる部分文字列が存在するような、分布に偏りのある大規模な記号データから記号辞書を作成し、検索する場合に、極めて顕著に現れる。例えば、各記号が１００桁の数字で、その上位９０桁分がどの記号でも等しく、下位１０桁が各記号ですべて異なるような記号を１００万個含んだ記号データから、記号辞書を作成する実験を行うと、従来のｎ−ｇｒａｍ方式の記号辞書では、少なくとも１億個の記号番号・出現文字位置情報と、文字連接のための情報が必要で、そのサイズは４００メガバイト以上となるが、本発明の記号辞書作成方法で作成した記号辞書では、約５万種類のメタ記号の情報と、約４００万個のメタ記号出現情報を記録すればよく、そのサイズは４０メガバイト以下であり、従来の１／１０以下の容量になる。さらに、完全一致照合による検索を行う場合には、従来のｎ−ｇｒａｍ方式の記号辞書では、文字連接の連接数ｎを４１以上にとらない限り、上位４０桁分の中間結果が常に１００万記号分となって、検索速度が大幅に低下するが、本発明の記号辞書の検索では、記号データの分布の偏りに適応した、４０＋α桁のメタ記号を含む、メタ記号辞書が自動的に作成され、質問文字列に関連するメタ記号の出現情報だけを参照して記号番号を求めるため、極めて高速に検索が行える。このように、従来は困難であった、偏りのある記号データに対しても、中間一致まで含めて高速な検索処理が可能となり、実用上、非常に大きな効果が得られる。
【図面の簡単な説明】
【図１】第１の実施の形態における記号辞書作成装置の全体構成を表わすブロック図
【図２】第２の実施の形態における記号辞書検索装置の全体構成を表わすブロック図
【図３】第３の実施の形態における記号辞書検索装置の全体構成を表わすブロック図
【図４】第４の実施の形態における記号辞書検索装置の全体構成を表わすブロック図
【図５】第５の実施の形態における記号辞書検索装置の全体構成を表わすブロック図
【図６】第１の実施の形態における記号被覆手段での被覆処理の手順を記述した流れ図
【図７】第２〜第５の実施の形態における質問文字列被覆手段での被覆処理の手順を記述した流れ図
【図８】第２の実施の形態における記号番号算定手段での記号番号の算定処理の手順を記述した流れ図
【図９】第３の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図１０】第３の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図１１】第４の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図１２】第４の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図１３】第５の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図１４】第５の実施の形態における記号番号集合算定手段での記号番号集合の算定処理の手順を記述した流れ図
【図１５】第１の実施の形態における記号データの例
【図１６】第１の実施の形態における初期段階のメタ記号辞書の登録内容の例
【図１７】第１の実施の形態におけるメタ記号度数表の内容の例
【図１８】第１の実施の形態におけるメタ記号度数表の内容の例
【図１９】第１の実施の形態におけるメタ記号辞書の例
【図２０】第１の実施の形態におけるメタ記号辞書の一部の例
【図２１】第１の実施の形態におけるメタ記号度数表の内容の例
【図２２】第１の実施の形態におけるメタ記号度数表の内容の例
【図２３】第１の実施の形態におけるメタ記号度数表の内容の例
【図２４】第１の実施の形態におけるメタ記号度数表の内容の例
【図２５】第１の実施の形態におけるメタ記号度数表の内容の例
【図２６】第１の実施の形態におけるメタ記号度数表の内容の例
【図２７】第１の実施の形態におけるメタ記号度数表の内容の例
【図２８】第１の実施の形態におけるメタ記号度数表の内容の例
【図２９】第１の実施の形態におけるメタ記号出現情報の内容の例
【図３０】第１の実施の形態におけるメタ記号辞書のデータ構造の例を表す概念図
【図３１】第１の実施の形態におけるメタ記号辞書のデータ構造の例を表す概念図
【図３２】第１の実施の形態におけるメタ記号辞書のデータ構造の例を表す概念図
【図３３】第１の実施の形態におけるメタ記号の延長情報の内容の例
【図３４】第２の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図３５】第３の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図３６】第３の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図３７】第４の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図３８】第５の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【図３９】第５の実施の形態における記号辞書検索の過程での主要な中間データを記述した概念図
【符号の説明】
１０１    記号データ
１０２    メタ記号辞書
１０３    記号被覆手段
１０４    メタ記号集計手段
１０５    メタ記号度数表
１０６    メタ記号辞書更新判定手段
１０７    メタ記号出現情報作成手段
１０８    メタ記号出現情報
１０９    記号辞書作成手段
１１０    記号辞書
２０１    記号辞書
２０２    検索条件入力手段
２０３    質問文字列被覆手段
２０４    被覆結果
２０５    記号番号算定手段
２０６    検索結果出力手段
３０１    記号辞書
３０２    検索条件入力手段
３０３    質問文字列被覆手段
３０４    被覆結果
３０５    記号番号集合算定手段
３０６    検索結果出力手段
３０７    右延長メタ記号算定手段
４０１    記号辞書
４０２    検索条件入力手段
４０３    質問文字列被覆手段
４０４    被覆結果
４０５    記号番号集合算定手段
４０６    検索結果出力手段
４０８    左延長メタ記号算定手段
５０１    記号辞書
５０２    検索条件入力手段
５０３    質問文字列被覆手段
５０４    被覆結果
５０５    記号番号集合算定手段
５０６    検索結果出力手段
５０７    右延長メタ記号算定手段
５０８    左延長メタ記号算定手段
５０９    両延長メタ記号算
【図１】
0003566111.tif 000002
【図２】
0003566111.tif 000003
【図３】
0003566111.tif 000004
【図４】
0003566111.tif 000005
【図５】
0003566111.tif 000006
【図６】
0003566111.tif 000007
【図７】
0003566111.tif 000008
【図８】
0003566111.tif 000009
【図９】
0003566111.tif 000010
【図１０】
0003566111.tif 000011
【図１１】
0003566111.tif 000012
【図１２】
0003566111.tif 000013
【図１３】
0003566111.tif 000014
【図１４】
0003566111.tif 000015
【図１５】
0003566111.tif 000016
【図１６】
0003566111.tif 000017
【図１７】
0003566111.tif 000018
【図１８】
0003566111.tif 000019
【図１９】
0003566111.tif 000020
【図２０】
0003566111.tif 000021
【図２１】
0003566111.tif 000022
【図２２】
0003566111.tif 000023
【図２３】
0003566111.tif 000024
【図２４】
0003566111.tif 000025
【図２５】
0003566111.tif 000026
【図２６】
0003566111.tif 000027
【図２７】
0003566111.tif 000028
【図２８】
0003566111.tif 000029
【図２９】
0003566111.tif 000030
【図３０】
0003566111.tif 000031
【図３１】
0003566111.tif 000032
【図３２】
0003566111.tif 000033
【図３３】
0003566111.tif 000034
【図３４】
0003566111.tif 000035
【図３５】
0003566111.tif 000036
【図３６】
0003566111.tif 000037
【図３７】
0003566111.tif 000038
【図３８】
0003566111.tif 000039
【図３９】
0003566111.tif 000040