(57)【特許請求の範囲】
【請求項１】
照合文字情報との照合処理を行なうコンピュータに、
照合対象の文書データに、ある言語単位に対する第１の表記である第１の文字情報と前記ある言語単位に対する第２の表記である第２の文字情報とを併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報における第１の対象文字情報との第１の照合処理および前記第２の文字情報に対する前記照合文字情報における前記第１の対象文字情報との第２の照合処理を並列に行ない、前記第１の照合処理の結果を示す第１状態情報および前記第２の照合処理の結果を示す第２の状態情報を生成し、
少なくとも前記第１の状態情報および前記第２の状態情報のうち照合処理の結果が一致することを示す一方の状態情報に基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報と前記照合文字情報において前記第１の対象文字情報に後続する第２の対象文字情報との照合処理を行なう、
処理を実行させるための照合プログラム。
【請求項２】
前記コンピュータに、さらに、
前記文書データから前記指示の読み出しに応じて、前記指示の読み出し前までに行なわれた照合の結果を示す状態情報を複製する、
処理を実行させ、
前記第１の照合処理は、複製して得られた一方の状態情報に基づいて行なわれ、前記第２の照合処理は、複製して得られた他方の状態情報に基づいて行なわれる、
ことを特徴とする請求項１に記載の照合プログラム。
【請求項３】
前記第１の表記がルビの親文字での表記であり、前記第２の表記がルビでの表記である、
ことを特徴とする請求項１又は請求項２に記載の照合プログラム。
【請求項４】
前記コンピュータに、さらに、
前記後続する文字情報が、他の言語単位について併記が指示された、前記他の言語単位に対する第３の表記である第３の文字情報及び前記他の言語単位に対する第４の表記である第４の文字情報である場合に、少なくとも前記第１の状態情報および前記第２の状態情報のうち照合処理の結果が一致することを示す前記一方の状態情報に基づいて、前記第３の文字情報と前記第２の対象文字情報との第３の照合処理および前記第４の文字情報と前記第２の対象文字情報との第４の照合処理を並列に行なう、
処理を実行させることを特徴とする請求項１〜３のいずれか１項に記載の照合プログラム。
【請求項５】
前記第１の文字情報と前記第２の文字情報とを併記させる前記指示は、前記文書データにおいて併記制御の開始を示す指示に後続し、
前記コンピュータに、さらに、
前記文書データから前記併記制御の終了を示す指示の読み出しに応じて、前記第１の状態情報と前記第２の状態情報との間で重複する状態情報のうちのいずれかを削除する、
処理を実行させることを特徴とする請求項２に記載の照合プログラム。
【請求項６】
前記状態情報は複数桁のアドレスによって示される記憶領域に格納され、
前記状態情報を複製する処理は、前記複数桁のうちの状態情報の複製回数に応じた桁が第１値である第１のアドレスによって示される前記記憶領域のうちの第１の記憶領域から前記桁が第２値である第２のアドレスによって示される前記記憶領域のうちの第２の記憶領域に前記状態情報を複製する、
ことを特徴とする請求項２に記載の照合プログラム。
【請求項７】
前記コンピュータに、さらに、
前記第１の状態情報および前記第２の状態情報のうちの他方の状態情報に基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報と前記照合文字情報において前記第１の対象文字情報に後続する第２の対象文字情報との照合処理を行なう、
処理を実行させることを特徴とする請求項１〜６のいずれか１項に記載の照合プログラム。
【請求項８】
照合文字情報との照合処理を行なうコンピュータによって実行される照合方法において、
前記コンピュータが、照合対象の文書データに、ある言語単位に対する第１の表記である第１の文字情報と前記ある言語単位に対する第２の表記である第２の文字情報とを併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報における第１の対象文字情報との第１の照合処理および前記第２の文字情報に対する前記照合文字情報における前記第１の対象文字情報との第２の照合処理を並列に行ない、前記第１の照合処理の結果を示す第１の状態情報および前記第２の照合処理の結果を示す第２の状態情報を生成し、
前記コンピュータが、少なくとも前記第１の状態情報および前記第２の状態情報のうち照合処理の結果が一致することを示す状態情報に基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報と前記照合文字情報において前記第１の対象文字情報に後続する第２の対象文字情報との照合処理を行なう、
ことを特徴とする照合方法。
【請求項９】
照合文字情報を受け付ける受付部と、
照合対象の文書データに、ある言語単位に対する第１の表記である第１の文字情報と前記ある言語単位に対する第２の表記である第２の文字情報とを併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報における第１の対象文字情報との第１の照合処理および前記第２の文字情報に対する前記照合文字情報における前記第１の対象文字情報との第２の照合処理を並列に行ない、前記第１の照合処理の結果を示す第１の状態情報および前記第２の状態情報を生成し、少なくとも前記第１の状態情報および前記第２の状態情報のうち照合処理の結果が一致することを示す状態情報に基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報と前記照合文字情報において前記第１の対象文字情報に後続する第２の対象文字情報との照合処理を行なう照合部と、
を含むことを特徴とする照合装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字情報の照合技術に関する。
【背景技術】
【０００２】
ｈｔｍｌなどのマークアップ言語において、文章の修飾情報（文字の大きさの指定、組版の状態など）は、テキストで表現されるタグなどを用いて指定される。修飾情報に基づいた修飾の１つとして、１つの意味を有する言語単位（単語又は文字などの言語を構成する単位）を複数の異なる表記による文字情報で併記させる修飾（例えば、ルビ付きの文字列の表示、ピン音付きの中国語の表示など）がある。マークアップ言語で記述されたテキスト内では、タグにより表記（表示位置、表示サイズなどの表示ルール）を指定される。例えば、文字列にルビを付与する場合には、ルビ文字であることが指定された表記か、ルビ文字が付される文字（親文字）であることが指定された表記かがタグにより識別される。ｈｔｍｌにおいては、「七夕祭り」という文字情報の部分は、「＜ｒｕｂｙ＞＜ｒｂ＞七夕＜／ｒｂ＞＜ｒｐ＞（＜／ｒｐ＞＜ｒｔ＞たなばた＜／ｒｔ＞＜ｒｐ＞）＜／ｒｐ＞＜ｒｂ＞祭＜／ｒｂ＞＜ｒｐ＞（＜／ｒｐ＞＜ｒｔ＞まつ＜／ｒｔ＞＜ｒｐ＞）＜／ｒｐ＞＜／ｒｕｂｙ＞り」などの記述（記述Ｄ１）で表現される。記述Ｄ１の場合、「七夕」が親文字で、「たなばた」がルビ文字である。  記述Ｄ１はタグ情報を除くと「七夕…たなばた…祭…まつ…り」であるため、例えば、「七夕祭り」などの検索文字列で検索を行なった場合には、検索文字列に合致しないと判定される。
【０００３】
それに対し、検索対象の文書内の文字情報（タグを除く）に、ルビが付されない文字列か、親文字か、ルビ文字であるかを識別する情報を対応付けておき、検索文字列の始めの文字と合致する文字と同じ識別情報に対応付けられた文字のみと、検索文字列を照合させる技術がある。照合処理により検索文字列の先頭と親文字が一致した場合には、後続の親文字までの間に存在するルビ文字との照合をスキップし、スキップされたルビ文字の後に存在する親文字との照合が行なわれる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３３０９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、検索文字列の先頭文字が親文字と一致すると、ルビとの照合をスキップしてしまうので、検索文字列のうち、一部が親文字と一致し、他の一部がルビ文字と一致する場合には一致しないと判断してしまう。例えば、「七夕まつり」や「たなばた祭り」などの検索文字列は、記述Ｄ１には含まれないと判断される。
【０００６】
本開示の一側面において、複数通りの表記の併記を指示された文字情報であって、併記させる指示に基づいて表示させると連続して示される文字情報が照合文字列である場合に、照合文字列と、併記させる指示がなされた文字情報とが一致しないと判定されることを抑制することを目的とする。
【課題を解決するための手段】
【０００７】
一態様によれば、照合プログラムが、照合文字情報との照合処理を行なうコンピュータに、照合対象の文書データに、ある言語単位に対する第１の表記である第１の文字情報と前記ある言語単位に対する第２の表記である第２の文字情報とを併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報における第１の対象文字情報との第１の照合処理および前記第２の文字情報に対する前記照合文字情報における前記第１の対象文字情報との第２の照合処理を並列に行ない、前記第１の照合処理の結果を示す第１状態情報および前記第２の照合処理の結果を示す第２の状態情報を生成し、少なくとも前記第１の状態情報および前記第２の状態情報のうち照合処理の結果が一致することを示す一方の状態情報に基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報と前記照合文字情報において前記第１の対象文字情報に後続する第２の対象文字情報との照合処理を行なう、処理を実行させる。
【０００８】
一態様によれば、照合文字情報との照合処理を行なうコンピュータによって実行される照合方法において、照合対象の文書データに、ある言語単位に対する第１の表記である第１の文字情報と前記ある言語単位に対する第２の表記である第２の文字情報とを併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報における第１の対象文字情報との第１の照合処理および前記第２の文字情報に対する前記照合文字情報における前記第１の対象文字情報との第２の照合処理を並列に行ない、前記第１の照合処理の結果を示す第１状態情報および前記第２の照合処理の結果を示す第２の状態情報を生成し、少なくとも前記第１の状態情報および前記第２の状態情報のうち照合処理の結果が一致することを示す一方の状態情報に基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報と前記照合文字情報において前記第１の対象文字情報に後続する第２の対象文字情報との照合処理を行なう、照合方法である。
【０００９】
一態様によれば、照合装置が、照合文字情報を受け付ける受付部と、照合対象の文書データに、ある言語単位に対する第１の表記である第１の文字情報と前記ある言語単位に対する第２の表記である第２の文字情報とを併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報における第１の対象文字情報との第１の照合処理および前記第２の文字情報に対する前記照合文字情報における前記第１の対象文字情報との第２の照合処理を並列に行ない、前記第１の照合処理の結果を示す第１状態情報および前記第２の照合処理の結果を示す第２の状態情報を生成し、少なくとも前記第１の状態情報および前記第２の状態情報のうち照合処理の結果が一致することを示す一方の状態情報に基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報と前記照合文字情報において前記第１の対象文字情報に後続する第２の対象文字情報との照合処理を行なう照合部と、を含む。
【発明の効果】
【００１０】
本発明の一側面において、複数通りの表記の併記を指示された文字情報であって、併記させる指示に基づいて表示させると連続して示される文字情報が照合文字列である場合に、照合文字列と、併記させる指示がなされた文字情報とが一致しないと判定されることを抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、コンピュータ１の機能ブロックの例を示す。
【図２】図２は、オートマトンのモデル図を示す。
【図３】図３は、オートマトンのデータ構造例を示す。
【図４】図４は、状態情報の例を示す。
【図５】図５は、検索文字列との一致箇所を示すテーブルの例である。
【図６】図６は、記憶領域Ｒ０〜Ｒ５の時系列変化を示す
【図７】図７は、コンピュータ１を含むシステム構成を示す。
【図８】図８は、コンピュータ１のハードウェア構成を示す。
【図９】図９は、コンピュータ１のソフトウェア構成を示す。
【図１０】図１０は、検索部１１による検索処理のフローを示す。
【図１１】図１１は、生成部１４によるオートマトン生成フローを示す。
【図１２Ａ】図１２Ａは、照合処理のフローを示す。
【図１２Ｂ】図１２Ｂは、照合処理のフローを示す。
【図１３Ａ−Ｂ】図１３Ａ及びＢは、オートマトンのモデル図を示す。
【図１４Ａ】図１４Ａは、記憶領域の時系列変化を示す。
【図１４Ｂ】図１４Ｂは、記憶領域の時系列変化を示す。
【図１５】図１５は、記憶領域の時系列変化を示す。
【発明を実施するための形態】
【００１２】
図１は、第１の実施形態におけるコンピュータ１の機能ブロックの例を示す。コンピュータ１は、検索部１１および記憶部１２を含む。記憶部１２は、例えば、検索対象となるファイル群Ｆ１〜Ｆｎなどを記憶する。検索部１１は、記憶部１２に記憶されたファイル群Ｆ１〜Ｆｎについて検索を行なう。
【００１３】
検索部１１は、受付部１３、生成部１４、読出部１５、検知部１６、照合部１７及び出力部１８を含む。受付部１３は、検索文字列の指定を含む検索要求を受け付ける。生成部１４は、受付部１３が受け付けた検索要求に含まれる検索文字列に基づいてオートマトンを生成する。読出部１５は、検索対象のファイル群Ｆ１〜Ｆｎを読み出す制御を行なう。検知部１６は、読出部１５の制御により読み出されたファイル（ファイルＦｉとする）から、１つの意味を有する文字情報を複数通りの表記で表示させる指定を検知する。１つの意味を有する文字情報を複数通りの表記で表示させる指定（例えば、ルビの挿入を指定するタグ情報など）を検出した場合に、検知部１６は、指定が含まれる箇所を照合部１７に通知する。照合部１７は、読出部１５が読み出したファイル（ファイルＦｉとする）内の文字情報と検索文字列との照合処理を、生成部１４が生成したオートマトンを用いて行なう。照合部１７は、検知部１６から通知を受けた場合には、通知に示される箇所でオートマトンの状態を示す状態情報を複製し、２つの状態情報を得る。照合部１７は、さらに、一方の状態情報に対して、意味内容が重複する一方の文字列との照合結果を反映し、他方の状態情報に対して、意味内容が重複する他方の文字列との照合結果を反映する。出力部１８は、照合部１７による照合処理の結果を出力する。
【００１４】
図２は、生成部１４が生成するオートマトンのモデル図を示す。図２に示すオートマトンは、「七夕まつり」という検索文字列に対応するオートマトンである。照合部１７は、検索対象のファイルから順次読み出した文字情報の各々についてオートマトンに含まれる状態の遷移条件を満たすか否かの判断を行う。
【００１５】
例えば、まず、照合部１７は、読出部１５が読み出したファイルＦｉから文字情報を読みだすたびに、オートマトンの初期状態における遷移条件を満たすか否かの判断を繰り返す。すなわち、照合部１７は、ファイルＦｉから順次文字情報を読み出し、初期状態（０）から次の状態（１）への遷移条件である遷移条件１の「七」という文字情報と照合する。照合の結果、ファイルＦｉから読み出した文字情報が遷移条件１の「七」と一致する場合には、照合部１７は、オートマトンの状態を次の状態（１）に遷移させる。
【００１６】
オートマトンの状態が状態（１）に遷移した場合には、照合部１７は、状態（１）における遷移条件を満たすか否かを判断する。すなわち、照合部１７は、状態（１）への遷移に続いてファイルＦｉから読み出した文字情報を、状態（１）から状態（２）への遷移条件である遷移条件１の「夕」という文字情報と照合する。照合の結果、一致する場合には、照合部１７は、オートマトンの状態を状態（２）に遷移させる。さらに、照合部１７は、読み出した文字情報を、状態（１）から状態（１）への遷移条件である遷移条件２の「七」という文字情報と照合する。照合の結果、一致する場合には、照合部１７は、オートマトンの状態を状態（１）に遷移させる。照合の結果、遷移条件１及び遷移条件２のいずれとも一致しない場合には、照合部１７は、オートマトンの状態を初期状態（０）に戻す。
【００１７】
オートマトンの状態が状態（２）に遷移した場合には、照合部１７は、状態（２）における遷移条件を満たすか否かを判断する。すなわち、照合部１７は、状態（２）への遷移に続いてファイルＦｉから読み出した文字情報を、状態（２）から状態（３）への遷移条件である遷移条件１の「ま」という文字情報と照合する。照合の結果、一致する場合には、照合部１７は、オートマトンの状態を状態（３）に遷移させる。さらに、照合部１７は、読み出した文字情報を、状態（２）から状態（１）への遷移条件である遷移条件２の「七」という文字情報と照合する。照合の結果、一致する場合には、照合部１７は、オートマトンの状態を状態（１）に遷移させる。照合の結果、遷移条件１及び遷移条件２のいずれとも一致しない場合には、照合部１７は、オートマトンの状態を初期状態（０）に戻す。
【００１８】
オートマトンの状態が状態（３）に遷移した場合には、照合部１７は、状態（３）における遷移条件を満たすか否かを判断する。すなわち、照合部１７は、状態（３）への遷移に続いてファイルＦｉから読み出した文字情報を、状態（３）から状態（４）への遷移条件である遷移条件１の「つ」という文字情報と照合する。照合の結果、一致する場合には、照合部１７は、オートマトンの状態を状態（４）に遷移させる。さらに、照合部１７は、読み出した文字情報を、状態（３）から状態（１）への遷移条件である遷移条件２の「七」という文字情報と照合する。照合の結果、一致する場合には、照合部１７は、オートマトンの状態を状態（１）に遷移させる。照合の結果、遷移条件１及び遷移条件２のいずれとも一致しない場合には、照合部１７は、オートマトンの状態を初期状態（０）に戻す。
【００１９】
オートマトンの状態が状態（４）に遷移した場合には、照合部１７は、状態（４）における遷移条件を満たすか否かを判断する。すなわち、照合部１７は、状態（４）への遷移に続いてファイルＦｉから読み出した文字情報を、状態（４）から状態（Ｆ）への遷移条件である遷移条件１の「り」という文字情報と照合する。照合の結果、一致する場合には、照合部１７は、オートマトンの状態を状態（Ｆ）に遷移させる。さらに、照合部１７は、読み出した文字情報を、状態（４）から状態（１）への遷移条件である遷移条件２の「七」という文字情報と照合する。照合の結果、一致する場合には、照合部１７は、オートマトンの状態を状態（１）に遷移させる。照合の結果、遷移条件１及び遷移条件２のいずれとも一致しない場合には、照合部１７は、オートマトンの状態を初期状態（０）に戻す。オートマトンの状態が状態（Ｆ）に遷移すると、照合部１７は、状態（Ｆ）を遷移した際に読み出されていた文字情報を特定可能な情報を記憶部１２に記憶する。記憶部１２に記憶される情報は、例えば、検索文字列と一致した文字列のファイルＦｉ中の位置などである。ファイルＦｉ中の位置を示す情報は、ファイルＦｉを読出し始めてから状態（Ｆ）に遷移するまでに読み出した文字情報の数などでよい。
【００２０】
上記の手順でオートマトンの状態遷移の判断を順に行なうことで、照合部１７は、ファイルＦｉから文字情報を「七」→「夕」→「ま」→「つ」→「り」の順で連続して読み出した場合に、検索文字列「七夕まつり」が含まれていることを判断する。
【００２１】
次に、照合部１７によるオートマトンの各状態遷移の判断について、さらに詳細に説明する。図３は、図２のモデル図に示されるオートマトンのデータ構造（テーブルＴ１）を示す。図３に示すテーブルＴ１は、図２に示すオートマトンの各状態が遷移元状態である場合の遷移先状態及び遷移条件を示す。テーブルＴ１においては、各遷移元状態に対して、遷移条件１及び遷移先状態１の組み合わせ、遷移条件２及び遷移先状態２の組み合わせ  並びに遷移先状態３が関連付けられる。例えば、オートマトンの状態が初期状態（０）である場合に、遷移条件１（図２の例では「七」）が満たされると、オートマトンの状態は、遷移先状態１に遷移される。また、遷移条件２が満たされると、オートマトンの状態は、遷移先状態２に遷移される。遷移条件１及び遷移条件２も満たされない場合には、オートマトンの状態は、遷移先状態３に遷移される。
【００２２】
テーブルＴ１は、生成部１４の処理により生成される。生成部１４は、受付部１３で検索文字列が受け付けられると、検索文字列に含まれる各文字情報の順序に応じて、図３に示すテーブルＴ１を生成し、記憶部１２に記憶する。
【００２３】
また、図４は、状態を示す状態情報の例を示す。状態情報は、図４に示す記憶領域Ｒ０に格納される。記憶領域Ｒ０は、記憶部１２に設けられた記憶領域でもよいし、検索部１１が有するレジスタ内の記憶領域でもよい。例えば、記憶領域Ｒ０は、アドレス「０００」で示される記憶領域とする。複数の状態情報を用いる場合には、例えば、記憶領域Ｒ０の隣の記憶領域Ｒ１（例えば、記憶領域Ｒ０のアドレスをインクリメントした値に相当するアドレス「００１」で示される記憶領域）が用いられる。
【００２４】
照合部１７は、図２のモデル図を用いて説明した照合処理を、記憶部１２に記憶されたテーブルＴ１、および記憶領域に格納された状態情報を参照して行なう。例えば、照合部１７は、記憶領域Ｒ０の参照により状態情報を取得し、記憶部１２に記憶されたテーブルＴ１から、取得した状態情報に示される状態を遷移元状態とするレコードを抽出する。続いて、照合部１７は、ファイルＦｉから文字情報を取得して、取得した文字情報が、抽出したレコードに示される遷移条件を満たすかを判断する。さらに、照合部１７は、遷移条件を満たす場合には、記憶領域Ｒ０に格納される状態情報を、満たされた遷移条件に対応する遷移先状態を示す状態情報に更新し、いずれの遷移条件も満たさない場合には、記憶領域Ｒ０に格納される状態情報を、初期状態（０）を示す状態情報に更新する。
【００２５】
ファイルＦｉについて照合を開始する際には、照合部１７は、まず、初期状態（０）を示す状態情報を記憶領域Ｒ０に保持する。例えば、記憶領域Ｒ０に保持している情報が、初期状態（０）を示し、ファイルＦｉから「七」という文字情報を読み出した場合には、照合部１７は、記憶領域Ｒ０に保持される状態情報を、初期状態（０）を示す状態情報から、状態（１）を示す状態情報に更新する。
【００２６】
記憶領域Ｒ０に状態（Ｆ）を示す状態情報が保持されると、照合部１７は、検索文字列「七夕まつり」との一致であると判断し、ファイルＦｉ内で検索文字列との一致箇所を示す情報を記憶部１２にテーブルＴ２に格納する。図５は、テーブルＴ２を示す。テーブルＴ２は検索文字列と一致する文字情報を含むファイルＦｉを識別する情報、ファイル内の位置を示す情報とを対応付けるテーブルである。
【００２７】
次に、検知部１６から通知を受けた場合の照合部１７の制御を説明する。検知部１６は、ファイルＦｉからの照合部１７の文字情報の読み出しにおいて、１つの意味を有する文字情報を複数通りの表記で表示させる指定が文書データに含まれているか否かを判断する。この指定は、例えば、ｘｈｔｍｌ（ｅｘｔｅｎｓｉｂｌｅ  ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）などにおいてルビ表記を指定するタグ情報である＜ｒｕｂｙ＞タグ、＜ｒｂ＞および＜ｒｔ＞などである。ｘｈｔｍｌを用いた文書データでは、＜ｒｕｂｙ＞タグに挟まれた範囲内において、＜ｒｂ＞タグで挟まれた文字情報が親文字として表記され、＜ｒｔ＞タグに挟まれた文字情報がルビ文字として表記される。検知部１６は、例えば、＜ｒｂ＞タグを検知した場合に、照合部１７に＜ｒｂ＞タグを検知した旨を通知する。通知を受けると、照合部１７は、＜ｒｂ＞タグをファイルＦｉから読み出したことを検知した場合に、記憶領域Ｒ０に保持されている状態情報を複製し、例えば、記憶領域Ｒ１に保持させる。さらに、照合部１７は、ルビの親文字（＜ｒｂ＞タグで囲まれた文字情報）によるオートマトン遷移を、複製された一方の状態情報（記憶領域Ｒ０に格納される）に反映させ、ルビ文字（＜ｒｔ＞タグで囲まれた文字情報）によるオートマトン遷移を、複製された他方の状態情報（記憶領域Ｒ１に格納される）に反映させる。
【００２８】
例えば、状態情報が初期状態（０）を示す場合に、ファイルＦｉから記述Ｄ１が読み出されるとする。また、検索文字列は「七夕まつり」であるとする。図６は、記述Ｄ１が読み出された場合の記憶領域Ｒ０〜Ｒ５の時系列変化を示す図である。まず、記述Ｄ１を読み出す前は、記憶領域Ｒ０に格納された状態情報が「０」であり、記憶領域Ｒ０〜Ｒ５に格納される情報は、（Ｓ１）に示す通りであるとする。
【００２９】
検知部１６から通知を受け、＜ｒｂ＞タグを検知すると、照合部１７は、記憶領域Ｒ０に格納された状態情報を記憶領域Ｒ１に格納する。この場合の記憶領域Ｒ０〜Ｒ５に格納される情報は、（Ｓ２）に示す通りである。複製先の記憶領域は、例えば、複製元の記憶領域と複製の多重度に応じて決定される。記憶領域Ｒ０に記憶された状態情報を複製する場合には、１回目の複製であるので、照合部１７は、記憶領域Ｒ０に格納されている状態情報を記憶領域Ｒ１（アドレス「００１」で示される）にコピーする。この場合、アドレスの一番下位の桁の値が「０」である記憶領域が複製元であり、アドレスの一番下位の桁の値が「１」である記憶領域が複製先である。さらに複製を行なう場合には、２回目の複製であるので、アドレスの下位から２番目の値が「１」である記憶領域（０１０、０１１などのアドレスで示される記憶領域）に、アドレスの下位から２番目の値が「０」である記憶領域（０００、００１などのアドレスで示される記憶領域）の状態情報をコピーする。上述のアドレッシングにより、＜ｒｂ＞タグを複数回検知した場合にも、＜ｒｂ＞タグに挟まれた文字情報についての照合と、＜ｒｔ＞タグで挟まれた文字情報についての照合とで、照合結果を反映させる記憶領域を切り替えることができる。例えば、照合部１７は、＜ｒｂ＞タグの１回目の検知では、アドレスの下位１ケタの値が「０」か「１」かに応じて記憶領域を切り替え、＜ｒｂ＞タグの２回目の検知では、アドレスの下位２ケタ目の値が「０」か「１」かに応じて記憶領域を切り替える。
【００３０】
続いて、照合部１７は、記憶領域Ｒ０（アドレス「０００」で示される）の状態情報とオートマトン（テーブルＴ１）とを参照し、遷移条件を読み出す。さらに、照合部１７は、ファイルＦｉの＜ｒｂ＞タグに挟まれた範囲内から読み出す先頭の文字である「七」が、遷移条件を満たすか否かを判断する。この場合、検索文字列が「七夕まつり」であり、ファイルＦｉから読み出す先頭の文字が「七」であるので、記憶領域Ｒ０に記憶される状態情報を、初期状態（０）から状態（１）に更新する。さらに、照合部１７は、「七」の次に読みだす「夕」が、状態（１）から状態（２）への遷移条件を満たすか否か判定する。この場合、照合部１７は、状態（１）から状態（２）への遷移条件を満たすので、記憶領域Ｒ０に記憶される状態情報を、状態（２）を示す状態情報に更新する。この場合の記憶領域Ｒ０〜Ｒ５に格納される情報は、（Ｓ３）に示す通りである。
【００３１】
照合部１７は、「夕」の次は、＜ｒｔ＞タグに挟まれた「た」を対象に照合処理を行なう。照合部１７は、記憶領域Ｒ１（アドレス「００１」で示される）とテーブルＴ１を参照し、遷移条件を読み出す。読みだした文字情報「た」が、状態（１）への遷移条件「七」に一致しないので、記憶領域Ｒ１に格納される状態情報は、初期状態（０）のままとなる。照合部１７は、ファイルＦｉから「な」、「ば」及び「た」のいずれを読み出した場合にも、「た」の場合と同様に、記憶領域Ｒ１に格納される状態情報を初期状態（０）のままとなる。この場合の記憶領域Ｒ０〜Ｒ５に格納される情報は、（Ｓ４）に示す通りである。
【００３２】
次に、検知部１６は、＜ｒｂ＞タグの読出しを検知し、照合部１７は、さらに、状態情報を複製する。例えば、記憶領域Ｒ０に格納された状態情報が記憶領域Ｒ２（アドレス「０１０」に示される）に複製され、記憶領域Ｒ１に格納された状態情報が記憶領域Ｒ３（アドレス「０１１」に示される）に複製される。この場合の記憶領域Ｒ０〜Ｒ５に格納される情報は、（Ｓ５）に示す通りである。
【００３３】
次に、照合部１７は、アドレスの２桁目が「０」である記憶領域（記憶領域Ｒ０及び記憶領域Ｒ１）に格納された状態情報のそれぞれについて、＜ｒｂ＞タグに挟まれた文字情報「祭」に基づく遷移を行なう。記憶領域Ｒ０に格納された状態情報は、状態（２）を示すので、遷移条件は「ま」との合致である。読み出される文字が「祭」であり、「ま」と合致しないので、記憶領域Ｒ０に格納される状態情報は、状態（０）に更新される。記憶領域Ｒ１に格納される状態情報は、初期状態（０）を示し、遷移条件「七」と合致しないので、記憶領域Ｒ１の状態情報は、初期状態（０）のままである。この場合の記憶領域Ｒ０〜Ｒ５に格納される情報は、（Ｓ６）に示す通りである。
【００３４】
さらに、照合部１７は、＜ｒｔ＞タグに挟まれた文字情報「ま」に基づく遷移を、アドレスの２桁目が「１」である記憶領域（記憶領域Ｒ２及び記憶領域Ｒ３）に格納された状態情報のそれぞれについて行なう。記憶領域Ｒ２に格納された状態情報は、状態（２）を示すので、遷移条件は「ま」との合致である。読み出される文字情報は「ま」であるため、記憶領域Ｒ２に格納される状態情報は、状態（３）に更新される。記憶領域Ｒ３に格納される状態情報は、状態（０）を示し、遷移条件「七」と合致しないので、記憶領域Ｒ３の状態情報は、状態（０）のままである。
【００３５】
さらに、照合部１７は、文字情報「つ」に基づく遷移を、記憶領域Ｒ２及び記憶領域Ｒ３に格納された状態情報のそれぞれについて行なう。記憶領域Ｒ２の状態情報は状態（３）を示し、遷移条件が「つ」との合致である。文字情報「つ」が読み出されるため、照合部１７は、記憶領域Ｒ２の状態情報を状態（４）に更新する。記憶領域Ｒ３の状態情報は状態（０）を示し、遷移条件「七」は満たされないので、照合部１７は、記憶領域Ｒ３に格納する状態情報を状態（０）のままとする。この場合の記憶領域Ｒ０〜Ｒ５に格納される情報は、（Ｓ７）に示す通りである。
【００３６】
照合部１７は、ルビ表記を終了させる指定（＜／ｒｕｂｙ＞）の読出しを検知すると、複数の状態情報のうち、重複する状態情報を格納する記憶領域を解放する。上述の例では、記憶領域Ｒ０、記憶領域Ｒ１および記憶領域Ｒ３に格納される状態情報が、状態（０）を示し、重複する。例えば、照合部１７は、記憶領域Ｒ１及び記憶領域Ｒ３を解放する。
【００３７】
さらに、照合部１７は、ファイルＦｉから読み出される文字情報について、照合処理を継続する。文字情報「り」が読み出されると、照合部１７は、記憶領域Ｒ０及び記憶領域Ｒ２に格納される状態情報のそれぞれについて、遷移を行なう。記憶領域Ｒ０に格納される状態情報は、状態（０）を示す。状態（０）から状態（１）の遷移条件は「七」である。文字情報「り」は、「七」に該当しないため、照合部１７は、記憶領域Ｒ０に格納される状態情報を状態（０）のままとする。記憶領域Ｒ２に格納される状態情報は、状態（４）を示す。状態（４）から状態（Ｆ）への遷移条件は「り」であり、その遷移条件が満たされるので、照合部１７は、記憶領域Ｒ２に格納される状態情報を状態（Ｆ）に更新する。この場合の記憶領域Ｒ０〜Ｒ５に格納される情報は、（Ｓ８）に示す通りであるとする。
【００３８】
文書データ内で「七夕…たなばた…祭…まつ…り」のように、同じ意味の言語単位について複数種類の表記の併記が指定された部分が連続する場合がある。この併記された部分は、表示上、「七夕祭り」とも、「たなばた祭り」とも、「七夕まつり」とも、「たなばたまつり」とも読めるが、文書データ内では「七夕…たなばた…祭…まつ…り」となっているため、いずれも当てはまらない。上述の照合処理では、連続する併記部分のうち、先の部分で親文字表記が指定された「七夕」という文字情報の末尾（例えば「夕」）と、先の部分でルビ文字表記が指定された「まつり」という文字情報の冒頭（例えば「ま」）とを連続させた文字情報（例えば「夕ま」）に対して、照合が行なわれる。そのため、「七夕…たなばた…祭…まつ…り」というように、間に「たなばた」「祭」などの文字情報があっても「七夕まつり」を連続する文字情報として、照合・抽出できる。上述した末尾と冒頭とは、先の部分の親文字表記が指定された文字情報と、後の部分のルビ文字表記が指定された文字情報とが連続すればよく、文字数は限定されない。上述の照合処理によれば、「七夕まつり」のように、一方の表記複数種類の表記が入り混じった検索文字列と照合しても、合致する旨の判定が行なわれる。
【００３９】
図７は、コンピュータ１を含むシステム構成を示す。図７に示すシステムは、コンピュータ１、コンピュータ２、記憶装置３及びネットワーク４を含む。ファイル群Ｆ１〜Ｆｎは、コンピュータ１の記憶部１２に格納されているが、例えば、ネットワーク４を介して接続された記憶装置３に記憶されていてもよい。その場合には、読出部１５が記憶部１２からではなく、記憶装置３からファイル群Ｆ１〜Ｆｎのそれぞれを読み出す。
【００４０】
図８は、コンピュータ１のハードウェア構成例を示す。図１〜３に示す各機能ブロックは、例えば、図８に示すハードウェア構成により実現される。コンピュータ１は、例えば、プロセッサ３０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０３、ドライブ装置３０４、記録媒体３０５、入力インターフェース（Ｉ／Ｆ）３０６、入力デバイス３０７、出力インターフェース（Ｉ／Ｆ）３０８、出力デバイス３０９、通信インターフェース（Ｉ／Ｆ）３１０、バス３１１などを含む。それぞれのハードウェアはバス３１１を介して接続されている。通信Ｉ／Ｆ３１０はネットワーク４を介した通信の制御を行なう。入力インターフェース３０６は、入力デバイス３０７と接続されており、入力デバイス３０７から受信した入力信号をプロセッサ３０１に伝達する。出力インターフェース３０８は、出力デバイス３０９と接続されており、出力デバイス３０９に、プロセッサ３０１の指示に応じた出力を実行させる。
【００４１】
ＲＡＭ３０２は読み書き可能なメモリ装置であって、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの半導体メモリ、またはＲＡＭでなくてもフラッシュメモリなどが用いられる。ＲＯＭ３０３は、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）なども含む。ドライブ装置３０４は、記録媒体３０５に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記録媒体３０５は、ドライブ装置３０４によって書き込まれた情報を記憶する。記録媒体３０５は、例えば、ハードディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスクなどの記録媒体である。また、例えば、コンピュータ１は、複数種類の記録媒体それぞれについて、ドライブ装置３０４及び記録媒体３０５を設ける。
【００４２】
入力デバイス３０７は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ１の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス３０９は、コンピュータ１の制御に応じて情報を出力する装置である。出力デバイス３０９は、例えば、ディスプレイなどの画像出力装置（表示デバイス）や、スピーカーなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス３０７及び出力デバイス３０９として用いられる。また、入力デバイス３０７及び出力デバイス３０９は、コンピュータ１に含まれず、例えば、コンピュータ１に外部から接続する装置であってもよい。
【００４３】
プロセッサ３０１は、ＲＯＭ３０３や記録媒体３０５に記憶されたプログラムをＲＡＭ３０２に読み出し、読み出されたプログラムの手順に従って検索部１１の処理を行なう。その際にＲＡＭ３０２はプロセッサ３０１のワークエリアとして用いられる。記憶部１２の機能は、ＲＯＭ３０３および記憶媒体３０５がプログラムやファイル群Ｆ１〜Ｆｎを記憶し、ＲＡＭ３０２がプロセッサ３０１のワークエリアとして用いられることによって実現される。プロセッサ３０１が読み出すプログラムについては、図９を用いて説明する。
【００４４】
図９は、コンピュータ１で動作するソフトウェアの構成例を示す。コンピュータ１において、図９に示すハードウェア群２１の制御を行なうＯＳ２２（オペレーションシステム）が動作する。ＯＳ２２に従った手順でプロセッサ３０１が動作して、ハードウェア２１の制御・管理が行なわれることにより、アプリケーションプログラムやミドルウェアによる処理がハードウェア２１により実行される。さらに、コンピュータ１において、検索処理プログラム２３が、ＲＡＭ３０２に読み出されてプロセッサ３０１により実行される。また、さらに、プロセッサ３０１が検索処理プログラム２３に基づく処理を行なうことにより、（それらの処理をＯＳ２２に基づいてハードウェア２１を制御して）検索部１１の機能が実現される。
【００４５】
図１０は、検索部１１による検索処理のフローを示す。検索処理プログラム２３が起動される（Ｓ１００）と、検索部１１が前処理を実行する（Ｓ１０１）。この前処理は、例えば、テーブルＴ１、テーブルＴ２の記憶領域確保、読出部１５が読み出すファイル群Ｆ１〜Ｆｎのファイルリストの取得などである。受付部１３は、検索要求があるか否かの判定を行ない（Ｓ１０２）、検索要求を受信しない場合（Ｓ１０２：ＮＯ）に、検索要求を受信するまで繰り返す。受付部１３が検索要求を受けると、生成部１４は、検索文字列とファイル群Ｆ１〜Ｆｎに含まれる文字列との照合に用いるオートマトンを生成する（Ｓ１０３）。
【００４６】
図１１は、生成部１４が、検索文字列に基づいてオートマトンを生成するフローの一例を示す。図１１に示すフローは、「七夕まつり」のように、検索文字列内で文字情報が繰り返される部分を含まない場合に用いることができる。例えば、「でんでん虫」などの文字列は、文字情報の繰り返しを含む（「でん」が繰り返されている）。「でんでん虫」という検索文字列についてオートマトンを生成する場合には、図１１と異なるフローを用いる。図１１に例示したフローを用いると、「…でんでんでん虫…」などの文字列が照合対象にふくまれていた場合には、「でんでん」まで状態が遷移し、その次の文字「で」が「虫」と一致しないために、状態を初期状態に戻してしまうオートマトンが生成される。初期状態に戻されると、残りの文字列は「でん虫」であるので、「でんでん虫」と一致しないことになってしまう。上記のことから、「でんでん虫」などの検索文字列中に文字情報の繰り返しを含む文字列にも対応するためには、他のフローが用いられてよい。
【００４７】
生成部１４は、受付部１３の検索要求の受付けに応じて処理を開始する（Ｓ２００）。まず、生成部１４は、受付部１３が受け付けた検索要求から検索文字列を取得する（Ｓ２０１）。次に、生成部１４は、取得した検索文字列の長さＮを計数する（Ｓ２０２）。生成部１４は、０〜Ｎ−１までの整数ｉを順に選択し、Ｓ２０４〜Ｓ２１０の処理を繰り返し行なう（Ｓ２０３）。
【００４８】
生成部１４は、テーブルＴ１に１レコード追加する（Ｓ２０４）。生成部１４は、Ｓ２０４で生成したレコードの遷移元状態を、Ｓ２０３で選択した整数「ｉ」にする（Ｓ２０５）。さらに、生成部１４は、Ｓ２０４で生成したレコードの遷移条件を、Ｓ２０１で取得した検索文字列のｉ＋１番目の文字にする（Ｓ２０６）。
【００４９】
次に、生成部１４は、整数ｉがＮ−１であるか否か判定する（Ｓ２０７）。整数ｉがＮ−１である場合（Ｓ２０７：ＹＥＳ）には、Ｓ２０４で生成したレコードの遷移先状態１を「Ｆ（照合完了を示す情報）」とする（Ｓ２０８）。また、生成部１４は、整数ｉがＮ−１でない場合（Ｓ２０７：ＮＯ）には、Ｓ２０４で生成したレコードの遷移先状態１を「ｉ＋１」とする（Ｓ２０９）。
【００５０】
さらに、生成部１４は、Ｓ２０４で生成したレコードの遷移条件２を検索文字列中の１番目の文字とし、遷移先状態２は１とし、遷移先状態３を「０」とする（Ｓ２１０）。Ｓ２１０の処理後、生成部１４は、ｉがＮ−１であるか否か判定し、Ｎ−１でなければ、Ｓ２０３で次の整数を選択し、Ｓ２０４〜Ｓ２１０の処理を行なう（Ｓ２１１）。ｉがＮ−１であれば、生成部１４はオートマトン生成処理を終了し（Ｓ２１２）、図１０に示す検索処理フローの続きが実行される。
【００５１】
図１０に示す検索処理フローの続きを説明する。生成部１４の処理によりオートマトンが生成される（Ｓ１０３）と、読出部１５は、ファイル群Ｆ１〜Ｆｎから１つファイルを選択する（Ｓ１０４）。読出部１５は、Ｓ１０４で選択されたファイルＦｉを記憶部１２から読み出す（Ｓ１０５）。Ｓ１０５が実行されると、検知部１６及び照合部１７は、ファイルＦｉ内の文字情報に対して、生成部１４が生成したオートマトンに基づく照合処理を行なう。
【００５２】
図１２Ａ及び１２Ｂは、照合部１７による照合処理のフローを示す。照合処理が開始される（Ｓ３００）と、照合部１７は、ファイルＦｉからデータを読み出す（Ｓ３０１）。データの読出し単位は、例えば、タグ情報単位や１文字分の文字情報単位などである。次に、照合部１７は、Ｓ３０１で読みだしたデータがタグ情報以外であるか否かを判定する（Ｓ３０２）。
【００５３】
Ｓ３０１で読みだしたデータがタグ情報であった場合（Ｓ３０２：ＮＯ）に、検知部１６は、読みだしたタグ情報が＜ｒｂ＞タグであるか否かを判定する（Ｓ３１３）。照合部１７は、読みだしたタグ情報が＜ｒｂ＞タグである場合（Ｓ３１３：ＹＥＳ）には、記憶領域に格納された状態情報を複製する（Ｓ３１４）。複製先のアドレスは、上述の通り、複製の多重度及び複製元のアドレスにより定められる。さらに、照合部１７は、複製の多重度を記憶する（Ｓ３１５）。照合部１７は、複製の多重度を確認し、記憶領域のアドレスのうち、下位から多重度が示す数の桁が「０」である状態情報を選択対象とする（Ｓ３１６）。すなわち直前に行われたＳ３１４の複製における複製元の状態情報が選択対象となる。
照合部１７は、読みだしたタグ情報が＜ｒｂ＞タグでない場合（Ｓ３１３：ＮＯ）には、読みだしたタグ情報が＜ｒｔ＞タグであるか否かを判定する（Ｓ３１７）。読み出したタグ情報が＜ｒｔ＞である場合（Ｓ３１７：ＹＥＳ）は、照合部１７は、複製の多重度を確認し、記憶領域のアドレスのうち、下位から多重度が示す数の桁が「１」である状態情報を選択対象とする（Ｓ３１８）。Ｓ３１６またはＳ３１８の処理が行われると、再度Ｓ３０１のデータ読み出し処理が行われる。
【００５４】
読み出したタグ情報が＜ｒｔ＞でない場合（Ｓ３１７：ＮＯ）は、照合部１７は、読み出したタグ情報が＜／ｒｕｂｙ＞タグであるか否かを判定する（Ｓ３１９）。読み出したタグ情報が＜／ｒｕｂｙ＞タグである場合（Ｓ３１９：ＹＥＳ）には、記憶領域に記憶されたすべての状態情報を選択対象とする（Ｓ３２０）。Ｓ３２０において、照合部１７は、さらに、重複した状態情報の削除許可を示すフラグをセットする。このフラグは、後述するＳ３１０で参照される。読み出したタグ情報が＜／ｒｕｂｙ＞タグでない場合（Ｓ３１９：ＮＯ）には、照合部１７は、読み出したタグに対応する終了タグまでデータ読出しの位置を進める（Ｓ３２１）。
【００５５】
Ｓ３０１でタグ情報でなく、文字情報を読み出した場合には、照合部１７は、選択対象の状態情報から１つ選択する（Ｓ３０３）。照合処理開始時点では、選択対象の状態情報は、記憶領域Ｒ０に記憶された状態情報である。Ｓ３１４の処理で状態情報が複製された後にはＳ３１６もしくはＳ３１８の処理で選択対象の状態情報を定められる。
【００５６】
Ｓ３０３で状態情報を選択すると、照合部１７は、読み出した文字情報についての照合処理を行い、選択した状態情報の更新を行なう（Ｓ３０４）。この更新は、上述の通り、照合部１７が、選択した状態情報を遷移元状態とするレコードをテーブル１から取得し、取得したレコードに含まれる遷移条件を満たすか否かに応じた遷移先状態を、選択した状態情報を記憶する記憶領域に記憶することで行なわれる。
【００５７】
Ｓ３０４で状態情報の更新が行われると、照合部１７は、Ｓ３０４で更新が行われた状態情報が「Ｆ」を示すか否かを判定する（Ｓ３０５）。「Ｆ」は、オートマトンの終点を示す状態である。Ｓ３０５の判定で、状態情報が「Ｆ」である場合（Ｓ３０５：ＹＥＳ）には、ファイルＦｉの識別情報と、Ｓ３０１で読み出した文字情報のファイル中の位置を示す情報をテーブルＴ２に格納する（Ｓ３０６）。Ｓ３０６の処理後、照合部１７は、更新された状態情報を初期状態（０）にさらに更新する（Ｓ３０７）。Ｓ３０５の判定で、状態情報が「Ｆ」でない場合（Ｓ３０５：ＮＯ）、もしくはＳ３０７の処理が行われた場合には、照合部１７は、選択対象の状態情報のうち、未選択の状態情報があるか否か判定する。未選択の状態情報がある場合には、照合部１７は、再度Ｓ３０３の処理を行ない、未選択の状態情報を選択する（Ｓ３０８）。未選択の状態情報がない場合には、照合部１７は、Ｓ３０９の処理を行なう。
【００５８】
照合部１７は、記憶領域に格納された状態情報のうち、重複して同じ状態情報を示す状態情報が存在するか否かを判定する（Ｓ３０９）。照合部１７は、重複する状態情報が存在する場合には、Ｓ３２０の処理により、重複した状態情報の削除許可を示すフラグがセットされたかを確認する。削除許可を示すフラグがセットされていれば、重複する状態情報を記憶する記憶領域を解放し、さらに、選択対象の状態情報から除く（Ｓ３１０）。さらに、照合部１７は、Ｓ３１０の処理により状態情報が１つのみになった場合には、削除許可を示すフラグをクリアする。Ｓ３０９の処理で重複する状態情報が存在しない場合（Ｓ３０９）、もしくはＳ３１０の処理が行われた場合には、照合部１７は、ファイルＦｉから読み出す文字情報があるか否かが判定する（Ｓ３１１）。ファイルＦｉ内に読み出す文字情報が存在する場合（Ｓ３１１：ＹＥＳ）には、照合部１７は、Ｓ３０１の処理を再度行なう。ファイルＦｉ内に読み出す文字情報が存在しない場合（Ｓ３１１：ＮＯ）には、照合処理が終了し、図１０に示す検索処理のフローが行われる（Ｓ３１２）。
【００５９】
図１０に示す検索処理フローの続きを説明する。Ｓ１０６の照合処理を終えると、読出部１５は未選択のファイルがファイル群Ｆ１〜Ｆｎに存在するか判定し、未選択のファイルが存在する場合には、Ｓ１０４の処理を再度行なう（Ｓ１０７）。未選択のファイルが存在しない場合には、出力部１８は、照合部１７による照合結果を出力する（Ｓ１０８）。照合結果の出力は、例えば、テーブルＴ２に格納された情報の表示である。また、テーブルＴ２の各レコードに示される部分の近傍を含めた文字情報を読み出して表示させてもよい。また、ファイル群Ｆ１〜Ｆｎの各ファイルと、ファイルの格納先を示すアドレス情報とを予め関連付けておき、テーブルＴ２に格納されたファイルＩＤに関連付けられているアドレス情報を出力してもよい。
【００６０】
Ｓ１０８の処理が終了すると、検索部１１は検索処理プログラム２３の終了指示が行なわれたか否かを判定し（Ｓ１０９）、終了指示が行なわれていない場合（Ｓ１０９：ＮＯ）には、受付部１３はＳ１０２の処理を再度行なう。終了指示が行なわれている場合（Ｓ１０９：ＹＥＳ）には、検索部１１は、検索処理プログラム２３を終了させる（Ｓ１１０）。
【００６１】
上述の処理によれば、検索対象の文書データから、検索文字列と一致する文字列として、親文字部分とルビ文字部分との双方を含む文字列を抽出することができる。
【００６２】
また、上述の説明では、＜ｒｂ＞タグの検知に応じて状態情報が複製される。しかし、状態情報の複製の契機は、使用される言語に応じて適宜変更可能である。１つの意味を有する複数通りの文字情報による表記の指定において、複数通りの文字情報の列挙の開始を示すものであればよい。例えば、＜ｒｂ＞タグを使用せずに、＜ｒｕｂｙ＞タグに挟まれ、＜ｒｔ＞タグに挟まれない文字を親文字とする文法においては、＜ｒｕｂｙ＞タグの検知に応じて、状態情報を複製すればよい。
【００６３】
上述の説明では、漢字に対する振り仮名を表示させることを例にあげたが、これに限定するものでなく、カタカナに振り仮名を振ってもよいし、中国語に漢字表記にピン音を振ってもよい。
【００６４】
さらに、ルビは英語にも用いられ、上述の実施例は英語についても実施可能である。例えば、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）について、＜ｒｕｂｙ＞＜ｒｂ＞Ｂ＜／ｒｂ＞＜ｒｐ＞（＜／ｒｐ＞＜ｒｔ＞ＢＡＳＩＣ＜／ｒｔ＞＜ｒｐ＞）＜／ｒｐ＞＜ｒｂ＞Ｉ＜／ｒｂ＞＜ｒｐ＞（＜／ｒｐ＞＜ｒｔ＞ＩＮＰＵＴ／＜／ｒｔ＞＜ｒｐ＞）＜／ｒｐ＞＜ｒｂ＞Ｏ＜／ｒｂ＞＜ｒｐ＞（＜／ｒｐ＞＜ｒｔ＞ＯＵＴＰＵＴ＜／ｒｔ＞＜ｒｐ＞）＜／ｒｐ＞＜ｒｂ＞Ｓ＜／ｒｂ＞＜ｒｐ＞（＜／ｒｐ＞＜ｒｔ＞ＳＹＳＴＥＭ＜／ｒｔ＞＜ｒｐ＞）＜／ｒｐ＞＜／ｒｕｂｙ＞などの記述（記述Ｄ２）で表現されることがある。検索文字列は、例えば、「ＢＩＯＳ」と入力されるかもしれないし、「ＢＡＳＩＣ  ＩＮＰＵＴ／ＯＵＴＰＵＴ  ＳＹＳＴＥＭ」と入力されるかもしれないし、「ＢＡＳＩＣ  ＩＯ  ＳＹＳＴＥＭ」と入力されるかもしれない。
【００６５】
図１３Ａは、検索文字列「ＢＩＯＳ」に対応するオートマトンを示す。初期状態（０）における遷移条件１（対応する遷移先状態１は「１」）は「Ｂ」である。状態（１）における遷移条件１（対応する遷移先状態１は「２」）は「Ｉ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（２）における遷移条件１（対応する遷移先状態１は「３」）は「Ｏ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（３）における遷移条件１（対応する遷移先状態は「Ｆ」）は「Ｓ」であり、遷移条件２（対応する遷移先状態は「１」）は「Ｂ」である。
【００６６】
図１３Ｂは、「ＢＡＳＩＣ  ＩＯ  ＳＹＳＴＥＭ」に対応するオートマトンを示す。初期状態（０）における遷移条件１（対応する遷移先状態１は「１」）は「Ｂ」である。状態（１）における遷移条件１（対応する遷移先状態１は「２」）は「Ａ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（２）における遷移条件１（対応する遷移先状態１は「３」）は「Ｓ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（３）における遷移条件１（対応する遷移先状態１は「４」）は「Ｉ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。る。また、状態（４）における遷移条件１（対応する遷移先状態１は「５」）は「Ｃ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（５）における遷移条件１（対応する遷移先状態１は「６」）は「Ｉ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（６）における１（対応する遷移先状態１は「７」）遷移条件は「Ｏ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（７）における遷移条件１（対応する遷移先状態１は「８」）は「Ｓ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（８）における遷移条件１（対応する遷移先状態１は「９」）は「Ｙ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（９）における遷移条件１（対応する遷移先状態１は「１０」）は「Ｓ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（１０）における遷移条件１（対応する遷移先状態１は「１１」）は「Ｔ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（１１）における遷移条件１（対応する遷移先状態１は「１２」）は「Ｅ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。状態（１２）における遷移条件１（対応する遷移先状態１は「Ｆ」）は「Ｍ」であり、遷移条件２（対応する遷移先状態２は「１」）は「Ｂ」である。
【００６７】
図１４Ａ及びＢは、「ＢＩＯＳ」が記述Ｄ２と合致するか否かの照合手順の説明図である。照合部１７は、図１３Ａに示すオートマトンに基づいて、記憶領域に記憶される状態情報を更新する。
【００６８】
記述Ｄ２の読出し前は、記憶領域００００に初期状態（０）を示す状態情報が格納されているのみであるとする（Ｓ１）。照合部１７は、ファイルＦｉから＜ｒｂ＞タグを読み出すと、記憶領域００００に格納された状態情報を記憶領域０００１にコピーする（Ｓ２）。ここで、照合部１７は、多重度ｄを「１」とする。次に、照合部１７は、「Ｂ」を読み出すと、図１３Ａに示すオートマトンに従って記憶領域００００に記憶された状態情報を更新する。初期状態（０）から状態（１）への遷移条件は「Ｂ」であるので、記憶領域００００に記憶される状態情報は、状態（１）となる（Ｓ３）。照合部１７は、＜ｒｔ＞を読み出すと、更新対象の記憶領域を０００１に切り替える。照合部１７は、「Ｂ」、「Ａ」、「Ｓ」、「Ｉ」、「Ｃ」のそれぞれの読出しに応じて、記憶領域０００１に記憶された状態情報を更新する。結果的に、記憶領域０００１の状態情報は、初期状態（０）に更新される（Ｓ４）。
【００６９】
照合部１７は、ファイルＦｉから＜ｒｂ＞タグを読み出すと、記憶領域００００及び記憶領域０００１に格納された状態情報を記憶領域００１０及び記憶領域００１１にコピーする（Ｓ５）。ここで、照合部１７は、多重度ｄを「２」とする。次に、照合部１７は、「Ｉ」を読み出すと、図１３Ａに示すオートマトンに従って記憶領域００００に記憶された状態情報を更新する。状態（１）から状態（２）への遷移条件は「Ｉ」であるので、記憶領域００００に記憶される状態情報は、状態（２）となる。また、初期状態（０）から状態（１）への遷移条件は「Ｂ」であるので、記憶領域０００１に記憶される状態情報は、初期状態（０）となる（Ｓ６）。照合部１７は、＜ｒｔ＞を読み出すと、更新対象の記憶領域を００１０及び記憶領域００１１に切り替える。照合部１７は、「Ｉ」、「Ｎ」、「Ｐ」、「Ｕ」、「Ｔ」、「／」のそれぞれの読出しに応じて、記憶領域００１０及び記憶領域００１１に記憶された状態情報を更新する。結果的に、記憶領域００１０及び記憶領域００１１の状態情報は、初期状態（０）に更新される（Ｓ７）。
【００７０】
照合部１７は、ファイルＦｉから＜ｒｂ＞タグを読み出すと、記憶領域００００〜００１１に格納された状態情報を記憶領域０１００〜０１１１にコピーする（Ｓ８）。ここで、照合部１７は、多重度ｄを「３」とする。次に、照合部１７は、「Ｏ」を読み出すと、図１３Ａに示すオートマトンに従って記憶領域００００に記憶された状態情報を更新する。状態（２）から状態（３）への遷移条件は「Ｏ」であるので、記憶領域００００に記憶される状態情報は、状態（３）となる。また、初期状態（０）から状態（１）への遷移条件は「Ｂ」であるので、記憶領域０００１〜００１１に記憶される状態情報は、初期状態（０）となる（Ｓ９）。照合部１７は、＜ｒｔ＞を読み出すと、更新対象の記憶領域を０１００〜０１１１に切り替える（Ｓ１０）。照合部１７は、「Ｏ」、「Ｕ」、「Ｔ」、「Ｐ」、「Ｕ」、「Ｔ」のそれぞれの読出しに応じて、記憶領域０１００〜０１１１に記憶された状態情報を更新する。結果的に、記憶領域０１００〜０１１１の状態情報は、初期状態（０）に更新される（Ｓ１１）。
【００７１】
照合部１７は、ファイルＦｉから＜ｒｂ＞タグを読み出すと、記憶領域００００〜０１１１に格納された状態情報を記憶領域１０００〜１１１１にコピーする（Ｓ１２）。ここで、照合部１７は、多重度ｄを「４」とする。次に、照合部１７は、「Ｓ」を読み出すと、図１３Ａに示すオートマトンに従って記憶領域００００に記憶された状態情報を更新する。状態（３）から状態（Ｆ）への遷移条件は「Ｓ」であるので、記憶領域００００に記憶される状態情報は、状態（Ｆ）となる。また、初期状態（０）から状態（１）への遷移条件は「Ｂ」であるので、記憶領域０００１〜０１１１に記憶される状態情報は、初期状態（０）となる（Ｓ１３）。記憶領域００００に記憶された状態情報が、状態（Ｆ）を示すので、照合部１７は、記述Ｄ２が「ＢＩＯＳ」を含むと判断する。
【００７２】
図１５は、「ＢＡＳＩＣ  ＩＯ  ＳＹＳＴＥＭ」が記述Ｄ２と合致するか否かの照合手順の説明図である。照合部１７は、図１３Ｂに示すオートマトンに基づいて、記憶領域に記憶される状態情報を更新する。
【００７３】
照合部１７は、ファイルＦｉからの＜ｒｂ＞タグの読み出しにより、記憶領域００００に格納された状態情報を記憶領域０００１にコピーする（Ｓ１）。ここで、照合部１７は、多重度ｄを「１」とする。次に、照合部１７は、「Ｂ」、「Ａ」、「Ｓ」、「Ｉ」、「Ｃ」を順に読み出すと、図１３Ｂに示すオートマトンに従って記憶領域０００１に記憶された状態情報を更新する。初期状態（０）から状態（１）への遷移条件は「Ｂ」であるので、記憶領域０００１に記憶される状態情報は、状態（１）となる。さらに、「Ａ」、「Ｓ」、「Ｉ」、「Ｃ」のそれぞれは図１３Ｂに示すオートマトンに示される遷移条件に合致するので、記憶領域０００１に記憶される状態情報は、状態（５）となる（Ｓ２）。
【００７４】
照合部１７は、ファイルＦｉから＜ｒｂ＞タグを読み出すと、記憶領域００００及び記憶領域０００１に格納された状態情報を記憶領域００１０及び記憶領域００１１にコピーする（Ｓ３）。ここで、照合部１７は、多重度ｄを「２」とする。次に、照合部１７は、「Ｉ」を読み出すと、図１３Ｂに示すオートマトンに従って記憶領域００００及び記憶領域０００１に記憶された状態情報を更新する。状態（５）から状態（６）への遷移条件は「Ｉ」であるので、記憶領域０００１に記憶される状態情報は、状態（６）となる。また、状態（１）から状態（２）への遷移条件は「Ａ」であるので、記憶領域００００に記憶される状態情報は、初期状態（０）となる（Ｓ４）。照合部１７は、＜ｒｔ＞を読み出すと、更新対象の記憶領域を００１０及び記憶領域００１１に切り替える。照合部１７は、「Ｉ」、「Ｎ」、「Ｐ」、「Ｕ」、「Ｔ」、「／」のそれぞれの読出しに応じて、記憶領域００１０及び記憶領域００１１に記憶された状態情報を更新する。結果的に、記憶領域００１０及び記憶領域００１１の状態情報は、初期状態（０）に更新される（Ｓ５）。
【００７５】
照合部１７は、ファイルＦｉから＜ｒｂ＞タグを読み出すと、記憶領域００００〜００１１に格納された状態情報を記憶領域０１００〜０１１１にコピーする（Ｓ６）。ここで、照合部１７は、多重度ｄを「３」とする。次に、照合部１７は、「Ｏ」を読み出すと、図１３Ｂに示すオートマトンに従って記憶領域００００〜００１１に記憶された状態情報を更新する。状態（６）から状態（７）への遷移条件は「Ｏ」であるので、記憶領域０００１に記憶される状態情報は、状態（７）となる。また、初期状態（０）から状態（１）への遷移条件は「Ｂ」であるので、記憶領域００００、００１０及び００１１に記憶される状態情報は、初期状態（０）となる（Ｓ７）。照合部１７は、＜ｒｔ＞を読み出すと、更新対象の記憶領域を０１００〜０１１１に切り替える。照合部１７は、「Ｏ」、「Ｕ」、「Ｔ」、「Ｐ」、「Ｕ」、「Ｔ」のそれぞれの読出しに応じて、記憶領域０１００〜０１１１に記憶された状態情報を更新する。結果的に、記憶領域０１００〜０１１１の状態情報は、初期状態（０）に更新される（Ｓ８）。
【００７６】
照合部１７は、ファイルＦｉから＜ｒｂ＞タグを読み出すと、記憶領域００００〜０１１１に格納された状態情報を記憶領域１０００〜１１１１にコピーする（Ｓ９）。ここで、照合部１７は、多重度ｄを「４」とする。次に、照合部１７は、「Ｓ」を読み出すと、図１３Ｂに示すオートマトンに従って記憶領域００００〜０１１１に記憶された状態情報を更新する。状態（３）から状態（８）への遷移条件は「Ｓ」であるので、記憶領域０００１に記憶される状態情報は、状態（８）となる。また、初期状態（０）から状態（１）への遷移条件は「Ｂ」であるので、記憶領域００００及び００１０〜０１１１に記憶される状態情報は、初期状態（０）となる（Ｓ１０）。
【００７７】
照合部１７は、＜ｒｔ＞を読み出すと、更新対象の記憶領域を１０００〜１１１１に切り替える。照合部１７は、「Ｓ」、「Ｙ」、「Ｓ」、「Ｔ」、「Ｅ」、「Ｍ」の読出しに応じて、記憶領域１０００〜１１１１に記憶された状態情報を更新する。「Ｓ」、「Ｙ」、「Ｓ」、「Ｔ」、「Ｅ」、「Ｍ」は、状態（８）から状態（Ｆ）までのそれぞれの遷移条件を満たすので、記憶領域１００１に記憶される状態情報は、状態（Ｆ）となる。また、初期状態（０）から状態（１）への遷移条件は「Ｂ」であるので、記憶領域１０００及び１０１０〜１１１１に記憶される状態情報は、初期状態（０）となる（Ｓ１１）。記憶領域１００１に記憶された状態情報が、状態（Ｆ）を示すので、照合部１７は、記述Ｄ２が「ＢＡＳＩＣ  ＩＯ  ＳＹＳＴＥＭ」と合致すると判断する。
【００７８】
上述の実施形態を適用することにより、検索文字列が「ＢＩＯＳ」、「ＢＡＳＩＣ  ＩＮＰＵＴ／ＯＵＴＰＵＴ  ＳＹＳＴＥＭ」及び「ＢＡＳＩＣ  ＩＯ  ＳＹＳＴＥＭ」のいずれであっても、記述Ｄ２を検索文字列と合致する文字情報として抽出可能となる。
【００７９】
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
照合文字情報との照合処理を行なうコンピュータに、
照合対象の文書データに、ある言語単位の第１の表記である第１の文字情報及び前記ある言語単位の第２の表記である第２の文字情報を併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報との照合処理の結果を示す状態情報と、前記第２の文字情報に対する前記照合文字情報との照合処理の結果を示す状態情報とを生成し、
生成した双方の状態情報のそれぞれに基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報との照合処理を行なう、
処理を実行させることを特徴とする照合プログラム。
（付記２)
前記コンピュータに、さらに、
前記文書データから前記指示の読み出しに応じて、前記読み出し前までに行なわれた照合の結果を示す状態情報を複製する、
処理を実行させ、
前記第１の文字情報に対する前記照合文字情報との照合処理は、複製して得られた一方の状態情報に基づいて行なわれ、前記第２の文字情報に対する前記照合文字情報との照合処理は、複製して得られた他方の状態情報に基づいて行なわれる、
ことを特徴とする付記１に記載の照合プログラム。
（付記３）
前記第１の表記がルビの親文字での表記であり、前記第２の表記がルビでの表記である、
ことを特徴とする付記１又は付記２に記載の照合プログラム。
（付記４）
前記コンピュータに、さらに、
前記後続する文字情報が、他の言語単位について併記が指示された、前記他の言語単位の前記第１の表記である第３の文字情報及び前記他の言語単位の前記第２の表記である第４の文字情報である場合に、生成された状態情報のそれぞれに基づいて、前記第３の文字情報と前記照合文字情報との照合処理と、前記第４の文字情報と前記照合文字情報との照合処理を行なう、
処理を実行させることを特徴とする付記１〜３のいずれか１つに記載の照合プログラム。
（付記５）
前記コンピュータに、さらに、
前記生成されたそれぞれの状態情報に重複する状態情報が含まれる場合に、重複する状態情報のうちのいずれかを削除する、
処理を実行させることを特徴とする付記４に記載の照合プログラム。
（付記６）
照合文字情報との照合処理を行なうコンピュータに、
照合対象の文書データに、ある言語単位の第１の表記である第１の文字情報及び前記ある言語単位の第２の表記である第２の文字情報を併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報との照合処理の結果を示す状態情報と、前記第２の文字情報に対する前記照合文字情報との照合処理の結果を示す状態情報とを生成し、
生成した双方の状態情報のそれぞれに基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報との照合処理を行なう、
ことを実行させることを特徴とする照合方法。
（付記７）
照合文字情報を受け付ける受付部と、
照合対象の文書データに、ある言語単位の第１の表記である第１の文字情報及び前記ある言語単位の第２の表記である第２の文字情報を併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報との照合処理の結果を示す状態情報と、前記第２の文字情報に対する前記照合文字情報との照合処理の結果を示す状態情報とを生成し、生成した双方の状態情報のそれぞれに基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報との照合処理を行なう照合部と、
を含むことを特徴とする照合装置。
（付記８）
照合装置がプロセッサとメモリとを含み、
前記メモリが照合対象の文書データを記憶し、
前記プロセッサが、
前記メモリに記憶された照合対象の文書データに、ある言語単位の第１の表記である第１の文字情報及び前記ある言語単位の第２の表記である第２の文字情報を併記させる指示が含まれる場合に、前記第１の文字情報に対する前記照合文字情報との照合処理の結果を示す状態情報と、前記第２の文字情報に対する前記照合文字情報との照合処理の結果を示す状態情報とを生成し、
生成した双方の状態情報のそれぞれに基づいて、前記文書データにおいて前記第１の文字情報及び前記第２の文字情報に後続する文字情報との照合処理を行なう。
【符号の説明】
【００８０】
１      コンピュータ
１１    検索部
１２    記憶部
１３    受付部
１４    生成部
１５    読出部
１６    検知部
１７    照合部
１８    出力部
【図１】
0006028393.tif 000002
【図２】
0006028393.tif 000003
【図３】
0006028393.tif 000004
【図４】
0006028393.tif 000005
【図５】
0006028393.tif 000006
【図６】
0006028393.tif 000007
【図７】
0006028393.tif 000008
【図８】
0006028393.tif 000009
【図９】
0006028393.tif 000010
【図１０】
0006028393.tif 000011
【図１１】
0006028393.tif 000012
【図１２Ａ】
0006028393.tif 000013
【図１２Ｂ】
0006028393.tif 000014
【図１３Ａ−Ｂ】
0006028393.tif 000015
【図１４Ａ】
0006028393.tif 000016
【図１４Ｂ】
0006028393.tif 000017
【図１５】
0006028393.tif 000018