JPH0916598A - エラー・パターンを用いた文字列修正システムおよび方法 - Google Patents

エラー・パターンを用いた文字列修正システムおよび方法

Info

Publication number
JPH0916598A
JPH0916598A JP7167676A JP16767695A JPH0916598A JP H0916598 A JPH0916598 A JP H0916598A JP 7167676 A JP7167676 A JP 7167676A JP 16767695 A JP16767695 A JP 16767695A JP H0916598 A JPH0916598 A JP H0916598A
Authority
JP
Japan
Prior art keywords
character
pattern
character string
error
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.)
Withdrawn
Application number
JP7167676A
Other languages
English (en)
Inventor
Emu Buitsusaa Eritsuku
エリック・エム・ヴィッサー
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7167676A priority Critical patent/JPH0916598A/ja
Priority to US08/668,222 priority patent/US6023536A/en
Publication of JPH0916598A publication Critical patent/JPH0916598A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】 【目的】 形態素解析を行う情報処理システムにおい
て、入力文字列に含まれる誤りを効率よく修正し、対応
する認識結果の文字列を出力することを目的とする。 【構成】 入力モジュール21から入力文字列が読み込
まれると、プロセッサ20は、パーマネント・メモリ1
1内のエラー・パターン13とエラー・コンディション
14を参照しながら、辞書12を検索する。エラー・パ
ターンには、入力文字列に含まれる可能性のあるエラー
の型が定義されており、入力文字がこれに適合すると、
誤りであると仮定として処理される。そして、プロセッ
サ20は、入力文字をエラー・パターンから生成される
代替文字19と置き換えて検索を続け、検索経路を表す
解析パス17をテンポラリ・メモリ15に格納する。検
索の結果、形態素が認識されると、そこに至るまでの解
析パスを形態素デリベーション18として格納し、それ
が示す辞書の対応語を出力モジュール22から出力す
る。エラー・パターンにより、特定の種類のエラーに限
定した修正を行うことができ、処理が効率化される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は形態素解析処理に係り、
入力された文字列(記号等を含むキャラクタ・ストリン
グ)を解析して、対応する認識結果の文字列を出力する
文字列修正システムとその方法に関する。
【0002】
【従来の技術】入力文を単語単位に分割することを目的
とする形態素解析は、文書処理(あるいは自然言語処
理)における最も基本的なステップであり、近年の研究
課題となっている。従来の形態素解析においては、主と
して辞書検索に焦点が当てられている。例えば欧文処理
では、プロセッサは入力文の作成者がスペースや句読点
で区切った部分をそのまま単語として受け入れ、単に辞
書内で対応する単語を探している。このとき、近似法等
を用いてスペルエラーを修正することもある。
【0003】しかしながら、一般の文字がそうであるよ
うにスペースや句読点もまた、挿入位置が誤っていた
り、入れ忘れがあったりする。また、中国語や日本語等
の言語ではスペースにより単語が区切られることはな
く、さらにドイツ語やオランダ語等の言語は辞書内の単
語をつなぎ合わせて新規の単語を創り出す大きな自由度
を持っている。このため、スペースや句読点が常に正し
い単語の境界を示しているという保証はない。
【0004】もう1つの形態素解析法は、入力文を1文
字ずつ読み取り、辞書内の単語と1文字ずつ比較する方
法である。この方法によれば、最初から単語の境界を意
識することなく記号等を含む入力文字列を処理すること
ができる。ある位置までに読み取った文字列が辞書内の
単語に相当し、残りの入力文字を追加すると辞書内の単
語と一致しないとき、その位置が1つの単語の終わりで
あると判断される。
【0005】このようなメカニズムは幾通りか考えられ
るが、概念的に最も簡単なものは、辞書全体をメモリに
格納しておき、入力単語に一致しない単語を順次破棄す
るメカニズムである。
【0006】しかし、最も広く用いられている方法は、
辞書内の単語をTRIEテーブル(検索テーブル)と呼
ばれる多数のテーブルに編成し直して、これらのテーブ
ルの間に参照関係を設定する方法である。この場合、あ
るテーブルは辞書内の全ての単語の最初の文字を有する
ことになる。例えば、このテーブルの文字「a」のエン
トリは、「a」で始まる全ての単語の2番目の文字を有
するもう1つのテーブルをポイントする。この方法は、
TRIE法として広く知られている(Donald E. Knuth.
The Art of Computer Programming. Volume 3: Storin
g and Searching. Addison-Wesley Series in Computer
Science and Information Processing.Addison-Wesley
Company, Reading(Mass.), 1973.) 。
【0007】図20は、TRIE法における英語のTR
IEテーブルの例とそれらの関係を示している。これら
のTRIEテーブルにおいて、第1列の入力文字(inpu
t character )は、単語の中でそれらのTRIEテーブ
ルが表す特定の位置の文字を表す。図20のTRIEテ
ーブルは入力文字としてアルファベットのみを格納して
いるが、必ずしもこれに限られることはなく、数字や句
読点、あるいはスペース等も入力文字として用いられ
る。図20(a)のTRIEテーブル“root”は、入力
文字として全ての単語の最初の文字、つまり全てのアル
ファベットを格納している最も上位のTRIEテーブル
である。
【0008】第2列の辞書の対応語(dictionary word
)は、この位置までに読み取られた文字列が辞書のエ
ントリに対応するか否かを表す。図20の例では、文字
列が辞書のエントリに対応するとき、そのエントリの品
詞名を辞書の対応語として格納している。例えば、“Ar
t ”、“N ”、“Prop. N ”、“Prep”は、それぞれ冠
詞、普通名詞、固有名詞、前置詞を表す。また、対応す
るエントリがないときは、空集合を表すシンボル“ 外
1 ”が格納される。
【0009】
【外1】
【0010】図20(b)に示すTRIEテーブル“r
-”の入力文字“a ”には、ラジウムの化学記号の“r
a”(N )とエジプトの神の名前である“ra”(Prop. N
)の2つの辞書のエントリが対応している。
【0011】第3列のTRIEテーブルリンク(TRIE t
able link )は、第1列の入力文字を処理して到達する
位置に対応するTRIEテーブルの名称を表し、後続す
るTRIEテーブルとの接続関係を与えている。例え
ば、TRIEテーブル“root”のTRIEテーブルリン
ク“r-”はTRIEテーブル“r-”を指し、TRIEテ
ーブル“r-”のTRIEテーブルリンク“rd- ”は図2
0(c)に示すTRIEテーブル“rd- ”を指し、TR
IEテーブル“rd- ”のTRIEテーブルリンク“rd.
-”は図20(d)に示すTRIEテーブル“rd.-”を
指している。TRIEテーブル“rd.-”のように、エン
トリを1つも持たないTRIEテーブルは、それ以上の
文字が続くような対応語が辞書のエントリにないことを
表す。
【0012】図21は、従来のTRIE法による認識処
理のフローチャートである。以下、図21を参照しなが
ら、文字列"Rd. "を例にとり認識処理を説明する。処理
が開始されると、まずTRIEテーブル“root”が読み
込まれ(ステップS1)、入力文字列の左端の文字“R
”が読み込まれて、入力ポインタが右へシフトする
(ステップS2)。次に、読み込まれた文字がTRIE
テーブル“root”の入力文字のエントリにあるかどうか
検索され(ステップS3)、文字“R ”(“r ”)はT
RIEテーブル“root”にあるので、対応するTRIE
テーブルリンクが指すTRIEテーブル“r-”が読み込
まれる(ステップS4)。
【0013】次に、残りの文字列の最初の文字“d ”が
読み込まれ(ステップS2)、TRIEテーブル“r-”
の中で対応するTRIEテーブルリンクが指すTRIE
テーブル“rd- ”が読み込まれる(ステップS4)。さ
らに、文字“. ”が読み込まれ(ステップS2)、TR
IEテーブル“rd- ”の中で対応するTRIEテーブル
リンクが指すTRIEテーブル“rd.-”が読み込まれる
(ステップS4)。
【0014】ここでスペース“ ”が読み込まれるが
(ステップS2)、TRIEテーブル“rd.-”は空なの
で対応するエントリがなく、この段階での対象文字列
“Rd. ”が辞書のエントリにあるかどうか検索される
(ステップS5)。文字列“Rd. ”は“Road”の略語で
あり辞書に登録されているので、単語として認識され
(ステップS6)、処理を終了する。
【0015】TRIEテーブル“rd.-”がエントリを持
たないのは、3文字の文字列“rd.”で始まってさらに
文字が続く単語が辞書に登録されていないからである。
ステップS5で辞書のエントリにないときは、読み込ま
れた文字列の最後の文字が1つずつ破棄され(ステップ
S7、S8)、残った対象文字列が辞書のエントリの1
つと一致したとき(ステップS5、YES)、単語とし
て認識される(ステップS6)。もし、すべての文字を
破棄しても辞書のエントリに一致しない場合は(ステッ
プS8、NO)、解析は失敗に終わる(ステップS
9)。
【0016】例えば、“catch"とともに“catch 22”と
いう語がエントリとして辞書に登録されている場合、T
RIEテーブル“catch-”の入力文字のエントリには
“ ”(スペース)があるので、文字列“catch the do
g ”が入力されたとき、次の文字“t ”まで連続して読
み込まれる(ステップS2)。ところが、“t ”はTR
IEテーブル“catch-”のエントリにはなく(ステップ
S3、NO)、文字列“catch ”は辞書のエントリにな
い(ステップS5、NO)。そこで、“catch ”の最後
の文字“ ”が破棄され(ステップS7)、文字列“ca
tch"が単語として認識される(ステップS6)。
【0017】このようなシステムにおけるスペル・エラ
ーおよび代替文字の検出方法には次の2つの方法があ
る。1つは、入力文字とTRIEテーブルのエントリと
のミスマッチが起こるのを待って、その点から代替文字
を探す方法である。もう1つは、たとえTRIEテーブ
ルのエントリとマッチしていたとしても、いずれかの文
字に誤りがあると仮定して、始終代替文字を探す方法で
ある。
【0018】例えば、“airborne”、“airconditione
d”、“airport ”の3つの単語を考え、“airport ”
が“airbort ”のように誤って入力されたとする。ミス
マッチを待つ形態素解析システムでは、最後の“t ”に
到達するまで誤りを検出せずに処理を進める。そして、
“t ”を“n ”の間違いだと仮定して、そこから処理を
続行する。このため、“airport ”が1つの候補となり
得ることを見出すためには、処理対象の文字列を逆方向
に辿る必要があろう。この例では、“airbort ”には
“airport ”と比較して誤字が1つだけ含まれる(“b
”は“p ”の誤り)のに対して、“airborne”が正解
だとすると2つの連続する誤字が含まれる(“t ”は
“n ”の誤りで、最後の“e ”が抜けている)ことにな
る。したがって、“airport ”のほうが正解の可能性が
高い。
【0019】一方、常時代替パスを計算する形態素解析
システムでは、“b ”が読み込まれた時に、これが“p
”や“c ”等の誤字である可能性を直ちに仮定する。
そして、さらに入力文字の読み取りを続け、“c ”は後
続する文字列からして不適当とみなし、“airborne”に
は多少引き止められるが最後にはこれを放棄して、“ai
rport ”を支持することになる。
【0020】
【発明が解決しようとする課題】しかしながら、上述の
ような従来の形態素解析方法には以下のような問題があ
る。
【0021】上述の例においては、説明を分かりやすく
するために、他の多数の代替パスについては考慮してい
ない。実際には、正解に辿り着くためには膨大な数の候
補を調べる必要がある。
【0022】また、入力されたいずれの文字も他の文字
の間違いである可能性があり、いずれの文字も余計な文
字である可能性があり、また入力者が意図した単語を構
成するいずれの文字も抜けている可能性があるとする
と、結局、どんな単語も他のあらゆる単語の誤りであり
得ることになる。これは、明らかに望ましくない状況で
ある。
【0023】この状況の出現は、例えば1つの単語の中
には2つを超えるエラーはないというようなある種の規
範に照して解析のパスをチェックし、その規範に合わな
いパスの処理を打ち切ることにより、一般に防止され
る。エラーが存在するかどうかをチェックするために用
いられる規範としては、1つの単語中のエラーの数、連
続したスペルエラーがあるかどうか、スペルエラーの重
みの合計値、あるいはこれらの規範の組合わせ等が考え
られる。しかしながら、従来の形態素解析方法では、こ
うした規範を用いたとしてもまだ多数の代替パスが残さ
れるため、処理の効率が悪いという問題がある。
【0024】本発明は、形態素解析を行う情報処理シス
テムにおいて、入力文字列に含まれる誤りを効率よく修
正し、対応する認識結果の文字列を出力する文字列修正
システムとその方法を提供することを目的とする。
【0025】
【課題を解決するための手段】図1は、本発明の文字列
修正システムの原理図である。本発明の文字列修正シス
テムは、入力文字列と辞書のエントリを比較して形態素
解析を行う情報処理システムにおける文字列修正システ
ムであって、辞書格納手段1、エラー・パターン格納手
段2、および検索手段3を備える。
【0026】辞書格納手段1は、入力文字列中の文字と
比較される入力文字のエントリを持つ辞書を格納する。
エラー・パターン格納手段2は、上記入力文字列に含ま
れる可能性のあるエラーの型を規定したエラー・パター
ンを格納する。
【0027】検索手段3は、エラー・パターン格納手段
2に格納された上記エラー・パターンを用いて辞書格納
手段1に格納された辞書を検索し、上記入力文字列に対
応する辞書のエントリを求め、認識語の候補として出力
する。
【0028】図1の辞書格納手段1は、図2の実施例の
構成図におけるパーマネント・メモリ11に対応し、エ
ラー・パターン格納手段2はパーマネント・メモリ11
とテンポラリ・メモリ15に対応し、検索手段3はプロ
セッサ20に対応する。また、辞書格納手段1に格納さ
れる辞書は辞書12に対応し、例えば検索テーブルの1
種であるTRIEテーブルを含む。
【0029】
【作用】辞書格納手段1は、例えば複数のTRIEテー
ブルからなる辞書を格納し、検索手段3は、入力文字列
中の文字をTRIEテーブルの入力文字のエントリと比
較する。それらが合致すれば、検索手段3は、TRIE
テーブルリンクが指す次のTRIEテーブルに順次アク
セスして、最終的に辞書のエントリが得られたところ
で、それを認識語の1つの候補とする。
【0030】このような入力文字列の認識処理におい
て、検索手段3は、エラー・パターン格納手段2に格納
されたエラー・パターンを参照し、対応する型のエラー
を入力文字列が含んでいるものと仮定して、入力文字列
を修正する。そして、修正結果を元に辞書との照合を続
行し、辞書のエントリが認識されれば、認識語の候補と
して出力する。
【0031】ユーザは、適当なエラー・パターンを作成
してエラー・パターン格納手段2に格納することによ
り、あるいはエラー・パターン格納手段2に格納された
エラー・パターンのいずれかを指定することにより、特
定の型のエラーを想定した処理を検索手段3に行わせる
ことができる。したがって、入力文字に対応して生成さ
れる代替パスの数が限定され、検索処理が効率化され
る。
【0032】また、エラーの重み等もエラー・パターン
毎に決めることが可能となり、これを用いてエラー・パ
ターンを適用するかどうかの条件を設定することができ
る。
【0033】
【実施例】以下、図面を参照しながら、本発明の実施例
を詳細に説明する。図2は、本発明の実施例の文字列修
正システムの構成図である。図2の文字列修正システム
は、パーマネント・メモリ11、テンポラリ・メモリ1
5、プロセッサ20、入力モジュール21、および出力
モジュール22を備える。パーマネント・メモリ11
は、辞書12、エラー・パターン13、およびエラー・
コンディション14を格納し、テンポラリ・メモリ15
は、エラー・パターン16、解析パス17、形態素デリ
ベーション18、および代替文字19を格納する。辞書
12は検索処理用にコンパイルされた辞書であり、ここ
ではTRIEテーブルを用いている。図2の文字列修正
システムは、単語認識におけるエラー修正の微調整を行
い、認識語の候補を処理結果として出力する。
【0034】入力モジュール21は、入力される文字列
(入力文字列)を読み込み、入力文字列内の位置を示す
入力ポインタの値を保持する。プロセッサ20は、パー
マネント・メモリ11にアクセスして、辞書12、エラ
ー・パターン13、およびエラー・コンディション14
を参照し、テンポラリ・メモリ15に中間結果を格納し
ながら、入力文字列の検索処理を行う。このとき、エラ
ー・パターン13の一部を取り出し、エラー・パターン
16としてテンポラリ・メモリ15に格納しておく。
【0035】エラー・パターン16は、プロセッサ20
が認識し修正することのできるスペルエラーの種類
(型)を定義するために用いられる。したがって、解析
対象のテキストのタイプ、文字列を生成するユーザ固有
の癖、言語の種類等を含む環境の要請と、解析処理それ
自身の要請との間の簡潔かつ効率的なインタフェースを
提供するためのものである。
【0036】図3は、パーマネント・メモリ11内に格
納されるエラー・パターン13の例を示している。図3
において、[0]はエラー・パターンの形式を表してお
り、1つのエラー・パターンが、フォールト・パターン
(fault pattern )、コレクト・パターン(correct pa
ttern )、コンディション(conditions)、および重み
値(weight)からなることを示している。フォールト・
パターンは欠陥のあるスペルのパターンを表し、コレク
ト・パターンはフォールト・パターンと置き換えられる
正しいスペルのパターンを表す。フォールト・パターン
とコレクト・パターンは特定の文字を用いて記述しても
よく、あるいは変数を用いて記述してもよい。また、コ
ンディションはそのエラー・パターンの適用条件を表
し、重み値はそのエラー・パターンを数値化する際の重
みを表す。スペルを表すフォールト・パターンおよびコ
レクト・パターンは、文字だけでなく、文字を表す変数
からなることもある。
【0037】例えば、図3のエラー・パターン[1]、
[2]、[4]、[5]のxとyは変数を表している。
エラー・パターン[1]の(xy)⇒(yx)は、2つ
の文字がどんな文字であれ、これらが入れ換わっている
可能性を表現している。また、(x≠y)はこれらの変
数に対する束縛条件を表している。もし、x=yだとす
ると、フォールト・パターンとコレクト・パターンが等
しくなるので、このエラー・パターンが意味を持たなく
なるため、コンディション(x≠y)が課されている。
これに代わって、コンディション((x∈母音)∧(y
∈子音))が課されていたとすると、最初の文字が母音
で次の文字が子音であるような文字の組についてのみ、
このエラー・パターンが適用されることになる。
【0038】エラー・パターン[2]は、1つの文字が
他の文字に置き換わっているエラーを表し、エラー・パ
ターン[3]は、文字列“tions ”の代わりに“tois”
が入力された場合のエラーを表している。また、エラー
・パターン[4]は、同じ文字が重複して入力された場
合のエラーを表し、エラー・パターン[5]は、2つの
文字からなるスペルのうち、後の文字のみが入力された
場合のエラーを表している。また、エラー・パターン
[3]、[4]においては、コンディションは空であ
り、束縛条件が存在しないことを示す。
【0039】プロセッサ20は、入力文字列を1文字ず
つ読み取って、テンポラリ・メモリ15に格納されたエ
ラー・パターン16のフォールト・パターンと比較す
る。もし、いずれかのエラー・パターンのフォールト・
パターンに適合した場合は、入力文字が誤りであると仮
定する。このとき、コレクト・パターンから代替文字1
9を生成し、フォールト・パターンに対応する入力文字
を代替文字19の1つと置き換える。また、入力文字を
1つ読み取る度に、対応する解析パス17をテンポラリ
・メモリ15に格納する。
【0040】図4は、テンポラリ・メモリ15に格納さ
れる解析パス17の例を示している。図4(a)は解析
パスの形式を示しており、1つの解析パスが1つまたは
複数のステップからなることを表している。1つのステ
ップは、現在のTRIEテーブル(current TRIE tabl
e)、最後に読んだ文字(last-read character )、置
換文字または置換文字列(substituted character or c
haracters )、処理中のエラー・パターン(error patt
ern in progess)、そのステップまでのエラー統計情報
(error statistics so far )、および入力ポインタ値
(input pointerposition)の各データを含む。
【0041】現在のTRIEテーブルは、新しく読み込
まれたTRIEテーブルの名称を表し、最後に読んだ文
字は、入力文字列から読み込まれた最新の文字を表し、
置換文字または置換文字列は、代替文字19から選ばれ
た置き換え用の文字(列)、あるいはエラー・パターン
により指定される置き換え用の文字(列)を表す。処理
中のエラー・パターンは、エラー・パターン16から選
ばれたエラー・パターンを、1文字の処理の後の最新の
状況を反映するように書き換えたものである。エラー統
計情報は、エラー・パターンの適用回数に関する情報
で、例えば、処理対象の文字列に対して適用したエラー
の数と各エラーの重みの合計等を表す。また、入力ポイ
ンタ値は、次の入力文字を指す入力ポインタの値を表
す。
【0042】図4(b)は、処理の最初のステップで生
成されるルート・パス(root path)を示している。こ
のルート・パスは1つのステップのみからなり、現在の
TRIEテーブルが“root”で、入力ポインタ値は0で
あることを表す。また、最後に読んだ文字、置換文字
(列)、エラー・パターン、およびエラー統計情報は空
であることを表している。
【0043】図4(c)は、“cat ”という単語を誤っ
て“cta ”と入力した時の処理において、正しい単語
“cat ”を認識するに至る解析パスを示している。この
解析パスは4つのステップST1、ST2、ST3、S
T4からなり、それぞれTRIEテーブル“root”、
“c-”、“ca- ”、“cat-”にアクセスしていることを
表す。ステップST1とST2ではエラー・パターンは
適用されていないが、ステップST3では、図3のエラ
ー・パターン[1]が適用されている。
【0044】ここでは、エラー・パターン[1]の変数
xに文字tが代入されているが、tの次の文字はまだ読
み込まれていないので、変数yはt以外のあらゆる文字
が対応することになる。そこで、この解析パスにおいて
は、一例として置換文字aが変数yに代入されている。
これにより、エラー・パターン[1]は、(/t/a)
⇒(/a/t)のように具体化されるが、フォールト・
パターンの最初の文字tは読み出されているので、結
局、(/a)⇒(/t)が残る。また、この時点で変数
x、yはパターンから消去されているので、コンディシ
ョン(x≠y)は不要となり、ステップST3のエラー
・パターンのコンディションは空になっている。ステッ
プST3でエラー・パターン[1]が適用されたので、
ステップST3、ST4のエラー統計情報としては、エ
ラー数1とエラー・パターン[1]の重み0.6が設定
される。結局、この解析パスは、入力文字列“cta ”の
tとaの順序を入れ替えて文字列“cat ”を生成するパ
スを与えている。
【0045】このように、解析パスは、最後に読んだ文
字が処理された時点までの特定の解析処理の状態を表現
している。プロセッサ20は、修正された文字を用いて
TRIEテーブルを検索し、該当する辞書の対応語が得
られれば、そこに至るまでの解析パスを形態素デリベー
ション18としてテンポラリ・メモリ15に格納する。
すべての可能な形態素デリベーションが得られると、そ
れらが示す対応語を出力モジュール22に送る。出力モ
ジュール22は、処理の結果得られた1つ以上の対応語
を認識結果として、例えば図示されていないディスプレ
イ装置やプリンタ、あるいは文書処理システムにおける
次段の処理装置等に出力する。
【0046】本発明においては、エラー・パターンは解
析アルゴリズムそのものからは分離されており、このた
め容易に変更することができる。この特徴により、形態
素解析およびスペル修正システムに大きな柔軟性が与え
られる。例えば、タイプされた文書を扱うシステムで
は、“o ”と“i ”はキーボード上で互いに隣接してい
るため、“o ”の代わりに誤って“i ”が入力される可
能性が高い。これに対して、光学的な読み取り装置によ
り入力された文字列を認識するシステムでは、“o ”は
“c ”と視覚的にかなり似通っているため、“o ”の代
わりに“c ”が入力される可能性が高い。このように、
入力方法に応じてエラー・パターンが異なる場合でも、
最適なエラー・パターンを選択して用いることにより、
柔軟に対処することができる。また、束縛条件として用
いられるコンディションも自由に定義できる。
【0047】実施例の1つとして、エラー・パターンを
定義するための特別なユーザ・インタフェースを設けて
もよい。このユーザ・インタフェースは、エラー・パタ
ーンに関するユーザの希望を視覚的にあるいは他の意味
において一層魅力的な形式で表現し、その希望を解析処
理で用いられる別の形式に変換する。
【0048】以下の説明では、テンポラリ・メモリ15
からデータを読み出す時、そのデータはテンポラリ・メ
モリ15から消去され、パーマネント・メモリ11から
データを読み出す時は消去されないものとする。
【0049】まず、以下の条件を前提として、本実施例
の第1の実施例における文字列修正処理について説明す
る。 (1)処理開始時において入力ポインタは7を指してい
る。 (2)入力ポインタ値7の位置から入力される文字列は
“from”である。 (3)パーマネント・メモリ11内には図9のエラー・
パターン[1]および[2]が格納されている。 (4)パーマネント・メモリ11内のエラー・コンディ
ション14は、6文字未満の単語には1つのタイプのエ
ラー・パターンのみが許されることを記述している。ま
た、一般則として、1つのエラー・パターンが適用され
た文字列には、重複して他のエラー・パターンを適用し
ないことも記述している。 (5)処理開始時においてテンポラリ・メモリ15の格
納領域は空である。
【0050】図5から図8までは、本実施例における文
字列修正処理の一例であるスペル修正処理を示すフロー
チャートである。図9は、第1の実施例における入力文
字列と入力ポインタ値の関係を示しており、図10、1
2、13、14は、第1の実施例における解析パスを示
している。また、図11は、第1の実施例における形態
素デリベーションを示しており、図15は、第1の実施
例で用いられるTRIEテーブルを示している。図15
(b)において、辞書の対応語の列の“suff”は接尾辞
を表す。
【0051】まず、図5および図6の処理フローについ
て簡単に説明する。図5において処理が開始されると、
プロセッサ20は初期設定を行った後に(ステップS1
1)、入力文字を1文字づつ読み込み(ステップS1
2)、入力文字とメモリ内のエラー・パターンに基づい
て、できるだけ多くの解析パスを生成する。このとき、
新たな入力文字を読み込む毎に、先に生成された解析パ
スを利用して新たな解析パスを生成する。解析パスの生
成は、いくつかの処理ループの組合わせにより行われ
る。
【0052】最も下位のループは図6のステップS2
0、S21、S22、S23からなり、テンポラリ・メ
モリ15内の各エラー・パターン毎にその処理が一巡す
る。そして、先に生成された特定の解析パス、入力文
字、および適用対象のエラー・パターンとに基づいて、
新しい解析パスが生成される。また、文字列の認識に成
功した解析パス、入力文字、およびエラー・パターンの
組合わせは、形態素デリベーションとしてテンポラリ・
メモリ15内に書き込まれる。すべてのエラー・パター
ンについて処理が終わると、既存の解析パスと入力文字
からさらに新しい解析パスを生成する。(ステップS2
5)。このときは、エラー・パターンが適用されないの
で、入力文字が正しいものとして処理され、文字列の認
識に成功した解析パスと入力文字の組合わせが、形態素
デリベーションとして書き込まれる。
【0053】より上位のループは図5のステップS1
3、S14、および図6のすべてのステップからなり、
先の入力文字から生成された各解析パス毎にその処理が
一巡する。このとき、各解析パス毎に前処理が行われ、
エラー・パターンが既にそのパス上で適用されているか
どうか(ステップS17)、もし適用されていなけれ
ば、そのパス上でエラーが許されるかどうか(ステップ
S18)がチェックされる。エラーが許される場合は、
このパスに対して、上述のステップS20、S21、S
22、S23、およびS25の処理が行われ、エラーが
許されない場合は、ステップS25の処理のみが行われ
る。また、エラー・パターンが既に適用されていれば、
ステップS20、S21、S22、S23からなるルー
プは、そのエラー・パターンについて1回だけ処理され
る。
【0054】そして、プロセッサ20は、新しい解析パ
スを生成できなくなるまで、このような処理を連続する
各入力文字毎に繰り返す。新しい解析パスが生成できな
くなると(ステップS15、N)、ステップS23およ
びS25で書き込んだすべての形態素デリベーションを
用いて、出力を生成する(ステップS16)。
【0055】次に、図5から図15までを参照しなが
ら、スペル修正処理について詳細に説明する。図5にお
いて、プロセッサ20は、まず図20(a)のようなT
RIEテーブル“root”を読み込み、ルート・パスを計
算する(ステップS11)。ここでは、入力ポインタ値
は7であるので、ルート・パスは図9の解析パス[0]
のようになる。次に、入力文字列の左端の文字を読み込
み、入力ポインタを右へシフトする(ステップS1
2)。ここでは、入力文字列“from”の入力ポインタ値
7の位置から文字“f ”が読み込まれ、入力ポインタが
8の位置へシフトする。次に、テンポラリ・メモリ15
内の解析パスのうちで、未処理のパスが残っているかど
うかをチェックする(ステップS13)。未処理のパス
とは、実際の入力ポインタ値より小さい値の入力ポイン
タ値で終わっている解析パスを指す。ここでは、テンポ
ラリ・メモリ15内にはルート・パス[0]しかない
が、その入力ポインタ値7は現在の入力ポインタ値8よ
り小さいので、未処理のパスとして扱われる。
【0056】未処理のパスが残っていれば、次に、その
うちの1つを選び(ステップS14)、そのパス上で処
理中のエラー・パターンがあるかどうかをチェックする
(図6、ステップS17)。処理中のエラー・パターン
があれば、1つの解析パス上で2つ以上のエラー・パタ
ーンを適用できないという一般則から、他のエラー・パ
ターンの適用が禁止される。もし、解析パス中の処理中
のエラー・パターンのスロットがあるエラー・パターン
を含んでいれば、判定結果は肯定になる。ここでは、ル
ート・パス[0]が選ばれるが、これはエラー・パター
ンを含んでいないので判定結果は否定になる。
【0057】処理中のエラー・パターンがなければ、次
に、現在の解析パス上でエラーが許されるかどうかをチ
ェックする(ステップS18)。このとき、パーマネン
ト・メモリ11内のエラー・コンディション14を参照
して、現在の解析パスがその条件に反しないかどうかを
調べる。ここでは、エラー・コンディション14により
6文字未満の単語には1つのタイプのエラー・パターン
のみが許されるが、ルート・パス[0]のエラー統計情
報は空なので、まだエラー・パターンが一度も適用され
ておらず、したがって、この解析パス上ではエラーが許
されることが分かる。
【0058】エラーが許される場合は、パーマネント・
メモリ11から適当なエラー・パターンを読み出してテ
ンポラリ・メモリ15に格納する(ステップS19)。
ここでは、上述のエラー・パターン[1]および[2]
がテンポラリ・メモリ15に格納される。次に、未処理
のエラー・パターンが残っているかどうかをチェックし
(ステップS20)、残っていればそのうちの1つを選
ぶ(ステップS21)。一度、処理に用いられたエラー
・パターンはテンポラリ・メモリ15から消去されるの
で、テンポラリ・メモリ15に残っているものは未処理
のエラー・パターンということになる。ここでは、エラ
ー・パターン[1]および[2]がテンポラリ・メモリ
15に格納された直後なので、これらは未処理のエラー
・パターンとみなされる。そこで、まずエラー・パター
ン[1]が最初に選ばれるものとする。
【0059】次に、選んだエラー・パターンが適用可能
かどうかをチェックする(ステップS22)。入力文字
が、エラー・パターン中のフォールト・パターンの最初
の文字に適合すれば、そのエラー・パターンは適用可能
と判定される。ここでは、エラー・パターン[1]のフ
ォールト・パターンは(xy)であり、その最初の文字
は変数xである。変数xに対する制約は特にないので、
エラー・パターン[1]は適用可能と判定される。選ん
だエラー・パターンが適用可能であれば、そのエラー・
パターンを用いて、新しい解析パス、TRIEテーブ
ル、および形態素デリベーションを求める(ステップS
23)。
【0060】図7は、図6のステップS23の処理を示
すフローチャートである。図7において処理が開始され
ると、プロセッサ20は、まず現在のエラー・パターン
のコレクト・パターンが空かどうかをチェックする(ス
テップS31)。ここでは、エラー・パターン[1]の
コレクト・パターンは(yx)であって、空ではないの
で、次に、コレクト・パターンの最初の位置を参照し
て、代替文字(列)を計算し、テンポラリ・メモリ15
に書き込む。ここでは、コレクト・パターン(yx)の
最初の位置には別の変数yがあり、それに対するコンデ
ィションは変数xの値と等しくないこと(x≠y)であ
る。ところが、変数xは入力文字“f ”に置き換えられ
るため、変数yの値としては“f ”以外のすべての文字
(アルファベット、またはそれ以外の記号も含む)が許
され、それらが代替文字の候補となる。
【0061】次に、テンポラリ・メモリ15に書き込ま
れた代替文字、または代替文字列のうちの1つを選び
(ステップS33)、それが代替文字列の場合は、その
最初の文字を取り出す(ステップS34)。そして、代
替文字、または代替文字列の最初の文字が、現在のTR
IEテーブルの入力文字のエントリにあるかどうかを調
べる(ステップS35)。現在のTRIEテーブルと
は、対象とする解析パス中の最後のステップに指定され
ているTRIEテーブルを指し、ここではTRIEテー
ブル“root”に対応する。ステップS33で、例えば代
替文字“a ”が選ばれたとすると、これは代替文字列で
はないのでステップS34の処理をスキップし、“a ”
をTRIEテーブル“root”のエントリと比較する(ス
テップS35)。その結果、“a ”はTRIEテーブル
“root”のエントリにあることが分かる。
【0062】代替文字が現在のTRIEテーブルのエン
トリにあれば、対応する次のTRIEテーブルを読み込
み、図4(a)の形式に従って新しい解析パスのデータ
を計算する(ステップS36)。ここでは、TRIEテ
ーブル“root”のTRIEテーブルリンク“a-”から、
次のTRIEテーブル“a-”が読み込まれ、ルート・パ
スに新たに追加されるステップの現在のTRIEテーブ
ルの名称は“a-”となる。また、最後に読んだ文字はス
テップS12で読み込まれた“f ”であり、置換文字は
ステップS33で選ばれた“a ”となる。処理中のエラ
ー・パターンは、ステップS21で選ばれたエラー・パ
ターン[1]にx=f、y=aを代入して、(/f/
a)⇒(/a/f)となるが、フォールト・パターンの
最初の文字fは読み出されているので、結局、(/a)
⇒(/f)となる。また、コンディション(x≠y)は
無意味になるので消去される。エラー・パターン[1]
が適用されたので、エラー統計情報としては、エラー数
1とエラー・パターン[1]の重み0.6が設定され
る。また、入力ポインタの位置はステップS12でシフ
トされており、その値は8である。こうして、図10に
示される解析パス[1.1]が生成される。
【0063】次に、形態素が認識されたかどうかをチェ
ックし(ステップS37)、認識された場合は、その形
態素の導出(デリベーション)を表す形態素デリベーシ
ョンを生成して、テンポラリ・メモリ15に書き込む
(ステップS38)。形態素デリベーションは、形態素
明細と形態素の認識に至るまでの解析パスとからなる組
合わせデータである。ここで、形態素明細とは、認識さ
れた形態素を特定するデータであり、その形式は任意に
定義することができる。解析パス[1.1]の場合は、
入力文字“f ”を“a ”に置き換えることを意味してお
り、その結果、冠詞“a ”として認識される。そして、
例えば、図11に示すような形態素デリベーション
{1.1}がテンポラリ・メモリ15に書き込まれる。
形態素デリベーション{1.1}は、形態素明細(a, A
rt)と解析パス[1.1]とから構成されており、形態
素明細(a, Art)は、認識された形態素“a ”の品詞名
が冠詞であることを表している。
【0064】次に、現在の代替文字列が空かどうかをチ
ェックし(ステップS39)、空であれば新しい解析パ
スをテンポラリ・メモリ15に書き込み(ステップS4
0)、空でなければステップS34以降の処理を繰り返
す。ここでは、代替文字列は生成されていないので、ス
テップS36で求めた解析パス[1.1]を新しいパス
としてテンポラリ・メモリ15に書き込む。
【0065】次に、テンポラリ・メモリ15に他の代替
文字(列)があるかどうかをチェックし、他の代替文字
(列)があればステップS33以降の処理を繰り返し、
なければ図7の処理を終了して図6のステップS20以
降の処理を行う。ここでは、まだ“a ”のみしか取り出
していないので、多数の代替文字が残されている。そこ
で、残っている各代替文字毎に、ステップS33、S3
4、S35、S36、S37、S38、S39、S4
0、S41、S33のループ処理を一巡する。ただし、
ステップS35で代替文字がTRIEテーブルのエント
リになければ、ステップS36からS40までの処理は
スキップされ、ステップS37で形態素が認識されなけ
れば、ステップS38の処理はスキップされる。例え
ば、代替文字の1つである“r ”については、図10の
解析パス[1.2]が生成されるが、形態素は認識され
ず、形態素デリベーションは生成されない。
【0066】この結果、TRIEテーブルのエントリに
ある代替文字の数と同数のパスが生成される。ここでの
TRIEテーブルは最上位のTRIEテーブル“root”
であり、英語の場合はすべての文字がそのエントリにあ
ると考えられるため、実際には、代替文字と同数のパス
が生成される。
【0067】しかしながら、他の実施形態において、コ
レクト・パターン内の変数を埋める文字として、より限
定した組の文字(例えば、1文字のみ)を生成すること
にしてもよい。この場合には、その変数がフォールト・
パターン内に現れるかどうかをチェックし、フォールト
・パターン内のその変数の位置を求め、入力文字列内の
対応する位置の文字をのぞくことにより、特定の代替文
字を得ることができる。さらに他の形態として、現在の
TRIEテーブルを用いて可能な代替文字を求めてもよ
い。現在のTRIEテーブルのエントリにない文字を、
代替文字としてテンポラリ・メモリ15に書き込まない
ようにすれば、上述のループ処理の回数を大幅に削減す
ることができる。
【0068】次に、プロセッサ20は、テンポラリ・メ
モリ15に未処理のエラー・パターンが残っているかど
うかをチェックする(図6、ステップS20)。ここで
は、エラー・パターン[2]がまだ残っているので、こ
れが取り出され(ステップS21)、エラー・パターン
[1]と同様に適用可能と判定される(ステップS2
2)。また、そのコレクト・パターンは空でないので、
エラー・パターン[1]と同様の代替文字が生成され、
その場合とほぼ同様にして、ステップS33、S34、
S35、S36、S37、S38、S39、S40、S
41、S33のループ処理が必要回数だけ繰り返され
る。しかしながら、生成される解析パスは、特に、処理
中のエラー・パターンとエラー統計情報において、エラ
ー・パターン[1]の場合と異なる。
【0069】図10の解析パス[1.3]、[1.4]
は、それぞれエラー・パターン[2]の変数yを“a
”、“r ”に置き換えた場合のパスを示している。エ
ラー・パターン[2]の場合は、それが具体化されると
同時に適用済になるので、処理中のエラー・パターンの
スロットには適用済を示す記号 外2 が格納される。
【0070】
【外2】
【0071】た、エラー統計情報のスロットには、エラ
ー数1とともにエラー・パターン[2]の重み0.4が
格納される。こうして、エラー・パターン[2]の代替
文字に関する解析パスをすべて生成すると、再びステッ
プS20に戻る。ところが、ステップS19でテンポラ
リ・メモリ15に読み込まれたエラー・パターン[1]
と[2]は既に読み出されているため、エラー・パター
ンはもうテンポラリ・メモリ15に残っていない。そこ
で、次に、処理中のエラー・パターンがあるかどうかを
チェックする(ステップS24)。これは、ステップS
17と同じ処理であるが、これがステップS24で繰り
返される理由は後で明らかになる。ここでは、エラー・
パターン[1]と[2]は既に処理済であるため、判定
結果は否定になる。
【0072】この時点までに、プロセッサ20はテンポ
ラリ・メモリ15内のすべてのエラー・パターンについ
ての処理を完了しているが、入力文字を正しいとみなし
た処理をまだ行っていない。そこで、ステップS24で
処理中のエラー・パターンがなければ、次に、入力文字
が正しいと仮定して、新しい解析パス、TRIEテーブ
ル、および形態素デリベーションを求める(ステップS
25)。
【0073】図8は、ステップS25の処理のフローチ
ャートである。図8において、プロセッサ20は、まず
入力文字がTRIEテーブルのエントリにあるかどうか
をチェックする(ステップS51)。ここでは、対象の
TRIEテーブルはTRIEテーブル“root”であり、
入力文字“f ”はそのエントリにあることが分かる。
【0074】次に、パーマネント・メモリ11から、対
応する次のTRIEテーブルを読み込み、新しい解析パ
スを計算して、テンポラリ・メモリ15に書き込み(ス
テップS52)、形態素が認識されたかどうかをチェッ
クする(ステップS53)。形態素が認識された場合
は、その形態素デリベーションをテンポラリ・メモリ1
5に書き込んで(ステップS54)、図8の処理を終了
し、図5のステップS13の処理を行う。ここでは、入
力文字“f ”が正しいと仮定して、TRIEテーブル
“f ”が読み込まれ、図10の解析パス[1.5]が生
成されるが、“f ”のみでは辞書の対応語として認識さ
れないので、ステップS54の処理はスキップされる。
【0075】次に、未処理の解析パスが残っているかど
うかをチェックする(図5、ステップS13)。未処理
の解析パスは、前述したように、その入力ポインタ値が
実際の入力ポインタの値より小さい解析パスを指す。こ
こで、ルート・パスは、最初のステップS14の処理の
際に既にテンポラリ・メモリ15から読み出されて、な
くなっている。その代わりに、例えば解析パス[1.
1]〜[1.5]のような新たに生成されたパスがすべ
て残されている。しかしながら、これらのパスはすべ
て、現在の入力ポインタと同じ値8を入力ポインタ値と
して持っているため、これらは未処理の解析パスには相
当しない。そこで、次に、アクティブ・パスが残ってい
るかどうかをチェックする(ステップS15)。ここで
は、生成したすべての解析パスがテンポラリ・メモリ1
5に存在しており、それらはアクティブと判定される。
尚、図10の解析パス[1.1]、[1.2]、[1.
3]、[1.4]、[1.5]は、生成された解析パス
の一部に過ぎず、実際には多数の代替文字に対応して多
数の解析パスが生成されている。
【0076】アクティブ・パスが残っていれば、次の入
力文字(残っている入力文字列の左端の文字)を読み込
み(ステップS12)、最初の入力文字の時と同様の処
理を繰り返す。ここでは、入力ポインタ値8の位置から
次の入力文字“r ”が読み込まれ、入力ポインタは9に
シフトする。これにより、テンポラリ・メモリ15内の
すべての解析パスが未処理の解析パスになるので、その
うちの1つが選ばれる。仮に、解析パス[1.1]が選
ばれたとすると、このパスは処理の途中のエラー・パタ
ーン(/a)⇒(/f)を含んでいるので、ステップS
17の判定結果は肯定となり、次に、解析パス[1.
1]上でこのエラー・パターンが適用可能かどうかがチ
ェックされる(ステップS22)。ところが、このエラ
ー・パターンのフォールト・パターン内の最初の文字
“a”は入力文字“r ”と異なるため、判定結果は否定
となり、未処理のエラー・パターンが残っているかどう
かがチェックされる(ステップS20)。しかし、入力
文字“r ”を読み込んでから後では、エラー・パターン
をパーマネント・メモリ11からテンポラリ・メモリ1
5に読み込んでいないので、未処理のエラー・パターン
はなく、処理中のエラー・パターンがあるかどうかがチ
ェックされる(ステップS24)。ここで、再び解析パ
ス[1.1]のエラー・パターンのスロットが参照さ
れ、処理中のエラー・パターンがあることが分かるの
で、ステップS25の処理はスキップされる。こうし
て、解析パス[1.1]は新たなパスを生成するのに失
敗したので、破棄される。
【0077】このように、ステップS17で、解析パス
のエラー・パターンを適用せずに、ただ参照するだけ
で、処理中のエラー・パターンがあるかどうかを確認す
ることができる。また、そのエラー・パターンを適用し
ない場合は、ステップS24で再び同じチェックを行っ
て、新しいパスの生成を省略することができる。このた
め、ステップS17とS24で同じチェックが行われ
る。
【0078】次に、図5のステップS13の処理に戻る
が、テンポラリ・メモリ15にはまだ多数の解析パスが
残っている。そこで、次に、解析パス[1.2]が選ば
れたとする(ステップS14)。このとき、再びステッ
プS17からS22の処理に移る。この場合は、エラー
・パターンのフォールト・パターン内の最初の文字は
“r ”で、入力文字“r ”と一致するので、図7のステ
ップS31の処理に移り、続いてステップS32の処理
が行われる。解析パス[1.2]のエラー・パターン
(/r)⇒(/f)の場合、可能な代替文字は“f ”の
みであるため、これがテンポラリ・メモリ15に書き込
まれた後に(ステップS32)、取り出される(ステッ
プS34)。そして、ステップS35で、“f ”は解析
パス[1.2]のTRIEテーブル“r-”と比較され
る。しかし、英語には“rf”で始まる単語はないので、
図20(b)に示されるTRIEテーブル“r-”の入力
文字のエントリには文字“f ”は存在しない。そこで、
ステップS41の処理に移るが、他の代替文字はないの
で、次に、ステップS20の処理に移る。そして、解析
パス[1.1]の場合と同様にして、ステップS24か
らステップS13の処理にに戻る。また、エラー・パタ
ーン[1]から生成される他の代替文字の解析パスにつ
いても、解析パス[1.1]の場合と同様に破棄され
る。したがって、2番目の入力文字が読み込まれた結
果、エラー・パターン[1]から生成された解析パスは
すべて、うまくいかなかったことになる。
【0079】次に、プロセッサ20は、エラー・パター
ン[2]から生成された解析パスについて処理を行う。
まず、解析パス[1.3]が取り出されると(ステップ
S14)、処理中のエラー・パターンのスロットは適用
済の記号になっているので(ステップS17、N)、次
にステップS18の処理が行われる。ここで、パーマネ
ント・メモリ11のエラー・コンディション14が参照
され、6文字未満の単語内には1つのエラーしか許され
ないことが確認される。そこで、解析パス[1.3]の
エラー統計情報を見ると、既にエラーが発生しているこ
とが分かるので、これ以上のエラーは許されず、次にス
テップS25の処理が行われる。ステップS25では、
まず入力文字“r ”が図15(a)に示されるTRIE
テーブル“a-”のエントリと比較される(ステップS5
1)。“r ”はTRIEテーブル“a-”のエントリの1
つと一致するので、次に、図15(b)に示されるよう
な、対応する次のTRIEテーブル“ar- ”が読み込ま
れ、図12の新しい解析パス[2.1]がテンポラリ・
メモリ15に書き込まれる(ステップS52)。しか
し、この時点では形態素は認識されないので、ステップ
S13の処理に戻る。
【0080】次に、解析パス[1.4]が取り出される
と(ステップS14)、[1.3]の場合と同様にし
て、ステップS17、S18、S51の順に処理され
る。この場合は、入力文字“r ”が図20(b)に示さ
れるTRIEテーブル“r-”のエントリにないので、そ
のままステップS13の処理に戻る。実際、“rr- ”で
始まる英単語は存在しない。
【0081】次に、解析パス[1.5]が取り出された
場合を考える(ステップS14)。この場合は、処理中
のエラー・パターンはなく(ステップS17、N)、エ
ラー統計情報も空であるため(ステップS18、Y)、
パーマネント・メモリ11からエラー・パターン[1]
と[2]がテンポラリ・メモリ15に読み込まれる(ス
テップS19)。そして、ステップS20を経て、例え
ばエラー・パターン[1]が選ばれる(ステップS2
1)。これ以降は、基本的に最初の文字“f ”の処理と
同様にして、ステップS33、S34、S35、S3
6、S37、S38、S39、S40、S41、S33
のループ処理が必要回数だけ繰り返され、新しい解析パ
スが生成される。図12の解析パス[2.2]、[2.
3]は、この時生成されるパスの例を示している。次
に、エラー・パターン[2]が選ばれ(ステップS2
1)、同様のループ処理が行われて、解析パス[2.
4]を含む複数のパスが生成される。この後、ステップ
S20からS24の処理に移り、ステップS25で解析
パス[2.5]が生成される。そして、ステップS53
を経てS13、S15の順に処理が行われ、次の入力文
字が読み込まれる(ステップS12)。
【0082】以下、同様にして処理が続行され、多数の
新しい解析パスが生成される。図13の解析パス[3.
1]は、入力文字“o ”が読み込まれた時に解析パス
[2.5]から生成されるパスの1つであり、図14の
解析パス[4.1]、[4.2]、[4.3]、[4.
4]は、入力文字“m ”が読み込まれた時に生成される
パスの例を示している。また、図15(c)は、入力文
字“o ”が読み込まれた時に、解析パス[2.1]に基
づいてアクセスされるTRIEテーブル“aro-”を示し
ており、図15(d)は、次の入力文字“m ”が読み込
まれた時にアクセスされるTRIEテーブル“arom- ”
を示している。図15(d)は、解析パス[4.1]の
最後のステップに含まれるTRIEテーブル“from- ”
を示している。
【0083】こうして、最終的に入力文字列“from”の
次のスペースが読み込まれることになるが、スペースは
TRIEテーブルの入力文字のエントリにないため(ス
テップS51、N)、[4.1]以外のすべての解析パ
スが新しいパスの生成に失敗する。解析パス[4.1]
の場合は、エラー・パターンが一度も適用されていない
ので、スペースは誤入力であるとみなす自由度が残され
ている。そこで、他の代替文字が生成されるが、TRI
Eテーブル“from- ”のエントリは空であるため(ステ
ップS35、N)、いかなる代替文字からも新しいパス
は生成されない。結局、スペースが読み込まれたときに
は、すべての解析パスについて、新しいパスの生成が失
敗に終わる。
【0084】そこで、アクティブ・パスは残されていな
いと判定され(ステップS15)、ステップS38とS
54でテンポラリ・メモリ15に書き込まれた形態素デ
リベーションを用いて、出力が計算される(ステップS
16)。
【0085】出力の計算においては、プロセッサ20
は、まず生成された形態素デリベーションを、認識語と
しての可能性の高い順に格納する。認識語としての可能
性は、形態素デリベーションに含まれる解析パスの特性
の1つであるエラー統計情報と、形態素明細に記述され
ている形態素自身の長さとを用いて計算される。次に、
異なる解析パスを持っていても形態素明細が同じ場合
は、重複を排除する処理を行う。これにより、最も可能
性の高いものだけが残される。次に、エラー・パターン
の処理が完了していない形態素デリベーションを取り除
く。例えば、図11の形態素デリベーション{1.1}
は、エラー・パターン[1]が半分適用されたままにな
っており、残されたフォールト・パターンおよびコレク
ト・パターンが処理されない限り、出力として有効では
ないと考えられる。そこで、このような形態素デリベー
ションは破棄される。あるいはまた、別の実施態様にお
いては、スペルエラーが2つの隣接する単語間にまたが
っている場合を想定し、後続する入力文字列の認識のた
めに未完了のエラー・パターンを用いる。こうして、残
された形態素デリベーションは、シンタクス処理等の次
段の処理に適合する適当な形式に変換され、出力され
る。
【0086】第1の実施例における最終的な出力は、文
字列“from”、“form”、“prom”、“frog”、およ
び、より短い文字列“a ”、“fro ”、“for ”とな
り、これらは形態素の候補として認識される。このう
ち、“from”、“form”、“prom”、“frog”に対応す
る解析パスは、図14の[4.1]、[4.2]、
[4.3]、[4.4]であり、“a ”、“fro ”に対
応する解析パスは、それぞれ図10の[1.3]、図1
3の[3.1]である。ちなみに、“fro ”は“to and
fro”のように用いられる。“a ”、“fro ”、“for
”が他の文字列より短いということは、本発明のシス
テムの出力からこれらの文字列を選別して、最良の処理
を施す別のプロセッサの必要性を示唆している。
【0087】以上の第1の実施例では、エラー・パター
ンのフォールト・パターンの長さがコレクト・パターン
と等しい場合の処理を説明した。言い換えれば、入力文
字が読み込まれる度に必ず1つの新しいステップが生成
され、新しいTRIEテーブルが参照された。しかしな
がら、いつもこうした手順で処理が進められるとは限ら
ない。
【0088】次に、第2の実施例として、図3のエラー
・パターン[4]、[5]を採用した場合を考える。エ
ラー・パターン[4]は、“venneer ”の中の“n ”の
ように、1つの文字が重複した場合を記述している。こ
の場合、正しいスペルは“veneer”である。エラー・パ
ターン[5]は、2つのコンディションを持っている。
コンディション 外3 は、ここでは、変数xとyに対
応する文字がキーボー
【0089】
【外3】
【0090】ド上で互いに隣接する位置にあることを表
し、コンディション(x≠y)は、変数xとyに対応す
る文字が互いに異なることを表す。例えば、アルファベ
ットの“q ”と“w ”、“w ”と“e ”、“e ”と“r
”は隣接しているが、“q ”と“e ”は隣接していな
い。つまり、エラー・パターン[5]は、変数xに対応
する文字に隣接する、変数yに対応する文字が、変数x
に対応する文字の前に入力されなければならないのにも
かかわらず、省かれてしまった場合を記述している。こ
のようなタイプミスはよくあることであり、例えば、
“veneer”とタイプしようとして“vener ”と打ってし
まうことが考えられる。
【0091】最初にエラー・パターン[4]を用いた処
理を説明する。入力文字列“venneer ”と入力ポインタ
値の関係は図16(a)の通りである。今、入力文字
“v ”と“e ”が既に処理されて、図17の解析パス
[2.6]が得られているとする。次に、図5のステッ
プS12で文字“n ”が読み込まれると、解析パス
[2.6]が選ばれ(ステップS14)、エラー・パタ
ーン[4]が選ばれる(ステップS21)。エラー・パ
ターン[4]のフォールト・パターンの最初の文字は変
数で特に条件はないので、このエラー・パターンが適用
される(ステップS22、Y)。また、コレクト・パタ
ーンは空ではないので(ステップS31、N)、代替文
字が計算されるが(ステップS32)、ここでは、唯一
の可能な代替文字は“n ”自身であることが分かる。
【0092】次に、代替文字“n ”が選ばれ(ステップ
S33)、図19(a)に示されるTRIEテーブル
“ve- ”のエントリと比較される(ステップS35)。
すると、“n ”はTRIEテーブル“ve- ”のエントリ
にあるので、図17の解析パス[3.3]が新しく生成
される。しかし、形態素は認識されず(ステップS3
7、N)、代替文字列は空なので(ステップS39、
Y)、生成された解析パス[3.3]のみがテンポラリ
・メモリ15に書き込まれる(ステップS40)。そし
て、他の代替文字はないので(ステップS41、N)、
ステップS20の処理に戻る。
【0093】次に、処理の進行に伴い、入力文字列の2
番目の“n ”が読み込まれ、解析パス[3.3]が選ば
れたとする。この解析パス上には処理中のエラー・パタ
ーンがあるため(ステップS17、Y)、直ちにステッ
プS22の処理に移る。ここで、エラー・パターン内の
フォールト・パターンは(/n)で、入力文字“n ”に
一致するので、このエラー・パターンが適用される(ス
テップS22、Y)。次に、コレクト・パターンは空で
あるので(ステップS31、Y)、ステップS42の処
理に移って、新しい解析パスを計算する。このとき、図
17の解析パス[4.5]が生成される。ここで興味深
いのは、追加されたステップのTRIEテーブル“ven
-”がその前のステップのTRIEテーブルと同じとい
うことである。これは、入力文字列の2番目の“n ”を
無視するために必要であり、望ましい結果である。この
TRIEテーブル“ven-”は、図19(b)に示されて
いる。そして、解析パス[4.5]がテンポラリ・メモ
リ15に書き込まれ(ステップS40)、他の代替文字
はないので(ステップS41、N)、ステップS20、
S24、S13の順に処理を遡る。以下、残りの入力文
字列“eer ”が正しいと仮定すれば、最終的に形態素
“veneer”が認識され(ステップS53、Y)、対応す
る形態素デリベーションが得られる(ステップS5
4)。この例は、コレクト・パターンがフォールト・パ
ターンより短いエラー・パターンを用いて、解析が成功
する場合を示している。
【0094】次に、もう1つの可能性として、コレクト
・パターンがフォールト・パターンより長いエラー・パ
ターン[5]を用いる例について説明する。この例にお
ける入力文字列“vener ”と入力ポインタ値の関係は図
16(b)の通りである。今、入力ポインタ値7の位置
の“r ”が読み込まれ(ステップS12)、解析パス
[4.6]が選ばれ(ステップS14)、エラー・パタ
ーン[5]が選ばれたものとする(ステップS21)。
エラー・パターン[5]のフォールト・パターンは変数
xで始まるので、このエラー・パターンが適用され(ス
テップS22、Y)、変数xは文字“r ”に置き換えら
れる。
【0095】次に、コレクト・パターンは空ではないの
で(ステップS31、N)、代替文字または代替文字列
が計算される(ステップS32)。代替文字と代替文字
列のいずれを計算すべきかは、エラー・パターンを見れ
ば分かる。もし、フォールト・パターンの長さが1で、
コレクト・パターンの長さが1より大きければ、プロセ
ッサ20は代替文字の代わりに代替文字列を生成する必
要があることを認識する。ここでは、フォールト・パタ
ーンの長さが1で、コレクト・パターンの長さが2であ
るので、代替文字列が生成される。コレクト・パターン
を見ると、代替文字列は変数列yxに当てはまる文字列
でなければならないが、変数xは既に文字“r ”に置き
換えられているので、変数yの候補が計算される。次
に、コンディションを見ると、変数yに当てはまる文字
は、キーボード上で“r ”に隣接していなければならな
いので、“e ”と“t ”が候補となる。こうして、代替
文字列“er”と“tr”が生成される。
【0096】次に、これらの代替文字列の1つ、例えば
“tr”が選ばれ(ステップS33)、その最初の文字
“t ”が取り出されて(ステップS34)、図19
(c)に示されるTRIEテーブル“vene- ”のエント
リと比較される(ステップS35)。すると、“t ”は
TRIEテーブル“vene- ”のエントリにあるので、図
19(e)に示される次のTRIEテーブル“venet-”
が読み込まれ、図18に示される解析パス[5.1]が
新しく生成される。しかし、形態素は認識されないので
(ステップS37、N)、ステップS38の処理はスキ
ップされ、代替文字列にはまだ“r ”が残っており、空
でないことが確認される(ステップS39、N)。そこ
で、残っている代替文字列の最初の文字に該当する“r
”が取り出されるが(ステップS34)、この文字は
TRIEテーブル“venet-”と適合しないことが分かる
(ステップS35、N)。そして、今度はステップS4
1の処理に移る。このとき、代替文字列“tr”の最初の
文字“t ”の処理に伴って生成された中間的な解析パス
[5.1]は、テンポラリ・メモリ15には書き込まれ
ない。
【0097】テンポラリ・メモリ15にはまだもう1つ
の代替文字列“er”が残っているので、この代替文字列
が選ばれ(ステップS33)、その最初の文字“e ”が
取り出されて(ステップS34)、TRIEテーブル
“vene- ”のエントリと比較される(ステップS3
5)。すると、“e ”もまたTRIEテーブル“vene-
”のエントリにあるので、図19(d)に示される次
のTRIEテーブル“venee-”が読み込まれ、解析パス
[5.2]が新しく生成される。しかし、形態素は認識
されず(ステップS37、N)、代替文字列は空でない
ので(ステップS39、N)、残っている代替文字列か
ら“r ”が取り出される(ステップS34)。ここで、
この文字はTRIEテーブル“venee-”のエントリにあ
るため(ステップS35、Y)、不図示の次のTRIE
テーブル“veneer- ”が読み込まれ、新しい解析パス
[6.1]が生成される。
【0098】今度は、形態素“veneer”が認識されるた
め(ステップS37、Y)、対応する形態素デリベーシ
ョンと解析パス[6.1]がテンポラリ・メモリ15に
書き込まれる(ステップS38、S40)。このとき書
き込まれる形態素デリベーションは、図11の形態素デ
リベーション{1.1}と同様に、単語“veneer”の形
態素明細と解析パス[6.1]とからなる。そして、他
の代替文字列は残っていないので(ステップS41、
N)、ステップS20の処理に戻る。このように、コレ
クト・パターンがフォールト・パターンより長いエラー
・パターンを用いて解析が成功する場合もある。
【0099】第1および第2の実施例において、パーマ
ネント・メモリ11に格納されるエラー・コンディショ
ンとして、6文字未満の単語にはエラーが1つしか許さ
れないという条件を課したが、この条件を各エラー・パ
ターンの重み値を用いて記述することもできる。例え
ば、エラー・パターンが適用される度にその重み値をエ
ラー統計情報に順次加算していき、その和があるしきい
値を超えない限り、新たなエラー・パターンの適用を許
すことにしてもよい。
【0100】また、以上の実施例では入力文字列が英語
の場合について説明したが、本発明の適用対象は特定の
言語に限られるものではなく、日本語、中国語、ドイツ
語、オランダ語等を含むあらゆる言語の文字列、記号列
に対して用いることができる。また、入力文字列が必ず
しも単一の言語に属している必要はなく、辞書に登録さ
れている複数の言語を含む文字列を処理することもでき
る。
【0101】さらに、文字列の入力はいかなる形態によ
るものでもよく、例えば、スキャナー等の光学的な読取
り装置から入力される文字列も、また音声により入力さ
れる文字列も、本発明の文字列修正システムにより処理
することができる。
【0102】
【発明の効果】本発明によれば、形態素解析を行う情報
処理システムにおいて、入力文字列に含まれるエラーが
特定のパターンに属することを想定して処理を行うこと
ができ、エラーを含む入力文字列を効率よく修正するこ
とができる。したがって、入力文字列に対応する認識結
果の文字列を特定するための処理時間が短縮される。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の実施例のシステム構成図である。
【図3】実施例におけるエラー・パターンを示す図であ
る。
【図4】実施例における解析パスの形式と例を示す図で
ある。
【図5】実施例におけるスペル修正処理のフローチャー
ト(その1)である。
【図6】実施例におけるスペル修正処理のフローチャー
ト(その2)である。
【図7】実施例におけるスペル修正処理のフローチャー
ト(その3)である。
【図8】実施例におけるスペル修正処理のフローチャー
ト(その4)である。
【図9】第1の実施例における入力文字列を示す図であ
る。
【図10】第1の実施例における解析パスを示す図(そ
の1)である。
【図11】第1の実施例における形態素デリベーション
を示す図である。
【図12】第1の実施例における解析パスを示す図(そ
の2)である。
【図13】第1の実施例における解析パスを示す図(そ
の3)である。
【図14】第1の実施例における解析パスを示す図(そ
の4)である。
【図15】第1の実施例で用いられるTRIEテーブル
を示す図である。
【図16】第2の実施例における入力文字列を示す図で
ある。
【図17】第2の実施例における解析パスを示す図(そ
の1)である。
【図18】第2の実施例における解析パスを示す図(そ
の2)である。
【図19】第2の実施例で用いられるTRIEテーブル
を示す図である。
【図20】rd. を検索するためのTRIEテーブルを示
す図である。
【図21】従来のTRIE法のフローチャートである。
【符号の説明】
1 辞書格納手段 2 エラー・パターン格納手段 3 検索手段 11 パーマネント・メモリ 12 辞書 13、16 エラー・パターン 14 エラー・コンディション 15 テンポラリ・メモリ 17 解析パス 18 形態素デリベーション 19 代替文字 20 プロセッサ 21 入力部 22 出力部

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 入力文字列と辞書のエントリを比較して
    形態素解析を行う情報処理システムにおいて、 前記入力文字列中の文字と比較される入力文字のエント
    リを持つ前記辞書を格納する辞書格納手段と、 前記入力文字列に含まれる可能性のあるエラーの型を規
    定したエラー・パターンを格納するエラー・パターン格
    納手段と、 前記エラー・パターン格納手段に格納された前記エラー
    ・パターンを用いて前記辞書格納手段に格納された前記
    辞書を検索し、前記入力文字列に対応する前記辞書のエ
    ントリを求め、認識語の候補として出力する検索手段と
    を備えることを特徴とする文字列修正システム。
  2. 【請求項2】 前記エラー・パターン格納手段は、可能
    性のあるエラーの文字パターンを表すフォールト・パタ
    ーンと、該フォールト・パターンに対応する正しい文字
    パターンを表すコレクト・パターンとを有する前記エラ
    ー・パターンを格納することを特徴とする請求項1記載
    の文字列修正システム。
  3. 【請求項3】 前記検索手段は、前記フォールト・パタ
    ーンに該当する第1の文字が入力された時、前記コレク
    ト・パターンを参照して該第1の文字に代わる代替文字
    を生成し、該代替文字を用いて前記辞書を検索すること
    を特徴とする請求項2記載の文字列修正システム。
  4. 【請求項4】 前記検索手段は、前記コレクト・パター
    ンを参照して該第1の文字に代わる代替文字列を生成
    し、該代替文字列中の文字を前記代替文字として、前記
    辞書を検索することを特徴とする請求項3記載の文字列
    修正システム。
  5. 【請求項5】 前記検索手段は、前記入力文字列中の第
    2の文字が前記辞書の入力文字のエントリと一致する場
    合でも、該第2の文字が前記フォールト・パターンの始
    まりであると仮定して、前記代替文字を用いて前記辞書
    を検索することを特徴とする請求項3記載の文字列修正
    システム。
  6. 【請求項6】 前記検索手段は、前記コレクト・パター
    ンに該当する複数の前記代替文字を生成し、各代替文字
    を用いて前記辞書を検索して、該複数の代替文字の中か
    ら前記認識語の候補に至る代替文字を求めることを特徴
    とする請求項3記載の文字列修正システム。
  7. 【請求項7】 前記検索手段は、前記入力文字列中の残
    りの文字を読むことにより、前記コレクト・パターンに
    該当する複数の前記代替文字の中から前記入力文字列に
    合致する代替文字を選び、選んだ該代替文字を用いて前
    記辞書を検索することを特徴とする請求項3記載の文字
    列修正システム。
  8. 【請求項8】 前記検索手段は、前記入力文字列中の残
    りの文字を読んで、前記コレクト・パターンに該当する
    複数の前記代替文字と比較することにより、前記エラー
    ・パターンが該入力文字列に合致するかどうかを決める
    ことを特徴とする請求項3記載の文字列修正システム。
  9. 【請求項9】 前記辞書格納手段は、入力される文字を
    1文字ずつ検索するための複数のTRIEテーブルを有
    する前記辞書を格納し、各TRIEテーブルは、前記辞
    書のエントリの最初の文字から途中の文字までの文字列
    に対応して、次の文字の候補を表す前記入力文字のエン
    トリと、前記辞書のエントリとの対応関係を表す辞書の
    対応語のエントリと、次のTRIEテーブルを指すTR
    IEテーブルリンクとを有し、前記検索手段は、前記コ
    レクト・パターンから得られる代替文字を前記入力文字
    のエントリと比較して、前記複数のTRIEテーブルを
    検索することを特徴とする請求項2記載の文字列修正シ
    ステム。
  10. 【請求項10】 前記エラー・パターン格納手段は、前
    記フォールト・パターンと前記コレクト・パターンを前
    記入力文字列中の文字に適用するための条件を有するよ
    うな前記エラー・パターンを格納することを特徴とする
    請求項2記載の文字列修正システム。
  11. 【請求項11】 前記フォールト・パターンは、前記エ
    ラーの文字パターンを表す1つ以上の変数を有し、前記
    コレクト・パターンは、前記正しい文字パターンを表す
    1つ以上の変数を有し、前記フォールト・パターンとコ
    レクト・パターンを適用するための条件は、該フォール
    ト・パターンが有する変数と該コレクト・パターンが有
    する変数の間の関係を表すことを特徴とする請求項10
    記載の文字列修正システム。
  12. 【請求項12】 前記エラー・パターン格納手段は、前
    記エラー・パターンを前記入力文字列に適用するための
    一般的条件をさらに格納し、ユーザは該一般的条件を任
    意に指定できることを特徴とする請求項1記載の文字列
    修正システム。
  13. 【請求項13】 前記一般的条件により、前記入力文字
    列中に許されるエラーの数が制限されることを特徴とす
    る請求項12記載の文字列修正システム。
  14. 【請求項14】 前記エラー・パターン格納手段は、前
    記エラー・パターンに対する重みを有するような該エラ
    ー・パターンを格納し、前記一般的条件により、前記入
    力文字列中に適用される各エラー・パターンについての
    重みの合計が制限されることを特徴とする請求項12記
    載の文字列修正システム。
  15. 【請求項15】 前記辞書のエントリの最初の文字から
    途中の文字までの検索経路を示す解析パスを格納するメ
    モリ手段をさらに備え、前記検索手段は、前記入力文字
    列中の文字が前記辞書中の入力文字のエントリと一致す
    るとき、対応する解析パスを生成することを特徴とする
    請求項1記載の文字列修正システム。
  16. 【請求項16】 前記検索手段は、前記入力文字列に前
    記エラー・パターンを適用した時、処理中のエラー・パ
    ターンを表す情報を含む前記解析パスを生成することを
    特徴とする請求項15記載の文字列修正システム。
  17. 【請求項17】 前記検索手段は、前記辞書を検索した
    結果、形態素を認識すると、該形態素を特定する情報と
    前記解析パスとを対応させて前記メモリ手段に格納する
    ことを特徴とする請求項15記載の文字列修正システ
    ム。
  18. 【請求項18】 入力文字列と辞書のエントリを比較し
    て形態素解析を行う情報処理システムにおいて用いられ
    る記憶媒体であって、 前記入力文字列に含まれる可能性のあるエラーの型を規
    定したエラー・パターンを格納する記憶媒体。
  19. 【請求項19】 入力文字列と辞書のエントリを比較し
    て形態素解析を行う情報処理システムにおいて用いられ
    る記憶媒体であって、 前記入力文字列に含まれる可能性のあるエラーの型を規
    定したエラー・パターンを入力する手段と、 該エラー・パターンを用いて前記辞書を検索し、前記入
    力文字列に対応する前記辞書のエントリを求め、認識語
    の候補として出力する検索手段とを備えることを特徴と
    する記憶媒体。
  20. 【請求項20】 入力文字列と辞書のエントリを比較し
    て形態素解析を行う方法において、 前記入力文字列中の文字と比較される入力文字のエント
    リを持つ前記辞書を生成し、 前記入力文字列に含まれる可能性のあるエラーの型を規
    定したエラー・パターンを生成し、 前記エラー・パターンを用いて前記辞書を検索して、前
    記入力文字列に対応する前記辞書のエントリを求め、 該辞書のエントリを認識語の候補として出力することを
    特徴とする文字列修正方法。
JP7167676A 1995-07-03 1995-07-03 エラー・パターンを用いた文字列修正システムおよび方法 Withdrawn JPH0916598A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7167676A JPH0916598A (ja) 1995-07-03 1995-07-03 エラー・パターンを用いた文字列修正システムおよび方法
US08/668,222 US6023536A (en) 1995-07-03 1996-06-21 Character string correction system and method using error pattern

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7167676A JPH0916598A (ja) 1995-07-03 1995-07-03 エラー・パターンを用いた文字列修正システムおよび方法

Publications (1)

Publication Number Publication Date
JPH0916598A true JPH0916598A (ja) 1997-01-17

Family

ID=15854162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7167676A Withdrawn JPH0916598A (ja) 1995-07-03 1995-07-03 エラー・パターンを用いた文字列修正システムおよび方法

Country Status (2)

Country Link
US (1) US6023536A (ja)
JP (1) JPH0916598A (ja)

Families Citing this family (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2366057C (en) 1999-03-05 2009-03-24 Canon Kabushiki Kaisha Database annotation and retrieval
US7310600B1 (en) * 1999-10-28 2007-12-18 Canon Kabushiki Kaisha Language recognition using a similarity measure
CN1329861C (zh) 1999-10-28 2007-08-01 佳能株式会社 模式匹配方法和装置
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
GB0011798D0 (en) * 2000-05-16 2000-07-05 Canon Kk Database annotation and retrieval
US7110621B1 (en) * 2000-05-19 2006-09-19 Xerox Corporation Assist channel coding using a rewrite model
GB0015233D0 (en) * 2000-06-21 2000-08-16 Canon Kk Indexing method and apparatus
GB0023930D0 (en) 2000-09-29 2000-11-15 Canon Kk Database annotation and retrieval
GB0027178D0 (en) 2000-11-07 2000-12-27 Canon Kk Speech processing system
GB0028277D0 (en) 2000-11-20 2001-01-03 Canon Kk Speech processing system
US20040202992A1 (en) * 2003-04-14 2004-10-14 Scott Moulthrop Electronic test answer record quality assurance system and method
US7283999B1 (en) * 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
DE102006050347A1 (de) * 2006-10-25 2008-04-30 Siemens Ag Verfahren zum Prüfen eines Aufdrucks und Aufdruckprüfvorrichtung
US8074172B2 (en) 2007-01-05 2011-12-06 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
EP2012532A3 (en) * 2007-07-05 2012-02-15 Hitachi Ltd. Video displaying apparatus, video signal processing apparatus and video signal processing method
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
JP2009193356A (ja) * 2008-02-14 2009-08-27 Canon Inc 画像処理装置、画像処理方法、プログラム、及び記憶媒体
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
DE102008022839A1 (de) * 2008-05-08 2009-11-12 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren und Vorrichtung zur Korrektur von digital übertragenen Informationen
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US20100235780A1 (en) * 2009-03-16 2010-09-16 Westerman Wayne C System and Method for Identifying Words Based on a Sequence of Keyboard Events
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
WO2011089450A2 (en) 2010-01-25 2011-07-28 Andrew Peter Nelson Jerram Apparatuses, methods and systems for a digital conversation management platform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8516313B2 (en) * 2010-06-16 2013-08-20 Oracle International Corporation Shared error searching
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US8645404B2 (en) * 2011-10-21 2014-02-04 International Business Machines Corporation Memory pattern searching via displaced-read memory addressing
US9053361B2 (en) 2012-01-26 2015-06-09 Qualcomm Incorporated Identifying regions of text to merge in a natural image or video frame
US9064191B2 (en) 2012-01-26 2015-06-23 Qualcomm Incorporated Lower modifier detection and extraction from devanagari text images to improve OCR performance
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9014480B2 (en) 2012-07-19 2015-04-21 Qualcomm Incorporated Identifying a maximally stable extremal region (MSER) in an image by skipping comparison of pixels in the region
US9141874B2 (en) 2012-07-19 2015-09-22 Qualcomm Incorporated Feature extraction and use with a probability density function (PDF) divergence metric
US9047540B2 (en) 2012-07-19 2015-06-02 Qualcomm Incorporated Trellis based word decoder with reverse pass
US9262699B2 (en) 2012-07-19 2016-02-16 Qualcomm Incorporated Method of handling complex variants of words through prefix-tree based decoding for Devanagiri OCR
US9076242B2 (en) 2012-07-19 2015-07-07 Qualcomm Incorporated Automatic correction of skew in natural images and video
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
EP3809407A1 (en) 2013-02-07 2021-04-21 Apple Inc. Voice trigger for a digital assistant
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101922663B1 (ko) 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
JP2016521948A (ja) 2013-06-13 2016-07-25 アップル インコーポレイテッド 音声コマンドによって開始される緊急電話のためのシステム及び方法
AU2014306221B2 (en) 2013-08-06 2017-04-06 Apple Inc. Auto-activating smart responses based on activities from remote devices
US9928273B2 (en) * 2013-08-19 2018-03-27 International Business Machines Corporation Enhanced database searching and storage
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10127219B2 (en) * 2016-12-09 2018-11-13 Hong Kong Applied Science and Technoloy Research Institute Company Limited System and method for organizing and processing feature based data structures
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10445429B2 (en) * 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10515148B2 (en) * 2017-12-15 2019-12-24 King Fahd University Of Petroleum And Minerals Arabic spell checking error model

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US35738A (en) * 1862-06-24 John north
US4328561A (en) * 1979-12-28 1982-05-04 International Business Machines Corp. Alpha content match prescan method for automatic spelling error correction
EP0312905B1 (de) * 1987-10-16 1992-04-29 Computer Gesellschaft Konstanz Mbh Verfahren zur automatischen Zeichenerkennung
JP2829937B2 (ja) * 1990-08-06 1998-12-02 キヤノン株式会社 画像検索方法及び装置
US5161245A (en) * 1991-05-01 1992-11-03 Apple Computer, Inc. Pattern recognition system having inter-pattern spacing correction

Also Published As

Publication number Publication date
US6023536A (en) 2000-02-08

Similar Documents

Publication Publication Date Title
JPH0916598A (ja) エラー・パターンを用いた文字列修正システムおよび方法
JP3152871B2 (ja) ラティスをキーとした検索を行う辞書検索装置および方法
EP0277356B1 (en) Spelling error correcting system
US7149970B1 (en) Method and system for filtering and selecting from a candidate list generated by a stochastic input method
US4706212A (en) Method using a programmed digital computer system for translation between natural languages
CA2710882C (en) Managing an archive for approximate string matching
US6920419B2 (en) Apparatus and method for adding information to a machine translation dictionary
US8239188B2 (en) Example based translation apparatus, translation method, and translation program
US6470347B1 (en) Method, system, program, and data structure for a dense array storing character strings
JPH0877173A (ja) 文字列修正システムとその方法
JP2009266244A (ja) 簡潔言語学データを生成かつ使用するシステムおよび方法
US5396419A (en) Pre-edit support method and apparatus
US5268840A (en) Method and system for morphologizing text
KR20230009564A (ko) 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치
Kann et al. Implementation aspects and applications of a spelling correction algorithm
EP0274281B1 (en) Method using a programmed digital computer system for translation between natural languages
JP3531222B2 (ja) 類似文字列検索装置
JP2003331214A (ja) 文字認識誤り訂正方法、装置及びプログラム
JPH09153034A (ja) 文書作成装置及び文書作成方法
JPH10283368A (ja) 情報処理装置及びその方法
Iskanderova et al. DISTRIBUTION OF WORD STEMS FOR OLD UZBEK WRITING
JP3139624B2 (ja) 形態素解析装置
JPS6356756A (ja) コレクト機能付欧文作成装置
Ziabicki The theory of ordering lexicographic entries: principles, algorithms and computer implementation
JPS6175467A (ja) 仮名漢字変換方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020903