"圧縮前の文字列と、該文字列に対応する圧縮後の符号とを対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させる第1オートマトンを記憶する記憶部と、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンを、前記前半ビットによって第1ノードから中間ノードに状態遷移が発生し、前記後半ビットによって中間ノードから第2ノードに状態遷移が発生する第2オートマトンに変換する変換部と、前記第2オートマトンの各中間ノードの遷移先となる第2ノードを比較し、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合する統合部と、を有することを特徴とするオートマトン処理装置。前記統合部は、前記第2オートマトンに含まれる第1ノードと中間ノードと第2ノードとの状態遷移の関係を集計し、集計した結果を基にして、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合することを特徴とする請求項1に記載のオートマトン処理装置。検索キーワードと、圧縮前の文字列および該文字列に対応する圧縮後の符号を対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させ前記検索キーワードの照合する第1オートマトンとを記憶する記憶部と、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードによる検索に関与しない文字列の符号を特定する特定部と、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンにおいて、前記特定部が特定した符号によって状態遷移する第1ノードを特定し、特定した各第1ノードの状態遷移先を同一の中間ノードに設定することで、前記第1オートマトンを第2オートマトンに変換する変換部と、を有することを特徴とするオートマトン処理装置。前記特定部は、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードに含まれる文字の存在しない前記圧縮辞書の文字列を、前記検索キーワードによる検索に関与しない文字列として特定することを特徴とする請求項3に記載のオートマトン処理装置。前記特定部は、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードの部分文字列として含まない前記圧縮辞書の文字列、または、前記検索キーワードの接尾辞の何れかと接頭辞の一致しない前記圧縮辞書の文字列、または、前記検索キーワードの接頭辞のいずれかと接尾辞の一致しない前記圧縮辞書の文字列を、前記検索キーワードによる検索に関与しない文字列として特定することを特徴とする請求項3に記載のオートマトン処理装置。コンピュータが実行するオートマトン処理方法であって、圧縮前の文字列と、該文字列に対応する圧縮後の符号とを対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させる第1オートマトンを前記コンピュータの記憶装置に記憶させ、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンを、前記前半ビットによって第1ノードから中間ノードに状態遷移が発生し、前記後半ビットによって中間ノードから第2ノードに状態遷移が発生する第2オートマトンに変換し、前記第2オートマトンの各中間ノードの遷移先となる第2ノードを比較し、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合する、各処理を実行することを特徴とするオートマトン処理方法。コンピュータが実行するオートマトン処理方法であって、検索キーワードと、圧縮前の文字列および該文字列に対応する圧縮後の符号を対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させ前記検索キーワードの照合する第1オートマトンとを記憶装置に記憶させ、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードによる検索に関与しない文字列の符号を特定し、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンにおいて、前記特定部が特定した符号によって状態遷移する第1ノードを特定し、特定した各第1ノードの状態遷移先を同一の中間ノードに設定することで、前記第1オートマトンを第2オートマトンに変換する各処理を実行することを特徴とするオートマトン処理方法。コンピュータに、圧縮前の文字列と、該文字列に対応する圧縮後の符号とを対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させる第1オートマトンを前記コンピュータの記憶装置に記憶させ、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンを、前記前半ビットによって第1ノードから中間ノードに状態遷移が発生し、前記後半ビットによって中間ノードから第2ノードに状態遷移が発生する第2オートマトンに変換し、前記第2オートマトンの各中間ノードの遷移先となる第2ノードを比較し、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合する、各処理を実行させることを特徴とするオートマトン処理プログラム。コンピュータに、検索キーワードと、圧縮前の文字列および該文字列に対応する圧縮後の符号を対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させ前記検索キーワードの照合する第1オートマトンとを記憶装置に記憶させ、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードによる検索に関与しない文字列の符号を特定し、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンにおいて、前記特定部が特定した符号によって状態遷移する第1ノードを特定し、特定した各第1ノードの状態遷移先を同一の中間ノードに設定することで、前記第1オートマトンを第2オートマトンに変換する各処理を実行させることを特徴とするオートマトン処理プログラム。しかしながら、上述した従来技術では、オートマトンのサイズが大きくなってしまうという問題があった。図45に示したように、オートマトンを構成する各ノードは、遷移先リスト50b、照合情報リスト50cを有しており、遷移先リスト50bおよび照合情報リスト50cのサイズは、圧縮符号のビット長に依存する。このため、圧縮符号の種類が多くなり、1つの圧縮符号のビット長が大きくなると、オートマトンが巨大化してしまう。開示の技術は、上記に鑑みてなされたものであって、オートマトンのサイズが大きくなることを防止することができるオートマトン処理装置、オートマトン処理方法およびオートマトン処理プログラムを提供すること目的とする。開示のオートマトン処理装置は、記憶部と、変換部と、統合部とを有する。記憶部は、圧縮前の文字列と該文字列に対応する圧縮後の符号とを対応付けた圧縮辞書圧縮辞書と、圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させる第1オートマトンを記憶する。変換部は、複数の中間ノードを生成し、符号を前半ビットおよび後半ビットに分割する。変換部は、第1オートマトンを、前半ビットによって第1ノードから中間ノードに状態遷移が発生し、後半ビットによって中間ノードから第2ノードに状態遷移が発生する第2オートマトンに変換する。統合部は、第2オートマトンの各中間ノードの遷移先となる第2ノードを比較し、後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合する。開示のオートマトン処理装置によれば、オートマトンのサイズが大きくなることを防止することができるという効果を奏する。以下に、本願の開示するオートマトン処理装置、オートマトン処理方法およびオートマトン処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。本実施例1に係るオートマトン処理装置の構成について説明する。図1は、本実施例1に係るオートマトン処理装置の構成を示す機能ブロック図である。図1に示すように、オートマトン処理装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。通信部110は、ネットワークを介して利用者端末とデータ通信を実行する処理部である。通信部110は、例えば、各種の通信装置に対応する。通信部110は、利用者端末から各種の情報を受信し、受信した情報を制御部150に出力する。通信部110が受信する各種の情報は、圧縮辞書、キーワード集合、圧縮後テキスト等に対応する。圧縮辞書、キーワード集合、圧縮後テキストに関する説明は後述する。また、通信部110は、検索結果を制御部150から取得した場合には、検索結果を利用者端末に送信する。入力部120は、利用者などが、各種の情報を入力する入力装置である。例えば、入力部120は、キーボード、マウス、タッチパネル等に対応する。入力部120は、受け付けた各種データを制御部150に出力する。例えば、利用者は、入力部120を操作して、圧縮辞書、キーワード集合、圧縮後テキスト等をオートマトン処理装置100に入力しても良い。表示部130は、各種の情報を表示する表示装置である。例えば、表示部130は、ディスプレイやタッチパネルに対応する。例えば、表示部130は、制御部150から検索結果等を受け付け、受け付けた検索結果を表示する。記憶部140は、圧縮辞書141、圧縮後テキスト142、キーワード集合143、オートマトン144、集計表145を記憶する。記憶部140は、例えば、RAMRandomAccessMemory、ROMReadOnlyMemory、フラッシュメモリFlashMemoryなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。圧縮辞書141は、圧縮前の文字列と、該文字列に対応する圧縮後の符号とを対応付ける情報である。図2は、圧縮辞書のデータ構造の一例を示す図である。図2に示すように、圧縮辞書141は、文字列と符号とを対応付ける。例えば、文字列aaを圧縮すると、符号0となる。圧縮辞書141の符号は3ビット表記である。括弧内は符号を1ビットの前半ビットと、2ビットの後半ビットとで表記したものである。例えば、3ビット表記の符号0は、前半ビットおよび後半ビットを用いて表記すると00となる。圧縮後テキスト142は、圧縮辞書141に基づいて圧縮されたテキスト情報である。図3は、圧縮テキストのデータ構造の一例を示す図である。図3に示すように、この圧縮テキスト142には、符号列61025を有する。この圧縮テキスト142を圧縮する前のテキストはdabaabaacdcdとなる。このテキストdabaabaacdcdを、圧縮時書141に基づいて圧縮することで、圧縮テキスト142の符号列61025が生成される。キーワード集合143は、検索対象となる検索キーワードを有する。図4は、キーワード集合のデータ構造の一例を示す図である。図4に示す例では、キーワード集合143には、検索キーワードabaaが含まれる。キーワード集合143は、この他にも検索キーワードを含んでも良い。オートマトン144は、キーワード集合143の検索キーワードが圧縮後テキスト142に含まれるか否かを判定する場合に利用されるオートマトンである。詳細については後述するが、初めに、1符号1遷移型のオートマトンが生成され、この1符号1遷移型のオートマトンが、1符号2遷移型のオートマトンに変換される。本実施例1では、適宜、1符号1遷移型のオートマトンをオートマトン144Aと表記し、1符号2遷移型のオートマトンをオートマトン144Bと表記する。オートマトン144A、144Bに関する詳細な説明は後述する。集計表145は、オートマトン144の状態遷移に関する各種の情報を保持する。集計表145に関する詳細な説明は後述する。制御部150は、データ管理部151、オートマトン生成部152、変換部153、統合部154、照合部155を有する。制御部150は、例えば、ASICApplicationSpecificIntegratedCircuitや、FPGAFieldProgrammableGateArrayなどの集積装置に対応する。また、制御部150は、例えば、CPUやMPUMicroProcessingUnit等の電子回路に対応する。データ管理部151は、通信部110または入力部120から、圧縮辞書141と、圧縮後テキスト142と、キーワード集合143とを取得する。データ管理部151は、圧縮辞書141と、圧縮後テキスト142と、キーワード集合143とを記憶部140に格納する。オートマトン生成部152は、圧縮辞書141とキーワード集合143とを基にして、1符号1遷移型のオートマトン144Aを生成する処理部である。オートマトン生成部152は、検索キーワードに含まれる文字または文字列に対応する複数のノードを生成する。そして、オートマトン生成部152は、圧縮辞書141の符号によって遷移する遷移元のノードおよび遷移先のノードを特定し、各ノードを対応付けることで、オートマトン144Aを生成する。なお、オートマトン生成部144は、どのような従来技術を用いて、オートマトン144Aを生成しても良い。例えば、オートマトン生成部144は、特開2010-287052号公報に開示された技術を用いてオートマトン144Aを生成しても良い。図5は、本実施例1に係る1符号1遷移型のオートマトンのデータ構造の一例を示す図である。図5に示すように、オートマトン144Aは、ノード51、52、53、54、55を有する。図5に示すオートマトン144Aは、図44に示したオートマトン50に対応するものである。オートマトン144Aに含まれるノード51~55に関する説明は、オートマトン50に含まれるノード51~55に関する説明と同様である。また、ノード51~55のデータ構造は、図45で説明したデータ構造に対応する。変換部153は、1符号1遷移型のオートマトン144Aを、1符号2遷移型のオートマトン144Bに変換する処理部である。変換部153の処理の概要を説明する。変換部153は、中間ノードを生成し、ある符号によって遷移する遷移元のノードと遷移先のノードを選択する。変換部153は、符号を前半ビットおよび後半ビットに分割する。変換部153は、前半ビットによって遷移元のノードから中間ノードに遷移し、後半ビットによって中間ノードから遷移先のノードに遷移するように、遷移元のノードおよび中間ノードの遷移先リストを変更する。このような処理を、オートマトン144Aの各ノードに対して実行することで、変換部153は、オートマトン144Aをオートマトン144Bに変換する。ここで、変換部153の処理手順を具体的に説明する。図6は、本実施例1に係る変換部の処理手順を示すフローチャートである。例えば、図6に示す処理は、オートマトン144Aが生成されたことを契機に実行される。図6に示すように、変換部153は、未処理のノードが存在するか否かを判定するステップS101。変換部153は、未処理のノードが存在しない場合にはステップS101,No、処理を終了する。一方、変換部153は、未処理のノードが存在する場合にはステップS101,Yes、未処理のノードのうち、任意のノードを選択してノードvに設定するステップS102。変換部153は、ノードvの遷移先リストにおいて、未処理の符号が存在するか否かを判定するステップS103。変換部153は、未処理の符号が存在しない場合にはステップS103,No、ステップS101に移行する。一方、変換部153は、未処理の符号が存在する場合にはステップS103,Yes、下記の処理を実行する。変換部153は、未処理の符号のうち、任意の1つの符号を符号sに設定し、ノードvの符号sに関する遷移先ノードをノードw、照合情報をfに設定するステップS104。ここでs=s1s2とする。s1は、符号sの前半ビットである。s2は、符号sの後半ビットである。変換部153は、ノードvからs1に関する中間ノードnが生成済みの場合には、中間ノードnのs2に関する遷移先をノードwに設定する。変換部153は、中間ノードnが未生成の場合には、中間ノードnを生成し、ノードvのs1に関する遷移先を中間ノードnに設定する。また、変換部153は、中間ノードnのs2に関する遷移先をノードwに設定する。最後に、変換部153は、中間ノードnに関する照合情報をfに設定するステップS105。変換部153は、ステップS105の処理終了後に、ステップS101に移行する。次に、変換部153が、1符号1遷移型のオートマトン144Aを、1符号2遷移型のオートマトン144Bに変換する処理の過程について説明する。図7~図11は、本実施例1に係る変換部の処理を説明するための図である。図7について説明する。変換部153は、ノード51に関して変換を実施する。ノード51は、符号0、2によって、ノード52に遷移する。ノード51は、符号1によって、ノード53に遷移する。ノード51は、符号3~7の何れかによって、ノード51に遷移する。変換部153は、符号0、1、2、3、4、5、6、7を前半ビットおよび後半ビットに分割すると、各符号はそれぞれ、00、01、02、03、10、11、12、13となる。各符号は、前半ビット0、1と、後半ビット0~3の組みで表される。変換部153は、前半ビット0に関する中間ノード61を生成する。変換部153は、ノード51の前半ビット0に関する遷移先を中間ノード61に設定する。また、変換部153は、中間ノード61の後半ビット0、2に関する遷移先をノード52に設定する。変換部153は、中間ノード61の後半ビット1に関する遷移先をノード53に設定する。変換部153は、中間ノード61の後半ビット3に関する遷移先をノード51に設定する。変換部153は、前半ビット1に関する中間ノード62を生成する。変換部153は、ノード51の前半ビット1に関する遷移先を中間ノード62に設定する。また、変換部153は、中間ノード62の後半ビット0、1、2、3に関する遷移先をノード51に設定する。図8について説明する。変換部153は、ノード52に関して変換を実施する。ノード52は、符号0によって、ノード52に遷移する。ノード52は、符号1によって、ノード53に遷移する。ノード52は、符号2により、ノード55に遷移する。この符号2による遷移は、照合情報付きの遷移である。ノード52は、符号3~7の何れかによって、ノード51に遷移する。変換部153は、各符号を前半ビットと後半ビットに分割する。変換部153は、前半ビット0に関する中間ノード63を生成する。変換部153は、ノード52の前半ビット0に関する遷移先を中間ノード63に設定する。また、変換部153は、中間ノード63の後半ビット0に関する遷移先をノード52に設定する。変換部153は、中間ノード63の後半ビット1に関する遷移先をノード53に設定する。変換部153は、中間ノード63の後半ビット2に関する遷移先をノード55に設定し、照合情報を1に設定する。変換部153は、中間ノード63の後半ビット3に関する遷移先をノード51に設定する。変換部153は、前半ビット1に関する中間ノード64を生成する。変換部153は、ノード52の前半ビット1に関する遷移先を中間ノード64に設定する。また、変換部153は、中間ノード64の後半ビット0、1、2、3に関する遷移先をノード51に設定する。図9について説明する。変換部153は、ノード53に関して変換を実施する。ノード53は、符号0によって、ノード55に遷移する。この符号0による遷移は、照合情報付きの遷移である。ノード53は、符号1によって、ノード53に遷移する。ノード53は、符号2によって、ノード52に遷移する。ノード53は、符号3~7の何れかによって、ノード51に遷移する。変換部153は、各符号を前半ビットと後半ビットに分割する。変換部153は、前半ビット0に関する中間ノード65を生成する。変換部153は、ノード53の前半ビット0に関する遷移先を中間ノード65に設定する。また、変換部153は、中間ノード65の後半ビット0に関する遷移先をノード55に設定し、照合情報を1に設定する。変換部153は、中間ノード65の後半ビット1に関する遷移先をノード53に設定する。変換部153は、中間ノード65の後半ビット2に関する遷移先をノード52に設定する。変換部153は、中間ノード65の後半ビット3に関する遷移先をノード51に設定する。変換部153は、前半ビット1に関する中間ノード66を生成する。変換部153は、ノード53の前半ビット1に関する遷移先を中間ノード66に設定する。また、変換部153は、中間ノード66の後半ビット0、1、2、3に関する遷移先をノード51に設定する。図10について説明する。変換部153は、ノード54に関して変換を実施する。ノード54は、符号0によって、ノード52に遷移する。この符号0による遷移は、照合情報付きの遷移である。ノード54は、符号1によって、ノード53に遷移する。この符号1による遷移は、照合情報付きの遷移である。ノード54は、符号2によって、ノード52に遷移する。ノード54は、符号3~7の何れかによって、ノード51に遷移する。変換部153は、前半ビット0に関する中間ノード67を生成する。変換部153は、ノード54の前半ビット0に関する遷移先を中間ノード67に設定する。また、変換部153は、中間ノード67の後半ビット0に関する遷移先をノード52に設定し、照合情報を1に設定する。変換部153は、中間ノード67の後半ビット1に関する遷移先をノード53に設定し、照合情報を1に設定する。変換部153は、中間ノード67の後半ビット2に関する遷移先をノード52に設定する。変換部153は、中間ノード67の後半ビット3に関する遷移先をノード51に設定する。変換部153は、前半ビット1に関する中間ノード68を生成する。変換部153は、ノード54の前半ビット1に関する遷移先を中間ノード68に設定する。また、変換部153は、中間ノード68の後半ビット0、1、2、3に関する遷移先をノード51に設定する。図11について説明する。変換部153は、ノード55に関して変換を実施する。ノード55は、符号0、2によって、ノード52に遷移する。ノード55は、符号1によって、ノード53に遷移する。ノード55は、符号3~7の何れかによって、ノード51に遷移する。変換部153は、前半ビット0に関する中間ノード69を生成する。変換部153は、ノード55の前半ビット0に関する遷移先を中間ノード69に設定する。また、変換部153は、中間ノード69の後半ビット0に関する遷移先をノード52に設定する。変換部153は、中間ノード69の後半ビット1に関する遷移先をノード53に設定する。変換部153は、中間ノード69の後半ビット2に関する遷移先をノード55に設定し、照合情報を1に設定する。変換部153は、中間ノード69の後半ビット3に関する遷移先をノード51に設定する。変換部153は、前半ビット1に関する中間ノード70を生成する。変換部は、ノード55の前半ビット1に関する遷移先を中間ノード70に設定する。また、変換部153は、中間ノード70の後半ビット0、1、2、3に関する遷移先をノード51に設定する。変換部153が図6~図11に説明した処理を実行することで、1符号1遷移型のオートマトン144Aは、1符号2遷移型のオートマトン144Bに変換される。なお、変換部153は、1符号2遷移型のオートマトン144Bに変換した後に、1符号1遷移に関する遷移情報を、ノード51~55から削除する。かかる遷移情報は、1符号1遷移型で用いる照合情報リスト、1符号1遷移型で用いる遷移先リストに対応する。ここで、図11等に示したオートマトン144Bのノード51~55のデータ構造および中間ノード61~70のデータ構造について説明する。図12は、1符号2遷移型のオートマトンのノードのデータ構造の一例を示す図である。図12に示すように、ノードは、ノードID50aと、遷移先リスト50dとを有する。ノードID50aは、ノードを一意に識別する情報を格納する。遷移先リスト50dは、各前半ビットに対して、その遷移先を与えるリストである。遷移先リスト50dには、遷移先として中間ノードが指定される。前半ビットのビット長をbとすると、リスト長は、2bとなる。前半ビットのビット長は、分割前のビット長よりも短い。このため、図12に示す遷移先リスト50dは、図45に示した遷移先リスト50cよりも短くなり、データ量が少なくなる。また、図12のノードのデータ構造と、図45の従来のノードのデータ構造を比較すると、図12のノードのデータ構造には、照合情報リストが存在しないため、更にデータ量が少なくなる。図13は、中間ノードのデータ構造の一例を示す図である。図13に示すように、中間ノードは、ノードID60aと、遷移先リスト60bと、照合情報リスト60cとを有する。ノードID60aは、中間ノードを一意に識別する情報を格納する。遷移先リスト60bは、各後半ビットに対して、その遷移先を与えるリストである。遷移先リスト60bには、遷移先としてノードが指定される。後半ビットのビット長をcとすると、リスト長は、2cとなる。照合情報リスト60cは、すべての後半ビットに対して、0または1を割り当てるリストである。照合情報リスト60cのリスト長は、遷移先リスト60bのリスト長と同じである。後半ビットに対応する遷移が、照合情報付きの遷移の場合には、照合情報リスト60cの照合情報に1が設定される。それ以外の場合には、照合情報に0が設定される。また、キーワード集合143に複数の検索キーワードが含まれる場合には、どの検索キーワードを照合したのかを識別するために、照合情報に、検索キーワードのIDが設定される。統合部154は、オートマトン144Bを基にして、集計表145を生成する。また、統合部154は、集計表145を基にして、オートマトン144Bに含まれる中間ノードの遷移先となるノードを比較し、後半ビットの如何によらず同一のノードに遷移する中間ノードを統合する処理部である。統合部154の処理手順を具体的に説明する。図14および図15は、本実施例1に係る統合部の処理手順を示すフローチャートである。図14に示すように、統合部154は、オートマトン144の全ノードをスキャンし、開始ノードID、前半ビット、後半ビット、中間ノードのノードID、終端ノードID、照合情報の各項目からなる集計表145を生成するステップS110。ここで、開始ノードIDは、遷移元のノードIDである。終端ノードIDは、中間ノードの遷移先のノードIDである。統合部154は、集計表145において、開始ノードIDと前半ビットとの組みが共通するもの同士をグループ化するステップS111。統合部154は、グループの全レコードにおける、後半ビット、終端ノードID、照合情報の挙動が完全に一致するグループ集合を検出するステップS112。統合部154は、検出したグループ集合を、統合対象の中間ノード集合として決定するステップS113。図15の説明に移行する。統合部154は、iの値に1を設定しステップS120、中間ノードの集合Miが存在するか否かを判定するステップS121。統合部154は、中間ノード集合Miが存在しない場合にはステップS121,No、処理を終了する。統合部154は、中間ノードの集合Miが存在する場合にはステップS121,Yes、中間ノードの集合Miに含まれる中間ノードのうち、1つを代表中間ノードvに設定する。また、統合部154は、その他の中間ノードをw1、、wkに設定するステップS122。統合部154は、jの値に1を設定するステップS123。統合部154は、中間ノードwjが存在するか否かを判定するステップS124。統合部154は、中間ノードwjに向かう全ての遷移の遷移先を、代表中間ノードvに置き換え、オートマトン144から中間ノードwjを削除するステップS125。統合部154は、jの値に1を加算しステップS126、ステップS124に移行する。ところで、統合部154は、ステップS124において、中間ノードwjが存在しない場合にはステップS124,No、iの値に1を加算しステップS127、ステップS120に移行する。次に、統合部154が生成する集計表145について説明する。図16は、集計表のデータ構造の一例を示す図である。図16に示すように、集計表145は、開始ノードID、前半ビット、中間ノードのノードID、後半ビット、終端ノードID、照合情報を対応付ける。ここで、照合情報は、該当する中間ノードから終端ノードへの遷移が、照合情報付きの遷移であるか否かを示す情報である。照合情報付きの遷移である場合には、照合情報にはyesが格納される。図16の1段目に着目すると、ノード51は、前半ビット0により中間ノード61に遷移する。そして、中間ノード61は、後半ビット0により、ノード52に遷移する。かかる遷移に対応する照合情報には何も格納されていないので、該当遷移は、照合情報付きの遷移ではない。次に、統合部154が、中間ノードを統合する処理の過程について説明する。図17~図20は、本実施例1に係る統合部の処理を説明するための図である。まず、統合部154は、集計表145において、開始ノードIDと前半ビットが共通する中間ノード同士をグループ化する。また、統合部154は、グループの全レコードにおいて、後半ビット、終端ノードID、照合情報の挙動が一致するグループ集合を検出する。図17について説明する。ここでは、上記処理の結果として、グループ集合M1に、ノード62、64、68、70が含まれるものとする。代表中間ノードvをノード66とする。中間ノードw1、w2、w3、w4を、中間ノード62、64、66、68、70とする。図18について説明する。統合部154は、ノード51の遷移先リストにおいて、前半ビット1による遷移先を、中間ノードw1から代表中間ノードvに置き換える。そして、統合部154は、中間ノードw1をオートマトン144から削除する。図19について説明する。統合部154は、ノード52の遷移先リストにおいて、前半ビット1による遷移先を、中間ノードw2から代表中間ノードvに置き換える。そして、統合部154は、中間ノードw2をオートマトン144から削除する。図20について説明する。統合部154は、ノード54の遷移先リストにおいて、前半ビット1による遷移先を、中間ノードw3から代表中間ノードvに置き換える。そして、統合部154は、中間ノードw3を削除する。また、統合部154は、ノード55の遷移先リストにおいて、前半ビット1による遷移先を、中間ノードw4から代表中間ノードvに置き換える。そして、統合部154は、中間ノードw3、w4を、オートマトン144から削除する。上記のように、統合部154が、図17~図20に示した処理を実行することで、同一グループに属する各中間ノードは、代表中間ノードvに統合される。照合部155は、圧縮後テキスト142に含まれる符号を順次読み出して、オートマトン144と順次比較することで、圧縮後テキスト142に検索キーワードが含まれているか否かを照合する処理部である。例えば、照合部155は、照合を行い、検索キーワードが圧縮後テキスト142に何個含まれているか否かを計数する。照合部155は、照合結果を、表示部130に出力して、照合結果を表示させる。または、照合部155は、照合結果を、ネットワークを介して、利用者端末に送信しても良い。照合部155の処理手順を具体的に説明する。図21は、本実施例1に係る照合部の処理手順を示すフローチャートである。例えば、図21に示す処理は、圧縮後テキスト142が、記憶部140に登録された場合に実行される。図21に示すように、照合部155は、圧縮後テキスト142の最初の符号をsに代入するステップS201。照合部155は、Ansq1~Ansqnの値を0に設定するステップS202。Ansq1~Ansqnは、キーワード集合143に含まれる各検索キーワードq1~qnの照合回数に対応する。照合部155は、オートマトン144の初期ノードをノードvに代入するステップS203。照合部155は、sが存在するか否かを判定するステップS204。照合部155は、sが存在しない場合にはステップS204,No、Ansq1~Ansqnを出力するステップS205。一方、照合部155は、sが存在する場合にはステップS204,Yes、s=s1s2とする。ここで、s=s1s2とするとは、符号sを、前半ビットs1と後半ビットs2として捉えることを意味する。照合部155は、ノードvのs1に関する遷移先の中間ノードをノードnとする。照合部155は、ノードnのs2に関する照合情報をfとするステップS206。照合部155は、fが空集合であるか否かを判定するステップS207。照合部155は、fが空集合の場合にはステップS207,Yes、ステップS209に移行する。一方、照合部155は、fが空集合ではない場合にはステップS207,No、fに含まれる全ての検索キーワードに対して、Ansqを1増やすステップS208。照合部155は、ノードnのs2に関する遷移先をノードvに設定するステップS209。照合部155は、圧縮後テキスト142における次の符号をsに設定しステップS210、ステップS204に移行する。次に、照合部155が、照合する処理の過程について説明する。図22~図26は、本実施例1に係る照合部の処理を説明するための図である。また、圧縮後テキスト142には、図3に示したように61025の符号を含む。ここでは一例として、q1=abaaとする。図22について説明する。照合部155は、初期ノードをノード51に設定する。照合部155は、圧縮後テキスト142の1つ目の符号6を読み出し、sに6を設定する。6の前半ビットs1は1となり、後半ビットs2は2となる。照合部155は、ノード51の遷移先リストと、前半ビットs1=1とを比較して、ノード51から中間ノード66に現在の状態を遷移させる。照合部155は、中間ノード66の遷移先リストと、後半ビットs2=2とを比較して、中間ノード66からノード51に現在の状態を遷移させる。図22の処理が終了した時点で、Ansq1の値は0となる。図23について説明する。照合部155は、圧縮後テキスト142の2つ目の符号1を読み出し、sに1を設定する。1の前半ビットs1は0となり、後半ビットは1となる。照合部155は、ノード51の遷移先リストと、前半ビットs1=0とを比較して、ノード51から中間ノード61に現在の状態を遷移させる。照合部155は、中間ノード61の遷移先リストと、後半ビットs2=1とを比較して、中間ノード61からノード53に現在の状態を遷移させる。図23の処理が終了した時点で、Ansq1の値は0となる。図24について説明する。照合部155は、圧縮後テキスト142の3つ目の符号0を読み出し、sに0を設定する。0の前半ビットs1は0となり、後半ビットは0となる。照合部155は、ノード53の遷移先リストと、前半ビットs1=0とを比較して、ノード53から中間ノード65に現在の状態を遷移させる。照合部155は、中間ノード65と、後半ビットs2=0とを比較して、中間ノード65からノード55に現在の状態を遷移させる。中間ノード65からノード55への遷移は、照合情報付きの遷移となる。このため、照合部155は、Ansq1の値に1を加算する。図24の処理が終了した時点で、Ansq1の値は1となる。図25について説明する。照合部155は、圧縮後テキスト142の4つ目の符号2を読み出し、sに2を設定する。2の前半ビットs1は0となり、後半ビットは2となる。照合部155は、ノード55の遷移先リストと、前半ビットs1=0とを比較して、ノード55から中間ノード69に現在の状態を遷移させる。照合部155は、中間ノード69と、後半ビットs2=2とを比較して、中間ノード69からノード55に現在の状態を遷移させる。中間ノード69からノード55への遷移は、照合情報付きの遷移となる。このため、照合部155は、Ansq1の値に1を加算する。図25の処理が終了した時点で、Ansq1の値は2となる。図26について説明する。照合部155は、圧縮後テキスト142の5つ目の符号5を読み出し、sに5を設定する。5の前半ビットs1は1となり、後半ビットは1となる。照合部155は、ノード55の遷移先リストと、前半ビットs1=1とを比較して、ノード55から中間ノード66に現在の状態を遷移させる。照合部155は、中間ノード66と、後半ビットs2=1とを比較して、中間ノード66からノード51に現在の状態を遷移させる。図26の処理が終了した時点で、Ansq1の値は2となる。照合部155は、圧縮後テキスト142の符号を全て読み出したので、照合結果Ansq1=2を出力する。Ansq1=2は、検索テキストq1=abaaが、圧縮後テキスト142に2回現れている旨を示す。次に、本実施例1に係るオートマトン処理装置100の処理手順について説明する。図27は、本実施例1に係るオートマトン処理装置の処理手順を示すフローチャートである。例えば、図27に示す処理は、圧縮辞書141、キーワード集合143が記憶部140に記憶されたことを契機として実行される。図27に示すように、オートマトン処理装置100は、キーワード集合143、圧縮辞書141、前半ビット長b1、後半ビット長b2を基にして、1符号1遷移型のオートマトン144Aを、1符号2遷移型のオートマトン144Bに変換するステップS301。オートマトン処理装置100は、1符号2遷移型のオートマトン144Bを基にして集計表145を生成し、統合対象の中間ノードを特定するステップS302。オートマトン処理装置100は、中間ノードを統合して1符号2遷移型のオートマトン144Bを更新するステップS303。オートマトン処理装置100は、オートマトン144Bを出力するステップS304。図27のステップS301に示した処理の処理手順を具体的に説明する。図28は、ステップS301の処理手順を具体的に示すフローチャートである。図28に示すように、オートマトン処理装置100は、キーワード集合143と圧縮辞書141とから1符号1遷移型のオートマトン144Aを作成するステップS310。オートマトン処理装置100は、前半ビット長b1と後半ビット長b2とを用いて、1符号1遷移型のオートマトン144Aを、1符号2遷移型のオートマトン144Bに変換するステップS311。オートマトン処理装置100は、1符号2遷移型のオートマトン144Bを出力するステップS312。ステップS311に示す処理は、図6に示した変換部153の処理に対応する。ところで、図27のステップS302に示す処理の詳細は、図14に示した統合部154の処理に対応する。図27のステップS303に示す処理の詳細は、図15に示した統合部154の処理に対応する。次に、本実施例1に係るオートマトン処理装置100の効果について説明する。オートマトン処理装置100は、中間ノードを生成し、符号の前半ビットで中間ノードに遷移し、符号の後半ビットで中間ノードからノードに遷移させることで、1符号1遷移型のオートマトン144Aを、1符号2遷移型のオートマトン144Bに変換する。そして、オートマトン処理装置100は、オートマトンの各中間ノードの遷移先となるノードを比較し、後半ビットの如何によらず同一のノードに遷移する中間ノードを統合する。このため、オートマトン処理装置100によれば、オートマトンのサイズが大きくなることを防止することができるという効果を奏する。例えば、1符号1遷移型のオートマトン144Aを、図5に示すものとし、単一のノードのサイズを16とすると、オートマトン144Aの合計サイズは80となる。ここで、オートマトン処理装置100が、中間ノードを生成して、1符号1遷移型のオートマトン144Aを、1符号2遷移型のオートマトン144Bに変換すると、例えば、図11に示すものとなる。ノードは、遷移先リストが小さくなるので、単一のノードのサイズは、例えば2となる。しかし、中間ノードが新たに生成されており、中間ノードのサイズは8となる。このため、オートマトン144Bの合計サイズは90となり、図5のものと比較してサイズが大きくなってしまう。ここで、オートマトン処理装置100が、中間ノードを統合することで、オートマトン144Bは、図20に示すものとなる。図20のものは、図11のものと比較して、中間ノードの数が減っており、合計サイズは58となる。また、オートマトンのサイズが大きくなることを防止するため、照合に要する時間を短縮することができる。1符号2遷移でオートマトンを照合する場合には、一見、既存技術よりも検索が遅くなるように見える。しかし、実験結果によれば、圧縮辞書141のサイズが4096の場合、上述の1符号2遷移のオートマトンを用いた方が、1符号1遷移のオートマトンを用いるよりも、1.2倍高速に動作する。オートマトンの省領域化に伴うキャッシュミス率の低下の結果、高速化できたものと考えられる。次に、本実施例2に係るオートマトン処理装置の構成について説明する。図29は、本実施例2に係るオートマトン処理装置の構成を示す機能ブロック図である。図29に示すように、このオートマトン処理装置200は、通信部210、入力部220、表示部230、記憶部240、制御部250を有する。通信部210、入力部220、表示部230に関する説明は、図1に示した通信部110、入力部120、表示部130に関する説明と同様である。記憶部240は、圧縮辞書241、圧縮後テキスト242、キーワード集合243、オートマトン244を記憶する。記憶部240は、例えば、RAM、ROM、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。圧縮辞書241は、圧縮前の文字列と、該文字列に対応する圧縮後の符号とを対応付ける情報である。圧縮辞書のデータ構造は、図2に示したものと同様である。圧縮後テキスト242は、圧縮辞書241に基づいて圧縮されたテキスト情報である。圧縮後テキスト242のデータ構造は、図3に示したものと同様である。キーワード集合243は、検索対象となる検索キーワードを有する。キーワード集合243のデータ構造は、図4に示したものと同様である。オートマトン244は、キーワード集合243の検索キーワードが圧縮後テキスト242に含まれるか否かを判定する場合に利用されるオートマトンである。本実施例2では、適宜、1符号1遷移型のオートマトンをオートマトン244Aと表記し、1符号2遷移型のオートマトンをオートマトン244Bと表記する。オートマトン244のデータ構造は後述する。制御部250は、データ管理部251、オートマトン生成部252、特定部253、変換部254、照合部255を有する。制御部250は、例えば、ASICや、FPGAなどの集積装置に対応する。また、制御部250は、例えば、CPUやMPU等の電子回路に対応する。データ管理部251は、通信部210または入力部220から、圧縮辞書241と、圧縮後テキスト242と、キーワード集合243とを取得する。データ管理部251は、圧縮辞書241と、圧縮後テキスト242と、キーワード集合243とを記憶部240に格納する。オートマトン生成部252は、圧縮辞書241とキーワード集合243とを基にして、1符号1遷移型のオートマトン244Aを生成する処理部である。オートマトン生成部252の具体的な処理の説明は、実施例1のオートマトン生成部152の説明と同様である。図30は、本実施例2に係る1符号1遷移型のオートマトンのデータ構造の一例を示す図である。図30に示すように、オートマトン244Aは、ノード51、52、53、54、55を有する。図30に示すオートマトン244Aは、図44に示したオートマトン50に対応するものである。オートマトン244Aに含まれるノード51~55に関する説明は、オートマトン50に含まれるノード51~55に関する説明と同様である。また、ノード51~55のデータ構造は、図45で説明したデータ構造に対応する。特定部253は、圧縮辞書241とキーワード集合243の検索キーワードとを基にして、検索キーワードによる検索に関与しない文字列の符号を特定する処理部である。特定部253は、特定結果を変換部254に出力する。ここで、特定部253の処理手順を具体的に説明する。図31および図32は、本実施例2に係る特定部の処理手順を示すフローチャートである。特定部253は、図31に示す処理を実行した後に、図32に示す処理を実行する。図31の処理では、特定部253は、圧縮辞書241に含まれる符号のうち、検索キーワードによる検索に関与しない符号集合Sを特定する。図31に示すように、特定部253は、sに値0を設定しステップS401、符号集合Sを空集合に設定するステップS402。特定部253は、キーワード集合243に含まれる全ての文字の集合をΣとするステップS403。特定部253は、符号sが存在するか否かを判定するステップS404。特定部253は、符号sが存在しない場合にはステップS404,No、符号集合Sを出力するステップS405。一方、特定部253は、符号sが存在する場合にはステップS404,Yes、符号sが表す文字列が、Σの文字列の何れかを含むか否かを判定するステップS406。特定部253は、Σの文字列の何れかを含む場合にはステップS406,Yes、ステップS408に移行する。一方、特定部253は、Σの文字列の何れかを含まない場合にはステップS406,No、符号sを符号集合Sに追加するステップS407。特定部253は、符号sに1を加算しステップS408、ステップS404に移行する。次に、図32の処理について説明する。図32の処理では、特定部253は、前半ビットのみで特定可能な符号を検出する。図32に示すように、特定部253は、前半ビットs1の値を0に設定するステップS410。特定部253は、s1≦2b1-1の条件が満たされない場合にはステップS411,No、符号集合Sを出力するステップS412。b1は、前半ビット長である。一方、特定部253は、s1≦2b1-1の条件が満たされる場合にはステップS411,Yes、前半ビットがs1である符号ss10≦s≦s12b2-1の全てが符号集合Sに含まれるか否かを判定するステップS413。b2は、後半ビット長である。特定部253は、前半ビットがs1である符号ss10≦s≦s12b2-1の全てが符号集合Sに含まれる場合にはステップS413,Yes、ステップS415に移行する。特定部253は、前半ビットがs1である符号ss10≦s≦s12b2-1の全てが符号集合Sに含まれない場合にはステップS413,No、下記の処理を行う。特定部253は、前半ビットがs1である符号集合Sの要素を符号集合Sから全て削除するステップS414。特定部253は、前半ビットs1に1を加算しステップS415、ステップS411に移行する。ここで、特定部253の処理の一例について説明する。キーワード集合243に含まれる文字列をabaaとする。特定部253は、キーワード集合243の文字列に含まれる文字集合をΣ={a、b}とする。特定部253は、文字集合Σと、圧縮辞書241の文字列とを基にして、文字集合の文字を含まない文字列の符号を符号集合として特定する。例えば、文字aも文字bも含まない文字列の符号は、4,5,6,7となる。このため、特定部253は、符号集合Sとして、符号4,5,6,7を特定する。続いて、特定部253は、符号集合Sの符号4,5,6,7のうち、前半ビットのみで特定可能な符号集合Sを特定する。符号集合Sに含まれる符号4,5,6,7は、前半ビット1で特定可能であるため、特定部253は、符号集合Sの各符号4,5,6,7の何れも削除しない。特定部253は、符号集合Sの情報を、変換部254に出力する。変換部254は、1符号1遷移型のオートマトン244Aを、1符号2遷移型のオートマトン244Bに変換する処理部である。変換部254は、統合中間ノードを生成し、符号集合Sに含まれる符号によって状態遷移するノードを特定する。そして、変換部254は、特定したノードの状態遷移先を、統合中間ノードに設定することで、1符号1遷移型のオートマトン244Aを、1符号2遷移型のオートマトン244Bに変換する。なお、変換部254は、圧縮辞書241に含まれる符号のうち、符号集合Sに含まれない符号に関する遷移を、中間ノードを作って生成する。かかる処理は、実施例1に示した変換部153の処理と同様である。ここで、変換部254の処理手順を具体的に説明する。図33は、本実施例2に係る変換部の処理手順を示すフローチャートである。図33に示すように、変換部254は、未処理の統合中間ノードが、統合中間ノード集合Nに存在するか否かを判定するステップS420。この統合中間ノード集合Nの初期値には、異なる前半ビット毎の統合中間ノードが存在する。変換部254は、未処理の統合中間ノードが、統合中間ノード集合Nに存在しない場合にはステップS420,No、処理を終了する。一方、変換部254は、未処理の統合中間ノードが、統合中間ノード集合Nに存在する場合にはステップS420,Yes、未処理の統合中間ノードをncur=ns1とするステップS421。変換部254は、オートマトン244の全てのノードvに対して、ノードvの前半ビットs1に関する遷移先をncurに設定するステップS422。変換部254は、統合中間ノードncurにおける全ての後半ビットに関する遷移先を、オートマトン244の初期状態のノードに設定しステップS423、ステップS420に移行する。次に、変換部254が、1符号1遷移型のオートマトン244Aを、1符号2遷移型のオートマトン244Bに変換する処理の過程について説明する。図34~図36は、本実施例2に係る変換部の処理を説明するための図である。一例として、変換部254が、特定部253から取得する符号集合Sには、符号4、5、6、7が含まれているものとする。また、初期のオートマトン244Aのデータ構造を、図30に示すものとする。符号集合Sには、符号4、5、6、7が含まれている。各符号を前半ビット、後半ビットで表すと、10、11、12、13となり、前半ビットは1種類のみとなる。このため、変換部254は、統合中間ノードを1つ生成すればよい。図34について説明する。変換部254は、統合中間ノード80を生成する。統合中間ノード80のデータ構造は、図13に示した中間ノードのデータ構造と同様である。図35について説明する。変換部254は、オートマトン244のノード51~55に関して、前半ビット1に関する遷移先を統合中間ノード80に設定する。変換部254は、統合中間ノード80の後半ビット0、1、2、3に関する遷移先を、初期状態となるノード51に設定する。図36について説明する。変換部254は、圧縮辞書241に含まれる符号のうち、符号集合Sに含まれない符号に関する遷移を、中間ノードを作って生成する。変換部254は、中間ノード61、63、65、67、69を生成し、各ノードと接続する。中間ノード61、63、65、67、69に関する説明は、図11に説明したものと同様である。変換部254が図34~図36に説明した処理を実行することで、1符号1遷移型のオートマトン244Aは、1符号2遷移型のオートマトン244Bに変換される。なお、変換部254は、1符号2遷移型のオートマトン244Bに変換した後に、1符号1遷移に関する遷移情報を、ノード51~55から削除する。かかる遷移情報は、1符号1遷移型で用いる照合情報リスト、1符号1遷移型で用いる遷移先リストに対応する。照合部255は、圧縮テキスト242に含まれる符号を順次読み出して、オートマトン244と順次比較することで、圧縮テキスト242に検索キーワードが含まれているか否かを照合する処理部である。照合部255に関する説明は、実施例1の照合部155と同様である。次に、本実施例2に係るオートマトン処理装置200の処理手順について説明する。図37は、本実施例2に係るオートマトン処理装置の処理手順を示すフローチャートである。例えば、図37に示す処理は、圧縮辞書241、キーワード集合243が記憶部240に記憶されたことを契機として実行される。図37に示すように、オートマトン処理装置200は、キーワード集合243と、圧縮辞書241とを基にして、無関与の符号を検出し、無関与の符号の集合を、符号集合Sに設定するステップS501。オートマトン処理装置200は、符号集合Sの符号のうち、前半ビットのみで特定可能な符号を抽出し、抽出した符号の集合を新たな符号集合Sに設定するステップS502。オートマトン処理装置200は、符号集合Sの符号のうち、前半ビット長b1、後半ビット長b2から、1符号2遷移型のオートマトン244Bを生成する。オートマトン処理装置200は、オートマトンを生成する際に、符号集合Sの任意の符号に関する遷移は、統合中間ノードを用いて生成するステップS503。オートマトン処理装置200は、オートマトン244Bを出力するステップS504。図37のステップS501に示した処理の詳細は、図31に示した処理に対応する。図37のステップS502に示した処理の詳細は、図32に示した処理に対応する。図37のステップS503に示した処理の処理手順を具体的に説明する。図38は、ステップS503の処理手順を具体的に示すフローチャートである。図38に示すように、オートマトン処理装置200は、キーワード集合243と圧縮辞書241から、1符号1遷移型のオートマトン244Aを生成するステップS510。オートマトン処理装置200は、符号集合Sの全符号における相異なる前半ビットs1の数だけ、統合中間ノードnを生成する。また、オートマトン処理装置200は、統合中間ノードnの集合を統合中間ノード集合NとするステップS511。オートマトン処理装置200は、オートマトン244の全てのノードから、符号集合Sに含まれる全符号に関する遷移を作成するステップS512。ステップS512では、統合中間ノードを通って初期状態に向かう遷移を作成する。オートマトン処理装置200は、オートマトンの全てのノードから、符号集合Sに含まれない全符号に関する遷移を、中間ノードを作って作成するステップS513。オートマトン処理装置200は、オートマトン244から1符号1遷移に関する遷移情報を削除するステップS514。図38に示したステップS512に示した処理の詳細は、図33に示した処理に対応する。図38に示したステップS513に示した処理の詳細は、実施例1の図6に示した処理に対応する。次に、本実施例2に係るオートマトン処理装置200の効果について説明する。オートマトン処理装置200は、検索キーワードによる検索に関与しない文字列の符号を集めた符号集合Sを作成し、統合中間ノードを生成する。そして、オートマトン処理装置200は、ノードの状態遷移先を、統合中間ノードに設定することで、1符号1遷移型のオートマトン244Aを、1符号2遷移型のオートマトン244Bに変換する。このため、オートマトン処理装置200によれば、オートマトンのサイズが大きくなることを防止することができるという効果を奏する。また、オートマトン処理装置200によれば、中間ノードを生成した後に、各中間ノードを統合する処理を行わず、初めから統合中間ノードを生成するため、統合に係る処理負荷を軽減することができる。以下では、上述した実施例1、2以外の処理を、実施例3として説明する。まず、圧縮辞書241のデータ構造を他の例に置き換えて、特定部253の処理を説明する。図39および図40は、圧縮辞書のその他のデータ構造を示す図である。図39の圧縮辞書241に対して、特定部253が検索に関与しない文字列の符号を特定すると、符号2、3、6、7が、検索に関与しない文字列の符号となる。ただし、このままでは、検索に関与しない文字列の符号の前半ビットと、検索に関与する文字列の符号の前半ビットとが同じになってしまう。このため、特定部253は、検索に関与する文字列の符号の前半ビットと、検索に関与しない文字列の符号の前半ビットとが異なるように、各文字列の前半ビットおよび後半ビットを修正する。図40に示す例では、特定部253は、符号2、3の前半ビットおよび後半ビットを10、11に修正する。特定部253は、符号4、5の前半ビットおよび後半ビットを20、21に修正する。特定部253は、符号6、7の前半ビットおよび後半ビットを30、31に修正する。特定部253が、上記処理を実行することで、検索に関与する文字列の符号の前半ビットと、検索に関与しない文字列の符号の前半ビットとが異なるようになる。このため、実施例2に示したように、中間ノードを利用して、オートマトン244のサイズを小さくすることができる。次に、特定部253のその他の処理について説明する。特定部253は、圧縮辞書241とキーワード集合243の検索キーワードとを基にして、以下に示す条件により、検索キーワードに関与しない文字列の符号を特定しても良い。例えば、特定部253は、検索キーワードの部分文字列として含まない圧縮辞書241の文字列の符号を、検索キーワードに関与しない符号として特定する。特定部253は、検索キーワードの接尾辞の何れかと接頭辞が一致しない圧縮辞書241の文字列の符号を、検索キーワードに関与しない符号として特定する。特定部253は、検索キーワードの接頭辞のいずれかと接尾辞が一致しない圧縮辞書241の文字列の符号を、検索キーワードに関与しない符号として特定する。特定部253は、特定した文字列の符号の集合を、符号集合Sとして、変換部254に出力する。具体例を用いて、特定部253の処理を説明する。ここでは、検索キーワードをabaaとする。また、圧縮辞書のデータ構造を、図2に示すものとする。検索キーワードabaaの接頭辞はa、ab、abaとなる。検索キーワードabaaの接尾辞はa、aa、baaとなる。特定部253は、圧縮辞書241の1段目s=0の文字列aaが検索キーワードに関与しない検索キーワードか否かを判定する。文字列aaは、検索キーワードの接尾辞aaに一致する。このため、特定部253は、文字列aaを、検索キーワードに関与する検索キーワードと判定する。特定部253は、圧縮辞書241の2段目s=1の文字列abが検索キーワードに関与しない検索キーワードか否かを判定する。文字列abは、検索キーワードの接頭辞abに一致する。このため、特定部253は、文字列abを、検索キーワードに関与する検索キーワードと判定する。特定部253は、圧縮辞書241の3段目s=2の文字列baaが検索キーワードに関与しない検索キーワードか否かを判定する。文字列baaの接尾辞aが、検索キーワードの接頭辞aと一致する。このため、特定部253は、文字列baaを、検索キーワードに関与する検索キーワードと判定する。特定部253は、圧縮辞書241の4段目s=3の文字列bcadが検索キーワードに関与しない検索キーワードか否かを判定する。文字列bcadは、3条件を満たさないので、特定部253は、文字列bcadを、検索キーワードに関与しない検索キーワードと判定する。ここで3条件の1つ目は、圧縮辞書241の文字列が、検索キーワードの部分文字列として含むという条件である。3条件の2つ目は、圧縮辞書241の文字列の接頭辞が、検索キーワードの接尾辞の何れかと一致するという条件である。3条件の3つ目は、圧縮辞書241の文字列の接尾辞が、検索キーワードの接頭辞の何れかと一致するという条件である。特定部253は、圧縮辞書242の5段目s=4から8段目s=7の文字列に対しても、検索キーワードに関与しない検索キーワードか否かを判定する。各文字列は、3条件を満たさない。このため、特定部は、文字列cc、cdcd、d、dccを、検索キーワードに関与しない検索キーワードと判定する。特定部253は、上記の処理を実行することで、符号集合S3、4、5、6、7を特定する。ここで、符号3の前半ビットは0であり、符号4~7の前半ビットは1である。前半ビットが0である符号の数が1つなので、特定部253は、符号集合Sから3を削除する。特定部253は、最終的に、符号集合S4、5、6、7を変換部254に出力する。実施例3に係る特定部253の処理手順について説明する。図40は、本実施例3に係る特定部の処理手順を示すフローチャートである。図40に示すように、特定部253は、sの値に0を設定しステップS601、iの値に1を設定するステップS602。特定部253は、qiはキーワード集合243に属するqi∈キーワード集合243か否かを判定するステップS603。特定部253は、qiがキーワード集合243に属さない場合にはステップS603,No、符号集合Sを出力するステップS604。一方、特定部253は、qiがキーワード集合243に属する場合にはステップS603,Yes、s≦2a-1の条件を満たすか否かを判定するステップS605。特定部253は、s≦2a-1の条件を満たさない場合にはステップS605,No、iに1を加算するステップS606。特定部253は、sの値を0に設定しステップS607、ステップS603に移行する。なお、ステップS605のaは、圧縮に用いる符号の符号長である。特定部253は、s≦2a-1の条件を満たす場合にはステップS605,Yes、組qi、pが3条件の何れも満たさない場合に、符号sを符号集合Sに追加するステップS608。特定部253は、sに1を加算しステップS609、ステップS605に移行する。なお、ステップS608のpは、符号sに対応する圧縮前の文字列である。実施例3の特定部253は、3条件を満たすか否かにより、検索キーワードによる検索に関与しない文字列を特定するので、実施例2の特定部253と比較して、検索に関与しない文字列をより正確に特定することが可能となる。次に、実施例1、2に示したオートマトン処理装置100、200と同様の機能を実現するオートマトン処理プログラムを実行するコンピュータの一例を説明する。図42は、オートマトン処理プログラムを実行するコンピュータの一例を示す図である。図42に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307を有する。そして、各装置301~307は、バス308に接続される。ハードディスク装置307は、例えば、オートマトン生成プログラム307a、変換プログラム307b、統合プログラム307c、照合プログラム307d、特定プログラム307eを有する。CPU301は、各プログラム307a~307eを読み出して、RAM306に展開する。オートマトン生成プログラム307aは、オートマトン生成プロセス306aとして機能する。変換プログラム307bは、変換プロセス306bとして機能する。統合プログラム307cは、統合プロセス306cとして機能する。照合プログラム307dは、照合プロセス306dとして機能する。特定プログラム307eは、特定プロセス306eとして機能する。例えば、オートマトン生成プロセス306aは、オートマトン生成部151、252に対応する。変換プロセス306bは、変換部153、254に対応する。統合プロセス306cは、統合部154に対応する。照合プロセス306dは、照合部155、255に対応する。特定プロセス306eは、特定部253に対応する。なお、各プログラム307a~307eについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスクFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの可搬用の物理媒体に各プログラムを記憶させておく。そして、コンピュータ300がこれらから各プログラム307a~307eを読み出して実行するようにしてもよい。以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。付記1圧縮前の文字列と、該文字列に対応する圧縮後の符号とを対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させる第1オートマトンを記憶する記憶部と、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンを、前記前半ビットによって第1ノードから中間ノードに状態遷移が発生し、前記後半ビットによって中間ノードから第2ノードに状態遷移が発生する第2オートマトンに変換する変換部と、前記第2オートマトンの各中間ノードの遷移先となる第2ノードを比較し、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合する統合部と、を有することを特徴とするオートマトン処理装置。付記2前記統合部は、前記第2オートマトンに含まれる第1ノードと中間ノードと第2ノードとの状態遷移の関係を集計し、集計した結果を基にして、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合することを特徴とする付記1に記載のオートマトン処理装置。付記3検索キーワードと、圧縮前の文字列および該文字列に対応する圧縮後の符号を対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させ前記検索キーワードの照合する第1オートマトンとを記憶する記憶部と、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードによる検索に関与しない文字列の符号を特定する特定部と、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンにおいて、前記特定部が特定した符号によって状態遷移する第1ノードを特定し、特定した各第1ノードの状態遷移先を同一の中間ノードに設定することで、前記第1オートマトンを第2オートマトンに変換する変換部と、を有することを特徴とするオートマトン処理装置。付記4前記特定部は、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードに含まれる文字の存在しない前記圧縮辞書の文字列を、前記検索キーワードによる検索に関与しない文字列として特定することを特徴とする付記3に記載のオートマトン処理装置。付記5前記特定部は、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードの部分文字列として含まない前記圧縮辞書の文字列、または、前記検索キーワードの接尾辞の何れかと接頭辞の一致しない前記圧縮辞書の文字列、または、前記検索キーワードの接頭辞のいずれかと接尾辞の一致しない前記圧縮辞書の文字列を、前記検索キーワードによる検索に関与しない文字列として特定することを特徴とする付記3に記載のオートマトン処理装置。付記6コンピュータが実行するオートマトン処理方法であって、圧縮前の文字列と、該文字列に対応する圧縮後の符号とを対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させる第1オートマトンを前記コンピュータの記憶装置に記憶させ、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンを、前記前半ビットによって第1ノードから中間ノードに状態遷移が発生し、前記後半ビットによって中間ノードから第2ノードに状態遷移が発生する第2オートマトンに変換し、前記第2オートマトンの各中間ノードの遷移先となる第2ノードを比較し、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合する、各処理を実行することを特徴とするオートマトン処理方法。付記7前記中間ノードを統合する処理は、前記第2オートマトンに含まれる第1ノードと中間ノードと第2ノードとの状態遷移の関係を集計し、該集計した結果を基にして、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合することを特徴とする付記6に記載のオートマトン処理方法。付記8コンピュータが実行するオートマトン処理方法であって、検索キーワードと、圧縮前の文字列および該文字列に対応する圧縮後の符号を対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させ前記検索キーワードの照合する第1オートマトンとを記憶装置に記憶させ、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードによる検索に関与しない文字列の符号を特定し、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンにおいて、前記特定部が特定した符号によって状態遷移する第1ノードを特定し、特定した各第1ノードの状態遷移先を同一の中間ノードに設定することで、前記第1オートマトンを第2オートマトンに変換する各処理を実行することを特徴とするオートマトン処理方法。付記9前記検索に関与しない文字列の符号を特定する処理は、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードに含まれる文字の存在しない前記圧縮辞書の文字列を、前記検索キーワードによる検索に関与しない文字列として特定することを特徴とする付記8に記載のオートマトン処理方法。付記10前記検索に関与しない文字列の符号を特定する処理は、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードの部分文字列として含まない前記圧縮辞書の文字列、または、前記検索キーワードの接尾辞の何れかと接頭辞の一致しない前記圧縮辞書の文字列、または、前記検索キーワードの接頭辞のいずれかと接尾辞の一致しない前記圧縮辞書の文字列を、前記検索キーワードによる検索に関与しない文字列として特定することを特徴とする付記8に記載のオートマトン処理方法。付記11コンピュータに、圧縮前の文字列と、該文字列に対応する圧縮後の符号とを対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させる第1オートマトンを前記コンピュータの記憶装置に記憶させ、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンを、前記前半ビットによって第1ノードから中間ノードに状態遷移が発生し、前記後半ビットによって中間ノードから第2ノードに状態遷移が発生する第2オートマトンに変換し、前記第2オートマトンの各中間ノードの遷移先となる第2ノードを比較し、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合する、各処理を実行させることを特徴とするオートマトン処理プログラム。付記12前記中間ノードを統合する処理は、前記第2オートマトンに含まれる第1ノードと中間ノードと第2ノードとの状態遷移の関係を集計した集計表を生成し、該集計表を基にして、前記後半ビットの如何によらず同一の第2ノードに遷移する中間ノードを統合することを特徴とする付記11に記載のオートマトン処理プログラム。付記13コンピュータに、検索キーワードと、圧縮前の文字列および該文字列に対応する圧縮後の符号を対応付けた圧縮辞書と、前記圧縮辞書の符号によって第1ノードから第2ノードへの状態遷移を発生させ前記検索キーワードの照合する第1オートマトンとを記憶装置に記憶させ、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードによる検索に関与しない文字列の符号を特定し、複数の中間ノードを生成し、前記符号を前半ビットおよび後半ビットに分割し、前記第1オートマトンにおいて、前記特定部が特定した符号によって状態遷移する第1ノードを特定し、特定した各第1ノードの状態遷移先を同一の中間ノードに設定することで、前記第1オートマトンを第2オートマトンに変換する各処理を実行させることを特徴とするオートマトン処理プログラム。付記14前記検索に関与しない文字列の符号を特定する処理は、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードに含まれる文字の存在しない前記圧縮辞書の文字列を、前記検索キーワードによる検索に関与しない文字列として特定することを特徴とする付記13に記載のオートマトン処理プログラム。付記15前記検索に関与しない文字列の符号を特定する処理は、前記圧縮辞書と前記検索キーワードとを基にして、前記検索キーワードの部分文字列として含まない前記圧縮辞書の文字列、または、前記検索キーワードの接尾辞の何れかと接頭辞の一致しない前記圧縮辞書の文字列、または、前記検索キーワードの接頭辞のいずれかと接尾辞の一致しない前記圧縮辞書の文字列を、前記検索キーワードによる検索に関与しない文字列として特定することを特徴とする付記13に記載のオートマトン処理プログラム。"