(57)【要約】【課題】文書の読み取り画像に対する文字認識の結果から、期日を表す項目に対する値として日付形式以外の文字列が抽出された場合に、期日の日付を表す日付形式の文字列を出力することができる情報処理装置及びプログラムを提供する。【解決手段】項目と項目に対応する値とを含む文書の読み取り画像に対する文字認識の結果から、期日を表す文字列である第１項目に対応する値を抽出する第１抽出部と、第１抽出部により抽出された値が日付形式以外の第１文字列である場合に、文字認識の結果に基づいて、期日の日付を表す日付形式の第２文字列を生成する生成部と、生成した第２文字列を第１項目に対応する値として出力する出力部と、を含む情報処理装置とする。【選択図】図３
2020126485.tif 000002
【特許請求の範囲】
【請求項１】
項目と前記項目に対応する値とを含む文書の読み取り画像に対する文字認識の結果から、期日を表す項目である第１項目に対応する値を抽出する第１抽出部と、
前記第１抽出部により抽出された値が日付形式以外の第１文字列である場合に、前記文字認識の結果に基づいて、前記期日の日付を表す日付形式の第２文字列を生成する生成部と、
生成した前記第２文字列を前記第１項目に対応する値として出力する出力部と、
を含む情報処理装置。
【請求項２】
前記生成部は、
前記第１項目とは異なる第２項目を取得する取得部と、
前記文字認識の結果から、前記第２項目に対応する値を抽出する第２抽出部と、
を備え、
取得された前記第２項目に対応して抽出された値に基づいて、前記日付形式の第２文字列を生成する、
請求項１に記載の情報処理装置。
【請求項３】
前記第２項目が、前記期日を計算する基準となる起点日を表す項目であり、
前記生成部は、
前記第２抽出部により抽出された値が日付形式の第３文字列である場合に、前記第３文字列が表す日付を、前記起点日の日付として取得する、
請求項２に記載の情報処理装置。
【請求項４】
前記生成部は、
前記第２抽出部により抽出された値が日付形式以外の第４文字列である場合に、前記画像の予め定めた日付記述領域に記述された第５文字列が表す日付を、前記起点日の日付として取得する、
請求項３に記載の情報処理装置。
【請求項５】
前記取得部は、複数の文書の種類の各々に応じて前記起点日を表す項目を予め記憶した項目記憶部から、指定された文書の種類に応じた前記起点日を表す項目を取得する、
請求項３または請求項４に記載の情報処理装置。
【請求項６】
前記取得部は、前記第１文字列の形態素解析により前記起点日を表す項目を取得する、
請求項３または請求項４に記載の情報処理装置。
【請求項７】
前記生成部は、
前記起点日の日付から前記期日の日付を算出する算出式を用いて、取得された前記起点日の日付に対応する前記期日の日付を取得し、前記日付形式の第２文字列を生成する、
請求項３から請求項６までのいずれか１項に記載の情報処理装置。
【請求項８】
前記期日の日付を算出する前記算出式は、日付形式以外の複数の表現パターンの各々に応じて算出式を予め記憶した算出式記憶部から、前記第１文字列の表現パターンに応じて取得される、
請求項７に記載の情報処理装置。
【請求項９】
前記生成部は、
前記起点日から前記期日までの期間を前記第１文字列の形態素解析により取得し、取得された前記期間を日数に換算し、前記日数及び前記起点日の日付に対応する前記期日の日付を取得して、前記日付形式の第２文字列を生成する、
請求項３から請求項６までのいずれか１項に記載の情報処理装置。
【請求項１０】
前記出力部は、
前記日付形式の第２文字列を表示部に表示させる、
請求項１から請求項９までのいずれか１項に記載の情報処理装置。
【請求項１１】
前記出力部は、
前記文字認識の結果に含まれる日付形式以外の前記第１文字列を、前記日付形式の第２文字列で置換する、
請求項１０に記載の情報処理装置。
【請求項１２】
コンピュータを、請求項１から請求項１１までのいずれか１項に記載の情報処理装置の各部として機能させるためのプログラム。        
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、日付等の情報を包含する文書情報を作成可能な文書作成装置に於いて、日付情報及び日付の表現形式の情報を記憶する日付情報記憶手段と、この日付情報記憶手段に記憶された表現形式情報と合致する情報を前記作成された文書情報中から抽出する抽出手段と、この抽出手段にて抽出された情報から日付に関する情報を切り出し、前記日付情報記憶手段の日付情報と比較する手段と、この手段にて前記切り出した情報が前記日付情報と不一致である場合、当該不一致箇所を表示出力する手段とを具備したことを特徴とする文書作成装置が開示されている。
【０００３】
特許文献２には、各種データを入力する入力手段と、各データに対して検索情報を付与して登録する登録手段と、登録された情報群を記憶する記憶手段と、各種データを表示出力する表示手段と、データを入力した日付を入力日検索キーとして設定する入力日検索キー設定手段と、前記入力日検索キーに基づいて前記情報群を検索する検索手段と、日付に関連した文字列が入力されたときに、これを日付情報に変換する変換手段とを具え、前記日付に関連した文字列によりデータの入力日を検索することを特徴とする情報検索装置が開示されている。
【０００４】
特許文献３には、文書を管理するシステムであって、入力された文書に対して索引となる文字列を、切り出し規則データにもとづき検索種別と共に切り出す切り出し処理部と、文字列を正式の表現に変換する個々の規則を持ち、文字列をそれぞれの規則に従い変換する複数の整形処理部と、該切り出し処理部が検索種別とともに切り出した文字列を、対応した整形規則データに従い、対応する該整形処理部を呼び出すことで、正式の表現に置き換える指示を行い、結果を整形文書として出力する整形処理制御部とを有することを特徴とする文書管理システムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０８−０６９４５１号公報
【特許文献２】特開２００２−１９７１０５号公報
【特許文献３】特開２００４−１８５４５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
帳票等、項目と項目に対応する値とを含む文書がある。そして、納品期限等、値として日付を求める項目に対し、日付以外の値が対応づいている場合がある。文書を人間が読んだ場合には、日付以外の値から日付を推定できることが多い。しかしながら、文書の読み取り画像に対する文字認識では、日付変換までは行わない。
【０００７】
本発明の目的は、文書の読み取り画像に対する文字認識の結果から、期日を表す項目に対する値として日付形式以外の文字列が抽出された場合に、期日の日付を表す日付形式の文字列を出力することができる、情報処理装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
第１の態様に係る情報処理装置は、項目と前記項目に対応する値とを含む文書の読み取り画像に対する文字認識の結果から、期日を表す項目である第１項目に対応する値を抽出する第１抽出部と、前記第１抽出部により抽出された値が日付形式以外の第１文字列である場合に、前記文字認識の結果に基づいて、前記期日の日付を表す日付形式の第２文字列を生成する生成部と、生成した前記第２文字列を前記第１項目に対応する値として出力する出力部と、を含む。
【０００９】
第２の態様に係る情報処理装置は、第１の態様に係る情報処理装置において、前記生成部は、前記第１項目とは異なる第２項目を取得する取得部と、前記文字認識の結果から、前記第２項目に対応する値を抽出する第２抽出部と、を備え、取得された前記第２項目に対応して抽出された値に基づいて、前記日付形式の第２文字列を生成する。
【００１０】
第３の態様に係る情報処理装置は、第２の態様に係る情報処理装置において、前記第２項目が、前記期日を計算する基準となる起点日を表す項目であり、前記生成部は、前記第２抽出部により抽出された値が日付形式の第３文字列である場合に、前記第３文字列が表す日付を、前記起点日の日付として取得する。
【００１１】
第４の態様に係る情報処理装置は、第３の態様に係る情報処理装置において、前記生成部は、前記第２抽出部により抽出された値が日付形式以外の第４文字列である場合に、前記画像の予め定めた日付記述領域に記述された第５文字列が表す日付を、前記起点日の日付として取得する。
【００１２】
第５の態様に係る情報処理装置は、第３の態様または第４の態様に係る情報処理装置において、前記取得部は、複数の文書の種類の各々に応じて前記起点日を表す項目を予め記憶した項目記憶部から、指定された文書の種類に応じた前記起点日を表す項目を取得する。
【００１３】
第６の態様に係る情報処理装置は、第３の態様または第４の態様に係る情報処理装置において、前記取得部は、前記第１文字列の形態素解析により前記起点日を表す項目を取得する。
【００１４】
第７の態様に係る情報処理装置は、第３の態様から第６の態様までのいずれか１項に係る情報処理装置において、前記生成部は、前記起点日の日付から前記期日の日付を算出する算出式を用いて、取得された前記起点日の日付に対応する前記期日の日付を取得し、前記日付形式の第２文字列を生成する。
【００１５】
第８の態様に係る情報処理装置は、第７の態様に係る情報処理装置において、前記期日の日付を算出する前記算出式は、日付形式以外の複数の表現パターンの各々に応じて算出式を予め記憶した算出式記憶部から、前記第１文字列の表現パターンに応じて取得される。
【００１６】
第９の態様に係る情報処理装置は、第３の態様から第６の態様までのいずれか１項に係る情報処理装置において、前記生成部は、前記起点日から前記期日までの期間を前記第１文字列の形態素解析により取得し、取得された前記期間を日数に換算し、前記日数及び前記起点日の日付に対応する前記期日の日付を取得して、前記日付形式の第２文字列を生成する。
【００１７】
第１０の態様に係る情報処理装置は、第１の態様から第９の態様までのいずれか１項に係る情報処理装置において、前記出力部は、前記日付形式の第２文字列を表示部に表示させる。
【００１８】
第１１の態様に係る情報処理装置は、第１０の態様に係る情報処理装置において、前記出力部は、前記文字認識の結果に含まれる日付形式以外の前記第１文字列を、前記日付形式の第２文字列で置換する。
【００１９】
第１２の態様に係るプログラムは、コンピュータを、第１の態様から第１０の態様までのいずれか１項に係る情報処理装置の各部として機能させるためのプログラムである。  
【発明の効果】
【００２０】
第１の態様、第１２の態様によれば、文書の読み取り画像に対する文字認識の結果から、期日を表す項目に対する値として日付形式以外の文字列が抽出された場合に、期日の日付を表す日付形式の文字列を出力することができる。
【００２１】
第２の態様によれば、文字認識の結果のうち期日を表す項目とは異なる項目に対応する値に基づいて、期日の日付を表す日付形式の文字列を生成することができる。
【００２２】
第３の態様によれば、文字認識の結果のうち起点日を表す項目に対応する値から、起点日の日付を取得することができる。
【００２３】
第４の態様によれば、文字認識の結果のうち予め定めた日付記述領域に記述された文字列から、起点日の日付を取得することができる。
【００２４】
第５の態様によれば、起点日を表す項目を文書の種類に応じて取得することができる。
【００２５】
第６の態様によれば、起点日を表す項目を抽出された日付形式以外の文字列から取得することができる。
【００２６】
第７の態様、第８の態様によれば、日数を求めずに、起点日の日付と算出式とから期日の日付を取得することができる。
【００２７】
第９の態様によれば、起点日の日付と日数とを、抽出された日付形式以外の文字列から取得することができる。
【００２８】
第１０の態様によれば、生成された日付形式の文字列を利用者に表示することができる。
【００２９】
第１１の態様によれば、期日を表す項目に、生成された日付形式の文字列が対応するように、文字認識の結果を修正することができる。
【図面の簡単な説明】
【００３０】
【図１】文字認識の対象とする文書の一例を示す概略図である。
【図２】利用者に表示される画面の一例を示す模式図である。
【図３】利用者に表示される画面の他の一例を示す模式図である。
【図４】期日の日付形式の表現パターンを例示する図である。
【図５】期日の日付形式以外の表現パターンを例示する図である。
【図６】第１実施の形態に係る情報処理装置の電気的構成を示すブロック図である。
【図７】算出式テーブルを示す図表である。
【図８】起点日項目リストを示す図表である。
【図９】第１実施の形態に係る情報処理部の機能構成を示す機能ブロック図である。
【図１０】第１実施の形態に係る日付生成プログラムによる処理の流れを示すフローチャートである。
【図１１】形態素解析の一例を示す模式図である。
【図１２】第１の形式と第２の形式とを説明する図である。
【図１３】第２実施の形態に係る情報処理装置の記憶部の構成を示すブロック図である。
【図１４】第２実施の形態に係る日付生成プログラムによる処理の流れを示すフローチャートである。
【図１５】文字列Ａの解析処理の流れを示すフローチャートである。
【図１６】起点日の日付抽出処理の流れを示すフローチャートである。
【図１７】文字列Ｂの解析処理の流れを示すフローチャートである。
【図１８】日付変換規則を説明する図である。
【発明を実施するための形態】
【００３１】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
【００３２】
−第１の実施の形態−
（文字認識の対象となる文書）
まず、本実施の形態で文字認識の対象とする文書について説明する。図１は文字認識の対象とする文書の一例を示す概略図である。文字認識の対象とする文書は、項目と項目に対応する値とを含む文書である。例えば、見積書等の帳票は、項目毎に対応する値が記述されている。以下では、文書が見積書である場合について説明する。
【００３３】
図１に示すように、見積書は、項目として、管理番号、発行日、お見積金額、お支払い期限、見積有効期限、品名、単価、数量、金額等を含む。例えば、「発行日」という項目に対しては、「２０１９年１月７日」という値が記述されている。また、「見積有効期限」という項目に対しては、「お見積日より１ヶ月」という値が記述されている。
【００３４】
見積書を原稿として、見積書の画像を読み取る。読み取り画像の頁内では、項目を表す画像の近傍に、その項目に対応する値を表す画像が配置されている。読み取り画像に対し文字認識を行うと、頁内の画像毎に文字認識が行われる。文字認識の結果には、項目を表す画像の頁内での位置、項目を表す文字列、値を表す画像の頁内での位置、値を表す文字列が含まれる。頁内での位置は、予め定めた点を原点とする位置座標で表してもよい。
【００３５】
（項目と値）
項目を表す文字列と、項目に対応する値を表す文字列とは、各々の頁内での位置により対応づけられている。項目を表す文字列を指定して、文字認識の結果から、対応する値を表す文字列を抽出する。以下では、項目を表す文字列を「キー文字列」、値を表す文字列を「バリュー文字列」という。また、キー文字列を指定してバリュー文字列を抽出することを、「キーバリュー抽出」という。
【００３６】
図２は利用者に表示される画面の一例を示す模式図である。図２に示す画面は、文字認識の条件を設定する設定画面である。利用者は、設定画面を操作して、項目と文書の種類とを選択する。例えば、図示した例では、文書の種類として「見積書」が指定されている。また、見積有効期限の項目が選択され、「見積有効期限」という文字列が、キー文字列として指定されている。開始ボタンが押され、文字認識処理の開始が指示されると、読み取り画像の文字認識処理が開始される。そして、文字認識の結果に対しキーバリュー抽出が行われて、バリュー文字列が抽出される。
【００３７】
（日付形式の文字列）
発行日や見積有効期限等の「期日」を表す項目は、対応する値として、期日の日付を表す日付形式の文字列を求める項目である。「見積有効期限」をキー文字列としてキーバリュー抽出を行う場合、日付形式のバリュー文字列が抽出されることを想定している。
【００３８】
しかしながら、期日を表す項目に対し、値として日付形式以外の文字列が対応づいてしまう場合がある。例えば、図１に示す例では、「見積有効期限」というキー文字列に対し、「お見積日より１ヶ月」という文字列が、バリュー文字列として抽出されている。日付形式以外の文字列は、期日の日付を直接表していない。
【００３９】
図４は期日の日付形式の表現パターンを例示する図である。図４に示すように、日付形式のパターンとしては、2018/10/30、平成30年10月30日、2018-10-30、2018.10.30、Oct 30,2018、H30年10月30日、2018年10月30日等が挙げられる。
【００４０】
日付を西暦で表す場合は、日付形式の文字列は、「年」を表す４桁の数字、「年」の文字、「月」を表す１桁または２桁の数字、「月」の文字、「日」を表す１桁または２桁の数字、及び「日」の文字が、年→月→日の順序で配列された文字列である。年月日の文字を、スラッシュ、ハイフン、ドット等の記号で置き換えてもよい。言語に応じて、年月日の記載順序を入れ替えてもよいし、年月日の文字をアルファベットで置き換えてもよい。
【００４１】
日付を和号で表す場合は、日付形式の文字列は、元号を表す文字、「年」を表す１桁または２桁の数字、「年」の文字、「月」を表す１桁または２桁の数字、「月」の文字、「日」を表す１桁または２桁の数字、及び「日」の文字が、年→月→日の順序で配列された文字列である。元号を表す文字は、アルファベットの頭文字で置き換えてもよい。
【００４２】
本実施の形態では、「年」を表す数字、「月」を表す数字、及び「日」を表す数字の各々を含む文字列など、予め定めた日付形式のパターンの文字列を「日付形式の文字列」と設定しておく。
【００４３】
日付形式以外の文字列は、上記の「日付形式の文字列」以外の文字列である。図５は期日の日付形式以外の表現パターンを例示する図である。図５に示すように、期日の日付形式以外の表現パターンとしては、3ヶ月、30日間、1ヶ月、本日より1ヶ月、見積日より一ヶ月、発行日より1ヶ月、発行日より1ヶ月以内、御見積の日より1ヶ月、本書発行日より30日間、見積作成日より3ヶ月、本見積書発行日より30日間、2013年11月8日より11月30日迄、2018年11月30日迄、発行後30日間、発行後3ヶ月、御見積後2週間、本見積提出後1ヶ月、2013年7月末日等が挙げられる。
【００４４】
図５に示すように、日付形式以外の文字列は、例えば、「年」を表す数字、「月」を表す数字、及び「日」を表す数字の各々を含まない文字列、日付形式の文字列の後に余計な文字を含む文字列である。余計な文字は、例えば、助詞や格助詞（〜より）または接尾（〜迄）などである。
【００４５】
（日付形式の文字列の生成）
本実施の形態では、期日を表す項目に対し、値として日付形式以外の文字列が対応づいている場合に、文字認識の結果を用いて、期日の日付を表す日付形式の文字列を生成する。期日の日付は、起点日の日付を基準にして計算される。例えば、文字認識の結果から起点日の日付が取得できる場合には、起点日の日付から期日の日付を求め、期日の日付を表す日付形式の文字列を生成する。そして、生成した日付形式の文字列を、利用者に表示する。
【００４６】
図３は利用者に表示される画面の一例を示す模式図である。図３に示す画面は、「見積有効期限」をキー文字列としたキーバリュー抽出の結果を表示している。図示した例では、「お見積日より１ヶ月」という日付形式以外の文字列が、バリュー文字列として抽出されている。
【００４７】
本実施の形態では、抽出されたバリュー文字列と共に、または、抽出されたバリュー文字列の代わりに、生成された日付形式の文字列を利用者に表示する。例えば、抽出されたバリュー文字列と生成された日付形式の文字列の両方を、選択肢として表示して、利用者に選択させてもよい。また、生成された日付形式の文字列で、日付形式以外の文字列を置換して、文字認識の結果を修正してもよい。
【００４８】
＜情報処理装置＞
次に、情報処理装置のハードウェア構成について説明する。
図６は第１実施の形態に係る情報処理装置の電気的構成を示すブロック図である。図６に示すように、情報処理装置１０は、接続された各部を制御すると共に各種演算を行うコンピュータである情報処理部１２を備えている。即ち、情報処理部１２は、ＣＰＵ（中央処理装置：Central Processing Unit）１２Ａ、ＲＯＭ（Read Only Memory）１２Ｂ、ＲＡＭ（Random Access Memory）１２Ｃ、不揮発性のメモリ１２Ｄ、及び入出力部（Ｉ／Ｏ）１２Ｅを備えている。
【００４９】
ＣＰＵ１２Ａ、ＲＯＭ１２Ｂ、ＲＡＭ１２Ｃ、メモリ１２Ｄ、及びＩ／Ｏ１２Ｅの各々は、バス１２Ｆを介して接続されている。ＣＰＵ１２Ａは、ＲＯＭ１２Ｂ等の記憶装置に記憶されたプログラムを読み出し、ＲＡＭ１２Ｃをワークエリアとして使用してプログラムを実行する。
【００５０】
情報処理装置１０は、例えば、操作表示部１４、画像読取部１６、通信部１８、及び記憶部２０を備えている。操作表示部１４、画像読取部１６、通信部１８、及び記憶部２０の各々は、情報処理部１２のＩ／Ｏ１２Ｅに接続されている。
【００５１】
操作表示部１４は、利用者に各種画面を表示すると共に、利用者からの操作を受け付けるものである。操作表示部１４は、例えば、タッチパネル等を含んで構成されている。画像読取部１６は、セットされた原稿の画像を読み取る装置である。通信部１８は、有線又は無線の通信回線を介して外部装置と通信を行うためのインターフェースである。記憶部２０は、ハードディスク等の外部記憶装置である。
【００５２】
各種プログラムや各種データが、ＲＯＭ１２Ｂ等の記憶装置に記憶されている。プログラムの記憶領域はＲＯＭ１２Ｂには限定されない。各種プログラムは、メモリ１２Ｄや記憶部２０等の他の記憶装置に記憶されていてもよく、通信部１８を介して外部装置から取得してもよい。
【００５３】
また、情報処理部１２には、各種ドライブが接続されていてもよい。各種ドライブは、ＣＤ−ＲＯＭ、ＵＳＢ（Universal Serial Bus)メモリなどのコンピュータで読み取り可能な可搬性の記録媒体からデータを読み込んだり、記録媒体に対してデータを書き込んだりする装置である。各種ドライブを備える場合には、可搬性の記録媒体にプログラムを記録しておいて、これを対応するドライブで読み込んで実行してもよい。
【００５４】
本実施の形態では、後述する文字認識プログラム２２、期日表現パターンリスト２４、算出式テーブル２６、及び起点日項目リスト２８の各々が、記憶部２０に記憶されている。これら各種プログラムや各種データは、他の記憶装置、外部の記憶装置に記憶されていてもよい。
【００５５】
期日表現パターンリスト２４は、期日の日付形式以外の表現パターンのリストである（図５参照）。表現パターンは、正規表現で記述されていてもよい。算出式テーブル２６は、図７に示すように、期日の日付形式以外の表現パターンと算出式との予め定めた関係を、テーブルの形式で保持するものである。起点日項目リスト２８は、図８に示すように、起点日を表す項目のリストである。起点日を表す項目は、文書の種類に応じて予め設定されている。１種類の文書に対して、起点日を表す項目を複数設定してもよい。
【００５６】
（日付形式の文字列の生成手順）
次に、日付形式の文字列を生成する手順を簡単に説明する。
期日を表すキー文字列に対し、日付形式以外のバリュー文字列が対応づいた場合、まず、日付形式以外のバリュー文字列の表現パターンを特定する。次に、特定された表現パターンに対応する算出式を決定する。
【００５７】
パターンマッチングにより、日付形式以外のバリュー文字列を、期日表現パターンリスト２４にある複数の表現パターンの各々と照合する。一致する表現パターンがある場合は、図７に示す算出式テーブル２６を用いて、一致する表現パターンに対応する算出式を使用する算出式に決定する。例えば、「見積日よりＮヶ月」という表現パターンの場合、下記式（１）が算出式とされる。
【００５８】
期日＝＄起点日＄+（Ｎ×３０±月毎の補正）  式（１）
【００５９】
上記式（１）は、起点日の日付に「Ｎヶ月」に応じた日数を加算するという、期日算出の規則を定めるものである。上記式（１）では、１ヶ月を３０日とする。月により１ヶ月の日数が２８日から３１日までの範囲で異なるので、月毎に１ヶ月の日数を補正する。
【００６０】
次に、起点日を表す項目を決定する。起点日を表す項目は、図８に示す起点日項目リスト２８から、指定された文書の種類に応じて取得される。例えば、文書の種類が見積書であれば、発行日、作成日、見積日が、起点日を表す項目となる。発行日、作成日、見積日の各々は、単語は異なるがいずれも同じ日を表す。
【００６１】
次に、起点日の日付を決定する。起点日を表す項目をキー文字列として、キーバリュー抽出を行う。日付形式のバリュー文字列が抽出されると、抽出されたバリュー文字列が表す日付を、起点日の日付として取得する。
【００６２】
例えば、発行日をキー文字列として、キーバリュー抽出を行う。日付形式のバリュー文字列が抽出されない場合は、次に作成日をキー文字列として、キーバリュー抽出を行う。日付形式のバリュー文字列が抽出されない場合は、次に見積日をキー文字列として、キーバリュー抽出を行う。起点日を表す項目の順序は入れ替えてもよい。日付形式のバリュー文字列が抽出されると、起点日の日付が決定される。
【００６３】
次に、決定された算出式を用いて、起点日の日付から期日の日付を算出する。例えば、上記式（１）が算出式と決定され、起点日が発行日、発行日の日付が２０１９年１月７日と決定された場合に、２０１９年２月７日という期日の日付が算出される。最後に、期日の日付を日付形式で表す文字列「２０１９年２月７日」を生成する。
【００６４】
（機能構成）
次に、情報処理装置の機能構成について説明する。
図９は第１実施の形態に係る情報処理部の機能構成を示す機能ブロック図である。図９に示すように、情報処理部１２は、文字認識部３０、文字認識結果記憶部３２、抽出部３４、形式判定部３６、日付生成部３８、及び出力部４０を備えている。
【００６５】
本実施の形態では、図６に示す操作表示部１４に、図２に示す設定画面が表示される。利用者により設定画面が操作され、期日を表す項目と文書の種類とが指定されて、文字認識の実行が指示される。例えば、見積書について「見積有効期限」がキー文字列として指定される。また、図６に示す画像読取部１６で、見積書の画像が読み取られる。
【００６６】
文字認識部３０は、画像読取部１６から画像情報を取得して、読み取り画像に対し文字認識を実施する。文字認識の結果は、文字認識結果記憶部３２に記憶される。
【００６７】
抽出部３４は、指定されたキー文字列を、操作表示部１４から取得する。抽出部３４は、指定されたキー文字列に対し、文字認識の結果に基づくキーバリュー抽出を実施して、キー文字列に対応するバリュー文字列を取得する。
【００６８】
形式判定部３６は、抽出部３４で抽出されたバリュー文字列が、日付形式の文字列か否かを判定する。抽出部３４で日付形式以外の文字列が抽出された場合には、抽出されたバリュー文字列を、日付生成部３８に渡す。抽出部３４で日付形式の文字列が抽出された場合には、抽出されたバリュー文字列を、出力部４０に渡す。
【００６９】
日付生成部３８は、文字認識の結果を用いて、抽出部３４で抽出されたバリュー文字列から、期日の日付を表す日付形式の文字列を生成する。日付生成部３８は、生成した日付形式の文字列を、出力部４０に渡す。日付生成部３８で日付形式の文字列が生成できない場合には、日付生成部３８は、抽出部３４で抽出されたバリュー文字列を、出力部４０に渡す。
【００７０】
出力部４０は、抽出部３４で抽出されたバリュー文字列及び日付生成部３８で生成された文字列の少なくとも一方を、抽出結果として操作表示部１４に表示させる。例えば、出力部４０は、抽出結果を表示するための画面情報を生成して、操作表示部１４に出力する。操作表示部１４は、画面情報に基づく画面を表示する。
【００７１】
＜プログラム＞
次に、文字認識プログラムについて説明する。
図１０は第１実施の形態に係る文字認識プログラムによる処理の流れを示すフローチャートである。文字認識プログラムは、情報処理装置１０のＣＰＵ１２Ａにより、記憶部２０から読み出されて実行される。利用者により文字認識処理の開始が指示されると、文字認識プログラムが実行される。
【００７２】
まず、ステップ１００で、画像読取部１６から見積書の読み取り画像の画像情報を取得する。次に、ステップ１０２で、見積書の読み取り画像に対し文字認識処理を実行する。次に、ステップ１０４で、文字認識結果を記憶する。次に、ステップ１０６で、利用者により指定された期日を表す項目（例えば、「見積有効期限」）の文字列を、キー文字列として取得する。
【００７３】
次に、ステップ１０８で、期日を表す項目の文字列をキー文字列として、文字認識の結果に基づくキーバリュー抽出を実施して、キー文字列に対応するバリュー文字列を抽出する。以下、期日を表す項目の文字列を「期日のキー文字列」、期日を表す項目に対応するバリュー文字列を「期日のバリュー文字列」という。
【００７４】
次に、ステップ１１０で、期日のバリュー文字列が抽出されたか否かを判定する。期日のバリュー文字列が抽出された場合は、ステップ１１２に進む。一方、期日のバリュー文字列が抽出されない場合は、ステップ１１１に進む。ステップ１１１では、エラーを表す文字列を抽出結果として出力して、ルーチンを終了する。
【００７５】
次に、ステップ１１２で、抽出された期日のバリュー文字列が日付形式か否かを判定する。バリュー文字列が、予め定めた日付形式のパターンの文字列である場合は、日付形式であると判定する。例えば、バリュー文字列が、西暦で「年」を表す４桁の数字、「年」の文字、「月」を表す１桁または２桁の数字、「月」の文字、「日」を表す１桁または２桁の数字、及び「日」の文字が、年→月→日の順序で配列された日付形式の文字列である場合は、日付形式であると判定する。日付形式の文字列である場合は、ステップ１３２に進む。一方、日付形式以外の文字列である場合は、ステップ１１４に進む。
【００７６】
次に、ステップ１１４で、期日表現パターンリスト（図６参照）に、日付形式以外のバリュー文字列の表現パターンと一致する表現パターンがあるか否かを判定する。一致する表現パターンがある場合は、ステップ１１６に進む。一方、一致する表現パターンがない場合は、ステップ１３４に進む。ステップ１３４では、日付形式以外のバリュー文字列を抽出結果として出力して、ルーチンを終了する。
【００７７】
次に、ステップ１１６で、算出式テーブル（図６、図７参照）を用いて、一致する表現パターンに対応する算出式を、使用する算出式に決定する。
【００７８】
次に、ステップ１１８で、利用者により指定された文書の種類を取得する。
【００７９】
次に、ステップ１２０で、起点日項目リスト（図６、図８参照）を用いて、指定された文書の種類に対応する起点日を表す項目（例えば、「発行日」）の文字列を、キー文字列として取得する。
【００８０】
次に、ステップ１２２で、起点日を表す項目の文字列をキー文字列として、文字認識の結果に基づくキーバリュー抽出を実施して、キー文字列に対応するバリュー文字列を抽出する。
【００８１】
次に、ステップ１２４で、起点日のバリュー文字列が抽出されたか否かを判定する。起点日のバリュー文字列が抽出された場合は、ステップ１２６に進む。一方、起点日のバリュー文字列が抽出されない場合は、ステップ１３４に進む。ステップ１３４では、日付形式以外のバリュー文字列を抽出結果として出力して、ルーチンを終了する。
【００８２】
次に、ステップ１２６で、抽出された起点日のバリュー文字列が日付形式か否かを判定する。日付形式の文字列である場合は、ステップ１２８に進む。ステップ１２８では、日付形式の文字列が表す起点日の日付を記憶する。一方、日付形式以外の文字列である場合は、ステップ１３４に進む。ステップ１３４では、日付形式以外のバリュー文字列を抽出結果として出力して、ルーチンを終了する。
【００８３】
次に、ステップ１３０で、ステップ１１６で決定された算出式と、ステップ１２８で記憶された起点日の日付とから、期日を表す日付形式の文字列を生成する。次に、ステップ１３２で、期日を表す日付形式の文字列を抽出結果として出力して、ルーチンを終了する。
【００８４】
なお、ステップ１２０でキー文字列が取得できない場合には、頁内の予め定めた日付記述領域（例えば、頁の右上欄）に記述された文字列が表す日付を、起点日の日付として取得してもよい。
【００８５】
−第２の実施の形態−
第２の実施の形態は、期日を表す日付形式の文字列を生成する方法が、第１の実施の形態とは異なる。第２の実施の形態では、期日のバリュー文字列の形態素解析により、起点日のキー文字列と、期間を表す文字列とを取得する。次に、起点日のキー文字列に応じたバリュー文字列をキーバリュー抽出により取得し、起点日のバリュー文字列から起点日の日付を特定する。次に、期間を表す文字列を日数に換算する。起点日の日付と日数とから期日の日付を取得する。
【００８６】
＜形態素解析＞
ここで、形態素解析について説明する。
形態素解析とは、辞書データなどを用いて、文字列を、意味を持つ最小単位である形態素の単位に区切り、それぞれの形態素の品詞、活用、読みなどを判別・付与する処理である。
【００８７】
図１１は形態素解析の一例を示す模式図である。図示した例では、期日のバリュー文字列が「御見積の日より１ヶ月」である場合、文字列は「御/見積/の/日/より/１/ヶ月」と区切られる。各形態素には、御（接頭詞、名詞接続、御、ゴ、ゴ）、見積（名詞、一般、見積、ミツモリ、ミツモリ）、の（助詞、連体化、の、ノ、ノ）、日（名詞、非自立、副詞可能、日、ヒ、ヒ）、より（助詞、格助詞、一般、より、ヨリ、ヨリ）、１（名詞、数）、ヶ月（名詞、接尾、助数詞、ヶ月、カゲツ、カゲツ）というように、括弧内の品詞、活用、読みが判別され付与される。
【００８８】
図１２は第１の形式と第２の形式とを説明する図である。本実施の形態では、期日のバリュー文字列を形態素解析した結果、期日のバリュー文字列の形式が、第１の形式または第２の形式に該当する場合に、期日を表す日付形式の文字列の生成を試みる。期日のバリュー文字列の形式が、第１の形式及び第２の形式のいずれにも該当しない場合は、日付形式以外のバリュー文字列を抽出結果とする。
【００８９】
第１の形式は、起点日を含む文字列Ａ、格助詞または接尾語、及び期間を表す文字列Ｂで構成される形式である。例えば、「御見積の日より１ヶ月」の例では、「御見積の日」が起点日を含む文字列Ａ、「より」が格助詞または接尾語、「１ヶ月」が期間を表す文字列Ｂである。第２の形式は、期間を表す文字列Ｂのみで構成される形式である。
【００９０】
＜情報処理装置＞
図１３は第２実施の形態に係る情報処理装置の記憶部の構成を示すブロック図である。図１３に示すように、本実施の形態では、記憶部２０には、後述する文字認識プログラム２２、起点日項目リスト２８、形態素解析辞書５０、及び日数換算規則５２の各々が記憶されている。これら各種プログラムや各種データは、他の記憶装置、外部の記憶装置に記憶されていてもよい。
【００９１】
形態素解析辞書５０は、上記の形態素解析に利用する辞書データである。日数換算規則５２は、期間を表す文字列Ｂを日数に変換する規則である。日数換算規則５２は、図１８に示すように、「ヶ月」は３０日、「週間」は７日、「日間」は１日など、助数詞が表す日数を予め定めている。例えば「３週間」の場合は、数詞「３」と助数詞「週間」とから、７日を３倍して２１日間という日数が算出される。
【００９２】
＜プログラム＞
次に、文字認識プログラムについて説明する。
図１４は第２実施の形態に係る文字認識プログラムによる処理の流れを示すフローチャートである。文字認識プログラムは、情報処理装置１０のＣＰＵ１２Ａにより、記憶部２０から読み出されて実行される。利用者により文字認識処理の開始が指示されると、文字認識プログラムが実行される。
【００９３】
まず、ステップ２００で、画像読取部１６から見積書の読み取り画像の画像情報を取得する。次に、ステップ２０２で、見積書の読み取り画像に対し文字認識処理を実行する。次に、ステップ２０４で、文字認識結果を記憶する。次に、ステップ２０６で、利用者により指定された期日を表す項目の文字列を、キー文字列として取得する。
【００９４】
次に、ステップ２０８で、期日を表す項目の文字列をキー文字列として、文字認識の結果に基づくキーバリュー抽出を実施して、キー文字列に対応するバリュー文字列を抽出する。次に、ステップ２１０で、期日のバリュー文字列が抽出されたか否かを判定する。期日のバリュー文字列が抽出された場合は、ステップ２１２に進む。一方、期日のバリュー文字列が抽出されない場合は、ステップ２１１に進む。ステップ２１１では、エラーを表す文字列を抽出結果として出力して、ルーチンを終了する。
【００９５】
次に、ステップ２１２で、抽出された期日のバリュー文字列が日付形式か否かを判定する。日付形式の文字列である場合は、ステップ２２８に進む。一方、日付形式以外の文字列である場合は、ステップ２１４に進む。
【００９６】
次に、ステップ２１４で、抽出された期日のバリュー文字列の形態素解析を行う。上述した通り、抽出された期日のバリュー文字列を、形態素解析辞書５０を用いて形態素の単位に区切り、それぞれの形態素に品詞、活用、読みなどを判別・付与する。
【００９７】
次に、ステップ２１６で、期日のバリュー文字列の形式が、第１の形式に該当するか否かを判定する。第１の形式に該当する場合は、ステップ２１８に進む。一方、第１の形式に該当しない場合は、ステップ２３２に進む。
【００９８】
次に、ステップ２１８で、文字列Ａの解析処理を実行する。
【００９９】
（文字列Ａの解析処理）
ここで、「文字列Ａの解析処理」について説明する。
図１５は文字列Ａの解析処理の流れを示すフローチャートである。文字列Ａの解析処理では、先ず、ステップ３００で、文字列Ａから起点日を表す文字列を抽出する。例えば、「御見積の日」から、接頭詞「御」と助詞「の」を除いて名詞を連結することで、起点日を表す文字列「見積日」が抽出される。
【０１００】
次に、ステップ３０２で、起点日を表す項目の文字列をキー文字列として、文字認識の結果に基づくキーバリュー抽出を実施して、キー文字列に対応するバリュー文字列を抽出する。
【０１０１】
次に、ステップ３０４で、起点日のバリュー文字列が抽出されたか否かを判定する。起点日のバリュー文字列が抽出された場合は、ステップ３０６に進む。一方、起点日のバリュー文字列が抽出されない場合は、ステップ３１０に進む。ステップ３１０では、図１６に示す「起点日の日付抽出処理」を実行して、ルーチンを終了する。
【０１０２】
次に、ステップ３０６で、抽出された起点日のバリュー文字列が日付形式か否かを判定する。日付形式の文字列である場合は、ステップ３０８に進む。ステップ３０８では、日付形式の文字列が表す起点日の日付を記憶して、ルーチンを終了する。一方、日付形式以外の文字列である場合は、ルーチンを終了する。
【０１０３】
なお、ステップ３００でキー文字列が取得できない場合には、頁内の予め定めた日付記述領域に記述された文字列が表す日付を、起点日の日付として取得してもよい。
【０１０４】
（起点日の日付抽出処理）
ここで、「起点日の日付抽出処理」について説明する。
図１６は起点日の日付抽出処理の流れを示すフローチャートである。起点日の日付抽出処理では、先ず、ステップ４００で、利用者により指定された文書の種類を取得する。
【０１０５】
次に、ステップ４０２で、起点日項目リスト（図６、図８参照）を用いて、指定された文書の種類に対応する起点日を表す項目（例えば、「発行日」）の文字列を、キー文字列として取得する。
【０１０６】
次に、ステップ４０４で、起点日を表す項目の文字列をキー文字列として、文字認識の結果に基づくキーバリュー抽出を実施して、キー文字列に対応するバリュー文字列を抽出する。
【０１０７】
次に、ステップ４０６で、起点日のバリュー文字列が抽出されたか否かを判定する。起点日のバリュー文字列が抽出された場合は、ステップ４０８に進む。一方、起点日のバリュー文字列が抽出されない場合は、ルーチンを終了する。
【０１０８】
次に、ステップ４０８で、抽出された起点日のバリュー文字列が日付形式か否かを判定する。日付形式の文字列である場合は、ステップ４１０に進む。ステップ４１０では、日付形式の文字列が表す起点日の日付を記憶する。一方、日付形式以外の文字列である場合は、ルーチンを終了する。
【０１０９】
なお、ステップ４０２でキー文字列が取得できない場合には、頁内の予め定めた日付記述領域に記述された文字列が表す日付を、起点日の日付として取得してもよい。
【０１１０】
図１４の説明に戻る。次に、ステップ２２０で、文字列Ａの解析処理の結果、起点日の日付が取得できたか否かを判定する。起点日の日付が取得できた場合は、ステップ２２２に進む。起点日の日付が取得できない場合は、ステップ２３０に進む。ステップ２３０では、日付形式以外のバリュー文字列を抽出結果として出力して、ルーチンを終了する。
【０１１１】
次に、ステップ２２２で、文字列Ｂの解析処理を実行する。
【０１１２】
（文字列Ｂの解析処理）
ここで、「文字列Ｂの解析処理」について説明する。
図１７は文字列Ｂの解析処理の流れを示すフローチャートである。文字列Ｂの解析処理では、先ず、ステップ５００で、日数換算規則を用いて、期間を表す文字列Ｂを日数に変換する。次に、ステップ５０２で、算出された日数を記憶して、ルーチンを終了する。
【０１１３】
図１４の説明に戻る。次に、ステップ２２４で、文字列Ｂの解析処理の結果、日数が取得できたか否かを判定する。日数が取得できた場合は、ステップ２２６に進む。日数が取得できない場合は、ステップ２３０に進む。ステップ２３０では、日付形式以外のバリュー文字列を抽出結果として出力して、ルーチンを終了する。
【０１１４】
次に、ステップ２２６で、ステップ２１８で取得された起点日の日付と、ステップ２２２で取得された日数とから、期日を表す日付形式の文字列を生成する。次に、ステップ２２８で、期日を表す日付形式の文字列を抽出結果として出力して、ルーチンを終了する。      
【０１１５】
また、ステップ２１６で、期日のバリュー文字列の形式が第１の形式に該当せず、ステップ２３２に進んだ場合は、次に、ステップ２３２で、期日のバリュー文字列の形式が、第２の形式に該当するか否かを判定する。第２の形式に該当する場合は、ステップ２３４に進む。一方、第２の形式に該当しない場合は、ステップ２３４に進む。
【０１１６】
次に、ステップ２３４で、図１７に示す文字列Ｂの解析処理を実行する。
【０１１７】
図１４の説明に戻る。次に、ステップ２３６で、文字列Ｂの解析処理の結果、日数が取得できたか否かを判定する。日数が取得できた場合は、ステップ２３８に進む。日数が取得できない場合は、ステップ２３０に進む。ステップ２３０では、日付形式以外のバリュー文字列を抽出結果として出力して、ルーチンを終了する。
【０１１８】
ステップ２３８では、図１６に示す「起点日の日付抽出処理」を実行する。
【０１１９】
次に、ステップ２４０で、起点日の日付抽出処理の結果、起点日の日付が取得できたか否かを判定する。起点日の日付が取得できた場合は、ステップ２４２に進む。起点日の日付が取得できない場合は、ステップ２３０に進む。ステップ２３０では、日付形式以外のバリュー文字列を抽出結果として出力して、ルーチンを終了する。
【０１２０】
次に、ステップ２４２で、ステップ２３４で取得された日数と、ステップ２３８で取得された起点日の日付とから、期日を表す日付形式の文字列を生成する。次に、ステップ２４４で、期日を表す日付形式の文字列を抽出結果として出力して、ルーチンを終了する。
【０１２１】
−変形例−
なお、上記実施の形態で説明した情報処理装置及びプログラムの構成は一例であり、本発明の主旨を逸脱しない範囲内においてその構成を変更してもよいことは言うまでもない。
【０１２２】
上記各実施の形態では、コンピュータを利用してプログラムを実行することにより、該各処理をソフトウェア構成により実現する例について説明したが、本発明はこれに限定されるものではない。例えば、該各処理を、ハードウェア構成や、ハードウェア構成とソフトウェア構成の組み合わせによって実現してもよい。
【符号の説明】
【０１２３】
１０   情報処理装置
１２   情報処理部
１４   操作表示部
１６   画像読取部
１８   通信部
２０   記憶部
２２   文字認識プログラム
２４   期日表現パターンリスト
２６   算出式テーブル
２８   起点日項目リスト
３０   文字認識部
３２   文字認識結果記憶部
３４   抽出部
３６   形式判定部
３８   日付生成部
４０   出力部
５０   形態素解析辞書
５２   日数換算規則
【図１】
2020126485.tif 000003
【図２】
2020126485.tif 000004
【図３】
2020126485.tif 000005
【図４】
2020126485.tif 000006
【図５】
2020126485.tif 000007
【図６】
2020126485.tif 000008
【図７】
2020126485.tif 000009
【図８】
2020126485.tif 000010
【図９】
2020126485.tif 000011
【図１０】
2020126485.tif 000012
【図１１】
2020126485.tif 000013
【図１２】
2020126485.tif 000014
【図１３】
2020126485.tif 000015
【図１４】
2020126485.tif 000016
【図１５】
2020126485.tif 000017
【図１６】
2020126485.tif 000018
【図１７】
2020126485.tif 000019
【図１８】
2020126485.tif 000020