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
Application number
JP8013892A
Other languages
English (en)
Other versions
JP3566441B2 (ja
Inventor
Taro Morishita
太朗 森下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP01389296A priority Critical patent/JP3566441B2/ja
Priority to US08/791,392 priority patent/US6047298A/en
Publication of JPH09212395A publication Critical patent/JPH09212395A/ja
Application granted granted Critical
Publication of JP3566441B2 publication Critical patent/JP3566441B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating 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

(57)【要約】 【課題】 大容量の固定テキストの圧縮率を飛躍的に向
上させるためのテキスト圧縮用辞書作成装置およびテキ
スト圧縮装置を提供する。 【解決手段】 目標圧縮率を満足するためにテキスト中
で出現が要求される頻度のガイドラインを算出する頻度
ガイドライン算出手段111と、テキストから対応する
文字列長の頻度ガイドラインを満たす頻度で出現するも
のをその実頻度とともに文字列長の降順に切出して静的
辞書を生成する長文字列切出手段112とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ワードプロセッサ
(以下「ワープロ」と省略する。)や電子手帳といった
ジャンルの情報機器に関する固定のテキストデータを扱
うテキスト圧縮用辞書作成装置およびテキスト圧縮装置
に関する。
【0002】
【従来の技術】電子辞書機能が搭載されたワープロ、パ
ーソナルコンピュータ(以下、「パソコン」と省略す
る。)、電子手帳などの情報機器では、機器の内部に辞
書の意味が記述された大容量の固定テキストデータを記
憶しておかなければならない。
【0003】こういったジャンルの商品で取り扱うテキ
ストデータは、大抵の場合、数メガバイトオーダの容量
のデータになる場合が多い。これらデータはROM化、
ハードディスク化されることになるが、テキスト圧縮に
よって、ROMの点数を減らすなり、ハードディスクの
空き領域を確保するなりの工夫を施さないと、コストパ
フォーマンスを向上させることはできない。
【0004】従来のテキスト圧縮法は主として次のよう
に分類される。 (1) コードの空き領域に、頻出するコード列のコー
ドを割り当てるタイプのもの(特開平2−27172
3) (2) 別途用意された単語辞書の辞書番号でソーステ
キスト中の文字列を置換するタイプのもの(特開平5−
46357他) (3) 頻出する文字列コードを別のコードで置換する
タイプのもの(特開平3−206533) (4) 汎用の圧縮方法(ハフマン、算術、LZなど)
を適用するタイプのもの(PRENTICE HALL Advanced Ref
erence Series,“Text Compression", 1991 ) これらの手法は、どの方法も一長一短で、限られたメモ
リとCPUパワーの下で大容量の固定テキストを高能率
に圧縮するにはいずれも決め手に欠けるものである。
【0005】(1)は、特定コードのみで圧縮対象のテ
キストが記述されている場合はよいが、コードの空き領
域自体に限られたスペースしかないため短いコードに置
換できる文字列の数が限られ、圧縮率はよくない。複数
のコードや外字などの特殊コードが混在する場合はほと
んど圧縮できないといってよい。
【0006】(2)は、たとえば仮名漢字変換モジュー
ルなどの別のアプリケーションが存在する場合、仮名漢
字変換用の辞書の見出し語と一致するソーステキスト中
の文字列を辞書の見出し番号で置換することにより圧縮
する手法である。
【0007】この方法では、辞書見出しに存在しない文
字列は圧縮できないし、辞書見出しと一致する場合でも
その文字列長が辞書番号を表現するためのビット数(通
常16ビット前後)より大きくないと圧縮できないた
め、符号化表こそ不要なものの概して圧縮率はよくな
い。
【0008】(3)は、固定テキストに依存する方法で
あり、頻度に偏りがあるような長い文字列が多く含まれ
るテキストの圧縮に向いた方法である。
【0009】ただ、単に高頻度語を他のコードで置換す
るだけでは、(1)の手法に対して指摘したように、複
数のコードが混在する場合には置換される文字列の数が
限定され圧縮率はよくない。
【0010】また、高頻度語と置換コードの置換表(符
号化表)が必要であるため、置換表のサイズを調整する
ための工夫がないと、置換表が大きくなり圧縮率の低下
を招く。さらに、何らかの方法で切出された静的辞書に
対してハフマン等の統計手法を用いる考え方を示したも
のはあるが、具体的にどのような手段で固定テキストか
ら静的辞書を構築すればよいか明示しているものはな
い。
【0011】(4)にはCPU性能とRAM容量に制限
がなければ、高圧縮率を達成できる手法もある。たとえ
ば、高次の統計モデルなどがこれに相当する。
【0012】しかし、小型の情報機器にそのような機能
を搭載することはコスト的に無理であること、処理速度
が遅いことなどから現実的ではない。
【0013】また、統計情報に基づく汎用手法(単なる
ハフマン法、算術圧縮法など)はいずれも圧縮対象のコ
ードが1バイト(1文字)であるため、高い圧縮率は望
めない。動的辞書ベースの圧縮法(LZ系統の圧縮法)
は、圧縮対象が可変長であるが、繰返し出現する文字列
パターンが少ない場合や作業領域を超えて分散している
ような場合には、圧縮率またはRAM容量が犠牲とな
る。
【0014】最近、辞書ベースの手法と統計手法を融合
させた汎用手法もいくつか提案されている(LHAな
ど)。
【0015】これらにしても「どんなデータが入力され
ても処理可能」なユニバーサル圧縮であるという立場を
とっているため、予め頻度情報を計算しておくことはで
きない。したがって融合手法も、予め頻度情報を付与す
る本発明の手法に比べて、大容量の固定データに関して
は圧縮率が悪くなる。
【0016】以上の従来技術は、一般的な「テキスト」
を圧縮対象とする場合に提唱されているものであるが、
圧縮対象を「電子辞書に搭載される辞典の意味テキスト
(見出し語以外の部分)」に絞ってテキスト圧縮を工夫
改良したものは見受けられない。
【0017】
【発明が解決しようとする課題】本発明が解決しようと
する課題は、大容量の固定テキストの圧縮率を飛躍的に
向上させることである。具体的には以下のとおりであ
る。
【0018】第1の課題は、大容量の固定テキストに対
して高い圧縮率が得られるような「圧縮用の静的辞書」
を構築するための具体的な手段を提供することである。
【0019】第2の課題は、大容量の固定テキストに対
して、高い圧縮率が得られるような「圧縮用の静的辞
書」を構築するための具体的な手段を提供することであ
る。第1の課題とはアプローチが異なる。
【0020】第3の課題は、大容量の固定テキストに対
して、構築された「圧縮用の静的辞書」自体の容量を、
圧縮率の低下を抑えながら削減し、圧縮データおよび回
答用テーブルデータのトータル容量を小さくするための
具体的な手順を提供することである。
【0021】第4の課題は、大容量の固定テキストに対
して、構築された「圧縮用の静的辞書」自体の容量を、
圧縮率の低下を抑えながら削減し、圧縮データおよび伸
長用テーブルデータのトータル容量を小さくするための
具体的な手順を提供することである。第3の課題とはア
プローチが異なる。
【0022】本発明が解決しようとする今一つの課題
は、大容量の辞典の意味テキストの圧縮率を飛躍的に向
上させることである。
【0023】すなわち、従来技術で示した手法はいずれ
も「大容量の固定テキスト」という制限をうまく利用し
たものではないため、「大容量の固定テキスト」を最も
効果的に圧縮する手法と考えられる「可変長シンボルの
静的辞書による統計ベースの圧縮」と比べて圧縮率が低
い。「可変長シンボルの静的辞書による統計ベースの圧
縮」では、圧縮効率のよい静的辞書をうまく切出す方
法、静的辞書自体のサイズを抑える方法が重要なファク
タとなるが、本発明ではこれらの手法は既知であるとし
て扱い、主として「可変長シンボルの静的辞書による統
計ベースの圧縮」手法だけでは限界となる部分を「辞典
の意味テキスト固有の性質」を利用することによって補
い、さらなる圧縮率の向上を目指す。
【0024】具体的には、圧縮対象テキストに対して単
一の静的辞書を構築するだけでは、必ずしも効率的な圧
縮結果が得られるとは限らない以下のような場合に対し
て静的辞書のアプローチを前提としながら、さらなる圧
縮率向上を図ることを課題とする。
【0025】(1) 圧縮対象テキストが記述内容の異
なる複数の部分から構成される場合。たとえば、「発
音」「訳」「例文」「変化形」といった異なる記述部分
から構成される「英和辞典の意味テキスト」。
【0026】(2) 圧縮対象テキストが複数個ある場
合。たとえば、「英和辞典」「和英辞典」「国語辞典」
などをまとめて圧縮対象とする場合。
【0027】(3) 静的辞書に登録されなかったシン
ボルが、テキストのある箇所にだけ集中して出現する場
合。たとえば、英和辞典の“citron”という項目付近に
は“citrus”、“citric acid ”などの関連項目が配置
されており、それらの意味テキスト中には、全体として
は頻度の低い“柑橘類”という文字列が頻繁に出現する
という場合。
【0028】具体的な課題は以下のとおりである。すな
わち、第5の課題は、テキストが記述内容の異なる複数
の部分から構成されている場合でも、高い圧縮率が得ら
れるような「圧縮用の静的辞書」を構築し、これに基づ
いて圧縮伸長を行なうための具体的な手順を提供するこ
とである。
【0029】第6の課題は、種類の異なる複数個の辞典
の意味テキストに対して、高い圧縮率が得られるような
「圧縮用の静的辞書」を構築し、これに基づいて圧縮伸
長を行なうための具体的な手順を提供することである。
【0030】第7の課題は、大容量の辞典の大容量の辞
典の意味テキストを予め構築された「圧縮用の静的辞
書」を用いて圧縮する場合、静的辞書のシンボルとして
は登録されなかった文字列で、ある辞書項目の周辺での
み出現頻度が高くなる文字列を、その局所的な高頻度性
を利用した圧縮法により圧縮し、単に圧縮用静的辞書の
みを使う場合よりも圧縮効率を高め、圧縮データの容量
を小さくするための具体的な手順を提供することであ
る。
【0031】第8の課題は、大容量の辞典の意味テキス
トを予め構築された「圧縮用の静的辞書」を用いて圧縮
する場合、静的辞書のシンボルとしては登録されなかっ
た文字列で、ある辞書項目の周辺でのみ出現頻度が高く
なる文字列を、その局所的な高頻度性を利用した圧縮法
により圧縮し、単に圧縮用静的辞書のみを使う場合より
も圧縮効率を高め、圧縮データの容量を小さくするため
の具体的な手順を提供することである。第7の課題とは
アプローチが異なる。
【0032】
【課題を解決するための手段】請求項1に記載の発明
は、テキストを圧縮する際に参照される辞書を作成する
ためのテキスト圧縮用辞書作成装置であって、目標圧縮
率に対して、2以上の文字列長の各々について前記目標
圧縮率を満足するためにテキスト中で出現が要求される
頻度のガイドラインを算出する頻度ガイドライン算出手
段と、テキストから、文字列長2以上の文字列であっ
て、対応する文字列長の頻度ガイドラインを満たす頻度
で出現するものを、その実頻度とともに文字列長の降順
に切出して第1の静的辞書を生成するとともに、前記頻
度ガイドラインを満たさない切残しのテキストの集合を
生成する長文字列切出手段と、前記切残しのテキストの
集合から文字列長1の文字ごとにその頻度をカウントし
て第2の静的辞書を生成する1文字シンボル抽出手段
と、前記第1の静的辞書に前記第2の静的辞書を追加し
て最終的静的辞書を生成する最終的静的辞書構築手段と
を含むことを特徴とする。
【0033】請求項2に記載の発明は、テキストを圧縮
する際に参照される辞書を作成するためのテキスト圧縮
用辞書作成装置であって、目標圧縮率に対して、2以上
の文字列長の各々について前記目標圧縮率を満足するた
めにテキスト中で出現が要求される頻度のガイドライン
を算出する頻度ガイドライン算出手段と、テキストか
ら、文字列長2以上の文字列であって、対応する文字列
長の頻度ガイドラインを満たす頻度で出現するものを、
その実頻度とともに文字列長と実頻度との積の降順に切
出して第1の静的辞書を生成するとともに、前記頻度ガ
イドラインを満たさない切残しのテキストの集合を生成
する効率指標関数値順文字列切出手段と、前記切残しの
テキストの集合から文字列長1の文字ごとにその頻度を
カウントして第2の静的辞書を生成する1文字シンボル
抽出手段と、前記第1の静的辞書に前記第2の静的辞書
を追加して最終的静的辞書を生成する最終的静的辞書構
築手段とを含むことを特徴とする。
【0034】請求項3に記載の発明は、請求項1または
請求項2に記載のテキスト圧縮用辞書作成装置であっ
て、前記最終的静的辞書中の文字列であって、前記最終
的静的辞書中の他の文字列の組合せであるものを、最も
長い文字列が含まれる複数個の他の文字列に分解し削除
するとともに、当該他の文字列の実頻度を前記削除され
た文字列の頻度だけそれぞれ増加させるための文字列切
出手段をさらに含むことを特徴とする。
【0035】請求項4に記載の発明は、請求項1または
請求項2に記載のテキスト圧縮用辞書作成装置であっ
て、前記最終的静的辞書中の文字列であって、前記最終
的静的辞書中の他の文字列の組合せであるものを、圧縮
率への寄与が最も大きくなるような複数個の他の文字列
に分解し削除するとともに、当該他の文字列の実頻度を
前記削除された文字列の頻度だけそれぞれ増加させるた
めの文字列切出手段をさらに含むことを特徴とする。
【0036】請求項5に記載の発明は、それぞれ属性の
異なる複数種類の構成要素から構成されるテキストに対
して、各構成要素種類ごとに前記テキストを分割し、分
割された各々の構成要素種類のテキストに対して、構成
要素種類の境界に含まれる構成要素種類の切換えを指示
するシンボルを含む圧縮辞書を作成する辞書作成手段
と、前記辞書作成手段により作成された辞書を、前記シ
ンボルに遭遇するたびに前記シンボルに応じて切換えな
がら、圧縮対象のテキストの圧縮伸長を行なう辞書切換
圧縮伸長手段とを含むことを特徴とする。
【0037】請求項6に記載の発明は、各々がそれぞれ
属性の異なる複数種類の構成要素から構成される複数の
テキストであって、少なくとも一部の構成要素種類を共
有する複数のテキストに対して、各構成要素種類ごとに
前記複数のテキストを分割し、分割された各々の構成要
素種類のテキストに対して、構成要素種類の境界に含ま
れる構成要素種類の切換えを指示するシンボルを含む共
有辞書を作成する共有辞書作成手段と、前記共有辞書作
成手段により作成された共有辞書を、前記シンボルに遭
遇するたびに前記シンボルに応じて切換えながら、圧縮
対象のテキストの圧縮伸長を行なう共有辞書切換圧縮伸
長手段とを含むことを特徴とする。
【0038】請求項7に記載の発明は、テキスト中の局
所的な高頻度語を、2回目の出現以降において、前記テ
キスト中には存在しない文字列である導入シンボルと当
該高頻度語の1回目の出現位置と当該高頻度語の当該出
現位置からの文字列長とで置換して符号化するオフセッ
ト置換圧縮手段と、前記オフセット置換圧縮手段により
圧縮されたデータを、前記導入シンボル後の前記1回目
の出現位置と前記出現位置からの前記文字列長とにより
指定される語に置換することにより伸長して元のテキス
トに復元するオフセット置換伸長手段とを含むことを特
徴とする。
【0039】請求項8に記載の発明は、テキスト中の局
所的な高頻度語について、初回出現時に番号を付与し、
2回目の出現以降において、前記テキスト中には存在し
ない文字列である導入シンボルと付与された前記番号と
で置換して符号化する番号置換圧縮手段と、前記番号置
換圧縮手段により圧縮されたデータを、前記導入シンボ
ルと前記番号とにより指定される語に置換することによ
り伸長して元のテキストに復元する番号置換伸長手段と
を含むことを特徴とする。
【0040】
【発明の実施の形態】以下、本願の発明を実施の形態1
と実施の形態2とにより、図面を参照して説明する。
【0041】[実施の形態1]図1は、実施の形態1に
かかるテキスト圧縮用辞書作成装置の全体構成説明図で
ある。本発明を実施するためのブロック構成の一例が装
置の構成と対応付けて記述されている。
【0042】図1を参照して、入力手段14はキーボー
ド、OCR(光学的文字読取装置)、ペン等周知の入力
装置および本体側とデータのやり取りを行なう入力イン
タフェース12から構成される。本発明の入力である、
圧縮対象の固定の「ソーステキスト」は入力手段を用い
て入力される。
【0043】表示手段15は、液晶ディスプレイ、CR
T(Cathode Ray Tube) など周知の出力装置および本体
側とデータのやり取りを行なう出力インタフェース13
から構成される。本発明の出力である「ソーステキスト
に対する圧縮用静的辞書」の内容や各種の処理結果は表
示手段を用いて表示される。
【0044】記憶手段16は、ROM(Read-Only Memo
ry)、RAM(Random Access Memory)で構成される記
憶装置11への記憶、アクセスを司るための周知の手段
である。ROM、RAMへは入出力データ、処理途中の
一時的なデータ、および処理のロジックを表わすデータ
などが格納される。
【0045】頻度ガイドライン算出手段111は、入力
されたソーステキストおよび圧縮仕様に対して、出力す
べき圧縮用静的辞書の各シンボルが文字列長ごとにどれ
くらいの頻度で切出されれば、与えられた圧縮仕様を満
足できるかを算出するためのロジックである。これは記
憶装置11のROMの一部にCPU(中央処理装置)1
0に処理可能な形式で格納されている。
【0046】長文字列切出手段112は、入力されたソ
ーステキストおよび文字列長ごとの指定頻度に対して、
出力すべき圧縮用静的辞書の文字列長2以上のシンボル
をその実頻度とともにソーステキストから文字列長降順
に切出し、同時に指定頻度を満たさない切残しのテキス
トの集合を生成するためのロジックである。長文字列切
出手段112は記憶装置11のROMの一部にCPU1
0に処理可能な形式で格納されている。
【0047】1文字シンボル抽出手段113は、入力さ
れたテキストに対して文字列長1の文字の頻度をカウン
トするためのロジックであり、記憶装置11のROMの
一部にCPU10に処理可能な形式で格納されている。
【0048】効率指標関数値順文字列切出手段114
は、入力されたソーステキストおよび文字列長ごとの指
定頻度に対して、出力すべき圧縮用静的辞書の文字列長
2以上のシンボルをその実頻度とともにソーステキスト
から文字列長×出現頻度の降順に切出すためのロジック
であり、記憶装置11のROMの一部にCPU10に処
理可能な形式で格納されている。
【0049】シンボル削除のための文字列切出手段11
5は、一旦生成した圧縮用静的辞書の中の特定のシンボ
ルを、なるべく長い他のシンボルが含まれるように複数
個の他のシンボルに分解し削除することにより、ソース
テキストの圧縮容量の増大を極力抑えながら、元の圧縮
用静的辞書の容量を削減するためのロジックであり、記
憶装置11のROMの一部にCPU10に処理可能な形
式で格納されている。
【0050】シンボル分解手段116は、一旦生成した
圧縮用静的辞書中の特定のシンボルを圧縮率への寄与が
最も大きくなるような静的辞書中の他の複数のシンボル
に分解削除することにより、ソーステキストの圧縮容量
の増大を極力抑えながら、元の圧縮用静的辞書の容量を
削減するためのロジックである。記憶装置11のROM
の一部にCPU10に処理可能な形式で格納されてい
る。
【0051】計算・制御手段17は他の手段を制御しな
がら、記憶装置中のデータを読出してそのロジックを解
釈実行するための手段である。CPU10が対応する機
器となる。
【0052】以下本発明に固有な111〜116の各手
段を実施するための方法を述べる。図2は、実施の形態
1に係るテキスト圧縮用辞書作成装置の頻度ガイドライ
ン算出手段の説明図である。
【0053】図2を参照して、頻度ガイドライン算出手
段の入力は、「静的辞書の予定語数(シンボル数)S
N」、「目標圧縮率RT(0<RT<1)」、「符号化
係数(β、γ)」、「シンボルの最大文字列長N」であ
り、出力は「目標圧縮率を満たすために必要となる、文
字列長Li(i=N、N−1、...、2)のシンボル
に対する頻度の最小値Gi」である。
【0054】この出力結果を目安とすれば、「長文字列
切出手段」あるいは「効率指標関数値順文字列切出手
段」の入力である「各シンボル長に対する指定頻度値
(=頻度の最小値)」を与えることができる。
【0055】文字列長Liのシンボルに対する頻度の最
小値Giを算出するための具体的な方法の一例として、
図2に示す「評価条件式(1)」を用い、この条件式を
満たすGiを図2の「算出方法」に従って計算する方法
がある。
【0056】評価式(1)の左辺の分母は、長さLiの
特定のシンボルSがGi回ソーステキスト中に出現する
場合、Sがソーステキスト中で占めるバイト数であり、
分子はSが圧縮されて長さL′(<Li)の場合符号
S′に符号化された場合、圧縮データ中に占めるS′の
バイト数を示す。したがって、左辺の値はSに関する圧
縮率を表しているので、これは入力された「目標圧縮
率」RT(=式右辺)以下でなければならない。
【0057】左辺分子が圧縮データ中のバイト数を示す
理由は以下のとおりである。まず、統計的な圧縮を行な
う場合、シャノンの情報量の定義により、データの出現
確率がpであればそのデータを識別するためのビット数
は、−log(p)ビットとなる。ここで、静的辞書に
おけるSの出現確率は、静的辞書のすべてのシンボルの
頻度の総和Fsumに対するSの頻度Giの割合で表わ
される。静的辞書の規模、対象となるソーステキストの
種類に依存するが、静的辞書の規模に応じておおよその
Fsumを与えることができれば、Sを識別するための
ビット数、すなわち、統計圧縮手法適用後の理論的な
S′の符号長は、−log(Gi/Fsum)ビットで
与えられることになる。
【0058】本手法考案時の種々の実験結果から、30
0K〜3Mバイトの規模の通常のテキストデータに対し
て、シンボル数が10K程度である圧縮用静的辞書の頻
度の総和Fsumは、Fsum=α*SN、(α=20
〜60程度)であることがわかっている。ここでは、α
の値を「頻度総和係数」と呼ぶ。αの値(すなわちFs
umの値)をソーステキストから、静的辞書を構成する
前に精度よく推定する方法は困難であるため、ここでは
経験値として特定の値をセットする方式にしている。
【0059】以上のことから、式(1)の左辺分子第2
項は圧縮テキスト中に占めるS′の総バイト数を表わし
ていることがわかる。
【0060】圧縮テキストを伸長して元のソーステキス
トに戻すためには、静的辞書を用いて圧縮する場合、静
的辞書に対応する伸長用のテーブルが別途必要となる。
伸長用テーブルのサイズは符号化方式に依存するため、
「圧縮伸長モジュール」により異なる。したがって、圧
縮用静的辞書を利用する「伸長モジュール」のデータ構
造から、シンボル1個当りのサーチ用テーブルサイズと
シンボルの文字列を格納する場合サイズとをそれぞれ見
積もっておけば、伸長用データに占めるSのバイト数が
算出できる。
【0061】シンボル数1個当りのサーチ用テーブルの
大きさを表わす係数をβ、シンボルの文字列を格納する
ための、文字列長に対するバッファサイズの算出係数を
γとする(β、γは圧縮伸長モジュールが決まれば算出
可能である)と、伸長用データに占めるSのバイト数
は、左辺分子第1項に示すようにγ*Li+βとなる。
【0062】図2の算出方法は、式(1)左辺がGiの
単調減少関数であることを利用した単純なアルゴリズム
で、α、β、γをセットした後(21)、Gi=1から
始めて(22)、式(1)のGiに値をセットして実際
に(1)を満たすどうかを計算し(23)、満たしてい
なければ、Giを1ずつインクリメントしてGiの値が
式(1)を満たすようになるまで処理を繰返す(2
4)。初めて式(1)が満たされるGiの値が、Liに
対する「指定頻度ガイドライン値」である(25)。
【0063】この処理を、i=Nからi=2になるまで
繰返して、各シンボル長ごとにGiを求め(26)、こ
れを出力結果とする。
【0064】このアルゴリズムに従った算出例を図2の
「算出例」に示す。次に、図3を参照して、長文字列切
出手段の実施方法の一例とその処理例を示す。
【0065】長文字列切出手段の入力は、圧縮対象であ
る固定の「ソーステキスト」、「静的辞書のシンボルの
文字列長最大値n(>1)」、および「シンボル長ごと
の頻度値Gi(i=N、...、2)」である。Giに
関しては、「頻度ガイドライン算出手段」の結果を目安
の値とすることができるが、Gi、Nの与え方に関して
は基本的に制限はない。
【0066】長文字列切出手段の出力は、ソーステキス
トを高効率に圧縮するための「圧縮用静的辞書」の一部
である。圧縮用静的辞書のデータ構造は、「シンボルと
その頻度の対」の集合である。このうち長文字列切出手
段によって求められるのは「シンボル長が2以上のシン
ボルとその頻度の対」の集合である。
【0067】長文字列切出処理においては、静的辞書へ
の登録シンボルのもととなる「文字列長iの文字列(以
下i−文字列と表記する)の集合」を求め、頻度を満た
すi−文字列の集合をソーステキストから実際に切出し
て、文字列長iのシンボルの頻度表FRQiを構成す
る。ソーステキストから頻度を満たすi−文字列を切取
った残りのテキストの集合STiに対して、同様の操作
を繰返しFRQi−1、...、FRQ2を順次構成し
ていく。
【0068】図4を参照して、処理例3Cに入力テキス
ト、処理例3Dに入力されたシンボルの最大文字列長
n、処理例3Eに入力された指定頻度値G8、...、
G2の例を示す。
【0069】入力ソーステキストは複数個あっても構わ
ない(すなわち、テキストの集合が処理対象であっても
よい)。ただし、処理対象がテキストの集合で構成され
る場合は、テキストにまたがってのシンボル切出は行な
わない。
【0070】さて、i=Nから始めて、入力テキストに
対してまずi−文字列カウント処理を適用する。i−文
字列カウント処理は、テキストの集合に対して、各テキ
ストごとに行なわれる処理であり、テキストの先頭から
文字列長テキストの末尾(正確にはテキスト長−iの位
置)まで1文字ずつ位置をずらしながらi−文字列をカ
ウントする処理である。
【0071】具体的には、図3の右側のフローチャート
に示すように、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)。
【0072】この処理により、静的辞書に登録すべき文
字列長iのシンボルの候補の集合が求められることにな
る。
【0073】図4を参照して、処理例で説明すれば、最
初、ソーステキストSTに対して、8−文字列カウント
処理により、“ 辞書の本体デー”、“辞書の本体デー
タ”、“書の本体データや”、...という、1文字ず
つずらした8−文字列が次々とカウントされながら抽出
される。
【0074】その結果、STの他の部分にたとえば、
“辞書の本体データと...”、“辞書の本体データ
の...”、“辞書の本体データに...”のような表
現が出てくれば、“辞書の本体データ”という8−文字
列の出現回数は相当カウントアップされることになり、
“...書の本体データや...”という表現が処理例
3Cに示した“辞書の本体データや...”という一箇
所だけにしか出現しなければ“書の本体データや”とい
う8−文字列の出現回数は1のままであることになる。
【0075】処理例3Fは、STに対して8−文字列カ
ウント処理を行なった出力のOC8である。このような
カウントの仕方で、I−文字列の集合がもれなく網羅的
に、かつ重複カウントがなく正しく行なわれる。
【0076】8−文字列カウント処理後、再び長文字列
切出処理に戻る。8−文字列カウント処理の結果生成さ
れたOC8の要素は処理例3Fに示すように頻度がG8
以上のものでもあれば、G8未満のものもある。OCi
の要素をもとに指定頻度Giの条件を守りながらSTの
頻度表を切出す場合、処理効率の点から、出現回数がG
i未満の要素(処理例i=8の場合(3F)でいえば、
×印を打った要素に対応する)は予め「切出」処理の対
象から外しておく(31)。
【0077】再び図3を参照して、圧縮効率という点か
ら、「なるべく高頻度の(長い)文字列を切出す」とい
うヒューリスティックスに従うため、OCiを予め出現
回数の大きなもの順にソートしておく(32)。
【0078】OCiの内容を以上のように更新した上
で、対象テキストの集合STi+1からOCiに登録さ
れている文字列を実際にカウントしながら切出していく
(33)。
【0079】OCiの各要素(s、f)に対するSTi
+1「切出し」の処理は以下に従う。
【0080】各処理対象の文字列T(i+1、j)∈S
Ti+1(j=1、...、Mi+1)に対して、 (1) T(i+1、j)の各処理対象文字列の先頭位
置から順にsに一致する部分文字列を操作する。
【0081】(2) T(i+1、j)の処理対象文字
列=“…、s、…”。最初のsが見つかった場合、sよ
り前のT(i+1、j)の部分文字列をTT(i+1、
k)(kは見つかるごとにカウントアップする)とし、
sの頻度を1だけカウントアップする(初期値0)。
【0082】sが見つからなかった場合TT(i+1、
k)=T(i+1、j)と置く。 (3) Sより後にある部分文字列T(i+1、j)を
処理対象の文字列として、(1)(2)の処理を処理対
象文字列がなくなるまで繰返す。
【0083】(4) T(i+1、j)←{TT(i+
1、k)}として、T(i+1、j)を更新する。処理
対象の文字列がsによって分割された形で登録されるこ
とになる。
【0084】(5) すべてのT(i+1、j)に対し
て処理した結果、sの頻度f′がGi以上であれば、
(s、f′)をFRQiに登録する。
【0085】f′<Giであれば、FRQiには登録せ
ずに、T(i+1、j)を切出し前の状態に戻す。
【0086】OCiのすべての要素に対して、上記の
(1)〜(5)を行なった後、T(i、k)=TT(i
+1、k)としてSTiを生成する。
【0087】図4を参照して、処理例3HはT(9、
1)=STに対して、指定頻度値を満たすCO8を出現
回数順にソートしたもので切出した出力(8−文字列の
頻度表FRQ8)を表している。
【0088】ST(=ST9)の先頭部分である“ 辞
書の本体データや検索用のインデックスを記憶…”は、
OC8の要素“辞書の本体データ”の切出しにより、
“ ”と“検索用のインデックスを記憶…”という部分
に分けられ、これらの分けられた新たな処理対象テキス
トは、さらに、OC8の要素“のインデックスを”の切
出しによって、“ ”、“検索用”、“のインデックス
を”、“記憶…”に分けられる。
【0089】OC8のすべての要素に対する切出処理後
の「切残しテキスト」が次回OC7(3I)の切出し対
象の処理対象テキストST8={T(8、j)}になる
(3G)。
【0090】切残しテキストに対するi−文字列カウン
ト処理と切出処理をi=n、…、2まで繰返し(3
4)、その後、FRQiの集合を結合して2文字列長以
上の頻度表と、切残しテキストの集合ST2が生成され
る(35)。図5で、処理例を(3J、3K)に示す。
【0091】次に、図8を参照して、1文字シンボル抽
出手段の実施方法の一例を説明する。
【0092】1文字シンボル抽出手段の入力は、文字列
切出し操作により切残されたテキストの集合、出力は、
入力テキストに対してその中に含まれる文字単位の頻度
表である。
【0093】この処理は、処理対象のテキストの集合T
に対して、1−文字カウント処理を適用し(51)、そ
の結果生成される(1−文字シンボル、出現回数)の対
の集合をそのまま処理結果の頻度表FRQ1とすればよ
い。
【0094】長文字列切出手段により生成した頻度表F
RQと、切残しテキストに対して1文字シンボル抽出手
段により抽出した頻度表FRQ1とを結合すれば、最終
結果である圧縮用静的辞書SDが求められる。
【0095】SD=FRQ+FRQ1 次に、図6を参照して、「効率指標関数値順文字列切出
手段」の実施方法の一例とその処理例を示す。
【0096】効率指標関数値順文字列切出手段の入出力
は、「長文字列切出手段」と同じで、入力は、圧縮対象
である固定の「ソーステキスト」と、「静的辞書のシン
ボルの文字列最大長n(>1)」と、「シンボル長ごと
の指定頻度値Gi(i=n、…2)」とであり、出力
は、ソーステキストを高効率に圧縮するための「シンボ
ル長が2以上の圧縮用静的辞書」である。
【0097】「長文字列切出手段」が、ソーステキスト
からなるべく長い文字列を順に切出すための手法である
のに対して、「効率指標関数値順文字列切出手段」は、
単に文字列長だけを指標とするのではなく、出現回数も
考慮に入れた何らかの圧縮効率指標を表わす関数を予め
用意して、この関数値の大きいもの順に静的辞書のシン
ボルを切出していくための方式である。
【0098】この方式では、たとえば文字列長が長く頻
度の低いものを切出すより、文字列長が短く頻度の高い
ものを切出した方が圧縮効率がよくなるといった場合を
想定している。
【0099】効率指標を正確に与える関数を見い出すこ
とは困難な問題である。これは、静的辞書の切出処理が
終わらないとすべてのシンボルに対する出現回数の総和
がわからない(すなわち正確な出現確率がわからない)
ので、切出処理の途中で算出されるシンボル候補の文字
列の「文字列長X」とその「出現回数Y」だけから、そ
の文字列の正確な圧縮効率を予想するのが難しいことに
よる。
【0100】しかしながら、圧縮効率のおおよその指標
を与えることはできる。おおよその圧縮効率を与える関
数の例を以下に示す。
【0101】1つのシンボル候補の文字列長X、出現回
数Yの文字列の、圧縮後の符号長の総和Sは、切出後の
出現頻度の総和をFSumとすると、S=−Xlog2
(Y/FSum)で表わすことができる。
【0102】1シンボルの圧縮効率を、「元の文字列長
の総和と圧縮後の符号長の総和の差が大きいもの」とみ
なすと、F(X、Y、FSum)=X*Y−S=X*Y
+X*log2(Y)−X*log2(FSum)と記
述できる。
【0103】ここで、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として、ソ
ーステキストに占める文字数の多いもの順に切出しても
効率のよい切出しができる場合がないとは限らない。
【0104】処理手順では、圧縮効率指標関数を特に定
めずに説明を進める。ソーステキストST、i−文字列
の指定頻度をGi、シンボルの最長文字列長をn、nか
ら2までのi−文字列カウント処理の結果をOC、OC
を効率指標関数値順にソートしたものをOCC、STを
OCCで切出して生成される頻度表をFRQ、切残され
たテキストの集合をSTrと置く。
【0105】i=nから始めて、STに対するi−文字
列カウント処理をi=2まで繰返し(41、42)、求
めたOCn、OCn−1、...、OC2を結合して
(単純な集合の和)、OCを用意する(43)。
【0106】次に処理効率の観点から、OCの要素
(s、o)で指定頻度の条件o≧G|s|を満たさない
要素は除去する(44)。
【0107】さて、OCの要素(s、o)に対して、文
字列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)。
【0108】次に、図7を参照して、処理例に沿って
「効率指標関数値順文字列切出手段」の流れを説明す
る。ここでは、説明をわかりやすくするためにF(X,
Y)=X*Yという単純な効率指標関数を例にとる。
【0109】図7の処理例のソーステキストST、シン
ボル最大長n、指定頻度Giはそれぞれ図3と同じであ
る。STの先頭から|ST|−8の位置まで1文字ずつ
ずらしながら8−文字列をカウントしたものがOC8
で、ここまでは「長文字列切出処理」と同じ結果であ
る。
【0110】「長文字列切出処理」ではこの後、STを
OC8で切出し、8−文字列の頻度表と切残しテキスト
ST8を生成し、その後も切残しテキストに対して切出
し−切残しの処理を繰返す。これに対して、「効率指標
関数値順文字列切出手段」では、「文字列長によらず、
効率指標関数値の大きいシンボルを見い出す」という戦
略をとるため、OC8でソーステキストを切出すプロセ
スは行なわず、最初にソーステキストからすべてのOC
i(i=n、...、2)を作成、結合した上で、効率
指標関数値順にソートする。
【0111】したがって、OC7以降のカウント処理で
はOC8の場合と同様に、STの先頭から末尾までi−
文字列のカウントが行なわれる(48)。OCiを結合
し、指定頻度を満たさないものを削除し、効率指標関数
値順にソートしたOCCの一部を処理例49に示す。
【0112】OCCの中の、8−文字列“のインデック
スを”という文字列は、効率指標関数値が64(=8*
8)である。これに対して、6−文字列“インデック
ス”という文字列は他の部分でも頻出するため、効率指
標関数値が2394(=399*6)になる。
【0113】このように、「効率指標関数値順文字列切
出手段」では「長文字列切出処理」で切出された“のイ
ンデックスを”より先に“インデックス”が切出される
という場合が起こり得る。その結果、“のインデックス
を”を切出すときは既に処理対象テキストから“のイン
デックスを”を含むテキストは残っておらず、FRQに
はシンボルとしては登録されず(4A)、最初の文字
“の”と最後の文字“を”はそれぞれ切残しテキストS
Trに残る(4B)。この場合、「長文字列切出処理」
よりも“インデックス”に対する頻度が大きくなり“イ
ンデックス”に対する符号長は短くなる。
【0114】「効率指標関数値順文字列切出手段」によ
り生成されたSTrは、「長文字列切出手段の場合と同
様に、「1文字シンボル抽出手段」により1文字頻度表
化され、これと2文字以上のシンボルの頻度表FRQの
和により最終的な静的辞書を得る。
【0115】さて、これまではテキストから静的辞書を
切出す方法についての具体化手順を与えた。それには2
種類の方法があり、請求項1を実施するための手段は
「長文字列切出手段」と「1文字シンボル抽出手段」を
組合せることにより、また、請求項2を実施するための
手段は「効率指標関数値順文字列切出手段」と「1文字
シンボル抽出手段」を組合せることにより実現できるこ
とを示した。
【0116】しかしながら、これらの手段で構成した静
的辞書のサイズはソーステキストの内容により異なり、
基本的には「切出処理」を実行して実際に静的辞書を構
築してみないとそのサイズを正確に求めることはできな
い。
【0117】もし、圧縮伸長モジュールを実現する側で
伸長用テーブル(静的辞書をもとにして構成する、静的
辞書サイズに比例したサイズのテーブル)のサイズに制
限があって、1回の「切出処理」で求めた静的辞書のサ
イズがこの制限を満たさない場合は、サイズのより小さ
な静的辞書を構成する必要がある。
【0118】またそのような制限がなくても、「静的辞
書法」を用いる場合は必ず伸長側で「静的辞書」に対応
する固定の伸長テーブルを持たなければならないので、
圧縮率に大きく影響するようなサイズの静的辞書を生成
することは避けなければならない。
【0119】このような観点から、請求項3、請求項4
はソーステキストの圧縮率をあまり損ねることなく、静
的辞書のシンボル数を減らすための適切な手段を提供す
るものとなっている。
【0120】静的辞書のシンボル数を削減する単純な方
法には、2文字以上の長文字シンボルで頻度の低いもの
を1文字シンボルに分解して、元からある1文字シンボ
ルとマージする方法がある。
【0121】たとえば、(“辞書本体”、4)、
(“辞”、16)、(“書”、16)、(“本”、3
2)、(“体”、8)という静的辞書の要素に対して、
(“辞書本体”、4)というエントリを削除したい場
合、“辞書本体”というシンボルを1文字ずつに分解し
て(“辞”、4)、(“書”、4)、(“本”、4)、
(“体”、4)を元からあった静的辞書の要素とマージ
(シンボルの頻度の和をとって静的辞書の要素を更新す
ること)して、(“辞”、20)、(“書”、20)、
(“本”、36)、(“体”、12)を得る。この方法
は、1文字シンボルの頻度数が増加するので1文字シン
ボルの符号化コードはもとより短くなる場合があるが、
通常1文字シンボルは頻度数が大きく、頻度が多少増え
ても符号長が変化するに至らない場合も多い。
【0122】これに対してたとえば“辞書の本体デー
タ”というシンボルが“辞書の”という他のシンボルと
“本体データ”という他のシンボルに分解することがで
きれば、それぞれの“辞書の”、“本体データ”という
もともとのシンボルの頻度数があまり大きくない場合、
分解によって頻度を増やした分、それぞれのシンボルの
符号長が短くなる確率が高い。
【0123】削減対象となったシンボルSの符号化長を
L、シンボルSを分解しシンボルS1、S2の和により
分解・削除し、静的辞書を上述の方法で更新したときの
S1、S2の符号化長をL1、L2とする。このとき大
抵はL1+L2>Lであり、分解した符号長の和の方が
元の符号長より小さくなる場合は稀である。
【0124】したがって、通常シンボル数を削減すると
伸長用テーブルの容量は確実に減少するが、圧縮データ
の容量は少し増加する。
【0125】しかしながら、分解シンボルの個数が少な
いほど、また分解個数は同じでも、何通りかの分解の仕
方が存在するときはより効率的な分解の仕方を選ぶこと
により、ソーステキストの圧縮率の増加を極力抑え込む
ことができる。
【0126】図9および図10を参照して、「シンボル
削除のための文字列切出手段」の実施の方法の一例とそ
の処理例を説明する。これにより請求項3の要件を実現
することができる。
【0127】「シンボル削除のための文字列切出手段」
の入力は既に求められた、ソーステキストに対する「圧
縮用静的辞書」と「静的辞書内の削除したい要素」であ
り、出力は「ソーステキストの圧縮効率の低下を極力抑
え込んだ形で、削除対象要素を削除した新しい圧縮用静
的辞書」である。
【0128】以下では説明の便宜上、1文字シンボルが
ソーステキストのすべての文字種をカバーしている場合
について述べる。
【0129】「シンボル削除のための文字列切出手段」
では、シンボル長の降順にソートされた、削除対象要素
よりも短いシンボルの集合により、削除対象要素のシン
ボルに「文字列切出処理」を適用する。すなわちここで
は、分解方法として分解シンボルの集合になるべく長い
シンボルを含ませるという戦略を用いる。
【0130】処理方法は削除要素1個に対する処理手順
が記述されている。複数個一度に削除したい場合は、こ
の処理手順を個数分繰り返せばよい。
【0131】まず、静的辞書SDから削除対象要素(s
i、fi)を取り除き(61)、削除対象のシンボル長
pよりシンボル長が短い要素からなる静的辞書の部分集
合LowPをシンボル長の降順にソートしておく(6
2)。
【0132】siからLowPの各要素を順に切出し
て、siの分解文字列の集合FRQを生成する(6
3)。このとき、一般にsiの切残しテキストが生じる
可能性があるが、静的辞書に登録されている1文字シン
ボルは、ここではソーステキストのすべての文字種をカ
バーしていると仮定しているので、すべて、元の静的辞
書のシンボルにより分解されることになる。
【0133】この仮定を外すと、切残しテキストが生じ
るので、切残しテキストが生じるような削除対象に関し
てはこの手法は適用できない。なお、実際は、数メガと
いうサイズの大きなソーステキストでは1文字シンボル
がソーステキストのほとんどの文字種をカバーするの
で、ほとんどのシンボルがこの手法によって削除でき
る。
【0134】FRQはSD1の部分集合により切出され
たものであるから、FRQの各要素のシンボルと同一の
シンボルを持つ要素は必ずSD1に存在する。このよう
なSD1の要素に対して、削除シンボル(si、fi)
の頻度fi分だけその頻度を増やせば、ソーステキスト
はSD1により切出されたのと同じことになる。
【0135】これが、FRQの各要素(s′、f′)と
シンボルが共通するSD1の要素(s′、f)の頻度を
f′*fi増やす(64)ことの意味である。
【0136】すべての分解シンボルの頻度を削除シンボ
ルの分だけ増やして更新したSD1が本処理の最終結果
SDreduceとなる(65)。
【0137】静的辞書SD(66)からSDの要素
(“のインデックスを”、8)を削除する場合を処理例
に示す。
【0138】SD1は最初はSDから(“のインデック
スを”、8)を単純に除去したもの(67)であり、L
owPは文字列長7以下のシンボルを持つ要素のみから
なるSD1の部分集合(68)である。切出しの対象テ
キストが削除対象要素のシンボルの“のインデックス
を”(69)である。
【0139】対象テキストLowPで切出した結果をF
RQ処理例6Aに示す。“のインデックスを”から、ま
ず“インデックス”が次いで切残しテキストから“の”
と“を”がそれぞれ頻度1で切出される。
【0140】最終結果SDreduce(6B)は、S
D1の対応要素(“の”、2468)、(“インデック
ス”、388)、(“を”、1234)の頻度をそれぞ
れ1*8ずつ増やしたものである。
【0141】図11、図12、および図13を参照し
て、より高度なシンボル削除手段である「シンボル分解
手段」の実施方法の一例とその処理例を説明する。
【0142】「シンボル分解手段」の入出力は「シンボ
ル削減のための文字列切出手段」と同じである。すなわ
ち、入力は「圧縮用静的辞書」と「静的辞書内の削除し
たい要素」、出力は「削除更新後の静的辞書」である。
【0143】「シンボル分解手段」では文字列切出しの
手法は使わず、任意の位置で削除対象文字列を分解した
とき、分解されたそれぞれの文字列が静的辞書のシンボ
ルとして登録されているどうかを調べるというアプロー
チをとる。
【0144】このようなアプローチをとることにより、
「シンボル削減のための文字列切出手段」では処理後に
しかわからなかった分解個数を予め指定できるととも
に、複数通りの分解候補からソーステキストの圧縮率に
最も貢献するものを選択することができるので、圧縮率
の低下防止の観点からはより効率的な削除処理が可能と
なる。
【0145】しかしながら、一方で、「シンボル削減の
ための文字列切出手段」では分解できていたシンボル
が、分解個数制限のために分解できなくなる場合が増え
るため、削除個数のコントロールが難しくなるのも事実
である。
【0146】図11を参照して、処理方法をフローチャ
ートに沿って説明する。圧縮効率を考慮して、この処理
例では分解個数を2とする。3以上の分解個数に対する
アルゴリズムも多少の拡張で実施可能であるが、2の場
合よりも圧縮効率が低下すること、処理時間が指数関数
的に増加することを考え合せれば分解個数2の場合が実
用的であると考えられる。
【0147】まず、静的辞書SDから削除対象要素
(s、f)を取り除く(70)。次に、削除対象シンボ
ルs(シンボル長をNとする)に対してsの分解方法の
候補の集合Cを求める。
【0148】sの文字と文字の境界位置を先頭から順に
1、…i、…、N−1とし、sを、sの先頭からiまで
の部分文字列s1iと、iから末尾までの部分文字列s
2iに分解する(72)。
【0149】ここで、s1i、s2iをシンボルとする
SDの要素(s1i、f1i)と(s2i、f2i)が
あれば(73)、sは静的辞書の他のシンボルで分解で
きることになるので、((s1i、f1i)、(s2
i、f2i))をsの分解方法の1つ(1iでの分解)
としてCに登録する(74)。
【0150】i=1〜N−1までこの操作を繰返し(7
1)、分解候補集合Cを生成する。ここでC=空集合の
場合(77)は、sは2個のシンボルには分解できない
のでこの処理は失敗する(78)。C≠空集合ならば
(77)、Cの要素中から圧縮効率のよい分解シンボル
の候補を選択する処理B(75)に入る。
【0151】図13を参照して、選択処理では、Cの各
要素に対して圧縮効率のおおよその指標を与える計算式
によりその効率指標Eを計算し(750)、その中から
最も効率指標の値の大きい要素を取出す(751)。
【0152】ここで(750)の計算式は、 効率指標=Σ(削除対象シンボルの頻度)/(分解シンボルの頻度)…(2) である。
【0153】削除後に、削除対象シンボルの頻度数Dだ
け、元の静的辞書の分解シンボルの各頻度Fiを増加さ
せるので、頻度の総和Sumは削除の前後で変化しな
い。削除前後における各分解シンボルのビット数は、分
解前が−log(Fi/Sum)ビット、分解後が−l
og((Fi+D)/Sum)ビットであるから、ビッ
ト数の減少分は、 −log(Fi/Sum)−(−log((Fi+D)
/Sum))=log(1+D/Fi) となる。
【0154】log(1+D/Fi)はD/Fiに比例
するから、結局D/Fiの和の大きいものが全体のビッ
ト減少幅の大きい、すなわち圧縮効率が高いものとな
る。これが式(2)の意味である。
【0155】再び図11を参照して、こうして選択され
た最も効率指標の大きいCの要素に対して、実際にSD
の中でその頻度を削除要素の頻度数分増加させ、最終的
な削除後の静的辞書を得る(76)。
【0156】図12を参照して、処理例79に静的辞書
SDを、処理例7Aに削除対象文字列とその分解位置
を、また、処理例7Bに分解候補集合Cの例を示す。
【0157】SDの内容を見ると、分解位置3で分解し
た場合と分解位置5で分解した場合に、それぞれの分解
シンボルと同一のシンボルを持つ要素がSD内に存在す
るので、Cには分解シンボルのペアが2つ登録される。
【0158】処理例7Cに、Cの2つの要素についてそ
れぞれ効率指標を計算した結果を示す。効率指標は最初
の要素の方が大きいので分解シンボルとしては、最初の
要素が選ばれ、削除対象文字列“辞書の本体データ”は
“辞書の”と“本体データ”に分解されることになる。
【0159】SDから(“辞書の本体データ”、10)
を削除する代わりに、(“辞書の”、8)、(“本体デ
ータ”、8)の頻度をそれぞれ10だけ増加させて、削
除後の静的辞書SDreduce(7D)を得る。
【0160】以上のように、実施の形態1に係るテキス
ト圧縮用辞書作成装置によれば、大容量の固定のテキス
トデータが必要となる装置(電子辞書や電子ブックな
ど)において、テキストデータに対する優れた圧縮用静
的辞書を提供することができる。
【0161】本装置により構築した圧縮用静的辞書をも
とにテキストデータを圧縮・伸長するモジュールを作成
すれば、メモリ容量を大幅に削減して製品のコストダウ
ンを図ることができる。
【0162】また本装置により提供される圧縮用静的辞
書自体のサイズ(エントリ数)を、ソーステキストの圧
縮率をあまり落とさずに、細かく調整できる。この結
果、実際に製品に圧縮伸長モジュールを搭載する場合の
メモリ容量のコントロールが柔軟に行なえ、より迅速な
製品開発が可能となる。
【0163】[実施の形態2]図14は、実施の形態2
に係るテキスト圧縮装置の全体構成説明図である。基本
的構成は、実施の形態1に係るテキスト圧縮用辞書作成
装置の構成と共通しており、同一の要素には同一の符号
を付している。以下、共通する要素については説明を省
略し、固有の要素について説明する。
【0164】構成要素ごとの辞書作成手段211は、入
力されたソーステキストに対して、ソーステキストの各
構成要素ごとに静的辞書、符号化表、および切換対応表
を生成するためのロジックであり、記憶装置11のRO
Mの一部にCPU10に処理可能な形式で格納されてい
る。
【0165】辞書切換圧縮・伸長手段212は、「構成
要素ごとの辞書作成手段」により作成した構成要素ごと
の符号化表を切換えながらソーステキスト圧縮・伸長す
るためのロジックであり、記憶装置11のROMの一部
にCPUに処理可能な形式で格納されている。
【0166】共有辞書作成手段213は、入力された複
数の辞典テキストに対して、各辞典に共通なテキストの
構成要素を集め、各構成要素ごとに各辞典が共有する静
的辞書、符号化表、辞書ごとの切換対応表を作成するた
めのロジックであり、記憶装置11のROMの一部にC
PU10に処理可能な形式で格納されている。
【0167】共有辞書切換圧縮・伸長手段214は、
「共有辞書作成手段」により作成した構成要素ごとの静
的辞書を各辞典ごとに用意された切換対応表に従って切
換ながら、ソーステキストを圧縮・伸長するためのロジ
ックであり、記憶装置11のROMの一部にCPU10
に処理可能な形式で格納されている。
【0168】オフセット置換圧縮手段215は、静的辞
書には登録されなかった局所的な高頻度語を導入シンボ
ル、出現位置、文字列長で置換することにより辞典ソー
ステキストを圧縮するためのロジックであり、記憶装置
11のROMの一部にCPU10に処理可能な形式で格
納されている。
【0169】オフセット置換伸長手段216は、「オフ
セット置換圧縮手段」により圧縮されたデータを伸長し
て、元のソーステキストに復元するためのロジックであ
り、記憶装置11のROMの一部にCPU10に処理可
能な形式で格納されている。
【0170】番号置換圧縮手段217は、静的辞書には
登録されなかった局所的な高頻度語を導入シンボルと番
号とで置換することにより辞典ソーステキストを圧縮す
るためのロジックであり、記憶装置11のROMの一部
にCPU10に処理可能な形式で格納されている。
【0171】番号置換伸長手段218は、「番号置換圧
縮手段」により圧縮されたデータを伸長して、元のソー
ステキストに復元するためのロジックであり、記憶装置
11のROMの一部にCPU10に処理可能な形式で格
納されている。
【0172】以下、本発明に固有な各手段を実施するた
めの方法を述べる。図15は、構成要素ごとの辞書作成
手段の説明図である。「構成要素ごとの辞書作成手段」
の入力は、複数個の記述部分から構成されるテキストで
あり、辞典では英和辞典の意味テキスト(見出し以外の
部分)が代表的な例である。
【0173】「構成要素ごとの辞書作成手段の出力は、
構成要素ごとに作成された静的辞書と符号化表、および
切換対応表(切換シンボルと切換シンボルの出現直後に
セットされる符号化表の対)である。ここで、切換シン
ボルとは、静的辞書中に登録されている、テキスト中の
構成要素と構成要素を区切るための文字列(シンボル)
を示す。
【0174】処理の第1段階において、まず、入力テキ
ストの構成要素間を区切る文字列が特定できる場合は、
その文字列を区切り記号として、どの構成要素とどの構
成要素を区切るかという情報とともにRAM上に記憶す
る。構成要素間を区切る明確な文字列が特定できない場
合は、入力テキスト中には決して出現しない適当な文字
列を区切り記号としてテキスト中に挿入し、その区切り
記号と区切られる構成要素をRAM上に記憶する(22
0)。
【0175】区切り記号によって区切られたソーステキ
スト、区切り記号が前方の構成要素に含まれるように分
割し、複数個のサブテキストを生成する(221)。
【0176】分割されたサブテキストごとに独立に静的
辞書(可変長シンボルとその出現頻度の対)を切出す。
テキストから1つの静的辞書を切出すための方式につい
ては、前述したとおりここでは、前提となる方式である
ものとして、詳述はしない。
【0177】実現方法の1つとしては、テキストの先頭
から末尾まで1文字ずつ先頭位置をずらしながらi文字
列長の文字列の出現回数をカウントし、これをソートし
て圧縮率に貢献する頻度を持つ文字列のみをテキストか
ら切出し実際の頻度に計算し、これを静的辞書に登録す
るとともに、切残されたテキストに対して同様に(i−
1)文字列長の文字列に対して処理を行ない、これをi
=N〜1まで繰返すという手順がある。ここでは、静的
辞書に登録されるシンボルに必ず区切り記号を含めてお
く必要があるため、静的辞書を切出す前に、対象となる
サブテキストから、まず区切り記号だけを静的辞書のシ
ンボルとして切出した後、切残されたサブテキストから
上述のような方法を使って他のシンボルを切出すことに
よって各構成要素ごとの静的辞書を構築する(22
2)。
【0178】静的辞書をもとに、対象テキスト圧縮伸長
する方法には既知なものがいくつか存在する。ここで
は、静的辞書から各シンボルに割り当てられる符号(圧
縮データのビット列)を求め、シンボルと符号の対から
なる符号化表を作成し、符号化表を参照しながら圧縮・
伸長を行なう手法を例にとって以降の説明を行なう。
【0179】ただし、本発明に関しては符号化手法はそ
れが統計ベースのものであれば何でもよく、本質的な問
題ではない。PRENTICE HALL Advanced Reference Serie
s,“Text Vompression", 1991 などに記述された方法
で、各静的辞書から構成要素ごとに符号化表を作成し、
これをROMに記憶しておく(223)。
【0180】静的辞書中には、区切り記号がシンボルと
して登録されているが、この区切り記号のシンボルをこ
こでは「切換シンボル」と呼び、予めRAMに記憶して
おいた「区切り記号とそれにより区切られる構成要素の
対」の情報をもとに、「切換シンボルとその直後の構成
要素の符号化表の対」すなわち、「切換対応表」を作成
しこれをROMに記憶しておく(224)。
【0181】次に、図16〜図21を参照して、構成要
素ごとの辞書作成手段による処理例を処理例225以下
に示す。処理例225は、英和辞典の意味テキストの一
部で、“pace”という項目に対応する付近の内容を
示している。テキストは、各項目の先頭から、「発音記
号(“[peis]”)」、「訳(“[な]、…、ある
く”)」、「例文(“at a、…、歩調で”)」、
「変化形(“[な][ふく、…、pacing”)」の
各記述部分が順に出現する。
【0182】このうち、発音記号、変化形は文字を構成
するコード種が他とは異なっているので、別々の静的辞
書を用意しておく方が効率的に圧縮できる。また、訳の
文と例文内の日本語訳の部分は「日本語テキスト」とし
て、例文内の英語部分は「英語テキスト」として別個に
圧縮した方が、やはりそれぞれのコード種が大きく異な
るため、圧縮効率は良くなる。これに従って、たとえ
ば、「日本語」「英語」「発音記号」「変化形」の各構
成要素にテキストを分割する。
【0183】処理例226に、処理例225のテキスト
を「日本語」「英語」「発音記号」「変化形」の各構成
要素に区切るために区切り記号を特性あるいは挿入した
状態を示している。
【0184】「発音記号」に関しては、“]”が出現し
た時点で「日本語」テキストに切換わる。これは始めか
らテキスト内に区切り記号が存在する例である。「訳」
に関しては、すべて「日本語」テキストとして処理し、
区切記号として挿入した文字列“●”が出現した時点で
「英語」テキストに切換わる。「例文」に関しては、例
文内で「日本語」テキストに切換わる部分と「変化形」
テキストに切換わる部分にそれぞれ“\”、“^”の区
切り記号を表わす文字列が挿入されている。
【0185】処理例227に、処理例226のテキスト
を実際の「日本語」「英語」「発音記号」「変化形」の
各構成要素ごとに分割して構成要素ごとにまとめたサブ
テキストの例を示す。このようにして同種のコードが多
く含まれるように圧縮対象テキストを分割しておいた上
で、各テキストに対して静的辞書を作成する。処理例2
28に「日本語」「英語」「発音記号」「変化形」の各
テキストごとに作成された「静的辞書」の例を示す。こ
こで、各静的辞書には、それぞれのソーステキストに含
まれていた区切り記号がそのままの形で「切換えシンボ
ル」として含まれている必要がある。発音記号用静的辞
書中のシンボル“]”、日本語テキスト用静的辞書中の
シンボル“●”、“^”、英語テキスト用静的辞書中の
シンボル“\”が切換えシンボルとして扱われるもので
ある。
【0186】処理例22Aに、これらの切換えシンボル
と、切換えシンボルが出現した直後から次のどの符号化
表を使って圧縮伸長を行なわねばならないかを示す「切
換え対応表」の作成例を示す。
【0187】処理例229は処理例228で作成した構
成要素ごとの静的辞書をもとに、周知の方法で符号化ビ
ット列を求めることにより作成した、「構成要素ごとの
符号化表」の例である。統計情報に基づく符号化表で
は、出現確率の高いシンボルには短いビット列が、また
出現確率が低いシンボルには長いビット列が割り振られ
ることになる。たとえば「日本語テキスト用静的辞書」
中で頻度の高い“(1)”、“●”には短いビット列
が、また頻度が低い“ゆっくり”には長いビット列が割
り振られている。
【0188】構成要素ごとにテキストを分割した上で静
的辞書を用意する場合と、テキスト全体を対象とした1
つの静的辞書のみを用意する場合の圧縮効率の違いを処
理例22B、処理例22Cに示す。
【0189】たとえば、変化用静的辞書中のシンボル
“[3単]−s”は、変化形テキストに対する場合で
も、テキスト全体に対する場合でもその出現頻度は変わ
らないが、変化形テキスト内での出現確率は、テキスト
全体における出現確率よりはるかに大きいため、出現確
率から求められる“[3単]−s”の理論上の符号長に
は大きな差ができる。
【0190】このように、テキストをうまく分割すれば
各々のシンボルの符号長が短くなり、圧縮テキストデー
タ自体はかなり小さくなる。反面、分割テキストごとに
複数個の静的辞書(符号化表)を用意しなければならな
いので、静的辞書のサイズが増大することになる。一般
的には、テキストが巨大な場合(1Mバイト前後以上)
は、たとえ静的辞書のサイズが増えてもテキスト自体の
圧縮効率がそれを補うため、全体としての圧縮率が改善
される場合が多い。図22に辞書切換圧縮伸長手段の実
現例を示す。
【0191】辞書切換圧縮伸長手段の入力は、区切り記
号によって明確に区切られた複数の構成要素からなるソ
ーステキスト(または圧縮されたデータ)、構成要素ご
との辞書を作成手段により作成された構成要素ごとの符
号化表および切換対応表である。辞書切換圧縮伸長手段
の出力は符号化表と切換対応表に基づいて符号化表を切
換えながら圧縮伸長した結果の圧縮データまたは復元さ
れたソーステキストである。
【0192】符号化表に基づく具体的な圧縮伸長方法に
ついては、符号化方式自体は既知なものであるので説明
を省略し、「複数の符号化表をいかにして切換えながら
圧縮伸長を進めるか」という本発明に固有の部分につい
て処理手順を説明する。
【0193】まず圧縮(伸長)開始時にセットされる符
号化表を定める(330)。どこからどんな部分を伸長
するかにより、開始時にセットされる符号化表が異な
る。たとえば処理例226の項目“pace”に対応す
る意味テキストの先頭からの末尾までを圧縮する場合に
は、最初に“発音記号の符号化表”をセットしておく。
【0194】次に、現在セットされている符号化表をも
とに、1シンボル分の圧縮(伸長)処理を行ない(33
1)、処理されたシンボルば圧縮(伸長)終了を示すシ
ンボルであれば圧縮(伸長)を終え、そうでなければそ
のシンボルが切換シンボルとして切換対応表に登録され
ているか否かを調べる(332、333)。切換シンボ
ルであれば切換対応表に従って次からの圧縮(伸長)に
用いる符号化表をセットした上で次のシンボルの圧縮
(伸長)に移り、切換シンボルでなければそのまま現在
セットされている符号化表を使って次のシンボルの圧縮
(伸長)を行なう(334)。伸長処理において切換シ
ンボルがソーステキストに挿入されたものである場合
(処理例226の“●”や“^”)は、伸長バッファに
は伸長結果を書込まずにそのまま処理を進める。
【0195】図23に共有辞書作成手段の実現例を示
す。共有辞書作成手段は、「構成要素ごとの辞書作成手
段」と基本的な処理タスクが変わらない。ここでは、入
力された複数の辞典テキストに同じような記述部分が存
在する場合に、各辞典ごとに静的辞書を用意するより
も、同じ記述部分を縦割りにして圧縮対象テキストをま
とめた上で構成要素ごとの静的辞書を用意した方が圧縮
効率がよくなることを利用する。したがって、処理タス
クは「構成要素ごとの辞書作成手段」とほとんど同じ、
「構成要素ごとの辞書作成手段」では処理対象が1つの
テキストであったが、「共有辞書作成手段」では処理対
象が2つ以上の異なるテキストになる部分にのみ違いが
でる。
【0196】「共有辞書作成手段」の入力は、少なくと
も1つの構成要素が一致する複数個の辞典ソーステキス
トであり、「共有辞書作成手段」の出力は、構成要素ご
とに作成された静的辞書と符号化表、および辞典ごとに
作成された切換対応表(切換シンボルと切換シンボルの
出現直後にセットされる符号化表の対)である。
【0197】各辞典のソーステキストごとに、まず、
「構成要素ごとの辞書作成手段」と同様の方法で、区切
り記号の特定、挿入を行ない、区切り記号と区切り記号
により区切られる構成要素をRAM上に記憶する(44
0)。
【0198】次に、区切り記号によって区切られた各辞
典ごとのソーステキストを、区切り記号が前方の構成要
素に含まれるように分割し、複数個のサブテキストを生
成する(441)。
【0199】分割されたサブテキストを構成要素ごと
に、複数の辞典に跨がった形で集める(442)。構成
要素ごとに再編成された各テキストから、「構成要素ご
との辞書作成手段」の場合と同様の手段を用いて静的辞
書、符号化表を作成してROMに記憶しておく(44
3)。ただし、「切換対応表」は「構成要素ごとの辞書
作成手段」とは異なり、同じ構成要素内のシンボルでも
それがある辞典内では切換シンボルとして扱われ、また
別の辞典内では単なるシンボルとして扱われる場合もあ
ることを考慮し、「辞典ごと」の「切換対応表」を用意
しておかねばならない。ここの「切換対応表」の具体的
な作成方法は、構成要素ごとの辞書作成手段」と同様で
ある。
【0200】図24〜図28を参照して、ここまでの処
理例を示す。ここでは、「英和辞典」「和英辞典」「英
熟語辞典」「国語辞典」の4つの辞典テキストが圧縮対
象として入力された場合を例に説明する。「英和辞典」
「和英辞典」「英熟語辞典」「国語辞典」のソーステキ
ストの一部を処理例444〜処理例447に示す。
【0201】各ソーステキストに対して区切り記号を特
定、あるいは挿入した後のテキストを処理例448、4
49、44Aおよび44Bに示す。「英和辞典」の区切
記号は発音記号と日本語テキストの各構成要素を区切る
“]”、日本語テキストと英語テキストを区切る“●”
(挿入)、英語テキストと日本語テキストを区切る
“\”(挿入)、日本語テキストと変化形テキストを区
切る“^”(挿入)である。「和英辞典」の区切記号
は、日本語テキストと英語テキストを区切る“]”、英
語テキストと日本語テキストを区切る“\”である。
【0202】「英熟語辞典」の区切り記号は、英語テキ
ストと日本語テキストを区切る“\”である。「国語辞
典」の区切り記号はなしで、テキストすべてにわたって
日本語テキストから構成されるものと見なしている。
【0203】構成要素ごとに分割した各辞典のサブテキ
ストを、辞典間に跨がる形で、各構成要素ごとに集め、
再編成したテキストを処理例44Cに示す。各構成要素
ごとに再編成されたテキストから切出した、構成要素ご
との静的辞書を処理44Dに示す。各辞典ごとに作成さ
れた、切換シンボルと、その直後からセットされる符号
化表の対を示す「切換対応表」を処理例44Eに示す。
【0204】各辞典のソーステキストの圧縮データ容量
を小さくする、という観点からは、共有辞書を作成する
より個々の辞典ごとに別個の静的辞書を構築した方が、
各シンボルの出現確率が少しでも大きくなるため有利で
あるが、「構成要素ごとの辞書作成手段」の場合とは逆
に、シンボルの出現確率を稼ぐ効果よりも、静的辞書を
共有することによって圧縮データの容量を抑える方が、
複数個の大容量の辞典を圧縮対象とする場合は効果が大
きい。これは、各辞典ごとに各構成要素ごとの静的辞書
を作成した場合、重複するシンボルが数多く切出される
ため、静的辞書自体が冗長になってしまうことによる。
【0205】たとえば、日本語テキストの“ゆっく
り”、英語テキストの“at”など(4C)は図に示す
ようなわずかな範囲でも異なる辞典にともに出現する。
これらを別個の静的辞書で定義すると、全体としては、
同じシンボルが多数定義された冗長な静的辞書がいくつ
も構成されてしまうことになる。
【0206】図29を参照して、共有辞書切換圧縮・伸
長手段の実現例を示す。共有辞書切換圧縮・伸長手段の
入力は、区切り記号によって明確に区切られた構成要素
からなる複数の辞典ソーステキスト(または圧縮された
データ)と、構成要素ごとの辞書作成手段により作成さ
れた構成要素ごとの符号化表および各辞典ごとに作成さ
れた切換対応表である。辞書切換圧縮・伸長手段の出力
は、符号化表と切換対応表に基づいて符号化表を切換え
ながら圧縮(伸長)した結果の圧縮データ(または復元
されたソーステキスト)である。
【0207】共有辞書切換伸長・圧縮手段においても、
符号化表に基づく具体的な圧縮伸長方法については、周
知の方法であるため説明を省略し、「複数の符号化表を
いかにして切換えながら各辞典ごとに圧縮伸長を進める
か」という本発明に固有の部分のみについて処理手順を
説明する。
【0208】まず、どの辞典のテキストを圧縮(伸長)
するのかを表わす辞典IDをRAMにセットし、処理対
象の辞典テキストが変わるごとにIDも変えるものとす
る(550)。
【0209】次に、圧縮(伸長)開始時にセットされる
符号化表を定める(551)。次に、現在セットされて
いる符号化表をもとに、1シンボル分の圧縮(伸長)処
理を行ない(552)、処理されたシンボルが圧縮(伸
長)終了を示すシンボルであれば圧縮(伸長)を終え、
そうでなければそのシンボルが切換シンボルとして辞典
IDに対する切換対応表に登録されているか否かを調べ
る(553、554)。切換シンボルであれば辞典ID
ごとの切換対応表に従って次からの圧縮(伸長)に用い
る符号化表をセットした上で次のシンボルの圧縮(伸
長)に移り、切換シンボルでなければそのまま現在セッ
トされている符号化表を使って次のシンボルの圧縮(伸
長)を行なう(554、555)。伸長処理において切
換シンボルがソーステキストに挿入されたものである場
合(448)の“●”や“^”は、伸長バッファには伸
長結果を書込まずにそのまま処理を進める。
【0210】図30、図31および図32を参照して、
オフセット置換圧縮手段の実現例を説明する。
【0211】オフセット置換圧縮手段の入力は、局所的
な高頻度が存在するような辞典テキストおよび、その辞
典テキストに対して予め構築された静的辞書と符号化表
である。また、オフセット置換圧縮手段の出力は、局所
的な高頻度語の部分が高効率に圧縮された辞典テキスト
の圧縮データである。また、処理の途中で、高頻度語を
特定し、それを取込んだ形で置換修正された辞典テキス
トと、修正テキストに対して更新された静的辞書および
符号化表が生成される。
【0212】ここでは、説明の便宜上、図34、図35
および図36を参照して、処理例から先に説明を行な
う。処理例663は英和辞典のソーステキストの一部で
ある。上から順に、“citric acid”、“c
itron”、“citrus”という項目のそれぞれ
の意味が記述されているようすが示されている。
【0213】処理例663の中に出現する局所的な高頻
度語が“柑橘(かんきつ)類”および“シトロン”であ
るとすると、オフセット置換圧縮手段によって処理例6
63のテキストは処理例664のように書替えられる。
すなわち、“柑橘(かんきつ)類”および“シトロン”
はどちらも初回の出現時には何も置換されないが、2回
目以降の出現時には導入シンボル“*”と“:”で区切
られた2つの数字に置換される。たとえば、処理例66
3の2行目の“シトロンの木…”の部分の“シトロン”
は、処理例664では“*29:,8”で置き換えられ
ているがこれは、この位置にはソーステキストで29バ
イト手前の位置から8バイト分の文字列(=同じ行の
“シトロン(レモン)に…”の部分の“シトロン”)と
同じ文字列が出現することを表わしている。
【0214】導入シンボルは入力されたソーステキスト
中に存在しない文字列であれば何であっても構わない。
また、出現位置と文字列長を表わす2つの数字は、圧縮
効率を考えてその値の範囲を制限する必要がある。この
例では、出現位置を1Kバイト手前まで(10bi
t)、文字列量を32バイトまでとしている。
【0215】以上の置換操作によって、ソーステキスト
が書替えられてしまったので、それに併せて静的辞書6
65、符号化表666にも変更が必要になる。すなわ
ち、1回置換を行なうごとに導入シンボル“*”の静的
辞書への登録(カウントアップ)、置換された各シンボ
ルの静的辞書内でのカウントダウンにより、静的辞書と
テキストの整合性を維持しておく。テキスト全体にわた
って置換および静的辞書667の変更を行なった後、静
的辞書から周知の手段で符号化表を作成し直す。
【0216】このようにして更新されたテキスト664
を、更新した符号化表668により符号化(圧縮)す
る。
【0217】ただし、“*”の直後の数字の対に対して
は、符号化表による符号化は行なわずに、それらを10
bit、5bitのバイナリの数値に変換する処理が通
常の場合とは異なる。以上のような圧縮法により、オフ
セット置換された文字列(2回目以降の出現文字列)は
一様に導入シンボルの符号長+15bitで符号化され
ることになる。導入シンボルの出現回数によりその符号
長は異なるが、英和辞典のような局所的な高頻度語がよ
く出てくるテキストに対してはその符号長を短く抑える
ことができる。
【0218】処理例669にオフセット置換圧縮を採用
せずに、元の静的辞書665および符号化表666を元
に圧縮した場合の符号長と、オフセット置換圧縮を併用
して圧縮した場合の符号長の比較を示す。
【0219】このように、置換対象のシンボルが局所的
な高頻度語であれば、元の静的辞書中では符号長の長い
いくつかのシンボルに分解せざるを得ない文字列も、オ
フセット置換を用いることにより、2回目以降の出現以
降で一定長の、元より短いビットで符号化できることが
わかる。
【0220】オフセット置換圧縮を併用する場合に最も
重要なことは、局所的な高頻度語をうまく検出すること
である。すなわち、元の静的辞書を圧縮する場合より少
なくとも置換後の符号長が短くなるような置換対象の文
字列を見つけ出さなければならない。
【0221】幸い、元の符号化表から任意の文字列の符
号長が算出でき、かつ、置換後の符号長も出現位置と文
字列長が固定であるから導入シンボルの符号化長をうま
く想定できれば静的辞書を更新する前に概算できる。置
換対象文字列は、任意の文字列に対してこの2つの値を
常に比較し、置換後の符号長の短くなると予想できるも
のを選択すればよい。
【0222】以上処理例に基づいてオフセット置換圧縮
方式の概要を述べた。図30〜図33を参照して、より
詳細な処理手順を説明する。処理は2つの段階に大別さ
れる。すなわち、元の静的辞書Sでに導入シンボル
(“*”,0)を追加(660)しておいた上で、処理
の第1段階でテキスト中の置換対象文字列を検出しなが
ら、テキストと静的辞書の更新を行ない(661)、第
2段階で、更新されたテキストを、更新された静的辞書
から作成した符号化表に基づいてエンコードする(66
2)。
【0223】元の静的辞書SDおよびソーステキストS
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
=”)”となる。
【0224】SS(0)に関する置換・更新処理(61
5)は(6151)以下で示される。SS(j)は現在
の処理対象範囲を示している。処理が進むにつれて、j
の値は増やされ、処理対象範囲は1エンコードシンボル
ずつ後方に縮められる。SS(p−1)の処理が終わっ
た時点で、辞典1項目(SS(0))に関する置換・更
新処理が終了する(6151)。
【0225】処理範囲SS(j)=“sj,…,si,
…,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)。
【0226】処理例663の“citron”に対応す
るテキストを例に取れば、SS(11)=‘シ’‘ト’
‘ロン’‘の’‘木’,…,‘ケーキ’‘用’に対して
は、str(13)=‘シ’‘ト’‘ロン’で、元のS
T中の29バイト手前に同一の文字列が出現(最初の
“シトロン”)し、これが局所的な高頻度語として処理
される。
【0227】str(i)が局所的な高頻度語になるか
どうかの検査は、まず、処理の無駄を省くために符号化
表からstr(i)の符号長を計算し、これが置換符号
長よりも短くならない場合は、たとえ前方に一致する文
字列があっても圧縮効率が改善されないので、置換・更
新処理は行なわず、処理対象範囲を次に進める(615
4)。置換符号長は処理例の場合は22bit(想定導
入シンボル長7bit、出現位置10bit、文字列長
5bit)に設定しているが、テキストによりこれらの
値は最適な値が異なる。
【0228】str(i)の符号長が置換符号長より短
い場合は、これを局所的な高頻度語の候補と見なして、
(更新されていない元の)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)。
【0229】今一度、処理例663の“citron”
に対応するテキストを例にとって説明しておく。3回目
に出現するstr(4)=‘シ’‘ト’‘ロン’‘の’
を局所的な高頻度語の候補として検査する場合、元のS
T中の31バイト手前に同一の文字列が出現(2回目の
“シトロン”以下)するが、これはこれまでの処理で既
に更新テキスト中で置換されている。したがって、「同
一文字列が見つかり、かつその文字列がこれまでの処理
で、更新テキストにおいて置換されていない場合」とい
う条件の後半部に抵触するため、これを局所的な高頻度
語としては処理せず、strをもう1シンボル分減らし
た上で、最初に出てくる(置換処理されていない)“シ
トロン”とマッチングするstr(3)=‘シ’‘ト’
‘ロン’を局所的な高頻度語として置換する。
【0230】制限幅内に同一の文字列が見つからなかっ
た場合は、検査対象文字列を1シンボル分末尾方向から
短くして(−−i)、str(i−1)に対する処理を
行なう。
【0231】以上が「静的辞書とソーステキストの更
新」処理の内容である。次に、更新したソーステキスト
を更新した静的辞書でエンコードする手段について説明
する。圧縮は、静的辞書から符号化表を作成し、符号化
表を参照しながら文字列をビット列で置き換える周知の
方法を用いればよいが、オフセット置換に依存する部分
だけ別個の処理を行なう必要がある。
【0232】1シンボルずつ、終了シンボルが出現する
まで(622)、周知の方法によってエンコードする
(621)。ただし、エンコードシンボルが導入“*”
である場合(623)は、それに続く、“,”で区切ら
れたアスキー数字d1、d2を読込み(624)、d
1、d2の各値を定められた出現位置のビット幅および
文字列長のビット幅(この場合はそれぞれ10bit、
5bit)にバイナリパックする(625)。
【0233】以上がエンコード処理の内容である。次に
図43を参照して、「オフセット置換圧縮手段により圧
縮されたデータの伸長手段」の実現例について説明す
る。オフセット置換伸長処理も、前述のエンコード処理
同様、基本的には周知の方法を用いて伸長を行なう。オ
フセット置換圧縮に依存して変更した部分だけがオフセ
ット置換伸長処理においても異なることになる。
【0234】説明の便宜上、フローチャートでは圧縮デ
ータの先頭から伸長を行なうものとする。伸長したシン
ボルがデータの終了コードになるまで(82)、符号化
表に基づいて、周知の方法により1シンボルずつ伸長す
る(81)。
【0235】デコードシンボルが“*”でない場合は、
デコード結果の文字列を出力(84)して次のデータを
デコードする。デコードシンボルが“*”であれば、次
の15bitの圧縮データを読込み、出現位置d1、文
字列長d2をセットし、既に復元されたテキストの中か
ら、現在位置よりd1バイト手前の位置からd2バイト
分の文字列を置換コードの伸長結果として出力し(8
6、87)、次の圧縮データの処理に移る。
【0236】以上の伸長アルゴリズムでは、もし、特定
の辞書項目だけを伸長しようとする場合でも、基本的に
は圧縮データの先頭から伸長しなければならないことに
なるが、圧縮時の制限から実は、伸長対象項目の(ソー
ステキスト上で)その手前1024バイト分の情報さえ
事前に処理されていればよい。すなわち、特定の辞書項
目だけを伸長する場合は、ソーステキスト上で所定の辞
書項目の1024バイト分以上手前の項目に相当する圧
縮データ区切りから伸長を始める。
【0237】手前部分の伸長処理において、置換圧縮さ
れた部分は、さらにその手前のデータを伸長しないとテ
キストに復元できない場合はテキストへの復元は行なわ
ずに置換コードの文字列長の情報からそれが復元テキス
ト上では何バイトの文字列になるかという情報だけを得
ておく。その他のテキストに復元できる部分はすべて復
元しておく。
【0238】このような準備をしておけば、手前の10
24バイト内にある、テキストに復元された任意の文字
列に対して、それが現在の位置から何バイト手前に出現
するかを算出することができる。一方、「オフセット置
換圧縮手段」の実現方法から、置換のもとになる文字列
が別途置換されていることはないので(図32の処理6
155の処理要件に違反するため)、出現位置まで遡っ
た位置には、文字列長分の復元テキストが必ず存在す
る。
【0239】このように、辞典の任意の項目からの伸長
には多少複雑なロジックと、処理時間のオーバヘッドが
生じるが、辞典のソース的を圧縮データの先頭から伸長
しなくてもすむので、「オフセット置換伸長手段」は辞
典モジュールの検索性能を損ねない利点を併せ持ってい
るといえる。
【0240】次に、図37〜図39を参照して、番号置
換圧縮手段の実現例を説明する。番号置換圧縮手段の入
力は、「オフセット置換圧縮手段」と同様、局所的な高
頻度語が存在するような辞典テキストおよび、その辞典
テキストに対して予め構築された静的辞書と符号化表で
ある。また、番号置換圧縮手段の出力は、局所的な高頻
度語の部分も高効率に圧縮した辞典テキストの圧縮デー
タである。また、処理の途中で、高頻度語を特定し、そ
れを取込んだ形で置換修正された辞典テキストと、修正
テキストに対して更新された静的辞書および符号化表が
生成される。
【0241】ここでも、説明の便宜上、図40〜図42
を参照して、処理例から先に説明を行なう。
【0242】処理例774は「オフセット置換圧縮手
段」の処理例663と同一の、英和辞典のソーステキス
トの一部である。処理例774の中に出現する局所的な
高頻度語が“柑橘(かんきつ)類”および“シトロン”
であるとすると、番号置換圧縮手段によって処理例77
4のテキストは処理例775のように書替えられる。す
なわち、“柑橘(かんきつ)類”および“シトロン”は
どちらも初回出現時には導入シンボル△、番号、および
文字列長を表わす数字がその前に挿入され、2回目以降
の出現時には導入シンボル★と初回出現時に番号付けさ
れたものと同じ番号で文字列自体が置換される。
【0243】たとえば、処理例773の2行目の最初の
“(1)シトロン(…”の部分の“シトロン”の前には
△1,8が挿入されているが、これは以下の8バイトを
置換対象文字列として番号を1で登録することを表わし
ている。また、同じ行の次の“シトンの木…”の“シト
ロン”は★1で置換されているが、これは最も近い△1
を自分自身の前に持つ文字列が★1で置換されているこ
とを表わしている。
【0244】導入シンボルは「オフセット置換圧縮手
段」同様、入力されたソーステキスト中に存在しない文
字列であれば何であっても構わない。また、番号と文字
列長を表わす数字は、圧縮効率を考えてその値の範囲を
制限する必要がある。この例では、番号を0〜7の8個
(3bit)、文字列長32バイト(5bit)までと
している。
【0245】ここで、番号はテキスト全体で8個しか使
えないのではなく、mod−8(7の次はまた0に戻
る)で個数制限なしに使用することができる。ただし、
一意に伸長するために、★dがその前方の最も近くの△
d,1以下の1バイトの文字列を指すという制限が必ず
守られるようにテキスト置換操作を行なう。
【0246】テキストの置換操作に伴う静的辞書77
6、符号化表777の変更も「オフセット置換圧縮手
段」と同様である。すなわち、1回目の置換を行なう際
は、“△”、“★”のカウントアップ、および置換され
た各シンボルの静的辞書内でのカウントダウンを行な
い、2回目以降の置換では、“★”のカウントアップと
置換された各シンボルの静的辞書内でのカウントダウン
を行なう。テキスト全体にわたって置換および静的辞書
778の変更を行なった後静的辞書から周知の手段で符
号化表779を作成し直す。
【0247】このようにして更新したテキストの処理例
775を、更新した符号化表779により符号化(圧
縮)する。ただし、“△”の直後の処理と“★”の直後
の処理が通常の場合とは異なる。すなわち、△直後の数
字の対に対しては、符号化表による符号化は行なわず
に、それぞれを3bit、5bitのバイナリの数値に
変換し、★の直後の数字に対しては、符号化表による符
号化は行なわずに、3bitのバイナリ数値にこれを変
換する。
【0248】以上のような圧縮法により、番号置換され
た文字列(2回目以降の出現文字列)は一様に導入シン
ボルの符号長+3bitで符号化されることになる。導
入シンボルの出現回数によりその符号長が異なるが、英
和辞典のような局所的な高頻度語がよく出てくるテキス
トに対してはその符号長を短く抑えることができる。
【0249】また、「オフセット置換圧縮手段」に比べ
て、何回も同一の置換対象文字列が出現する場合は、置
換文字列に対する符号長が「オフセット置換圧縮手段」
よりも短いため圧縮効率の点では有利になる。処理例7
7Aに番号置換圧縮を採用せずに、元の静的辞書776
および符号化表777を使って圧縮した場合の符号長
と、番号置換圧縮を併用して圧縮した場合の符号長との
比較を示す。
【0250】番号置換圧縮を併用する場合に最も重要な
ことは、「オフセット置換圧縮手段」の場合と同様、局
所的な高頻度語をうまく検出することである。すなわ
ち、元の静的辞書で圧縮する場合より少なくとも置換後
の符号長が短くなるような置換対象の文字列を見つけ出
さなければならない。「番号置換圧縮」においても、元
の符号化表から算出される符号長と、置換後の符号長と
の比較を行ない、置換後の符号長が短くなると予想でき
るものを選択する。
【0251】以上、処理例に基づいて番号置換圧縮方式
の概要を述べた。再び、図37〜図39を参照して、よ
り詳細な処理手順を記述する。
【0252】処理は「オフセット置換圧縮手段」の場合
と同様、2つの段階に大別される。すなわち、番号カウ
ンタCを0クリアし(770)、元の静的辞書SDに導
入シンボル(“△”,0)および(“★”,0)を追加
(771)しておいた上で、処理の第1段階でテキスト
中の置換対象文字列を検出しながら、テキストと静的辞
書の更新を行ない(772)、第2段階で、更新された
テキストを、更新された静的辞書から作成した符号化表
に基づいてエンコードする(773)。
【0253】元の静的辞書SDおよびソーステキストS
Tを更新する作業の準備として、項目ごとの圧縮データ
へのアクセスを想定して、STを辞典の各項目ごとに分
けたもの(S0、…Se)を処理単位として考える(7
21)。項目ごとのテキストSnをn=0からeまで順
次処理する(722)。まず、Snを(更新されていな
い元の)SDの符号化表でエンコードし(723)、S
nのエンコードシンボル列SS(0)=“s0、s1、
…、sp”を抽出する(724)。
【0254】SS(0)に関する置換・更新処理725
は図38で示す処理7251以下で示される。SS
(j)は現在の処理対象範囲を示している。処理が進む
につれて、jの値は増やされ、処理対象範囲は1エンコ
ードシンボルずつ後方に縮められる。SS(p−1)の
処理が終わった時点で、辞典1項目(SS(0))に関
する置換・更新処理が終了する(7251)。
【0255】処理範囲SS(j)=“sj、…、si、
…、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)。
【0256】ここまでは、「オフセット置換圧縮手段」
と同様である。str(i)が局所的な高頻度語になる
かどうかの検査は、まず、処理の無駄を省くために符号
化表からstr(i)の符号長を計算し、これが置換符
号長よりも短くならない場合は、たとえ前方に一致する
文字列があっても圧縮効率が改善されないので、置換・
圧縮更新処理は行なわず、処理対象範囲を次に進める
(7254)。置換符号長は処理例の場合は26bit
(想定導入シンボル長(77+8)bit、番号(3*
2)bit、文字列長5bit)に設定しているが、テ
キストによりこれらの値は最適な値が異なる。
【0257】str(i)の符号長が置換符号長より短
い場合は、これを局所的な高頻度語の候補と見なして、
(更新されていない元の)SD上の現在位置から前方に
ある適当な範囲内の文字列に対して、str(i)と同
一の文字列が存在するか否かサーチする。元のソーステ
キスト上でPOSバイト手前に同一文字列が見つかった
場合は置換処理を次のステップに進め、見つからなけれ
ば、1エンコードシンボル分短くしたstr(i−1)
に対して再度サーチを行なう(7255)。
【0258】処理7255で、str(i)と同一の文
字列が元のソーステキスト上でPOSバイト手前に見つ
かった場合は、さらに、更新テキストでPOS位置に対
応する位置の直前に△C′,1または★C′が配置され
ておらず(すなわち置換されていない文字列であり)、
かつ更新テキスト上でPOS位置に対応する位置以降に
△Cが存在しなければ(7256、7257)、これか
ら番号付けしようとする文字列が、置換対象文字列の位
置から前方の最も近い位置にあることを保証できるの
で、POS位置の直前に△C,1(1=|str(i)
|)を挿入して、POS位置以下の1バイトの文字列を
C番に番号登録するとともに、str(i)を★Cに置
換する(7259)。
【0259】一方△Cが存在すれば、前回C番で番号付
けしたより前の部分に遡ってサーチしてしまったことに
なり、ここで、Cの番号付けを行なうと、以降の★Cが
どちらの△Cに対応するものかわからなくなってしま
う。すなわち、これから番号付けしようとする文字列
が、置換対象文字列の位置から前方の最も近い位置にあ
ることが保証できなくなるため、この場合はstr
(i)に対する処理を止めて、str(i−1)に対す
る処理を行なう(7257)。
【0260】処理7259でテキストが修正された場合
は、テキストの変更に伴う静的辞書の修正を行ない(7
25A)、C番の登録が済んだので、番号カウンタをm
od(8,(C+1))として次に進め(725B)、
処理対象範囲jをi+1に更新して、未処理部分に対す
る処理を継続する。
【0261】処理7256でPOS位置に対応する更新
テキストの位置の直前に△C′,1または★C′が配置
されている(すなわち既に置換または番号登録された文
字列である)場合は、△の最近の位置の制約を守るため
に、△C′がPOS対応位置以降に出現しないことを確
認した上で(7258)、str(i)を★C′で置換
し(725C)、静的辞書の対応する箇所を修正する
(725D)。
【0262】この処理過程では置換処理されるものが以
前番号付けされたC′であるため、Cは更新せずに、処
理対象範囲だけをi+1に進めて残りの部分SS(i+
1)に対する処理を行なう。
【0263】以上の処理を、図40で示された処理例7
74の“citron”に代用するテキストを例にとっ
て今一度説明しておく。
【0264】今C=1で、2回目に出現するSS(1
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に置換される。
【0265】以上が「静的辞書とソーステキストの更
新」処理の内容である。次に、図39を参照して、更新
したソーステキストを更新した静的辞書でエンコードす
る手段について説明する。圧縮は、静的辞書から符号化
表を作成し、符号化表を参照しながら文字列をビット列
で置き換える周知の方法を用いればよいが、番号置換に
依存する部分だけ別個の処理を行なう必要がある。
【0266】1シンボルずつ、終了シンボルが出現する
まで(732)、周知の方法によってエンコードする
(731)。ただし、エンコードシンボルが導入シンボ
ル“★”である場合(733)は、それに続く、アスキ
ー数字d1を読込みこれを3bitでバイナリパックし
て、次の部分のエンコードに移る(735)。“★”で
なく、“△”である場合は、それに続くアスキー数字d
1、d2の各値をそれぞれ3bit、5bitにバイナ
リパックして、次の部分のエンコードに移る(73
6)。
【0267】以上がエンコード処理の内容である。次に
図44を参照して、「番号置換圧縮手段」により圧縮さ
れたデータの伸長手段の実現例を説明する。番号置換伸
長手段も、前述のエンコード処理と同様、基本的には周
知の方法を用いて伸長を行なう。番号置換圧縮に依存し
て変更した部分だけが、番号置換伸長処理においても異
なることになる。
【0268】伸長したシンボルがデータの終了コードに
なるまで(91)、符号化表に基づいて、周知の方法に
より1シンボルずつ伸長する(90)。
【0269】デコードシンボルが“★”でも“△”でも
ない場合は、デコードの結果の文字列を出力(99)し
て次のデータの伸長に移る。デコードシンボルが“△”
であれば、次の8bitの圧縮データを読み飛ばし、次
のデータの伸長に移る。
【0270】デコードシンボルが“★”であれば、圧縮
データの次の3bitを読込み、番号d1を得る(9
3)。ここで、これまでの処理において既に手前方向で
最初に出現する“△d1,len”以下のlenバイト
を伸長済みならば(94)、そのlenバイト分の文字
列をデコード結果として出力し(96)、次のデータの
伸長に移る。
【0271】“△d1,len”以下のlenバイトが
未伸長ならばさらに手前の部分をデコードして、現在位
置から手前方向で最初に“△d1,len”が出現する
箇所とそれ以下のlenバイトの文字列を確定させた上
で(95)、そのlenバイト分の文字列をデコード結
果として出力し(96)、次のデータの伸長に移る。
【0272】以上の伸長アルゴリズムでは、置換データ
(★d)が出現したとき、対応する△が未伸長であれ
ば、その都度遡って伸長を行なわねばならないオーバヘ
ッドはあるものの、基本的には特定の辞典項目だけを伸
長できるようになっており、「番号置換伸長手段」も辞
典モジュールの検索性能を損ねない利点を持ち合わせて
いるといえる。
【0273】以上のように、実施の形態2に係るテキス
ト圧縮装置によれば、大容量の固定の辞典テキストデー
タを必要とする装置(電子辞書など)において、辞典テ
キストデータを効率よく圧縮・伸長をする具体的な手段
を提供することができる。特に、対象となる辞典テキス
トが複数の異なる記述部分から構成されている場合(英
和辞典など)、共通の構成要素を持つ複数個の辞典テキ
ストを圧縮対象とする場合(英和、和英辞典など)に
は、それぞれ、請求項5、6の手法により圧縮率を高め
ることができる。
【0274】また本装置により、辞典テキストの圧縮メ
モリ容量を大幅に削減して製品のコストダウンを図るこ
とができる。
【0275】さらに本装置によれば、大容量の固定の辞
典のテキストデータを必要とする装置(電子辞書など)
において、特にその装置が、全体としての出現頻度は低
いが、局所的には集中的に出現する文字列が多数存在す
るような辞典テキスト(英和辞典など)を扱う場合に、
辞典テキストの検索性能をあまり落とすことなく、圧縮
メモリ容量を大幅に削減して製品のコストダウンを図る
ことができる。
【図面の簡単な説明】
【図1】実施の形態1に係るテキスト圧縮用辞書作成装
置の全体構成説明図である。
【図2】実施の形態1に係るテキスト圧縮用辞書作成装
置の頻度ガイドライン算出手段の説明図である。
【図3】実施の形態1に係るテキスト圧縮用辞書作成装
置の長文字列切出手段の説明図である。
【図4】実施の形態1に係るテキスト圧縮用辞書作成装
置の長文字列切出手段による処理例の説明図である。
【図5】実施の形態1に係るテキスト圧縮用辞書作成装
置の長文字列切出手段による処理例の説明図である。
【図6】実施の形態1に係るテキスト圧縮用辞書作成装
置の効率指標関数値順文字列切出手段の説明図である。
【図7】実施の形態1に係るテキスト圧縮用辞書作成装
置の効率指標関数値順文字列切出手段による処理例の説
明図である。
【図8】実施の形態1に係るテキスト圧縮用辞書作成装
置の1文字シンボル抽出手段の説明図である。
【図9】実施の形態1に係るテキスト圧縮用辞書作成装
置のシンボル削除のための文字列切出手段の説明図であ
る。
【図10】実施の形態1に係るテキスト圧縮用辞書作成
装置のシンボル削除のための文字列切出手段による処理
例の説明図である。
【図11】実施の形態1に係るテキスト圧縮用辞書作成
装置のシンボル分解手段の説明図である。
【図12】実施の形態1に係るテキスト圧縮用辞書作成
装置のシンボル分解手段による処理例の説明図である。
【図13】実施の形態1に係るテキスト圧縮用辞書作成
装置のシンボル分解手段の説明図である。
【図14】実施の形態2に係るテキスト圧縮装置の全体
構成説明図である。
【図15】実施の形態2に係るテキスト圧縮装置の構成
要素種類ごとの辞書作成手段の説明図である。
【図16】実施の形態2に係るテキスト圧縮装置の構成
要素種類ごとの辞書作成手段の処理例の説明図である。
【図17】実施の形態2に係るテキスト圧縮装置の構成
要素種類ごとの辞書作成手段の処理例の説明図である。
【図18】実施の形態2に係るテキスト圧縮装置の構成
要素種類ごとの辞書作成手段の処理例の説明図である。
【図19】実施の形態2に係るテキスト圧縮装置の構成
要素種類ごとの辞書作成手段の処理例の説明図である。
【図20】実施の形態2に係るテキスト圧縮装置の構成
要素種類ごとの辞書作成手段の処理例の説明図である。
【図21】実施の形態2に係るテキスト圧縮装置の構成
要素種類ごとの辞書作成手段の処理例の説明図である。
【図22】実施の形態2に係るテキスト圧縮装置の辞書
切換圧縮伸長手段の説明図である。
【図23】実施の形態2に係るテキスト圧縮装置の共有
辞書作成手段の説明図である。
【図24】実施の形態2に係るテキスト圧縮装置の共有
辞書作成手段の処理例の説明図である。
【図25】実施の形態2に係るテキスト圧縮装置の共有
辞書作成手段の処理例の説明図である。
【図26】実施の形態2に係るテキスト圧縮装置の共有
辞書作成手段の処理例の説明図である。
【図27】実施の形態2に係るテキスト圧縮装置の共有
辞書作成手段の処理例の説明図である。
【図28】実施の形態2に係るテキスト圧縮装置の共有
辞書作成手段の処理例の説明図である。
【図29】実施の形態2に係るテキスト圧縮装置の共有
辞書切換圧縮伸長手段の説明図である。
【図30】実施の形態2に係るテキスト圧縮装置のオフ
セット置換圧縮手段の説明図である。
【図31】実施の形態2に係るテキスト圧縮装置のオフ
セット置換圧縮手段の説明図である。
【図32】実施の形態2に係るテキスト圧縮装置のオフ
セット置換圧縮手段の説明図である。
【図33】実施の形態2に係るテキスト圧縮装置のオフ
セット置換圧縮手段の説明図である。
【図34】実施の形態2に係るテキスト圧縮装置のオフ
セット置換圧縮手段の処理例の説明図である。
【図35】実施の形態2に係るテキスト圧縮装置のオフ
セット置換圧縮手段の処理例の説明図である。
【図36】実施の形態2に係るテキスト圧縮装置のオフ
セット置換圧縮手段の処理例の説明図である。
【図37】実施の形態2に係るテキスト圧縮装置の番号
置換圧縮手段の説明図である。
【図38】実施の形態2に係るテキスト圧縮装置の番号
置換圧縮手段の説明図である。
【図39】実施の形態2に係るテキスト圧縮装置の番号
置換圧縮手段の説明図である。
【図40】実施の形態2に係るテキスト圧縮装置の番号
置換圧縮手段の処理例の説明図である。
【図41】実施の形態2に係るテキスト圧縮装置の番号
置換圧縮手段の処理例の説明図である。
【図42】実施の形態2に係るテキスト圧縮装置の番号
置換圧縮手段の処理例の説明図である。
【図43】実施の形態2に係るテキスト圧縮装置のオフ
セット置換伸長手段の説明図である。
【図44】実施の形態2に係るテキスト圧縮装置の番号
置換伸長手段の説明図である。
【符号の説明】
111 頻度ガイドライン算出手段 112 長文字列切出手段 113 1文字シンボル抽出手段 114 効率指標関数値順文字列切出手段 115 シンボル削除のための文字列切出手段 116 シンボル分解手段 211 構成要素種類ごとの辞書作成手段 212 辞書切換圧縮・伸長手段 213 共有辞書作成手段 214 共有辞書切換圧縮・伸長手段 215 オフセット置換圧縮手段 216 オフセット置換伸長手段 217 番号置換圧縮手段 218 番号置換伸長手段

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 テキストを圧縮する際に参照される辞書
    を作成するためのテキスト圧縮用辞書作成装置であっ
    て、 目標圧縮率に対して、2以上の文字列長の各々について
    前記目標圧縮率を満足するためにテキスト中で出現が要
    求される頻度のガイドラインを算出する頻度ガイドライ
    ン算出手段と、 テキストから、文字列長2以上の文字列であって、対応
    する文字列長の頻度ガイドラインを満たす頻度で出現す
    るものを、その実頻度とともに文字列長の降順に切出し
    て第1の静的辞書を生成するとともに、前記頻度ガイド
    ラインを満たさない切残しのテキストの集合を生成する
    長文字列切出手段と、 前記切残しのテキストの集合から文字列長1の文字ごと
    にその頻度をカウントして第2の静的辞書を生成する1
    文字シンボル抽出手段と、 前記第1の静的辞書に前記第2の静的辞書を追加して最
    終的静的辞書を生成する最終的静的辞書構築手段とを含
    むテキスト圧縮用辞書作成装置。
  2. 【請求項2】 テキストを圧縮する際に参照される辞書
    を作成するためのテキスト圧縮用辞書作成装置であっ
    て、 目標圧縮率に対して、2以上の文字列長の各々について
    前記目標圧縮率を満足するためにテキスト中で出現が要
    求される頻度のガイドラインを算出する頻度ガイドライ
    ン算出手段と、 テキストから、文字列長2以上の文字列であって、対応
    する文字列長の頻度ガイドラインを満たす頻度で出現す
    るものを、その実頻度とともに文字列長と実頻度との積
    の降順に切出して第1の静的辞書を生成するとともに、
    前記頻度ガイドラインを満たさない切残しのテキストの
    集合を生成する効率指標関数値順文字列切出手段と、 前記切残しのテキストの集合から文字列長1の文字ごと
    にその頻度をカウントして第2の静的辞書を生成する1
    文字シンボル抽出手段と、 前記第1の静的辞書に前記第2の静的辞書を追加して最
    終的静的辞書を生成する最終的静的辞書構築手段とを含
    むテキスト圧縮用辞書作成装置。
  3. 【請求項3】 前記最終的静的辞書中の文字列であっ
    て、前記最終的静的辞書中の他の文字列の組合せである
    ものを、最も長い文字列が含まれる複数個の他の文字列
    に分解し削除するとともに、当該他の文字列の実頻度を
    前記削除された文字列の頻度だけそれぞれ増加させるた
    めの文字列切出手段をさらに含む請求項1または請求項
    2に記載のテキスト圧縮用辞書作成装置。
  4. 【請求項4】 前記最終的静的辞書中の文字列であっ
    て、前記最終的静的辞書中の他の文字列の組合せである
    ものを、圧縮率への寄与が最も大きくなるような複数個
    の他の文字列に分解し削除するとともに、当該他の文字
    列の実頻度を前記削除された文字列の頻度だけそれぞれ
    増加させるための文字列切出手段をさらに含む請求項1
    または請求項2に記載のテキスト圧縮用辞書作成装置。
  5. 【請求項5】 それぞれ属性の異なる複数種類の構成要
    素から構成されるテキストに対して、各構成要素種類ご
    とに前記テキストを分割し、分割された各々の構成要素
    種類のテキストに対して、構成要素種類の境界に含まれ
    る構成要素種類の切換えを指示するシンボルを含む圧縮
    辞書を作成する辞書作成手段と、 前記辞書作成手段により作成された辞書を、前記シンボ
    ルに遭遇するたびに前記シンボルに応じて切換えなが
    ら、圧縮対象のテキストの圧縮伸長を行なう辞書切換圧
    縮伸長手段とを含むテキスト圧縮装置。
  6. 【請求項6】 各々がそれぞれ属性の異なる複数種類の
    構成要素から構成される複数のテキストであって、少な
    くとも一部の構成要素種類を共有する複数のテキストに
    対して、各構成要素種類ごとに前記複数のテキストを分
    割し、分割された各々の構成要素種類のテキストに対し
    て、構成要素種類の境界に含まれる構成要素種類の切換
    えを指示するシンボルを含む共有辞書を作成する共有辞
    書作成手段と、 前記共有辞書作成手段により作成された共有辞書を、前
    記シンボルに遭遇するたびに前記シンボルに応じて切換
    えながら、圧縮対象のテキストの圧縮伸長を行なう共有
    辞書切換圧縮伸長手段とを含むテキスト圧縮装置。
  7. 【請求項7】 テキスト中の局所的な高頻度語を、2回
    目の出現以降において、前記テキスト中には存在しない
    文字列である導入シンボルと当該高頻度語の1回目の出
    現位置と当該高頻度語の当該出現位置からの文字列長と
    で置換して符号化するオフセット置換圧縮手段と、 前記オフセット置換圧縮手段により圧縮されたデータ
    を、前記導入シンボル後の前記1回目の出現位置と前記
    出現位置からの前記文字列長とにより指定される語に置
    換することにより伸長して元のテキストに復元するオフ
    セット置換伸長手段とを含むテキスト圧縮装置。
  8. 【請求項8】 テキスト中の局所的な高頻度語につい
    て、初回出現時に番号を付与し2回目の出現以降におい
    て、前記テキスト中には存在しない文字列である導入シ
    ンボルと付与された前記番号とで置換して符号化する番
    号置換圧縮手段と、 前記番号置換圧縮手段により圧縮されたデータを、前記
    導入シンボルと前記番号とを、対応する語に置換するこ
    とにより伸長して元のテキストに復元する番号置換伸長
    手段とを含むテキスト圧縮装置。
JP01389296A 1996-01-30 1996-01-30 テキスト圧縮用辞書作成装置 Expired - Fee Related JP3566441B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US20030018647A1 (en) * 2001-06-29 2003-01-23 Jan Bialkowski System and method for data compression using a hybrid coding scheme
CA2411227C (en) * 2002-07-03 2007-01-09 2012244 Ontario Inc. System and method of creating and using compact linguistic data
JP4382663B2 (ja) * 2002-07-03 2009-12-16 2012244 オンタリオ インコーポレイテッド 簡潔言語学データを生成かつ使用するシステムおよび方法
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
US20060212441A1 (en) * 2004-10-25 2006-09-21 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
DE602005014993D1 (de) * 2005-10-27 2009-07-30 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
US8326604B2 (en) * 2008-04-24 2012-12-04 International Business Machines Corporation Dictionary for textual data compression and decompression
US8326605B2 (en) * 2008-04-24 2012-12-04 International Business Machines Incorporation 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设备数据优化存储方法
CN117896442A (zh) * 2024-03-15 2024-04-16 陕西禄远电子科技有限公司 一种基于物联网的综合能源数据管理系统

Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) データ符号化方式及びデータ復元方式
Dvorskyl et al. Word-based compression methods and indexing for text retrieval systems
Ö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) 日本語文の圧縮方法
JPH0546357A (ja) テキストデータの圧縮方法および復元方法
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
Gupta et al. A novel data compression algorithm for dynamic data
JPH06251070A (ja) 単語検索のための電子辞書圧縮方法及び装置

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