以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の文字入力支援装置の構成例および処理例を示す図である。
文字入力支援装置10は、ユーザによる文字の入力操作を支援する装置である。文字入力支援装置10は、取得部11および判定部12を有する。
取得部11は、画像1から認識された文字列2(第1の文字列)と、この文字列2に含まれる各文字についての認識の正確さを示す確度と、入力操作に応じて入力された文字列3(第2の文字列)とを取得する。画像1は、例えば、スキャナ等の機器によって書類を読み取ることで得られたものである。また、文字列3は、例えば、この書面を見ながらオペレータの操作によって入力されたものである。
判定部12は、文字列2に含まれる各文字と文字列3に含まれる各文字とを先頭から一対一で比較する。そして、判定部12は、比較した文字同士が異なり、かつ対応する確度が第1の閾値以上である第1の文字を、文字列2から抽出する。
さらに、判定部12は、抽出された第1の文字に隣接し、かつ対応する確度が第2の閾値未満である第2の文字を、文字列2から抽出する。なお、第1の閾値と第2の閾値は、同じ値であってもよい。
そして、判定部12は、第1の文字および第2の文字にそれぞれ対応する文字列3の文字ペアを、誤入力と判定する。
ここで、例として、画像1には文字列“123”が含まれており、文字認識により文字列2として“123”が認識され、入力操作に応じて文字列3として“132”が入力されたとする。また、第1の閾値および第2の閾値を“80”とする。
この場合、まず、取得部11により、文字列2として“123”が取得され、文字列3として“132”が取得される。また、確度として文字列2の先頭から“85”,“90”,“50”が取得される。
判定部12は、文字列2および文字列3の各文字を比較する。すると、文字列3と一致しない文字として“2”および“3”が文字列2から抽出される。抽出された文字“2”に対応する確度は“90”であり、抽出された文字“3”に対応する確度は“50”である。そのため、判定部12は、文字列2から、対応する確度が閾値以上である“2”を第1の文字として抽出する。
次に、判定部12は、第1の文字“2”に隣接し、かつ対応する確度が閾値未満である第2の文字を、文字列2から抽出する。第1の文字“2”に隣接する文字は、“1”および“3”である。また、文字列2において、文字“1”に対応する確度は“85”であり、文字“3”に対応する確度は“50”である。そのため、文字列2から、対応する確度が閾値未満である“3”が第2の文字として抽出される。
判定部12は、文字列2から抽出された第1の文字“2”および第2の文字“3”にそれぞれ対応する文字列3の文字ペアを特定する。文字列3の文字のうち、第1の文字“2”と同じ位置の文字は“3”であり、第2の文字“3”と同じ位置の文字は“2”である。このため、文字ペアとして“32”が特定される。判定部12は、文字列3における文字ペア“32”を、誤入力が発生していると判定する。具体的には、文字ペア“32”は、本来“23”であったものが順序が入れ替わって入力されたものと判定される。
ここで、店舗の窓口のオペレータのようにキー入力操作に慣れているオペレータの誤入力としては、入力順が入れ替わってしまう誤入力の発生確率が高い。入力順が間違っている場合、入力された文字列のうち隣接する2つの文字のペアについて、入力が間違っていることになる。
上記処理により抽出された第2の文字“3”の位置については、認識の確度が所定の閾値未満であることから、誤入力されたのか、あるいは文字認識において誤認識されたのか、あるいは正しく入力されたのかを判定することが難しい。しかしながら、隣接する第1の文字“2”の位置については、認識の確度が所定の閾値以上で、かつ文字列2,3の間で文字が不一致であることから、誤入力された可能性が高い。前述のように、入力順が入れ替わるという誤入力の発生確率が高いことを鑑みると、文字列3においては、誤入力の確率が高い第1の文字“2”に対応する文字“3”と、第1の文字“2”に隣接し、かつ正確な判定が不可能な状態にある第2の文字“3”に対応する文字“2”とが、入れ替わって入力された可能性が高いと考えることができる。
これに対して、文字列2において、第1の文字“2”に隣接する文字“1”については、認識の確度が所定の閾値以上であり、かつ文字の比較結果が一致している。このことから、文字列2の文字“1”に対応する文字列3の文字“1”については、正しく入力された可能性が高いと考えられる。
以上の理由から、判定部12は、文字列3の文字のうち、第1の文字“2”および第2の文字“3”に対応する文字ペア“32”を、誤入力と判定する。これにより、文字入力支援装置10は、単に文字列2,3の各文字の一致判定に基づくのではなく、統計的な誤入力の発生状況を考慮して、誤入力を判定することが可能になる。従って、オペレータの利便性を高めることができる。
例えば、オペレータは、上記の第2の文字が文字列3における対応する文字と一致していたとしても、第1の文字に対応する文字列3の文字だけでなく、第2の文字に対応する文字列3の文字についても誤入力であると判断できる。従って、オペレータは、文字列2,3の各文字の一致判定だけでは認識できない誤入力を、即座に認識できるようになる。
また、前述のように、上記の第2の文字“3”については、認識の確度が所定の閾値未満であることから、誤入力等の正確な判定が困難である。しかしながら、このような文字についても、上記処理により、隣接する文字についての一致判定結果および認識の確度を用いた新たな判定基準によって、誤入力が発生しているかを判定することが可能となる。
そして、判定部12は、文字列3において、第2の文字“2”に対応する“3”および、第3の文字“3”に対応する“2”のペアが誤入力の候補と判定する。
ここで、書面から認識された文字列と、オペレータによって書面を見ながら入力された文字列とを比較し、一致しない文字がある場合に誤入力の発生を警告する入力支援では、単に文字同士が一致しない位置をオペレータに通知できるのみであった。
上記の処理によれば、第2の文字および第3の文字に対応する第2の文字列のペアを誤入力の候補と判定できる。よって、入力操作するオペレータの利便性が向上する。
[第2の実施の形態]
次に、第1の実施の形態の文字入力支援装置を、顧客が記入した伝票を見ながらオペレータが文字を入力する伝票入力システムに適用した例について説明する。伝票入力システムは、第1の実施の形態の文字入力支援装置と同様に、誤入力の候補を判定し、誤入力の候補と判定されたペアについて、修正候補をオペレータに提示する。
図2は、第2の実施の形態の伝票入力システムの構成例を示す図である。伝票入力システム5は、複数のスキャナ20、複数の伝票入力装置100および認識率DBサーバ200を有する。スキャナ20は、各伝票入力装置100に1台ずつ接続されている。また、認識率DBサーバ200は、ネットワーク30を介して各伝票入力装置100と接続されている。
スキャナ20は、顧客が手書きで記入した伝票を光学的に読み取り画像データを生成する。スキャナ20は、OCR(Optical Character Reader)機能を有する。すなわち、スキャナ20は、読み取った画像をあらかじめ記憶されたパターンと照合することで、画像に含まれる文字を認識する。以下、このような文字認識を「OCR認識」と記載し、OCR認識された文字による文字列を認識文字列と記載する。スキャナ20は、生成した画像データを、OCR認識された文字のデータを含む文書データに変換する。文書データには、例えば、入力項目毎に、認識文字列の文字コードが含まれる。また、スキャナ20は、変換された文書データを伝票入力装置100に送信する。
認識率DBサーバ200は、OCR認識が可能な文字の種別毎の認識率に関する情報を格納するDBサーバである。認識率とは、OCR認識による文字認識の精度を示す数値である。本実施の形態において、認識率は、OCR認識された文字それぞれについての認識の確かさを示す確度を判定するためのパラメータとして用いられる。
認識率DBサーバ200は、文字の種別毎の認識率を算出するための情報(例えば、OCR認識した回数、OCR認識の正解数など)を、各伝票入力装置100から定期的に(例えば、営業終了時)集計する。認識率DBサーバ200は、認識率を算出するための情報の集計結果に基づいて、文字の種別毎に認識率を算出する。認識率DBサーバ200は、算出された認識率を示す情報を伝票入力装置100へ定期的(例えば、毎営業開始時)に送信する。
なお、認識率DBサーバ200は、バックアップのためのDBサーバを含め、複数備えられてもよい。この場合、各文字の種別の認識率に関する情報が一致するように制御する。
伝票入力装置100は、オペレータが伝票に記入された文字を入力するためのコンピュータである。また、伝票入力装置100は、オペレータによる文字の入力作業を支援する機能を備える。
伝票入力装置100は、スキャナ20から受信した文書データに基づいて、オペレータが伝票に記入された文字を入力するための入力画面を生成し、生成した入力画面をディスプレイに表示する。伝票入力装置100は、オペレータにより入力画面に入力された文字列を入力文字データとして取得する。
また、伝票入力装置100は、OCR認識が可能な文字の種別毎に、認識率を示す情報を認識率DBサーバ200から受信する。また、伝票入力装置100は、OCR認識による認識文字列の各文字に、受信した認識率を対応付けることで認識文字データを生成する。
さらに、伝票入力装置100は、取得された入力文字データと、生成された認識文字データとを入力項目毎に比較して、オペレータが誤入力した可能性のある入力項目を特定する。伝票入力装置100は、特定された入力項目について、例えば、色を変更して表示させる。この場合、伝票入力装置100は、特定された入力項目に入力されている文字列を、フォントの種別や大きさを変更することにより強調してもよい。
伝票入力装置100は、誤入力された可能性のある入力項目について、取得された入力文字データと、生成された認識文字データとに基づいて、修正候補を判定する。伝票入力装置100は、判定された修正候補をディスプレイに提示する。その後、オペレータが修正候補を選択することで、誤入力された可能性のある入力項目に対応する入力文字データが修正される。
伝票入力装置100は、認識率を算出するための情報を文字の種別毎に集計する。また、伝票入力装置100は、集計した情報を定期的(例えば、毎営業終了時)に認識率DBサーバ200に送信する。
なお、OCR認識機能は、スキャナ20ではなく、伝票入力装置100が有してもよい。この場合、スキャナ20は、顧客が記入した伝票の画像データを伝票入力装置100に送信する。そして、伝票入力装置100は、受信した画像データに基づいて、認識文字データを生成する。
図3は、伝票入力装置のハードウェア構成例を示す図である。伝票入力装置100は、プロセッサ101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、画像信号処理部104、入力信号処理部105、ディスクドライブ106、通信インタフェース107および機器接続部108を有する。上記ユニットは、伝票入力装置100内でバス109に接続されている。認識率DBサーバ200も、伝票入力装置100と同様のハードウェアを用いて実現できる。
プロセッサ101は、プログラムの命令を実行する演算器を含むプロセッサである。プロセッサ101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードしてプログラムを実行する。なお、プロセッサ101は複数のプロセッサコアを備えてもよい。また、伝票入力装置100は、複数のプロセッサを備えてもよい。また、伝票入力装置100は、複数のプロセッサまたは複数のプロセッサコアを用いて並列処理を行ってもよい。また、2以上のプロセッサの集合、FPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの専用回路、2以上の専用回路の集合、プロセッサと専用回路の組み合わせなどを「プロセッサ」と呼んでもよい。
RAM102は、プロセッサ101が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、伝票入力装置100は、RAM以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
HDD103は、OS(Operating System)やファームウェアやアプリケーションソフトウェア等のソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、伝票入力装置100は、フラッシュメモリ等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、伝票入力装置100に接続されたディスプレイ21に画像を出力する。ディスプレイ21としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ等を用いることができる。
入力信号処理部105は、伝票入力装置100に接続された入力デバイス22から入力信号を取得し、プロセッサ101に通知する。入力デバイス22としては、マウスやタッチパネル等のポインティングデバイス、キーボードやテンキー等を用いることができる。
ディスクドライブ106は、記録媒体23に記録されたプログラムやデータを読み取る駆動装置である。記録媒体23として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDD等の磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)等の光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ106は、プロセッサ101からの命令に従って、記録媒体23から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク30等のネットワークを介して他の情報処理装置(例えば、認識率DBサーバ200等)と通信を行う。
機器接続部108は、伝票入力装置100に周辺機器(例えば、スキャナ20)を接続するための通信インタフェースである。
なお、伝票入力装置100はディスクドライブ106を備えていなくてもよく、専ら他の情報処理装置からアクセスされる場合には、画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ21や入力デバイス22は、伝票入力装置100の筐体と一体に形成されていてもよい。
なお、認識率DBサーバ200も、伝票入力装置100と同様のハードウェアを用いて実現できる。
図4は、入力画面の例を示す図である。入力画面21aは、伝票入力装置100の処理によってディスプレイ21に表示される入力画面である。入力画面21aは、複数の入力項目およびキー割当表示21bを有する。入力項目は、オペレータが入力すべき項目である。例えば、入力画面21aには、銀行名、支店名、科目(口座番号)、金額、受取人および依頼人の入力項目がある。各入力項目は入力欄および入力イメージを有する。
入力画面21aには、入力項目毎に入力欄が設けられている。入力欄は、オペレータによって入力された文字が表示される領域である。例えば、オペレータが入力項目を選択すると、選択された入力項目の入力欄にカーソルが表示される。この状態でオペレータが文字を入力すると、入力された文字が入力欄に表示される。図4の入力画面21aにおいては、金額の入力欄にカーソルが表示されており、この入力欄にユーザが文字を入力可能になっている。
各入力欄の上側には、スキャナ20によってOCR認識された文字列が表示される。この文字列の表示は、例えば、OCR認識された文字列と入力した文字列とをオペレータが対比できるようにするためのものである。
キー割当表示21bは、テンキーに割当てられる入力文字が表示される。テンキーに割当てられる文字は、例えば、カーソルが表示されている入力欄により変わる。
図5は、修正候補表示の例を示す図である。修正画面21cは、誤入力された可能性のある入力項目について、修正候補を表示する画面である。修正画面21cは、例えば、図4の入力画面21aの上に重ねて表示される。後述するように、修正画面21cには、順番が入れ替わって入力された可能性のある文字のペアが表示される。修正画面21cは、誤入力項目21c−1および操作項目21c−2を有する。
誤入力項目21c−1には、誤入力された可能性のある入力項目が表示される。誤入力項目21c−1は、入力欄を有する。入力欄には、誤入力された可能性のある文字列が表示される。入力欄は、操作項目21c−2から再入力が選択されるまでは、入力不可能な状態である。また、入力欄の上側には、スキャナ20によってOCR認識された文字列が表示される。
操作項目21c−2は、「候補#1」、「候補#2」、「再入力」および「次へ」の項目を有する。「候補#1」および「候補#2」の項目には、誤入力項目21c−1の入力欄における、修正候補が表示される。修正候補は、1つの入力項目について、1つまたは2つである。修正候補が1つの場合は「候補#1」のみが表示され、修正候補が2つの場合は「候補#1」および「候補#2」が表示される。
図5の例では、「候補#1」には修正候補として文字列“10”が表示されている。これは、入力された文字列の上から6桁目および7桁目の文字列“01”を、前後を入れ替えて文字列“10”に修正するための候補を示す。また、「候補#2」には修正候補として文字列“51”が表示されている。これは、入力された文字列の上から7桁目および8桁目の文字列“15”を、前後を入れ替えて文字列“51”に修正するための候補を示す。
「再入力」の項目は、誤入力項目21c−1の文字列を先頭の文字から再入力することを示す。「再入力」が選択されることで、誤入力項目21c−1の入力欄が入力可能な状態になる。
「次へ」の項目は、誤入力項目21c−1における文字の修正を確定させ、次の誤入力項目を表示させることを示す。
各選択項目の左端に、対応するキーが表示される。例えば、修正画面21cでは、オペレータがキー“1”を押下すると、「候補#1」が修正候補として選択され、オペレータがキー“2”を押下すると、「候補#2」が修正候補として選択される。同様に、オペレータがキー“0”を押下すると、誤入力項目21c−1の入力欄において文字列の先頭から再入力することが選択される。さらに、オペレータがキー“+”を押下すると、次の誤入力項目が表示される。
「候補#1」または「候補#2」のいずれかがオペレータにより選択されると、伝票入力装置100は、選択された修正候補に対応する誤入力項目21c−1の入力欄の文字を、選択された修正候補に修正する。例えば、図5において、キー“1”の入力により「候補#1」が選択されると、誤入力項目21c−1の入力欄の文字列“1235001520”は、上から6桁目と7桁目とが入れ替えられて、“1235010520”に修正される。
修正画面21cへの修正は、誤入力項目21c−1の入力欄に対応する入力画面21aの入力項目の入力欄にも反映される。これにより、オペレータは、誤入力項目21c−1の入力欄の文字列について、修正候補を選択することで、誤入力項目21c−1の入力欄の文字列全てを再入力せずに修正できる。
また、修正箇所が修正候補の範囲に制限されるので、文字列全てを再入力する場合と比較して修正入力の誤りが発生しにくくなる。また、文字列全ての再入力が可能な状態から、入力の入れ替わりが発生した箇所のみを選択して修正する場合と比較して、修正操作の回数が減り、修正に要する時間が短縮される。
また、表示された修正候補がいずれも不適切と判断した場合、オペレータは、「再入力」を選択することで、誤入力項目21c−1の入力欄において文字列の先頭から再入力できる。また、オペレータは、誤入力項目21c−1の入力欄の文字列が誤入力でないと判断した場合、「次へ」を選択することで、誤入力項目21c−1の入力欄の文字列を修正しないようにする。入力欄の文字列が誤入力でない場合には、例えば、OCR認識に誤りがあった場合が挙げられる。
なお、図5では、入力画面21aとは別ウィンドウとして修正画面21cが表示される例を示した。ただし、これに限らず、例えば、入力画面21aにおいて、カーソルが表示されている入力欄の下に、修正画面21cにおける操作項目21c−2が表示されてもよい。
また、伝票入力装置100は、操作項目21c−2の各項目をキー入力により選択できるようにした。これにより、例えば、オペレータは、入力項目の入力および修正を、伝票の文字を入力する際と同様にキー入力により行えるため、修正の作業効率が上がる。
図6は、伝票入力システムの機能例を示すブロック図である。認識率DBサーバ200は、認識率情報記憶部210および認識率判定部220を有する。
認識率情報記憶部210は、OCR認識可能な文字の種別毎に、認識率に関連する情報を対応付けた認識率テーブルを記憶する。認識率に関連する情報には、文字の種別毎の認識率や、その認識率を算出するための情報が含まれる。
認識率判定部220は、OCR認識可能な文字の種別毎に、認識率に関連する情報を各伝票入力装置100から受信し、認識率判定部220は、受信した認識率に関連する情報を、OCR認識可能な文字の種別毎に集計する。認識率判定部220は、集計した認識率に関連する情報に基づいて、OCR認識可能な文字の種別毎に認識率を算出する。そして、認識率判定部220は、集計された認識率に関連する情報および算出された認識率によって認識率テーブルを更新する。認識率判定部220は、更新された認識率テーブルの内容を各伝票入力装置100に配信する。
伝票入力装置100は、認識文字データ記憶部110、入力文字データ記憶部120、認識率情報入出力部130、認識文字データ取得部140、入力文字データ取得部150および修正候補判定部160を有する。
認識文字データ記憶部110は、OCR認識が可能な文字の種別毎に認識率を対応付けた認識率テーブルを記憶する。また、認識文字データ記憶部110は、認識文字列の文字毎に認識率を対応付けた認識文字データを記憶する。
入力文字データ記憶部120は、入力画面21aの各入力欄からオペレータにより入力された入力文字データを記憶する。
認識率情報入出力部130は、OCR認識が可能な文字の種別毎の認識率を示す情報を、定期的(例えば、毎営業開始時)に認識率DBサーバ200から受信し、認識率テーブルを更新する。また、認識率情報入出力部130は、OCR認識が可能な文字毎に、認識率を算出するための情報を集計し、集計した情報を定期的(例えば、毎営業終了時)に認識率DBサーバ200へ送信する。
認識文字データ取得部140は、スキャナ20から文書データを受信する。文書データには、OCR認識された文字列(認識文字列)の文字コードが含まれる。文書データに含まれる文字列の文字コードには、入力画面21aにおける、いずれかの入力項目を示す情報が対応付けられている。認識文字データ取得部140は、受信した文書データに基づいて入力画面21aを生成する。認識文字データ取得部140は、生成した入力画面21aをディスプレイ21に表示する。
また、認識文字データ取得部140は、更新された認識率テーブルに格納された認識率を、認識文字列に含まれる各文字に対応付けることで、認識文字データを生成する。認識文字データ取得部140は、生成した認識文字データを認識文字データ記憶部110に記憶する。
入力文字データ取得部150は、入力画面21aにおける各入力欄にオペレータにより入力された文字列の文字コードを、入力文字データとして取得する。入力文字データ取得部150は、取得した入力文字データを入力文字データ記憶部120に記憶する。また、入力文字データ取得部150は、オペレータが選択した修正候補に基づいて、入力画面21aの入力欄の表示を更新する。そして、入力文字データ取得部150は、更新された入力欄に対応する入力文字データを更新する。
修正候補判定部160は、入力画面21aの入力項目毎に、対応する入力文字データおよび認識文字データを比較して、オペレータが誤入力した可能性がある入力項目を特定する。なお、修正候補判定部160は、入力画面21aについて、誤入力された可能性があると特定された入力項目を強調して表示してもよい。強調して表示させる方法は、例えば、入力欄の色を変更するなどがある。
修正候補判定部160は、誤入力された可能性のある入力項目について、対応する入力文字データおよび認識文字データに基づいて、修正候補の有無を判定する。
修正候補判定部160は、誤入力された可能性があると特定された入力項目を修正画面21cに表示する。また、修正候補判定部160は、修正候補がある場合、修正候補を修正画面21cに表示する。さらに、修正候補判定部160は、誤入力された可能性のある入力項目について、修正画面21cを通じてオペレータの修正を受け付ける。
次に、図7〜9を用いて、伝票入力システム5が用いるテーブルについて説明する。
図7は、認識率テーブルの例を示す図である。認識率テーブル111は、OCR認識が可能な文字毎に認識率を対応付けた情報が格納されたテーブルである。認識率テーブル111は、認識文字データ記憶部110に記憶される。認識率テーブル111は、認識率DBサーバ200から受信した認識率に基づいて、毎営業開始時に更新される。
認識率テーブル111は、文字および認識率の項目を有する。文字の項目には、OCR認識が可能な文字の種別を示す情報が設定される。認識率の項目には、文字の種別の認識率を示す情報が設定される。
図8は、認証文字データおよび入力文字データの例を示す図である。認識文字データ112は、認識文字列に含まれる文字毎に認識率を対応付けたデータである。認識文字データ112は、認識文字データ記憶部110に記憶される。
認識文字データ112は、入力項目、認識率および文字の項目を有する。入力項目の項目には、入力画面21aにおいて、オペレータに入力される入力項目を識別するための情報が設定される。認識率の項目には、OCR認識された文字に対応する認識率を示す情報が設定される。認識率は、修正候補判定部160が修正候補を判定する際に用いられる。文字の項目には、スキャナ20によりOCR認識された文字が設定される。以下、左端に位置する文字から右端に位置する文字までを順に並べたものを文字列と記載する。例えば、認識文字データ112の文字列は、“123”となる。
入力文字データ121は、入力画面21aの各入力欄からオペレータにより入力された文字列である。入力文字データ121は、入力画面21aの入力欄毎に入力文字データ記憶部120に記憶される。入力文字データ121は、文字の項目を有する。文字の項目には、オペレータにより入力された文字が設定される。以下、右端に位置する文字から左端に位置する文字までを順に並べたものを文字列と記載する。例えば、入力文字データ121の文字列は、“133”となる。
入力項目の項目が一致する認識文字データ112および入力文字データ121の文字列が、修正候補判定部160により比較される。不一致である文字が1以上存在する場合、入力文字データ121に対応する入力項目は、誤入力された可能性があると修正候補判定部160に判定される。
例えば、図8において、認識文字データ112と入力文字データ121は、認識文字データ112の左から2つめの文字が“2”であるのに対して、入力文字データ121の左から2つめの文字が“3”であるため異なる。そのため、入力文字データ121に対応する入力項目“金額”は、誤入力された可能性があると修正候補判定部160に判定される。
図9は、認識率算出テーブルの例を示す図である。認識率算出テーブル211は、OCR認識が可能な文字の種別毎に、認識率に関連する情報を対応付けた情報を格納するテーブルである。認識率算出テーブル211は、認識率DBサーバ200の認識率情報記憶部210に記憶されている。認識率算出テーブル211は、毎営業終了時に認識率DBサーバ200により更新される。
認識率算出テーブル211は、文字、認識回数、正解数および認識率の項目を有する。
文字の項目には、OCR認識が可能な文字の種別が設定される。
認識回数の項目には、対応する種別の文字について各スキャナ20によりOCR認識された回数が設定される。
正解数の項目には、認識回数のうち正解だったOCR認識の回数が設定される。具体的には、認識率DBサーバ200は、OCR認識した回数に対する、OCR認識の正解数の割合により認識率を算出する。正解か否かは、例えば、オペレータが入力を確定させたときに、入力項目が一致する認識文字データおよび確定された入力文字データの文字列を比較し、一致した文字が、OCR認識が正解であると判定される。
次に、図10〜12を用いて、伝票入力装置100が修正候補を判定する処理について説明する。図10〜12に用いられる。認識文字データ112a〜112cおよび入力文字データ121a〜121cにおいて、入力項目の記載を省略する。
図10は、1つの修正候補が判定される例を示す図である。
店舗の窓口のオペレータのようにキー入力操作に慣れているオペレータの誤入力として、入力順が入れ替わってしまう間違いが多いことが統計的に明らかになっている。これは、キー入力の速度が速すぎるために生じる誤入力と考えられている。
入力順が間違っている場合、入力された文字列のうち隣接する2つの文字のペアについて、入力が間違っていることになる。そこで、修正候補判定部160は、このような文字ペアを入力文字列から探索する。
図10において、認識文字データ112aの文字列は“1235146”とし、入力文字データ121aの文字列は“1235164”とする。すなわち、OCR認識により文字列“1235146”が認識され、オペレータにより文字列“1235164”が入力されたものとする。また、認識文字データ112aの文字列の各文字に対応する認識率は、上位から“95”、“90”、“85”、“85”、“95”、“90”、“60”とする。
この場合、まず、修正候補判定部160は、認識文字データ112aおよび入力文字データ121aの文字列を比較する。この場合、認識文字データ112aにおいて、下位から2桁目の“4”および最下位の“6”が、入力文字データ121aと不一致である。そのため、修正候補判定部160は、入力文字データ121aに対応する入力項目に誤入力された可能性があると判定する。
次に、修正候補判定部160は、認識文字データ112aについて、不一致と判定された文字から、対応する認識率が閾値以上である文字を選択する。図10において、下位から2桁目の“4”に対応する認識率が“90”であり、最下位の“6”に対応する認識率が“60”である。このため、閾値が“90”とすると、修正候補判定部160は、対応する認識率が“90”以上である“4”を選択する。選択された“4”については認識の確かさが一定レベル以上であることから、下位から2桁目については誤入力された可能性が高いと考えられる。
次に、修正候補判定部160は、認識文字データ112aについて、選択された文字に隣接する文字に対応する認識率が閾値未満である文字を選択する。図10において、下位から2桁目の“4”に隣接する文字は、下位から3桁目の“1”および最下位の“6”である。また、“1”に対応する認識率が“95”であり、“6”に対応する認識率が“60”である。このため、修正候補判定部160は、対応する認識率が“90”未満である“6”のみを選択する。
選択された“6”の位置については、認識の確かさが一定レベルに達していないことから、オペレータによって誤入力されたのか、あるいはOCR認識において誤認識されたのか、あるいは正しく入力されたのかを判定することが難しい。しかしながら、隣接する位置、すなわち下位から2桁目については誤入力された可能性が高い。前述のように、入力順が入れ替わるという誤入力の発生確率が高いことを鑑みると、誤入力の確率が高い下位から2桁目と、これに隣接し、かつ正確な判定が不可能な状態にある最下位とが、入れ替わって入力された可能性が高いと考えることができる。
これに対して、下位から3桁目については、認識の確かさが一定レベル以上であり、かつ文字の比較結果が一致していることから、正しく入力された可能性が高いと考えられる。
以上の理由から、修正候補判定部160は、認識文字データ112aの文字列から特定された下位から2桁目および最下位の文字のペアに対応する入力文字データ121aの文字“6”および“4”を、入力順が入れ替わっている文字のペアと特定する。修正候補判定部160は、特定された文字のペアの位置を入れ替えた“46”を修正候補と判定する。修正候補と判定された“46”は、修正画面21cに「候補#1」として表示される。
これにより、オペレータは、認識文字データ112aに対応する文字列“1235146”を先頭から再入力せずに、1つのキーの打鍵により修正候補を選択することで誤入力を修正できるため、誤入力の修正を効率化できる。
なお、上記手順によって入力順が入れ替わっている文字のペアを判定する処理では、認識の確かさが一定レベルに達していない文字の位置について、誤入力が生じていることを新たに判断できるという効果も得られる。
なお、伝票入力装置100において、認識率が高い文字を判定するための閾値と、認識率が低い文字を判定するための閾値とを同じ値(90%)を用いるが、これらの閾値には別の値が用いられてもよい。
図11は、2つの修正候補が判定される例を示す図である。図11において、認識文字データ112bの文字列は“1235046”とし、入力文字データ121bの文字列は“1235064”とする。また、認識文字データ112bの文字列に対応する認識率は、上位から“95”、“90”、“85”、“85”、“80”、“90”、“60”とする。
この場合、まず、修正候補判定部160は、認識文字データ112bおよび入力文字データ121bの各文字を比較し、認識文字データ112bについて、不一致と判定された文字から、対応する認識率が閾値以上である文字を選択する。この場合、図10の説明と同様に、閾値が“90”とすると、修正候補判定部160は、対応する認識率が“90”以上である“4”を選択する。
次に、修正候補判定部160は、認識文字データ112bについて、選択された文字に隣接する文字に対応する認識率が閾値未満である文字を選択する。図11において、“4”に隣接する文字は、“0”および“6”である。また、“0”に対応する認識率が“80”であり、“6”に対応する認識率が“60”である。このため、修正候補判定部160は、対応する認識率が“90”未満である“0”および“6”を選択する。すなわち、この場合には、下位から2桁目と3桁目、および下位から1桁目と2桁目のそれぞれについて、入力順の入れ替わりが発生している可能性があると判定される。
次に、修正候補判定部160は、選択された認識率が閾値以上である文字“4”、および、選択された認識率が閾値未満である文字“0”の文字のペアとして特定する。同様に、修正候補判定部160は、選択された認識率が閾値以上である文字“4”および、選択された認識率が閾値未満である文字“6”の文字のペアとして特定する。そして、修正候補判定部160は、特定されたペアに対応する入力文字データ121bの文字“0”および“6”のペアと“6”および“4”のペアとを、誤入力のあった文字のペアと特定する。
そして、修正候補判定部160は、特定されたペアの位置を入れ替えた“60”および“46”を修正候補と判定する。修正候補と判定された“60”は、修正画面21cに候補#1として表示され、修正候補と判定された“46”は、修正画面21cに候補#2として表示される。
このように、認識率が高い文字に隣接する文字の認識率がいずれも閾値未満の場合、修正候補が2つになる。この場合、オペレータは、候補#1または候補#2のいずれかを選択することができる。図11の説明においては、オペレータは、候補#2を選択することで、誤入力を修正することができる。また、このように修正候補が2つの場合でも、オペレータは1つのキーの打鍵により修正候補を選択することで誤入力を修正することができる。
図12は、修正候補が判定されない例を示す図である。図12において、認識文字データ112cの文字列は“1235146”とし、入力文字データ121cの文字列は“1035164”とする。また、認識文字データ112cの文字列に対応する認識率は、左から“95”、“90”、“85”、“85”、“95”、“90”、“60”とする。
この場合、まず、修正候補判定部160は、認識文字データ112cおよび入力文字データ121cの各文字を比較し、認識文字データ112cについて、不一致と判定された文字から、対応する認識率が閾値以上である文字を選択する。この場合、閾値が“90”とすると、修正候補判定部160は、対応する認識率が“90”以上である“0”および“4”を選択する。
ここで、上記手順により、認識率が閾値以上で、かつ比較結果により不一致と判定された文字が複数検知され、検知されたそれぞれの文字について入力順が入れ替わっていると考えられる文字ペアが見つかった場合には、検知されたそれぞれの文字について修正画面21cを用いた修正を行う方法が考えられる。しかしながら、前述のようにオペレータのキー入力は速いため、この方法により修正を行うより、誤入力された可能性のある文字列全体を先頭から再入力する方が早くなる可能性が高い。
そこで、修正候補判定部160は、誤入力された可能性があると判定された文字において、対応する認識率が閾値以上である文字が2つ以上である場合、修正候補を提示しない。この場合、オペレータは、認識文字データ112cの文字列を先頭から再入力する。これにより、誤入力と判定された入力項目の修正に要する時間を短縮し、修正作業を効率化できる。
次に、図13〜15を用いて、伝票に記載の文字がオペレータにより入力される際の処理をフローチャートを用いて説明する。
図13は、文字入力を支援する処理の例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
(ステップS11)オペレータが伝票をスキャナ20にセットすると、スキャナ20は、伝票をOCR認識し、文書データを生成する。スキャナ20は、生成した文書データを伝票入力装置100に送信する。
(ステップS12)認識文字データ取得部140は、スキャナ20から文書データを受信する。認識文字データ取得部140は、受信した文書データに基づいて入力画面21aを生成する。例えば、認識文字データ取得部140は、文書データから、入力画面21aのひな形に各入力項目に対応する文字コードを選択し、対応する文字を表示させることで、入力画面21aを生成する。入力画面21aのひな形は、例えば、あらかじめ認識文字データ記憶部110などの記憶領域に記憶されている。そして、認識文字データ取得部140は、生成した入力画面21aをディスプレイ21に表示する。
(ステップS13)認識文字データ取得部140は、認識率テーブル111に格納された認識率を、受信した文書データに含まれる認識文字列に含まれる各文字に対応付けることで、認識文字データ112を生成する。具体的には、認識文字データ取得部140は、受信した文書データに含まれる認識文字列に含まれる文字毎に、その文字の種別に対応する認識率を認識率テーブル111から検索し、検索された認識率をその文字に対応付ける。
(ステップS14)オペレータは、伝票に記載された文字を、入力画面21a上の対応する入力欄に入力する。入力文字データ取得部150は、入力画面21aにおける入力欄毎に、オペレータにより入力された文字列を入力文字データ121として取得する。そして、処理をステップS21へ進める。
図14は、文字入力を支援する処理の例を示すフローチャート(続き)である。以下、図14に示す処理をステップ番号に沿って説明する。
(ステップS21)修正候補判定部160は、入力項目を1つ選択する。
(ステップS22)修正候補判定部160は、選択された入力項目に対応する入力文字データ121を入力文字データ記憶部120から取得する。修正候補判定部160は、選択された入力項に対応する認識文字データ112を認識文字データ記憶部110から取得する。修正候補判定部160は、取得した入力文字データ121および認識文字データ112の文字列を比較する。
(ステップS23)修正候補判定部160は、入力文字データ121および認識文字データ112の文字列の比較結果が不一致か判定する。比較結果が不一致の場合、処理をステップS24へ進める。比較結果が一致の場合、処理をステップS29へ進める。
(ステップS24)修正候補判定部160は、入力画面21aについて、選択された入力項目を強調して表示する。
(ステップS25)修正候補判定部160は、入力文字データ121の対応する文字と不一致であった認識文字データ112の各文字から、認識率が閾値以上である文字を取得する。
(ステップS26)修正候補判定部160は、ステップS25で取得された文字数が1であるか判定する。取得された文字数が1である場合、処理をステップS27へ進める。取得された文字数が1以外である場合、処理をステップS28へ進める。
(ステップS27)修正候補判定部160は、ステップS25で取得された、認識率が閾値以上の文字について、修正候補の有無を判定する。詳細は、図15で説明する。
(ステップS28)修正候補判定部160は、修正画面21cを表示する。このとき、修正画面21cの操作項目21c−2には、「候補#1」、「候補#2」および「再入力」が表示されない。また、表示された修正画面21cにおいては、誤入力項目21c−1の入力欄の先頭位置にカーソルが表示された状態になっている。この状態から、オペレータは、キー操作を行うことで、誤入力項目21c−1の入力欄に先頭から文字列を再入力する。そして、オペレータは、修正画面21cの操作項目21c−2から「次へ」の項目を選択(キー“+”を押下)し、次の誤入力項目を表示させる。
(ステップS29)修正候補判定部160は、入力画面21aにおける全入力項目を選択済みか判定する。全入力項目を選択済みの場合、処理を終了する。未選択の入力項目が存在する場合、処理をステップS21へ進める。
なお、図14の処理は、入力画面21aの全入力項目に入力された後に行われるが、他の例として、オペレータにより1つの入力欄に入力されるたびに(例えば、他の入力欄にカーソルが移動したときに)、ステップS22〜S28の処理を実行してもよい。
図15は、修正候補を判定する処理の例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
(ステップS31)修正候補判定部160は、図14のステップS25で取得した文字と隣接する文字から、認識率が閾値(90%)未満の文字を取得する。
(ステップS32)修正候補判定部160は、ステップS31で取得された文字数が1か判定する。ステップS31で取得された文字数が1である場合、処理をステップS33へ進める。ステップS31で取得された文字数が1以外である場合、処理をステップS34へ進める。
(ステップS33)修正候補判定部160は、図10に示した手順により、1つの修正候補を取得する。
(ステップS34)修正候補判定部160は、ステップS31で取得された文字数が2か判定する。ステップS31で取得された文字数が2である場合、処理をステップS35へ進める。ステップS31で取得された文字数が2以外(すなわち0)である場合、処理をステップS38へ進める。
(ステップS35)修正候補判定部160は、図11に示した手順により、2つの修正候補を取得する。
(ステップS36)修正候補判定部160は、修正画面21cに修正候補を表示する。このとき、修正候補判定部160は、ステップS33を実行した場合、修正画面21cの操作項目21c−2には、「候補#1」を表示させるが「候補#2」を表示させない。また、修正候補判定部160は、ステップS35を実行した場合、修正画面21cの操作項目21c−2には、「候補#1」および「候補#2」を表示させる。
そして、修正候補判定部160は、オペレータにより操作項目21c−2についての選択入力が行われるのを待つ。「候補#1」または「候補#2」が選択された(キー“1”またはキー“2”が押下された)場合、処理をステップS37へ進める。「再入力」が選択された(キー“0”が押下された)場合、処理をステップS38へ進める。
(ステップS37)修正候補判定部160は、オペレータが選択した修正候補に基づいて、誤入力候補の入力欄を修正する。そして、修正候補判定部160は、誤入力項目21c−1の入力欄への修正を、入力画面21aにおいて、対応する入力項目の入力欄にも反映させる。そして、オペレータは、修正画面21cの操作項目21c−2から「次へ」の項目を選択(キー“+”を押下)し、次の誤入力項目を表示させる。これにより、入力欄に反映された修正が確定される。
(ステップS38)オペレータは、誤入力項目21c−1の入力欄に先頭から文字列を再入力する。そして、オペレータは、修正画面21cの操作項目21c−2から「次へ」の項目を選択(キー“+”を押下)し、次の誤入力項目を表示させる。これにより、入力欄に反映された修正が確定される。
第2の実施の形態の伝票入力装置100によれば、修正候補判定部160は、認識文字データ112および入力文字データ121の文字列を比較する。次に、認識文字データ112において、不一致である文字列から認識率が閾値以上である文字を取得し、取得した文字に隣接する文字から認識率が閾値未満である文字を取得する。そして、修正候補判定部160は、取得された閾値以上である文字と、その文字に隣接し認識率が閾値未満である文字とのペアに対応する入力文字データ121の文字のペアを取得する。
このように取得された文字列のペアは、オペレータにより入れ替えて入力された可能性が高いことから、取得されたペアに含まれる文字の位置を入れ替えたペアを誤入力における修正候補と判定できる。そして、修正候補判定部160は、修正候補と判定された文字列を修正画面21cにより提示する。
これにより、オペレータは、誤入力の可能性がある入力項目について、修正候補を考慮して、誤入力か否か判断できるため、誤入力か否かの判断がより迅速にできる。
また、修正候補判定部160は、提示された修正候補からオペレータにより選択されると、誤入力された入力項目を選択された修正候補の内容に修正する。ここで、誤入力を含む文字列全体の中から、誤入力された文字のみを選択して修正すると、再度桁間違えなどの誤入力がされる可能性が生じる。そのため、一般的にオペレータは、入力文字データ121の文字列に誤入力があった場合、入力文字データ121に対応する入力欄に文字列を先頭から再入力することになる。すなわち、入力文字データ121の文字列のうち1文字だけ誤入力したときでも、7文字分、再入力することになる。これに対して、上記の処理により、提示された修正候補からオペレータが選択することで修正可能となるため、全て再入力するよりも入力する文字数が少なくて済み、誤入力の修正作業が効率化される。また、再入力時の誤入力の確率も抑制できるため、誤入力の修正の精度が上がる。
なお、伝票入力システム5においては、修正候補を提示する代わりに、入力欄に表示された文字列のうち誤入力の候補と判定された文字のみ修正可能にするように、入力画面21aまたは修正画面21cが制御されてもよい。これにより、オペレータは、誤入力の候補となる文字以外の文字について、桁違いなどの誤入力を抑制できる。よって、誤入力の修正の精度が上がる。
また、上記のように修正候補のペアを提示する処理は、基本的に、1つのキーの操作により1つの文字が入力されるような文字列に適用される。例えば、修正候補を提示する処理は、数字が入力される入力項目に適用されることが望ましい。また、例えば、アルファベットが入力される入力項目に適用することも可能である。逆に、例えば、漢字を含む文字列が入力される入力項目については、図14の処理において、ステップS21〜S23の処理が実行された後、ステップS23で「YES」と判定された場合には無条件にステップS28の処理が実行されればよい。
また、上記の伝票入力システム5では、OCR認識の正確さを表す確度の例として認識率を用いた。しかしながら、例えば、OCR認識の正確さを表す確度として、OCR認識の処理中に使用されたパラメータを用いることもできる。例えば、スキャナ20によって読み取られた画像を文字のパターンと照合することで文字認識が行われる場合には、認識された文字についてのパターンとの一致度を、OCR認識の確度として用いてもよい。
OCR認識の確度としてOCR認識の処理中に使用されたパラメータが用いられる場合、伝票入力装置100は、このパラメータをスキャナ20から取得する。また、スキャナ20ではなく伝票入力装置100がOCR認識を行う場合には、上記パラメータを伝票入力装置100自身が出力することができる。
また、例えば、OCR認識の処理中に使用されたパラメータを前述の認識率によって補正した値を、OCR認識の確度として用いることもできる。
なお、前述のように、第1の実施の形態の文字入力支援装置10の処理は、文字入力支援装置10にプログラムを実行させることで実現できる。また、第2の実施の形態の伝票入力装置100および認識率DBサーバ200の処理は、各装置にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体23)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク30経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置(例えば、HDD103)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワーク30を介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、DSP(Digital Signal Processing)、ASIC、PLD(Programmable Logic Device)等の電子回路で実現することも可能である。