以下、図を参照して本発明を辞書データ圧縮装置の一種であるコンピュータ及び携帯式かつ折り畳み式の電子辞書装置に適用した場合の実施形態について図面を参照して詳細に説明する。但し、本発明が適用可能なものはこれに限定されるものではない。
〔第1実施形態〕
[1.全体構成]
図1は、本発明を適用したコンピュータ1及び電子辞書装置100の概観図である。コンピュータ1は、通常、電子辞書装置100の製造メーカ等に設置されており、辞書データの圧縮の用に供される。コンピュータ1で圧縮された辞書データは、EEPROM107に記憶されて、EEPROM107が実装された電子辞書装置100が製造される。そして、電子辞書装置100においては、圧縮された辞書データが伸張され、辞書データの内容(見出語や説明情報等)が表示される。
辞書データとは、見出語と、当該見出語を説明するための説明情報とからなるデータであり、例えば国語辞典や英和辞典、和英辞典、英英辞典、カタカナ語辞典などの電子辞書データがある。但し、簡明のために、本実施形態においては、コンピュータ1により圧縮され、電子辞書装置100に記憶される辞書データは、英和辞典の辞書データと、英和大辞典の辞書データとの2種類として説明する。また、圧縮前の辞書データを圧縮後の辞書データと区別するために、以下では、圧縮前の辞書データを「元辞書データ」という。また、参照部についての圧縮及び伸張を「圧縮」及び「伸張」と、主データ部についての圧縮及び伸張を「符号化」及び「復号」として説明する。これは、参照部の圧縮及び伸張と、主データ部の圧縮及び伸張とが異なる方式であるため、混同を避けるために便宜的に区別した表記とするものとである。
図1に示すように、コンピュータ1は、CRT(Cathode Ray Tube)等のディスプレイ3と、キーボード5と、RAMやハードディスク等のメモリ7とを備えた汎用のサーバ・コンピュータ等のハードウェアで構成される。電子辞書装置100は、LCD(Liquid Crystal Display)等のディスプレイ103と、文字入力キーや辞書種別の選択キー等の各種キー群105と、EEPROM107とを備えて構成される。
電子辞書装置100の基本的な機能は、次の通りである。すなわち、ユーザによって辞書が選択され、検索語となる文字が入力される(以下、入力された文字を「入力文字」と表す。)と、電子辞書装置100は、入力文字に適合する見出語を選択された辞書の辞書データの中から検索し、見出語候補として一覧表示する。そして、検索した見出語に対応する説明情報を表示する。
[1.2 辞書データ圧縮装置]
[1.2.1 構成]
まず、辞書データをコンピュータ1において圧縮する場合の処理について説明する。図2は、コンピュータ1の機能を示すブロック図である。同図に示すように、コンピュータ1は、CPU(Central Processing Unit)10と、ハードディスク20と、RAM(Random Access Memory)30と、ROM(Read Only Memory)40と、入力部50と、表示部60とを備えている。
ハードディスク20は、オペレーティングシステム、必要なプログラム又はデータファイル等を格納する。また、ハードディスク20には、元英和辞典データ202と、元英和大辞典データ204と、第1圧縮プログラム206と、第1主データ部符号化プログラム208とが記憶されている。ここで、各辞書データは、所定の割合で分割(区分)されている。辞書データ全体の1割の部分と残り9割の部分とに分割されている。ここで、辞書データ全体の1割の部分を参照部、残りの9割の部分を主データ部という。なお、本実施形態において参照部の割合を一例として辞書データ全体の1割としたが、これに限定される訳ではない。例えば、参照部の割合は、辞書データの全体の5%でも良いし、2割でも良い。
元英和辞典データ202は、「英和辞典」のコンテンツの圧縮前のデータが入っている辞書データである。図3(a)に元英和辞典データ202の概要を図示した。図3(a)において、「○○○○」で示した部分は見出語を表し、「・・・・・」で示した部分は当該見出語の説明文(見出語を説明する文章を構成する文字)を表している。図3(a)に示すように、元英和辞典データ202は、紙の辞書に印字されている文字を文字コードとした一連のテキストのデータとなっている。
また、図3(b)は、説明の便宜上、元英和辞典データ202を見出語単位に区切って図式化した概念図である。図3(b)によれば、例えば、見出語「applet」及び「applet」の説明情報(以下、1つの見出語とその見出語の説明情報とを合わせて「見出語単位データ」という。)は、元英和辞典データ202の先頭を「1」バイト目とした「100」バイト目から記述されており、見出語「ASCII」の見出語単位データは、元英和辞典データ202の「250」バイト目から記述されている。また、図3に示したように、元英和辞典データ202は、データ全体の1割の部分を参照部、残る9割の部分を主データ部として区分されている。以下、元英和辞典データ202の参照部を元英和参照部202a、主データ部を元英和主データ部202bという。
また、元英和大辞典データ204は、「英和大辞典」のコンテンツの圧縮前のデータが入っている辞書データである。元英和大辞典データ204も、元英和辞典データ202と同様に、参照部となる元英大参照部204aと、主データ部となる元英大主データ部204bとから構成されている。
RAM30は、CPU10が実行する各種プログラムや、これらのプログラムの実行にかかるデータ等を一時的に保持するメモリ領域を備える。本実施形態では、圧縮後英和辞典データ300と、圧縮後英和大辞典データ310と、英和辞典見出語テーブル316と、英和大辞典見出語テーブル318とを格納している。なお、RAM30は、図1におけるメモリ7に相当する。
圧縮後英和辞典データ300は、CPU10が、第1圧縮プログラム206に基づいて第1圧縮処理を実行することにより、元英和辞典データ202を圧縮した辞書データである。詳細は後述するが、元英和参照部202aが圧縮されて圧縮後英和参照部302となり、元英和主データ部202bが符号化されて符号化後英和主データ部304となる。同様に、圧縮後英和大辞典データ310は、CPU10が、第1圧縮プログラム206に基づいて第1圧縮処理を実行することにより、元英和大辞典データ204を圧縮した辞書データである。
英和辞典見出語テーブル316は、圧縮後英和辞典データ300に含まれている各見出語の圧縮後英和辞典データ300の開始位置(開始バイト)を記録したテーブルである。CPU10は、英和辞典見出語テーブル316を参照することにより、見出語単位データを読み出す。同様に、英和大辞典見出語テーブル318は、圧縮後英和大辞典データ310に含まれている各見出語の英和大辞典データ310中の開始位置を記録したテーブルである。
ROM40は、各種初期設定、ハードウェアの検査、あるいは必要なプログラムのロードを行う為の初期プログラム(例えば、BIOS(Basic Input/Output System)等)を格納する。CPU10は、コンピュータ1の電源投入時においてこの初期プログラムを実行することにより、コンピュータ1の動作環境を設定する。
CPU10は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送を行う。具体的には、CPU10は、入力部50から入力される操作信号に応じてハードディスク20に格納されたプログラムを読み出し、当該プログラムに従って処理を実行する。そして、表示制御信号を適宜表示部60に出力して、処理結果を表示させる。
また、CPU10は、本実施形態において、ハードディスク20の第1圧縮プログラム206に従った、第1圧縮処理(図4参照)を実行すると共に、この第1圧縮処理において、第1主データ部符号化プログラム208に従った第1主データ部符号化処理をサブルーチンとして実行する。
具体的には、CPU10は、第1圧縮処理において、まず第1主データ部符号化処理を実行して、辞書データの主データ部を符号化し、次に当該辞書データの参照部を圧縮する。この処理を全ての辞書データについて行う。
また、CPU10は、第1主データ部符号化処理では、いわゆる辞書型符号化方法により主データ部を符号化する。すなわち、主データ部の先頭から順に文字列を選択し、選択した文字列が元辞書データの参照部に含まれているか否かを判定する。そして、参照部に一致する文字列が含まれている場合には、CPU10は、その文字列が記述されている元辞書データにおける位置、語長を抽出し、抽出した位置、語長に対応する符号化を実行する。
入力部50は、仮名やアルファベット等の文字入力や機能選択等に必要なキー群を備えた入力装置であり、押下されたキーの信号をCPU10に出力する。この入力部50におけるキー入力により、処理の実行などを指示する制御命令の入力手段を実現する。なお、この入力部50は、図1に示すキーボード5に相当するが、キーボードに限られる物ではなく、例えばマウス等であっても良い。
表示部60は、CPU10から出力される表示信号に基づいて各種画面を表示するものであり、CRT(Cathode Ray Tube)等により構成される。なお、この表示部60は、図1に示すディスプレイ3に相当する。
[1.2.2 動作]
図4(a)は、第1圧縮処理に係るコンピュータ1の動作を説明するためのフローチャートである。この第1圧縮処理は、CPU10がハードディスク20に記憶された第1圧縮プログラム206を実行することによって実現される処理である。
まず、CPU10は、ハードディスク20に記憶されている元辞書データの中から一の元辞書データを選択する(ステップA10)。次に、CPU10は、第1主データ部符号化処理を実行することにより、選択した元辞書データのうちの主データ部について符号化する(ステップA12)。そして、符号化された元辞書データの主データ部を、CPU10は、符号化後主データ部として、RAM30に記憶する。
次に、CPU10は、参照部圧縮処理を実行し(ステップA14)、元辞書データの参照部のデータを圧縮する。なお、参照部を圧縮する方法としては、例えば、ハフマン符号で符号化することにより圧縮する方法を用いたり、ZIP圧縮方式によって圧縮する方法を用いたりする等、公知技術を適宜適用して良い。そして、CPU10は、圧縮された辞書データの参照部を、圧縮後参照部として、RAM30に記憶する。
そして、CPU10は、圧縮後辞書データに含まれている各見出語の位置(開始バイト)を、見出語テーブルとして、RAM30に記憶することにより、見出語テーブルを作成する(ステップA15)。例えば、図6(c)は英和辞典見出語テーブル316を表した図である。CPU10は、圧縮後英和辞典データ300に含まれている各見出語データの開始位置(開始バイト)を圧縮後英和辞典データ300に含まれている順に記憶する。
次に、CPU10は、全ての元辞書データについて圧縮処理を実行したか否かを判定する(ステップA16)。もし、まだ圧縮処理を実行していない元辞書データがハードディスク20に記憶されていれば(ステップA16;No)、CPU10は、次の元辞書データを選択し(ステップA18)、選択した元辞書データについて圧縮処理を実行する。また、CPU10は、ハードディスク20に記憶されている全ての元辞書データについて、圧縮処理を実行したと判定したときは(ステップA16;Yes)、処理を終了する。
ここで、図4(b)を用いて第1圧縮処理を具体的に説明する。図4(b)の(1)は、元英和辞典データ202の参照部と主データ部との関係を示した図である。まず、CPU10は、第1圧縮処理のステップA12において、第1主データ部符号化処理を実行することにより、元英和主データ部202bを符号化して、符号化後英和主データ部304とする(図4(b)(i))。次に、CPU10は、第1圧縮処理のステップA14において、参照部圧縮処理を実行することにより元英和参照部202aを圧縮して、圧縮後英和参照部302とする(図4(b)(ii))。そして、圧縮後英和参照部302と、符号化後英和主データ部304とから圧縮後英和辞典データ300が構成されることとなる(図4(b)(4))。
次に、第1主データ部符号化処理について説明する。図5は、第1主データ部符号化処理に係るコンピュータ1の動作を説明するためのフローチャートである。この第1主データ部符号化処理は、CPU10がハードディスク20の第1主データ部符号化プログラム208を実行することによって実現される処理である。
まず、CPU10は、主データ部を構成するはじめの文字列を選択する(ステップB10)。ここで、文字列を選択するとは、例えば文節毎に文字列として抽出したり、所定の文字数ずつ抽出するなど、いずれの方法であっても良い。そして、CPU10は、選択した文字列が、元辞書データの参照部に含まれているか否かを判定する(ステップB12)。もし、選択した文字列が、元辞書データの参照部に含まれていると判定した場合には(ステップB12;Yes)、参照部に含まれている当該文字列の位置及び語長を検出する(ステップB14)。具体的には、CPU10は、当該文字列が含まれている参照部中の見出語単位データを判定する。そして、その見出語単位データの開始位置(すなわち、当該見出語の開始位置)が、辞書データの先頭から何バイト目かを検出する。更に当該見出語単位データ中の何バイト目に当該文字列が存在するかを検出する。なお、位置を検出する方法はこれに限られる訳ではなく、例えば、選択した文字列が、辞書データの先頭から何バイト目に記憶されているかを直接検出する方法としてもよいし、先頭からの文字数を検出するとしてもよい。
次に、CPU10は、検出した文字列の位置及び語長に基づいて、主データ部中の選択した文字列を符号化する(ステップB16)。そして、主データ部の全ての文字列を符号化したか否か、即ち、主データ部の最後の文字列に対して処理を行ったかを判定し、全ての文字列の符号化が終了していない場合は(ステップB18;Yes)、次の文字列を選択し(ステップB20)、ステップB12から同様の処理を実行する。
ここで、図6を参照して第1主データ部符号化処理について具体的に説明する。図6(a)は、元英和辞典データ202における元英和参照部202aに含まれる見出語「applet」の見出語単位データを示す図である。見出語「applet」の見出語単位データは、元英和辞典データ202の「100」バイト目から記述されており、「[名詞]」が「107」バイト目から、「〔コンピュータ〕」が「115」バイト目から、「アプレット」が「131」バイト目からそれぞれ記述されている。また、図6(b)は、元英和主データ部202bに含まれる見出語「ASCII」の見出語単位データのうちの説明情報を図示したものである。この「ASCII」の説明情報の符号化について説明する。
まず、CPU10は、文字列「[名詞]」を元英和参照部202aから検索する。ここで、「[名詞]」は、元英和参照部202aの「applet」の見出語単位データの「7」バイト目に存在する。従って、CPU10は、見出語「applet」と、「7」バイト目とを検出する。次に、CPU10は、文字列の語長を検出する。ここで、「[名詞]」は「8」バイトの文字長であることから、語長として「8」バイトを検出する。
次に、CPU10は、検出した位置情報等から中間データを生成する。中間データは、参照部を参照して符号化したことを示すフラグの役目を担う「%」と、「[名詞]」が含まれている見出語「applet」と、「7」バイト目と、語長「8」バイトとを区切り記号「:」で連結した「%applet:7:8%」となる。更に、符号化後英和主データ部304に記録するための最終データとする。具体的には、まず参照部を参照して符号化したことを示すフラグ「1」(1ビット目)と、「[名詞]」が存在するバイト位置「107」バイト目を2進数の9ビットで表した値「001101011」(2ビット目〜10ビット目)と、語長「8」を2進数の6ビットで表した値「001000」(11ビット目〜16ビット目)とを一連にした符号とすることで最終データにする。従って、本来「8」バイト分の文字コード(1文字は2バイト)で表されていた「名詞」が「2」バイト分の符号で済むこととなる。また、同様に「〔コンピュータ〕」について、符号化を行うと「1001110011010000」となり、「16」バイトが「2」バイトに圧縮される。
なお、本実施形態においては、中間データを用いたが、中間データを用いないで最終データに直接符号化するとしてもよいのは勿論である。
また、本実施形態においては、最初の1ビットを、参照部を参照した符号化としたのか否か、即ち、辞書型符号化方法によって符号化された符号なのか否かのフラグとしたが、このフラグを用いずに実現してもよいことは勿論である。例えば、参照部を用いて符号化を行った文字列と、参照部を用いずに符号化を行った文字列とを含めて、同一のハフマン符号方式でさらなる符号化を行う。この場合、ハフマン符号によって一意にコードが決定されるため、フラグのビットは不要となり、より効率的な符号化が可能となる。
以上のように、第1実施形態における辞書圧縮装置(コンピュータ)によれば、主データ部が符号化されるとともに、参照部も圧縮されるため、辞書データ全体の圧縮効率を高めることができる。
[1.3 電子辞書装置]
[1.3.1 構成]
図7は、電子辞書装置100の構成を示すブロック図である。同図に示すように、電子辞書装置100は、CPU(Central Processing Unit)110と、ROM(Read Only Memory)120と、RAM(Random Access Memory)130と、EEPROM(Electronically Erasable and Programmable Read Only Memory)140と、入力部150と、表示部160とを備えている。
ROM120は、各種初期設定、ハードウェアの検査、あるいは必要なプログラムのロード等を行うための初期プログラムを格納する。CPU110は、電子辞書装置100の電源投入時においてこの初期プログラムを実行することにより、電子辞書装置100の動作環境を設定する。
また、ROM120は、メニュー表示処理、各種設定処理、各種検索処理等の電子辞書装置100の動作に係る各種プログラムや、電子辞書装置100の備える種々の機能を実現するためのプログラム等を格納すると共に、第1伸張プログラム1202と、第1主データ部復号プログラム1204とを備えている。
RAM130は、CPU110が実行する各種プログラムや、これらのプログラムの実行に係るデータ等を一時的に保持するメモリ領域を備える。本実施形態では、参照部伸張領域1302を備えている。
参照部伸張領域1302は、第1伸張処理において、圧縮後辞書データに含まれる参照部を伸張するための領域である。詳細は後述するが、概略について図8を用いて説明する。参照部伸張領域1302は、RAM130の中に確保されている領域である。CPU110は、ユーザによって辞書データが選択されると、選択された辞書データに対応する圧縮後辞書データの圧縮後参照部の部分について、参照部伸張領域1302に伸張する。例えば、ユーザによって英和辞典データ(圧縮後英和辞典データ1400)が選択されると、CPU110は、圧縮後英和参照部1402を伸張して、元英和参照部202aを生成する。また、ユーザによって英和大辞典データ(圧縮後英和大辞典データ310)が選択されると、CPU110は、圧縮後英大参照部1412から、元英大参照部204aを伸張する。
EEPROM140は、電子辞書装置100において、CPU110が参照する各種辞書データや、各種設定等を記憶しておく領域である。本実施形態においては、圧縮後英和辞典データ1400と、圧縮後英和大辞典データ1410と、英和辞典見出語テーブル1416と、英和大辞典見出語テーブル1418とを記憶している。ここで、圧縮後英和辞典データ1400は、コンピュータ1において、CPU10が、第1圧縮処理を実行することによって作成する圧縮後英和辞典データ300と同一の辞書データである。同様に、圧縮後英和大辞典データ1410は、圧縮後英和大辞典データ310と同一の辞書データである。また、上述したように、圧縮後英和参照部1402が伸張されることで、元英和参照部202aが生成され、圧縮後英大参照部1412が伸張されることで、元英大参照部204aが生成される。また、英和辞典見出語テーブル1416は英和辞典見出語テーブル316と、英和大辞典見出語テーブル1418は英和大辞典見出語テーブル318と同一の見出語テーブルである。
CPU110は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送を行う。具体的には、CPU110は、入力部150から入力される操作信号に応じてROM120に格納されたプログラムを読み出し、当該プログラムに従って処理を実行する。そして、CPU110は、表示制御信号を適宜表示部160に出力して、処理結果を表示させる。
また、CPU110は、本実施形態において、ROM120に記憶された第1伸張プログラム1202に従った、第1伸張処理(図9参照)を実行すると共に、この第1伸張処理において、第1主データ部復号プログラム1204を読み出して第1主データ部復号処理をサブルーチンとして実行する。
具体的には、CPU110は、第1伸張処理において、圧縮後の辞書データの参照部を伸張することで、元辞書データの参照部を生成する。また、CPU110は、第1主データ部復号処理において、圧縮後の辞書データの主データ部に含まれる見出語単位データを復号する。
入力部150は、仮名やアルファベット等の文字入力や機能選択等に必要なキー群を備えた入力装置であり、押下されたキーの信号をCPU110に出力する。この入力部150におけるキー入力により、入力文字の入力、辞書モードの選択、検索実行指示、ジャンプ機能の開始等を指示入力する入力手段を実現する。なお、この入力部150は、図1のキー群105に相当するが、キー群105に限られるわけではなく、タッチパネル等であってもよい。
表示部160は、CPU110から入力される表示信号に基づいて各種画面を表示するものであり、LCD等により構成される。なお、この表示部160は、図1に示すディスプレイ103に相当する。
[1.3.2 動作]
図9は、第1伸張処理に係る電子辞書装置100の動作を説明するためのフローチャートである。この第1伸張処理は、CPU110がROM120に記憶された第1伸張プログラム1202を実行することによって実現される処理である。
まず、CPU110は、ユーザによって辞書の種別が選択されると、選択された種別の辞書データに対応する圧縮後辞書データを、EEPROM140から選択する(ステップC10)。次に、CPU110は、選択した圧縮後辞書データの参照部をRAM30の参照部伸張領域1302に伸張する(ステップC12)。ここで、圧縮後辞書データの参照部を参照部伸張領域1302に伸張する方法としては、参照部が圧縮された方法に対応する伸張方法で伸張すればよい。例えば、圧縮後参照部がハフマン符号で符号化されている場合には、ハフマン符号で復号することにより伸張する方法を用いる。また、圧縮後参照部がZIP圧縮方式によって圧縮されている場合には、ZIP圧縮方式によって伸張する方法を用いる。
次に、CPU110は、文字が入力されると(ステップC14)、入力文字に対応する見出語を検索する(ステップC16)。具体的には、見出語テーブルに格納された開始位置の中から何れかの開始位置を選択し、圧縮後辞書データを伸張していく処理を行う。見出語テーブルには、辞書の格納順に見出語の開始位置が格納されているため、例えば、公知である2分木を用いた探索法等により、開始位置の選択・見出語の伸張・適合する見出語か否かの判定を繰り返すことにより、見出語の検索を実行する。次に、CPU110は、入力文字に対応する見出語が主データ部に含まれているか否かを判定する(ステップC18)。例えば、入力文字に対応する見出語が記憶されている開始位置が、所定の位置より大きい場合は主データ部に含まれていると判定する。そして、CPU110が、入力文字に対応する見出語が主データ部に含まれていないと判定した場合には(ステップC18;No)、参照部伸張領域1302に伸張された参照部から、見出語単位データを読み出して、説明情報を抽出する(ステップC22)。
また、CPU110が、入力文字に対応する見出語が主データ部に含まれていると判定した場合には(ステップC18;Yes)、CPU110は、第1主データ部復号処理を実行し、主データ部から、対応する説明情報を抽出する(ステップC20)。
そして、CPU110は、検索された見出語と、見出語に対応する説明情報を表示部160に表示する(ステップC24)。
次に、第1主データ部復号処理について説明する。図10は、第1主データ部復号処理に係る電子辞書装置100の動作を説明するためのフローチャートである。この第1主データ部復号処理は、CPU110がROM120の第1主データ部復号プログラム1204を実行することによって実現される処理である。
まず、符号化後主データ部中の、入力文字に対応する見出語の開始位置から、データ(符号)を読み込む(ステップD8)。CPU110は、読み込まれた符号に圧縮コードが含まれているか否かを判定する(ステップD10)。CPU110は、符号に圧縮コードが含まれていると判定した場合には(ステップD10;Yes)、参照部に含まれている文字列の位置及び語長を検出する(ステップD12)。そして、CPU110は、検出した位置及び語長に基づいて、参照部に含まれている文字列を複写することにより復号する(ステップD14)。そして、CPU110は、主データ部における全ての文字列について復号したか否かを判定し(ステップD16)、復号する文字列が残っている場合には(ステップD16;No)、次の文字列を検出し(ステップD18)、同じ処理を実行する。
ここで復号処理は、図6(b)に示した符号化処理を、逆の手順で実行することによって実現される処理である。図6(b)を用いて具体的に説明すると、まず、符号化されたデータ「1001101011001000」を読み込むとする。次に、CPU110は、1ビット目を読み出し、圧縮コードであるか否かを判定する。この場合、1ビット目が「1」であることから、CPU110は、検出した符号が参照部の文字列を用いて符号化されていると判定する。次に、CPU110は、文字列の位置を示すビットとして、例えば「9」ビット分の符号「001101011」を検出し、これを10進数「107」に変換する。そして、CPU110は、参照部伸張領域1302に伸張された元英和参照部202aの「107」バイト目から始まる文字列を検出する。次に、CPU110は、語長を検出するために符号から6ビット分「001000」を検出し、これを10進数の「8」に変換する。そして、CPU110は「107」バイト目から始まる8バイト分「[名詞]」を符号化後英和主データ部の該当部に複写することにより、主データ部に符号化されている見出語データを復号する。
このように、第1実施形態の電子辞書装置によれば、参照部が圧縮された場合であっても、伸張後の参照部を参照して主データ部を復号することが可能となる。このため、圧縮された参照部によって主データ部が復号できなくなるといったことがない。また、辞書データの参照部も圧縮されているため、辞書データを格納するためのメモリ容量を節減でき、更に多くの情報を記憶することが可能となる。
〔第2実施形態〕
次に、本発明を適用した第2実施形態について説明する。本実施形態は、複数の辞書データにおいて、参照部を共通化して利用することにより、圧縮効率を向上させようというものである。
[2.1 辞書データ圧縮装置]
[2.1.1 構成]
まず、第2実施形態におけるコンピュータの構成は、第1実施形態において図2に示して説明したコンピュータ1の構成において、ハードディスク20を図11(a)に示すハードディスク22に、RAM30を図11(b)に示すRAM32に置き換えた構成と同様であり、以下、同一の構成要素には同一の符号を付してその説明を省略する。また、各フローチャートにおいて、第1実施形態のフローチャートを同一処理内容のステップについては同一の符号を付して、異なる部分を中心に説明する。
図11(a)を参照してハードディスク22の構成について説明する。図11(a)に示すように、ハードディスク22は、元英和辞典データ202と、元英和大辞典データ220と、第1主データ部符号化プログラム208と、第2圧縮プログラム222とを記憶している。
元英和大辞典データ220は、「英和大辞典」の圧縮前のデータが入っている辞書データである。元英和大辞典データ220は、第1実施形態における元英和大辞典データ204における元英大参照部204aと元英大主データ部204bとを区別せずに、1つの元英大主データ部220aとして構成されている。
第2圧縮プログラム222は、本実施形態における第2圧縮処理を実現するためのプログラムであり、CPU10がこの第2圧縮プログラム222を実行することで、第2圧縮処理が実現される。CPU10は、元英和辞典データ202の元英和主データ部202bを符号化した後に、残りの元英和辞典データ202について、元英和辞典データ202の元英和参照部202aを共通参照部として符号化する処理を実行する。そして、全ての元辞書データの主データ部を共通参照部を利用して符号化した後に、共通参照部として利用した元英和辞典データ202の元英和参照部202aを圧縮する。
また、図11(b)を参照してRAM32の構成について説明する。図11(b)に示すように、RAM32は、英和辞典見出語テーブル316と、英和大辞典見出語テーブル318と、圧縮後英和辞典データ320と、圧縮後英和大辞典データ330とを格納している。
圧縮後英和辞典データ320は、第1実施形態における圧縮後英和辞典データ300と同様の構成である。圧縮後英和辞典データ320に含まれる圧縮後英和参照部322(共通参照部)においては、他の辞書データの参照部としても利用される。
圧縮後英和大辞典データ330は、CPU10が、元英和大辞典データ204を圧縮して作成した辞書データである。CPU10は、元英大主データ部220aについて第1主データ部符号化処理を実行する。
[2.1.2 動作]
次に、第2実施形態におけるコンピュータ1の動作について図を参照して説明する。図12は、第2圧縮処理に係るコンピュータ1の動作を説明するためのフローチャートである。この第2圧縮処理は、CPU10が、ハードディスク22の第2圧縮プログラム222を実行することによって実現される処理である。
CPU10は、元辞書データとして元英和辞典データ202bを選択し(ステップA10)、元英和主データ部202bに対して、第1主データ部符号化処理を実行する(ステップA12)。そして、CPU10は、第1主データ部符号化処理を実行した元辞書データのうちの主データ部(すなわち、元英和主データ部202b)を、符号化後英和主データ部324)として、RAM32に記憶する。
次に、CPU10は、まだ処理を実行していない元辞書データ(すなわち、元英和大辞典データ220)を選択する(ステップE14)。そして、ステップE14において選択された元辞書データ(元英大主データ部220a)に対して第1主データ部圧縮処理を実行する(ステップE16)。そして、同様にCPU10は、第1主データ部符号化処理を実行した元英大主データ部220aを、符号化後英大主データ部332としてRAM32に記憶する。
次にCPU10は、全ての元辞書データに対して第1主データ部符号化処理が実行されたか否かを判定する(ステップE18)。もし、全ての元辞書データに対して処理が実行されていない場合には(ステップE18;No)、CPU10は、次の元辞書データを選択し(ステップE20)、主データ部に対して第1主データ部符号化処理を実行する。もし、全ての元辞書データに対して第1主データ部符号化処理が実行されている場合には(ステップE18;Yes)、CPU10は、始めに選択した元辞書データの参照部の圧縮処理を実行し(ステップE22)、見出語テーブルを作成して(ステップE24)第2圧縮処理を終了する。
なお、本実施形態においては、共通の参照部として元英和辞典データ202の参照部を利用したが、これに限定される物ではなく、例えば元英和大辞典データ220を、参照部と主データ部に分け、元英和大辞典データ220の参照部を共通の参照部として利用しても良いことは勿論である。
第2実施形態における辞書圧縮装置(コンピュータ)によれば、複数の辞書データのうち、一の辞書データのみが参照部と主データ部とに分割され、この一の辞書データの主データ部及び他の辞書データは一の辞書データの参照部を参照して符号化すされる。従って、他の辞書データが参照部と主データ部とに区分されている必要がなく、他の辞書データ全体を比較的圧縮効率の高い圧縮方法で圧縮することができる。
[2.2 電子辞書装置]
[2.2.1 構成]
まず、第2実施形態における電子辞書装置の構成は、第1実施形態において図7に示して説明した電子辞書装置100の構成において、ROM120を図13(a)に示すROM122に、EEPROM140を図13(b)に示すEEPROM142に置き換えた構成と同様であり、以下、同一の構成要素には同一の符号を付してその説明を省略する。また、各フローチャートにおいて、第1実施形態のフローチャートと同一処理内容のステップについては同一の符号を付して、異なる部分を中心に説明する。
図13(a)を参照して、ROM122の構成について説明する。図13(a)に示すように、ROM122は、第1主データ部復号プログラム1204と、第2伸張プログラム1220とを記憶している。
第2伸張プログラム1220は、本実施形態における第2伸張処理を実現するためのプログラムであり、CPU110がこの第2伸張プログラム1220を実行することで、第2伸張処理が実現される。CPU110は、圧縮された共通参照部を伸張しておき、主データ部の見出語データを伸張する際に、圧縮された共通参照部を伸張し、伸張された共通参照部を利用することにより見出語及び説明情報を復号して表示する処理である。
また、図13(b)を参照してEEPROM142の構成について説明する。図13(b)に示すように、EEPROM142は、英和辞典見出語テーブル1416と、英和大辞典見出語テーブル1418と、圧縮後英和辞典データ1420と、圧縮後英和大辞典データ1430とを記憶している。
圧縮後英和辞典データ1420は、図11(b)の圧縮後英和辞典データ320と同一のデータである。また、圧縮後英和辞典データ1420の共通参照部(圧縮後英和参照部)1422においては、他の圧縮後辞書データの参照部としても利用される共通参照部として記憶されている。
圧縮後英和大辞典データ1430は、図11(b)の圧縮後英和大辞典データ330と同一のデータである。また、詳細は後述するが、図14を参照して概略を説明すると、第2実施形態においては、共通参照部1422がRAM130の参照部伸張領域1302に伸張されて、他の符号化後主データ部から利用される。
[2.2.2 動作]
次に、第2実施形態における電子辞書装置100の動作について図を参照して説明する。図15は、第2伸張処理に係る電子辞書装置100の動作を説明するためのフローチャートである。この第2伸張処理は、CPU110が、ROM122の第2伸張プログラム1220を実行することによって実現される処理である。
CPU110は、圧縮後辞書データの中から辞書データ(例えば、圧縮後英和辞典データ1420)を選択する(ステップC10)。次に、CPU110は、EEPROM142に記憶された共通参照部1422をRAM132の参照部伸張領域1302に伸張する(ステップF12)。
次に、CPU110は、ユーザにより文字が入力されると(ステップC14)、入力文字に対応する見出語を検索する(ステップC16)。そして、CPU110は、現在選択している辞書データと、共通参照部が記憶されている辞書データとが同一か否かを判定する(ステップF18)。共通参照部1422は、圧縮後英和辞典データ1420の共通参照部1422であるため、例えば選択した辞書データが圧縮後英和辞典データ1420であれば同一の辞書データと判定し、選択した辞書データが圧縮後英和大辞典データ1430であれば、異なる辞書データと判定する。
CPU110が、共通参照部と、選択した辞書データとが異なる辞書データであると判定した場合には(ステップF18;No)、第1主データ部伸張処理を実行する(ステップF20)。
そして、CPU110が、共通参照部と、選択した辞書データとが同一の辞書データであると判定した場合には(ステップF18;Yes)、入力文字に対応する見出語が主データ部に含まれているか否かを判定し、含まれていると判定した場合には(ステップF22;Yes)、第1主データ部伸張処理を実行する(ステップF26)。また、CPU110が、対応する見出語が主データ部に無いと判定した場合には(ステップF22;No)、参照部伸張領域1302に伸張された参照部の中から説明情報を抽出する(ステップF24)。
そして、見出語と、抽出された説明情報とを表示部160に表示し(ステップF28)、第2伸張処理を終了する。
例えば、CPU110が、入力文字に対応する見出語を検索し、検索した見出語が符号化後英和主データ部1424にあると判定した場合には、CPU110は、第1主データ部伸張処理を実行することにより、対応する見出語の見出語単位データを復号する。また、検索された見出語が、符号化後英和主データ部1424に無いと判定された場合には、CPU110は、参照部伸張領域1302に伸張された元英和参照部202aより、入力文字に対応する見出語に対応する見出語単位データを抽出して、表示部160に表示する。
このように、第2実施形態における電子辞書装置によれば、複数の辞書データのうち、一の辞書データのみが参照部と主データ部とに区分され、この一の辞書データの主データ部及び他の辞書データが一の辞書データの参照部を参照して符号化されている場合であっても問題なく他の辞書データを復号できる。従って、比較的圧縮効率の高い圧縮方法が他の辞書データ全体に適用されているため、電子辞書装置における複数の辞書データの格納領域を削減できる。
〔第3実施形態〕
次に、本発明を適用した第3実施形態について説明する。本実施形態は、参照部を見出語単位データごとに別個独立に圧縮することで、伸張の際に圧縮された参照部のうち、必要のある部分のみを伸張するというものである。
[3.1 辞書データ圧縮装置]
[3.1.1 構成]
まず、第3実施形態におけるコンピュータの構成は、第1実施形態において図2に示して説明したコンピュータ1の構成において、ハードディスク20を図16(a)に示すハードディスク24に、RAM30を図16(b)に示すRAM34に置き換えた構成と同様であり、以下、同一の構成要素には同一の符号を付してその説明を省略する。また、各フローチャートにおいて、第1実施形態のフローチャートと同一処理内容のステップについては同一の符号を付して、異なる部分を中心に説明する。
図16(a)を参照してハードディスク24の構成について説明する。図16(a)に示すように、ハードディスク24は、元英和辞典データ202と、元英和大辞典データ204と、第1主データ部符号化プログラム208と、第3圧縮プログラム240とを記憶している。
第3圧縮プログラム240は、本実施形態における第3圧縮処理を実現するためのプログラムであり、CPU10がこの第3圧縮プログラム240を実行することで、第3圧縮処理が実現される。第3圧縮処理の詳細については後述するが、簡単に説明する。第3圧縮処理は、主データ部については第1実施形態と同様の第1主データ部符号化処理を行うが、参照部については見出語単位データ毎に圧縮を行う。そして、参照部の見出語単位データそれぞれについて、圧縮前の元辞書データ中の開始位置(開始バイト)と、圧縮後の辞書データ中の開始位置(開始バイト)とを対応づけて、参照部に含まれる見出語順に見出語対応テーブルに登録・記憶しておく、というものである。
また、図16(b)を参照してRAM34の構成について説明する。図16(b)に示すように、RAM34は、英和辞典見出語テーブル316と、英和大辞典見出語テーブル318と、圧縮後英和辞典データ340と、圧縮後英和大辞典データ350と、英和辞典見出語対応テーブル356と、英和大辞典見出語対応テーブル358とを記憶している。
圧縮後英和辞典データ340は、圧縮後英和参照部342と、符号化後英和主データ部344とに区分して構成されている。圧縮後英和参照部342は、CPU10が、元英和参照部202aを圧縮して作成した辞書データであり、見出語単位データで伸張可能となっている。また、符号化後英和主データ部344は、第1実施形態における符号化後英和主データ部304と同様である。
英和辞典見出語対応テーブル356は、元英和辞典データ202における元英和参照部202aにおける見出語の開始位置(開始バイト)と、圧縮後英和辞典データ340における圧縮後英和参照部342における見出語の開始位置(開始バイト)とを対応づけて、それぞれの参照部に含まれている順に記憶するテーブルである。
図17は、英和辞典見出語対応テーブル356についてのデータ構成の一例を示した図である。英和辞典見出語テーブル356は、例えば見出語「applet」に対応する元英和参照部位置「100」と、圧縮後英和参照部位置「80」とを対応づけて記憶している。
また、英和大辞典見出語対応テーブル358は、元英和大辞典データ204における元英大参照部204aにおける見出語の開始位置(開始バイト)と、圧縮後英和大辞典データ350における圧縮後英大参照部352における見出語の開始位置(開始バイト)とを対応づけて、それぞれの参照部に含まれている順に記憶するテーブルである。
[3.1.2] 動作
次に、第3実施形態におけるコンピュータ1の動作について図を参照して説明する。図18は、第3圧縮処理に係るコンピュータ1の動作を説明するためのフローチャートである。この第3圧縮処理は、CPU10が、ハードディスク24の第3圧縮プログラム240を実行することによって実現される処理である。
CPU10は、元辞書データを選択し(ステップG10)、見出語対応テーブルを決定する(ステップG12)。例えば、元英和辞典データ202を選択した場合には、見出語対応テーブルとして英和辞典見出語対応テーブル356が決定される。
次に、CPU10は、第1主データ部符号化処理を実行する(ステップG14)。次に、元辞書データの参照部の先頭から順番に見出語単位データを1つ選択し(ステップG16)、選択した見出語単位データについて圧縮する(ステップG18)。なお、CPU10は、圧縮した見出語単位データを、従前に圧縮済みの見出語単位データの最後に追記していく。すなわち、総ての見出語単位データを圧縮すると、圧縮後英和参照部350が形成されることとなる。
次に、CPU10は、圧縮前の元辞書データに含まれていた開始位置(開始バイト)と、圧縮後の辞書データの開始位置(開始バイト)とを対応づけて見出語対応テーブルの最後に追加記憶する(ステップG20)。例えば、見出語「applet」の見出語単位データについて、元英和参照部202aに含まれていた開始位置(開始バイト)「100」と、ステップG18における圧縮時に判明した開始位置(開始バイト)「80」とを対応づけて、英和辞典見出語対応テーブル356の最後に追加記憶する。
次に、CPU10は、元辞書データの参照部の見出語単位データ全てについて圧縮処理を行ったか否かを判定する(ステップG22)。そして、全ての見出語について圧縮処理が行われていない場合は(ステップG22;No)、次の見出語単位データを選択し(ステップG24)、圧縮処理を同様に実行する。また、全ての見出語について圧縮処理を実行した場合には(ステップG22;Yes)、見出語テーブルを作成し(ステップG25)、CPU10は、全ての元辞書データについてステップG14〜G25の処理を実行したか否かを判定する(ステップG26)。そして、まだ全ての元辞書データについて処理を実行していない場合には(ステップG26;No)、次の元辞書データと(ステップG28)、その元辞書データに対応する見出語対応テーブルとを選択して(ステップG28)、ステップG14〜G26の処理を実行する。
第3実施形態における辞書圧縮装置(コンピュータ)によれば、参照部が見出語単位データごとに圧縮された辞書データを生成することができる。また、見出語対応テーブルには、参照部の見出語単位データについて、圧縮前の参照部における開始位置と圧縮後の参照部における開始位置とが対応づけて記憶される。このため、参照部が圧縮されない場合に比べて辞書データ全体の圧縮効率を高めることができる。加えて、後述する電子辞書装置の通りに、主データ部の中のデータを検索する際であっても、参照部全体を伸張する必要が無くなる。
[3.2 電子辞書装置]
[3.2.1 構成]
まず、第3実施形態における電子辞書装置の構成は、第1実施形態において図7に示して説明した電子辞書装置100の構成において、ROM120を図19(a)に示すROM124に、EEPROM140を図19(b)に示すEEPROM144に置き換えた構成と同様であり、以下、同一の構成要素には同一の符号を付してその説明を省略する。また、各フローチャートにおいて第1実施形態のフローチャートと同一処理内容のステップについては同一の符号を付して、異なる部分を中心に説明する。
図19(a)を参照して、ROM124の構成について説明する。図19(a)に示すように、ROM124は、第3伸張プログラム1242と、第2主データ部復号プログラム1244とを記憶している。
第3伸張プログラム1242は、本実施形態における第3伸張処理を実現するためのプログラムであり、CPU110がこの第3伸張プログラム1242を実行することで、第3伸張処理が実現される。CPU110は、使用する辞書の種別を選択すると、対応する見出語対応テーブルを選択する。そして、入力文字に対応する見出語が圧縮辞書データの主データ部にあるか否かを判定し、主データ部にある場合には対応する見出語の見出語単位データについて第2主データ部復号処理を実行する。また、主データ部に無い場合には、圧縮後の参照部から、対応する見出語の見出語単位データだけを伸張し、説明情報を抽出する。
第2主データ部復号プログラム1244は、本実施形態における第2主データ部復号処理を実現するためのプログラムであり、CPU110がこの第2主データ部復号プログラム1244を実行することで、第2主データ部復号処理が実現される。CPU110は、圧縮コードがあると、復号する文字列と同一の文字列のある参照部中の位置及び語長を見出語単位データの符号から抽出する。そして、文字列が存在する位置に対応する見出語単位データを圧縮後の参照部から読み出して伸張し、抽出した位置及び語長に基づいて当該文字列を複写することで復号する。
また、図19(b)を参照してEEPROM144の構成について説明する。図19(b)に示すように、EEPROM144は、英和辞典見出語テーブル1416と、英和大辞典見出語テーブル1418と、圧縮後英和辞典データ1440と、圧縮後英和大辞典データ1450と、英和辞典見出語対応テーブル1456と、英和大辞典見出語対応テーブル1458とを記憶している。
英和辞典見出語対応テーブル1456は図16(b)における英和辞典見出語テーブル356と、英和大辞典見出語対応テーブル1444は図16(b)における英和大辞典見出語テーブル358と同一のものである。また、圧縮後英和辞典データ1440は図16(b)における圧縮後英和辞典データ340と、圧縮後英和大辞典データ1450は図16(b)における圧縮後英和大辞典データ350と同一のものである。
[3.2.2 処理]
次に、第3実施形態における電子辞書装置100の動作について図を参照して説明する。図20は、第3伸張処理に係る電子辞書装置100の動作を説明するためのフローチャートである。この第3伸張処理は、CPU110が、ROM124の第3伸張プログラム1242を実行することによって実現される処理である。
次に、CPU110は、文字が入力されると(ステップC14)、入力文字に対応する見出語を検索する(ステップC16)。そして、CPU110は、検索された見出語が主データ部(例えば、符号化後英和主データ部1444)に含まれているか否かを判定する(ステップC18)。そして、検索した見出語が主データ部に含まれている場合には(ステップC18;Yes)、第2主データ部復号処理を実行する(ステップH20)。また、検索した見出語が主データ部に含まれていない場合には(ステップC18;No)、対応する見出語データを伸張する(ステップH22)。例えば、CPU110は、英和辞典見出語対応テーブル1456から、圧縮後英和参照部1442における検索した見出語の見出語単位データの位置を検出する。そして、CPU110は、検出した圧縮後英和参照部1442における位置に存在する見出語単位データを伸張し、説明情報を抽出する(ステップH24)。
そして、見出語と、検出した説明情報とを表示部160に表示し(ステップH26)、第3伸張処理を終了する。
次に、第2主データ部復号処理について説明する。図21は、第2主データ部復号処理にかかる電子辞書装置100の動作を説明するためのフローチャートである。この第2主データ部復号処理は、CPU110が、ROM124の第2主データ部復号プログラム1244を実行することによって実現される処理である。
CPU110は、符号化後主データ部中の、入力文字に対応する見出語の開始位置からデータ(符号)を読み込む(ステップD8)。そして、CPU110は、読み込まれた符号に圧縮コードが含まれていると判定すると(ステップD10;Yes)、参照部に含まれている文字列の位置及び語長を検出する(ステップD12)。
次に、検出した文字列が含まれている見出語単位データを伸張する(ステップI14)。例えば、検出した文字の位置が「107」バイト目のとき、CPU110は、英和辞典見出語対応テーブル1456(図17)から、復号すべき文字列が含まれる見出語単位データを判定する。この場合、見出語「applet」は、元英和参照部202aにおいて「100」バイト目から記述されており、見出語「appliance」は、元英和参照部202aにおいて「140」バイト目から記述されている。従って、CPU110は、検出した文字列が見出語「applet」の見出語単位データ中に含まれていると判定できる。そこで、CPU110は、圧縮後英和参照部1442の「80」バイト目から伸張し、見出語「applet」の見出語単位データを参照部伸張領域1302に伸張する。
次に、CPU110は、検出した位置及び語長に基づいて復号する(ステップI16)。例えば、見出語「applet」の開始位置は「100」バイト目であり、復号すべき文字列は「107」バイト目に含まれている。従って、CPU110は、見出語単位データの先頭から「7」バイト目、語長「8」バイトの文字「[名詞]」を元の文字列として復号する。
そして、CPU110は、主データ部における全ての文字列について復号したか否かを判定し(ステップI18)、復号する文字列が残っている場合には(ステップI18;No)、次の文字列を検出し(ステップI20)、同じ処理を実行する。
このように、第3実施形態における電子辞書装置によれば、主データ部中の文字列を復号する場合、当該復号対象の文字列が参照している参照部中の一部分(より具体的には参照部中の見出語単位データ)を伸張し、伸張した文字列をもとにして当該文字列を復号する。また、参照部は見出語単位データごとに圧縮されているため、参照部中の見出語に対応する説明情報を読み出す場合には、当該見出語に対応する見出語単位データのみを伸張する。従って、電子辞書装置における参照部の伸張用の一時使用メモリ量を削減することができる。
〔第4実施形態〕
次に、本発明を適用した第4実施形態について説明する。本実施形態は、参照部を参照して主データ部を符号化する際に、参照先の文字列と完全に一致しなくとも、符号化を可能とするものである。
[4.1 辞書データ圧縮装置]
[4.1.1 構成]
まず、第4実施形態におけるコンピュータの構成は、第1実施形態において図2に示して説明したコンピュータ1の構成において、ハードディスク20を図22(a)に示すハードディスク26に置き換えた構成と同様であり、以下、同一の構成要素には同一の符号を付してその説明を省略する。また、各フローチャートにおいて、第1実施形態のフローチャートと同一処理内容のステップについては同一の符号を付して、異なる部分を中心に説明する。
図22を参照してハードディスク26の構成について説明する。図22に示すように、ハードディスク26は、元英和辞典データ202と、元英和大辞典データ204と、第1圧縮プログラム206と、第3主データ部符号化プログラム260とを記憶している。
第3主データ部符号化プログラム260は、本実施形態における第3主データ部符号化処理を実現するためのプログラムであり、CPU10がこの第3主データ部符号化プログラム260を実行することで、第3主データ部符号化処理が実現される。第3主データ部符号化処理において、CPU10は、主データ部の中から符号化対象の文字列を選択すると、パターン認識により、当該文字列に所定割合以上で一致する文字列を参照部から検索する。そして、CPU10は、パターン認識による一致率が100%の場合は第1実施形態と同様の符号化を行い、一致率が70%以上の場合は編集コードを用いた符号化を行う。
[4.1.2 処理]
次に、第4実施形態におけるコンピュータ1の動作について図を参照して説明する。
図23は、第3主データ部符号化処理に係るコンピュータ1の動作を説明するためのフローチャートである。この第3主データ部符号化処理は、ハードディスク26の第1圧縮プログラム206の実行中に呼び出される処理である。CPU10は、図4の第1圧縮処理におけるステップA12において、第1主データ部符号化処理に代えて、本実施形態の第3主データ部符号化処理を呼び出して実行する。
CPU10は、符号化前の主データ部から符号化対象の文字列を選択し、参照部の中から、所定割合以上一致する文字列をパターン認識で検索する(ステップJ12)。例えば、元英和主データ部202bを符号化している場合、元英和主データ部202bの中から符号化対象の文字列を選択し、パターン認識により選択した文字列と所定割合以上一致する文字列を元英和参照部202aから検索する。
そして、CPU10は、パターン認識による一致率が100%であった場合には(ステップJ14;Yes)、一致した文字列の参照部中の位置及び語長を検出し(ステップJ16)、符号化対象文字列を符号化する(ステップJ18)。
また、CPU10は、パターン認識の結果による一致率70%以上の場合には(ステップJ20;Yes)、参照部中の位置及び語長を検出するとともに(ステップJ22)、異なる部分の編集コードを生成し(ステップJ24)、符号化する。ここで、一致率を70%以上としたのは一例であり、これに限られる訳ではなく、例えば75%以上としたり、60%以上としても良いことは勿論である。
ステップJ22及びJ24について具体的に図24を用いて説明する。図24(a)は元英和辞典データ202のデータ構成の一例を示した図の一例である。元英和辞典データ202は、元英和参照部202aと、元英和主データ部202bとに区分されている。
まず、図24(b)の上段「元」と書かれている行は、元英和辞典データ202に記述されている状態を示している図である。見出語「cache」は元英和参照部202aに、見出語「conceal」は元英和主データ部202bに記述されている。
今、CPU10は、元英和主データ部202bの説明情報「<物など>を隠す」に所定割合以上一致する文字列として元英和参照部202aの、見出語「cache」の説明情報中の「<物など>を隠し場に隠す」を検索したとする。図24(b)の「中間」と書かれている行は、符号化過程の中間データを表したものである。まず、元英和参照部202a中の文字列「<物など>を隠し場に隠す」を複写したものが中間データの1行目である。ここで、2重下線部「隠し場に」は元英和主データ部202bには含まれていない文字である。従って、CPU10は、「隠し場に」を削除する編集コードとして中間コード「$6文字前から4文字削除$」を生成する。ここで、「$」は編集コードであることを表す識別子である。そして、元英和主データ部202bの「$6文字前から4文字削除$」の最終的なコード(符号)が、最下段の「最終」と書かれた行である。ここでは、最初の2ビットで参照部を利用した圧縮であるか(例えば、「10」)、もしくは編集コードであるか(例えば、削除の編集コードを「11」)を識別ビットとして付加している。参照部を利用した符号化コードにおいては、識別ビットの2ビットの後、8ビットで位置を表し、6ビットで語長を表している。従って、本来「<物など>を隠す」と16バイトで表現されていた文字列が、「101010110001100011110100」と6バイトで表現出来ることとなる。
なお、本実施形態においては、編集コードをも符号化して表現したが、編集コードの表現方法は一例であり、これに限られるわけではないのは勿論である。また、例えば符号化コードに対し一意に識別可能なハフマン符号を割り当てることにより、可変長で表現することも可能である。
第4実施形態における辞書圧縮装置によれば、符号化対象の文字列に一致する文字列が参照部中に存在しない場合であっても、類似する(所定の割合以上一致する)文字列が存在すれば、位置、語長及び一致させるための編集コードを含む符号化コードで、当該符号化対象文字列を符号化することが可能となる。
[4.2 電子辞書装置]
[4.2.1 構成]
第4実施形態における電子辞書装置の構成は、第1実施形態において図7に示して説明した電子辞書装置100の構成において、ROM120を図25に示すROM126に置き換えた構成と同様であり、以下、同一の構成要素には同一の符号を付してその説明を省略する。また、各フローチャートにおいて、第1実施形態のフローチャートと同一処理内容のステップについては同一の符号を付して、異なる部分を中心に説明する。
図25を用いて、ROM126の構成について説明する。図25に示すように、ROM126は、第1伸張プログラム1202と、第3主データ部復号プログラム1260とを記憶している。
第3主データ部復号プログラム1260は、本実施形態における第3主データ部復号処理を実現するためのプログラムであり、CPU110がこの第3主データ部復号プログラム1260を実行することで、第3主データ部復号処理が実現される。第3主データ部復号処理においては、CPU110は、符号化された主データ部の中の符号を復号していくが、編集コードを発見すると、編集コードに基づいて直前に復号した文字列について編集処理を実行する。
[4.2.2 処理]
次に、第4実施形態における電子辞書装置100の動作について図を参照して説明する。図26は、第3主データ部復号処理に係る電子辞書装置100の動作を説明するためのフローチャートである。この第3主データ部復号処理は、ROM1260の第1伸張プログラム1202の実行中にサブルーチンとして呼び出される処理である。CPU110は、図9の第1伸張処理におけるステップC20において、第1主データ部復号処理に代えて、本実施形態の第3主データ部復号処理を呼び出して実行する。
CPU110は、符号化後主データ部中の、入力文字に対応する見出語の開始位置からデータ(符号)を読み込む(ステップD8)。CPU110は、圧縮コードがあることを判定すると、復号する文字列の位置及び語長を検出し、参照部伸張領域1302に伸張された元参照部から文字列を複写して復号する(ステップD10〜D14)。
次に、CPU110は、編集コードがあるか否かを判定する(ステップK16)。編集コードがあると判定した場合には(ステップK16;Yes)、直前に復号した文字列を編集コードに基づいて編集する(ステップK18)。そして、編集コードによる編集が終了すると(ステップK20;Yes)、CPU110は、主データ部における総ての文字列について復号したか否かを判定し(ステップK22)、復号する文字列が残っている場合には(ステップK22;No)、次の文字列を検出し(ステップK24)、同じ処理を実行する。
ここで、編集コードを用いた復号処理は、図24(b)を参照して説明した符号化処理を、逆の手順に実行することによって実現される処理である。図24(b)を用いて具体的に説明すると、まず、符号「1010101100011000」は、「<物など>を隠し場に隠す」と復号される。続いてCPU110は、符号「11110100」を検出する。すると、最初の2ビットが「11」となっていることから、削除する編集コードであると判定する。次にCPU110は、3ビット「110」の10進数「6」と、その後の3ビット「100」の10進数「4」とから、6文字前「隠」から4文字分「隠し場に」を削除する。
このように、第4実施形態における電子辞書装置によれば、主データ部の復号の際に、符号に編集コードが含まれている場合には、当該編集コードに従った編集を行いつつ復号を行う。このため、参照部中の文字列に一致する文字列のみならず、類似する(所定割合以上一致する)文字列により符号化された主データ部であっても問題なく復号することができ、圧縮効率の高い辞書データを格納することによるメモリ容量の削減を実現できる。
また、第4実施形態は、第1実施形態に基づいて説明したが、これに限られるものではなく、上述した第2実施形態及び第3実施形態に対しても適用可能なことは勿論である。
[5.本発明を内蔵可能な変形例]
上述した実施形態では、電子辞典、電子事典などを含む電子辞書装置について単体で使用するものとして説明したが、本発明の電子辞書装置は、このような製品に限定されるものではなく、例えば携帯電話やPDA(Personal Digital Assistants)、パソコン等に電子辞書装置を内蔵することも可能である。