JPH08147417A - 単語照合装置 - Google Patents

単語照合装置

Info

Publication number
JPH08147417A
JPH08147417A JP6312582A JP31258294A JPH08147417A JP H08147417 A JPH08147417 A JP H08147417A JP 6312582 A JP6312582 A JP 6312582A JP 31258294 A JP31258294 A JP 31258294A JP H08147417 A JPH08147417 A JP H08147417A
Authority
JP
Japan
Prior art keywords
word
candidate
character
dictionary
tree
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.)
Pending
Application number
JP6312582A
Other languages
English (en)
Inventor
Yoshitaka Hamaguchi
佳孝 濱口
Sadamasa Hirogaki
節正 広垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP6312582A priority Critical patent/JPH08147417A/ja
Publication of JPH08147417A publication Critical patent/JPH08147417A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Character Discrimination (AREA)

Abstract

(57)【要約】 【目的】 単語辞書との照合のための処理速度を向上さ
せる。 【構成】 木構造の単語辞書1は、単語を構成する各文
字を節データとして表わし、枝データにより結合してそ
の単語を表わしている。即ち、枝データにより結合され
た頭文字から末尾の文字までの節データによって表わさ
れる一連の文字が意味のある単語を表わす。この場合、
末尾の文字の位置は単語の長さにより異なるので、各節
データに当該節データが末尾の文字を表わすか否かを示
す単語末フラグを設ける。一方、候補木生成部2は、文
字認識の結果の各候補文字を節データとし、単語辞書1
と同じ構造の候補木を生成する。枝照合処理部3は、候
補木と単語辞書1の木構造とを照合し、候補木と一致す
る経路が存在するか否かを検出する。そのような経路が
検出されれば候補文字列は単語辞書1の単語と一致して
おり、候補単語出力部4により候補単語として出力され
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、文字認識装置におい
て、認識結果の誤りを自動的に修正するための単語照合
装置に関するものである。
【0002】
【従来の技術】一般に、文字認識装置の認識結果の誤り
を修正するには、認識結果から候補単語を生成し、これ
を単語辞書と比較し、候補単語と一致する単語が単語辞
書に存在しない場合に候補単語に最も近い単語を単語辞
書から出力するようにしている。この場合の単語辞書の
検索方法としては、例えば、各文字パターンに対し文字
認識処理で得られた複数の候補文字の組み合わせを候補
文字列とし、候補文字列と同じ長さの単語を単語辞書か
ら検索するようにしていた。その際は、候補文字列と単
語辞書の単語との対応する各文字をそれぞれ比較するよ
うにしていた(例えば、特公昭61−20038号公報
参照)。
【0003】
【発明が解決しようとする課題】しかしながら、上述し
た従来の技術では、次のような点において単語辞書との
照合のための処理速度が低下するという課題があった。 単語辞書に格納されている各単語ごとに候補文字列中
の各候補文字との照合を行なうため、単語辞書の語数が
増大するのに比例して処理時間が増大し、大規模な辞書
ほど処理速度が低下してしまった。 文字パターンの切り出しが不完全であったり、切り出
しが困難であるため、1つの文字パターンに2文字以上
が含まれる場合がある。例えば、英字の「or」の切り
出しが不完全であると、「m」と認識され、また、「f
i」は書体によっては一体的な文字パターンとされてお
り、切り出しが困難である。これらの場合、上述した従
来の技術では辞書との照合が困難であるため、照合処理
の前処理や後処理が必要となり、処理速度が低下してし
まった。
【0004】
【課題を解決するための手段】本発明の単語照合装置
は、上述した課題を解決するため、以下の点を特徴とす
るものである。 (1) 単語中の各位置の文字及び文字列のいずれかを単数又
は複数の枝データにより結合された節データで表わし、
当該節データが単語の末尾の文字を表わすか否かを示す
単語末フラグを含む木構造の単語辞書を備える。 当該単語辞書の木構造と同一の木構造の候補木を文字
認識結果の候補文字列について生成する候補木生成部を
備える。 当該候補木生成部により生成される候補木の各枝デー
タと単語辞書の木構造の各枝データとを照合する枝照合
処理部を備える。 当該枝照合処理部による照合の結果、候補木と単語辞
書の木構造との間で、単語の頭文字を表わす節データか
ら、単語末フラグにより単語の末尾の文字を表わす節デ
ータまでの各節データをそれぞれ結合するすべての枝デ
ータが一致する場合に、それらの節データにより表わさ
れる文字列を候補単語として出力する候補単語出力部を
備える。
【0005】(2) (1)において、候補木生成部は、文字認識結果の候補
文字列の頭文字から末尾の文字までの候補木を構成する
枝データを順次1つずつ生成し、枝照合処理部は、順次
生成される候補木の枝データを1つずつ単語辞書の木構
造の枝データと照合する。
【0006】
【作用】
(1)木構造の単語辞書は、単語を構成する各文字を節
データとして表わし、各節データを枝データにより結合
してその単語を表わしている。例えば、英語の場合、文
字は26種類あり、単語辞書に含まれる単語の頭文字は
26種類有る。ところが、2番目の文字は各頭文字につ
いてそれぞれ26種類あるわけではない。例えば「w」
の頭文字の次に「c」がくる単語が無いとすると、頭文
字の「w」の節データに2番目の文字として結合される
「c」の節データは存在しない。また、そのような節デ
ータを結合する枝データも存在しない。即ち、枝データ
により結合された頭文字の節データから末尾の文字の節
データによって表わされる一連の文字が意味のある単語
を表わす。この場合、末尾の文字の位置は単語の長さに
より異なるので、各節データに当該節データが末尾の文
字を表わすか否かを示す単語末フラグを設ける。この単
語末フラグがオンであればその節データまでの文字列が
単語を表わす。
【0007】一方、候補木生成部は、文字認識部による
文字認識の結果、各文字パターンについて候補文字が得
られた場合、その候補文字列について、各候補文字を節
データとし、上述した単語辞書と同じ構造の枝データを
生成する。これを候補木と呼ぶ。枝照合処理部は、候補
木の各枝データと単語辞書の木構造の枝データとを照合
し、候補木と一致する経路の一連の枝データが存在する
か否かを検出する。そのような一連の枝データが検出さ
れれば候補文字列は単語辞書の単語と一致しており、候
補単語出力部により候補単語として出力される。この結
果、候補文字列中の各文字を、単語辞書に格納されたす
べての単語の各文字のすべてと照合する必要がなくな
り、照合のための処理時間を短縮することができる。
【0008】(2) (1)において、候補木生成部は、候補文字列を表わす
候補木の全体を作成するのではなく、頭文字のところか
ら順に節データ及びそれに結合される枝データを生成
し、その段階で枝照合処理部に単語辞書との照合を依頼
する。そして、その照合が終った後、照合された枝デー
タに結合される節データ及び枝データを候補木生成部で
生成し、枝照合処理部に単語辞書との照合を依頼する。
この結果、候補木の全体を構成する各節データ及び各枝
データのすべてを一度に格納するためのメモリが不要と
なり、メモリの使用効率を向上させることができる。
【0009】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。図1は、本発明の単語照合装置の一実施例
のブロック図である。文字認識処理部100は、文字パ
ターンを文字として認識し、単数または複数の文字コー
ドを認識結果の候補文字として出力する。単語照合処理
部200は、本発明の特徴部分であり、例えば図1に示
されるように、単語辞書1と、候補木生成部2と、枝照
合処理部3と、候補単語出力部4とから構成されてい
る。
【0010】単語辞書1は、各単語の各文字を木構造に
配列して構成される。即ち、各単語の頭文字から順に、
木構造の節の部分に文字又は文字列を配列する。そし
て、これらの節が枝により結合される。この場合、節の
部分の文字は、節データとしてデータベースに格納され
る。また、頭文字から順に各節データを結合するため、
前の文字を表わす節データには次の文字を表わす節デー
タを示すポインタが格納される。このポインタを枝デー
タと呼ぶ。更に、各節データには、それが単語の末尾の
文字を表わすか否かを示す単語末フラグが設けられてい
る。このような単語辞書1の具体例については後述す
る。単語辞書1の木構造は実際の装置では、例えば節は
メモリあるいは記憶装置上のデータブロックとして、枝
はそのデータブロックの位置を指すポインタとして、単
語の末文字のマークはデータブロック内に設けられたフ
ラグで実現される。
【0011】候補木生成部2は、文字認識処理部100
が出力する候補文字を1単語あるいは1文節など所定単
位分蓄積し、それらの候補文字の組合せで作られる文字
列を表す木を生成する。例えば、後述するように、図2
のような候補文字に対しては、図3のような候補木が生
成される。この処理は具体的に図3に示すような木を生
成することを行わず、順次、枝のみを生成して枝照合処
理部3を随時呼び出すよう構成しても良い。枝照合処理
部3は、節データ及び枝データにより、候補木生成部2
で生成された木あるいは枝と、木構造で表された単語辞
書1とを照合する。その照合結果は候補単語出力部4に
送られる。
【0012】候補単語出力部4は、枝照合処理部3で照
合に成功した候補文字列のみを、前記所定単位分の文字
列の候補、例えば単語単位であれば候補単語、文節単位
であれば候補文節として出力する。尚、候補木生成部2
が、順次、枝のみを生成して枝照合処理部3を随時呼び
出すように構成する場合は、図中点線の矢印a,bで示
すように枝照合処理部3の照合結果が候補木生成部2に
戻され、候補木生成部2が候補単語出力部4の制御を行
なう。
【0013】修正処理部300は、文字認識処理部10
0の出力する認識結果である候補文字を候補単語出力部
4の出力する候補文字列を用いて修正し、最終的な文字
認識結果として出力する。この処理は従来の技術と同様
なものを用いることができる。単語照合処理部200を
経て修正処理部300の処理を行うことにより文字認識
の後処理を行う。出力処理部400は、修正処理部30
0が出力する修正された文字認識結果を表示装置、記憶
装置等に出力する。以下、単語照合の各処理について具
体的に例を挙げながら説明する。
【0014】図2は、文字認識処理部100の出力する
認識結果の例である。図示のように、「word」とい
う単語のそれぞれの文字パターンに対して単数または複
数の候補文字が出力される。図示の例では、「w」につ
いては1つの候補文字「w」が出力され、「o」につい
ては3つの候補文字「c」、「o」、「a」が出力さ
れ、「r」については2つの候補文字「r」、「v」が
出力され、「d」については1つの候補文字「d」が出
力されている。
【0015】図3は、図2の認識結果を候補木生成部2
が木構造にしたものを表わす。左端の矩形は単語の始ま
りを表し、検索開始位置であるデータブロックであり、
根と呼ぶこととする。各候補文字は図中の円で表される
データブロックに登録される。データブロックには、更
に次の文字のデータブロックの位置を示す矢印で示され
たポインタが登録される。根から順にポインタを使い、
各データブロックをたどり、各データブロックに登録さ
れた文字をつなぐことで文字列を表現している。左上に
“*”が付してある円は、単語の末尾の文字を登録した
データブロックのフラグがオン(ON)になっているこ
とを示している。
【0016】例えば、まず、根から、「w」のデータブ
ロックへ行き、次に上の「c」のデータブロック、
「r」のデータブロック、「d」のデータブロックと順
に単語の末尾の文字のフラグがオン(ON)になってい
るデータブロックまでポインタをたどる。これにより、
「wcrd」という図1の例の第1位候補文字をつなげ
た文字列を表現している。このような木構造では、図3
の候補木は図1の候補文字の組合せでできる文字列「w
crd」、「wcvd」、「word」、「wov
d」、「ward」、「wavd」の全てを表し、且つ
それ以外の文字列を含まないようになっている。
【0017】図4は、単語辞書1の構成例である。例示
しやすいように、登録されている単語は「ward」、
「word」、「words」、「work」、「wo
rking」、「mark」の6つの単語のみである
が、実際に用いる単語辞書は当然のことながら、より大
規模なものとなる。例えば、英単語の場合は、根から始
まる単語の頭文字は26文字であり、その頭文字以降に
つながる文字は英単語として存在する場合のすべての文
字となる。
【0018】このような単語辞書の木構造も、図3を用
いて説明した候補木と同様である。例えば、「wor
d」については、根から順に各データブロックを
「w」,「o」,「r」,「d」とポインタを使ってた
どり、「d」の節の末文字のフラグがオン(ON)であ
るため、「word」はこの単語辞書に登録されている
と判定される。また、「wcrd」等の辞書にない文字
列は、根から始めて「w」のデータブロックは見つかる
が、そのデータブロックに「c」のデータブロックを指
すようなポインタが無いため、この単語辞書に存在しな
いと判定される。
【0019】また、図4の辞書の「ward」は、根か
ら順に「w」,「a」,「r」,「d」のデータブロッ
クを通るようにポインタをたどるが、「a」のデータブ
ロック及び「r」のデータブロックにはポインタが1つ
しか無い。即ち、枝分かれが無い。このように、ポイン
タを1つしか持たないデータブロックは、ポインタを複
数持つデータブロックまで、あるいは末尾の文字等ポイ
ンタを持たないデータブロックまでを1つのデータブロ
ックにまとめることにより、データブロックの数を減ら
してもよい。このようにして、データブロックを減らし
た例を図5に示す。この場合、例えば10万語の英単語
辞書であれば、データブロックを約20%程度削減でき
る。これにより、メモリ効率が良くなり、ポインタをた
どる操作も減少し、検索効率が良くなる。以降の説明で
は、候補木のデータブロックを候補データブロック、単
語辞書のデータブロックを辞書データブロックと呼ぶ。
【0020】次に、図3、図4を用いて、図2に例示し
た認識結果に対する照合処理が具体的にどのように行わ
れるかを説明する。まず、候補木生成部2が文字認識処
理部100から受け取った図2に例示した認識結果を用
い、図3に例示する候補木を生成する。次に、候補木生
成部2は枝照合処理部3に最初の「w」の候補データブ
ロックに行くポインタ、即ち枝を、単語辞書1の木と照
合させる。枝照合処理部3は、候補木生成部2の要求に
従い、単語辞書1の根から「w」の登録された辞書デー
タブロックに至るポインタを探す。図4に例示した辞書
では根の辞書データブロックに「w」の登録された辞書
データブロックを示すポインタが存在するので、「w」
の辞書データブロックのポインタを位置スタックに入
れ、照合に成功したことを候補木生成部2に返答する。
【0021】照合に成功したため、候補木生成部2は
「w」の候補データブロックから「c」の候補データブ
ロックへのポインタを照合させる。枝照合処理部3は、
位置スタックの最も上にあるポインタの「w」の辞書デ
ータブロックの持つポインタには、「c」の登録された
辞書データブロックを指すものがないため、照合に失敗
したことを返答する。この場合、位置スタックは変更さ
れない。照合に失敗したため、候補木生成部2はそれ以
上「c」の候補データブロックの先の探索を行わない。
これにより、「wcrd」、「wcvd」の双方の文字
列の照合が同時に途中で打ち切られる。このため、検索
効率が向上する。
【0022】次に、候補木生成部2は、「w」の候補デ
ータブロックからの次のポインタである「o」の候補デ
ータブロックに至るポインタを照合させる。このよう
に、新しい文字列の検索を始める場合に、もう一度根か
ら検索することを行わず、最も最近検索した候補データ
ブロックから処理を行う。これにより、この場合は、根
から「w」の候補データブロックへの照合が行われない
等重複する照合が省かれ、検索効率がよくなる。枝照合
処理部3は、位置スタックの最も上にある位置である
「w」の辞書データブロックから「o」の辞書データブ
ロックへ至るポインタがあるので位置スタックに「o」
の辞書データブロックのポインタを入れ、照合が成功し
たことを候補木生成部2に返答する。
【0023】照合に成功したため、候補木生成部2は、
「r」の候補データブロックを指すポインタを照合させ
る。枝照合処理部3は、位置スタックの最も上にある
「o」の辞書データブロックから「r」の辞書データブ
ロックへ至るポインタがあるので、位置スタックに
「r」の辞書データブロックのポインタを入れ、照合が
成功したことを返答する。照合に成功したため、候補木
生成部2は、「d」の候補データブロックを指すポイン
タを照合させる。
【0024】枝照合処理部3は、位置スタックの最も上
にある「r」の辞書データブロックから「d」の辞書デ
ータブロックへ至るポインタがあるので、位置スタック
に「d」の辞書データブロックのポインタを入れる。こ
の場合、「d」の辞書データブロックのフラグがオン
(ON)なので、単語の末尾の文字であるという照合が
成功したことを候補木生成部2に返答する。候補木生成
部2は、候補木においても「d」の候補データブロック
のフラグがオン(ON)なので、単語照合に成功したも
のとして「word」を候補単語に加える。これ以前に
は、候補単語として何も得られていないので、今のとこ
ろ候補単語は「word」のみである。
【0025】候補木生成部2は、「d」の候補データブ
ロックがポインタを持たないので、1つ前の「r」の候
補データブロックへ戻り、枝照合処理に位置スタック上
から1つポインタを捨てるよう指示する。これにより、
枝照合処理部3は、位置スタックの最も上にある辞書中
の「d」の辞書データブロックを指すポインタを捨て
る。これで、位置スタックの最も上に収められている位
置は、「r」の辞書データブロックのポインタになる。
候補木生成部2は、「r」の候補データブロックが既に
検索を行ったもの以外にポインタを持たないので、1つ
前の「o」のデータブロックへ戻り、枝照合処理部3に
位置スタック上から1つポインタを捨てるよう指示す
る。枝照合処理部3は、位置スタックの最も上にある辞
書中の「r」の辞書データブロックを指すポインタを捨
てる。これで、位置スタックの最も上に収められている
位置は、「o」のデータブロックのポインタになる。
【0026】候補木生成部2は、「o」の候補データブ
ロックからの次のポインタである「v」の候補データブ
ロックを指すポインタを照合させる。枝照合処理部3
は、位置スタックの最も上にあるポインタの指す「o」
の辞書データブロックのポインタには「v」の登録され
た辞書データブロックを指すものがないため、照合に失
敗したことを候補木生成部2に返答する。照合に失敗
し、また「o」の候補データブロックからのポインタは
全て検索が終ったので、候補木生成部2は「w」の候補
データブロックに戻り、枝照合処理部3に位置スタック
上から1つポインタを捨てるよう指示する。
【0027】枝照合処理部3は、位置スタックの最も上
にある辞書中の「o」の辞書データブロックを指すポイ
ンタを捨てる。これで、位置スタックの最も上に収めら
れている位置は「w」の辞書データブロックのポインタ
になる。以後、「w」の候補データブロックの3番目の
ポインタである「a」の候補データブロックを指すポイ
ンタ以下の照合も同様に行っていき、最終的に全ての枝
の照合が終った時点で、候補単語出力部4により候補単
語として、単語辞書に登録されていた「word」と
「ward」が抽出される。
【0028】以上の手法によれば、候補木のポインタを
たどりながら照合を行うので、照合の回数は単語辞書1
の大きさによらない。また、単語辞書1の木において、
辞書データブロックに収められたポインタを配列データ
とする。そして、例えばある辞書データブロックから
「c」の辞書データブロックを指すポインタは、該辞書
データブロックの先頭から「c」のASCIIコードで
ある“99”に予め定められたオフセット値を加算した
アドレスに収めることができる。このように、目的の辞
書データブロックを指すポインタを検索する手法を枝の
数即ちポインタの数によらないような手法を用いるよう
にすれば、辞書サイズに関係なく検索が行える。この結
果、単語数の多い大規模な辞書においても、検索速度を
低下させることなく、文字認識の後処理を行うことが可
能となる。
【0029】また、図3、図4で説明した手法を用いれ
ば、文字切り出しを誤り本来2文字になるべきものが1
つの文字パターンになったものに対して、文字認識処理
部100が2文字の候補文字を出力する場合にも同様に
処理を行うことができる。これについて以下に説明す
る。図6に、文字切り出しに誤りがあった場合の文字認
識処理部100の出力例を示す。「word」の2文字
目及び3文字目の「or」が切り出しの誤りで1文字分
の文字パターンとして文字認識処理部100に入力さ
れ、その処理結果の候補文字として1文字の「m」と2
文字の「or」、「ar」が出力されている。このこと
により、候補文字の組合せでできる文字列は3文字の
「wmd」と、4文字の「word」、「ward」と
なり、長さが異なるものが混在する。
【0030】図7に、図6の文字認識処理結果を候補木
生成部2が木構造にしたものの例を示す。このように、
木構造を用いると、長さの異なる文字列が混在した候補
文字の組合せを全て表現し得る。図3、図4を用いて説
明した照合の手順は単語長に関わらず、候補データブロ
ック、辞書データブロックの単語末フラグで行ったの
で、図7の候補木でも全く同様に照合ができることは明
らかである。このようにして、単語辞書の規模が大きく
なった場合の照合のための処理速度の低下を防止するこ
とができる。また、1つの文字パターンに複数の文字が
含まれる場合にも照合を行なうことが可能となる。
【0031】以上の説明は、文字認識処理部100の出
力する候補文字を、候補木生成部2が木構造に構成し直
して枝照合処理部3に単語辞書1との照合を行わせるよ
うな構成例について行ったが、候補木生成部2と枝照合
処理部3に分けたことにより、実際には候補木生成部2
は逐次必要な枝のみ生成して枝照合処理部3に渡せばよ
い。これにより、候補木を収めるためのメモリが節約で
きる。以下、候補木を全て生成するのではなく、逐次枝
を生成する場合の処理例を説明する。
【0032】図8に、候補木生成部2における処理手順
の具体例を示す。以下、文字位置をP、i番目の文字位
置で照合の終了した候補の順位をC[i]として、図7
の例の文字認識処理結果を処理する場合について説明す
る。ステップS211では、文字認識処理部100の出
力する候補文字を1単語分メモリ上に蓄積する。ステッ
プS212は、各変数を初期化する。Pは1文字目と
し、全文字位置でのC[i]、即ち、C[1]、C
[2]、C[3]を0とし、候補単語は何も記憶されて
いない状態とする。
【0033】ステップS213で、P文字目の候補文字
の検索が全て終了したか否かを判定する。この場合、P
=1文字目の検索終了候補順位C[P]は0であるの
で、まだ第1位候補文字の「w」の検索が行われておら
ず、次のステップS220へ進む。ステップS220
は、P番目の文字位置の次の候補を照合する。この場
合、1番目の文字位置のC[1]=0番目の候補の次の
第1位候補文字である「w」の辞書データブロックを指
すポインタを枝照合処理部3に照合させる。これは、実
際に図7のような木を作り、根から「w」の候補データ
ブロックへのポインタを辞書データブロックと照合させ
ることと等価であるが、実際には候補木は作られてはい
ない。
【0034】枝照合ステップS240は、図3、図4を
用いて先に説明した場合と同様に、根から「w」の辞書
データブロックを指すポインタがあるので、「w」の辞
書データブロックを指すポインタを位置スタックに入
れ、照合に成功したことを返答する。第1位候補文字の
照合を行ったので、C[1]を“1”にする。そして、
照合に成功したのでステップS214に進む。ステップ
S214では、文字位置が単語の末尾か否かを判定し、
単語の末尾であれば枝照合処理部3に位置スタックから
1つポインタを棄却させる。この場合、末尾ではないの
でステップS217に進む。ステップS217では、文
字位置を進める。即ち、Pを“1”増加させる。この場
合、Pを“1”から“2”に進める。そして、ステップ
S213に戻る。
【0035】ステップS213で、P=2、C[P]=
0であり、まだ照合していない候補文字があるので、ス
テップS220に進む。ステップS220で、P=2、
C[P]=0なので、2文字目、第1位候補の「m」を
枝照合処理部3に照合させる。枝照合処理部3は、位置
スタックの最も上にあるポインタの「w」の辞書データ
ブロックの持つポインタには、「m」の登録された辞書
データブロックを指すものがないため、照合に失敗した
ことを返答する。この場合、位置スタックは変更されな
い。
【0036】ここで、第1位候補文字の照合を行ったの
で、C[2]を“1”にする。そして、照合に失敗した
のでステップS213に進む。ステップS213では、
P=2、C[P]=1なので、まだ第2位、第3位候補
文字を照合していないのでステップS220に進む。ス
テップS220では、P=2、C[P]=1なので、2
文字目、第2位候補の「or」を1文字ずつ枝照合処理
部3に照合させる。まず、「o」を枝照合処理部3に照
合させる。枝照合処理部3は、位置スタックの最も上に
あるポインタの「w」の辞書データブロックの持つポイ
ンタに「o」の登録された辞書データブロックを指すも
のがあるので、「o」の辞書データブロックを指すポイ
ンタを位置スタックに入れ、照合に成功したことを返答
する。
【0037】更に、「r」を枝照合処理部3に照合させ
る。枝照合処理部3は、位置スタックの最も上にあるポ
インタの「o」の辞書データブロックの持つポインタに
「r」の登録された辞書データブロックを指すものがあ
るので、「r」の辞書データブロックを指すポインタを
位置スタックに入れ、照合に成功したことを返答する。
そして、第2位候補まで検索したので、C[2]=2と
し、照合に成功したのでステップS214へ進む。この
場合は照合は成功したが、複数文字の候補の2文字目以
降で枝照合処理部3で照合に失敗した場合は、それ以前
の文字数分、枝照合処理部3にスタック上からポインタ
を棄却させ、文字位置の同期をとる必要がある。
【0038】ステップS214では、P=2で単語末で
はないのでステップS217に進む。ステップS217
で、Pを“2”から“3”に進める。そして、ステップ
S213に戻る。ステップS213で、P=3、C
[P]=0であり、まだ照合していない候補文字がある
ので、ステップS220に進む。ステップS220で、
P=3、C[P]=0なので、3文字目、第1位候補の
「d」を枝照合処理部3に照合させる。
【0039】枝照合処理部3は、位置スタックの最も上
にあるポインタの「r」の辞書データブロックの持つポ
インタに「d」の辞書データブロックを指すものがある
ので、「d」の辞書データブロックを指すポインタを位
置スタックに入れる。また、「d」の辞書データブロッ
クの単語末フラグがオン(ON)であるので、単語末で
あることと照合に成功したこととを返答する。P=3で
第1位候補文字の照合を行ったのでC[P]=1とす
る。この場合、照合に成功したので、ステップS214
に進む。ステップS214でP=3であり、単語の末尾
であるので枝照合処理部3に位置スタックからポインタ
を1つ棄却させる。これにより、位置スタックの最も上
は「r」の辞書データブロックを指すポインタとなる。
そして、ステップS215に進む。
【0040】ステップS215では、候補データブロッ
クと辞書データブロックの双方が単語の末尾であるか否
かを判定し、双方が単語の末尾であるときのみ単語の照
合に成功したと判定する。この場合、直前にステップS
220で呼び出した枝照合処理部3の返答の単語の末尾
であることが含まれているので、照合に成功し、ステッ
プS216に進む。ステップS216では、これまでの
処理で照合に成功した単語を候補単語として記憶する。
この場合、いままで何も記憶されていないところに、こ
こまでで照合に成功した「word」が記憶されるの
で、候補単語として「word」が記憶されている状態
になる。この後、ステップS213に戻る。
【0041】ステップS213では、P=3、C[P]
=1であり、3文字目の候補文字は全て照合が終ってい
るので、ステップS218に進む。ステップS218で
は、現在の文字位置Pが先頭を指しているか否か、即ち
“1”であるか否かを判定する。この場合、P=3であ
るので、ステップS219に進む。
【0042】ステップS219では、C[P]を“0”
に初期化し、Pを1つ戻し、1つ前の文字位置で照合し
た候補文字の文字数だけのポインタを棄却させることに
より同期を取る。C[P]を初期化するのは、より前の
文字位置の他の候補文字から枝をたどり、再度この文字
位置での照合を正常に行うためである。この場合、C
[P]即ちC[3]を“0”にし、Pを“3”から
“2”に戻す。更にP=2、C[P]=2であり、2文
字目の第2位候補文字は2文字であったので、枝照合処
理部3に位置スタック上から2つポインタを棄却させ
る。この結果、枝照合処理部3の位置スタックの最も上
のポインタは「w」の辞書データブロックを指すポイン
タとなる。その後、ステップS213に進む。
【0043】この後、2文字目の第3位候補文字に対し
ても同様に処理が進み、全ての組合せの照合が終ると、
単語の末尾の文字位置から順にステップS213で全候
補文字の照合が終ったと判断され、ステップS219で
文字位置が1つずつ戻される。そして、最終的に先頭文
字まで戻った時点でステップS218で先頭文字と判断
されて処理が終了する。この場合、処理が終了した時点
で候補単語として「word」、「ward」が記憶さ
れている。
【0044】以上のように、候補木に関しては逐次的に
どのような枝ができるかを枝照合処理部3に渡せるよう
な処理を行えば、実際に全ての木構造をメモリ上に作る
ことなく、図3、図4を用いて説明したものと全く同様
の照合を行うことができる。本発明は以上の実施例に限
定されず、種々の変形が可能であることはもちろんであ
る。例えば、上述した説明は英単語の場合について行っ
たが、本発明はこれに限らず、日本語等の他の言語にも
適用することが可能である。
【0045】
【発明の効果】以上説明した本発明の単語照合装置によ
れば、単語辞書を各文字又は文字列を節とした木構造と
し、候補文字列中の各文字を、単語辞書の根の部分の文
字から順次単語の末尾の部分の文字まで比較するように
したので、次のような効果がある。 単語辞書に格納されている各単語ごとに候補文字列中
の各文字との照合を行なう必要がなく、単語辞書の語数
が増大しても照合のための処理時間が増大せず、大規模
な辞書を用いた場合の処理速度の低下を防止することが
できる。 文字パターンの切り出しが不完全であったり、切り出
しが困難であるため、1つの文字パターンに2文字以上
が含まれる場合でも、単語辞書との照合が容易となり、
照合処理の前処理や後処理が不要となり、処理速度を向
上させることができる。
【図面の簡単な説明】
【図1】本発明の単語照合処理装置の一実施例のブロッ
ク図である。
【図2】文字認識処理結果の例の説明図である。
【図3】候補木の例の説明図である。
【図4】木構造辞書の例の説明図である。
【図5】木構造辞書の他の例の説明図である。
【図6】切り出し誤りを含んだ文字認識処理結果の例の
説明図である。
【図7】図6の例に対する候補木の例の説明図である。
【図8】候補木生成部の処理手順の一例を説明するフロ
ーチャートである。
【符号の説明】
1 単語辞書 2 候補木生成部 3 枝照合処理部 4 候補単語出力部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 単語中の各位置の文字及び文字列のいず
    れかを単数又は複数の枝データにより結合された節デー
    タで表わし、当該節データが単語の末尾の文字を表わす
    か否かを示す単語末フラグを含む木構造の単語辞書と、 当該単語辞書の木構造と同一の木構造の候補木を文字認
    識結果の候補文字列について生成する候補木生成部と、 当該候補木生成部により生成される候補木の各枝データ
    と前記単語辞書の木構造の各枝データとを照合する枝照
    合処理部と、 当該枝照合処理部による照合の結果、前記候補木と前記
    単語辞書の木構造との間で、単語の頭文字を表わす節デ
    ータから、前記単語末フラグにより単語の末尾の文字を
    表わす節データまでの各節データをそれぞれ結合するす
    べての枝データが一致する場合に、それらの節データに
    より表わされる文字列を候補単語として出力する候補単
    語出力部とを備えたことを特徴とする単語照合装置。
  2. 【請求項2】 前記候補木生成部は、文字認識結果の候
    補文字列の頭文字から末尾の文字までの前記候補木を構
    成する枝データを順次1つずつ生成し、前記枝照合処理
    部は、順次生成される候補木の枝データを1つずつ前記
    単語辞書の木構造の枝データと照合することを特徴とす
    る請求項1記載の単語照合装置。
JP6312582A 1994-11-22 1994-11-22 単語照合装置 Pending JPH08147417A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6312582A JPH08147417A (ja) 1994-11-22 1994-11-22 単語照合装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6312582A JPH08147417A (ja) 1994-11-22 1994-11-22 単語照合装置

Publications (1)

Publication Number Publication Date
JPH08147417A true JPH08147417A (ja) 1996-06-07

Family

ID=18030944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6312582A Pending JPH08147417A (ja) 1994-11-22 1994-11-22 単語照合装置

Country Status (1)

Country Link
JP (1) JPH08147417A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022504404A (ja) * 2019-09-27 2022-01-13 シェンチェン センスタイム テクノロジー カンパニー リミテッド テキストシーケンス認識方法及びその装置、電子機器並びに記憶媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022504404A (ja) * 2019-09-27 2022-01-13 シェンチェン センスタイム テクノロジー カンパニー リミテッド テキストシーケンス認識方法及びその装置、電子機器並びに記憶媒体

Similar Documents

Publication Publication Date Title
EP0281742B1 (en) Method for verifying spelling of compound words
US6782505B1 (en) Method and system for generating structured data from semi-structured data sources
CN106708893B (zh) 搜索查询词纠错方法和装置
US7809744B2 (en) Method and system for approximate string matching
JP2002215619A (ja) 翻訳文書からの翻訳文抽出方法
JPS63254559A (ja) 複合ワードのためのスペリング援助方法
CN115017268B (zh) 一种基于树结构的启发式日志抽取方法及系统
JP3309174B2 (ja) 文字認識方法及び装置
JPH08147417A (ja) 単語照合装置
CN116229484A (zh) 文字识别方法、名单扫描方法和装置
JP3080066B2 (ja) 文字認識装置、方法及び記憶媒体
JPH076215A (ja) ニューラルネットワークに基づく文字処理装置のための字句の後処理方法
Cannon OPCOL: An Optimal Text Collation Algorithm
JP3065900B2 (ja) 単語照合装置の単語辞書
JP2002259912A (ja) オンライン文字列認識装置及びオンライン文字列認識方法
JP2827066B2 (ja) 数字列混在文書の文字認識の後処理方法
Lin et al. A Simple and Practical Approach to Improve Misspellings in OCR Text
JP2723462B2 (ja) 構文信号解析方法及び装置
EP4088217A1 (en) Inference methods for word or wordpiece tokenization
JP2917310B2 (ja) 単語照合における単語辞書検索方式
JP2918380B2 (ja) 文字認識結果の後処理方法
JPH02118785A (ja) 誤認識修正方法及び装置
JPH06274701A (ja) 単語照合装置
JPH01233679A (ja) 言語認識装置
JPS6116367A (ja) テキスト分割方式