JP6763173B2 - 文書修正方法、文書修正装置、およびコンピュータプログラム - Google Patents

文書修正方法、文書修正装置、およびコンピュータプログラム Download PDF

Info

Publication number
JP6763173B2
JP6763173B2 JP2016064365A JP2016064365A JP6763173B2 JP 6763173 B2 JP6763173 B2 JP 6763173B2 JP 2016064365 A JP2016064365 A JP 2016064365A JP 2016064365 A JP2016064365 A JP 2016064365A JP 6763173 B2 JP6763173 B2 JP 6763173B2
Authority
JP
Japan
Prior art keywords
error detection
error
document
code
detection code
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
Application number
JP2016064365A
Other languages
English (en)
Other versions
JP2017182195A (ja
Inventor
敏伸 山口
敏伸 山口
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.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2016064365A priority Critical patent/JP6763173B2/ja
Publication of JP2017182195A publication Critical patent/JP2017182195A/ja
Application granted granted Critical
Publication of JP6763173B2 publication Critical patent/JP6763173B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Character Discrimination (AREA)

Description

本発明は、OCR(Optical Character Recognition)などによって抽出されたテキストデータに含まれる誤りを特定し、修正する技術に関する。
用紙に印刷されている文書のテキストデータを取得する技術として、OCRが普及している。OCRは、用紙をスキャンして、文書の文字を認識し、認識した文字をテキストデータとして抽出する技術である。しかし、100%誤りなく文字を認識することは難しい。
そこで、用紙に印刷されている文書をより正確に認識してテキストデータを取得する方法として、以下の技術が提案されている。
特許文献1に記載の電子的再生方法によると、文書の内容に依存した第1の数字を含む文書マーカーが、プリントされた文書の紙面上に、機械読み取り可能に備えられている。スキャニングで再生された、文書の内容に依存する第2の数値が指定される。第1と第2の、デシメーションを施した符号列の比較により、行並びに文字についての誤りが検出でき、また誤りのいくつかが訂正される。
特許文献2に記載の改ざん検知方式によると、印刷時に利用可能なすべてのOCRサービスでOCRを実行し、その結果より得られる各ハッシュ値をOCRサービスの識別子と関連付けて、すべてを電子ファイルに記載し画像化する。受領時、電子ファイルの中に記載されたすべてのOCRサービスの中ですべての利用可能なOCRサービスでOCRを実行する。結果より得られる各ハッシュ値を、画像より得られるハッシュ値と比較する。
特開平7−168912号公報 特開2011−97492号公報
特許文献1に記載の電子的再生方法によると、OCRなどによって抽出されたテキストデータと印刷前の文書のテキストデータとを、行単位で比較する。そして、文字列の修正の操作手順を示すトレースバックテーブルを参照することで、誤った文字認識が行われている箇所を、特定する。特定できない場合は、抽出されたテキストデータおよび印刷前の文書を、スペースを含む文字ごとにデシメートする。そして、デシメートの結果を比較することで、誤った文字認識が行われている箇所を特定する。その後、文字列を修正するためのアルゴリズムを起動し、複数の修正候補を生成する。
しかし、この電子的再生方法によると、文字を修正する前の過程、すなわち誤った文字認識が行われている箇所を特定する方法が、複雑である。そのため、より簡単な方法で誤りを特定して修正することが要求される。
特許文献2に記載の改ざん検知方式は、そもそもOCRによって得られたテキストデータの誤りを訂正することができない。
本発明は、このような課題に鑑み、OCRなどによって得られたテキストデータに含まれる誤りを従来よりも簡単に特定して修正することを目的とする。
本発明の一形態に係る文書修正方法は、第1の文書の複数の行のそれぞれについて、誤りの検出用の符号である第1の誤り検出符号を、当該行を構成する各文字のコードを用いて生成し、当該第1の文書の複数の列のそれぞれについて、誤りの検出用の符号である第2の誤り検出符号を、当該列を構成する各文字のコードを用いて生成し、当該第1の文書を構成する各文字を当該複数の行のいずれとも異なりかつ当該複数の列のいずれとも異なる組合せになるように分散させて複数の組にグループ化し、当該複数の組のそれぞれについて、誤りの検出用の符号である第3の誤り検出符号を、当該組を構成する各文字のコードを用いて生成する第1のステップと、前記複数の第1の誤り検出符号、前記複数の前記第2の誤り検出符号、および前記複数の第3の誤り検出符号を表わす誤り検出画像を生成する第2のステップと、前記第1の文書および前記誤り検出画像を用紙に印刷する第3のステップと、用紙に記されている文書である第2の文書を構成する各文字を認識する第4のステップと、前記用紙に記されている前記誤り検出画像から前記複数の第1の誤り検出符号、前記複数の第2の誤り検出符号、および複数の第3の誤り検出符号を抽出する第5のステップと、前記第2の文書の複数の行のそれぞれについて、誤りの検出用の符号である第4の誤り検出符号を、当該行を構成する各文字のコードを用いて生成し、当該第2の文書の複数の列それぞれについて、誤りの検出用の符号である第5の誤り検出符号を、当該列を構成する各文字のコードを用いて生成し、当該第2の文書を構成する各文字を当該複数の行のいずれとも異なりかつ当該複数の列のいずれとも異なる組合せになるように分散させて複数の組にグループ化し、当該複数の組のそれぞれについて、誤りの検出用の符号である第6の誤り検出符号を、当該組を構成する各文字のコードを用いて生成する第6のステップと、前記第2の文書の、前記第1の誤り検出符号と前記第4の誤り検出符号とが相違する行である誤り行、前記第2の誤り検出符号と前記第5の誤り検出符号とが相違する列である誤り列、および前記第3の誤り検出符号と前記第6の誤り検出符号とが相違する組である誤り組が重なる位置である誤り位置を検出する第7のステップと、前記誤り位置の文字を修正する第8のステップと、前記誤り列が所定の数以上連続する場合に、前記誤り行と当該連続する誤り列のうちの最も先頭に近い前記誤り列とが重なる位置である調整位置を検出する、第9のステップと、前記第6のステップの前に、前記第2の文書の前記調整位置の行方向に隣接する位置に所定の数だけ文字を挿入し、または、前記調整位置から行方向にある文字を、当該調整位置の文字または当該調整位置の文字に隣接する文字から順に行方向に所定の数だけ削除する、第10のステップと、を有する。
好ましくは、前記第1のステップの前に、前記第1の文書を所定の規則に従って調整する第9のステップと、前記第6のステップの前に、前記第2の文書を前記所定の規則に従って調整する第10のステップと、を備える。
本発明は、OCRなどによって得られたテキストデータに含まれる誤りを従来よりも簡単に特定して修正することができる。
文書照合システムの全体的な構成の例を示す図である。 画像形成装置のハードウェア構成の例を示す図である。 文書の例を示す図である。 画像形成装置の機能的構成の例を示す図である。 文書生成部の構成の例を示す図である。 文書印刷処理の流れの例を示すフローチャートである。 チェックサム計算処理の流れの例を示すフローチャートである。 テキストデータの例を示す図である。 テキストデータの等間隔チェックサムの例を示す図である。 文書および二次元コードが印刷された印刷物の例を示す図である。 文書照合部の構成の例を示す図である。 誤った文字の修正を実行する場合の、文書照合処理の流れの例を示すフローチャートである。 チェックサム計算処理の流れの例を示すフローチャートである。 誤った文字を含んだテキストデータの例を示す図である。 自動修正処理の流れの例を示すフローチャートである。 手動修正処理の流れの例を示すフローチャートである。 目視確認位置が強調されている文書を表示する画面の例を示す図である。 誤り位置の修正に加えて、テキスト長の調整を実行する場合の、文書照合処理の流れの例を示すフローチャートである。 テキスト長調整処理の流れの例を示すフローチャートである。 調整位置を含んだテキストデータの例を示す図である。 画像形成装置の全体的な流れの例を示すフローチャートである。
図1は、文書照合システム100の全体的な構成の例を示すである。図2は、画像形成装置1のハードウェア構成の例を示す図である。図3は、文書71の例を示す図である。
文書照合システム100は、図1に示すように、画像形成装置1、端末装置2、および通信回線4などによって構成されている。画像形成装置1と端末装置2とは、通信回線4を介して通信することができる。通信回線4として、LAN(Local Area Network)、インターネット、公衆回線、または専用回線などが用いられる。
文書照合システム100は、パーソナルコンピュータなどで作成された契約書などの文書を用紙に印刷する。そして、その後、この文書を電子データ化するために、この用紙からこの文書を読み取る。
文書照合システム100によると、読み取った文書の電子データの誤りを従来よりも簡単に特定し、修正することができる。
画像形成装置1は、コピー、ファックス、スキャナ、PCプリント、およびボックスなどの機能を集約した装置である。一般に、「複合機」または「MFP(Multi Function Peripherals)」などと呼ばれることがある。
PCプリント機能は、端末装置2から受信したデータに基づいて、文書を印刷する機能である。「ネットワークプリンティング」または「ネットワークプリント」などと呼ばれることもある。
ボックス機能は、ユーザごとに「ボックス」または「パーソナルボックス」などと呼ばれる記憶領域を与えておき、各ユーザが自分の記憶領域によって画像ファイルなどのドキュメントデータを保存し管理するための機能である。ボックスは、パーソナルコンピュータにおける「フォルダ」または「ディレクトリ」に相当する。
画像形成装置1は、図2に示すように、CPU(Central Processing Unit)10a、RAM(Random Access Memory)10b、ROM(Read Only Memory)10c、補助記憶装置10d、タッチパネルディスプレイ10e、操作キーパネル10f、NIC(Network Interface Card)10g、モデム10h、スキャンユニット10i、およびプリントユニット10jなどによって構成される。
タッチパネルディスプレイ10eは、ユーザに対するメッセージを示す画面、ユーザがコマンドまたは情報を入力するための画面、およびCPU10aが実行した処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ10eは、タッチされた位置を示す信号をCPU10aへ送る。
操作キーパネル10fは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
NIC10gは、TCP/IP(Transmission Control Protocol/Internet Protocol)などのプロトコルで他の装置との通信を実行する。
モデム10hは、ファックス端末との間でG3などのプロトコルで画像データをやり取りする。
スキャンユニット10iは、プラテンガラスの上にセットされたシートに記されている画像を読み取って画像データを生成する。
プリントユニット10jは、スキャンユニット10iによって読み取られた画像のほか、NIC10gまたはモデム10hによって他の装置から受信した画像を用紙に印刷する。
ROM10cまたは補助記憶装置10dには、上述のコピーなどの各機能を実現するためのプログラムが記憶されている。さらに、文書処理プログラム10P(図4、図5および図11参照)が記憶されている。文書処理プログラム10Pについては、後に説明する。
これらのプログラムは、必要に応じてRAM10bにロードされ、CPU10aによって実行される。補助記憶装置10dとして、ハードディスクドライブまたはSSD(Solid State Drive)などが用いられる。
図1に戻り、端末装置2は、ユーザによって作成された文書のデータを画像形成装置1へ送信する。端末装置2として、パーソナルコンピュータ、スマートフォン、またはタブレットコンピュータなどが用いられる。端末装置2には、一般的な文書作成アプリケーションおよび画像形成装置1のドライバなどがインストールされている。
以下、図3に示す文書71を用紙に印刷し、その後、文書71を用紙から読み取ってテキストデータ6Eを生成する場合を例に、説明する。
〔画像形成装置1の文書印刷処理〕
図4は、画像形成装置1の機能的構成の例を示す図である。図5は、文書生成部101の構成の例を示す図である。図6は、文書印刷処理の流れの例を示すフローチャートである。図7は、チェックサム計算処理の流れの例を示すフローチャートである。図8は、テキストデータ6Bの例を示す図である。図9は、テキストデータ6Bの等間隔チェックサムの例を示す図である。図10は、文書71および二次元コード72が印刷された印刷物7の例を示す図である。
文書処理プログラム10Pによると、図4に示す文書生成部101および文書照合部151などの機能が画像形成装置1に実現される。
画像形成装置1の文書生成部101は、文書71の印刷物7を生成するための処理を実行する。文書生成部101は、図5に示すように、文書受付部102、テキストデータ抽出部103、テキストデータ正規部104、チェックサム計算部105、二次元コード生成部106、印刷データ生成部107、および印刷文書出力部108などによって構成される。文書受付部102ないし印刷文書出力部108は、図6に示す手順で処理を実行する。
ユーザは、端末装置2の文書作成アプリケーションを使用して、文書71を作成する。そして、印刷の指示を画像形成装置1へ与える。
すると、端末装置2は、文書71の文書データ6Aを、画像形成装置1へ送信する。文書データ6Aとして、テキストデータ、PDF(Portable Document Format)データ、またはマイクロソフト社のWordフォーマットのデータなどが用いられる。
画像形成装置1において、文書受付部102は、通信回線4を介して、端末装置2から文書データ6Aを受信する(図6の#601)。
テキストデータ抽出部103ないしチェックサム計算部105は、受信した文書データ6Aに示される文書71のチェックサムを計算するための処理を、図7に示す手順で実行する(#602)。
テキストデータ抽出部103は、文書データ6Aのフォーマットに基づいて、文書71が示される部分のテキストデータ6Bを抽出する(図7の#631)。テキストデータ6Bの符号化方式として、UTF−8(UCS Transfer Format-8)が用いられる。
テキストデータ正規部104は、テキストデータ6Bを正規化する(#632)。正規化とは、文書の意味を変えない程度に、所定の規則に基づいてテキストデータ6Bを変形することを、意味する。すなわち、ある句読点を他の句読点に変えたり、改行のコードを加えたり、スペースの個数を減らしたりするなど、文書の実質的な内容に影響を与えない程度にテキストデータ6Bを変形することを、意味する。そのため、この正規化の処理が行われても、文書の実質的な内容の同一性が担保される。本実施形態では、所定の規則として、以下の規則_1ないし規則_6が用いられる。
なお、後述の「<space>」は、1つの空白の文字を表わす。「<null>」は、文字がないことを意味する。「<LF>」(Line Feed)は、改行を表す。
(規則_1)コロンの直後のスペースは削除する。この規則によると、例えば、「name:<space>John」は、「name:John」と変換される。
(規則_2)連続したスペースは1つだけ残して、すべて削除する。この規則によると、例えば、「ABC<space><space>EFG」は、「ABC<space>EFG」と変換される。
(規則_3)シングルクォーテーションは1種類だけ使用する。この規則によると、例えば、文書の中に複数種類のシングルクォーテーションが出てきた場合、それらシングルクォーテーションは、予め定められたシングルクォーテーションまたはその他の記号に置き換えられる。
(規則_4)全角の英数は、半角の英数に変換する。全角のスペースも同様に、半角のスペースに変換する。
(規則_5)行が変わる箇所に<LF>がない場合は、<LF>を1つ挿入する。この規則によると、例えば、文書71において、2行目の最後の単語「her」の右隣に、<LF>が挿入される。
(規則_6)各行の<LF>以降にある<space>は、すべて削除する。
テキストデータ6Bは、テキストデータ正規部104の処理の結果、図8に示すように正規化される。なお、左右方向のラインを行とし、行に直交するラインを列とする。テキストデータ6Bは、16行、60列(行の最大長で60文字)のデータである。
図7へ戻って、チェックサム計算部105は、正規化されたテキストデータ6Bに対して、チェックサムの計算を実行する(#633)。チェックサムの計算は、次のように行われる。
チェックサム計算部105は、行チェックサムを計算する。行チェックサムは、行に並んでいる文字列のチェックサムである。具体的には、UTF−8の文字コードに基づいて行の中の各文字(ただし、改行(<LF>)は除く。)に割り当てられた2桁(8bit)の16進数の排他的論理和である。つまり、これらの16進数の排他的論理和(Xor)を取ることで計算される。
例えば、テキストデータ6Bの13行目「close<space>by<space>her.」の各文字の16進数は、「63 6C 6F 73 65 20 62 79 20 68 65 72 2E」である。そして、これらの16進数の排他的論理和(63 Xor 6C Xоr 6F Xor … Xor 2E)すなわちチェックサムを計算すると、「3C」が算出される。
また、チェックサム計算部105は、列チェックサムを計算する。列チェックサムは、列に並んでいる文字列のチェックサムである。
ただし、列チェックサムは、行チェックサムと異なり、1桁(4bit)単位の16進数の排他的論理和である。
例えば、テキストデータ6Bの20列目「<space><space><space>dr<space><null>idetn<null>оEf」の16進数は「20 20 20 64 72 20 00 69 64 65 74 6E 00 6F 45 66」である。そして、各桁の16進数のXorを計算すると、つまり、「2 Xor 0 Xor 2 Xor 0 Xor 2 Xor … Xor 6」を計算すると、「A」が算出される。これが、20列目の列チェックサムである。
このように計算することで、列チェックサムに使用されるデータ量を削減することができる。列に並んでいる文字の個数は、行に並んでいる文字の個数よりも少ないことがある。このような場合、列のエラーの発生率は、行のエラーの発生率よりも低い。そこで、データ量を削減するために、上述のようにチェックサムを計算する。
さらに、チェックサム計算部105は、等間隔チェックサムを計算する。等間隔チェックサムは、飛石のように所定の間隔を空けて選択された複数の文字の組のチェックサムである。
各組の文字は、例えば次のように選択すればよい。N行目の最後の文字の直後に(N+1)行目の最初の文字を連結する。先頭の文字から順に第1組、第2組、…、第M組、第1組、第2組、…、第M組のように各組へ振り分ける。そして、振り分けた文字を選択する。なお、Nは1ないし文書の行数であり、Mは組の数である。
例えば、2行5列の文書において、3組のチェックサムを算出する場合、「1行目1列目の文字および1行目4列目の文字ならびに2行目2列目の文字および2行目5列目の文字」を第1組、「1行目2列目の文字および1行目5列目の文字ならびに2行目3列目の文字」を第2組、「1行目3列目の文字ならびに2行目1列目の文字および2行目4列目の文字」を第3組とする。
ところで、後述する誤り位置の検出の精度を上げるために、等間隔チェックサムの対象となる文字の組合せは、いずれの列チェックサムの対象となる文字の組合せをも含まないのが望ましい。
例えば、2行6列の文書において、6組の等間隔チェックサムを計算する場合、「1行目1列目の文字および2行目1列目の文字」を第1組の文字として選択し、「1行目2列目の文字および2行目2列目の文字」を第2組の文字として選択し、「1行目3列目の文字および2行目3列目の文字」を第3組の文字として選択し、「1行目4列目の文字および2行目4列目の文字」を第4組の文字として選択し、「1行目5列目の文字および2行目5列目の文字」を第5組の文字として選択し、「1行目6列目の文字および2行目6列目の文字」を第6組とする場合である。
このように選択しないようにするために、各行の1列目の文字の組を、行が変わるごとに変更すればよい。例えば、次のようにずらせばよい。
まず、1行目の各文字を、第1組、第2組、…、第M組、第1組、第2組、…、第M組、…の順に振り分ける。すると、1行目の最後の文字は、第M組に振り分けられる。2行目の1列目の文字を、1行目の最後の文字と同じ組すなわち第M組に振り分ける。そして、2行目の2列目以降の文字を、その続きすなわち第1組、第2組、…、第M組、第1組、第2組、…、第M組、…の順に振り分ける。以下、同様に、N行目の先頭の文字を(N−1)行目の最後の文字と同じ組に振り分け、N行目の2列目以降の文字をその続きの組に振り分ければよい。
または、等間隔チェックサムとして使用する文字の組の数を、テキストデータの最大列数の値(テキストデータ6Bでは60列)を除した時に余りが生じる商(テキストデータ6Bでは、例えば7)としてもよい。または、ある文字の行の番号と列の番号とを加算した数を組の数で除し、その余りによって組を決定してもよい。
以下、図9に示すように、テキストデータ6Bの各文字が3つの組、すなわち太枠が付された文字の組である第1組、細枠が付された文字の組である第2組、破線の枠が付された文字の組である第3組に振り分けられ、3つの等間隔チェックサムが生成された場合を例に説明する。
図6に戻って、二次元コード生成部106は、計算されたチェックサムを1つのデータにまとめ、そのデータを表わす二次元コード72の二次元コードデータ6Cを生成する(#603)。二次元コードの規格として、QR(Quick Response)コード(登録商標)が用いられる。
例えば、テキストデータ6Bの場合は、すべての行チェックサム(8bit×16行)、すべての列チェックサム(4bit×60列)、およびすべての等間隔チェックサム(8bit×3組)のデータが1つにまとめられる。そのデータの量は、49byteである。よって、29セル×29セル以上のサイズのQRコードによって、そのデータを表わすことができる。
印刷データ生成部107は、文書データ6Aに二次元コードデータ6Cを、次のように合成する(#604)。
印刷データ生成部107は、文書データ6Aに基づいて文書71を印刷した用紙の印刷面の状態を求め、二次元コード72が収まる大きさの余白を印刷面の中から検索する。そして、見つかった余白に二次元コード72が挿入されるように、文書データ6Aに二次元コードデータ6Cを合成する。
印刷文書出力部108は、二次元コードデータ6Cが合成された文書データ6Aを、プリントユニット10jに与える(#605)。そして、プリントユニット10j(図2参照)は、印刷文書出力部108から与えられた文書データ6Aに基づいて文書71および二次元コード72を用紙に印刷する。これにより、図10のような印刷物7が生成される。
〔画像形成装置1の文書照合処理の第1の例〕
図11は、文書照合部151の構成の例を示す図である。図12は、誤った文字の修正を実行する場合の、文書照合処理の流れの例を示すフローチャートである。図13は、チェックサム計算処理の流れの例を示すフローチャートである。図14は、誤り位置6Fを含んだテキストデータ6Eの例を示す図である。図15は、自動修正処理の流れの例を示すフローチャートである。図16は、手動修正処理の流れの例を示すフローチャートである。図17は、目視確認位置が強調されている文書を表示する画面の例を示す図である。
第1のユーザは、上述の方法によって、印刷物7を画像形成装置1に生成させる。そして、第2のユーザへ印刷物7を渡す。
第2のユーザは、文書71をOCRなどによってテキストデータで取得したい。ところが、OCRなどによる文字の認識率は100%ではない。しかし、文書照合部151によると、OCRなどによって得られたテキストデータに含まれる誤りを、従来よりも簡単に特定して修正することができる。以下、この仕組みについて説明する。
文書照合部151は、図11に示すように、画像抽出部152、テキストデータ抽出部153、テキストデータ正規部154、チェックサム計算部155、二次元コード解析部156、誤り検出部157、誤り自動修正部158、修正方法記憶部159、結果表示部160、および手動修正部161などによって構成される。
そして、画像抽出部152ないし手動修正部161は、図12に示す手順で処理を実行する。
第2のユーザは、印刷物7(図10参照)に印刷されている画像を、画像形成装置1のスキャンユニット10i(図2参照)に読み取らせる。
すると、画像抽出部152は、スキャンユニット10iによって読み取られた画像の中から、文書71および二次元コード72を次のように抽出する(図12の#701)。
画像抽出部152は、読み取られた画像の中から二次元コード72を抽出する。二次元コード72の位置は、位置検出パターンを検索することによって特定すればよい。そして、読み取られた画像から二次元コード72を取り除いたものを、文書71として抽出する。
テキストデータ抽出部153ないしチェックサム計算部155は、抽出した文書71に対して、チェックサムを計算する処理を実行する(#702)。この処理の手順は、図13に示す通りである。
テキストデータ抽出部153は、抽出した文書71をOCRの技術によってテキストデータ6Eに変換する(#721)。
テキストデータ正規部154は、テキストデータ6Eを正規化する(#722)。テキストデータ6Eを正規化する方法は、テキストデータ正規部104がテキストデータ6Bを正規化する方法と同様である。
チェックサム計算部155は、正規化されたテキストデータ6Eに対して、チェックサムを計算する(#723)。チェックサムの計算の方法は、チェックサム計算部105による、正規化されたテキストデータ6Bに対するチェックサムの計算の方法と同様である。
以下、テキストデータ6Eにおいて、テキストデータ6Bの6行目36列目の「w」が「u」に誤って認識され、テキストデータ6Bの11行目19列目の「<space>」が「.」に誤って認識されている場合を例に、説明する。
二次元コード解析部156は、画像抽出部152によって抽出された二次元コード72を解析することによって、二次元コード72からテキストデータ6Bの行チェックサム、列チェックサム、および等間隔チェックサムを取得する(#703)。
以下、チェックサム計算部155によって得られた、テキストデータ6Eの行チェックサム、列チェックサム、および等間隔チェックサムをそれぞれ「行チェックサム6E1」、「列チェックサム6E2」、および「等間隔チェックサム6E3」と記載する。また、二次元コード解析部156によって得られた、テキストデータ6Bの行チェックサム、列チェックサム、および等間隔チェックサムをそれぞれ「行チェックサム6B1」、「列チェックサム6B2」、および「等間隔チェックサム6B3」と記載する。
誤り検出部157は、すべての行チェックサム6E1とすべての行チェックサム6B1とを、同じ行同士で比較する(#704)。同様に、すべての列チェックサム6E2とすべての列チェックサム6B2とを、同じ列同士で比較する。同様に、すべての等間隔チェックサム6E3とすべての等間隔チェックサム6B3とを、同じ組同士で比較する。
そして、いずれの行の行チェックサム同士も相違せず、いずれの列の列チェックサム同士も相違せず、いずれの組の等間隔チェックサム同士も相違しない場合は(#705でNo)、誤り検出部157は、テキストデータ6Eに誤りがないと判別する(#706)。
結果表示部160は、テキストデータ6Bの内容とテキストデータ6Eの内容とが一致している旨が表示されるように、タッチパネルディスプレイ10eを制御する(#711)。
なお、このテキストデータ6Eは、その後、次の処理に引き継がれてもよい。例えば、印刷物7が契約書である場合、その印刷物7の元データである文書データ6Aに係る文書71と、印刷物7をスキャンした文書71とは、内容が同じであること、すなわち、契約時の内容が担保されている必要がある。両者の内容が一致するか否かをチェックするために、次の処理として、文書データ6Aの文書71のテキストデータ6Bのハッシュ値と、スキャンした文書71のテキストデータ6Eのハッシュ値とを比較する処理が行われる。テキストデータ6Eは、この処理に引き継がれる。
相違する行チェックサム、列チェックサム、および等間隔チェックサムがある場合は(#705でYes)、誤り検出部157は、次のように、誤って認識された文字の位置である誤り位置6Fを検出する(#707)。
誤り検出部157は、相違する行チェックサムに係る行を誤り行として検出し、相違する列チェックサムに係る列を誤り列として検出し、相違する等間隔チェックサムに係る組を誤り組として検出する。なお、誤り行、誤り列、および誤り組が複数、検出されることがある。そして、1つの誤り行、1つの誤り列、および1つの誤り組のすべてが重なる位置を、誤って認識された文字の位置として検出する。
例えば、テキストデータ6E(図14参照)において、誤り行(斜線の行)は6行目および11行目であり、誤り列(水平線の列)は19列目および36列目であり、誤り組は第1組(太枠)および第3組(破線の枠)である。よって、6行目と36列目と第1組とが重なる位置、および11行目と19列目と第3組とが重なる位置が、誤り位置6Fとして検出される。以下、前者を「誤り位置6F1」と記載し、後者を「誤り位置6F2」と記載する。
修正方法記憶部159には、誤って認識された文字を正しい文字に修正するための修正方法が複数、予め記憶されている。修正方法は、以下の通りである。
(方法_1)選択した誤り位置6Fを含む誤り行の行チェックサム6E1と、その誤り行に対応する行の行チェックサム6B1と、選択した誤り位置6Fの16進数との、排他的論理和を取る。
例えば、誤り位置6F1の場合、行チェックサム6B1は「26」であり、行チェックサム6E1は「24」であり、誤り位置6F1の文字、すなわち誤って認識された文字「u」の16進数は「75」である。これらの数の排他的論理和は「77」になり、この数に対応する文字「w」を正しい文字と推測する。そして、誤り位置6Fの文字を、「u」から「w」に修正する。
(方法_2)誤り位置6Fの文字の形に近い文字を、正しい文字と推測する。そして、推測した文字に修正する。互いに形が近い文字として、「iとj」、「1(数字のイチ)とl(小文字のエル)とI(大文字のアイ)」、「0(数字のゼロ)とO(大文字のオー)とо(小文字のオー)とQ(大文字のキュー)」などがある。
なお、誤って認識された文字と近い文字が2文字以上ある場合は、近い文字のうちいずれか1つを正しい文字であると推測し、誤って認識された文字を推測した文字に修正する。そして、誤り位置6Fを含む誤り行の行チェックサム6E1、誤り列の列チェックサム6E2、および誤り組の等間隔チェックサムを再計算し、それぞれを、その誤り行に対応する行の行チェックサム6B1、その誤り列に対応する列の列チェックサム6B2、およびその誤り組に対応する組の等間隔チェックサム6B3と一致するか否か比較する。一致しない場合に、近い文字のうち他の1つを正しい文字と推測して、同様の処理を実行する。
(方法_3)辞書を参照して、誤り位置6Fを含む単語に近い単語、すなわち誤り位置6Fの文字だけが相違する単語を検索する。検索した単語における、誤り位置6Fに対応する文字を、正しい文字と推測する。そして、誤って認識された文字を、正しい文字であると推測した文字に修正する。
(方法_4)誤り位置の文字と修正した文字との組み合わせを、履歴として記憶する。選択した任意の誤り位置の文字と、履歴に示される誤り位置の文字とが同じ場合、履歴に示される修正した文字を、正しい文字と推測する。そして、誤って認識された文字を、正しい文字であると推測した文字に修正する。
具体的には、既に「i」を「j」に修正しその履歴を記憶している場合において、誤り位置6Fの文字が「i」であれば、「j」を正しい文字と推測する。
誤り自動修正部158は、誤り位置6Fに対応する文字を自動的に修正する処理を、次のように実行する(#708)。以下、この処理を「自動修正処理」と記載する。
誤り自動修正部158は、任意の誤り位置6Fを1つ選択する(図15の#731)。1つ目の修正方法すなわち方法_1を修正方法記憶部159から読み出し、誤り位置6Fに適用して修正する(#732)。
誤り自動修正部158は、修正したテキストデータ6Eに基づき、誤り位置6Fを含む誤り行の行チェックサム6E1、誤り位置6Fを含む誤り列の列チェックサム6E2、および誤り位置6Fを含む誤り組の等間隔チェックサム6E3を再度計算する(#733)。そして、計算した行チェックサム6E1、列チェックサム6E2、および等間隔チェックサム6E3を、それぞれ、誤り位置6Fを含む誤り行に対応する行の行チェックサム6B1、誤り位置6Fを含む誤り列に対応する列の列チェックサム6B2、および誤り位置6Fを含む誤り組に対応する組の等間隔チェックサム6B3と一致するか否かを比較する(#734)。
比較の結果、行チェックサム6B1と行チェックサム6E1とが一致し、列チェックサム6B2と列チェックサム6E2とが一致し、かつ等間隔チェックサム6B3と等間隔チェックサム6E3とが一致する場合は(#735でNo)、修正は、成功である。
一方、行チェックサム6B1と行チェックサム6E1とが相違し、列チェックサム6B2と列チェックサム6E2とが相違し、または等間隔チェックサム6B3と等間隔チェックサム6E3とが相違する場合は(#735でYes)、誤り自動修正部158は、2つ目の修正方法すなわち方法_2を修正方法記憶部159から読み出し、誤り位置6Fに適用して修正する。(#732)。そして、チェックサムの再計算と比較を行う(#733、#734)。同様に、読み出した修正方法を適用しても修正が成功しない場合は、修正に成功するまで、さらに次の修正方法を用いて処理を行う(#732〜#734)。
すべての修正方法を適用しても修正に失敗した場合は(#735でYes、#736でYes)、誤り自動修正部158は、その誤り位置6Fを目視確認位置6Gとして設定する(#737)。
誤り自動修正部158は、上述の処理を、すべての誤り位置6Fに対して実行する(#738でNo)。
テキストデータ6Eは、誤り自動修正部158による誤り自動修正処理の結果、誤り位置6Fの文字のすべてが修正されることもあれば、一部の誤り位置6Fの文字のみが修正されることもあり、全く修正されないこともある。
なお、上述の修正方法を適用する順番は、適宜、ユーザが設定してもよい。例えば、方法_4を1つ目の修正方法として適用してもよい。
図12に戻って、結果表示部160および手動修正部161は、目視確認位置6Gがある場合に(#709でYes)、その目視確認位置6Gの文字をユーザの手動によって修正する処理を、図16に示す方法によって実行する(#710)。
結果表示部160は、誤り自動修正処理が行われた後のテキストデータ6Eに示される文書71を、目視確認位置6Gを強調してタッチパネルディスプレイ10eに、例えば図17のように表示させる(図16の#751)。
ここで、ユーザは、表示された文書71の中の、目視確認位置6Gにある文字(すなわち、誤っている文字)およびその周辺の文字を確認する。そして、誤っている文字に対応する、本来の正しい文字を選択する。
手動修正部161は、ユーザからの選択を受け付ける(#752)。そして、目視確認位置6Gにある文字を入力された文字に置き換えることによって、テキストデータ6Eを修正する(#753)。
例えば、ユーザは、印刷物7(図10参照)に印刷されている文書71とタッチパネルディスプレイ10eに表示されている文書71とを目視で比較する。そして、目視確認位置6Gをタッチし、続けてソフトウェアキーボードの中から正しい文字をタッチして選択する。
手動修正部161は、修正後のテキストデータ6Eに基づき、目視確認位置6Gを含む誤り行の行チェックサム6E1、誤り列の列チェックサム6E2、および誤り組の等間隔チェックサム6E3を再度計算する(#754)。計算した行チェックサム6E1、列チェックサム6E2、および等間隔チェックサム6E3を、それぞれ、目視確認位置6Gを含む誤り行に対応する行の行チェックサム6B1、誤り列に対応する列の列チェックサム6B2、およびその誤り組に対応する組の等間隔チェックサム6B3と一致するか否か比較する(#755)。
比較の結果、行チェックサム6B1と行チェックサム6E1とが一致し、列チェックサム6B2と列チェックサム6E2とが一致し、かつ等間隔チェックサム6B3と等間隔チェックサム6E3とが一致する場合は(#756でNo)、その目視確認位置6Gの修正は、成功である。
一方、行チェックサム6B1と行チェックサム6E1とが相違し、列チェックサム6B2と列チェックサム6E2とが相違し、または等間隔チェックサム6B3と等間隔チェックサム6E3とが相違する場合は(#756でYes)、結果表示部160は、文書71を、その目視確認位置6Gを強調してタッチパネルディスプレイ10eに再び表示させる(#751)。
なお、目視確認位置6Gが複数ある場合は、それぞれの目視確認位置6Gについて、上述の処理(#751〜#756)を実行する。そして、すべての目視確認位置6Gの修正が成功するまで、成功していない目視確認位置6Gについて上述の処理(#751〜#756)を繰り返して実行する。
〔画像形成装置1の文書照合処理の第2の例〕
図18は、誤った文字の修正に加えて、テキスト長の調整を実行する場合の、文書照合処理の流れの例を示すフローチャートである。図19は、テキスト長調整処理の流れの例を示すフローチャートである。図20は、調整位置6Hを含んだテキストデータ6Eの例を示す図である。
1つの文字として認識すべきところを2つの文字として誤って認識したり、2つの文字として認識すべきところを1つの文字として誤って認識したりすることがある。具体的には、「m」を「r」および「n」と誤って認識することがあり、「v」および「v」を「w」と誤って認識することがある。
このような誤りが起きると、誤って認識した文字の位置以降の列にズレが生じ、上述のような1文字単位での誤り修正では対処が困難になる。第1の例では、このようなズレに対応しなかったが、第2の例では、このようなズレに対処した上で、誤った文字の修正を行う。
以下、テキストデータ抽出部153が、テキストデータ6Eの8行目35列目の「m」を「r」および「n」と誤って認識した場合を例に説明する。なお、上述の文書照合処理と重複する点は、説明を省略する。
画像抽出部152ないし二次元コード解析部156は、図12のステップ#701〜#703と同様の処理を行う(#801〜#803)。
誤り検出部157は、すべての行チェックサム6E1とすべての行チェックサム6B1とを、同じ行同士で比較する(#804)。同様に、すべての列チェックサム6E2とすべての列チェックサム6B2とを、同じ列同士で比較する。同様に、すべての等間隔チェックサム6E3とすべての等間隔チェックサム6B3とを、同じ組同士で比較する。
相違する行チェックサム、列チェックサム、および等間隔チェックサムがあり(#805でYes)、かつ相違する列チェックサムに係る列である誤り列が所定の数以上連続する場合は(#807でYes)、誤り検出部157および誤り自動修正部158は、列のズレを調整する処理を次のように実行する(#808)。
誤り検出部157は、所定の数以上(本実施形態では、10以上とする。)連続する誤り列のうち、最も左に位置する、すなわちテキストデータ6Eの先頭に近い誤り列を特定する(図19の#831)。
例えば、テキストデータ6E(図20参照)において、35列目〜46列目を誤り列として検出しているので、その中で最も左に位置する35列目の列チェックサムを特定する。
誤り検出部157は、相違する行チェックサムの行である誤り行と、特定した誤り列とが重なる位置を、調整位置6Hとして検出する(#832)。例えば、テキストデータ6Eにおいて、8行目の誤り行と35列目の誤り列とが重なる位置を、調整位置6Hとして検出する。
誤り自動修正部158は、テキストデータ6Eを変更する。詳細には、任意の文字(本実施形態では<space>とする)を調整位置6Hの右隣に、一時的にi個挿入する(#833)。これにより、調整位置6Hより右側に位置する文字がi個ずつ右に移動する。すなわち、誤り行の長さが長くなる。例えば、<space>を8行目36列目に挿入する。なお、iは自然数であり、最初の値は1である。
誤り自動修正部158は、変更後のテキストデータ6Eに基づき、調整位置6Hを含む誤り列およびその列よりも右側にある列チェックサム6E2を再度計算する(#834)。そして、これら計算したチェックサムが、それぞれ、調整位置6Hを含む誤り列に対応する列およびその列よりも右側にある列の列チェックサム6B2と一致するか否か比較する(#835)。
誤り列の相違が所定の数以下になれば、テキストデータ6Eに対して行った変更の内容を確定させる(#837)。
再度、誤り列が所定の数以上連続して検出された場合に(#836でYes)、変更前のテキストデータ6Eの調整位置6Hの右隣を含めた右側に位置する文字を、一時的にi個削除する(#838)。これにより、削除された文字より右側に位置する文字がi個ずつ左詰めされる。すなわち、誤り行の長さが短くなる。例えば、8行目36列目の「m」を削除し、「m」より右側の文字を1文字ずつ左詰めする。
変更後のテキストデータ6Eに基づき、調整位置6Hを含む誤り列およびその列よりも右側にある列チェックサム6E2を再度計算する(#839)。そして、これら計算したチェックサムが、それぞれ、調整位置6Hを含む誤り列に対応する列およびその列よりも右側にある列の列チェックサム6B2と一致するか否か比較する(#840)。
再度、誤り列を所定の数以上連続して検出した場合に(#841でYes)、iに1加算する(#842)。そして、誤り列の相違が所定の数以下になるまで、上述の処理を繰り返して実行する(#833〜#841)。
図18に戻って、誤り検出部157は、変更後のテキストデータ6Eにおける誤り位置6Fを検出する(#809)。検出の方法は、図12のステップ#707における検出の方法と同様である。そして、図12のステップ#708〜#711の処理と同様に、ステップ#810〜#813の処理を実行する。
図21は、画像形成装置1の全体的な流れの例を示すフローチャートである。次に、画像形成装置1の全体的な動きを、フローチャートを参照しながら説明する。
画像形成装置1は、端末装置2から文書データ6Aを受信すると(#11でYes)、文書印刷処理を実行する(#12)。文書印刷処理の手順は、前に図6で説明した通りである。
または、画像形成装置1は、スキャンユニット10i(図2参照)によって印刷物の画像を読み取ると(#13でYes)、読み取った文書に対して文書照合処理を実行する(#14)。文書照合処理の手順は、前に図12および図18で説明した通りである。
画像形成装置1は、画像形成装置1の電源が切断されるまでの間(#15でNo)、文書データ6Aを受信するごとに文書印刷処理を実行し、印刷物の画像を読み取るごとに文書照合処理を実行する。
本実施形態では、行チェックサム、列チェックサム、および等間隔チェックサムのすべてが重なる位置を、誤り位置6Fとして検出した。しかし、相違を検出した行チェックサムおよび列チェックサムが1つしかない場合は、行チェックサムおよび列チェックサムだけに基づいて誤り位置6Fを検出してもよい。
本実施形態では、チェックサムの計算は、改行以外の文字の16進数を使用したが、改行の16進数をも使用してもよい。
本実施形態では、誤りを検出するためにチェックサムを使用したが、パリティまたはハッシュなどを使用してもよい。
本実施形態では、1行単位または1列単位でチェックサムを計算したが、複数行または複数列をまとめた上で、チェックサムを計算してもよい。これにより、データ量を節約することができる。
本実施形態では、等間隔チェックサムにおける組の数を3組としたが、組の数はこれに限られない。例えば、2組であってもよいし、4組以上であってもよい。
本実施形態では、調整位置6Hの右隣へ文字を挿入、または右隣の文字を削除した。しかし、調整位置6Hへ文字を挿入してもよいし、調整位置6Hの文字を削除してもよい。
本実施形態では、行チェックサムのデータ量は8bitであり、列チェックサムのデータ量は4bitであった。しかし、上述のように、文字の個数が多くなるほどエラーの発生率が高くなり、文字の個数が少ないほどエラーの発生率が低くなるため、文字の個数に応じて、データ量を変更してもよい。例えば、行の文字が60字よりも多くなれば、データ量を8bitよりも多く(例えば、16bit)してもよい。または、列の文字が16字未満になれば、4bit未満(例えば、2bit)にしてもよい。
本実施形態では、文書印刷処理および文書照合処理を同じ画像形成装置1で実施したが、別々の画像形成装置1で実施してもよい。
本実施形態では、文書受付部102ないし印刷データ生成部107、およびテキストデータ抽出部153ないし手動修正部161の機能は、画像形成装置1に実現されたが、端末装置2に実現されてもよい。この場合、端末装置2によって文書データ6Aと二次元コードデータ6Cとが合成され、合成された後の文書データ6Aが画像形成装置1に送信される。また、画像形成装置1のスキャンユニット10iによって読み取られた画像が、端末装置2に送信される。
本実施形態において、手動修正処理でのチェックサムの再計算は、すべての目視確認位置6Gに対するユーザからの選択を受け付けた後に、1回だけ実施してもよい。または、一部の目視確認位置6Gに対するユーザからの選択を受け付けるごとに、実施してもよい。
本実施形態において、結果表示部160は、誤り自動修正部158が修正を行った際に、成功した修正内容を表示させるよう、タッチパネルディスプレイ10eを制御してもよい。例えば、上述の例に基づくと、「6行目36列目の文字を「u」から「w」に修正しました。」というメッセージを、タッチパネルディスプレイ10eに表示させてもよい。
その他、文書照合システム100、画像形成装置1、端末装置2の全体または各部の構成、処理の内容、処理の順序、データの構成などは、本発明の趣旨に沿って適宜変更することができる。
1 画像形成装置(文書修正装置、文書印刷装置)
6B テキストデータ
6B1 行チェックサム(第1の誤り検出符号)
6B2 列チェックサム(第2の誤り検出符号)
6B3 等間隔チェックサム(第3の誤り検出符号)
6E テキストデータ
6E1 行チェックサム(第4の誤り検出符号)
6E2 列チェックサム(第5の誤り検出符号)
6E3 等間隔チェックサム(第6の誤り検出符号)
6F 誤り位置6F(誤り位置)
6H 調整位置6H(調整位置)
7 印刷物(用紙)
71 文書(第1の文書、第2の文書)
72 二次元コード(誤り検出画像)
105 チェックサム計算部(誤り検出符号生成手段)
106 二次元コード生成部(誤り検出画像生成手段)
108 印刷文書出力部(印刷手段)
153 テキストデータ抽出部(文字認識手段)
155 チェックサム計算部(誤り検出符号生成手段)
156 二次元コード解析部(誤り検出符号取得手段)
157 誤り検出部(誤り位置検出手段)
158 誤り自動修正部(修正手段)

Claims (14)

  1. 第1の文書の複数の行のそれぞれについて、誤りの検出用の符号である第1の誤り検出符号を、当該行を構成する各文字のコードを用いて生成し、当該第1の文書の複数の列のそれぞれについて、誤りの検出用の符号である第2の誤り検出符号を、当該列を構成する各文字のコードを用いて生成し、当該第1の文書を構成する各文字を当該複数の行のいずれとも異なりかつ当該複数の列のいずれとも異なる組合せになるように分散させて複数の組にグループ化し、当該複数の組のそれぞれについて、誤りの検出用の符号である第3の誤り検出符号を、当該組を構成する各文字のコードを用いて生成する第1のステップと、
    前記複数の第1の誤り検出符号、前記複数の前記第2の誤り検出符号、および前記複数の第3の誤り検出符号を表わす誤り検出画像を生成する第2のステップと、
    前記第1の文書および前記誤り検出画像を用紙に印刷する第3のステップと、
    用紙に記されている文書である第2の文書を構成する各文字を認識する第4のステップと、
    前記用紙に記されている前記誤り検出画像から前記複数の第1の誤り検出符号、前記複数の第2の誤り検出符号、および複数の第3の誤り検出符号を抽出する第5のステップと、
    前記第2の文書の複数の行のそれぞれについて、誤りの検出用の符号である第4の誤り検出符号を、当該行を構成する各文字のコードを用いて生成し、当該第2の文書の複数の列それぞれについて、誤りの検出用の符号である第5の誤り検出符号を、当該列を構成する各文字のコードを用いて生成し、当該第2の文書を構成する各文字を当該複数の行のいずれとも異なりかつ当該複数の列のいずれとも異なる組合せになるように分散させて複数の組にグループ化し、当該複数の組のそれぞれについて、誤りの検出用の符号である第6の誤り検出符号を、当該組を構成する各文字のコードを用いて生成する第6のステップと、
    前記第2の文書の、前記第1の誤り検出符号と前記第4の誤り検出符号とが相違する行である誤り行、前記第2の誤り検出符号と前記第5の誤り検出符号とが相違する列である誤り列、および前記第3の誤り検出符号と前記第6の誤り検出符号とが相違する組である誤り組が重なる位置である誤り位置を検出する第7のステップと、
    前記誤り位置の文字を修正する第8のステップと、
    前記誤り列が所定の数以上連続する場合に、前記誤り行と当該連続する誤り列のうちの最も先頭に近い前記誤り列とが重なる位置である調整位置を検出する、第9のステップと、
    前記第6のステップの前に、前記第2の文書の前記調整位置の行方向に隣接する位置に所定の数だけ文字を挿入し、または、前記調整位置から行方向にある文字を、当該調整位置の文字または当該調整位置の文字に隣接する文字から順に行方向に所定の数だけ削除する、第10のステップと、
    を有することを特徴とする文書修正方法。
  2. 前記第1のステップの前に、前記第1の文書を所定の規則に従って調整する第11のステップと、
    前記第6のステップの前に、前記第2の文書を前記所定の規則に従って調整する第12のステップと、を備える、
    請求項1に記載の文書修正方法。
  3. 前記第1のステップにおいて、当該第1の文書を構成する各文字を、前記複数の行のそれぞれの先頭の文字を分散させ、かつ、前記複数の行のそれぞれを構成する文字を所定のパターンに従って分散させることによって、前記複数の組にグループ化して、前記第3の誤り検出符号を生成する、
    請求項1または請求項2に記載の文書修正方法。
  4. 前記第8のステップにおいて前記誤り位置の文字が修正された前記第2の文書について、前記誤り行の第4の誤り検出符号、前記誤り列の第5の誤り検出符号、および前記誤り組の第6の誤り検出符号を生成する第13のステップと、
    前記第1の誤り検出符号と前記第13のステップで生成された前記第4の誤り検出符号とが一致するか否か、前記第2の誤り検出符号と前記第13のステップで生成された前記第5の誤り検出符号とが一致するか否か、前記第3の誤り検出符号と前記第13のステップで生成された前記第6の誤り検出符号とが一致するか否かを判別することによって、前記誤り位置の文字が正しい文字に修正されたか否かを判別する第14のステップと、を備える、
    請求項1ないし請求項のいずれかに記載の文書修正方法。
  5. 第1の文書が印刷された用紙から取得した画像に対して文字認識を行うことによって第2の文書を取得する文字認識手段と、
    前記第1の文書の複数の行のそれぞれについて、当該行を構成する各文字のコードを用いて生成された、誤りを検出する符号である第1の誤り検出符号、当該第1の文書の複数の列のそれぞれについて、当該列を構成する各文字のコードを用いて生成された、誤りを検出する符号である第2の誤り検出符号、および当該第1の文書を構成する各文字を当該複数の行のいずれとも異なりかつ当該複数の列のいずれとも異なる組合せになるように分散させて複数の組にグループ化し、当該複数の組のそれぞれについて、当該組を構成する各文字のコードを用いて生成された、誤りの検出用の符号である第3の誤り検出符号を取得する、誤り検出符号取得手段と、
    前記第2の文書の複数の行のそれぞれについて、誤りの検出用の符号である第4の誤り検出符号を、当該行を構成する各文字のコードを用いて生成し、当該第2の文書の複数の列それぞれについて、誤りの検出用の符号である第5の誤り検出符号を、当該列を構成する各文字のコードを用いて生成し、当該第2の文書を構成する各文字を当該複数の行のいずれとも異なりかつ当該複数の列のいずれとも異なる組合せになるように分散させて複数の組にグループ化し、当該複数の組のそれぞれについて、誤りの検出用の符号である第6の誤り検出符号を、当該組を構成する各文字のコードを用いて生成する、誤り検出符号生成手段と、
    前記第2の文書の、前記第1の誤り検出符号と前記第4の誤り検出符号とが相違する行である誤り行、前記第2の誤り検出符号と前記第5の誤り検出符号とが相違する列である誤り列、および前記第3の誤り検出符号と前記第6の誤り検出符号とが相違する組である誤り組が重複する位置である誤り位置を検出する誤り位置検出手段と、
    前記誤り位置の文字を修正する修正手段と、
    前記誤り列が所定の数以上連続する場合に、前記誤り行と当該連続する誤り列のうちの最も先頭に近い前記誤り列とが重なる位置である調整位置を検出する、調整位置検出手段と、
    前記第2の文書の前記調整位置の行方向に隣接する位置に所定の数だけ文字を挿入し、または、前記調整位置から行方向にある文字を、当該調整位置の文字または当該調整位置の文字に隣接する文字から順に行方向に所定の数だけ削除する、テキスト長調整手段と、を備え、
    前記誤り検出符号生成手段は、前記テキスト長調整手段によって調整された前記第2の文書の複数の行について前記第4の誤り検出符号を生成し、当該第2の文書の複数の列について前記第5の誤り検出符号を生成し、当該第2の文書の複数の組について前記第6の誤り検出符号を生成する、
    とを特徴とする文書修正装置。
  6. 前記第1の文書を所定の規則に従って調整する第1の文書調整手段と、
    前記第2の文書を前記所定の規則に従って調整する第2の文書調整手段と、を備え、
    前記誤り検出符号取得手段は、前記第1の文書調整手段によって調整された前記第1の文書の複数の行について前記第1の誤り検出符号を取得し、当該第1の文書の複数の列について前記第2の誤り検出符号を取得し、当該第1の文書の複数の組について前記第3の誤り検出符号を取得し、
    前記誤り検出符号生成手段は、前記第2の文書調整手段によって調整された前記第2の文書の複数の
    についての第4の誤り検出符号、第5の誤り検出符号、および第6の誤り検出符号を生成する、
    請求項に記載の文書修正装置。
  7. 前記誤り検出符号取得手段は、当該第1の文書を構成する各文字を、前記複数の行のそれぞれの先頭の文字を分散させ、かつ、前記複数の行のそれぞれを構成する文字を所定のパターンに従って分散させることによって、前記複数の組にグループ化して、前記第3の誤り検出符号を生成する、
    請求項5または請求項6に記載の文書修正装置。
  8. 前記修正手段によって前記誤り位置の文字が修正された前記第2の文書について、前記誤り行の第4の誤り検出符号、前記誤り列の第5の誤り検出符号、および前記誤り組の第6の誤り検出符号を生成する第2の誤り検出符号生成手段と、
    前記第1の誤り検出符号と前記第2の誤り検出符号生成手段で生成された前記第4の誤り検出符号とが一致するか否か、前記第2の誤り検出符号と前記第2の誤り検出符号生成手段で生成された前記第5の誤り検出符号とが一致するか否か、前記第3の誤り検出符号と前記第2の誤り検出符号生成手段で生成された前記第6の誤り検出符号とが一致するか否かを判別することによって、前記誤り位置の文字が正しい文字に修正されたか否かを判別する判別手段と、を備える、
    請求項ないし請求項のいずれかに記載の文書修正装置。
  9. 前記用紙には、前記複数の第1の誤り検出符号、前記複数の第2の誤り検出符号、および前記複数の第3の誤り検出符号を表わす誤り検出画像が記されており、
    前記誤り検出符号取得手段は、前記用紙から読み取られた前記誤り検出画像に基づいて前記複数の第1の誤り検出符号、前記複数の第2の誤り検出符号、および前記複数の第3の誤り検出符号を取得する、
    請求項ないし請求項のいずれかに記載の文書修正装置。
  10. 文書を修正するコンピュータに用いられるコンピュータプログラムであって、
    前記コンピュータに、
    第1の文書が印刷された用紙から取得した画像に対して文字認識を行うことによって第2の文書を取得する文字認識処理と、
    前記第1の文書の複数の行のそれぞれについて、当該行を構成する各文字のコードを用いて生成された、誤りを検出する符号である第1の誤り検出符号、当該第1の文書の複数の列のそれぞれについて、当該列を構成する各文字のコードを用いて生成された、誤りを検出する符号である第2の誤り検出符号、および当該第1の文書を構成する各文字を当該複数の行のいずれとも異なりかつ当該複数の列のいずれとも異なる組合せになるように分散させて複数の組にグループ化し、当該複数の組のそれぞれについて、当該組を構成する各文字のコードを用いて生成された、誤りの検出用の符号である第3の誤り検出符号を取得する、誤り検出符号取得処理と、
    前記第2の文書の複数の行のそれぞれについて、誤りの検出用の符号である第4の誤り検出符号を、当該行を構成する各文字のコードを用いて生成し、当該第2の文書の複数の列それぞれについて、誤りの検出用の符号である第5の誤り検出符号を、当該列を構成する各文字のコードを用いて生成し、当該第2の文書を構成する各文字を当該複数の行のいずれとも異なりかつ当該複数の列のいずれとも異なる組合せになるように分散させて複数の組にグループ化し、当該複数の組のそれぞれについて、誤りの検出用の符号である第6の誤り検出符号を、当該組を構成する各文字のコードを用いて生成する、誤り検出符号生成処理と、
    前記第2の文書の、前記第1の誤り検出符号と前記第4の誤り検出符号とが相違する誤り行、前記第2の誤り検出符号と前記第5の誤り検出符号とが相違する誤り列、および前記第3の誤り検出符号と前記第6の誤り検出符号とが相違する誤り組が重複する位置である誤り位置を検出する誤り位置検出処理と、
    前記誤り位置の文字を修正する修正処理と、
    前記誤り列が所定の数以上連続する場合に、前記誤り行と当該連続する誤り列のうちの最も先頭に近い前記誤り列とが重なる位置である調整位置を検出する、調整位置検出処理と、
    前記第2の文書の前記調整位置の行方向に隣接する位置に所定の数だけ文字を挿入し、または、前記調整位置から行方向にある文字を、当該調整位置の文字または当該調整位置の文字に隣接する文字から順に行方向に所定の数だけ削除する、テキスト長調整処理と、
    を実行させ、
    前記誤り検出符号生成処理において、当該テキスト長調整処理によって調整された前記第2の文書の複数の行について前記第4の誤り検出符号を生成し、当該第2の文書の複数の列について前記第5の誤り検出符号を生成し、当該第2の文書の複数の組について前記第6の誤り検出符号を生成する、
    ことを特徴とするコンピュータプログラム。
  11. 前記第1の文書を所定の規則に従って調整する第1の文書調整処理と、
    前記第2の文書を前記所定の規則に従って調整する第2の文書調整処理と、を前記コンピュータに実行させ、
    前記誤り検出符号取得処理において、前記第1の文書調整処理によって調整された前記第1の文書の複数の行について前記第1の誤り検出符号を取得し、当該第1の文書の複数の列について前記第2の誤り検出符号を取得し、当該第1の文書の複数の組について前記第3の誤り検出符号を取得し、
    前記誤り検出符号生成処理において、前記第2の文書調整処理によって調整された前記第2の文書についての第4の誤り検出符号、第5の誤り検出符号、および第6の誤り検出符号を生成する、
    請求項10に記載のコンピュータプログラム。
  12. 前記誤り検出符号取得処理において、当該第1の文書を構成する各文字を、前記複数の行のそれぞれの先頭の文字を分散させ、かつ、前記複数の行のそれぞれを構成する文字を所定のパターンに従って分散させることによって、前記複数の組にグループ化して、前記第3の誤り検出符号を生成する、
    請求項10または請求項11に記載のコンピュータプログラム。
  13. 前記修正処理によって前記誤り位置の文字が修正された前記第2の文書について、前記誤り行の第4の誤り検出符号、前記誤り列の第5の誤り検出符号、および前記誤り組の第6の誤り検出符号を生成する第2の誤り検出符号生成処理と、
    前記第1の誤り検出符号と前記第2の誤り検出符号生成処理で生成された前記第4の誤り検出符号とが一致するか否か、前記第2の誤り検出符号と前記第2の誤り検出符号生成処理で生成された前記第5の誤り検出符号とが一致するか否か、前記第3の誤り検出符号と前記第2の誤り検出符号生成処理で生成された前記第6の誤り検出符号とが一致するか否かを判別することによって、前記誤り位置の文字が正しい文字に修正されたか否かを判別する判別処理と、を前記コンピュータに実行させる、
    請求項10ないし請求項12のいずれかに記載のコンピュータプログラム。
  14. 前記用紙には、前記複数の第1の誤り検出符号、前記複数の第2の誤り検出符号、および前記複数の第3の誤り検出符号を表わす誤り検出画像が記されており、
    前記誤り検出符号取得処理は、前記用紙から読み取られた前記誤り検出画像に基づいて前記複数の第1の誤り検出符号、前記複数の第2の誤り検出符号、および前記複数の第3の誤り検出符号を取得する、
    請求項10ないし請求項13のいずれかに記載のコンピュータプログラム。
JP2016064365A 2016-03-28 2016-03-28 文書修正方法、文書修正装置、およびコンピュータプログラム Active JP6763173B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016064365A JP6763173B2 (ja) 2016-03-28 2016-03-28 文書修正方法、文書修正装置、およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016064365A JP6763173B2 (ja) 2016-03-28 2016-03-28 文書修正方法、文書修正装置、およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2017182195A JP2017182195A (ja) 2017-10-05
JP6763173B2 true JP6763173B2 (ja) 2020-09-30

Family

ID=60006184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016064365A Active JP6763173B2 (ja) 2016-03-28 2016-03-28 文書修正方法、文書修正装置、およびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6763173B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832371A (zh) * 2019-04-23 2020-10-27 珠海金山办公软件有限公司 文本图片矫正方法、装置、电子设备及机器可读存储介质
CN111145143B (zh) * 2019-11-29 2023-07-18 泰康保险集团股份有限公司 问题图像确定方法及装置、电子设备和存储介质

Also Published As

Publication number Publication date
JP2017182195A (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
US7349577B2 (en) Image processing method and image processing system
JP4251629B2 (ja) 画像処理システム及び情報処理装置、並びに制御方法及びコンピュータプログラム及びコンピュータ可読記憶媒体
KR100341504B1 (ko) 기계로 판독가능한 코드와 그 코드의 인코딩/디코딩 방법및 장치
JP4742404B2 (ja) 画像認識装置、画像形成装置、画像認識方法および画像認識プログラムを記憶したコンピュータ読取り可能な記録媒体
US20030026507A1 (en) Sorting images for improved data entry productivity
JPH08305731A (ja) 文書格納等の方法及び文書サーバ
US20060010115A1 (en) Image processing system and image processing method
US20220201146A1 (en) Information processing apparatus, information processing system, control method of the same, and storage medium
JP2020170309A (ja) 画像処理システム、画像処理装置、画像処理方法、及びプログラム
US10909404B2 (en) Image processing device and image processing method
JP2006031299A (ja) 文字認識方法、文字データの修正履歴処理方法およびシステム
US20180270387A1 (en) Printing apparatus, server, printing method, and control method
JP6763173B2 (ja) 文書修正方法、文書修正装置、およびコンピュータプログラム
US20220189186A1 (en) Image processing apparatus, image processing method, and non-transitory storage medium
JP2023165712A (ja) サーバ、制御方法、プログラム
JP2020184275A (ja) 画像処理装置、画像処理方法、及びプログラム
JP6749583B2 (ja) 情報処理装置、画像処理装置およびプログラム
US11972208B2 (en) Information processing device and information processing method
JP2007124145A (ja) 画像形成装置、ユーザ認証方法、およびコンピュータプログラム
JP3159087B2 (ja) 文書照合装置および方法
JP7271889B2 (ja) 情報処理装置及びプログラム
JP2013182459A (ja) 情報処理装置、情報処理方法及びプログラム
US20240193975A1 (en) Image processing apparatus, image processing method, and storage medium
JP4280939B2 (ja) 位置面システム画像認識コンピューターソフトウェア
JP4517667B2 (ja) 文書画像照合装置、文書画像位置合わせ方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200305

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: 20200811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200824

R150 Certificate of patent or registration of utility model

Ref document number: 6763173

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150