(57)【特許請求の範囲】
【請求項１】
仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮装置であって、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合を記憶するレコード記憶部と、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し手段と、
前記レコード読み出し手段により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割手段と、
前記分割手段により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記２バイト文字コードの先頭バイトのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成手段と、
前記レコード読み出し手段により読み出された各レコードについて、前記共通接頭長生成手段により生成された共通接頭長と、前記分割手段により分割された差分文字列と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、共通接頭長、差分文字列、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶手段と、
を有することを特徴とする文字列データ圧縮装置。
【請求項２】
仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮方法であって、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合をレコード記憶部に記憶させるレコード記憶工程と、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し工程と、
前記レコード読み出し工程により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割工程と、
前記分割工程により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記２バイト文字コードの先頭バイトのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成工程と、
前記レコード読み出し工程により読み出された各レコードについて、前記共通接頭長生成工程により生成された共通接頭長と、前記分割工程により分割された差分文字列と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、共通接頭長、差分文字列、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶工程と、
を有することを特徴とする文字列データ圧縮方法。
【請求項３】
仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮装置としてコンピュータを動作させるプログラムが記録されたコンピュータ読み取り可能な記憶媒体であって、
前記プログラムは、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合をレコード記憶部に記憶させるレコード記憶手段、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し手段、
前記レコード読み出し手段により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割手段、
前記分割手段により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記２バイト文字コードの先頭バイトのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成手段、
前記レコード読み出し手段により読み出された各レコードについて、前記共通接頭長生成手段により生成された共通接頭長と、前記分割工程により分割された差分文字列と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、共通接頭長、差分文字列、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶手段、
としてコンピュータを機能させることを特徴とする記憶媒体。
【請求項４】
仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮装置であって、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合を記憶するレコード記憶部と、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し手段と、
前記レコード読み出し手段により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割手段と、
前記分割手段により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記１バイト文字コードのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成手段と、
前記レコード読み出し手段により読み出された各レコードについて、前記分割手段により分割された差分文字列と、前記共通接頭長生成手段により生成された共通接頭長と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、差分文字列、共通接頭長、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶手段と、
を有することを特徴とする文字列データ圧縮装置。
【請求項５】
仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮方法であって、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合をレコード記憶部に記憶させるレコード記憶工程と、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し工程と、
前記レコード読み出し工程により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割工程と、
前記分割工程により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記１バイト文字コードのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成工程と、
前記レコード読み出し工程により読み出された各レコードについて、前記分割工程により分割された差分文字列と、前記共通接頭長生成工程により生成された共通接頭長と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、差分文字列、共通接頭長、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶工程と、
を有することを特徴とする文字列データ圧縮方法。
【請求項６】
仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮装置としてコンピュータを動作させるプログラムが記録されたコンピュータ読み取り可能な記憶媒体であって、
前記プログラムは、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合をレコード記憶部に記憶させるレコード記憶手段、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し手段、
前記レコード読み出し手段により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割手段、
前記分割手段により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記１バイト文字コードのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成手段、
前記レコード読み出し手段により読み出された各レコードについて、前記分割手段により分割された差分文字列と、前記共通接頭長生成工程により生成された共通接頭長と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、差分文字列、共通接頭長、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶手段、
としてコンピュータを機能させることを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字列データ圧縮装置、文字列データ圧縮方法および記憶媒体に関する。
【０００２】
【従来の技術】
従来、キーボード等から日本語の仮名文字列を入力して漢字に変換する仮名漢字変換においては、入力された仮名文字列を漢字に変換するために単語の“読み”と“表記”との対応を記憶した単語辞書データベースを用いている。すなわち、ユーザがキーボード等から入力した仮名文字列である“読み”をキーとして単語辞書データベースを検索し、その“読み”に対応する“表記”を求め、提示するようにしている。
【０００３】
ところで、単語辞書データベースに記憶される“読み”と“表記”とは、いずれも可変長の文字列である。そのため、“読み”と“表記”との対応をそのまま記憶したのでは仮名漢字変換に用いる単語辞書データベースのデータ量は膨大になってしまうことから、単語の“読み”と“表記”との対応を効率良く記憶する手法が求められていた。
【０００４】
そこで、今日においては、このような問題を解決するべく、情報（単語の“読み”と“表記”との対応）を圧縮して単語辞書データベースに記憶する各種の技術が提案されている。以下において、単語辞書データベースに文字列データを記憶するための圧縮技術について説明する。
【０００５】
単語辞書データベースに文字列データを記憶するための圧縮技術としては、特開昭６１−２８５５７３号公報や特開平３−１２７２５４号公報に記載されているような差分圧縮法がある。
【０００６】
特開昭６１−２８５５７３号公報に記載されている技術によれば、単語辞書メモリ（単語辞書データベース）において仮名見出しと表記部分とを可変長差分構造とすることにより、固定長辞書に比べて単語辞書メモリ容量を大幅に減少させることができる。
【０００７】
また、特開平３−１２７２５４号公報に記載されている技術によれば、アルファベット順に記憶すべき見出しデータをその直前の見出し単語との重複文字数とそれ以外の文字列とで表現することにより、単語辞書データベースの高速アクセス、小容量化が可能になっている。
【０００８】
【発明が解決しようとする課題】
しかしながら、特開昭６１−２８５５７３号公報に記載されている技術によれば、データ構造が、
・共通接頭長（固定長データ）
・読みの差分文字列（可変長データ）
・区切り情報（固定長データ）
・表記の文字列（可変長データ）
のような構造になっており、単語の“読み”と“表記”との区切りを明示するために固定長の区切り情報を用いているが、この区切り情報に記憶領域を要するため、記憶効率が悪化するという問題がある。
【０００９】
一方、特開平３−１２７２５４号公報に記載されている技術によれば、データ構造が、
・共通接頭長（固定長データ）
・差分長（固定長データ）
・読みの差分文字列（可変長データ）
・表記の文字列（可変長データ）
のような構造になっており、差分長のデータを加えることで、単語の“読み”と“表記”との区切りを判定するようにしているが、差分長のデータに記憶領域を要するため、記憶効率が悪化するという問題がある。
【００１０】
本発明の目的は、従来よりも文字列データを単語辞書データベースにコンパクトに記憶させることができる文字列データ圧縮装置、文字列データ圧縮方法および記憶媒体を提供することである。
【００１１】
【課題を解決するための手段】
請求項１記載の発明の文字列データ圧縮装置は、仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮装置であって、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合を記憶するレコード記憶部と、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し手段と、
前記レコード読み出し手段により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割手段と、
前記分割手段により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記２バイト文字コードの先頭バイトのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成手段と、
前記レコード読み出し手段により読み出された各レコードについて、前記共通接頭長生成手段により生成された共通接頭長と、前記分割手段により分割された差分文字列と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、共通接頭長、差分文字列、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶手段と、
を有することを特徴とする。
【００１２】
請求項２記載の発明の文字列データ圧縮方法は、仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮方法であって、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合をレコード記憶部に記憶させるレコード記憶工程と、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し工程と、
前記レコード読み出し工程により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割工程と、
前記分割工程により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記２バイト文字コードの先頭バイトのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成工程と、
前記レコード読み出し工程により読み出された各レコードについて、前記共通接頭長生成工程により生成された共通接頭長と、前記分割工程により分割された差分文字列と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、共通接頭長、差分文字列、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶工程と、
を有することを特徴とする。
【００１３】
請求項３記載の発明の記憶媒体は、仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮装置としてコンピュータを動作させるプログラムが記録されたコンピュータ読み取り可能な記憶媒体であって、
前記プログラムは、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合をレコード記憶部に記憶させるレコード記憶手段、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し手段、
前記レコード読み出し手段により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割手段、
前記分割手段により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記２バイト文字コードの先頭バイトのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成手段、
前記レコード読み出し手段により読み出された各レコードについて、前記共通接頭長生成手段により生成された共通接頭長と、前記分割工程により分割された差分文字列と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、共通接頭長、差分文字列、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶手段、
としてコンピュータを機能させることを特徴とする。
【００１４】
請求項１乃至３記載の発明によれば、単語辞書データベースには共通接頭長、差分文字列、第二種字文字列が、それらの間に区切り情報を挿入することなく、その順に連続して記憶されるが、それら情報の区切りは判定可能である。すなわち、共通接頭長と差分文字列との区切りは、共通接頭長が固定長データであることから判定可能である。差分文字列と第二種文字列との区切りは、差分文字列と第二種文字列とが重複しない文字コードで表されているため判定可能である。また、第二種文字列と共通接頭長との区切りは、共通接頭長のとり得る値の範囲と２バイト文字コードの先頭バイトのとり得る値の範囲とが重複しないことから判定可能である。
【００１５】
請求項４記載の発明の文字列データ圧縮装置は、仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮装置であって、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合を記憶するレコード記憶部と、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し手段と、
前記レコード読み出し手段により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割手段と、
前記分割手段により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記１バイト文字コードのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成手段と、
前記レコード読み出し手段により読み出された各レコードについて、前記分割手段により分割された差分文字列と、前記共通接頭長生成手段により生成された共通接頭長と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、差分文字列、共通接頭長、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶手段と、
を有することを特徴とする。
【００１６】
請求項５記載の発明の文字列データ圧縮方法は、仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮方法であって、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合をレコード記憶部に記憶させるレコード記憶工程と、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し工程と、
前記レコード読み出し工程により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割工程と、
前記分割工程により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記１バイト文字コードのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成工程と、
前記レコード読み出し工程により読み出された各レコードについて、前記分割工程により分割された差分文字列と、前記共通接頭長生成工程により生成された共通接頭長と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、差分文字列、共通接頭長、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶工程と、
を有することを特徴とする。
【００１７】
請求項６記載の記憶媒体は、仮名漢字変換に用いられる単語辞書データベースを作成するための文字列データ圧縮装置としてコンピュータを動作させるプログラムが記録されたコンピュータ読み取り可能な記憶媒体であって、
前記プログラムは、
１バイト文字コードを用いて表現された、単語の読みである第一種文字列と、前記１バイト文字コードと重複しない２バイト文字コードを用いて表現された、該単語の表記である第二種文字列とからなるレコードの集合をレコード記憶部に記憶させるレコード記憶手段、
前記レコード記憶部に記憶されているレコードを１つずつ順に読み出すレコード読み出し手段、
前記レコード読み出し手段により読み出されたレコード中の第一種文字列を、その直前に読み出されたレコード中の第一種文字列との共通部分である共通接頭文字列と、それ以外の部分である差分文字列とに分割する分割手段、
前記分割手段により分割された共通接頭文字列の文字数を示す固定長データであって、そのとり得る値の範囲が前記１バイト文字コードのとり得る値の範囲とは重複しない共通接頭長を生成する共通接頭長生成手段、
前記レコード読み出し手段により読み出された各レコードについて、前記分割手段により分割された差分文字列と、前記共通接頭長生成工程により生成された共通接頭長と、該レコード中の第二種文字列とを、それらの間に区切り情報を挿入することなく、差分文字列、共通接頭長、第二種文字列の順に連続させて前記単語辞書データベースに記憶させる圧縮レコード記憶手段、
としてコンピュータを機能させることを特徴とする。
【００１８】
請求項４乃至６記載の発明によれば、単語辞書データベースには差分文字列、共通接頭長、第二種文字列が、それらの間に区切り情報を挿入することなく、その順に連続して記憶されるが、それら情報の区切りは判定可能である。すなわち、差分文字列と共通接頭長との区切りは、共通接頭長のとり得る値の範囲と１バイト文字コードのとり得る値の範囲とが重複しないため判定可能である。共通接頭長と第二種文字列との区切りは、共通接頭長が固定長データであることから判定可能である。また、第二種文字列と差分文字列との区切りは、差分文字列と第二種文字列とが重複しない文字コードで表されていることから判定可能である。
【００１９】
【発明の実施の形態】
本発明の第一の実施の形態を図１ないし図６に基づいて説明する。本実施の形態は、仮名漢字変換において用いられる単語辞書データベースの作成に用いられる文字列データ圧縮装置に適用されている。
【００２０】
図１は、文字列データ圧縮装置１のハードウェア構成を概略的に示すブロック図である。図１に示すように、文字列データ圧縮装置１は、この文字列データ圧縮装置１の各部を集中的に制御するＣＰＵ（Central  Processing  Unit）２を備えており、このＣＰＵ２には、ＢＩＯＳなどを記憶した読出し専用メモリであるＲＯＭ（Read  Only  Memory）３と、各種データを書換え可能に記憶し、ＣＰＵ２の作業エリアとなるＲＡＭ（Random  Access  Memory）４とがバス５で接続されている。さらにバス５には、外部記憶となるＨＤＤ（Hard  Disk  Drive）６と、ＣＤ（Compact  Disc）−ＲＯＭ７を読み取るＣＤ−ＲＯＭドライブ８と、文字列データ圧縮装置１とネットワーク９との通信を司る通信制御装置１０と、キーボード、マウスなどの入力装置１１と、ＣＲＴ（Cathode  Ray  Tube）、ＬＣＤ（Liquid  Crystal  Display）などの出力装置１２とが、図示しないＩ／Ｏを介して接続されている。ＨＤＤ６には、各種のプログラムを格納するプログラムファイルのほか、レコード記憶部１３および単語辞書データベースである圧縮レコード記憶部１４が形成されている。
【００２１】
ＣＤ−ＲＯＭ７は、この発明の記憶媒体を実施するものであり、所定のプログラムが記憶されている。ＣＰＵ２は、ＣＤ−ＲＯＭ７に記憶されているプログラムをＣＤ−ＲＯＭドライブ８で読み取り、ＨＤＤ６にインストールする。これにより、文字列データ圧縮装置１は、後述するような各種の処理を行うことが可能な状態となる。
【００２２】
なお、記憶媒体としては、ＣＤ−ＲＯＭ７のみならず、ＤＶＤなどの各種の光ディスク、各種光磁気ディスク、フロッピー（登録商標）ディスクなどの各種磁気ディスク等、各種方式のメディアを用いることができる。また、通信制御装置１０を介してインターネットなどのネットワーク９からプログラムをダウンロードし、ＨＤＤ６にインストールするようにしてもよい。この場合に、送信側のサーバでプログラムを記憶している記憶装置も、この発明の記憶媒体である。なお、プログラムは、所定のＯＳ（Operating  System）上で動作するものであってもよいし、その場合に後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、ワープロソフトなど所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００２３】
次に、文字列データ圧縮装置１のＣＰＵ２がプログラムに基づいて実行する各種処理の内容について説明する。図２は、文字列データ圧縮装置１の機能ブロック図である。文字列データ圧縮装置１において、入力装置１１は、文字列であるレコードを入力する。レコード記憶部１３は、この入力された文字列を記憶する。ここで、図３はレコード記憶部１３のデータ構造を示す説明図である。図３に示すように、レコード記憶部１３は、入力装置１１を介して入力されたレコードを記憶するものであって、各レコードのフィールドは、単語の“読み”である平仮名を記憶する第一種文字列と、単語の“表記”である漢字を記憶する第二種文字列と、で構成されている。なお、各レコードは、第一種文字列をキーにして辞書順にソートされているものとする。また、本実施の形態においては、第一種文字列を構成する単語の“読み”である平仮名の文字コードは０〜１２７の範囲の値をとりうる１バイトコードであり、第二種文字列を構成する単語の“表記”である漢字の文字コードは先頭バイトが１２８〜２５５の範囲の値をとりうる２バイトコードである。なお、後述する共通接頭長は、０〜１２７の範囲に値が制限される。
【００２４】
レコード記憶部１３に記憶された各レコードは、レコード圧縮部１５において、差分圧縮処理を施される。ここで、差分圧縮について図４を参照して説明する。図４においては、図３に示した各レコードが各行に対応しており、各行は、
１．直前のレコードの“読み”との共通接頭文字数（共通接頭長）
２．共通接頭以外の部分（差分）の“読み”の文字列（差分文字列）
３．“表記”の文字列（第二種文字列）
の３つから構成されている。つまり、レコード圧縮部１５は、詳細な処理の流れについては後述するが、概略的には、レコード記憶部１３の先頭から一つずつレコードを読み込み、共通接頭長、差分の文字列、第二種文字列を求めることになる。
【００２５】
このようにしてレコード圧縮部１５において差分圧縮処理を施されたデータは、単語辞書データベースとして機能する圧縮レコード記憶部１４に記憶される。図５は、圧縮レコード記憶部１４のデータ構造を示す説明図である。圧縮レコード記憶部１４には、差分圧縮されたデータが、共通接頭長、差分の文字列、第二種文字列の順に記憶されている。圧縮レコード記憶部１４には前述したような差分圧縮の結果が記憶されるが、図５に示す圧縮レコード記憶部１４は、一例として、図３に示したレコード記憶部１３に記憶されている３つのレコードの差分圧縮の結果を記憶した状態を示している。図中、“あ”は、第一種文字列を構成する単語の“読み”である平仮名の「あ」の文字コードを表している。“い”、“う”、“の”についても同様である。また、“亜１”は第二種文字列を構成する単語の“表記”である漢字の「亜」の文字コードの先頭バイト、“亜２”は漢字の「亜」の文字コードの後続バイトの値を表している。“愛１”、“愛２”、“宇１”、“宇２”、“野１”、“野２”についても同様である。さらに、“数字（０，１）”は、共通接頭長を表している。したがって、圧縮レコード記憶部１４は、１バイト毎に添え字を持つ配列とされている。
【００２６】
次に、前述したようなレコード圧縮部１５における差分圧縮処理について詳細に説明する。図６は、差分圧縮処理の流れを示すフローチャートである。図６に示すように、ステップ１においては、変数Ｙ１を空列とするとともに、圧縮レコード記憶部１４の添え字の位置を示す変数Ｐを“０”にセットする。
【００２７】
ステップ２においては、レコード記憶部１３からレコードを読み出して、第一種文字列を変数Ｙ２にセットし、第二種文字列を変数Ｈにセットし、第二種文字列の長さの値を変数Ｓ２にセットする。ここに、レコード読み出し手段の機能が実行される。
【００２８】
ステップ３においては、変数Ｙ１と変数Ｙ２に記憶された第一種文字列とから、共通接頭長と差分の文字列と差分の文字列の長さの値を求め、共通接頭長を変数Ｌにセットし、差分の文字列を変数Ｄにセットし、差分の文字列の長さの値を変数Ｓ１にセットする。ここに、分割手段の機能と共通接頭長生成手段の機能とが実行される。
【００２９】
続くステップ４においては、圧縮レコード記憶部１４の添え字の位置である変数Ｐの位置から、変数Ｌ、変数Ｄ、変数Ｈの値を順に圧縮レコード記憶部１４に記憶する。ここに、圧縮レコード記憶手段の機能が実行される。
【００３０】
その後、ステップ５において、変数Ｙ２に記憶された第一種文字列を変数Ｙ１に置き換えるとともに、圧縮レコード記憶部１４の添え字の位置である変数Ｐの値を“変数Ｐ＋１＋変数Ｓ１＋変数Ｓ２”の値に更新する。
【００３１】
以上、ステップ２〜５の処理は、レコード記憶部１３に記憶されている全てのレコードについて終了する迄（ステップ６のＹ）、繰り返される。
【００３２】
レコード記憶部１３に記憶されている全てのレコードについてステップ２〜５の処理が実行された場合には（ステップ６のＹ）、処理を終了する。
【００３３】
ここに、単語の“読み”である第一種文字列もしくは差分文字列と単語の“表記”である第二種文字列とが互いに文字コードが重複しないように定義され、かつ、固定長データで表した共通接頭長の値が第二種文字列の文字コードの先頭バイトの値と重複しないように定義されており、圧縮レコード記憶部１４には共通接頭長、差分文字列、第二種文字列の順で記憶される。これにより、共通接頭長と差分文字列との区切りは共通接頭長が固定長データで表されていることから判定可能であり、差分文字列と第二種文字列との区切りは差分文字列と第二種文字列とが互いに文字コードが重複しないように定義されていることから判定可能であり、第二種文字列と共通接頭長との区切りも第二種文字列の文字コードの先頭バイトの値と共通接頭長の値とが重複しないように定義されていることから判定可能である。つまり、共通接頭長、単語の“読み”である差分文字列、単語の“表記”である第二種文字列のそれぞれの間に区切りを判定するための記憶領域を設ける必要がなくなることから、従来よりも文字列データを圧縮レコード記憶部１４にコンパクトに記憶させることが可能になる。
【００３４】
本発明の第二の実施の形態を図７および図８に基づいて説明する。なお、本発明の第一の実施の形態において説明した部分と同一部分については同一符号を用い、説明も省略する。本実施の形態は、第一の実施の形態とは、圧縮レコード記憶部１４への記憶形式が異なるものである。
【００３５】
図７は、差分圧縮処理の流れを示すフローチャートである。図７に示すように、ステップ１１においては、変数Ｙ１を空列とするとともに、圧縮レコード記憶部１４の添え字の位置を示す変数Ｐを“０”にセットする。
【００３６】
ステップ１２においては、レコード記憶部１３からレコードを読み出して、第一種文字列を変数Ｙ２にセットし、第二種文字列を変数Ｈにセットし、第二種文字列の長さの値を変数Ｓ２にセットする。ここに、レコード読み出し手段の機能が実行される。
【００３７】
ステップ１３においては、変数Ｙ１と変数Ｙ２に記憶された第一種文字列とから、共通接頭長と差分の文字列と差分の文字列の長さの値を求め、共通接頭長に１２８を加算した値を変数Ｌにセットし、差分の文字列を変数Ｄにセットし、差分の文字列の長さの値を変数Ｓ１にセットする。ここに、分割手段の機能と共通接頭長生成手段の機能とが実行される。なお、ここで第一の実施の形態と異なり、共通接頭長に１２８を加算するのは、固定長データで表した共通接頭長の値が第一種文字列の文字コードの値と重複しないようにするためである。
【００３８】
続くステップ１４においては、圧縮レコード記憶部１４の添え字の位置である変数Ｐの位置から、変数Ｄ、変数Ｌ、変数Ｈの値を順に圧縮レコード記憶部１４に記憶する。ここに、圧縮レコード記憶手段の機能が実行される。
【００３９】
その後、ステップ１５において、変数Ｙ２に記憶された第一種文字列を変数Ｙ１に置き換えるとともに、圧縮レコード記憶部１４の添え字の位置である変数Ｐの値を“変数Ｐ＋１＋変数Ｓ１＋変数Ｓ２”の値に更新する。
【００４０】
以上、ステップ１２〜１５の処理は、レコード記憶部１３に記憶されている全てのレコードについて終了する迄（ステップ１６のＹ）、繰り返される。
【００４１】
レコード記憶部１３に記憶されている全てのレコードについてステップ１２〜１５の処理が実行された場合には（ステップ１６のＹ）、処理を終了する。
【００４２】
図８は、圧縮レコード記憶部１４のデータ構造を示す説明図である。圧縮レコード記憶部１４には、差分圧縮されたデータが、差分の文字列、共通接頭長、第二種文字列の順に記憶されている。
【００４３】
なお、圧縮レコード記憶部１４からデータを復元する際には、得られた差分長の値から１２８を減算すれば実際の値が得られる。
【００４４】
ここに、単語の“読み”である第一種文字列もしくは差分文字列と単語の“表記”である第二種文字列とが互いに文字コードが重複しないように定義され、かつ、固定長データで表した共通接頭長の値が第一種文字列の文字コードの値と重複しないように定義されており、圧縮レコード記憶部１４には差分文字列、共通接頭長、第二種文字列の順で記憶される。これにより、差分文字列と共通接頭長との区切りは差分文字列の文字コードの値が共通接頭長の値と重複しないように定義されていることから判定可能であり、共通接頭長と第二種文字列との区切りは共通接頭長が固定長データで表されていることから判定可能であり、第二種文字列と差分文字列との区切りは差分文字列と第二種文字列とが互いに文字コードが重複しないように定義されていることから判定可能である。つまり、単語の“読み”である差分文字列、共通接頭長、単語の“表記”である第二種文字列のそれぞれの間に区切りを判定するための記憶領域を設ける必要がなくなることから、従来よりも文字列データを圧縮レコード記憶部１４にコンパクトに記憶させることが可能になる。
【００４５】
【発明の効果】
請求項１ないし３の何れか一記載の発明によれば、単語の“読み”である第一種文字列もしくは差分文字列の文字コードと単語の“表記”である第二種文字列の文字コードとは重複せず、かつ、固定長データで表した共通接頭長の値と第二種文字列の文字コードの先頭バイトの値とは重複せず、単語辞書データベースに共通接頭長、差分文字列、第二種文字列の順で、それらの間に区切り情報を挿入することなく記憶する。区切り情報は挿入されないが、共通接頭長と差分文字列との区切りについては共通接頭長を固定長データで表したことから判定することができ、差分文字列と第二種文字列との区切りについては第一種文字列（差分文字列）と第二種文字列の文字コードが重複しないことから判定することができ、第二種文字列と共通接頭長との区切りについても第二種文字列の文字コードの値と共通接頭長の値とが重複しないことから判定することができる。このように、共通接頭長、差分文字列、第二種文字列のそれぞれの間に区切りを判定するための記憶領域を設ける必要がなくなることから、従来よりも文字列データを単語辞書データベースにコンパクトに記憶させることができる。
【００４６】
請求項４ないし６の何れか一記載の発明によれば、単語の“読み”である第一種文字列もしくは差分文字列の文字コードと単語の“表記”である第二種文字列の文字コードとは重複せず、かつ、固定長データで表した共通接頭長の値は第一種文字列の文字コードと重複せず、単語辞書データベースに差分文字列、共通接頭長、第二種文字列の順で、それらの間に区切り情報を挿入することなく記憶する。区切り情報は挿入されないが、差分文字列と共通接頭長との区切りについては差分文字列の文字コードの値と共通接頭長の値とが重複しないことから判定することができ、共通接頭長と第二種文字列との区切りについては共通接頭長を固定長データで表したことから判定することができ、第二種文字列と差分文字列との区切りについては差分文字列の文字コードと第二種文字列の文字コードとが重複しないことから判定することができる。このように、差分文字列、共通接頭長、第二種文字列のそれぞれの間に区切りを判定するための記憶領域を設ける必要がなくなることから、従来よりも文字列データを単語辞書データベースにコンパクトに記憶させることができる。
【図面の簡単な説明】
【図１】  本発明の第一の実施の形態の文字列データ圧縮装置のハードウェア構成を概略的に示すブロック図である。
【図２】  文字列データ圧縮装置の機能ブロック図である。
【図３】  レコード記憶部のデータ構造を示す説明図である。
【図４】  差分圧縮についての説明図である。
【図５】  圧縮レコード記憶部のデータ構造を示す説明図である。
【図６】  差分圧縮処理の流れを示すフローチャートである。
【図７】  本発明の第二の実施の形態の差分圧縮処理の流れを示すフローチャートである。
【図８】  圧縮レコード記憶部のデータ構造を示す説明図である。
【符号の説明】
１  文字列データ圧縮装置
７  記憶媒体
１３  レコード記憶部
１４  単語辞書データベース
【図１】
0003988973.tif 000002
【図２】
0003988973.tif 000003
【図３】
0003988973.tif 000004
【図４】
0003988973.tif 000005
【図５】
0003988973.tif 000006
【図６】
0003988973.tif 000007
【図７】
0003988973.tif 000008
【図８】
0003988973.tif 000009