JP5942661B2 - 情報処理装置及び情報処理プログラム - Google Patents
情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP5942661B2 JP5942661B2 JP2012162259A JP2012162259A JP5942661B2 JP 5942661 B2 JP5942661 B2 JP 5942661B2 JP 2012162259 A JP2012162259 A JP 2012162259A JP 2012162259 A JP2012162259 A JP 2012162259A JP 5942661 B2 JP5942661 B2 JP 5942661B2
- Authority
- JP
- Japan
- Prior art keywords
- character
- character string
- node
- link
- regular expression
- 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.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 42
- 230000014509 gene expression Effects 0.000 claims description 202
- 238000012545 processing Methods 0.000 claims description 184
- 238000000605 extraction Methods 0.000 claims description 76
- 238000007689 inspection Methods 0.000 description 134
- 238000000034 method Methods 0.000 description 116
- 238000011156 evaluation Methods 0.000 description 60
- 230000008569 process Effects 0.000 description 46
- 239000000126 substance Substances 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 239000000284 extract Substances 0.000 description 13
- 230000010354 integration Effects 0.000 description 11
- 238000010276 construction Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010195 expression analysis Methods 0.000 description 2
- 238000012905 input function Methods 0.000 description 2
- 241001481833 Coryphaena hippurus Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Character Discrimination (AREA)
Description
請求項1の発明は、対象とする文字列を受け付ける第1の受付手段と、正規表現で記載された文字列の型と該型内の文字列の集合である部分を受け付ける第2の受付手段と、前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた集合内の文字列に合致しているか否かを判定する第1の判定手段と、前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた集合内の文字列以外の正規表現で記載された型に合致しているか否かを判定する第2の判定手段と、前記第1の判定手段による判定結果と前記第2の判定手段による判定結果を用いて、前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた文字列の型に合致しているか否かを判定する第3の判定手段と、複数の文字認識結果の各々の文字をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、前記ネットワーク生成手段によって生成されたネットワーク内のノードに先頭方向又は最後尾方向のいずれか一方向から接続するリンクに対して、予め定められた文字列パターンに合致するリンクに限定する限定手段と、前記ノード内で前記第3の判定手段による判定結果を記憶する記憶手段と、前記限定手段によって限定されたリンクによってつながれたパス内の文字候補列を文字認識結果として出力する出力手段を具備し、前記限定手段は、リンクを限定する場合に、前記記憶手段内の判定結果が非合致であれば前記予め定められた文字列パターンと合致しているか否かの処理を行わないことを特徴とする情報処理装置である。
まず、本実施の形態を説明する前に、その前提又は本実施の形態を利用する情報処理装置について説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
以下、特許文献2に記載されている技術内容を例にして説明する。なお、以下の説明で用いる用語は、特許文献2で用いる用語とは異なっている場合がある。ただし、内容は特許文献2と同じである。
前述の文字セグメントを統合して、文字画像を決定する。複数の文字セグメントを統合して1つの文字画像を形成する場合もあれば、1つの文字セグメントが1つの文字となる場合もある。文字画像を決定するとは、文字の切り出し位置を決定することと同値であるから、以下では文字切り出し位置の決定という場合もある。
文字セグメントの統合のパターンは複数存在する。複数存在するパターンの中で、最も文字画像として評価の高いものを選択することによって、最終的な文字切り出し位置を決定する。
図32の例に対しては、すべての文字切り出しパターンは、図33に示す例のようになる。つまり、図33(a)の例では、パターン1として3つの文字画像(外接矩形3210、外接矩形3220、外接矩形3230)、図33(b)の例では、パターン2として2つの文字画像(外接矩形3210と3220、外接矩形3230)、図33(c)の例では、パターン3として1つの文字画像(外接矩形3210と3220と3230)、図33(d)の例では、パターン4として2つの文字画像(外接矩形3210、外接矩形3220と3230)を示している。
ここで、どれか1つのアークには、1つの文字画像の候補が対応している。例えば、始点ノード3400と中間ノード3420(ノード2)を結ぶアークには、「化」という文字画像(文字切り出しパターン3404)が対応している。1つのアークに対応する文字に対して、その文字の評価値を決定することができる。これを「アーク評価値」と呼ぶこととする。
アーク評価値は、文字の形状情報や、文字認識における認識確度などから算出する。アーク評価値の算出方法はさまざまある。例えば、(1)特開平9−185681号公報、(2)特開平8−161432号公報、(3)特開平10−154207号公報、(4)特開昭61−175878号公報、(5)特開平3−37782号公報、(6)特開平11−203406号公報等に記載の従来技術に示されている手法等がある。
文字切り出し位置を決定するため、複数のパスの中で、最もパス評価値の高いパスを選択する。パスが選択できれば、文字切り出し位置が確定して、文字を切り出すことができる。そして、切り出した文字(文字画像)を文字認識した結果も確定することになる。
例えば、図35の例で、太線のパスが選択されたとする。この場合、文字切り出し位置は、始点3400と、中間ノード3420(ノード2)と、終点3490の3点となる。そして、確定した文字認識結果は、「化」(文字切り出しパターン3404)、「学」(文字切り出しパターン3422)となる。
そこで、特開平3−225579号公報に記載の技術では、図34の例に示されたようなネットワーク内の複数のパスから最も評価値の高いパスを探索する方法として、ダイナミックプログラミング手法を用いることが述べられている。
ここでは、ダイナミックプログラミング手法の中で、このようなネットワークの最良パスを探索するのに適したビタビ法の説明を行う。
このネットワークにおいて、途中に複数のノード(中間ノード3611、中間ノード3612、中間ノード3613等)を介して始点ノードから終点ノードに達するとする。途中のノードを中間ノードと呼ぶこととする。
各ノードとノードの間にはリンクが張られている。このリンクにはそのリンク固有の評価値(リンク値)が割り当てられている。始点ノード3600から終点ノード3690に向かうパスは複数存在する。パスは、複数のリンクから成り立つことになる。パスが含む複数のリンクのリンク値の和が、パスの評価値となる。
例えば、リンク値は、ノード間の距離であるとする。この場合、パス評価値が最小のパスは、始点ノードから終点ノードに向かうパスの中で、最小距離のパスということになる。あるいは、パス評価値が最大のパスを求める問題とすることも可能である。
例えば、今、ノードx(中間ノード3621)に左から入力されるリンクがすでに、1に限定されているとする。同様に、ノードy(中間ノード3622)、ノードz(中間ノード3623)に関しても1に限定されているとする。このとき、ノードX(中間ノード3631)に左から入力されるリンクを限定する。ノードX(中間ノード3631)には、ノードx(中間ノード3621)、ノードy(中間ノード3622)、ノードz(中間ノード3623)の3つのノードからリンクが張られている。このとき、ノードX(中間ノード3631)を通るパスとして、最適な可能性があるのは、ノードx(中間ノード3621)、ノードy(中間ノード3622)、ノードz(中間ノード3623)からノードX(中間ノード3631)に向かうリンクのいずれかである。この3つのうちで最適なものだけを残し、残りの2つを削除する。このようにして、ノードX(中間ノード3631)に左から入力されるパス(リンク)を1に限定する。ノードY(中間ノード3632)、ノードZ(中間ノード3633)に関しても同様に左から入力されるパスを1に限定する。
このような手順を左のノードA(中間ノード3611)、ノードB(中間ノード3612)、ノードC(中間ノード3613)から順に右の方向に行う。最終的にノードP(中間ノード3681)、ノードQ(中間ノード3682)、ノードR(中間ノード3683)に入る3つのパスに限定する。この3つのパスの中で最適なものを選択すればよい。
このようなビタビ法を用いた最適パス選定方法を、図34に例示のネットワークにも同様に適用し得る。文字切り出し位置をノードとする。また、アーク評価値を前述のリンク値とすればよい。
従来技術では、このような場合に、ビタビ法(又は、一般的にはダイナミックプログラミング手法)を適用して、文字認識結果を得ることはされていない。
図1、図3は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等が通信回線(一対一対応、一対多対応、多対一対応、多対多対応の通信接続を含む)で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
切出位置抽出モジュール330が対象とする画像は横書きあるいは縦書きの、1列のみの文字列画像を対象としている。なお、ここで、列とは、横書きの場合は横に並ぶ列であり、縦書きの場合は縦に並ぶ列である。
したがって、文字列抽出モジュール320は、画像受付モジュール310が受け付けた画像が1列のみの文字列画像であれば、そのまま用いればよい。画像受付モジュール310が受け付けた画像が、複数の文字列が存在するものがあり、このような複数文字列を単一の文字列になるように分離する手法としては、従来よりさまざまものが提案されているため、それらを用いればよい。単一の文字列となるように分離する例としてもさまざまな方式があるため、そのうちのいずれかを用いればよい。例えば、(1)特開平4−311283号公報、(2)特開平3−233789号公報、(3)特開平5−73718号公報、(4)特開2000−90194号公報、等を用いればよい。これ以外の方法であってもよい。
また、切出位置抽出モジュール330が複数の切り出し位置を抽出した場合は、パス限定処理モジュール350は、切出位置抽出モジュール330によって抽出された複数の切り出し位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するようにしてもよい。
そして、パス限定処理モジュール350は、生成されたネットワーク内のノードに先頭方向又は最後尾方向のいずれか一方向から接続するリンクに対して、予め定められた文字列パターンに合致するリンクに限定する。
また、パス限定処理モジュール350は、限定されたリンクによって接続されたノードの文字候補間の関係による文字列らしさを表す値に基づいて、リンク値を生成してもよい。さらに、リンクを構成しているノードに対する文字らしさを表す値に基づいて、リンク値を生成するようにしてもよい。
そして、パス限定処理モジュール350は、生成されたリンク値に基づいて、ネットワーク内のパスを選択するようにしてもよい。
また、パス限定処理モジュール350は、文字列パターンに合致するリンクがない場合は、その文字列パターン内の一部分の文字列パターンに合致するリンクに限定するようにしてもよい。
(1)画像から文字画像を切り出す位置を抽出する切出位置抽出手段と、前記切出位置抽出手段によって抽出された位置によって分けられた文字画像に対して文字認識を行った結果である複数の文字候補を抽出する文字候補抽出手段と、前記文字候補抽出手段によって抽出された複数の文字候補の各々をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、前記ネットワーク生成手段によって生成されたネットワーク内のノードに先頭方向又は最後尾方向のいずれか一方向から接続するリンクに対して、予め定められた文字列パターンに合致するリンクに限定する限定手段と、前記限定手段によって限定されたリンクによってつながれたパス内の文字候補列を文字認識結果として出力する出力手段を具備することを特徴とする情報処理装置である。
この情報処理装置によれば、画像から文字を認識する場合にあって、本構成を有していない場合に比較して、精度が高い文字認識結果を出力することができる。
この情報処理装置によれば、各文字画像の1つだけの文字認識結果によって認識文字列を決定してしまうことを防止することができる。
この情報処理装置によれば、文字列らしさを表す値と文字らしさを表す値を用いてリンク値を生成することができる。
この情報処理装置によれば、複数の切り出し位置に対しても文字認識結果を出力することができる。
この情報処理装置によれば、最初に誤った文字認識結果がある場合であっても、文字列パターンに合致する文字認識結果を出力することができる。
この情報処理装置によれば、文字列パターン内の一部分の文字列パターンに合致する文字認識結果を出力することができる。
この情報処理プログラムによれば、画像から文字を認識する場合にあって、本構成を有していない場合に比較して、精度が高い文字認識結果を出力することができる。
このように、枠に記載されるはずの文字、又は単語が限定される場合には、自由に記載可能な場合よりも認識率を上げることができる。例えば、住所などの場合で、図4の例のように、住所枠(市前)420内に市の名前を書くように指定されている場合を考える。市の名前は限定されているので、それに限定すれば、より精度が上がる。ここで、例えば、住所枠(市前)420内に記載される可能性のある市名が、下記3つに限定されているとする。
(1)横浜
(2)川崎
(3)横須賀
ここで、住所枠(市前)420内に記載される文字列は、この3パターンに限定されているということができる。
例えば、前記のように、「横浜」、あるいは、「川崎」、あるいは、「横須賀」のみを対象とする場合、正規表現としては、
「横浜|川崎|横須賀」
と記述すればよい。
前述の市名の例では、
・1文字目には、「横」、「川」のみ
・2文字目には、「浜」、「崎」、「須」のみ
・3文字目には、「賀」のみ
しかあり得ない。この条件を利用する。例えば、1文字目には、「横」と、「川」しかあり得ないので、それのみを出力するように設定する。このようにすることによって、認識率の精度を上げることが可能となる。例えば、「横」は、「黄」と字が似ており、正解は「横」であるのに、「黄」と誤認識する可能性があるが、出力文字を、「横」と「川」に限定することで、「黄」の出力を禁ずることとなっている。
1つの文字を認識する場合、複数の認識候補を得ることができる。複数の文字候補には、第1候補から、第n候補までの、順位が付けられている。第1候補が最も確度の高い候補であり、数値が大きくなるに従って、認識の確度は低下する。特許文献3に記載の技術では、1文字目の第1候補から順に、正規表現にマッチするものを探索していく。ここで、決定するのは1文字目であるとする。1文字目の、第1候補が正規表現にマッチすれば、その候補を選択する。第1候補が正規表現にマッチしない場合、第2候補をチェックする。以降、正規表現にマッチするまで、第2、第3と、順に候補を探索する。正規表現にマッチする候補がない場合は、終了する。正規表現にマッチする候補がある場合その候補を選択する。候補を選択した後では、2文字目の選択を行う。ここではすでに1文字目の選択が行われているため、1文字目と合わせて、2文字の文字列が正規表現にマッチするような文字を選択する必要がある。ここで、1文字目と同様に、2文字目の第1候補から順に探索する。正規表現にマッチした段階で、その候補を選択する。
この方法であれば、複数の文字候補があっても、最終的に正規表現にマッチする文字列を選択することができる。
「横浜|川崎|横須賀」
であるとする。
この例では、1文字目は第2候補、2文字目は第2候補、3文字目は第1候補を選択することで、正解出力を得ることができる。
特許文献2に記載の技術では、予め文字位置に応じて、出力される文字候補を決める。特許文献2に記載の技術での出力候補は、図7の例に示すハッチング部を除いた出力の中で、最も順位の高いもの(第1候補の方が第2候補よりも順位が高いとする)を出力することになる。結局、特許文献2に記載の技術では、「横浜賀」が出力されることとなる。
本実施の形態では、文字認識候補のあり得る文字列のうちから、正規表現に合致するパターンを探索するものである。そして、そのためにビタビ法を用いるようにしてもよい。
ステップS802では、画像受付モジュール310が、対象となる画像を受け付ける。
ステップS804では、文字列抽出モジュール320が、画像から文字列画像を抽出する。
ステップS806では、切出位置抽出モジュール330が、文字列画像を対象として切り出し位置を抽出する。
ステップS808では、文字候補抽出モジュール340が、切り出された文字画像を文字認識する。
ステップS810では、文字候補抽出モジュール340が、複数の文字認識結果を文字画像の文字候補として抽出する。
ステップS812では、パス限定処理モジュール350が、ネットワークを生成し、その中のパスを限定する。
ステップS814では、出力モジュール360が、文字認識結果を出力する。
本実施の形態は、さらに、パス評価値の高いパスを出力することによって、文字切り出し位置の確定、又は文字認識を行うものである。また、パスの探索にダイナミックプログラミングの手法を用いてもよい。
本実施の形態のネットワークにおいては、始点ノード、終点ノード、複数の中間ノードがある。また、各ノード間のリンクには、リンク値を与える。始点ノードから1あるいは複数の中間ノードを介して、終点ノードに至るパスは、介するノードに依存したリンクを通ることになる。始点ノードから終点ノードに至るパスのパス評価値は、そのパスが通ったリンクのリンク値の重み付け和として表すことができる。
本実施の形態のパス限定処理モジュール350は、1つの文字画像に対して、複数の文字認識結果が存在しているときに、前述のノード、リンク、パスの構成(ネットワーク構造)を生成するものである。ネットワーク構造が与えられれば、パス限定処理モジュール350によってビタビ法などの手法を用いて、最適パスを探索することが可能となる。
まず、切出位置抽出モジュール330の抽出する文字切り出し位置が固定(一種類)の場合について説明する。
図9は、記号例を示す説明図である。記号の種類として、長方形910、横棒である接続線920、922、924、927、928、円弧930、丸である文字候補942、944、946がある。
図9の例において、長方形910A、910B、910C、910D(図10に例示する長方形910)は、それぞれ文字セグメントを表す。
また、横棒である接続線920、922、924、926、928は、文字切り出し位置を示す(図11に例示する接続線920、接続線922)。文字セグメントは文字切り出し位置を介して、隣接する文字セグメントにつながっている。
さらに、丸で表されている文字候補942A、944A等は、1つの文字セグメントを1文字として認識したときの、複数の文字候補を示す。円弧930A、930B、930C、930Dは、下の1つの文字セグメントだけを対象に文字認識を行っていることを示している。
本実施の形態では、文字セグメントの複数の文字候補をノードとして捉える。さらに、隣接する文字セグメントの文字候補と、リンクを接続する。図13の例にリンクを太線で記入して示す。
ここでリンク値生成処理が生成するリンク値としては、リンク左右のノードの相互作用を示すものを使ってもよい。具体的には、リンクの左の文字候補とリンクの右の文字候補が連続して日本語の文章中に出現する確率(バイグラム)を用いる。
このようにノードとリンクを構成することによって、すべてのネットワーク構造が規定できる。ネットワーク構造が規定できれば、ビタビ法等により、最適パスを選択できる。
前述では、リンク値として、ノード間の相互作用を示すもの(文章中に出現する確率)だけを用いたが、さらにノード単独の評価値を用いるようにしてもよい。ここでは、ビタビ法を用いて最適パスを探索するものとする。左から順にノードの左から入るリンクをノード毎に1つだけに限定していく処理を行う。
今、図13の例で文字候補942B、944B、946Bのリンクを限定する段階であるとする。
ここで、文字候補942B、944B、946Bと、左側にある文字候補942A、944A、946A間のリンク値を生成する。リンク値としては、各ノード間の相互作用を表すバイグラムなどの値と、各ノード内部の値の両方を用いる。ノード内部の値とは、例えば、文字候補942Bの文字の認識確度などがある。
つまり、ノード間情報はリンクの内部に存在していて、ノード内情報はリンクの端点に存在する。このような発生位置、又は概念が異なる値を一度に扱う。
本実施の形態では、リンクの評価値として、リンクの内部に存在する値(例えば、バイグラムの値)と、リンクの一方の端点のみに存在する値(例えば、文字候補942Bの文字認識確度)を用いる。他方の端点に存在する値(例えば、文字候補942Aの文字認識確度)は用いない。このようにすることで、リンクの内部の値と、リンクの端点の値をともに用いる評価が可能となる。
最終的には、文字列の評価値(パス評価値)として、(1)式で、すべてのリンクの評価値を加算することになる。そのため、リンクの評価値の中に、リンクの内部の評価値と、リンクの一方の端点の評価値が含まれていれば、パス評価値の中にすべてのリンク内部の評価値とリンク端点の評価値が1つずつ含まれることになる。
なお、複数の値を特徴量ベクトルとして把握し、リンク値は、特徴量ベクトルを対象として、リンク評価値(スカラー値)を出力する関数で実現できる。
前述では、リンク左右のノードの相互情報としてバイグラムを用いていた。この場合、リンク情報として2つのノード間の関係情報を用いていることになる。
ビタビ法を用いる場合、例えば、ノードである文字候補942A、944A、946Aの左側のリンク数はすでに1個に限定されていることになる。この場合には、2以上のノードの情報を用いてリンク情報を構築することが可能となる。
例えば、2つの連続する文字の生起確率であるバイグラムではなく、3つの連続する文字の生起確率であるトライグラムを用いることも可能となる。
今、リンク値生成処理では、ノードである文字候補942B、944B、946Bの左側のリンク値を生成しようとする。
例えば、文字候補942A−文字候補942B間のリンク値を算出する。バイグラムであれば、文字候補942Aと文字候補942Bが連続する生起確率を求めればよい。ここで、トライグラムを求める場合を説明する。文字候補942Aの左側のリンクは1つに限定されているため、実は、文字候補942Aの左の文字も確定していることになる。この文字を保持するノードをGとする。トライグラムとしては、ノードG−ノード(文字候補942A)−ノード(文字候補942B)の3つの文字に関する生起確率を求めればよい。
以上のように求めたトライグラムをノード(文字候補942A)−ノード(文字候補942B)間のリンク値として生成すればよい。同様に、Ngramであっても、求めることが可能となる。
文字切り出し位置が確定していない場合(つまり、切出位置抽出モジュール330が複数の文字切り出し位置を抽出した場合であり、具体的には、「化」のように、「イ」と「ヒ」、あるいは、「化」のどちらになるか分からない場合)、文字候補の選択と、文字切り出し位置の選択を行うようにしてもよい。文字切り出し位置が確定していない場合、文字候補の選択は、文字切り出し位置の選択となる。
図14は、文字切り出し位置が複数ある場合の処理例を示す説明図である。ここでは、円弧の記号の意味が追加されている。円弧が下にある複数の文字セグメント(長方形)を指し示す場合、その円弧はその複数の文字セグメントを統合した画像を1文字とみなして認識することを示す。円弧1410Aは、長方形910Aと長方形910Bを統合した画像を1文字とみなして文字認識結果として文字候補1422A、1424A、1426Aを有している。また、円弧1410Cは、長方形910A、910B、910C、910Dを統合した画像を1文字とみなして文字認識結果として文字候補1422C、1424C、1426Cを有している。
図15の例に示すように、円弧930Aと円弧930Bの下に2つの文字セグメント(長方形910A、長方形910B)「イ」と「ヒ」がある場合に、その2つを含む円弧1410の上の文字候補(文字候補1422、1424、1426)は、「イ」と「ヒ」を統合した1つの文字セグメント「化」を認識したときの複数の文字候補に相当する。
ここでは、文字切り出し位置に注目する。今、図16の矢印で示す文字切り出し位置に関連するノードのリンクを対象とする。この文字切り出し位置でリンクされるノードには、
(1)左側ノード:矢印の文字切り出し位置に円弧の右側が存在するノード(斜線でハッチングしたノード、文字候補1642A、文字候補1644A、文字候補1662A、文字候補1664A、文字候補1672A、文字候補1674A等)と、
(2)右側ノード:矢印の文字切り出し位置に円弧の左側が存在するノード(内部が白のノード、文字候補1642B、文字候補1644B、文字候補1662B、文字候補1664B、文字候補1672B、文字候補1674B等)
の2種類がある。このとき、左側ノードと、右側ノード間にリンクを形成することによって、グラフ構造を構築することができる。
例えば、すべての左側ノードが、すべての右側ノードに直接接続できるようにリンクを形成すればよい。さらに、すべての文字切り出し位置において、前述のように、左側ノードと右側ノードのリンクを形成し、さらに、左側が文字列の端点の場合には始点ノードに接続し、また、右側が文字列の端点の場合には終端ノードに接続すれば、すべてのグラフ構造を構築することができる。
特に、この場合には、文字切り出し位置が確定していないため、ノード内部の評価値として、文字の形状情報を用いることができる。文字形状情報の例として、文字の縦横比や、文字左右の空白量、等を用いることができる。
そこで、ビタビ法を用いて高速化する。
前述したように、あるノードに左から接続されるリンクの本数を1本に限定するようにしていく。もちろんのことながら、あるノードに右から接続されるリンクの本数を1本に限定するようにしてもよいが、以下の例では、左から接続されるリンクについて説明する。
ここで、あるノードに左から接続されるリンクを決定すれば、そのノードに至る出力文字列が確定できる。この出力文字列が正規表現に部分一致しているかどうかをチェックすればよい。
図18の例を用いて説明する。図18は、文字列を構成するネットワーク内のノードが接続されている例を示す説明図である。
例えば、ノードD(文字候補「会」)に左から3本のリンクが接続されているとする。そして、そのリンクはそれぞれノードA(文字列候補「ヒ学」)、ノードB(文字列候補「化学」)、ノードC(文字列候補「ト学」)から接続されているとする。ここで、正規表現が、「化学会議」とされているとする。
ノードA、B、Cには、さらに左からノードが接続されているが、その部分は説明では省略している。ノードA、B、Cに関しては、すでに、左側のノードが1本に限定されているため、それらのノードに至るパスが確定している。そのため、それらのノードに至る文字列も確定している。ノードAの文字列候補は「ヒ学」、ノードBの文字列候補は「化学」、ノードCの文字列候補は「ト学」となっている。
ここで、ノードDに左から接続されるリンクを確定させる。ノードAからのパスであれば、文字列は「ヒ学会」であり、ノードBからのパスであれば、文字列は「化学会」であり、ノードCからのパスであれば、文字列は「ト学会」となる。この中で、正規表現である文字列パターンに部分一致するものを選択する。
したがって、部分一致とは、文字列がXであるとき、Xの後ろに任意の文字が続くとみなして、後ろに任意の文字が続く文字列が先頭から正規表現に一致しているかどうかを判断するとしてもよい。
さらに、部分一致しているものがない場合には、すべての候補の中から、正規表現とは異なる方法で最も評価値の高いものを選択すればよい。ここでの評価値とは、例えば、特開2012−118650号公報に示した方法を用いればよい。
以上のようにして、各ノードにおいて、左側のリンクを1つに絞る。最終的に、左端から右端に向かう複数のパスが残るので、その中から出力すべきパスを得ればよい。
図19は、パス限定処理モジュール350内のモジュール構成例を示す説明図である。パス限定処理モジュール350は、ネットワーク構築処理モジュール1910、ノード数限定処理モジュール1920、制御モジュール1930、出力決定処理モジュール1940を有している。
図20は、パス限定処理モジュール350による処理例を示すフローチャートである。
ステップS2002では、ネットワーク構築処理モジュール1910が、ネットワークを構築する。
ステップS2004では、ノード数限定処理モジュール1920が、制御モジュール1930による制御によって、ネットワーク内のノードを限定する。
ステップS2006では、出力決定処理モジュール1940が、出力すべきパスを決定する。
ノード数限定処理モジュール1920は、ネットワーク構築処理モジュール1910、制御モジュール1930、出力決定処理モジュール1940と接続されている。ノード数限定処理モジュール1920は、ネットワーク構築処理モジュール1910によって生成されたネットワーク内のノードに先頭方向又は最後尾方向のいずれか一方向から接続するリンクに対して、予め定められた文字列パターンに合致するリンクに限定する。つまり、前述したように、各ノードにおいて、例えば左から接続されるノード数を限定する処理を行う。例えば、限定するノード数として1つである。
本実施の形態では、制御モジュール1930において、右端の終点ノードにおけるノード数を1本に限定する処理は行わない。すなわち、右端の終点ノードに入るリンク数(アーク数)が、M本であれば、最終的にM本のパスが残ることになる。M本のパスは、M個の文字列に相当している。
このようにするのは、途中の部分一致では、文字列の後ろ側に一致していない文字数を評価することができないためである。文字列全体として、文字列の前側と後ろ側の不一致数を合わせて不一致数の最も少ないものを選択するため、M個の文字列に関して、評価を行う。
また、制御モジュール1930において、右端の終点ノードにおける入力ノード数を1本になるまで選択してもよい。出力決定処理モジュール1940では、その1本化した文字列の中から、正規表現にマッチする最も長い部分がある文字列を選択する。
(1)評価尺度1
正規表現に最長一致するものを選ぶ。
最長一致するものが複数ある場合には、最もパス評価値の高い文字列を選ぶ。ここでの評価値とは、例えば、特開2012−118650号公報に示した方法を用いればよい。
変形例として、最長一致するものの文字数が所定の文字数未満である場合は、リジェクトとする。
(1.1)変形例(その1)
文字列の左端や右端が正規表現に一致しない場合、その一致しない左端や右端を除いた部分を抜き出して、その部分のみを正規表現に一致したとして、出力する。例えば、正規表現が「化学会議」で、文字列が「AB化学会議C」の場合、「AB」と「C」を取り除いた「化学会議」を出力する。このとき、取り除いた左端「AB」と右端「C」の文字数は計3文字となる。この取り除いた文字数が最も少ない文字列を選択する。
(1.2)変形例(その2)
前述の例で、「化学会議」となっている画像中の文字列の長さ(例えば、画像の画素数や、スキャン前の紙におけるセンチ数など)が最も長いものを選択してもよい。つまり、除去するノイズの量が画像中で最も小さいものを選択する。
正規表現に合致する文字列の長さは規定せず、正規表現に合致するものの中で、最もパス評価値の高い文字列を選ぶ。ここでの評価値とは、例えば、特開2012−118650号公報に示した方法を用いればよい。
出力文字列の中に、正規表現にマッチする部分があればよい。例えば、正規表現が「化学会議」であるとして、文字列が、「前化学会議A」であるとき、1文字目と6文字目を省いて、「化学会議」という部分だけを出力することになる。
また、正規表現に完全に一致するときのみ採用するとしてもよい。
左端から右端までの全文字列が正規表現に一致すれば、その文字列を出力する。複数のパスが合致する場合は、最もパス評価値の高い文字列を選ぶ。ここでの評価値とは、例えば、特開2012−118650号公報に示した方法を用いればよい。ただし、左端から右端までの全文字列の中で、正規表現に一致するものがない場合は、出力がない(リジェクト)とする。
前述のパス限定処理モジュール350の例1では、文字列の左端から、部分一致するノードを選択することになる。
ところが、部分一致では、文字列の先頭から、正規表現に一致する必要がある。
文字列の先頭部分には、ノイズが発生する場合が多い。ノイズが発生した場合には、文字列の最初から部分一致する文字列が存在しない場合がある。例えば、文字列の最初に縦棒のノイズが存在している場合、多くの出力文字列の1文字目に、「1」という文字が入ってしまう場合がある。
このような場合、ネットワーク構築処理で構築されたすべてのパスが部分一致しないことになってしまい、正規表現のマッチングが不可能となる。部分一致とは、文字列の先頭から一致することであるためである。
そこで、文字列の最初にノイズが混入した場合の不安定性を排除することを行う。
(1)I=1とする。
(2)文字列のI文字目から部分一致しているかどうかをチェックする。
(3)部分一致していれば終了。
(4)Iが文字列の最後であれば終了。
(5)部分一致していなければ、I=I+1として(2)に戻る。
そして、変数Iの値を用いて、各リンクに対して、何文字目から部分一致したかを計測する。その計測したIを用いて、ノード数限定処理モジュール1920における処理では、下記の方法によって入力ノード数を限定する。
・部分一致しているパスの中で、Iの値が最も小さい入力ノードを選ぶ。
・部分一致しているパスの中で、最も小さいIの値が複数ある場合(Iの値が同じ場合)、パス評価値が最も大きなノードを選ぶ。
・部分一致しているパスがない場合、パス評価値が最も大きなノードを選ぶ。
このようにすることで、文字列の最初にノイズが混入した場合の不安定性を排除する。
また、パス限定処理モジュール350は、正規表現に完全に一致する文字列がない場合、部分一致文字列を出力するようにしてもよい。
前述のパス限定処理モジュール350の例1、2では、与えられた文字列パターン(正規表現)に一致するパス(文字列)を出力していた。ただし、一部でもよいから、一致するものを出力したいという場合もあり得る。例えば、前述の市名の例で、図21の例のような認識結果が得られたとする。また、正解は「横浜」であるとする。
文字認識後に、人間が認識結果を修正する場合がある。出力されない場合(リジェクトされる場合)、人間は「横浜」と2文字を入力する必要がある。ところが、「横」という文字は文字認識結果として存在している。「横」だけでも出力できれば、人間は、「浜」の1字だけを入力すればよいことになる。
パス限定処理モジュール350は以下の処理を行う。
(1)部分一致を検証するときに、部分一致する文字列の文字長が最長になる場合を記録しておく。文字列そのものか、パスの位置を記録しておけばよい。
(2)出力決定処理モジュール1940における処理において、正規表現にマッチする文字列があれば、それを出力する。
(3)出力決定処理モジュール1940における処理において、正規表現にマッチする文字列がない場合、部分一致文字長が最長となる文字列を出力する。
そして、文字認識結果を確認、修正する操作者には、部分一致でも出力するか否かの判断を表示装置に提示し、部分一致でも出力するが選択された場合は、(3)の処理を行うようにしてもよい。
限定文字列パターン108は、文字列パターンを限定するための情報であり、典型的には、前述した正規表現が該当する。
限定文字列パターン検査処理モジュール2200では、限定文字列パターン108と対象文字列118を受け付ける。対象文字列118が限定文字列パターン108に合致すれば、検査結果162として、「合致」を出力する。対象文字列118が限定文字列パターン108に合致しなければ、検査結果162として、「非合致」を出力する。
検査としては、以下の2種類がある。いずれかの検査を行う。
(検査1)文字列が完全に合致する場合のみを「合致」として、それ以外を「非合致」とする完全検査。
(検査2)文字列と限定文字列パターン(正規表現)が、従来技術で述べた部分一致する場合も、「合致」とし、それ以外を「非合致」とする部分一致検査。
横浜|川崎|横須賀
とする。
完全検査の場合、「対象文字列118が、「横浜」であるときは、検査結果として、「合致」を出力する」、又は、「対象文字列118が「黄浜」のときや、対象文字列118が「横」のとき、検査結果162として、「非合致」を出力する」、等の動作を行う。
部分一致検査の場合、「対象文字列118が、「横浜」や、対象文字列118が「横」のときは、検査結果162として、「合致」を出力する」、又は、「対象文字列118が「黄浜」のとき、検査結果162として、「非合致」を出力する」、等の動作を行う。
「対象文字列118が「横」であるときは、検査結果162として、「合致」を出力する」、又は、「対象文字列118が「黄浜」のときは、検査結果162として、「非合致」を出力する」、等の動作を行う。
前述の処理を実現するためには、このような、限定文字列パターン検査処理を行う。
ここで、限定文字列パターン108が長大である場合がある。例えば、都道府県名を限定文字列パターン108として受け付ける場合、50個程度の県名を、論理和を示す記号「|」をはさんで記入する必要がある。市名であれば、1000個程度オーダー数の市名を、論理和を示す記号「|」をはさんで記入する必要がある。
このような長大な正規表現を処理することが必要である。特に図36の例に示すような複数のパスの中から最適なパスを選ぶような処理を行う場合、限定文字列パターン検査処理の処理回数が多くなり、そのため、全体の処理量や処理時間も増大することとなる。
そこで、本実施の形態では、限定文字列パターン108の記述を分解する。
限定文字列パターン108が、文字列の単純な羅列で与えられた場合を対象とする。例えば、図23の例に示すように、限定したい文字列(文字列(横浜)2310、文字列(川崎)2320、文字列(横須賀)2330)が単純に並んでいる場合(つまり、論理和として文字列が接続されている場合)について説明する。
以下、このような文字列の羅列を文字列集合と呼ぶ。
文字列集合は、前述したような、何かの記号で分離可能なテキストコードであってもよいし、文字列の配列であってもよいし、その他の、集合を表現可能なデータ形式であればよい。
データ集合Aがあって、入力データxが、集合A内のデータと一致するかどうかを判定するようなアルゴリズムが種々存在している。このようなアルゴリズムを用いて、前述したような文字列集合との合致を判定することができる。
例えば、2分木検索、赤黒木検索、トライ木検索、ハッシュ法等などの方法を用いることができる。
図24の例は、文字列集合を2分木構造として例を示す図である。図24において、○は、ノードを示す。各ノードは最大2つの子ノードを持つ。例えば図24において、ノード8は、ノード4とノード12を子に持つ。
2分木探索では、例えば、左の子<親≦右の子となるように、木構造を作る。
このようにすると、対象とする文字列との大小関係を一番上の親ノードから参照していくことによって、N個の集合の場合に、log2Nの回数で集合内にデータが存在するか否かを検査することが可能となる(図24の場合)。
以上のように、順番を付けることのできる文字列に関して、単純に探索をする場合(N回の判定が必要)よりも、高速に検査することが可能となる。
例えば、
横浜|川崎|横須賀
の正規表現の場合、前述の文字列集合に対するアルゴリズムをそのまま適用し得る。しかし、例えば、
横浜|(別の正規表現)|須賀
のように、論理和記号の間に、別の正規表現による複雑な式が入っている場合もあり得る。その場合には、その複雑な式を、文字列集合として、辞書順に並べることはできない。少なくとも、正規表現の入れ子構造になるため、その分、低速となる。そのため、論理和記号の間にある文字列をすべて、文字列集合として、前述の文字列探索の高速アルゴリズムを適用することはできない。
そこで、本実施の形態では、限定文字列パターン108中の、文字列集合部分を抽出することを行う。つまり、文字列集合部分だけを抜き出して、その部分は、例えば、2分木探索を行う。
また、高速探索アルゴリズムを部分一致検査に用いることもできる。
そのためには、
対象文字列+任意文字列
が、文字列集合内に存在しているか否かを判定すればよい。
文字列が辞書順に並んでいることを前提とすれば、
対象文字列+任意文字列
は、
対象文字列
の次以降に並ぶことになる。
そのため、文字列集合中の文字列で、辞書順が対象文字列以上の値の文字列を発見し、その文字列の最初から対象文字列の文字数分だけ完全一致を判定すればよい。
対象文字列受付モジュール120は、文字列集合検査処理モジュール140、正規表現検査処理モジュール150と接続されており、対象とする文字列である対象文字列118を受け付ける。対象文字列118は、例えば、文字認識結果の文字列等であるが、これに限定されるものではなく、操作者がキーボード等を用いて打ち込んだ文字列等であってもよい。
例えば、限定文字列パターン108の正規表現として、文字列の集合の領域を示す特別な記号を用意する。ここでは、特別な記号として、「<<」、「>>」の例を示す。例えば、限定文字列パターン108として、
<<横浜|川崎|横須賀>>|(他の正規表現)
である場合は、「<<」と「>>」で囲まれた部分を、文字列集合領域132として抽出する。つまり、文字列集合領域132として、「横浜|川崎|横須賀」を取り出す。これは、「横浜」、「川崎」、「横須賀」のいずれかであることを示している。なお、文字列の集合の領域を示す特別な記号に囲まれた領域を抽出する例を示したが、文字列が「|」によって羅列されている領域を抽出するようにしてもよい。
また、前述の例では、「(他の正規表現)」の部分が正規表現領域134に該当する。そして、文字列集合領域132と正規表現領域134の間にある「|」が論理関係136に該当する。
また、文字列集合検査処理モジュール140は、対象文字列受付モジュール120によって受け付けられた対象文字列118の先頭から連続する部分が文字列集合抽出処理モジュール130によって抽出された文字列集合領域132に合致しているか否かを判定するようにしてもよい。部分一致に対応する処理である。
<<横浜|川崎|横須賀>>|(他の正規表現)
では、論理関係136は「|」(OR(論理和))となる。
(1)正規表現検査(正規表現検査処理モジュール150による処理)と文字列集合検査(文字列集合検査処理モジュール140)の結果に対する論理関係136がAND(論理積)であり、正規表現検査を文字列集合検査の先に行う場合
対象文字列が正規表現に合致しているか否かを判定する。
(ア)正規表現に合致している場合、
(ア−1)文字列集合に合致している場合、合致として検査結果162を出力する。
(ア−2)文字列集合に合致していない場合、非合致として検査結果162を出力する。
(イ)正規表現に非合致の場合、非合致として検査結果162を出力する。
対象文字列が正規表現に合致しているか否かを判定する。
(ア)正規表現に合致している場合には、合致として検査結果162を出力する。
(イ)正規表現に非合致の場合、
(イ−1)文字列集合に合致している場合、合致として検査結果162を出力する。
(イ−2)文字列集合に合致していない場合、非合致として検査結果162を出力する。
対象文字列が文字列集合に合致しているか否かを判定する。
(ア)文字列集合に合致している場合、
(ア−1)正規表現に合致していれば、合致として検査結果162を出力する。
(ア−2)正規表現に合致していなければ、非合致として検査結果162を出力する。
(イ)文字列集合に非合致の場合、非合致として、検査結果162を出力する。
対象文字列が文字列集合に合致しているか否かを判定する。
(ア)文字列集合に合致している場合には、合致として検査結果162を出力する。
(イ)文字列集合に非合致の場合、
(イ−1)正規表現に合致している場合、合致として検査結果162を出力する。
(イ−2)正規表現に非合致の場合、非合致として検査結果162を出力する。
ステップS202では、限定文字列パターン受付モジュール110が、限定文字列パターン108を受け付ける。
ステップS204では、対象文字列受付モジュール120が、対象文字列118を受け付ける。
ステップS206では、文字列集合抽出処理モジュール130が、限定文字列パターン108から文字列集合領域132を抽出する。
ステップS208では、文字列集合抽出処理モジュール130が、限定文字列パターン108から文字列集合領域132を抽出した残りの部分である正規表現領域134を抽出する。
ステップS210では、文字列集合抽出処理モジュール130が、文字列集合領域132と正規表現領域134の論理関係136を抽出する。
ステップS212では、文字列集合検査処理モジュール140が、対象文字列118が文字列集合領域132に合致しているかの検査を行う。
ステップS214では、正規表現検査処理モジュール150が、対象文字列118が正規表現領域134に合致しているかの検査を行う。
ステップS216では、検査結果統合処理モジュール160が、論理関係136によって、文字列集合検査処理モジュール140の検査結果と正規表現検査処理モジュール150の検査結果とを統合して検査結果162を出力する。
例えば、受け付ける際の時間間隔をあけて、文字列集合領域132と正規表現領域134を分離してもよい。正規表現入力関数と、文字列集合入力関数を別に設けて分離してもよい。
より具体的な例について図25、図26、図27を用いて説明する。図25の例における限定文字列パターン検査処理モジュール2500は、正規表現2508(正規表現で記載された文字列の型)、文字列集合2518(正規表現2508内の文字列の集合である部分)、対象文字列118を受け付け、検査結果162を出力する。
対象文字列118が文字列集合2518内の文字列に合致しているか否かを判定する。そして、対象文字列118が文字列集合2518以外の正規表現2508に合致しているか否かを判定する。この2つの判定結果を用いて、対象文字列118が正規表現2508に合致しているか否かを判定する。前述の例では、正規表現から文字列の集合である部分を抽出したが、この例では、正規表現2508と文字列集合2518とが予め分離されており、それらを用いる処理である。
ここで、限定文字列パターン検査処理モジュール2500が行う限定文字列パターン検査処理とは、前述した技術において、正規表現にマッチするか否かを調べる処理の代わりに用いるものである。このような限定文字列パターン検査処理を行うことによって、文字認識結果を、限定文字列パターンに合致した結果に限定することができる。
以下、「合致」「非合致」は、完全検査の場合と部分一致検査の場合のいずれかを指すものとする。
また、本実施の形態の場合、正規表現検査と文字列集合検査の論理関係と、正規表現検査を文字列集合検査の検査順序は、固定とする。
(25−1)正規表現検査と文字列集合検査の論理関係をANDとして、正規表現検査を文字列集合検査の先に行う場合について説明する。
対象文字列118が正規表現2508に合致しているか否かを判定する。
(ア)正規表現2508に合致している場合、
(ア−1)文字列集合2518に合致している場合、合致として検査結果162を出力する。
(ア−2)文字列集合2518に合致していない場合、非合致として検査結果162を出力する。
(イ)正規表現2508に非合致の場合、非合致として検査結果162を出力する。
対象文字列118が正規表現2508に合致しているか否かを判定する。
(ア)正規表現2508に合致している場合には、合致として検査結果162を出力する。
(イ)正規表現2508に非合致の場合、
(イ−1)文字列集合2518に合致している場合、合致として検査結果162を出力する。
(イ−2)文字列集合2518に合致していない場合、非合致として検査結果162を出力する。
対象文字列118が文字列集合2518に合致しているか否かを判定する。
(ア)文字列集合2518に合致している場合、
(ア−1)正規表現2508に合致していれば、合致として検査結果162を出力する。
(ア−2)正規表現2508に合致していなければ、非合致として検査結果162を出力する。
(イ)文字列集合2518に非合致の場合、非合致として、検査結果162を出力する。
対象文字列118が文字列集合2518に合致しているか否かを判定する。
(ア)文字列集合2518に合致している場合には、合致として検査結果162を出力する。
(イ)文字列集合2518に非合致の場合、
(イ−1)正規表現2508に合致している場合、合致として検査結果162を出力する。
(イ−2)正規表現2508に非合致の場合、非合致として検査結果162を出力する。
ここで、限定文字列パターン検査処理モジュール2600が行う限定文字列パターン検査処理とは、前述した技術において、正規表現にマッチするか否かを調べる処理の代わりに用いるものである。このような限定文字列パターン検査処理を行うことによって、文字認識結果を、限定文字列パターンに合致した結果に限定することができる。
以下、「合致」「非合致」は、完全検査の場合と部分一致検査の場合のいずれかを指すものとする。
また、本実施の形態の場合、正規表現検査を文字列集合検査の検査順序は固定とする。
論理関係2608として、「AND」か「OR」を受け付ける。
正規表現検査と文字列集合検査の検査順序は固定とする。
例えば、正規表現検査を先に行う場合、論理関係2608によって、限定文字列パターン検査処理の内部動作を変化させる。ANDであれば、前述の(25−1)の動作を行う。ORであれば、前述の(25−2)の動作を行う。
その他、例えば、正規表現検査を後に行う場合、論理関係2608によって、限定文字列パターン検査処理の内部動作を変化させる。ANDであれば、前述の(25−3)の動作を行う。ORであれば、前述の(25−4)の動作を行う。
ここで、限定文字列パターン検査処理モジュール2700が行う限定文字列パターン検査処理とは、前述した技術において、正規表現にマッチするか否かを調べる処理の代わりに用いるものである。このような限定文字列パターン検査処理を行うことによって、文字認識結果を、限定文字列パターンに合致した結果に限定することができる。
以下、「合致」「非合致」は、完全検査の場合と部分一致検査の場合のいずれかを指すものとする。
論理関係2608として、「AND」か「OR」を受け付ける。
検査順序2708として、「正規表現検査が先か」、「正規表現検査が後か」を受け付ける。
論理関係2608がANDで、検査順序2708が正規表現検査を先に行う場合、前述の(25−1)の動作を行う。
論理関係2608がORで、検査順序2708が正規表現検査を先に行う場合、前述の(25−2)の動作を行う。
論理関係2608がANDで、検査順序2708が正規表現検査を後に行う場合、前述の(25−3)の動作を行う。
論理関係2608がORで、検査順序2708が正規表現検査を後に行う場合、前述の(25−4)の動作を行う。
図28の例に示すように、ノードA、ノードB、ノードCから、ノードDへのパスがあるとする。
ここでは、限定文字列パターンが「化学会議」であるとする。この文字列パターンになるように、パスを限定していく場合について説明する。図28は、その途中段階の例を示している。
前述したように、ビタビアルゴリズムでは、各ノードから左に接続されるノードを1つに限定していくことによって、最適パス選定処理を行う。
ノードA→ノードDのパスでは、すでにノードAから左に向かうパスが1つに限定されている。そのため、ノードA→ノードDとなるパスを選択した場合には、先頭からノードDに至るパスが決定されるので、入力文字列を決定することができる。この場合、入力文字列が「ヒ学会」となり、これが「化学会議」に部分一致するかどうかを判定する。
ノードB→ノードDのパスでは、前述と同様に、対象文字列が「化学会」となり、これが「化学会議」に部分一致するかどうかを判定する。
ノードC→ノードDのパスでは、前述と同様に、対象文字列が「ト学会」となり、これが「化学会議」に部分一致するかどうかを判定する。
ところが、ノードAの左に向かうパスを決定した段階で、ノードAに至る文字列が「ヒ学」であって、「化学会議」とは合致していないことが明らかである。そのため、「ヒ学会」を「化学会議」と比較する処理は不要である。
1.ビタビアルゴリズムの各ノードに、限定文字列パターンに合致しているか/合致していないかを示す1ビットの情報(合致情報)を記憶させる。
(ア)合致しているとき:合致情報をONとする。
(イ)合致していないとき:合致情報をOFFとする。
2.対象ノードから、左側のノードに至るパスを評価する。この評価処理は、図3に例示のパス限定処理モジュール350(図1に例示の情報処理装置等)が行う。このとき、
(ア)左側のノードの合致情報がOFFであれば、限定文字列パターン検査処理を行わない。
(ア−1)さらに、すべての左側のノードの合致情報がOFFであれば、対象ノードの合致情報をOFFとする。
(イ)左側のノードの合致情報がONの場合のみ、限定文字列パターン検査処理を行う。
(イ−1)限定文字列パターン検査処理の結果が合致している場合、対象ノードの合致情報をONとする。
(イ−2)限定文字列パターン検査処理の結果が合致していない場合、対象ノードの合致情報をOFFとする。
(ウ)対象ノードの合致情報がONとなるパスが1つだけのとき、そのパスを選定する。対象ノードの合致情報がONとなるパスが2つ以上のときは、前述したように、正規表現とは異なる方法で最も評価値の高いものを選択すればよい。ここでの評価値とは、例えば、特開2012−118650号公報に示した方法を用いればよい。
(エ)対象ノードの合致情報がOFFとなる場合も、前述したように、正規表現とは異なる方法で最も評価値の高いものを選択すればよい。ここでの評価値とは、例えば、特開2012−118650号公報に示した方法を用いればよい。
前述の実施の形態においては、横書きの文字列を前提として、左が始点で右が終点であるような記述の仕方を行ってきた。しかし、前述の説明は、縦書きや、右から左に記述する文字列でも同様に成り立つ。例えば、縦書きの場合は、「左」を「上」、「右」を「下」とする変換を行えばよい。右から左に記述する文字列の場合は、「左」を「右」、「右」を「左」とする変換を行えばよい。
なお、数式を用いて説明したが、数式には、その数式と同等のものが含まれる。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、又は数式をアルゴリズミックな解法で解くこと等が含まれる。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray Disc(登録商標))、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
110…限定文字列パターン受付モジュール
118…対象文字列
120…対象文字列受付モジュール
130…文字列集合抽出処理モジュール
132…文字列集合領域
134…正規表現領域
136…論理関係
140…文字列集合検査処理モジュール
150…正規表現検査処理モジュール
160…検査結果統合処理モジュール
162…検査結果
310…画像受付モジュール
320…文字列抽出モジュール
330…切出位置抽出モジュール
340…文字候補抽出モジュール
350…パス限定処理モジュール
360…出力モジュール
2200…限定文字列パターン検査処理モジュール
2500…限定文字列パターン検査処理モジュール
2508…正規表現
2518…文字列集合
2600…限定文字列パターン検査処理モジュール
2608…論理関係
2700…限定文字列パターン検査処理モジュール
2708…検査順序
Claims (5)
- 対象とする文字列を受け付ける第1の受付手段と、
正規表現で記載された文字列の型と該型内の文字列の集合である部分を受け付ける第2の受付手段と、
前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた集合内の文字列に合致しているか否かを判定する第1の判定手段と、
前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた集合内の文字列以外の正規表現で記載された型に合致しているか否かを判定する第2の判定手段と、
前記第1の判定手段による判定結果と前記第2の判定手段による判定結果を用いて、前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた文字列の型に合致しているか否かを判定する第3の判定手段と、
複数の文字認識結果の各々の文字をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、
前記ネットワーク生成手段によって生成されたネットワーク内のノードに先頭方向又は最後尾方向のいずれか一方向から接続するリンクに対して、予め定められた文字列パターンに合致するリンクに限定する限定手段と、
前記ノード内で前記第3の判定手段による判定結果を記憶する記憶手段と、
前記限定手段によって限定されたリンクによってつながれたパス内の文字候補列を文字認識結果として出力する出力手段
を具備し、
前記限定手段は、リンクを限定する場合に、前記記憶手段内の判定結果が非合致であれば前記予め定められた文字列パターンと合致しているか否かの処理を行わない
ことを特徴とする情報処理装置。 - 対象とする文字列を受け付ける第1の受付手段と、
正規表現で記載された文字列の型を受け付ける第2の受付手段と、
前記第2の受付手段によって受け付けられた文字列の型から文字列の集合である部分を抽出する抽出手段と、
前記第1の受付手段によって受け付けられた文字列が前記抽出手段によって抽出された文字列に合致しているか否かを判定する第1の判定手段と、
前記第1の受付手段によって受け付けられた文字列が前記抽出手段によって抽出された文字列以外の正規表現で記載された型に合致しているか否かを判定する第2の判定手段と、
前記第1の判定手段による判定結果と前記第2の判定手段による判定結果を用いて、前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた文字列の型に合致しているか否かを判定する第3の判定手段と、
複数の文字認識結果の各々の文字をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、
前記ネットワーク生成手段によって生成されたネットワーク内のノードに先頭方向又は最後尾方向のいずれか一方向から接続するリンクに対して、予め定められた文字列パターンに合致するリンクに限定する限定手段と、
前記ノード内で前記第3の判定手段による判定結果を記憶する記憶手段と、
前記限定手段によって限定されたリンクによってつながれたパス内の文字候補列を文字認識結果として出力する出力手段
を具備し、
前記限定手段は、リンクを限定する場合に、前記記憶手段内の判定結果が非合致であれば前記予め定められた文字列パターンと合致しているか否かの処理を行わない
ことを特徴とする情報処理装置。 - 前記第1の判定手段は、前記第1の受付手段によって受け付けられた文字列の先頭から連続する部分が前記抽出手段によって抽出された文字列に合致しているか否かを判定する
ことを特徴とする請求項1又は2に記載の情報処理装置。 - コンピュータを、
対象とする文字列を受け付ける第1の受付手段と、
正規表現で記載された文字列の型と該型内の文字列の集合である部分を受け付ける第2の受付手段と、
前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた集合内の文字列に合致しているか否かを判定する第1の判定手段と、
前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた集合内の文字列以外の正規表現で記載された型に合致しているか否かを判定する第2の判定手段と、
前記第1の判定手段による判定結果と前記第2の判定手段による判定結果を用いて、前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた文字列の型に合致しているか否かを判定する第3の判定手段と、
複数の文字認識結果の各々の文字をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、
前記ネットワーク生成手段によって生成されたネットワーク内のノードに先頭方向又は最後尾方向のいずれか一方向から接続するリンクに対して、予め定められた文字列パターンに合致するリンクに限定する限定手段と、
前記ノード内で前記第3の判定手段による判定結果を記憶する記憶手段と、
前記限定手段によって限定されたリンクによってつながれたパス内の文字候補列を文字認識結果として出力する出力手段
として機能させ、
前記限定手段は、リンクを限定する場合に、前記記憶手段内の判定結果が非合致であれば前記予め定められた文字列パターンと合致しているか否かの処理を行わない
ことを特徴とする情報処理プログラム。 - コンピュータを、
対象とする文字列を受け付ける第1の受付手段と、
正規表現で記載された文字列の型を受け付ける第2の受付手段と、
前記第2の受付手段によって受け付けられた文字列の型から文字列の集合である部分を抽出する抽出手段と、
前記第1の受付手段によって受け付けられた文字列が前記抽出手段によって抽出された文字列に合致しているか否かを判定する第1の判定手段と、
前記第1の受付手段によって受け付けられた文字列が前記抽出手段によって抽出された文字列以外の正規表現で記載された型に合致しているか否かを判定する第2の判定手段と、
前記第1の判定手段による判定結果と前記第2の判定手段による判定結果を用いて、前記第1の受付手段によって受け付けられた文字列が前記第2の受付手段によって受け付けられた文字列の型に合致しているか否かを判定する第3の判定手段と、
複数の文字認識結果の各々の文字をノードとし、隣接する文字画像のノード間にリンクを構築することによってネットワークを生成するネットワーク生成手段と、
前記ネットワーク生成手段によって生成されたネットワーク内のノードに先頭方向又は最後尾方向のいずれか一方向から接続するリンクに対して、予め定められた文字列パターンに合致するリンクに限定する限定手段と、
前記ノード内で前記第3の判定手段による判定結果を記憶する記憶手段と、
前記限定手段によって限定されたリンクによってつながれたパス内の文字候補列を文字認識結果として出力する出力手段
として機能させ、
前記限定手段は、リンクを限定する場合に、前記記憶手段内の判定結果が非合致であれば前記予め定められた文字列パターンと合致しているか否かの処理を行わない
ことを特徴とする情報処理プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012162259A JP5942661B2 (ja) | 2012-07-23 | 2012-07-23 | 情報処理装置及び情報処理プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012162259A JP5942661B2 (ja) | 2012-07-23 | 2012-07-23 | 情報処理装置及び情報処理プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2014021883A JP2014021883A (ja) | 2014-02-03 |
| JP5942661B2 true JP5942661B2 (ja) | 2016-06-29 |
Family
ID=50196651
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012162259A Active JP5942661B2 (ja) | 2012-07-23 | 2012-07-23 | 情報処理装置及び情報処理プログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5942661B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113919334A (zh) * | 2021-10-25 | 2022-01-11 | 中国科学院上海有机化学研究所 | 从文本中提取化合物名称的方法、电子设备及存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06103419A (ja) * | 1992-09-21 | 1994-04-15 | Hitachi Ltd | 単語辞書編成方式 |
| JP3201207B2 (ja) * | 1995-03-14 | 2001-08-20 | 株式会社日立製作所 | 住所読取装置及び方法 |
| JPH09190507A (ja) * | 1996-01-12 | 1997-07-22 | Hitachi Ltd | 住所読取装置 |
-
2012
- 2012-07-23 JP JP2012162259A patent/JP5942661B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2014021883A (ja) | 2014-02-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11922318B2 (en) | System and method of character recognition using fully convolutional neural networks with attention | |
| US10936862B2 (en) | System and method of character recognition using fully convolutional neural networks | |
| US6950555B2 (en) | Holistic-analytical recognition of handwritten text | |
| JP6003705B2 (ja) | 情報処理装置及び情報処理プログラム | |
| JP5699570B2 (ja) | 画像処理装置及び画像処理プログラム | |
| CN110178139B (zh) | 使用具有注意力机制的全卷积神经网络的字符识别的系统和方法 | |
| CN114846508B (zh) | 图像分析装置、图像分析方法及计算机程序产品 | |
| JP2019212115A (ja) | 検査装置、検査方法、プログラム及び学習装置 | |
| Rane et al. | Chartreader: Automatic parsing of bar-plots | |
| JP5942361B2 (ja) | 画像処理装置及び画像処理プログラム | |
| JP5942661B2 (ja) | 情報処理装置及び情報処理プログラム | |
| Sidnyaev et al. | Formal grammar theory in recognition methods of unknown objects | |
| JP2014109810A (ja) | 情報処理装置及び情報処理プログラム | |
| CN120653965A (zh) | 基于多模态特征提取的公文关键摘要生成方法及系统 | |
| JP5888222B2 (ja) | 情報処理装置及び情報処理プログラム | |
| JP2004171316A (ja) | Ocr装置及び文書検索システム及び文書検索プログラム | |
| JP7021496B2 (ja) | 情報処理装置及びプログラム | |
| US9009026B2 (en) | Information processing apparatus, non-transitory computer readable medium storing information processing program, and information processing method | |
| JP6260350B2 (ja) | 画像処理装置及び画像処理プログラム | |
| JP6007720B2 (ja) | 情報処理装置及び情報処理プログラム | |
| US10515297B2 (en) | Recognition device, recognition method, and computer program product | |
| JP2013246473A (ja) | 画像処理装置及び画像処理プログラム | |
| CN121071557A (zh) | 基于人工智能的标准文件自动分类方法 | |
| JP2012008909A (ja) | 画像処理装置及び画像処理プログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150306 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160129 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160209 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160331 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160426 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160509 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5942661 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |