以下に図面を参照しつつ、本発明の実施の形態について説明する。以下の説明においては同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同一であるものとする。
(実施の形態1)
図1は、本発明の実施の形態1に従う情報処理システムの概略構成図である。
本例においては、文章の印刷された原稿を入力として文字認識を行い、文章の認識結果をワードコレクトするかどうかを判定する情報処理装置の例を示す。
図1を参照して、本発明の実施の形態1に従う情報処理システムは、入力装置2と、出力装置15と、入力装置2および出力装置15と接続された情報処理装置1とを含む。
入力装置2は、スキャナ等の画像読取装置から画像を読み取り、情報処理装置1へ画像データを送る。
出力装置15は、表示装置等で構成され、画像データについて、情報処理装置1で認識した文字列結果およびワードコレクト処理した文字列結果等を出力表示する。
情報処理装置1は、入力装置2および出力装置15との間でデータの入出力制御処理を実行するための入出力制御部20と、情報処理装置1に含まれる各機能ブロック全体を制御するための制御部3と、画像データに含まれる文字データを認識するために参照される文字認識辞書4と、文字認識辞書4を用いて文字認識する文字認識部5と、文字認識された文字データに対してワードコレクト処理を実行するためのワードコレクト処理部14と、ワードコレクト処理において参照される単語辞書13と、入力装置2により入力された画像データを格納するためのメモリ25とを含む。
入出力制御部20は、制御部3の指示に従い入力装置2により入力された画像データをメモリ25に格納するものとする。
メモリ25には、ワードコレクト処理された処理結果が格納されるものとし、制御部3の指示に従い、処理結果が読み出されて入出力制御部20により出力装置15に出力されるものとする。
ワードコレクト処理部14は、文字データとして文字認識された文章や文、文字列などをある一定範囲で区切る範囲区切り部6と、範囲区切り部6により区切られた一定範囲内の文字列中の単語を取得する単語取得部7と、単語取得部7により取得された全単語数を計数し、記憶しておく単語数カウント部8と、単語取得部7により取得された全単語を単語辞書13と照合し、単語辞書13に含まれる単語がいくつあるのかを計数し、記憶しておく単語照合部9と、単語数カウント部8で記憶している一定範囲内の文字列中に存在する全単語数と単語照合部9で記憶している一定範囲内の文字列中の単語のうち単語辞書13に含まれる単語数とに基づいて、一定範囲内の文字列中の単語一致度を算出する単語一致度算出部10と、単語一致度算出部10で算出された単語一致度から、範囲区切り部6により区切られた一定範囲内の文字列中の単語に対してワードコレクト処理を実行するかどうかを判定する文字列訂正判定部11と、文字列訂正判定部11の判定結果に基づいて、範囲区切り部6により区切られた一定範囲内の文字列中の単語に対して単語辞書13と照合しない単語に対してワードコレクト処理を実行する文字列訂正部12とを含む。
図2は、本発明の実施の形態1に従う情報処理装置1におけるワードコレクト処理を説明するフロー図である。
まず、最初に文字認識処理を実行する(ステップS501)。具体的には、入力装置2で読み取られ、メモリ25に格納された画像データに対して、文字認識部5により文字認識辞書4を参照して文字データにする処理が実行される。
なお、本例においては、一例として図28で示された表を入力装置2で読み取った画像データに対してワードコレクト処理を実行する場合について説明する。
図3は、図28で示された表を入力装置2で読み取った画像データに対して文字認識部5により文字データとして認識された状態を説明する図である。
なお、文字認識部5は、OCR(Optical Character Recognition)を使用する。ここで、文字認識は1行ごとに行い、文字認識部5での出力は入力原稿画像ごととする。
なお、説明を簡易にするために、図3を参照して、文字認識結果(文字データ)の認識誤りの単語に下線「_」を示している。
また、実際には、罫線は文字認識結果として得られているわけではないが、レイアウト情報として文字認識処理から得られるものとする。
再び、図2を参照して、文字認識部5により得られた認識誤りを含んだ文字認識結果を一定範囲に区切る処理を実行する(ステップS502)。具体的には、範囲区切り部6により一定範囲に区切る処理を実行する。
その方式について以下に説明する。
「入力原稿画像のレイアウトごとに範囲を区切る方式」
図4は、図3の文字認識結果に対して表の1セルを1つのレイアウトとして範囲を区切った場合を説明する図である。
具体的には、範囲区切り部6は、上述した罫線についてのレイアウト情報に基づいてレイアウトを区切る。
図4においては、罫線についてのレイアウト情報に基づいて区切られた範囲F701〜F708が一例として示されている。
なお、レイアウトの区切り方は、これに限られず、例えば、図5に示されるように、図3の文字認識結果の表において、第一列は固有名詞の単語、第二列は文章(文)といったように、表の一列は同じ要素が記載されていることを利用して、表の一列を一つのレイアウトとして一定範囲に区切る場合の方式が示されている。この要素としては、固有名詞などに限らず、第n列の各セルの単語が全てm個未満なら同要素とみなすなどの条件を付加することも可能である(n,mは0以上の任意の整数)。
ここでは、一例として固有名詞が記載された列について、1つの区切られた範囲F801として示され、文章(文)として記載された列についても1つの区切られた範囲F802として示されている。
本例においては、一例として図4に示されたように表の1セルを一つのレイアウトとして範囲を区切られた場合について以下に説明する。
再び図2を参照して、次に、範囲区切り部6により区切られた一定範囲内の文字列を単語に区切る処理を実行する(ステップS503)。
具体的には、単語取得部7において、区切られた一定範囲内の文字列から単語を取得する処理を実行する。
図6は、図4で説明した区切られた範囲F701〜F708のそれぞれの一定範囲において、単語を取得する処理を説明する図である。
図6(a)〜(d)において、それぞれ固有名詞の単語が単語リストとして取得された場合が示されている。一例として、図6(a)〜(d)において、取得単語リストF1201〜F1204にそれぞれ対応して、「John」、「Mary」、「Roy」、「Verisa」が取得された場合が示されている。
また、図6(e)〜(h)において、文章中の単語が単語リストとして取得された場合が示されている。
一例として、図6(e)において、「Prepore」、「for」、「my」、「document」で構成される取得単語リストF1205が示されている。
図6(f)において、「Go」、「to」、「BGT」、「office」、「with」、「me」で構成される取得単語リストF1206が示されている。
図6(g)において、「Prepare」、「for」、「oun」、「bus」、「tlckets」で構成される取得単語リストF1207が示されている。
図6(h)において、「Vac8tion」、「for」、「three」、「weeks」で構成される取得単語リストF1208が示されている。
単語を取得する方法としては、英文の場合は単語ごとに空白で区切られていることから、その空白を利用して抜きだしても良いし、いわゆる形態素解析といった言語処理を用いて区切って単語を取得することも可能である。
日本語の場合は、単語ごとの空白はないため形態素解析を用いるか、あるいは単語辞書を使った単語の最長一致法等を用いることにより単語ごとに区切って単語を取得することが可能である。このような単語に区切る処理は周知の技術を使用すれば良く、ここでは詳細には説明しない。
再び、図2を参照して、次に、文字列内の単語の数をカウントする(ステップS504)。
具体的には、ステップS503において、取得された単語の数を単語数カウント部8によって一定範囲ごとに計数する。
図7は、図6で説明した取得した単語リストに従って、単語数カウント部8によってカウントした場合を説明する図である。
図7(a)〜(h)を参照して、取得単語リストF1201〜F1208に対して単語数カウント部8によりカウントした単語数がそれぞれ示されている。取得単語リストF1201〜F1208にそれぞれ対応して、「1」、「1」、「1」、「1」、「4」、「6」、「5」、「4」の結果が示されている。
再び、図2を参照して、次に、辞書と一致する単語数をカウントする(ステップS505)。
具体的には、単語取得部8で得られた全単語について、単語照合部9において、単語辞書13を参照して、単語辞書13に含まれる単語の数をカウントする。
図8は、図6で説明した取得した単語リストに従って、単語辞書13と照合する場合を説明する図である。
図8(a)、(b)は、取得単語リストF1204,F1208をそれぞれ示している。
図8(c)は、単語辞書13に含まれる単語リストが一例として示されている。なお、単語辞書は照合に必要な部分だけを示しており、実際には多数の単語が単語辞書13に登録されている。
単語照合部9は、取得単語リストF1204,F1208にそれぞれ従って、単語辞書13に含まれる単語リストの中から一致する単語の数をカウントする。
取得単語リストF1204の単語を単語辞書13と照合する。
取得単語リストF1204の取得単語は「Versian」のみである。単語辞書13に登録されていれば、一致する単語の数(単語一致カウント数)をカウントアップする。初期値は「0」である。取得単語「Versian」は単語辞書13に登録されていないため、カウントはされず、単語一致カウント数は「0」となる。
そして、取得単語リストF1204において、取得された全単語数と、単語一致カウント数は記憶されるものとする。
一方、取得単語リストF1208の取得単語は、「Vac8tion」、「for」、「three」、「weeks」である。単語辞書13に登録されていれば、上述したように単語一致カウント数をカウントアップする。取得単語リストF1208における1つ目の単語「Vac8tion」が単語辞書13に登録されていれば、単語一致カウントは1となる。ここでは、英文字の大文字小文字の区別は行わず、単語の文字数とスペルが完全に一致していた場合はカウントを行う構成にする。しかし、単語辞書13に「Vac8tion」および「vac8tion」は存在しないため、カウントされない。
さらに、取得単語リストF1208中の「for」、「three」、「weeks」についても同様に処理を行うと、これらは全て図8(c)の単語辞書13中に含まれるので単語一致カウントは「3」となる。
図9は、取得単語リストF1204,F1208に含まれる全単語数および単語辞書と一致した単語数を説明する図である。
ここでは、図8(a)、(b)で説明した取得単語リストF1204,F1208について説明する。
図9を参照して、取得単語リストF1204の全単語数は「1」であり、単語辞書と一致した単語数は「0」であることが示されている。また、取得単語リストF1208の全単語数は「4」であり、単語辞書と一致した単語数は「3」であることが示されている。
なお、上述したように全単語数は、単語数カウント部8で取得されたものであり、単語辞書と一致した単語数は、単語照合部9で取得したものである。
再び、図2を参照して、次に、単語一致度を算出する(ステップS506)。
具体的には、単語一致度算出部10において、上述した単語数カウント部8でカウントした全単語数と、単語照合部9で照合して単語辞書と一致した単語数とに基づいて、単語一致度αを算出する。
本例においては、一例として、ここでは、区切られた範囲に含まれる単語について、単語辞書13に含まれる単語数(単語一致カウント)を全単語数で割った値を単語一致度αとする。
図10は、取得単語リストF1204,F1208における算出した単語一致度を説明する図である。
図10を参照して、取得単語リストF1204における単語一致度αは「0」として示される。
一方、取得単語リストF1208における単語一致度αは、「0.75」として示される。
次に、再び、図2を参照して、単語一致度αが予め定められた所定値以上であるかどうかを判断する(ステップS507)。具体的には、文字列訂正判定部11で単語一致度αを判定し、各一定範囲内の文字列のワードコレクトを行うかどうかを判定する。
そして、所定値以上であれば再度、単語辞書と照合し、ワードコレクト処理を実行する(ステップS508)。
具体的には、文字列訂正判定部11で単語一致度αが所定値以上であると判断した場合には、文字列訂正部12において、再度、単語辞書と照合し、ワードコレクト処理を実行する。
一方、所定値未満であればワードコレクト処理を実行せずに第一候補文字列を正解とする(ステップS509)。
具体的には、文字列訂正判定部11で単語一致度αを判定し、各一定範囲内の文字列のワードコレクトを行うかどうかを判定する。
本例においては、一例として所定値を「0.5」とする。すなわち、全単語中の半数が単語辞書13に含まれている割合とする。
すなわち、単語一致度αと文字列訂正処理の判定条件との関係は、以下のようになる。
α≧0.5の場合には、文字列訂正(ワードコレクト)処理を実行する。
α<0.5の場合には、文字列訂正(ワードコレクト)処理を実行しない。
上述したように取得単語リストF1204の単語一致度は「0」なので、文字列訂正判定部11はワードコレクト処理を行わないと判断し、上述したステップS509の処理に進む。
すなわち、取得単語リストF1204の「Versian」という単語は、文字列訂正部12においてワードコレクト処理は実行されずにそのまま文字列として出力される(ステップS510)。
一方、取得単語リストF1208の単語一致度は「0.75」なので、文字列訂正判定部11はワードコレクト処理を実行すると判断し、上述したステップS508の処理に進む。
ステップS508においては、上述したように、文字列訂正部12において、取得単語リストに含まれる単語について、再度、単語辞書と照合し、一定範囲内においてワードコレクト処理を実行する。この場合、単語辞書13と照合し、完全に一致した単語についてはワードコレクト処理は実行しない。
図11は、取得単語リストF1208に対する文字列訂正部12におけるワードコレクト処理について説明する図である。
図11(a)を参照して、取得単語リストF1208中の単語「Vac8tion」に対してワードコレクト処理を実行する場合について説明する。
図11(b)を参照して、ここでは、まず、入力画像データである文字列「Vacation」に対してOCRを使用した場合における文字候補の一覧が示されている。
文字認識部5は、文字認識として、各文字の画像データの画素分布などに基づいて、文字認識辞書4を参照して、各文字に類似の文字候補を割り当てる。
本例においては、文字列「Vacation」の入力画像データに基づいて、各文字について、類似の文字候補(第一候補)を割り当てた結果、「Vac8tion」として認識されたものである。文字候補の割り当ては、各文字の画像データの画素分布などに基づいて、文字らしい確率(類似度)の高い文字候補の中から割り当てられるものとする。
例えば、「V」の文字の画像データについては、4つの文字候補がある中で、大文字「V」が入力画像に対して類似度が高いとして割り当てられた場合が示されている。「a」、「c」、「a」、「t」、「i」、「o」、「n」の文字の画像データについても同様に、各画像データの画素分布などに基づいて、類似度の高い文字候補が割り当てられる。
文字列訂正部12に入力された文字列は、図11(b)における各文字の第一候補の文字列である。第一候補の文字列に対して、単語辞書13を参照した場合、単語辞書13には、単語が存在しない。
そこで、第一文字目の第一候補「V」を第二候補「v」に置き換えると「vac8tion」という単語が生成されるが、図8(c)に示す単語辞書13には単語が存在しない。
この状態で、「vac8tion」の「vac」までは一致している単語が単語辞書13に存在していれば、第四文字目の第一候補「8」を次の第二候補の「a」に変更してみる。すると、文字列は「vacation」となり、単語辞書13に存在するのでこの単語を訂正単語候補として抽出する。
同様の処理を全文字候補に対して行っても、単語辞書13に登録されている単語が他に見つからないので、「vacation」が正しい文字列だとして確定する。
ここで、文字認識においては同形文字の認識間違いが非常に多い。
そこで、英語の場合は、文頭は大文字であるという条件をつけておき、「vacation」は文頭の単語であったため、第一文字目の「V」を「v」に置き換えた処理を元にもどし、「Vacation」を正解単語と見なす。
図11(c)においては、上記の処理によりワードF1101である「Vac8tion」の訂正単語候補として「Vacation」が示されている。
他の取得単語リストF1208の単語「for」「three」「weeks」については、単語辞書13に存在しているため、ワードコレクト処理は行わない。
なお、ここでは、文字候補から単語を生成し、ワードコレクト処理を行っているが、他の方法として文字数が一致して類似度の合計値が一番大きい文字列を正しいとみなす方法とすることも可能である。なお、本発明においては、特にワードコレクト処理の方式を限定する必要は無く、周知の方法を採用することが可能である。
そして、ステップS510において、最終的にワードコレクト処理を行った、あるいは行わなかった文字列を出力する。
入出力制御部20は、出力された文字列を出力装置15に出力し、出力装置15において表示する。
一方、従来の方式として、入力原稿中の全範囲に対する単語一致度に基づいてワードコレクト処理を実行する場合について説明する。
再び、図3を参照して、入力原稿中の全範囲に含まれる単語数のうち単語辞書13に存在する単語がいくつあるかをカウントした場合、原稿の全単語数は「23」である。そして、単語辞書13と一致した単語数は「14」である。
ワードコレクト処理を実行する場合の判定基準として所定値を0.5とする。
単語一致度αは、原稿の全単語数に対する単語辞書と一致した単語数の割合であるため14/23=0.60(小数点以下3位切り捨て)となる。
したがって、入力原稿中の全範囲に対してワードコレクト処理すると判定されることになる。
図12は、本発明の実施の形態に従う方式および従来の方式を使用した場合のワードコレクト処理結果を説明する図である。
図12(a)は、本発明の実施の形態に従う方式を使用した場合のワードコレクト処理結果である。一方、図12(b)は、従来の方式を使用した場合のワードコレクト処理結果である。
図12(a)においては、区切られた範囲F701〜F704に含まれる固有名詞については、ワードコレクト処理が実行されないため図3で示された認識結果と同じ単語が出力される。
したがって、図26で説明した固有名詞である「Ray」について認識誤りとして「Roy」となったワードについてはそのまま認識誤りとして存在する。
一方、区切られた範囲F705〜F708に含まれる文章(文)については、ワードコレクト処理が実行され、「Prepore」、「oun」、「tlckets」、「Vac8tion」の認識誤りについてワードコレクト処理が実行されて、適切なワード「Prepare」、「our」、「tickets」、「Vacation」と訂正された場合が示されている。
図12(b)においては、全範囲に含まれる単語について、ワードコレクト処理が実行されるため単語辞書13に一致しなかった全ての単語に対してワードコレクト処理が実行される。
したがって、図3で説明した固有名詞に対してもワードコレクト処理を実行してしまうことになり、「Mary」、「Versian」など正解のワードに対しても単語辞書に登録されていないためワードコレクト処理を実行して、単語辞書13に含まれる「Many」、「Version」にそれぞれ訂正してしまう場合が示されている。
すなわち、図3の入力原稿P1の認識結果として、認識誤りであった単語数は「5」であるのに対して、本願方式に従うワードコレクト処理を用いれば最終的な認識誤りは「1」となり、認識率が高いことが分かる。
一方、従来の方式に従うワードコレクト処理を用いれば、最終的な認識誤りは「3」であり、誤コレクトにより認識率の向上は低いことが分かる。
それゆえ、本発明の実施の形態に従う情報処理装置に従えば、適切なワードコレクト処理の判定を実行し、従来方式よりも、認識率が高いワードコレクト処理を実現することができる。
なお、本例においては、一例として、文字列訂正処理の判定条件としている所定値として「0.5」を一例として設定した場合について説明しているが、「0.5未満」に設定すればワードコレクト処理の判定条件は緩くなるが、誤コレクトが増え、「0.5以上」に設定すれば誤コレクトは減少するがワードコレクト処理の判定条件が厳しくなるので、正しくコレクトできる可能性のある単語を正しく訂正できない可能性がある。
図13は、誤コレクトの確率と所定値との関係を説明する図である。
図13を参照して、この図に示したグラフは、誤コレクトの確率と判定値との関係を説明するための実験結果である。
固有名詞を含まない英単語辞書中の全単語に対して、固有名詞(ここでは人の名前)20000件がどれぐらい英単語辞書に一致するか、すなわち固有名詞が英単語辞書に存在しないにも関わらず、一致してしまい誤コレクトになる確率を求めている。
実験では、英単語辞書63665件に対して、20000件の固有名詞を照合したところ、2328件(約11%)が英単語辞書の単語と一致した。
実際の文章では、この英単語辞書に存在する単語を無作為にn個の単語を選び出しているのと同じである。
ここで、二項分布より固有名詞に一致する単語を11%含んでいる母集団から、n個の単語を抽出した場合、k個の固有名詞に一致する単語が存在する確率を、n別にグラフ化したのが図13である。
横軸が所定値、縦軸を誤コレクトの確率(k個の固有名詞に一致する単語が存在する確率)で表している。この図より、nが大きくなれば所定値が小さくても誤コレクト率は「0」に近くなる。
しかし、当該図13を参照すれば、nは様々であるので、所定値を「0.5」にしておけば、ほとんどのnにおいて、誤コレクトの確率が低くなると考えられる。
また、上記においては、単語一致度について、一例として、ここでは、区切られた範囲に含まれる単語について、単語辞書13に含まれる単語数(単語一致カウント)を全単語数で割った値を単語一致度αとする場合について説明したが、特にこれに限られず、単語一致度αを単語辞書13と一致した単語数とすることも可能である。
例えば、再び図9を参照して、取得単語リストF1204における単語一致度αは「0」、取得単語リフトF1208における単語一致度αは「3」とすることが可能である。
そして、当該単語一致度αを単語辞書と一致した単語数とした場合は、全単語数から単語辞書と一致した単語数を引いた数を「未知語数」とする。
そして、「未知語数」と「単語辞書と一致した単語数(一致単語数)」との数の大小比較に基づいてワードコレクト処理を実行するか否かを判定する。
例えば、取得単語リストF1204については、全単語数が「1」であり、単語辞書と一致した単語数が「0」である。
したがって、「未知語数」は、「1」として示される。
「未知語数」と「単語辞書と一致した単語数」とを比較した場合、「未知語数」>「一致単語数(α)」となるためワードコレクト処理を行わないと判定する。
一方、取得単語リストF1208については、全単語数が「4」であり、単語辞書と一致した単語数が「3」である。
したがって、「未知語数」は「1」として示される。
「未知語数」と「単語辞書と一致した単語数」とを比較した場合、「未知語数」<「一致単語数(α)」となるためワードコレクト処理を行うと判定する。
当該方式により、上述したのと同様のワードコレクト処理を実行することが可能である。
(実施の形態2)
上記の実施の形態1においては、罫線で区切られた範囲(セル)を一定範囲として、ワードコレクト処理を実行する場合について説明した。
本発明の実施の形態2においては、図14に示すような複数の段落に分けられた入力原稿に対するワードコレクト処理について説明する。
図14を参照して、ここでは、主に3つの段落に分けられた英文が記載されている場合が示されている。
再び、図2を参照して、まず、ステップS501において、文字認識処理を実行する。具体的には、文字認識部5は、OCRを使用して文字認識結果(文字データ)を出力する。
図15は、図14で示された表を入力装置2で読み取った画像データに対して文字認識部5により文字データとして認識された状態を説明する図である。
なお、説明を簡易にするために、図15を参照して、文字認識結果(文字データ)の認識誤りの単語に下線「_」を示している。
次に、上述したように文字認識部5により得られた認識誤りを含んだ文字認識結果を一定範囲に区切る処理を実行する(ステップS502)。具体的には、範囲区切り部6により一定範囲に区切る処理を実行する。
具体的には、範囲区切り部6は、レイアウトごとに範囲を区切る。
図16は、入力原稿画像の段落毎に範囲を区切った場合を説明する図である。
図16に示されるように3つの段落のそれぞれに対応して範囲が区切られていることが示されている。
ここでは、段落毎に範囲を区切る方法として、レイアウト情報を利用した場合について考える。ここで示されるように、互いの段落の間に文字がまったく書かれていない空白部分(セパレータ)が存在する。
文字認識処理では、文字がまったく書かれていない白いセパレータ部分のレイアウト情報を検知しておき、検知結果に基づいて、文字認識結果を一定範囲に区切ることが可能である。このような構成とすれば、図15に得られている認識結果は、黒枠ごとに区切られる。この処理を、範囲区切り部6において行う。
本例においては、段落ごとに区切られた範囲F1601〜F1603がそれぞれ示されている。
そして、本例においては、さらにその範囲を一定範囲に区切ることとする。
その方式について以下に説明する。
「入力原稿画像の特定の記号毎に範囲を区切る方式」
具体的には、範囲区切り部6は、「?」や「.」といった特定の記号に基づいて一定範囲に区切る。
図17は、特定の記号に基づいて範囲を区切った場合を説明する図である。
図17(a)は、図16で段落ごとに3つの一定範囲を区切った場合に、区切られた範囲F1601を特定した図である。
図17(b)は、図17(a)で特定した区切られた範囲F1601について、さらに、範囲分けを詳細にする場合を説明する図である。
具体的には、「?」や「.」といった特定の記号に基づいて一定範囲に区切ることとする。
ここでは、区切られた範囲F1601について、「Write comprete and occurate language documentation and delirer compe11ing. High quality examples for "mission critical" proiect which is directly tied to a software release expedted to deliver hundreds of milllon in revenue.」という英文を「.」の記号に基づいて「Write comprete and occurate language documentation and delirer compe11ing.」である区切られた範囲F1701と、「High quality examples for "mission critical" proiect which is directly tied to a software release expedted to deliver hundreds of milllon in revenue.」である区切られた範囲F1702とに区切った場合が示されている。
なお、ここでは、「.」といった特定の記号で一定範囲に区切る場合について説明したが、「.」の他に「?」、「!」の特定の記号や、日本語の文章などの場合には、句読点の記号である「、」、「。」といった特定の記号で一定範囲に区切ることも可能である。
再び図2を参照して、次に、範囲区切り部6により区切られた一定範囲内の文字列を単語に区切る処理を実行する(ステップS503)。
具体的には、上述したように単語取得部7において、区切られた一定範囲内の文字列から単語を取得する処理を実行する。
図18は、図17で説明した区切られた範囲F1701,F1702のそれぞれの一定範囲において、単語を取得する処理を説明する図である。
図18(a)において、「Write」、「complete」、「and」、「occurate」、「language」、「documentation」、「and」、「delirer」、「compe11ing」で構成される単語取得リストF1801が示されている。
また、図18(b)において、「High」、「quality」、「examples」、「for」、「mission」、「critical」、「proiect」、「which」、「is」、「directly」、「tied」、「to」、「a」、「software」、「release」、「expedted」、「to」、「deliver」、「hundreds」、「of」、「millon」、「in」、「revenue」で構成される取得単語リストF1802が示されている。
なお、「"」の記号が二つ有るが、これらは単語として含まれないものとするが、「"」の記号を単語として含めることも可能である。
単語を取得する方法としては、英文の場合は単語ごとに空白で区切られていることから、その空白を利用して抜きだしても良いし、いわゆる形態素解析といった言語処理を用いて区切って単語を取得することも可能である。
日本語の場合は、単語ごとの空白はないため形態素解析を用いるか、あるいは単語辞書を使った単語の最長一致法等を用いることにより単語ごとに区切って単語を取得することが可能である。このような単語に区切る処理は周知の技術を使用すれば良く、ここでは詳細には説明しない。
再び、図2を参照して、次に、文字列内の単語の数をカウントする(ステップS504)。
具体的には、ステップS503において、取得された単語の数を単語数カウント部8によって一定範囲ごとに計数する。
図19は、図18で説明した取得した単語リストに従って、単語数カウント部8によってカウントした場合を説明する図である。
図19(a),(b)を参照して、取得単語リストF1801,F1802に対して単語数カウント部8によりカウントした単語数がそれぞれ示されている。取得単語リストF1801,F1802にそれぞれ対応して、「9」、「23」の結果が示されている。
再び、図2を参照して、次に、辞書と一致する単語数をカウントする(ステップS505)。
具体的には、単語取得部8で得られた全単語について、単語照合部9において、単語辞書13を参照して、単語辞書13に含まれる単語の数をカウントする。
図20は、図18で説明した取得した単語リストに従って、単語辞書13と照合する場合を説明する図である。
図20(a)は、取得単語リストF1801を示している。
図20(b)は、単語辞書13に含まれる単語リストが一例として示されている。なお、単語辞書は照合に必要な部分だけを示しており、実際には多数の単語が単語辞書13に登録されている。
単語照合部9は、取得単語リストF1801に従って、単語辞書13に含まれる単語リストの中から一致する単語の数をカウントする。
取得単語リストF1801の単語を単語辞書13と照合する。
取得単語リストF1801の取得単語は、「Write」、「complete」、「and」、「occurate」、「language」、「documentation」、「and」、「delirer」、「compe11ing」である。単語辞書13に登録されていれば、上述したように単語一致カウント数をカウントアップする。取得単語リストF1801における1つ目の単語「Write」が単語辞書13に登録されていれば、単語一致カウントは1となる。ここでは、英文字の大文字小文字の区別は行わず、単語の文字数とスペルが完全に一致していた場合はカウントを行う構成にする。
さらに、取得単語リストF1801中の「complete」、「and」、「occurate」、「language」、「documentation」、「and」、「delirer」、「compe11ing」についても同様に処理を行うと、単語一致カウントは「6」となる。
なお、ここでは、取得単語リストF1801について説明したが、取得単語リストF1802についても同様に処理される。
図21は、取得単語リストF1801に含まれる全単語数および単語辞書と一致した単語数を説明する図である。
ここでは、図18(a)で説明した取得単語リストF1801について説明する。
図21を参照して、取得単語リストF1801の全単語数は「9」であり、単語辞書と一致した単語数は「6」であることが示されている。
なお、上述したように全単語数は、単語数カウント部8で取得されたものであり、単語辞書と一致した単語数は、単語照合部9で取得したものである。
再び、図2を参照して、次に、単語一致度を算出する(ステップS506)。
具体的には、単語一致度算出部10において、上述した単語数カウント部8でカウントした全単語数と、単語照合部9で照合して単語辞書と一致した単語数とに基づいて、単語一致度αを算出する。
本例においては、一例として、ここでは、区切られた範囲に含まれる単語について、単語辞書13に含まれる単語数(単語一致カウント)を全単語数で割った値を単語一致度αとする。
図22は、取得単語リストF1801に対する算出した単語一致度を説明する図である。
図22を参照して、取得単語リストF1801における単語一致度αは「0.66」として示される。
次に、再び、図2を参照して、単語一致度αが予め定められた所定値以上であるかどうかを判断する(ステップS507)。具体的には、文字列訂正判定部11で単語一致度αを判定し、各一定範囲内の文字列のワードコレクトを行うかどうかを判定する。
そして、所定値以上であれば再度、単語辞書と照合し、ワードコレクト処理を実行する(ステップS508)。
具体的には、文字列訂正判定部11で単語一致度αが所定値以上であると判断した場合には、文字列訂正部12において、再度、単語辞書と照合し、ワードコレクト処理を実行する。
一方、所定値未満であればワードコレクト処理を実行せずに第一候補文字列を正解とする(ステップS509)。
具体的には、文字列訂正判定部11で単語一致度αを判定し、各一定範囲内の文字列のワードコレクトを行うかどうかを判定する。
本例においては、一例として所定値を「0.5」とする。すなわち、全単語中の半数が単語辞書13に含まれている割合とする。
すなわち、単語一致度αと文字列訂正処理の判定条件との関係は、以下のようになる。
α≧0.5の場合には、文字列訂正(ワードコレクト)処理を実行する。
α<0.5の場合には、文字列訂正(ワードコレクト)処理を実行しない。
上述したように取得単語リストF1801の単語一致度は「0.66」なので、文字列訂正判定部11はワードコレクト処理を実行すると判断し、上述したステップS508の処理に進む。
ステップS508においては、上述したように、文字列訂正部12において、取得単語リストに含まれる単語について、再度、単語辞書と照合し、一定範囲内においてワードコレクト処理を実行する。この場合、単語辞書13と照合し、完全に一致した単語についてはワードコレクト処理は実行しない。
図23は、取得単語リストF1801に対する文字列訂正部12におけるワードコレクト処理について説明する図である。
図23(a)を参照して、本例においては、取得単語リストF1801中の単語「occurate」に対してワードコレクト処理を実行する場合について説明する。
図23(b)は、単語辞書13の別の例を説明する図である。単語辞書13に含まれる単語リストが一例として示されている。なお、単語辞書は照合に必要な部分だけを示しており、実際には多数の単語が単語辞書13に登録されている。
図23(c)を参照して、ここでは、まず、入力画像データである文字列「accurate」に対してOCRを使用した場合における文字候補の一覧が示されている。
文字認識部5は、文字認識として、各文字の画像データの画素分布などに基づいて、文字認識辞書4を参照して、各文字に類似の文字候補を割り当てる。
本例においては、文字列「accurate」の入力画像データに基づいて、各文字について、類似の文字候補(第一候補)を割り当てた結果、「occurate」として認識されたものでる。文字候補の割り当ては、各文字の画像データの画素分布などに基づいて、文字らしい確率(類似度)の高い文字候補の中から割り当てるものとする。
例えば、「a」の文字の画像データについては、5つの文字候補がある中で「o」の文字候補の類似度が高いとして割り当てられた場合が示されている。「c」、「c」、「u」、「r」、「a」、「t」、「e」の文字の画像データについても同様に、各画像データの画素分布などに基づいて、類似度の高い文字候補が割り当てられる。
文字列訂正部12に入力された文字列は、図23(c)における各文字の第一候補の文字列である。第一候補の文字列に対して、図23(b)に示されるような単語辞書13を参照した場合、単語辞書13には、「occurate」という単語が存在しない。そこで、第一文字目の第一候補「o」を第二候補「a」に置き換える。すると、文字列は、「accurate」という単語となり、単語辞書13に存在するのでこの単語を訂正単語候補として抽出する。
同様の処理を全文字候補に対して行っても、単語辞書13に登録されている単語が見つからないので、「accurate」が正しい文字列だとして確定する。
他の「delirer」、「compe11ing」についても上記と同様の方式により、候補文字から単語を生成し、ワードコレクト処理を実行する。
同様の方式により、「delirer」は、「deliver」、「compe11ing」は、「compelling」が訂正単語候補として抽出される。
他の取得単語リストF1801の単語「Write」、「complete」、「and」、「language」、「documentation」、「and」については、単語辞書13に存在しているため、ワードコレクト処理は行わない。
ここで、単語「Write」は、単語辞書13に存在している「write」と一致しているものとして説明したが、文字認識においては、同形文字の認識間違いが非常に多い。この単語「Write」は、図15の入力原稿より、文頭の単語であったため、第一文字目の「W」の大文字は正しいのでワードコレクト処理は行なわない。また、他にも会社名などで、「ABC」のように全文字大文字の場合もワードコレクト処理を行なわないこととしている。
なお、ここでは、文字候補から単語を生成し、ワードコレクト処理を行っているが、他の方法として文字数が一致して類似度の合計値が一番大きい文字列を正しいとみなす方法とすることも可能である。なお、本発明においては、特にワードコレクト処理の方式を限定する必要は無く、周知の方法を採用することが可能である。
そして、ステップS510において、最終的にワードコレクト処理を行った、あるいは行わなかった文字列を出力する。
入出力制御部20は、出力された文字列を出力装置15に出力し、出力装置15において表示する。
一方、従来の方式として、入力原稿中の全範囲に対する単語一致度に基づいてワードコレクト処理を実行した場合には、実施の形態1でも説明したように全範囲一律にワードコレクト処理を実行するあるいは実行しないを判定してしまうため、誤コレクトが生じる可能性が高く、認識率の向上は低くなる。
それゆえ、本発明の実施の形態に従う情報処理装置に従えば、適切なワードコレクト処理の判定を実行し、従来方式よりも、識率率が高いワードコレクト処理を実現することができる。
また、上記においては、単語一致度について、一例として、ここでは、区切られた範囲に含まれる単語について、単語辞書13に含まれる単語数(単語一致カウント)を全単語数で割った値を単語一致度αとする場合について説明したが、特にこれに限られず、単語一致度αを単語辞書13と一致した単語数とすることも可能である。
例えば、再び図21を参照して、取得単語リストF1801における単語一致度αは「6」とすることが可能である。
そして、当該単語一致度αを単語辞書と一致した単語数とした場合は、全単語数から単語辞書と一致した単語数を引いた数を「未知語数」とする。
そして、「未知語数」と「単語辞書と一致した単語数(一致単語数)」との数の大小比較に基づいてワードコレクト処理を実行するか否かを判定する。
例えば、取得単語リストF1801については、全単語数が「9」であり、単語辞書と一致した単語数が「6」である。
したがって、「未知語数」は、「3」として示される。
「未知語数」と「単語辞書と一致した単語数」とを比較した場合、「未知語数」<「一致単語数(α)」となるためワードコレクト処理を行うと判定する。
当該方式により、上述したのと同様のワードコレクト処理を実行することが可能である。
(実施の形態3)
上記の実施の形態1および2においては、1つの原稿に1つの言語、例えば、英語で記載された場合の例について説明した。
本発明の実施の形態3においては、図24に示されるような1つの原稿に複数の言語、例えば、英語とドイツ語とで記載された原稿に対してワードコレクト処理を実行する場合について説明する。具体的には、例えば、取り扱い説明書等では、1つの原稿に複数の言語で文章が構成される場合が挙げられる。
なお、ここでは、単語辞書13は英語単語のみを保持しているものとする。
上述したように、まず、図2のステップS501において、文字認識処理を実行する。そして、、文字認識部5により得られた認識誤りを含んだ文字認識結果を一定範囲に区切る処理を実行する(ステップS502)。具体的には、範囲区切り部6により一定範囲に区切る処理を実行する。
図25は、文字認識処理により認識された文字データを段落毎の範囲に区切った場合を説明する図である。
図25を参照して、ここでは、2つの段落にそれぞれ対応して範囲が区切られていることが示されている。具体的には、上述したように範囲を区切る方法として、レイアウト情報を利用した場合について考える。二つの段落の間に文字がまったく書かれていない空白部分(セパレータ)が存在する。文字認識処理では、そのレイアウト情報を感知しておき、覚えておく構成とする。このような構成とすることにより、認識結果は、黒枠ごとに区切られる。
本例においては、段落ごとに区切られた範囲F2701,F2702がそれぞれ示されている。
なお、説明を簡易にするために、文字認識結果(文字データ)の認識誤りの単語に下線「_」を示している。
区切られた範囲F2701は、実施の形態2で説明した段落ごとに区切られた範囲F1601と同一である。
そして、実施の形態2で説明したのと同様に区切られた範囲F2701において、ワードコレクト処理を実行するか否かが判定されて、実施の形態2で説明したのと同様のワードコレクト処理を実行することが可能である。
次に、区切られた範囲F2702に着目して説明する。
再び図2を参照して、範囲区切り部6により区切られた一定範囲内の文字列を単語に区切る処理を実行する(ステップS503)。
具体的には、上述したように単語取得部7において、区切られた一定範囲内の文字列から単語を取得する処理を実行する。
図26は、図25で説明した区切られた範囲F2702の一定範囲において、単語を取得する処理を説明する図である。
図26において、「Schreiben」、「Sie」、「vervollstandigen」、「Sie」、「and」、「bgenaue」、「Sprachdokumentation」、「und」、「liefern」、「Sie」、「zwingende」、「Hohe」、「Qualitatsbeispiele」、「far」、「Mission」、「dev」、「kritisches」、「Projekt」、「das」、「direkt」、「an」、「eine」、「Softwarefreilassung」、「gebunden」、「wlrd」、「das」、「erwartet」、「wird」、「Hunderte」、「von」、「Million」、「in」、「Einnahmen」、「zu」、「liefern」で構成される取得単語リストF2601が示されている。
単語を取得する方法としては、英文の場合は単語ごとに空白で区切られていることから、その空白を利用して抜きだしても良いし、いわゆる形態素解析といった言語処理を用いて区切って単語を取得することも可能である。
再び、図2を参照して、次に、文字列内の単語の数をカウントする(ステップS504)。
具体的には、ステップS503において、取得された単語の数を単語数カウント部8によって一定範囲ごとに計数する。
次に、辞書と一致する単語数をカウントする(ステップS505)。
具体的には、単語取得部8で得られた全単語について、単語照合部9において、単語辞書13を参照して、単語辞書13に含まれる単語の数をカウントする。例えば、「and」や「far」といった単語は英語にも存在する単語であるため、英語の単語辞書とは一致する。
図27は、取得単語リストF2601に含まれる全単語数および単語辞書と一致した単語数を説明する図である。
図27を参照して、取得単語リストF2601の全単語数は「35」であり、単語辞書と一致した単語数は「6」であることが示されている。なお、単語辞書13は、英語単語のみを保持している。
なお、上述したように全単語数は、単語数カウント部8で取得されたものであり、単語辞書と一致した単語数は、単語照合部9で取得したものである。
再び、図2を参照して、次に、単語一致度を算出する(ステップS506)。具体的には、単語一致度算出部10において、上述した単語数カウント部8でカウントした全単語数と、単語照合部9で照合して単語辞書と一致した単語数とに基づいて、単語一致度αを算出する。
本例においては、一例として、ここでは、区切られた範囲に含まれる単語について、単語辞書13に含まれる単語数(単語一致カウント)を全単語数で割った値を単語一致度αとする。
取得単語リストF2601における、単語一致度αは、「6」/「35」=「0.17」となる。
次に、再び、図2を参照して、単語一致度αが予め定められた所定値以上であるかどうかを判断する(ステップS507)。具体的には、文字列訂正判定部11で単語一致度αを判定し、各一定範囲内の文字列のワードコレクトを行うかどうかを判定する。
そして、所定値以上であれば再度、単語辞書と照合し、ワードコレクト処理を実行する(ステップS508)。
具体的には、文字列訂正判定部11で単語一致度αが所定値以上であると判断した場合には、文字列訂正部12において、再度、単語辞書と照合し、ワードコレクト処理を実行する。
一方、所定値未満であればワードコレクト処理を実行せずに第一候補文字列を正解とする(ステップS509)。
具体的には、文字列訂正判定部11で単語一致度αを判定し、各一定範囲内の文字列のワードコレクトを行うかどうかを判定する。
本例においては、一例として所定値を「0.5」とする。すなわち、全単語中の半数が単語辞書13に含まれている割合とする。
上述したように取得単語リストF2601の単語一致度は「0.17」なので、文字列訂正判定部11はワードコレクト処理を実行しないと判断し、上述したステップS509の処理に進む。
すなわち、取得単語リストF2601の単語は、文字列訂正部12においてワードコレクト処理は実行されずにそのまま文字列として出力される(ステップS510)。
従来の方法では、英単語辞書のみを保持した場合に、単語ごとにワードコレクト処理を行うため、例えば、取得単語リストF2601に含まれる「und」は、「and」に、「Projekt」は「project」という英単語に誤コレクトしてしまう。
また、他にも、候補文字に英単語を構成する文字があった場合には、それぞれの単語を誤コレクトしてしまう。
仮に1枚の原稿の全単語数と単語辞書に一致する単語数を用いてワードコレクトを行うかどうかを判定する場合には、英語の単語辞書のみを保持している場合、図25で示した区切られた範囲F2701の範囲は単語辞書13と一致する単語が多いが、区切られた範囲F2702の範囲は単語辞書13と一致する単語が少ないため、全体としてワードコレクト処理を行わないと判定されてしまうため、誤りが訂正できない。
これは、ドイツ語の単語辞書のみを保持している場合も同じであり、図25に示した全範囲では、ドイツ語の単語辞書に一致する単語が少なくなってしまい、誤りが訂正できない。
逆に、原稿全体としてワードコレクトを行うと判定された場合には、図25に示されるような場合には、区切られた範囲F2701ではワードコレクト処理を正しく行うことができるが、区切られた範囲F2702ではドイツ語の単語を英単語と置き換えてしまうため誤コレクトが増え、最終的に認識率が向上しない。
本実施の形態に従う発明では、区切られた範囲ごとにワードコレクト処理を行うため、英語の単語辞書を保持している場合は、区切られた範囲F2701については、ワードコレクト処理を行い、区切られた範囲F2702については、ワードコレクト処理を行わない構成とすることが可能であり、区切られた範囲F2702の文字列の誤コレクトを防ぐことができる。
また、ドイツ語の単語辞書を保持していた場合でも同様であり、図25の区切られた範囲F2701に対しては、ワードコレクト処理を行わず、区切られた範囲F2702の範囲のみワードコレクト処理を行う構成となり、誤コレクトによる認識率の低下を防ぐことができる。
なお、本例においては、単語辞書として、英単語のみを保持する構成について説明したが、英語およびドイツ語をともに保持する構成として、区切られた範囲F2701については、英語の単語辞書を用いてワードコレクト処理を実行し、区切られた範囲F2702については、ドイツ語の単語辞書を用いてワードコレクト処理を実行することも可能である。
なお、本発明にかかる情報処理装置を制御するコントローラについて、コンピュータを機能させて、上述のフローで説明したような制御を実行させるプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
なお、本発明にかかるプログラムは、コンピュータのオペレーションシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 情報処理装置、2 入力装置、3 制御部、4 文字認識辞書、5 文字認識部、6 範囲区切り部、7 単語取得部、8 単語カウント数、9 単語照合部、10 単語一致度算出度、11 文字列訂正判定部、12 文字列訂正部、13 単語辞書、14 ワードコレクト処理部、15 出力装置、20 入出力制御部。