[第1の実施形態]
第1の実施形態では、サーバ装置200が、画像形成装置300、及び端末装置400から受信した帳票のファイルから、各項目のデータを抽出する例について説明する。第1の実施形態では、サーバ装置200は、例えば、受信したファイルが、ファイルのフォーマットが変換された、テキストデータを含むファイルでない場合、受信したファイルを文字認識して生成したテキストデータを利用する。また、サーバ装置200は、例えば、受信したファイルが、ファイルのフォーマットが変換された、テキストデータを含むファイルである場合、当該テキストデータを利用する。なお、ファイルのフォーマットが変換された、テキストデータを含むファイルとは、例えば、文書、表、及びスライド等の所定のファイルフォーマットのファイルから、PDF(Portable Document Format)等のファイルフォーマットに変換されたPDFファイル等である。これにより、より精度が高いテキストデータを利用可能とすることができる。以下では、PDFファイルを処理対象とする例について説明するが、開示の技術は、PDF以外のファイルフォーマットのファイルを処理対象とするシステムにも適用できる。
以下に図面を参照して、実施形態について説明する。図1は、実施形態に係る情報処理システムのシステム構成の一例を示す図である。
実施形態に係る情報処理システム100は、サーバ装置200、画像形成装置300、端末装置400を有する。実施形態に係る情報処理システム100において、サーバ装置200と、画像形成装置300と、端末装置400とは、ネットワークを介して接続される。
また、実施形態に係る端末装置400は、例えば、ネットワークを介して基幹システム500と接続される。基幹システム500とは、例えば、実施形態に係る情報処理システム100において帳票を認識した結果を用いて、特定の処理を行うシステムである。具体的には、例えば、基幹システム500は、会計システムや、見積もり作成システム等であってもよい。
実施形態に係る情報処理システム100において、サーバ装置200は、画像形成装置300のスキャナ機能によって読み取られた帳票の画像を含むPDFファイルを、画像形成装置300から受信する。また、サーバ装置200は、ファイルのフォーマットが変換された、テキストデータを含むPDFファイルを、端末装置400から受信する。そして、サーバ装置200は、受信したPDFファイルから、帳票に含まれる項目と項目の値とを抽出し、項目と項目の値とを対応付けたテキストデータとする。
以下の説明では、画像形成装置300のスキャナ機能によって読み取られた帳票の画像を帳票画像と呼ぶ。
また、以下の説明では、帳票に含まれる項目と、この項目の値とを抽出し、項目と項目の値とをテキストデータに変換して対応付けることを、帳票認識と呼ぶ。
実施形態に係るサーバ装置200は、記憶部210と、制御部220とを有する。記憶部210には、PDFファイルデータベース230、種別判定データベース240、帳票定義データベース250、認識結果データベース260が設けられている。
PDFファイルデータベース230は、PDFファイルが格納される。種別判定データベース240は、帳票の種類を判別する際に参照される情報が格納される。帳票定義データベース250は、制御部220による帳票認識を行う際に参照される帳票定義情報が格納される。認識結果データベース260は、制御部220による帳票認識の結果を示す情報が格納される。
実施形態に係る制御部220は、PDFファイルデータベース230に格納されたPDFファイルを取得し、種別判定データベース240を参照して帳票の種別の判定と、参照すべき帳票定義情報の特定を行う。そして、制御部220は、帳票定義データベース250において、特定された帳票定義情報を用いて帳票認識を行い、その結果を認識結果データベース260へ格納する。帳票定義情報とは、帳票に含まれる項目名の記載位置を示す情報と、項目名と項目の値との位置関係を示す情報とを含む。
ここで、実施形態に係る制御部220は、帳票認識を行う際に、帳票定義データベース250に格納された、汎用定義情報と、個社定義情報と、を参照する。
実施形態に係る汎用定義情報とは、一般的な帳票のレイアウトを定義した帳票定義情報であり、個社定義情報とは、情報処理システム100を利用する利用者固有の帳票のレイアウトを定義した帳票定義情報である。種別判定データベース240と、帳票定義データベース250の詳細は後述する。
本実施形態では、このように、帳票認識の際に、2種類の帳票定義情報を用いることで、汎用的な帳票に加えて、利用者固有の帳票も認識することができ、帳票の認識の精度を向上させることができる。
実施形態に係る情報処理システム100において、画像形成装置300は、スキャナ機能を有する複合機である。画像形成装置300は、コピー機能、FAX機能、スキャナ機能等を実現するためのアプリケーションが搭載されており、各機能と対応するアプリケーションを選択することで、これらの機能が実現される。
実施形態に係る端末装置400は、情報処理システム100を利用する利用者によって使用される。また、端末装置400には、サーバ装置200による帳票認識の結果が表示されてもよい。
尚、本実施形態における利用者とは、例えば、企業等である。より具体的には、例えば、利用者とは、情報処理システム100が提供するサービスを利用するための契約を締結している事業所や企業、団体等である。
尚、図1の例では、サーバ装置200は、記憶部210内に4つのデータベースを有する構成としたが、これに限定されない。各データベースは、一部がサーバ装置200の外部装置に設けられていてもよいし、各データベース全てが外部装置に設けられていてもよい。
また、図1の例では、サーバ装置200が制御部220を実現するものとしたが、これに限定されない。制御部220は、複数の情報処理装置によって実現されてもよい。
また、図1の例では、情報処理システム100に含まれる画像形成装置300と端末装置400とは、それぞれ1台としているが、情報処理システム100に含まれる画像形成装置300と端末装置400の台数は、任意の数であってよい。
次に、図2を参照して、実施形態に係るサーバ装置200のハードウェア構成について説明する。図2は、実施形態に係るサーバ装置のハードウェア構成の一例を示す図である。
実施形態に係るサーバ装置200は、それぞれバスBで相互に接続されている入力装置21、出力装置22、ドライブ装置23、補助記憶装置24、メモリ装置25、演算処理装置26及びインターフェース装置27を含む情報処理装置である。
入力装置21は、各種の情報の入力を行うための装置であり、例えばキーボードやポインティングデバイス等であってもよい。出力装置22は、各種の情報の出力を行うためものであり、例えばディスプレイ等であってもよい。インターフェース装置27は、LANカード等を含み、ネットワークに接続する為に用いられる。
情報処理プログラムは、サーバ装置200を制御する各種プログラムの少なくとも一部である。情報処理プログラムは例えば記憶媒体28の配布やネットワークからのダウンロード等によって提供される。情報処理プログラムを記録した記憶媒体28は、CD-ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記憶媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記憶媒体を用いることができる。
また、情報処理プログラムは、情報処理プログラムを記録した記憶媒体28がドライブ装置23にセットされると、記憶媒体28からドライブ装置23を介して補助記憶装置24にインストールされる。ネットワークからダウンロードされた情報処理プログラムは、インターフェース装置27を介して補助記憶装置24にインストールされる。
補助記憶装置24は、インストールされた情報処理プログラムを格納すると共に、必要なファイル、データ等を格納する。メモリ装置25は、サーバ装置200の起動時に補助記憶装置24から情報処理プログラムを読み出して格納する。そして、演算処理装置26はメモリ装置25に格納された情報処理プログラムに従って、後述するような各種処理を実現している。
実施形態に係る端末装置400のハードウェア構成は、サーバ装置200と同様であるから、説明を省略する。尚、端末装置400は、例えば、タブレット型の端末装置や、スマートフォン等であっても良く、入力装置21と出力装置22との代わりに、タッチパネル等により実現される表示操作装置を有していてもよい。
次に、実施形態に係るサーバ装置200の有する種別判定データベース240と帳票定義データベース250について説明する。
図3は、第1の実施形態に係る種別判定データベースの一例を示す図である。実施形態に係る種別判定データベース240は、情報の項目として、定義ID、定義種別、文書種別、識別文字列を有する。種別判定データベース240において、項目「定義ID」は、その他の項目と対応付けられており、項目「定義ID」の値と、その他の項目の値とを含む情報を、種別判定情報と呼ぶ。
項目「定義ID」の値は、帳票定義情報を特定するための識別子を示す。
項目「定義種別」の値は、帳票定義情報の種類を示す。本実施形態では、帳票定義情報の種類として、汎用定義情報と個社定義情報の他に、特定定義情報を含む。特定定義情報とは、特定の事業者等によって発行される特定の帳票を定義する帳票定義情報である。特定の帳票とは、具体的には、例えば、一般的に使用されている宅配業者の伝票等である。
項目「文書種別」の値は、帳票の種類を示す。帳票の種類とは、具体的には、例えば、請求書、見積書、注文書等である。項目「識別文字列」の値は、帳票の種類を特定するための文字列を示す。具体的には、例えば、「請求書」又は「請求」という文字列を含む帳票は、項目「文書種別」が示す帳票の種類が「請求書」となる。また、「R社」及び「請求」という両方の文字列を含む帳票画像は、項目「文書種別」が示す帳票の種類が「R社用請求書」となる。
図3の例では、例えば、定義ID「H01」の帳票定義情報の種類は汎用定義情報であり、定義ID「H01」の汎用定義情報は、「請求書」のレイアウトを定義した情報であり、PDFファイルから「請求」又は「請求書」という文字列が抽出された場合に、参照される。
次に、図4乃至図7を参照して、実施形態に係る帳票定義データベース250について説明する。図4は、第1の実施形態に係る帳票定義データベースに格納される帳票定義情報の種類を示す図である。
実施形態に係る帳票定義データベース250には、汎用定義情報251と、個社定義情報252と、特定定義情報253と、が格納されている。
実施形態に係る汎用定義情報251とは、帳票の中でも、複数の利用者により利用される汎用性の高いレイアウトの帳票の帳票定義情報である。汎用定義情報251は、3つの帳票定義情報のうち、最も優先度の低い帳票定義情報である。
実施形態に係る個社定義情報252とは、帳票の中でも、利用者が独自に設計したレイアウトの帳票の帳票定義情報であり、利用者専用の帳票定義情報である。個社定義情報252は、3つの帳票定義情報のうち、最も尊重されるべき定義であり、最も優先度が高い帳票定義情報である。
実施形態に係る特定定義情報253は、帳票の中でも、一般的に利用される帳票のレイアウトを示す帳票定義情報である。特定定義情報253の優先度は、3つの帳票定義情報のうちの中間となる。
実施形態に係る制御部220は、この3つの帳票定義情報を参照して、PDFファイルの認識を行う。したがって、本実施形態では、例えば、PDFファイルが、個社定義情報252においてレイアウトが定義されていない帳票のものであった場合でも、汎用定義情報251や特定定義情報253で定義されていれば、このPDFファイルを認識できる。
図5は、第1の実施形態に係る汎用定義情報の一例を示す図である。汎用定義情報251は、定義ID毎に生成されるものであり、情報の項目として、項目ID、項目名、方向、距離等を含む。つまり、実施形態に係る汎用定義情報251は、項目「定義ID」と、その他の項目とが対応付けられており、項目「定義ID」の値と、その他の項目の値とを含む。
項目「項目ID」の値は、帳票に含まれる項目を特定するための識別子である。項目「項目名」の値は、項目の名称を示す。
項目「方向」、「距離」等は、文字列を抽出する範囲を示す。例えば、項目「方向」の値が「RD」であり、項目「距離」の値が「20mm」であった場合、項目名となる文字列と外接する矩形の右下の座標から下に向かって20mm以内の範囲から、文字列を抽出することを示す。
つまり、実施形態に係る項目「方向」、「距離」等は、文字列を抽出する範囲を示す条件であり、この条件は、項目名と対応付けられている。尚、図5の例では、文字列を抽出する範囲を示す条件として、項目「方向」、「距離」を挙げたが、条件には、他の項目が含まれていてもよい。
したがって、例えば、項目ID「2」の項目名「合計」という文字列と外接する矩形の右下の座標から下に向かって20mm以内の範囲から抽出された文字列は、項目名「合計」と対応する項目の値と認識される。
尚、汎用定義情報251では、帳票に含まれる可能性のある複数の項目に関する情報が含まれるものとした。
図6は、第1の実施形態に係る個社定義情報の一例を示す図である。実施形態に係る個社定義情報252は、利用者毎に登録されるものであり、情報の項目として、利用者ID、定義ID、項目名、方向、距離等を含む。
項目「利用者ID」の値は、利用者を特定するための識別子である。尚、本実施形態では、定義ID、項目名、方向、距離等は、汎用定義情報251と同様であるから説明を省略する。
尚、本実施形態では、定義種別が個社定義情報となる帳票定義情報の定義IDは、利用者IDを含むようにしてもよい。
また、個社定義情報252では、利用者によって、項目名と、項目の値が記載されている範囲を示す条件とが登録された項目に関する情報が格納される。したがって、個社定義情報252に含まれる項目IDは、汎用定義情報251に含まれる項目IDの一部となる場合がある。
図6の例では、利用者ID「A」によって登録された個社定義情報252を示しており、この個社定義情報252は、定義IDが「A01」であり、文書種別が「R社用請求書」となる。
図7は、第1の実施形態に係る特定定義情報の一例を示す図である。実施形態に係る特定定義情報253は、特定の帳票毎に登録されるものであり、情報の項目として、定義ID、項目名、方向、距離等を含む。図7の本実施形態では、定義ID、項目名、方向、距離等は、汎用定義情報251と同様であるから説明を省略する。
尚、実施形態に係る特定定義情報253は、特定の事業者毎に設けられていてもよい。この場合には、特定定義情報253には、情報の項目として、事業者IDが含まれていてもよい。
次に、図8を参照して、実施形態に係るサーバ装置200の機能について説明する。図8は、第1の実施形態に係るサーバ装置の機能を説明する図である。
実施形態に係るサーバ装置200では、例えば、メモリ装置25や補助記憶装置24等に格納された情報処理プログラムを演算処理装置26が読み出して実行することで、後述する各部の機能が実現される。
実施形態に係るサーバ装置200は、制御部220を有する。制御部220は、入力受付部221、認証処理部222、処理部270を有する。
入力受付部221は、サーバ装置200に対する各種の入力を受け付ける。具体的には、入力受付部221は、情報処理システム100にログインするための認証情報の入力を受け付ける。認証情報とは、例えば、利用者IDとパスワード等である。また、入力受付部221は、例えば、画像形成装置300、及び端末装置400から送信されたPDFファイルの入力を受け付ける。
認証処理部222は、入力受付部221が入力を受け付けた認証情報に基づき、認証を行う。尚、認証処理部222は、例えば、サーバ装置200の外部に設けられた認証サーバに対して、入力された認証情報を送信し、認証サーバによる認証の結果を取得してもよい。認証処理部222は、利用者が認証されると、入力受付部221が受け付けたPDFファイルを処理部270に渡してもよい。
処理部270は、例えば、入力受付部221により第1テキストデータを含むPDFファイルが取得されると、当該PDFファイルに含まれる画像を文字認識して生成される第2テキストデータを用いて所定の処理を行うか、当該第1テキストデータを用いて当該所定の処理を行うかを、当該PDFファイルに基づいて決定する。
処理部270は、データ格納部271、ジョブリスト生成部272、前処理部274、文字認識部275、定義特定部276、項目抽出部277、表示画面生成部278、出力部279を有する。
データ格納部271は、画像形成装置300からPDFファイルを受信すると、PDFファイルデータベース230に格納する。
ジョブリスト生成部272は、入力受付部221が画像データの入力を受け付けると、ジョブリストにジョブを登録し、ジョブリストを管理する。ジョブリストの詳細は後述する。
前処理部274は、PDFファイルデータベース230から取得したPDFファイルに対して、帳票認識を行うための前処理を行う。
文字認識部275は、PDFファイルから、文字列と、文字列が配置された位置を示す情報とを抽出し、認識結果情報として保持する。認識結果情報の詳細は後述する。
定義特定部276は、種別判定データベース240を参照し、認識結果情報に含まれる文字列と対応する定義IDを特定する。言い換えれば、定義特定部276は、帳票画像データから抽出された文字列に基づき、帳票認識の際に参照する帳票定義情報を特定し、特定した帳票定義情報を帳票定義データベース250から取得する取得部である。
項目抽出部277は、定義特定部276により特定された帳票定義情報と、認識結果情報とに基づき、帳票画像データに含まれる項目と、項目の値とを抽出して対応付けを行い、項目の項目IDと、項目の値とを対応付けた認識結果データを生成する。尚、XML形式のファイル(eXtensible Markup Language)を認識結果データとして生成しても良い。また、項目抽出部277は、帳票における項目の記載位置と、項目と項目の値との位置関係を抽出する。
表示画面生成部278は、認識結果データベース260に格納された認識結果データを用いて、認識結果確認画面を生成する。尚、認識結果確認画面に表示する項目名は、予め項目IDと対応付けて登録しておき、認識結果確認画面を生成するときに、認識結果データに含まれる項目IDに対応する項目名を特定して認識結果確認画面に表示させると良い。
出力部279は、表示画面生成部278が生成した認識結果確認画面を出力する。言い換えれば、出力部279は、表示画面生成部278が生成した認識結果確認画面を端末装置400のウェブブラウザ上で表示させる。
以下に、図9Aを参照して、第1の実施形態に係る情報処理システム100の処理の一例について説明する。図9Aは、第1の実施形態に係る情報処理システムの処理の一例(その一)を説明するシーケンス図である。以下では、サーバ装置200が、画像形成装置300から受信したPDFファイルを処理する例について説明する。
情報処理システム100において、画像形成装置300は、利用者から帳票認識を行うためのアプリケーションの起動要求を受け付けると(ステップS901)、このアプリケーションを起動させる(ステップS902)。
続いて、画像形成装置300は、利用者から認証情報の入力を受け付けると(ステップS903)、この認証情報をサーバ装置200へ送信し、認証要求を行う(ステップS904)。
サーバ装置200は、認証要求を受けて、認証処理部222により認証を行い、その結果を画像形成装置300へ通知する(ステップS905)。尚、ここでは、利用者が認証された場合の処理を示している。
続いて、画像形成装置300は、帳票のスキャン指示を受け付け(ステップS906)、帳票のスキャンを行い、スキャンした画像を含むPDFファイルを生成する(ステップS907)。続いて、画像形成装置300は、生成したPDFファイルをサーバ装置200へ送信する(ステップS908)。
サーバ装置200は、入力受付部221がPDFファイルの入力を受け付けると、認証処理部222がこのPDFファイルを処理部270へ渡す(ステップS909)。なお、サーバ装置200は、認証処理部222を介さずに、入力受付部221から処理部270へPDFファイルを渡すようにしてもよい。
サーバ装置200の処理部270は、PDFファイルを受け取ると、ジョブリスト生成部272により、ジョブリストにジョブを登録する(ステップS910)。続いて、処理部270は、データ格納部271により、PDFファイルをPDFファイルデータベース230へ格納する(ステップS911)。
続いて、処理部270は、PDFファイルデータベース230から認識する対象となるPDFファイルを取得し(ステップS912)、帳票を認識する処理を実行する(ステップS913)。ステップS912の処理の詳細は後述する。
続いて、処理部270は、項目抽出部277が生成した認識結果データを認識結果データベース260に格納する(ステップS914)。
情報処理システム100において、端末装置400は、利用者からのブラウザの表示指示の入力を受け付けると(ステップS915)、サーバ装置200に対して認識結果データを表示させるブラウザの表示要求を行う(ステップS916)。
また、端末装置400は、利用者から認証情報の入力を受け付けて(ステップS917)、この認証情報をサーバ装置200へ送信する(ステップS918)。
サーバ装置200は、認証処理部222により、利用者の認証を行い(ステップS919)、その結果を端末装置400へ通知する(ステップS920)。尚、ここでは、利用者が認証された場合の処理を示す。
続いて、端末装置400は、利用者から、帳票画像の認識結果の閲覧指示の入力を受け付けると(ステップS921)、サーバ装置200に対して閲覧要求を行う(ステップS922)。
サーバ装置200は、閲覧要求を受けて、認識結果データベース260に格納されている認識結果データを取得し(ステップS923)、端末装置400のブラウザ上に表示させ(ステップS924)、処理を終了する。
以下に、図9Bを参照して、第1の実施形態に係る情報処理システム100の処理の一例について説明する。図9Bは、第1の実施形態に係る情報処理システムの処理の一例を説明するシーケンス図(その二)である。以下では、サーバ装置200が、端末装置400から受信したPDFファイルを処理する例について説明する。
情報処理システム100において、端末装置400は、利用者から帳票認識を行うためのアプリケーションの起動要求を受け付けると(ステップS951)、このアプリケーションを起動させる(ステップS952)。
続いて、端末装置400は、利用者から認証情報の入力を受け付けると(ステップS953)、この認証情報をサーバ装置200へ送信し、認証要求を行う(ステップS954)。
サーバ装置200は、認証要求を受けて、認証処理部222により認証を行い、その結果を端末装置400へ通知する(ステップS955)。尚、ここでは、利用者が認証された場合の処理を示している。
続いて、端末装置400は、帳票のアップロード指示を受け付け(ステップS956)、予め記憶されているPDFファイルをサーバ装置200へ送信する(ステップS958)。なお、当該PDFファイルは、他の端末装置400において、文書、表、及びスライド等の所定のファイルフォーマットのファイルが、PDF(Portable Document Format)等のファイルフォーマットに変換(エクスポート)されたファイルでもよい。なお、以下のステップS959からステップS974の処理は、上述した図9AのステップS919からステップS924の処理と同様でもよい。
サーバ装置200は、入力受付部221がPDFファイルの入力を受け付けると、認証処理部222がこのPDFファイルを処理部270へ渡す(ステップS959)。なお、サーバ装置200は、認証処理部222を介さずに、入力受付部221から処理部270へPDFファイルを渡すようにしてもよい。
サーバ装置200の処理部270は、PDFファイルを受け取ると、ジョブリスト生成部272により、ジョブリストにジョブを登録する(ステップS960)。続いて、処理部270は、データ格納部271により、PDFファイルをPDFファイルデータベース230へ格納する(ステップS961)。
続いて、処理部270は、PDFファイルデータベース230から認識する対象となるPDFファイルを取得し(ステップS962)、帳票を認識する処理を実行する(ステップS963)。
続いて、処理部270は、表示画面生成部278が生成した認識結果データを認識結果データベース260に格納する(ステップS964)。
情報処理システム100において、端末装置400は、利用者からのブラウザの表示指示の入力を受け付けると(ステップS965)、サーバ装置200に対して認識結果データを表示させるブラウザの表示要求を行う(ステップS966)。
また、端末装置400は、利用者から認証情報の入力を受け付けて(ステップS967)、この認証情報をサーバ装置200へ送信する(ステップS968)。
サーバ装置200は、認証処理部222により、利用者の認証を行い(ステップS969)、その結果を端末装置400へ通知する(ステップS970)。尚、ここでは、利用者が認証された場合の処理を示す。
続いて、端末装置400は、利用者から、帳票画像の認識結果の閲覧指示の入力を受け付けると(ステップS971)、サーバ装置200に対して閲覧要求を行う(ステップS972)。
サーバ装置200は、閲覧要求を受けて、認識結果データベース260に格納されている認識結果データを取得し(ステップS923)、認識結果確認画面を生成して端末装置400のブラウザ上に表示させ(ステップS924)、利用者に、表示された認識結果確認画面で認識結果を確認させて、処理を終了する。
ここで、図10を参照して、第1の実施形態に係るジョブリスト生成部272により生成されるジョブリストについて説明する。図10は、ジョブリストの一例を示す図である。
実施形態に係るサーバ装置200は、画像形成装置300からPDFファイルが入力されると、ジョブリスト生成部272により、PDFファイルとジョブIDとを対応付けたジョブリストとして保持する。
実施形態に係るジョブリスト101は、情報の項目として、ジョブID、利用者ID、帳票画像ファイルパス、認識結果ファイルパス、ステータス、定義IDを有する。
項目「ジョブID」の値は、ジョブを特定する識別子である。言い換えれば、項目「ジョブID」の値は、画像形成装置300から受信したPDFファイルを特定するための識別子である。
項目「利用者ID」の値は、情報処理システム100にログインした利用者を特定するための識別子である。
項目「画像ファイルパス」の値は、PDFファイルが格納されている場所を示す情報である。項目「認識結果ファイルパス」の値は、帳票画像を認識した結果の認識結果データが格納されている場所を示す情報である。
項目「ステータス」の値は、帳票画像の認識の進捗を示す。項目「定義ID」の値は、項目「画像ファイルパス」の値が示す場所に格納されたPDFファイルを認識する際に参照される帳票定義情報の定義IDを示す。
実施形態に係るサーバ装置200は、画像形成装置300からPDFファイルを受信すると、ジョブリスト生成部272により、ジョブIDを付与し、認証情報として取得した利用者IDを対応付けて、ジョブリスト101にレコードを追加する。そして、ジョブリスト生成部272は、PDFファイルがPDFファイルデータベース230に格納されると、この格納先を示す情報を項目「画像ファイルパス」の値として、追加する。
さらに、ジョブリスト生成部272は、帳票画像の認識において、参照する帳票定義情報が特定されると、その定義IDを項目「定義ID」の値として追加する。そして、ジョブリスト生成部272は、が完了して、認識結果データが認識結果データベース260に格納されると、この格納先を示す情報を項目「認識結果ファイルパス」の値として追加し、項目「ステータス」の値を完了とする。
次に、図11A、及び図11Bを参照して、第1の実施形態に係る処理部270の処理について説明する。図11A、及び図11Bは、第1の実施形態に係る処理部270の処理を説明するフローチャートである。図11A、及び図11Bでは、図9AのステップS913、及び図9BのステップS963の処理の詳細を示している。また、図11A、及び図11Bでは、複数のPDFファイルを受け取った場合の処理を示している。
処理部270は、PDFファイルデータベース230からPDFファイルを取得する(ステップS1101)。なお、処理部270は、端末装置400のユーザにより、PDFファイルに含まれているテキストデータを使用することが設定されている場合は、ステップS1102の処理に進み、端末装置400のユーザにより、PDFファイルに含まれているテキストデータを使用しないことが設定されている場合は、ステップS1105の処理に進む正にしてもよい。続いて、処理部270は、取得したPDFファイルに、テキストデータが含まれているか否かを判定する(ステップS1102)。ここで、画像形成装置300、及び端末装置400から受信したPDFファイルには、例えば、以下の(1)及び(2)のような場合に、テキストデータが含まれている。
(1)他の端末装置400等において、帳票の印刷物がスキャンされて(光学的に読み込まれて)作成されたPDFファイルの画像が文字認識され、文字認識の結果のテキストデータ(「第1テキストデータ」の一例。)が当該PDFに付加された場合。(2)他の端末装置400等において、文書、表、スライド等のテキストデータを含むファイルが、PDFファイルに変換された場合。
テキストデータが含まれていない場合(ステップS1102でNO)、ステップS1105の処理に進む。
一方、テキストデータが含まれている場合(ステップS1102でYES)、当該テキストデータを利用するか否かを判定する(ステップS1103)。ここで、取得したPDFファイルが、上述した(2)のような、ファイルのフォーマットが変換された、テキストデータを含むPDFファイルである等の場合に、当該テキストデータを利用すると判定してもよい。なお、この処理については後述する。
当該テキストデータを利用する場合(ステップS1103でYES)、処理部270は、当該テキストデータを処理対象のテキストデータ(「第1テキストデータ」の一例。)として保持し(ステップS1104)、後述するステップS1110の処理に進む。図14Aは、実施形態に係る処理対象のテキストデータの一例を示す図である。図14Aの例では、IDに対応付けて、座標X、座標Y、文字の幅、文字の高さ、確信度、及び文字が記憶される。IDは、各文字のIDである。座標X及び座標Yは、それぞれ、IDに係る文字の横方向、及び縦方向の位置の座標である。文字の幅、及び文字の高さは、それぞれ、IDに係る文字の幅、及び高さである。確信度は、IDに係る文字の画像認識の精度である。なお、確信度は必須ではない。
当該テキストデータを利用しない場合(ステップS1103でNO)、処理部270は、前処理部274により、PDFファイルをpng、またはjpeg形式等の画像に変換する(ステップS1105)。
続いて、前処理部274は、1ページ分の画像を選択し(ステップS1106)、前処理を行う(ステップS1107)。前処理とは、具体的には、例えば、画像の向きを揃える補正処理等である。
続いて、処理部270は、文字認識部275により、帳票画像から、文字が形成されている領域(以下、文字フィールド)を切り取る(ステップS1108)。続いて、処理部270は、文字認識部275により、切り取られた文字フィールドの中の文字を切り取り、文字認識し、文字認識の結果を処理対象のテキストデータ(「第2テキストデータ」の一例。)として保持する(ステップS1109)。このとき、文字認識部275は、切り出した文字の位置を示す座標も取得する。
続いて、処理部270は、処理対象のテキストデータに含まれる各文字の位置関係に基づいて読取結果情報を生成する(ステップS1110)。具体的に、処理部270は、認識された各文字の座標に基づいて、互いの距離が予め設定された閾値以内の文字を1つの文字列として認識し、文字列と、文字列が形成された領域の位置を示す座標などの情報とを対応付けて読取結果情報を生成する。読取結果情報の詳細は後述する。
続いて、処理部270は、項目抽出部277により、読取結果情報と種別判定データベース240とに基づき特定した個社定義情報252を用いて、項目と項目の値とを抽出する(ステップS1111)。
続いて、処理部270は、項目抽出部277により、読取結果情報と種別判定データベース240とに基づき特定した特定定義情報253を用いて、項目と項目の値とを抽出する(ステップS1112)。
続いて、処理部270は、項目抽出部277により、読取結果情報と種別判定データベース240とに基づき特定した汎用定義情報251を用いて、項目と項目の値とを抽出する(ステップS1113)。
続いて、処理部270は、項目と、項目の値との抽出に成功したか否かを判定する(ステップS1114)。具体的には、処理部270は、ステップS1111からステップS1113までの間で、項目抽出部277により抽出された項目と項目の値とが存在する場合に、項目と、項目の値との抽出に成功したと判定してもよい。
ステップS1114において、項目と項目の値の抽出に失敗した場合、処理部270は、端末装置400又は画像形成装置300に対してエラーを通知し(ステップS1115)、後述するステップS1118へ進む。
ステップS1114において、項目と項目の値との抽出に成功すると、処理部270は、項目抽出部277により、抽出された項目と項目の値とを対応付けてマージした認識結果データを生成する(ステップS1116)。マージする処理の詳細は後述する。
続いて、処理部270は、ジョブリスト生成部272により、認識結果データの生成に用いられた帳票定義情報の定義IDと、認識結果データの格納先とを、ジョブリスト101に登録する(ステップS1117)。
続いて、処理部270は、最後のページまで処理を実行したか否かを判定する(ステップS1118)。ステップS1117において、最後のページまで処理を実行していない場合、処理部270は、ステップS1106へ戻る。
ステップS1118において、最後のページまで処理を実行した場合、処理部270は、表示画面生成部278により、認識結果データを用いて生成された認識結果確認画面を端末装置400に表示させ(ステップS1119)、処理を終了する。
尚、図11A、及び図11Bの例では、認識結果データを表示させる処理まで実行するものとして説明したが、これに限定されない。処理部270は、端末装置400から、認識結果データの閲覧要求を受け付けてから、認識結果データを表示させてもよい。
≪テキストデータの利用判定処理≫
次に、図12を参照し、図11AのステップS1102の、テキストデータの利用判定処理の一例について説明する。図12は、実施形態に係るテキストデータの利用判定処理の一例を示すフローチャートである。
ステップS101において、処理部270は、取得したPDFファイルが所定の条件を満たすか否かを判定する。ここで、処理部270は、例えば、取得したPDFファイルの拡張領域に、所定の企業により提供されるアプリケーション及びサービス等の機能により文字認識されたことを示す情報が含まれている場合、所定の条件を満たすと判定してもよい。これは、例えば、当該所定の企業と、サーバ装置200を提供する企業が同一である等の場合、取得したPDFファイルに予め付加されている文字認識の結果の精度と、サーバ装置200にて文字認識した結果の精度とが同等であると考えられるためである。これにより、例えば、サーバ装置200における文字認識の処理負荷を削減することができる。なお、当該拡張領域の情報は、例えば、画像形成装置300の文字認識モジュールにより設定されてもよい。
また、処理部270は、例えば、取得したPDFファイルの拡張領域に、端末装置400のユーザにより設定された所定の情報が含まれている場合、所定の条件を満たすと判定してもよい。これにより、PDFファイルに含まれるテキストデータを利用させるか、PDFファイルに含まれる画像をサーバ装置200に文字認識された結果を利用させるかを、ユーザが指定できる。
所定の条件を満たす場合(ステップS101でYES)、当該ファイルに含まれるテキストデータを利用すると判定し(ステップS102)、処理を終了する。
所定の条件を満たさない場合(ステップS101でNO)、処理部270は、取得したPDFファイルが、ファイルのフォーマットが変換された、テキストデータを含むファイルであるか否かを判定する(ステップS103)。ここで、処理部270は、例えば、以下の各条件のうち1以上の条件を用いてこの判定を行ってもよい。すなわち、処理部270は、以下の各条件のうち複数の条件を組み合わせてこの判定を行ってもよい。
処理部270は、例えば、取得したPDFファイルに所定の表示サイズ以上の画像データが含まれない場合(すなわち、画像データが含まれない場合や、所定の表示サイズ以下の画像データしか含まれていない場合)、ファイルのフォーマットが変換された、テキストデータを含むファイルであると判定してもよい。なお、処理部270は、当該所定の表示サイズを、PDFファイルの各ページの表示サイズに応じて決定してもよい。この場合、処理部270は、当該所定の表示サイズを、例えば、PDFファイルの各ページの表示サイズの80%の大きさとしてもよい。これは、例えば、A4サイズの印刷物がスキャンされて生成されたPDFファイルの場合、A4サイズの各頁の領域のうち、余白以外の全領域が、スキャンされて生成された画像の表示領域であると考えられるためである。
また、処理部270は、取得したPDFファイルが、画像形成装置300から取得されたファイルである場合、ファイルのフォーマットが変換された、テキストデータを含むファイルでないと判定してもよい。この場合、処理部270は、例えば、取得したファイルが、画像形成装置300からPDFを受信するための所定の通信プロトコルの通信ポートにて受信されていた場合に、取得したファイルが、画像形成装置300から取得されたファイルであると判定してもよい。
また、処理部270は、取得したPDFファイルが、印刷物が光学的に読み込まれて作成された等の画像から文字認識されたテキストデータを含むファイルである場合、ファイルのフォーマットが変換された、テキストデータを含むファイルでないと判定してもよい。この場合、処理部270は、例えば、取得したPDFファイルの拡張領域に、文字認識したことを示す情報が含まれている場合、当該画像から文字認識されたテキストデータ等を含むファイルであると判定してもよい。なお、当該拡張領域の情報は、例えば、画像形成装置300の文字認識モジュールにより設定されてもよい。
ファイルのフォーマットが変換された、テキストデータを含むファイルである場合(ステップS103でYES)、ステップS102の処理に進む。PDFファイルへの変換処理では、元のファイルに含まれているテキストデータは保持されるため、変換後のPDFファイルに含まれるテキストデータは、文字認識処理をされていない、正しいテキストデータである。そのため、この処理により、例えば、文書等のファイルがPDFに変換されたファイルを処理対象とする場合、当該文書等に含まれていた元のテキストデータと同一のテキストデータを利用することができる。
ファイルのフォーマットが変換された、テキストデータを含むファイルでない場合(ステップS103でNO)、当該ファイルに含まれるテキストデータを利用しないと判定し(ステップS104)、処理を終了する。これにより、PDFファイルに含まれているテキストデータの文字認識の精度が担保できない場合に、当該テキストデータを利用せず、サーバ装置200で文字認識したテキストデータを利用することができる。
次に、図13を参照して、第1の実施形態に係る項目抽出部277の処理について説明する。図13は、第1の実施形態に係る項目抽出部の処理を説明するフローチャートである。図13は、図11BのステップS1110の処理の詳細を示している。
実施形態に係る処理部270は、読取結果情報が保持されると、定義特定部276により、種別判定データベース240から、読取結果情報に含まれる識別文字列と対応する定義IDを抽出する(ステップS1201)。
続いて、定義特定部276は、抽出した定義IDの中に、定義種別が個社定義情報である定義IDが存在するか否かを判定する(ステップS1202)。つまり、ここでは、読取結果情報に含まれる識別文字列が示す種類の帳票に対して、個社定義情報252が登録されているか否かを判定している。
ステップS1202において、該当する定義IDが存在しない場合、この種類の帳票には、利用者固有のレイアウトを定義した個社定義情報252は登録されていないため、項目抽出部277は、処理を終了し、図11AのステップS1109へ進む。
ステップS1202において、該当する定義IDが存在する場合、定義特定部276は、帳票定義データベース250を参照し、定義IDを含む個社定義情報252を特定する(ステップS1203)。該当する定義IDが存在する場合とは、この帳票は、利用者固有のレイアウトである場合である。
続いて、項目抽出部277は、特定された個社定義情報に基づき、読取結果情報から、項目と、項目の値とを抽出し、対応付ける(ステップS1204)。
尚、ステップS1109における特定定義情報を用いた項目と項目の値の抽出処理と、ステップS1110における汎用定義情報251を用いた項目と項目の値の抽出処理とは、ステップS1108の個社定義情報が、特定定義情報又は汎用定義情報となること以外は同様であるから、説明を省略する。
ここで、第1の実施形態に係る認識結果データの生成について説明する。図14Bは、第1の実施形態に係る読取結果情報の一例を示す図である。
図14Bに示す読取結果情報130は、例えば、ある請求書のPDFファイルから文字フィールドを切り取り、文字フィールドの中の文字を認識した結果と、文字の位置を示す座標とから抽出されたものである。
この読取結果情報130には、文字列「請求書」、「R社」、「計」、「12,960」が存在している。ここで、定義特定部276は、種別判定データベース240を参照し、読取結果情報130に含まれる文字列が識別文字列とされた定義IDを抽出する。この場合、定義ID「H01」、「A01」が抽出される(図3参照)。
次に、定義特定部276は、抽出された定義IDのうち、対応する定義種別が、個社定義情報である定義IDを特定する。ここでは、定義ID「A01」が特定される。つまり、読取結果情報130が抽出された帳票は、定義ID「A01」の個社定義情報が設定された帳票であることがわかる。
次に、項目抽出部277は、帳票定義データベース250において、定義ID「A01」の個社定義情報252を参照する(図6参照)。
個社定義情報252では、請求額を示す項目である項目ID「2」の項目「計」の下の領域にある文字列が、項目名「計」の値であることが定義されている。したがって、項目抽出部277は、読取結果情報130に含まれる文字列「計」を項目名「計」とし、この文字列「計」の下の領域にある文字列「12,960」を項目名「計」の値として、抽出する。
項目抽出部277は、このようにして、個社定義情報252に定義されている各項目名に対応する文字列と、項目の値となる文字列とを読取結果情報130から抽出する。
項目抽出部277により、個社定義情報252に定義されている項目名と項目の値との抽出が終了すると、次に、定義特定部276は、抽出された定義IDのうち、対応する定義種別が、特定定義情報である定義IDの有無を判定する。
ここでは、該当する定義IDは存在しない。つまり、読取結果情報130が抽出された帳票について、特定定義情報は定義されていないことがわかる。
次に、定義特定部276は、抽出された定義IDのうち、対応する定義種別が、汎用定義情報である定義IDの有無を判定する。この場合、定義ID「A01」が特定される。つまり、読取結果情報130が抽出された帳票は、定義ID「H01」の汎用定義情報によっても定義されていることがわかる。
ここで、項目抽出部277は、定義ID「A01」の汎用定義情報251を参照する(図5参照)。そして、項目抽出部277は、個社定義情報252を参照したときと同様に、汎用定義情報251に定義されている項目名と項目の値とを抽出する。
尚、汎用定義情報251では、文書種別「請求書」の帳票に含まれる全ての項目名と項目の値について定義されているため、汎用定義情報251を参照した場合、個社定義情報252で定義されていなかった項目名と項目の値とが抽出される。
また、個社定義情報252とは異なり、汎用定義情報251では、請求額を示す項目である項目ID「2」の項目「合計」の右下の領域にある文字列が、項目名「合計」の値であることが定義されている。ここでは、読取結果情報130には、文字列「合計」が含まれていないため、項目抽出部277は、項目IDが「2」の項目の値が「空」と判断する。
仮に読取結果情報130には文字列「合計」が含まれている場合には、項目抽出部277は、読取結果情報130に含まれる文字列「合計」を項目名「合計」とし、この文字列「合計」の右下の領域にある文字列を項目名「合計」の値として抽出する。
このように、本実施形態では、異なる種類の帳票定義情報を参照し、それぞれの帳票定義情報に基づいて、項目名と項目の値とが抽出される。
以下に、項目抽出部277による、マージする処理について説明する。実施形態に係る表示画面生成部278では、同一の項目IDについて、異なる種類の帳票定義情報のそれぞれから項目名と項目の値とが抽出された場合、優先度の高い種類の帳票定義情報から抽出された項目名と項目の値を採用して、認識結果データを生成する。
本実施形態では、汎用定義情報、個社定義情報、特定定義情報のうち、個社定義情報の優先度を最も高くしている。これは、個社定義情報は、利用者が固有に設定した定義であり、最も優先して参照されるべき定義だからである。
また、本実施形態では、個社定義情報の次に、特定定義情報の優先度を高くし、汎用定義情報の優先度を最も低くしている。
したがって、例えば、3種類の帳票定義情報のそれぞれから、項目名と項目の値とが抽出された場合には、個社定義情報に基づき抽出された項目名と項目の値とが採用される。
具体的には、例えば、汎用定義情報251と個社定義情報252のそれぞれには、項目ID「2」の項目について定義がされている。
したがって、本実施形態では、項目ID「2」の項目について、汎用定義情報251にしたがって抽出された項目名と項目の値と、個社定義情報252にしたがって抽出された項目名と項目の値とが存在する。
この場合、項目抽出部277は、項目ID「2」の項目については、個社定義情報252にしたがって抽出された項目名と項目の値とを、認識結果データの生成に使用する。具体的に、個社定義情報252にしたがって文字列「12,960」が項目の値として抽出され、汎用定義情報251にしたがって項目の値が「空」と判断され、項目抽出部277は、優先度の高い個社定義情報252から抽出された「12,960」を、認識結果データの生成に使用する。
一般的に請求書では、請求額を示す項目の項目名として「合計」が使用されているため、汎用定義情報251では、項目「合計」が設定されている。一方で、利用者Aに対するR社からの請求書は、「合計」ではなく、「計」が項目名として使用されているため、汎用定義情報251を用いてこのような請求書の請求額を認識できない。従って、利用者Aに対するR社からの請求書から請求額を抽出するために、項目「計」が設定された利用者A固有の個社定義情報252が必要である。
さらに、一般的な請求書に比べて、利用者Aに対するR社からの請求書では、請求額を示す項目の項目名として「合計」を使用されているが、項目値が記載された位置が異なる場合に、利用者A固有の個社定義情報252における項目「合計」の方向、距離などの項目値を、汎用定義情報251とは異なるものに設定すれば良い。
また、汎用定義情報251に定義されている項目ID「10」の項目については、個社定義情報252では定義されていない。したがって、項目ID「10」の項目については、汎用定義情報251にしたがった項目名と項目の値のみが抽出される。よって、表示画面生成部278は、項目ID「10」の項目については、汎用定義情報251にしたがって抽出された項目名と項目の値とを、認識結果データの生成に使用する。
このように、本実施形態では、複数種類の帳票定義情報に対して優先度を付与し、各帳票定義情報にしたがって抽出された項目名と項目の値のうち、優先度が最も高い帳票定義情報にしたがって抽出された項目名と項目の値とを使用して、帳票画像の認識結果となる認識結果データを生成する。
図15Aは、第1の実施形態に係る認識結果確認画面の一例を示す図である。図15Aに示す画面140は、端末装置400に表示された画面の例であり、帳票を認識した結果として生成された認識結果が表示されている。
画面140には、画像形成装置300が読み取った帳票画像141と、処理部270によって抽出された項目と項目の値とを対応付けた情報142とが表示されている。また、画面140には、登録ボタン143が表示されている。利用者は、帳票画像141を参照し、表示されている項目と項目の値とをチェックし、必要に応じて項目の値を修正する。そして、登録ボタン143が選択されると、修正後の項目の値が認識結果データに登録される。
本実施形態では、例えば、この登録ボタン143が選択されると、帳票画像141を示す画像データと、情報142とが基幹システム500等に格納されても良い。また、利用者は、認識結果確認画面を介して、登録した認識結果データをダウンロードして、基幹システム500の操作画面を介して、基幹システムに登録してもよい。
また、画面140では、帳票画像141を認識する際に参照された帳票定義情報を示す情報144が表示されていても良い。本実施形態では、この情報144を表示させることで、帳票画像141が、どの種類の帳票定義情報を用いて認識されたかを、利用者に通知できる。
以下に、本実施形態の認識結果データの一例を示す。図15Bは、認識結果データの一例を示す図である。
図15Bに示す認識結果データ151では、帳票画像データに含まれる項目と、項目の値とを抽出して対応付けを行い、項目の項目IDと、項目の値とを対応付けた結果が、XML形式で記述されている。
本実施形態では、この認識結果データ151が生成されて認識結果データベース260に格納されると、この格納先が、ジョブリスト101の項目「認識結果ファイルパス」の値とされる。
第2の実施形態では、サーバ装置200が、画像形成装置300、及び端末装置400から受信したファイルから、当該ファイルの内容が翻訳されたテキストデータを生成する例について説明する。なお、第2の実施形態は一部を除いて第1の実施形態と同様であるため、適宜説明を省略する。以下では、第1の実施形態と共通する部分については説明を省略し、異なる部分についてのみ説明する。
次に、図16を参照して、第2の実施形態に係る処理部270の処理について説明する。図16は、第2の実施形態に係る処理部270の処理を説明するフローチャートである。
処理部270は、PDFファイルデータベース230からPDFファイルを取得し(ステップS1601)、取得したPDFファイルに、テキストデータが含まれているか否かを判定する(ステップS1602)。
テキストデータが含まれていない場合(ステップS1602でNO)、ステップS1605の処理に進む。
一方、テキストデータが含まれている場合(ステップS1602でYES)、当該テキストデータを利用するか否かを判定する(ステップS1603)。
当該テキストデータを利用する場合(ステップS1603でYES)、処理部270は、当該テキストデータを処理対象のテキストデータ(「第1テキストデータ」の一例。)として保持し(ステップS1604)、後述するステップS1610の処理に進む。当該テキストデータを利用しない場合(ステップS1603でNO)、処理部270は、前処理部274により、PDFファイルをpng、またはjpeg形式等の画像に変換する(ステップS1605)。
続いて、前処理部274は、1ページ分の画像を選択し(ステップS1606)、前処理を行う(ステップS1607)。
続いて、処理部270は、文字認識部275により、画像から、文字が形成されている領域(以下、文字フィールド)を切り取る(ステップS1608)。続いて、処理部270は、文字認識部275により、切り取られた文字フィールドの中の文字を切り取り、文字認識し、文字認識の結果を処理対象のテキストデータ(「第2テキストデータ」の一例。)として保持する(ステップS1609)。
続いて、処理部270は、処理対象のテキストデータに含まれる各文字の位置関係に基づいて読取結果情報を生成する(ステップS1610)。
なお、ステップS1601からステップS1610の処理は、図11A、及び図11BのステップS1101からステップS1110の処理と同様でもよい。
続いて、処理部270は、読取結果情報の翻訳を行い(ステップS1611)、翻訳結果を端末装置400に出力する(ステップS1612)。これにより、例えば、ユーザは、所定のWebサイト等から取得した英語等の論文のPDFファイルをサーバ装置200にアップロードすると、当該論文が日本語等に翻訳されたデータを取得できる。
≪テキストデータの利用判定処理≫
次に、図17、及び図18を参照し、図11AのステップS1102の、テキストデータの利用判定処理の一例について説明する。図17は、実施形態に係るテキストデータの利用判定処理の一例を示すフローチャートである。図18は、実施形態に係る端末装置400の設定画面の一例について説明する図である。なお、処理部270は、図17の処理を、上述した図12の処理と適宜組み合わせて実行してもよい。
ステップS1701において、処理部270は、例えば、取得したPDFファイルの属性情報(メタデータ)から、PDF以外の形式のデータであって、取得したPDFファイルの変換元となるデータであるオリジナルデータを作成した第1ツール(アプリケーションプログラム)を示す情報と、当該オリジナルデータをPDFファイルに変換した第2ツールを示す情報とを取得する。
なお、ISO 32000-1規格で規定されたPDFのデータ構造では、PDFファイルには、ヘッダー、ボディー、クロスリファレンス・テーブル、及びトレイラー(Trailer)の情報が含まれる。また、PDFファイルのトレイラーには、「Info」項目に文書情報(Document Information) ディクショナリのメタデータが含まれている。
処理部270は、例えば、文書情報ディクショナリに含まれる各メタデータのうち、「Creator」項目に対応付けられた、「PDF以外の形式から変換した場合に、そのオリジナルの作成ツール(第1ファイルのフォーマットが変換されて生成されたPDFファイルである場合の当該第1ファイルを作成したツール)」を示す情報を、当該第1ツールを示す情報として取得してもよい。
また、処理部270は、例えば、文書情報ディクショナリに含まれる各メタデータのうち、「Producer」項目に対応付けられた、「PDF以外の形式から変換した場合に、その変換ツール(第3ファイルのフォーマットが変換されて生成されたPDFファイルである場合の当該第3ファイルをPDFファイルに変換したツール)」を示す情報を、当該第2ツールを示す情報として取得してもよい。
続いて、処理部270は、PDFファイルに含まれるテキストデータの作成ツールとして許可されている第3ツールを示す情報と、当該テキストデータの変換ツールとして許可されている第4ツールを示す情報とを取得する(ステップS1702)。ここで、当該第3ツール、及び当該第4ツールは、予め設定されていてもよい。また、当該第3ツール、及び当該第4ツールは、端末装置400のユーザにより予め設定されてもよい。また、当該第3ツールを示すキーワード、及び当該キーワードと第1ツールを示す情報との一致を判定する条件とが設定されていてもよい。一致を判定する条件としては、例えば、部分一致、完全一致、前方一致、及び後方一致等が設定されてもよい。また、同様に、当該第4ツールを示すキーワード、及び当該キーワードと第2ツールを示す情報との一致を判定する条件とが設定されていてもよい。
図18の例では、端末装置400は、表示画面1801において、作成ツールに関する条件設定1802、変換ツールに関する条件設定1803、及び「決定」ボタン1804を表示させている。図18の例では、作成ツールに関する条件設定1802において、第3ツールを示すキーワードとして「Excel」、及び「Word」がユーザにより指定され、各キーワードと第1ツールを示す情報との一致を判定する条件として「部分一致」が指定されている。
また、同様に、変換ツールに関する条件設定1803において、第4ツールを示すキーワードとして「Excel」、及び「Word」がユーザにより指定され、各キーワードと第2ツールを示す情報との一致を判定する条件として「部分一致」が指定されている。「決定」ボタン1804が押下されると、端末装置400は、ユーザにより指定された、作成ツールに関する条件設定1802、及び変換ツールに関する条件設定1803の情報をサーバ装置200に送信する。そして、サーバ装置200は、ユーザにより指定された設定情報を記憶しておく。
続いて、処理部270は、作成ツールが許可されているか否かを判定する(ステップS1703)。ここで、処理部270は、ステップS1701で取得した第1ツールが、ステップS1702で取得した第3ツールと合致する場合に、作成ツールが許可されていると判定する。
この場合、処理部270は、例えば、第1ツールを示す情報が「Microsoft Word 2016 Professional」であり、第3ツールを示す情報が「Excel」、及び「Word」であり、指定された条件が「部分一致」である場合、第1ツールが第3ツールと合致すると判定してもよい。
作成ツールが許可されている場合(ステップS1703でYES)、処理部270は、当該ファイルに含まれるテキストデータを利用すると判定し(ステップS1704)、処理を終了する。
一方、作成ツールが許可されていない場合(ステップS1703でNO)、処理部270は、変換ツールが許可されているか否かを判定する(ステップS1705)。ここで、処理部270は、ステップS1701で取得した第2ツールが、ステップS1702で取得した第4ツールと合致する場合に、変換ツールが許可されていると判定する。
この場合、処理部270は、例えば、第2ツールを示す情報が「Microsoft Word 2016 Professional」であり、第4ツールを示す情報が「Excel」、及び「Word」であり、指定された条件が「部分一致」である場合、第2ツールが第4ツールと合致すると判定してもよい。また、処理部270は、例えば、第2ツールを示す情報が「PDF Easy Parse」であり、第4ツールを示す情報が「Excel」、及び「Word」であり、指定された条件が「部分一致」である場合、第2ツールが第4ツールと合致しないと判定してもよい。
変換ツールが許可されている場合(ステップS1705でYES)、処理部270は、ステップS1704の処理に進む。一方、変換ツールが許可されていない場合(ステップS1705でNO)、処理部270は、当該ファイルに含まれるテキストデータを利用しないと判定し(ステップS1706)、処理を終了する。これにより、変換後のPDFファイルに付加されるテキストデータの精度が担保できないオリジナルデータの作成ツール、及び変換ツールが利用された場合に、当該テキストデータを利用せず、サーバ装置200で文字認識したテキストデータを利用することができる。
<変形例>
サーバ装置200の各機能部は、例えば1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。また、サーバ装置200と端末装置400とを一体の構成としてもよい。また、端末装置400、及び画像形成装置300の機能の少なくとも一部を、サーバ装置200が有する構成としてもよい。
<実施形態のまとめ>
従来、例えば、FAXで送信された請求書を印刷した紙文書を電子化(例えば、PDF化)して、文字認識及び帳票認識が行われていた。近年、FAXの代わりに、文書作成ソフト等で作成した請求書をPDF化して、電子メールで送信するケースが増加している。
一方で、従来の帳票認識方法では、例えば、文字によって(例えば、半角カナなど)認識率が低い場合があった。
例えば、文書作成ソフト等で作成された請求書がPDF化される場合、このPDF化されたファイルに含まれるテキストデータは100%正確であるとも言える。上述した各実施形態によれば、サーバ装置200は、処理対象のファイルが、ファイルのフォーマットが変換された、テキストデータを含むファイル等の場合、当該ファイルに含まれるテキストデータを用いて帳票認識等の処理を行う。これにより、より精度が高いテキストデータを利用可能とすることができる。また、サーバ装置200は、処理対象のファイルが、例えば、印刷物が光学的に読み込まれて作成された画像から文字認識された第1テキストデータを含むファイル等の場合、当該ファイルを文字認識して第2テキストデータを生成し、当該第2テキストデータを利用して帳票認識等の処理を行う。
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。