JP3553106B2 - テキスト圧縮駆動部構築方法及び入力テキスト列圧縮方法 - Google Patents
テキスト圧縮駆動部構築方法及び入力テキスト列圧縮方法 Download PDFInfo
- Publication number
- JP3553106B2 JP3553106B2 JP19458393A JP19458393A JP3553106B2 JP 3553106 B2 JP3553106 B2 JP 3553106B2 JP 19458393 A JP19458393 A JP 19458393A JP 19458393 A JP19458393 A JP 19458393A JP 3553106 B2 JP3553106 B2 JP 3553106B2
- Authority
- JP
- Japan
- Prior art keywords
- token
- wnm
- tokens
- wnms
- assigned
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- 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/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
本発明は、データ圧縮技法に一般に関し、特に多数の各種の語を有するテキストデータベースの圧縮に適切なテキスト圧縮技法に関する。
【0002】
【従来の技術】
コンピュータユーザは、手元で多量のテキストデータベースを扱うようになり、この傾向は、携帯用および手持ち式コンピュータ化装置が一層普及するにつれて続くものと思われる。圧縮比が主な問題である。というのは、入手する対象である参照作業の多くは時間がかかるからである。別の問題は、特定の列(ストリング)を探索するためにテキストを圧縮解除すべきかどうかという点である。多くの技法は、圧縮比に関しては効率的であるが、文脈に依存する( すなわち、テキストを探索すると圧縮解除が必要となり、一部分を圧縮解除すると他の無関係な部分の圧縮解除が必要となる) 。この余分な圧縮解除段階は探索プロセスを受入れできない程度までスローダウンすることがあるので、より高速( より高価) のハードウエアコンポーネントの使用が必要となる。
【0003】
かなり有望なことが判明しており、かつここ数年、多くの商用製品に使用されている1つの技法は、語−数マッパー( 「WNM」) と呼ばれるデータ構造を使用している。このWNMは、データベースにおいてトークンと呼ばれる、各個別の語と句読記号が割当てられる固有の数を有する表と、概念的にみなすことができる。かくして、この表は固有で双方向の語−数マッピングを提供する。実際のWNMは、高度に圧縮したデータ構造として実現される。
【0004】
データベースの圧縮は、下記のように一般に生じる。先ずテキストは、交互に生じる語と句読記号のトークンの順番列に分解され、そのトークンは蓄積されて表を構築する。この表は、たとえトークン型がテキストデータベースにおいて頻繁に生じても、各トークン型について1つだけのエントリを含む。第2のパスにおいてテキストはトークンに再び分解され、また各トークンは表中のその固有の数により符号化される。1つの体系において大部分のトークンは2バイト数として符号化されるが、一部は単一バイトとして符号化される。特定の例として、聖書は約13,000の異なるトークン型を有することが分かったし、一方、救済者の聖職の引照は約25,000の異なるトークン型を有することが分かった。
【0005】
圧縮解除は圧縮に対する逆のプロセスである。圧縮された列における数値コードは、最初にテキストの圧縮に使用された同一のWNMを使用して、対応する未圧縮のトークンに変換される。数値コードの列が圧縮プロセスで格納される仕方を考慮しなければならない。
【0006】
【発明が解決しようとする課題】
本発明は、比較的高度の圧縮比( より一般的な2.5:1に対して4:1のオーダー) により特徴づけられるテキスト圧縮技法を提供する。この技法は、テキストデータベースが非常に多数の別個のトークン型を含む場合に特に有用であり、また別個のトークン型数が特定のサイズコードにおいて符号化できる最大数を越えたならば幾つかの従来技術の技法は使用不能になったであろうという認識に部分的に基づいている。
【0007】
【課題を解決するための手段】
要するに本発明は、頻度で整列した階層構造において複数の語−数マッパーを利用する。WNMの集合の特定の構造は、特定の符号化体系により決まるが、下記のように要約できる。その集合における各WNMは、順序表示のWNM数と一般にWNM数の非増加関数であるWNMサイズ( トークンの最大数) とにより特徴づけらる。一定のトークンには数対が割り当てられ、第1の数はWNM数の1つであり、第2の数はそのWNMにおけるトークン位置すなわちトークン数である。一般的に、最も頻繁に生じるトークンは、小さい番号が付けられたWNMでマップされる。つまり、それらのトークンは短いコード( より少ないビット) により表すことができる。
【0008】
WNMの集合は、圧縮されるデータベースを通る第1のパス上に生成される。そのデータベースはトークンに分解され、また発生頻度に基づくランク順リストが生成される。このリストはWNMの集合を規定するように区分され、特定の細部は特定の符号化体系により決まる。特定の実施例において符号化はニブル(4ビット) ベースで実施され、一定のコードは可変数のニブルを有する。特定のコードの長さを求めることができるように対策が講じられる。その特定の実施例においてビットの1つは、そのニブルが多分、多(マルチ)ニブルコードでの最後のニブルであるかどうかを示すのに使用される。
【0009】
この特定の符号化体系の文脈において、8個の最も頻繁に生じるトークン型には、3ビット数が割り当てられ、また単一ニブルで符号化される。これらのトークンは第1の8個のトークンWNMを規定する。64個の次に最も頻繁に生じるトークン型には、6ビット数が割り当てられ、また2つのニブルで符号化される。これらのトークンは、第2の64個のトークンWNMを規定する。512個の次に最も頻繁に生じるトークン型には、9ビット数が割り当てられ、また3つのニブルで符号化される。より低い発生頻度に基づく増加する長さのコードにおけるこの符号化は、全てのトークン型に数対が割り当てられまで継続する。
【0010】
データベースの実際の圧縮は、第1のパス上に生成されるWNMの集合を使用して第2のパス上に生じる。データベースはトークンに分解され、また各トークン毎に、WNMの集合はトークンを見出すために探索される。一旦トークンが見出されると、それは該当する数対が割り当てられ、ついで符号化される。これは、全体のデータベースが圧縮されるまで継続する。
【0011】
特定の列の探索(サーチ)は圧縮を必要としない。むしろ、ユーザが入力した目標列は、1つ以上のニブルの列を生成するために、同一の体系に従って圧縮され、また適切な部分列探索アルゴリズムが採用される。一旦その圧縮された探索列が圧縮されたデータベースにおいて見出されると、適切な量の周囲テキスト( 例えば、探索列を含むパラグラフ) は圧縮される。その探索列を含む全体パラグラフを表示したいならば、直前のパラグラフと直後のパラグラフとの区切りを見出すために、見出した探索列から前後にテキストを探索できる。
【0012】
本発明の別の態様は、WNMの集合を生成するのに使用されたデータベースと異なるデータベースで使用するように本発明は適合できるということである。圧縮されるデータベースが異なるとき、当初のデータベースを使用して構成されたWNMの集合が、新しいデータベースにおける全てのトークンを含むことは保証されない。事実、WNMの集合から脱落している幾つかの新しいトークンがある可能性は非常に高い。
【0013】
本発明のこの態様によれば、固有の数対はWNMの構成中に各可能な個別の文字に割り当てられる。圧縮中にトークンがWNMに存在していないことが判明したとき、補助体系が使用される。1つのそのような体系において、トークンは複数の個別文字コードとして符号化される。これによって、各可能列を符号化する機能が保証される。これは、トークンのコード化された表現を、その当初の( 例えばASCII)表現よりも長くする傾向があるが、この機能により、通常の検索と圧縮手順を修正なしに実施できる。そのようなWNMの集合により、脱落するトークンを、WNMに既に含まれる多文字組合わせを包含する断片へ分解することもできる。また数対を共通語区分の収集へ割り当てることもできるので、WNMに存在していない語は語区分、個別文字、および存在する既知の文字の連結として符号化できる。これにより、未知のトークンは、その当初の表現よりも少ないビットで表すことができる。
【0014】
本発明の一態様は、デジタルプロセッサにおいて実施される、所定の符号化体系に基づいてテキスト圧縮駆動部を構築する方法であって、テキストデータベースに対応するテキスト列を受け入れる段階と、テキストストリングを部分列トークンの順番列に分解する段階と、そのように分解したデータベースにおけるトークン発生の相対頻度に基づいてトークンのランク順リストを生成する段階と、N個の語−数マッパー(WNM)の順序付けされた集合を構成する段階であって、各WNMは1からNまでの範囲の順序表示のWNM数iおよびWNMサイズS(i)により特徴づけられ、WNMサイズはWNM数の非増加関数であり、またその関数は所定の符号化体系により求められるようにした段階と、各トークン型を特定のWNMへ割当て、かつ各トークンをそのトークンの割当てられたWNM内の固有の数へ割当てる段階であって、その割当てにより各トークン型は関連する一対の数を有することになり、第1の数は割当てられたWNMのWNM数に対応し、第2の数は割当てられたWNMにおける割当てられた数に対応するようした段階と、から成る、テキスト圧縮駆動部構築方法である。
本発明の別の態様は、デジタルプロセッサにおいて実施される、入力テキスト列を圧縮する方法であって、N個の語−数マッパー(WNM)の順序付けられた集合を提供する段階であって、各WNMは1からNまでの範囲の順序表示のWNM数iおよびWNMサイズS(i)により特徴づけられ、WNMサイズはWNM数の非増加関数であり、またその関数は所定の符号化体系により求められるようにした段階と、WNMの集合は、トークン型の集合毎に固有の数対を提供し、第1の数はWNM数に対応し、第2の数はWNM内の数に対応するものであり、入力テキスト列を部分列トークンの順番列に分解する段階と、そのように分解された各トークンについて、そのトークン型のための数対を求める段階と、そのように分解された各トークンについて、そのトークンの数対に基づき、所定の符号化体系に従ってそのトークンを符号化する段階と、から成る、入力テキスト列圧縮方法である。
【0015】
【実施例】
概要
本発明は、付随する探索と圧縮解除技法を有するテキスト圧縮技法に関する。起点は、辞書、百科辞典または小説などの生テキストデータベースであり、それらはASCIIまたは他の書式(フォーマット)のものでよい。2つの段階の第1の段階において、テキストデータベースは解析され、ついで幾つかのデータベース依存データ構造が生成される。ついでデータ構造は、データベースの圧縮に使用される。本発明においてデータ構造は、語−数マッパー( 「WNM」) の集合を含む。第2の段階において、圧縮データベースおよびデータ構造の関連する部分を提供されたエンドユーザは、特定の目標列の探索に多分応答して、テキストの選定された部分を圧縮解除できる。
【0016】
したがって、ソフトウエアルーチンを開発および試験し、かつ未圧縮のテキストを処理するコンピュータのシステムまたはシステム群は、ハイエンドのパソコンまたはワークステーションのように、かなり強力なマシンであるように思われる。エンドユーザマシンは、これらの1つであることもできるが、特定のテキストの探索と圧縮解除を専用とする小型手持ち式装置であることもできる。
【0017】
図1(A)は、圧縮データベースとデータ構造の生成に使用される代表的な汎用コンピュータシステム10のブロック線図である。この実際のコンピュータのアーキテクチャは、バスサブシステム13を介して幾つかの周辺装置と通信するプロセッサ12を備える標準的なものである。周辺装置は一般的に、ユーザ入力用のキーボード15、入力エコーと視覚出力用の表示装置17、データ処理用のRAM18を含むメモリ、ならびにWNM22と圧縮データベース25と適切なプログラム27と多分、生テキストデータベース28とを格納するディスケット記憶装置20を含む。コンピュータは、図示されないI/Oポートおよび他の周辺装置を多分備えるであろう。
【0018】
図1(B)は、ユーザをデータベースにアクセスさせる手持ち式装置において具体化される代表的なコンピュータ10’ のブロック線図である。主要な参照数字は、図1(A)のものに機能的に対応するエレメントに使用される。このコンピュータは、プロセッサ12’ 、キーボードまたは他の入力装置15’ 、表示装置17’ 、RAM18’ 、ならびにWNM22と圧縮データベース25’ と未圧縮形での圧縮データベースの所要の部分をアクセスかつ表示するのに必要なルーチン27’ とを格納するROM30を含む。
WNMの生成
図2は、WNMを生成する技法を図示する流れ図である。先ず、当初のデータベースは、一度に1つのトークンがアクセスされ、ついでトークンのランク順リストが生成される( 段階40) 。この目的のために、テキストは、交互に生じる語と句読記号の部分列トークンの順番列に分解される。例えば、テキスト列の“Actually, the quick brown dog jumped over the lazy fox.” は以下のように順番列に分解されるであろう。“Actually” “,” “the” “ ” “quick” “ ” “brown” “” “dog” “ ” “jumped” “ ” “over” “ ” “the” “ ” “lazy” “ ” “fox” “.”
最も通常生じる句読順番列は、一般に単一スペースであるが、省略時分離文字と定義される。別途示される特定の記号( 例えば ) がない限り、省略時分離文字はトークンの各対間に存在すると想定されることを理解した上で、そのトークンの全ての発生は除去される。この取り決めに従うと、このサンプルテキストは以下のようになる。“Actually” “ ,” “the” “quick” “brown” “dog” “jumped” “over” “the” “lazy” “fox” “ . ”
トークンは頻度発生の順で記載(リスト)され、また各トークンは一回だけ記載される。
【0019】
ついでトークンのランク順リストは細別され、またWNMの整列した(順序付けられた)集合が構成される( 段階42) 。このリストは、特定のコード化体系により決まる仕方で区分化される。この特定の実施例において、コード数字は4ビットのニブルであり、またトークンは1つ以上のコード数字から成ることができる。図3は、1つ、2つおよび3つのニブルをそれぞれ有する符号化されたトークン45(1) 、45(2)および45(3)を示す。文字A〜Jは、予想されるビット値(1または0)を意味する。各コード数字における1つのビット( 上位ビット) は継続ビットとして確保され、その数字が特定のコード化トークンを構成する全ての数字の最後の数字であるかどうかを示す。
【0020】
コード数字が、継続ビットとしての1つのビットを含むn個のビットである一般的な場合、i個の数字で符号化できる2(n−1)*i 個の予想される別個のトークンがある。この特定の場合、8個の予想される単一ニブルコード、64個の予想される2ニブルコード、および512個の予想される3ニブルコードなどがある。8個の最も通常のトークンは、単一ニブルとして表され、継続ビットは「1」に設定されて、そのニブルがコード化トークンにおける最後の( かつ唯一の) ニブルであることを示す。64個の次に最も頻繁に生じるトークンは2つのニブルで符号化され、第2のニブルは「0」に設定された継続ビットを有し、また第2のニブルは「1」に設定された継続ビットを有する。
【0021】
各WNMは、順序表示のWNM数と、WNMについてのトークンの最大数であるWNMサイズとにより特徴づけられる。第1のWNMは0と7との間の固有数を8個の最も頻繁に生じるトークンに割当て、第2のWNMは0と63との間の固有数を64個の次に最も頻繁に生じるトークンに割当て、第3のWNMは0と511との間の固有数を512個の次に最も頻繁に生じるトークンに割当てるなどして、以下同様に割当てる。このようにして各トークン型は、関連する固有の数対を有し、すなわちトークンが格納されるWNMの数と、そのWNMにおけるトークンの数すなわち位置との数対を有する。WNMは、有限状態マシン( 「FSM」) 技術を使用して構成され、得られたデータ構造は各語について僅か約1ビットだけを必要とする。
【0022】
付録Aは、代表的なデータベース( ランダムハウス百科辞典) についての第1の3つのWNMのトークンリストを示す。下線文字は無スペース標識であり、垂直上向き矢印は次に来る文字が全て大文字であることを示し、2つの上向き矢印は次に来る語が全て大文字であることを示し、垂直線はキャリッジ復帰を示し、2 つのバックラッシュはタブを示し、左右の丸めた括弧は相互参照の始めと終わりを示し、また他の特殊の文字は特殊の文字またはフォーマット情報を表す。トークンが中に生じるリストは頻度の指標であるが、一定のリスト内のトークンの順序は指標ではない。
圧縮、圧縮解除および探索
図4は、テキストデータベースを圧縮する技法を図示する流れ図である。この未圧縮テキスト列は、読み込まれて、上述したようにトークンに分解され、また次のトークン( 第1の例では第1のトークン) は抽出される( 段階50) 。このトークンはWNM集合に伝達され、そのWNM集合は、そのトークンに関連する固有の語−数の対を生成する( 段階52) 。その数対に基づいて、トークンは図3に示されるように符号化される( 段階55) 。一般に、使用されるニブル数は順序表示のWNM数により決められる。1つのニブルから集合内にWNMがあるように多くのニブルまでのもので表される符号化されたトークンは、挿入のために圧縮データベースに出力される( 段階57) 。符号化されていないデータベース内にさらにトークンが存在するかどうかを判断する検査がなされる( 段階60) 。もし存在するならば、次のトークンが得られる段階50へ分岐し、そうでなければ、圧縮が完了したものとみなされる。上述のシーケンスは、入力列における全てのトークンが符号化されまで繰り返される。
【0023】
図5は、圧縮されたテキストの列を圧縮解除する技法を図示する流れ図である。この技法は、基本的には上述の圧縮技法の逆のものである。次のトークン境界( 第1の例では第1のトークン境界) が見出され(段階70) 、ついで数対は符号化されたトークンから抽出される(段階72) 。上述したようにトークン境界は、その上位ビット集合を有するニブルにより決められる。数対における第1の数は符号化されたトークン内のニブル数により決められ、また第2の数はニブルのデータ部分を連結することにより生成される。これは、データビットの各種トリオをけた送りし、かつその論理和をとることにより、または他の適切な技法により実施される。この変形およびその逆は、図6に概略的に示される。そのように生成された数は該当する番号付けされたWNMへ伝達され、また復号合されたトークンは出力されて( 段階75) 、圧縮解除されたテキスト列の一部になる。その列にさらにトークンが存在するかどうかを判断する検査がなされる( 段階77) 。もし存在するならば、次のトークンが得られる段階72へ分岐し、そうでなければ、圧縮解除が完了したものとみなされる。
【0024】
圧縮データベースにおける目標列の探索は、単純な仕方で実施され、また圧縮解除を必要としない。ユーザが入力する目標列は、当初のデータベースの圧縮に使用した同一の体系に従って圧縮される。圧縮データベースにおける圧縮された目標列の探索は、効率的な部分列探索アルゴリズム、例えば周知のBoyer −Moore アルゴリズム( および導かん数) およびKnuth −Morris−Pratt アルゴリズムにより実施できる。例えば、Daniel M. Sundayの「超高速の部分列探索アルゴリズム」、Communications ACM、1990年8月、Vol.33、No. 8、pp. 32−142を参照のこと。
【0025】
一致が見出されたとき、一致した列が他の語を符号化するコード数字のより長い列の接尾部でないことを確認するために簡単な試験が実施される。特に、直前のコード数字の継続ビットが「1」へ設定されたかどうかが判断される。そうであれば、一致する列は所要のものであり、そうでなければ、探索が継続される。
【0026】
一旦、目標列が見出されると、それは圧縮解除される。幾つかの例では、周囲テキストの若干の量も圧縮解除される。これは、何を望むかによるが、各方向におけるトークンの一定数を圧縮解除することにより、または両方向におけるパラグラフ区切りを探索し、かつ介入するトークンを圧縮解除することにより実施される。
脱落したトークンを有するデータベース
図7は、圧縮されるデータベースがWNM表の作成に使用されたデータベースと異なる場合に状態に順応するための、上述した圧縮技法の適合を図示する流れ図である。上記では、各トークンはWNMの集合内に存在すると仮定したが、ここで検討する状態は、入力テキスト流中の幾つかのトークンはWNMに存在しないということである。これらのトークンは脱落トークンと呼ぶことができる。以下に述べる適合は、単一WNMを使用する従来技術の圧縮技法にも適用できる。
【0027】
この基本的技法は、以下の2つの変更を伴う。第1の変更として、WNMには、データベースに既に存在しない少なくとも個別の文字を含むトークンの追加の集合が提供される。例えば、「a」および「I」は、通常の語であるのでデータベースに存在すると思われが、「b」および「t」は存在すると思われない。したがって、一つの可能性は、単一文字用の3ニブル範囲(512個のトークンWNM) でトークンを確保することである。トークンのこの追加の集合は、接尾部および接頭部などの通常の語断片も含むことができる。例として、「un」、「non −」、「ment」、および「ing 」があろう。断片トークンは、「無スペース」文字により境界が定められるであろう。
第2の変更は、トークンがWNMに見出されない場合に、補助符号化体系が設けられるということである。好ましい体系において、脱落トークンは断片に分解され、その断片は、当初のデータベースに存在した語であるか、または上述した追加のトークンでもよい。これらの断片は、他のトークンが符号化される仕方と同一の仕方で符号化される。
【0028】
基本的流れは、一般的には図4に関連して上述した通りであり、また対応する参照数字は、該当する所に使用される。この変更には、入力のトークンがWNMに見出されたかどうかの検査( 段階80) が含まれる。含まれたならば、トークンの符号化と圧縮データベースへの出力が生じる( 段階55と57) 。含まれなかったならば、脱落トークンを断片に分解するために分岐が行われる( 段階82) 。その断片は段階50において入力流れとして利用でき、また処理が継続する。段階82において、断片がWNMに存在しているとは一般的に仮定されないので、各断片は、それが脱落していることが分かる( かつ2文字以上長い) ならば、さらに断片化が行われる。
【0029】
脱落トークンを断片化する多くの予想される戦略があり、また正確な流れは、選定された特定の戦略により決まるであろう。例えば、脱落トークンは単一の文字に分解でき、各文字は符号化される。この単純な体系により、各断片が見出されることになる。一層正確な体系は、見出される大きい断片を生成しようとするであろう。例えば、1つの予想される体系は、最大の予想される断片( 例えば、脱落トークンの最後の文字以外の全て) を送り、またその断片が脱落していることが分かったならば、次に最大の断片( 例えば、脱落トークンの最後の2文字以外の全て) が送られるであろう。このプロセスは、あるサイズの断片が脱落していないこと分かるまで繰り返されるであろう。この時点において残りの断片が送られ、また脱落していることが分かったならば、引き続いて、より小さい断片が送られるであろう。脱落トークンが少なくとも幾つかの多文字トークンから成るならば、正味の結果は、当初のASCIIよりもかなり短いことになる。明らかに、圧縮時間と圧縮比との間に適当な折り合いがある。実際問題として、全体の結果は、脱落トークン数はトークンの全体数の低いパーセントを占めると思われるので、著しくは劣化しないであろう。
【0030】
脱落語を補うために連結されるエレメントは全て、介入スペース無しに接続しなければならない。これは、取消し分離文字( 無スペース) トークンを各断片間に置くことにより実施できるであろうが、これは、ある代替の方法に比べて短縮のサイズを増加するかもしれない。その代替の方法において、特殊な列の小さい集合が断片に使用される目的だけのためにデータベースに加えられる。したがって、これらの特殊な列は、取消し分離文字記号を片側または反対側に含ませることができる。「 」が取消し分離文字記号であるならば、我々は列“a ” 、“b ” 、“c ” を、文字だけでなく、全ての他の予想されるバイトコードについても加える。ついで脱落語、例えば“aardvark”は、トークン“a ” “a ” “r ” “d ” “v ” “a ” “r ” “k ” の順序列として符号化できる。
【0031】
この次に当初のテキストのスペースが続くならば、他のトークンを末端に加えて、最終の取消し分離文字を取消さなければならない。トークン“ ”(空列) はこの目的に役立つ。すなわち、このトークン前に通常現れるスペースは“k ” により抑制され、通常後に現れるスペースだけを残す。この種類の列により、それぞれの予想される列は、僅かN+1のトークンで符号化できる。そこでNは列の長さである。
【0032】
接頭部および接尾部などの長い語の断片も、この戦略に従って符号化できる。通常の接頭部は、取消し分離文字を必ずその末端へ取り付けるので、接頭部はルート語で右へ連結でき、一方通常の接尾部は取消し記号を左へ有することになる。このようにして、“untalkative” は“un ” “talk” “ ative”として符号化できるであろう。
【0033】
これらの追加トークンは、脱落列を符号化する際に、どのように使用されるかの直観的な予測に従って、異なるWNMに分布できる。代わりに、断片のWNMへの一層正確な割当ては、以下の仕方で実施できる。このシステムが一般的に適用されるテキストの分類のかなり大きい全集が集められる。その全集は無作為に2つの半分に分割され、1つの半分は既知のトークンのリスト構成に使用される。ついで、このトークンリストは第2の半分のトークン化に使用されるが、ただし断片は、第1の半分のリストに既に存在しない語のトークン化に使用される。ついでWNMは、このようにして全集の第2の半分をトークン化して得られたランクリストから構成される。
結論
要するに、本発明は特に効果的な圧縮技法を提供することが分かる。この技法は、多数の別個のトークンを有するデータベースに容易に適合でき、さらに未知のデータベースに使用できる。
【0034】
上記は本発明の特定の実施例を十分に説明したものであるが、代案も可能である。例えば、符号化は異なる体系により実施できるであろう。また例えば、8ビットのコード数字であれば、7ビットが正確であろう。すなわち低いパーセントのビットがオーバヘッドに充てられる( 継続ビット) 。しかしながら最も頻繁に生じる8個の語は、その圧縮形でのビット数の2倍を必要とするであろう。頻度分布の急勾配度により、どの数字の符号化が最も有利であるかが判断される。単一トークンで変化する長さの数字を有することができるが( 例えば、4−4−8−8)、そのような符号化体系は、逆方向の探索を不可能にする。
【0035】
以下は付録Aを示す
【0036】
【外1】
【0037】
【外2】
【0038】
【外3】
【0039】
【外4】
【0040】
【外5】
【0041】
【外6】
【0042】
【外7】
【0043】
【外8】
【0044】
【外9】
【0045】
【外10】
【0046】
【外11】
【図面の簡単な説明】
【図1】(A)は本発明を具体化する汎用コンピュータシステムのブロック線図であり、(B)はエンドユーザにとり適切なコンピュータのブロック線図である。
【図2】本発明に従うテキスト圧縮の第1の段階の流れ図である。
【図3】トークンの可変長さ符号化を概略的に図示する。
【図4】本発明に従うテキスト圧縮の第2の段階を図示する流れ図である。
【図5】本発明に従うテキスト圧縮解除の流れ図である。
【図6】符号化データからの数対の抽出、および数対から符号化データの抽出を概略的に図示する。
【図7】予想される脱落トークンを有するテキスト圧縮の流れ図である。
Claims (10)
- デジタルプロセッサにおいて実施される、所定の符号化体系に基づいてテキスト圧縮駆動部を構築する方法であって、
テキストデータベースに対応するテキスト列を受け入れる段階と、
テキストストリングを部分列トークンの順番列に分解する段階と、
そのように分解したデータベースにおけるトークン発生の相対頻度に基づいてトークンのランク順リストを生成する段階と、
N個の語−数マッパー(WNM)の順序付けされた集合を構成する段階であって、各WNMは1からNまでの範囲の順序表示のWNM数iおよびWNMサイズS(i)により特徴づけられ、WNMサイズはWNM数の非増加関数であり、またその関数は所定の符号化体系により求められるようにした段階と、
各トークン型を特定のWNMへ割当て、かつ各トークン型をそのトークン型の割当てられたWNM内の固有の数へ割当てる段階であって、その割当てにより各トークン型は関連する一対の数を有することになり、第1の数は割当てられたWNMのWNM数に対応し、第2の数は割当てられたWNMにおける割当てられた数に対応するようにした段階と、
を有し、
トークン型が前記第1の数j及び第2の数kにより特徴付けられるトークンは、前記所定の符号化体系に基づいて符号化される場合、nビット・コードの数字をj含み、
(a)コードの数字各々の専用ビットは、所与の符号化トークンを含むコードの数字のストリングの各々の該専用ビットをテストすることにより、該所与の符号化トークンのコードの数字の数を判断する情報を提供するために使用され、
(b)jのコードの数字の残りの(n−1)*jビットは数kを2進数で表現するために使用される、
テキスト圧縮駆動部構築方法。 - S(1)の最も頻繁に発生するトークンは第1のWNMへ割当てられ、またS(2)の次に頻繁に発生するトークンは第2のWNMへ割当てられる、請求項1に記載の方法。
- 序数iを有する前記WNMの最大サイズは2 (n-1)*i である請求項1に記載の方法。
- デジタルプロセッサにおいて実施される、nビット・コードの数字を用いて、入力テキスト列を圧縮する方法であって、
N個の語−数マッパー(WNM)の順序付けられた集合を提供する段階であって、各WNMは1からNまでの範囲の順序表示のWNM数i及びWNMサイズS(i)により特徴付けられ、序数iを有する前記WNMの最大サイズは2 (n-1)*i である段階と、
WNMの集合は、トークン型の集合毎に固有の数対を提供し、第1の数はWNM数に対応し、第2の数はWNM内の数に対応するものであり、
入力テキスト列を部分列トークンの順番列に分解する段階と、
そのように分解された各トークンについて、そのトークン型のための数対を求める段階と、
そのように分解された各トークンについて、前記数対を求めることができる場合に、該数対を求められたトークンの各々について、符号化トークンがnビット・コードの数字をj含み、(a)所与の符号化トークンを含むコードの数字のストリングの各々の専用ビットをテストすることにより、該所与の符号化トークンのコードの数字の数を求める情報を提供するように、コードの数字の各々の該専用ビットが使用され、(b)jのコードの数字の残りの(n−1)*jビットは数kを2進数で示すためにに使用される、ように、前記数対に従ってそのトークンを符号化する、段階と、
を有する、入力テキスト列圧縮方法。 - S(1)の最も頻繁に発生するトークンは第1のWNMへ割当てられ、またS(2)の次に最も頻繁に発生するトークンは第2のWNMへ割当てられる、請求項4に記載の方法。
- 序数iを有する前記WNMの最大サイズは2 (n-1)*i である請求項4に記載の方法。
- 分解されたトークンの各々について、前記数対を求めることができない場合には、該トークンを一連のサブ・ワード・トークンに分解し、該サブ・ワード・トークンの各々について、前記数対を求め、符号化する処理を行う、請求項4に記載の方法。
- デジタルプロセッサにおいて実施される、入力テキスト列を圧縮する方法であって、
N個の語−数マッパー(WNM)の順序付けられた集合を提供する段階であって、各WNMは1からNまでの範囲の順序表示のWNM数iおよびWNMサイズS(i)により特徴付けられ、序数iを有する前記WNMの最大サイズは2(n-1)*iである段階と、
WNMの集合は、トークン型の集合毎に固有の数対を提供し、第1の数はWNM数に対応し、第2の数はWNM内の数に対応するものであり、
入力テキスト列を部分列トークンの順番列に分解する段階と、
分解された各トークンについて、該トークン型のための数対を求める段階と、
分解された各トークンについて、該トークンの数対に基づき、所定の符号化体系に従って該トークンを符号化する段階と、
を有し、
前記WNMの集合に存在しない少なくとも個別の文字を含むトークンの追加の集合を該WNMの集合に提供し、
前記トークンを符号化する段階において、該トークンが前記WNMの集合に存在しない場合には、該トークンを断片に分解し、
前記断片に分解されたトークンが前記WNMの集合に存在する場合には、該断片に分解されたトークンの数対に基づき、所定の符号化体系に従って該断片に分解されたトークンを符号化し、
前記断片に分解されたトークンが前記WNMの集合に存在しない場合には、該断片に分解されたトークンをさらに分解する、
入力テキスト列圧縮方法。 - S(1)の最も頻繁に発生するトークンは第1のWNMへ割当てられ、またS(2)の次に最も頻繁に発生するトークンは第2のWNMへ割当てられる、請求項8に記載の方法。
- 序数iを有する前記WNMの最大サイズは2(n-1)*iである請求項8に記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92925292A | 1992-08-13 | 1992-08-13 | |
US07/942,665 US5325091A (en) | 1992-08-13 | 1992-09-09 | Text-compression technique using frequency-ordered array of word-number mappers |
US929252 | 1992-09-09 | ||
US942665 | 1992-09-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06208453A JPH06208453A (ja) | 1994-07-26 |
JP3553106B2 true JP3553106B2 (ja) | 2004-08-11 |
Family
ID=27129970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19458393A Expired - Lifetime JP3553106B2 (ja) | 1992-08-13 | 1993-08-05 | テキスト圧縮駆動部構築方法及び入力テキスト列圧縮方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5325091A (ja) |
EP (1) | EP0584992B1 (ja) |
JP (1) | JP3553106B2 (ja) |
DE (1) | DE69330196T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9509333B2 (en) | 2013-03-22 | 2016-11-29 | Fujitsu Limited | Compression device, compression method, decompression device, decompression method, information processing system, and recording medium |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450598A (en) * | 1985-12-27 | 1995-09-12 | Xerox Corporation | Finite state machine data storage where data transition is accomplished without the use of pointers |
US5442350A (en) * | 1992-10-29 | 1995-08-15 | International Business Machines Corporation | Method and means providing static dictionary structures for compressing character data and expanding compressed data |
US5533051A (en) * | 1993-03-12 | 1996-07-02 | The James Group | Method for data compression |
CA2125337A1 (en) * | 1993-06-30 | 1994-12-31 | Marlin Jay Eller | Method and system for searching compressed data |
US5550541A (en) * | 1994-04-01 | 1996-08-27 | Dolby Laboratories Licensing Corporation | Compact source coding tables for encoder/decoder system |
US5585793A (en) * | 1994-06-10 | 1996-12-17 | Digital Equipment Corporation | Order preserving data translation |
US5678043A (en) * | 1994-09-23 | 1997-10-14 | The Regents Of The University Of Michigan | Data compression and encryption system and method representing records as differences between sorted domain ordinals that represent field values |
JP3545824B2 (ja) * | 1995-02-21 | 2004-07-21 | 富士通株式会社 | データ検索装置 |
GB2305746B (en) * | 1995-09-27 | 2000-03-29 | Canon Res Ct Europe Ltd | Data compression apparatus |
GB2310055A (en) * | 1996-02-08 | 1997-08-13 | Ibm | Compression of structured data |
US6012062A (en) * | 1996-03-04 | 2000-01-04 | Lucent Technologies Inc. | System for compression and buffering of a data stream with data extraction requirements |
US5845238A (en) * | 1996-06-18 | 1998-12-01 | Apple Computer, Inc. | System and method for using a correspondence table to compress a pronunciation guide |
GB2314433A (en) * | 1996-06-22 | 1997-12-24 | Xerox Corp | Finding and modifying strings of a regular language in a text |
US5999949A (en) * | 1997-03-14 | 1999-12-07 | Crandall; Gary E. | Text file compression system utilizing word terminators |
GB9727322D0 (en) | 1997-12-29 | 1998-02-25 | Xerox Corp | Multilingual information retrieval |
EP1046098A1 (en) * | 1998-07-14 | 2000-10-25 | Motorola, Inc. | Reduced overhead text messaging |
US6470347B1 (en) | 1999-09-01 | 2002-10-22 | International Business Machines Corporation | Method, system, program, and data structure for a dense array storing character strings |
US6470345B1 (en) | 2000-01-04 | 2002-10-22 | International Business Machines Corporation | Replacement of substrings in file/directory pathnames with numeric tokens |
US6310563B1 (en) * | 2000-05-12 | 2001-10-30 | International Business Machines Corporation | Method and apparatus for enhanced decompressor parsing |
US7054953B1 (en) * | 2000-11-07 | 2006-05-30 | Ui Evolution, Inc. | Method and apparatus for sending and receiving a data structure in a constituting element occurrence frequency based compressed form |
US7013261B2 (en) * | 2001-10-16 | 2006-03-14 | Xerox Corporation | Method and system for accelerated morphological analysis |
US7031969B2 (en) * | 2002-02-20 | 2006-04-18 | Lawrence Technologies, Llc | System and method for identifying relationships between database records |
US7269548B2 (en) * | 2002-07-03 | 2007-09-11 | Research In Motion Ltd | System and method of creating and using compact linguistic data |
US7072880B2 (en) * | 2002-08-13 | 2006-07-04 | Xerox Corporation | Information retrieval and encoding via substring-number mapping |
US20040148301A1 (en) * | 2003-01-24 | 2004-07-29 | Mckay Christopher W.T. | Compressed data structure for a database |
US20040225497A1 (en) * | 2003-05-05 | 2004-11-11 | Callahan James Patrick | Compressed yet quickly searchable digital textual data format |
US7617202B2 (en) * | 2003-06-16 | 2009-11-10 | Microsoft Corporation | Systems and methods that employ a distributional analysis on a query log to improve search results |
US8407239B2 (en) * | 2004-08-13 | 2013-03-26 | Google Inc. | Multi-stage query processing system and method for use with tokenspace repository |
US7917480B2 (en) | 2004-08-13 | 2011-03-29 | Google Inc. | Document compression system and method for use with tokenspace repository |
US7356538B2 (en) * | 2005-01-25 | 2008-04-08 | International Business Machines Corporation | Configurable business controls task notification |
US20060235683A1 (en) * | 2005-04-13 | 2006-10-19 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Lossless encoding of information with guaranteed maximum bitrate |
US7991610B2 (en) * | 2005-04-13 | 2011-08-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Adaptive grouping of parameters for enhanced coding efficiency |
US7788106B2 (en) * | 2005-04-13 | 2010-08-31 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Entropy coding with compact codebooks |
US7747642B2 (en) * | 2005-05-09 | 2010-06-29 | Trend Micro Incorporated | Matching engine for querying relevant documents |
WO2006122086A2 (en) * | 2005-05-09 | 2006-11-16 | Provilla, Inc. | Matching engine with signature generation and relevance detection |
US7516130B2 (en) * | 2005-05-09 | 2009-04-07 | Trend Micro, Inc. | Matching engine with signature generation |
US7363225B2 (en) * | 2005-06-23 | 2008-04-22 | Microsoft Corporation | Compressing language models with Golomb coding |
KR101503829B1 (ko) * | 2007-09-07 | 2015-03-18 | 삼성전자주식회사 | 데이터 압축 장치 및 방법 |
KR101454167B1 (ko) * | 2007-09-07 | 2014-10-27 | 삼성전자주식회사 | 데이터 압축 및 복원 장치 및 방법 |
US7444347B1 (en) * | 2007-11-16 | 2008-10-28 | International Business Machines Corporation | Systems, methods and computer products for compression of hierarchical identifiers |
WO2012068367A2 (en) | 2010-11-17 | 2012-05-24 | Technology Innovations, Llc | Method for designing an aptamer |
JP6645013B2 (ja) * | 2015-01-30 | 2020-02-12 | 富士通株式会社 | 符号化プログラム、符号化方法、符号化装置および伸長方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4560976A (en) * | 1981-10-15 | 1985-12-24 | Codex Corporation | Data compression |
US4562423A (en) * | 1981-10-15 | 1985-12-31 | Codex Corporation | Data compression |
US4597057A (en) * | 1981-12-31 | 1986-06-24 | System Development Corporation | System for compressed storage of 8-bit ASCII bytes using coded strings of 4 bit nibbles |
CA1226369A (en) * | 1983-10-19 | 1987-09-01 | Louie D. Tague | Method and apparatus for data compression |
US4701744A (en) * | 1986-03-27 | 1987-10-20 | Rca Corporation | Method and apparatus for compacting and de-compacting text characters |
US4730348A (en) * | 1986-09-19 | 1988-03-08 | Adaptive Computer Technologies | Adaptive data compression system |
US4843389A (en) * | 1986-12-04 | 1989-06-27 | International Business Machines Corp. | Text compression and expansion method and apparatus |
US4862167A (en) * | 1987-02-24 | 1989-08-29 | Hayes Microcomputer Products, Inc. | Adaptive data compression method and apparatus |
-
1992
- 1992-09-09 US US07/942,665 patent/US5325091A/en not_active Expired - Lifetime
-
1993
- 1993-08-05 JP JP19458393A patent/JP3553106B2/ja not_active Expired - Lifetime
- 1993-08-09 DE DE69330196T patent/DE69330196T2/de not_active Expired - Lifetime
- 1993-08-09 EP EP93306281A patent/EP0584992B1/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9509333B2 (en) | 2013-03-22 | 2016-11-29 | Fujitsu Limited | Compression device, compression method, decompression device, decompression method, information processing system, and recording medium |
KR101750646B1 (ko) * | 2013-03-22 | 2017-06-23 | 후지쯔 가부시끼가이샤 | 압축 장치, 압축 방법, 신장 장치, 신장 방법 및 정보 처리 시스템 |
Also Published As
Publication number | Publication date |
---|---|
DE69330196T2 (de) | 2001-10-18 |
EP0584992B1 (en) | 2001-05-09 |
EP0584992A2 (en) | 1994-03-02 |
EP0584992A3 (en) | 1995-03-29 |
JPH06208453A (ja) | 1994-07-26 |
DE69330196D1 (de) | 2001-06-13 |
US5325091A (en) | 1994-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3553106B2 (ja) | テキスト圧縮駆動部構築方法及び入力テキスト列圧縮方法 | |
US5572206A (en) | Data compression method and system | |
EP0083393B1 (en) | Method of compressing information and an apparatus for compressing english text | |
Silva de Moura et al. | Fast and flexible word searching on compressed text | |
US5953723A (en) | System and method for compressing inverted index files in document search/retrieval system | |
JP4261779B2 (ja) | データ圧縮装置および方法 | |
Zobel et al. | Adding compression to a full‐text retrieval system | |
US5936560A (en) | Data compression method and apparatus performing high-speed comparison between data stored in a dictionary window and data to be compressed | |
US5229768A (en) | Adaptive data compression system | |
US5396595A (en) | Method and system for compression and decompression of data | |
Brisaboa et al. | (S, C)-dense coding: An optimized compression code for natural language text databases | |
US5678043A (en) | Data compression and encryption system and method representing records as differences between sorted domain ordinals that represent field values | |
US5892470A (en) | Method and system for mnemonic encoding of numbers | |
EP2499743A1 (en) | Indexing compressed data | |
US5585793A (en) | Order preserving data translation | |
JPH1188192A (ja) | データ圧縮方法及び装置 | |
JPH0779263B2 (ja) | データ圧縮方法 | |
CA1241760A (en) | File compressor | |
Brent | A linear algorithm for data compression | |
US5394143A (en) | Run-length compression of index keys | |
JPH0779265B2 (ja) | 圧縮データの復号方法 | |
US20060059181A1 (en) | Method and system for high speed encoding, processing and decoding of data | |
JP2005004560A (ja) | インバーテッドファイル作成方法 | |
US6731229B2 (en) | Method to reduce storage requirements when storing semi-redundant information in a database | |
JP3199292B2 (ja) | ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20031127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040217 |
|
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: 20040427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040428 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090514 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100514 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110514 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110514 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120514 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130514 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130514 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |