JPH09212395A - テキスト圧縮用辞書作成装置およびテキスト圧縮装置 - Google Patents
テキスト圧縮用辞書作成装置およびテキスト圧縮装置Info
- Publication number
- JPH09212395A JPH09212395A JP8013892A JP1389296A JPH09212395A JP H09212395 A JPH09212395 A JP H09212395A JP 8013892 A JP8013892 A JP 8013892A JP 1389296 A JP1389296 A JP 1389296A JP H09212395 A JPH09212395 A JP H09212395A
- Authority
- JP
- Japan
- Prior art keywords
- text
- dictionary
- character string
- compression
- frequency
- 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.)
- Granted
Links
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/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
上させるためのテキスト圧縮用辞書作成装置およびテキ
スト圧縮装置を提供する。 【解決手段】 目標圧縮率を満足するためにテキスト中
で出現が要求される頻度のガイドラインを算出する頻度
ガイドライン算出手段111と、テキストから対応する
文字列長の頻度ガイドラインを満たす頻度で出現するも
のをその実頻度とともに文字列長の降順に切出して静的
辞書を生成する長文字列切出手段112とを含む。
Description
(以下「ワープロ」と省略する。)や電子手帳といった
ジャンルの情報機器に関する固定のテキストデータを扱
うテキスト圧縮用辞書作成装置およびテキスト圧縮装置
に関する。
ーソナルコンピュータ(以下、「パソコン」と省略す
る。)、電子手帳などの情報機器では、機器の内部に辞
書の意味が記述された大容量の固定テキストデータを記
憶しておかなければならない。
ストデータは、大抵の場合、数メガバイトオーダの容量
のデータになる場合が多い。これらデータはROM化、
ハードディスク化されることになるが、テキスト圧縮に
よって、ROMの点数を減らすなり、ハードディスクの
空き領域を確保するなりの工夫を施さないと、コストパ
フォーマンスを向上させることはできない。
に分類される。 (1) コードの空き領域に、頻出するコード列のコー
ドを割り当てるタイプのもの(特開平2−27172
3) (2) 別途用意された単語辞書の辞書番号でソーステ
キスト中の文字列を置換するタイプのもの(特開平5−
46357他) (3) 頻出する文字列コードを別のコードで置換する
タイプのもの(特開平3−206533) (4) 汎用の圧縮方法(ハフマン、算術、LZなど)
を適用するタイプのもの(PRENTICE HALL Advanced Ref
erence Series,“Text Compression", 1991 ) これらの手法は、どの方法も一長一短で、限られたメモ
リとCPUパワーの下で大容量の固定テキストを高能率
に圧縮するにはいずれも決め手に欠けるものである。
キストが記述されている場合はよいが、コードの空き領
域自体に限られたスペースしかないため短いコードに置
換できる文字列の数が限られ、圧縮率はよくない。複数
のコードや外字などの特殊コードが混在する場合はほと
んど圧縮できないといってよい。
ルなどの別のアプリケーションが存在する場合、仮名漢
字変換用の辞書の見出し語と一致するソーステキスト中
の文字列を辞書の見出し番号で置換することにより圧縮
する手法である。
字列は圧縮できないし、辞書見出しと一致する場合でも
その文字列長が辞書番号を表現するためのビット数(通
常16ビット前後)より大きくないと圧縮できないた
め、符号化表こそ不要なものの概して圧縮率はよくな
い。
あり、頻度に偏りがあるような長い文字列が多く含まれ
るテキストの圧縮に向いた方法である。
るだけでは、(1)の手法に対して指摘したように、複
数のコードが混在する場合には置換される文字列の数が
限定され圧縮率はよくない。
号化表)が必要であるため、置換表のサイズを調整する
ための工夫がないと、置換表が大きくなり圧縮率の低下
を招く。さらに、何らかの方法で切出された静的辞書に
対してハフマン等の統計手法を用いる考え方を示したも
のはあるが、具体的にどのような手段で固定テキストか
ら静的辞書を構築すればよいか明示しているものはな
い。
がなければ、高圧縮率を達成できる手法もある。たとえ
ば、高次の統計モデルなどがこれに相当する。
を搭載することはコスト的に無理であること、処理速度
が遅いことなどから現実的ではない。
ハフマン法、算術圧縮法など)はいずれも圧縮対象のコ
ードが1バイト(1文字)であるため、高い圧縮率は望
めない。動的辞書ベースの圧縮法(LZ系統の圧縮法)
は、圧縮対象が可変長であるが、繰返し出現する文字列
パターンが少ない場合や作業領域を超えて分散している
ような場合には、圧縮率またはRAM容量が犠牲とな
る。
させた汎用手法もいくつか提案されている(LHAな
ど)。
ても処理可能」なユニバーサル圧縮であるという立場を
とっているため、予め頻度情報を計算しておくことはで
きない。したがって融合手法も、予め頻度情報を付与す
る本発明の手法に比べて、大容量の固定データに関して
は圧縮率が悪くなる。
を圧縮対象とする場合に提唱されているものであるが、
圧縮対象を「電子辞書に搭載される辞典の意味テキスト
(見出し語以外の部分)」に絞ってテキスト圧縮を工夫
改良したものは見受けられない。
する課題は、大容量の固定テキストの圧縮率を飛躍的に
向上させることである。具体的には以下のとおりであ
る。
して高い圧縮率が得られるような「圧縮用の静的辞書」
を構築するための具体的な手段を提供することである。
して、高い圧縮率が得られるような「圧縮用の静的辞
書」を構築するための具体的な手段を提供することであ
る。第1の課題とはアプローチが異なる。
して、構築された「圧縮用の静的辞書」自体の容量を、
圧縮率の低下を抑えながら削減し、圧縮データおよび回
答用テーブルデータのトータル容量を小さくするための
具体的な手順を提供することである。
して、構築された「圧縮用の静的辞書」自体の容量を、
圧縮率の低下を抑えながら削減し、圧縮データおよび伸
長用テーブルデータのトータル容量を小さくするための
具体的な手順を提供することである。第3の課題とはア
プローチが異なる。
は、大容量の辞典の意味テキストの圧縮率を飛躍的に向
上させることである。
も「大容量の固定テキスト」という制限をうまく利用し
たものではないため、「大容量の固定テキスト」を最も
効果的に圧縮する手法と考えられる「可変長シンボルの
静的辞書による統計ベースの圧縮」と比べて圧縮率が低
い。「可変長シンボルの静的辞書による統計ベースの圧
縮」では、圧縮効率のよい静的辞書をうまく切出す方
法、静的辞書自体のサイズを抑える方法が重要なファク
タとなるが、本発明ではこれらの手法は既知であるとし
て扱い、主として「可変長シンボルの静的辞書による統
計ベースの圧縮」手法だけでは限界となる部分を「辞典
の意味テキスト固有の性質」を利用することによって補
い、さらなる圧縮率の向上を目指す。
一の静的辞書を構築するだけでは、必ずしも効率的な圧
縮結果が得られるとは限らない以下のような場合に対し
て静的辞書のアプローチを前提としながら、さらなる圧
縮率向上を図ることを課題とする。
なる複数の部分から構成される場合。たとえば、「発
音」「訳」「例文」「変化形」といった異なる記述部分
から構成される「英和辞典の意味テキスト」。
合。たとえば、「英和辞典」「和英辞典」「国語辞典」
などをまとめて圧縮対象とする場合。
ボルが、テキストのある箇所にだけ集中して出現する場
合。たとえば、英和辞典の“citron”という項目付近に
は“citrus”、“citric acid ”などの関連項目が配置
されており、それらの意味テキスト中には、全体として
は頻度の低い“柑橘類”という文字列が頻繁に出現する
という場合。
わち、第5の課題は、テキストが記述内容の異なる複数
の部分から構成されている場合でも、高い圧縮率が得ら
れるような「圧縮用の静的辞書」を構築し、これに基づ
いて圧縮伸長を行なうための具体的な手順を提供するこ
とである。
の意味テキストに対して、高い圧縮率が得られるような
「圧縮用の静的辞書」を構築し、これに基づいて圧縮伸
長を行なうための具体的な手順を提供することである。
典の意味テキストを予め構築された「圧縮用の静的辞
書」を用いて圧縮する場合、静的辞書のシンボルとして
は登録されなかった文字列で、ある辞書項目の周辺での
み出現頻度が高くなる文字列を、その局所的な高頻度性
を利用した圧縮法により圧縮し、単に圧縮用静的辞書の
みを使う場合よりも圧縮効率を高め、圧縮データの容量
を小さくするための具体的な手順を提供することであ
る。
トを予め構築された「圧縮用の静的辞書」を用いて圧縮
する場合、静的辞書のシンボルとしては登録されなかっ
た文字列で、ある辞書項目の周辺でのみ出現頻度が高く
なる文字列を、その局所的な高頻度性を利用した圧縮法
により圧縮し、単に圧縮用静的辞書のみを使う場合より
も圧縮効率を高め、圧縮データの容量を小さくするため
の具体的な手順を提供することである。第7の課題とは
アプローチが異なる。
は、テキストを圧縮する際に参照される辞書を作成する
ためのテキスト圧縮用辞書作成装置であって、目標圧縮
率に対して、2以上の文字列長の各々について前記目標
圧縮率を満足するためにテキスト中で出現が要求される
頻度のガイドラインを算出する頻度ガイドライン算出手
段と、テキストから、文字列長2以上の文字列であっ
て、対応する文字列長の頻度ガイドラインを満たす頻度
で出現するものを、その実頻度とともに文字列長の降順
に切出して第1の静的辞書を生成するとともに、前記頻
度ガイドラインを満たさない切残しのテキストの集合を
生成する長文字列切出手段と、前記切残しのテキストの
集合から文字列長1の文字ごとにその頻度をカウントし
て第2の静的辞書を生成する1文字シンボル抽出手段
と、前記第1の静的辞書に前記第2の静的辞書を追加し
て最終的静的辞書を生成する最終的静的辞書構築手段と
を含むことを特徴とする。
する際に参照される辞書を作成するためのテキスト圧縮
用辞書作成装置であって、目標圧縮率に対して、2以上
の文字列長の各々について前記目標圧縮率を満足するた
めにテキスト中で出現が要求される頻度のガイドライン
を算出する頻度ガイドライン算出手段と、テキストか
ら、文字列長2以上の文字列であって、対応する文字列
長の頻度ガイドラインを満たす頻度で出現するものを、
その実頻度とともに文字列長と実頻度との積の降順に切
出して第1の静的辞書を生成するとともに、前記頻度ガ
イドラインを満たさない切残しのテキストの集合を生成
する効率指標関数値順文字列切出手段と、前記切残しの
テキストの集合から文字列長1の文字ごとにその頻度を
カウントして第2の静的辞書を生成する1文字シンボル
抽出手段と、前記第1の静的辞書に前記第2の静的辞書
を追加して最終的静的辞書を生成する最終的静的辞書構
築手段とを含むことを特徴とする。
請求項2に記載のテキスト圧縮用辞書作成装置であっ
て、前記最終的静的辞書中の文字列であって、前記最終
的静的辞書中の他の文字列の組合せであるものを、最も
長い文字列が含まれる複数個の他の文字列に分解し削除
するとともに、当該他の文字列の実頻度を前記削除され
た文字列の頻度だけそれぞれ増加させるための文字列切
出手段をさらに含むことを特徴とする。
請求項2に記載のテキスト圧縮用辞書作成装置であっ
て、前記最終的静的辞書中の文字列であって、前記最終
的静的辞書中の他の文字列の組合せであるものを、圧縮
率への寄与が最も大きくなるような複数個の他の文字列
に分解し削除するとともに、当該他の文字列の実頻度を
前記削除された文字列の頻度だけそれぞれ増加させるた
めの文字列切出手段をさらに含むことを特徴とする。
異なる複数種類の構成要素から構成されるテキストに対
して、各構成要素種類ごとに前記テキストを分割し、分
割された各々の構成要素種類のテキストに対して、構成
要素種類の境界に含まれる構成要素種類の切換えを指示
するシンボルを含む圧縮辞書を作成する辞書作成手段
と、前記辞書作成手段により作成された辞書を、前記シ
ンボルに遭遇するたびに前記シンボルに応じて切換えな
がら、圧縮対象のテキストの圧縮伸長を行なう辞書切換
圧縮伸長手段とを含むことを特徴とする。
属性の異なる複数種類の構成要素から構成される複数の
テキストであって、少なくとも一部の構成要素種類を共
有する複数のテキストに対して、各構成要素種類ごとに
前記複数のテキストを分割し、分割された各々の構成要
素種類のテキストに対して、構成要素種類の境界に含ま
れる構成要素種類の切換えを指示するシンボルを含む共
有辞書を作成する共有辞書作成手段と、前記共有辞書作
成手段により作成された共有辞書を、前記シンボルに遭
遇するたびに前記シンボルに応じて切換えながら、圧縮
対象のテキストの圧縮伸長を行なう共有辞書切換圧縮伸
長手段とを含むことを特徴とする。
所的な高頻度語を、2回目の出現以降において、前記テ
キスト中には存在しない文字列である導入シンボルと当
該高頻度語の1回目の出現位置と当該高頻度語の当該出
現位置からの文字列長とで置換して符号化するオフセッ
ト置換圧縮手段と、前記オフセット置換圧縮手段により
圧縮されたデータを、前記導入シンボル後の前記1回目
の出現位置と前記出現位置からの前記文字列長とにより
指定される語に置換することにより伸長して元のテキス
トに復元するオフセット置換伸長手段とを含むことを特
徴とする。
所的な高頻度語について、初回出現時に番号を付与し、
2回目の出現以降において、前記テキスト中には存在し
ない文字列である導入シンボルと付与された前記番号と
で置換して符号化する番号置換圧縮手段と、前記番号置
換圧縮手段により圧縮されたデータを、前記導入シンボ
ルと前記番号とにより指定される語に置換することによ
り伸長して元のテキストに復元する番号置換伸長手段と
を含むことを特徴とする。
と実施の形態2とにより、図面を参照して説明する。
かかるテキスト圧縮用辞書作成装置の全体構成説明図で
ある。本発明を実施するためのブロック構成の一例が装
置の構成と対応付けて記述されている。
ド、OCR(光学的文字読取装置)、ペン等周知の入力
装置および本体側とデータのやり取りを行なう入力イン
タフェース12から構成される。本発明の入力である、
圧縮対象の固定の「ソーステキスト」は入力手段を用い
て入力される。
T(Cathode Ray Tube) など周知の出力装置および本体
側とデータのやり取りを行なう出力インタフェース13
から構成される。本発明の出力である「ソーステキスト
に対する圧縮用静的辞書」の内容や各種の処理結果は表
示手段を用いて表示される。
ry)、RAM(Random Access Memory)で構成される記
憶装置11への記憶、アクセスを司るための周知の手段
である。ROM、RAMへは入出力データ、処理途中の
一時的なデータ、および処理のロジックを表わすデータ
などが格納される。
されたソーステキストおよび圧縮仕様に対して、出力す
べき圧縮用静的辞書の各シンボルが文字列長ごとにどれ
くらいの頻度で切出されれば、与えられた圧縮仕様を満
足できるかを算出するためのロジックである。これは記
憶装置11のROMの一部にCPU(中央処理装置)1
0に処理可能な形式で格納されている。
ーステキストおよび文字列長ごとの指定頻度に対して、
出力すべき圧縮用静的辞書の文字列長2以上のシンボル
をその実頻度とともにソーステキストから文字列長降順
に切出し、同時に指定頻度を満たさない切残しのテキス
トの集合を生成するためのロジックである。長文字列切
出手段112は記憶装置11のROMの一部にCPU1
0に処理可能な形式で格納されている。
れたテキストに対して文字列長1の文字の頻度をカウン
トするためのロジックであり、記憶装置11のROMの
一部にCPU10に処理可能な形式で格納されている。
は、入力されたソーステキストおよび文字列長ごとの指
定頻度に対して、出力すべき圧縮用静的辞書の文字列長
2以上のシンボルをその実頻度とともにソーステキスト
から文字列長×出現頻度の降順に切出すためのロジック
であり、記憶装置11のROMの一部にCPU10に処
理可能な形式で格納されている。
5は、一旦生成した圧縮用静的辞書の中の特定のシンボ
ルを、なるべく長い他のシンボルが含まれるように複数
個の他のシンボルに分解し削除することにより、ソース
テキストの圧縮容量の増大を極力抑えながら、元の圧縮
用静的辞書の容量を削減するためのロジックであり、記
憶装置11のROMの一部にCPU10に処理可能な形
式で格納されている。
圧縮用静的辞書中の特定のシンボルを圧縮率への寄与が
最も大きくなるような静的辞書中の他の複数のシンボル
に分解削除することにより、ソーステキストの圧縮容量
の増大を極力抑えながら、元の圧縮用静的辞書の容量を
削減するためのロジックである。記憶装置11のROM
の一部にCPU10に処理可能な形式で格納されてい
る。
がら、記憶装置中のデータを読出してそのロジックを解
釈実行するための手段である。CPU10が対応する機
器となる。
段を実施するための方法を述べる。図2は、実施の形態
1に係るテキスト圧縮用辞書作成装置の頻度ガイドライ
ン算出手段の説明図である。
段の入力は、「静的辞書の予定語数(シンボル数)S
N」、「目標圧縮率RT(0<RT<1)」、「符号化
係数(β、γ)」、「シンボルの最大文字列長N」であ
り、出力は「目標圧縮率を満たすために必要となる、文
字列長Li(i=N、N−1、...、2)のシンボル
に対する頻度の最小値Gi」である。
切出手段」あるいは「効率指標関数値順文字列切出手
段」の入力である「各シンボル長に対する指定頻度値
(=頻度の最小値)」を与えることができる。
小値Giを算出するための具体的な方法の一例として、
図2に示す「評価条件式(1)」を用い、この条件式を
満たすGiを図2の「算出方法」に従って計算する方法
がある。
特定のシンボルSがGi回ソーステキスト中に出現する
場合、Sがソーステキスト中で占めるバイト数であり、
分子はSが圧縮されて長さL′(<Li)の場合符号
S′に符号化された場合、圧縮データ中に占めるS′の
バイト数を示す。したがって、左辺の値はSに関する圧
縮率を表しているので、これは入力された「目標圧縮
率」RT(=式右辺)以下でなければならない。
理由は以下のとおりである。まず、統計的な圧縮を行な
う場合、シャノンの情報量の定義により、データの出現
確率がpであればそのデータを識別するためのビット数
は、−log(p)ビットとなる。ここで、静的辞書に
おけるSの出現確率は、静的辞書のすべてのシンボルの
頻度の総和Fsumに対するSの頻度Giの割合で表わ
される。静的辞書の規模、対象となるソーステキストの
種類に依存するが、静的辞書の規模に応じておおよその
Fsumを与えることができれば、Sを識別するための
ビット数、すなわち、統計圧縮手法適用後の理論的な
S′の符号長は、−log(Gi/Fsum)ビットで
与えられることになる。
0K〜3Mバイトの規模の通常のテキストデータに対し
て、シンボル数が10K程度である圧縮用静的辞書の頻
度の総和Fsumは、Fsum=α*SN、(α=20
〜60程度)であることがわかっている。ここでは、α
の値を「頻度総和係数」と呼ぶ。αの値(すなわちFs
umの値)をソーステキストから、静的辞書を構成する
前に精度よく推定する方法は困難であるため、ここでは
経験値として特定の値をセットする方式にしている。
項は圧縮テキスト中に占めるS′の総バイト数を表わし
ていることがわかる。
トに戻すためには、静的辞書を用いて圧縮する場合、静
的辞書に対応する伸長用のテーブルが別途必要となる。
伸長用テーブルのサイズは符号化方式に依存するため、
「圧縮伸長モジュール」により異なる。したがって、圧
縮用静的辞書を利用する「伸長モジュール」のデータ構
造から、シンボル1個当りのサーチ用テーブルサイズと
シンボルの文字列を格納する場合サイズとをそれぞれ見
積もっておけば、伸長用データに占めるSのバイト数が
算出できる。
大きさを表わす係数をβ、シンボルの文字列を格納する
ための、文字列長に対するバッファサイズの算出係数を
γとする(β、γは圧縮伸長モジュールが決まれば算出
可能である)と、伸長用データに占めるSのバイト数
は、左辺分子第1項に示すようにγ*Li+βとなる。
単調減少関数であることを利用した単純なアルゴリズム
で、α、β、γをセットした後(21)、Gi=1から
始めて(22)、式(1)のGiに値をセットして実際
に(1)を満たすどうかを計算し(23)、満たしてい
なければ、Giを1ずつインクリメントしてGiの値が
式(1)を満たすようになるまで処理を繰返す(2
4)。初めて式(1)が満たされるGiの値が、Liに
対する「指定頻度ガイドライン値」である(25)。
繰返して、各シンボル長ごとにGiを求め(26)、こ
れを出力結果とする。
「算出例」に示す。次に、図3を参照して、長文字列切
出手段の実施方法の一例とその処理例を示す。
る固定の「ソーステキスト」、「静的辞書のシンボルの
文字列長最大値n(>1)」、および「シンボル長ごと
の頻度値Gi(i=N、...、2)」である。Giに
関しては、「頻度ガイドライン算出手段」の結果を目安
の値とすることができるが、Gi、Nの与え方に関して
は基本的に制限はない。
トを高効率に圧縮するための「圧縮用静的辞書」の一部
である。圧縮用静的辞書のデータ構造は、「シンボルと
その頻度の対」の集合である。このうち長文字列切出手
段によって求められるのは「シンボル長が2以上のシン
ボルとその頻度の対」の集合である。
の登録シンボルのもととなる「文字列長iの文字列(以
下i−文字列と表記する)の集合」を求め、頻度を満た
すi−文字列の集合をソーステキストから実際に切出し
て、文字列長iのシンボルの頻度表FRQiを構成す
る。ソーステキストから頻度を満たすi−文字列を切取
った残りのテキストの集合STiに対して、同様の操作
を繰返しFRQi−1、...、FRQ2を順次構成し
ていく。
ト、処理例3Dに入力されたシンボルの最大文字列長
n、処理例3Eに入力された指定頻度値G8、...、
G2の例を示す。
ない(すなわち、テキストの集合が処理対象であっても
よい)。ただし、処理対象がテキストの集合で構成され
る場合は、テキストにまたがってのシンボル切出は行な
わない。
対してまずi−文字列カウント処理を適用する。i−文
字列カウント処理は、テキストの集合に対して、各テキ
ストごとに行なわれる処理であり、テキストの先頭から
文字列長テキストの末尾(正確にはテキスト長−iの位
置)まで1文字ずつ位置をずらしながらi−文字列をカ
ウントする処理である。
に示すように、i−文字列とそのカウント値の対の集合
をOCi={(string、occurrenc
e)}とし、OCi=φ、pos=0(テキスト先頭位
置)の状態から始めて、pos1を先頭とする長さiの
文字列str(pos、i)がOCiに既に登録されて
いればその要素の出現回数値を+1インクリメントし、
まだ登録されていなければ(str(pos、i)、
1)を新たにOCiの要素として登録する(38、3
9、3A)という処理をposをカウントアップしなが
ら、テキスト長−iの位置にくるまで繰返す(3B)。
テキストが複数個あれば各テキストに対して同様の処理
を行なう(36)が、テキスト長がiより短いテキスト
は処理の対象外である(37)。
字列長iのシンボルの候補の集合が求められることにな
る。
初、ソーステキストSTに対して、8−文字列カウント
処理により、“ 辞書の本体デー”、“辞書の本体デー
タ”、“書の本体データや”、...という、1文字ず
つずらした8−文字列が次々とカウントされながら抽出
される。
“辞書の本体データと...”、“辞書の本体データ
の...”、“辞書の本体データに...”のような表
現が出てくれば、“辞書の本体データ”という8−文字
列の出現回数は相当カウントアップされることになり、
“...書の本体データや...”という表現が処理例
3Cに示した“辞書の本体データや...”という一箇
所だけにしか出現しなければ“書の本体データや”とい
う8−文字列の出現回数は1のままであることになる。
ウント処理を行なった出力のOC8である。このような
カウントの仕方で、I−文字列の集合がもれなく網羅的
に、かつ重複カウントがなく正しく行なわれる。
切出処理に戻る。8−文字列カウント処理の結果生成さ
れたOC8の要素は処理例3Fに示すように頻度がG8
以上のものでもあれば、G8未満のものもある。OCi
の要素をもとに指定頻度Giの条件を守りながらSTの
頻度表を切出す場合、処理効率の点から、出現回数がG
i未満の要素(処理例i=8の場合(3F)でいえば、
×印を打った要素に対応する)は予め「切出」処理の対
象から外しておく(31)。
ら、「なるべく高頻度の(長い)文字列を切出す」とい
うヒューリスティックスに従うため、OCiを予め出現
回数の大きなもの順にソートしておく(32)。
で、対象テキストの集合STi+1からOCiに登録さ
れている文字列を実際にカウントしながら切出していく
(33)。
+1「切出し」の処理は以下に従う。
Ti+1(j=1、...、Mi+1)に対して、 (1) T(i+1、j)の各処理対象文字列の先頭位
置から順にsに一致する部分文字列を操作する。
列=“…、s、…”。最初のsが見つかった場合、sよ
り前のT(i+1、j)の部分文字列をTT(i+1、
k)(kは見つかるごとにカウントアップする)とし、
sの頻度を1だけカウントアップする(初期値0)。
k)=T(i+1、j)と置く。 (3) Sより後にある部分文字列T(i+1、j)を
処理対象の文字列として、(1)(2)の処理を処理対
象文字列がなくなるまで繰返す。
1、k)}として、T(i+1、j)を更新する。処理
対象の文字列がsによって分割された形で登録されるこ
とになる。
て処理した結果、sの頻度f′がGi以上であれば、
(s、f′)をFRQiに登録する。
ずに、T(i+1、j)を切出し前の状態に戻す。
(1)〜(5)を行なった後、T(i、k)=TT(i
+1、k)としてSTiを生成する。
1)=STに対して、指定頻度値を満たすCO8を出現
回数順にソートしたもので切出した出力(8−文字列の
頻度表FRQ8)を表している。
書の本体データや検索用のインデックスを記憶…”は、
OC8の要素“辞書の本体データ”の切出しにより、
“ ”と“検索用のインデックスを記憶…”という部分
に分けられ、これらの分けられた新たな処理対象テキス
トは、さらに、OC8の要素“のインデックスを”の切
出しによって、“ ”、“検索用”、“のインデックス
を”、“記憶…”に分けられる。
の「切残しテキスト」が次回OC7(3I)の切出し対
象の処理対象テキストST8={T(8、j)}になる
(3G)。
ト処理と切出処理をi=n、…、2まで繰返し(3
4)、その後、FRQiの集合を結合して2文字列長以
上の頻度表と、切残しテキストの集合ST2が生成され
る(35)。図5で、処理例を(3J、3K)に示す。
出手段の実施方法の一例を説明する。
切出し操作により切残されたテキストの集合、出力は、
入力テキストに対してその中に含まれる文字単位の頻度
表である。
に対して、1−文字カウント処理を適用し(51)、そ
の結果生成される(1−文字シンボル、出現回数)の対
の集合をそのまま処理結果の頻度表FRQ1とすればよ
い。
RQと、切残しテキストに対して1文字シンボル抽出手
段により抽出した頻度表FRQ1とを結合すれば、最終
結果である圧縮用静的辞書SDが求められる。
手段」の実施方法の一例とその処理例を示す。
は、「長文字列切出手段」と同じで、入力は、圧縮対象
である固定の「ソーステキスト」と、「静的辞書のシン
ボルの文字列最大長n(>1)」と、「シンボル長ごと
の指定頻度値Gi(i=n、…2)」とであり、出力
は、ソーステキストを高効率に圧縮するための「シンボ
ル長が2以上の圧縮用静的辞書」である。
からなるべく長い文字列を順に切出すための手法である
のに対して、「効率指標関数値順文字列切出手段」は、
単に文字列長だけを指標とするのではなく、出現回数も
考慮に入れた何らかの圧縮効率指標を表わす関数を予め
用意して、この関数値の大きいもの順に静的辞書のシン
ボルを切出していくための方式である。
度の低いものを切出すより、文字列長が短く頻度の高い
ものを切出した方が圧縮効率がよくなるといった場合を
想定している。
とは困難な問題である。これは、静的辞書の切出処理が
終わらないとすべてのシンボルに対する出現回数の総和
がわからない(すなわち正確な出現確率がわからない)
ので、切出処理の途中で算出されるシンボル候補の文字
列の「文字列長X」とその「出現回数Y」だけから、そ
の文字列の正確な圧縮効率を予想するのが難しいことに
よる。
を与えることはできる。おおよその圧縮効率を与える関
数の例を以下に示す。
数Yの文字列の、圧縮後の符号長の総和Sは、切出後の
出現頻度の総和をFSumとすると、S=−Xlog2
(Y/FSum)で表わすことができる。
の総和と圧縮後の符号長の総和の差が大きいもの」とみ
なすと、F(X、Y、FSum)=X*Y−S=X*Y
+X*log2(Y)−X*log2(FSum)と記
述できる。
いが、「どのように切出してもほぼ一定」として現実の
計算において丸めこめば、αを定数として、F(X、
Y、FSum)=X*(Y+log2(Y)−α)≒X
*(Y+log2(Y))とみなされるから、 F(X、Y)=X*(Y+log2(Y)) を、おおよその圧縮効率指標を与える関数とすることが
できる。その他、もっと精度の高い観点から作成した関
数を圧縮効率指標関数であるとしてもよいし、あるい
は、場合によっては、F(X、Y)=X*Yとして、ソ
ーステキストに占める文字数の多いもの順に切出しても
効率のよい切出しができる場合がないとは限らない。
めずに説明を進める。ソーステキストST、i−文字列
の指定頻度をGi、シンボルの最長文字列長をn、nか
ら2までのi−文字列カウント処理の結果をOC、OC
を効率指標関数値順にソートしたものをOCC、STを
OCCで切出して生成される頻度表をFRQ、切残され
たテキストの集合をSTrと置く。
列カウント処理をi=2まで繰返し(41、42)、求
めたOCn、OCn−1、...、OC2を結合して
(単純な集合の和)、OCを用意する(43)。
(s、o)で指定頻度の条件o≧G|s|を満たさない
要素は除去する(44)。
字列sの圧縮効率指標はF(s、o、...)で表わさ
れる。各(s、o)の出現回数oをF(o、
s、...)に置き換えたものをOCCとし(45)、
OCCをF(o、s、...)の降順、sの効率指標関
数値順にソート(46)した上で、図3の(34)の処
理と同様の方法で、STからOCCの要素を順に切出し
FRQとSTrを求める(47)。
「効率指標関数値順文字列切出手段」の流れを説明す
る。ここでは、説明をわかりやすくするためにF(X,
Y)=X*Yという単純な効率指標関数を例にとる。
ボル最大長n、指定頻度Giはそれぞれ図3と同じであ
る。STの先頭から|ST|−8の位置まで1文字ずつ
ずらしながら8−文字列をカウントしたものがOC8
で、ここまでは「長文字列切出処理」と同じ結果であ
る。
OC8で切出し、8−文字列の頻度表と切残しテキスト
ST8を生成し、その後も切残しテキストに対して切出
し−切残しの処理を繰返す。これに対して、「効率指標
関数値順文字列切出手段」では、「文字列長によらず、
効率指標関数値の大きいシンボルを見い出す」という戦
略をとるため、OC8でソーステキストを切出すプロセ
スは行なわず、最初にソーステキストからすべてのOC
i(i=n、...、2)を作成、結合した上で、効率
指標関数値順にソートする。
はOC8の場合と同様に、STの先頭から末尾までi−
文字列のカウントが行なわれる(48)。OCiを結合
し、指定頻度を満たさないものを削除し、効率指標関数
値順にソートしたOCCの一部を処理例49に示す。
スを”という文字列は、効率指標関数値が64(=8*
8)である。これに対して、6−文字列“インデック
ス”という文字列は他の部分でも頻出するため、効率指
標関数値が2394(=399*6)になる。
出手段」では「長文字列切出処理」で切出された“のイ
ンデックスを”より先に“インデックス”が切出される
という場合が起こり得る。その結果、“のインデックス
を”を切出すときは既に処理対象テキストから“のイン
デックスを”を含むテキストは残っておらず、FRQに
はシンボルとしては登録されず(4A)、最初の文字
“の”と最後の文字“を”はそれぞれ切残しテキストS
Trに残る(4B)。この場合、「長文字列切出処理」
よりも“インデックス”に対する頻度が大きくなり“イ
ンデックス”に対する符号長は短くなる。
り生成されたSTrは、「長文字列切出手段の場合と同
様に、「1文字シンボル抽出手段」により1文字頻度表
化され、これと2文字以上のシンボルの頻度表FRQの
和により最終的な静的辞書を得る。
切出す方法についての具体化手順を与えた。それには2
種類の方法があり、請求項1を実施するための手段は
「長文字列切出手段」と「1文字シンボル抽出手段」を
組合せることにより、また、請求項2を実施するための
手段は「効率指標関数値順文字列切出手段」と「1文字
シンボル抽出手段」を組合せることにより実現できるこ
とを示した。
的辞書のサイズはソーステキストの内容により異なり、
基本的には「切出処理」を実行して実際に静的辞書を構
築してみないとそのサイズを正確に求めることはできな
い。
伸長用テーブル(静的辞書をもとにして構成する、静的
辞書サイズに比例したサイズのテーブル)のサイズに制
限があって、1回の「切出処理」で求めた静的辞書のサ
イズがこの制限を満たさない場合は、サイズのより小さ
な静的辞書を構成する必要がある。
書法」を用いる場合は必ず伸長側で「静的辞書」に対応
する固定の伸長テーブルを持たなければならないので、
圧縮率に大きく影響するようなサイズの静的辞書を生成
することは避けなければならない。
はソーステキストの圧縮率をあまり損ねることなく、静
的辞書のシンボル数を減らすための適切な手段を提供す
るものとなっている。
法には、2文字以上の長文字シンボルで頻度の低いもの
を1文字シンボルに分解して、元からある1文字シンボ
ルとマージする方法がある。
(“辞”、16)、(“書”、16)、(“本”、3
2)、(“体”、8)という静的辞書の要素に対して、
(“辞書本体”、4)というエントリを削除したい場
合、“辞書本体”というシンボルを1文字ずつに分解し
て(“辞”、4)、(“書”、4)、(“本”、4)、
(“体”、4)を元からあった静的辞書の要素とマージ
(シンボルの頻度の和をとって静的辞書の要素を更新す
ること)して、(“辞”、20)、(“書”、20)、
(“本”、36)、(“体”、12)を得る。この方法
は、1文字シンボルの頻度数が増加するので1文字シン
ボルの符号化コードはもとより短くなる場合があるが、
通常1文字シンボルは頻度数が大きく、頻度が多少増え
ても符号長が変化するに至らない場合も多い。
タ”というシンボルが“辞書の”という他のシンボルと
“本体データ”という他のシンボルに分解することがで
きれば、それぞれの“辞書の”、“本体データ”という
もともとのシンボルの頻度数があまり大きくない場合、
分解によって頻度を増やした分、それぞれのシンボルの
符号長が短くなる確率が高い。
L、シンボルSを分解しシンボルS1、S2の和により
分解・削除し、静的辞書を上述の方法で更新したときの
S1、S2の符号化長をL1、L2とする。このとき大
抵はL1+L2>Lであり、分解した符号長の和の方が
元の符号長より小さくなる場合は稀である。
伸長用テーブルの容量は確実に減少するが、圧縮データ
の容量は少し増加する。
いほど、また分解個数は同じでも、何通りかの分解の仕
方が存在するときはより効率的な分解の仕方を選ぶこと
により、ソーステキストの圧縮率の増加を極力抑え込む
ことができる。
削除のための文字列切出手段」の実施の方法の一例とそ
の処理例を説明する。これにより請求項3の要件を実現
することができる。
の入力は既に求められた、ソーステキストに対する「圧
縮用静的辞書」と「静的辞書内の削除したい要素」であ
り、出力は「ソーステキストの圧縮効率の低下を極力抑
え込んだ形で、削除対象要素を削除した新しい圧縮用静
的辞書」である。
ソーステキストのすべての文字種をカバーしている場合
について述べる。
では、シンボル長の降順にソートされた、削除対象要素
よりも短いシンボルの集合により、削除対象要素のシン
ボルに「文字列切出処理」を適用する。すなわちここで
は、分解方法として分解シンボルの集合になるべく長い
シンボルを含ませるという戦略を用いる。
が記述されている。複数個一度に削除したい場合は、こ
の処理手順を個数分繰り返せばよい。
i、fi)を取り除き(61)、削除対象のシンボル長
pよりシンボル長が短い要素からなる静的辞書の部分集
合LowPをシンボル長の降順にソートしておく(6
2)。
て、siの分解文字列の集合FRQを生成する(6
3)。このとき、一般にsiの切残しテキストが生じる
可能性があるが、静的辞書に登録されている1文字シン
ボルは、ここではソーステキストのすべての文字種をカ
バーしていると仮定しているので、すべて、元の静的辞
書のシンボルにより分解されることになる。
るので、切残しテキストが生じるような削除対象に関し
てはこの手法は適用できない。なお、実際は、数メガと
いうサイズの大きなソーステキストでは1文字シンボル
がソーステキストのほとんどの文字種をカバーするの
で、ほとんどのシンボルがこの手法によって削除でき
る。
たものであるから、FRQの各要素のシンボルと同一の
シンボルを持つ要素は必ずSD1に存在する。このよう
なSD1の要素に対して、削除シンボル(si、fi)
の頻度fi分だけその頻度を増やせば、ソーステキスト
はSD1により切出されたのと同じことになる。
シンボルが共通するSD1の要素(s′、f)の頻度を
f′*fi増やす(64)ことの意味である。
ルの分だけ増やして更新したSD1が本処理の最終結果
SDreduceとなる(65)。
(“のインデックスを”、8)を削除する場合を処理例
に示す。
スを”、8)を単純に除去したもの(67)であり、L
owPは文字列長7以下のシンボルを持つ要素のみから
なるSD1の部分集合(68)である。切出しの対象テ
キストが削除対象要素のシンボルの“のインデックス
を”(69)である。
RQ処理例6Aに示す。“のインデックスを”から、ま
ず“インデックス”が次いで切残しテキストから“の”
と“を”がそれぞれ頻度1で切出される。
D1の対応要素(“の”、2468)、(“インデック
ス”、388)、(“を”、1234)の頻度をそれぞ
れ1*8ずつ増やしたものである。
て、より高度なシンボル削除手段である「シンボル分解
手段」の実施方法の一例とその処理例を説明する。
ル削減のための文字列切出手段」と同じである。すなわ
ち、入力は「圧縮用静的辞書」と「静的辞書内の削除し
たい要素」、出力は「削除更新後の静的辞書」である。
手法は使わず、任意の位置で削除対象文字列を分解した
とき、分解されたそれぞれの文字列が静的辞書のシンボ
ルとして登録されているどうかを調べるというアプロー
チをとる。
「シンボル削減のための文字列切出手段」では処理後に
しかわからなかった分解個数を予め指定できるととも
に、複数通りの分解候補からソーステキストの圧縮率に
最も貢献するものを選択することができるので、圧縮率
の低下防止の観点からはより効率的な削除処理が可能と
なる。
ための文字列切出手段」では分解できていたシンボル
が、分解個数制限のために分解できなくなる場合が増え
るため、削除個数のコントロールが難しくなるのも事実
である。
ートに沿って説明する。圧縮効率を考慮して、この処理
例では分解個数を2とする。3以上の分解個数に対する
アルゴリズムも多少の拡張で実施可能であるが、2の場
合よりも圧縮効率が低下すること、処理時間が指数関数
的に増加することを考え合せれば分解個数2の場合が実
用的であると考えられる。
(s、f)を取り除く(70)。次に、削除対象シンボ
ルs(シンボル長をNとする)に対してsの分解方法の
候補の集合Cを求める。
1、…i、…、N−1とし、sを、sの先頭からiまで
の部分文字列s1iと、iから末尾までの部分文字列s
2iに分解する(72)。
SDの要素(s1i、f1i)と(s2i、f2i)が
あれば(73)、sは静的辞書の他のシンボルで分解で
きることになるので、((s1i、f1i)、(s2
i、f2i))をsの分解方法の1つ(1iでの分解)
としてCに登録する(74)。
1)、分解候補集合Cを生成する。ここでC=空集合の
場合(77)は、sは2個のシンボルには分解できない
のでこの処理は失敗する(78)。C≠空集合ならば
(77)、Cの要素中から圧縮効率のよい分解シンボル
の候補を選択する処理B(75)に入る。
要素に対して圧縮効率のおおよその指標を与える計算式
によりその効率指標Eを計算し(750)、その中から
最も効率指標の値の大きい要素を取出す(751)。
け、元の静的辞書の分解シンボルの各頻度Fiを増加さ
せるので、頻度の総和Sumは削除の前後で変化しな
い。削除前後における各分解シンボルのビット数は、分
解前が−log(Fi/Sum)ビット、分解後が−l
og((Fi+D)/Sum)ビットであるから、ビッ
ト数の減少分は、 −log(Fi/Sum)−(−log((Fi+D)
/Sum))=log(1+D/Fi) となる。
するから、結局D/Fiの和の大きいものが全体のビッ
ト減少幅の大きい、すなわち圧縮効率が高いものとな
る。これが式(2)の意味である。
た最も効率指標の大きいCの要素に対して、実際にSD
の中でその頻度を削除要素の頻度数分増加させ、最終的
な削除後の静的辞書を得る(76)。
SDを、処理例7Aに削除対象文字列とその分解位置
を、また、処理例7Bに分解候補集合Cの例を示す。
た場合と分解位置5で分解した場合に、それぞれの分解
シンボルと同一のシンボルを持つ要素がSD内に存在す
るので、Cには分解シンボルのペアが2つ登録される。
れぞれ効率指標を計算した結果を示す。効率指標は最初
の要素の方が大きいので分解シンボルとしては、最初の
要素が選ばれ、削除対象文字列“辞書の本体データ”は
“辞書の”と“本体データ”に分解されることになる。
を削除する代わりに、(“辞書の”、8)、(“本体デ
ータ”、8)の頻度をそれぞれ10だけ増加させて、削
除後の静的辞書SDreduce(7D)を得る。
ト圧縮用辞書作成装置によれば、大容量の固定のテキス
トデータが必要となる装置(電子辞書や電子ブックな
ど)において、テキストデータに対する優れた圧縮用静
的辞書を提供することができる。
とにテキストデータを圧縮・伸長するモジュールを作成
すれば、メモリ容量を大幅に削減して製品のコストダウ
ンを図ることができる。
書自体のサイズ(エントリ数)を、ソーステキストの圧
縮率をあまり落とさずに、細かく調整できる。この結
果、実際に製品に圧縮伸長モジュールを搭載する場合の
メモリ容量のコントロールが柔軟に行なえ、より迅速な
製品開発が可能となる。
に係るテキスト圧縮装置の全体構成説明図である。基本
的構成は、実施の形態1に係るテキスト圧縮用辞書作成
装置の構成と共通しており、同一の要素には同一の符号
を付している。以下、共通する要素については説明を省
略し、固有の要素について説明する。
力されたソーステキストに対して、ソーステキストの各
構成要素ごとに静的辞書、符号化表、および切換対応表
を生成するためのロジックであり、記憶装置11のRO
Mの一部にCPU10に処理可能な形式で格納されてい
る。
要素ごとの辞書作成手段」により作成した構成要素ごと
の符号化表を切換えながらソーステキスト圧縮・伸長す
るためのロジックであり、記憶装置11のROMの一部
にCPUに処理可能な形式で格納されている。
数の辞典テキストに対して、各辞典に共通なテキストの
構成要素を集め、各構成要素ごとに各辞典が共有する静
的辞書、符号化表、辞書ごとの切換対応表を作成するた
めのロジックであり、記憶装置11のROMの一部にC
PU10に処理可能な形式で格納されている。
「共有辞書作成手段」により作成した構成要素ごとの静
的辞書を各辞典ごとに用意された切換対応表に従って切
換ながら、ソーステキストを圧縮・伸長するためのロジ
ックであり、記憶装置11のROMの一部にCPU10
に処理可能な形式で格納されている。
書には登録されなかった局所的な高頻度語を導入シンボ
ル、出現位置、文字列長で置換することにより辞典ソー
ステキストを圧縮するためのロジックであり、記憶装置
11のROMの一部にCPU10に処理可能な形式で格
納されている。
セット置換圧縮手段」により圧縮されたデータを伸長し
て、元のソーステキストに復元するためのロジックであ
り、記憶装置11のROMの一部にCPU10に処理可
能な形式で格納されている。
登録されなかった局所的な高頻度語を導入シンボルと番
号とで置換することにより辞典ソーステキストを圧縮す
るためのロジックであり、記憶装置11のROMの一部
にCPU10に処理可能な形式で格納されている。
縮手段」により圧縮されたデータを伸長して、元のソー
ステキストに復元するためのロジックであり、記憶装置
11のROMの一部にCPU10に処理可能な形式で格
納されている。
めの方法を述べる。図15は、構成要素ごとの辞書作成
手段の説明図である。「構成要素ごとの辞書作成手段」
の入力は、複数個の記述部分から構成されるテキストで
あり、辞典では英和辞典の意味テキスト(見出し以外の
部分)が代表的な例である。
構成要素ごとに作成された静的辞書と符号化表、および
切換対応表(切換シンボルと切換シンボルの出現直後に
セットされる符号化表の対)である。ここで、切換シン
ボルとは、静的辞書中に登録されている、テキスト中の
構成要素と構成要素を区切るための文字列(シンボル)
を示す。
ストの構成要素間を区切る文字列が特定できる場合は、
その文字列を区切り記号として、どの構成要素とどの構
成要素を区切るかという情報とともにRAM上に記憶す
る。構成要素間を区切る明確な文字列が特定できない場
合は、入力テキスト中には決して出現しない適当な文字
列を区切り記号としてテキスト中に挿入し、その区切り
記号と区切られる構成要素をRAM上に記憶する(22
0)。
スト、区切り記号が前方の構成要素に含まれるように分
割し、複数個のサブテキストを生成する(221)。
辞書(可変長シンボルとその出現頻度の対)を切出す。
テキストから1つの静的辞書を切出すための方式につい
ては、前述したとおりここでは、前提となる方式である
ものとして、詳述はしない。
から末尾まで1文字ずつ先頭位置をずらしながらi文字
列長の文字列の出現回数をカウントし、これをソートし
て圧縮率に貢献する頻度を持つ文字列のみをテキストか
ら切出し実際の頻度に計算し、これを静的辞書に登録す
るとともに、切残されたテキストに対して同様に(i−
1)文字列長の文字列に対して処理を行ない、これをi
=N〜1まで繰返すという手順がある。ここでは、静的
辞書に登録されるシンボルに必ず区切り記号を含めてお
く必要があるため、静的辞書を切出す前に、対象となる
サブテキストから、まず区切り記号だけを静的辞書のシ
ンボルとして切出した後、切残されたサブテキストから
上述のような方法を使って他のシンボルを切出すことに
よって各構成要素ごとの静的辞書を構築する(22
2)。
する方法には既知なものがいくつか存在する。ここで
は、静的辞書から各シンボルに割り当てられる符号(圧
縮データのビット列)を求め、シンボルと符号の対から
なる符号化表を作成し、符号化表を参照しながら圧縮・
伸長を行なう手法を例にとって以降の説明を行なう。
れが統計ベースのものであれば何でもよく、本質的な問
題ではない。PRENTICE HALL Advanced Reference Serie
s,“Text Vompression", 1991 などに記述された方法
で、各静的辞書から構成要素ごとに符号化表を作成し、
これをROMに記憶しておく(223)。
して登録されているが、この区切り記号のシンボルをこ
こでは「切換シンボル」と呼び、予めRAMに記憶して
おいた「区切り記号とそれにより区切られる構成要素の
対」の情報をもとに、「切換シンボルとその直後の構成
要素の符号化表の対」すなわち、「切換対応表」を作成
しこれをROMに記憶しておく(224)。
素ごとの辞書作成手段による処理例を処理例225以下
に示す。処理例225は、英和辞典の意味テキストの一
部で、“pace”という項目に対応する付近の内容を
示している。テキストは、各項目の先頭から、「発音記
号(“[peis]”)」、「訳(“[な]、…、ある
く”)」、「例文(“at a、…、歩調で”)」、
「変化形(“[な][ふく、…、pacing”)」の
各記述部分が順に出現する。
するコード種が他とは異なっているので、別々の静的辞
書を用意しておく方が効率的に圧縮できる。また、訳の
文と例文内の日本語訳の部分は「日本語テキスト」とし
て、例文内の英語部分は「英語テキスト」として別個に
圧縮した方が、やはりそれぞれのコード種が大きく異な
るため、圧縮効率は良くなる。これに従って、たとえ
ば、「日本語」「英語」「発音記号」「変化形」の各構
成要素にテキストを分割する。
を「日本語」「英語」「発音記号」「変化形」の各構成
要素に区切るために区切り記号を特性あるいは挿入した
状態を示している。
た時点で「日本語」テキストに切換わる。これは始めか
らテキスト内に区切り記号が存在する例である。「訳」
に関しては、すべて「日本語」テキストとして処理し、
区切記号として挿入した文字列“●”が出現した時点で
「英語」テキストに切換わる。「例文」に関しては、例
文内で「日本語」テキストに切換わる部分と「変化形」
テキストに切換わる部分にそれぞれ“\”、“^”の区
切り記号を表わす文字列が挿入されている。
を実際の「日本語」「英語」「発音記号」「変化形」の
各構成要素ごとに分割して構成要素ごとにまとめたサブ
テキストの例を示す。このようにして同種のコードが多
く含まれるように圧縮対象テキストを分割しておいた上
で、各テキストに対して静的辞書を作成する。処理例2
28に「日本語」「英語」「発音記号」「変化形」の各
テキストごとに作成された「静的辞書」の例を示す。こ
こで、各静的辞書には、それぞれのソーステキストに含
まれていた区切り記号がそのままの形で「切換えシンボ
ル」として含まれている必要がある。発音記号用静的辞
書中のシンボル“]”、日本語テキスト用静的辞書中の
シンボル“●”、“^”、英語テキスト用静的辞書中の
シンボル“\”が切換えシンボルとして扱われるもので
ある。
と、切換えシンボルが出現した直後から次のどの符号化
表を使って圧縮伸長を行なわねばならないかを示す「切
換え対応表」の作成例を示す。
成要素ごとの静的辞書をもとに、周知の方法で符号化ビ
ット列を求めることにより作成した、「構成要素ごとの
符号化表」の例である。統計情報に基づく符号化表で
は、出現確率の高いシンボルには短いビット列が、また
出現確率が低いシンボルには長いビット列が割り振られ
ることになる。たとえば「日本語テキスト用静的辞書」
中で頻度の高い“(1)”、“●”には短いビット列
が、また頻度が低い“ゆっくり”には長いビット列が割
り振られている。
的辞書を用意する場合と、テキスト全体を対象とした1
つの静的辞書のみを用意する場合の圧縮効率の違いを処
理例22B、処理例22Cに示す。
“[3単]−s”は、変化形テキストに対する場合で
も、テキスト全体に対する場合でもその出現頻度は変わ
らないが、変化形テキスト内での出現確率は、テキスト
全体における出現確率よりはるかに大きいため、出現確
率から求められる“[3単]−s”の理論上の符号長に
は大きな差ができる。
各々のシンボルの符号長が短くなり、圧縮テキストデー
タ自体はかなり小さくなる。反面、分割テキストごとに
複数個の静的辞書(符号化表)を用意しなければならな
いので、静的辞書のサイズが増大することになる。一般
的には、テキストが巨大な場合(1Mバイト前後以上)
は、たとえ静的辞書のサイズが増えてもテキスト自体の
圧縮効率がそれを補うため、全体としての圧縮率が改善
される場合が多い。図22に辞書切換圧縮伸長手段の実
現例を示す。
号によって明確に区切られた複数の構成要素からなるソ
ーステキスト(または圧縮されたデータ)、構成要素ご
との辞書を作成手段により作成された構成要素ごとの符
号化表および切換対応表である。辞書切換圧縮伸長手段
の出力は符号化表と切換対応表に基づいて符号化表を切
換えながら圧縮伸長した結果の圧縮データまたは復元さ
れたソーステキストである。
ついては、符号化方式自体は既知なものであるので説明
を省略し、「複数の符号化表をいかにして切換えながら
圧縮伸長を進めるか」という本発明に固有の部分につい
て処理手順を説明する。
号化表を定める(330)。どこからどんな部分を伸長
するかにより、開始時にセットされる符号化表が異な
る。たとえば処理例226の項目“pace”に対応す
る意味テキストの先頭からの末尾までを圧縮する場合に
は、最初に“発音記号の符号化表”をセットしておく。
とに、1シンボル分の圧縮(伸長)処理を行ない(33
1)、処理されたシンボルば圧縮(伸長)終了を示すシ
ンボルであれば圧縮(伸長)を終え、そうでなければそ
のシンボルが切換シンボルとして切換対応表に登録され
ているか否かを調べる(332、333)。切換シンボ
ルであれば切換対応表に従って次からの圧縮(伸長)に
用いる符号化表をセットした上で次のシンボルの圧縮
(伸長)に移り、切換シンボルでなければそのまま現在
セットされている符号化表を使って次のシンボルの圧縮
(伸長)を行なう(334)。伸長処理において切換シ
ンボルがソーステキストに挿入されたものである場合
(処理例226の“●”や“^”)は、伸長バッファに
は伸長結果を書込まずにそのまま処理を進める。
す。共有辞書作成手段は、「構成要素ごとの辞書作成手
段」と基本的な処理タスクが変わらない。ここでは、入
力された複数の辞典テキストに同じような記述部分が存
在する場合に、各辞典ごとに静的辞書を用意するより
も、同じ記述部分を縦割りにして圧縮対象テキストをま
とめた上で構成要素ごとの静的辞書を用意した方が圧縮
効率がよくなることを利用する。したがって、処理タス
クは「構成要素ごとの辞書作成手段」とほとんど同じ、
「構成要素ごとの辞書作成手段」では処理対象が1つの
テキストであったが、「共有辞書作成手段」では処理対
象が2つ以上の異なるテキストになる部分にのみ違いが
でる。
も1つの構成要素が一致する複数個の辞典ソーステキス
トであり、「共有辞書作成手段」の出力は、構成要素ご
とに作成された静的辞書と符号化表、および辞典ごとに
作成された切換対応表(切換シンボルと切換シンボルの
出現直後にセットされる符号化表の対)である。
「構成要素ごとの辞書作成手段」と同様の方法で、区切
り記号の特定、挿入を行ない、区切り記号と区切り記号
により区切られる構成要素をRAM上に記憶する(44
0)。
典ごとのソーステキストを、区切り記号が前方の構成要
素に含まれるように分割し、複数個のサブテキストを生
成する(441)。
に、複数の辞典に跨がった形で集める(442)。構成
要素ごとに再編成された各テキストから、「構成要素ご
との辞書作成手段」の場合と同様の手段を用いて静的辞
書、符号化表を作成してROMに記憶しておく(44
3)。ただし、「切換対応表」は「構成要素ごとの辞書
作成手段」とは異なり、同じ構成要素内のシンボルでも
それがある辞典内では切換シンボルとして扱われ、また
別の辞典内では単なるシンボルとして扱われる場合もあ
ることを考慮し、「辞典ごと」の「切換対応表」を用意
しておかねばならない。ここの「切換対応表」の具体的
な作成方法は、構成要素ごとの辞書作成手段」と同様で
ある。
理例を示す。ここでは、「英和辞典」「和英辞典」「英
熟語辞典」「国語辞典」の4つの辞典テキストが圧縮対
象として入力された場合を例に説明する。「英和辞典」
「和英辞典」「英熟語辞典」「国語辞典」のソーステキ
ストの一部を処理例444〜処理例447に示す。
定、あるいは挿入した後のテキストを処理例448、4
49、44Aおよび44Bに示す。「英和辞典」の区切
記号は発音記号と日本語テキストの各構成要素を区切る
“]”、日本語テキストと英語テキストを区切る“●”
(挿入)、英語テキストと日本語テキストを区切る
“\”(挿入)、日本語テキストと変化形テキストを区
切る“^”(挿入)である。「和英辞典」の区切記号
は、日本語テキストと英語テキストを区切る“]”、英
語テキストと日本語テキストを区切る“\”である。
ストと日本語テキストを区切る“\”である。「国語辞
典」の区切り記号はなしで、テキストすべてにわたって
日本語テキストから構成されるものと見なしている。
ストを、辞典間に跨がる形で、各構成要素ごとに集め、
再編成したテキストを処理例44Cに示す。各構成要素
ごとに再編成されたテキストから切出した、構成要素ご
との静的辞書を処理44Dに示す。各辞典ごとに作成さ
れた、切換シンボルと、その直後からセットされる符号
化表の対を示す「切換対応表」を処理例44Eに示す。
を小さくする、という観点からは、共有辞書を作成する
より個々の辞典ごとに別個の静的辞書を構築した方が、
各シンボルの出現確率が少しでも大きくなるため有利で
あるが、「構成要素ごとの辞書作成手段」の場合とは逆
に、シンボルの出現確率を稼ぐ効果よりも、静的辞書を
共有することによって圧縮データの容量を抑える方が、
複数個の大容量の辞典を圧縮対象とする場合は効果が大
きい。これは、各辞典ごとに各構成要素ごとの静的辞書
を作成した場合、重複するシンボルが数多く切出される
ため、静的辞書自体が冗長になってしまうことによる。
り”、英語テキストの“at”など(4C)は図に示す
ようなわずかな範囲でも異なる辞典にともに出現する。
これらを別個の静的辞書で定義すると、全体としては、
同じシンボルが多数定義された冗長な静的辞書がいくつ
も構成されてしまうことになる。
長手段の実現例を示す。共有辞書切換圧縮・伸長手段の
入力は、区切り記号によって明確に区切られた構成要素
からなる複数の辞典ソーステキスト(または圧縮された
データ)と、構成要素ごとの辞書作成手段により作成さ
れた構成要素ごとの符号化表および各辞典ごとに作成さ
れた切換対応表である。辞書切換圧縮・伸長手段の出力
は、符号化表と切換対応表に基づいて符号化表を切換え
ながら圧縮(伸長)した結果の圧縮データ(または復元
されたソーステキスト)である。
符号化表に基づく具体的な圧縮伸長方法については、周
知の方法であるため説明を省略し、「複数の符号化表を
いかにして切換えながら各辞典ごとに圧縮伸長を進める
か」という本発明に固有の部分のみについて処理手順を
説明する。
するのかを表わす辞典IDをRAMにセットし、処理対
象の辞典テキストが変わるごとにIDも変えるものとす
る(550)。
符号化表を定める(551)。次に、現在セットされて
いる符号化表をもとに、1シンボル分の圧縮(伸長)処
理を行ない(552)、処理されたシンボルが圧縮(伸
長)終了を示すシンボルであれば圧縮(伸長)を終え、
そうでなければそのシンボルが切換シンボルとして辞典
IDに対する切換対応表に登録されているか否かを調べ
る(553、554)。切換シンボルであれば辞典ID
ごとの切換対応表に従って次からの圧縮(伸長)に用い
る符号化表をセットした上で次のシンボルの圧縮(伸
長)に移り、切換シンボルでなければそのまま現在セッ
トされている符号化表を使って次のシンボルの圧縮(伸
長)を行なう(554、555)。伸長処理において切
換シンボルがソーステキストに挿入されたものである場
合(448)の“●”や“^”は、伸長バッファには伸
長結果を書込まずにそのまま処理を進める。
オフセット置換圧縮手段の実現例を説明する。
な高頻度が存在するような辞典テキストおよび、その辞
典テキストに対して予め構築された静的辞書と符号化表
である。また、オフセット置換圧縮手段の出力は、局所
的な高頻度語の部分が高効率に圧縮された辞典テキスト
の圧縮データである。また、処理の途中で、高頻度語を
特定し、それを取込んだ形で置換修正された辞典テキス
トと、修正テキストに対して更新された静的辞書および
符号化表が生成される。
および図36を参照して、処理例から先に説明を行な
う。処理例663は英和辞典のソーステキストの一部で
ある。上から順に、“citric acid”、“c
itron”、“citrus”という項目のそれぞれ
の意味が記述されているようすが示されている。
度語が“柑橘(かんきつ)類”および“シトロン”であ
るとすると、オフセット置換圧縮手段によって処理例6
63のテキストは処理例664のように書替えられる。
すなわち、“柑橘(かんきつ)類”および“シトロン”
はどちらも初回の出現時には何も置換されないが、2回
目以降の出現時には導入シンボル“*”と“:”で区切
られた2つの数字に置換される。たとえば、処理例66
3の2行目の“シトロンの木…”の部分の“シトロン”
は、処理例664では“*29:,8”で置き換えられ
ているがこれは、この位置にはソーステキストで29バ
イト手前の位置から8バイト分の文字列(=同じ行の
“シトロン(レモン)に…”の部分の“シトロン”)と
同じ文字列が出現することを表わしている。
中に存在しない文字列であれば何であっても構わない。
また、出現位置と文字列長を表わす2つの数字は、圧縮
効率を考えてその値の範囲を制限する必要がある。この
例では、出現位置を1Kバイト手前まで(10bi
t)、文字列量を32バイトまでとしている。
が書替えられてしまったので、それに併せて静的辞書6
65、符号化表666にも変更が必要になる。すなわ
ち、1回置換を行なうごとに導入シンボル“*”の静的
辞書への登録(カウントアップ)、置換された各シンボ
ルの静的辞書内でのカウントダウンにより、静的辞書と
テキストの整合性を維持しておく。テキスト全体にわた
って置換および静的辞書667の変更を行なった後、静
的辞書から周知の手段で符号化表を作成し直す。
を、更新した符号化表668により符号化(圧縮)す
る。
は、符号化表による符号化は行なわずに、それらを10
bit、5bitのバイナリの数値に変換する処理が通
常の場合とは異なる。以上のような圧縮法により、オフ
セット置換された文字列(2回目以降の出現文字列)は
一様に導入シンボルの符号長+15bitで符号化され
ることになる。導入シンボルの出現回数によりその符号
長は異なるが、英和辞典のような局所的な高頻度語がよ
く出てくるテキストに対してはその符号長を短く抑える
ことができる。
せずに、元の静的辞書665および符号化表666を元
に圧縮した場合の符号長と、オフセット置換圧縮を併用
して圧縮した場合の符号長の比較を示す。
な高頻度語であれば、元の静的辞書中では符号長の長い
いくつかのシンボルに分解せざるを得ない文字列も、オ
フセット置換を用いることにより、2回目以降の出現以
降で一定長の、元より短いビットで符号化できることが
わかる。
重要なことは、局所的な高頻度語をうまく検出すること
である。すなわち、元の静的辞書を圧縮する場合より少
なくとも置換後の符号長が短くなるような置換対象の文
字列を見つけ出さなければならない。
号長が算出でき、かつ、置換後の符号長も出現位置と文
字列長が固定であるから導入シンボルの符号化長をうま
く想定できれば静的辞書を更新する前に概算できる。置
換対象文字列は、任意の文字列に対してこの2つの値を
常に比較し、置換後の符号長の短くなると予想できるも
のを選択すればよい。
方式の概要を述べた。図30〜図33を参照して、より
詳細な処理手順を説明する。処理は2つの段階に大別さ
れる。すなわち、元の静的辞書Sでに導入シンボル
(“*”,0)を追加(660)しておいた上で、処理
の第1段階でテキスト中の置換対象文字列を検出しなが
ら、テキストと静的辞書の更新を行ない(661)、第
2段階で、更新されたテキストを、更新された静的辞書
から作成した符号化表に基づいてエンコードする(66
2)。
Tを更新する作業の準備として、項目ごとの圧縮データ
へのアクセスを想定して、STを辞典の各項目ごとに分
けたもの(S0,…Se)を処理単位として考える(6
11)。項目ごとのテキストSnをn=0からeまで順
次処理する(612)。まず、Snを(更新されていな
い元の)SDの符号化表でエンコードし(613)、S
nのエンコードシンボル列SS(0)=“s0,s1,
…,sp”を抽出する(614)。エンコードシンボル
とは実際にエンコードされる際にエンコード対象となる
静的辞書(符号化表)中のシンボルを指す。図34の処
理例663の“citron”に対応するテキストを例
に取れば、s0=“[名](1)”,s1=“シ”、s
2=“ト”、s3=“ロン”、s4=“(“,…,sp
=”)”となる。
5)は(6151)以下で示される。SS(j)は現在
の処理対象範囲を示している。処理が進むにつれて、j
の値は増やされ、処理対象範囲は1エンコードシンボル
ずつ後方に縮められる。SS(p−1)の処理が終わっ
た時点で、辞典1項目(SS(0))に関する置換・更
新処理が終了する(6151)。
…,sp”に対して、SS(j)内に局所的な高頻度語
となる文字列str(i)が存在するかどうかを検査
し、存在すれば、特定したstr(i)を更新するとと
もに、静的辞書の修正を行なう。この仮定ではまず、i
=pとおいて(6152)、SS(j)内の最長文字列
から順に局所的な高頻度語がないかどうか検査し、見つ
かればjの位置をi+1に更新して、残りの処理範囲S
S(j)の処理を行なう。i=j+2、すなわちSS
(j)の最初の2シンボルになるまでstr(i)を縮
めても見つからない場合は、処理範囲を1シンボル分縮
めて、引続きSS(j+1)に対する処理を行なう(6
153)。
るテキストを例に取れば、SS(11)=‘シ’‘ト’
‘ロン’‘の’‘木’,…,‘ケーキ’‘用’に対して
は、str(13)=‘シ’‘ト’‘ロン’で、元のS
T中の29バイト手前に同一の文字列が出現(最初の
“シトロン”)し、これが局所的な高頻度語として処理
される。
どうかの検査は、まず、処理の無駄を省くために符号化
表からstr(i)の符号長を計算し、これが置換符号
長よりも短くならない場合は、たとえ前方に一致する文
字列があっても圧縮効率が改善されないので、置換・更
新処理は行なわず、処理対象範囲を次に進める(615
4)。置換符号長は処理例の場合は22bit(想定導
入シンボル長7bit、出現位置10bit、文字列長
5bit)に設定しているが、テキストによりこれらの
値は最適な値が異なる。
い場合は、これを局所的な高頻度語の候補と見なして、
(更新されていない元の)SD上の現在位置から出現位
置の制限幅(ここでは1024バイトとしている)分だ
け手前にある文字列に対して、str(i)と同一の文
字列が存在するか否かサーチする。元のソーステキスト
上で(pos(<1024)バイト手前に同一文字列が
見つかり、かつその文字列がこれまでの処理で、更新テ
キストにおいて置換されていない場合(6155)、s
tr(i)を“*”で置換し(6156)、その直後
に、POSおよびstr(i)を文字列長の値を“,”
で区切って、アスキー数字で出力する(6157)。さ
らにテキストの修正に伴い、str(i)中のシンボル
sj、…、siがテキストから1つずつ削除されるの
で、静的辞書SD中のsj、…、siの各頻度も1減ら
す(6158)とともに、“*”が1増えるので、SD
中の“*”の頻度も1増やす(6159)。
に対応するテキストを例にとって説明しておく。3回目
に出現するstr(4)=‘シ’‘ト’‘ロン’‘の’
を局所的な高頻度語の候補として検査する場合、元のS
T中の31バイト手前に同一の文字列が出現(2回目の
“シトロン”以下)するが、これはこれまでの処理で既
に更新テキスト中で置換されている。したがって、「同
一文字列が見つかり、かつその文字列がこれまでの処理
で、更新テキストにおいて置換されていない場合」とい
う条件の後半部に抵触するため、これを局所的な高頻度
語としては処理せず、strをもう1シンボル分減らし
た上で、最初に出てくる(置換処理されていない)“シ
トロン”とマッチングするstr(3)=‘シ’‘ト’
‘ロン’を局所的な高頻度語として置換する。
た場合は、検査対象文字列を1シンボル分末尾方向から
短くして(−−i)、str(i−1)に対する処理を
行なう。
新」処理の内容である。次に、更新したソーステキスト
を更新した静的辞書でエンコードする手段について説明
する。圧縮は、静的辞書から符号化表を作成し、符号化
表を参照しながら文字列をビット列で置き換える周知の
方法を用いればよいが、オフセット置換に依存する部分
だけ別個の処理を行なう必要がある。
まで(622)、周知の方法によってエンコードする
(621)。ただし、エンコードシンボルが導入“*”
である場合(623)は、それに続く、“,”で区切ら
れたアスキー数字d1、d2を読込み(624)、d
1、d2の各値を定められた出現位置のビット幅および
文字列長のビット幅(この場合はそれぞれ10bit、
5bit)にバイナリパックする(625)。
図43を参照して、「オフセット置換圧縮手段により圧
縮されたデータの伸長手段」の実現例について説明す
る。オフセット置換伸長処理も、前述のエンコード処理
同様、基本的には周知の方法を用いて伸長を行なう。オ
フセット置換圧縮に依存して変更した部分だけがオフセ
ット置換伸長処理においても異なることになる。
ータの先頭から伸長を行なうものとする。伸長したシン
ボルがデータの終了コードになるまで(82)、符号化
表に基づいて、周知の方法により1シンボルずつ伸長す
る(81)。
デコード結果の文字列を出力(84)して次のデータを
デコードする。デコードシンボルが“*”であれば、次
の15bitの圧縮データを読込み、出現位置d1、文
字列長d2をセットし、既に復元されたテキストの中か
ら、現在位置よりd1バイト手前の位置からd2バイト
分の文字列を置換コードの伸長結果として出力し(8
6、87)、次の圧縮データの処理に移る。
の辞書項目だけを伸長しようとする場合でも、基本的に
は圧縮データの先頭から伸長しなければならないことに
なるが、圧縮時の制限から実は、伸長対象項目の(ソー
ステキスト上で)その手前1024バイト分の情報さえ
事前に処理されていればよい。すなわち、特定の辞書項
目だけを伸長する場合は、ソーステキスト上で所定の辞
書項目の1024バイト分以上手前の項目に相当する圧
縮データ区切りから伸長を始める。
れた部分は、さらにその手前のデータを伸長しないとテ
キストに復元できない場合はテキストへの復元は行なわ
ずに置換コードの文字列長の情報からそれが復元テキス
ト上では何バイトの文字列になるかという情報だけを得
ておく。その他のテキストに復元できる部分はすべて復
元しておく。
24バイト内にある、テキストに復元された任意の文字
列に対して、それが現在の位置から何バイト手前に出現
するかを算出することができる。一方、「オフセット置
換圧縮手段」の実現方法から、置換のもとになる文字列
が別途置換されていることはないので(図32の処理6
155の処理要件に違反するため)、出現位置まで遡っ
た位置には、文字列長分の復元テキストが必ず存在す
る。
には多少複雑なロジックと、処理時間のオーバヘッドが
生じるが、辞典のソース的を圧縮データの先頭から伸長
しなくてもすむので、「オフセット置換伸長手段」は辞
典モジュールの検索性能を損ねない利点を併せ持ってい
るといえる。
換圧縮手段の実現例を説明する。番号置換圧縮手段の入
力は、「オフセット置換圧縮手段」と同様、局所的な高
頻度語が存在するような辞典テキストおよび、その辞典
テキストに対して予め構築された静的辞書と符号化表で
ある。また、番号置換圧縮手段の出力は、局所的な高頻
度語の部分も高効率に圧縮した辞典テキストの圧縮デー
タである。また、処理の途中で、高頻度語を特定し、そ
れを取込んだ形で置換修正された辞典テキストと、修正
テキストに対して更新された静的辞書および符号化表が
生成される。
を参照して、処理例から先に説明を行なう。
段」の処理例663と同一の、英和辞典のソーステキス
トの一部である。処理例774の中に出現する局所的な
高頻度語が“柑橘(かんきつ)類”および“シトロン”
であるとすると、番号置換圧縮手段によって処理例77
4のテキストは処理例775のように書替えられる。す
なわち、“柑橘(かんきつ)類”および“シトロン”は
どちらも初回出現時には導入シンボル△、番号、および
文字列長を表わす数字がその前に挿入され、2回目以降
の出現時には導入シンボル★と初回出現時に番号付けさ
れたものと同じ番号で文字列自体が置換される。
“(1)シトロン(…”の部分の“シトロン”の前には
△1,8が挿入されているが、これは以下の8バイトを
置換対象文字列として番号を1で登録することを表わし
ている。また、同じ行の次の“シトンの木…”の“シト
ロン”は★1で置換されているが、これは最も近い△1
を自分自身の前に持つ文字列が★1で置換されているこ
とを表わしている。
段」同様、入力されたソーステキスト中に存在しない文
字列であれば何であっても構わない。また、番号と文字
列長を表わす数字は、圧縮効率を考えてその値の範囲を
制限する必要がある。この例では、番号を0〜7の8個
(3bit)、文字列長32バイト(5bit)までと
している。
えないのではなく、mod−8(7の次はまた0に戻
る)で個数制限なしに使用することができる。ただし、
一意に伸長するために、★dがその前方の最も近くの△
d,1以下の1バイトの文字列を指すという制限が必ず
守られるようにテキスト置換操作を行なう。
6、符号化表777の変更も「オフセット置換圧縮手
段」と同様である。すなわち、1回目の置換を行なう際
は、“△”、“★”のカウントアップ、および置換され
た各シンボルの静的辞書内でのカウントダウンを行な
い、2回目以降の置換では、“★”のカウントアップと
置換された各シンボルの静的辞書内でのカウントダウン
を行なう。テキスト全体にわたって置換および静的辞書
778の変更を行なった後静的辞書から周知の手段で符
号化表779を作成し直す。
775を、更新した符号化表779により符号化(圧
縮)する。ただし、“△”の直後の処理と“★”の直後
の処理が通常の場合とは異なる。すなわち、△直後の数
字の対に対しては、符号化表による符号化は行なわず
に、それぞれを3bit、5bitのバイナリの数値に
変換し、★の直後の数字に対しては、符号化表による符
号化は行なわずに、3bitのバイナリ数値にこれを変
換する。
た文字列(2回目以降の出現文字列)は一様に導入シン
ボルの符号長+3bitで符号化されることになる。導
入シンボルの出現回数によりその符号長が異なるが、英
和辞典のような局所的な高頻度語がよく出てくるテキス
トに対してはその符号長を短く抑えることができる。
て、何回も同一の置換対象文字列が出現する場合は、置
換文字列に対する符号長が「オフセット置換圧縮手段」
よりも短いため圧縮効率の点では有利になる。処理例7
7Aに番号置換圧縮を採用せずに、元の静的辞書776
および符号化表777を使って圧縮した場合の符号長
と、番号置換圧縮を併用して圧縮した場合の符号長との
比較を示す。
ことは、「オフセット置換圧縮手段」の場合と同様、局
所的な高頻度語をうまく検出することである。すなわ
ち、元の静的辞書で圧縮する場合より少なくとも置換後
の符号長が短くなるような置換対象の文字列を見つけ出
さなければならない。「番号置換圧縮」においても、元
の符号化表から算出される符号長と、置換後の符号長と
の比較を行ない、置換後の符号長が短くなると予想でき
るものを選択する。
の概要を述べた。再び、図37〜図39を参照して、よ
り詳細な処理手順を記述する。
と同様、2つの段階に大別される。すなわち、番号カウ
ンタCを0クリアし(770)、元の静的辞書SDに導
入シンボル(“△”,0)および(“★”,0)を追加
(771)しておいた上で、処理の第1段階でテキスト
中の置換対象文字列を検出しながら、テキストと静的辞
書の更新を行ない(772)、第2段階で、更新された
テキストを、更新された静的辞書から作成した符号化表
に基づいてエンコードする(773)。
Tを更新する作業の準備として、項目ごとの圧縮データ
へのアクセスを想定して、STを辞典の各項目ごとに分
けたもの(S0、…Se)を処理単位として考える(7
21)。項目ごとのテキストSnをn=0からeまで順
次処理する(722)。まず、Snを(更新されていな
い元の)SDの符号化表でエンコードし(723)、S
nのエンコードシンボル列SS(0)=“s0、s1、
…、sp”を抽出する(724)。
は図38で示す処理7251以下で示される。SS
(j)は現在の処理対象範囲を示している。処理が進む
につれて、jの値は増やされ、処理対象範囲は1エンコ
ードシンボルずつ後方に縮められる。SS(p−1)の
処理が終わった時点で、辞典1項目(SS(0))に関
する置換・更新処理が終了する(7251)。
…、sp”に対して、SS(j)内に局所的な高頻度語
となる文字列str(i)が存在するかどうかを検査
し、存在すれば、特定したstr(i)を更新するとと
もに、静的辞書の修正を行なう。この過程では、まず、
i=pとおいて(7152)、SS(j)内の最長文字
列から順に局所的な高頻度語がないかどうか検査し、見
つかればjの位置をi+1に更新して、残りの処理範囲
SS(j)の処理を行なう。i=j+1、すなわちSS
(j)の最初の2シンボルになるまでstr(i)を縮
めても見つからない場合は、処理範囲を1シンボル分縮
めて、再度SS(j+1)に対する処理を行なう(72
53)。
と同様である。str(i)が局所的な高頻度語になる
かどうかの検査は、まず、処理の無駄を省くために符号
化表からstr(i)の符号長を計算し、これが置換符
号長よりも短くならない場合は、たとえ前方に一致する
文字列があっても圧縮効率が改善されないので、置換・
圧縮更新処理は行なわず、処理対象範囲を次に進める
(7254)。置換符号長は処理例の場合は26bit
(想定導入シンボル長(77+8)bit、番号(3*
2)bit、文字列長5bit)に設定しているが、テ
キストによりこれらの値は最適な値が異なる。
い場合は、これを局所的な高頻度語の候補と見なして、
(更新されていない元の)SD上の現在位置から前方に
ある適当な範囲内の文字列に対して、str(i)と同
一の文字列が存在するか否かサーチする。元のソーステ
キスト上でPOSバイト手前に同一文字列が見つかった
場合は置換処理を次のステップに進め、見つからなけれ
ば、1エンコードシンボル分短くしたstr(i−1)
に対して再度サーチを行なう(7255)。
字列が元のソーステキスト上でPOSバイト手前に見つ
かった場合は、さらに、更新テキストでPOS位置に対
応する位置の直前に△C′,1または★C′が配置され
ておらず(すなわち置換されていない文字列であり)、
かつ更新テキスト上でPOS位置に対応する位置以降に
△Cが存在しなければ(7256、7257)、これか
ら番号付けしようとする文字列が、置換対象文字列の位
置から前方の最も近い位置にあることを保証できるの
で、POS位置の直前に△C,1(1=|str(i)
|)を挿入して、POS位置以下の1バイトの文字列を
C番に番号登録するとともに、str(i)を★Cに置
換する(7259)。
けしたより前の部分に遡ってサーチしてしまったことに
なり、ここで、Cの番号付けを行なうと、以降の★Cが
どちらの△Cに対応するものかわからなくなってしま
う。すなわち、これから番号付けしようとする文字列
が、置換対象文字列の位置から前方の最も近い位置にあ
ることが保証できなくなるため、この場合はstr
(i)に対する処理を止めて、str(i−1)に対す
る処理を行なう(7257)。
は、テキストの変更に伴う静的辞書の修正を行ない(7
25A)、C番の登録が済んだので、番号カウンタをm
od(8,(C+1))として次に進め(725B)、
処理対象範囲jをi+1に更新して、未処理部分に対す
る処理を継続する。
テキストの位置の直前に△C′,1または★C′が配置
されている(すなわち既に置換または番号登録された文
字列である)場合は、△の最近の位置の制約を守るため
に、△C′がPOS対応位置以降に出現しないことを確
認した上で(7258)、str(i)を★C′で置換
し(725C)、静的辞書の対応する箇所を修正する
(725D)。
前番号付けされたC′であるため、Cは更新せずに、処
理対象範囲だけをi+1に進めて残りの部分SS(i+
1)に対する処理を行なう。
74の“citron”に代用するテキストを例にとっ
て今一度説明しておく。
1)のstr(13)=‘シ’‘ト’‘ロン’まで処理
が進んだとする。処理7255により、POS=29バ
イト手前の同一の文字列を特定する。処理7256、処
理7257の制限をクリアして、処理7259に進み、
このタイミングで、最初の“シトロン”の手前に△1,
8が置かれ、2番目の“シトロン”(=str(1
3))が★1に置換される。静的辞書がアップデートさ
れ、C=2として、“の木(3)…”以降に処理対象範
囲が移る。C=2のまま、3回目に出現する“シトロ
ン”がstrにセットされたとき、処理7255によ
り、POS=31バイト手前に同一の文字列が特定され
るが、これは更新テキストにおいては既に★1で置換さ
れている(処理7256のYesの場合に相当)ので、
3回目に現れる“シトロン”の★1に置換される。
新」処理の内容である。次に、図39を参照して、更新
したソーステキストを更新した静的辞書でエンコードす
る手段について説明する。圧縮は、静的辞書から符号化
表を作成し、符号化表を参照しながら文字列をビット列
で置き換える周知の方法を用いればよいが、番号置換に
依存する部分だけ別個の処理を行なう必要がある。
まで(732)、周知の方法によってエンコードする
(731)。ただし、エンコードシンボルが導入シンボ
ル“★”である場合(733)は、それに続く、アスキ
ー数字d1を読込みこれを3bitでバイナリパックし
て、次の部分のエンコードに移る(735)。“★”で
なく、“△”である場合は、それに続くアスキー数字d
1、d2の各値をそれぞれ3bit、5bitにバイナ
リパックして、次の部分のエンコードに移る(73
6)。
図44を参照して、「番号置換圧縮手段」により圧縮さ
れたデータの伸長手段の実現例を説明する。番号置換伸
長手段も、前述のエンコード処理と同様、基本的には周
知の方法を用いて伸長を行なう。番号置換圧縮に依存し
て変更した部分だけが、番号置換伸長処理においても異
なることになる。
なるまで(91)、符号化表に基づいて、周知の方法に
より1シンボルずつ伸長する(90)。
ない場合は、デコードの結果の文字列を出力(99)し
て次のデータの伸長に移る。デコードシンボルが“△”
であれば、次の8bitの圧縮データを読み飛ばし、次
のデータの伸長に移る。
データの次の3bitを読込み、番号d1を得る(9
3)。ここで、これまでの処理において既に手前方向で
最初に出現する“△d1,len”以下のlenバイト
を伸長済みならば(94)、そのlenバイト分の文字
列をデコード結果として出力し(96)、次のデータの
伸長に移る。
未伸長ならばさらに手前の部分をデコードして、現在位
置から手前方向で最初に“△d1,len”が出現する
箇所とそれ以下のlenバイトの文字列を確定させた上
で(95)、そのlenバイト分の文字列をデコード結
果として出力し(96)、次のデータの伸長に移る。
(★d)が出現したとき、対応する△が未伸長であれ
ば、その都度遡って伸長を行なわねばならないオーバヘ
ッドはあるものの、基本的には特定の辞典項目だけを伸
長できるようになっており、「番号置換伸長手段」も辞
典モジュールの検索性能を損ねない利点を持ち合わせて
いるといえる。
ト圧縮装置によれば、大容量の固定の辞典テキストデー
タを必要とする装置(電子辞書など)において、辞典テ
キストデータを効率よく圧縮・伸長をする具体的な手段
を提供することができる。特に、対象となる辞典テキス
トが複数の異なる記述部分から構成されている場合(英
和辞典など)、共通の構成要素を持つ複数個の辞典テキ
ストを圧縮対象とする場合(英和、和英辞典など)に
は、それぞれ、請求項5、6の手法により圧縮率を高め
ることができる。
モリ容量を大幅に削減して製品のコストダウンを図るこ
とができる。
典のテキストデータを必要とする装置(電子辞書など)
において、特にその装置が、全体としての出現頻度は低
いが、局所的には集中的に出現する文字列が多数存在す
るような辞典テキスト(英和辞典など)を扱う場合に、
辞典テキストの検索性能をあまり落とすことなく、圧縮
メモリ容量を大幅に削減して製品のコストダウンを図る
ことができる。
置の全体構成説明図である。
置の頻度ガイドライン算出手段の説明図である。
置の長文字列切出手段の説明図である。
置の長文字列切出手段による処理例の説明図である。
置の長文字列切出手段による処理例の説明図である。
置の効率指標関数値順文字列切出手段の説明図である。
置の効率指標関数値順文字列切出手段による処理例の説
明図である。
置の1文字シンボル抽出手段の説明図である。
置のシンボル削除のための文字列切出手段の説明図であ
る。
装置のシンボル削除のための文字列切出手段による処理
例の説明図である。
装置のシンボル分解手段の説明図である。
装置のシンボル分解手段による処理例の説明図である。
装置のシンボル分解手段の説明図である。
構成説明図である。
要素種類ごとの辞書作成手段の説明図である。
要素種類ごとの辞書作成手段の処理例の説明図である。
要素種類ごとの辞書作成手段の処理例の説明図である。
要素種類ごとの辞書作成手段の処理例の説明図である。
要素種類ごとの辞書作成手段の処理例の説明図である。
要素種類ごとの辞書作成手段の処理例の説明図である。
要素種類ごとの辞書作成手段の処理例の説明図である。
切換圧縮伸長手段の説明図である。
辞書作成手段の説明図である。
辞書作成手段の処理例の説明図である。
辞書作成手段の処理例の説明図である。
辞書作成手段の処理例の説明図である。
辞書作成手段の処理例の説明図である。
辞書作成手段の処理例の説明図である。
辞書切換圧縮伸長手段の説明図である。
セット置換圧縮手段の説明図である。
セット置換圧縮手段の説明図である。
セット置換圧縮手段の説明図である。
セット置換圧縮手段の説明図である。
セット置換圧縮手段の処理例の説明図である。
セット置換圧縮手段の処理例の説明図である。
セット置換圧縮手段の処理例の説明図である。
置換圧縮手段の説明図である。
置換圧縮手段の説明図である。
置換圧縮手段の説明図である。
置換圧縮手段の処理例の説明図である。
置換圧縮手段の処理例の説明図である。
置換圧縮手段の処理例の説明図である。
セット置換伸長手段の説明図である。
置換伸長手段の説明図である。
Claims (8)
- 【請求項1】 テキストを圧縮する際に参照される辞書
を作成するためのテキスト圧縮用辞書作成装置であっ
て、 目標圧縮率に対して、2以上の文字列長の各々について
前記目標圧縮率を満足するためにテキスト中で出現が要
求される頻度のガイドラインを算出する頻度ガイドライ
ン算出手段と、 テキストから、文字列長2以上の文字列であって、対応
する文字列長の頻度ガイドラインを満たす頻度で出現す
るものを、その実頻度とともに文字列長の降順に切出し
て第1の静的辞書を生成するとともに、前記頻度ガイド
ラインを満たさない切残しのテキストの集合を生成する
長文字列切出手段と、 前記切残しのテキストの集合から文字列長1の文字ごと
にその頻度をカウントして第2の静的辞書を生成する1
文字シンボル抽出手段と、 前記第1の静的辞書に前記第2の静的辞書を追加して最
終的静的辞書を生成する最終的静的辞書構築手段とを含
むテキスト圧縮用辞書作成装置。 - 【請求項2】 テキストを圧縮する際に参照される辞書
を作成するためのテキスト圧縮用辞書作成装置であっ
て、 目標圧縮率に対して、2以上の文字列長の各々について
前記目標圧縮率を満足するためにテキスト中で出現が要
求される頻度のガイドラインを算出する頻度ガイドライ
ン算出手段と、 テキストから、文字列長2以上の文字列であって、対応
する文字列長の頻度ガイドラインを満たす頻度で出現す
るものを、その実頻度とともに文字列長と実頻度との積
の降順に切出して第1の静的辞書を生成するとともに、
前記頻度ガイドラインを満たさない切残しのテキストの
集合を生成する効率指標関数値順文字列切出手段と、 前記切残しのテキストの集合から文字列長1の文字ごと
にその頻度をカウントして第2の静的辞書を生成する1
文字シンボル抽出手段と、 前記第1の静的辞書に前記第2の静的辞書を追加して最
終的静的辞書を生成する最終的静的辞書構築手段とを含
むテキスト圧縮用辞書作成装置。 - 【請求項3】 前記最終的静的辞書中の文字列であっ
て、前記最終的静的辞書中の他の文字列の組合せである
ものを、最も長い文字列が含まれる複数個の他の文字列
に分解し削除するとともに、当該他の文字列の実頻度を
前記削除された文字列の頻度だけそれぞれ増加させるた
めの文字列切出手段をさらに含む請求項1または請求項
2に記載のテキスト圧縮用辞書作成装置。 - 【請求項4】 前記最終的静的辞書中の文字列であっ
て、前記最終的静的辞書中の他の文字列の組合せである
ものを、圧縮率への寄与が最も大きくなるような複数個
の他の文字列に分解し削除するとともに、当該他の文字
列の実頻度を前記削除された文字列の頻度だけそれぞれ
増加させるための文字列切出手段をさらに含む請求項1
または請求項2に記載のテキスト圧縮用辞書作成装置。 - 【請求項5】 それぞれ属性の異なる複数種類の構成要
素から構成されるテキストに対して、各構成要素種類ご
とに前記テキストを分割し、分割された各々の構成要素
種類のテキストに対して、構成要素種類の境界に含まれ
る構成要素種類の切換えを指示するシンボルを含む圧縮
辞書を作成する辞書作成手段と、 前記辞書作成手段により作成された辞書を、前記シンボ
ルに遭遇するたびに前記シンボルに応じて切換えなが
ら、圧縮対象のテキストの圧縮伸長を行なう辞書切換圧
縮伸長手段とを含むテキスト圧縮装置。 - 【請求項6】 各々がそれぞれ属性の異なる複数種類の
構成要素から構成される複数のテキストであって、少な
くとも一部の構成要素種類を共有する複数のテキストに
対して、各構成要素種類ごとに前記複数のテキストを分
割し、分割された各々の構成要素種類のテキストに対し
て、構成要素種類の境界に含まれる構成要素種類の切換
えを指示するシンボルを含む共有辞書を作成する共有辞
書作成手段と、 前記共有辞書作成手段により作成された共有辞書を、前
記シンボルに遭遇するたびに前記シンボルに応じて切換
えながら、圧縮対象のテキストの圧縮伸長を行なう共有
辞書切換圧縮伸長手段とを含むテキスト圧縮装置。 - 【請求項7】 テキスト中の局所的な高頻度語を、2回
目の出現以降において、前記テキスト中には存在しない
文字列である導入シンボルと当該高頻度語の1回目の出
現位置と当該高頻度語の当該出現位置からの文字列長と
で置換して符号化するオフセット置換圧縮手段と、 前記オフセット置換圧縮手段により圧縮されたデータ
を、前記導入シンボル後の前記1回目の出現位置と前記
出現位置からの前記文字列長とにより指定される語に置
換することにより伸長して元のテキストに復元するオフ
セット置換伸長手段とを含むテキスト圧縮装置。 - 【請求項8】 テキスト中の局所的な高頻度語につい
て、初回出現時に番号を付与し2回目の出現以降におい
て、前記テキスト中には存在しない文字列である導入シ
ンボルと付与された前記番号とで置換して符号化する番
号置換圧縮手段と、 前記番号置換圧縮手段により圧縮されたデータを、前記
導入シンボルと前記番号とを、対応する語に置換するこ
とにより伸長して元のテキストに復元する番号置換伸長
手段とを含むテキスト圧縮装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01389296A JP3566441B2 (ja) | 1996-01-30 | 1996-01-30 | テキスト圧縮用辞書作成装置 |
US08/791,392 US6047298A (en) | 1996-01-30 | 1997-01-30 | Text compression dictionary generation apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01389296A JP3566441B2 (ja) | 1996-01-30 | 1996-01-30 | テキスト圧縮用辞書作成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09212395A true JPH09212395A (ja) | 1997-08-15 |
JP3566441B2 JP3566441B2 (ja) | 2004-09-15 |
Family
ID=11845842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01389296A Expired - Fee Related JP3566441B2 (ja) | 1996-01-30 | 1996-01-30 | テキスト圧縮用辞書作成装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6047298A (ja) |
JP (1) | JP3566441B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004349672A (ja) * | 2002-07-10 | 2004-12-09 | Ngk Spark Plug Co Ltd | 充填材及びそれを用いた多層配線基板並びに多層配線基板の製造方法 |
WO2013136418A1 (ja) * | 2012-03-12 | 2013-09-19 | 株式会社日立製作所 | ログ管理計算機、及びログ管理方法 |
WO2014147671A1 (ja) * | 2013-03-22 | 2014-09-25 | 富士通株式会社 | 圧縮装置、圧縮方法、伸張装置、伸張方法および情報処理システム |
US9425821B2 (en) | 2015-01-19 | 2016-08-23 | Fujitsu Limited | Converting device and converting method |
CN112699660A (zh) * | 2019-10-23 | 2021-04-23 | 阿里巴巴集团控股有限公司 | 数据处理方法、系统及设备 |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845238A (en) * | 1996-06-18 | 1998-12-01 | Apple Computer, Inc. | System and method for using a correspondence table to compress a pronunciation guide |
US6414610B1 (en) * | 1997-02-24 | 2002-07-02 | Rodney J Smith | Data compression |
JPH11143877A (ja) * | 1997-10-22 | 1999-05-28 | Internatl Business Mach Corp <Ibm> | 圧縮方法、辞書の見出し語インデックス・データを圧縮するための方法、及び機械翻訳システム |
JP3337633B2 (ja) * | 1997-12-03 | 2002-10-21 | 富士通株式会社 | データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP3421700B2 (ja) * | 1998-01-22 | 2003-06-30 | 富士通株式会社 | データ圧縮装置及び復元装置並びにその方法 |
JP3566111B2 (ja) * | 1998-11-30 | 2004-09-15 | 松下電器産業株式会社 | 記号辞書作成方法及び記号辞書検索方法 |
US6456209B1 (en) * | 1998-12-01 | 2002-09-24 | Lucent Technologies Inc. | Method and apparatus for deriving a plurally parsable data compression dictionary |
US6404931B1 (en) | 1998-12-14 | 2002-06-11 | Microsoft Corporation | Code book construction for variable to variable length entropy encoding |
US6377930B1 (en) | 1998-12-14 | 2002-04-23 | Microsoft Corporation | Variable to variable length entropy encoding |
US6651219B1 (en) * | 1999-01-11 | 2003-11-18 | Multex Systems, Inc. | System and method for generation of text reports |
US7026962B1 (en) * | 2000-07-27 | 2006-04-11 | Motorola, Inc | Text compression method and apparatus |
US6883087B1 (en) | 2000-12-15 | 2005-04-19 | Palm, Inc. | Processing of binary data for compression |
US7500017B2 (en) * | 2001-04-19 | 2009-03-03 | Microsoft Corporation | Method and system for providing an XML binary format |
WO2003003584A1 (en) * | 2001-06-29 | 2003-01-09 | Netcontinuum, Inc. | System and method for data compression using a hybrid coding scheme |
JP4382663B2 (ja) * | 2002-07-03 | 2009-12-16 | 2012244 オンタリオ インコーポレイテッド | 簡潔言語学データを生成かつ使用するシステムおよび方法 |
CA2411227C (en) * | 2002-07-03 | 2007-01-09 | 2012244 Ontario Inc. | System and method of creating and using compact linguistic data |
US6670897B1 (en) | 2002-10-03 | 2003-12-30 | Motorola, Inc. | Compression/decompression techniques based on tokens and Huffman coding |
JP2005301664A (ja) * | 2004-04-12 | 2005-10-27 | Fuji Xerox Co Ltd | 画像辞書作成装置、符号化装置、データファイル、画像辞書作成方法及びそのプログラム |
US8874504B2 (en) * | 2004-12-03 | 2014-10-28 | Google Inc. | Processing techniques for visual capture data from a rendered document |
WO2006047654A2 (en) * | 2004-10-25 | 2006-05-04 | Yuanhua Tang | Full text query and search systems and methods of use |
US7627816B2 (en) * | 2005-04-12 | 2009-12-01 | International Business Machines Corporation | Method for providing a transient dictionary that travels with an original electronic document |
ATE434311T1 (de) * | 2005-10-27 | 2009-07-15 | Alcatel Lucent | Datensammeln von netzknoten in einem telekommunikationsnetz |
US8078454B2 (en) * | 2007-09-28 | 2011-12-13 | Microsoft Corporation | Two-pass hash extraction of text strings |
US8326605B2 (en) * | 2008-04-24 | 2012-12-04 | International Business Machines Incorporation | Dictionary for textual data compression and decompression |
US8326604B2 (en) * | 2008-04-24 | 2012-12-04 | International Business Machines Corporation | Dictionary for textual data compression and decompression |
EP2378766A1 (en) | 2010-04-16 | 2011-10-19 | Liberty Global Europe Holding B.V. | Electronic Program Guide compression method and system |
US20110313756A1 (en) * | 2010-06-21 | 2011-12-22 | Connor Robert A | Text sizer (TM) |
US9087038B1 (en) * | 2010-07-21 | 2015-07-21 | Sprint Communications Company L.P. | Messaging with shortcut character strings |
US9229960B2 (en) * | 2013-02-11 | 2016-01-05 | International Business Machines Corporation | Database management delete efficiency |
US9229968B2 (en) | 2013-03-11 | 2016-01-05 | Intenational Business Machines Corporation | Management of searches in a database system |
US9378234B2 (en) | 2013-03-11 | 2016-06-28 | International Business Machines Corporation | Management of updates in a database system |
US9766805B2 (en) * | 2014-04-14 | 2017-09-19 | Sony Corporation | System and method for textual input |
JP6613669B2 (ja) * | 2015-07-14 | 2019-12-04 | 富士通株式会社 | 圧縮プログラム、圧縮方法、情報処理装置、置換プログラムおよび置換方法 |
US9912624B2 (en) * | 2015-09-25 | 2018-03-06 | International Business Machines Corporation | Lossy text source coding by word length |
JP6641857B2 (ja) * | 2015-10-05 | 2020-02-05 | 富士通株式会社 | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 |
US11429616B2 (en) * | 2019-04-02 | 2022-08-30 | Keysight Technologies, Inc. | Data recording and analysis system |
CN114025024B (zh) * | 2021-10-18 | 2023-07-07 | 中国银联股份有限公司 | 一种数据传输方法及装置 |
CN116614139B (zh) * | 2023-07-20 | 2023-09-19 | 酒仙网络科技股份有限公司 | 一种售酒小程序内用户交易信息压缩存储方法 |
CN116865768B (zh) * | 2023-08-31 | 2023-11-21 | 临沂安迪电气有限公司 | 一种plc设备数据优化存储方法 |
CN117896442B (zh) * | 2024-03-15 | 2024-06-14 | 陕西禄远电子科技有限公司 | 一种基于物联网的综合能源数据管理系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63151224A (ja) * | 1986-12-04 | 1988-06-23 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | データ圧縮方法 |
JPS63263561A (ja) * | 1987-04-22 | 1988-10-31 | Ricoh Co Ltd | 日本語文の圧縮方法 |
JPH01290036A (ja) * | 1988-05-18 | 1989-11-21 | Nec Corp | ソースメンバの文字列圧縮方式 |
JPH0580972A (ja) * | 1991-09-19 | 1993-04-02 | Nec Corp | データ圧縮装置 |
JPH06131152A (ja) * | 1992-04-13 | 1994-05-13 | Compaq Computer Corp | セパレータが無いか少ない言語を表わすコンピュータファイルのためのデータ圧縮方法 |
JPH07111460A (ja) * | 1989-01-13 | 1995-04-25 | Stac Inc | データ圧縮装置及び方法 |
JPH07306854A (ja) * | 1994-03-14 | 1995-11-21 | Mita Ind Co Ltd | 文書データの圧縮方法及びその装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4560976A (en) * | 1981-10-15 | 1985-12-24 | 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 |
US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
JPH0664585B2 (ja) * | 1984-12-25 | 1994-08-22 | 株式会社東芝 | 翻訳編集装置 |
US4747053A (en) * | 1985-05-20 | 1988-05-24 | Brother Kogyo Kabushiki Kaisha | Electronic dictionary |
US4899148A (en) * | 1987-02-25 | 1990-02-06 | Oki Electric Industry Co., Ltd. | Data compression method |
JPH02271723A (ja) * | 1989-04-12 | 1990-11-06 | Nec Corp | 日本語情報圧縮方式 |
JPH03206533A (ja) * | 1990-01-09 | 1991-09-09 | Nec Software Ltd | データ圧縮方式 |
US5049881A (en) * | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
JP2729416B2 (ja) * | 1991-07-15 | 1998-03-18 | シャープ株式会社 | テキストデータの復元方法 |
US5140321A (en) * | 1991-09-04 | 1992-08-18 | Prime Computer, Inc. | Data compression/decompression method and apparatus |
US5396595A (en) * | 1992-04-24 | 1995-03-07 | Spacelabs Medical, Inc. | Method and system for compression and decompression of data |
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 |
US5467087A (en) * | 1992-12-18 | 1995-11-14 | Apple Computer, Inc. | High speed lossless data compression system |
US5530645A (en) * | 1993-06-30 | 1996-06-25 | Apple Computer, Inc. | Composite dictionary compression system |
JP3302210B2 (ja) * | 1995-02-10 | 2002-07-15 | 富士通株式会社 | データ符号化/復号化方法及び装置 |
US5548338A (en) * | 1995-06-07 | 1996-08-20 | News American Publishing, Inc. | Compression of an electronic programming guide |
US5815096A (en) * | 1995-09-13 | 1998-09-29 | Bmc Software, Inc. | Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure |
-
1996
- 1996-01-30 JP JP01389296A patent/JP3566441B2/ja not_active Expired - Fee Related
-
1997
- 1997-01-30 US US08/791,392 patent/US6047298A/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63151224A (ja) * | 1986-12-04 | 1988-06-23 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | データ圧縮方法 |
JPS63263561A (ja) * | 1987-04-22 | 1988-10-31 | Ricoh Co Ltd | 日本語文の圧縮方法 |
JPH01290036A (ja) * | 1988-05-18 | 1989-11-21 | Nec Corp | ソースメンバの文字列圧縮方式 |
JPH07111460A (ja) * | 1989-01-13 | 1995-04-25 | Stac Inc | データ圧縮装置及び方法 |
JPH0580972A (ja) * | 1991-09-19 | 1993-04-02 | Nec Corp | データ圧縮装置 |
JPH06131152A (ja) * | 1992-04-13 | 1994-05-13 | Compaq Computer Corp | セパレータが無いか少ない言語を表わすコンピュータファイルのためのデータ圧縮方法 |
JPH07306854A (ja) * | 1994-03-14 | 1995-11-21 | Mita Ind Co Ltd | 文書データの圧縮方法及びその装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004349672A (ja) * | 2002-07-10 | 2004-12-09 | Ngk Spark Plug Co Ltd | 充填材及びそれを用いた多層配線基板並びに多層配線基板の製造方法 |
WO2013136418A1 (ja) * | 2012-03-12 | 2013-09-19 | 株式会社日立製作所 | ログ管理計算機、及びログ管理方法 |
WO2014147671A1 (ja) * | 2013-03-22 | 2014-09-25 | 富士通株式会社 | 圧縮装置、圧縮方法、伸張装置、伸張方法および情報処理システム |
US9509333B2 (en) | 2013-03-22 | 2016-11-29 | Fujitsu Limited | Compression device, compression method, decompression device, decompression method, information processing system, and recording medium |
JPWO2014147671A1 (ja) * | 2013-03-22 | 2017-02-16 | 富士通株式会社 | 圧縮装置、圧縮方法、伸張装置、伸張方法および情報処理システム |
US9425821B2 (en) | 2015-01-19 | 2016-08-23 | Fujitsu Limited | Converting device and converting method |
CN112699660A (zh) * | 2019-10-23 | 2021-04-23 | 阿里巴巴集团控股有限公司 | 数据处理方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
US6047298A (en) | 2000-04-04 |
JP3566441B2 (ja) | 2004-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH09212395A (ja) | テキスト圧縮用辞書作成装置およびテキスト圧縮装置 | |
Silva de Moura et al. | Fast and flexible word searching on compressed text | |
US5704060A (en) | Text storage and retrieval system and method | |
JP3935952B2 (ja) | 頻度の高いキャラクタの組み合わせ、ワード及び/又はフレーズでプレフィルした辞書を用いるLempel―Zivデータ圧縮技術 | |
JP3421700B2 (ja) | データ圧縮装置及び復元装置並びにその方法 | |
US5893102A (en) | Textual database management, storage and retrieval system utilizing word-oriented, dictionary-based data compression/decompression | |
WO1998006028A9 (en) | A lempel-ziv data compression technique utilizing a dicionary pre-filled with fequent letter combinations, words and/or phrases | |
Skibiński et al. | Revisiting dictionary‐based compression | |
González et al. | Locally compressed suffix arrays | |
Claude et al. | Indexes for highly repetitive document collections | |
Cheng et al. | A study on word‐based and integral‐bit Chinese text compression algorithms | |
Farina et al. | Boosting text compression with word-based statistical encoding | |
JPH06168096A (ja) | データ符号化方式及びデータ復元方式 | |
Dvorský et al. | Word-Based Compression Methods and Indexing for Text Retrieval Systems. | |
JP2729416B2 (ja) | テキストデータの復元方法 | |
Öztürk et al. | Multi-Stream word-based compression algorithm for compressed text search | |
US6731229B2 (en) | Method to reduce storage requirements when storing semi-redundant information in a database | |
Vines et al. | Compression techniques for Chinese text | |
JPH07182354A (ja) | 電子文書の作成方法 | |
JPS63263561A (ja) | 日本語文の圧縮方法 | |
JPH0546358A (ja) | テキストデータの圧縮方法 | |
Klein et al. | Searching in compressed dictionaries | |
Nguyen et al. | A syllable-based method for vietnamese text compression | |
Gupta et al. | A novel approach of data compression for dynamic data | |
Adiego et al. | SCM: Structural contexts model for improving compression in semistructured text databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20040601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040610 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130618 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |