JP5966673B2 - 符号処理のためのプログラム及びデータ構造 - Google Patents
符号処理のためのプログラム及びデータ構造 Download PDFInfo
- Publication number
- JP5966673B2 JP5966673B2 JP2012145224A JP2012145224A JP5966673B2 JP 5966673 B2 JP5966673 B2 JP 5966673B2 JP 2012145224 A JP2012145224 A JP 2012145224A JP 2012145224 A JP2012145224 A JP 2012145224A JP 5966673 B2 JP5966673 B2 JP 5966673B2
- Authority
- JP
- Japan
- Prior art keywords
- character
- code
- data
- string
- node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
図3に本実施の形態に係る文節木におけるノード1つ分のデータ構造を示す。ノードのデータブロックは、符号(IDX)の領域と、文字出現番号の配列の領域と、カウンタ兼子ノード番号の配列の領域と、スパンド番号の領域と、文字出現数の領域とを含む。また、これとは別に、拡張カウンタ兼子ノード番号の配列数をカウントするための領域を有する。
本実施の形態では圧縮処理の処理速度を向上させるために、圧縮マップのデータ構造を変更する。
第3の実施の形態では、伸張処理の処理速度を向上させる。図56で示した処理では、根ノード(root)までノードを遡ることになるので、ノードの探索の処理回数が多くなっている。そこで、本実施の形態では、圧縮マップのデータ構造を変更すると共に、新たに階層情報及び伸張マップを生成して保持しておくものとする。このように追加のデータを保持するようになったとしても、追加で必要な容量は800KB程度であり、負担がそれほど増えるわけではない。なお、圧縮マップは、446KB程度である。
さらに、次の符号「0x0100」を読み出すと、圧縮マップから第2階層であることが特定されるので、第2階層の伸張文字オフセット「256」+(カレントノードの符号「0x0100」−階層内先頭符号「0x0100」)×2=「256」となるので、伸張マップの先頭から256バイトから2バイト分取り出す。そうすると、「AA」がさらに出力されることになる(図80[2])。
本実施の形態では実施の形態2及び3を統合する。また、伸張マップ及び階層情報において固定で且つ圧縮マップのデータから得られる情報については省略することで、メモリ使用量を削減する。
文字又は文字列に対応する符号を保持するための第1の領域と当該文字又は文字列の次に出現する文字の出現順番を各文字について保持するための第2の領域と前記文字又は文字列の次に出現する文字の出現順番に応じて出現回数又は当該出現回数が閾値を超えた場合に前記文字又は文字列と今回出現した文字とからなる文字列に対応する符号を保持するための第3の領域とを含むデータブロックを、使用される可能性のある各文字について生成し、
入力文字列に含まれる複数の文字のうち着目する文字又は文字列についてのデータブロックの第2の領域において前記入力文字列において前記着目する文字又は文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして出現回数が保持されており且つ当該出現回数が今回閾値を超えることになることを検出すると、前記第3の領域において当該出現順番のデータとして、前記着目する文字又は文字列と前記次に出現した文字とからなる第2の文字列に対応する符号を格納し、
前記第2の文字列についてのデータブロックを生成する
処理をコンピュータに実行させるためのプログラム。
前記入力文字列に含まれる複数の文字のうち着目する文字又は文字列についてのデータブロックの第2の領域において前記入力文字列において前記着目する文字又は文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして出現回数が保持されており且つ当該出現回数を増分しても閾値を超えないことを検出すると、前記次に出現した文字を、着目する文字に設定する
処理をさらに前記コンピュータに実行させるための付記1記載のプログラム。
前記入力文字列に含まれる複数の文字のうち着目する文字又は文字列についてのデータブロックの第2の領域において前記入力文字列において前記着目する文字又は文字列の次に出現した文字についての出現順番が保持されており且つ前記第3の領域において当該出現順番のデータとして前記着目する文字又は文字列と前記次に出現した文字とからなる第2の文字列に対応する符号が保持されていることを検出すると、当該第2の文字列を、着目する文字列に設定する
処理をさらに前記コンピュータに実行させるための付記1又は2記載のプログラム。
前記第3の領域が、所定出現順番までの領域に限定されており、
前記データブロックが、前記第3の領域の拡張領域を示すデータを保持する第4の領域をさらに含む、
付記1乃至3のいずれか1つ記載のプログラム。
前記入力文字列について生成された複数のデータブロックから、当該複数のデータブロックの各データブロックについて当該データブロックの第1の領域に保持されている符号及び第3の領域に保持されている符号を当該符号に対応する文字又は文字列のコードに基づき第2の符号に付与し直した状態における複数のデータブロックで表される木構造における第1階層の各データブロックについては最上位階層を表すデータと当該データブロックの第1の領域に保持されている第2の符号に対応する文字のコードとを対応付ける第1の対応付けデータと、前記状態における複数のデータブロックで表される木構造における第2階層以降の各データブロックについては当該データブロックの第1の領域に保持されている第2の符号と当該データブロックの第3の領域に保持されている第2の符号に関連付けられている前記次に出現する文字のコードとを対応付ける第2の対応付けデータとを含むデータを生成する生成処理
をさらに前記コンピュータに実行させるための付記1乃至4のいずれか1つ記載のプログラム。
前記第1の対応付けデータ及び前記第2の対応付けデータにおいて、
当該データブロックについて第3の領域において保持されている最も大きい第2の符号をさらに対応付けられている
付記5記載のプログラム。
文字又は文字列に対応する符号を保持するための第1の領域と当該文字又は文字列の次に出現する文字の出現順番を各文字について保持するための第2の領域と前記文字又は文字列の次に出現する文字の出現順番に応じて出現回数又は当該出現回数が閾値を超えた場合に前記文字又は文字列と今回出現した文字とからなる文字列に対応する符号を保持するための第3の領域とを含むデータブロックを、使用される可能性のある各文字と、既にデータブロックが生成されている、入力文字列内の文字又は文字列の次に所定の出現回数以上出現する文字とについて生成する第1生成処理と、
前記第1生成処理により生成された複数のデータブロックから、当該複数のデータブロックの各データブロックについて当該データブロックの第1の領域に保持されている符号及び第3の領域に保持されている符号を当該符号に対応する文字又は文字列のコードに基づき第2の符号に付与し直した状態における複数のデータブロックで表される木構造の第1階層の各データブロックについては最上位階層を表すデータ又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第1の領域に保持されている第2の符号に対応する文字のコードと階層番号とを対応付ける第1の対応付けデータと、前記状態における複数のデータブロックで表される木構造の第2階層以降の各データブロックについては当該データブロックの第1の領域に保持されている第2の符号又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第3の領域に保持されている第2の符号に関連付けられている前記次に出現する文字のコードと階層番号とを対応付ける第2の対応付けデータとを含むデータを生成する第2生成処理と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層に属する各データブロックの第1の領域に保持されている第2の符号に対応する文字列のコードを含む第1のデータを生成する第3生成処理と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層について当該階層内のデータブロック数と当該階層内のデータブロックの第1の領域に保持されている最小の第2の符号と前記第1のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付ける階層情報を生成する第4の生成処理と、
をコンピュータに実行させるためのプログラム。
文字又は文字列に対応する符号を保持するための第1の領域と当該文字又は文字列の次に出現する文字の出現順番を各文字について保持するための第2の領域と前記文字又は文字列の次に出現する文字の出現順番に応じて出現回数又は当該出現回数が閾値を超えた場合に前記文字又は文字列と今回出現した文字とからなる文字列に対応する符号を保持するための第3の領域とを含むデータブロックを各ノードのデータとして含む文節木のデータ構造。
文節木に対応するデータ構造であって、
前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられた
データ構造。
前記対応付けデータが、さらに当該ノードの子ノードの符号のうち最大の符号をさらに対応付けている付記9記載のデータ構造。
文節木に対応する第1のデータと、
前記文節木の各ノードに対応する文字又は文字列についての第2のデータと、
前記文節木の階層についての第3のデータと、
を有するデータ構造であって、
前記第1のデータにおいて、
前記文節木の各ノードについて、当該ノードの親ノードの符号又は当該ノードの子ノードの符号のうち最大の符号と、当該ノードで表される文字のコードと、当該ノードが所属する階層とを対応付けるデータが、各ノードの符号の順番に並べられており、
前記第2のデータは、
前記文節木の第2階層以降の各階層の各ノードについて当該ノードに対応する文字又は文字列のコードを当該ノードの符号の順に含み、
前記第3のデータは、
前記文節木の第2階層以降の各階層について、当該階層に属するノードの数と、当該階層に属するノードの符号のうち最小の符号と、前記第2のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付けるデータを含む
データ構造。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する処理と、
前記親ノードの符号が、参照している前記対応付けデータに対応するノードの符号となっており且つ前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記データ構造において探索する探索処理と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照処理と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照処理と、
前記探索処理と前記第1参照処理と前記第2参照処理とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ実施し、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する処理と、
を、コンピュータに実行させるための圧縮プログラム。
前記探索処理において、
前記データ構造の第1階層についての対応付けデータを参照している場合には、第2階層以降の対応付けデータを探索し、
前記データ構造の第2階層以降の階層についての対応付けデータを参照している場合には、参照している対応付けデータの符号より後ろの対応付けデータを探索する
付記12記載の圧縮プログラム。
前記対応付けデータが、さらに前記ノードの子ノードの符号のうち最大の符号をさらに対応付けており、
前記探索処理において、
前記データ構造の第1階層についての対応付けデータを参照している場合には、第2階層に属する最初の対応付けデータから、参照している対応付けデータに含まれる最大の符号の対応付けデータまでを探索し、
前記データ構造の第2階層以降の階層についての対応付けデータを参照している場合には、参照している対応付けデータの1つ前の対応付けデータに含まれる最大の符号の対応付けデータから、参照している対応付けデータに含まれる最大の符号の対応付けデータまでを探索する
付記12記載の圧縮プログラム。
前記対応付けデータが、さらに当該ノードの属する階層の階層番号をさらに対応付けており、
前記探索処理において、
前記データ構造において参照している対応データの階層番号の次の階層番号が対応付けられている対応付けデータを探索する
付記12記載の圧縮プログラム。
文節木に対応する第1のデータと前記文節木の階層についての第2のデータとを有するデータ構造であって、前記第1のデータにおいて、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードと、当該ノードが所属する階層とを対応付けデータが、各ノードの符号の順番に並べられており、前記第2のデータは、前記文節木の各階層について、当該階層に属するノードの数と、当該階層に属するノードの符号のうち最小の符号とを対応付けるデータを含む前記データ構造に含まれる前記第1のデータにおいて、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する処理と、
前記親ノードの符号が、参照している前記対応付けデータに対応するノードの符号となっており且つ前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記第2のデータにおいて、参照している対応付けデータに対応するノードの階層の1階層下の階層に属するノードの数及び前記最小の符号とから特定される範囲を前記第1のデータについて探索する探索処理と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照処理と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照処理と、
前記探索処理と前記第1参照処理と前記第2参照処理とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ実施し、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する処理と、
をコンピュータに実行させるための圧縮プログラム。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの子ノードの符号のうち最大の符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する処理と、
前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記データ構造において探索する探索処理と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照処理と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照処理と、
前記探索処理と前記第1参照処理と前記第2参照処理とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ実施し、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する処理と、
を、コンピュータに実行させ、
前記探索処理においては、
前記データ構造の第1階層についての対応付けデータを参照している場合には、第2階層に属する最初の対応付けデータから、参照している対応付けデータに含まれる最大の符号の対応付けデータまでを探索し、
前記データ構造の第2階層以降の階層についての対応付けデータを参照している場合には、参照している対応付けデータの1つ前の対応付けデータに含まれる最大の符号の対応付けデータから、参照している対応付けデータに含まれる最大の符号の対応付けデータまでを探索する
圧縮プログラム。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力符号のうち第1の符号の順番の対応付けデータを特定する処理と、
特定された前記対応付けデータに含まれる文字のコードをメモリに格納する格納処理と、
特定された前記対応付けデータに含まれる親ノードの符号が前記文節木の根ノード以外のノードの符号を示している場合には、当該親ノードの符号の対応付けデータを参照する参照処理と、
特定された前記対応付けデータに含まれる親ノードの符号が前記文節木の根ノードの符号を示している場合には、前記メモリに格納されている文字のコードを逆順に出力する出力処理と、
前記格納処理と前記参照処理と前記出力処理とを、前記入力符号のうち前記第1の符号より後ろの各符号について順番に実施する処理と、
を、コンピュータに実行させるための伸張プログラム。
文節木に対応する第1のデータと、
前記文節木の各ノードに対応する文字又は文字列についての第2のデータと、
前記文節木の階層についての第3のデータと、
を有し且つデータ格納部に格納されているデータ構造であって、
前記第1のデータにおいて、
前記文節木の各ノードについて、当該ノードが所属する階層の階層番号を含むエントリが、各ノードの符号の順番に並べられており、
前記第2のデータは、
前記文節木の各階層の各ノードについて当該ノードに対応する文字又は文字列を当該ノードの符号の順に含み、
前記第3のデータは、
前記文節木の各階層について、当該階層に属するノードの符号のうち最小の符号と、前記第2のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付けるデータを含む
前記データ構造に含まれる前記第1のデータにおいて、入力符号のうち第1の符号の順番のエントリを特定する処理と、
特定された前記エントリに含まれる階層番号に従って前記第3のデータにおいて前記最小の符号と前記オフセット値とを特定する特定処理と、
前記第2のデータから、特定された前記オフセット値に対して、特定された前記エントリの符号と特定された前記最小の符号との差に前記階層番号を乗じた値を加算することで得られる配置位置から前記階層番号分の文字又は文字列を読み出す読み出し処理と、
前記入力符号のうち前記第1の符号の後ろの第2の符号以降の各符号について、前記第1のデータにおけるエントリを特定し、前記特定処理と前記読み出し処理とを実施する処理と、
を、コンピュータに実行させるための伸張プログラム。
文節木に対応する第1のデータと、
前記文節木の各ノードに対応する文字又は文字列についての第2のデータと、
前記文節木の階層についての第3のデータと、
を有し且つデータ格納部に格納されているデータ構造であって、
前記第1のデータにおいて、
前記文節木の各ノードについて、当該ノードが所属する階層の階層番号を含むエントリが、各ノードの符号の順番に並べられており、
前記第2のデータは、
前記文節木の第2の階層以降の各階層の各ノードについて当該ノードに対応する文字列を当該ノードの符号の順に含み、
前記第3のデータは、
前記文節木の第2の階層以降の各階層について、当該階層に属するノードの符号のうち最小の符号と、前記第2のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付けるデータを含む
前記データ構造に含まれる前記第1のデータにおいて、入力符号のうち第1の符号の順番のエントリを特定する処理と、
特定された前記エントリが第1の階層におけるエントリであれば、特定された前記エントリの符号に対応する文字を出力する出力処理と、
特定された前記エントリが第2の階層以降のエントリであれば、特定された前記エントリに含まれる階層番号に従って前記第3のデータにおいて前記最小の符号と前記オフセット値とを特定する特定処理と、
前記第2のデータにおいて、特定された前記オフセット値に対して、特定された前記エントリの符号と特定された前記最小の符号との差に前記階層番号を乗じた値を加算することで得られる配置位置から前記階層番号分の文字又は文字列を読み出す読み出し処理と、
前記入力符号のうち前記第1の符号の後ろの第2の符号以降の各符号について、前記第1のデータにおけるエントリを特定し、前記出力処理と前記特定処理と前記読み出し処理とを実施する処理と、
を、コンピュータに実行させるためのプログラム。
文字又は文字列に対応する符号を保持するための第1の領域と当該文字又は文字列の次に出現する文字の出現順番を各文字について保持するための第2の領域と前記文字又は文字列の次に出現する文字の出現順番に応じて出現回数又は当該出現回数が閾値を超えた場合に前記文字又は文字列と今回出現した文字とからなる文字列に対応する符号を保持するための第3の領域とを含むデータブロックを、使用される可能性のある各文字について生成し、
入力文字列に含まれる複数の文字のうち着目する文字又は文字列についてのデータブロックの第2の領域において前記入力文字列において前記着目する文字又は文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして出現回数が保持されており且つ当該出現回数が今回閾値を超えることになることを検出すると、前記第3の領域において当該出現順番のデータとして、前記着目する文字又は文字列と前記次に出現した文字とからなる第2の文字列に対応する符号を格納し、
前記第2の文字列についてのデータブロックを生成する
処理がコンピュータにより実行される情報処理方法。
文字又は文字列に対応する符号を保持するための第1の領域と当該文字又は文字列の次に出現する文字の出現順番を各文字について保持するための第2の領域と前記文字又は文字列の次に出現する文字の出現順番に応じて出現回数又は当該出現回数が閾値を超えた場合に前記文字又は文字列と今回出現した文字とからなる文字列に対応する符号を保持するための第3の領域とを含むデータブロックを、使用される可能性のある各文字について生成する手段と、
入力文字列に含まれる複数の文字のうち着目する文字又は文字列についてのデータブロックの第2の領域において前記入力文字列において前記着目する文字又は文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして出現回数が保持されており且つ当該出現回数が今回閾値を超えることになることを検出すると、前記第3の領域において当該出現順番のデータとして、前記着目する文字又は文字列と前記次に出現した文字とからなる第2の文字列に対応する符号を格納する手段と、
前記第2の文字列についてのデータブロックを生成する手段と、
を有する情報処理装置。
文字又は文字列に対応する符号を保持するための第1の領域と当該文字又は文字列の次に出現する文字の出現順番を各文字について保持するための第2の領域と前記文字又は文字列の次に出現する文字の出現順番に応じて出現回数又は当該出現回数が閾値を超えた場合に前記文字又は文字列と今回出現した文字とからなる文字列に対応する符号を保持するための第3の領域とを含むデータブロックを、使用される可能性のある各文字と、既にデータブロックが生成されている、入力文字列内の文字又は文字列の次に所定の出現回数以上出現する文字とについて生成する第1生成処理と、
前記第1生成処理により生成された複数のデータブロックから、当該複数のデータブロックの各データブロックについて当該データブロックの第1の領域に保持されている符号及び第3の領域に保持されている符号を当該符号に対応する文字又は文字列のコードに基づき第2の符号に付与し直した状態における複数のデータブロックで表される木構造の第1階層の各データブロックについては最上位階層を表すデータ又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第1の領域に保持されている第2の符号に対応する文字のコードと階層番号とを対応付ける第1の対応付けデータと、前記状態における複数のデータブロックで表される木構造の第2階層以降の各データブロックについては当該データブロックの第1の領域に保持されている第2の符号又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第3の領域に保持されている第2の符号に関連付けられている前記次に出現する文字のコードと階層番号とを対応付ける第2の対応付けデータとを含むデータを生成する第2生成処理と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層に属する各データブロックの第1の領域に保持されている第2の符号に対応する文字列のコードを含む第1のデータを生成する第3生成処理と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層について当該階層内のデータブロック数と当該階層内のデータブロックの第1の領域に保持されている最小の第2の符号と前記第1のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付ける階層情報を生成する第4の生成処理と、
がコンピュータにより実行される情報処理方法。
文字又は文字列に対応する符号を保持するための第1の領域と当該文字又は文字列の次に出現する文字の出現順番を各文字について保持するための第2の領域と前記文字又は文字列の次に出現する文字の出現順番に応じて出現回数又は当該出現回数が閾値を超えた場合に前記文字又は文字列と今回出現した文字とからなる文字列に対応する符号を保持するための第3の領域とを含むデータブロックを、使用される可能性のある各文字と、既にデータブロックが生成されている、入力文字列内の文字又は文字列の次に所定の出現回数以上出現する文字とについて生成する手段と、
前記第1生成手段により生成された複数のデータブロックから、当該複数のデータブロックの各データブロックについて当該データブロックの第1の領域に保持されている符号及び第3の領域に保持されている符号を当該符号に対応する文字又は文字列のコードに基づき第2の符号に付与し直した状態における複数のデータブロックで表される木構造の第1階層の各データブロックについては最上位階層を表すデータ又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第1の領域に保持されている第2の符号に対応する文字のコードと階層番号とを対応付ける第1の対応付けデータと、前記状態における複数のデータブロックで表される木構造の第2階層以降の各データブロックについては当該データブロックの第1の領域に保持されている第2の符号又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第3の領域に保持されている第2の符号に関連付けられている前記次に出現する文字のコードと階層番号とを対応付ける第2の対応付けデータとを含むデータを生成する手段と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層に属する各データブロックの第1の領域に保持されている第2の符号に対応する文字列のコードを含む第1のデータを生成する手段と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層について当該階層内のデータブロック数と当該階層内のデータブロックの第1の領域に保持されている最小の第2の符号と前記第1のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付ける階層情報を生成する手段と、
を有する情報処理装置。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する処理と、
前記親ノードの符号が、参照している前記対応付けデータに対応するノードの符号となっており且つ前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記データ構造において探索する探索処理と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照処理と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照処理と、
前記探索処理と前記第1参照処理と前記第2参照処理とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ実施し、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する処理と、
が、コンピュータにより実行される圧縮方法。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する手段と、
前記親ノードの符号が、参照している前記対応付けデータに対応するノードの符号となっており且つ前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記データ構造において探索する探索手段と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照手段と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照手段と、
前記探索手段と前記第1参照手段と前記第2参照手段とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ動作させ、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する手段と、
を有する情報処理装置。
文節木に対応する第1のデータと前記文節木の階層についての第2のデータとを有するデータ構造であって、前記第1のデータにおいて、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードと、当該ノードが所属する階層とを対応付けデータが、各ノードの符号の順番に並べられており、前記第2のデータは、前記文節木の各階層について、当該階層に属するノードの数と、当該階層に属するノードの符号のうち最小の符号とを対応付けるデータを含む前記データ構造に含まれる前記第1のデータにおいて、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する処理と、
前記親ノードの符号が、参照している前記対応付けデータに対応するノードの符号となっており且つ前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記第2のデータにおいて、参照している対応付けデータに対応するノードの階層の1階層下の階層に属するノードの数及び前記最小の符号とから特定される範囲を前記第1のデータについて探索する探索処理と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照処理と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照処理と、
前記探索処理と前記第1参照処理と前記第2参照処理とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ実施し、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する処理と、
が、コンピュータにより実行される圧縮方法。
文節木に対応する第1のデータと前記文節木の階層についての第2のデータとを有するデータ構造であって、前記第1のデータにおいて、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードと、当該ノードが所属する階層とを対応付けデータが、各ノードの符号の順番に並べられており、前記第2のデータは、前記文節木の各階層について、当該階層に属するノードの数と、当該階層に属するノードの符号のうち最小の符号とを対応付けるデータを含む前記データ構造に含まれる前記第1のデータにおいて、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する手段と、
前記親ノードの符号が、参照している前記対応付けデータに対応するノードの符号となっており且つ前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記第2のデータにおいて、参照している対応付けデータに対応するノードの階層の1階層下の階層に属するノードの数及び前記最小の符号とから特定される範囲を前記第1のデータについて探索する探索手段と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照手段と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照手段と、
前記探索手段と前記第1参照手段と前記第2参照手段とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ動作させ、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する手段と、
を有する情報処理装置。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの子ノードの符号のうち最大の符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する処理と、
前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記データ構造において探索する探索処理と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照処理と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照処理と、
前記探索処理と前記第1参照処理と前記第2参照処理とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ実施し、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する処理と、
が、コンピュータにより実行され、
前記探索処理においては、
前記データ構造の第1階層についての対応付けデータを参照している場合には、第2階層に属する最初の対応付けデータから、参照している対応付けデータに含まれる最大の符号の対応付けデータまでを探索し、
前記データ構造の第2階層以降の階層についての対応付けデータを参照している場合には、参照している対応付けデータの1つ前の対応付けデータに含まれる最大の符号の対応付けデータから、参照している対応付けデータに含まれる最大の符号の対応付けデータまでを探索する
圧縮方法。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの子ノードの符号のうち最大の符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力文字列に含まれる第1の文字に対応する符号の対応付けデータを参照する手段と、
前記ノードで表される文字のコードが前記入力文字列において次に現れる第2の文字のコードとなっている対応付けデータを、前記データ構造において探索する探索手段と、
対応付けデータが検出された場合には、当該対応付けデータを参照する第1参照手段と、
対応付けデータが検出されない場合には、参照している前記対応付けデータの符号を出力し、前記第2の文字に対応する符号の対応付けデータを参照する第2参照手段と、
前記探索手段と前記第1参照手段と前記第2参照手段とを、前記入力文字列の最後の文字を処理するまで、前記第2の文字を前記入力文字列の文字の順に移動させつつ動作させ、前記入力文字の最後の文字を処理した後に、参照している前記対応付けデータの符号を出力する手段と、
を有し、
前記探索手段が、
前記データ構造の第1階層についての対応付けデータを参照している場合には、第2階層に属する最初の対応付けデータから、参照している対応付けデータに含まれる最大の符号の対応付けデータまでを探索し、
前記データ構造の第2階層以降の階層についての対応付けデータを参照している場合には、参照している対応付けデータの1つ前の対応付けデータに含まれる最大の符号の対応付けデータから、参照している対応付けデータに含まれる最大の符号の対応付けデータまでを探索する
情報処理装置。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力符号のうち第1の符号の順番の対応付けデータを特定する処理と、
特定された前記対応付けデータに含まれる文字のコードをメモリに格納する格納処理と、
特定された前記対応付けデータに含まれる親ノードの符号が前記文節木の根ノード以外のノードの符号を示している場合には、当該親ノードの符号の対応付けデータを参照する参照処理と、
特定された前記対応付けデータに含まれる親ノードの符号が前記文節木の根ノードの符号を示している場合には、前記メモリに格納されている文字のコードを逆順に出力する出力処理と、
前記格納処理と前記参照処理と前記出力処理とを、前記入力符号のうち前記第1の符号より後ろの各符号について順番に実施する処理と、
が、コンピュータにより実行される伸張方法。
文節木に対応するデータ構造であって、前記文節木の各ノードについて、当該ノードの親ノードの符号と、当該ノードで表される文字のコードとを対応付ける対応付けデータが、各ノードの符号の順番に並べられたデータ構造において、入力符号のうち第1の符号の順番の対応付けデータを特定する手段と、
特定された前記対応付けデータに含まれる文字のコードをメモリに格納する格納処理手段と、
特定された前記対応付けデータに含まれる親ノードの符号が前記文節木の根ノード以外のノードの符号を示している場合には、当該親ノードの符号の対応付けデータを参照する参照手段と、
特定された前記対応付けデータに含まれる親ノードの符号が前記文節木の根ノードの符号を示している場合には、前記メモリに格納されている文字のコードを逆順に出力する出力手段と、
前記格納処理手段と前記参照手段と前記出力手段とを、前記入力符号のうち前記第1の符号より後ろの各符号について順番に動作させる手段と、
を有する情報処理装置。
文節木に対応する第1のデータと、
前記文節木の各ノードに対応する文字又は文字列についての第2のデータと、
前記文節木の階層についての第3のデータと、
を有し且つデータ格納部に格納されているデータ構造であって、
前記第1のデータにおいて、
前記文節木の各ノードについて、当該ノードが所属する階層の階層番号を含むエントリが、各ノードの符号の順番に並べられており、
前記第2のデータは、
前記文節木の各階層の各ノードについて当該ノードに対応する文字又は文字列を当該ノードの符号の順に含み、
前記第3のデータは、
前記文節木の各階層について、当該階層に属するノードの符号のうち最小の符号と、前記第2のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付けるデータを含む
前記データ構造に含まれる前記第1のデータにおいて、入力符号のうち第1の符号の順番のエントリを特定する処理と、
特定された前記エントリに含まれる階層番号に従って前記第3のデータにおいて前記最小の符号と前記オフセット値とを特定する特定処理と、
前記第2のデータから、特定された前記オフセット値に対して、特定された前記エントリの符号と特定された前記最小の符号との差に前記階層番号を乗じた値を加算することで得られる配置位置から前記階層番号分の文字又は文字列を読み出す読み出し処理と、
前記入力符号のうち前記第1の符号の後ろの第2の符号以降の各符号について、前記第1のデータにおけるエントリを特定し、前記特定処理と前記読み出し処理とを実施する処理と、
が、コンピュータにより実行される伸張方法。
文節木に対応する第1のデータと、
前記文節木の各ノードに対応する文字又は文字列についての第2のデータと、
前記文節木の階層についての第3のデータと、
を有し且つデータ格納部に格納されているデータ構造であって、
前記第1のデータにおいて、
前記文節木の各ノードについて、当該ノードが所属する階層の階層番号を含むエントリが、各ノードの符号の順番に並べられており、
前記第2のデータは、
前記文節木の各階層の各ノードについて当該ノードに対応する文字又は文字列を当該ノードの符号の順に含み、
前記第3のデータは、
前記文節木の各階層について、当該階層に属するノードの符号のうち最小の符号と、前記第2のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付けるデータを含む
前記データ構造に含まれる前記第1のデータにおいて、入力符号のうち第1の符号の順番のエントリを特定する手段と、
特定された前記エントリに含まれる階層番号に従って前記第3のデータにおいて前記最小の符号と前記オフセット値とを特定する特定手段と、
前記第2のデータから、特定された前記オフセット値に対して、特定された前記エントリの符号と特定された前記最小の符号との差に前記階層番号を乗じた値を加算することで得られる配置位置から前記階層番号分の文字又は文字列を読み出す読み出し手段と、
前記入力符号のうち前記第1の符号の後ろの第2の符号以降の各符号について、前記第1のデータにおけるエントリを特定し、前記特定手段と前記読み出し手段とを動作させる手段と、
を有する情報処理装置。
文節木に対応する第1のデータと、
前記文節木の各ノードに対応する文字又は文字列についての第2のデータと、
前記文節木の階層についての第3のデータと、
を有し且つデータ格納部に格納されているデータ構造であって、
前記第1のデータにおいて、
前記文節木の各ノードについて、当該ノードが所属する階層の階層番号を含むエントリが、各ノードの符号の順番に並べられており、
前記第2のデータは、
前記文節木の第2の階層以降の各階層の各ノードについて当該ノードに対応する文字列を当該ノードの符号の順に含み、
前記第3のデータは、
前記文節木の第2の階層以降の各階層について、当該階層に属するノードの符号のうち最小の符号と、前記第2のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付けるデータを含む
前記データ構造に含まれる前記第1のデータにおいて、入力符号のうち第1の符号の順番のエントリを特定する処理と、
特定された前記エントリが第1の階層におけるエントリであれば、特定された前記エントリの符号に対応する文字を出力する出力処理と、
特定された前記エントリが第2の階層以降のエントリであれば、特定された前記エントリに含まれる階層番号に従って前記第3のデータにおいて前記最小の符号と前記オフセット値とを特定する特定処理と、
前記第2のデータにおいて、特定された前記オフセット値に対して、特定された前記エントリの符号と特定された前記最小の符号との差に前記階層番号を乗じた値を加算することで得られる配置位置から前記階層番号分の文字又は文字列を読み出す読み出し処理と、
前記入力符号のうち前記第1の符号の後ろの第2の符号以降の各符号について、前記第1のデータにおけるエントリを特定し、前記出力処理と前記特定処理と前記読み出し処理とを実施する処理と、
が、コンピュータにより実行される伸張方法。
文節木に対応する第1のデータと、
前記文節木の各ノードに対応する文字又は文字列についての第2のデータと、
前記文節木の階層についての第3のデータと、
を有し且つデータ格納部に格納されているデータ構造であって、
前記第1のデータにおいて、
前記文節木の各ノードについて、当該ノードが所属する階層の階層番号を含むエントリが、各ノードの符号の順番に並べられており、
前記第2のデータは、
前記文節木の第2の階層以降の各階層の各ノードについて当該ノードに対応する文字列を当該ノードの符号の順に含み、
前記第3のデータは、
前記文節木の第2の階層以降の各階層について、当該階層に属するノードの符号のうち最小の符号と、前記第2のデータにおいて当該最小の第2の符号に対応する文字又は文字列の配置位置の、先頭からのオフセット値とを対応付けるデータを含む
前記データ構造に含まれる前記第1のデータにおいて、入力符号のうち第1の符号の順番のエントリを特定する手段と、
特定された前記エントリが第1の階層におけるエントリであれば、特定された前記エントリの符号に対応する文字を出力する出力手段と、
特定された前記エントリが第2の階層以降のエントリであれば、特定された前記エントリに含まれる階層番号に従って前記第3のデータにおいて前記最小の符号と前記オフセット値とを特定する特定手段と、
前記第2のデータにおいて、特定された前記オフセット値に対して、特定された前記エントリの符号と特定された前記最小の符号との差に前記階層番号を乗じた値を加算することで得られる配置位置から前記階層番号分の文字又は文字列を読み出す読み出し手段と、
前記入力符号のうち前記第1の符号の後ろの第2の符号以降の各符号について、前記第1のデータにおけるエントリを特定し、前記出力手段と前記特定手段と前記読み出し手段とを動作させる処理と、
を有する情報処理装置。
110 文節木生成部
120 圧縮マップ生成部
130 データ格納部
140 圧縮処理部
150 伸張処理部
160 入出力部
Claims (12)
- 分節木のデータ構造であって、前記分節木を構成する複数のノードそれぞれが、
特定の文字または文字列に対応する符号を保持する第1の領域と、
前記特定の文字または文字列の次に入力文字列において出現する文字の出現順番を複数の文字それぞれについて保持する第2の領域と、
前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現回数が特定の閾値を超えていない場合は前記出現回数を、前記出現回数が前記特定の閾値を超えた場合は前記特定の文字または文字列と前記特定の文字または文字列の次に前記入力文字列において出現した文字とからなる文字列に対応して生成される符号を、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現順番に応じて保持する第3の領域と、
を有することを特徴とする文節木のデータ構造。 - 特定の文字または文字列に対応する符号を保持する第1の領域と、前記特定の文字または文字列の次に入力文字列において出現する文字の出現順番を複数の文字それぞれについて保持する第2の領域と、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現回数が特定の閾値を超えていない場合は前記出現回数を、前記出現回数が前記特定の閾値を超えた場合は前記特定の文字または文字列と前記特定の文字または文字列の次に前記入力文字列において出現した文字とからなる文字列に対応して生成される符号を、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現順番に応じて保持する第3の領域とを含むデータブロックを、前記複数の文字それぞれについて生成し、
前記入力文字列において着目する文字または文字列についてのデータブロックの第2の領域において前記入力文字列において前記着目する文字または文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして出現回数が保持されており且つ当該出現回数が今回前記特定の閾値を超えることになることを検出すると、前記第3の領域において当該出現順番のデータとして、前記着目する文字または文字列と前記次に出現した文字とからなる第2の文字列に対応して生成された符号を格納し、
前記第2の文字列についてのデータブロックを生成する
処理をコンピュータに実行させるためのプログラム。 - 前記入力文字列において前記着目する文字または文字列についてのデータブロックの第2の領域において、前記入力文字列において前記着目する文字または文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして出現回数が保持されており且つ当該出現回数を増分しても前記特定の閾値を超えないことを検出すると、前記次に出現した文字を、着目する文字に設定する
処理をさらに前記コンピュータに実行させるための請求項2記載のプログラム。 - 前記入力文字列において前記着目する文字または文字列についてのデータブロックの第2の領域において、前記入力文字列において前記着目する文字又は文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして前記着目する文字または文字列と前記次に出現した文字とからなる第2の文字列に対応する符号が保持されていることを検出すると、当該第2の文字列を、着目する文字列に設定する
処理をさらに前記コンピュータに実行させるための請求項2又は3記載のプログラム。 - 前記第3の領域が、所定出現順番までの領域に限定されており、
前記データブロックが、前記第3の領域の拡張領域を示すデータを保持する第4の領域をさらに含む、
請求項2乃至4のいずれか1つ記載のプログラム。 - 前記入力文字列について生成された複数のデータブロックから、当該複数のデータブロックの各データブロックについて当該データブロックの第1の領域に保持されている符号及び第3の領域に保持されている符号を当該符号に対応する文字または文字列のコードに基づき第2の符号に付与し直した状態における複数のデータブロックで表される木構造における第1階層の各データブロックについては最上位階層を表すデータと当該データブロックの第1の領域に保持されている第2の符号に対応する文字のコードとを対応付ける第1の対応付けデータと、前記状態における複数のデータブロックで表される木構造における第2階層以降の各データブロックについては当該データブロックの親データブロックの第1の領域に保持されている第2の符号と当該データブロックで追加された文字のコードとを対応付ける第2の対応付けデータとを含むデータを生成する生成処理
をさらに前記コンピュータに実行させるための請求項2乃至5のいずれか1つ記載のプログラム。 - 前記第1の対応付けデータ及び前記第2の対応付けデータにおいて、
当該データブロックについて第3の領域において保持されている最も大きい第2の符号がさらに対応付けられている
請求項6記載のプログラム。 - 特定の文字または文字列に対応する符号を保持する第1の領域と、前記特定の文字または文字列の次に入力文字列において出現する文字の出現順番を複数の文字それぞれについて保持する第2の領域と、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現回数が特定の閾値を超えていない場合は前記出現回数を、前記出現回数が前記特定の閾値を超えた場合は前記特定の文字または文字列と前記特定の文字または文字列の次に前記入力文字列において出現した文字とからなる文字列に対応して生成される符号を、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現順番に応じて保持する第3の領域とを含むデータブロックを、前記複数の文字それぞれについてと、当該データブロックが生成された、前記入力文字列内の文字または文字列の次に前記特定の閾値以上の回数出現する文字とについて生成する第1生成処理と、
前記第1生成処理により生成された複数のデータブロックから、当該複数のデータブロックの各データブロックについて当該データブロックの第1の領域に保持されている符号及び第3の領域に保持されている符号を当該符号に対応する文字または文字列のコードに基づき第2の符号に付与し直した状態における複数のデータブロックで表される木構造の第1階層の各データブロックについては最上位階層を表すデータ又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第1の領域に保持されている第2の符号に対応する文字のコードと階層番号とを対応付ける第1の対応付けデータと、前記状態における複数のデータブロックで表される木構造の第2階層以降の各データブロックについては当該データブロックの親データブロックの第1の領域に保持されている第2の符号又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックで追加された文字のコードと階層番号とを対応付ける第2の対応付けデータとを含むデータを生成する第2生成処理と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層に属する各データブロックの第1の領域に保持されている第2の符号に対応する文字列のコードを含む第1のデータを生成する第3生成処理と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層について当該階層内のデータブロック数と当該階層内のデータブロックの第1の領域に保持されている最小の第2の符号と前記第1のデータにおいて当該最小の第2の符号に対応する文字列の配置位置の、先頭からのオフセット値とを対応付ける階層情報を生成する第4生成処理と、
をコンピュータに実行させるためのプログラム。 - 特定の文字または文字列に対応する符号を保持する第1の領域と、前記特定の文字または文字列の次に入力文字列において出現する文字の出現順番を複数の文字それぞれについて保持する第2の領域と、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現回数が特定の閾値を超えていない場合は前記出現回数を、前記出現回数が前記特定の閾値を超えた場合は前記特定の文字または文字列と前記特定の文字または文字列の次に前記入力文字列において出現した文字とからなる文字列に対応して生成される符号を、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現順番に応じて保持する第3の領域とを含むデータブロックを、前記複数の文字それぞれについて生成し、
前記入力文字列において着目する文字または文字列についてのデータブロックの第2の領域において前記入力文字列において前記着目する文字または文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして出現回数が保持されており且つ当該出現回数が今回前記特定の閾値を超えることになることを検出すると、前記第3の領域において当該出現順番のデータとして、前記着目する文字または文字列と前記次に出現した文字とからなる第2の文字列に対応して生成された符号を格納し、
前記第2の文字列についてのデータブロックを生成する
処理をコンピュータが実行する情報処理方法。 - 特定の文字または文字列に対応する符号を保持する第1の領域と、前記特定の文字または文字列の次に入力文字列において出現する文字の出現順番を複数の文字それぞれについて保持する第2の領域と、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現回数が特定の閾値を超えていない場合は前記出現回数を、前記出現回数が前記特定の閾値を超えた場合は前記特定の文字または文字列と前記特定の文字または文字列の次に前記入力文字列において出現した文字とからなる文字列に対応して生成される符号を、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現順番に応じて保持する第3の領域とを含むデータブロックを、前記複数の文字それぞれについて生成する手段と、
前記入力文字列において着目する文字または文字列についてのデータブロックの第2の領域において前記入力文字列において前記着目する文字または文字列の次に出現した文字についての出現順番が保持されており且つ第3の領域において当該出現順番のデータとして出現回数が保持されており且つ当該出現回数が今回前記特定の閾値を超えることになることを検出すると、前記第3の領域において当該出現順番のデータとして、前記着目する文字または文字列と前記次に出現した文字とからなる第2の文字列に対応して生成された符号を格納する手段と、
前記第2の文字列についてのデータブロックを生成する手段と、
を有する情報処理装置。 - 特定の文字または文字列に対応する符号を保持する第1の領域と、前記特定の文字または文字列の次に入力文字列において出現する文字の出現順番を複数の文字それぞれについて保持する第2の領域と、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現回数が特定の閾値を超えていない場合は前記出現回数を、前記出現回数が前記特定の閾値を超えた場合は前記特定の文字または文字列と前記特定の文字または文字列の次に前記入力文字列において出現した文字とからなる文字列に対応して生成される符号を、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現順番に応じて保持する第3の領域とを含むデータブロックを、前記複数の文字それぞれと、当該データブロックが生成された、前記入力文字列内の文字または文字列の次に前記特定の閾値以上の回数出現する文字とについて生成する第1生成処理と、
前記第1生成処理により生成された複数のデータブロックから、当該複数のデータブロックの各データブロックについて当該データブロックの第1の領域に保持されている符号及び第3の領域に保持されている符号を当該符号に対応する文字または文字列のコードに基づき第2の符号に付与し直した状態における複数のデータブロックで表される木構造の第1階層の各データブロックについては最上位階層を表すデータ又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第1の領域に保持されている第2の符号に対応する文字のコードと階層番号とを対応付ける第1の対応付けデータと、前記状態における複数のデータブロックで表される木構造の第2階層以降の各データブロックについては当該データブロックの親データブロックの第1の領域に保持されている第2の符号又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックで追加された文字のコードと階層番号とを対応付ける第2の対応付けデータとを含むデータを生成する第2生成処理と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層に属する各データブロックの第1の領域に保持されている第2の符号に対応する文字列のコードを含む第1のデータを生成する第3生成処理と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層について当該階層内のデータブロック数と当該階層内のデータブロックの第1の領域に保持されている最小の第2の符号と前記第1のデータにおいて当該最小の第2の符号に対応する文字列の配置位置の、先頭からのオフセット値とを対応付ける階層情報を生成する第4生成処理と、
をコンピュータが実行する情報処理方法。 - 特定の文字または文字列に対応する符号を保持する第1の領域と、前記特定の文字または文字列の次に入力文字列において出現する文字の出現順番を複数の文字それぞれについて保持する第2の領域と、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現回数が特定の閾値を超えていない場合は前記出現回数を、前記出現回数が前記特定の閾値を超えた場合は前記特定の文字または文字列と前記特定の文字または文字列の次に前記入力文字列において出現した文字とからなる文字列に対応して生成される符号を、前記特定の文字または文字列の次に前記入力文字列において出現した文字の出現順番に応じて保持する第3の領域とを含むデータブロックを、前記複数の文字それぞれと、当該データブロックが生成された、前記入力文字列内の文字または文字列の次に前記特定の閾値以上の回数出現する文字とについて生成する手段と、
生成された複数のデータブロックから、当該複数のデータブロックの各データブロックについて当該データブロックの第1の領域に保持されている符号及び第3の領域に保持されている符号を当該符号に対応する文字または文字列のコードに基づき第2の符号に付与し直した状態における複数のデータブロックで表される木構造の第1階層の各データブロックについては最上位階層を表すデータ又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックの第1の領域に保持されている第2の符号に対応する文字のコードと階層番号とを対応付ける第1の対応付けデータと、前記状態における複数のデータブロックで表される木構造の第2階層以降の各データブロックについては当該データブロックの親データブロックの第1の領域に保持されている第2の符号又は当該データブロックについて第3の領域に保持されている最も大きい第2の符号と当該データブロックで追加された文字のコードと階層番号とを対応付ける第2の対応付けデータとを含むデータを生成する手段と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層に属する各データブロックの第1の領域に保持されている第2の符号に対応する文字列のコードを含む第1のデータを生成する手段と、
前記状態における複数のデータブロックで表される木構造の第2階層以降の各階層について当該階層内のデータブロック数と当該階層内のデータブロックの第1の領域に保持されている最小の第2の符号と前記第1のデータにおいて当該最小の第2の符号に対応する文字列の配置位置の、先頭からのオフセット値とを対応付ける階層情報を生成する手段と、
を有する情報処理装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012145224A JP5966673B2 (ja) | 2012-06-28 | 2012-06-28 | 符号処理のためのプログラム及びデータ構造 |
US13/899,878 US9223809B2 (en) | 2012-06-28 | 2013-05-22 | Code processing technique |
EP15174629.4A EP2947778B1 (en) | 2012-06-28 | 2013-06-10 | Code processing technique |
EP13171211.9A EP2680445B1 (en) | 2012-06-28 | 2013-06-10 | Code processing technique |
CN201310269060.9A CN103532565B (zh) | 2012-06-28 | 2013-06-28 | 码处理技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012145224A JP5966673B2 (ja) | 2012-06-28 | 2012-06-28 | 符号処理のためのプログラム及びデータ構造 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015238737A Division JP6296044B2 (ja) | 2015-12-07 | 2015-12-07 | 符号処理のためのプログラム及びデータ構造 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014011538A JP2014011538A (ja) | 2014-01-20 |
JP5966673B2 true JP5966673B2 (ja) | 2016-08-10 |
Family
ID=48703132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012145224A Active JP5966673B2 (ja) | 2012-06-28 | 2012-06-28 | 符号処理のためのプログラム及びデータ構造 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9223809B2 (ja) |
EP (2) | EP2947778B1 (ja) |
JP (1) | JP5966673B2 (ja) |
CN (1) | CN103532565B (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9432342B1 (en) | 2011-03-08 | 2016-08-30 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9852311B1 (en) | 2011-03-08 | 2017-12-26 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9338220B1 (en) | 2011-03-08 | 2016-05-10 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9300637B1 (en) * | 2011-03-08 | 2016-03-29 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US11228566B1 (en) | 2011-03-08 | 2022-01-18 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9667741B1 (en) | 2011-03-08 | 2017-05-30 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US9413526B1 (en) | 2011-03-08 | 2016-08-09 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
US11575987B2 (en) * | 2017-05-30 | 2023-02-07 | Northeastern University | Underwater ultrasonic communication system and method |
CN110263043A (zh) * | 2019-06-24 | 2019-09-20 | 苏州睿威博科技有限公司 | 数据存储方法、数据查询方法、装置及存储介质 |
CN110502611B (zh) * | 2019-08-01 | 2022-04-12 | 武汉虹信科技发展有限责任公司 | 字符串检索方法和装置 |
CN111431537A (zh) * | 2020-03-06 | 2020-07-17 | 平安科技(深圳)有限公司 | 数据压缩方法、装置及计算机可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748953A (en) * | 1989-06-14 | 1998-05-05 | Hitachi, Ltd. | Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols |
US5254990A (en) * | 1990-02-26 | 1993-10-19 | Fujitsu Limited | Method and apparatus for compression and decompression of data |
JP2590287B2 (ja) * | 1990-03-13 | 1997-03-12 | 富士通株式会社 | データ圧縮方法およびデータ圧縮装置 |
JP2000151419A (ja) * | 1998-11-05 | 2000-05-30 | Asahi Chem Ind Co Ltd | データ圧縮方法およびデータ圧縮装置 |
DE10337825A1 (de) * | 2002-11-15 | 2004-06-03 | Siemens Ag | Verfahren zur Erzeugung eines Bitstroms aus einem Indizierungsbaum |
JP4456554B2 (ja) * | 2005-10-31 | 2010-04-28 | 富士通株式会社 | データ圧縮方法及び圧縮データ送信方法 |
JP5523144B2 (ja) * | 2010-02-25 | 2014-06-18 | キヤノン株式会社 | 情報処理装置及びその制御方法及びプログラム及び記憶媒体 |
JP5544998B2 (ja) * | 2010-04-12 | 2014-07-09 | 富士通株式会社 | テキスト処理装置、テキスト処理方法、およびテキスト処理プログラム |
-
2012
- 2012-06-28 JP JP2012145224A patent/JP5966673B2/ja active Active
-
2013
- 2013-05-22 US US13/899,878 patent/US9223809B2/en active Active
- 2013-06-10 EP EP15174629.4A patent/EP2947778B1/en active Active
- 2013-06-10 EP EP13171211.9A patent/EP2680445B1/en active Active
- 2013-06-28 CN CN201310269060.9A patent/CN103532565B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP2947778B1 (en) | 2017-06-07 |
EP2947778A1 (en) | 2015-11-25 |
EP2680445B1 (en) | 2018-12-26 |
JP2014011538A (ja) | 2014-01-20 |
US20140006457A1 (en) | 2014-01-02 |
EP2680445A2 (en) | 2014-01-01 |
EP2680445A3 (en) | 2015-01-07 |
CN103532565A (zh) | 2014-01-22 |
US9223809B2 (en) | 2015-12-29 |
CN103532565B (zh) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5966673B2 (ja) | 符号処理のためのプログラム及びデータ構造 | |
CN111460311A (zh) | 基于字典树的搜索处理方法、装置、设备和存储介质 | |
CN104283567B (zh) | 一种名称数据的压缩、解压缩方法及设备 | |
KR101655835B1 (ko) | 심볼 공간 기반의 패턴 압축을 위한 다층 시스템 | |
CN107924410A (zh) | 用于支持分层数据对象的高效路径导航的与分层数据对象的二进制编码相关的技术 | |
CN107967219A (zh) | 一种基于tcam的大规模字符串高速查找方法 | |
US20130226885A1 (en) | Path-decomposed trie data structures | |
CN108287877B (zh) | 一种rib渲染压缩文件fpga压缩/解压缩系统及硬件解压方法 | |
US8947272B2 (en) | Decoding encoded data | |
CN110263043A (zh) | 数据存储方法、数据查询方法、装置及存储介质 | |
CN102184205A (zh) | 基于可扩展精度混沌哈希的多模式串匹配算法 | |
CN101727499B (zh) | 一种存储单词库、及搜索单词的方法及系统 | |
JP6296044B2 (ja) | 符号処理のためのプログラム及びデータ構造 | |
JP5544998B2 (ja) | テキスト処理装置、テキスト処理方法、およびテキスト処理プログラム | |
CN112256821A (zh) | 中文地址补全的方法、装置、设备及存储介质 | |
Baron et al. | Antisequential suffix sorting for BWT-based data compression | |
CN113495901B (zh) | 一种面向可变长数据块的快速检索方法 | |
CN111737482B (zh) | 一种适用于数据挖掘的全景可视化图谱生成方法及装置 | |
JPH0936747A (ja) | データ圧縮方法及びデータ圧縮装置 | |
JP2001022766A (ja) | 多次元データベースの高速処理方法および装置 | |
CN109284393A (zh) | 一种针对家谱人物属性名称的融合方法 | |
JP5696132B2 (ja) | 部分的木構造に応じた適応型再構成装置及び方法及びプログラム | |
JP5245908B2 (ja) | 検索方法及び装置 | |
JP5808361B2 (ja) | 文字列圧縮及び復元システム並びに方法 | |
Cao et al. | Frequent statistics of link-layer bit stream data based on AC-IM algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150319 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150916 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151006 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151207 |
|
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: 20160607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160620 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5966673 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |