Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7159557B2 - 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置 - Google Patents
[go: Go Back, main page]

JP7159557B2 - 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置 - Google Patents

動的辞書の生成プログラム、動的辞書の生成方法および復号化装置 Download PDF

Info

Publication number
JP7159557B2
JP7159557B2 JP2017254256A JP2017254256A JP7159557B2 JP 7159557 B2 JP7159557 B2 JP 7159557B2 JP 2017254256 A JP2017254256 A JP 2017254256A JP 2017254256 A JP2017254256 A JP 2017254256A JP 7159557 B2 JP7159557 B2 JP 7159557B2
Authority
JP
Japan
Prior art keywords
dynamic
dynamic dictionary
dictionary
code
words
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017254256A
Other languages
English (en)
Other versions
JP2019121861A (ja
Inventor
正弘 片岡
慶一 冨山
龍 松井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017254256A priority Critical patent/JP7159557B2/ja
Priority to US16/191,899 priority patent/US10404275B2/en
Priority to EP22169415.1A priority patent/EP4053730A1/en
Priority to EP18207223.1A priority patent/EP3506126A1/en
Publication of JP2019121861A publication Critical patent/JP2019121861A/ja
Application granted granted Critical
Publication of JP7159557B2 publication Critical patent/JP7159557B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/146Coding or compression of tree-structured data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、符号化プログラム等に関する。
近年、データの符号化を行う場合に、単語単位で符号化を行う技術がある。単語単位の符号化では、ZIPによる圧縮と異なり、複数の単語にまたがった符号化を行わない。このため、単語単位の符号化を行うことで、符号化データの一部を、符号化されたままの状態で抽出し、再利用することができる。
ここで、単語単位で符号化を行う場合には、静的辞書と動的辞書とを用いて符号化を行っている。静的辞書は、出現頻度の高い単語に符号を対応付けた情報である。符号化の対象となる単語が、静的辞書に存在しない場合には、かかる単語を動的辞書に登録して、動的符号を割り当てることで、符号化を行う。例えば、動的符号は、単語の出現順序に応じて、動的符号が割り当てられる。
特開2014-204357号公報 特開平9-214352号公報 特開平10-260980号公報 特開2004-013680号公報
しかしながら、上述した従来技術では、符号化データの一部を抽出し転送後に再利用する場合には、動的辞書のデータが冗長であるという問題がある。
動的辞書を利用する場合に単語に割り当てる動的符号は、単語の出現に応じて割り当てられている。このため、符号化データの一部を抽出し再利用する場合に、圧縮ファイルのトレーラ部に動的辞書全体を格納することになるが、抽出された一部の符号と関係のないデータが動的辞書に含まれており、冗長である。
1つの側面では、本発明は、動的辞書のデータの冗長さを削減できる的辞書の生成プログラム、的辞書の生成方法および復号化装置を提供することを目的とする。
第1の案では、コンピュータに下記の処理を実行させる。コンピュータは、テキストデータに複数回出現する単語と符号とを対応付けた動的辞書を有する。動的辞書は、動的辞書は複数の動的辞書セグメントを含み、各動的辞書セグメントは、符号に対応する単語のテキストデータにおける位置に関連付けられる。コンピュータは、動的辞書を用いて前記テキストデータを符号化した符号化ファイルの入力を受け付ける。コンピュータは、符号化ファイルについて、抽出対象となる符号の指示を受け付けた場合に、複数の動的辞書セグメントから、抽出対象の符号に対応付けられた動的辞書セグメントを抽出した抽出動的辞書を生成する。コンピュータは、符号化ファイルの符号のうち、静的辞書に登録されていない符号について、抽出動的辞書に設定された符号と単語との関係を基にして、符号を単語に変換する。
動的辞書のデータの冗長さを削減できる。
図1は、本実施例1に係る情報処理装置の符号化処理の一例を示す図である。 図2は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。 図3は、本実施例1に係る符号化部の構成の一例を示す図である。 図4は、静的辞書情報のデータ構造の一例を示す図である。 図5は、動的辞書情報のデータ構造の一例を示す図である。 図6は、種別テーブルのデータ構造の一例を示す図である。 図7は、本実施例1に係る伸長部の構成の一例を示す機能ブロック図である。 図8は、本実施例1に係る符号化部の処理手順を示すフローチャートである。 図9は、本実施例1に係る伸長部の処理手順を示すフローチャートである。 図10は、本実施例2に係る情報処理装置の抽出処理の一例を示す図である。 図11は、本実施例2に係る抽出部の構成の一例を示す図である。 図12は、本実施例2に係る抽出部の処理手順を示すフローチャートである。 図13は、コンピュータのハードウェア構成例を示す図である。 図14は、コンピュータで動作するプログラムの構成例を示す図である。 図15は、実施形態のシステムにおける装置の構成例を示す図である。
以下に、本願の開示する符号化プログラム、動的辞書の生成プログラム、符号化方法、動的辞書の生成方法、符号化装置および復号化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例1に係る情報処理装置の符号化処理の一例を示す図である。情報処理装置は、符号化装置および復号化装置の一例である。情報処理装置は、符号化対象のファイルF1を読み出し、静的辞書による静的符号化または動的辞書による動的符号化を行うことで、符号化ファイルF2を生成する。静的辞書は、出現頻度の高い単語と静的符号とを対応付けた情報である。
本実施例で説明するファイルF1は、複数の単語がデリミタで複数の列(カラム)に区切られたファイルである。図1に示す例では、ファイルF1には、カラム20a,21a,22aが含まれる。カラム20aには、単語「商品番号」、「1242」、「2342」、「3324」が含まれる。カラム21aには、単語「キャラクター名」「Mickey」、「Alice」、「Becky」が含まれる。カラム22aには、単語「単価」、「50」、「500」、「450」が含まれる。
情報処理装置は、ファイルF1から単語を読み出し、静的辞書にヒットする単語については、静的符号に置き換える処理を実行する。ファイルF1に含まれる単語は、スペースによって区切られているものとする。一例として、ファイルF1に含まれる単語「商品番号」、「キャラクター名」、「単価」はそれぞれ、静的辞書にヒットする単語であるとする。情報処理装置は、各単語を静的符号に変換する。ここでは説明の便宜上、単語「商品番号」、「キャラクター名」、「単価」に対応する静的符号をそれぞれ「(商品番号)」「(キャラクター名)」、「(単価)」と表記する。
情報処理装置は、ファイルF1から単語を読み出し、静的辞書にヒットしない単語については、複数の部分に区分可能な動的辞書の、単語の位置情報に対応する領域に登録する。以下の説明においては、複数の動的辞書セグメントを用いた場合の説明を行うが、複数の領域に区分可能であれば、単一、あるいは、区分数よりも少ない数の動的辞書セグメントを用いてもよい。
複数の動的辞書セグメントを用いる場合、静的辞書にヒットしない単語については、単語の位置情報に対応する動的辞書セグメントを複数の動的辞書セグメントから判定し、判定した動的辞書セグメントを用いて、動的符号化を行う。情報処理装置は、単語の位置情報に対応する動的辞書セグメントに単語を登録して、動的符号を割り振り、単語を動的符号に置き換える。
図1に示す例では、各位置情報に対応する動的辞書には複数の動的辞書セグメント20~22が存在する。図1では、各カラム20a~22aに対応する動的辞書セグメント20~22を示すが、他の位置情報に対応する動的辞書セグメントが存在していても良い。例えば、ファイルF1を列方向および行方向に分割し、各領域に対応する動的辞書を用いても良い。
動的辞書セグメント20は、「カラム20aに位置する単語」を動的符号化する場合に用いる動的辞書のセグメントである。例えば、動的辞書セグメント20には「A000h~A0FFh」の動的符号が割り当てられる。動的辞書セグメント21は、「カラム21aに位置する単語」を動的符号化する場合に用いる動的辞書のセグメントである。例えば、動的辞書セグメント21には「A100h~A1FFh」の動的符号が割り当てられる。動的辞書セグメント22は「カラム22aに位置する単語」を動的符号化する場合に用いる動的辞書のセグメントである。例えば、動的辞書22には「A200h~A2FFh」の動的符号が割り当てられる。
情報処理装置は、種別テーブル25を用いて、位置情報に対応する動的辞書セグメントを判定する。種別テーブル25は、位置情報とポインタとを対応付ける。ポインタは、位置情報に対応する動的辞書セグメントを示す情報である。例えば、位置情報が「カラム20aに位置する単語」の場合には、ポインタは動的辞書セグメント20の位置を示す。位置情報が「カラム21aに位置する単語」の場合には、ポインタは動的辞書21の位置を示す。位置情報が「カラム22aに位置する単語」の場合には、ポインタは動的辞書セグメント22の位置を示す。
ファイルF1のカラム20aに位置する各単語「1242」、「2342」、「3324」を静的辞書にヒットしない単語とする。情報処理装置は、属性情報「カラム20aに位置する単語」に対応する動的辞書セグメント20を、動的辞書セグメント20~22から判定する。情報処理装置は、各単語「1242」、「2342」、「3324」に各動的符号「A000h」、「A001h」、「A002h」をそれぞれ割り当てることで、動的符号化を行う。
ファイルF1のカラム21aに位置する各単語「Mickey」、「Alice」、「Becky」を静的辞書にヒットしない単語とする。情報処理装置は、属性情報「カラム21aに位置する単語」に対応する動的辞書セグメント21を、動的辞書セグメント20~22から判定する。情報処理装置は、各単語「Mickey」、「Alice」、「Becky」に各動的符号「A100h」、「A101h」、「A102h」をそれぞれ割り当てることで、動的符号化を行う。
ファイルF1のカラム22aに位置する各単語「50」、「500」、「450」を静的辞書にヒットしない単語とする。情報処理装置は、属性情報「カラム22aに位置する単語」に対応する動的辞書セグメント22を、動的辞書セグメント20~22から判定する。情報処理装置は、各単語「50」、「500」、「450」に各動的符号「A200h」、「A201h」、「A202h」をそれぞれ割り当てることで、動的符号化を行う。
情報処理装置は、上記の処理を実行することで、ファイルF1を符号化ファイルF2に符号化する。符号化ファイルF2には、ヘッダ部2aと、符号化データ部2bと、トレーラ部2cとが含まれる。ヘッダ部2aには、単語の出現頻度の情報等が含まれる。符号化データ部2bには、情報処理装置が生成した符号化データが格納される。トレーラ部2cには、動的辞書セグメント20~22の情報等が含まれる。
ところで、情報処理装置は、符号化ファイルF2について、抽出対象となる一部の符号の指示を受け付けた場合には、抽出対象の一部の符号に対応付けられた動的辞書セグメントの項目を抽出した「抽出動的辞書」を生成する。情報処理装置は、抽出動的辞書を用いて、抽出対象となる一部の符号を復号化する。
例えば、情報処理装置は、抽出対象となる符号として、符号化データのカラム20bに位置する各符号が指定されたものとする。この場合には、情報処理装置は、カラム20bに対応する動的辞書セグメント20を、「抽出動的辞書」として生成する。情報処理装置は、カラム20bに位置する各符号と、抽出動的辞書(動的辞書セグメント20)とを比較することで、符号化ファイルF2の一部の符号を復号化する。
本実施例1に係る情報処理装置は、ファイルF1に含まれる単語の位置情報に対応する動的辞書セグメントを判定し、判定した動的辞書セグメントを用いて動的符号化を行う。これにより、単語と動的符号とを対応付けた動的辞書セグメントが、単語の位置情報により区別可能になる。従って、一部の符号について、復号化を行う場合には、関連した符号に対応する単語の情報のみを有する抽出動的辞書を生成できるので、動的辞書のデータが冗長になることを抑止することができる。
図2は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。図2に示すように、この情報処理装置100は、符号化部100aと、伸長部100bと、記憶部100cとを有する。情報処理装置100は、符号化装置、復号化装置に対応する。
符号化部100aは、図1に示した符号化処理を実行する処理部である。伸長部100bは、上述した抽出動的辞書を用いて、符号化ファイルを伸長(復号化)する処理部である。記憶部100cは、符号化対象のファイルF1、符号化処理により得られる符号化ファイルF2、符号化ファイルF2を伸長することにより得られる伸長ファイルF3等を格納する記憶部である。記憶部100cは、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
図3は、本実施例1に係る符号化部の構成の一例を示す図である。図3に示すように、この符号化部100aは、ファイルリード部101と、静的辞書情報102と、静的符号化部103とを有する。符号化部100aは、動的辞書情報104と、種別テーブル105と、動的符号化部106と、ファイルライト部107とを有する。
ファイルリード部101は、記憶部100cに格納された符号化対象となるファイルF1のコンテンツ部分のデータを読み出す処理部である。ファイルリード部101は、読み出したデータを、静的符号化部103に出力する。
図4は、静的辞書情報のデータ構造の一例を示す図である。静的辞書情報102は、出現頻度が閾値以上となる単語に対する静的符号を定義した静的辞書C2の情報を含む。図4に示すように、この静的辞書情報102は、2グラム、ビットマップ、ポインタ、基礎単語、静的符号を有する。このうち、2グラム、ビットマップ、ポインタ、基礎単語は、ビットフィルタC1に対応する。また、基礎単語、静的符号は、静的辞書C2に対応する。
2グラムは、2文字の文字列(あるいは単語)を示す情報である。ビットマップは、2グラムの文字列に対応するビットマップを示す。例えば、「aa」に対応するビットマップは「0_0_0_0_0」となる。ポインタは、ビットマップに対応する基礎単語の位置を示すポインタである。
基礎単語は、例えば、静的辞書C2に登録された高頻度の単語である。静的符号は、基礎単語に割り当てられた符号化データである。なお、静的辞書C2には、基礎単語、静的符号に加えて、文字列長、単語の出現頻度等の情報が含まれていても良い。
静的符号化部103は、ファイルリード部101のファイルF1のコンテンツのデータと、静的辞書情報102のビットフィルタC1とを比較して、ビットフィルタC1にヒットした単語を静的符号に置換する処理部である。静的符号化部103は、単語に対応する静的符号を、ファイルライト部107に出力する。
ここで、単語がビットフィルタC1にヒットするか否かを判定する静的符号化部103の処理の一例について説明する。例えば、静的符号化部103は、単語が「able△」である場合には、2グラム「ab」、「bl」、「le」、「e△」に対応するビットマップをそれぞれ組み合わせる。静的符号化部103は、ビットマップの各桁において、すべてのビットマップの値が0となっている場合には、組み合わせたビットマップの該当する桁を「0」とする。これに対して、静的符号化部103は、「1」が一つでも含まれる場合には該当する桁を「1」に設定することで、ビットマップを組み合わせる。
例えば、「ab」のビットマップが「1_0_0_0_0」、「bl」のビットマップが「0_1_0_0_0」、「le」のビットマップが「0_0_1_0_0」、「e△」のビットマップが「0_0_0_1_0」とする。この場合には、各ビットマップを組み合わせたビットマップは「1_1_1_1_0」となる。
静的符号化部103は、組み合わせたビットマップと、ビットフィルタC1のポインタとを比較して、ビットマップに対応するポインタが示す位置の基礎単語を特定する。静的符号化部103は、特定した基礎単語から順に、単語に対応する基礎単語を検索する。静的符号化部103は、単語と同一の基礎単語が存在する場合には、単語がビットフィルタC1にヒットしたと判定する。
図5は、動的辞書情報のデータ構造の一例を示す図である。動的辞書情報104は、図1に示した動的辞書に関する情報を含む。図5に示すように、この動的辞書情報104は、動的ビットフィルタD1と、動的辞書部D2と、バッファD3とを有する。
動的ビットフィルタD1は、2グラムと、ビットマップと、第1ポインタとを有する。動的辞書部D2は、動的辞書セグメント20~22を有する。各動的辞書セグメント20~22は、動的符号と、第2ポインタと、連鎖領域とを対応付ける。バッファD3は、動的符号により符号化される前の単語を格納する。
動的ビットフィルタD1の2グラムは、2文字の文字列(あるいは2つの単語)を示す情報である。ビットマップは、2グラムの文字列に対応するビットマップを示す。例えば、「aa」に対応するビットマップは「0_0_0_0_0」となる。第1ポインタは、ビットマップに対応する動的符号の位置を示すポインタである。ビットマップおよび第1ポインタに関するその他の説明は、図4に示したビットマップおよびポインタの説明と同様である。
動的辞書部D2の動的符号は、バッファD3に格納された単語に割り当てられた符号である。第2ポインタは、動的符号に対応する単語が格納されたバッファD3の位置を示す情報である。例えば、動的符号「A100h」に対応する第2ポインタは、バッファD32に格納された「Mickey」の先頭位置を示す。すなわち、単語「Mickey」は、動的符号「A100h」に動的符号化されていることを意味する。
動的辞書部D2の連鎖領域は、該当する文字列等がビットフィルタのポインタから連鎖しているか否かを示す情報である。該当する文字列等が連鎖していない場合には、連鎖領域に「NULL」が設定される。
図6は、種別テーブルのデータ構造の一例を示す図である。図6に示すように、この種別テーブル105は、テーブル105aと、コード割当ポインタ105bと、管理情報105cとを有する。テーブル105aは、アドレスと、位置情報と、ポインタとを対応付ける。アドレスは、該当の属性情報に対応する動的辞書セグメントに割り当てられたアドレスを示すものである。位置情報は、上述した単語が位置するカラムを示すものである。ポインタは、位置情報に対応する動的辞書セグメントの位置を示すものである。
コード割当ポインタ105bは、各動的辞書セグメントについて、動的辞書セグメントに割り当てられた動的符号のうち、未使用の動的符号の先頭を示すポインタである。例えば、図5に示した動的辞書セグメント21に関して説明を行う。動的辞書セグメント21には、動的符号「A100h~A1FFh」が割り当てられ、このうち、動的符号「A100h」、「A101h」、「A102h」のそれぞれが、「Mickey」、「Alice」、「Becky」の動的符号に割り当てられているものとする。この場合には、コード割当ポインタ105bには、動的符号「A103h」が設定される。他の動的辞書セグメントについても同様に、動的辞書セグメントに割り当てられた動的符号のうち、未使用の動的符号の先頭を示すポインタが設定される。
管理情報105cは、各動的辞書セグメントについて、動的辞書セグメントに割り当てられる単語の残りの数を管理する情報である。本実施例1に示す例では、各動的辞書セグメントに最大で「256個」の単語を登録するものとする。また、管理情報105cは、動的辞書に割り当てられていない動的符号の位置(未使用の位置)を示すポインタの情報を有する。
図3の説明に戻る。動的符号化部106は、静的符号化部103により静的符号が割り当てられなかった単語に対して動的符号を割り振り、動的符号化を行う処理部である。動的符号化部106は、単語に対応する動的符号を、ファイルライト部107に出力する。以下において、動的符号化部106の処理の一例について説明する。
まず、動的符号化部106が、動的辞書情報104に登録されていない単語を動的符号化する場合について説明する。動的符号化部106は、静的符号化部103から単語を取得すると、単語の位置情報と、種別テーブル105とを比較して、単語の位置情報に対応する動的辞書セグメントの位置を判定する。動的符号化部106は、判定した動的辞書セグメントに割り振られた動的符号のうち、他の単語に割り当てていない先頭の動的符号を、単語に割り当てる。また、動的符号化部106は、単語をバッファD3に格納し、単語を格納した位置に、第2ポインタを設定する。また、動的符号化部106は、動的ビットフィルタD1の第1ポインタを、単語に対応する動的符号の位置に合わせて更新する。
例えば、動的符号化部106が、動的辞書情報104に登録されていない単語「Mickey」を動的符号化する場合について説明する。動的符号化部106は、単語「Mickey」の位置情報「カラム21aに位置する単語」と、図6に示した種別テーブル105とを比較して、位置情報「カラム21aに位置する単語」に対応する動的辞書セグメント21の位置を判定する。
動的符号化部106は、動的辞書セグメント21に割り当てられた動的符号「A100h~A1FFh」のうち、他の単語が割り当てられていない先頭の動的符号を単語「Mickey」に割り当てる。図5に示す例では、動的符号化部106は、単語「Mickey」に動的符号「A100h」を割り当てる。動的符号化部106は、バッファD32に単語「Mickey」を格納し、格納した位置に、動的符号「A100h」に対応する第2ポインタを指定する。また、動的符号化部106は、動的ビットフィルタD1を更新する。動的符号化部106は、単語「Mickey」に割り当てられた動的符号「A100h」を、ファイルライト部107に出力する。
続いて、動的符号化部106が、動的辞書情報104に登録されている単語を動的符号化する場合について説明する。例えば、動的符号化部106は、下記の処理を行うことで、動的辞書情報104に、動的符号化の対象となる単語が登録されているか否かを判定する。動的符号化部106は、動的符号化の対象となる単語と、動的ビットフィルタD1とを比較して、第1ポインタに示される動的辞書部D2の位置を特定する。動的符号化部106は、特定した位置に該当する第2ポインタに示されるバッファD3の位置に、動的符号化の対象となる単語と同一の単語が格納されている場合に、動的辞書情報104に、動的符号化の対象となる単語が登録されているか否かを判定する。一方、動的符号化部106は、動的符号化の対象となる単語と同一の単語が格納されていない場合には、動的符号化の対象となる単語が登録されていないため、上記の処理を実行する。
例えば、動的符号化部106が、動的辞書情報104に登録されている単語「Mickey」を動的符号化する場合について説明する。動的符号化106は、単語「Mickey」と、動的ビットフィルタD1とを比較して、動的符号「A100h」の第2ポインタに示されるバッファD3の位置を参照すると、「Mickey」が格納されており、単語が一致する。このため、動的符号化部106は、「Mickey」に割り当てられた動的符号「A100h」を、ファイルライト部107に出力する。
ファイルライト部107は、単語に対応する静的符号および動的符号を取得し、取得した静的符号および動的符号を、符号化ファイルF2の符号化データ部2bに書き込む処理部である。ファイルライト部107は、静的符号および動的符号を符号化データ部2bに書き込む場合に、動的符号および静的符号に対応する単語の位置に対応付ける。
例えば、ファイルライト部107は、ファイルF1の1カラム目(カラム20a)の各単語に対応する符号は、符号化データの1カラム目(カラム20b)に格納する。ファイルライト部107は、ファイルF1の2カラム目(カラム21a)の各単語に対応する符号は、符号化データの2カラム目(21b)に格納する。ファイルライト部107は、ファイルF1の3カラム目(カラム22a)の各単語に対応する符号は、符号化データの3カラム目(カラム22b)に格納する。
また、ファイルライト部107は、ヘッダ部2aに、単語の出現頻度の情報を格納する。ファイルライト部107は、トレーラ部2cに、動的辞書情報104等を格納する。
図7は、本実施例1に係る伸長部の構成の一例を示す機能ブロック図である。図7に示すように、この伸長部100bは、ファイルリード部201と、オートマトン生成部202と、伸長処理部204と、ファイルライト部205とを有する。また、伸長部100bは、例えば、第1オートマトン203a、第2オートマトン203bを有する。
ファイルリード部201は、符号化ファイルF2の符号化データ部2bに格納された符号を読み出す処理部である。ファイルリード部201は、受付部の一例である。例えば、ファイルリード部201は、図示しない入力部から、抽出対象となる符号を指定された場合には、抽出対象となる符号を読み出し、伸長処理部204に出力する。
ファイルリード部201は、ヘッダ部2aに格納された単語の出現頻度の情報を読み出し、オートマトン生成部202に出力する。ファイルリード部201は、トレーラ部2cに格納された動的辞書情報104を読み出し、オートマトン生成部202に出力する。また、ファイルリード部201は、抽出対象となる符号の位置の情報を、オートマトン生成部202に出力する。抽出対象となる符号の位置の情報は、例えば、符号の位置が図1に示したカラム20b~22bのいずれに位置するのかを示す情報である。
オートマトン生成部202は、単語の出現頻度の情報を基にして、静的符号を単語に変換する第1オートマトン203aを生成する。また、オートマトン生成部202は、動的辞書情報104と、抽出対象となる符号の位置とを基にして、抽出対象となる符号の位置に対応する動的辞書を、動的辞書情報104から抽出する。オートマトン生成部202が抽出した動的辞書を、抽出動的辞書と表記する。オートマトン生成部202は、抽出動的辞書に設定された動的符号と単語との関係を基にして、動的符号を単語に変換する第2オートマトン203bを生成する。
例えば、オートマトン生成部202は、抽出対象となる符号の位置が符号化データのカラム20bに含まれる場合には、動的辞書セグメント20を抽出動的辞書として抽出する。オートマトン生成部202は、抽出対象となる符号の位置が符号化データのカラム21bに含まれる場合には、動的辞書セグメント21を抽出動的辞書として抽出する。オートマトン生成部203は、抽出対象となる符号の位置が符号化データのカラム22bに含まれる場合には、動的辞書セグメント22を抽出動的辞書として抽出する。
第1オートマトン203aは、静的符号と単語(高頻度単語)とを対応付けるオートマトンである。例えば、符号の先頭4ビットが「0h(0000)~9h(1001)」に含まれる場合には、第1オートマトン203aと、符号との比較により、単語が特定される。
第2オートマトン203bは、抽出動的辞書の動的符号と単語(低頻度単語)とを対応付けるオートマトンである。第2オートマトン203bは、抽出動的辞書に対応して生成される。
伸長処理部204は、ファイルリード部201から取得する符号と、第1オートマトン203aまたは第2オートマトン203bとを基にして、符号に対応する単語を特定する処理部である。例えば、伸長処理部204は、符号の先頭4ビットが「0h(0000)~9h(1001)」に含まれる場合には、第1オートマトン203aと、符号との比較により、符号に対応する単語(高頻度単語)を特定する。
伸長処理部204は、第1オートマトン203aにヒットしない符号については、第2オートマトン203bと、符号との比較により、単語(低頻度単語)を特定する。
伸長処理部204は、ファイルリード部201から読み出された符号に対して上記の処理を繰り返し実行することで、符号に対応する単語を順次特定し、特定した単語をファイルライト部205に出力する。
ファイルライト部205は、伸長処理部204から取得する復号化された単語を、伸長ファイルF3に格納する処理部である。
次に、本実施例1に係る符号化部100aの処理手順について説明する。図8は、本実施例1に係る符号化部の処理手順を示すフローチャートである。図8に示すように、符号化部100aのファイルリード部101は、符号化対象のファイルF1を、単語単位にリードする(ステップS101)。
符号化部100aの静的符号化部103は、単語が高頻度の単語であるか否かを判定する(ステップS102)。例えば、ステップS102において、静的符号化部103は、単語が静的辞書C2にヒットする場合には、単語が高頻度の単語であると判定する。
静的符号化部103は、単語が高頻度の単語である場合には(ステップS102,Yes)、静的辞書C2による符号化を行う(ステップS103)。静的符号化部103は、単語に対応する静的符号をファイルライト部107に出力し(ステップS104)、ステップS109に移行する。一方、静的符号化部103は、単語が高頻度の単語でない場合には(ステップS102,No)、ステップS105に移行する。
符号化部100aの動的符号化部106は、種別テーブル105を基にして、単語の位置に対応する動的辞書セグメントを、複数の動的辞書セグメントから判定する(ステップS105)。動的符号化部106は、判定した動的辞書セグメントの領域に単語を登録し、動的符号を割り当てる(ステップS106)。動的符号化部106は、動的辞書セグメントによる符号化を行い(ステップS107)、単語に対応する動的符号をファイルライト部107に出力する(ステップS108)。
ファイルライト部107は、符号(静的符号または動的符号)を符号化ファイルF2の符号化データ部2bに書き込む(ステップS109)。符号化部100aは、ファイルF1の終点であるか否かを判定する(ステップS110)。符号化部100aは、ファイルF1の終点でない場合には(ステップS110,No)、ステップS101に移行する。
ファイルライト部107は、ファイルF1の終点である場合には(ステップS110,Yes)、符号化ファイルF2のヘッダ部2aに単語の出現頻度の情報を格納し、トレーラ部2cに動的辞書情報104を格納する(ステップS111)。
次に、本実施例1に係る伸長部100bの処理手順について説明する。図9は、本実施例1に係る伸長部の処理手順を示すフローチャートである。図9に示すように、伸長部100bのファイルリード部201は、抽出対象の符号の指示を受け付ける(ステップS201)。
伸長部100bのオートマトン生成部202は、第1オートマトン203aを生成する(ステップS202)。オートマトン生成部202は、復号対象の符号の位置を基にして、第2オートマトン203bを生成する(ステップS203)。
ファイルリード部201は、符号化ファイルF2から復号対象の符号データを抽出する(ステップS204)。伸長部100bの伸長処理部204は、ファイルリード部201から、符号を取得する(ステップS205)。伸長処理部204は、符号の先頭4ビットの値と、第1オートマトン203aとを比較する(ステップS206)。伸長処理部204は、第1オートマトン203aにヒットした場合には(ステップS207,Yes)、第1オートマトン203aを選択する(ステップS208)。伸長処理部204は、第1オートマトン203aに基づいて、符号を単語に変換し(ステップS209)、ステップS211に移行する。
一方、伸長処理部204は、第1オートマトン203aにヒットしない場合には(ステップS207,No)、第2オートマトン203bに基づいて、符号を単語に変換する(ステップS210)。
伸長処理部204は、符号化ファイルF2の復号化が終了したか否かを判定する(ステップS211)。伸長処理部204は、符号化ファイルF2の復号化が終了していない場合には(ステップS211,No)、ステップS205に移行する。
伸長処理部204は、符号化ファイルF2の復号化が終了した場合には(ステップS211,Yes)、復号化したデータを伸長ファイルF3に書き込む(ステップS212)。
次に、本実施例1に情報処理装置100の効果について説明する。符号化部100aは、ファイルF1に含まれる単語の位置情報に対応する動的辞書セグメントを判定し、判定した動的辞書セグメントを用いて動的符号化を行う。これにより、単語と動的符号とを対応付けた動的辞書セグメントが、単語の位置情報により区別可能になるため、動的辞書を効率的に利用することができる。
例えば、単語/符号の位置情報により、動的符号に対応する単語が、各動的辞書セグメントに区別されて登録されるため、情報処理装置100は、抽出対象となる符号が指定されると、抽出対象となる符号に対応付けられた動的辞書セグメント(抽出動的辞書)を、動的辞書情報104から抽出する。かかる抽出動的辞書は、符号に関連したデータのみを有するため、抽出動的辞書のデータが冗長になることを抑止することができる。また、復号化を行う場合に、抽出対象の符号の位置に対応する抽出動的辞書に対応したオートマトンを利用することで復号化を効率的に実行することができる。
図10は、本実施例2に係る情報処理装置の抽出処理の一例を示す図である。情報処理装置は、符号化対象のファイルF1を読み出し、一部のカラムの情報を抽出して、動的辞書による動的符号化を行う。例えば、後述するように、本実施例2では、ファイルF1に含まれる情報のうち、カラム20a,21aを抽出して、動的符号化を行い、符号化ファイルF4を得る。
本実施例2で説明するファイルF1は、複数の単語がデリミタで複数の列(カラム)に区切られたファイルである。図10に示す例では、ファイルF1には、カラム20a,21a,22aが含まれる。カラム20aには、単語「商品番号」、「1242」、「2342」、「3324」が含まれる。カラム21aには、単語「キャラクター名」「Mickey」、「Alice」、「Becky」が含まれる。カラム22aには、単語「単価」、「50」、「500」、「450」が含まれる。
情報処理装置は、ファイルF1から、抽出対象となる情報を読み出し、静的辞書にヒットする単語については、静的符号に置き換える処理を実行する。一方、情報処理装置は、静的辞書にヒットしない単語については、動的辞書を用いて、動的符号化を行う。情報処理装置は、単語の位置情報に対応する動的辞書の複数の動的辞書セグメントに単語を登録して、動的符号を割り振り、単語を動的符号に置き換える。
一例として、ファイルF1に含まれる単語「商品番号」、「キャラクター名」、「単価」はそれぞれ、静的辞書にヒットする単語であるとする。情報処理装置は、静的辞書にヒットした各単語を静的符号に変換する。ここでは説明の便宜上、単語「商品番号」、「キャラクター名」、「単価」に対応する静的符号をそれぞれ「(商品番号)」「(キャラクター名)」、「(単価)」と表記する。
図10に示す例では、各位置情報に対応する動的辞書セグメント20~22が存在する。図10では、各カラム20a~22aに対応する動的辞書セグメント20~22を示すが、他の位置情報に対応する動的辞書セグメントが存在していても良い。例えば、ファイルF1を列方向および行方向に分割し、各領域に対応する動的辞書を用いても良い。動的辞書セグメント20~22に関する説明は、図1に示した動的辞書セグメント20~22に関する説明と同様であるため、説明を省略する。
情報処理装置は、種別テーブル25を用いて、位置情報に対応する動的辞書セグメントを判定する。種別テーブル25は、位置情報とポインタとを対応付ける。ポインタは、位置情報に対応する動的辞書セグメントを示す情報である。例えば、位置情報が「カラム20aに位置する単語」の場合には、ポインタは動的辞書セグメント20の位置を示す。位置情報が「カラム21aに位置する単語」の場合には、ポインタは動的辞書セグメント21の位置を示す。位置情報が「カラム22aに位置する単語」の場合には、ポインタは動的辞書セグメント22の位置を示す。なお、図10の説明では、カラム22aに位置する単語は、抽出対象から除外されるため、動的辞書セグメント22は、使用されない。
ファイルF1のカラム20aに位置する各単語「1242」、「2342」、「3324」を静的辞書にヒットしない単語とする。情報処理装置は、属性情報「カラム20aに位置する単語」に対応する動的辞書セグメント20を、動的辞書セグメント20~22から判定する。情報処理装置は、各単語「1242」、「2342」、「3324」に各動的符号「A000h」、「A001h」、「A002h」をそれぞれ割り当てることで、動的符号化を行う。ファイルF1から抽出されたカラム20aの情報は、符号化データ20bに変換される。
ファイルF1のカラム21aに位置する各単語「Mickey」、「Alice」、「Becky」を静的辞書にヒットしない単語とする。情報処理装置は、属性情報「カラム21aに位置する単語」に対応する動的辞書セグメント21を、動的辞書セグメント20~22から判定する。情報処理装置は、各単語「Mickey」、「Alice」、「Becky」に各動的符号「A100h」、「A101h」、「A102h」をそれぞれ割り当てることで、動的符号化を行う。ファイルF1から抽出されたカラム21aの情報は、符号化データ21bに変換される。
情報処理装置は、上記の処理を実行することで、ファイルF1を符号化ファイルF4に符号化する。符号化ファイルF4には、ヘッダ部4aと、符号化データ部4bと、トレーラ部4cとが含まれる。ヘッダ部4aには、単語の出現頻度の情報等が含まれる。符号化データ部4bには、情報処理装置が生成した符号化データ20b、21bが格納される。トレーラ部4cには、動的辞書セグメント20、21の情報等が含まれる。
本実施例2に係る情報処理装置は、ファイルF1に含まれる情報のうち、抽出対象となるカラムの単語を抽出し、位置情報に対応する動的辞書セグメントを用いて動的符号化を行うことで、符号化ファイルF4を生成する。このため、符号化ファイルF4の送信先にとって必要なカラムの情報のみを、送信先に通知することができる。例えば、送信先のサーバが、商品番号に対応する単価の情報を予め保持している場合には、カラム22aに含まれる単価の情報を、サーバに通知しなくても、商品番号の情報のみ通知すれば、通知した商品番号に対応する単価をサーバ側で判定することができる。
また、抽出対象外のカラムの符号化データや、抽出対象外のカラムを復号する動的辞書セグメントを、符号化ファイルF4に格納しないので、符号化ファイルF4のデータ量を削減することができる。
図11は、本実施例2に係る抽出部の構成の一例を示す図である。一例として、この抽出部150は、図2に示した情報処理装置100に含まれるものとする。図11に示すように、抽出部150は、ファイルリード部151と、静的辞書情報152と、動的辞書情報153と、種別テーブル154と、抽出処理部155と、ファイルライト部156とを有する。
ファイルリード部151は、記憶部100cに格納された符号化対象となるファイルF1のコンテンツ部分のデータを読み出す処理部である。ファイルリード部101は、読み出したデータを、抽出処理部155に出力する。
静的辞書情報152、動的辞書情報153、種別テーブル154に関する説明は、実施例1で説明した静的辞書情報102、動的辞書情報104、種別テーブル105に関する説明と同様であるため、説明を省略する。
抽出処理部155は、ファイルF1のコンテンツ部分のデータのうち、抽出対象となるカラムの各単語を抽出し、符号化を行う。抽出対象となる情報(カラム)は、予め、抽出処理部155に設定されていても良いし、外部装置から通知されたものを利用しても良い。抽出処理部155は、抽出対象となる各単語のうち、静的辞書情報152にヒットする単語については、静的符号化を行う。抽出処理部155が行う静的符号化の処理は、実施例1で説明した静的符号化部103の静的符号化と同様である。
抽出処理部155は、抽出対象となる各単語のうち、静的辞書情報152にヒットしない単語については、単語の位置情報を基にして、動的符号化を行う。抽出処理部155が行う動的符号化の処理は、実施例1で説明した動的符号化部106の処理と同様である。ただし、抽出処理部155による動的符号化は、抽出対象外の単語に対しては実行されない。
抽出処理部155は、抽出対象となるカラムの各単語の符号化結果(静的符号および動的符号)を、ファイルライト部156に出力する。
ファイルライト部156は、単語に対応する静的符号および動的符号を取得し、取得した静的符号および動的符号を、符号化ファイルF4の符号化データ部4bに書き込む処理部である。ファイルライト部156は、静的符号および動的符号を符号化データ部4bに書き込む場合に、動的符号および静的符号に対応する単語の位置に対応付ける。
また、ファイルライト部156は、ヘッダ部4aに、単語の出現頻度の情報を格納する。ファイルライト部156は、抽出対象となる単語を符号化する場合に用いた動的辞書の情報を、トレーラ部4cに格納する。
図12は、本実施例2に係る抽出部の処理手順を示すフローチャートである。図12に示すように、抽出部150のファイルリード部151は、符号化対象のファイルF1のうち、抽出対象のカラムに含まれる単語を単語単位に抽出する(ステップS301)。
抽出部150の抽出処理部155は、単語が高頻度の単語であるか否かを判定する(ステップS302)。例えば、ステップS302において、抽出処理部155は、単語が静的辞書C2にヒットする場合には、単語が高頻度の単語であると判定する。
抽出処理部155は、単語が高頻度の単語である場合には(ステップS302,Yes)、静的辞書C2による符号化を行う(ステップS303)。抽出処理部155は、単語に対応する静的符号をファイルライト部156に出力し(ステップS304)、ステップS309に移行する。一方、抽出処理部155は、単語が高頻度の単語でない場合には(ステップS302,No)、ステップS305に移行する。
抽出処理部155は、種別テーブル154を基にして、単語の位置に対応する動的辞書セグメントを、複数の動的辞書セグメントから判定する(ステップS305)。抽出処理部155は、判定した動的辞書セグメントの領域に単語を登録し、動的符号を割り当てる(ステップS306)。抽出処理部155は、動的辞書による符号化を行い(ステップS307)、単語に対応する動的符号をファイルライト部156に出力する(ステップS308)。
ファイルライト部156は、符号(静的符号または動的符号)を符号化ファイルF4の符号化データ部4bに書き込む(ステップS309)。抽出部150は、ファイルF1の抽出対象の抽出が終了したか否かを判定する(ステップS310)。抽出部150は、抽出が終了していない場合には(ステップS310,No)、ステップS301に移行する。
ファイルライト部156は、抽出が終了した場合には(ステップS310,Yes)、符号化ファイルF4のヘッダ部4aに単語の出現頻度の情報を格納し、トレーラ部4cに動的符号化で用いた動的辞書のみを格納する(ステップS311)。
上記のように、抽出部150は、ファイルF1に含まれる情報のうち、抽出対象となるカラムの単語を抽出し、位置情報に対応する動的辞書セグメントを用いて動的符号化を行うことで、符号化ファイルF4を生成する。このため、符号化ファイルF4の送信先にとって必要なカラムの情報のみを、送信先に通知することができる。例えば、送信先のサーバが、商品番号に対応する単価の情報を予め保持している場合には、カラム22aに含まれる単価の情報を、サーバに通知しなくても、商品番号の情報のみ通知すれば、通知した商品番号に対応する単価をサーバ側で判定することができる。
下記に、本実施形態に用いられるハードウェア及びソフトウェアについて説明する。図13は、コンピュータのハードウェア構成例を示す。コンピュータ400は、例えば、プロセッサ401、RAM(Random Access Memory)402、ROM(Read Only Memory)403、ドライブ装置404、記憶媒体405、入力インターフェース(I/F)406、入力デバイス407、出力インターフェース(I/F)408、出力デバイス409、通信インターフェース(I/F)410、SAN(Storage Area Network)インターフェース(I/F)411およびバス412などを含む。それぞれのハードウェアはバス412を介して接続されている。
RAM402は読み書き可能なメモリ装置であって、例えば、SRAM(Static RAM)やDRAM(Dynamic RAM)などの半導体メモリ、またはRAMでなくてもフラッシュメモリなどが用いられる。ROM403は、PROM(Programmable ROM)なども含む。ドライブ装置404は、記憶媒体405に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体405は、ドライブ装置404によって書き込まれた情報を記憶する。記憶媒体405は、例えば、ハードディスク、SSD(Solid State Drive)などのフラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスクなどの記憶媒体である。また、例えば、コンピュータ400は、複数種類の記憶媒体それぞれについて、ドライブ装置404及び記憶媒体405を設ける。
入力インターフェース406は、入力デバイス407と接続されており、入力デバイス407から受信した入力信号をプロセッサ401に伝達する回路である。出力インターフェース408は、出力デバイス409と接続されており、出力デバイス409に、プロセッサ401の指示に応じた出力を実行させる回路である。通信インターフェース410はネットワーク413を介した通信の制御を行なう回路である。通信インターフェース410は、例えばネットワークインターフェースカード(NIC)などである。SANインターフェース411は、ストレージエリアネットワークによりコンピュータ400と接続された記憶装置との通信の制御を行なう回路である。SANインターフェース411は、例えばホストバスアダプタ(HBA)などである。
入力デバイス407は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ400の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス409は、コンピュータ400の制御に応じて情報を出力する装置である。出力デバイス409は、例えば、ディスプレイなどの画像出力装置(表示デバイス)や、スピーカなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス407及び出力デバイス409として用いられる。また、入力デバイス407及び出力デバイス409は、コンピュータ400と一体になっていてもよいし、コンピュータ400に含まれず、例えば、コンピュータ400に外部から接続する装置であってもよい。
例えば、プロセッサ401は、ROM403や記憶媒体405に記憶されたプログラムをRAM402に読み出し、読み出されたプログラムの手順に従って符号化部100aの処理または伸張部100b、抽出部150の処理を行なう。その際にRAM402はプロセッサ401のワークエリアとして用いられる。記憶部100cの機能は、ROM403および記憶媒体405がプログラムファイル(後述のアプリケーションプログラム54、ミドルウェア53およびOS52など)やデータファイル(圧縮対象のファイルF1、圧縮された符号化ファイルF2など)を記憶し、RAM402がプロセッサ401のワークエリアとして用いられることによって実現される。プロセッサ401が読み出すプログラムについては、図14を用いて説明する。
図14は、コンピュータで動作するプログラムの構成例を示す。コンピュータ400において、図14に示すハードウェア群51(401~412)の制御を行なうOS(オペレーティング・システム)52が動作する。OS52に従った手順でプロセッサ401が動作して、ハードウェア群51の制御・管理が行なわれることにより、アプリケーションプログラム54やミドルウェア53に従った処理がハードウェア群51で実行される。さらに、コンピュータ400において、ミドルウェア53またはアプリケーションプログラム54が、RAM402に読み出されてプロセッサ401により実行される。
プロセッサ401が、符号化処理機能が呼び出された場合に、ミドルウェア53またはアプリケーションプログラム54の少なくとも一部に基づく処理を行なうことにより、(それらの処理をOS52に基づいてハードウェア群51を制御して)符号化部100aの機能が実現される。また、プロセッサ401が、伸張機能が呼び出された場合に、ミドルウェア53またはアプリケーションプログラム54の少なくとも一部に基づく処理を行なうことにより、(それらの処理をOS52に基づいてハードウェア群51を制御して)伸張部100bの機能が実現される。符号化処理機能および伸張機能は、それぞれアプリケーションプログラム54自体に含まれてもよいし、アプリケーションプログラム54に従って呼び出されることで実行されるミドルウェア53の一部であってもよい。プロセッサ401が、抽出処理機能が呼び出された場合に、ミドルウェア53またはアプリケーションプログラム54の少なくとも一部に基づく処理を行なうことにより、(それらの処理をOS52に基づいてハードウェア群51を制御して)抽出部150の機能が実現される。
図15は、実施形態のシステムにおける装置の構成例を示す。図15のシステムは、コンピュータ50a、コンピュータ50b、基地局60およびネットワーク413を含む。コンピュータ50aは、無線または有線の少なくとも一方により、コンピュータ50bと接続されたネットワーク413に接続している。
図2に示す符号化部100aと伸張部100bとは、図15に示すコンピュータ50aとコンピュータ50bとのいずれに含まれてもよい。コンピュータ50bが符号化部100aを含み、コンピュータ50aが伸張部100bを含んでもよいし、コンピュータ50aが符号化部100aを含み、コンピュータ50bが伸張部100bを含んでもよい。また、コンピュータ50aとコンピュータ50bとの双方が、符号化部100aおよび伸張部100bを備えてもよい。
以下、上述の実施形態における変形例の一部を説明する。下記の変形例のみでなく、本発明の本旨を逸脱しない範囲の設計変更は適宜行われうる。符号化処理の対象は、ファイル内のデータ以外にも、システムから出力される監視メッセージなどでもよい。例えば、バッファに順次格納される監視メッセージを上述の符号化処理により符号化し、ログファイルとして格納するなどの処理が行なわれる。また、例えば、データベース内のページ単位に符号化が行なわれてもよいし、複数のページをまとめた単位で符号化が行なわれてもよい。
また、上述の実施例1および実施例2においては、単語のテキストデータにおける位置の具体例として、複数の単語がデリミタで複数の列(カラム)に区切られたファイルにおけるカラム位置による説明を行った。このほかにも、テキストデータにおける位置としては、上述のカラム位置に限られず、段落や章などの区切りにより定義される位置や、先頭からの単語数に応じて定められる位置など、種々の位置情報を用いることができる。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
テキストデータに複数回出現する単語と符号とを対応付けた動的辞書を用いて前記テキストデータを符号化する、
処理を実行させる符号化プログラムであって、
前記符号化において前記動的辞書に登録される符号それぞれの前記動的辞書における登録先の領域は、前記符号に対応する単語の前記テキストデータにおける位置に対応付けられていることを特徴とする符号化プログラム。
(付記2)前記動的辞書は複数の動的辞書セグメントを含み、前記登録先の領域は、前記複数の動的辞書セグメントのいずれかであることを特徴とする付記1に記載の符号化プログラム。
(付記3)前記動的辞書における登録先の領域は、前記符号に対応する単語の前記テキストデータにおける規則性に関連付けられていることを特徴とする付記1に記載の符号化プログラム。
(付記4)コンピュータに、
テキストデータに複数回出現する単語と符号とを対応付けた動的辞書であって、前記動的辞書は複数の動的辞書セグメントを含み、各動的辞書セグメントは、符号に対応する単語のテキストデータにおける位置に関連付けられ、
前記動的辞書を用いて前記テキストデータを符号化した符号化ファイルの入力を受け付け、
前記符号化ファイルについて、抽出対象となる符号の指示を受け付けた場合に、前記複数の動的辞書セグメントから、抽出対象の符号に対応付けられた動的辞書セグメントを抽出した抽出動的辞書を生成する
処理を実行させることを特徴とする動的辞書の生成プログラム。
(付記5)前記抽出動的辞書を基にして、抽出対象となる符号と動的辞書の単語とを対応付けたオートマトンを生成し、生成したオートマトンを基にして、前記抽出対象となる符号を単語に置換する処理を実行することを特徴とする付記4に記載の動的辞書の生成プログラム。
(付記6)テキストデータに複数回出現する単語と符号とを対応付けた動的辞書を用いて前記テキストデータを符号化する、
処理をコンピュータが実行する符号化方法であって、
前記符号化において前記動的辞書に登録される符号それぞれの前記動的辞書における登録先の領域は、前記符号に対応する単語の前記テキストデータにおける位置に対応付けられていることを特徴とする符号化方法。
(付記7)前記動的辞書における登録先の領域は、前記符号に対応する単語の前記テキストデータにおける規則性に関連付けられていることを特徴とする付記6に記載の符号化方法。
(付記8)コンピュータが実行する動的辞書の生成方法であって、
テキストデータに複数回出現する単語と符号とを対応付けた動的辞書であって、前記動的辞書は複数の動的辞書セグメントを含み、各動的辞書セグメントは、符号に対応する単語のテキストデータにおける位置に関連付けられ、
前記動的辞書を用いて前記テキストデータを符号化した符号化ファイルの入力を受け付け、
前記符号化ファイルについて、抽出対象となる符号の指示を受け付けた場合に、前記複数の動的辞書セグメントから、抽出対象の符号に対応付けられた動的辞書セグメントを抽出した抽出動的辞書を生成する
処理を実行することを特徴とする動的辞書の生成方法。
(付記9)前記抽出動的辞書を基にして、抽出対象となる符号と動的辞書の単語とを対応付けたオートマトンを生成し、生成したオートマトンを基にして、前記抽出対象となる符号を単語に置換する処理を実行することを特徴とする付記7に記載の動的辞書の生成方法。
(付記10)テキストデータに複数回出現する単語と符号とを対応付けた動的辞書を用いて前記テキストデータを符号化する処理を実行する符号化部を有し、
前記符号化において前記動的辞書に登録される符号それぞれの前記動的辞書における登録先の領域は、前記符号に対応する単語の前記テキストデータにおける位置に対応付けられていることを特徴とする符号化装置。
(付記11)前記動的辞書における登録先の領域は、前記符号に対応する単語の前記テキストデータにおける規則性に関連付けられていることを特徴とする付記10に記載の符号化装置。
(付記12)テキストデータに複数回出現する単語と符号とを対応付けた動的辞書であって、前記動的辞書は複数の動的辞書セグメントを含み、各動的辞書セグメントは、符号に対応する単語のテキストデータにおける位置に関連付けられ、
前記動的辞書を用いて前記テキストデータを符号化した符号化ファイルの入力を受け付ける受付部と、
前記符号化ファイルについて、抽出対象となる符号の指示を受け付けた場合に、前記複数の動的辞書セグメントから、抽出対象の符号に対応付けられた動的辞書セグメントを抽出した抽出動的辞書を生成する伸長処理部と
を有することを特徴とする復号化装置。
(付記13)前記伸長処理部は、前記抽出動的辞書を基にして、抽出対象となる符号と動的辞書の単語とを対応付けたオートマトンを生成し、生成したオートマトンを基にして、前記抽出対象となる符号を単語に置換する処理を実行することを特徴とする付記12に記載の復号化装置。
100 情報処理装置
100a 符号化部
100b 伸長部
100c 記憶部

Claims (3)

  1. コンピュータに、
    テキストデータに複数回出現する単語と符号とを対応付けた動的辞書であって、前記動的辞書は複数の動的辞書セグメントを含み、各動的辞書セグメントは、符号に対応する単語のテキストデータにおける位置に関連付けられ、
    前記動的辞書を用いて前記テキストデータを符号化した符号化ファイルの入力を受け付け、
    前記符号化ファイルについて、抽出対象となる符号の指示を受け付けた場合に、前記複数の動的辞書セグメントから、抽出対象の符号に対応付けられた動的辞書セグメントを抽出した抽出動的辞書を生成し、
    前記符号化ファイルの符号のうち、静的辞書に登録されていない符号について、前記抽出動的辞書に設定された符号と単語との関係を基にして、符号を単語に変換する
    処理を実行させることを特徴とする動的辞書の生成プログラム。
  2. コンピュータが実行する動的辞書の生成方法であって、
    テキストデータに複数回出現する単語と符号とを対応付けた動的辞書であって、前記動的辞書は複数の動的辞書セグメントを含み、各動的辞書セグメントは、符号に対応する単語のテキストデータにおける位置に関連付けられ、
    前記動的辞書を用いて前記テキストデータを符号化した符号化ファイルの入力を受け付け、
    前記符号化ファイルについて、抽出対象となる符号の指示を受け付けた場合に、前記複数の動的辞書セグメントから、抽出対象の符号に対応付けられた動的辞書セグメントを抽出した抽出動的辞書を生成し、
    前記符号化ファイルの符号のうち、静的辞書に登録されていない符号について、前記抽出動的辞書に設定された符号と単語との関係を基にして、符号を単語に変換する
    処理を実行することを特徴とする動的辞書の生成方法。
  3. テキストデータに複数回出現する単語と符号とを対応付けた動的辞書であって、前記動的辞書は複数の動的辞書セグメントを含み、各動的辞書セグメントは、符号に対応する単語のテキストデータにおける位置に関連付けられ、
    前記動的辞書を用いて前記テキストデータを符号化した符号化ファイルの入力を受け付ける受付部と、
    前記符号化ファイルについて、抽出対象となる符号の指示を受け付けた場合に、前記複数の動的辞書セグメントから、抽出対象の符号に対応付けられた動的辞書セグメントを抽出した抽出動的辞書を生成し、前記符号化ファイルの符号のうち、静的辞書に登録されていない符号について、前記抽出動的辞書に設定された符号と単語との関係を基にして、符号を単語に変換する伸長処理部と
    を有することを特徴とする復号化装置。
JP2017254256A 2017-12-28 2017-12-28 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置 Active JP7159557B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017254256A JP7159557B2 (ja) 2017-12-28 2017-12-28 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置
US16/191,899 US10404275B2 (en) 2017-12-28 2018-11-15 Non-transitory computer readable recording medium, encoding method, creating method, encoding device, and decoding device
EP22169415.1A EP4053730A1 (en) 2017-12-28 2018-11-20 Decoding program creating dynamic dictionary associating codes to words for extraction
EP18207223.1A EP3506126A1 (en) 2017-12-28 2018-11-20 Encoding program, creating program, encoding method, creating method, encoding device, and decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017254256A JP7159557B2 (ja) 2017-12-28 2017-12-28 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置

Publications (2)

Publication Number Publication Date
JP2019121861A JP2019121861A (ja) 2019-07-22
JP7159557B2 true JP7159557B2 (ja) 2022-10-25

Family

ID=64402062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017254256A Active JP7159557B2 (ja) 2017-12-28 2017-12-28 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置

Country Status (3)

Country Link
US (1) US10404275B2 (ja)
EP (2) EP4053730A1 (ja)
JP (1) JP7159557B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7074989B2 (ja) * 2018-08-31 2022-05-25 国立大学法人 筑波大学 データ圧縮器、データ圧縮方法、データ圧縮プログラム、データ解凍器、データ解凍方法、データ解凍プログラムおよびデータ圧縮解凍システム
JP6850068B2 (ja) 2019-06-28 2021-03-31 株式会社ファーストリテイリング ブランケット
CN118140470A (zh) * 2023-08-25 2024-06-04 深圳市锐明技术股份有限公司 数据通信方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017184200A (ja) 2016-03-31 2017-10-05 富士通株式会社 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
JP2017195447A (ja) 2016-04-18 2017-10-26 富士通株式会社 符号化処理プログラム、符号化処理装置、符号化処理方法、復号化処理プログラム、復号化処理装置および復号化処理方法
JP2017194803A (ja) 2016-04-19 2017-10-26 富士通株式会社 符号化プログラム、符号化装置および符号化方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870036A (en) 1995-02-24 1999-02-09 International Business Machines Corporation Adaptive multiple dictionary data compression
JP3277792B2 (ja) 1996-01-31 2002-04-22 株式会社日立製作所 データ圧縮方法および装置
JPH10260980A (ja) 1997-03-19 1998-09-29 Hitachi Ltd 圧縮検索方式
US6985965B2 (en) * 2000-11-16 2006-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Static information knowledge used with binary compression methods
JP2004013680A (ja) 2002-06-10 2004-01-15 Nec Corp 文字コード圧縮・復元装置および同方法
US8832043B2 (en) 2006-05-31 2014-09-09 International Business Machines Corporation Method and system for transformation of logical data objects for storage
JP5808360B2 (ja) 2013-04-08 2015-11-10 日本電信電話株式会社 文字列圧縮及び復元システム並びに方法
JP6550765B2 (ja) * 2015-01-28 2019-07-31 富士通株式会社 文字データ変換プログラム、文字データ変換装置および文字データ変換方法
JP6665679B2 (ja) * 2016-05-17 2020-03-13 富士通株式会社 復号化プログラム、復号化方法および復号化装置
JP2017126185A (ja) 2016-01-13 2017-07-20 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017184200A (ja) 2016-03-31 2017-10-05 富士通株式会社 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
JP2017195447A (ja) 2016-04-18 2017-10-26 富士通株式会社 符号化処理プログラム、符号化処理装置、符号化処理方法、復号化処理プログラム、復号化処理装置および復号化処理方法
JP2017194803A (ja) 2016-04-19 2017-10-26 富士通株式会社 符号化プログラム、符号化装置および符号化方法

Also Published As

Publication number Publication date
JP2019121861A (ja) 2019-07-22
US10404275B2 (en) 2019-09-03
US20190207625A1 (en) 2019-07-04
EP3506126A1 (en) 2019-07-03
EP4053730A1 (en) 2022-09-07

Similar Documents

Publication Publication Date Title
US9509334B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device and decompression device
JP6641857B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US10360183B2 (en) Encoding device, encoding method, decoding device, decoding method, and computer-readable recording medium
JP6531398B2 (ja) プログラム
US9793920B1 (en) Computer-readable recording medium, encoding device, and encoding method
JP6540308B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
JP7159557B2 (ja) 動的辞書の生成プログラム、動的辞書の生成方法および復号化装置
US9479195B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device
US10224958B2 (en) Computer-readable recording medium, encoding apparatus, and encoding method
CN106354746B (zh) 搜索方法和搜索设备
US11055328B2 (en) Non-transitory computer readable medium, encode device, and encode method
JP7210130B2 (ja) 符号化プログラム、符号化方法および符号化装置
US20170300542A1 (en) Encoding processing device, encoding processing method, decoding processing device, decoding processing method, and recording medium
US9219497B2 (en) Compression device, compression method, and recording medium
JP6540306B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
JP2020061641A (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220708

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220708

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220721

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220726

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220913

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220926

R150 Certificate of patent or registration of utility model

Ref document number: 7159557

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150