JP3888701B2 - 文字変換装置 - Google Patents
文字変換装置 Download PDFInfo
- Publication number
- JP3888701B2 JP3888701B2 JP32623694A JP32623694A JP3888701B2 JP 3888701 B2 JP3888701 B2 JP 3888701B2 JP 32623694 A JP32623694 A JP 32623694A JP 32623694 A JP32623694 A JP 32623694A JP 3888701 B2 JP3888701 B2 JP 3888701B2
- Authority
- JP
- Japan
- Prior art keywords
- word
- kanji
- character
- reading
- dictionary
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Description
【産業上の利用分野】
この発明は、例えば日本語ワードプロセッサなどに用いられる文字変換装置に関し、漢字と仮名が混在した文字列を正規の漢字仮名交じり文に変換したり、正規の漢字仮名交じり文を仮名文字列に変換することが可能な文字変換装置に関する。
【0002】
【従来の技術】
従来、手書き入力の可能なペン入力装置などにより、漢字文字列を直接入力するという技術が知られている。しかしながら、直接漢字を入力する際にも漢字を忘れてしまって思い出せない時や、書くのに面倒な漢字があり、その文字は仮名で書きたいという場合がある。また、手書き入力の可能なペン入力装置で仮名を入力し、仮名漢字変換によって漢字に変換する技術も知られているが、この場合も簡単な漢字は平仮名で書くよりも入力しやすいとか、仮名の文字によっては認識されにくいので漢字に書きたいという場合がある。例えば「片りん」と入力して「片鱗」と変換したいというものである。このように漢字仮名交じりの文字列を入力して適切な漢字文字列に変換する方法として、主として次の2つの方法が知られている。
【0003】
第1の方法は、特開昭62−209667号公報に記載されているように、漢字仮名交じりの見出しとそれに対応する漢字の表記の辞書を持つことによって、漢字仮名交じり文の仮名漢字変換を行うというものである。例えば「片りん」の場合は「片りん」という見出しとそれに対応する漢字の表記「片鱗」が入っている辞書を持つという方法である。
【0004】
第2の方法は、特開昭63−037465号公報に記載されているように、漢字を仮名に直す辞書を持つことにより、入力された文字列の漢字をいったん仮名に直し、その直された仮名文字列に対して通常の仮名漢字変換を行なうというものである。例えば「片りん」の場合は「片」を仮名の「へん、かた」に直し、「へんりん、かたりん」を仮名漢字変換し、入力文字列と一致する「片鱗」を候補とする方法である。
【0005】
【発明が解決しようとする課題】
しかしながら、上記第1の方法では、任意の漢字と仮名の交ぜ書きによる変換を実現しようとすると、すべての組み合わせを辞書に持たなければならない。例えば「会議」という単語に対しては、図9に示すように4(2の2乗)通りの見出しを必要とする。
【0006】
また、「小学校」のように漢字が3文字ある場合は、図10に示すように8(2の3乗)通りの見出しを必要とする。このため辞書の容量が非常に大きくなるという問題と、見出しが多くなるため辞書検索にかかる時間も多くなるという問題がある。
【0007】
また、交ぜ書きを制限する事によって見出しの数を減らすことはできるが、人によって書きやすい字(認識も含めて)が異なり、どの字を漢字で書くか分からないので、交ぜ書きに制限を加えることは自由度をなくすこととなり、使い勝手が悪化する。
【0008】
また、上記第2の方法では、入力された文字列が漢字を含む場合、漢字それぞれを読みに直し、それらを組み合わせて読みの候補を作り、仮名漢字変換を行なうのであるが、仮名漢字変換の処理はボリュームが大きく、比較的時間を要するので、組み合わせの候補が多い場合には処理時間の増大という問題が起こる。
【0009】
この発明は、このような事情を考慮してなされたもので、辞書本体に単語を登録するに際しては、従来のような見出しと表記の区別をなくし、単語内の漢字にそれぞれ読みを対応させたデータを登録し、その辞書を検索するための読みのインデックスと漢字のインデックスを持つことにより、辞書検索時間の短縮を図るとともに、辞書容量の削減を図るようにした文字変換装置を提供するものである。
【0010】
【課題を解決するための手段】
図1はこの発明の構成を示すブロック図であり、この図に示すように、この発明は、漢字と仮名の混在した文字列を入力する入力手段2と、単語内の漢字にそれぞれ読みを対応させたデータからなる単語候補が登録された辞書本体、単語の先頭漢字の読みと、先頭漢字の読みを同じにする単語群の辞書本体上の記憶位置とを対応づけて記憶した読みインデックス、および単語の先頭漢字と、先頭漢字を同じにする単語群の辞書本体上の記憶位置とを対応づけて記憶した先頭漢字インデックスを含む単語辞書1と、前記入力手段2から入力された文字列の先頭文字種を判断し、先頭文字が仮名の場合には前記読みインデックスから辞書本体を参照して前記単語候補を検索する一方、先頭文字が漢字の場合には前記先頭漢字インデックスから辞書本体を参照して前記単語候補を検索し、前記何れか一方のインデックスで検索された前記単語候補と入力手段2から入力された文字列とを、入力文字列の漢字部分は前記単語候補の漢字で、入力文字列の仮名部分は前記単語候補の読みで照合し、入力文字列の漢字部分および仮名部分が共に一致する前記単語候補を漢字表記で出力する変換手段3と、変換手段3によって変換された漢字候補を出力する出力手段4を備えたことを特徴とする文字変換装置である。
【0011】
上記構成においては、単語辞書1に、読みと表記とが対応づけられたデータを記憶した読み/表記テーブルを設け、単語辞書1の辞書本体を、読み/表記テーブルのアドレスを指定するためのポインタで構成することが好ましい。
【0012】
また、単語辞書1の辞書本体への登録において、カタカナ語を登録する場合には、カタカナ語であるという識別マークと読みだけを登録するのが望ましい。
さらに、単語辞書1の辞書本体への登録において、読みの割り振りのできない単語を登録する場合には、読みの割り振りのできる単位で漢字と読みを対応づけして単語を登録するようにしたほうがよい。
【0013】
そして、単語辞書1の辞書本体に登録する単語は、表記の1文字目に対応する読みの順に配置するのがよい。
【0014】
この発明においては、単語辞書1の辞書本体に、見出しと表記の区別をなくし、単語内の各漢字について、漢字と読みの対応したデータを持つようにする。例えば「会議」という単語であれば、「会(かい)議(ぎ)」あるいは、「かい(会)ぎ(議)」、というようなデータを登録するようにする。このようにすることにより、組み合わせをすべて登録する必要がなく、自由な交ぜ書きが実現できる。
【0015】
ただし、この場合、辞書検索が問題となるので、漢字と仮名の混在した文字列の読みから辞書本体を検索するための読みインデックスと、漢字と仮名の混在した文字列の先頭の文字が漢字であった場合にその先頭の漢字から辞書本体を検索するための先頭漢字インデックスとを設ける。
【0016】
また、辞書本体には、単語内の漢字にそれぞれ読みを対応させたデータを登録するのであるが、さらに読みと漢字のデータを読み/表記テーブルというテーブルにし、辞書本体はそのテーブルへのポインタとする。これにより同じデータを効率良くまとめることができ、辞書容量のより一層の削減が可能となる。
【0017】
さらに、漢字からの検索速度を向上させるため、辞書本体の単語の配置順を単純な読みの五十音順(JISコード順)にせず、単語の第1文字目の漢字に着目し、第1文字目の漢字の読みが五十音順となるように配置する。そして、第1文字目の漢字が同じであれば、第2文字目以降の読みが五十音順となるように順次配置し、漢字の組み合わせが近くなるようにする。なお、第1文字目の漢字が同じ読みで表記が異なる漢字の単語については、単語の読み全体が五十音順となるように配置する。
【0018】
例えば、「子牛」、「公私」、「子馬」という単語があるとすると、従来のように単なる単語の読み順であれば、「子牛(こうし)」、「公私(こうし)」、「子馬(こうま)」という配置であるが(同音の漢字はJISコード順に配置)、この発明の辞書本体では、「子(こ)牛(うし)」、「子(こ)馬(うま)」、「公(こう)私(し)」の順に配置する。
【0019】
そして、単語がカタカナだけの場合、表記と読みをそれぞれ持たなくても対応が取れるので、辞書データとしてカタカナ語であるという識別マークを持ち、読みだけを登録するようにすることにより、辞書容量の削減を図る。
【0020】
また、読みの振り分けのできないような単語に対しては、無理に読みの割り振りをせず、漢字と読みが対応する単位でデータを持つようにする。例えば「梅雨」であれば、「梅雨(つゆ)」というデータにし、「烏龍茶」であれば「烏龍(うーろん)茶(ちゃ)」というデータにする。このような構造にすることにより、「つ雨」→「梅雨」のような不自然な交ぜ書きの変換を許さず、「うーろん茶」→「烏龍茶」のような変換は可能とすることができ、これにより、誤変換を少なくする。
【0021】
この発明において、単語辞書1としては、ROMのような内部メモリや、フロッピーディスク装置や磁気ディスク装置のような外部メモリを用いることができる。
【0022】
入力手段2としては、キーボードや手書き入力が可能なペン入力装置などの各種の入力装置を用いることができる。
変換手段3としては、CPU,ROM,RAM,I/Oポートからなるマイクロコンピュータを用いるのが便利である。
【0023】
出力手段4としては、CRTディスプレイ装置や液晶ディスプレイ装置のような各種の表示装置や、熱転写型のドットプリンタやレーザープリンタのような各種の印刷装置を用いることができる。
【0024】
【作用】
この発明によれば、単語辞書1が、単語内の漢字にそれぞれ読みを対応させたデータが登録された辞書本体と、読みインデックスと、先頭漢字インデックスから構成されているので、漢字仮名交じり文字列の組み合わせをすべて辞書本体に登録する必要がなくなり、辞書容量を削減できる。また、漢字と仮名の自由な交ぜ書きが可能となる。
【0025】
また、単語辞書1に読み/表記テーブルを設けて、単語辞書1の辞書本体を読み/表記テーブルのアドレスを指定するためのポインタで構成した場合には、同じデータを効率良くまとめることができるので、辞書容量をさらに削減することができる。
【0026】
さらに、単語辞書1の辞書本体への登録において、カタカナ語を登録する場合に、カタカナ語であるという識別マークと読みだけを登録するようにした場合には、辞書容量をより一層削減することができる。
【0027】
そして、単語辞書1の辞書本体への登録において、読みの割り振りのできない単語を登録するに際し、読みの割り振りのできる単位で漢字と読みを対応づけして単語を登録するようにした場合には、不自然な交ぜ書きの変換ができないので、誤変換を少なくすることができる。
【0028】
また、単語辞書1の辞書本体に登録する単語を、表記の1文字目に対応する読みの順に配置した場合には、漢字の組み合わせが近くなるので、漢字から辞書本体を検索する場合の検索速度を向上させることができる。
【0029】
【実施例】
以下、図面に示す実施例に基づいてこの発明を詳述する。なお、これによってこの発明が限定されるものではない。
【0030】
この実施例においては、主として、漢字と仮名が混在した文字列を正規の漢字仮名交じり文に変換する文字変換機能について説明するが、このような文字変換機能を達成するに必要な装置群を、ここでは文字変換装置として説明する。なお、この文字変換装置では、正規の漢字仮名交じり文を仮名文字列に変換することも可能である。
【0031】
図2はこの発明による文字変換装置を日本語ワードプロセッサに適用した一実施例の構成を示すブロック図である。
この図において、1は装置全体を制御するCPUである。2はCPU1を制御する制御プログラムを記憶したプログラム用ROMである。3は辞書用ROMであり、この辞書用ROM3には、読みと表記とが対応づけられて記憶された単語辞書や、仮名漢字変換や漢字仮名変換の際に必要な文法テーブル、あるいは用例辞書が格納されている。文法テーブルは、付属語テーブルや接続テーブル、品詞テーブルなどから構成されている。用例辞書は、文章の用例を記憶したものであり、変換率を上げるために仮名漢字変換の際に使用される。
【0032】
4は各種データを一時的に記憶するRAMである。このRAM4には、入力文字列を記憶したり、辞書検索の結果や、変換結果などを記憶する。
5はタブレットであり、透明なパネルで構成され、ペンなどにより手書きされた文字を座標データとして検出する座標検出機能を有している。このタブレット5から、手書き入力で漢字と仮名の混在した文字列を入力することが可能である。
【0033】
6はLCD(液晶表示装置)であり、文章作成、編集画面や文字入力結果などを表示する。7はコントローラーであり、タブレット5及びLCD6を制御する。タブレット5とコントローラ7から入力手段が構成され、LCD6とコントローラー7から出力手段が構成される。
【0034】
CPU1は、タブレット5から漢字と仮名の混在した文字列が入力された場合には、辞書用ROM3の単語辞書を検索し、検索結果として単語番号を得る。そして、検索された単語を用いて、タブレット5から入力された漢字と仮名の混在した文字列を正規の漢字仮名交じり文に変換する。
【0035】
図3,図4,図5及び図6は辞書用ROM3に記憶された単語辞書の構造を示す説明図である。図3は読みインデックスを示し、図4は先頭漢字インデックスを示し、図5は辞書本体を示し、図6は読み/表記テーブルを示している。
【0036】
単語辞書は、単語内の漢字にそれぞれ読みを対応させたデータが登録された辞書本体と、漢字と仮名の混在した文字列の読みから辞書本体を検索するための読みインデックスと、漢字と仮名の混在した文字列の先頭の文字が漢字であった場合にその先頭の漢字から辞書本体を検索するための先頭漢字インデックスから構成されている。
【0037】
この単語辞書には、読みと表記とが対応づけられたデータを記憶した読み/表記テーブルが設けられており、辞書本体は、読み/表記テーブルのアドレスを指定するためのポインタで構成されている。なお、これらの図は説明の便宜上単語登録数を少なくして示している。
【0038】
読みインデックスは、図3に示すように、1次インデックスと2次インデックスの2段階の構造になっている。1段階目の1次インデックスは、平仮名1文字に1体1に対応しており、2段階目の2次インデックスへのポインタとなっている。2次インデックスは、単語の読み2文字目と対応しており、辞書本体へのポインタになっている。
【0039】
2次インデックス中に書き込まれた「X」は、単語の漢字1文字目の読みが1文字であることを示している。例えば、1次インデックスが「こ」であり、2次インデックスが「X」である場合は、「子(こ)」や、「子(こ)牛(うし)」のように、漢字1文字目の読みが1文字である単語の集まりの先頭を示している。
【0040】
また、1次インデックスが「こ」であり、2次インデックスが「う」である場合は、「公(こう)私(し)」のように、漢字1文字目の読みが2文字以上の単語の集まりの先頭を示している。この読みインデックスは、検索文字列の先頭が仮名の場合に使用する。
【0041】
先頭漢字インデックスには、図4の左端に示された漢字で始まる単語の単語番号が格納されている。例えば、先頭漢字インデックスが「子」の場合、「子(こ)」の単語番号のnum(ナンバー)21、「子(こ)牛(うし)」の単語番号のnum22、「子(こ)馬(うま)」の単語番号のnum23、「子(し)」の単語番号のnum41などの単語番号が格納されている。先頭漢字インデックスは、JISコード順に並べられている。この先頭漢字インデックスは、検索文字列の先頭が漢字の場合に使用する。
【0042】
読み/表記テーブルは、読みと表記の組み合わせが格納されたテーブルであり、基本的には漢字1文字とそれに対応する読みからなっているが、「梅雨(つゆ)」のように、漢字1文字単位で読みが振り分けられないものは複数の漢字で格納されている。テーブルの並びとしてはJISのコード順に並んでいる。また、通常は1つの漢字に対して読みが複数存在するが、この場合は読みの順に配置している。
【0043】
辞書本体には、単語が記憶されているが、図5に示すように、読み/表記テーブルのアドレスを示すポインタの集合となっている。例えば、単語番号num22の「子(こ)牛(うし)」の場合、「adr(アドレス)051,adr021」となっている。また「梅雨(つゆ)入(い)り」のように、送り仮名や表記が漢字でなく仮名の場合は、読み/表記テーブルへのポインタでなく、そのままの表記(読みも兼ねる)を記憶している。この場合は、「adr102,adr091,り」のようなエントリーになる。
【0044】
また、この辞書本体は、基本的には読みの五十音順(あいうえお順)で単語を配置しているが、部分的に漢字1文字目の読みの順に並び換えている。例えば「子(こ)牛(うし)」、「公(こう)私(し)」、「子(こ)馬(うま)」の場合、読みの五十音順という順序であれば、「子牛」、「公私」、「子馬」の順に配置するのであるが、一文字目の漢字の読みがそれぞれ「こ」、「こう」、「こ」であるので、「公私」と「子馬」を入れ替えて、「子(こ)牛(うし)」、「子(こ)馬(うま)」、「公(こう)私(し)」の順に配置している。こうすることによって、1文字目の漢字が近くなり、検索文字列の先頭が漢字の場合に検索速度が向上する。
【0045】
また、単語番号num62に示すように、カタカナ語は、「@ばいたりてぃ」として、カタカナ語を表す@マークとその読みだけのエントリーにする。このような構造にすることにより、読みと表記とを1対1で持つ「バ(ば)イ(い)タ(た)リ(り)テ(て)ィ(ぃ)」という構造にするよりも容量を小さくできる。
【0046】
以下、CPU1による辞書検索処理の内容を図7及び図8に示すフローチャートに従い説明する。
【0047】
図7は辞書検索の処理手順を示すフローチャートである。
まず、ステップ101は、入力文字列の先頭から1文字ずつ文字を取り出す処理である。ステップ102は、ステップ101で取り出した文字が仮名かどうかを判断する処理である。仮名の場合、ステップ103に処理を移し、仮名でない場合、ステップ104に処理を移す。
【0048】
次に、ステップ103は、検索文字列の先頭が仮名である場合の処理であり、読みインデックスを検索する。検索した結果、辞書本体へのポインタがある場合は、検索開始ポインタと検索終了ポインタ(読みインデックスの2段階目の次の読みのデータ)をセットのデータとしてバッファ(RAM4)に蓄える。
【0049】
ステップ104は、検索文字列の先頭が漢字である場合の処理であり、先頭漢字インデックスを検索する。検索した結果、単語番号がある場合は、単語番号をデータとしてバッファ(RAM4)に蓄える。
【0050】
ステップ105は、ステップ103及びステップ104で検索した候補データ(ポインタ、または、単語番号)があるかどうかを判断する処理である。ここで、候補データが複数ある場合、1つずつステップ106で辞書本体を検索し、データが無くなるまでステップ106とのループを続ける。
【0051】
ステップ106は、辞書本体を検索する処理である。ステップ105で判断されたデータがポインタの場合は検索開始ポインタと検索終了ポインタの範囲を検索する。検索した結果マッチする単語があれば、バッファ(RAM4)に蓄える。ステップ105で判断されたデータが単語番号である場合、辞書本体を見てマッチすればバッファ(RAM4)に蓄える。
【0052】
ステップ107は、ステップ101で取り出した文字の次の文字があるかどうかを判断する処理である。次の文字がある場合は、ステップ101に処理を戻し、文字がない場合は、辞書検索処理を終了する。
【0053】
図8は図7のステップ103における読みインデックス検索の詳細な処理手順(サブルーチン)を示すフローチャートである。
読みインデックスの検索においては、読み1次インデックスを検索し(ステップ201)、検索した結果、辞書本体へのポインタがある場合は(ステップ202)、次の文字が平仮名か否かを調べる(ステップ203)。
【0054】
ここで、次の文字が平仮名であれば、読み2次インデックスの該当する仮名部を検索し(ステップ204)、読み2次インデックスの「X」部を検索する(ステップ205)。ステップ203で、次の文字が平仮名でなければ、読み2次インデックスの「X」部を検索する(ステップ205)。なお、ステップ202で辞書本体へのポインタがない場合は、辞書本体への検索は行わない。
【0055】
このような辞書検索処理の内容について、実際の入力文字列を例に挙げて説明する。以下、「こ牛」,「子うし」,「こうし」と、それぞれ入力された場合を例に挙げて説明する。
【0056】
まず、入力文字列として「こ牛」が入力された場合について説明する。
図7において、ステップ101で1文字目が取り出される。この場合は「こ」が取り出される。
【0057】
ステップ102では、ステップ101で取り出された文字が仮名であるかどうかが判断される。この場合仮名であるので、ステップ103に処理を移す。
ステップ103で読みインデックスを検索する。取り出した文字が「こ」で次の文字が漢字の「牛」であるので、1文字目の漢字の読みが「こ」になる。そこで、読みインデックスの2段階目(2次インデックス)の「X」を検索すると「ptr(ポインタ)21」となっていることが分かる。次のポインタが「ptr22」であるので、読みインデックスの検索結果として「(ptr21,ptr22)」というデータを格納する。このデータは「(検索開始ポインタ,検索終了ポインタ)」の順とする。
【0058】
すなわち、このステップ103を図8のサブルーチンで説明すると、ステップ201で、読み1次インデックスを検索する。今は取り出した文字が「こ」であるので、読み1次インデックスの「こ」の部分を検索する。
【0059】
ステップ202では、ステップ201で検索したところに読み2次インデックスへのポインタがあるかどうかを判断する。いま、2次インデックスへのポインタがあるので、ステップ203に処理を進める。なお、取り出した文字が「ぁ」の場合は、2次インデックスへのポインタはない。
【0060】
ステップ203で、次の文字が平仮名かどうかを判断する。いま、取り出した文字が「こ」であり、次の文字は「牛」であり、平仮名でないのでステップ205に処理を進める。
【0061】
ステップ205で、1次インデックスの「こ」が指すポインタの2次インデックス「X」の部分を検索する。検索すると「ptr21」となっていることが分かる。次のポインタが「ptr22」であるので、読みインデックスの検索結果として「(ptr21,ptr22)」というデータが得られる。
【0062】
図7に戻り、ステップ105で検索候補データがあるかどうかが判断される。この場合あるので、ステップ106に処理を移す。
ステップ106で辞書本体を検索する。まず、先頭であるptr21のデータとのマッチングを取る。このデータはadr051となっているので、読み/表記テーブルを見て、「子(こ)」という表記1文字の漢字ということが分かる。いま、検索文字列は「こ牛」であるが、それを分割する単語の候補として「こ」がマッチするので、num21をバッファに保存する。
【0063】
次のデータを見ると「adr051,adr021」となっているので、読み/表記テーブルから「子(こ)牛(うし)」という単語ということが分かり、入力文字列とマッチするので、num22もバッファに保存する。
【0064】
次のデータは「adr051,adr121」で「子(こ)馬(うま)」という単語と分かる。この場合、入力文字列とマッチしないのでバッファには保存しない。このようにして、検索終了位置のptr22の単語までマッチングを取る。この場合は、上記のほかにマッチするものがなかったとする。
【0065】
ステップ105に処理を戻して、検索候補データが他にあるかをチェックする。この場合、検索候補データは1つであり、すでに検索を終えているので、ステップ107に処理を移す。
【0066】
ステップ107で、ステップ101で取り出した文字の次の文字があるかどうかが判断される。この場合、「こ」の次の文字「牛」が有るので、ステップ101に処理を移す。
【0067】
ステップ101で「牛」が取り出される。
ステップ102で、仮名でないと判断され、ステップ104に処理を移す。
ステップ104で、先頭漢字インデックスが検索される。この場合、説明の便宜上、単語の候補がnum11しかないものとする。単語の候補が複数ある場合は後ほど説明する。これにより、先頭漢字インデックスの検索結果として「num11」というデータが格納される。
【0068】
ステップ105で検索候補データが有るかどうかが判断される。この場合有るので、ステップ106に処理を移す。
【0069】
ステップ106で辞書本体を検索する。この場合、候補データが単語番号であるので、その単語番号が文字列とマッチするか否かを調べる。辞書本体の検索の結果、num11は「adr021」であるので、読み/表記インデックスのadr021を見ると、「牛(うし)」ということが分かる。いま、注目している検索文字列は「牛」であるのでマッチし、num11をバッファに保存する。
【0070】
ステップ105に処理を戻し、検索候補データが残っているかをチェックする。この場合、検索候補データはもう残っていないので、ステップ107に処理を移す。
【0071】
ステップ107では、ステップ101で取り出した文字の次の文字があるかどうかが判断される。この場合、「牛」の次の文字はないので処理を終了する。
【0072】
結果として、文字検索位置「こ」から「num21,num22」の単語がマッチし、文字検索位置「牛」から「num11」の単語がマッチしたことになる。
【0073】
この結果をもとに仮名漢字変換の処理が行われる。仮名漢字変換は、単語番号、品詞などの文法情報や、各種の文法規則をもとに変換処理を行うが、この処理は通常の仮名漢字変換の処理でよい。この場合は、入力文字列は単語1個だけの文節と判断されて、「子牛」と変換され、LCD6によって表示される。
【0074】
次に、入力文字列として「子うし」が入力された場合について説明する。
図7において、ステップ101で1文字目が取り出される。この場合は「子」が取り出される。
【0075】
ステップ102では、ステップ101で取り出された文字が仮名であるかどうかが判断される。この場合、漢字であるので、ステップ104に処理を移す。
ステップ104で先頭漢字インデックスを検索する。この検索の結果、「num21,num22,num23,num41」が候補データとしてバッファに保存される。
【0076】
ステップ105で検索候補データがあるかどうか判断される。この場合、検索候補データがあるので、「num21」に注目して、ステップ106に処理を移す。
【0077】
ステップ106で辞書本体を検索する。この場合、候補データが単語番号num21であるので、辞書本体のnum21に記憶されたデータ「adr51」から、「子(こ)」という単語であると分かる。いま、注目している文字列は「子うし」であり、それを分割する単語の候補として「子」がマッチするので、num21をバッファに保存する。
【0078】
ステップ105に処理を戻し、検索候補データが有るかどうかを判断する。この場合あるので、次に「num22」に注目して、ステップ106に処理を移す。
【0079】
ステップ106で辞書本体を検索する。num22のデータは「adr051,adr021」であるので、「子(こ)牛(うし)」という単語と分かる。注目文字列は「子うし」であり、マッチするので、num22をバッファに保存する。
【0080】
ステップ105に処理を戻し、検索候補データが有るかどうかを判断する。この場合有るので、次に「num23」に注目して、ステップ106に処理を移す。
【0081】
ステップ106で辞書本体を検索する。num23のデータは「adr051,adr121」であるので、「子(こ)馬(うま)」という単語と分かる。注目文字列は「子うし」であり、マッチしない。
【0082】
ステップ105に処理を戻し、検索候補データが有るかどうかを判断する。この場合有るので、次に「num41」に注目して、ステップ106に処理を移す。
【0083】
ステップ106で辞書本体を検索する。num41のデータは「adr052」であるので、「子(し)」という単語と分かる。注目文字列は「子うし」であり、それを分割する単語の候補として「子」がマッチするので、num41をバッファに保存する。
【0084】
ステップ105に処理を戻し、検索候補データが有るかどうかを判断する。この場合、検索候補データはもう残っていないので、ステップ107に処理を移す。
【0085】
ステップ107では、ステップ101で取り出した文字の次の文字があるかどうかが判断される。この場合「子」の次の文字「う」があるので、ステップ101に処理を移す。
【0086】
ステップ101で「う」が取り出される。
ステップ102で仮名であると判断され、ステップ103に処理を移す。
ステップ103で、読みインデックスを検索する。取り出した文字が「う」で次の文字が「し」であるので、1文字目の漢字の読みが「う」または「うし」である。そこで、1文字目の漢字の読みが「う」の候補として、読みインデックスの2段階目(2次インデックス)の「X」を検索すると、ポインタがないので、候補がないことが分かる。1文字目の漢字の読みが「うし」の候補として、読みインデックスの2段階目の「し」を検索すると、「ptr11」となっていることが分かる。次のポインタが「ptr12」であるので、読みインデックスの検索結果として「(ptr11,ptr12)」というデータを格納する。
【0087】
すなわち、このステップ103を図8のサブルーチンで説明すると、ステップ201で、読み1次インデックスを検索する。今は取り出した文字が「う」であるので、読み1次インデックスの「う」の部分を検索する。
【0088】
ステップ202では、ステップ201で検索したところに読み2次インデックスへのポインタがあると判断され、ステップ203に処理を進める。
ステップ203で、次の文字が平仮名か否かを判断する。この場合、次の文字は「し」であるので、ステップ204に処理を進める。
【0089】
ステップ204で、読み1次インデックスの「う」が指すポインタの2次インデックスの「し」が含まれる部分を検索する。検索すると「ptr11」であるので、「(ptr11,ptr12)」というデータを得る。
【0090】
ステップ205で、読み1次インデックスの「う」が指すポインタの2次インデックスの「X」の部分を検索する。検索すると候補がないことが分かる。
よって、読みインデックスの検索結果として「(ptr11,ptr12)」というデータが得られる。
【0091】
図7に戻り、ステップ105で検索候補データが有るかどうかが判断される。この場合有るので、ステップ106に処理を移す。
ステップ106で辞書本体を検索する。まず、先頭であるptr11のデータとのマッチングを取る。このデータは「adr021」であり、「牛(うし)」という単語と分かる。いま、検索文字列は「うし」であり、マッチするので、num11をバッファに保存する。次のデータが検索終了位置のptr12であるので、検索を終える。
【0092】
ステップ105に処理を戻し、検索候補データが残っているかどうかをチェックする。この場合、検索候補データはもう残っていないので、ステップ107に処理を移す。
【0093】
ステップ107では、ステップ101で取り出した文字の次の文字が有るかどうかが判断される。この場合「う」の次の文字「し」が有るので、ステップ101に処理を移す。
【0094】
ステップ101で「し」が取り出される。
ステップ102で仮名であると判断され、ステップ103に処理を移す。
ステップ103で、読みインデックスを検索する。取り出した文字が「し」であり、次の文字がないので、1文字目の漢字の読みが「し」になる。そこで、読みインデックスの1段階目(1次インデックス)の「し」から、2段階目(2次インデックス)の「X」を検索すると、「ptr31」となっていることが分かる。次のポインタが「ptr32」であるので、読みインデックスの検索結果として「(ptr31,ptr32)」というデータを格納する。
【0095】
すなわち、このステップ103を図8のサブルーチンで説明すると、ステップ201で、読み1次インデックスの「し」を検索する。
ステップ202では、ポインタがあると判断され、ステップ203に処理を進める。
【0096】
ステップ203で、次の文字がないので平仮名でないと判断され、ステップ205に処理を進める。
ステップ205では、読み1次インデックスの「し」が指すポインタの2次インデックスの「X」の部分を検索する。検索すると、「ptr31」となっていることが分かり、「(ptr31,ptr32)」というデータが得られる。
【0097】
図7に戻り、ステップ105で検索候補データが有ると判断され、ステップ106に処理を移す。
ステップ106で辞書本体を検索する。まず、先頭であるptr31のデータとのマッチングを取る。このデータは「adr052」で「子(し)」であり、検索文字列とマッチするので、num41をバッファに保存する。次のデータは「adr062」で「市(し)」であり、検索文字列とマッチするので、num42をバッファに保存する。次のデータは「adr071」で「私(し)」であり、検索文字列とマッチするので、num43をバッファ保存する。
【0098】
次のデータは「adr083,adr042」であり、「試(し)合(あい)」という単語と分かる。この場合、検索文字列とマッチしないことが分かる。また、検索文字列は「し」の一文字であり、これ以降にマッチするデータがないと分かるので、検索終了位置のptr32まで検索をせずに、ステップ106の処理を終了する。
【0099】
ステップ105に処理を戻し、検索候補データがもうないのでステップ107に処理を移す。
ステップ107で「し」の次の文字がないと分かるので、処理を終了する。
【0100】
結果として、文字検索位置「子」から「num21,num22,num42」の単語がマッチし、文字検索位置「う」から「num11」の単語がマッチし、文字検索位置「し」から「num41,num42,num43」の単語がマッチしたことになる。この結果をもとに漢字変換の処理が行われ、「子牛」と変換される。
【0101】
次に、入力文字列として「こうし」が入力された場合について説明する。
図7において、ステップ101で1文字目が取り出される。この場合は「こ」が取り出される。
【0102】
ステップ102で、仮名であると判断され、ステップ103に処理を移す。
ステップ103で読みインデックスを検索する。取り出した文字が「こ」で次の文字が「う」であるので、1文字目の漢字の読みが「こ」又は「こう」又はそれ以上ということになる。
【0103】
1文字目の漢字の読みが「こ」の候補として、読みインデックスの2段階目(2次インデックス)の「X」を検索すると、「ptr21」となっていることが分かる。次のポインタが「ptr22」であるので、「(ptr21,ptr22)」というデータになる。
【0104】
1文字目の漢字の読みが「こう」の候補として、読みインデックスの2段階目の「う」を検索すると、「ptr22」となっていることが分かる。次のポインタが「ptr23」であるので、「(ptr22,ptr23)」というデータになる。結局検索候補データとして、「(ptr21,ptr22),(ptr22,ptr23)」というデータが格納される。
【0105】
すなわち、このステップ103を図8のサブルーチンで説明すると、ステップ201で、読み1次インデックスの「こ」を検索する。
ステップ202ではポインタがあると判断され、ステップ203に処理を進める。ステップ203で、次の文字が平仮名かどうかが判断される。今の場合、次の文字は「う」であり、平仮名であるので、ステップ204に処理を進める。
【0106】
ステップ204では、読み1次インデックスの「こ」が指すポインタの2次インデックスの「う」が含まれている部分を検索する。検索すると「ptr22」であるので、「(ptr22,ptr23)」というデータを得る。
【0107】
ステップ205で、読み1次インデックスの「こ」が指すポインタの2次インデックスの「X」の部分を検索する。検索すると「ptr21」となっていることが分かり、「(ptr21,ptr22)」というデータを得る。
【0108】
よって、読みインデックスの検索結果として「(ptr21,ptr22)、(ptr22,ptr23)」というデータが得られる。
【0109】
図7に戻り、ステップ105で、検索候補データがあるかどうかが判断される。この場合有るので、「(ptr21,ptr22)」に注目して、ステップ106に処理を移す。
【0110】
ステップ106で辞書本体を検索するのであるが、この検索は「こ牛」の所で説明した通り、「num21,num22」が検索される。
ステップ105に処理を戻して、検索候補データが有るかどうかが判断される。この場合有るので、「(ptr22,ptr23)」に注目して、ステップ106に処理を移す。
【0111】
ステップ106で辞書本体を検索する。まず、先頭であるptr22のデータとのマッチングを取る。このデータは「adr033,adr071」であるのでり、「公(こう)私(し)」という単語と分かり、マッチするので、num31をバッファに保存する。次のデータを見ると、「adr033,adr132」となっているので、「公(こう)理(り)」という単語であり、検索文字列とマッチしないことが分かる。また、検索文字列が平仮名の「こうし」であり、検索データの候補の読みが「こうり」であるので、これ以降のデータにマッチするものがないと分かるので、検索終了位置ptr23まで検索せずに、ステップ106の処理を終了する。
【0112】
ステップ105に処理を戻し、検索候補データが有るか否かが判断されるが、もうないので、ステップ107に処理を移す。
ステップ107では、次の文字「う」があるので、ステップ101に処理を移す。これ以降の処理は「子うし」で説明した処理と同じ処理となる。
【0113】
結果として、文字検索位置「こ」から「num21,num22,num31」の単語がマッチし、文字検索位置「う」から「num11」の単語がマッチし、文字検索位置「し」から「num41,num42,num43」の単語がマッチしたことになる。
【0114】
この結果をもとに仮名漢字変換の処理が行われ、第1候補として「公私」、第2候補として「子牛」と変換される(「公私」の頻度が「子牛」より高いとする)。
【0115】
このようにして、単語がどのような文字で入力されても的確に単語を検索することができる。また、以上には、入力文字列として単語が入力されたときの例を説明したが、文章として入力されたときでも、入力文字列の先頭から順に単語検索を行い、検索結果をもとに仮名漢字変換を行うことにより、文章として入力された漢字仮名交じりの文字列を仮名漢字変換することができる。
本発明による辞書検索は、表記だけの単語も検索できるので、文章校正などにも利用することができる。
【0116】
【発明の効果】
この発明によれば、漢字仮名交じり文字列の組み合わせをすべて辞書本体に登録する必要がなくなり、辞書容量を削減することができる。また、漢字仮名交じりの制限のない自由な交ぜ書きが可能となる。
【0117】
また、単語辞書に読み/表記テーブルを設けて、単語辞書の辞書本体を読み/表記テーブルのアドレスを指定するためのポインタで構成した場合には、同じデータを効率良くまとめることができるので、辞書容量をさらに削減することができる。
【0118】
さらに、単語辞書の辞書本体への登録において、カタカナ語を登録する場合に、カタカナ語であるという識別マークと読みだけを登録するようにした場合には、辞書容量をより一層削減することができる。
【0119】
そして、単語辞書の辞書本体への登録において、読みの割り振りのできない単語を登録するに際し、読みの割り振りのできる単位で漢字と読みを対応づけして単語を登録するようにした場合には、不自然な交ぜ書きの変換ができないので、誤変換を少なくすることができ、快適な漢字仮名交じり文の仮名漢字変換が可能となる。
【0120】
また、単語辞書の辞書本体に登録する単語を、表記の1文字目に対応する読みの順に配置した場合には、漢字の組み合わせが近くなるので、漢字から辞書本体を検索する場合の検索速度を向上させることができる。
【図面の簡単な説明】
【図1】この発明の構成を示すブロック図である。
【図2】この発明による文字変換装置を日本語ワードプロセッサに適用した一実施例の構成を示すブロック図である。
【図3】この発明による読みインデックスの記憶内容を示す説明図である。
【図4】この発明による先頭漢字インデックスの記憶内容を示す説明図である。
【図5】この発明による辞書本体の記憶内容を示す説明図である。
【図6】この発明による読み/表記テーブルの記憶内容を示す説明図である。
【図7】この発明による辞書検索の処理手順を示すフローチャートである。
【図8】図7の読みインデックス検索の詳細な処理手順(サブルーチン)を示すフローチャートである。
【図9】従来の見出しの例を示す説明図である。
【図10】従来の見出しの例を示す説明図である。
【符号の説明】
1 CPU
2 プログラム用ROM
3 辞書用ROM
4 RAM
5 タブレット
6 LCD(液晶表示装置)
7 コントローラー
Claims (3)
- 漢字と仮名の混在した文字列を入力する入力手段と、
単語内の漢字にそれぞれ読みを対応させたデータからなる単語候補が登録された辞書本体、単語の先頭漢字の読みと、先頭漢字の読みを同じにする単語群の辞書本体上の記憶位置とを対応づけて記憶した読みインデックス、および単語の先頭漢字と、先頭漢字を同じにする単語群の辞書本体上の記憶位置とを対応づけて記憶した先頭漢字インデックスを含む単語辞書と、
前記入力手段から入力された文字列の先頭文字種を判断し、先頭文字が仮名の場合には前記読みインデックスから辞書本体を参照して前記単語候補を検索する一方、先頭文字が漢字の場合には前記先頭漢字インデックスから辞書本体を参照して前記単語候補を検索し、前記何れか一方のインデックスで検索された前記単語候補と入力手段から入力された文字列とを、入力文字列の漢字部分は前記単語候補の漢字で、入力文字列の仮名部分は前記単語候補の読みで照合し、入力文字列の漢字部分および仮名部分が共に一致する前記単語候補を漢字表記で出力する変換手段と、
変換手段によって変換された漢字候補を出力する出力手段を備えたことを特徴とする文字変換装置。 - 単語辞書の辞書本体は、先頭漢字の読みが1文字である前記単語候補と、2文字以上である前記単語候補をグループで記憶し、読みインデックスは入力された文字の仮名が1文字の場合と、2文字以上の場合に応じて対応する候補グループの先頭アドレスを指示することを特徴とする請求項1記載の文字変換装置。
- 単語辞書の辞書本体への登録において、読みの割り振りのできない単語が登録される場合には、読みの割り振りのできる単位で漢字と読みが対応づけされて単語が登録されることを特徴とする請求項1記載の文字変換装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32623694A JP3888701B2 (ja) | 1994-12-27 | 1994-12-27 | 文字変換装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32623694A JP3888701B2 (ja) | 1994-12-27 | 1994-12-27 | 文字変換装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08185400A JPH08185400A (ja) | 1996-07-16 |
JP3888701B2 true JP3888701B2 (ja) | 2007-03-07 |
Family
ID=18185516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32623694A Expired - Fee Related JP3888701B2 (ja) | 1994-12-27 | 1994-12-27 | 文字変換装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3888701B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6315996B2 (ja) * | 2014-01-16 | 2018-04-25 | 株式会社東芝 | 電子機器、方法及びプログラム |
-
1994
- 1994-12-27 JP JP32623694A patent/JP3888701B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08185400A (ja) | 1996-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR19990078364A (ko) | 문서처리장치 및 그의 방법 | |
JP3888701B2 (ja) | 文字変換装置 | |
JPS634206B2 (ja) | ||
JPS58123129A (ja) | 仮名漢字変換装置 | |
JPH0746355B2 (ja) | かな漢字変換装置 | |
JPS646499B2 (ja) | ||
JPH01229369A (ja) | 文字処理装置 | |
JP2862236B2 (ja) | 文字処理装置 | |
JPH0380363A (ja) | 文書処理装置 | |
JPS60207948A (ja) | カナ漢字変換処理装置 | |
JPS61260354A (ja) | カナ筆記漢字変換方式 | |
JPS61177575A (ja) | 日本語文章作成装置 | |
JPH02292662A (ja) | 固有名詞変換機能付き文書処理装置 | |
JPH0363754A (ja) | 文章処理装置 | |
JPH06208560A (ja) | 曖昧漢字変換装置 | |
JPS61177573A (ja) | 日本語文章作成装置 | |
JPS608922A (ja) | 日本語処理装置 | |
JPH04256162A (ja) | 学習機能付き文書処理装置及び方法 | |
JPH04116764A (ja) | 文書処理装置、その再変換処理方法及びカーソル表示方法 | |
JPH09128486A (ja) | 手書き文字入力装置 | |
JPH06131329A (ja) | 日本語文字処理装置 | |
JPS61269768A (ja) | カナ漢字入力装置 | |
JPH01114973A (ja) | 文書作成・校正支援装置 | |
JPH06223054A (ja) | 手書き入力機能付き文字処理装置 | |
JPH0589093A (ja) | 文書作成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040130 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061023 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061128 |
|
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: 20091208 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |