(57)【要約】【課題】動的辞書を効率的に利用すること。【解決手段】情報処理装置１００は、テキストデータを複数の動的辞書を用いて符号化する際に、テキストデータに含まれる単語に対し、当該単語の属性情報に基づき前記複数の動的辞書から第１の動的辞書を特定する。情報処理装置１００は、単語および単語に対応して生成された動的符号を第１の動的辞書に登録する。情報処理装置１００は、単語を動的符号を用いて符号化する。【選択図】図２
2018182466.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
テキストデータを複数の動的辞書を用いて符号化する際に、前記テキストデータに含まれる単語に対し、当該単語の属性情報に基づき前記複数の動的辞書から第１の動的辞書を特定し、
前記単語および前記単語に対応して生成された動的符号を前記第１の動的辞書に登録し、
前記単語を前記動的符号を用いて符号化する
処理を実行させる符号化プログラム。
【請求項２】
前記属性情報は、前記テキストデータに含まれる単語の位置情報であることを特徴とする請求項１に記載の符号化プログラム。
【請求項３】
前記テキストデータは階層構造を有する文書であり、前記位置情報は前記階層構造における位置情報であることを特徴とする請求項２に記載の符号化プログラム。
【請求項４】
前記属性情報は、前記テキストデータに用いられる言語における、特定の単語の種別情報であることを特徴とする請求項１に記載の符号化プログラム。
【請求項５】
前記テキストデータはデリミタで複数の列に区切られており、前記位置情報は、複数の列の内、単語の位置する列情報であることを特徴とする請求項２に記載の符号化プログラム。
【請求項６】
コンピュータが実行する符号化方法であって、
テキストデータを複数の動的辞書を用いて符号化する際に、前記テキストデータに含まれる単語に対し、当該単語の属性情報に基づき前記複数の動的辞書から第１の動的辞書を特定し、
前記単語および前記単語に対応して生成された動的符号を前記第１の動的辞書に登録し、
前記単語を前記動的符号を用いて符号化する
処理を実行する符号化方法。
【請求項７】
テキストデータを複数の動的辞書を用いて符号化する際に、前記テキストデータに含まれる単語に対し、当該単語の属性情報に基づき前記複数の動的辞書から第１の動的辞書を特定し、前記単語および前記単語に対応して生成された動的符号を前記第１の動的辞書に登録する登録部と、
前記単語を前記動的符号を用いて符号化する符号化部と
を有する符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化プログラム等に関する。
【背景技術】
【０００２】
近年、データの符号化を行う場合に、単語単位で符号化を行う技術がある。単語単位の符号化では、ＺＩＰによる圧縮と異なり、複数の単語をまたがった符号化を行わない。単語単位の符号化を行うことで、符号化データの一部を、符号化されたままの状態で抽出し、再利用することができる。
【０００３】
ここで、単語単位で符号化を行う場合には、静的辞書と動的辞書とを用いて符号化を行っている。静的辞書は、出現頻度の高い単語に符号を対応付けた情報である。符号化の対象となる単語が、静的辞書に存在しない場合には、かかる単語を動的辞書に登録して、動的符号を割り当てることで、符号化を行う。例えば、動的符号は、単語の出現順序に応じて、動的符号が割り当てられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１５００４１号公報
【特許文献２】特開平９−２１４３５２号公報
【特許文献３】特開平１１−２８４５１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、動的辞書を効率的に利用することができないという問題がある。
【０００６】
動的辞書を利用する場合に単語に割り当てる動的符号は、単語の出現順序に応じて割り当てられている。また、符号化対象をテキストからＸＭＬデータなどに拡大すると、出現頻度の低い単語や未知語に加え、数値やタグやパスリストなど、多種・多量の数字列や文字列を単語として動的辞書に登録することになる。このため、符号化データの一部を抽出し再利用する場合に、動的辞書全体を走査し各種別を判定することになる。動的辞書のサイズが大きい場合には、処理時間が長くなり、動的辞書を効率的に利用できていない。
【０００７】
１つの側面では、本発明は、動的辞書を効率的に利用することができる符号化プログラム、符号化方法および符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、コンピュータに下記の処理を実行させる。コンピュータは、テキストデータを複数の動的辞書を用いて符号化する際に、テキストデータに含まれる単語に対し、当該単語の属性情報に基づき前記複数の動的辞書から第１の動的辞書を特定する。コンピュータは、単語および単語に対応して生成された動的符号を第１の動的辞書に登録する。コンピュータは、単語を動的符号を用いて符号化する。
【発明の効果】
【０００９】
動的辞書を効率的に利用することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施例１に係る情報処理装置の符号化処理の一例を示す図である。
【図２】図２は、本実施例１に係る情報処理装置の構成を示す機能ブロック図である。
【図３】図３は、本実施例１に係る符号化部の構成の一例を示す機能ブロック図である。
【図４】図４は、静的辞書情報のデータ構造の一例を示す図である。
【図５】図５は、動的辞書情報のデータ構造の一例を示す図である。
【図６】図６は、種別テーブルのデータ構造の一例を示す図である。
【図７】図７は、本実施例１に係る伸長部の構成の一例を示す機能ブロック図である。
【図８】図８は、本実施例１に係る符号化部の処理手順の一例を示すフローチャートである。
【図９】図９は、本実施例１に係る伸長部の処理手順を示すフローチャートである。
【図１０】図１０は、本実施例２に係る情報処理装置の符号化処理の一例を示す図である。
【図１１】図１１は、本実施例２に係る情報処理装置の構成を示す機能ブロック図である。
【図１２】図１２は、本実施例２に係る符号化部の構成の一例を示す機能ブロック図である。
【図１３】図１３は、動的辞書情報のデータ構造の一例を示す図である。
【図１４】図１４は、種別テーブルのデータ構造の一例を示す図である。
【図１５】図１５は、本実施例２に係る伸長部の構成の一例を示す機能ブロック図である。
【図１６】図１６は、本実施例２に係る符号化部の処理手順を示すフローチャートである。
【図１７】図１７は、本実施例２に係る伸長部の処理手順を示すフローチャートである。
【図１８】図１８は、符号化部のその他の処理を説明するための図である。
【図１９】図１９は、コンピュータのハードウェア構成例を示す図である。
【図２０】図２０は、コンピュータで動作するプログラムの構成例を示す図である。
【図２１】図２１は、実施形態のシステムにおける装置の構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する符号化プログラム、符号化方法および符号化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
図１は、本実施例１に係る情報処理装置の符号化処理の一例を示す図である。情報処理装置は、符号化装置の一例である。情報処理装置は、符号化対象のテキストファイルＦ１を読み出し、静的辞書による静的符号化または動的辞書による動的符号化を行うことで、符号化ファイルＦ２を生成する。静的辞書は、出現頻度の高い単語と静的符号とを対応付けた情報である。
【００１３】
情報処理装置は、テキストファイルＦ１から単語を読み出し、静的辞書にヒットする単語については、静的符号に置き換える処理を実行する。例えば、テキストファイルＦ１に含まれる単語は、スペースによって区切られているものとする。本実施例では一例として、スペースを「△」で表す。テキストファイルＦ１のコンテンツ部分は［STX］と［ETX］とで挟まれた部分となる。
【００１４】
例えば、テキストファイルＦ１に含まれる単語「This△」、「is△」、「ａ△」、「pen△」はそれぞれ、静的辞書にヒットする単語であるとする。情報処理装置は、各単語「This△」、「is△」、「ａ△」、「pen△」を静的符号に変換する。図１に示す例では、各単語「This△」、「is△」、「ａ△」、「pen△」に対応する静的符号の図示を省略する。
【００１５】
情報処理装置は、テキストファイルＦ１から単語を読み出し、静的辞書にヒットしない単語については、単語の属性情報に対応する動的辞書を複数の動的辞書から判定し、判定した動的辞書を用いて、動的符号化を行う。情報処理装置は、単語の属性情報に対応する動的辞書に単語を登録して、動的符号を割り振り、単語を動的符号に置き換える。
【００１６】
図１に示す例では、各属性情報に対応する動的辞書１０〜１３が存在する。図１では、動的辞書１０〜１３を示すが、他の属性情報に対応する動的辞書が存在していても良い。動的辞書１０は、「低頻度単語」を動的符号化する場合に用いる動的辞書である。例えば、動的辞書１０には「Ａ０００ｈ〜Ａ０ＦＦｈ」の動的符号が割り当てられる。動的辞書１１は、「未知語」を動的符号化する場合に用いる動的辞書である。例えば、動的辞書１１には「Ａ１００ｈ〜Ａ１ＦＦｈ」の動的符号が割り当てられる。
【００１７】
動的辞書１２は「数値」を動的符号化する場合に用いる動的辞書である。例えば、動的辞書１２には「Ａ２００ｈ〜Ａ２ＦＦｈ」の動的符号が割り当てられる。動的辞書１３は「タグ」を動的符号化する場合に用いる動的辞書である。例えば、動的辞書１３には「Ａ３００ｈ〜Ａ３ＦＦｈ」の動的符号が割り当てられる。
【００１８】
情報処理装置が、単語の属性情報を判定する一例について説明する。情報処理装置は、低頻度単語を定義した外部辞書を利用し、単語が外部辞書にヒットする場合には、単語の属性情報を「低頻度単語」と判定する。情報処理装置は、単語に所定のタグ「＜、＞」が含まれている場合には、単語の属性情報を「タグ」と判定する。情報処理装置は、単語が「１〜９」の数値で構成される場合には、単語の属性情報を「数値」と判定する。情報処理装置は、単語の属性情報が「低頻度単語、タグ、数値」に対応しない場合に、単語の属性情報を「未知語」と判定する。
【００１９】
情報処理装置は、種別テーブル２０を用いて、属性情報に対応する動的辞書を判定する。種別テーブル２０は、属性情報とポインタとを対応付ける。ポインタは、属性情報に対応する動的辞書を示す情報である。例えば、属性情報が「低頻度単語」の場合には、ポインタは動的辞書１０の位置を示す。属性情報が「未知語」の場合には、ポインタは動的辞書１１の位置を示す。属性情報が「数値」の場合には、ポインタは動的辞書１２の位置を示す。属性情報が「タグ」の場合には、ポインタは動的辞書１３の位置を示す。
【００２０】
テキストファイルＦ１に含まれる単語「Mickey△」は静的辞書にヒットしない単語であり、属性情報を「未知語」とする。情報処理装置は、単語「Mickey△」の属性情報「未知語」に対応する動的辞書１１を、動的辞書１０〜１３から判定する。情報処理装置は、単語「Mickey△」に動的符号「Ａ１００ｈ」を割り当てることで、動的符号化を行う。
【００２１】
テキストファイルＦ１に含まれる単語「１２３４５△」は静的辞書にヒットしない単語であり、属性情報を「数値」とする。情報処理装置は、単語「１２３４５△」の属性情報「数値」に対応する動的辞書１２を、動的辞書１０〜１３から判定する。情報処理装置は、単語「１２３４５△」に動的符号「Ａ２００ｈ」を割り当てることで、動的符号化を行う。
【００２２】
テキストファイルＦ１に含まれる単語「<a  href="#link2H_4_00002">△」は静的辞書にヒットしない単語であり、属性情報を「タグ」とする。情報処理装置は、単語「<a  href="#link2H_4_00002">△」の属性情報「タグ」に対応する動的辞書１３を、動的辞書１０〜１３から判定する。情報処理装置は、単語「<a  href="#link2H_4_00002">△」に動的符号「Ａ３００ｈ」を割り当てることで、動的符号化を行う。
【００２３】
情報処理装置は、上記の処理を実行することで、テキストファイルＦ１を符号化ファイルＦ２に符号化する。符号化ファイルＦ２には、ヘッダ部１ａと、符号化データ部１ｂと、トレーラ部１ｃとが含まれる。ヘッダ部１ａには、単語の出現頻度の情報等が含まれる。符号化データ部１ｂには、情報処理装置が生成した符号化データが格納される。トレーラ部１ｃには、動的辞書１０〜１３の情報等が含まれる。
【００２４】
本実施例１に係る情報処理装置は、テキストファイルＦ１に含まれる単語の属性情報に対応する動的辞書を判定し、判定した動的辞書を用いて動的符号化を行う。これにより、単語と動的符号とを対応付けた動的辞書が、単語の属性情報により区別可能になるため、動的辞書を効率的に利用することができる。
【００２５】
図２は、本実施例１に係る情報処理装置の構成を示す機能ブロック図である。図２に示すように、この情報処理装置１００は、符号化部１００ａと、伸長部１００ｂと、記憶部１００ｃとを有する。符号化部１００ａは、登録部および符号化部の一例である。
【００２６】
符号化部１００ａは、図１に示した符号化処理を実行する処理部である。伸長部１００ｂは、符号化部１００ａによって符号化された符号化ファイルを伸長（復号化）する処理部である。記憶部１００ｃは、符号化対象のテキストファイルＦ１、符号化処理により得られる符号化ファイルＦ２、符号化ファイルＦ２を伸長することにより得られる伸長ファイルＦ３等を格納する記憶部である。記憶部１００ｃは、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００２７】
図３は、本実施例１に係る符号化部の構成の一例を示す機能ブロック図である。図３に示すように、この符号化部１００ａは、ファイルリード部１０１と、静的辞書情報１０２と、静的符号化部１０３とを有する。符号化部１００ａは、動的辞書情報１０４と、種別テーブル１０５と、動的符号化部１０６と、ファイルライト部１０７とを有する。
【００２８】
ファイルリード部１０１は、記憶部１００ｃに格納された符号化対象となるテキストファイルＦ１のコンテンツ部分のデータを読み出す処理部である。ファイルリード部１０１は、読み出したデータを、静的符号化部１０３に出力する。
【００２９】
図４は、静的辞書情報のデータ構造の一例を示す図である。静的辞書情報１０２は、出現頻度が閾値以上となる単語に対する静的符号を定義した静的辞書Ｃ２の情報を含む。図４に示すように、この静的辞書情報１０２は、２グラム、ビットマップ、ポインタ、基礎単語、静的符号を有する。このうち、２グラム、ビットマップ、ポインタ、基礎単語は、ビットフィルタＣ１に対応する。また、基礎単語、静的符号は、静的辞書Ｃ２に対応する。
【００３０】
２グラムは、２文字の文字列（あるいは単語）を示す情報である。ビットマップは、２グラムの文字列に対応するビットマップを示す。例えば、「ａａ」に対応するビットマップは「０＿０＿０＿０＿０」となる。ポインタは、ビットマップに対応する基礎単語の位置を示すポインタである。
【００３１】
基礎単語は、例えば、静的辞書Ｃ２に登録された高頻度の単語である。静的符号は、基礎単語に割り当てられた符号化データである。なお、静的辞書Ｃ２には、基礎単語、静的符号に加えて、文字列長、単語の出現頻度等の情報が含まれていても良い。
【００３２】
静的符号化部１０３は、ファイルリード部１０１のテキストファイルＦ１のコンテンツのデータと、静的辞書情報１０２のビットフィルタＣ１とを比較して、ビットフィルタＣ１にヒットした単語を静的符号に置換する処理部である。静的符号化部１０３は、単語に対応する静的符号を、ファイルライト部１０７に出力する。
【００３３】
ここで、単語がビットフィルタＣ１にヒットするか否かを判定する静的符号化部１０３の処理の一例について説明する。例えば、静的符号化部１０３は、単語が「able△」である場合には、２グラム「ab」、「bl」、「le」、「e△」に対応するビットマップをそれぞれ組み合わせる。静的符号化部１０３は、ビットマップの各桁において、すべてのビットマップの値が０となっている場合には、組み合わせたビットマップの該当する桁を「０」とする。これに対して、静的符号化部１０３は、「１」が一つでも含まれる場合には該当する桁を「１」に設定することで、ビットマップを組み合わせる。
【００３４】
例えば、「ab」のビットマップが「１＿０＿０＿０＿０」、「bl」のビットマップが「０＿１＿０＿０＿０」、「le」のビットマップが「０＿０＿１＿０＿０」、「e△」のビットマップが「０＿０＿０＿１＿０」とする。この場合には、各ビットマップを組み合わせたビットマップは「１＿１＿１＿１＿０」となる。
【００３５】
静的符号化部１０３は、組み合わせたビットマップと、ビットフィルタＣ１のポインタとを比較して、ビットマップに対応するポインタが示す位置の基礎単語を特定する。静的符号化部１０３は、特定した基礎単語から順に、単語に対応する基礎単語を検索する。静的符号化部１０３は、単語と同一の基礎単語が存在する場合には、単語がビットフィルタＣ１にヒットしたと判定する。
【００３６】
図５は、動的辞書情報のデータ構造の一例を示す図である。動的辞書情報１０４は、図１に示した動的辞書に関する情報を含む。図５に示すように、この動的辞書情報１０４は、動的ビットフィルタＤ１と、動的辞書部Ｄ２と、バッファＤ３とを有する。
【００３７】
動的ビットフィルタＤ１は、２グラムと、ビットマップと、第１ポインタとを有する。動的辞書部Ｄ２は、動的辞書１０〜１３を有する。各動的辞書１０〜１３は、動的符号と、第２ポインタと、連鎖領域とを対応付ける。バッファＤ３は、動的符号により符号化される前の単語を格納する。
【００３８】
動的ビットフィルタＤ１の２グラムは、２文字の文字列（あるいは２つの単語）を示す情報である。ビットマップは、２グラムの文字列に対応するビットマップを示す。例えば、「ａａ」に対応するビットマップは「０＿０＿０＿０＿０」となる。第１ポインタは、ビットマップに対応する動的符号の位置を示すポインタである。ビットマップおよび第１ポインタに関するその他の説明は、図４に示したビットマップおよびポインタの説明と同様である。
【００３９】
動的辞書部Ｄ２の動的符号は、バッファＤ３に格納された単語に割り当てられた符号である。第２ポインタは、動的符号に対応する単語が格納されたバッファＤ３の位置を示す情報である。例えば、動的符号「Ａ１００ｈ」に対応する第２ポインタは、バッファＤ３に格納された「Mickey」の先頭位置を示す。すなわち、単語「Mickey」は、動的符号「Ａ１００ｈ」に動的符号化されていることを意味する。
【００４０】
動的辞書部Ｄ２の連鎖領域は、該当する文字列等がビットフィルタのポインタから連鎖しているか否かを示す情報である。該当する文字列等が連鎖していない場合には、連鎖領域に「ＮＵＬＬ」が設定される。
【００４１】
図６は、種別テーブルのデータ構造の一例を示す図である。図６に示すように、この種別テーブル１０５は、テーブル１０５ａと、コード割当ポインタ１０５ｂと、管理情報１０５ｃとを有する。テーブル１０５ａは、アドレスと、属性情報と、ポインタとを対応付ける。アドレスは、該当の属性情報に対応する動的辞書に割り当てられたアドレスを示すものである。属性情報は、上述した単語の属性情報を示すものである。ポインタは、属性情報に対応する動的辞書の位置を示すものである。
【００４２】
コード割当ポインタ１０５ｂは、各動的辞書について、動的辞書に割り当てられた動的符号のうち、未使用の動的符号の先頭を示すポインタである。例えば、図５に示した動的辞書１１に関して説明を行う。動的辞書１１には、動的符号「Ａ１００ｈ〜Ａ１ＦＦｈ」が割り当てられ、このうち、動的符号「Ａ１００ｈ」が、「Mickey」の動的符号に割り当てられているものとする。この場合には、コード割当ポインタ１０５ｂには、動的符号「Ａ１０１ｈ」が設定される。他の動的辞書についても同様に、動的辞書に割り当てられた動的符号のうち、未使用の動的符号の先頭を示すポインタが設定される。
【００４３】
管理情報１０５ｃは、各動的辞書について、動的辞書に割り当てられる単語の残りの数を管理する情報である。本実施例１に示す例では、各動的辞書に「２５６個」単位で符号領域を割り当て、単語を登録するものとする。また、管理情報１０５ｃは、動的辞書に割り当てられていない動的符号の位置（未使用の位置）を示すポインタの情報を有する。
【００４４】
図３の説明に戻る。動的符号化部１０６は、静的符号化部１０３により静的符号が割り当てられなかった単語に対して動的符号を割り振り、動的符号化を行う処理部である。動的符号化部１０６は、単語に対応する動的符号を、ファイルライト部１０７に出力する。以下において、動的符号化部１０６の処理の一例について説明する。
【００４５】
まず、動的符号化部１０６が、動的辞書情報１０４に登録されていない単語を動的符号化する場合について説明する。動的符号化部１０６は、静的符号化部１０３から単語を取得すると、単語の属性情報と、種別テーブル１０５とを比較して、単語の属性情報に対応する動的辞書の位置を判定する。動的符号化部１０６は、判定した動的辞書に割り振られた動的符号のうち、他の単語に割り当てていない先頭の動的符号を、単語に割り当てる。また、動的符号化部１０６は、単語をバッファＤ３に格納し、単語を格納した位置に、第２ポインタを設定する。また、動的符号化部１０６は、動的ビットフィルタＤ１の第１ポインタを、単語に対応する動的符号の位置に合わせて更新する。
【００４６】
例えば、動的符号化部１０６が、動的辞書情報１０４に登録されていない単語「Mickey」を動的符号化する場合について説明する。動的符号化部１０６は、単語「Mickey」の属性情報「未知語」と、図６に示した種別テーブル１０５とを比較して、属性情報「未知語」に対応する動的辞書１１の位置を判定する。
【００４７】
動的符号化部１０６は、動的辞書１１に割り当てられた動的符号「Ａ１００ｈ〜Ａ１ＦＦｈ」のうち、他の単語が割り当てられていない先頭の動的符号を単語「Mickey」に割り当てる。図５に示す例では、動的符号化部１０６は、単語「Mickey」に動的符号「Ａ１００ｈ」を割り当てる。動的符号化部１０６は、バッファＤ３に単語「Mickey」を格納し、格納した位置に、動的符号「Ａ１００ｈ」に対応する第２ポインタを指定する。また、動的符号化部１０６は、動的ビットフィルタＤ１を更新する。動的符号化部１０６は、単語「Mickey」に割り当てられた動的符号「Ａ１００ｈ」を、ファイルライト部１０７に出力する。
【００４８】
続いて、動的符号化部１０６が、動的辞書情報１０４に登録されている単語を動的符号化する場合について説明する。例えば、動的符号化部１０６は、下記の処理を行うことで、動的辞書情報１０４に、動的符号化の対象となる単語が登録されているか否かを判定する。動的符号化部１０６は、動的符号化の対象となる単語と、動的ビットフィルタＤ１とを比較して、第１ポインタに示される動的辞書部Ｄ２の位置を特定する。動的符号化部１０６は、特定した位置に該当する第２ポインタに示されるバッファＤ３の位置に、動的符号化の対象となる単語と同一の単語が格納されている場合に、動的辞書情報１０４に、動的符号化の対象となる単語が登録されているか否かを判定する。一方、動的符号化部１０６は、動的符号化の対象となる単語と同一の単語が格納されていない場合には、動的符号化の対象となる単語が登録されていないため、上記の処理を実行する。
【００４９】
例えば、動的符号化部１０６が、動的辞書情報１０４に登録されている単語「Mickey」を動的符号化する場合について説明する。動的符号化部１０６は、単語「Mickey」と、動的ビットフィルタＤ１とを比較して、動的符号「Ａ１００ｈ」の第２ポインタに示されるバッファＤ３の位置を参照すると、「Mickey」が格納されており、単語が一致する。このため、動的符号化部１０６は、「Mickey」に割り当てられた動的符号「Ａ１００ｈ」を、ファイルライト部１０７に出力する。
【００５０】
ファイルライト部１０７は、単語に対応する静的符号および動的符号を取得し、取得した静的符号および動的符号を、符号化ファイルＦ２の符号化データ部１ｂに書き込む処理部である。また、ファイルライト部１０７は、ヘッダ部１ａに、単語の出現頻度の情報を格納する。ファイルライト部１０７は、トレーラ部１ｃに、動的辞書情報１０４等を格納する。
【００５１】
図７は、本実施例１に係る伸長部の構成の一例を示す機能ブロック図である。図７に示すように、この伸長部１００ｂは、ファイルリード部２０１と、オートマトン生成部２０２と、伸長処理部２０４と、ファイルライト部２０５とを有する。また、伸長部１００ｂは、例えば、第１オートマトン２０３ａ、第２オートマトン２０３ｂ、第３オートマトン２０３ｃ、第４オートマトン２０３ｄ、第５オートマトン２０３ｅを有する。
【００５２】
ファイルリード部２０１は、符号化ファイルＦ２の符号化データ部１ｂに格納された符号を読み出す処理部である。ファイルリード部２０１は、読み出した符号を、伸長処理部２０４に出力する。また、ファイルリード部２０１は、ヘッダ部１ａに格納された単語の出現頻度の情報を読み出し、オートマトン生成部２０２に出力する。ファイルリード部２０１は、トレーラ部１ｃに格納された動的辞書情報１０４を読み出し、オートマトン生成部２０２に出力する。
【００５３】
オートマトン生成部２０２は、単語の出現頻度の情報を基にして、静的符号を単語に変換する第１オートマトン２０３ａを生成する。また、オートマトン生成部２０２は、動的辞書情報１０４を基にして、動的符号を単語に変換する第２オートマトン２０３ｂ〜第５オートマトン２０３ｅを生成する。
【００５４】
第１オートマトン２０３ａは、静的符号と単語（高頻度の単語）とを対応付けるオートマトンである。例えば、符号の先頭４ビットが「０ｈ（００００）〜９ｈ（１００１）」に含まれる場合には、第１オートマトン２０３ａと、符号との比較により、単語が特定される。
【００５５】
第２オートマトン２０３ｂは、動的符号と単語（低頻度単語）とを対応付けるオートマトンである。第２オートマトン２０３ｂは、属性情報「低頻度単語」に対応する動的辞書１０に対応して生成される。例えば、符号の先頭の１６ビットが「Ａ０００ｈ〜Ａ０ＦＦｈ」に含まれる場合には、第２オートマトン２０３ｂと、符号との比較により、単語（低頻度単語）が特定される。
【００５６】
第３オートマトン２０３ｃは、動的符号と単語（未知語）とを対応付けるオートマトンである。第３オートマトン２０３ｃは、属性情報「未知語」に対応する動的辞書１１に対応して生成される。例えば、符号の先頭の１６ビットが「Ａ１００ｈ〜Ａ１ＦＦｈ」に含まれる場合には、第３オートマトン２０３ｃと、符号との比較により、単語（未知語）が特定される。
【００５７】
第４オートマトン２０３ｄは、動的符号と単語（数値）とを対応付けるオートマトンである。第４オートマトン２０３ｄは、属性情報「数値」に対応する動的辞書１２に対応して生成される。例えば、符号の先頭の１６ビットが「Ａ２００ｈ〜Ａ２ＦＦｈ」に含まれる場合には、第４オートマトン２０３ｄと、符号との比較により、単語（数値）が特定される。
【００５８】
第５オートマトン２０３ｅは、動的符号と単語（タグ）とを対応付けるオートマトンである。第５オートマトン２０３ｅは、属性情報「タグ」に対応する動的辞書１３に対応して生成される。例えば、符号の先頭の１６ビットが「Ａ３００ｈ〜Ａ３ＦＦｈ」に含まれる場合には、第５オートマトン２０３ｅと、符号との比較により、単語（タグ）が特定される。
【００５９】
伸長処理部２０４は、ファイルリード部２０１から取得する符号と、第１オートマトン２０３ａ〜第５オートマトン２０３ｅとを基にして、符号に対応する単語を特定する処理部である。例えば、伸長処理部２０４は、符号の先頭４ビットが「０ｈ（００００）〜９ｈ（１００１）」に含まれる場合には、第１オートマトン２０３ａと、符号との比較により、符号に対応する単語を特定する。
【００６０】
伸長処理部２０４は、符号の先頭の１６ビットが「Ａ０００ｈ〜Ａ０ＦＦｈ」に含まれる場合には、第２オートマトン２０３ｂと、符号との比較により、単語（低頻度単語）を特定する。
【００６１】
伸長処理部２０４は、符号の先頭の１６ビットが「Ａ１００ｈ〜Ａ１ＦＦｈ」に含まれる場合には、第３オートマトン２０３ｃと、符号との比較により、単語（未知語）を特定する。
【００６２】
伸長処理部２０４は、符号の先頭の１６ビットが「Ａ２００ｈ〜Ａ２ＦＦｈ」に含まれる場合には、第４オートマトン２０３ｄと、符号との比較により、単語（数値）を特定する。
【００６３】
伸長処理部２０４は、符号の先頭の１６ビットが「Ａ３００ｈ〜Ａ３ＦＦｈ」に含まれる場合には、第５オートマトン２０３ｅと、符号との比較により、単語（タグ）を特定する。
【００６４】
伸長処理部２０４は、ファイルリード部２０１から読み出された符号に対して上記の処理を繰り返し実行することで、符号に対応する単語を順次特定し、特定した単語をファイルライト部２０５に出力する。
【００６５】
ファイルライト部２０５は、伸長処理部２０４から取得する復号化された単語を、伸長ファイルＦ３に格納する処理部である。
【００６６】
次に、本実施例１に係る符号化部１００ａの処理手順について説明する。図８は、本実施例１に係る符号化部の処理手順を示すフローチャートである。図８に示すように、符号化部１００ａのファイルリード部１０１は、符号化対象のテキストファイルＦ１を、単語単位にリードする（ステップＳ１０１）。
【００６７】
符号化部１００ａの静的符号化部１０３は、単語が高頻度の単語であるか否かを判定する（ステップＳ１０２）。例えば、ステップＳ１０２において、静的符号化部１０３は、単語が静的辞書Ｃ２にヒットする場合には、単語が高頻度の単語であると判定する。
【００６８】
静的符号化部１０３は、単語が高頻度の単語である場合には（ステップＳ１０２，Ｙｅｓ）、静的辞書Ｃ２による符号化を行う（ステップＳ１０３）。静的符号化部１０３は、単語に対応する静的符号をファイルライト部１０７に出力し（ステップＳ１０４）、ステップＳ１０９に移行する。一方、静的符号化部１０３は、単語が高頻度の単語でない場合には（ステップＳ１０２，Ｎｏ）、ステップＳ１０５に移行する。
【００６９】
符号化部１００ａの動的符号化部１０６は、種別テーブル１０５を基にして、単語の属性情報に対応する動的辞書を、複数の動的辞書から判定する（ステップＳ１０５）。動的符号化部１０６は、判定した動的辞書の領域に単語を登録し、動的符号を割り当てる（ステップＳ１０６）。動的符号化部１０６は、動的辞書による符号化を行い（ステップＳ１０７）、単語に対応する動的符号をファイルライト部１０７に出力する（ステップＳ１０８）。
【００７０】
ファイルライト部１０７は、符号（静的符号または動的符号）を符号化ファイルＦ２の符号化データ部１ｂに書き込む（ステップＳ１０９）。符号化部１００ａは、テキストファイルＦ１の終点であるか否かを判定する（ステップＳ１１０）。符号化部１００ａは、テキストファイルＦ１の終点でない場合には（ステップＳ１１０，Ｎｏ）、ステップＳ１０１に移行する。
【００７１】
ファイルライト部１０７は、テキストファイルＦ１の終点である場合には（ステップＳ１１０，Ｙｅｓ）、符号化ファイルＦ２のヘッダ部１ａに単語の出現頻度の情報を格納し、トレーラ部１ｃに動的辞書情報１０４を格納する（ステップＳ１１１）。
【００７２】
次に、本実施例１に係る伸長部１００ｂの処理手順について説明する。図９は、本実施例１に係る伸長部の処理手順を示すフローチャートである。図９に示すように、伸長部１００ｂのオートマトン生成部２０２は、第１オートマトン２０３ａ〜第５オートマトン２０３ｅを生成する（ステップＳ２０１）。ファイルリード部２０１は、符号化ファイルＦ２をリードする（ステップＳ２０２）。
【００７３】
伸長部１００ｂの伸長処理部２０４は、符号を取得し（ステップＳ２０３）、符号の先頭４ビットの値と、第１オートマトン２０３ａとを比較する（ステップＳ２０４）。伸長処理部２０４は、第１オートマトン２０３ａにヒットした場合には（ステップＳ２０５，Ｙｅｓ）、第１オートマトン２０３ａを選択する（ステップＳ２０６）。伸長処理部２０４は、第１オートマトン２０３ａに基づいて、符号を単語に変換し（ステップＳ２０７）、ステップＳ２１０に移行する。
【００７４】
一方、伸長処理部２０４は、第１オートマトン２０３ａにヒットしない場合には（ステップＳ２０５，Ｎｏ）、ステップＳ２０８に移行する。伸長処理部２０４は、符号の先頭から１６ビット目までの値と各オートマトンとを比較し、第２〜第５オートマトン２０３ｂ〜２０３ｅのうち、対応するオートマトンを選択する（ステップＳ２０８）。
【００７５】
伸長処理部２０４は、選択したオートマトンに基づいて、符号を単語に変換する（ステップＳ２０９）。伸長処理部２０４は、符号化ファイルＦ２の復号化が終了したか否かを判定する（ステップＳ２１０）。伸長処理部２０４は、符号化ファイルＦ２の復号化が終了していない場合には（ステップＳ２１０，Ｎｏ）、ステップＳ２０３に移行する。
【００７６】
伸長処理部２０４は、符号化ファイルＦ２の復号化が終了した場合には（ステップＳ２１０，Ｙｅｓ）、復号化したデータを伸長ファイルＦ３に書き込む（ステップＳ２１１）。
【００７７】
次に、本実施例１に係る符号化部１００ａの効果について説明する。符号化部１００ａは、テキストファイルＦ１に含まれる単語の属性情報に対応する動的辞書を判定し、判定した動的辞書を用いて動的符号化を行う。これにより、単語と動的符号とを対応付けた動的辞書が、単語の属性情報により区別可能になるため、動的辞書を効率的に利用することができる。例えば、単語の属性情報により、動的符号に対応する単語が、各動的辞書に区別されて登録されるため、復号化を行う場合に、該当の動的辞書に対応したオートマトンを利用することで復号化を行うことができる。
【実施例２】
【００７８】
図１０は、本実施例２に係る情報処理装置の符号化処理の一例を示す図である。情報処理装置は、符号化装置の一例である。情報処理装置は、符号化対象のファイルＦ４を読み出し、静的辞書による静的符号化または動的辞書による動的符号化を行うことで、符号化ファイルＦ５を生成する。静的辞書は、出現頻度の高い単語と静的符号とを対応付けた情報である。
【００７９】
本実施例２で説明するファイルＦ４は、複数の単語がデリミタで複数の列（カラム）に区切られたファイルである。図１０に示す例では、ファイルＦ４には、カラム２０ａ，２１ａ，２２ａが含まれる。カラム２０ａには、単語「商品番号」、「１２４２」、「２３４２」、「３３２４」が含まれる。カラム２１ａには、単語「キャラクター名」「Mickey」、「Alice」、「Becky」が含まれる。カラム２２ａには、単語「単価」、「５０」、「５００」、「４５０」が含まれる。
【００８０】
情報処理装置は、ファイルＦ４から単語を読み出し、静的辞書にヒットする単語については、静的符号に置き換える処理を実行する。ファイルＦ４に含まれる単語は、スペースによって区切られているものとする。ファイルＦ４に含まれる単語「商品番号」、「キャラクター名」、「単価」はそれぞれ、静的辞書にヒットする単語であるとする。情報処理装置は、各単語を静的符号に変換する。ここでは説明の便宜上、単語「商品番号」、「キャラクター名」、「単価」に対応する静的符号をそれぞれ「（商品番号）」「（キャラクター名）」、「（単価）」と表記する。
【００８１】
情報処理装置は、ファイルＦ４から単語を読み出し、静的辞書にヒットしない単語については、単語の属性情報に対応する動的辞書を複数の動的辞書から判定し、判定した動的辞書を用いて、動的符号化を行う。情報処理装置は、単語の属性情報に対応する動的辞書に単語を登録して、動的符号を割り振り、単語を動的符号に置き換える。
【００８２】
図１０に示す例では、各属性情報に対応する動的辞書２０〜２２が存在する。図１０では、動的辞書２０〜２２を示すが、他の属性情報に対応する動的辞書が存在していても良い。動的辞書２０は、「カラム２０ａの単語」を動的符号化する場合に用いる動的辞書である。例えば、動的辞書２０には「Ａ０００ｈ〜Ａ０ＦＦｈ」の動的符号が割り当てられる。動的辞書２１は、「カラム２１ａの単語」を動的符号化する場合に用いる動的辞書である。例えば、動的辞書２１には「Ａ１００ｈ〜Ａ１ＦＦｈ」の動的符号が割り当てられる。動的辞書２２は「カラム２２ａの単語」を動的符号化する場合に用いる動的辞書である。例えば、動的辞書２２には「Ａ２００ｈ〜Ａ２ＦＦｈ」の動的符号が割り当てられる。
【００８３】
情報処理装置は、種別テーブル２５を用いて、属性情報に対応する動的辞書を判定する。種別テーブル２５は、属性情報とポインタとを対応付ける。ポインタは、属性情報に対応する動的辞書を示す情報である。例えば、属性情報が「カラム２０ａの単語」の場合には、ポインタは動的辞書２０の位置を示す。属性情報が「カラム２１ａの単語」の場合には、ポインタは動的辞書２１の位置を示す。属性情報が「カラム２２ａの単語」の場合には、ポインタは動的辞書２２の位置を示す。
【００８４】
ファイルＦ４のカラム２０ａに含まれる各単語「１２４２」、「２３４２」、「３３２４」を静的辞書にヒットしない単語とする。情報処理装置は、属性情報「カラム２０ａの単語」に対応する動的辞書２０を、動的辞書２０〜２２から判定する。情報処理装置は、各単語「１２４２」、「２３４２」、「３３２４」に各動的符号「Ａ０００ｈ」、「Ａ００１ｈ」、「Ａ００２ｈ」をそれぞれ割り当てることで、動的符号化を行う。
【００８５】
ファイルＦ４のカラム２１ａに含まれる各単語「Mickey」、「Alice」、「Becky」を静的辞書にヒットしない単語とする。情報処理装置は、属性情報「カラム２１ａの単語」に対応する動的辞書２１を、動的辞書２０〜２２から判定する。情報処理装置は、各単語「Mickey」、「Alice」、「Becky」に各動的符号「Ａ１００ｈ」、「Ａ１０１ｈ」、「Ａ１０２ｈ」をそれぞれ割り当てることで、動的符号化を行う。
【００８６】
ファイルＦ４のカラム２２ａに含まれる各単語「５０」、「５００」、「４５０」を静的辞書にヒットしない単語とする。情報処理装置は、属性情報「カラム２２ａの単語」に対応する動的辞書２２を、動的辞書２０〜２２から判定する。情報処理装置は、各単語「５０」、「５００」、「４５０」に各動的符号「Ａ２００ｈ」、「Ａ２０１ｈ」、「Ａ２０２ｈ」をそれぞれ割り当てることで、動的符号化を行う。
【００８７】
情報処理装置は、上記の処理を実行することで、ファイルＦ４を符号化ファイルＦ５に符号化する。符号化ファイルＦ５には、ヘッダ部２ａと、符号化データ部２ｂと、トレーラ部２ｃとが含まれる。ヘッダ部２ａには、単語の出現頻度の情報等が含まれる。符号化データ部２ｂには、情報処理装置が生成した符号化データが格納される。トレーラ部２ｃには、動的辞書２０〜２２の情報等が含まれる。
【００８８】
本実施例２に係る情報処理装置は、ファイルＦ４に含まれる単語の属性情報（カラムの位置）に対応する動的辞書を判定し、判定した動的辞書を用いて動的符号化を行う。これにより、単語と動的符号とを対応付けた動的辞書が、単語の属性情報により区別可能になるため、動的辞書を効率的に利用することができる。
【００８９】
図１１は、本実施例２に係る情報処理装置の構成を示す機能ブロック図である。図１１に示すように、この情報処理装置３００は、符号化部３００ａと、伸長部３００ｂと、記憶部３００ｃとを有する。符号化部３００ａは、登録部および符号化部の一例である。
【００９０】
符号化部３００ａは、図１０に示した符号化処理を実行する処理部である。伸長部３００ｂは、符号化部３００ａによって符号化された符号化ファイルを伸長（復号化）する処理部である。記憶部３００ｃは、符号化対象のファイルＦ４、符号化処理により得られる符号化ファイルＦ５、符号化ファイルＦ５を伸長することにより得られる伸長ファイルＦ６等を格納する記憶部である。記憶部３００ｃは、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。
【００９１】
図１２は、本実施例２に係る符号化部の構成の一例を示す機能ブロック図である。図１２に示すように、この符号化部３００ａは、ファイルリード部３０１と、静的辞書情報３０２と、静的符号化部３０３とを有する。符号化部３００ａは、動的辞書情報３０４と、種別テーブル３０５と、動的符号化部３０６と、ファイルライト部３０７とを有する。
【００９２】
ファイルリード部３０１は、記憶部３００ｃに格納された符号化対象となるファイルＦ４のコンテンツ部分のデータを読み出す処理部である。ファイルリード部３０１は、読み出したデータを、静的符号化部３０３に出力する。
【００９３】
静的辞書情報３０２は、出現頻度の高い単語と静的符号とを対応付けた情報である。静的辞書情報３０２に関する説明は、実施例１で説明した静的辞書情報１０２に関する説明と同様である。
【００９４】
静的符号化部３０３は、ファイルリード部３０１のファイルＦ４のコンテンツのデータと、静的辞書情報３０２のビットフィルタＣ１とを比較して、ビットフィルタＣ１にヒットした単語を静的符号に置換する処理部である。静的符号化部３０３は、単語に対応する静的符号を、ファイルライト部３０７に出力する。その他の静的符号化部３０３に関する説明は、静的符号化部１０３に関する説明と同様である。
【００９５】
図１３は、動的辞書情報のデータ構造の一例を示す図である。動的辞書情報３０４は、図１０に示した動的辞書に関する情報を含む。図１３に示すように、この動的辞書情報３０４は、動的ビットフィルタＤ１と、動的辞書部Ｄ２と、バッファＤ３とを有する。
【００９６】
動的ビットフィルタＤ１は、２グラムと、ビットマップと、第１ポインタとを有する。動的辞書部Ｄ２は、動的辞書２０〜２２を有する。各動的辞書２０〜２２は、動的符号と、第２ポインタと、連鎖領域とを対応付ける。バッファＤ３は、動的符号により符号化される前の単語を格納する。
【００９７】
動的ビットフィルタＤ１の２グラムは、２文字の文字列（あるいは２つの単語）を示す情報である。ビットマップは、２グラムの文字列に対応するビットマップを示す。例えば、「ａａ」に対応するビットマップは「０＿０＿０＿０＿０」となる。第１ポインタは、ビットマップに対応する動的符号の位置を示すポインタである。ビットマップおよび第１ポインタに関するその他の説明は、図４に示したビットマップおよびポインタの説明と同様である。
【００９８】
動的辞書部Ｄ２の動的符号は、バッファＤ３に格納された単語に割り当てられた符号である。第２ポインタは、動的符号に対応する単語が格納されたバッファＤ３の位置を示す情報である。例えば、動的符号「Ａ０００ｈ」に対応する第２ポインタは、バッファＤ３に格納された「１２４２」の先頭位置を示す。すなわち、単語「１２４２」は、動的符号「Ａ０００ｈ」に動的符号化されていることを意味する。
【００９９】
動的辞書部Ｄ２の連鎖領域は、該当する文字列等がビットフィルタのポインタから連鎖しているか否かを示す情報である。該当する文字列等が連鎖していない場合には、連鎖領域に「ＮＵＬＬ」が設定される。
【０１００】
図１４は、種別テーブルのデータ構造の一例を示す図である。図１４に示すように、この種別テーブル３０５は、テーブル３０５ａと、コード割当ポインタ３０５ｂと、管理情報３０５ｃとを有する。テーブル３０５ａは、アドレスと、属性情報と、ポインタとを対応付ける。アドレスは、該当の属性情報に対応する動的辞書に割り当てられたアドレスを示すものである。属性情報は、上述した単語の属性情報を示すものである。ポインタは、属性情報に対応する動的辞書の位置を示すものである。
【０１０１】
コード割当ポインタ３０５ｂは、各動的辞書について、動的辞書に割り当てられた動的符号のうち、未使用の動的符号の先頭を示すポインタである。例えば、図１３に示した動的辞書２０に関して説明を行う。動的辞書２０には、動的符号「Ａ０００ｈ〜Ａ０ＦＦｈ」が割り当てられ、このうち、動的符号「Ａ０００ｈ」、「Ａ００１ｈ」、「Ａ００２ｈ」が、「１２４２」、「２３４２」、「３３２４」の動的符号に割り当てられているものとする。この場合には、コード割当ポインタ３０５ｂには、動的符号「Ａ００３ｈ」が設定される。他の動的辞書についても同様に、動的辞書に割り当てられた動的符号のうち、未使用の動的符号の先頭を示すポインタが設定される。
【０１０２】
管理情報３０５ｃは、各動的辞書について、動的辞書に割り当てられる単語の残りの数を管理する情報である。本実施例２に示す例では、各動的辞書に最大で「２５６個」の単語を登録するものとする。また、管理情報３０５ｃは、動的辞書に割り当てられていない動的符号の位置（未使用の位置）を示すポインタの情報を有する。
【０１０３】
図１２の説明に戻る。動的符号化部３０６は、静的符号化部３０３により静的符号が割り当てられなかった単語に対して動的符号を割り振り、動的符号化を行う処理部である。動的符号化部３０６は、単語に対応する動的符号を、ファイルライト部３０７に出力する。以下において、動的符号化部３０６の処理の一例について説明する。
【０１０４】
まず、動的符号化部３０６が、動的辞書情報３０４に登録されていない単語を動的符号化する場合について説明する。動的符号化部３０６は、静的符号化部３０３から単語を取得すると、単語の属性情報と、種別テーブル３０５とを比較して、単語の属性情報に対応する動的辞書の位置を判定する。動的符号化部３０６は、判定した動的辞書に割り振られた動的符号のうち、他の単語に割り当てていない先頭の動的符号を、単語に割り当てる。また、動的符号化部３０６は、単語をバッファＤ３に格納し、単語を格納した位置に、第２ポインタを設定する。また、動的符号化部３０６は、動的ビットフィルタＤ１の第１ポインタを、単語に対応する動的符号の位置に合わせて更新する。
【０１０５】
例えば、動的符号化部３０６が、動的辞書情報３０４に登録されていない単語「１２４２」を動的符号化する場合について説明する。動的符号化部３０６は、単語「１２４２」の属性情報「カラム２０ａの単語」と、図１４に示した種別テーブル３０５とを比較して、属性情報「カラム２０ａの単語」に対応する動的辞書２０の位置を判定する。
【０１０６】
動的符号化部３０６は、動的辞書２０に割り当てられた動的符号「Ａ０００ｈ〜Ａ０ＦＦｈ」のうち、他の単語が割り当てられていない先頭の動的符号を単語「１２４２」に割り当てる。図１３に示す例では、動的符号化部３０６は、単語「１２４２」に動的符号「Ａ０００ｈ」を割り当てる。動的符号化部３０６は、バッファＤ３に単語「１２４２」を格納し、格納した位置に、動的符号「Ａ０００ｈ」に対応する第２ポインタを指定する。また、動的符号化部３０６は、動的ビットフィルタＤ１を更新する。動的符号化部３０６は、単語「１２４２」に割り当てられた動的符号「Ａ０００ｈ」を、ファイルライト部３０７に出力する。
【０１０７】
続いて、動的符号化部３０６が、動的辞書情報３０４に登録されている単語を動的符号化する場合について説明する。例えば、動的符号化部３０６は、下記の処理を行うことで、動的辞書情報３０４に、動的符号化の対象となる単語が登録されているか否かを判定する。動的符号化部３０６は、動的符号化の対象となる単語と、動的ビットフィルタＤ１とを比較して、第１ポインタに示される動的辞書部Ｄ２の位置を特定する。動的符号化部３０６は、特定した位置に該当する第２ポインタに示されるバッファＤ３の位置に、動的符号化の対象となる単語と同一の単語が格納されている場合に、動的辞書情報３０４に、動的符号化の対象となる単語が登録されているか否かを判定する。一方、動的符号化部３０６は、動的符号化の対象となる単語と同一の単語が格納されていない場合には、動的符号化の対象となる単語が登録されていないため、上記の処理を実行する。
【０１０８】
例えば、動的符号化部３０６が、動的辞書情報３０４に登録されている単語「１２４２」を動的符号化する場合について説明する。動的符号化部３０６は、単語「１２４２」と、動的ビットフィルタＤ１とを比較して、動的符号「Ａ０００ｈ」の第２ポインタに示されるバッファＤ３の位置を参照すると、「１２４２」が格納されており、単語が一致する。このため、動的符号化部３０６は、「１２４２」に割り当てられた動的符号「Ａ０００ｈ」を、ファイルライト部３０７に出力する。
【０１０９】
ファイルライト部３０７は、単語に対応する静的符号および動的符号を取得し、取得した静的符号および動的符号を、符号化ファイルＦ５の符号化データ部２ｂに書き込む処理部である。また、ファイルライト部３０７は、ヘッダ部２ａに、単語の出現頻度の情報を格納する。ファイルライト部３０７は、トレーラ部２ｃに、動的辞書情報３０４等を格納する。
【０１１０】
図１５は、本実施例２に係る伸長部の構成の一例を示す機能ブロック図である。図１５に示すように、この伸長部３００ｂは、ファイルリード部４０１と、オートマトン生成部４０２と、伸長処理部４０４と、ファイルライト部４０５とを有する。また、伸長部３００ｂは、例えば、第１オートマトン４０３ａ、第２オートマトン４０３ｂ、第３オートマトン４０３ｃ、第４オートマトン４０３ｄを有する。
【０１１１】
ファイルリード部４０１は、符号化ファイルＦ５の符号化データ部２ｂに格納された符号を読み出す処理部である。ファイルリード部４０１は、読み出した符号を、伸長処理部４０４に出力する。また、ファイルリード部４０１は、ヘッダ部２ａに格納された単語の出現頻度の情報を読み出し、オートマトン生成部４０２に出力する。ファイルリード部４０１は、トレーラ部２ｃに格納された動的辞書情報３０４を読み出し、オートマトン生成部４０２に出力する。
【０１１２】
オートマトン生成部４０２は、単語の出現頻度の情報を基にして、静的符号を単語に変換する第１オートマトン４０３ａを生成する。また、オートマトン生成部４０２は、動的辞書情報３０４を基にして、動的符号を単語に変換する第２オートマトン４０３ｂ〜第４オートマトン４０３ｄを生成する。
【０１１３】
第１オートマトン４０３ａは、静的符号と単語（高頻度の単語）とを対応付けるオートマトンである。例えば、符号の先頭４ビットが「０ｈ（００００）〜９ｈ（１００１）」に含まれる場合には、第１オートマトン４０３ａと、符号との比較により、単語が特定される。
【０１１４】
第２オートマトン４０３ｂは、動的符号と単語（カラム２０ａの単語）とを対応付けるオートマトンである。第２オートマトン４０３ｂは、属性情報「カラム２０ａの単語」に対応する動的辞書２０に対応して生成される。例えば、符号の先頭の１６ビットが「Ａ０００ｈ〜Ａ０ＦＦｈ」に含まれる場合には、第２オートマトン４０３ｂと、符号との比較により、単語（カラム２０ａの単語）が特定される。
【０１１５】
第３オートマトン４０３ｃは、動的符号と単語（カラム２１ａの単語）とを対応付けるオートマトンである。第３オートマトン４０３ｃは、属性情報「カラム２１ａの単語」に対応する動的辞書２１に対応して生成される。例えば、符号の先頭の１６ビットが「Ａ１００ｈ〜Ａ１ＦＦｈ」に含まれる場合には、第３オートマトン４０３ｃと、符号との比較により、単語（カラム２１ａの単語）が特定される。
【０１１６】
第４オートマトン４０３ｄは、動的符号と単語（カラム２２ａの単語）とを対応付けるオートマトンである。第４オートマトン４０３ｄは、属性情報「カラム２２ａの単語」に対応する動的辞書２２に対応して生成される。例えば、符号の先頭の１６ビットが「Ａ２００ｈ〜Ａ２ＦＦｈ」に含まれる場合には、第４オートマトン４０３ｄと、符号との比較により、単語（カラム２２ａの単語）が特定される。
【０１１７】
伸長処理部４０４は、ファイルリード部４０１から取得する符号と、第１オートマトン４０３ａ〜第４オートマトン４０３ｄとを基にして、符号に対応する単語を特定する処理部である。例えば、伸長処理部４０４は、符号の先頭４ビットが「０ｈ（００００）〜９ｈ（１００１）」に含まれる場合には、第１オートマトン４０３ａと、符号との比較により、符号に対応する単語を特定する。
【０１１８】
伸長処理部４０４は、符号の先頭の１６ビットが「Ａ０００ｈ〜Ａ０ＦＦｈ」に含まれる場合には、第２オートマトン４０３ｂと、符号との比較により、単語（カラム２０ａの単語）を特定する。
【０１１９】
伸長処理部４０４は、符号の先頭の１６ビットが「Ａ１００ｈ〜Ａ１ＦＦｈ」に含まれる場合には、第３オートマトン４０３ｃと、符号との比較により、単語（カラム２１ａの単語）を特定する。
【０１２０】
伸長処理部４０４は、符号の先頭の１６ビットが「Ａ２００ｈ〜Ａ２ＦＦｈ」に含まれる場合には、第４オートマトン４０３ｄと、符号との比較により、単語（カラム２２ａの単語）を特定する。
【０１２１】
伸長処理部４０４は、ファイルリード部４０１から読み出された符号に対して上記の処理を繰り返し実行することで、符号に対応する単語を順次特定し、特定した単語をファイルライト部４０５に出力する。
【０１２２】
ファイルライト部４０５は、伸長処理部４０４から取得する復号化された単語を、伸長ファイルＦ６に格納する処理部である。
【０１２３】
次に、本実施例２に係る符号化部３００ａの処理手順について説明する。図１６は、本実施例２に係る符号化部の処理手順を示すフローチャートである。図１６に示すように、符号化部３００ａのファイルリード部３０１は、符号化対象のファイルＦ４を、単語単位にリードする（ステップＳ３０１）。
【０１２４】
符号化部３００ａの静的符号化部３０３は、単語が高頻度の単語であるか否かを判定する（ステップＳ３０２）。例えば、ステップＳ３０２において、静的符号化部３０３は、単語が静的辞書Ｃ２にヒットする場合には、単語が高頻度の単語であると判定する。
【０１２５】
静的符号化部３０３は、単語が高頻度の単語である場合には（ステップＳ３０２，Ｙｅｓ）、静的辞書Ｃ２による符号化を行う（ステップＳ３０３）。静的符号化部３０３は、単語に対応する静的符号をファイルライト部３０７に出力し（ステップＳ３０４）、ステップＳ３０９に移行する。一方、静的符号化部３０３は、単語が高頻度の単語でない場合には（ステップＳ３０２，Ｎｏ）、ステップＳ３０５に移行する。
【０１２６】
符号化部３００ａの動的符号化部３０６は、種別テーブル３０５を基にして、単語の属性情報に対応する動的辞書を、複数の動的辞書から判定する（ステップＳ３０５）。動的符号化部３０６は、判定した動的辞書の領域に単語を登録し、動的符号を割り当てる（ステップＳ３０６）。動的符号化部３０６は、動的辞書による符号化を行い（ステップＳ３０７）、単語に対応する動的符号をファイルライト部３０７に出力する（ステップＳ３０８）。
【０１２７】
ファイルライト部３０７は、符号（静的符号または動的符号）を符号化ファイルＦ５の符号化データ部２ｂに書き込む（ステップＳ３０９）。符号化部３００ａは、ファイルＦ４の終点であるか否かを判定する（ステップＳ３１０）。符号化部３００ａは、ファイルＦ４の終点でない場合には（ステップＳ３１０，Ｎｏ）、ステップＳ３０１に移行する。
【０１２８】
ファイルライト部３０７は、ファイルＦ４の終点である場合には（ステップＳ３１０，Ｙｅｓ）、符号化ファイルＦ５のヘッダ部２ａに単語の出現頻度の情報を格納し、トレーラ部２ｃに動的辞書情報３０４を格納する（ステップＳ３１１）。
【０１２９】
次に、本実施例２に係る伸長部３００ｂの処理手順について説明する。図１７は、本実施例２に係る伸長部の処理手順を示すフローチャートである。図１７に示すように、伸長部３００ｂのオートマトン生成部２０２は、第１オートマトン４０３ａ〜第４オートマトン４０３ｄを生成する（ステップＳ４０１）。ファイルリード部４０１は、符号化ファイルＦ２をリードする（ステップＳ４０２）。
【０１３０】
伸長部３００ｂの伸長処理部４０４は、符号を取得し（ステップＳ４０３）、符号の先頭４ビットの値と、第１オートマトン４０３ａとを比較する（ステップＳ４０４）。伸長処理部４０４は、第１オートマトン４０３ａにヒットした場合には（ステップＳ４０５，Ｙｅｓ）、第１オートマトン４０３ａを選択する（ステップＳ４０６）。伸長処理部４０４は、第１オートマトン４０３ａに基づいて、符号を単語に変換し（ステップＳ４０７）、ステップＳ４１０に移行する。
【０１３１】
一方、伸長処理部４０４は、第１オートマトン４０３ａにヒットしない場合には（ステップＳ４０５，Ｎｏ）、ステップＳ４０８に移行する。伸長処理部４０４は、符号の先頭から１６ビット目までの値と各オートマトンとを比較し、第２〜第４オートマトン４０３ｂ〜４０３ｄのうち、対応するオートマトンを選択する（ステップＳ４０８）。
【０１３２】
伸長処理部４０４は、選択したオートマトンに基づいて、符号を単語に変換する（ステップＳ４０９）。伸長処理部４０４は、符号化ファイルＦ５の復号化が終了したか否かを判定する（ステップＳ４１０）。伸長処理部４０４は、符号化ファイルＦ５の復号化が終了していない場合には（ステップＳ４１０，Ｎｏ）、ステップＳ４０３に移行する。
【０１３３】
伸長処理部４０４は、符号化ファイルＦ５の復号化が終了した場合には（ステップＳ４１０，Ｙｅｓ）、復号化したデータを伸長ファイルＦ６に書き込む（ステップＳ４１１）。
【０１３４】
次に、本実施例２に係る符号化部３００ａの効果について説明する。符号化部３００ａは、ファイルＦ４に含まれる単語の属性情報（単語の含まれるカラム）に対応する動的辞書を判定し、判定した動的辞書を用いて動的符号化を行う。これにより、単語と動的符号とを対応付けた動的辞書が、単語の属性情報により区別可能になるため、動的辞書を効率的に利用することができる。例えば、単語の属性情報により、動的符号に対応する単語が、各動的辞書に区別されて登録されるため、復号化を行う場合に、該当の動的辞書に対応したオートマトンを利用することで復号化を行うことができる。
【０１３５】
また、本実施例２に係る符号化部３００ａは、符号化対象となる単語のカラムを属性情報として、属性情報に対応する動的辞書を判定していたがこれに限定されるものではない。例えば、符号化部３００ａは、階層構造を有するテキストデータを符号化する場合に、単語の属する階層の位置を属性情報として利用しても良い。
【０１３６】
例えば、第１〜第３の階層を有するテキストデータを符号化する場合の符号化部３００ａの処理の一例について説明する。符号化部３００ａは、第１の階層に属する単語を動的符号化する場合には、動的辞書２０に単語を登録し、動的符号を割り当てる。符号化部３００ａは、第２の階層に属する単語を動的符号化する場合には、動的辞書２１に単語を登録し、動的符号を割り当てる。符号化部３００ａは、第３の階層に属する単語を動的符号化する場合には、動的辞書２２に単語を登録し、動的符号を割り当てる。
【０１３７】
上記のように、符号化部３００ａは、階層構造を有するテキストデータに含まれる単語の属性情報（単語の位置する階層）に対応する動的辞書を判定し、判定した動的辞書を用いて動的符号化を行う。これにより、単語と動的符号とを対応付けた動的辞書が、単語の属性情報により区別可能になるため、動的辞書を効率的に利用することができる。
【０１３８】
ところで、上述した符号化部１００ａ（３００ａ）は、単語の動的符号化を行う場合に、下記の処理を実行することで、バッファＤ３に格納されるデータ量を削減することができる。
【０１３９】
図１８は、符号化部のその他の処理を説明するための図である。図１８に示す例では、符号化部１００ａは、符号化対象のテキストファイルＦ１を読み出し、静的辞書による静的符号化または動的辞書による動的符号化を行うことで、符号化ファイルＦ２を生成する。ここで、符号化部１００ａは、動的符号化を行う場合に、バッファＤ３に格納された各単語に対して、最長一致文字列を検索し、最長一致文字列に動的符号を割り当てることで、データ量を削減する。
【０１４０】
図１８で説明する例では、動的辞書３１および動的辞書３２を用いて説明する。動的辞書３１は属性情報「タグ」の単語を動的符号化する場合に用いる動的辞書である。動的辞書３２は「最長一致文字列」を動的符号化する場合に用いる動的辞書である。
【０１４１】
符号化部１００ａは、テキストファイルＦ１から単語「<a  href="＃link01">」を読み出し、単語の属性情報「タグ」に対応する動的辞書３１を選択する。符号化部１００ａは、動的符号「Ａ１００ｈ」を割り当て、単語「<a  href="＃link01">」をバッファＤ３１に格納する。符号化部１００ａは、動的符号「Ａ１００ｈ」に対応する第２ポインタを、バッファＤ３１に格納された「<a  href="＃link01">」の先頭位置に設定する。符号化部１００ａは、動的符号「Ａ１００ｈ」を符号化ファイルＦ２の符号化データ部１ｂに格納する。
【０１４２】
符号化部１００ａは、テキストファイルＦ１から単語「<a  href="＃link012">」を読み出し、単語の属性情報「タグ」に対応する動的辞書３１を選択する。符号化部１００ａは、動的符号「Ａ１０１ｈ」を割り当て、単語「<a  href="＃link012">」をバッファ３１に格納する。符号化部１００ａは、動的符号「Ａ１０１ｈ」に対応する第２ポインタを、バッファＤ３１に格納された「<a  href="＃link012">」の先頭位置に設定する。符号化部１００ａは、動的符号「Ａ１０１ｈ」を符号化ファイルＦ２の符号化データ部１ｂに格納する。
【０１４３】
続いて、符号化部１００ａは、バッファＤ３１に格納された文字列「<a  href="＃link0"1><a  href="＃link012">」について最長一致文字列を検索する。そうすると、「<a  href="＃link01」が最長一致文字列となる。
【０１４４】
符号化部１００ａは、動的辞書３２を用いて、最長一致文字列「<a  href="＃link01」に動的符号を割り当てる。例えば、符号化部１００ａは、最長一致文字列「<a  href="＃link01」に動的符号「Ａ２００ｈ」を割り当てる。符号化部１００ａは、動的符号を用いて、バッファＤ３１に格納された文字列を「<a  href="＃link01">A2OOh2">」に更新する。例えば、符号化部１００ａは、バッファＤ３１に登録された文字列に含まれる同一の最長一致文字列のうち、２番目以降の最長一致文字列を、動的符号に変換する。
【０１４５】
符号化部１００ａは、バッファＤ３２に最長一致文字列「<a  href="＃link01」を格納し、動的符号「Ａ２００ｈ」に対応する第２ポインタを、バッファＤ３２に格納された「<a  href="＃link01>」の先頭位置に設定する。
【０１４６】
上記のように、符号化部１００ａは、動的符号化を行う場合に、バッファＤ３１に格納された各単語に対して、最長一致文字列を検索し、最長一致文字列に動的符号を割り当てることで、データ量を削減することができる。
【０１４７】
下記に、本実施形態に用いられるハードウェア及びソフトウェアについて説明する。図１９は、コンピュータのハードウェア構成例を示す図である。コンピュータ４００は、例えば、プロセッサ４０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０３、ドライブ装置４０４、記憶媒体４０５、入力インターフェース（Ｉ／Ｆ）４０６、入力デバイス４０７、出力インターフェース（Ｉ／Ｆ）４０８、出力デバイス４０９、通信インターフェース（Ｉ／Ｆ）４１０、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インターフェース（Ｉ／Ｆ）４１１およびバス４１２などを含む。それぞれのハードウェアはバス４１２を介して接続されている。
【０１４８】
ＲＡＭ４０２は読み書き可能なメモリ装置であって、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの半導体メモリ、またはＲＡＭでなくてもフラッシュメモリなどが用いられる。ＲＯＭ４０３は、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）なども含む。ドライブ装置４０４は、記憶媒体４０５に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体４０５は、ドライブ装置４０４によって書き込まれた情報を記憶する。記憶媒体４０５は、例えば、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などのフラッシュメモリ、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスクなどの記憶媒体である。また、例えば、コンピュータ４００は、複数種類の記憶媒体それぞれについて、ドライブ装置４０４及び記憶媒体４０５を設ける。
【０１４９】
入力インターフェース４０６は、入力デバイス４０７と接続されており、入力デバイス４０７から受信した入力信号をプロセッサ４０１に伝達する回路である。出力インターフェース４０８は、出力デバイス４０９と接続されており、出力デバイス４０９に、プロセッサ４０１の指示に応じた出力を実行させる回路である。通信インターフェース４１０はネットワーク４１３を介した通信の制御を行なう回路である。通信インターフェース４１０は、例えばネットワークインターフェースカード（ＮＩＣ）などである。ＳＡＮインターフェース４１１は、ストレージエリアネットワークによりコンピュータ４００と接続された記憶装置との通信の制御を行なう回路である。ＳＡＮインターフェース４１１は、例えばホストバスアダプタ（ＨＢＡ）などである。
【０１５０】
入力デバイス４０７は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ４００の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス４０９は、コンピュータ４００の制御に応じて情報を出力する装置である。出力デバイス４０９は、例えば、ディスプレイなどの画像出力装置（表示デバイス）や、スピーカーなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス４０７及び出力デバイス４０９として用いられる。また、入力デバイス４０７及び出力デバイス４０９は、コンピュータ４００と一体になっていてもよいし、コンピュータ４００に含まれず、例えば、コンピュータ４００に外部から接続する装置であってもよい。
【０１５１】
例えば、プロセッサ４０１は、ＲＯＭ４０３や記憶媒体４０５に記憶されたプログラムをＲＡＭ４０２に読み出し、読み出されたプログラムの手順に従って符号化部１００ａ（３００ａ）の処理または伸張部１００ｂ（３００ｂ）の処理を行なう。その際にＲＡＭ４０２はプロセッサ４０１のワークエリアとして用いられる。記憶部１００ｃの機能は、ＲＯＭ４０３および記憶媒体４０５がプログラムファイル（後述のアプリケーションプログラム５４、ミドルウェア５３およびＯＳ５２など）やデータファイル（圧縮対象のファイルＦ１、圧縮された符号化ファイルＦ２など）を記憶し、ＲＡＭ４０２がプロセッサ４０１のワークエリアとして用いられることによって実現される。プロセッサ４０１が読み出すプログラムについては、図２０を用いて説明する。
【０１５２】
図２０は、コンピュータで動作するプログラムの構成例を示す。コンピュータ４００において、図１９に示すハードウェア群４１（４０１〜４１１）の制御を行なうＯＳ（オペレーティング・システム）５２が動作する。ＯＳ５２に従った手順でプロセッサ４０１が動作して、ハードウェア群５１の制御・管理が行なわれることにより、アプリケーションプログラム５４やミドルウェア５３に従った処理がハードウェア群５１で実行される。さらに、コンピュータ４００において、ミドルウェア５３またはアプリケーションプログラム５４が、ＲＡＭ４０２に読み出されてプロセッサ４０１により実行される。
【０１５３】
プロセッサ４０１が、符号化処理機能が呼び出された場合に、ミドルウェア５３またはアプリケーションプログラム５４の少なくとも一部に基づく処理を行なうことにより、（それらの処理をＯＳ５２に基づいてハードウェア群５１を制御して）符号化部１００ａ（３００ａ）の機能が実現される。また、プロセッサ４０１が、伸張機能が呼び出された場合に、ミドルウェア５３またはアプリケーションプログラム５４の少なくとも一部に基づく処理を行なうことにより、（それらの処理をＯＳ５２に基づいてハードウェア群５１を制御して）伸張部１００ｂ（３００ｂ）の機能が実現される。符号化処理機能および伸張機能は、それぞれアプリケーションプログラム５４自体に含まれてもよいし、アプリケーションプログラム５４に従って呼び出されることで実行されるミドルウェア５３の一部であってもよい。
【０１５４】
図２１は、実施形態のシステムにおける装置の構成例を示す図である。図２１のシステムは、コンピュータ５０ａ、コンピュータ５０ｂ、基地局６０およびネットワーク４１３を含む。コンピュータ５０ａは、無線または有線の少なくとも一方により、コンピュータ５０ｂと接続されたネットワーク４１３に接続している。
【０１５５】
図２に示す符号化部１００ａと伸張部１００ｂとは、図２１に示すコンピュータ５０ａとコンピュータ５０ｂとのいずれに含まれてもよい。コンピュータ５０ｂが符号化部１００ａを含み、コンピュータ５０ａが伸張部１００ｂを含んでもよいし、コンピュータ５０ａが符号化部１００ａを含み、コンピュータ５０ｂが伸張部１００ｂを含んでもよい。また、コンピュータ５０ａとコンピュータ５０ｂとの双方が、符号化部１００ａおよび伸張部１００ｂを備えてもよい。
【０１５６】
以下、上述の実施形態における変形例の一部を説明する。下記の変形例のみでなく、本発明の本旨を逸脱しない範囲の設計変更は適宜行われうる。符号化処理の対象は、ファイル内のデータ以外にも、システムから出力される監視メッセージなどでもよい。例えば、バッファに順次格納される監視メッセージを上述の符号化処理により符号化し、ログファイルとして格納するなどの処理が行なわれる。また、例えば、データベース内のページ単位に符号化が行なわれてもよいし、複数のページをまとめた単位で符号化が行なわれてもよい。
【０１５７】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５８】
（付記１）コンピュータに、
テキストデータを複数の動的辞書を用いて符号化する際に、前記テキストデータに含まれる単語に対し、当該単語の属性情報に基づき前記複数の動的辞書から第１の動的辞書を特定し、
前記単語および前記単語に対応して生成された動的符号を前記第１の動的辞書に登録し、
前記単語を前記動的符号を用いて符号化する
処理を実行させる符号化プログラム。
【０１５９】
（付記２）前記属性情報は、前記テキストデータに含まれる単語の位置情報であることを特徴とする付記１に記載の符号化プログラム。
【０１６０】
（付記３）前記テキストデータは階層構造を有する文書であり、前記位置情報は前記階層構造における位置情報であることを特徴とする付記２に記載の符号化プログラム。
【０１６１】
（付記４）前記属性情報は、前記テキストデータに用いられる言語における、特定の単語の種別情報であることを特徴とする付記１に記載の符号化プログラム。
【０１６２】
（付記５）前記テキストデータはデリミタで複数の列に区切られており、前記位置情報は、複数の列の内、単語の位置する列情報であることを特徴とする付記２に記載の符号化プログラム。
【０１６３】
（付記６）コンピュータが実行する符号化方法であって、
テキストデータを複数の動的辞書を用いて符号化する際に、前記テキストデータに含まれる単語に対し、当該単語の属性情報に基づき前記複数の動的辞書から第１の動的辞書を特定し、
前記単語および前記単語に対応して生成された動的符号を前記第１の動的辞書に登録し、
前記単語を前記動的符号を用いて符号化する
処理を実行する符号化方法。
【０１６４】
（付記７）前記属性情報は、前記テキストデータに含まれる単語の位置情報であることを特徴とする付記６に記載の符号化方法。
【０１６５】
（付記８）前記テキストデータは階層構造を有する文書であり、前記位置情報は前記階層構造における位置情報であることを特徴とする付記７に記載の符号化方法。
【０１６６】
（付記９）前記属性情報は、前記テキストデータに用いられる言語における、特定の単語の種別情報であることを特徴とする付記６に記載の符号化方法。
【０１６７】
（付記１０）前記テキストデータはデリミタで複数の列に区切られており、前記位置情報は、複数の列の内、単語の位置する列情報であることを特徴とする付記７に記載の符号化方法。
【０１６８】
（付記１１）テキストデータを複数の動的辞書を用いて符号化する際に、前記テキストデータに含まれる単語に対し、当該単語の属性情報に基づき前記複数の動的辞書から第１の動的辞書を特定し、前記単語および前記単語に対応して生成された動的符号を前記第１の動的辞書に登録する登録部と、
前記単語を前記動的符号を用いて符号化する符号化部と
を有することを特徴とする符号化装置。
【０１６９】
（付記１２）前記属性情報は、前記テキストデータに含まれる単語の位置情報であることを特徴とする付記１１に記載の符号化装置。
【０１７０】
（付記１３）前記テキストデータは階層構造を有する文書であり、前記位置情報は前記階層構造における位置情報であることを特徴とする付記１２に記載の符号化装置。
【０１７１】
（付記１４）前記属性情報は、前記テキストデータに用いられる言語における、特定の単語の種別情報であることを特徴とする付記１１に記載の符号化装置。
【０１７２】
（付記１５）前記テキストデータはデリミタで複数の列に区切られており、前記位置情報は、複数の列の内、単語の位置する列情報であることを特徴とする付記１２に記載の符号化装置。
【符号の説明】
【０１７３】
１００，３００  情報処理装置
１００ａ，３００ａ  符号化部
１００ｂ，３００ｂ  伸長部
１００ｃ，３００ｃ  記憶部
【図１】
2018182466.tif 000003
【図２】
2018182466.tif 000004
【図３】
2018182466.tif 000005
【図４】
2018182466.tif 000006
【図５】
2018182466.tif 000007
【図６】
2018182466.tif 000008
【図７】
2018182466.tif 000009
【図８】
2018182466.tif 000010
【図９】
2018182466.tif 000011
【図１０】
2018182466.tif 000012
【図１１】
2018182466.tif 000013
【図１２】
2018182466.tif 000014
【図１３】
2018182466.tif 000015
【図１４】
2018182466.tif 000016
【図１５】
2018182466.tif 000017
【図１６】
2018182466.tif 000018
【図１７】
2018182466.tif 000019
【図１８】
2018182466.tif 000020
【図１９】
2018182466.tif 000021
【図２０】
2018182466.tif 000022
【図２１】
2018182466.tif 000023