JP3126945B2 - 文字誤り校正装置 - Google Patents

文字誤り校正装置

Info

Publication number
JP3126945B2
JP3126945B2 JP09298621A JP29862197A JP3126945B2 JP 3126945 B2 JP3126945 B2 JP 3126945B2 JP 09298621 A JP09298621 A JP 09298621A JP 29862197 A JP29862197 A JP 29862197A JP 3126945 B2 JP3126945 B2 JP 3126945B2
Authority
JP
Japan
Prior art keywords
error
character string
character
chain
correct
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
Application number
JP09298621A
Other languages
English (en)
Other versions
JPH11134335A (ja
Inventor
智 垣
英一郎 隅田
Original Assignee
株式会社エイ・ティ・アール音声翻訳通信研究所
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 株式会社エイ・ティ・アール音声翻訳通信研究所 filed Critical 株式会社エイ・ティ・アール音声翻訳通信研究所
Priority to JP09298621A priority Critical patent/JP3126945B2/ja
Publication of JPH11134335A publication Critical patent/JPH11134335A/ja
Application granted granted Critical
Publication of JP3126945B2 publication Critical patent/JP3126945B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Character Discrimination (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文字列に含まれる
誤りを検出し、検出した誤りに対しては自動訂正を行う
文字誤り校正装置に関する。
【0002】
【従来の技術】文字列の誤り訂正に関しては、文字認
識、音声認識の後処理、文章校正、あるいはワードプロ
セッサ入力などに関連して各種手法が、以下の如く提案
されている。
【0003】第1の従来例 従来技術文献1「島崎ほか,“日本文訂正支援システム
REVISEにおける辞書の構成法”,情報処理学会第
34回全国大会,6X−3,1987年」において、誤
り表記と正しい表記を対にして辞書に登録しておいて該
当する誤り表記が検出されたときに正しい表記に置き換
える手法(以下、第1の従来例という。)が提案されて
いる。第1の従来例において、例えば、誤り表記として
「労動」(正しい表記は「労働」)を登録した場合、単
語抽出時に見出し「労動」があった場合、辞書に設定済
みの正しい表記「労働」に置き換えてしまう。
【0004】第2の従来例 従来技術文献2「木谷,“手書き文書の文字認識結果に
対する後処理方式”,情報処理学会研究報告,NL86
−1,pp.1−8,1991年」において、単語照合
の段階で辞書との完全一致ではなく、文字数の増減と部
分的な文字の違いにも対処できる連想統合型単語検索法
を用いること(以下、第2の従来例という。)が提案さ
れている。第2の従来例において、例えば、“プハジェ
クト”の単語照合において辞書から”プロジェク
ト”、”サブジェクト”などを検索してくるものであ
る。ただ、この方法は少なくとも4文字までは完全一致
による単語照合を行わない限り、誤って検索される単語
が膨大になる副作用が大きく、外来語などの比較的長い
単語長に対して有効であると報告されている。
【0005】第3の従来例 従来技術文献3「荒木ほか,“2重マルコフモデルによ
る日本語文の誤り検出並びに訂正法”,情報処理学会研
究報告NL97−5,pp.29−35,1993年」
において、文字の連鎖確率の高い候補を提示していく手
法(以下、第3の従来例という。)が提案されている。
第3の従来例においては、大量の文を対象に、予め文字
の連鎖確率を計算しておき、誤り文字の前後の数文字に
着目して、確率的に接続の可能性の高い文字を訂正候補
として提示する。
【0006】
【発明が解決しようとする課題】第1と第2の従来例に
おいては、誤り検出と訂正候補の推測は単語単位であ
り、誤り文字列が表記的に正しい単語の場合対応できな
い。それらの問題点の一例を表1に示す。
【0007】
【表1】 ――――――――――――――――――――――――――――――――――― (例1) 誤り文:「その支払いを方法はどうしたらよろしいでしょうか」 正解文:「その支払い方法はどうしたらよろしいでしょうか」 ――――――――――――――――――――――――――――――――――― (例2) 誤り文:「よろしくお寝てします」 正解文:「よろしくお願いいたします」 ――――――――――――――――――――――――――――――――――― (例3) 誤り文:「はいそうしててきますので」 正解文:「はいそうして頂きますので」 ――――――――――――――――――――――――――――――――――― (注)「して□きま」の□を満たす候補として「い」、
「お」、「頂」の順に連鎖確率が高い。
【0008】例えば、表1における例1は「支払いを方
法」の「を」が誤って挿入された例であるが、第1の従
来例では、助詞の「を」は正しい単語として存在するの
で「を」を誤り表記としては登録することができない。
また、挿入された「を」を助詞と見なしても単語間の接
続可能性には問題がないため誤りを検出・訂正すること
ができない。同じことが文字長さが短いため連想統合型
単語検索を行う第2の従来例でも発生する。
【0009】第3の従来例では、誤り文字が数文字連続
すると字種が多い日本語(数千文字)では候補の数が膨
大に膨れあがるため計算量が増大する(例えば、例
2)。また、例3のように誤り文字「て」に置き換えれ
る候補は「い」、「お」、「頂」の順に確率が高くなっ
ており、連鎖確率だけでは正解文字「頂」を訂正候補と
して絞り込むのが難しいという問題点があった。
【0010】本発明の目的は以上の問題点を解決し、文
字列の誤りを検出し又は/及び訂正する処理を、従来例
に比較して大幅に小さい計算量で、しかも文字単位で、
さらにより正確に実行することができる文字誤り校正装
置を提供することにある。
【0011】
【課題を解決するための手段】本発明に係る文字誤り校
正装置は、誤り文と正解文の組み合わせと、正解文とを
含むコーパスデータベースを格納する第1の記憶装置
と、上記第1の記憶装置から読み出された正解文に基づ
いて、単位が、それぞれ正解文中に含まれる文字、単語
又は品詞である複数N個の単位が連鎖して形成されるN
連鎖単位列のうちN−1個の単位が連鎖して形成される
N−1連鎖単位列の頻度に対するN連鎖単位列の頻度の
N連鎖確率を計算することにより、上記N連鎖確率を含
む連鎖確率モデルを作成する連鎖確率モデル作成手段
と、上記連鎖確率モデル作成手段によって作成された連
鎖確率モデルを格納する第2の記憶装置とを備え、入力
された文字列に対して文字誤り校正処理を行う文字誤り
校正装置において、上記第1の記憶装置から読み出され
た誤り文と正解文の組み合わせから誤り文字列と正解文
字列の組み合わせを抽出しかつ、誤り文字列と正解文字
列の組み合わせが同一である誤り文字列と正解文字列の
組み合わせを集めるように分類し、上記抽出しかつ分類
した誤り文字列と正解文字列の組み合わせにおいて、上
記誤り文字列の一部である誤り部分と、上記正解文字列
の一部である正解部分とが互いに対応するときに、上記
誤り部分と上記正解部分に対してそれぞれ前と後に所定
数の文字を付加した別の誤り文字列と別の正解文字列の
文字列パターンの組み合わせを作成し、作成した別の誤
り文字列と別の正解文字列の文字パターンの組み合わせ
の頻度である組み合わせ頻度が所定値以上の文字パター
ンの組み合わせを選択し、上記コーパスデータベース内
の正解文と上記選択された別の誤り文字列との間で第1
のパターンマッチを行い、上記第1のパターンマッチで
一致した別の誤り文字列を候補から除外し、残りの候補
である選択された別の誤り文字列と上記コーパスデータ
ベース内の誤り文との間で第2のパターンマッチを行
い、上記第2のパターンマッチで一致した別の誤り文字
列について一致した位置が上記誤り部分の誤り位置と重
なるときに当該別の誤り文字列を候補として残し、残っ
た候補の別の誤り文字列と、当該別の誤り文字列に対応
する別の正解文字列との対からなる誤りパターン辞書を
作成する誤りパターン辞書作成手段と、上記第1の記憶
装置から読み出された正解文に基づいて、上記読み出さ
れた正解文から所定の長さの文字列連鎖を抽出し、上記
抽出された所定の長さの文字列連鎖の頻度が所定値以上
であるより高い頻度の文字列を慣用文字列として検出す
ることにより、上記検出された慣用文字列からなる慣用
文字連鎖辞書を作成する慣用文字連鎖辞書作成手段と、
上記誤りパターン辞書作成手段によって作成された誤り
パターン辞書と、上記慣用文字連鎖辞書作成手段によっ
て作成された慣用文字連鎖辞書とを格納する第3の記憶
装置と、入力された文字列に対して、上記第2の記憶装
置に格納された連鎖確率モデルを参照して上記入力され
た文字列の少なくとも1個のN連鎖確率を計算し、計算
されたN連鎖確率が所定のしきい値以下の文字列から誤
り文字列を検出する第1の誤り検出手段と、 (a)上記第3の記憶装置に記憶された誤りパターン辞
書を参照して、上記誤り検出手段によって検出された誤
り文字列を対応する正解文字列に置換して誤り訂正する
誤りパターン訂正処理と、 (b)上記誤り検出手段によって検出された誤り文字列
に類似した文字列を、上記第3の記憶装置に記憶された
慣用文字連鎖辞書から検索し、当該検出された誤り文字
列を当該検索された類似した文字列で置換することによ
り誤り訂正する慣用パターン訂正処理との少なくとも一
方を実行することにより誤り訂正する誤り訂正手段とを
備えたことを特徴とする。
【0012】また、上記文字誤り校正装置において、上
記誤り訂正手段によって誤り訂正された文字列に対し
て、上記第2の記憶装置に格納された連鎖確率モデルを
参照して上記入力された文字列の少なくとも1個のN連
鎖確率を計算し、計算されたN連鎖確率が所定のしきい
値以下の文字列から誤り文字列を検出する第2の誤り検
出手段をさらに備えたことを特徴とする。
【0017】
【発明の実施の形態】以下、図面を参照して本発明に係
る実施形態について説明する。
【0018】図1は、本発明に係る一実施形態である文
字誤り校正装置10及びその周辺装置の構成を示すブロ
ック図であり、図2は、図1の文字誤り校正装置10に
よって実行される文字誤り校正処理を示すフローチャー
トである。図1において、文字誤り校正装置10は、 (a)連鎖確率モデルメモリ31内の連鎖確率モデルを
参照して、文字列メモリ54内の文字列における誤りを
検出するための誤り検出処理(図2のステップS2)を
実行して誤り検出結果を含む文字列を出力する誤り検出
部11と、 (b)連鎖確率モデルメモリ31内の連鎖確率モデル及
び誤り訂正辞書メモリ32内の誤り訂正辞書を参照し
て、誤り検出部11から出力される誤り検出結果に基づ
いて、上記文字列の誤りを訂正する誤り訂正処理(図2
のステップS4)を実行して誤り訂正結果の文字列を出
力する誤り訂正部12と、 (c)連鎖確率モデルメモリ31内の連鎖確率モデルを
参照して、誤り訂正部12からの誤り訂正結果に基づい
て、その文字列の誤りを検出する誤り検出処理(図2の
ステップS6)を実行して誤り検出結果を含む文字列を
出力する誤り検出部13とを備え、文字誤り校正装置1
0は、図2に示すように、誤り検出処理(ステップS
2)、誤り訂正処理(ステップS4)及び誤り検出処理
(ステップS6)を順次実行することを特徴としてい
る。
【0019】ここで、誤り検出部11,13はそれぞ
れ、入力された文字列に対して、連鎖確率モデルを適用
して入力文字列の連鎖確率を求め、連鎖確率が与えられ
たしきい値以下の部分の文字列に基づいて文字列に含ま
れる誤り部分の検出を行う。また、誤り訂正部12によ
って実行される誤り訂正処理(図2のステップS4)
は、図6に示すように、誤りパターン訂正処理(ステッ
プS72)と慣用パターン訂正処理(ステップS76)
とを含む。なお、誤り訂正処理(図2のステップS4)
は、誤りパターン訂正処理(ステップS72)と慣用パ
ターン訂正処理(ステップS76)とのうちの少なくと
も一方を含むようにしてもよい。
【0020】ここで、誤りパターン訂正処理は、誤り訂
正辞書メモリ32内の誤りパターン辞書を用いて文字列
の訂正を行う処理である。誤りパターン辞書は誤りの文
字列とそれに対応する正解文字列が組みになっており、
誤り訂正部12は、入力文字列中に誤りパターン辞書の
誤り文字列と同じ文字列を発見すると、該当部分を正解
文字列で置き換えることにより訂正を行う。また、慣用
パターン訂正処理は、連鎖確率モデルメモリ31内の連
鎖確率モデルと、誤り訂正辞書メモリ32内の慣用文字
連鎖辞書を用いて文字列の訂正を行う。誤り訂正部12
は、まず、連鎖確率モデルを入力文字列に適用して、連
鎖確率が与えられたしきい値以下の部分の文字列に基づ
いて誤り部分の検出を行う。次いで、この誤り部分とそ
の前後N文字を加えた文字列をもとに、上記の慣用文字
連鎖辞書の中でもっとも類似(例えば、2つの文字列を
同じ文字列にするための文字単位の置換、削除、挿入の
編集操作数を距離とする)しているもので、かつ、与え
られたしきい値以上のものを検索する。そうして検索さ
れた慣用文字連鎖辞書の文字列中(以下、慣用文字列と
いう。)に、誤りとみなした部分の前後数文字が存在す
れば、慣用文字列中の前後数文字にはさまれた部分を取
り出し、誤り部分と置換することにより文字列の訂正を
行う。
【0021】ここで、連鎖確率モデルは、コーパスデー
タベースメモリ内のコーパスデータに基づいて連鎖確率
モデル作成部21により作成されて、連鎖確率モデルメ
モリ31に出力されて格納され、誤り訂正辞書は、コー
パスデータベースメモリ内のコーパスデータに基づいて
誤りパターン辞書作成部22及び慣用文字連鎖辞書作成
部23により作成されて誤り訂正辞書メモリ32に格納
される。ここで、連鎖確率モデル作成部21は、正解文
字列及び、誤り文と正解文の組み合わせなどを格納した
コーパスデータベースメモリ30から正解文字列を読み
込んで、文字や品詞及び単語などの連鎖頻度に基づい
て、連鎖確率モデルを作成して連鎖確率モデルメモリ3
1に出力して格納する。また、誤りパターン辞書作成部
22は、コーパスデータベースメモリ30から誤り文と
正解文の組み合わせを読み込んで、誤り文字列と正解文
字列の組みを抽出及び分類し、組み合わせ頻度や正解文
と誤り文へのパターンマッチの可否に基づいて、誤りパ
ターン辞書を作成して誤り訂正辞書メモリ32に出力し
て格納する。さらに、慣用文字連鎖作成部23は、コー
パスデータベースメモリ30から正解文字列を読み込ん
で、一定長の文字列連鎖を抽出し、その頻度に基づい
て、慣用文字連鎖辞書を作成して誤り訂正辞書メモリ3
2に出力して格納する。
【0022】文字誤り校正装置10には、誤り検出部1
1,13及び誤り訂正部12に接続され、処理を実行す
るために必要なフラグ、パラメータ及びファイルを格納
するための共通ランダムアクセスメモリ(以下、ランダ
ムアクセスメモリをRAMという。)が設けられる。ま
た、誤り検出部11,13及び誤り訂正部12はそれぞ
れ、処理を実行するために必要なフラグ、パラメータ及
びファイルを格納するためのRAM11a,12a,1
3aを備える。さらに、連鎖確率モデル作成部21、誤
りパターン辞書作成部22及び慣用文字連鎖辞書作成部
23はそれぞれ、処理を実行するために必要なフラグ、
パラメータ及びファイルを格納するためのRAM21
a,22a,23aを備える。
【0023】誤り検出及び訂正すべき文字列がキーボー
ド51を用いてパーソナルコンピュータ50に入力され
た後、文字列メモリ54に出力されて格納される。ま
た、誤り検出及び訂正された結果は、文字誤り校正装置
10から文字列メモリ55に出力されて格納された後、
パーソナルコンピュータ50に入力され、その文字列が
CRTディスプレイ52に表示されるとともに、プリン
タ53に出力されて印字される。ここで、各処理部1
0,11,12,13,21,22,23は例えばデジ
タル計算機で構成され、各メモリ30,31,32,5
4,55は例えばハードディスクメモリなどの記憶装置
で構成される。
【0024】図1の文字誤り校正装置10において、各
処理部11,12,13はそれぞれ独立に構成してもよ
い。また、誤り検出部13は設けなくてもよい。さら
に、誤り訂正部12は、誤りパターン訂正処理と慣用パ
ターン訂正処理のうちの少なくとも一方を実行するよう
に構成してもよい。
【0025】まず、各処理部21,22,23の処理に
ついて詳述する。なお、コーパスデータメモリ30は、
正解文の文字列及び、正解文字列と誤り文字列の対を含
むテキストデータのコーパスを予め格納する。
【0026】図17は、図1の連鎖確率モデル作成部2
1によって実行される、連鎖確率モデル作成処理を示す
フローチャートである。図17において、まず、ステッ
プS201でコーパスデータベースメモリ30から正解
文を読み込んだ後、コード化処理(ステップS20
2)、連鎖辞書作成処理(ステップS203)、連鎖頻
度作成処理(ステップS204)、連鎖確率モデル作成
サブルーチン処理(ステップS205)を順次実行す
る。そして、ステップS206で、作成した連鎖確率モ
デルを連鎖確率モデルメモリ31に出力して格納する。
なお、品詞及び単語の混合連鎖確率モデルなどの場合
は、下記のコード化の単位が各モデルに対応した単位
(例えば単語単位)で行う。
【0027】ステップS202のコード化処理部では、
コーパスデータベースメモリ30から読み込んだ文字列
の各文字をコード化し、RAM21a内のコードファイ
ルに格納する。また、同時に文字とコードの対応を記述
した文字辞書テーブルもRAM21aに作成する。コー
ドファイル及び文字辞書テーブルの一例を次の表に示
す。
【0028】
【表2】 コードファイル 例「大阪観光ホテルでございます」部分のコードファイル部分 ――――――――――――――――――――――――――――――――――― 連番 文字コード 備考又は文字 ――――――――――――――――――――――――――――――――――― 003000001 90000001 …「S」に対応 003000002 90000001 …「S」に対応 003000003 00000047 「大」 003000004 00000333 「阪」 003000005 00000198 「観」 003000006 00000199 「光」 003000007 00000019 「ホ」 003000008 00000017 「テ」 003000009 00000020 「ル」 003000010 00000021 「で」 003000011 00000006 「ご」 003000012 00000007 「ざ」 003000013 00000008 「い」 003000014 00000009 「ま」 003000015 00000010 「す」 003000016 90000002 …「E」に対応 ――――――――――――――――――――――――――――――――――― (注)表10と同様に、S、Eはそれぞれ文頭、文末処
理用のラベルである。
【0029】
【表3】
【0030】ステップS203の連鎖辞書作成処理で
は、RAM21aからコードファイルを読み込む。読み
込んだコード列は1コードを一文字とする1本の文字列
とみなす(文字数はL)。次に、この文字列の先頭の1
文字を取り去った文字列を別の一つの単語とみなす。さ
らにまた先頭の1文字を取り去った文字列を別の単語と
みなす。これを最後の1文字まで行うと、L個の単語
(部分コード列)集合が生成できる。これをソートして
辞書を作成し、この辞書の隣接する単語が先頭から何文
字までが同じ文字(共通文字数)であるかを求め、連鎖
辞書ファイルとして連鎖確率モデルメモリ31に出力し
て格納する。連鎖辞書ファイルの一例を次の表に示す。
【0031】
【表4】 (注)項目1はコードファイルとの位置関係(コードフ
ァイルの連番と対応する)を示す。
【0032】ステップS204の連鎖頻度作成処理で
は、連鎖確率モデルメモリ31から連鎖辞書ファイルを
読み込み、RAM21a内のコードファイルを参照して
与えられた文字数分(N)だけ連続する文字列とその頻
度を求め、N連鎖頻度ファイルを作成する。連鎖頻度フ
ァイルの一例を次の表に示す。本明細書において、N個
だけ連続する文字列の頻度をN連鎖頻度という。
【0033】
【表5】 連鎖頻度ファイル(3文字連鎖の例) ――――――――――――――――――――――――――――――――――― 文字コード1 文字コード2 文字コード3 頻度 ――――――――――――――――――――――――――――――――――― 00000003 00000058 00000045 1 00000003 00000058 00000051 10 00000003 00000058 00000057 2 00000003 00000058 00000058 2 00000003 00000058 00000075 2 00000003 00000058 00000089 4 00000003 00000058 00000159 7 00000003 00000058 00000167 1 00000003 00000058 00000187 6 ―――――――――――――――――――――――――――――――――――
【0034】ステップS205の連鎖確率モデル作成処
理では、N連鎖頻度ファイルとN−1連鎖頻度ファイル
から、N連鎖確率モデルを作成する。3文字の文字連鎖
確率テーブルの一例を次の表に示す。
【0035】
【表6】
【0036】N連鎖確率の定義式は次式で表される。
【数1】 N連鎖確率=log10{(N連鎖頻度)÷(N−1連鎖頻度)} ここで、N連鎖頻度とは複数N個の文字列が連鎖する頻
度をいい、N−1連鎖頻度は上記複数N個の文字列のう
ち最初のN−1個の文字列が連鎖する頻度をいう。ま
た、対数は便宜上のスケール変換である。従って、N連
鎖確率とは、N連鎖頻度をN−1連鎖頻度で除算して得
た確率値であって、N−1連鎖に対するN連鎖の確率を
表わす。本実施形態では、好ましくは、N=3である。
本実施形態において、文字のN連鎖確率を求めている
が、本発明はこれに限らず、単語又は品詞などの単位の
N連鎖確率を求めてもよい。
【0037】連鎖確率モデル作成処理の原理を文字列の
一例「ABABCDABC」を用いて以下に示す。 (1)「ABABCDABC」をコード化する(コード
化処理)。ここでの例では、コード化結果は便宜上その
ままとする。 (2)構成する部分コード列の集合を作成する(連鎖辞
書作成処理)。読み込んだコード列は1コードを一文字
とする1本の文字列とみなす。次に、この文字列の先頭
の1文字を取り去った文字列を別の一つの単語とみな
す。さらにまた先頭の1文字を取り去った文字列を別の
単語とみなす。これを最後の1文字まで行ない、次の表
に示す単語(部分コード列)集合を生成する。
【0038】
【表7】 ――――――――――――――――――――――――――― 単語(部分コード列) ――――――――――――――――――――――――――― ABABCDABC …入力列 BABCDABC …先頭1文字を取り去った単語 ABCDABC …先頭2文字を取り去った単語 BCDABC CDABC DABC ABC BC C ―――――――――――――――――――――――――――
【0039】(3)上記の単語(部分コード列)を、例
えばアルファベット又はあいうえお順などの辞書式順序
にソートし、下方のみに隣接する単語が先頭から何文字
までが同じ文字であるかを求める(連鎖辞書作成処
理)。連鎖辞書の一例を次の表に示す。
【0040】
【表8】 連鎖辞書の一例 ―――――――――――――――――――――――――― 単語 共通文字数 備考 ―――――――――――――――――――――――――― ABABCDABC 2 「AB」が一致 ABC 3 「ABC」が一致 ABCDABC 0 一致するものなし BABCDABC 1 「B」が一致 BC 2 「BC」が一致 BCDABC 0 一致するものなし C 1 「C」が一致 CDABC 0 一致するものなし DABC 0 一致するものなし ――――――――――――――――――――――――――
【0041】(4)上記の連鎖辞書をもとに、例えば2
文字連鎖の文字列と頻度は次の手順で求める(連鎖頻度
作成処理)。 (4−1)連鎖辞書で共通文字数が2以上の辞書位置を
みつけ、そこからスタートして共通文字数が2未満にな
るまでを計数する。ここでは、「ABABCDABC」
の共通文字数が2で、ここから開始して共通文字数が2
未満になるのは「ABCDABC」の0までで、計数値
は3となる。これは開始の単語の先頭2文字の文字連鎖
「AB」の頻度が3であることを意味する。同じように
文字連鎖「BC」の頻度2が求まる。同様に3文字の連
鎖「ABC」の頻度は2である。 (4−2)もし、上記(4−1)の処理で扱われない単
語は頻度1とする。例えば、「BABCDABC」は上
記(4−1)の処理では扱われないので、これから2文
字連鎖「BA」の頻度は1である。
【0042】(5)「ABC」の連鎖確率の計算は、
「AB」の頻度3と「ABC」の頻度2より、log
(2/3)=−0.176として計算する(連鎖確率モ
デル作成サブルーチン処理)。
【0043】図26は、図1の慣用文字連鎖辞書作成部
23によって実行される、慣用文字連鎖辞書作成処理を
示すフローチャートである。図26において、まず、ス
テップS401でコーパスデータベースメモリ30から
正解文字列を読み込み、次いで、コード化処理(ステッ
プS402)、連鎖辞書作成処理(ステップS40
3)、連鎖頻度作成処理(ステップS404)、慣用文
字連鎖辞書作成サブルーチン処理(ステップS405)
を順次実行する。さらに、作成した慣用文字連鎖辞書を
誤り訂正辞書メモリ32に出力して格納する。すなわ
ち、慣用文字連鎖辞書作成処理は、データベースから正
解文字列を読み込んで、一定長の文字列連鎖を抽出し、
その頻度に基づいて、慣用文字連鎖辞書を作成する処理
である。なお、コード化処理(ステップS402)、連
鎖辞書作成処理(ステップS403)、連鎖頻度作成処
理(ステップS404)はそれぞれ、図17の対応する
処理と同様の処理を実行する処理である。
【0044】ステップS405の慣用文字連鎖辞書作成
処理では、当該慣用文字連鎖辞書作成サブルーチン処理
では、RAM23a内のN文字(本実施形態では、N=
10である。)の連鎖頻度ファイルを読み込み、その頻
度が与えられたしきい値(本実施形態では、3)以上の
文字列を取り出す処理を行い、処理後のデータを慣用文
字連鎖辞書として誤り訂正辞書メモリ32に格納され
る。すなわち、より高い頻度の連鎖文字列を慣用文字連
鎖辞書に格納する。慣用文字連鎖辞書のデータ構造例を
次の表に示す。
【0045】
【表9】 (注)種類において、1は文頭を示す、2は文末を示
し、3は文中を示す。
【0046】図31は、図1の誤りパターン辞書作成部
22によって実行される、誤りパターン辞書作成処理を
示すフローチャートである。当該誤りパターン辞書作成
処理は、まず、ステップS501でコーパスデータベー
スメモリ30から誤り文と正解文のペアを読み込み、誤
り情報抽出処理(ステップS502)、誤り文字情報分
類処理(ステップS503)、及び誤りパターン辞書作
成サブルーチン処理(ステップS504)を順次実行す
る。さらに、ステップS505で作成した誤りパターン
辞書を誤り訂正辞書を誤り訂正辞書メモリ32に出力し
て格納する。
【0047】ステップS502の誤り情報抽出処理で
は、誤り文と正解文のペアに基づいて、誤り位置と誤り
文字列、それに対応する正解文字列を抽出し、それぞれ
の文字列にその前後N文字(ここではN=5)の文字を
付加して、誤り文字情報ファイル及び誤り位置情報ファ
イルをRAM22aに出力して格納する。誤り文字情報
ファイル及び誤り位置情報ファイルを次の表に示す。
【0048】
【表10】 誤り文字情報ファイル ――――――――――――――――――――――――――――――――――― 頻度 正解文字列 : 誤り文字列 ――――――――――――――――――――――――――――――――――― 1 ますとどの<ような状態>でございま:も僧どもの<何ちょて>でございま 1 ちの方は何<日>からになり:ちの方は何<時>からなりま 1 バス付きの<部屋は無い>んですかE:丸コースの<ような>んですかE 1 SSSSS<あ>ー和室にし:SSSSS<お>−和室をに 1 たので当日<お>気をつけて:たので当日<を>気をつけて 1 い三〇六の<鈴木>様明朝八時:い三〇六の<ずでき>様分じゃ八 1 いになると<思い>ますEEE:いになると<前>ますEEE ――――――――――――――――――――――――――――――――――― (注)<>は誤りの位置を示す。S、Eはそれぞれ文
頭、文末処理用のラベルである。
【0049】
【表11】 誤り位置情報ファイル ――――――――――――――――――――――――――――――――――― 文の識別情報 誤り位置情報 ――――――――――――――――――――――――――――――――――― TAC22011.customer.6 /A:2:3/D:9:1/D:10:1/S:12:13 TAC22011.customer.7 /S:13:21/S:28:28/S:32:34 TAC22011.customer.8 /A:2:2 TAC22011.customer.9 /A:3:3/S:6:9/S:16:16 TAC22011.customer.10 TAC22011.customer.11 /A:3:3/S:6:8/S:13:20 TAC22011.customer.12 /S:11:11/S:14:17/S:34:37 ――――――――――――――――――――――――――――――――――― (注)誤り位置情報のA、D、Sはそれぞれ挿入、欠
落、置換を表す。次に続く数字は誤り位置の始点と終
点。複数ある場合は/で区切っている。
【0050】ステップS503の誤り文字情報分類処理
では、誤り文字情報ファイルを読み込み、誤り文字列と
対応する正解文字列をキーにして分類し、誤り文字情報
分類ファイルとしてRAM22aに出力して格納する。
誤り文字情報分類ファイルの一例を次の表に示す。
【0051】
【表12】 誤り文字情報分類ファイル 正解文字列:「てお」、誤り文字列:「と」についての例 ――――――――――――――――――――――――――――――――――― 正解文字列 : 誤り文字列 :頻度(又は度数) ――――――――――――――――――――――――――――――――――― をいただい<てお>りますEE:できみたい<と>りますEE:1 部屋で続け<てお>取りした方:部屋で続け<と>取りした方:1 ち申し上げ<てお>りますあり:ち申し上げ<と>りますあり:1 いお待ちし<てお>ります恐れ:いお待ちし<と>ります恐れ:1 お預かりし<てお>きますEE:ますかりし<と>きますEE:1 ので用意し<てお>いて下さい:ので用意し<と>いてくださ:1 ――――――――――――――――――――――――――――――――――― (注)<>は誤り部分と正解部分が対応するそれぞれの
位置を示し、:は正解文字列、誤り文字列、頻度を区切
るものである。Eは文末を示す記号である。
【0052】ステップS504の誤りパターン辞書作成
サブルーチン処理では、RAM22a内の誤り文字情報
分類ファイルを読み込み、分類されたパターンごとに、
誤り文字列を中心に前後の文字を追加した文字列集合を
作成し、その文字列集合の中から誤りパターンとして適
当な条件を満たすものを選択して誤りパターン辞書とし
て誤り訂正辞書メモリ32に出力して格納する。すなわ
ち、誤り文字情報分類ファイルを読み込み、分類された
パターンごとに、誤り文字列を中心に前後に文字を追加
した文字列を作成しながら、その文字列の出現頻度が2
以上のもので、かつ、正解文にパターンマッチせず、か
つ、誤り文に対してパターンマッチしたものはマッチし
た位置が誤り位置と重なる条件のものを取り出し、誤り
パターンとして出力する。誤りパターン辞書の一例を次
の表に示す。
【0053】
【表13】
【0054】誤りパターン辞書作成処理の原理は次のと
おりである。 (1)正解文と誤り文のペアから抽出した文字列のパタ
ーンを、表14で示されるように、<>で示される誤り
部分と正解部分に係る同一のペアを集めるように分類し
た後の結果が次の表に示すものが得られたとする。
【0055】
【表14】 ――――――――――――――――――――――――――――――――――― からとなっ<てお>りますがE:からとなっ<と>りますがE:1 インとなっ<てお>りますがE:インとなっ<と>りますがE:1 千円となっ<てお>りますがE:千円となっ<と>りますがE:1 ――――――――――――――――――――――――――――――――――― (注)<>は誤り部分と正解部分が対応するそれぞれの
位置を示し、:は正解文字列、誤り文字列、頻度を区切
るものである。Eは文末を示す記号である。
【0056】(2)上記分類パターンから<てお>と<
と>の前後数文字を付加したすべての組み合わせの文字
列パターンを作成する。それらに対して頻度が与えられ
たしきい値以上(この例では、2以上)のものを選択す
る(次の表の4種類1)乃至4))。次いで、コーパス
データメモリ30内の正解文と、上記選択した誤り文字
列とのパターンマッチを行い、マッチしたものは候補か
ら除外する(この例では、次の表の1)と3)がマッチ
した)。最後に、残りの候補(すなわち、除外後の選択
した誤り文字列)とコーパスデータメモリ30内の誤り
文との間でパターンマッチを行い、マッチしたものはマ
ッチした位置が誤り位置と重なるかどうかをチェックす
る(ここでは、4)がこの条件を満たす)。これらの条
件をすべてクリアしたものを誤りパターンとして誤りパ
ターン辞書に格納する。
【0057】
【表15】 ――――――――――――――――――――――――――――――――――― パターン 頻度 D1 D2 ――――――――――――――――――――――――――――――――――― 1)<てお>:<と> 3 〇 2)っ<てお>り:っ<と>り 3 × × 3)<てお>ります:<と>ります 3 〇 4)なっ<てお>ります:なっ<と>ります 3 × 〇 ――――――――――――――――――――――――――――――――――― (注)D1は正解文とのパターンマッチ可否を示し、D
2は誤り文とのパターンマッチで誤り位置と重なるかど
うかの可否を示す。
【0058】次いで、文字誤り校正装置10の各処理部
11,12,13,21,22,23の各処理のフロー
チャート(図2乃至図47)について詳述する。各処理
では、処理名が付与されており、その処理の入力引数と
出力引数を各フローチャートにおいて表示している。例
えば、図2の誤り検出処理では、処理名Examine
が付与されており、引数として(Sent,Limi
t,Flag)の3つが使用される。以下、表記法は同
様である。
【0059】図2は、図1の文字誤り校正装置10によ
って実行されるメインルーチンの文字誤り校正処理を示
すフローチャートである。図2において、まず、ステッ
プS1で、文字列メモリ54から入力された文字列を文
字列パラメータSentに代入し、文字列の連鎖確率が
しきい値よりも低い文字が連続するものを誤りブロック
としたとき、すなわち誤りブロックを判断するときの連
鎖確率のしきい値をパラメータLimitに代入した
後、ステップS2で誤り検出部11による誤り検出処理
を実行する。そして、ステップS3では、誤りが生じて
いるか否かを表わすフラグFlagがFlag≠1であ
るか否かが判断され、NOのとき誤りなしと判断されて
ステップS10でフラグFに1を代入してステップS9
に進む。一方、ステップS3でYESであるときは誤り
があるので、ステップS4で誤り訂正部12による誤り
訂正処理を実行する。そして、ステップS5では、訂正
が生じているか否かを表わすフラグFlagがFlag
≠1であるか否かが判断され、NOのとき訂正なしと判
断されてステップS11でフラグFに2を代入してステ
ップS9に進む。一方、ステップS5でYESであると
きは訂正があるので、ステップS6で誤り検出部13に
よる誤り検出処理を実行する。そして、ステップS7で
は、誤りが生じているか否かを表わすフラグFlagが
Flag≠1であるか否かが判断され、NOのとき誤り
なしと判断されてステップS12でフラグFに3を代入
してステップS9に進む。一方、ステップS7でYES
であるときは誤りがあるので、ステップS8でフラグF
に4を代入してステップS9に進む。ステップS9で
は、フラグF、入力された元の文字列Sent及び誤り
検出及び訂正された文字列NewSentを文字列メモ
リ55に出力して格納する。
【0060】図3は、図1の誤り検出部11及び13に
よって実行される、図2及び図9のサブルーチンである
誤り検出処理(ステップS2,S6,S111)を示す
フローチャートである。図3において、まず、ステップ
S21で連鎖確率計算処理を実行し、ステップS22で
誤りブロック計算処理を実行した後、ステップS23で
誤り個数NがN>0であるか否かが判断され、YESで
あるときは誤りがあるのでフラグFlagに1を代入し
て元のメインルーチンに戻る。一方、NOであるとき
は、誤りがないのでステップS24でフラグFlagに
0を代入して元のメインルーチンに戻る。当該誤り検出
処理では、入力された文字列Sentに対して、連鎖確
率モデルを適用して入力文字列の連鎖確率を求め、その
連鎖確率が与えられたしきい値Limit以下の部分に
基づいて文字列に含まれる誤り部分を特定し、その位置
を求めて出力する。
【0061】図4は、図3のサブルーチンである連鎖確
率計算処理(ステップS21)を示すフローチャートで
ある。当該連鎖確率計算処理では、入力された文字列S
entに対して、連鎖確率モデルを適用して入力文字列
Sentのそれぞれの文字ごとに連鎖確率を求め、その
連鎖確率が与えられたしきい値Limit以下かどうか
をRAM11a内の誤りテーブルに格納する。図5は、
図3のサブルーチンである誤りブロック計算処理(ステ
ップS22)を示すフローチャートである。当該誤りブ
ロック計算処理では、誤りテーブルに格納された情報に
基づいて、入力文字列において連鎖確率が与えられたし
きい値Limit以下の部分から誤りブロックの数Nと
それぞれの始点Pos1及び終点Pos2を求め、RA
M11a内の誤り位置テーブルに格納する。
【0062】図6は、図1の誤り訂正部12によって実
行される、図2のサブルーチンである誤り訂正処理(ス
テップS4)を示すフローチャートである。当該誤り訂
正処理では、入力された文字列Sentに対して、誤り
訂正処理を実行する。誤り訂正処理は誤りパターン訂正
処理(ステップS72)と慣用パターン訂正処理(ステ
ップS76)の2処理を含む。前者は、誤りパターン辞
書に定義された誤り文字列が入力文字列の一部と一致す
るとき、一致した部分を正解文字列に置き換えて訂正を
行なう。また、後者は検出した誤り部分とその前後N文
字を加えた文字列をもとに、慣用文字連鎖辞書の中でも
っとも類似している文字列を検索し、その検索文字列
と、誤り部分を含む文字列とを比較することにより訂正
を行なう。
【0063】図7は、図6のサブルーチンである誤りパ
ターン訂正処理(ステップS72)を示すフローチャー
トである。当該誤りパターン訂正処理は、誤りパターン
訂正01処理(ステップS93)を含み、誤り訂正辞書
メモリ32内の誤りパターン辞書に定義された誤り文字
列が入力文字列WkSentの一部と一致するかどうか
調べ、一致した場合は一致した部分を正解文字列に置き
換える。置き換えが発生した場合はフラグF=1が返さ
れ、置き換えによって訂正された文字列NewSent
が返される。それ以外はフラグF=0が返される。図8
は、図7のサブルーチンである誤りパターン訂正01処
理(ステップS93)を示すフローチャートである。当
該誤りパターン訂正01処理では、誤り訂正辞書メモリ
32内の誤りパターン辞書から1つの誤りパターンを取
り出し、その誤りパターンの誤り部が入力文字列Sen
tに完全一致するか否かを調べ、一致した場合は入力文
字列Sentの一致部分を誤りパターンの正解部に置き
換える。上記処理を一致する部分がなくなるまで繰り返
す。
【0064】図9は、図6のサブルーチンである慣用パ
ターン訂正処理(ステップS76)を示すフローチャー
トである。当該慣用パターン訂正処理は、誤り検出処理
(ステップS111)、慣用パターン訂正01処理(ス
テップS116)、慣用パターン訂正02処理(ステッ
プS118)及び慣用パターン訂正03処理(ステップ
S119)を含む。そして、当該慣用パターン訂正処理
では、検出した誤り部分とその前後Na文字を加えた文
字列をもとに、誤り訂正辞書メモリ32内の慣用文字連
鎖辞書の中でもっとも類似しているもので、かつ、与え
られたしきい値Limit以上の文字列を検索し、その
検索文字列と誤り部分を含む文字列が与えられた条件を
満たす場合、検索文字列中の一部と誤り部分を含む文字
列の一部を置き換える。置き換えが発生した場合はフラ
グFlag=1が返され、置き換えによって訂正された
文字列NewSentが返される。それ以外はフラグF
lag=0が返される。
【0065】図10は、図9のサブルーチンである慣用
パターン訂正01処理(ステップS116)を示すフロ
ーチャートである。当該慣用パターン訂正01処理は、
慣用文字連鎖確率検索処理(ステップS132)及び慣
用文字列からの置換部分抽出処理(ステップS134)
を含む。当該慣用パターン訂正01処理では、入力文字
列Sentにある誤りブロックが文字列の先端近くにあ
る場合の慣用パターン訂正を行なう。該当する誤りブロ
ックの始点Pos1と終点Pos2をもとに、誤りブロ
ックにSent内で誤りブロックより前にある文字列と
後ろにあるN文字(本実施形態では、N=5である。)
を加えた文字列をもとに、誤り訂正辞書メモリ32内の
慣用文字連鎖辞書の中でもっとも類似しているもので、
かつ、与えられたしきい値以上の文字列を検索し、その
検索文字列と誤り部分を含む文字列が与えられた条件を
満たす場合、検索文字列中の一部と誤り部分を含む文字
列の一部を置き換えて、訂正後の文字列をNewSen
tとして返される。
【0066】図11は、図9のサブルーチンである慣用
パターン訂正02処理(ステップS118)を示すフロ
ーチャートである。当該慣用パターン訂正02処理は、
慣用文字連鎖確率検索処理(ステップS142)及び慣
用文字列からの置換部分抽出処理(ステップS144)
を含む。当該慣用パターン訂正02処理では、入力文字
列Sentにある誤りブロックが文字列の終端近くにあ
る場合の慣用パターン訂正を行なう。該当する誤りブロ
ックの始点Pos1と終点Pos2をもとに、誤りブロ
ックにSent内で誤りブロックより前にあるN文字
(本実施形態では、N=5である。)と後ろにある文字
列を加えた文字列をもとに、誤り訂正辞書メモリ32内
の慣用文字連鎖辞書の中でもっとも類似しているもの
で、かつ、与えられたしきい値以上の文字列を検索し、
その検索文字列と誤り部分を含む文字列が与えられた条
件を満たす場合、検索文字列中の一部と誤り部分を含む
文字列の一部を置き換えて、訂正後の文字列をNewS
entとして返される。
【0067】図12は、図9のサブルーチンである慣用
パターン訂正03処理(ステップS119)を示すフロ
ーチャートである。当該慣用パターン訂正03処理は、
慣用文字連鎖確率検索処理(ステップS152)及び慣
用文字列からの置換部分抽出処理(ステップS154)
を含む。当該慣用パターン訂正03処理では、入力文字
列Sentにある誤りブロックが文字列の中程にある場
合の慣用パターン訂正を行なう。該当する誤りブロック
の始点Pos1と終点Pos2をもとに、誤りブロック
にSent内で誤りブロックより前にあるN文字(本実
施形態では、N=5である。)と後ろにあるN文字(本
実施形態では、N=5である。)を加えた文字列をもと
に、誤り訂正辞書メモリ32内の慣用文字連鎖辞書の中
でもっとも類似しているもので、かつ、与えられたしき
い値以上の文字列を検索し、その検索文字列と誤り部分
を含む文字列が与えられた条件を満たす場合、検索文字
列中の一部と誤り部分を含む文字列の一部を置き換え
て、訂正後の文字列をNewSentとして返される。
【0068】図13は、図10、図11及び図12のサ
ブルーチンである慣用文字連鎖検索処理(ステップS1
32,S142,S152)を示すフローチャートであ
る。当該慣用文字連鎖検索処理では、誤りブロックと前
後の文字列を加えた文字列Kwをもとに、慣用文字連鎖
辞書から次の条件に適合する文字列を検索する。 (a)誤りブロック位置の種類(先端、終端、中程)に
適合するもの。 (b)もっとも類似しているもの。 (c)類似度が与えられたしきい値以上のもの。 上記条件を満たす文字列が検索された場合はフラグFl
agが1で返され、検索文字列Iwが返される。満たす
ものが無い場合はフラグFlag=0が返される。
【0069】図14、図15及び図16は、図10、図
11及び図12のサブルーチンである慣用文字列からの
置換部分抽出処理(ステップS134,S144,S1
54)を示すフローチャートである。当該慣用文字列か
らの置換部分抽出処理では、誤り訂正辞書メモリ32内
の慣用文字列辞書から検索された文字列Iwの中から、
置換訂正用の文字列を取り出す。誤りブロック位置の種
類(先端、終端、中程)で処理が若干異なる。 (I)先端の場合、誤りブロックより後のさらに1文字
後の2文字Aw2が文字列Iwに含まれるか否かを調
べ、含まれる場合はフラグFlagが1で返され、置換
文字列Swとして、Iw中でAw2より前にある文字列
が返される(ステップS180参照。)。含まれない場
合はフラグFlag=0が返される。 (II)終端の場合、誤りブロックより前のさらに1文字
前の2文字Bw2が文字列Iwに含まれるか否かを調
べ、含まれる場合はフラグFlagが1で返され、置換
文字列Swとして、Iw中でBw2より後にある文字列
が返される(ステップS183参照。)。含まれない場
合はフラグFlag=0が返される。 (III)中程の場合、誤りブロックより後のさらに1文
字後の2文字Aw2と誤りブロックより前のさらに1文
字前の2文字Bw2が文字列Iwに含まれるか否かを調
べ、含まれる場合はフラグFlagが1で返され、置換
文字列Swとして、Iw中でAw2とBw2の間にある
文字列が返される(ステップS177参照。)。含まれ
ない場合はフラグFlag=0が返される。
【0070】図17は、図1の連鎖確率モデル作成部2
1によって実行される、連鎖確率モデル作成処理を示す
フローチャートであり、上述の通り、コード化処理(ス
テップS202)、連鎖辞書作成処理(ステップS20
3)、連鎖頻度作成処理(ステップS204)、連鎖確
率モデル作成サブルーチン処理(ステップS205)を
含む。
【0071】図18は、図17及び図26のサブルーチ
ンであるコード化処理(ステップS202,S402)
を示すフローチャートである。当該コード化処理では、
コーパスデータベースメモリ30から読み込んだ文字列
の各文字をコード化し、RAM21a内のコードファイ
ルに格納する。また、同時に文字とコードの対応を記述
した文字辞書テーブルもRAM21aに作成する。
【0072】図19は、図17及び図26のサブルーチ
ンである連鎖辞書作成処理(ステップS203,S40
3)を示すフローチャートである。当該連鎖辞書作成処
理では、RAM21aからコードファイルを読み込む。
読み込んだコード列は1コードを1文字とする1つの文
字列(単語)とみなす。次に、この文字列の先頭の1文
字を取り去った文字列を別の単語とみなす。さらにま
た、先頭1文字を取り去った文字列を別の単語とみな
す。これを最後の1文字まで行なうと、読み込んだコー
ド数分の単語集合ができ、この単語集合をソートして辞
書を作成し、この辞書の隣接する単語が先頭から何文字
同じ文字であるかを求め、連鎖辞書ファイルとして連鎖
確率モデルメモリ31に出力して格納する。
【0073】図20は、図19のサブルーチンである位
置ポインタDic[i]のソート処理(ステップS23
2)を示すフローチャートである。当該ソート処理で
は、RAM21a内のText[i]にコードファイル
のコードが格納されており、コード数はNumである。
Text[]を文字列と見なし、また、連番Dic
[i]を各文字列の先頭位置がText[i]上でどこ
に位置するかのポインタとする。ソート前において、D
ic[i]には0から始まる連番が格納されているの
で、Dic[0]は全体、Dic[1]は先頭から1文
字取り去った別の文字列などと考えることができ、全部
でNum個の文字列集合(Dic[i])をソートする
ことになる。当該ソート処理の一例を次の表に示す。
【0074】
【表16】 ソート処理の一例 ――――――――――――――――――――――――――――――――――― ソート前 ソート後 ――――――――――――――――――――――――――――――――――― 01234 Text[] XGTSI ――――――――――――――――――――――――――――――――――― Dic[0]=0 XGTSI =1 GTSI Dic[1]=1 GTSI =4 I Dic[2]=2 TSI =3 ST Dic[3]=3 SI =2 TSI Dic[4]=4 I =0 XGTSI ―――――――――――――――――――――――――――――――――――
【0075】この表の処理では、具体的には、ソート前
では、Text[]の位置ポインターであるDic
[i]には0から始まる連番が格納されており、それの
意味するところは、各Dic[i]が指し示す単語がそ
れぞれ、「XGTSI」、「GTSI」、…、「I」の
順に並んでいることを示している。ソートは上記の各単
語を、例えばアルファベット又はあいうえお順などの辞
書式順序に従って行い、ソート後はDic[i]にはそ
れぞれ、1、4、3、2、0が格納される。これは、各
Dic[i]が指し示す単語がそれぞれ、「GTS
I」、「I」、…、「XGTSI」の順に並んでいるこ
とを示している。以上のように、当該ソート処理はTe
xt[]に含まれる単語集合のソート処理を位置ポイン
ターであるDic[i]を用いてText[]内の単語
を間接的に参照しながら行なっている。
【0076】図21は、図20のサブルーチンである比
較処理(ステップS246)を示すフローチャートであ
る。当該比較処理では、連番パラメータDic[i]と
Dic[j]が指し示すコード列Text[Dic
[i]]とText[Dic[j]]を比較して大小を
調べる。このとき、 (i)Text[Dic[i]]>Text[Dic
[j]]のとき、 フラグflag=1とし、 (ii)Text[Dic[i]]=Text[Dic
[j]]のとき、 フラグflag=0とし、 (iii)Text[Dic[i]]<Text[Dic
[j]]の時、 フラグflag=−1として、 フラグflagを返す。
【0077】図22は、図19のサブルーチンである一
致コード数計数処理(ステップS236)を示すフロー
チャートである。当該一致コード数計数処理では、Te
xt[]のd1番目から始まるコード列(Text[d
1])とd2番目から始まるコード列(Text[d
2])を比較して、先頭から何個のコードが共通か(一
致するか)を計数する。その処理の一例を次の表に示
す。
【表17】 ―――――――――――――――――――――――――――― (例)「abckjfur」と、 「abckuhjolkjh」とを比較して、 「abck」の4文字が一致することを得る。 ――――――――――――――――――――――――――――
【0078】図23は、図17及び図26のサブルーチ
ンである連鎖頻度作成処理(ステップS204,S40
4)を示すフローチャートである。当該連鎖頻度作成処
理では、連鎖確率モデルメモリ31から連鎖辞書ファイ
ルを読み込み、与えられた文字数分(N)だけ連続する
文字列とその頻度を求め、N連鎖頻度ファイルを作成す
る。図24は、図23のサブルーチンである連鎖頻度作
成サブルーチン処理(ステップS287)を示すフロー
チャートであり、当該連鎖頻度作成サブルーチン処理で
は、連鎖辞書の共通文字数が与えられたしきい値Lim
itよりも小さくなるまでの回数を計数することで、L
imitの文字数分だけ連続する文字列の頻度を求める
処理を行なっている。
【0079】図25は、図17のサブルーチンである連
鎖確率モデル作成サブルーチン処理(ステップS20
5)を示すフローチャートである。当該連鎖確率モデル
作成サブルーチン処理では、N連鎖頻度ファイルとN−
1連鎖頻度ファイルから、N連鎖確率モデルを作成す
る。
【0080】図26は、図1の慣用文字連鎖辞書作成部
23によって実行される、慣用文字連鎖辞書作成処理を
示すフローチャートであり、慣用文字連鎖辞書作成処理
は、上述のように、コード化処理(ステップS40
2)、連鎖辞書作成処理(ステップS403)、連鎖頻
度作成処理(ステップS404)、慣用文字連鎖辞書作
成サブルーチン処理(ステップS405)を含む。図2
7は、図26のサブルーチンである慣用文字連鎖辞書作
成サブルーチン処理(ステップS405)を示すフロー
チャートである。当該慣用文字連鎖辞書作成サブルーチ
ン処理では、RAM23a内のN文字の連鎖頻度ファイ
ルを読み込み、その頻度が与えられたしきい値以上の文
字列を取り出す処理を行っている。
【0081】図28は、図27のサブルーチンである文
字連鎖作成処理(ステップS413)を示すフローチャ
ートである。当該文字連鎖作成処理では、RAM23a
内のN文字連鎖頻度ファイルの中の1つのコード列(C
ode)について、コード列に含まれる文頭、文末コー
ド(90000001、90000002)をもとに元
のコード列を区切り、コードを文字に変換しながら、複
数の部分文字列を生成する。また、文頭、文末コードが
出現する位置によって、それぞれの部分文字列列の種類
を求め、慣用文字連鎖辞書として誤り訂正辞書メモリ3
2に出力して格納する。
【0082】図29は、図28のサブルーチンである文
字連鎖作成サブルーチンA処理(ステップS427)を
示すフローチャートであり、当該文字連鎖作成サブルー
チンA処理では、文頭、文末コードで区切られたコード
列について、コードを文字に変換して得られた部分文字
列をWd[w]に格納し、部分文字列数wの計数と部分
文字列の種類を決めるパラメータ(fst[w]、fe
d[w])を設定する処理を行なっている。図30は、
図28のサブルーチンである文字連鎖作成サブルーチン
B処理(ステップS430)を示すフローチャートであ
り、当該文字連鎖作成サブルーチンB処理では、得られ
たそれぞれの部分文字列について、そのパラメータ(f
st[A]、fed[A])に基づいて部分文字列の種
類を決定し、慣用文字列辞書に慣用文字列と種類、頻度
を慣用文字連鎖辞書に出力する処理を行なっている。
【0083】図31は、図1の誤りパターン辞書作成部
22によって実行される、誤りパターン辞書作成処理を
示すフローチャートである。当該誤りパターン辞書作成
処理は、上述のように、誤り情報抽出処理(ステップS
502)、誤り文字情報分類処理(ステップS50
3)、及び誤りパターン辞書作成サブルーチン処理(ス
テップS504)を含む。
【0084】図32は、図31のサブルーチンである誤
り情報抽出処理(ステップS502)を示すフローチャ
ートである。当該誤り情報抽出処理では、コーパスデー
タベースメモリ30から、誤り文と正解文のペア(対)
を読み込み、誤り位置と誤り文字列、それに対応する正
解文字列を抽出し、それぞれの文字列にその前後N文字
の文字を付加して出力する。誤り位置は誤り位置情報フ
ァイルとしてRAM22aに出力して格納する一方、上
記の付加文字列は誤り文字情報ファイルとしてRAM2
2aに出力して格納する。
【0085】図33は、図32のサブルーチンである差
分の文字列diff結果の解析処理(ステップS51
4)を示すフローチャートである。当該差分の文字列d
iff結果の解析処理では、図32のステップS514
の差分の文字列diff結果の解析処理による、誤り文
と正解文の差分解析結果(diffプログラムの適用結
果)に基づいて、挿入、欠落、置換の誤り種類ごとに誤
り位置および誤り文字列、それに対応する正解文字列を
抽出し、それぞれの文字列にその前後N文字の文字を付
加して出力する。
【0086】図34は、図33の解析サブルーチンA処
理(ステップS524)を示すフローチャートであり、
当該解析サブルーチンA処理では、挿入誤りが出現した
場合について、誤り文における挿入文字列とその位置を
求め、さらに、誤り位置前後の五文字を正解文、誤り文
それぞれから取り出して誤り文字情報ファイルに出力す
る処理を行なっている。図35は、図33の解析サブル
ーチンB処理(ステップS526)を示すフローチャー
トであり、当該解析サブルーチンB処理では、欠落誤り
が出現した場合について、誤り文における欠落文字列と
その位置を求め、さらに、誤り位置前後の五文字を正解
文、誤り文それぞれから取り出して誤り文字情報ファイ
ルに出力する処理を行なっている。図36は、図33の
解析サブルーチンC処理(ステップS528)を示すフ
ローチャートであり、当該解析サブルーチンC処理で
は、置換誤りが出現した場合について、誤り文における
置換文字列とその位置、及び正解文における対応する位
置と置換文字列を求め、さらに、誤り位置前後の五文字
を正解文、誤り文それぞれから取り出して誤り文字情報
ファイルに出力する処理を行なっている。
【0087】図37は、図31のサブルーチンである誤
り文字情報分類処理(ステップS503)を示すフロー
チャートである。当該誤り文字情報分類処理では、誤り
文字情報ファイルを読み込み、誤り文字列と対応する正
解文字列をキーにして分類し、誤り文字情報分類ファイ
ルとしてRAM22aに出力して格納する。
【0088】図38は、図31のサブルーチンである誤
りパターン辞書作成サブルーチン処理(ステップS50
4)を示すフローチャートである。当該誤りパターン辞
書作成サブルーチン処理では、RAM22a内の誤り文
字情報分類ファイルを読み込み、分類されたパターンご
とに、誤り文字列を中心に前後の文字を追加した文字列
集合を作成し、その文字列集合の中から誤りパターンと
して適当な条件を満たすものを選択して誤りパターン辞
書として誤り訂正辞書メモリ32に出力して格納する。
【0089】図39は、図38のサブルーチンである誤
りパターン候補生成処理(ステップS582)を示すフ
ローチャートである。当該誤りパターン候補生成処理で
は、分類された誤りを含む文字列と対応する正解文字列
のペアの集合について、誤り部と対応する正解部を中心
に、それぞれの前後に同じ数の文字を付け加えた文字列
の誤り、正解文字列のペアを生成し、そのペアの頻度を
計数する。図40は、図39のサブルーチンである候補
生成サブルーチンA処理(ステップS598)を示すフ
ローチャートであり、当該候補生成サブルーチンA処理
では、誤りを含む文字列と対応する正解文字列のペアに
おいて、正解部(M1)、誤り部(M2)前後の文字列
(CSB,ESB,CSA,ESA)から正解、誤りと
も同じ数で同じ位置の部分文字列(CBW、EBW、C
AW、EAW)を取出し、M1、M2を中心に上記部分
文字列を付け加えた文字列(Pat1,pat2,Pa
t)を生成し候補テーブルに格納し、出現頻度も計数す
る処理を行なっている。図40のステップS606で
は、3つの文字列を1つの文字列に連結して代入してい
る。
【0090】図41は、図38のサブルーチンである誤
りパターン適合チェック処理(ステップS583)を示
すフローチャートである。当該誤りパターン適合チェッ
ク処理では、「誤りパターン候補生成処理」で生成した
誤り、正解文字列ペアについて誤りパターンとして適合
する条件を満たすかどうかをチェックする。図41のス
テップS613における、「Pat1→CBW・“<”
・M1・“>”.CAW」は、文字列Pat1を“<”
と“>”で分割して、“<”と“>”の前後及び間に位
置する部分文字列をCBW、M1、CAWに代入するこ
とを表す。例えば、Pat1=123<567>898
ならば、CBW=123、M1=567、CAW=89
8になる。また、「Pat→Pat1・“:”・Pat
2」も同様で“:”で分割することを表す。
【0091】図42は、図41のサブルーチンである誤
りパターン適合チェック01処理(ステップS615)
を示すフローチャートである。当該誤りパターン適合チ
ェック01処理では、誤りパターン候補の1つについ
て、誤りを含んだ文字列(EPAT)がデータベースに
ある正解文にパターンマッチするかどうかをチェックし
て、マッチする場合はF=0、しない場合はF=1を返
す。
【0092】図43は、図41のサブルーチンである誤
りパターン適合チェック02処理(ステップS617)
を示すフローチャートである。当該誤りパターン適合チ
ェック02処理では、誤りパターン候補の1つについ
て、誤りを含んだ文字列(EPAT)がデータベースに
ある誤り文にパターンマッチするか否かを調べ、マッチ
した場合、その位置が対応する誤り文の真の誤り位置と
重なるかどうかを調べる。マッチしてそれが真の誤り位
置と重ならない場合はF=0、それ以外はF=1を返
す。図44は、図43のサブルーチンである誤りパター
ン適合チェック02A処理(ステップS645)を示す
フローチャートである。当該誤りパターン適合チェック
02A処理では、ある誤り文にパターンマッチした位置
が、真の誤り位置と重なるかどうかを調べ、重なるなら
F=1、重ならない場合はF=0を返す。
【0093】図45は、図41のサブルーチンである誤
りパターン適合チェック03処理(ステップS621)
を示すフローチャートである。当該誤りパターン適合チ
ェック03処理では、「誤りパターン適合チェック01
処理」及び「誤りパターン適合チェック02処理」に適
合した誤りパターン候補について、あるものが他のもの
に含まれるかどうか(包含関係)と頻度を考慮して、最
終的に残す誤りパターンを選択する。図46は、図45
のサブルーチンである誤りパターン適合チェック03A
処理(ステップS672)を示すフローチャートであ
る。当該誤りパターン適合チェック03A処理では、2
つの誤りパターン候補で一方が他方を包含し、かつ、頻
度が同じならば、大きい候補を誤りパターン候補として
残す。図47は、図45のサブルーチンである誤りパタ
ーン適合チェック03B処理(ステップS673)を示
すフローチャートである。当該誤りパターン適合チェッ
ク03B処理では、2つの誤りパターン候補で一方が他
方を包含し、かつ、頻度が異なるならば、小さい候補を
誤りパターン候補として残す。
【0094】
【実施例】以下では入力文字列として次の表の例が入力
され、連鎖確率モデルが3文字の文字連鎖確率モデルで
文字誤り校正する場合を考える。
【0095】
【表18】 ――――――――――――――――――――――――――――――――――― (入力文字列) 入力文字列:「九月十四から十六までの二泊ですね五人背はな名様ですか」 正解文字列:「九月十四から十六までの二泊ですねご人数は何名様ですか」 ―――――――――――――――――――――――――――――――――――
【0096】誤り検出部11による図3の誤り検出処理
においては、まず、連鎖確率モデルメモリ31内の文字
連鎖確率モデルに基づいて、入力文の各文字ごとに連鎖
確率を求める。文字連鎖確率モデルは、連鎖確率モデル
メモリ31に、表6に示す連鎖確率テーブルとして格納
されている。入力文字列の先頭文字から順次、3文字連
鎖を取り出していき、その3文字連鎖をキーとするもの
が連鎖確率テーブルにあれば対応する確率値をその文字
位置の連鎖確率とし、連鎖確率テーブルになければ、−
0.6を確率値としている。このときに連鎖確率が与え
られたしきい値より低くなるか否かを誤りテーブルに登
録格納していく(図4参照。)。
【0097】例えば、入力文字列における「…ですね五
人背…」の各文字位置の確率連鎖は次のようにして計算
する。「で」の位置は前2文字の「二泊」と合わせて3
文字連鎖のキーを「二:泊:で」で連鎖確率テーブルを
参照し、確率値として−0.423602を得る。同様
に、「す」の位置は3文字連鎖キー「泊:で:す」より
確率値−0.564271を得る。一方、「背」の位置
の3文字連鎖キー「五:人:背」は連鎖確率テーブルに
存在しないので、−6.0の確率値を与える。このとき
に連鎖確率が与えられたしきい値(この場合−0.3
7)より低くなるか否かを誤りテーブルに登録格納して
いく。上記手順で入力文字列の各文字位置で計算した確
率連鎖およびしきい値による判定結果を次の表に示す。
【0098】
【表19】 入力文の連鎖確率計算値 ――――――――――――――――――――――――――――――――――― 文字 確率値 しきい値の判定結果(Val) 誤りブロック ――――――――――――――――――――――――――――――――――― S(文頭のためのラベル) S(文頭のためのラベル) 九 −2.313609 0 月 −0.082741 0 十 −0.489186 0 四 −0.694374 0 か −2.050509 0 ら 0.000000 0 十 −1.476784 0 六 −0.836746 0 ま −2.000000 0 で 0.000000 0 の −0.965936 0 二 −1.094005 0 泊 −0.585613 0 で −0.423602 0 す −0.564271 0 ね −0.753527 0 五 −2.465713 0 誤りブロック1の始点 人 −6.000000 1 背 −6.000000 1 は −6.000000 1 な −6.000000 1 誤りブロック1の終点 名 −6.000000 1 様 −6.000000 1 で −0.227507 0 す −0.534447 0 か −0.703784 0 ―――――――――――――――――――――――――――――――――――
【0099】次いで、上記誤りテーブルをもとに、下記
の手順で誤りブロックを推測し、その位置情報を誤り位
置テーブルに登録する(図5参照。)。 (1)連鎖確率が与えられたしきい値より低い文字が連
続するものを誤りブロックとする。誤りブロックの始点
をPos1、終点をPos2とする。 (2)誤りブロックの文字数をLenとして、 (2−1)Lenが3文字以上の長さの場合、誤りブロ
ックの後ろから2文字を誤りブロックから取り除く。
【数2】Pos2←Pos2−2 (2−2)Lenが3文字未満の場合、そのままとす
る。 (3)誤りブロックの始点が文の先頭でなければ、誤り
ブロックの始点を先頭方向へ1文字ずらす。
【数3】Pos1←Pos1−1
【0100】例えば、この例では“五人背はな”が誤り
ブロックとして計算される。なお、誤り検出部11で用
いる連鎖確率モデルは、利用分野で求められる精度(誤
り検出の適合率(検出した誤りが真の誤りである割
合)、再現率(真の誤りのうち、検出した誤りの割合)
など)に応じて品詞及び単語混合連鎖確率モデルなどと
組み合わせることが可能である。
【0101】次いで、誤り訂正部12による図6の誤り
訂正処理が実行される。誤り訂正処理は2種類あり、最
初に誤りパターン辞書による誤りパターン訂正処理(ス
テップS72)を行い、次いで、慣用文字連鎖辞書を用
いた慣用パターン訂正処理(ステップS76)を行う。
各訂正処理は入力文字列に対して対応する訂正ができな
くなるまで適用される。
【0102】誤りパターン訂正処理のフローチャートを
図7及び図8に示す。ここで、誤りパターン辞書は次の
表に示す誤りパターン辞書テーブルに格納されている。
【0103】
【表20】
【0104】誤りパターン訂正処理では、この誤りパタ
ーン辞書テーブルの誤り文字列が入力文字列に含まれる
か否かをチェックして、対応するものがあれば正解文字
列に置き換えていく。例えば、この例では「はな名様」
という文字列が入力文字列に存在するので、この部分を
「何名様」に置き換えて次の表のように訂正する。
【0105】
【表21】 ――――――――――――――――――――――――――――――――――― 訂正結果:「九月十四から十六までの二泊ですね五人背は何名様ですか」 ―――――――――――――――――――――――――――――――――――
【0106】慣用パターン訂正処理のフローチャートを
図9乃至図12に示す。慣用パターン訂正処理では、つ
ぎの手順で誤り訂正を行う。 (1)この処理の入力文字列を3文字の文字連鎖確率モ
デルを用いて誤り検出処理と同じ方法で誤りブロックを
計算する。ここで、誤りブロックがなければ終了する。 (2)誤りブロックとその前後Na文字を合わせた部分
を入力文から取り出し、その文字列をもとに慣用文字連
鎖辞書の中でもっとも類似(2つの文字列を同じ文字列
にするための文字単位の置換、削除、挿入の編集操作数
を距離とする。)しているもので、かつ、上記距離が与
えられたしきい値以上のものを検索する。ここで、条件
を満たすものがなければこの誤りブロックに対しては何
もせず(1)へ移る。 (3)選ばれた慣用文字連鎖の中に、誤りブロック外の
前後K文字が存在すれば、慣用文字連鎖の中の前後K文
字にはさまれた部分を取り出し、誤り部分と置換するこ
とにより訂正を行う。ここで、条件を満たすものがなけ
ればこの誤りブロックに対してはなにもせず(1)へ移
る。
【0107】例えば、この実例では誤りパターン処理の
次の表の出力結果が入力文字列となる。
【表22】 ――――――――――――――――――――――――――――――――――― 入力文字列:「九月十四から十六までの二泊ですね五人背は何名様ですか」 ―――――――――――――――――――――――――――――――――――
【0108】この文字列に3文字の文字連鎖確率モデル
を適用すると、誤りブロック「五人背」が検出される。
この誤りブロック「五人背」に前後5文字の文字列を付
け加え、文字列「二泊ですね五人背は何名様で」が得ら
れる。この文字列をもとに慣用文字連鎖辞書の中でもっ
とも類似しているものを取り出すと次のものが得られる
([]内の数値は類似度を表し、0から1の範囲で値が
大きいほど類似度が高い。)。ここでは、しきい値とし
て類似度が0.6以上という条件を適用しており、文字
列「ですね人数は何名様で」が最終的に選ばれる(以
下、慣用文字列という。)。従って、次の表に示すデー
タが得られる。
【表23】
【0109】ここで、文字列1と文字列2の類似度の定
義式を次式に示す。
【数4】 類似度 ={(文字列1の文字数)−(文字単位の置換、削除、挿入の編集操作数)} ÷文字列1の文字数
【0110】次いで、誤りブロックを含むブロックの外
側の前後K文字(ここではK=2)が慣用文字列に含ま
れるかを調べる。下記の例では誤りブロック<五人背>
を含むブロック{ね<五人背>は}の外側の前後文字
「です」と「何名」が慣用文字列に含まれるので、その
間に挟まれた「ね五人背は」を「ね人数は」で置き換え
て、下記の訂正結果を得る。
【0111】
【表24】 ――――――――――――――――――――――――――――――――――― 誤りブロックと前後文字列:[です]{ね<五人背>は}[何名] 慣用文字列:[です]{ね人数は}[何名]様で ――――――――――――――――――――――――――――――――――― ここで、<>内は誤りブロックであり、[]内は前後文字列であり、 {}内は置換文字列である。 ――――――――――――――――――――――――――――――――――― 訂正結果:「九月十四から十六までの二泊ですね人数は何名様ですか」 ―――――――――――――――――――――――――――――――――――
【0112】最後に再び誤り検出部13による誤り検出
処理を、誤り検出部11と同様に実行し、すべての誤り
が訂正できたかどうかをチェックする。
【0113】以上説明したように、本実施形態によれ
ば、以下の特有の効果を有する。 (A)誤り検出及び誤り訂正を文字単位で処理し、単語
単位に限定していないため、取り扱える誤り訂正範囲が
従来例に比較してより広くなる。 (B)また、長い文字列を用いて誤りや表現の傾向を学
習するため、文字の連鎖確率だけでは候補の絞り込みが
難しかったものがより正しく誤り検出及び誤り訂正でき
る。 (C)訂正処理のほとんどは計算量の小さい文字列のパ
ターンマッチングだけなので、従来例に比較して大幅に
小さい計算量で誤り訂正することができる。 (D)またさらに、誤り訂正辞書は自動作成することが
できるため、誤り訂正辞書の作成ための労力が軽減さ
れ、さらに、入力装置が更新されても短期間で対応する
ことができる。具体的には従来技術では難しかった、下
記のような誤り文が訂正することができる。
【0114】
【表25】 ――――――――――――――――――――――――――――――――――― (例1) 誤り文:「その支払いを方法はどうしたらよろしいでしょうか」 正解文:「その支払い方法はどうしたらよろしいでしょうか」 誤りパターン:支払い<>方法←支払い<を>方法 ――――――――――――――――――――――――――――――――――― (例2) 誤り文:「よろしくお寝てします」 正解文:「よろしくお願いいたします」 誤りパターン:しくお<願いいた>します←しくお<寝て>します ――――――――――――――――――――――――――――――――――― (例3) 誤り文:「はいそうしててきますので」 正解文:「はいそうして頂きますので」 誤りパターン:して<頂>きますので←して<て>きますので ――――――――――――――――――――――――――――――――――― (例4) 誤り文:「お気様のお部屋番号とお名前をお願いいたします」 正解文:「お客様のお部屋番号とお名前をお願いいたします」 慣用文字列:「お客様のお部屋に伺」 ―――――――――――――――――――――――――――――――――――
【0115】
【発明の効果】以上詳述したように本発明に係る文字誤
り校正装置によれば、誤り文と正解文の組み合わせと、
正解文とを含むコーパスデータベースを格納する第1の
記憶装置と、上記第1の記憶装置から読み出された正解
文に基づいて、単位が、それぞれ正解文中に含まれる文
字、単語又は品詞である複数N個の単位が連鎖して形成
されるN連鎖単位列のうちN−1個の単位が連鎖して形
成されるN−1連鎖単位列の頻度に対するN連鎖単位列
の頻度のN連鎖確率を計算することにより、上記N連鎖
確率を含む連鎖確率モデルを作成する連鎖確率モデル作
成手段と、上記連鎖確率モデル作成手段によって作成さ
れた連鎖確率モデルを格納する第2の記憶装置とを備
え、入力された文字列に対して文字誤り校正処理を行う
文字誤り校正装置において、上記第1の記憶装置から読
み出された誤り文と正解文の組み合わせから誤り文字列
と正解文字列の組み合わせを抽出しかつ、誤り文字列と
正解文字列の組み合わせが同一である誤り文字列と正解
文字列の組み合わせを集めるように分類し、上記抽出し
かつ分類した誤り文字列と正解文字列の組み合わせにお
いて、上記誤り文字列の一部である誤り部分と、上記正
解文字列の一部である正解部分とが互いに対応するとき
に、上記誤り部分と上記正解部分に対してそれぞれ前と
後に所定数の文字を付加した別の誤り文字列と別の正解
文字列の文字列パターンの組み合わせを作成し、作成し
た別の誤り文字列と別の正解文字列の文字パターンの組
み合わせの頻度である組み合わせ頻度が所定値以上の文
字パターンの組み合わせを選択し、上記コーパスデータ
ベース内の正解文と上記選択された別の誤り文字列との
間で第1のパターンマッチを行い、上記第1のパターン
マッチで一致した別の誤り文字列を候補から除外し、残
りの候補である選択された別の誤り文字列と上記コーパ
スデータベース内の誤り文との間で第2のパターンマッ
チを行い、上記第2のパターンマッチで一致した別の誤
り文字列について一致した位置が上記誤り部分の誤り位
置と重なるときに当該別の誤り文字列を候補として残
し、残った候補の別の誤り文字列と、当該別の誤り文字
列に対応する別の正解文字列との対からなる誤りパター
ン辞書を作成する誤りパターン辞書作成手段と、上記第
1の記憶装置から読み出された正解文に基づいて、上記
読み出された正解文から所定の長さの文字列連鎖を抽出
し、上記抽出された所定の長さの文字列連鎖の頻度が所
定値以上であるより高い頻度の文字列を慣用文字列とし
て検出することにより、上記検出された慣用文字列から
なる慣用文字連鎖辞書を作成する慣用文字連鎖辞書作成
手段と、上記誤りパターン辞書作成手段によって作成さ
れた誤りパターン辞書と、上記慣用文字連鎖辞書作成手
段によって作成された慣用文字連鎖辞書とを格納する第
3の記憶装置と、入力された文字列に対して、上記第2
の記憶装置に格納された連鎖確率モデルを参照して上記
入力された文字列の少なくとも1個のN連鎖確率を計算
し、計算されたN連鎖確率が所定のしきい値以下の文字
列から誤り文字列を検出する第1の誤り検出手段と、 (a)上記第3の記憶装置に記憶された誤りパターン辞
書を参照して、上記誤り検出手段によって検出された誤
り文字列を対応する正解文字列に置換して誤り訂正する
誤りパターン訂正処理と、 (b)上記誤り検出手段によって検出された誤り文字列
に類似した文字列を、上記第3の記憶装置に記憶された
慣用文字連鎖辞書から検索し、当該検出された誤り文字
列を当該検索された類似した文字列で置換することによ
り誤り訂正する慣用パターン訂正処理との少なくとも一
方を実行することにより誤り訂正する誤り訂正手段とを
備える。従って、文字列の誤りを検出し及び訂正する処
理を、従来例に比較して大幅に小さい計算量で、しかも
文字単位で、さらにより正確に実行することができる文
字誤り校正装置を提供することができる。
【0116】また、上記文字誤り校正装置において、上
記誤り訂正手段によって誤り訂正された文字列に対し
て、上記第2の記憶装置に格納された連鎖確率モデルを
参照して上記入力された文字列の少なくとも1個のN連
鎖確率を計算し、計算されたN連鎖確率が所定のしきい
値以下の文字列に基づいて誤り文字列を検出する第2の
誤り検出手段をさらに備える。従って、誤り訂正した後
に誤り検出するので、より正確に誤り校正を行うことが
できる。
【図面の簡単な説明】
【図1】 本発明に係る一実施形態である文字誤り校正
装置10及びその周辺装置の構成を示すブロック図であ
る。
【図2】 図1の文字誤り校正装置10によって実行さ
れる文字誤り校正処理を示すフローチャートである。
【図3】 図1の誤り検出部11及び13によって実行
される、図2及び図9のサブルーチンである誤り検出処
理(ステップS2,S6,S111)を示すフローチャ
ートである。
【図4】 図3のサブルーチンである連鎖確率計算処理
(ステップS21)を示すフローチャートである。
【図5】 図3のサブルーチンである誤りブロック計算
処理(ステップS22)を示すフローチャートである。
【図6】 図1の誤り訂正部12によって実行される、
図2のサブルーチンである誤り訂正処理(ステップS
4)を示すフローチャートである。
【図7】 図6のサブルーチンである誤りパターン訂正
処理(ステップS72)を示すフローチャートである。
【図8】 図7のサブルーチンである誤りパターン訂正
01処理(ステップS93)を示すフローチャートであ
る。
【図9】 図6のサブルーチンである慣用パターン訂正
処理(ステップS76)を示すフローチャートである。
【図10】 図9のサブルーチンである慣用パターン訂
正01処理(ステップS116)を示すフローチャート
である。
【図11】 図9のサブルーチンである慣用パターン訂
正02処理(ステップS118)を示すフローチャート
である。
【図12】 図9のサブルーチンである慣用パターン訂
正03処理(ステップS119)を示すフローチャート
である。
【図13】 図10、図11及び図12のサブルーチン
である慣用文字連鎖検索処理(ステップS132,S1
42,S152)を示すフローチャートである。
【図14】 図10、図11及び図12のサブルーチン
である慣用文字列からの置換部分抽出処理(ステップS
134,S144,S154)の第1の部分を示すフロ
ーチャートである。
【図15】 図10、図11及び図12のサブルーチン
である慣用文字列からの置換部分抽出処理(ステップS
134,S144,S154)の第2の部分を示すフロ
ーチャートである。
【図16】 図10、図11及び図12のサブルーチン
である慣用文字列からの置換部分抽出処理(ステップS
134,S144,S154)の第3の部分を示すフロ
ーチャートである。
【図17】 図1の連鎖確率モデル作成部21によって
実行される、連鎖確率モデル作成処理を示すフローチャ
ートである。
【図18】 図17及び図26のサブルーチンであるコ
ード化処理(ステップS202,S402)を示すフロ
ーチャートである。
【図19】 図17及び図26のサブルーチンである連
鎖辞書作成処理(ステップS203,S403)を示す
フローチャートである。
【図20】 図19のサブルーチンである位置ポインタ
Dic[i]のソート処理(ステップS232)を示す
フローチャートである。
【図21】 図20のサブルーチンである比較処理(ス
テップS246)を示すフローチャートである。
【図22】 図19のサブルーチンである一致コード数
計数処理(ステップS236)を示すフローチャートで
ある。
【図23】 図17及び図26のサブルーチンである連
鎖頻度作成処理(ステップS204,S404)を示す
フローチャートである。
【図24】 図23のサブルーチンである連鎖頻度作成
サブルーチン処理(ステップS287)を示すフローチ
ャートである。
【図25】 図17のサブルーチンである連鎖確率モデ
ル作成サブルーチン処理(ステップS205)を示すフ
ローチャートである。
【図26】 図1の慣用文字連鎖辞書作成部23によっ
て実行される、慣用文字連鎖辞書作成処理を示すフロー
チャートである。
【図27】 図26のサブルーチンである慣用文字連鎖
辞書作成サブルーチン処理(ステップS405)を示す
フローチャートである。
【図28】 図27のサブルーチンである文字連鎖作成
処理(ステップS413)を示すフローチャートであ
る。
【図29】 図28のサブルーチンである文字連鎖作成
サブルーチンA処理(ステップS427)を示すフロー
チャートである。
【図30】 図28のサブルーチンである文字連鎖作成
サブルーチンB処理(ステップS430)を示すフロー
チャートである。
【図31】 図1の誤りパターン辞書作成部22によっ
て実行される、誤りパターン辞書作成処理を示すフロー
チャートである。
【図32】 図31のサブルーチンである誤り情報抽出
処理(ステップS502)を示すフローチャートであ
る。
【図33】 図32のサブルーチンである差分の文字列
diff結果の解析処理(ステップS514)を示すフ
ローチャートである。
【図34】 図33の解析サブルーチンA処理(ステッ
プS524)を示すフローチャートである。
【図35】 図33の解析サブルーチンB処理(ステッ
プS526)を示すフローチャートである。
【図36】 図33の解析サブルーチンC処理(ステッ
プS528)を示すフローチャートである。
【図37】 図31のサブルーチンである誤り文字情報
分類処理(ステップS503)を示すフローチャートで
ある。
【図38】 図31のサブルーチンである誤りパターン
辞書作成サブルーチン処理(ステップS504)を示す
フローチャートである。
【図39】 図38のサブルーチンである誤りパターン
候補生成処理(ステップS582)を示すフローチャー
トである。
【図40】 図39のサブルーチンである候補生成サブ
ルーチンA処理(ステップS598)を示すフローチャ
ートである。
【図41】 図38のサブルーチンである誤りパターン
適合チェック処理(ステップS583)を示すフローチ
ャートである。
【図42】 図41のサブルーチンである誤りパターン
適合チェック01処理(ステップS615)を示すフロ
ーチャートである。
【図43】 図41のサブルーチンである誤りパターン
適合チェック02処理(ステップS617)を示すフロ
ーチャートである。
【図44】 図43のサブルーチンである誤りパターン
適合チェック02A処理(ステップS645)を示すフ
ローチャートである。
【図45】 図41のサブルーチンである誤りパターン
適合チェック03処理(ステップS621)を示すフロ
ーチャートである。
【図46】 図45のサブルーチンである誤りパターン
適合チェック03A処理(ステップS672)を示すフ
ローチャートである。
【図47】 図45のサブルーチンである誤りパターン
適合チェック03B処理(ステップS673)を示すフ
ローチャートである。
【符号の説明】
10…文字誤り校正装置、 10a,11a,12a,13a,21a,22a,2
3a…RAM、 11…誤り検出部、 12…誤り訂正部、 13…誤り検出部、 21…連鎖確率モデル作成部、 22…誤りパターン辞書作成部、 23…慣用文字連鎖辞書作成部、 30…コーパスデータベースメモリ、 31…連鎖確率モデルメモリ、 32…誤り訂正辞書メモリ、 50…パーソナルコンピュータ、 51…キーボード、 52…CRTディスプレイ、 53…プリンタ、 54,55…文字列メモリ。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−168863(JP,A) 特開 平3−144850(JP,A) 特開 平5−266007(JP,A) 特開 平9−114831(JP,A) 特開 平9−138801(JP,A) 荒木哲郎、池原悟、塚原信幸,”2重 マルコフモデルによる日本語文の誤り検 出並びに訂正法”,情報処理学会研究報 告NL97−5,p.29−35,1993年9月 (58)調査した分野(Int.Cl.7,DB名) G06F 17/21 - 17/27 JICSTファイル(JOIS)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 誤り文と正解文の組み合わせと、正解文
    とを含むコーパスデータベースを格納する第1の記憶装
    置と、 上記第1の記憶装置から読み出された正解文に基づい
    て、単位が、それぞれ正解文中に含まれる文字、単語又
    は品詞である複数N個の単位が連鎖して形成されるN連
    鎖単位列のうちN−1個の単位が連鎖して形成されるN
    −1連鎖単位列の頻度に対するN連鎖単位列の頻度のN
    連鎖確率を計算することにより、上記N連鎖確率を含む
    連鎖確率モデルを作成する連鎖確率モデル作成手段と、 上記連鎖確率モデル作成手段によって作成された連鎖確
    率モデルを格納する第2の記憶装置とを備え、入力され
    た文字列に対して文字誤り校正処理を行う文字誤り校正
    装置において、 上記第1の記憶装置から読み出された誤り文と正解文の
    組み合わせから誤り文字列と正解文字列の組み合わせを
    抽出しかつ、誤り文字列と正解文字列の組み合わせが同
    一である誤り文字列と正解文字列の組み合わせを集める
    ように分類し、上記抽出しかつ分類した誤り文字列と正
    解文字列の組み合わせにおいて、上記誤り文字列の一部
    である誤り部分と、上記正解文字列の一部である正解部
    分とが互いに対応するときに、上記誤り部分と上記正解
    部分に対してそれぞれ前と後に所定数の文字を付加した
    別の誤り文字列と別の正解文字列の文字列パターンの組
    み合わせを作成し、作成した別の誤り文字列と別の正解
    文字列の文字パターンの組み合わせの頻度である組み合
    わせ頻度が所定値以上の文字パターンの組み合わせを選
    択し、上記コーパスデータベース内の正解文と上記選択
    された別の誤り文字列との間で第1のパターンマッチを
    行い、上記第1のパターンマッチで一致した別の誤り文
    字列を候補から除外し、残りの候補である選択された別
    の誤り文字列と上記コーパスデータベース内の誤り文と
    の間で第2のパターンマッチを行い、上記第2のパター
    ンマッチで一致した別の誤り文字列について一致した位
    置が上記誤り部分の誤り位置と重なるときに当該別の誤
    り文字列を候補として残し、残った候補の別の誤り文字
    列と、当該別の誤り文字列に対応する別の正解文字列と
    の対からなる誤りパターン辞書を作成する誤りパターン
    辞書作成手段と、 上記第1の記憶装置から読み出された正解文に基づい
    て、上記読み出された正解文から所定の長さの文字列連
    鎖を抽出し、上記抽出された所定の長さの文字列連鎖の
    頻度が所定値以上であるより高い頻度の文字列を慣用文
    字列として検出することにより、上記検出された慣用文
    字列からなる慣用文字連鎖辞書を作成する慣用文字連鎖
    辞書作成手段と、 上記誤りパターン辞書作成手段によって作成された誤り
    パターン辞書と、上記慣用文字連鎖辞書作成手段によっ
    て作成された慣用文字連鎖辞書とを格納する第3の記憶
    装置と、 入力された文字列に対して、上記第2の記憶装置に格納
    された連鎖確率モデルを参照して上記入力された文字列
    の少なくとも1個のN連鎖確率を計算し、計算されたN
    連鎖確率が所定のしきい値以下の文字列から誤り文字列
    を検出する第1の誤り検出手段と、 (a)上記第3の記憶装置に記憶された誤りパターン辞
    書を参照して、上記誤り検出手段によって検出された誤
    り文字列を対応する正解文字列に置換して誤り訂正する
    誤りパターン訂正処理と、 (b)上記誤り検出手段によって検出された誤り文字列
    に類似した文字列を、上記第3の記憶装置に記憶された
    慣用文字連鎖辞書から検索し、当該検出された誤り文字
    列を当該検索された類似した文字列で置換することによ
    り誤り訂正する慣用パターン訂正処理との少なくとも一
    方を実行することにより誤り訂正する誤り訂正手段とを
    備えたことを特徴とする文字誤り校正装置。
  2. 【請求項2】 請求項1記載の文字誤り校正装置におい
    て、 上記誤り訂正手段によって誤り訂正された文字列に対し
    て、上記第2の記憶装置に格納された連鎖確率モデルを
    参照して上記入力された文字列の少なくとも1個のN連
    鎖確率を計算し、計算されたN連鎖確率が所定のしきい
    値以下の文字列から誤り文字列を検出する第2の誤り検
    出手段をさらに備えたことを特徴とする文字誤り校正装
    置。
JP09298621A 1997-10-30 1997-10-30 文字誤り校正装置 Expired - Fee Related JP3126945B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09298621A JP3126945B2 (ja) 1997-10-30 1997-10-30 文字誤り校正装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09298621A JP3126945B2 (ja) 1997-10-30 1997-10-30 文字誤り校正装置

Publications (2)

Publication Number Publication Date
JPH11134335A JPH11134335A (ja) 1999-05-21
JP3126945B2 true JP3126945B2 (ja) 2001-01-22

Family

ID=17862108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09298621A Expired - Fee Related JP3126945B2 (ja) 1997-10-30 1997-10-30 文字誤り校正装置

Country Status (1)

Country Link
JP (1) JP3126945B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08270198A (ja) * 1995-03-31 1996-10-15 Oyo Kikaku:Kk 配線溝の巾の規定方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100892003B1 (ko) 2008-04-03 2009-04-07 주식회사 청담러닝 영어 작문 학습 시스템에서, 자동 철자오류 검출 및교정정보 제공 장치 및 그 방법
KR100892004B1 (ko) 2008-05-21 2009-04-07 주식회사 청담러닝 영어 작문 학습 시스템에서, 동사 중심의 자동 문법오류검출 및 교정정보 제공 장치 및 그 방법
JP5436868B2 (ja) * 2009-01-13 2014-03-05 Kddi株式会社 正解判定装置、正解判定システム、正解判定方法および正解判定プログラム
KR101364774B1 (ko) * 2012-12-07 2014-02-20 포항공과대학교 산학협력단 음성 인식의 오류 수정 방법 및 장치
JP5548252B2 (ja) * 2012-12-25 2014-07-16 日本電信電話株式会社 動詞誤り検出装置、方法、及びプログラム
CN105632499B (zh) 2014-10-31 2019-12-10 株式会社东芝 用于优化语音识别结果的方法和装置
CN110083819B (zh) * 2018-01-26 2024-02-09 北京京东尚科信息技术有限公司 拼写纠错方法、装置、介质及电子设备
CN108984515B (zh) * 2018-05-22 2022-09-06 广州视源电子科技股份有限公司 错别字检测方法、装置及计算机可读存储介质、终端设备
JP7092708B2 (ja) * 2019-05-20 2022-06-28 ヤフー株式会社 情報処理プログラム、情報処理装置及び情報処理方法
CN110472701B (zh) * 2019-08-14 2023-07-07 广东小天才科技有限公司 文字纠错方法、装置、电子设备和存储介质
CN115169335B (zh) * 2022-09-07 2023-01-13 深圳高灯计算机科技有限公司 发票数据校准方法、装置、计算机设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03144850A (ja) * 1989-10-31 1991-06-20 Nec Off Syst Ltd 文章校正支援方式
JPH03168863A (ja) * 1989-11-28 1991-07-22 Nippon Telegr & Teleph Corp <Ntt> 連接確率辞書構成法
JPH05266007A (ja) * 1992-03-17 1993-10-15 Toshiba Corp 文書作成編集装置
JP4283898B2 (ja) * 1995-10-20 2009-06-24 富士通株式会社 文章校正装置
JPH09138801A (ja) * 1995-11-15 1997-05-27 Oki Electric Ind Co Ltd 文字列抽出方法とシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
荒木哲郎、池原悟、塚原信幸,"2重マルコフモデルによる日本語文の誤り検出並びに訂正法",情報処理学会研究報告NL97−5,p.29−35,1993年9月

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08270198A (ja) * 1995-03-31 1996-10-15 Oyo Kikaku:Kk 配線溝の巾の規定方法

Also Published As

Publication number Publication date
JPH11134335A (ja) 1999-05-21

Similar Documents

Publication Publication Date Title
US9489371B2 (en) Detection of data in a sequence of characters
JP3950535B2 (ja) データ処理方法及び装置
EP2257896B1 (en) Financial event and relationship extraction
Evershed et al. Correcting noisy OCR: Context beats confusion
US7814111B2 (en) Detection of patterns in data records
US20070055662A1 (en) Method and apparatus for learning, recognizing and generalizing sequences
JP3126945B2 (ja) 文字誤り校正装置
JPH02299068A (ja) 入力文字列からワードを分離する方法
CN112926345B (zh) 基于数据增强训练的多特征融合神经机器翻译检错方法
KR20130108503A (ko) 퍼스널 아이덴티티를 기술하는 데이터에 대한 액셔너블 속성의 애스클라이빙
CN113196278A (zh) 训练自然语言检索系统的方法、检索系统以及对应的用途
CN112149387A (zh) 财务数据的可视化方法、装置、计算机设备及存储介质
CN113918686A (zh) 智能问答模型构建方法、装置、计算机设备及存储介质
JP3812818B2 (ja) データベース生成装置、データベース生成方法及びデータベース生成処理プログラム
Besagni et al. Citation recognition for scientific publications in digital libraries
CN110188340B (zh) 一种研报文本实体名词自动识别方法
CN112395881A (zh) 物料标签的构建方法、装置、可读存储介质及电子设备
CN114611489A (zh) 文本逻辑条件抽取ai模型构建方法、抽取方法及系统
Kranig Evaluation of language identification methods
CN113128231A (zh) 一种数据质检方法、装置、存储介质和电子设备
CN111199170B (zh) 配方文件识别方法及装置、电子设备、存储介质
Sporleder et al. Spotting the ‘odd-one-out’: Data-driven error detection and correction in textual databases
CN114722194B (zh) 一种基于摘要生成算法的突发事件时间序列自动构建方法
CN111859896A (zh) 配方文档检测方法、装置、计算机可读介质及电子设备
Bakar et al. An evaluation of retrieval effectiveness using spelling‐correction and string‐similarity matching methods on Malay texts

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees