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