(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024000690
(43)【公開日】2024-01-09
(54)【発明の名称】文書情報構造化装置、文書情報構造化方法およびプログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20231226BHJP
【FI】
G06Q50/10
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022099538
(22)【出願日】2022-06-21
(71)【出願人】
【識別番号】000102739
【氏名又は名称】エヌ・ティ・ティ・アドバンステクノロジ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】茶山 通隆
(72)【発明者】
【氏名】平子 卓弥
(72)【発明者】
【氏名】松尾 義博
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC11
(57)【要約】
【課題】個別の様式の登録を必要とせず、帳票に関する幅広い業務の効率的な自動処理を実現できる文書情報構造化装置、文書情報構造化方法およびプログラムを提供すること。
【解決手段】文書情報構造化装置は、電子化文書を入力する文書入力部と、文書入力部が入力した電子化文書から、文書中の文字列と文字列の位置とを抽出する文字情報抽出部と、文字情報抽出部が抽出した文字列と文字列の位置とから、文書に記述された各項目の項目値を抽出する項目値抽出部と、項目値抽出部が抽出した項目値の種別を推定する項目値種別判定部と、項目値抽出部が抽出した項目値と項目値種別判定部が推定した項目値の種別とを含む記述項目情報を出力する記述項目情報出力部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
電子化文書を入力する文書入力部と、
前記文書入力部が入力した前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出する文字情報抽出部と、
前記文字情報抽出部が抽出した前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出する項目値抽出部と、
前記項目値抽出部が抽出した前記項目値の種別を推定する項目値種別判定部と、
前記項目値抽出部が抽出した前記項目値と前記項目値種別判定部が推定した前記項目値の前記種別とを含む記述項目情報を出力する記述項目情報出力部と、
を備える文書情報構造化装置。
【請求項2】
前記記述項目情報に含まれる前記項目値の前記種別を表現している文字列と前記文字列の位置とのいずれか一方又は両方を前記電子化文書から抽出する項目名抽出部
をさらに備える、請求項1に記載の文書情報構造化装置。
【請求項3】
文字列同士を連結するかどうかを判定する文字列連結判定部
をさらに備える、請求項1又は請求項2に記載の文書情報構造化装置。
【請求項4】
文字列を分割するかどうかを判定する文字列分割判定部
をさらに備える、請求項1又は請求項2に記載の文書情報構造化装置。
【請求項5】
前記電子化文書中に文字コードで表現された文字情報が含まれているかどうかを判定する文字情報判定部と、
前記文字情報判定部による前記文字情報が含まれているかどうかの判定結果に基づいて、前記文字情報を用いるか、画像情報を文字読み取り装置にて文字情報化して用いるかを切り替える文字情報切り替え部と、
をさらに備える、請求項1に記載の文書情報構造化装置。
【請求項6】
コンピューターが実行する文書情報構造化方法であって、
電子化文書を入力するステップと、
前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出するステップと、
前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出するステップと、
前記項目値の種別を推定するステップと、
前記項目値と前記項目値の前記種別とを含む記述項目情報を出力するステップと、
を有する、文書情報構造化方法。
【請求項7】
コンピューターに、
電子化文書を入力するステップと、
前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出するステップと、
前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出するステップと、
前記項目値の種別を推定するステップと、
前記項目値と前記項目値の前記種別とを含む記述項目情報を出力するステップと、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書情報構造化装置、文書情報構造化方法およびプログラムに関する。
【背景技術】
【0002】
従来、企業等における契約や給付・支払等の業務では、一定の形式を持った書面にてその内容を記述し、取引や合意形成を進めることが一般的である。例えば契約時には、申込書や見積書、注文書、注文請書等の書面にて契約の申込や承諾の内容を取り交わし、給付・支払時には、納品書や請求書等の書面が取り交わされる。
近年ではコンピューターネットワークを通じて書面の取り交わしを行うことも多く、したがって書面は紙に印刷されたものとは限らず、PDF(Portable Document Format)やオフィスソフトウェアのファイルにて電子的に授受されることも多い。
【0003】
また、企業での契約管理や会計処理はコンピューター上で進める場合が多く、そのためには、これら書面から金額や取引日、取引相手などの情報を抜き取り、会計ソフトウェアや表計算ソフトウェアへ投入する工程が必要となる。ソフトウェアへの投入は、作業者が目視で転記する場合も多いが、文字認識ソフトウェアを用いて書面画像の読み取りを自動化する技術も知られている。
書面画像の読み取りに関して、身分証明書の読み取りにおいて、あらかじめ定められたレイアウト情報を用いて姓名等の記載場所を特定し、文字認識ソフトウェアで読み取る技術が知られている(例えば、特許文献1参照)。また、書面画像の読み取りに関して、読取対象エリアをユーザーが指定することで指定箇所を文字認識し、帳票から項目を読み取る技術が知られている(例えば、特許文献2参照)。また、書面画像の読み取りに関して、項目名をリストアップした辞書を用いることで項目名を抽出し、その近傍から項目値を読み取る技術が知られている(例えば、特許文献3参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2016-173710号公報
【特許文献2】特開2015-90623号公報
【特許文献3】特開2020-16946号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来技術では、項目の記載箇所を指定することでコンピューター処理に必要な情報を抜き取っており、帳票の様式が固定されている場合やバリエーションが限定的な場合には効率的な自動処理が期待できるものの、多様な様式の帳票を対象とする場合にはそのバリエーションひとつひとつを事前登録するか、もしくは帳票読み取りの都度位置を指定する必要があり、効率的な処理の妨げとなっていた。
また、特許文献3のように項目名辞書を手掛かりに抽出する場合は、項目名が存在せず項目値のみが書かれた項目については読取りが困難であり、対象項目が限定的であった。
【0006】
本発明はこのような課題に鑑みてなされたもので、その目的とするところは、個別の様式の登録を必要とせず、帳票に関する幅広い業務の効率的な自動処理を実現できる文書情報構造化装置、文書情報構造化方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明の一態様は、電子化文書を入力する文書入力部と、前記文書入力部が入力した前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出する文字情報抽出部と、前記文字情報抽出部が抽出した前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出する項目値抽出部と、前記項目値抽出部が抽出した前記項目値の種別を推定する項目値種別判定部と、前記項目値抽出部が抽出した前記項目値と前記項目値種別判定部が推定した前記項目値の前記種別とを含む記述項目情報を出力する記述項目情報出力部と、を備える文書情報構造化装置である。
(2)本発明の一態様は、上記(1)に記載の文書情報構造化装置において、前記記述項目情報に含まれる前記項目値の前記種別を表現している文字列と前記文字列の位置とのいずれか一方又は両方を前記電子化文書から抽出する項目名抽出部をさらに備える。
(3)本発明の一態様は、上記(1)又は上記(2)に記載の文書情報構造化装置において、文字列同士を連結するかどうかを判定する文字列連結判定部をさらに備える。
(4)本発明の一態様は、上記(1)から上記(3)のいずれか一項に記載の文書情報構造化装置において、文字列を分割するかどうかを判定する文字列分割判定部をさらに備える。
(5)本発明の一態様は、上記(1)から上記(4)のいずれか一項に記載の文書情報構造化装置において、前記電子化文書中に文字コードで表現された文字情報が含まれているかどうかを判定する文字情報判定部と、前記文字情報判定部による前記文字情報が含まれているかどうかの判定結果に基づいて、前記文字情報を用いるか、画像情報を文字読み取り装置にて文字情報化して用いるかを切り替える文字情報切り替え部と、をさらに備える。
【0008】
(6)本発明の一態様は、コンピューターが実行する文書情報構造化方法であって、電子化文書を入力するステップと、前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出するステップと、前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出するステップと、前記項目値の種別を推定するステップと、前記項目値と前記項目値の前記種別とを含む記述項目情報を出力するステップと、を有する、文書情報構造化方法である。
【0009】
(7)本発明の一態様は、コンピューターに、電子化文書を入力するステップと、前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出するステップと、前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出するステップと、前記項目値の種別を推定するステップと、前記項目値と前記項目値の前記種別とを含む記述項目情報を出力するステップと、を実行させる、プログラムである。
【発明の効果】
【0010】
本発明によれば、個別の様式の登録を必要とせず、帳票に関する幅広い業務の効率的な自動処理を実現できる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態に係る文書情報構造化装置10の機能構成例を表す概略ブロック図である。
【
図2】本実施形態に係る文書情報構造化装置10の動作の一例を示すフローチャートである。
【
図3】本実施形態に係る文書情報構造化装置10の動作の一例を示すフローチャートである。
【
図4】実施形態の変形例に係る文書情報構造化装置10aの機能構成例を表す概略ブロック図である。
【
図5】実施形態の変形例に係る文書情報構造化装置10aの動作の一例を示すフローチャートである。
【
図6】実施形態の変形例に係る文書情報構造化装置10aの動作の一例を示すフローチャートである。
【
図7】入力される文書(書面)の一例を示す図である。
【
図8A】実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
【
図8B】実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
【
図9A】実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
【
図9B】実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
【
図10】実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
【
図11】実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
【発明を実施するための形態】
【0012】
次に、本実施形態に係る文書情報構造化装置、文書情報構造化方法およびプログラムを、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「XXに基づいて」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づいて」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
【0013】
(実施形態)
(文書情報構造化装置)
以下、文書情報構造化装置の一実施形態を詳細に説明する。
図1は、本実施形態に係る文書情報構造化装置10の機能構成例を表す概略ブロック図である。
文書情報構造化装置10は、帳票などの文書に関する業務の支援を行う。ここで、文書とは、例えば、見積書、契約書、融資等の申し込み書類や公募案件への応募書類、社内の稟議書等のある程度記載内容が定められている文書であればどのような文書であってもよい。以下の説明では、文書として、見積書を例に説明する。文書情報構造化装置10が行う帳票などの文書に関する業務の支援とは、文書の内容等を顧客が確認を行う際のサポートを意味する。内容の一例は、一又は複数の項目と、一又は複数の項目の各々の内容(項目値)、項目値の種別である。
【0014】
文書情報構造化装置10には、電子化された文書(以下「電子化文書」という)が入力される。文書情報構造化装置10は、入力された電子化文書から、文書中の文字列と文字列の位置とを抽出し、抽出した文字列と文字列の位置とから、文書に記述された各項目の項目値を抽出し、抽出した項目値の種別を推定し、抽出した項目値と推定した項目値の種別とを含む記述項目情報を出力する。
【0015】
以下、文書情報構造化装置10について、説明する。
文書情報構造化装置10は、パーソナルコンピュータ、サーバ、スマートフォン、タブレットコンピュータ、仮想マシン(VM: Virtual Machine)又は産業用コンピューター等の装置によって実現される。文書情報構造化装置10は、例えば制御部100及び記憶部150を備える。
【0016】
制御部100は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサが記憶部150に格納されたコンピュータプログラム(ソフトウェア)を実行することにより実現される。制御部100は、文書入力部110、文字情報抽出部120、記述項目構造化部130および記述項目情報出力部140として機能する。
また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアとの協働によって実現されてもよい。
記憶部150は、HDD(Hard Disk Drive)やフラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)などにより実現される。
【0017】
文書入力部110は、構造化対象となる一又は複数の電子文書を入力する。本実施形態では、文書入力部110が、構造化対象となる電子文書を1つ入力する場合を例に説明する。文書入力部110は、自装置の記憶部150に記憶された文書を入力してもよいし、文書情報構造化装置10にアップロードされた文書を入力してもよいし、ネットワークを介して他の装置から送信された電子文書を入力してもよいし、ネットワーククローラーによって収集された電子文書を入力してもよいし、FAXソフトウェアによって受信された電子文書を入力してもよいし、ユーザーによりキーボード入力された電子文書を入力してもよいし、USB(Universal Serial Bus)メモリやSDカードなどの外部記録媒体に記憶された文書を入力してもよい。
【0018】
文字情報抽出部120は、文書入力部110に入力された電子文書から文字情報を抽出する。具体的には、文字情報抽出部120は、特定の条件に従って電子化文書から、文書中の文字列と文字列の位置とを抽出する。
文字情報を抽出する処理について説明する。
文字情報抽出部120は、文書入力部110によって入力された電子文書を取得し、取得した電子文書から文字情報を抽出する。文字情報には、文字列とその文字列の紙面上での座標とが含まれる。ここで文字列と記述するが、長さ1の文字列、すなわち単独の文字であっても構わない。座標は文字に外接する矩形で表現される。ただし、座標が文字に外接する矩形で表現されることに限られず、矩形以外の形状で表現されてもよい。以下、文字列とその文字列の紙面上の座標とを含む文字情報を文字ブロックとも呼ぶ。
【0019】
文字情報抽出部120は、入力された電子文書から文字ブロックの集合を抽出する。具体的には、文字情報抽出部120は、入力された電子文書の文書表現種別を判定する。ここで文書表現種別とは、印刷形式の文書を得るための電子情報の内部表現タイプを指す。電子情報の内部表現タイプの一例は、マークアップ言語文書、レイアウト文書、ビットマップ画像文書である。文字情報抽出部120は、例えばファイルの拡張子やバイナリファイル先頭のマジックナンバーなどからファイル種類を判定することで、文書表現種別を判定する。
【0020】
文字情報抽出部120は、電子文書の文書表現種別がマークアップ言語文書であった場合には、その電子文書をレンダリングし、印刷した際の座標を計算し出力する。ここでマークアップ言語文書とは、HTML(Hypertext Markup Language)などのマークアップ言語で記述されている文書である。さらに、本実施形態では、ワードプロセッサや表計算ソフトウェア、プレゼンテーションソフトウェアなどのソフトウェアの内部表現形式で記述されている文書も、その内部表現を紙面上に配置することで最終紙面が得られるという観点から、マークアップ言語で記述されている文書に含むこととする。
文字情報抽出部120は、入力された電子文書の文書表現種別がマークアップ言語であると判定した場合、その電子文書をレンダリングして印刷紙面上の配置を決定し、文字列とその文字列の座標とを取得する。
【0021】
文字情報抽出部120は、ワープロ等のレンダリング機能を用いることができる場合には、同機能を用いてレンダリングを実施するようにしてもよい。文字情報抽出部120は、レンダリング機能がワープロ等でAPI(Application Programming Interface)として用意されていない場合には、例えばPDF(Portable Document Format)形式で出力し、PDF形式で出力した結果から文字列とその文字列の座標とを抽出するようにしてもよい。文字情報抽出部120は、ワープロ等の機能を用いずにマークアップを解釈して配置を算出してもよい。文字情報抽出部120は、マークアップを解釈して配置を算出する場合に、例えば表計算ソフトウェアの文書であれば、各セルのサイズ等から計算して文字列とその文字列の座標とを求めるようにしてもよい。
【0022】
文字情報抽出部120は、入力された電子文書の文書表現種別がHTML形式であると判定した場合、ブラウザ機能を用いてその電子文書をレンダリングして印刷紙面上の配置を決定してもよいし、マークアップ言語を解釈して配置を算出してもよい。
文字情報抽出部120は、電子文書の文書表現種別がレイアウト文書であった場合には、その電子文書から文字列とその文字列の座標とを抽出する。ここでレイアウト文書とは、PDFやPostScriptのように、内部表現として文字とその文字の座標とを表現した文書を指す。レイアウト文書は、文書中に文字とその文字の座標情報とが記述されているため、文字情報抽出部120、記述されている文字とその文字の座標情報をそのまま取り出して出力する。
【0023】
文字情報抽出部120は、電子文書の文書表現種別がビットマップ画像文書であった場合には、光学文字読み取り装置等で用いられる文字認識ソフトウェアを用いて、その電子文書から文字とその文字の座標とを抽出する。ここでビットマップ画像文書とは、スキャナーから入力されたビットマップ画像や、写真撮影された画像データ、コンピューター画面をキャプチャした画像などを指す。PDF形式のファイルのうち、内部に文字情報や座標情報を含まずにビットマップ画像を格納している文書もビットマップ画像文書に該当する。文字情報抽出部120は、文字認識ソフトウェアから得られる文字とその文字の座標情報とを取得する。
【0024】
文字情報抽出部120は、電子文書にビットマップ画像と、文字とその文字の座標情報との双方を含むと判定した場合には、文字とその文字の座標情報を優先してレイアウト文書として取り扱ってもよいし、ビットマップ画像を優先してビットマップ画像文書として取り扱ってもよい。
また、文字情報抽出部120は、電子文書にビットマップ画像と、文字とその文字の座標情報との双方を含むと判定した場合には、その電子文書から文字とその文字の座標とを抽出し、文字認識ソフトウェアを用いてその電子文書から文字とその文字の座標とを抽出し、抽出された文字数に応じていずれかを選択するようにしてもよい。
【0025】
例えば、文字情報抽出部120は、その電子文書から抽出した文字数と文字認識ソフトウェアを用いてその電子文書から抽出した文字数との比が閾値を超えている場合にはその電子文書から抽出した文字とその文字の座標情報とを優先し、超えていない場合には文字認識ソフトウェアを用いてその電子文書から抽出した文字とその文字の座標情報とを優先するようにしてもよい。ここで閾値の一例は、0.9である。
【0026】
項目情報を構造化する処理について説明する。
記述項目構造化部130は、文字情報抽出部120から電子文書中の文字ブロックの集合を取得する。記述項目構造化部130は、取得した文字ブロックの集合から、電子文書に記述された記述項目情報を生成する。記述項目情報は、少なくとも項目種別と項目値との組み合わせから構成される。
具体的には、記述項目構造化部130は、取得した文字ブロックの集合から、項目値を指し示す文字ブロックを抽出する。記述項目構造化部130は、文字ブロックやその文字ブロックの周辺の文字ブロックに含まれるキーワードによるルール判定を行うことによって文字ブロックが項目値を指し示すかどうかを判定する。ここで、周辺の文字ブロックの範囲は、当該文字ブロックとの相対位置関係で定義するようにしてもよい。例えば、周辺の文字ブロックは、当該文字ブロックと同一行のものを範囲としてもよいし、当該文字ブロックと上下左右のブロック間距離が閾値以下のものを範囲としてもよい。
【0027】
また、記述項目構造化部130は、ルール判定の代わりに又はルール判定とともに教師データを用いた機械学習で文字ブロックが項目値を指し示すかどうかを判定するようにしてもよい。教師データは人手で準備したものであってもよい。機械学習で文字ブロックが項目値を指し示すかどうかを判定することを実現する場合には、当該文字ブロックおよび周辺の文字ブロックに含まれる文字に基づいて、文字や文字n-gram、単語、単語n-gram、ニューラルネットや特異値分解等の統計処理によって生成した概念ベクトルなどを特徴量としてもよい。
また、機械学習で文字ブロックが項目値を指し示すかどうかを判定することを実現する場合には、当該文字ブロックおよび周辺の文字ブロックに含まれる文字に加えて当該文字ブロックの紙面上の位置をルール条件や機械学習の特徴量としてもよい。機械学習の場合は、文字ブロックの紙面上の位置の特徴によって例えば、紙面上右上の文字ブロックは書面発行日の項目値を指し示す可能性があるなどの法則が学習されることが期待できる。
【0028】
記述項目構造化部130は、抽出した項目値を指し示す文字ブロックに基づいて、項目種別を判定する。項目種別とは書面で項目値が持つ意味分類である。項目種別は、例えば書面が見積書の場合であれば、[契約件名]、[見積金額]、[見積有効期限]などが該当する。
記述項目構造化部130は、項目値を指し示すかどうかを判定する処理と同様に、当該文字ブロックや周辺文字ブロックに含まれる文字や当該文字ブロックの紙面上の位置を手掛かりに、ルールや機械学習で判定する。記述項目構造化部130は、例えば周辺文字ブロックに「有効」や「期限」といった単語があることを手掛かりとすることで当該文字ブロックが[見積有効期限]であると判定する。
【0029】
記述項目情報出力部140は、記述項目構造化部130から記述項目情報や記述項目に関連する文字ブロック情報を取得する。記述項目情報出力部140は、取得した記述項目情報や記述項目に関連する文字ブロック情報を出力する。例えば、記述項目情報出力部140は、取得した記述項目情報や記述項目に関連する文字ブロック情報を、表示部(図示なし)に表示するようにしてもよいし、ファイルに出力するようにしてもよいし、ネットワークに出力してもよい。
【0030】
図2は、本実施形態に係る文書情報構造化装置10の動作の一例を示すフローチャートである。
文書入力部110は、構造化対象となる一又は複数の電子文書を入力する(ステップS1-1)。
【0031】
文字情報抽出部120は、文字ブロック抽出処理を行う(ステップS2-1)。例えば、文字情報抽出部120は、文書入力部110に入力された電子文書から文字ブロックの集合を抽出する。
【0032】
図3は、本実施形態に係る文書情報構造化装置10の動作の一例を示すフローチャートである。
図3は、文字情報抽出部120が行う文字ブロック抽出処理の詳細を示す。
文字情報抽出部120は、文書表現種別判定処理を行う(ステップS2-11)。例えば、文字情報抽出部120は、文書入力部110に入力された電子文書の文書表現種別を判定する。ここでは、一例として、文字情報抽出部120が、電子文書の文書表現種別として、マークアップ言語文書と、レイアウト文書と、ビットマップ画像文書とのいずれかを判定する場合について説明する。
【0033】
文字情報抽出部120は、電子文書の文書表現種別がマークアップ言語文書であると判定した場合には、レンダリング抽出処理を行う(ステップS2-12)。例えば、文字情報抽出部120は、その電子文書をレンダリングし、印刷した際の座標を計算し出力する。
【0034】
文字情報抽出部120は、電子文書の文書表現種別がレイアウト文書であると判定した場合には、文字座標抽出処理を行う(ステップS2-13)。例えば、文字情報抽出部120は、その電子文書から文字とその文字の座標とを抽出する。
【0035】
文字情報抽出部120は、電子文書の文書表現種別がビットマップ画像文書であると判定した場合には、文字認識抽出処理を行う(ステップS2-14)。例えば、文字情報抽出部120は、文字認識ソフトウェアを用いて、その電子文書から文字とその文字の座標とを抽出する。
図2に戻り説明を続ける。
【0036】
記述項目構造化部130は、項目値抽出処理を行う(ステップS3-1)。例えば、記述項目構造化部130は、文字情報抽出部120が出力した文字ブロックの集合を取得し、取得した文字ブロックの集合から、項目値を指し示す文字ブロックを抽出する。
【0037】
記述項目構造化部130は、項目種別判定処理を行う(ステップS4-1)。例えば、記述項目構造化部130は、項目値抽出処理で抽出した項目値の項目種別を判定する。
【0038】
記述項目情報出力部140は、記述項目構造化部130が出力した記述項目情報や記述項目に関連する文字ブロック情報を取得し、取得した記述項目情報や記述項目に関連する文字ブロック情報を出力する(ステップS5-1)。
【0039】
前述した実施形態では、一例として、文書入力部110が、構造化対象となる電子文書を1つ入力する場合について説明したが、この例に限られない。例えば、文書入力部110が、構造化対象となる電子文書を複数入力するようにしてもよい。
前述した実施形態では、文書入力部110が、構造化対象となる一又は複数の電子文書を入力する場合について説明したがこの例に限られない。例えば、仮に構造化対象の文書が物理的な紙書面であれば、文書入力部110は、スキャナーで構造化対象の文書を電子文書に変換して入力するようにしてもよい。具体的には、電子化文書中に文字コードで表現された文字情報が含まれているかどうかを判定する文字情報判定部と、文字情報判定部による文字情報が含まれているかどうかの判定結果に基づいて、文字情報を用いるか、スキャナーなどの画像情報を文字読み取り装置にて文字情報化して用いるかを切り替える文字情報切り替え部とをさらに備えるようにしてもよい。
【0040】
前述した実施形態では、文字情報抽出部120が、入力された電子文書の文書表現種別を判定する場合について説明したが、この例に限られない。例えば、文字情報抽出部120は、入力される電子文書の文書表現種別を固定してシステムを構成してもよい。このように構成することによって、文字情報抽出部120は、入力された電子文書の文書表現種別を判定する機能を備えることなく、固定された文書表現種別に合致した処理のみを実装できる。例えば、表計算ソフトウェアの文書のみを対象にしたシステムであれば、文字情報抽出部120は、レンダリング抽出処理のみを実装すればよいため、軽量なシステムとすることができる。
【0041】
また、例えば、文字情報抽出部120は、入力された電子文書の文書表現種別が、マークアップ言語文書やレイアウト文書であると判定した場合であっても、いったんその電子文書のビットマップ画像を取得し、取得したビットマップ画像から、文字認識ソフトウェアを用いて文字列とその文字列の座標を取得するようにしてもよい。このように構成することで、入力された電子文書の文書表現種別を判定する処理を省略できるため、シンプルなシステムにできる。
【0042】
前述した実施形態では、記述項目構造化部130が、項目値かどうかの判定と項目種別の判定とを別個に行う場合について説明したが、この例に限られない。例えば、記述項目構造化部130は、項目値かどうかの判定と項目種別の判定とを同時に(並行して)行うようにしてもよい。この場合、文字ブロックが項目値以外であることを示す[その他]が項目種別に加えられてもよい。記述項目構造化部130は、各文字ブロックの項目種別を判定し、項目種別が[その他]の場合には当該文字ブロックは項目値ではないと判定するようにしてもよい。このように構成することで、同等の記述項目情報が生成できる。
【0043】
前述した実施形態において、記述項目構造化部130は、辞書やルールを用いて項目名を抽出してもよいし、機械学習で項目名を抽出してもよい。記述項目構造化部130は、辞書やルールを用いて項目名を抽出する場合、例えば、着目している項目値が数字とカンマから構成されている場合には、その項目値の左側に存在する文字ブロックで「金額」という単語を含む文字ブロックを項目名とする、などのルールを用意する。このようなルールにより「合計金額」や「請求金額」と書かれた文字ブロックが項目名として抽出されることが期待できる。
【0044】
前述した実施形態において、記述項目構造化部130は、機械学習で項目名を抽出する場合、項目値の文字ブロックと項目名候補の文字ブロックとの相対的位置関係や、項目値に含まれる文字や単語、項目名候補ブロックに含まれる文字や単語などを特徴量として教師データから学習するようにしてもよい。
前述した実施形態において、記述項目構造化部130は、項目種別を判定する処理の後に項目値の項目名を指し示す文字ブロックを抽出する処理を行ってもよいし、並行して行ってもよいし、項目値の項目名を指し示す文字ブロックを抽出する処理の後に項目種別を判定する処理を行ってもよい。
【0045】
前述した実施形態において、記述項目構造化部130は、項目種別を判定する処理の後に項目値の項目名を指し示す文字ブロックを抽出する処理を行う場合には、項目値の項目名を指し示す文字ブロックを抽出する処理を行う場合に用いる機械学習の特徴量に項目種別を判定する処理で推定された項目種別を加えるようにしてもよい。
前述した実施形態において、記述項目構造化部130は、項目値の項目名を指し示す文字ブロックを抽出する処理の後に項目種別を判定する処理を行う場合には、抽出した項目名を指し示す文字ブロックの特徴を、項目種別を判定する処理を行う場合に用いる機械学習の特徴量に加えるようにしてもよい。
【0046】
本実施形態に係る文書情報構造化装置10によれば、文書情報構造化装置10は、電子化文書を入力する文書入力部110と、文書入力部110が入力した電子化文書から、文書中の文字列と文字列の位置とを抽出する文字情報抽出部120と、文字情報抽出部120が抽出した文字列と文字列の位置とから、文書に記述された各項目の項目値を抽出する項目値抽出部としての記述項目構造化部130と、項目値抽出部が抽出した項目値の種別を推定する項目値種別判定部としての記述項目構造化部130と、項目値抽出部が抽出した項目値と項目値種別判定部が推定した項目値の種別とを含む記述項目情報を出力する記述項目情報出力部140とを備える。
このように構成することによって、文書情報構造化装置10は、電子化文書から、文書中の文字列と文字列の位置とを抽出し、抽出した文字列と文字列の位置とから、文書に記述された各項目の項目値を抽出し、抽出した項目値の種別を推定できるため、個別の様式の登録を必要とせず、帳票に関する幅広い業務の効率的な自動処理を実現できる。
【0047】
また、文書情報構造化装置10において、電子化文書中に文字コードで表現された文字情報が含まれているかどうかを判定する文字情報判定部と、文字情報判定部による文字情報が含まれているかどうかの判定結果に基づいて、文字情報を用いるか、画像情報を文字読み取り装置にて文字情報化して用いるかを切り替える文字情報切り替え部とをさらに備える。
このように構成することによって、文字情報判定部によって電子化文書中に文字コードで表現された文字情報が含まれているかどうかを判定できる。文字情報判定部によって文字情報が含まれている場合には文字情報切り替え部によって文字情報を用いるように切り替え、文字情報が含まれず画像情報である場合にはその画像情報を文字読み取り装置にて文字情報化して用いるように切り替えることができるため、文書入力部110は、構造化対象の文書を電子文書に変換して入力することができる。
なお、文字情報判定部による文字情報の有無の自動判定が効果を持つのは例えば下記のケースである。
(1)PDF文書のように、内部に文字情報を持っているものと、文字情報を持たず画像で表現されたものがある場合、そのどちらからでも情報を抽出できる。
(2)(1)の場合、文字情報をいったん画像化して、常に文字認識をするという構成も考えられるが、その場合は文字認識誤りの可能性があるため、精度が低下するおそれがある。
(3)文書形式によっては画像と文字情報がページ中に混在している場合もある。例えば表の部分は別ソフトで作成して、ワープロソフトでその画像を貼りつけたような場合である。このような場合には、例えば文字情報から得られた文字数と画像情報から得られた文字数の比に基づいて判定することで、文字情報を用いる場合と、画像情報を文字読み取り装置にて文字情報化して用いる場合とのどちらを優先すべきかを自動切換えできる。
【0048】
(実施形態の変形例)
図4は、実施形態の変形例に係る文書情報構造化装置10aの機能構成例を表す概略ブロック図である。
文書情報構造化装置10aは、帳票などの文書に関する業務の支援を行う。文書情報構造化装置10aは、電子化文書が入力され、入力された電子化文書から、文書中の文字列と文字列の位置とを抽出し、抽出した文字列と文字列の位置とから、文書に記述された各項目の項目値を抽出し、抽出した項目値の種別を推定し、抽出した項目値について、項目名を指し示す文字ブロックを抽出し、抽出した項目値と推定した項目値の種別とを含む記述項目情報を出力する。
【0049】
以下、文書情報構造化装置10aについて、説明する。
文書情報構造化装置10aは、パーソナルコンピュータ、サーバ、スマートフォン、タブレットコンピュータ、仮想マシン又は産業用コンピューター等の装置によって実現される。文書情報構造化装置10aは、例えば制御部100a及び記憶部150を備える。
制御部100aは、例えば、CPUなどのハードウェアプロセッサが記憶部150に格納されたコンピュータプログラム(ソフトウェア)を実行することにより実現される。制御部100aは、文書入力部110、文字情報抽出部120、記述項目構造化部130、記述項目情報出力部140、文字列連結判定部160a、文字列分割判定部170a及び項目名抽出部180aとして機能する。
また、これらの機能部のうち一部または全部は、LSIやASIC、FPGA、GPUなどのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアとの協働によって実現されてもよい。
【0050】
文字列連結判定部160aは、文字情報抽出部120から複数の文字ブロックを取得し、取得した複数の文字ブロックに基づいて、各文字ブロックを連結するか否かを判定する。文字列連結判定部160aは、各文字ブロックを連結すると判定した場合には、連結する文字ブロック同士の含まれる文字列同士を連結し、連結した文字列とその文字列の座標情報とを補正する。
【0051】
文字列分割判定部170aは、文字情報抽出部120から一又は複数の文字ブロックを取得し、取得した一又は複数の文字ブロックに基づいて、各文字ブロックを分割するか否かを判定する。文字列分割判定部170aは、各文字ブロックを分割すると判定した場合には、文字ブロックを分割し、分割した文字ブロックの各々に含まれる文字列とその文字列の座標情報とを補正する。
具体的には、文字列連結判定部160aは、取得した複数の文字ブロックに基づいて、文字列とその文字列の座標とを含む文字ブロックの集合を、その座標情報に基づいて左上から右下へと並べ系列化する。文字列連結判定部160aは、例えばY座標情報に基づいて同一行に含まれる文字情報を抽出し、同一行内の文字情報をX座標情報に基づいて左から並べるなどの処理を行う。文字列連結判定部160aは、多段組のレイアウトであることが情報として得られる場合には、各段組みの範囲で左上から右下へと並べるようにしてもよい。
【0052】
ただし、文字認識ソフトウェアは一般に、文書レイアウト解析や行切り出しなどの処理工程を経て文字情報を出力することから、元々の出力順が概ね行単位に左上から右下へと並んでいる仕様の場合が多い。同様にレイアウト文書やマークアップ文書も配置順に内部情報を持っている場合が多い。したがって、文字列連結判定部160aは、特段の処理をすることなく、元の順序をそのまま保持することとしてもよい。
なお、上記では、一例として、横書き文書の場合について説明したが、縦書き文書の場合は右上から左下の順としてもよい。
【0053】
文字列連結判定部160aは、並んだ2つの文字ブロックが、連結されるべきかどうかを判定し、連結されるべきであると判定した場合には文字ブロックを連結する。文字列連結判定部160aは、辞書やルールを用いて連結されるべきかどうかを判定してもよいし、機械学習で連結されるべきかどうかを判定してもよい。
辞書を用いて実現する場合には、例えば記述項目名の辞書を用意し、文字列連結判定部160aは、文字ブロックを連結することで記述項目名と合致する場合には連結するなどの条件で判定する。ルールを用いて判定する場合には、文字列連結判定部160aは、例えば数字の並びは連結して一連の数字からなる文字ブロックを構成するなどのルールで判定する。文字列連結判定部160aは、座標情報も併用し、文字ブロック同士がある一定の距離内にある場合に連結すると判定してもよい。
【0054】
文字列連結判定部160aは、機械学習を用いて連結されるべきかどうかを判定する場合は、隣接した文字ブロック中の文字列を連結したテキストを生成し、生成したテキストに含まれる文字や文字n-gram、単語、単語n-gramなどのテキスト特徴量を用いる。文字列連結判定部160aは、テキスト特徴量に加えて、文字ブロック間の座標距離や、隣接する文字ブロックの方向が左方や上方などのブロック間の方向なども特徴量としてもよい。文字列連結判定部160aは、これらの特徴量を用いて、例えば、着目している文字ブロックが直前の文字ブロックと連結するかどうかを教師あり機械学習にて判定する。文字列連結判定部160aは、系列の先頭(すなわち書面の左上)から順に推定して、既推定結果を動的特徴量として特徴量に加えた系列ラベリングとして実現してもよい。
【0055】
実施形態の変形例では、文字列連結判定部160aは、文字ブロックの集合を一列の系列とする処理を行う場合について説明したがこの例に限られない。例えば、あらかじめ一列の系列を構成する代わりに、各文字ブロックの左側隣接文字ブロックもしくは右側隣接文字ブロックを文字ブロック集合から選択する処理を用意して、連結判定時に逐次並び情報を得るようにしてもよい。このように構成することによって、文字ブロックを配列する処理を別ステップとして用意することなく実現できる。隣接ブロックを選択する処理は前述の文字ブロック配列処理の処理と同様に座標情報に基づいて実現できる。
【0056】
文字列分割判定部170aは、取得した一又は複数の文字ブロックに基づいて、各文字ブロックを、記述項目もしくは項目値に適した範囲に分割する。文字情報抽出部120から取得した文字ブロックには、記述項目や項目値以外の文字列を含んでいる場合や、記述項目と項目値との両方が含む文字列を含んでいる場合が考えられる。文字情報抽出部120は、文字ブロックが分割されるべきかどうかを判定し、分割されるべきであると判定した場合には分割して複数の文字ブロックとする。文字列分割判定部170aは、辞書やルールを用いて分割されるべきかどうかを判定してもよいし、機械学習で分割されるべきかどうかを判定してもよい。
【0057】
文字列分割判定部170aは、辞書を用いて分割されるべきかどうかを判定する場合には、記述項目名の辞書を用意し、辞書中の記述項目名の単位で文字ブロックを分割する。
文字列分割判定部170aは、ルールを用いて分割されるべきかどうかを判定する場合には、例えば数字の並びからなる正規表現パタンを用意して、パタンにマッチする範囲で分割する。
文字列分割判定部170aは、機械学習を用いて分割されるべきかどうかを判定する場合は、文字ブロック中の文字列の各文字境界を対象に、その文字境界が分割点になるかどうかを教師データから学習して推定する。文字列分割判定部170aは、全文字境界を対象にする代わりに、あらかじめ文字列を形態素解析して形態素境界のみを分割点候補としてもよい。
文字列分割判定部170aは、機械学習の特徴量として、文字n-gramや単語n-gramを採用してもよいし、記述項目名辞書を用意して、境界候補の左右に辞書中の語が存在するかどうかを示す特徴を併用してもよい。
【0058】
図5は、実施形態の変形例に係る文書情報構造化装置10aの動作の一例を示すフローチャートである。
図5は、文字情報抽出部120が行う文字ブロック抽出処理の詳細を示す。
ステップS1-2、S2-2、S4-2、S5-2及びS7-2は、ステップS1-1からS5-1を適用できるため、説明を省略する。
【0059】
文字列連結判定部160aと文字列分割判定部170aとは、文字ブロック補正処理を行う(S3-2)。例えば、文字列連結判定部160aは、文字情報抽出部120から取得した各文字ブロックを連結して、文字列とその文字列の座標情報とを補正する。文字列分割判定部170aは、文字情報抽出部120から取得した各文字ブロックを分割して、文字列とその文字列の座標情報とを補正する。
【0060】
図6は、実施形態の変形例に係る文書情報構造化装置10aの動作の一例を示すフローチャートである。
図6は、文字列連結判定部160aと文字列分割判定部170aとが行う文字ブロック補正処理の詳細を示す。
文字列連結判定部160aは、文字ブロック配列処理を行う(ステップS3-21)。例えば、文字列連結判定部160aは、取得した複数の文字ブロックに基づいて、文字列とその文字列の座標とを含む文字ブロックの集合を、その座標情報に基づいて左上から右下へと並べ系列化する。
文字列連結判定部160aは、連結判定連結処理を行う(ステップS3-22)。例えば、文字列連結判定部160aは、並んだ2つの文字ブロックが、連結されるべきかどうかを判定し、連結されるべきであると判定した場合には文字ブロックを連結する。
【0061】
文字列分割判定部170aは、分割判定分割処理を行う(ステップS3-23)。例えば、文字列分割判定部170aは、取得した一又は複数の文字ブロックに基づいて、文字ブロックが分割されるべきかどうかを判定し、分割されるべきであると判定した場合には分割して複数の文字ブロックとする。
図5に戻り説明を続ける。
【0062】
記述項目構造化部130は、項目値抽出処理を行う(ステップS4-2)。例えば、記述項目構造化部130は、文字列連結判定部160aと文字列分割判定部170aとのいずれか一方又は両方から文字ブロックの集合を取得し、取得した文字ブロックの集合から、項目値を指し示す文字ブロックを抽出する。
項目名抽出部180aは、項目名抽出処理を行う(ステップS6-2)。例えば、項目名抽出部180aは、項目種別D40が[その他]以外のものを対象に項目名を推定する。
【0063】
図6に示されるフローチャートにおいて、ステップS3-22とステップS3-23との処理の順序を入れ替えてもよい。
また、文字情報抽出部120が抽出する文字ブロックが十分に長い場合にはステップS3-22を省略してもよいし、文字情報抽出部120が抽出する文字ブロックが十分に短い場合にはステップS3-23を省略してもよい。
また、ステップS3-2を省略してもよい。この場合に、ステップS5-2の処理で推定される項目種別を手掛かりに、同一項目種別の文字ブロックを別途連結するようにしてもよい。
【0064】
(具体的な文書での例)
次に、具体的な文書例を用いて文書情報構造化装置10aの動作を説明する。
図7は、入力される文書(書面)の一例を示す図である。文書入力部110から入力された文書は文字情報抽出部120に出力される。文字情報抽出部120は、文書入力部110から出力された文書を取得し、取得した文書に対して文字ブロック抽出処理を行うことによって文字ブロックの系列を抽出する。
具体的には、文字情報抽出部120は、文書表現種別判定処理を行うことによって文書表現種別を判定し、文書表現種別の判定結果に基づいて、レンダリング抽出処理と文字座標抽出処理と文字認識抽出処理とのいずれかを行うことによって、文字ブロックの系列を抽出する。
【0065】
図8Aと
図8Bとは、実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
図8Aと
図8Bとは、文字ブロックの抽出結果の一例を示す。
図8Aによれば、四角形の枠で文字ブロックが表現されている。
図8Bによれば、文書情報構造化装置10aの内部で表現されるデータの一例として文字ブロックが表現されている。
図8Bにおいて、ブロック番号B10は説明のための番号であり、座標B20はブロック外接矩形の左上および右下の紙面上での位置であり、文字列B30は文字ブロック内のテキストを意味する。
【0066】
なお、ブロック番号B10は、項目名抽出部180aが実行する項目名抽出処理で、項目値に対応する項目名を表現するためにも用いられる。ここで、文字情報抽出部120が出力する文字ブロックの大きさは、処理対象のPDF等文書内でのデータ表現や、文字認識ソフトウェアの仕様等に依存し、多数の文字を含んだ大きな文字ブロックの場合もあれば、1文字単位の細切れの場合もあり得る。ここでは仮に
図8Aに示される大きさで文字ブロックが出力されたと想定して以降の説明を続ける。
【0067】
文字列連結判定部160aは、文字情報補正処理を実行することによって、各文字ブロックの範囲を調整する。具体的には、文字列連結判定部160aは、文字ブロック配列処理を実行することによって、その文字ブロックの順序が修正される。例えば、文字列連結判定部160aは、文書ブロック配列処理を実行することによって、文字ブロック抽出処理を実行することによって得られた文字ブロックの順序をそのまま保存する。前述のとおり、文字ブロック抽出処理の結果は概ね左上から右下に並んでいることが期待されるため、対象文書の性質や文字認識ソフトウェアの実装・仕様によっては特段の処理をしなくてもよい。
【0068】
文字列連結判定部160aは、文字ブロックの順序と紙面上の位置関係に乖離がある場合には、左上から右下に並ぶように文字ブロックを整列させる。文字列連結判定部160aは、例えば、まず文字ブロックをY座標に基づいて行単位に集約し、行内ではX座標の昇順に並べ、行順序はY座標の昇順とするように整列させる。文字列連結判定部160aは、例えば、何らかの閾値を定めて、2つの文字ブロックのY座標範囲の重なりが同閾値以上であれば同一行とみなすなどのルールに基づいて行単位の集約を実行する。
【0069】
文字列連結判定部160aは、ブロック順序が決まった複数の文字ブロック系列の各々について、連結判定連結処理を行う。
図8Bに示すように、複数の文字ブロック系列の各々は、すでに左上から右下に並んでいる。
図8Bを参照して、連結判定連結処理について説明する。
文字列連結判定部160aは、連結判定連結処理を実行することによって、隣接する2つの文字ブロックが連結するかどうかを判定し、連結すると判定した場合には2つのブロックを連結して新たなブロックを生成する。文字列連結判定部160aは、連結した新たなブロックの文字列は両ブロックの文字列を連結したものとし、座標は2つの矩形に外接する矩形とする。文字列連結判定部160aは、連結判定連結処理を実行することによって、全ての隣接文字ブロックペアを対象に連結するかどうかを判定し、連結すると判定した場合に各々のブロックを連結することで、3つ以上のブロックを連結して新たなブロックを生成するようにしてもよい。
【0070】
連結判定については、ここでは機械学習を用いた処理例を説明する。機械学習では、文字ブロックの境界の各々について、文字ブロックの境界が連結されるべきかどうかの二値に分類する二値分類器として実現することができる。分類器で用いる特徴量の一例は、テキスト特徴量である。テキスト特徴量としては文字ブロック境界の前後に含まれる文字列を用いる。
例えばブロック番号「1011」とブロック番号「1012」との連結判定を行う場合には、境界前のブロックを連結した「・・・に関する業務委託契約作業」と、境界後のブロックを連結した「期間2020年4月1日~2020年9月30日・・・」との文字列に基づいた特徴量とすればよい。例えば判定対象境界の前後4文字を特徴量として用いる場合は、「契約作業-期間20」を対象として、その文字n-gramなどを特徴量とする。
【0071】
併せて、分類器で用いる特徴量の一例として、座標特徴量を用いることが考えられる。座標特徴量としては例えば座標距離に基づいた特徴量や、左方・上方などのブロック方向に基づいて特徴量を作成する。
機械学習の代わりに、あらかじめ準備した項目名の辞書を用いて実現してもよい。文字列を連結したものが辞書に掲載されている場合に連結するなどをルールとする。例えば辞書に「作業期間」というエントリがある場合には、ブロック番号「1011」とブロック番号「と1012」とが連結されることとなる。
【0072】
文字列分割判定部170aは、分割判定分割処理を実行することによって、各々の文字ブロックについて、その文字ブロックが分割されるべきかどうかを判定する。項目名抽出部180aは、分割されるべきと判定した場合には、その文字ブロックから2つ以上の新たな文字ブロックを生成する。
分割判定についても、ここでは機械学習を用いた処理例を説明する。機械学習では、各文字ブロックの文字列中の各文字境界候補について、各文字境界候補が分割されるべきかどうかの二値分類器として実現することができる。ここで文字境界候補の一例としては、例えば、全ての文字境界を候補とすることである。
例えばブロック番号「1013」の「2020年4月1日~2020年9月30日」について、「2」と「020年4月・・」の間、「20」と「20年4月・・」の間などのように、全ての文字境界を候補とする。また、文字列を形態素解析し、単語境界を文字境界候補とすることも考えられる。その場合は例えば「2020」と「年4月・・」の間などが境界候補となる。
【0073】
分割判定で用いる特徴量としても、連結判定で用いる特徴量と同様にテキスト特徴量が考えられる。テキスト特徴量としては文字境界の前後に含まれる文字列を用いることができる。例えば、ブロック番号「1013」について「2020年4月1日」と「~2020年9月30日」の間の境界判定をする場合、両文字列に基づいた特徴量を用いる。ここでテキスト特徴量として文字n-gram等を用いることができるのは前述のとおりである。
さらに、文字列左側もしくは右側から順に分割判定をするように構成して、既に実行した分割判定の結果を分割動的特徴量として加えることも可能である。文字列分割判定部170aは、文字ブロックの範囲が補正された結果として、文字ブロックの集合を出力する。文字列分割判定部170aは、分割判定分割処理を実行することによって、各々の文字ブロックについて、その文字ブロックを分割した場合に、新たな文字ブロックの文字列には分割点の前後の部分文字列を格納する。文字列分割判定部170aは、新たな文字ブロックの座標範囲は、仮に各文字ブロック中の各文字の座標が得られている場合にはその各文字の座標から算出した座標値を用いるようにしてもよい。文字列分割判定部170aは、新たな文字ブロックの座標範囲は、仮に各文字の座標が得られていない場合には、分割した文字列の長さの比に基づいて新たな文字ブロックの座標範囲を算出してもよい。
【0074】
図9Aと
図9Bとは、実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
図9Aと
図9Bとは、文字ブロックの範囲が補正された結果の一例を示す。
図9Aは、説明のために四角形枠で文字ブロックが表現されている。
図9Bによれば、文書情報構造化装置10aの内部で表現されるデータの一例として文字ブロックが表現されている。
記述項目構造化部130は
図9Aに示される文字ブロック集合から、項目値と項目種別ならびに項目名を抽出する。
【0075】
図10は、実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
図10は、記述項目構造化部130の出力の一例を示す。
図10において、ブロック番号D10と座標D20と文字列D30と項目種別D40と項目名D50とが関連付けられている。ブロック番号D10~文字列D30は文字列分割判定部170aから取得した情報である。
記述項目構造化部130は、項目種別D40および項目名D50を推定する。ここで、ブロック番号D10に関連付けられる項目種別D40が[その他]でなければ、当該ブロック番号D10に関連付けられる文字列D30は項目値であることを意味している。
ここでは、一例として、記述項目構造化部130が、項目抽出処理と項目種別判定処理とを行う場合に、単一の機械学習にて推定する構成例について説明する。記述項目構造化部130が、項目抽出処理と項目種別判定処理とを行う場合に、別個の機械学習にて推定するようにしてもよい。
【0076】
記述項目構造化部130は、項目種別判定処理を実行することによって、各文字ブロックの項目種別を推定する。記述項目構造化部130は、各文字ブロックの項目種別を推定する場合に着目する文字ブロックの情報と周辺の文字ブロックの情報とを特徴量として用いる。記述項目構造化部130は、
図10に示す文字ブロックの集合から、座標D20に基づいて周辺文字ブロックを抽出する。
例えば周辺文字ブロックの範囲として、自身の左側に位置するブロックを定義した場合、ブロック番号3102の周辺文字ブロックはブロック番号3101となり、ブロック番号3104の周辺文字ブロックはブロック番号3101、ブロック番号3102、ブロック番号3103となる。左側以外にも上側や右側を周辺と定義してもよいし、その座標距離に閾値制限を設けてもよい。
【0077】
特徴量は、まず、着目する文字ブロックと周辺の文字ブロックとの文字列D30をテキスト特徴とする。周辺の文字ブロックをテキスト特徴とする際には、その紙面上の方向や距離に応じて別次元の特徴としてもよい。例えば左側の文字ブロックと上側の文字ブロックのテキスト特徴量を別次元に配置することも考えられる。
また、着目する文字ブロックの座標も特徴量化して用いる。例えば、文字ブロックの重心座標が紙面のどの位置にあるかなどの特徴量が考えられる。項目種別D40が付与された教師データを用いて機械学習することで、項目種別を推定できる。
【0078】
項目名抽出部180aは、項目名抽出処理を実行することによって項目種別D40が[その他]以外のものを対象に項目名D50を推定する。
図10では項目名に該当する文字ブロックをその文字ブロック番号で表現しており、ブロック番号D10が「3102」の項目名D50は「3101」であり、ブロック番号D10が「3104」の項目名D50の項目名D50も「3101」であることを意味する。また、ブロック番号D10が「3010」の項目名D50に該当するブロックは存在していないことを”ε”で表現している。
【0079】
項目名抽出部180aは、項目種別D40が[その他]以外の各文字ブロックについて、当該文字ブロック以外の文字ブロックから項目名を選択する。選択は例えば、逐次の分類器によって実現される。着目するブロック番号D10が「3102」である場合を例にとると、ブロック番号D10が「3102」以外の各文字ブロックについて、その文字ブロック番号D10が「3102」の項目名D50に該当するかどうかを機械学習で推定する。項目名に該当する文字ブロックがない場合は”ε(イプシロン)”とする。
【0080】
図11は、実施形態の変形例に係る文書情報構造化装置10aの処理結果の一例を示す図である。
図11は、記述項目情報出力部140が出力する記述項目情報の例である。この例では、
図10の項目種別D40が[その他]以外の文字ブロックについて、その項目種別と項目値、項目名の文字列のみを表の各行に出力している。
【0081】
実施形態の変形例に係る文書情報構造化装置10aによれば、実施形態に係る文書情報構造化装置10において、記述項目情報に含まれる項目値の種別を表現している文字列と文字列の位置とのいずれか一方又は両方を電子化文書から抽出する項目名抽出部180aをさらに備える。
このように構成することによって、文書情報構造化装置10aは、項目値の種別を表現している文字列と文字列の位置とのいずれか一方又は両方を電子化文書から抽出できるため、抽出した項目値の種別を含む記述項目情報を出力できる。
【0082】
また、文書情報構造化装置10aにおいて、断片化された文字列を連結するかどうかを判定する文字列連結判定部をさらに備える。
このように構成することによって、文書情報構造化装置10aは、断片化された文字列を連結するかどうかの判定結果に基づいて、文字列を連結できるため、連結した文字列に基づいて、文書中の文字列と文字列の位置とを抽出し、抽出した文字列と文字列の位置とから、文書に記述された各項目の項目値を抽出し、抽出した項目値の種別を推定できる。
【0083】
また、文書情報構造化装置10aにおいて、過分に連結された文字列を分割するかどうかを判定する文字列分割判定部をさらに備える。
このように構成することによって、文書情報構造化装置10aは、過分に連結された文字列を分割するかどうかの判定結果に基づいて、文字列を分割できるため、分割した文字列に基づいて、文書中の文字列と文字列の位置とを抽出し、抽出した文字列と文字列の位置とから、文書に記述された各項目の項目値を抽出し、抽出した項目値の種別を推定できる。
【0084】
以上、本発明の実施形態と、実施形態の変形例について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した各装置の機能を実現するためのコンピュータプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたコンピュータプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
【0085】
また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してコンピュータプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
【0086】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0087】
10、10a…文書情報構造化装置、100、100a…制御部、110…文書入力部、120…文字情報抽出部、130…記述項目構造化部、140…記述項目情報出力部、150…記憶部、160a…文字列連結判定部、170a…文字列分割判定部、180a…項目名抽出部
【手続補正書】
【提出日】2023-10-13
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
電子化文書を入力する文書入力部と、
前記文書入力部が入力した前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出する文字情報抽出部と、
前記文字情報抽出部が抽出した前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出する項目値抽出部と、
前記項目値抽出部が抽出した前記項目値の種別を推定する項目値種別判定部と、
前記項目値抽出部が抽出した前記項目値と前記項目値種別判定部が推定した前記項目値の前記種別とを含む記述項目情報を出力する記述項目情報出力部と、
を備え、
前記項目値抽出部は、前記文字列に含まれるキーワードによるルール判定を行うことによって又は教師データを用いた機械学習によって、前記文字列が項目値を指し示すかどうかを判定する文書情報構造化装置。
【請求項2】
前記記述項目情報に含まれる前記項目値の前記種別を表現している文字列と前記文字列の位置とのいずれか一方又は両方を前記電子化文書から抽出する項目名抽出部
をさらに備える、請求項1に記載の文書情報構造化装置。
【請求項3】
文字列同士を連結するかどうかを判定する文字列連結判定部
をさらに備える、請求項1又は請求項2に記載の文書情報構造化装置。
【請求項4】
文字列を分割するかどうかを判定する文字列分割判定部
をさらに備える、請求項1又は請求項2に記載の文書情報構造化装置。
【請求項5】
前記電子化文書中に文字コードで表現された文字情報が含まれているかどうかを判定する文字情報判定部と、
前記文字情報判定部による前記文字情報が含まれているかどうかの判定結果に基づいて、前記文字情報を用いるか、画像情報を文字読み取り装置にて文字情報化して用いるかを切り替える文字情報切り替え部と、
をさらに備える、請求項1に記載の文書情報構造化装置。
【請求項6】
コンピューターが実行する文書情報構造化方法であって、
電子化文書を入力するステップと、
前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出するステップと、
前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出するステップと、
前記項目値の種別を推定するステップと、
前記項目値と前記項目値の前記種別とを含む記述項目情報を出力するステップと、
を有し、
前記項目値を抽出するステップでは、前記文字列に含まれるキーワードによるルール判定を行うことによって又は教師データを用いた機械学習によって、前記文字列が項目値を指し示すかどうかを判定する、文書情報構造化方法。
【請求項7】
コンピューターに、
電子化文書を入力するステップと、
前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出するステップと、
前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出するステップと、
前記項目値の種別を推定するステップと、
前記項目値と前記項目値の前記種別とを含む記述項目情報を出力するステップと、
を実行させ、
前記項目値を抽出するステップでは、前記文字列に含まれるキーワードによるルール判定を行うことによって又は教師データを用いた機械学習によって、前記文字列が項目値を指し示すかどうかを判定する、プログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
(1)本発明の一態様は、電子化文書を入力する文書入力部と、前記文書入力部が入力した前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出する文字情報抽出部と、前記文字情報抽出部が抽出した前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出する項目値抽出部と、前記項目値抽出部が抽出した前記項目値の種別を推定する項目値種別判定部と、前記項目値抽出部が抽出した前記項目値と前記項目値種別判定部が推定した前記項目値の前記種別とを含む記述項目情報を出力する記述項目情報出力部と、を備え、前記項目値抽出部は、前記文字列に含まれるキーワードによるルール判定を行うことによって又は教師データを用いた機械学習によって、前記文字列が項目値を指し示すかどうかを判定する文書情報構造化装置である。
(2)本発明の一態様は、上記(1)に記載の文書情報構造化装置において、前記記述項目情報に含まれる前記項目値の前記種別を表現している文字列と前記文字列の位置とのいずれか一方又は両方を前記電子化文書から抽出する項目名抽出部をさらに備える。
(3)本発明の一態様は、上記(1)又は上記(2)に記載の文書情報構造化装置において、文字列同士を連結するかどうかを判定する文字列連結判定部をさらに備える。
(4)本発明の一態様は、上記(1)から上記(3)のいずれか一項に記載の文書情報構造化装置において、文字列を分割するかどうかを判定する文字列分割判定部をさらに備える。
(5)本発明の一態様は、上記(1)から上記(4)のいずれか一項に記載の文書情報構造化装置において、前記電子化文書中に文字コードで表現された文字情報が含まれているかどうかを判定する文字情報判定部と、前記文字情報判定部による前記文字情報が含まれているかどうかの判定結果に基づいて、前記文字情報を用いるか、画像情報を文字読み取り装置にて文字情報化して用いるかを切り替える文字情報切り替え部と、をさらに備える。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正の内容】
【0008】
(6)本発明の一態様は、コンピューターが実行する文書情報構造化方法であって、電子化文書を入力するステップと、前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出するステップと、前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出するステップと、前記項目値の種別を推定するステップと、前記項目値と前記項目値の前記種別とを含む記述項目情報を出力するステップと、を有し、前記項目値を抽出するステップでは、前記文字列に含まれるキーワードによるルール判定を行うことによって又は教師データを用いた機械学習によって、前記文字列が項目値を指し示すかどうかを判定する、文書情報構造化方法である。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正の内容】
【0009】
(7)本発明の一態様は、コンピューターに、電子化文書を入力するステップと、前記電子化文書から、文書中の文字列と前記文字列の位置とを抽出するステップと、前記文字列と前記文字列の前記位置とから、文書に記述された各項目の項目値を抽出するステップと、前記項目値の種別を推定するステップと、前記項目値と前記項目値の前記種別とを含む記述項目情報を出力するステップと、を実行させ、前記項目値を抽出するステップでは、前記文字列に含まれるキーワードによるルール判定を行うことによって又は教師データを用いた機械学習によって、前記文字列が項目値を指し示すかどうかを判定する、プログラムである。