(57)【要約】【課題】  辞書型符号化方法において、見出語単位データを離散的に選択して参照部を作成し、文字列に応じて符号化方法を変更し、圧縮効率を高めること【解決手段】  ＣＰＵ１０は、元英和辞典データ２００から、離散的に見出語単位データを選択し、処理後英和参照部３０２とし、残った見出語単位データを主データ部中間データ３０６とする。また、ＣＰＵ１０は、所定の語長以上の文字列については、グローバルサーチプログラム２１４を実行することにより符号化する文字列を決定し、それ以外の文字列については、ローカルサーチプログラム２１６を実行することにより符号化する文字列を決定する。そして、符号化プログラム２１８を実行することにより、主データ部中間データ３０６は、符号化され符号化後英和主データ部３０４となる。【選択図】  図２
2005135086.tif 000002
【特許請求の範囲】
【請求項１】
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分する区分手段と、
文字の出現頻度に基づき、前記参照部の中から所定の頻度で出現する文字の位置を頻出参照位置として複数選択し、各頻出参照位置を識別するための符号と対応づけて複数記憶する位置記憶手段と、
参照位置が前記頻出参照位置の場合には前記位置記憶手段に記憶された当該参照位置の符号及び当該参照位置からの語長を用い、参照位置が前記頻出参照位置でない場合には当該参照位置及び当該参照位置からの語長を用いた辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化する主データ部符号化手段と、
を備えることを特徴とする辞書データ圧縮装置。
【請求項２】
文字列が見出語単位で一連に記述されている辞書データ全体の中から見出語単位のデータを離散的に複数抽出して参照部とし、残りの部分を主データ部として区分する区分手段と、
前記参照部を参照元とする辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化する主データ部符号化手段と、
を備えることを特徴とする辞書データ圧縮装置。
【請求項３】
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分し、前記主データ部中の文字列に一致する一致文字列が前記参照部中に在る場合に、当該一致文字列のコピーを表す符号により当該主データ部の文字列を符号化する辞書型符号化方法により辞書データを圧縮する辞書データ圧縮装置において、
前記主データ部中の文字列のうち、所定語長以上の文字列を対象として前記辞書型符号化方法により圧縮する所定語長以上圧縮手段と、
文字列とこの文字列の符号化効率予測値とを対応づけて複数記憶する記憶手段と、
この所定語長以上圧縮手段によって圧縮された後の主データ部に含まれている文字列のうち、前記記憶手段に記憶された符号化効率予測値の高い文字列から順番に前記辞書型符号化方法により圧縮する評価値順圧縮手段と、
を備えることを特徴とする辞書データ圧縮装置。
【請求項４】
文字列データで成る辞書データを記憶する記憶手段と、
規格化された１バイト文字コードの中から何れかの１バイト文字コードを選択する選択手段と、
前記規格化された１バイト文字コードの中から対応文字が指定されていない空白の１バイト文字コードを１バイト目とする２バイト文字コード変換表を作成し、この２バイト文字コード変換表中の未設定の２バイト文字コードに前記選択された１バイト文字コードを設定する変換表作成手段と、
前記文字列データの中から、出現頻度が所定頻度の２バイト文字コードを検出する検出手段と、
前記選択された１バイト文字コードによって表される対応文字を、前記検出された２バイト文字コードによって表される対応文字に変更する対応文字変更手段と、
前記文字列データのうち、前記選択された１バイト文字コードを、前記２バイト文字コード変換表に設定された対応する２バイト文字コードに置換する第１の置換手段と、
前記文字列データのうち、前記検出された２バイト文字コードを、前記選択された１バイト文字コードに置換する第２の置換手段と、
を備えることを特徴とする辞書データ圧縮装置。
【請求項５】
文字列データで成る辞書データを記憶する記憶手段と、
文字コードと、規格化された文字コードとを対応づけて記憶する文字コード記憶手段と、
前記文字列データに含まれる文字を表す文字コードの１バイト目を抽出する抽出手段と、
この抽出手段により抽出された１バイト目に基づいて、当該文字コードが１バイト文字コードであるか２バイト文字コードであるかを判定する文字判定手段と、
この文字判定手段により１バイト文字コードであると判定された場合に、その判定された１バイト文字コードに対応する規格化された文字コードを前記文字コード記憶手段から読み出して、規格化された文字コードに置換する置換手段と、
を備えることを特徴とする電子辞書装置。
【請求項６】
コンピュータに、
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分させる区分工程と、
文字の出現頻度に基づき、前記参照部の中から所定の頻度で出現する文字の位置を頻出参照位置として複数選択し、各頻出参照位置を識別するための符号と対応づけて複数記憶させる位置記憶工程と、
参照位置が前記頻出参照位置の場合には前記位置記憶工程で記憶した当該参照位置の符号及び当該参照位置からの語長を用い、参照位置が前記頻出参照位置でない場合には当該参照位置及び当該参照位置からの語長を用いた辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化させて出力させる主データ部出力工程と、
を含むことを特徴とする圧縮辞書データ製造方法。
【請求項７】
コンピュータに、
文字列が見出語単位で一連に記述されている辞書データ全体の中から見出語単位のデータを離散的に複数抽出させて参照部とし、残りの部分を主データ部として区分させる区分工程と、
前記参照部を参照元とする辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化させて、出力させる主データ部出力工程と、
を含むことを特徴とする圧縮辞書データ製造方法。
【請求項８】
コンピュータに、
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分させ、前記主データ部中の文字列に一致する一致文字列が前記参照部中に在る場合に、当該一致文字列のコピーを表す符号により当該主データ部の文字列を符号化する辞書型符号化方法により辞書データを圧縮させる圧縮辞書データ製造方法において、
前記コンピュータに、
前記主データ部中の文字列のうち、所定語長以上の文字列を対象として前記辞書型符号化方法により圧縮させる所定語長以上圧縮工程と、
この所定語長以上圧縮工程によって圧縮された後の主データ部に含まれている文字列のうち、符号化効率予測値の高い文字列から順番に前記辞書型符号化方法により圧縮させる評価値順圧縮工程と、
この評価値順圧縮工程における圧縮後の文字列データを圧縮文字列データとして出力させる出力工程と、
を含むことを特徴とする圧縮辞書データ製造方法。
【請求項９】
コンピュータに、
文字列データで成る辞書データを圧縮した圧縮辞書データを製造させる圧縮辞書データ製造方法であって、
前記コンピュータに、
規格化された１バイト文字コードの中から何れかの１バイト文字コードを選択させる選択工程と、
前記規格化された１バイト文字コードの中から対応文字が指定されていない空白の１バイト文字コードを１バイト目とする２バイト文字コード変換表を作成され、この２バイト文字コード変換表中の未設定の２バイト文字コードに前記選択された１バイト文字コードを設定させる変換表作成工程と、
前記文字列データの中から、出現頻度が所定頻度の２バイト文字コードを検出させる検出工程と、
前記選択された１バイト文字コードによって表される対応文字を、前記検出された２バイト文字コードによって表される対応文字に変更させる対応文字変更工程と、
前記文字列データのうち、前記選択された１バイト文字コードを、前記２バイト文字コード変換表に設定された対応する２バイト文字コードに置換させる第１の置換工程と、
この第１の置換工程における置換後の文字列データのうち、前記検出された２バイト文字コードを、前記選択された１バイト文字コードに置換させる第２の置換工程と、
この第２の置換工程における置換後の文字列データを圧縮文字列データとして出力させる出力工程と、
を含むことを特徴とする圧縮辞書データ製造方法。
【請求項１０】
コンピュータに、
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分する区分機能と、
文字の出現頻度に基づき、前記参照部の中から所定の頻度で出現する文字の位置を頻出参照位置として複数選択し、各頻出参照位置を識別するための符号と対応づけて複数記憶する位置記憶機能と、
参照位置が前記頻出参照位置の場合には前記位置記憶機能に記憶された当該参照位置の符号及び当該参照位置からの語長を用い、参照位置が前記頻出参照位置でない場合には当該参照位置及び当該参照位置からの語長を用いた辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化する主データ部符号化機能と、
を実現させるためのプログラム。
【請求項１１】
コンピュータに、
文字列が見出語単位で一連に記述されている辞書データ全体の中から見出語単位のデータを離散的に複数抽出して参照部とし、残りの部分を主データ部として区分する区分機能と、
前記参照部を参照元とする辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化する主データ部符号化機能と、
を実現させるためのプログラム。
【請求項１２】
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分し、前記主データ部中の文字列に一致する一致文字列が前記参照部中に在る場合に、当該一致文字列のコピーを表す符号により当該主データ部の文字列を符号化する辞書型符号化方法により辞書データを圧縮するコンピュータにおいて、
前記主データ部中の文字列のうち、所定語長以上の文字列を対象として前記辞書型符号化方法により圧縮する所定語長以上圧縮機能と、
文字列とこの文字列の符号化効率予測値とを対応づけて複数記憶する記憶機能と、
この所定語長以上圧縮機能によって圧縮された後の主データ部に含まれている文字列のうち、前記記憶機能に記憶された符号化効率予測値の高い文字列から順番に前記辞書型符号化方法により圧縮する評価値順圧縮機能と、
を実現させるためのプログラム。
【請求項１３】
コンピュータに、
文字列データで成る辞書データを記憶する記憶機能と、
規格化された１バイト文字コードの中から何れかの１バイト文字コードを選択する選択機能と、
前記規格化された１バイト文字コードの中から対応文字が指定されていない空白の１バイト文字コードを１バイト目とする２バイト文字コード変換表を作成し、この２バイト文字コード変換表中の未設定の２バイト文字コードに前記選択された１バイト文字コードを設定する変換表作成機能と、
前記文字列データの中から、出現頻度が所定頻度の２バイト文字コードを検出する検出機能と、
前記選択された１バイト文字コードによって表される対応文字を、前記検出された２バイト文字コードによって表される対応文字に変更する対応文字変更機能と、
前記文字列データのうち、前記選択された１バイト文字コードを、前記２バイト文字コード変換表に設定された対応する２バイト文字コードに置換する第１の置換機能と、
前記文字列データのうち、前記検出された２バイト文字コードを、前記選択された１バイト文字コードに置換する第２の置換機能と、
を実現させるためのプログラム。
【請求項１４】
コンピュータに、
文字列データで成る辞書データを記憶する記憶機能と、
文字コードと、規格化された文字コードとを対応づけて記憶する文字コード記憶機能と、
前記文字列データに含まれる文字を表す文字コードの１バイト目を抽出する抽出機能と、
この抽出機能により抽出された１バイト目に基づいて、当該文字コードが１バイト文字コードであるか２バイト文字コードであるかを判定する文字判定機能と、
この文字判定機能により１バイト文字コードであると判定された場合に、その判定された１バイト文字コードに対応する規格化された文字コードを前記文字コード記憶機能から読み出して、規格化された文字コードに置換する置換機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、辞書データを圧縮する辞書データ圧縮装置、圧縮された辞書データを伸張して利用する電子辞書装置、圧縮した辞書データを製造する圧縮辞書データ製造方法及びプログラムに関する。
【背景技術】
【０００２】
データの圧縮アルゴリズムには種々のものが知られているが、電子辞書装置等で利用される辞書データの圧縮は、一般文章データの圧縮と比較して「見出語毎のランダムアクセス（復号・伸張）が必要」、「符号化（圧縮ともいう。）は製品開発時に１度行うのみであるため十分時間をかけても問題がない」という２点において大きく異なっている。
【０００３】
「見出語毎のランダムアクセス」とは、辞書データを見出語単位で復号・伸張することをいう。辞書データは紙の辞書と同等の内容を有している。符号化前の辞書データは、紙の辞書に印字されている文字を文字コードとしたものであって、一連のテキストのデータとなっているのが一般的である。すなわち、先頭の見出語から順番に、紙の辞書に印字されている文字（テキスト）が連続したテキストのデータである。この辞書データを全体として単純に圧縮すると、任意の見出語の情報（当該見出語に関する説明文）を復号することができない。このため、連続したテキストデータを見出語毎（見出語単位）で区切り、圧縮する必要がある。
【０００４】
「符号化は製品開発時に１度行うのみ」とは、文字通りメーカ側が十分な時間をかけて辞書データを符号化できることを意味する。すなわち、電子辞書装置では圧縮された辞書データを伸張するのみであり、圧縮（符号化）することはない。従って、高速な計算機によるあらゆる可能性を試した後に最も効率のよい圧縮方法を採用できるという利点がある。
【０００５】
この様な特徴の中で、例えば、特許文献１、特許文献２及び特許文献３のような辞書データの圧縮方法が提案されている。
【０００６】
例えば、辞書データ全体を１割程度の部分（以下適宜「参照部」という。）と残りの部分（以下適宜「主データ部」という。）とに区分する。そして、主データ部中の文字列が参照部中に含まれているか否かを判定し、含まれている場合には含まれている参照部中の位置及び語長に基づいて符号化することにより主データ部の圧縮を行う方法が知られている。
【０００７】
具体的には、主データ部中の符号化対象の文字列が、参照部中のどの位置の文字列に相当するのかを判定して符号化する。このような文字列が含まれる参照部を参照して符号化する方法は、辞書型符号化方法として知られているものである。辞書型符号化方法にはＬＺ７７法やＬＺ７８法等があるが、辞書データに辞書型符号化方法を適用する特徴としては、「見出語毎のランダムアクセス」を可能とするため、参照部を固定とすることが挙げられる。
【０００８】
また、参照部中に一致する文字列が存在しない場合には、その符号化対象の文字列をハフマン符号等で直接可変長で符号化することにより圧縮する。このように、符号化には、文字列が含まれる参照部の位置を参照して符号化する辞書型符号化方法と、直接ハフマン符号等の可変長符号により符号化する方法の２つを利用する。
【特許文献１】特開平６−２５１０７０号公報
【特許文献２】特開平８−３１４９６０号公報
【特許文献３】特開平１１−９６１８６号広報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ここで、上述した２つの圧縮方法のうち、直接可変長で符号化する方法は、参照部を利用せず、使用されている文字列全てに対して一意に符号を割り当てる必要があるため、辞書型符号化方法に比べて圧縮率（圧縮効率ともいう。）が悪い。従って、より多くの文字列を辞書型符号化方法で符号化するために、辞書データのうち参照部の占める割合を高くすることが考えられる。
【００１０】
しかし、参照部の占める割合を高くした場合、参照部における文字列の位置を示すアドレスは、参照部の大きさに応じて大きくなってしまう。従って、アドレスを表す情報量（符号）が大きくなると、符号化した主データ部の情報量が大きくなり、辞書データ全体としての圧縮効率が悪くなってしまう。
【００１１】
また、文字列は長い文字列と一致する程圧縮効率が良い。さらに、短い文字列の場合は、辞書型符号化方法により符号化して圧縮するより、直接可変長で符号化して圧縮する方が圧縮効率が良い場合がある。しかし、従来は主データ部の先頭から、順次参照部と一致するか否かを判定するだけであったため、圧縮された文字列が必ずしも圧縮効率が良いとは言えなかった。
【００１２】
さらに、従来は辞書データ全体のうち、所定の割合を先頭から区分して参照部としている。しかし、辞書データは、通常ａｂｃ順やあいうえお順のように整列されて保存されている。従って、先頭から所定の割合に応じて区分した場合、参照部に含まれる文字列は重複する場合が多く、主データ部に一致する文字列が効率良く含まれていなかった。
【００１３】
本発明は以上の課題に鑑みてなされたものであり、目的とするところは、辞書型符号化方法において、見出語単位データを離散的に選択して参照部を作成し、文字列に応じて符号化方法を変更し、圧縮効率を高めることである。さらに、主データ部の文字列が、参照部に頻出する場合には、参照部における文字列の位置を符号で表すことにより辞書データの圧縮効率を高めることを目的とする。
【課題を解決するための手段】
【００１４】
以上の課題を解決するために、請求項１に記載の発明の辞書データ圧縮装置は、
文字列が見出語単位で一連に記述されている辞書データを参照部とデータ部とに区分する区分手段（例えば、図２のハードディスク２０；元英和辞典データ２００）と、
文字の出現頻度に基づき、前記参照部の中から所定の頻度で出現する文字の位置を頻出参照位置として複数選択し、各頻出参照位置を識別するための符号と対応づけて複数記憶する位置記憶手段（例えば、図２のＲＡＭ３０；サブテーブル３１４）と、
参照位置が前記頻出参照位置の場合には前記位置記憶手段に記憶された当該参照位置の符号及び当該参照位置からの語長を用い、参照位置が前記頻出参照位置でない場合には当該参照位置及び当該参照位置からの語長を用いた辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化する主データ部符号化手段（例えば、図２のＣＰＵ１０；図５のステップＡ１８）と、
を備えることを特徴とする。
【００１５】
また、請求項６に記載の発明の圧縮辞書データ製造方法は、
コンピュータに、
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分させる区分工程（例えば、図２のハードディスク２０；元英和辞典データ２００）と、
文字の出現頻度に基づき、前記参照部の中から所定の頻度で出現する文字の位置を頻出参照位置として複数選択し、各頻出参照位置を識別するための符号と対応づけて複数記憶する位置記憶工程（例えば、図２のＲＡＭ３０；サブテーブル３１４）と、
参照位置が前記頻出参照位置の場合には前記位置記憶工程で記憶した当該参照位置の符号及び当該参照位置からの語長を用い、参照位置が前記頻出参照位置でない場合には当該参照位置及び当該参照位置からの語長を用いた辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化させて出力させる主データ部出力工程（例えば、図２のＣＰＵ１０；図５のステップＡ１８）と、
を含むことを特徴とする。
【００１６】
請求項１０に記載の発明のプログラムは、
コンピュータに、
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分する区分機能（例えば、図２のハードディスク２０；元英和辞典データ２００）と、
文字の出現頻度に基づき、前記参照部の中から所定の頻度で出現する文字の位置を頻出参照位置として複数選択し、各頻出参照位置を識別するための符号と対応づけて複数記憶する位置記憶機能（例えば、図２のＲＡＭ３０；サブテーブル３１４）と、
参照位置が前記頻出参照位置の場合には前記位置記憶機能に記憶された当該参照位置の符号及び当該参照位置からの語長を用い、参照位置が前記頻出参照位置でない場合には当該参照位置及び当該参照位置からの語長を用いた辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化する主データ部符号化機能（例えば、図２のＣＰＵ１０；図５のステップＡ１８）と、
を実現させることを特徴とする。
【００１７】
請求項１、６又は１０に記載の発明によれば、辞書型符号化方法により主データ部を符号化する際に、参照する文字列が頻出する場合には、その頻出する文字列の位置を符号で表すことができる。従って、文字列の位置を用いて直接符号化する場合に比べてより少ない情報量で符号化することが可能となる。
【００１８】
請求項２に記載の発明の辞書データ圧縮装置は、
文字列が見出語単位で一連に記述されている辞書データ全体の中から見出語単位のデータを離散的に複数抽出して参照部（例えば、図２のＲＡＭ３０；処理後英和参照部３０２）とし、残りの部分を主データ部（例えば、図２のＲＡＭ３０；主データ部中間データ３０６）として区分する区分手段（例えば、図２のＣＰＵ１０；図５のステップＡ１０）と、
前記参照部を参照元とする辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化する主データ部符号化手段（例えば、図２のＣＰＵ１０；図５のステップＡ１８）と、
を備えることを特徴とする。
【００１９】
また、請求項７に記載の発明の圧縮辞書データ製造方法は、コンピュータに、
文字列が見出語単位で一連に記述されている辞書データ全体の中から見出語単位のデータを離散的に複数抽出させて参照部とし、残りの部分を主データ部として区分させる区分工程（例えば、図２のＣＰＵ１０；図５のステップＡ１０）と、
前記参照部を参照元とする辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化させて、出力させる主データ部出力工程（例えば、図２のＣＰＵ１０；図５のステップＡ１８）と、
を含むことを特徴とする。
【００２０】
また、請求項１１に記載のプログラムは、
コンピュータに、
文字列が見出語単位で一連に記述されている辞書データ全体の中から見出語単位のデータを離散的に複数抽出して参照部とし、残りの部分を主データ部として区分する区分機能（例えば、図２のＣＰＵ１０；図５のステップＡ１０）と、
前記参照部を参照元とする辞書型符号化方法により前記主データ部を見出語単位で復号可能に符号化する主データ部符号化機能（例えば、図２のＣＰＵ１０；図５のステップＡ１８）と、
を実現させることを特徴とする。
【００２１】
請求項２、７又は１１に記載の発明によれば、辞書データ全体の中から見出語単位のデータを離散的に抽出して参照部とすることができる。従って、辞書データの一部分に偏ることなく、参照部を作成することが可能となる。
【００２２】
請求項３に記載の発明の辞書データ圧縮装置は、
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分し、前記主データ部中の文字列に一致する一致文字列が前記参照部中に在る場合に、当該一致文字列のコピーを表す符号により当該主データ部の文字列を符号化する辞書型符号化方法により辞書データを圧縮する辞書データ圧縮装置において、
前記主データ部中の文字列のうち、所定語長以上の文字列を対象として前記辞書型符号化方法により圧縮する所定語長以上圧縮手段（例えば、図２のＣＰＵ１０；図５のステップＡ１４）と、
文字列とこの文字列の符号化効率予測値とを対応づけて複数記憶する記憶手段（例えば、図２のハードディスク２０；符号化効率予測値テーブル２０６）と、
この所定語長以上圧縮手段によって圧縮された後の主データ部に含まれている文字列のうち、前記記憶手段に記憶された符号化効率予測値の高い文字列から順番に前記辞書型符号化方法により圧縮する評価値順圧縮手段（例えば、図２のＣＰＵ１０；図５のステップＡ１６）と、
を備えることを特徴とする。
【００２３】
また、請求項８に記載の発明の圧縮辞書データ製造方法は、コンピュータに、
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分させ、前記主データ部中の文字列に一致する一致文字列が前記参照部中に在る場合に、当該一致文字列のコピーを表す符号により当該主データ部の文字列を符号化する辞書型符号化方法により辞書データを圧縮させる圧縮辞書データ製造方法において、
前記コンピュータに、
前記主データ部中の文字列のうち、所定語長以上の文字列を対象として前記辞書型符号化方法により圧縮させる所定語長以上圧縮工程（例えば、図２のＣＰＵ１０；図５のステップＡ１４）と、
この所定語長以上圧縮工程によって圧縮された後の主データ部に含まれている文字列のうち、符号化効率予測値の高い文字列から順番に前記辞書型符号化方法により圧縮させる評価値順圧縮工程（例えば、図２のＣＰＵ１０；図５のステップＡ１６）と、
この評価値順圧縮行程における圧縮後の文字列データを圧縮文字列データとして出力させる出力工程（例えば、図２のＣＰＵ１０；図５のステップＡ１８）と、
を含むことを特徴とする。
【００２４】
また、請求項１２に記載の発明のプログラムは、
文字列が見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分し、前記主データ部中の文字列に一致する一致文字列が前記参照部中に在る場合に、当該一致文字列のコピーを表す符号により当該主データ部の文字列を符号化する辞書型符号化方法により辞書データを圧縮するコンピュータにおいて、
前記主データ部中の文字列のうち、所定語長以上の文字列を対象として前記辞書型符号化方法により圧縮する所定語長以上圧縮機能（例えば、図２のＣＰＵ１０；図５のステップＡ１４）と、
文字列とこの文字列の符号化効率予測値とを対応づけて複数記憶する記憶機能（例えば、図２のハードディスク２０；符号化効率予測値テーブル２０６）と、
この所定語長以上圧縮機能によって圧縮された後の主データ部に含まれている文字列のうち、前記記憶機能に記憶された符号化効率予測値の高い文字列から順番に前記辞書型符号化方法により圧縮する評価値順圧縮機能（例えば、図２のＣＰＵ１０；図５のステップＡ１６）と、
を実現させることを特徴としている。
【００２５】
請求項３、８又は１２に記載の発明によれば、所定語長以上の文字列を圧縮する場合には、辞書型符号化方法により圧縮し、所定語長以上ではない文字列を圧縮する場合には、符号化効率予測値の高い文字列から、辞書型符号化方法により圧縮することができる。従って、文字列に応じて効率のよい圧縮を行うことが可能となる。
【００２６】
請求項４に記載の発明の辞書データ圧縮装置は、
文字列データで成る辞書データを記憶する記憶手段（例えば、図２のハードディスク２０）と、
規格化された１バイト文字コードの中から何れかの１バイト文字コードを選択する選択手段（例えば、図２のＣＰＵ１０；図７のステップＢ１０）と、
前記規格化された１バイト文字コードの中から対応文字が指定されていない空白の１バイト文字コードを１バイト目とする２バイト文字コード変換表を作成し、この２バイト文字コード変換表中の未設定の２バイト文字コードに前記選択された１バイト文字コードを設定する変換表作成手段（例えば、図２のＣＰＵ１０；図７のステップＢ１４）と、
前記文字列データの中から、出現頻度が所定頻度の２バイト文字コードを検出する検出手段（例えば、図２のＣＰＵ１０；図７のステップＢ１６）と、
前記選択された１バイト文字コードによって表される対応文字を、前記検出された２バイト文字コードによって表される対応文字に変更する対応文字変更手段（例えば、図２のＣＰＵ１０；図７のステップＢ１８）と、
前記文字列データのうち、前記選択された１バイト文字コードを、前記２バイト文字コード変換表に設定された対応する２バイト文字コードに置換する第１の置換手段（例えば、図２のＣＰＵ１０；図７のステップＢ２２）と、
前記文字列データのうち、前記検出された２バイト文字コードを、前記選択された１バイト文字コードに置換する第２の置換手段（例えば、図２のＣＰＵ１０；図７のステップＢ２４）と、
を備えることを特徴とする。
【００２７】
請求項９に記載の発明の圧縮辞書データ製造方法は、コンピュータに、
文字列データで成る辞書データを圧縮した圧縮辞書データを製造させる圧縮辞書データ製造方法であって、
前記コンピュータに、
規格化された１バイト文字コードの中から何れかの１バイト文字コードを選択させる選択工程（例えば、図２のＣＰＵ１０；図７のステップＢ１０）と、
前記規格化された１バイト文字コードの中から対応文字が指定されていない空白の１バイト文字コードを１バイト目とする２バイト文字コード変換表を作成され、この２バイト文字コード変換表中の未設定の２バイト文字コードに前記選択された１バイト文字コードを設定させる変換表作成工程（例えば、図２のＣＰＵ１０；図７のステップＢ１４）と、
前記文字列データの中から、出現頻度が所定頻度の２バイト文字コードを検出させる検出工程（例えば、図２のＣＰＵ１０；図７のステップＢ１６）と、
前記選択された１バイト文字コードによって表される対応文字を、前記検出された２バイト文字コードによって表される対応文字に変更させる対応文字変更工程例えば、図２のＣＰＵ１０；図７のステップＢ１８）と、
前記文字列データのうち、前記選択された１バイト文字コードを、前記２バイト文字コード変換表に設定された対応する２バイト文字コードに置換させる第１の置換工程（例えば、図２のＣＰＵ１０；図７のステップＢ２２）と、
この第１の置換工程における置換後の文字列データのうち、前記検出された２バイト文字コードを、前記選択された１バイト文字コードに置換させる第２の置換工程（例えば、図２のＣＰＵ１０；図７のステップＢ２４）と、
この第２の置換工程における置換後の文字列データを圧縮文字列データとして出力させる出力工程（例えば、図２のＣＰＵ１０；図７のステップＢ２４）と、
を含むことを特徴とする。
【００２８】
請求項１３に記載の発明のプログラムは、
コンピュータに、
文字列データで成る辞書データを記憶する記憶機能（例えば、図２のハードディスク２０）と、
規格化された１バイト文字コードの中から何れかの１バイト文字コードを選択する選択機能（例えば、図２のＣＰＵ１０；図７のステップＢ１０）と、
前記規格化された１バイト文字コードの中から対応文字が指定されていない空白の１バイト文字コードを１バイト目とする２バイト文字コード変換表を作成し、この２バイト文字コード変換表中の未設定の２バイト文字コードに前記選択された１バイト文字コードを設定する変換表作成機能（例えば、図２のＣＰＵ１０；図７のステップＢ１４）と、
前記文字列データの中から、出現頻度が所定頻度の２バイト文字コードを検出する検出機能（例えば、図２のＣＰＵ１０；図７のステップＢ１６）と、
前記選択された１バイト文字コードによって表される対応文字を、前記検出された２バイト文字コードによって表される対応文字に変更する対応文字変更機能（例えば、図２のＣＰＵ１０；図７のステップＢ１８）と、
前記文字列データのうち、前記選択された１バイト文字コードを、前記２バイト文字コード変換表に設定された対応する２バイト文字コードに置換する第１の置換機能（例えば、図２のＣＰＵ１０；図７のステップＢ２２）と、
前記文字列データのうち、前記検出された２バイト文字コードを、前記選択された１バイト文字コードに置換する第２の置換機能（例えば、図２のＣＰＵ１０；図７のステップＢ２４）と、
を実現させることを特徴とする。
【００２９】
請求項４、９又は１３に記載の発明によれば、出現頻度が所定の頻度の２バイト文字を１バイト文字として置換し、１バイト文字を２バイト文字として置換することが出来る。従って、出現頻度が高い２バイト文字を１バイト文字として表すことにより、少ない情報量で辞書データを圧縮することが可能となる。
【００３０】
請求項５に記載の発明の電子辞書装置は、
文字列データで成る辞書データを記憶する記憶手段（例えば、図１４のＥＥＰＲＯＭ１４０；圧縮後英和辞典データ１４００）と、
文字コードと、規格化された文字コードとを対応づけて記憶する文字コード記憶手段（例えば、図１４のＥＥＰＲＯＭ１４０；文字コード変換表１４０８）と、
前記文字列データに含まれる文字を表す文字コードの１バイト目を抽出する抽出手段（例えば、図１４のＣＰＵ１１０；図１６のステップＧ１０）と、
この抽出手段により抽出された１バイト目に基づいて、当該文字コードが１バイト文字コードであるか２バイト文字コードであるかを判定する文字判定手段（例えば、図１４のＣＰＵ１１０；図１６のステップＧ１４）と、
この文字判定手段により１バイト文字コードであると判定された場合に、その判定された１バイト文字コードに対応する規格化された文字コードを前記文字コード記憶手段から読み出して、規格化された文字コードに置換する置換手段（例えば、図１４のＣＰＵ１１０；図１６のステップＧ２６）と、
を備えることを特徴とする。
【００３１】
請求項１４に記載の発明のプログラムは、
コンピュータに、
文字列データで成る辞書データを記憶する記憶機能（例えば、図１４のＥＥＰＲＯＭ１４０；圧縮後英和辞典データ１４００）と、
文字コードと、規格化された文字コードとを対応づけて記憶する文字コード記憶機能（例えば、図１４のＥＥＰＲＯＭ１４０；文字コード変換表１４０８）と、
前記文字列データに含まれる文字を表す文字コードの１バイト目を抽出する抽出機能（例えば、図１４のＣＰＵ１１０；図１６のステップＧ１０）と、
この抽出機能により抽出された１バイト目に基づいて、当該文字コードが１バイト文字コードであるか２バイト文字コードであるかを判定する文字判定機能（例えば、図１４のＣＰＵ１１０；図１６のステップＧ１４）と、
この文字判定機能により１バイト文字コードであると判定された場合に、その判定された１バイト文字コードに対応する規格化された文字コードを前記文字コード記憶機能から読み出して、規格化された文字コードに置換する置換機能（例えば、図１４のＣＰＵ１１０；図１６のステップＧ２６）と、
を実現させることを特徴とする。
【００３２】
請求項５又は１４に記載の発明によれば、文字列データの文字が変換されている場合であっても、文字の１バイト目を抽出し、抽出された文字に応じて元の文字に変換することが可能となる。
【発明の効果】
【００３３】
請求項１、６又は１０に記載の発明によれば、辞書型符号化方法により主データ部を符号化する際に、参照する文字列が頻出する場合には、その頻出する文字列の位置を符号で表すことができる。従って、文字列の位置を用いて直接符号化する場合に比べてより少ない情報量で符号化することが可能となる。
【００３４】
請求項２、７又は１１に記載の発明によれば、辞書データ全体の中から見出語単位のデータを離散的に抽出して参照部とすることができる。従って、辞書データの一部分に偏ることなく、参照部を作成することが可能となる。
【００３５】
請求項３、８又は１２に記載の発明によれば、所定語長以上の文字列を圧縮する場合には、辞書型符号化方法により圧縮し、所定語長以上ではない文字列を圧縮する場合には、符号化効率予測値の高い文字列から、辞書型符号化方法により圧縮することができる。従って、文字列に応じて効率のよい圧縮を行うことが可能となる。
【００３６】
請求項４、９又は１３に記載の発明によれば、出現頻度が所定の頻度の２バイト文字を１バイト文字として置換し、１バイト文字を２バイト文字として置換することが出来る。従って、出現頻度が高い２バイト文字を１バイト文字として表すことにより、少ない情報量で辞書データを圧縮することが可能となる。
【００３７】
請求項５又は１４に記載の発明によれば、文字列データの文字が変換されている場合であっても、文字の１バイト目を抽出し、抽出された文字に応じて元の文字に変換することが可能となる。
【発明を実施するための最良の形態】
【００３８】
［１．全体構成］
図１は、本発明を適用したコンピュータ１及び電子辞書装置１００の概観図である。コンピュータ１は、通常、電子辞書装置１００の製造メーカ等に設置されており、辞書データの圧縮の用に供される辞書圧縮装置の一種である。コンピュータ１で圧縮された辞書データは、ＥＥＰＲＯＭ１０７に記憶されて、ＥＥＰＲＯＭ１０７が実装された電子辞書装置１００が製造される。そして、電子辞書装置１００においては、圧縮された辞書データが伸張され、辞書データの内容（見出語や説明情報等）が表示される。
【００３９】
辞書データとは、見出語と、当該見出語を説明するための説明情報とからなるデータであり、例えば国語辞典や英和辞典、和英辞典、英英辞典、カタカナ語辞典などの複数の種類がある。但し、簡明のために、本実施形態においては、コンピュータ１により圧縮され、電子辞書装置１００に記憶される辞書データは、英和辞典の辞書データのみとして説明する。また、圧縮（符号化）前の辞書データを圧縮後の辞書データと区別するために、以下では、圧縮前の辞書データを「元辞書データ」という。また、圧縮後の辞書データを「圧縮後辞書データ」という。
【００４０】
図１に示すように、コンピュータ１は、ＣＲＴ（Cathode Ray Tube）等のディスプレイ３と、キーボード５と、ＲＡＭやハードディスク等のメモリ７とを備えた汎用のサーバ・コンピュータ等のハードウェアで構成される。電子辞書装置１００は、ＬＣＤ（Liquid Crystal Display）等のディスプレイ１０３と、文字入力キーや辞書種別の選択キー等の各種キー群１０５と、ＥＥＰＲＯＭ１０７とを備えて構成される。
【００４１】
電子辞書装置１００の基本的な機能は、次の通りである。すなわち、ユーザによって辞書が選択され、検索語となる文字が入力される（以下、入力された文字を「入力文字」という。）と、電子辞書装置１００は、入力文字に適合する見出語を辞書データの中から検索し、見出語候補として一覧表示する。そして、検索した見出語に対応する説明情報を表示する。
【００４２】
［２．辞書データ圧縮装置］
［２．１  構成］
まず、辞書データをコンピュータ１において圧縮する場合の処理について説明する。図２は、コンピュータ１を示すブロック図である。同図に示すように、コンピュータ１は、ＣＰＵ（Central Processing Unit）１０と、ハードディスク２０と、ＲＡＭ（Random Access Memory）３０と、ＲＯＭ（Read Only Memory）４０と、入力部５０と、表示部６０とを備えている。
【００４３】
［２．１．１  記憶領域］
ハードディスク２０は、オペレーティングシステム、必要なプログラム又はデータファイル等を格納する。また、ハードディスク２０には、元英和辞典データ２００と、符号化効率予測値テーブル２０６と、辞書圧縮プログラム２１０と、文字コード圧縮プログラム２１２と、グローバルサーチプログラム２１４と、ローカルサーチプログラム２１６と、符号化プログラム２１８とが記憶されている。
【００４４】
元英和辞典データ２００は、「英和辞典」のコンテンツの圧縮前のデータが入っている辞書データである。図３（ａ）に元英和辞典データ２００の概要を図示した。図３（ａ）において、「○○○○」で示した部分は見出語を表し、「・・・・・」で示した部分は当該見出語の説明文（見出語を説明する文章を構成する文字）を表している。図３（ａ）に示すように、元英和辞典データ２００は、紙の辞書に印字されている文字を文字コードとした一連のテキストのデータとなっている。
【００４５】
また、図３（ｂ）は、説明の便宜上、元英和辞典データ２０２を見出語単位に区切って図式化した概念図である。図３（ｂ）によれば、例えば、見出語「ＣＤ−Ｒ」及び「ＣＤ−Ｒ」の説明情報（以下、１つの見出語とその見出語の説明情報とを合わせて「見出語単位データ」という。）は、元英和辞典データ２００の先頭を「１」バイト目とした「１００」バイト目から記述されている。見出語「ＣＤ−ＲＷ」の見出語単位データは、元英和辞典データ２００の「５００」バイト目から記述されている。
【００４６】
符号化効率予測値テーブル２０６は、文字列を辞書型符号化方法で符号化して圧縮した場合の大きさについて予測値として記憶しているテーブルである。図４（ａ）に符号化効率予測値テーブル２０６のデータ構造の一例を示す。符号化効率予測値テーブル２０６は、文字列（例えば、「［名詞」）と、この文字列を辞書型符号化方法によって符号化した場合の予測ビット数（例えば、「２８」）とを対応づけて保存している。
【００４７】
ＲＡＭ３０は、ＣＰＵ１０が実行する各種プログラムや、これらのプログラムの実行にかかるデータ等を一時的に保持するメモリ領域を備える。本実施形態では、圧縮後英和辞典データ３００と、主データ部中間データ３０６と、１バイト文字変換表３０８と、文字コード変換表３１０と、文字待避表３１２と、サブテーブル３１４と、ハフマン符号テーブル３１６と、リザーブ配列記憶領域３１８と、見出語テーブル３２０とを備えている。なお、ＲＡＭ３０は、図１におけるメモリ７に相当する。
【００４８】
圧縮後英和辞典データ３００は、ＣＰＵ１０が、辞書圧縮プログラム２１０に基づいて辞書圧縮処理を実行することにより、元英和辞典データ２００を圧縮した辞書データである。詳細は後述するが、圧縮後英和辞典データ３００は、処理後英和参照部３０２と、符号化後英和主データ部３０４に区分されている。
【００４９】
主データ部中間データ３０６は、ＣＰＵ１０が処理後英和参照部作成処理を実行することにより、元英和辞典データ２００から作成される辞書データである。ＣＰＵ１０は、元英和辞典データ２００から、処理後英和参照部３０２として保存されなかった残りの辞書データを主データ部中間データとして、ＲＡＭ３０に記憶する。
【００５０】
ここで、文字コードについて説明する。コンピュータ等で利用されるテキスト文字は、文字コードで特定されているのが一般的である。具体的には、半角英数文字「０」について、コンピュータは文字「０」そのものとして扱っているのではなく、「０」の文字コード「３０ｈ（ｈは１６進数の意。以下省略する。）」というデータで処理している。文字コードには、１バイト文字コードと２バイト文字コードとがあり、種々の規格がある。何れの規格でもよいが、本実施形態においては、例えばシフトＪＩＳ規格による文字コードのことを汎用文字コードと呼ぶ。また、元英和辞典データ２００は汎用文字コードで記述されているが、文字コード圧縮処理において、汎用文字コードの一部を変更して書き換える。以下、その文字コード圧縮処理において利用される１バイト文字変換表３０８と、文字コード変換表３１０と、文字待避表３１２とを説明する。
【００５１】
１バイト文字変換表３０８は、１バイト文字に関する文字コードのテーブルであり、２５６個の文字と、その文字コードとを対応づけたテーブルである。１バイト文字変換表３０８における文字コードは、１バイト文字であるため、「０」から「Ｆ」までの上位の桁と、同じく「０」から「Ｆ」までの下位の桁との２桁で構成されている。図８（ａ）は１バイト文字変換表３０８の一例を示した図である。例えば、文字「＃」の、文字コードは「２３」である。
【００５２】
文字コード変換表３１０は、１バイト文字の文字コードと、汎用文字コードとを対応づけたテーブルである。図８（ｂ）は文字コード変換表３１０の一例を示した図である。文字コード変換表３１０は、例えば１バイト文字の文字コード「２１」に対応する汎用文字コードとして「８９ＢＤ」を保存している。
【００５３】
文字待避表３１２は、汎用文字コードに無い、新たな２バイト文字の２バイト目のコードを定義したテーブルである。また、文字待避表３１２に定義される新たな２バイト文字は、汎用文字コードであったものである。例えば、文字「！」は、汎用文字コードにおいては１バイト文字として汎用文字コード「２１」が割り当てられているものであるが、図８においては、この文字「！」を新たな２バイト文字として、１バイト目のコードを「１３」、２バイト目のコードを「００」とした文字コード「１３００」を割り当てている。
【００５４】
サブテーブル３１４は、処理後英和参照部３０２におけるアドレスに対応する符号を保存しているテーブルである。図４（ｂ）は、サブテーブル３１４のデータ構成の一例を示した図である。例えば、符号「０１」に対応づけて、アドレス「00000000000000000111」が保存されている。サブテーブル３１４を利用することにより、後述する辞書型符号化方法によって符号化する際、参照する文字列の位置をアドレスではなく、符号で表す。
【００５５】
ハフマン符号テーブル３１６は、文字列と、文字列をハフマン符号化した場合のハフマン符号とを対応づけて保存しているテーブルである。元英和辞典データ２００に含まれている文字列それぞれに対し、一意の符号が割り当てられている。
【００５６】
図４（ｃ）はハフマン符号テーブル３１６のデータ構成の一例を示した図である。例えば、ハフマン符号テーブル３１６は、文字列「［名詞］」と、ハフマン符号「１０１１００…」とを対応づけて保存している。
【００５７】
リザーブ配列記憶領域３１８は、主データ部中間データ３０６を符号化する際に使用される配列であるリザーブ配列を記憶する領域である。ここで、リザーブ配列の添え字は、文字が主データ部中間データ３０６で、先頭から何文字目であるかを表しており、当該文字が含まれる文字列の語長を配列の要素の値として記憶している（以下、当該文字に対応したリザーブ配列の要素の値を、適宜「文字対応リザーブ配列値」という。）。
【００５８】
図１０（ｂ）は、リザーブ配列記憶領域３１８に記憶されたリザーブ配列の一例を示した図である。文字対応リザーブ配列値には、「０」かそれ以外の正の整数値が代入されている。ここで、文字対応リザーブ配列値に「０」が代入されている場合には、ＣＰＵ１０は、その「０」が代入されている要素の文字列をハフマン符号化方法に基づいて符号化する。また、文字対応リザーブ配列値に「０」以外の数値が代入されている場合には、ＣＰＵ１０は、文字列を辞書型符号化方法に基づいて符号化する。例えば、図１０（ｂ）（ロ）において、リザーブ配列［５４］に「１０」が代入されていることから、ＣＰＵ１０は、「５４」文字目から「１０」文字分を辞書型符号化方法により符号化する。
【００５９】
見出語テーブル３２０は、圧縮後英和辞典データ３００に含まれている各見出語の圧縮後英和辞典データ３００の開始位置（開始バイト）を保存したテーブルである。ＣＰＵ１０は、辞書圧縮処理を実行後、圧縮後英和辞典データ３００に保存された見出語単位データの開始位置を、見出語テーブル３２０に保存する。
【００６０】
図４（ｄ）は、見出語テーブル３２０のデータ構造の一例を示した図である。見出語テーブル３２０は、圧縮後英和辞典データ３００に含まれている符号化後の見出語単位データの開始バイト位置（例えば、「４９」）を昇順に記憶している。
【００６１】
ＲＯＭ４０は、各種初期設定、ハードウェアの検査、あるいは必要なプログラムのロードを行う為の初期プログラム（例えば、ＢＩＯＳ（Basic Input/Output System）等）を格納する。ＣＰＵ１０は、コンピュータ１の電源投入時においてこの初期プログラムを実行することにより、コンピュータ１の動作環境を設定する。
【００６２】
［２．１．２  ＣＰＵ］
ＣＰＵ１０は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送を行う。具体的には、ＣＰＵ１０は、入力部５０から入力される操作信号に応じてハードディスク２０に格納されたプログラムを読み出し、当該プログラムに従って処理を実行する。そして、表示制御信号を適宜表示部６０に出力して、処理結果を表示させる。
【００６３】
また、ＣＰＵ１０は、本実施形態において、ハードディスク２０の辞書圧縮プログラム２１０に従った、辞書圧縮処理（図５参照）を実行すると共に、この辞書圧縮処理において、文字コード圧縮プログラム２１２に従った文字コード圧縮処理と、グローバルサーチプログラム２１４に従ったグローバルサーチ処理と、ローカルサーチプログラム２１６に従ったローカルサーチ処理と、符号化プログラム２１８に従った符号化処理とをサブルーチンとして実行する。
【００６４】
具体的には、ＣＰＵ１０は、辞書圧縮処理における処理後英和参照部処理において、元英和辞典データ２００全体から見出語単位データを離散的に選択し、選択した見出語単位データをまとめることによって処理後英和参照部３０２を作成する。そして、ＣＰＵ１０は、選択しなかった見出語単位データをまとめることによって主データ部中間データ３０６を作成する。そして、ＣＰＵ１０は、処理後英和参照部３０２及び主データ部中間データ３０６に含まれている文字に対して文字コード圧縮処理を実行する。さらに、ＣＰＵ１０は、主データ部中間データに対して、グローバルサーチ処理と、ローカルサーチ処理とを実行し、辞書型符号化方法により符号化する際に参照されるリザーブ配列を作成する。そして、ＣＰＵ１０は、作成されたリザーブ配列を参照して、符号化処理を実行することにより、符号化後英和主データ部３０４を作成する。以下、詳細は後述するが、各処理について概要を説明する。
【００６５】
まず、ＣＰＵ１０は、文字コード圧縮処理において、１バイト文字変換表３０８の中から空きコードを１つ決定する。また、ＣＰＵ１０は、１バイト文字変換表３０８の中から待避する１バイト文字を決定し、決定した１バイト文字を文字待避表３１２に割り当てる。次に、ＣＰＵ１０は、待避した文字数分だけ、元英和辞典データ２００の中において頻出する２バイト文字を決定し、決定した２バイト文字に対して、待避した１バイト文字の文字コードを割り当てるように１バイト文字変換表３０８を変更する。そして、ＣＰＵ１０は、頻出文字として決定した２バイト文字の汎用文字コードと、新たに割り当てた文字コードとを文字コード変換表３１０に保存する。そして、ＣＰＵ１０は、処理後英和参照部３０２及び主データ部中間データ３０６に含まれている各文字の文字コードを変換された文字コードで置換する。
【００６６】
次に、ＣＰＵ１０は、グローバルサーチ処理において、主データ部中間データ３０６に含まれている所定の語長より大きい文字列が処理後英和参照部３０２に含まれているか否かを検索し、文字対応リザーブ配列値に、語長を代入する。
【００６７】
次に、ＣＰＵ１０は、ローカルサーチ処理において、主データ部中間データ３０６に含まれている所定の語長以下の文字列が処理後英和参照部３０２に含まれているか否かを検索し、所定の語長以下の文字列の中で最も符号化効率がよいと予測される文字列の語長を文字対応リザーブ配列値に代入する。
【００６８】
次に、ＣＰＵ１０は、符号化処理において、文字対応リザーブ配列値を抽出する。そして、ＣＰＵ１０は、文字対応リザーブ配列値が「０」であれば、文字列をハフマン符号で符号化する。また、ＣＰＵ１０は、文字対応リザーブ配列値が「０」以外であれば、処理後英和参照部３０２における参照する文字列のアドレスを抽出する。ここで、ＣＰＵ１０は、抽出したアドレスがサブテーブル３１４に保存されている場合には、サブテーブル３１４に基づき符号化を行い、サブテーブル３１４に保存されていない場合には、処理後英和参照部３０２のアドレスに基づいて符号化を行う。そして、主データ部中間データの総ての文字列を符号化し、符号化後英和主データ部３０４に保存する。
【００６９】
［２．１．３  入出力部］
入力部５０は、仮名やアルファベット等の文字入力や機能選択等に必要なキー群を備えた入力装置であり、押下されたキーの信号をＣＰＵ１０に出力する。この入力部５０におけるキー入力により、処理の実行などを指示する制御命令の入力手段を実現する。なお、この入力部５０は、図１に示すキーボード５に相当するが、キーボードに限られる物ではなく、例えばマウス等であっても良い。
【００７０】
表示部６０は、ＣＰＵ１０から出力される表示信号に基づいて各種画面を表示するものであり、ＣＲＴ（Cathode Ray Tube）等により構成される。なお、この表示部６０は、図１に示すディスプレイ３に相当する。
【００７１】
［２．２  動作］
［２．２．１  辞書圧縮処理］
まず、本実施の形態におけるＣＰＵ１０が実行する辞書圧縮処理について説明する。図５は、辞書圧縮処理に係るコンピュータ１の動作を説明するためのフローチャートである。この辞書圧縮処理は、ＣＰＵ１０が、ハードディスク２０に記憶された辞書圧縮プログラム２１０を実行することによって実現される処理である。
【００７２】
辞書圧縮処理において、ＣＰＵ１０は、各種処理を実行することにより、元英和辞典データ２００を圧縮し、圧縮後英和辞典データ３００を作成する。以下、辞書圧縮処理に含まれる各処理について説明する。
【００７３】
［２．２．２  処理後英和参照部作成処理］
まず、ＣＰＵ１０は、元英和辞典データ２００を読み出し、処理後英和参照部３０２及び主データ部中間データ３０６を作成する。具体的には、元英和辞典データ２００に含まれている見出語単位データの中から、離散的に見出語単位データを選択して順番に追記することにより処理後英和参照部３０２として保存し、選択しなかった見出語単位データを主データ部中間データ３０６として保存する。
【００７４】
図６を用いて具体的に説明する。図６（ａ）は、元英和辞典データ２００を表した図である。図に示すように、元英和辞典データ２００には、見出語単位データが複数保存されている。図では、便宜的に見出語単位データにおける見出語部分のみを表示した。
【００７５】
図６（ｂ）は、処理後英和参照部作成処理を実行したときの図である。ＣＰＵ１０は、元英和辞典データ２００中から、離散的に見出語単位データを選択する。そしてＣＰＵ１０は、選択された見出語単位データを、処理後英和参照部３０２として、ＲＡＭ３０に記憶する。また、選択されていない見出語単位データを、主データ部中間データ３０６として、ＲＡＭ３０に記憶する。
【００７６】
このように、処理後英和参照部作成処理によれば、元英和辞典データ２００の中から見出語単位のデータを離散的に抽出して処理後英和参照部３０２を作成することができる。従って、元英和辞典データ２００中の一部分に偏ることなく、処理後英和参照部３０２を作成することが可能となる。
【００７７】
［２．２．３  文字コード圧縮処理］
［２．２．３（ａ）  処理の流れ］
図７は、文字コード圧縮処理に係るコンピュータ１の動作を説明するためのフローチャートである。この文字コード圧縮処理は、ＣＰＵ１０が、ハードディスク２０に記憶された文字コード圧縮プログラム２１２を実行することによって実現される。
【００７８】
まず、ＣＰＵ１０は、１バイト文字変換表３０８中において使用されていない文字コード（以下、適宜「空きコード」という。）を１つ決定する（ステップＢ１０）。次に、ＣＰＵ１０は、１バイト文字変換表３０８の中から、文字待避表３１２に待避する１バイトコードの文字（以下、適宜「待避文字」という。）を決定する（ステップＢ１２）。ここで、待避文字としては、元英和辞典データ２００中に使用されている文字の中で、使用頻度が少ないものから順に所定の数だけ決定される。
【００７９】
次に、ＣＰＵ１０は、決定した待避文字を文字待避表３１２に割り当てる（ステップＢ１４）。そして、ＣＰＵ１０は、待避文字の数分の頻出文字を決定し（ステップＢ１６）、待避文字が割り当てられていた１バイト文字変換表３０８の１バイトコードに、その頻出文字を割り当てる（ステップＢ１８）。そして、ＣＰＵ１０は、割り当てた１バイト文字コードと頻出文字の汎用文字コードとを対応づけて保存して、文字コード変換表３１０を作成する（ステップＢ２０）。そして、ＣＰＵ１０は、処理後英和参照部３０２及び主データ部中間データ３０６に含まれる待避文字の文字コードを２バイト文字コードに置換し（ステップＢ２２）、頻出文字の文字コードを１バイト文字コードに置換する（ステップＢ２４）。
【００８０】
［２．２．３（ｂ）  具体例］
文字コード圧縮処理について、図８を用いて具体的に説明する。図８（ａ）は、１バイト文字変換表３０８の一部について示した一例である。この１バイト文字変換表３０８の中から、空きコード「１３」を１つ決定する（ステップＢ１０）。次に、ＣＰＵ１０は、１バイト文字変換表３０８から、待避文字を１つ決定する。ここでは、待避文字として「！」が決定されたとする。そして、ＣＰＵ１０は、文字コード「２１」に割り当てられていた文字「！」を待避文字として文字待避表３１２の文字コード「００」の位置に割り当てる。この場合の文字「！」の文字コードは「１３００」となる。
【００８１】
次に、ＣＰＵ１０は、頻出文字を待避文字と同数の１文字決定する（ステップＢ１６）。ここでは、頻出文字として「何」が決定されたとする。すると、ＣＰＵ１０は、文字「何」をステップＢ１４で決定した待避文字「！」が割り当てられていた場所（１バイト文字コード）に割り当てる（ステップＢ１８）。そして、ＣＰＵ１０は、文字「何」の汎用文字コード「８９ＢＤ」を文字コード変換表３１０に、コード「２１」に対応づけて保存する（ステップＢ２０）。この場合の、文字「何」の文字コードは「２１」となる。
【００８２】
図８（ｄ）は、文字コードを置換した図である。ここで、上段「（元）」は汎用文字コードであり、下段「（後）」は文字コード圧縮処理を実行して置換した後の文字コードである。文字「何」の文字コードが汎用文字コード「８９ＢＤ」から「２１」に、文字「！」の文字コードが汎用文字コード「２１」から「１３００」に置換されている。
【００８３】
このように、文字コード圧縮処理によれば、出現頻度が高い２バイト文字を１バイト文字として置換し、出現頻度の低い１バイト文字を２バイト文字として置換して、処理後英和参照部３０２及び主データ部中間データ３０６を作成することが出来る。従って、出現頻度が高い２バイト文字を１バイト文字として表すことにより、辞書データを圧縮（データ量を削減）することが可能となる。
【００８４】
［２．２．４  グローバルサーチ処理］
［２．２．４（ａ）  処理の流れ］
図９は、グローバルサーチ処理に係るコンピュータ１の動作を説明するためのフローチャートである。このグローバルサーチ処理は、ＣＰＵ１０が、ハードディスク２０に記載されたグローバルサーチプログラム２１４を実行することによって実現される。
【００８５】
まず、変数ｉに検索文字長を代入する（ステップＣ１０）。ここで、検索文字長とは、グローバルサーチにおいて、処理後英和参照部３０２に含まれている文字列と、主データ部中間データ３０６に含まれている文字列とを一致させる文字列の長さのうち、最大の文字列の長さをいう。本実施形態においては、「１０」文字である。
【００８６】
次に、ＣＰＵ１０は、変数ｊの値に初期値として「０」を代入する（ステップＣ１２）。そして、ＣＰＵ１０は、ｊを添え字として、リザーブ配列のｊ番目となるリザーブ配列［ｊ］の値が０であるか否かを判定する（ステップＣ１４）。もし、リザーブ配列［ｊ］の値が「０」以外のときは（ステップＣ１４；Ｎｏ）、ＣＰＵ１０は、変数ｊの値に「１」を加算する（ステップＣ２４）。
【００８７】
また、リザーブ配列［ｊ］の値が「０」のとき（ステップＣ１４；Ｙｅｓ）、現在の位置（ｊ文字目）から始まる語長ｉの文字列を抽出する（ステップＣ１６）。そして、抽出した文字列と同じ文字列が処理後英和参照部３０２にあるか否かを、ＣＰＵ１０は、判定する（ステップＣ１８）。もし、抽出した文字列と同じ文字列が処理後英和参照部３０２に含まれていないと判定した場合には（ステップＣ１８；Ｎｏ）、ＣＰＵ１０は、変数ｊの値に「１」を加えて処理を継続する（ステップＣ２４）。
【００８８】
ここで、ＣＰＵ１０は、文字列が処理後英和参照部３０２に含まれていると判定した場合には（ステップＣ１８；Ｙｅｓ）、リザーブ配列［ｊ］の値からリザーブ配列［ｊ＋ｉ−１］の値を、変数ｉの値として代入する。そして、ＣＰＵ１０は、変数ｊの値に、変数ｉの値を加える（ステップＣ２２）。
【００８９】
そして、ＣＰＵ１０は、主データ部中間データ３０６に含まれる文字列について、総て調べたか否かを判定する。もし、まだ判定し終わっていない場合には（ステップＣ２６；Ｎｏ）、ＣＰＵ１０は、ステップＣ１４からステップＣ２６までの処理について同様に繰り返す。
【００９０】
また、判定し終わっている場合には（ステップＣ２６；Ｙｅｓ）、ＣＰＵ１０は、変数ｉが最低文字長より大きいか否かを判定する（ステップＣ２８）。ここで、最低文字長とは、グローバルサーチの対象となる語長の閾値となる値となり、本実施形態では「５」と設定されている。従って、変数ｉの値が「５」より大きい場合については（ステップＣ２８；Ｙｅｓ）、変数ｉの値から１を減算（ステップＣ３０）し、ステップＣ１２から処理を実行する。
【００９１】
［２．２．４（ｂ）  具体例］
グローバルサーチ処理について、図１０を用いて具体的に説明する。図１０（ａ）は、処理後英和参照部３０２の一部について示した一例である。「［名詞］〔コンピュータ…」が、１０文字目から始まっていることを表している。また、図１０（ｂ）は、グローバルサーチの処理手順を示すために、主データ部中間データ３０６の一部と、対応するリザーブ配列の一部を表している。また、「［名詞…」は、主データ部中間データ３０６において５０文字目から始まっていることを示している。
【００９２】
例えば、現在の変数ｉの値が「１０」、変数ｊの値が「５０」としてグローバルサーチ処理を実行する。まず、図１０（ｂ）（イ）は、グローバルサーチ処理が実行されていないときの、リザーブ配列の状態である。リザーブ配列の値には、総て「０」が代入されている。
【００９３】
次に、ＣＰＵ１０は、変数ｊの値が「５０」のとき、リザーブ配列［ｊ］は０であることから（図９のステップＣ１４；Ｙｅｓ）、「５０」文字目から始まる語長「１０」の文字列「［名詞］〔コンピュー」を抽出する（ステップＣ１６）。そして、抽出された文字列が、処理後英和参照部３０２に含まれているかを判定する（図９のステップＣ１８）。ここで、文字列「［名詞］〔コンピュー」は、処理後英和参照部３０２には含まれていないため（ステップ１８；Ｎｏ）、ＣＰＵ１０は、変数ｊの値に「１」加算し、変数ｊの値を「５１」とする（ステップＣ２４）。同様にして、ＣＰＵ１０は、ｊの値が５１〜５３のときについても、処理後英和参照部３０２に含まれていないと判定する。
【００９４】
次に、変数ｊの値が「５４」のとき、ＣＰＵ１０が文字列「〔コンピュータ用語〕」を抽出する（ステップＣ１６）。そして、ＣＰＵ１０は、抽出した文字列が、処理後英和参照部３０２に含まれていると判定する（ステップＣ１８；Ｙｅｓ）。そして、ＣＰＵ１０は、リザーブ配列［５４］から、リザーブ配列［６３］まで、変数ｉの値である「１０」を代入する（図１０（ｂ）（ロ））。そして、ＣＰＵ１０は、変数ｊの値「５４」に、変数ｉの値「１０」を加えることにより（ステップＣ２２）、リザーブ配列［６４］から処理を実行する。
【００９５】
また、同様にグローバルサーチ処理を実行し、主データ部中間データ３０６に含まれる総ての文字列が終了すると、今度は、変数ｉの値を「９」として処理を実行する。このときリザーブ配列の各要素値は、変化しない（図１０（ｂ）（ハ））。また、変数ｉの値が「８」のとき、文字列「シーディーアール」が処理後英和参照部３０２に含まれているため、ＣＰＵ１０は、リザーブ配列［６４］からリザーブ配列［７１］までに、「８」を代入する（図１０（ｂ）（ニ））。
【００９６】
このように、グローバルサーチ処理によれば、語長の長い文字列から優先して辞書型符号化方法により符号化し、圧縮することが出来る。従って、語長の短い文字列に基づいて符号化するのに比べて、より効率的に符号化することが可能となる。
【００９７】
［２．２．５  ローカルサーチ処理］
［２．２．５（ａ）  処理の流れ］
図１１は、ローカルサーチ処理に係るコンピュータ１の動作を説明するためのフローチャートである。このローカルサーチ処理は、ＣＰＵ１０が、ハードディスク２０に記憶されたローカルサーチプログラム２１６を実行することによって実現される。
【００９８】
まず、ＣＰＵ１０は変数ｊの値に「０」を代入する（ステップＤ１０）。また、ＣＰＵ１０は、変数ｍｉｎに取ることが出来る最大値を代入する（ステップＤ１２）。
【００９９】
次に、ＣＰＵ１０は、リザーブ配列［ｊ］の値が「０」か否か判定する（ステップＤ１４）。ここで、リザーブ配列［ｊ］の値が「０」以外の場合は（ステップＤ１４；Ｎｏ）、ＣＰＵ１０は、変数ｊの値に「１」加算して、ステップＤ４０に処理を移行する（ステップＤ３８）。
【０１００】
また、リザーブ配列［ｊ］の値が「０」の場合は（ステップＤ１４；Ｙｅｓ）、ＣＰＵ１０は、ｊ文字目から始まる文字列と、処理後英和参照部３０２中に含まれる文字列との中で最も語長が長い文字列ｍを抽出する（ステップＤ１６）。具体的には、ＣＰＵ１０は、ｊ文字目から始まる文字列であって、当該文字列の各要素（リザーブ配列）の値が「０」となる最長の文字列を抽出する。そして、抽出した文字列が、処理後英和参照部３０２中に含まれているか否か検索し、含まれていない場合は最後の１文字を削除して、同様に処理後英和参照部３０２を検索する。この処理を繰り返すことにより、文字列ｍを抽出する。
【０１０１】
次に、ＣＰＵ１０は、抽出した文字列に対応する符号化効率予測値ｅｓｔ（ｍ）を符号化効率予測値テーブル２０６から読み出す（ステップＤ１８）。そして、読み出された符号化効率予測値ｅｓｔ（ｍ）の値と、変数ｍｉｎの値とを比較する（ステップＤ２０）。
【０１０２】
ここで、符号化効率予測値ｅｓｔ（ｍ）の値の方が、変数ｍｉｎの値より小さいとＣＰＵ１０が判定した場合には（ステップＤ２０；Ｙｅｓ）、文字列ｍの長さｌｅｎ（ｍ）と文字列ｍの位置ｌｏｃ（ｍ）とを算出する（ステップＤ２２）。そして、変数ｍｉｎにｅｓｔ（ｍ）の値を代入し、変数ｌｅｎにｌｅｎ（ｍ）の値を代入し、変数ｌｏｃにｌｏｃ（ｍ）の値を代入する（ステップＤ２４）。さらに、文字列ｍを待避文字列としてＲＡＭ３０に記憶する（ステップＤ２６）。
【０１０３】
次に、ＣＰＵ１０は、ｌｅｎ（ｍ）の値が１より大きいと判定した場合は（ステップＤ２８；Ｙｅｓ）、文字列ｍの最終文字を削除して文字列ｍを更新し（ステップＤ３０）、ステップＤ１８からステップＤ２６までを同様に繰り返し処理する。
【０１０４】
さらに、ＣＰＵ１０は、変数ｍｉｎがハフマン符号長より小さいか否かを判定する（ステップＤ３２）。ここで、ハフマン符号長は、待避文字列に対応するハフマン符号をハフマン符号テーブル３１６より読み出し、読み出されたハフマン符号の符号長を算出することによって求める。そして、ＣＰＵ１０は、変数ｍｉｎの値とハフマン符号長とを比較し、ハフマン符号長が変数ｍｉｎの値以上の場合には（ステップＤ３２；Ｎｏ）、変数ｊの値に１加算する（ステップＤ３８）。また、変数ｍｉｎの値が、ハフマン符号長より小さい場合は（ステップＤ３２；Ｙｅｓ）、ＣＰＵ１０は、リザーブ配列［ｊ］〜リザーブ配列「ｊ＋ｌｅｎ−１」までに変数ｌｅｎの値を代入する（ステップＤ３４）。そして、変数ｊに変数ｌｅｎの値を加算する（ステップＤ３６）。
【０１０５】
そして、ＣＰＵ１０は、主データ部中間データに含まれている総ての文字列に対して処理を終了したか否かを判定する（ステップＤ４０）。まだ、総ての文字列に対して処理を終了していないとＣＰＵ１０が判定した場合には、再びステップＤ１２より処理を行う。
【０１０６】
［２．２．５（ｂ）  具体例］
ローカルサーチ処理について、図１０を用いて具体的に説明する。図１０（ｂ）の（ホ）及び（ヘ）の下２段は、ローカルサーチ処理を実行した場合のリザーブ配列を表した図である。まず、変数ｊの値が「４９」のときに、ローカルサーチ処理を実行したときのリザーブ配列を表したのが図１０（ｂ）（ホ）であり、変数ｊの値が「５０」のときに、ローカルサーチ処理を実行したときのリザーブ配列を表したのが図１０（ｂ）（ヘ）である。
【０１０７】
まず、変数ｊの値が「４９」のときは、５０文字目から５３文字目までに対応するリザーブ配列の値は「０」となっている。次に、ＣＰＵ１０は、変数ｊの値が「５０」のときにリザーブ配列［５０］の値が０であることから（ステップＤ１４；Ｙｅｓ）、５０文字目から始まる文字列で参照部と一致する最も長い文字列「［名詞］」を抽出する（ステップＤ１６）。そして、文字列「［名詞］」の符号化効率予測値ｅｓｔ（［名詞］）を、符号化効率予測値テーブル２０６より読み出す。すると、符号化効率予測値ｅｓｔ（［名詞］）は「２０」となる。次に、現在最小値ｍｉｎとしては「∞」が代入されており、符号化効率予測値ｅｓｔ（［名詞］）の方が小さいことから、ＣＰＵ１０は、それぞれの値を代入する。具体的には、符号化効率予測値「２０」を変数ｍｉｎに代入し、文字列「［名詞］」の長さ「４」を変数ｌｅｎに代入し、文字列「［名詞］」の位置「５０」を変数ｌｏｃに代入する。また、文字列「［名詞］」を待避文字列として、ＲＡＭ３０に記憶する。
【０１０８】
次に、ＣＰＵ１０は、文字列「［名詞］」の最終文字を削除して、文字列「［名詞」としてステップＤ１８から実行する。この場合、文字列「［名詞」の符号化効率予測値は「２８」となり、先ほどの「２０」より大きい。同様に、更に文字列「［名詞」の最終文字を削除した「［名」について同様に符号化効率予測値を算出し、変数ｍｉｎの値と比較する。
【０１０９】
そして、文字列ｍの長さｌｅｃ（ｍ）が１になると（ステップＤ２８；Ｎｏ）、変数ｍｉｎと待避文字列のハフマン符号長とを比較する。このとき、文字列「［名詞］」の場合が最も符号化効率予測値が小さいとすると、変数ｍｉｎの値は「２０」となる。また、ＣＰＵ１０は、文字列「［名詞］」のハフマン符号長を、ハフマン符号テーブル３１６より求める。この際、ハフマン符号長は「３２」ビットであるとすると、変数ｍｉｎの方が小さいため、リザーブ配列［５０］からリザーブ配列［５３］の値に「４」を代入する。
【０１１０】
このように、ローカルサーチ処理によれば、文字列を符号化する際に、より符号数が少なくなる文字列で符号化することが出来るようになる。また、短い文字列については、ハフマン符号で符号化する場合を比較することにより、より適切な符号化方法に基づいて、主データ部中間データ３０６を圧縮することが出来るようになる。
【０１１１】
［２．２．６  符号化処理］
［２．２．６（ａ）  処理の流れ］
図１２は、符号化処理に係るコンピュータ１の動作を説明するためのフローチャートである。この符号化処理は、ＣＰＵ１０が、ハードディスク２０に記憶された符号化プログラム２１８を実行することによって実現される。
【０１１２】
まず、ＣＰＵ１０は、主データ部中間データ３０６から文字を選択する（ステップＥ１０）。次に、ＣＰＵ１０は、選択した文字に対応する文字対応リザーブ配列値を抽出する（ステップＥ１２）。そして、抽出した値が「０」の場合には（ステップＥ１４；Ｙｅｓ）、ＣＰＵ１０は、選択した文字を始めとする文字対応リザーブ配列値が「０」の文字列をハフマン符号で符号化する（ステップＥ２４）。
【０１１３】
また、文字対応リザーブ配列値が「０」以外の場合には（ステップＥ１４；Ｎｏ）、参照する文字列の参照部のアドレスを抽出する（ステップＥ１６）。具体的には、文字対応リザーブ配列値より抽出した値の分の文字列を、主データ部中間データ３０６より抽出する。そして、ＣＰＵ１０は、抽出した文字列と同じ文字列が含まれているアドレス（位置）を処理後英和参照部３０２より抽出する。
【０１１４】
次に、ＣＰＵ１１０は、抽出されたアドレスが、サブテーブル３１４に含まれているか否かを判定する。ＣＰＵ１０は、サブテーブル３１４に含まれていると判定した場合には、サブテーブルに基づいて符号化を実行する（ステップＥ２０）。また、ＣＰＵ１０は、サブテーブル３１４に含まれていないと判定した場合には、処理後英和参照部３０２のアドレスに基づいて文字列を符号化する（ステップＥ２２）。
【０１１５】
そして、ＣＰＵ１０は、主データ部中間データ３０６に含まれている総ての文字列について、符号化が終了しているか否かを判定し、符号化が終了していない文字列があると判定した場合には（ステップＥ２６；Ｎｏ）、符号化が終了していない文字列を選択し（ステップＥ２８）、ステップＥ１２より処理を実行する。また、符号化が終了していると判定した場合には（ステップＥ２６；Ｙｅｓ）、符号化処理を終了する。
【０１１６】
［２．２．６（ｂ）  具体例］
符号化処理について、図１０及び図１３を用いて具体的に説明する。まず、ＣＰＵ１０が、文字列「［名詞］」について符号化処理を実行する場合について説明する。
【０１１７】
まず、文字「［名詞］」を選択して対応するリザーブ配列の値をリザーブ配列から抽出すると「４」となっている。そこで、ＣＰＵ１０は、処理後英和参照部３０２における文字列「［名詞］」の位置を抽出する（ステップＥ１６）。今、処理後英和参照部３０２における文字列「［名詞］」のアドレスは「00000000000000010000」とする。次に、このアドレスがサブテーブル３１４に保存されているか否かを判定する。すると、アドレス「00000000000000010000」は、サブテーブル３１４の符号「１０」に対応づけて保存されている。そして、ＣＰＵ１０は、サブテーブル及び語長に基づいて文字列「［名詞］」を符号化する。
【０１１８】
図１３（ａ）は、「［名詞］」の符号化を説明した図である。ＣＰＵ１０は、辞書型符号化方法によって符号化されていることを示す「１」と、処理後英和参照部３０２において、文字列が含まれているアドレス値がサブテーブル３１４に保存されていることを示す「１」と、処理後英和参照部３０２のアドレスに対応するサブテーブル３１４の符号「１０」と、文字列「［名詞］」の語長「４」を表す「００１００」とからなる符号列「１１１０００１００」に符号化する。従って、本来「［名詞］」は、６４ビットで表現されていたが、本実施形態によれば、９ビットで表現することが出来る。
【０１１９】
また、文字列「シーディーアール」について符号化処理を実行することにより、符号化する様子を示したのが図１３（ｂ）である。文字「シ」に対応する文字対応リザーブ配列値は「８」である。また、処理後英和参照部３０２において、文字列「シーディーアール」が含まれている処理後英和参照部３０２におけるアドレスは、サブテーブル３１４に保存されていないとする。ＣＰＵ１０は符号化処理を実行すると、文字列「シーディーアール」は、辞書型符号化方法により符号化されたことを示す「１」と、文字列「シーディーアール」が含まれている処理後英和参照部３０２におけるアドレスがサブテーブルに保存されていないことを示す「０」と、処理後英和参照部３０２において、文字列「シーディーアール」の先頭の文字「シ」が、処理後英和参照部３０２に含まれているアドレス「00000000000000011110」と、語長「８」を表す「０１０００」とを併せた符号列「100000000000000001111001000」に符号化する。従って、本来「シーディーアール」は１２８ビットで表現されていたが、本実施形態によれば、２７ビットで表現することが出来る。
【０１２０】
このように、符号化処理によれば、辞書型符号化方法により主データ部中間データ３０６を符号化する際に、頻出する文字列の位置がサブテーブル３１４に保存されていれば、文字列の位置を符号で表すことができる。従って、文字列の位置を用いて直接符号化する場合に比べてより少ない情報量で符号化することが可能となる。
【０１２１】
［３．電子辞書装置］
［３．１  構成］
図１４は、電子辞書装置１００の構成を示すブロック図である。同図に示すように、電子辞書装置１００は、ＣＰＵ（Central Processing Unit）１１０と、ＲＯＭ（Read Only Memory）１２０と、ＲＡＭ（Random Access Memory）１３０と、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）１４０と、入力部１５０と、表示部１６０とを備えている。
【０１２２】
［３．１．１  記憶領域］
ＲＯＭ１２０は、各種初期設定、ハードウェアの検査、あるいは必要なプログラムのロード等を行うための初期プログラムを格納する。ＣＰＵ１１０は、電子辞書装置１００の電源投入時においてこの初期プログラムを実行することにより、電子辞書装置１００の動作環境を設定する。
【０１２３】
また、ＲＯＭ１２０は、メニュー表示処理、各種設定処理、各種検索処理等の電子辞書装置１００の動作に係る各種プログラムや、電子辞書装置１００の備える種々の機能を実現するためのプログラム等を格納すると共に、辞書伸張プログラム１２００と、文字コード伸張プログラム１２０２とを備えている。
【０１２４】
ＲＡＭ１３０は、ＣＰＵ１１０が実行する各種プログラムや、これらのプログラムの実行に係るデータ等を一時的に保持するメモリ領域を備える。
【０１２５】
ＥＥＰＲＯＭ１４０は、電子辞書装置１００において、ＣＰＵ１１０が参照する各種辞書データや、各種設定等を電源オフの後であっても記憶するためのメモリである。本実施形態では、圧縮後英和辞典データ１４００と、１バイト文字変換表１４０６と、文字コード変換表１４０８と、文字待避表１４１０と、サブテーブル１４１２と、ハフマン符号テーブル１４１４と、見出語テーブル１４１６とを備えている。ここで、圧縮後英和辞典データ１４００は、圧縮後英和辞典データ３００と同一の辞書データである。１バイト文字変換表１４０６は、１バイト文字変換表３０８と同一の表である。文字コード変換表１４０８は、文字コード変換表３１０と同一の表である。文字待避表１４１０は、文字待避表３１２と同一の表である。サブテーブル１４１２は、サブテーブル３１４と同一のテーブルである。ハフマン符号テーブル１４１４は、ハフマン符号テーブル３１６と同一のテーブルである。見出語テーブル１４１６は、見出語テーブル３２０と同一のテーブルである。
【０１２６】
［３．１．２  ＣＰＵ］
ＣＰＵ１１０は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送を行う。具体的には、ＣＰＵ１１０は、入力部１５０から入力される操作信号に応じてＲＯＭ１２０に格納されたプログラムを読み出し、当該プログラムに従って処理を実行する。そして、ＣＰＵ１１０は、表示制御信号を適宜表示部１６０に出力して、処理結果を表示させる。
【０１２７】
また、ＣＰＵ１１０は、本実施形態において、ＲＯＭ１２０に記憶された辞書伸張プログラム１２００に従った、辞書伸張処理（図１５参照）を実行すると共に、この辞書伸張処理において、文字コード伸張プログラム１２０２を読み出して文字コード伸張処理をサブルーチンとして実行する。
【０１２８】
具体的には、ＣＰＵ１１０は、辞書伸張処理において、入力文字に対応する見出語を検索し、符号列を抽出する。そこで、抽出された符号列の始めの１ビットが１である場合には、ＣＰＵ１１０は、その符号列は辞書型符号化方法によって符号化された符号列であると判定する。さらに辞書型符号化方法によって符号化された符号列の次の１ビットが１である場合には、ＣＰＵ１１０は、参照する文字列の位置はサブテーブルに記憶されていると判定し、参照する文字列の位置をサブテーブルから読み出し、復号する。また、辞書型符号化方法によって符号化された符号列のうち、次の１ビットが０である場合には、ＣＰＵ１１０は、参照する文字列の位置を符号列から抽出し、符号列を復号する。そして、復号された文字列に対し、ＣＰＵ１１０は、文字コード伸張処理を実行し、文字列を表示部１６０に表示する。
【０１２９】
また、ＣＰＵ１１０は、文字コード伸張処理では、文字コードの１バイト目を抽出する。次に、ＣＰＵ１１０は、１バイト文字変換表１４０６から、抽出された文字コードの１バイト目の文字種別を抽出する。そして、２バイト文字の場合は、２バイト文字として表示する。ここで、１バイト文字である場合に、ＣＰＵ１１０は、文字コード圧縮処理によって変換された１バイト文字（以下、適宜「１バイト変換文字」という。）であるか否かを判定する。１バイト変換文字である場合には、ＣＰＵ１１０は、文字コード変換表１４０８から対応する文字コードを読み出し、対応する文字を表示する。
【０１３０】
［３．１．３  入出力部］
入力部１５０は、仮名やアルファベット等の文字入力や機能選択等に必要なキー群を備えた入力装置であり、押下されたキーの信号をＣＰＵ１１０に出力する。この入力部１５０におけるキー入力により、入力文字の入力、辞書モードの選択、検索実行指示、ジャンプ機能の開始等を指示入力する入力手段を実現する。なお、この入力部１５０は、図１のキー群１０５に相当するが、キー群１０５に限られるわけではなく、タッチパネル等であってもよい。
【０１３１】
表示部１６０は、ＣＰＵ１１０から入力される表示信号に基づいて各種画面を表示するものであり、ＬＣＤ等により構成される。なお、この表示部１６０は、図１に示すディスプレイ１０３に相当する。
【０１３２】
［３．２  動作］
［３．２．１  辞書伸張処理］
［３．２．１（ａ）  処理の流れ］
図１５は、辞書伸張処理に係る電子辞書装置１００の動作を説明するためのフローチャートである。この辞書伸張処理は、ＣＰＵ１１０がＲＯＭ１２０に記憶された辞書伸張プログラム１２００を実行することによって実現される処理である。
【０１３３】
まず、ＣＰＵ１１０は、文字が入力されると（ステップＦ１０）、入力文字に対応する見出語を検索する（ステップＦ１２）。具体的には、ＣＰＵ１１０は、見出語テーブル１４１６に格納された開始位置の中から何れかの開始位置を選択し、圧縮後英和辞典データ１４００を伸張していく処理を行う。見出語テーブル１４１６には、圧縮後英和辞典データ１４００の格納順に見出語単位データの開始位置が格納されているため、例えば、公知である２分木を用いた探索方法等により、開始位置の選択・見出語の伸張・適合する見出語か否かの判定を繰り返すことにより、見出語の検索を実行する。
【０１３４】
次に、ＣＰＵ１１０は、入力文字に対応する見出語の見出語単位データの符号列を抽出する（ステップＦ１４）。そして、ＣＰＵ１１０は、抽出された符号列のうち、まず復号する処理の対象となる符号列（以下、適宜「復号対象符号列」という。）を抽出する。次に、ＣＰＵ１０は、復号対象符号列のはじめの１ビットが「１」であるか否かを判定する（ステップＦ１６）。ここで、はじめの１ビットが「０」であった場合には（ステップＦ１６；Ｎｏ）、ＣＰＵ１１０は、続く符号列をハフマン符号として、ハフマン符号に対応する文字列をハフマン符号テーブル１４１４から読み出し、復号対象符号列を復号する（ステップＦ１８）。
【０１３５】
また、復号対象符号列の始めの１ビットが「１」であった場合には（ステップＦ１６；Ｙｅｓ）、ＣＰＵ１１０は、続く２ビット目が「１」であるか否かを判定する（ステップＦ２０）。そして、２ビット目が「１」である場合には、続く符号列からサブテーブルの番号及び語長を抽出する（ステップＦ２２）。そして、ＣＰＵ１１０は、サブテーブルの番号に対応するアドレス値をサブテーブル１４１２から読み出し、読み出されたアドレス値及び語長に基づいて復号対象符号列を復号する。
【０１３６】
他方、２ビット目が「０」であった場合には、ＣＰＵ１１０は続く符号列から参照する文字列のアドレス値及び語長を抽出する（ステップＦ２４）。そして、ＣＰＵ１１０は、抽出されたアドレス値及び語長に基づいて、復号対象符号列を復号する。
【０１３７】
そして、ＣＰＵ１１０は、読み出された見出し語単位データの符号列を総て復号したか否かを判定し、見出語単位データの符号列の総てが復号されていない場合には（ステップＦ２６；Ｎｏ）、ＣＰＵ１１０は、続く復号対象符号列を決定し（ステップＦ２８）、ステップＦ１６から同様の処理を実行する。
【０１３８】
また、見出語単位データの符号列の総てが復号されている場合には（ステップＦ２６；Ｙｅｓ）、ＣＰＵ１１０は、復号された文字の文字コードについて、文字コード伸張処理を実行する（ステップＦ３０）。
【０１３９】
［３．２．１（ｂ）  具体例］
具体的に、図１３を使って説明する。ここで、図１３（ａ）の符号化された符号列は、符号化後英和主データ部１４０４に含まれている符号列であり、復号対象符号列として、符号化後英和主データ部１４０４から、「１１１０００１００」が抽出されているとする。
【０１４０】
まず、ＣＰＵ１１０は、復号対象符号列の最初の１ビット目を抽出する。すると、最初の１ビット目は「１」であることから（ステップＦ１６；Ｙｅｓ）、ＣＰＵ１１０は、次に２ビット目を抽出する。２ビット目についても、「１」であることから（ステップＦ２０；Ｙｅｓ）、ＣＰＵ１１０は、サブテーブル１４１２よりアドレスを読み出し、続く符号列から語長を読み出す。具体的には、続く２ビット「１０」に対応するアドレスをサブテーブル１４１２より「00000000000000010000」と読み出す。そして、ＣＰＵ１１０は、続く符号列「00100」を語長として抽出する。ＣＰＵ１１０は、抽出されたアドレスを開始位置とし、語長「４」文字分を処理後英和参照部１４０２から読み出す。そして、対応する文字列「［名詞］」に復号する。
【０１４１】
また、図１３（ｂ）を用いて説明すると、復号対象符号列として、符号化後英和主データ部１４０４から、「100000000000000001111001000」が抽出されているとする。
【０１４２】
まず、ＣＰＵ１１０は、復号対象符号列の最初の１ビット目を抽出する。すると、最初の１ビット目は「１」であることから（ステップＦ１６；Ｙｅｓ）、ＣＰＵ１１０は、次に２ビット目を抽出する。抽出した２ビット目は、「０」であることから（ステップＦ２０；Ｎｏ）、ＣＰＵ１１０は、続く「２０」ビット分の符号列「00000000000000011110」を、アドレスとして抽出する。そして、ＣＰＵ１１０は、続く符号列「０１０００」を語長として抽出する。ＣＰＵ１１０は、抽出されたアドレスを開始位置とし、語長「８」文字分を処理後英和参照部１４０２から読み出す。そして、対応する文字列「シーディーアール」に復号する。
【０１４３】
［３．２．２  文字コード伸張処理］
［３．２．２（ａ）  処理の流れ］
図１６は、文字コード伸張処理に係る電子辞書装置１００の動作を説明するためのフローチャートである。この文字コード伸張処理は、ＣＰＵ１１０がＲＯＭ１２０に記憶された文字コード伸張プログラム１２０２を実行することによって実現される処理である。
【０１４４】
まず、ＣＰＵ１１０は、辞書伸張処理によって復号された文字列（以下、適宜「復号文字列」という。）のうち始めの一文字を選択し、選択された文字の文字コードの１バイト目を抽出する（ステップＧ１０）。次に、ＣＰＵ１１０は、抽出した文字コードが１バイト文字であるか２バイト文字であるかを１バイト文字変換表１４０６に基づいて抽出する（ステップＧ１２）。具体的には、例えば１バイト文字変換表１４０６の表の中に、１バイト文字であるか、２バイト文字であるかのフラグにより文字の種別を抽出したり、文字コードが１バイト文字変換表３０８の所定の範囲にある場合は２バイト文字であることを抽出したりする。
【０１４５】
次に、ＣＰＵ１０は、抽出された文字の種別が１バイト文字か２バイト文字か判定する（ステップＧ１４）。もし、抽出された文字の種別が２バイト文字である場合には（ステップＧ１４；２バイト文字）、ＣＰＵ１１０は、次の１バイトを抽出し（ステップＧ２８）、２バイト文字として表示部１６０に表示する（ステップＧ３０）。
【０１４６】
他方、抽出された文字の種別が１バイト文字である場合には、ＣＰＵ１１０は、１バイト変換文字であるか否かを判定する（ステップＧ１６）。ここで、抽出された文字が、１バイト変換文字ではない場合には、ＣＰＵ１１０は、通常の１バイト文字として表示部１６０に表示する（ステップＧ３１）。
【０１４７】
また、抽出された１バイト文字が１バイト変換文字であった場合には（ステップＧ１６；Ｙｅｓ）、ＣＰＵ１１０は、文字コード変換表１４０８から対応する文字コードから始めの１バイトを抽出する（ステップＧ１８）。そして、ＣＰＵ１１０は、１バイト文字変換表で抽出した文字の種別が１バイト文字であるか２バイト文字であるかを抽出し（ステップＧ２０）、判定する（ステップＧ２２）。そして、文字の種別が１バイト文字である場合には（ステップＧ２２；１バイト文字）、ＣＰＵ１１０は、１バイト文字として表示部１６０に表示する（ステップＧ３１）。また、文字の種別が２バイト文字である場合には（ステップＧ２２；２バイト文字）、ＣＰＵ１１０は、対応する文字コードの次の１バイトを抽出し（ステップＧ２４）、２バイト文字として表示部１６０に表示する（ステップＧ２６）。
【０１４８】
そして、総ての文字を伸張していない場合には（ステップＧ３２；Ｎｏ）、次の文字を抽出し、ステップＧ１０より同様の処理を実行する。
【０１４９】
［３．２．２（ｂ）  具体例］
具体的に、図８を用いて説明する。図８（ｄ）の文字コードから、ＣＰＵ１１０は、「２１」を抽出する（ステップＧ１０）。次に、文字の種別を１バイト文字変換表１４０６を用いて判定すると、「２１」は１バイト変換文字である。従って文字コード変換表３１０より、対応する文字コードの始めの１バイトを抽出する（ステップＧ１８）。すると、始めの１バイトは「８９」であるため、ＣＰＵ１１０は、文字の種別は２バイト文字であると判定する（ステップＧ２２；２バイト）。従って、ＣＰＵ１１０は、続く１バイト「ＢＤ」を抽出し、２バイト文字コード「８９ＢＤ」を汎用文字コードとして、対応する文字「何」を表示する（ステップＧ２６）。
【０１５０】
また、図８（ｄ）の文字列の最後の文字コード「１３００」について説明する。まず、ＣＰＵ１１０は、文字コードの１バイト目「１３」を抽出する（ステップＧ１０）。次に、ＣＰＵ１１０は、文字コード「１３」の種別を判定すると、文字待避表３１２に対応づけられた２バイト文字と判定される（ステップＧ１４）。従って、次の１バイト「００」を読み出す。そして、ＣＰＵ１１０は、「００」に対応する文字を文字待避表３１２から抽出し文字「！」を得る（ステップＧ３０）。
【０１５１】
このように、文字コード伸張処理によれば、圧縮後英和辞典データ１４００の文字が変換されている場合であっても、文字の１バイト目を抽出し、抽出された文字に応じて元の文字に変換することが可能となる。
【０１５２】
［４．変形例］
上述した実施形態では、電子辞典、電子事典は専用機としての電子辞書装置として説明したが、このような製品に限定されるものではなく、例えば携帯電話やＰＤＡ（Personal Digital Assistants）、パソコン等に電子辞書装置として内蔵（ソフトウェア的に組み込まれることも含む。）されるものであってもよい。
【図面の簡単な説明】
【０１５３】
【図１】コンピュータ及び電子辞書装置の概観図。
【図２】コンピュータの構成図。
【図３】元英和辞典データのデータ構造の一例を示した図。
【図４】（ａ）符号化効率予測値テーブル、（ｂ）サブテーブル、（ｃ）ハフマン符号テーブル、（ｄ）見出語テーブルのデータ構造の一例を示した図。
【図５】辞書圧縮処理の動作フローを示した図。
【図６】処理後英和参照部作成処理の動作を説明した図。
【図７】文字コード圧縮処理の動作フローを示した図。
【図８】（ａ）１バイト文字変換表のデータ構造の一例、（ｂ）文字コード変換表のデータ構造の一例、（ｃ）文字待避表のデータ構造の一例、（ｄ）文字コード圧縮処理の動作を説明した図。
【図９】グローバルサーチ処理の動作フローを示した図。
【図１０】グローバルサーチ処理及びローカルサーチ処理の動作を説明した図。
【図１１】ローカルサーチ処理の動作フローを示した図。
【図１２】符号化処理の動作フローを示した図。
【図１３】符号化処理の動作を説明した図。
【図１４】電子辞書装置の構成図。
【図１５】辞書伸張処理の動作フローを示した図。
【図１６】文字コード伸張処理の動作フローを示した図。
【符号の説明】
【０１５４】
１    コンピュータ
１０    ＣＰＵ
２０    ハードディスク
２００    元英和辞典データ
２０６    符号化効率予測値テーブル
２１０    辞書圧縮プログラム
２１２    文字コード圧縮プログラム
２１４    グローバルサーチプログラム
２１６    ローカルサーチプログラム
２１８    符号化プログラム
３０    ＲＡＭ
３００    圧縮後英和辞典データ
３０２  処理後英和参照部
３０４  符号化後英和主データ部
３０６    主データ部中間データ
３０８    １バイト文字変換表
３１０    文字コード変換表
３１２    文字待避表
３１４    サブテーブル
３１６    ハフマン符号テーブル
３１８    リザーブ配列記憶領域
３２０    見出語テーブル
４０    ＲＯＭ
５０    入力部
６０    表示部
１００    電子辞書装置
１１０    ＣＰＵ
１２０    ＲＯＭ
１２００    辞書伸張プログラム
１２０２    文字コード伸張プログラム
１３０    ＲＡＭ
１４０    ＥＥＰＲＯＭ
１４００    圧縮後英和辞典データ
１４０２  処理後英和参照部
１４０４  符号化後英和主データ部
１４０６  １バイト文字変換表
１４０８  文字コード変換表
１４１０  文字待避表
１４１２  サブテーブル
１４１４  ハフマン符号テーブル
１４１６  見出語テーブル
１５０    入力部
１６０    表示部
【図１】
2005135086.tif 000003
【図２】
2005135086.tif 000004
【図３】
2005135086.tif 000005
【図４】
2005135086.tif 000006
【図５】
2005135086.tif 000007
【図６】
2005135086.tif 000008
【図７】
2005135086.tif 000009
【図８】
2005135086.tif 000010
【図９】
2005135086.tif 000011
【図１０】
2005135086.tif 000012
【図１１】
2005135086.tif 000013
【図１２】
2005135086.tif 000014
【図１３】
2005135086.tif 000015
【図１４】
2005135086.tif 000016
【図１５】
2005135086.tif 000017
【図１６】
2005135086.tif 000018