WO2023047570A1 - 情報処理装置、情報処理方法、情報処理プログラム - Google Patents
情報処理装置、情報処理方法、情報処理プログラム Download PDFInfo
- Publication number
- WO2023047570A1 WO2023047570A1 PCT/JP2021/035333 JP2021035333W WO2023047570A1 WO 2023047570 A1 WO2023047570 A1 WO 2023047570A1 JP 2021035333 W JP2021035333 W JP 2021035333W WO 2023047570 A1 WO2023047570 A1 WO 2023047570A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- unit
- layout
- model
- extraction
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims description 35
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000013075 data extraction Methods 0.000 claims abstract description 176
- 238000012549 training Methods 0.000 claims abstract description 89
- 238000000605 extraction Methods 0.000 claims description 76
- 230000010354 integration Effects 0.000 claims description 24
- 239000000284 extract Substances 0.000 claims description 17
- 238000010200 validation analysis Methods 0.000 claims description 5
- 230000002596 correlated effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 37
- 238000012015 optical character recognition Methods 0.000 description 32
- 238000000034 method Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 16
- 238000010801 machine learning Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 238000003825 pressing Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
Definitions
- the present invention relates to information processing technology.
- the present invention has been made in view of this situation, and its purpose is to provide an information processing device and the like that can efficiently extract necessary data from an input file.
- the embodiment proposes a solution for automatically extracting selected elements (items to be extracted) from PDF documents.
- This solution uses a trained machine learning model and also relies on a model training process using labeled data and OCR output from any OCR engine as input.
- These machine learning models are trained through an optimization process to automatically select and extract elements belonging to user-specified extraction terms from OCR data. Since one model is trained per document layout, performance is improved and dynamic layout can be handled more adaptively.
- Systems according to embodiments can process a variety of different document types such as bills, trust statements, bank statements, bank brochures, refund advice, interest income advice, overseas deposit advice, interest rate advice, and deposits. can be processed.
- FIG. 1 schematically shows an overview of an information processing system including an information processing device according to an embodiment of the present invention.
- the information processing system exemplified here is used when tax accountant corporations and accounting firms provide tax services and accounting services to their customers.
- S means step or process.
- tax processing and accounting such as bills, bank statements, property management (PM) reports, trust reports, bank passbooks, refund notices, interest income notices, foreign remittance notices, interest rate notices, receipts, etc.
- Vouchers or electronic documents to be processed are entered electronically at the customer portal.
- the files input in S1 are classified into other files including spreadsheet files and PDF files.
- data necessary for tax processing and accounting processing are automatically extracted from each cell in the spreadsheet file classified in S2.
- data can be efficiently extracted from single cells and/or groups of cells within a rectangular range.
- character data in files other than the spreadsheet files classified in S2 are recognized by character recognition technology such as OCR, and data necessary for tax processing and accounting processing are automatically extracted from them.
- the present invention mainly relates to S4, which will be described later in detail.
- each of the above functional blocks may be implemented using the hardware resources of a single computer, or may be implemented by combining hardware resources distributed among multiple computers. .
- the first character recognition unit 102 can recognize or extract all characters and their respective positions in the PDF file, only three characters C1 to C3 are illustrated in FIG.
- the first character C1 of "iroha” is extracted by the first character recognition unit 102 along with the coordinates of the upper left corner P11 and the coordinates of the lower right corner P12 indicating its position. If the coordinates of the upper left corner P11 in the two-dimensional coordinate system in the PDF file are (x1, y1), and the coordinates of the lower right corner P12 are (x2, y2), then the first character C1 "Iroha” is (x1, y2). y1) and (x2, y2).
- the difference in recognition accuracy between the first character recognition unit 102 and the second character recognition unit 104 mainly depends on whether the layout information can be used. They may be configured as the same character recognition section. That is, the same character recognition unit performs the first character recognition processing on the PDF file input to the file input unit 101 and provides the first character arrangement information to the layout determination unit 103. A second character recognition process may be performed with reference to the layout information provided from 103 to generate the second character arrangement information.
- the y-coordinate “93” of the upper left corner P41 of the fourth character C4 is greater than or equal to the y-coordinate “90” of the upper left corner P31 of the third character C3, and the y-coordinate “97” of the lower right corner P42 is the third character C3. Since the y-coordinate of the lower right corner P32 of the character C3 is less than or equal to "100", the rectangular area of the fourth character C4 (305, 93, 345, 97) is the rectangular area of the third character C3 (300, 90, 400, 100). Therefore, the rectangular area (305, 93, 345, 97) of the fourth character C4 is contained in the rectangular area (300, 90, 400, 100) of the third character C3.
- each sub-region generated by tokenization preferably has a minimum size that includes each character C4, C5.
- the sum of the areas of the sub-regions (C4, C5) generated by tokenization is smaller than the area of the region (C3) before tokenization.
- the smaller the sub-region generated by tokenization the easier it is to extract the character data written in the sub-region.
- One or more data extraction models are held in the model holding unit 300 for one layout.
- three data extraction models 1-1, 1-2, 1 -3 is held, and three data extraction models 2-1, 2-2, and 2-3 are held for layout 2.
- data extraction model 1-3 is valid for layout 1
- data extraction model 2-2 is valid for layout 2.
- FIG. 1 when the layout of the PDF file determined by the layout determination unit 103 is layout 1, the model acquisition unit 107 acquires the data extraction model 1-3 from the model holding unit 300, and the layout determination unit 103 determines the data extraction model 1-3. If the layout of the PDF file is layout 2, the model acquisition unit 107 acquires the data extraction model 2-2 from the model holding unit 300.
- layout 2 is defined as "a one-page invoice issued in Japanese by Nihoheto Co., Ltd. and is machine-readable”
- the PDF file in the example of FIG.
- the layout determination unit 103 After receiving the character recognition result from the first character recognition unit 102, the layout determination unit 103 performs the It is determined that the layout of the input PDF file is "a one-page invoice issued in Japanese by Nihoheto Co., Ltd. and is machine-readable” (Layout 2).
- the model acquisition unit 107 that has received this layout determination result acquires the valid data extraction model 2 - 2 among the data extraction models corresponding to the layout 2 from the model holding unit 300 .
- the PDF file in the example of FIG. Suppose that a valid data extraction model 2-2 corresponding to the layout 2 "something" is acquired.
- the data extraction unit 108 inputs the OCR result of the PDF file to this data extraction model 2-2, so that each text recorded in the OCR result is "company name” set according to the layout 2, Outputs data indicating whether or not an item name such as "Invoice Amount”, "Issue Date", or "Invoice Number” applies.
- the data extraction model classifies each text recorded in the OCR result with the corresponding item name or not applicable.
- Model outputted label is the item name determined by the data extraction model for each character in “OCR Text”.
- the data extraction model outputs a set of the extraction target data "OCR Text” recognized by the second character recognition unit 104 and the item name data "Model output label”.
- the item name "Issue Date” is assigned to the characters "2020/4/1”
- the item name "Company Name” is assigned to the characters "Iroha”.
- the characters ⁇ Corporation'' are assigned the ⁇ company name''
- the characters ⁇ A1234-901'' are assigned the item name ⁇ Invoice Number''.
- the Data Extraction Model labels "No Label” if there is no item name corresponding to the character.
- Constant is the reliability presented by the reliability presentation unit 109.
- the reliability presentation unit 109 displays the degree of conformance and the The reliability corresponding to the accuracy of character recognition by the second character recognition unit 104 is presented by a number between 0.00 (0% reliability) and 1.00 (100% reliability).
- the user of the data extraction device 100 can refer to the reliability presented by the reliability presentation unit 109 to see how reliable the data output by the data extraction unit 108 and/or the second character recognition unit 104 for each character is. can be confirmed.
- the second character “key” in the second line of “OCR Text” is the second character recognition unit 104 erroneously recognizing the character “cum” in the upper right of FIG. For this reason, the confidence level for this character is ".55", which is lower than the others.
- the data integration unit 110 may refer to the relative distances in the PDF file of a plurality of integration candidate characters when determining whether data integration is possible. For example, the data integration unit 110 selects items that have the same item name data paired with the plurality of extraction target data extracted by the data extraction unit 108, and Characters whose relative distance between characters indicated by the obtained position information and/or area information is equal to or less than a predetermined distance are integrated into one piece of data. In the example of FIG. 4, since the characters of "Iroha” and "Co., Ltd.” which are candidates for integration are close to each other, the data integration unit 110 determines that these can be integrated.
- FIG. 7 is a flowchart showing data extraction processing by the data extraction device 100.
- FIG. In S ⁇ b>11 a PDF file to be subjected to data extraction processing by the data extraction device 100 is input to the file input unit 101 .
- the first character recognition unit 102 recognizes the characters in the PDF file input at S11.
- the layout determination unit 103 determines the layout of the PDF file input in S11 based on the character arrangement recognized in S12, and outputs "Classifier Data" including the layout determination result.
- the model acquisition unit 107 acquires from the model holding unit 300 a valid data extraction model corresponding to the layout of the PDF file determined at S13.
- the data extraction unit 108 inputs the data that has undergone the character recognition/area acquisition process in S14 and the area division process in S15 into the data extraction model acquired in S16, and extracts extraction target data from the data. do.
- the reliability presentation unit 109 presents the reliability of the data extracted by the data extraction unit 108 according to the degree of conformity output by the data extraction model acquired in S16 and the character recognition accuracy in S14.
- the data integration unit 110 integrates data having the same item name data paired with the plurality of extraction target data extracted in S17 into one data.
- the data output unit 111 outputs the extraction target data that has undergone the above processing to an external business server or the like.
- the layout setting unit 220 sets the layout for the PDF file input to the file input unit 210.
- the layout determination unit 103 in the data extraction device 100 of FIG. 2 has been described above.
- the layout setting unit 220 selects a layout of "a one-page invoice issued in Japanese by Nihoheto Co., Ltd. and which is machine-readable.” (layout 2 as in FIG. 2) is set in the PDF file.
- the layout setting work may be performed by the administrator manually operating the operation terminal 400, or may be performed by the layout setting unit 220 automatically determining the layout in the same manner as the layout determining unit 103 described above. may
- the layout automatically determined by the layout setting unit 220 may be presented to the administrator on the screen of the operation terminal 400, and the administrator may modify or approve the automatically determined layout using the operation terminal 400 to set the layout.
- the second region acquisition unit 242 as a position acquisition unit, similar to the region acquisition unit 105 in the data extraction device 100 of FIG. Acquire second position information indicating the position of the extraction target data in the file.
- the second location information may include second area information indicating a second area in which the extraction target data is written in the PDF file.
- Region division unit 243 like region division unit 106 in data extraction device 100 in FIG. is divided into a plurality of sub-region information indicating sub-regions of The sub-region information generated by region dividing section 243 is substantially the same as the sub-region information generated by region dividing section 106 . That is, as illustrated in FIG. 5B with respect to the area division unit 106, sub-rectangles each including the fourth character C4 and the fifth character C5 included in the third character C3 (FIG. 5A) Sub-rectangular area information (305, 93, 345, 97) and (355, 93, 395, 97) indicating the areas are obtained by the area dividing section 243 .
- the training data generation unit 250 includes a region comparison unit 251 and an item name/region connection unit 252, and generates training data for training the data extraction model.
- the region comparison unit 251 selects the first position information (“Bounding Box ”) and the second positional information (“Bounding Box” in FIG. 8B) provided from the second region acquiring unit 242 and/or the region dividing unit 243 is equal to or less than a predetermined amount. do.
- the item name/area combining unit 252 selects item name data (" Extraction Item") and the second position information are associated with each other to generate teacher data.
- FIG. 5(D) shows an example of area comparison processing by the area comparison unit 251 for tokenized characters "A1234-901".
- Area comparing section 251 determines that first area A1 provided from teaching section 230 includes second area A2 (tokenized sub-area) provided from second area acquiring section 242 and/or area dividing section 243. If so, it is determined that the deviation between the first location information and the second location information is equal to or less than a predetermined amount. Whether or not the first area A1 includes the second area A2 can be determined, for example, by comparing the coordinates of the upper left corner and the coordinates of the lower right corner of each area.
- the subregions (or regions) obtained by the region dividing unit 106 (or the region obtaining unit 105) having the same function as the region dividing unit 243 (or the second region obtaining unit 242) that generates the second region A2 are at least
- the reason why it is preferable to set the first area A1 set by the first area teaching unit 232 to the maximum size is because the second area A1 shown in FIG. This is because the teacher data as shown in FIG. 8C can be efficiently generated by making it easier for A2 to fall within the first area A1.
- the model training unit 260 trains one of them on the administrator's operation terminal 400. Additional training can be performed using training data read from the model holding unit 300 and newly generated by the training data generation unit 250 in response to a selection operation or the like.
- FIG. 3 shows how the model training unit 260 reads and trains the data extraction model 2-3 for the layout 2 held in the model holding unit 300.
- the model storage unit 270 stores the data extraction model trained by the model training unit 260 in the model holding unit 300.
- the model validating unit 280 validates at least one of a plurality of data extraction models corresponding to each layout held in the model holding unit 300 in accordance with the administrator's operation on the operating terminal 400. .
- the data extraction model 1-2 is valid for the layout 1
- the newly created data extraction model 2-4 is valid for the layout 2.
- the layout 42 displays a unique name for each layout.
- Layout information defining each layout is displayed in 421 to 426 .
- the document type 421 displays the document type (for example, invoice) of each layout.
- the other side 422 displays the name of the company to which each layout is applied.
- a format 423 displays the file format (PDF, etc.).
- the number of pages 424 displays the number of pages of each layout.
- Language 425 displays the language used in each layout.
- Machine Readability 426 indicates whether each layout is machine readable.
- the last update 43 displays the last update time of each layout or at least one data extraction model registered in each layout.
- the model selection section 51 By pressing the expansion button 50 of the layout "0008" in FIG. 10, one or more data extraction models held by the model holding unit 300 for that layout can be browsed.
- existing data extraction models such as "Model 1", “Model 2", and “Model 3” can be selected from a drop-down list.
- "New Model” can be selected in the model selection section 51, and a new data extraction model can be created.
- the model use check box 52 is checked, the data extraction model selected by the model selection unit 51 becomes the status of “in use”, and the number of the data extraction model is displayed in the in use model 44 .
- the model deletion button 53 By pressing the model deletion button 53, the data extraction model selected by the model selection section 51 can be deleted.
- the creation time 54 displays the creation time or the last update time of the data extraction model selected by the model selection section 51 .
- the model status 55 displays the training status of the data extraction model selected by the model selection unit 51 by the model training device 200 .
- the training file display area 56 the PDF files used for training the data extraction model selected by the model selection section 51 are listed and can be browsed.
- the data extraction model that has been trained or is in the process of being trained is stored in association with the file used for training. Therefore, even if the data extraction model is the same before training, it can be said that it is a different data extraction model if the number and contents of files used for training are different.
- the layout and data extraction model management screen shown in FIG. Efficient creation of data extraction models. By operating the new model creation unit 57, a new data extraction model can be created for the layout developed by pressing the development button 50.
- FIG. 11 is a flowchart showing model training processing by the model training device 200.
- the file input unit 210 receives a PDF file as a basis of teacher data used in model training processing by the model training apparatus 200 .
- the layout setting section 220 sets the layout of the PDF file input in S41
- the teaching section 230 sets the item name data of the data to be extracted. Then, a set of first position information of the extraction target data in the PDF file input in S41 is generated.
- the data extraction device 100 and the model training device 200 of this embodiment were devised mainly for the purpose of efficiently extracting necessary data from electronic documents such as PDF files that are subject to tax processing and accounting processing.
- Conventional data extraction is generally performed based on a huge number of data extraction rules, and it is necessary to create, maintain and manage different data extraction rules for each extraction target item for each document type of each customer. Therefore, the efficiency was extremely low.
- by creating a data extraction model based on machine learning for each file layout significant efficiency can be achieved. For example, compared to the conventional technology in which it took an engineer a week to create one data extraction rule, according to this embodiment, multiple extraction target items (one file can exceed 40 items). It is possible to generate teacher data for training a data extraction model that can extract all at once in only about one hour of annotator time.
- this embodiment uses machine learning technology, it is possible to easily improve the extraction accuracy of the data extraction model by training the data extraction model with more training files.
- the difference between the bounding box set by the OCR engine and the bounding box set by the administrator or data labeler causes the OCR text (text included in the OCR result) to Tokenization of the OCR text is performed to reduce the probability that the matching of the item name of .
- This enables more accurate classification of OCR text into items in the training phase, as described with reference to FIGS. 9 and 5(D).
- the training phase (Fig. 3) and the execution phase (Fig. 2) basically need to perform the same processing, so the above tokenization introduced in the training phase is executed. Phase should also be introduced.
- the introduction of tokenization in the execution phase can result in situations where the OCR text is unnecessarily fragmented. For example, if "Koutsu Co., Ltd.” is divided into “Koutsu” and “Co., Ltd.” by tokenization, the data extraction model will set “Koutsu” and "Co., Ltd.” to be classified. Therefore, in the present embodiment, processing for integrating OCR texts belonging to the same item name is provided in the execution phase. As a result, in the above example, “A” and “Co., Ltd.” are integrated into “A, B Co., Ltd.”, and "Billing Address" is associated as the item name.
- a standard for integration may be determined for each layout. For example, when there are two or more extraction target items A in a certain layout, they are integrated into one.
- the data integration unit may perform integration processing by referring to integration criteria corresponding to the layout of the input file.
- the extraction target item "Amount” is entered in the "Extraction Item” column, and the recognition result of the character group T1 by the character recognition unit 241 is entered in the "Tokenized Text” column. is input, and the area information (acquired by the second area acquisition unit 242) of the rectangular area in FIG.
- the data extraction model trained by the training data can extract the character group T1 in FIG. 4 at once as a data group representing "amount".
- each device described in the embodiments can be realized by hardware resources or software resources, or by cooperation between hardware resources and software resources.
- Processors, ROMs, RAMs, and other LSIs can be used as hardware resources.
- Programs such as operating systems and applications can be used as software resources.
- the present invention relates to information processing technology.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Character Input (AREA)
Abstract
モデル訓練装置200は、ファイル入力部210に入力されたPDFファイルにレイアウトを設定するレイアウト設定部220と、抽出対象データの項目名を教示する項目名データと、PDFファイル中の当該抽出対象データの位置を教示する第1位置情報の組を生成する教示部230と、PDFファイル中の文字を認識する文字認識部241と、認識された文字に基づいてPDFファイル中の抽出対象データの位置を示す第2位置情報を取得する第2領域取得部242と、第1位置情報および第2位置情報の乖離が所定量以下の場合に、当該第1位置情報と組になる項目名データと当該第2位置情報が対応付けられた教師データを生成する教師データ生成部250と、生成された教師データに基づいて、設定されたレイアウトにおける抽出対象データを指定するデータ抽出モデルを訓練するモデル訓練部260と、を備える。
Description
本発明は、情報処理技術に関する。
特許文献1は、表計算ソフトウェアで作成された表計算ファイルを業務システムに取り込む際に、表計算ファイルから必要なデータを抽出する技術を開示する。特許文献1の図6に示されるように、表計算ファイルのデータ抽出範囲は開始位置と終了位置を示すセル番号によって指定される。具体的には、データ抽出の開始位置としてセル番号「A2」が、終了位置としてセル番号「E7」が指定される。このようなデータ抽出範囲の指定によって、セル番号「A2」のセルを左上の角およびセル番号「E7」のセルを右下の角とする矩形範囲に含まれる各セルからデータが抽出される。
表計算ファイルでは行列状に配置されたセルによってレイアウトが定義されるため、上記のようにセル番号の指定によって必要なデータを確実に抽出できる。これに対して、レイアウトの自由度が高いPDF(Portable Document Format)等のフォーマットのファイルでは、データ抽出の難易度が飛躍的に高まる。OCR(Optical Character Recognition:光学文字認識)等によってファイル中で認識された文字データを自動的に抽出することも可能だが、不要な文字データをマニュアル作業等で除去する必要がある。
本発明はこうした状況に鑑みてなされたものであり、その目的は、入力されたファイルから必要なデータを効率的に抽出できる情報処理装置等を提供することにある。
上記課題を解決するために、本発明のある態様の情報処理装置は、入力されたファイルのレイアウトを判別するレイアウト判別部と、判別されたレイアウトにおける抽出対象データを指定するデータ抽出モデルを取得するモデル取得部と、取得されたデータ抽出モデルを入力されたファイルの文字認識結果に適用し、当該文字認識結果から抽出対象データを抽出するデータ抽出部と、を備える。
本発明の別の態様もまた、情報処理装置である。この装置は、入力されたファイルにレイアウトを設定するレイアウト設定部と、抽出対象データの項目名を教示する項目名データと、入力されたファイル中の当該抽出対象データの位置を教示する第1位置情報の組を生成する教示部と、入力されたファイル中の文字を認識する文字認識部と、認識された文字に基づいて、入力されたファイル中の抽出対象データの位置を示す第2位置情報を取得する位置取得部と、第1位置情報および第2位置情報の乖離が所定量以下の場合に、当該第1位置情報と組になる項目名データと当該第2位置情報が対応付けられた教師データを生成する教師データ生成部と、生成された教師データに基づいて、レイアウトにおける抽出対象データを指定するデータ抽出モデルを訓練するモデル訓練部と、を備える。
本発明の更に別の態様は、情報処理方法である。この方法は、入力されたファイルのレイアウトを判別するレイアウト判別ステップと、判別されたレイアウトにおける抽出対象データを指定するデータ抽出モデルを取得するモデル取得ステップと、取得されたデータ抽出モデルを入力されたファイルの文字認識結果に適用し、当該文字認識結果から抽出対象データを抽出するデータ抽出ステップと、を備える。
本発明の更に別の態様もまた、情報処理方法である。この方法は、入力されたファイルにレイアウトを設定するレイアウト設定ステップと、抽出対象データの項目名を教示する項目名データと、入力されたファイル中の当該抽出対象データの位置を教示する第1位置情報の組を生成する教示ステップと、入力されたファイル中の文字を認識する文字認識ステップと、認識された文字に基づいて、入力されたファイル中の抽出対象データの位置を示す第2位置情報を取得する位置取得ステップと、第1位置情報および第2位置情報の乖離が所定量以下の場合に、当該第1位置情報と組になる項目名データと当該第2位置情報が対応付けられた教師データを生成する教師データ生成ステップと、生成された教師データに基づいて、レイアウトにおける抽出対象データを指定するデータ抽出モデルを訓練するモデル訓練ステップと、を備える。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、入力されたファイルから必要なデータを効率的に抽出できる。
実施形態は、PDF文書から選択要素(抽出対象項目)を自動抽出するためのソリューションを提案する。このソリューションは訓練された機械学習モデルを用いると共に、ラベル付きデータと、任意のOCRエンジンからのOCR出力と、を入力として使用するモデル訓練プロセスにも依拠する。これらの機械学習モデルは、最適化プロセスを通して訓練され、OCRデータからユーザ指定抽出項目に属する要素を自動的に選択、抽出する。文書レイアウトごとに1つのモデルが訓練されるため、パフォーマンスが向上し、動的なレイアウトをより適応的に処理できる。実施形態に係るシステムは、請求書、信託報告書、銀行取引明細書、銀行小冊子、払戻通知書、受取利息通知書、海外預金通知書、利率通知書、および入金などの様々な異なる文書タイプを処理できる。
図1は、本発明の実施形態に係る情報処理装置を含む情報処理システムの概要を模式的に示す。ここで例示される情報処理システムは、税理士法人や会計事務所が顧客に対して税務サービスや会計サービスを提供する際に利用される。本図やフローチャート等の他の図において「S」はステップまたは処理を意味する。S1では、請求書、銀行取引明細書、不動産管理(PM: Property Management)レポート、信託レポート、銀行通帳、還付通知、受取利息通知、外国送金通知、利率通知、領収書等の、税務処理や会計処理の対象となる証憑または電子文書が顧客ポータルにおいて電子的に入力される。
このように情報処理システムまたは情報処理装置に電子的に入力された電子文書を本明細書ではファイルと総称する。図1の情報処理システムに入力されるファイルは、表計算ファイルとそれ以外のファイルに大別される。表計算ファイルは、行列状に配置されたセルにデータが記入されたファイルである。それ以外のファイルは、表計算ファイル以外のフォーマットの任意のファイルであり、典型的にはPDFファイルである。本実施形態ではPDFファイルを中心に説明するが、本発明はワープロファイル、プレゼンテーションファイル、画像ファイル、テキストファイル等の任意のフォーマットのファイルに適用できる。また、本発明はこれらのファイルにそのまま適用してもよいが、これらのファイルをPDFファイルに変換した上で適用してもよい。
S2では、S1で入力されたファイルが、表計算ファイルとPDFファイルを含むそれ以外のファイルに分類される。S3では、S2で分類された表計算ファイル中の各セルから、税務処理や会計処理に必要なデータが自動的に抽出される。本明細書では詳細に説明しないが、表計算ファイル中の一および/または複数のセル番号を指定することで、単一セルおよび/または矩形範囲内のセル群からデータを効率的に抽出できる。S4では、OCR等の文字認識技術によってS2で分類された表計算ファイル以外のファイル中の文字データが認識され、その中から税務処理や会計処理に必要なデータが自動的に抽出される。本発明は主にS4に関し、詳細については後述する。
S5では、S3およびS4で自動的に抽出された税務処理や会計処理に必要なデータが、S1で入力されたファイルと併せてリポジトリに格納および保持される。S6およびS7では、S5で保持されたデータおよび/またはファイルに基づいて、各取引の自動仕訳処理が実行される。S8では、S5で保持されたデータおよび/またはファイルに基づいて、各取引における金銭的支出が資本的支出(CAPEX: Capital Expenditure)と運営費(OPEX: Operating Expense)に自動的に分類される。S9では、S7による自動仕訳結果およびS8によるCAPEX/OPEX自動分類結果を、総勘定元帳や固定資産台帳等の会計帳簿に記録する。
図2および図3は、図1におけるS4のデータ抽出処理に関する本発明の実施形態に係る情報処理装置の機能ブロック図である。図2の情報処理装置は訓練済のデータ抽出モデルを利用してファイルからデータを抽出するデータ抽出装置100であり、図3の情報処理装置はデータ抽出モデルを訓練するモデル訓練装置200である。
図2のデータ抽出装置100は、ファイル入力部101と、第1文字認識部102と、レイアウト判別部103と、第2文字認識部104と、領域取得部105と、領域分割部106と、モデル取得部107と、データ抽出部108と、信頼度提示部109と、データ統合部110と、データ出力部111を備える。図3のモデル訓練装置200は、ファイル入力部210と、レイアウト設定部220と、教示部230と、文字認識部241と、第2領域取得部242と、領域分割部243と、教師データ生成部250と、モデル訓練部260と、モデル格納部270と、モデル有効化部280を備える。これらの機能ブロックは、コンピュータの中央演算処理装置、メモリ、入力装置、出力装置、コンピュータに接続される周辺機器等のハードウェア資源と、それらを用いて実行されるソフトウェアの協働により実現される。コンピュータの種類や設置場所は問わず、上記の各機能ブロックは、単一のコンピュータのハードウェア資源で実現してもよいし、複数のコンピュータに分散したハードウェア資源を組み合わせて実現してもよい。
図2のデータ抽出装置100において、ファイル入力部101には、データ抽出装置100によるデータ抽出処理の対象である表計算ファイル以外のファイルが入力される。前述のように以下では、ファイル入力部101および後述するモデル訓練装置200におけるファイル入力部210にPDFファイルが入力される例を説明する。図4は、ファイル入力部101に入力されるPDFファイルの例を示す。これは「株式会社にほへと」が「いろは株式会社」に宛てて発行した紙の「納品書兼請求書」を、スキャナ等で読み取ってPDFファイル化したものである。「2020年5月1日」付けで「株式会社にほへと」が「いろは株式会社」に納品した品番「123-4567」の製品について、税込で「3,300」円の代金を「いろは株式会社」に請求するものである。
第1文字認識部102は、ファイル入力部101に入力されたPDFファイル中の文字を認識する。PDFファイルは機械可読(machine-readable)すなわちコンピュータ等が文字を読み取り可能な態様で生成されることも多く、そのような場合には第1文字認識部102がPDFファイルから直接的に文字を読み取ると共に、それぞれの文字のPDFファイル中の位置を認識する。ファイル入力部101に入力されたPDFファイルが機械可読ではない場合、第1文字認識部102はOCR等の文字認識技術によってPDFファイル中で文字を表す画像データを文字データに変換し、それぞれの文字データのPDFファイル中の位置を認識する。
第1文字認識部102はPDFファイル中の全ての文字とそれぞれの位置を認識または抽出することができるが、図4では三つの文字C1~C3のみを例示する。「いろは」という第1の文字C1は、その位置を示す左上角P11の座標および右下角P12の座標と共に第1文字認識部102によって抽出される。PDFファイル中の二次元座標系における左上角P11の座標を(x1,y1)、右下角P12の座標を(x2,y2)とすれば、「いろは」という第1の文字C1は、(x1,y1)および(x2,y2)によって画定される矩形領域内に記入されている。
このように、データ抽出装置100による抽出対象データである「いろは」等の文字の位置は、左上角と右下角の座標の組が定める矩形領域情報(x1,y1,x2,y2)によって表される。本実施形態では、このような矩形領域による文字位置の表現方法を主に用いるが、文字が記入される位置の表現方法はこれに限られない。例えば、文字の中心Oまたは重心の一つの座標、上記の表現を用いれば((x1+x2)/2,(y1+y2)/2)によって文字の位置を代表的に表してもよいし、文字の開始位置(典型的には左端の位置)の一つの座標、上記の表現を用いれば(x1,(y1+y2)/2)によって文字の位置を代表的に表してもよいし、文字の中心Oの座標、幅W、高さHの組が定める矩形領域情報によって文字の位置を表してもよいし、文字の中心Oの座標および半径rの組が定める円形領域情報によって文字の位置を表してもよい。
「株式会社」という第2の文字C2は、その位置を示す左上角P21の座標および右下角P22の座標と共に第1文字認識部102によって抽出される。「いろは」という第1の文字C1と「株式会社」という第2の文字C2は、本来は「いろは株式会社」という法人名を表す一連の文字または文言として認識されるべきものである。データ統合部110に関して後述するように、本実施形態のデータ抽出装置100によれば、このような一連の文字を一つのデータに統合した形で出力できる。
「請求番号:A1234-901」という第3の文字C3は、その位置を示す左上角P31の座標および右下角P32の座標と共に第1文字認識部102によって抽出される。第3の文字C3には「請求番号」および「A1234-901」という複数の異なる情報が含まれているが、位置が互いに近接しているために一般的なPDFファイル生成ツールやOCRツールでは一つの文字として認識されてしまうことも多い。一方で、図1の税務処理や会計処理では「A1234-901」という請求書の具体的な番号のみが必要になる。領域分割部106等に関して後述するように、本実施形態のデータ抽出装置100によれば、このような複数の情報を含む文字から必要なデータを抽出できる。
レイアウト判別部103は、第1文字認識部102によって認識された文字の配置に基づいて、ファイル入力部101に入力されたPDFファイルのレイアウトを判別する。レイアウトはファイルの基本的な属性を表し、用途、種別、様式、書式、体裁、スタイル、テンプレート、フォーマット、フレームワーク、型、配置、配列等とも言い換えられる。図1の税務処理や会計処理に用いられる図4のPDFファイルの例では、文書種別(「納品書」および/または「請求書」)、相手方(税務や会計サービスの利用者が「いろは株式会社」であるか「株式会社にほへと」であるかに応じて異なる)、ページ数、言語、機械可読性(machine readability)等の最小限の情報によってレイアウトが判別または特定される。
レイアウト判別部103ではファイルの基本的なレイアウトが判別できさえすればよいので、レイアウト判別部103に文字配置情報を提供する第1文字認識部102に求められる文字認識精度は高くない。例えば、第1文字認識部102は、図4の第3の文字C3のような細かい文字は認識できなくてもよい。これに対して、レイアウト判別部103によるレイアウト判別後に同一のPDFファイル中の文字を認識する第2文字認識部104は、レイアウト判別部103から提供されるレイアウト情報に基づいて高精度に文字を認識できる。例えば、レイアウト判別部103から提供されるレイアウト情報に基づいて、請求書番号を表す第3の文字C3が図4のように配置されていることを第2文字認識部104は予め知ることができるため、細かい第3の文字C3であっても見落とすこと(認識漏れ)がなくなる。
このように、第1文字認識部102と第2文字認識部104の認識精度の違いは主にレイアウト情報が利用できるか否かによるため、第1文字認識部102および第2文字認識部104を同一の文字認識部として構成してもよい。すなわち、同一の文字認識部が、ファイル入力部101に入力されたPDFファイルに対して第1の文字認識処理を行ってレイアウト判別部103に第1の文字配置情報を提供した後、レイアウト判別部103から提供されるレイアウト情報を参照して第2の文字認識処理を行って第2の文字配置情報を生成してもよい。
領域取得部105は、第2文字認識部104によって認識された文字に基づいて、ファイル入力部101に入力されたPDFファイル中で抽出対象データが記入される領域を示す領域情報を取得する。図4のPDFファイルの例では、第1~第3の文字C1~C3を含むPDFファイル中の各文字が記入されている矩形領域を示す矩形領域情報(x1,y1,x2,y2)が、領域取得部105によって取得される。
領域分割部106は、領域取得部105によって取得された各文字の矩形領域情報(x1,y1,x2,y2)を、当該矩形領域に包含される複数のサブ領域を示す複数のサブ領域情報に分割する。この領域分割処理は、図4における第3の文字C3のように、複数の異なる情報または文字が含まれるにも関わらず一つの文字として認識されてしまった文字を適切に分割するために実行される。このように文字列を分割することはトークン化(tokenize)とも呼ばれており、spaCy(商標)等の既存のトークン化ソフトウェアを領域分割部106で利用してもよい。
図5は、第3の文字C3の領域分割またはトークン化の例を示す。図5(A)は、図4におけるトークン化前の第3の文字C3周辺の拡大図である。この例では、第3の文字C3が記入されている矩形領域の左上角P31の座標が(300, 90)であり右下角P32の座標が(400, 100)である。なお、図示されるように、x軸は左から右に向かう方向に設定されており、y軸は上から下に向かう方向に設定されている。
図5(B)は、領域分割部106による第3の文字C3の領域分割またはトークン化によって生成される第4の文字C4および第5の文字C5のサブ矩形領域を示す。「請求番号」という第4の文字C4が記入されているサブ矩形領域の左上角P41の座標は(305, 93)であり右下角P42の座標は(345, 97)である。従って、第4の文字C4の矩形領域情報は(305, 93, 345, 97)と表される。「A1234-901」という第5の文字C5が記入されているサブ矩形領域の左上角P51の座標は(355, 93)であり右下角P52の座標は(395, 97)である。従って、第5の文字C5の矩形領域情報は(355, 93, 395, 97)と表される。
第4の文字C4に関して、左上角P41のx座標「305」が第3の文字C3の左上角P31のx座標「300」以上であり、右下角P42のx座標「345」が第3の文字C3の右下角P32のx座標「400」以下であるため、第4の文字C4の矩形領域(305, 93, 345, 97)は、第3の文字C3の矩形領域(300, 90, 400, 100)のx軸範囲に包含される。同様に、第4の文字C4の左上角P41のy座標「93」が第3の文字C3の左上角P31のy座標「90」以上であり、右下角P42のy座標「97」が第3の文字C3の右下角P32のy座標「100」以下であるため、第4の文字C4の矩形領域(305, 93, 345, 97)は、第3の文字C3の矩形領域(300, 90, 400, 100)のy軸範囲に包含される。従って、第4の文字C4の矩形領域(305, 93, 345, 97)は、第3の文字C3の矩形領域(300, 90, 400, 100)に包含される。
第5の文字C5に関して、左上角P51のx座標「355」が第3の文字C3の左上角P31のx座標「300」以上であり、右下角P52のx座標「395」が第3の文字C3の右下角P32のx座標「400」以下であるため、第5の文字C5の矩形領域(355, 93, 395, 97)は、第3の文字C3の矩形領域(300, 90, 400, 100)のx軸範囲に包含される。同様に、第5の文字C5の左上角P51のy座標「93」が第3の文字C3の左上角P31のy座標「90」以上であり、右下角P52のy座標「97」が第3の文字C3の右下角P32のy座標「100」以下であるため、第5の文字C5の矩形領域(355, 93, 395, 97)は、第3の文字C3の矩形領域(300, 90, 400, 100)のy軸範囲に包含される。従って、第5の文字C5の矩形領域(355, 93, 395, 97)は、第3の文字C3の矩形領域(300, 90, 400, 100)に包含される。
図5(B)に示されるように、トークン化によって生成される各サブ領域は各文字C4、C5を含む最小限の大きさとするのが好ましい。この場合、トークン化によって生成されたサブ領域(C4、C5)の面積の和は、トークン化前の領域(C3)の面積より小さくなる。後述するように、トークン化によって生成されるサブ領域が小さいほど、当該サブ領域に記入されている文字データを抽出しやすくなる。
モデル取得部107は、レイアウト判別部103によって判別されたレイアウトにおける抽出対象データを指定するデータ抽出モデルをモデル保持部300から取得する。モデル保持部300は、PDFファイルの様々なレイアウトに対するデータ抽出モデルを保持する。
一つのレイアウトに対しては一または複数のデータ抽出モデルがモデル保持部300に保持されており、図2の例では、レイアウト1に対して三つのデータ抽出モデル1-1、1-2、1-3が保持されており、レイアウト2に対して三つのデータ抽出モデル2-1、2-2、2-3が保持されている。各レイアウトについての複数のデータ抽出モデルのうち、一つのデータ抽出モデルのみが後述するモデル有効化部280によって予め有効化されている。図2の例では、レイアウト1についてはデータ抽出モデル1-3が有効になっており、レイアウト2についてはデータ抽出モデル2-2が有効になっている。この状態で、レイアウト判別部103が判別したPDFファイルのレイアウトがレイアウト1であった場合、モデル取得部107はデータ抽出モデル1-3をモデル保持部300から取得し、レイアウト判別部103が判別したPDFファイルのレイアウトがレイアウト2であった場合、モデル取得部107はデータ抽出モデル2-2をモデル保持部300から取得する。
例えば、レイアウト2が「株式会社にほへとが日本語で発行した1ページの請求書であって機械可読性のあるもの」と定義されている場合に、当該レイアウトを有する図4の例のPDFファイルがファイル入力部101に入力されたとする。第1文字認識部102から文字認識結果を受け取ったレイアウト判別部103は、図4のPDFファイル中の「請求書」や「株式会社にほへと」等の文字自体およびそれらの配置等に基づいて、入力されたPDFファイルのレイアウトが「株式会社にほへとが日本語で発行した1ページの請求書であって機械可読性のあるもの」(レイアウト2)であると判別する。このレイアウト判別結果を受け取ったモデル取得部107は、当該レイアウト2に対応するデータ抽出モデルのうち有効になっているデータ抽出モデル2-2をモデル保持部300から取得する。
データ抽出モデルについては、図3のモデル訓練装置200に関して詳述するが、ここでも簡易的に説明する。データ抽出モデルは、対応するレイアウトのPDFファイルのOCR結果(文字認識結果)から所望の抽出対象データを自動的に抽出するために、教師データによって訓練されたまたは機械学習した数理モデルである。図4のPDFファイルの具体例に即して言えば、データ抽出モデルは税務処理や会計処理に必要な各種の抽出対象データ、例えば、「いろは株式会社」という『会社名』のデータ、「\3,300」という『請求金額』のデータ、「2020/4/1」という『発行日』のデータ、「A1234-901」という『請求書番号』のデータを、PDFファイルの文字認識結果から自動的に抽出するための機械学習済モデルである。
データ抽出モデルは、PDFファイルのOCR結果、すなわちどのテキストデータがどこにあるかを示すデータを入力とし、各テキストデータがどの項目名に該当するかまたはどの項目にも該当しないかを示すデータを出力とする。このように、データ抽出モデルには、『会社名』、『請求金額』、『発行日』、『請求書番号』等の抽出対象データの項目名を示す項目名データが設定されている。データ抽出モデルのアルゴリズム自体は、既存の機械学習技術を用いて構成されてもよい。
データ抽出部108は、モデル取得部107によって取得された以上のようなデータ抽出モデルを、ファイル入力部101に入力されたPDFファイルのOCR結果(第2文字認識部による文字認識結果)に適用し、当該OCR結果から抽出対象データを抽出する。以下で具体的に説明するように、データ抽出部108は、OCR結果をデータ抽出モデルに入力することで、OCR結果中の抽出対象データを特定して抽出する。
上記の例と同様に、図4の例のPDFファイルがファイル入力部101に入力され、モデル取得部107によって「株式会社にほへとが日本語で発行した1ページの請求書であって機械可読性のあるもの」というレイアウト2に対応する有効なデータ抽出モデル2-2が取得されたとする。データ抽出部108は、このデータ抽出モデル2-2にPDFファイルのOCR結果を入力することで、OCR結果に記録されている各テキストが、レイアウト2に応じて設定されている『会社名』、『請求金額』、『発行日』、『請求書番号』等の項目名のいずれに該当するか、または該当なしかを示すデータを出力する。言い換えると、データ抽出モデルは、OCR結果に記録されている各テキストを、対応する項目名または該当なしに分類する。
図6は、データ抽出部108および信頼度提示部109が出力するデータの例を示す。「OCR Text」は第2文字認識部104によって認識された文字(テキストともいう)であって、領域取得部105および/または領域分割部106で得られた矩形領域および/またはサブ矩形領域の中で認識されたもののリストである。このリストには、図4で例示した「いろは」という第1の文字C1および「株式会社」という第2の文字C2、図5(B)で例示した「請求番号」という第4の文字C4および「A1234-901」という第5の文字C5も含まれている。
「Model outputted label」は「OCR Text」の各文字に対してデータ抽出モデルが決定した項目名である。このようにデータ抽出モデルは、第2文字認識部104によって認識された抽出対象データ「OCR Text」と項目名データ「Model outputted label」の組を出力する。図6の例では、文字「2020/4/1」対して項目名『発行日』(Issue Date)が割り当てられ、文字「いろは」に対して項目名『会社名』(Company Name)が割り当てられ、文字「株式会社」対して『会社名』が割り当てられ、文字「A1234-901」対して項目名『請求書番号』(Invoice Number)が割り当てられる。一方、データ抽出モデルは、文字に対応する項目名がない場合は『該当なし』(No Label)のラベルを付す。『該当なし』のラベルが付された文字はデータ出力部111による最終出力には含まれない。このように、データ抽出モデルに抽出対象データの項目名データを設定することで、入力されたPDFファイルから抽出すべき抽出対象データを具体的に絞り込むことができる。従って、「OCR Text」でリストアップされた多数の文字データから税務処理や会計処理に必要な文字データのみを効率的に抽出できる。
「Confidence」は信頼度提示部109が提示する信頼度である。信頼度提示部109は、データ抽出モデルが出力したデータ、具体的には「OCR Text」の文字データと「Model outputted label」の項目名データの各組について、データ抽出モデルが算出した適合度や第2文字認識部104による文字認識精度に応じた信頼度を、0.00(信頼度0%)と1.00(信頼度100%)の間の数字によって提示する。データ抽出装置100のユーザは信頼度提示部109によって提示された信頼度を参照することで、データ抽出部108および/または第2文字認識部104が各文字について出力したデータがどれほど信頼できるものかを確認できる。例えば、「OCR Text」の2行目の「鍵」は、図4の右上にある「兼」の文字を第2文字認識部104が誤認識したものである。このため、当該文字に対する信頼度は「.55」と他に比べて低い数字になっている。
データ統合部110は、データ抽出部108が抽出した複数の抽出対象データのうち、それらと組になる項目名データが同じものを一つのデータに統合する。図6の例では、抽出対象データとしての「いろは」(C1)の文字データおよび「株式会社」(C2)の文字データに同じ項目名データ『会社名』が付与されているため、データ統合部110はこれらの二つの文字データを一つの文字データ「いろは株式会社」に統合する。図4に示されるように、「いろは」(C1)および「株式会社」(C2)の文字は、両者の間にスペースがあるものの、「いろは株式会社」という法人名を表す一連の文字として認識されるべきものである。第2文字認識部104による文字認識処理では「いろは」と「株式会社」の別々の文字として認識されてしまうが、データ統合部110によって本来あるべき一つの文字に再構成できる。
データ統合部110はデータ統合可否を判断するに当たって、統合候補の複数の文字のPDFファイル中の相対距離を参照してもよい。例えば、データ統合部110は、データ抽出部108が抽出した複数の抽出対象データのうち、それらと組になる項目名データが同じものであって、領域取得部105および/または領域分割部106で得られる位置情報および/または領域情報が示す文字間の相対距離が所定距離以下のものを一つのデータに統合する。図4の例では、統合候補の「いろは」と「株式会社」の文字が近接していることから、データ統合部110はこれらを統合してよいと判断する。また、データ統合部110はデータ統合可否を判断するに当たって、統合候補の複数の文字について信頼度提示部109が提示する信頼度を参照してもよい。例えば、統合候補の複数の文字の信頼度がいずれも80%以上である場合に、データ統合部110はこれらを統合してよいと判断する。これらを含め、データ統合部110がデータ統合する場合を予めルール化しておいてもよい。
データ出力部111は、以上の処理を経た抽出対象データを出力する。図6の例では、右側に示される三つの情報(キーバリューペア)が出力される。各出力情報は項目名データと抽出対象データの組になっている。第1の出力情報「Issue Date: 2020/4/1」は、項目名データ『発行日』と抽出対象データ「2020/4/1」の組である。第2の出力情報「Company Name: いろは株式会社」は、項目名データ『会社名』とデータ統合部110によって統合された抽出対象データ「いろは株式会社」の組である。第3の出力情報「Invoice Number: A1234-901」は、項目名データ『請求書番号』と領域分割部106によってトークン化された抽出対象データ「A1234-901」の組である。なお、データ出力部111は、信頼度提示部109が提示する信頼度を併せて出力してもよい。
図7は、データ抽出装置100によるデータ抽出処理を示すフローチャートである。S11では、ファイル入力部101に、データ抽出装置100によるデータ抽出処理の対象であるPDFファイルが入力される。S12では、第1文字認識部102が、S11で入力されたPDFファイル中の文字を認識する。S13では、レイアウト判別部103が、S12で認識された文字の配置に基づいて、S11で入力されたPDFファイルのレイアウトを判別し、レイアウト判別結果を含む「Classifier Data」を出力する。
S14では、第2文字認識部104が、S13のレイアウト判別結果が示すレイアウトに応じたOCRエンジンを選択し、S11で入力されたPDFファイル中の文字を当該選択されたOCRエンジンを用いて認識する。また、S14では、領域取得部105が、第2文字認識部104の文字認識結果に基づいて、S11で入力されたPDFファイル中で抽出対象データが記入される領域を示す領域情報を取得する。S14からは、第2文字認識部104によって認識された文字と、領域取得部105によって取得された領域情報を含む「OCR Data」が出力される。S15では、領域分割部106が、S14で取得された各文字の領域情報を、当該領域に包含される複数のサブ領域を示す複数のサブ領域情報に分割する。
S16では、モデル取得部107が、S13で判別されたPDFファイルのレイアウトに対応する有効なデータ抽出モデルをモデル保持部300から取得する。S17では、データ抽出部108が、S14での文字認識処理/領域取得処理およびS15での領域分割処理を経たデータをS16で取得されたデータ抽出モデルに入力し、当該データら抽出対象データを抽出する。この際に信頼度提示部109は、データ抽出部108が抽出したデータについて、S16で取得されたデータ抽出モデルが出力する適合度やS14での文字認識精度に応じた信頼度を提示する。S18では、データ統合部110が、S17で抽出された複数の抽出対象データのうち、それらと組になる項目名データが同じものを一つのデータに統合する。S19では、データ出力部111が、以上の処理を経た抽出対象データを外部の業務サーバ等に対して出力する。
以上、訓練済のデータ抽出モデルを利用してPDFファイルの文字認識結果からデータを抽出するデータ抽出装置100について説明した。続いて、データ抽出モデルを訓練する図3のモデル訓練装置200について説明する。
図3のモデル訓練装置200において、ファイル入力部210には、モデル訓練装置200によるモデル訓練処理で用いられる教師データまたは訓練データの基になるPDFファイルが入力される。以下の説明では、図2のデータ抽出装置100の説明でも用いられた図4の例のPDFファイルがファイル入力部210に入力されたものとする。レイアウト設定部220および教示部230は、パーソナルコンピュータ等の操作端末400を操作するユーザまたは管理者の監督の下で、ファイル入力部210に入力されたPDFファイルに各種の情報を付与する。
レイアウト設定部220は、ファイル入力部210に入力されたPDFファイルにレイアウトを設定する。レイアウトについては図2のデータ抽出装置100におけるレイアウト判別部103に関して前述した。図4の例のPDFファイルがファイル入力部210に入力された場合、レイアウト設定部220は「株式会社にほへとが日本語で発行した1ページの請求書であって機械可読性のあるもの」というレイアウト(図2と同様にレイアウト2とする)を当該PDFファイルに設定する。なお、レイアウトの設定作業は、管理者が操作端末400をマニュアル操作することで行われてもよいし、前述のレイアウト判別部103と同様にレイアウト設定部220がレイアウトを自動判別することで行われてもよい。レイアウト設定部220が自動判別したレイアウトを操作端末400の画面上で管理者に提示し、管理者が操作端末400によって自動判別レイアウトの修正や承認を行うことでレイアウトの設定を行ってもよい。
教示部230は、項目名教示部231と第1領域教示部232を備え、項目名教示部231によって付与される抽出対象データの項目名を教示する項目名データと、第1領域教示部232によって付与されるPDFファイル中の抽出対象データの位置を教示する第1位置情報の組を生成する。
項目名教示部231は、レイアウト設定部220が設定したレイアウトのPDFファイルから抽出すべき所望の抽出対象データの項目を指定する。図4の例のPDFファイルに関して示した図6の具体例に即して言えば、項目名教示部231は、当該PDFファイルから抽出すべき抽出対象データとして『発行日』、『会社名』、『請求書番号』等の項目を指定する。このような項目名教示部231による抽出対象項目の指定は、管理者が操作端末400をマニュアル操作することで行われてもよいし、レイアウト設定部220が設定したレイアウトに応じて項目名教示部231が抽出対象項目の候補をリストアップして操作端末400の画面上で管理者に提示し、管理者が操作端末400によって提示候補に対する修正、追加、削除、承認を行うことで行われてもよい。
第1領域教示部232は、項目名教示部231が設定した抽出対象項目について、PDFファイル中のデータの位置を教示する第1位置情報を生成する。第1位置情報は、PDFファイル中で抽出対象データが記入される第1領域を教示する第1領域情報を含んでもよい。図5(C)は、項目名教示部231が設定した抽出対象項目『請求書番号』について、抽出対象データ「A1234-901」が記入される第1矩形領域A1を教示する第1領域情報の例を示す。第1矩形領域A1は操作端末400を操作する管理者が任意に設定できる矩形領域である。後述するように、PDFファイル中の各矩形領域に記入されている文字データを効率的に抽出するために、および/または、データ抽出モデルを効率的に訓練するために、第1矩形領域A1は実質的に抽出対象データ「A1234-901」のみを含む最大限の大きさとするのが好ましい。図5(C)の例では、第1矩形領域A1の左上角の座標は(350, 90)であり右下角の座標は(400, 100)である。従って、第1矩形領域A1を教示する第1領域情報は(350, 90, 400, 100)と表される。なお、第1領域教示部232の処理では、LabelImg(商標)等の既存のアノテーションツールを利用してもよい。
図8(A)は、教示部230が教師データ生成部250に対して出力するデータの例を示す。「Filename」の列には、ファイル入力部210に入力されたPDFファイルの名称が入力されている。「Document ID」の列には、ファイル入力部210に入力されたPDFファイルに設定されたシリアルナンバー等のIDが入力されている。「Page」の列には、PDFファイルの何ページ目かを示すページ数が入力されている。「Extraction Item」の列には、項目名教示部231によって設定された抽出対象項目が入力されている。ここでは図6の例に則して『請求書番号』、『発行日』、『会社名』が入力されている。
「Value」の列には、ファイル入力部210に入力されたPDFファイル中の各抽出対象項目に対応する値またはデータが入力されている。これらの値は、ファイル入力部210に入力されたPDFファイルを目視で確認した管理者が、操作端末400によってマニュアル入力したものである。「Bounding Box」の列には、第1領域教示部232によって生成された各抽出対象データの第1領域情報が入力されている。図5(C)に関して説明したように、抽出対象項目『請求書番号』については(350, 90, 400, 100)という第1領域情報が入力されている。
文字認識部241は、図2のデータ抽出装置100における第2文字認識部104と同様に、ファイル入力部210に入力されたPDFファイル中の文字を認識する。また、第2文字認識部104がレイアウト判別部103のレイアウト判別結果に基づいて高精度に文字を認識できるのと同様に、文字認識部241はレイアウト設定部220で設定されたレイアウトに基づいて高精度に文字を認識できる。
位置取得部としての第2領域取得部242は、図2のデータ抽出装置100における領域取得部105と同様に、文字認識部241における文字認識結果に基づいて、ファイル入力部210に入力されたPDFファイル中の抽出対象データの位置を示す第2位置情報を取得する。第2位置情報は、PDFファイル中で抽出対象データが記入される第2領域を示す第2領域情報を含んでもよい。
領域分割部243は、図2のデータ抽出装置100における領域分割部106と同様に、第2領域取得部242によって取得された各文字の第2領域情報を、当該第2領域に包含される複数のサブ領域を示す複数のサブ領域情報に分割する。領域分割部243が生成するサブ領域情報は、領域分割部106が生成するサブ領域情報と実質的に同じである。すなわち、領域分割部106に関して図5(B)で例示したように、第3の文字C3(図5(A))に含まれる第4の文字C4および第5の文字C5がそれぞれ含まれるサブ矩形領域を示すサブ矩形領域情報(305, 93, 345, 97)および(355, 93, 395, 97)が領域分割部243によって取得される。
図8(B)は、文字認識部241、第2領域取得部242、領域分割部243を経て教師データ生成部250に提供されるデータの例を示す。「Tokenized Text」の列には、文字認識部241で認識されたPDFファイル中の全ての文字がリストアップされている。図5(B)に示したような領域分割部243によってトークン化された複数の文字については、それぞれが別の文字として「Tokenized Text」の列にリストアップされる。図8(B)の例では、トークン化された「A1234-901」(第5の文字C5)が一つの文字として入力されている。「Bounding Box」の列には、第2領域取得部242および/または領域分割部243によって得られた各文字の第2領域情報が入力されている。例えば、トークン化された文字「A1234-901」については、図5(B)において当該文字C5が含まれるサブ矩形領域を示す(355, 93, 395, 97)という第2領域情報が入力されている。
教師データ生成部250は、領域比較部251と項目名/領域結合部252を備え、データ抽出モデルを訓練するための教師データを生成する。領域比較部251は、教示部230が設定した抽出対象項目(図8(A)の「Extraction Item」)について、教示部230から提供される第1位置情報(図8(A)の「Bounding Box」)と、第2領域取得部242および/または領域分割部243から提供される第2位置情報(図8(B)の「Bounding Box」)の乖離が所定量以下であるか否かを判定する。項目名/領域結合部252は、第1位置情報と第2位置情報の乖離が所定量以下の抽出対象項目について、当該第1位置情報と組になる項目名データ(図8(A)の「Extraction Item」)と当該第2位置情報が対応付けられた教師データを生成する。
図8(C)は、教師データ生成部250によって生成される教師データの例を示す。「Tokenized Text」および「Bounding Box」の列には、図8(B)と同じデータが入力されている。「Extraction Item」の列には、図8(A)の「Extraction Item」に対応する項目名データが入力されている。詳細は後述するが、図8(A)における「Bounding Box」(第1位置情報)と図8(B)における「Bounding Box」(第2位置情報)の乖離が所定量以下の場合、図8(A)の「Extraction Item」のデータが図8(C)の「Extraction Item」に入力される。
例えば、「A1234-901」というトークン化された文字についての第1位置情報(350, 90, 400, 100)と第2位置情報(355, 93, 395, 97)の乖離は所定量以下であるため、第1位置情報(350, 90, 400, 100)と組になる項目名データ「Invoice Number」(請求書番号)が図8(C)の「Extraction Item」に入力される。一方、図8(A)の「Value」と図8(B)の「Tokenized Text」に対応する文字がない場合や、対応する文字があっても図8(A)の第1位置情報と図8(B)第2位置情報の乖離が所定量より大きい場合は、図8(C)の「Extraction Item」の欄に「No Label」(該当なし)と入力される。図6に関して説明したように、『該当なし』のラベルが付された文字は、データ抽出装置100によって抽出されない。
図5(D)は、トークン化された文字「A1234-901」についての領域比較部251による領域比較処理の例を示す。領域比較部251は、教示部230から提供される第1領域A1が、第2領域取得部242および/または領域分割部243から提供される第2領域A2(トークン化されたサブ領域)を包含する場合に、第1位置情報と第2位置情報の乖離が所定量以下であると判定する。第1領域A1が第2領域A2を包含するか否かは、例えば、各領域の左上角の座標の比較と右下角の座標の比較によって判定できる。具体的には、第1領域A1の左上角のx座標(350)が第2領域A2の左上角のx座標(355)以下、第1領域A1の左上角のy座標(90)が第2領域A2の左上角のy座標(93)以下、第1領域A1の右下角のx座標(400)が第2領域A2の右下角のx座標(395)以上、第1領域A1の右下角のy座標(100)が第2領域A2の右下角のy座標(97)以上、という四つの条件を全て満たす場合に第1領域A1が第2領域A2を包含する。
図5(D)の例では以上の四つの条件が全て満たされるため、領域比較部251は第1位置情報と第2位置情報の乖離が所定量以下であると判定し、それを受けた項目名/領域結合部252は、図8(C)に示されるように、文字「A1234-901」について項目名データ「Invoice Number」と第2位置情報(355, 93, 395, 97)が対応付けられた教師データを生成する。なお、第2領域A2を生成する領域分割部243(または第2領域取得部242)と同等の機能を有する領域分割部106(または領域取得部105)で得られるサブ領域(または領域)は最小限の大きさとするのが好ましく、第1領域教示部232によって設定される第1領域A1は最大限の大きさとするのが好ましいと前述した理由は、図5(D)のように第2領域A2が第1領域A1内に収まりやすくすることで図8(C)のような教師データを効率的に生成できるためである。
図9は、教師データ生成部250による教師データ生成処理を示すフローチャートである。S21では、文字認識部241によって認識された文字(領域分割部243によってトークン化された文字についてはトークン化後のもの)の一つが選択される。これは、図8(B)の「Tokenized Text」の列から一つの文字を選択することに相当する。S22では、教示部230による教示データ中にS21で選択された文字に対応する文字があるか否かが判定される。これは、S21で選択された図8(B)の「Tokenized Text」の列の文字が、図8(A)の「Value」の列にも存在するか否かを判定することに相当する。例えば、S21で図8(B)の文字「A1234-901」が選択された場合、図8(A)の「Value」の列にも対応する文字「A1234-901」があるため、S22ではYesと判定される。S22でNoと判定された場合はS30に進み、S21で選択された当該文字に対して「No Label」のラベルが付される。なお、S22を設けなくてもよい。この場合、第1位置情報と第2位置情報との比較を全ての第1位置情報について繰り返してもよい。
S22でYesと判定された場合はS23に進み、教示部230から第1領域A1を表す第1位置情報(x11,y11,x12,y12)を取得する。続くS24では、第2領域取得部242または領域分割部243から第2領域A2を表す第2位置情報(x21,y21,x22,y22)を取得する。S25では、第1領域A1の左上角のx座標x11が第2領域A2の左上角のx座標x21以下であるか否かが判定され、S26では、第1領域A1の左上角のy座標y11が第2領域A2の左上角のy座標y21以下であるか否かが判定され、S27では、第1領域A1の右下角のx座標x12が第2領域A2の右下角のx座標x22以上であるか否かが判定され、S28では、第1領域A1の右下角のy座標y12が第2領域A2の右下角のy座標y22以上であるか否かが判定される。
S25~S28の全てでYesと判定された場合はS29に進み、S21で選択された当該文字に対して、教示データ中の項目名データが抽出対象項目として教師データに記録される。これは、図8(A)の教示データの「Extraction Item」の列にある該当データを、図8(C)の教師データの「Extraction Item」の列の該当欄に転記することに相当する。一方、S25~S28のいずれかでNoと判定された場合はS30に進み、S21で選択された当該文字に対して「No Label」のラベルが付される。S31では、文字認識部241によって認識された全ての文字がS21で選択されたか否かが判定され、Noの場合はS21に戻って以降の処理が未選択の文字について順次実行される。
モデル訓練部260は、以上のように生成された図8(C)のような教師データに基づいて、レイアウト設定部220で設定されたレイアウトにおける抽出対象データを指定するデータ抽出モデルを訓練する。図8(C)の教師データによれば、例えば、抽出対象項目としての『請求書番号』(Invoice Number)が、レイアウト設定部220で設定されたレイアウトのPDFファイル中の(355, 93, 395, 97)の位置にあることを、訓練対象のデータ抽出モデルに教えることができる。このような機械学習を経たデータ抽出モデルによれば、図2のデータ抽出装置100におけるファイル入力部101に図4のPDFファイルが入力された場合に、抽出対象データ「A1234-901」に項目名『請求書番号』を正しく対応付けることができる。
レイアウト設定部220で設定されたレイアウトに対応する一または複数のデータ抽出モデルが既にモデル保持部300に保持されている場合、モデル訓練部260はこれらの一つを管理者の操作端末400上での選択操作等に応じてモデル保持部300から読み出し、教師データ生成部250が新たに生成した教師データによって追加的に訓練できる。図3では、モデル保持部300に保持されているレイアウト2に対するデータ抽出モデル2-3をモデル訓練部260が読み出して訓練する様子を示す。
モデル訓練部260は管理者の操作端末400上での操作等に応じてデータ抽出モデルを新規に作成し、教師データ生成部250が生成した教師データによって訓練してもよい。教師データ生成部250が過去に生成した教師データを保持する教師データ保持部を設け、管理者の操作端末400上での選択操作等に応じてモデル訓練部260が適当な教師データを教師データ保持部から読み出し、新規に作成されたデータ抽出モデルまたは作成済のデータ抽出モデルを訓練してもよい。
モデル格納部270は、モデル訓練部260によって訓練されたデータ抽出モデルをモデル保持部300に格納する。図3に示すように既存のデータ抽出モデル2-3がモデル訓練部260によって訓練された場合、モデル格納部270は、追加的に訓練されたデータ抽出モデルによって訓練前のデータ抽出モデル2-3を置換または更新してもよいし、図3に示すように追加的に訓練されたデータ抽出モデルを新たなデータ抽出モデル2-4としてモデル保持部300に格納してもよい。モデル有効化部280は、管理者の操作端末400上での操作等に応じて、モデル保持部300に保持されている各レイアウトに対応する複数のデータ抽出モデルのうち少なくとも一つを有効化する。図3の例では、レイアウト1についてはデータ抽出モデル1-2が有効になっており、レイアウト2については新規に作成されたデータ抽出モデル2-4が有効になっている。
図10は、操作端末400の画面に表示されるPDFファイルのレイアウトの一覧である。この図には8個の異なるレイアウトが表示されており、それぞれにID41に示される「0001」から「0008」のシリアルナンバーが付されている。各レイアウトを選択するチェックボックス40の脇に設けられる展開ボタン50を押下操作することで、当該レイアウトに対してモデル保持部300が保持している一または複数のデータ抽出モデルを閲覧できる。図の例では「0008」のレイアウトの展開ボタン50が押下操作されている。
レイアウト42には各レイアウトの一意的な名称が表示される。421~426には各レイアウトを定義するレイアウト情報が表示される。文書種別421には各レイアウトの文書種別(例えば請求書)が表示される。相手方422には各レイアウトの適用対象である会社名等が表示される。フォーマット423にはファイルのフォーマット(PDF等)が表示される。ページ数424には各レイアウトのページ数が表示される。言語425には各レイアウトで使用される言語が表示される。機械可読性426には各レイアウトが機械可読であるか否かが表示される。最終更新43には各レイアウトまたは各レイアウトに登録された少なくとも一つのデータ抽出モデルの最終更新時刻が表示される。
使用中モデル44には、複数のデータ抽出モデルが登録されているレイアウトについて、モデル有効化部280によって有効化されている一つの使用中のデータ抽出モデルの番号が表示される。例えば、図10の「0008」のレイアウトには「Model 1」「Model 2」「Model 3」の3個のデータ抽出モデルが登録されているが、そのうち「Model 1」が有効化されているために使用中モデル44には「Model 1」が表示される。モデルステータス45には、各レイアウトで使用中のデータ抽出モデルのモデル訓練装置200による訓練状況等が表示される。例えば、図10の「0008」のレイアウトで使用中のデータ抽出モデル「Model 1」は訓練済(Trained)である。レイアウト有効化部46では、ON/OFFボタンの押下操作によって各レイアウトの有効化/無効化を行える。レイアウト有効化部46で有効化されているレイアウトのみが、データ抽出装置100によるデータ抽出処理で利用可能である。
図10で「0008」のレイアウトの展開ボタン50が押下操作されることで、当該レイアウトに対してモデル保持部300が保持している一または複数のデータ抽出モデルを閲覧できる。モデル選択部51では、ドロップダウンリストによって既存のデータ抽出モデル「Model 1」「Model 2」「Model 3」等を選択できる。更にモデル選択部51では「New Model」も選択でき、データ抽出モデルの新規作成も行える。モデル使用チェックボックス52にチェックを入れると、モデル選択部51で選択されたデータ抽出モデルが「使用中」のステータスとなり、当該データ抽出モデルの番号が使用中モデル44に表示される。モデル削除ボタン53を押下操作すると、モデル選択部51で選択されたデータ抽出モデルを削除できる。作成時刻54にはモデル選択部51で選択されたデータ抽出モデルの作成時刻または最終更新時刻が表示される。
モデルステータス55には、モデル選択部51で選択されたデータ抽出モデルのモデル訓練装置200による訓練状況等が表示される。訓練ファイル表示領域56には、モデル選択部51で選択されたデータ抽出モデルの訓練に使用されたPDFファイルがリストアップされて閲覧可能になっている。このように、訓練済または訓練途中のデータ抽出モデルには、訓練に使用されたファイルが対応付けられて保存されている。従って、訓練前は同じデータ抽出モデルであっても、訓練に使用されたファイルの数や内容が異なれば、異なるデータ抽出モデルであるといえる。図10のようなレイアウトおよびデータ抽出モデルの管理画面によれば、以上のように訓練ファイルのみが異なる複数のデータ抽出モデルを作成し、それぞれのデータ抽出精度を評価しながら、各レイアウトに最適なデータ抽出モデルを効率的に作成できる。モデル新規作成部57を操作すれば、展開ボタン50の押下操作によって展開されたレイアウトについて新たなデータ抽出モデルを作成できる。
図11は、モデル訓練装置200によるモデル訓練処理を示すフローチャートである。S41では、ファイル入力部210に、モデル訓練装置200によるモデル訓練処理で用いられる教師データの基になるPDFファイルが入力される。S42では、操作端末400を操作する管理者(Data Labeler)の監督の下で、レイアウト設定部220がS41で入力されたPDFファイルにレイアウトを設定し、教示部230が抽出対象データの項目名データと、S41で入力されたPDFファイル中の抽出対象データの第1位置情報の組を生成する。
S43では、文字認識部241がS41で入力されたPDFファイル中の文字を認識し、第2領域取得部242が、文字認識部241の文字認識結果に基づいて、S41で入力されたPDFファイル中の抽出対象データの第2位置情報を取得する。S44では、領域分割部243が、S43で取得された各文字の第2領域情報を、当該第2領域に包含される複数のサブ領域を示す複数のサブ領域情報に分割する。S45では、教師データ生成部250が、領域比較部251と項目名/領域結合部252によって、データ抽出モデルを訓練するための教師データを生成する。
S46では、モデル訓練部260が、S45で生成された教師データに基づいて、S42で設定されたレイアウトに対するデータ抽出モデルをモデル保持部300から取得して訓練する。S47では、モデル格納部270が、S46で訓練されたデータ抽出モデルをモデル保持部300に格納する。
本実施形態のデータ抽出装置100およびモデル訓練装置200は、税務処理や会計処理の対象となるPDFファイル等の電子文書から必要なデータを効率的に抽出することを主な目的として考案された。従来のデータ抽出は膨大な数のデータ抽出ルールに基づいて行われることが一般的であり、各顧客の各文書種別の抽出対象項目毎に異なるデータ抽出ルールを作成して維持管理する必要があるため、極めて効率性が低かった。本実施形態によれば、機械学習に基づくデータ抽出モデルをファイルのレイアウト毎に作成することで、大幅な効率化を実現できた。例えば、1個のデータ抽出ルールの作成に1週間ものエンジニアの時間が使われることもあった従来技術に比べて、本実施形態によれば複数の抽出対象項目(1ファイルで40個を超えることもある)を一挙に抽出できるデータ抽出モデルを訓練するための教師データをわずか1時間程度のアノテータ(Annotator)の時間で生成できる。
本実施形態では機械学習技術を利用しているため、より多くの訓練ファイルによってデータ抽出モデルを訓練することで、データ抽出モデルの抽出精度を容易に高めることができる。
本実施形態ではファイルのレイアウト毎にデータ抽出モデルを保持しているため、異なるレイアウトのファイルがデータ抽出装置100に入力されたとしても、レイアウト毎に最適化されたデータ抽出モデルによって、高精度にデータを抽出できる。これに対して従来技術では、本実施形態のレイアウトの一要素に過ぎない文書種別毎にデータ抽出ルールが作成されていたため、極めて非効率的であった。
従来のデータ抽出は正規表現やルールに基づく機能に依拠していたが、本実施形態によれば機械学習モデルがこれらの「ルール」を効率的に学習できる。これによって、データ抽出処理を実現するために必要なソフトウェアのコードを著しく低減できる。
このようにリーンな態様で訓練されたデータ抽出モデルによって、ファイル中の抽出対象データを高速に特定できる。また、データサイエンティストがデータ抽出モデルを調整する必要がある場合にも、特定の性能要素について簡単にカスタマイズを行える。
一つのレイアウトに対して複数のデータ抽出モデルを作成可能とすることで、データ抽出モデル間の比較等を通じて、各レイアウトに最適なデータ抽出モデルを効率的に作成できる。前述のように、訓練に使用されたファイルの数や内容のみが異なる複数のバージョンのデータ抽出モデルを用意し、それぞれのデータ抽出精度を評価しながら各レイアウトに最適なデータ抽出モデルを選定してもよい。例えば、50個の訓練ファイルがある場合に、20個の訓練ファイルで訓練したデータ抽出モデル1、30個の訓練ファイルで訓練したデータ抽出モデル2、40個の訓練ファイルで訓練したデータ抽出モデル3、50個の訓練ファイルで訓練したデータ抽出モデル4、等を作成する。一般的には訓練ファイルの数が多いほどデータ抽出精度が高くなることが期待されるが、実際には例えばデータ抽出モデル2がデータ抽出モデル4より高精度にデータ抽出できた場合は、モデル有効化部280によってデータ抽出モデル2を有効化する。
本実施形態では、訓練フェーズにおいて、OCRエンジンが設定する矩形領域(bounding box)と管理者またはデータラベラー(data labeler)が設定する矩形領域との違いによりOCRテキスト(OCR結果に含まれるテキスト)への項目名の対応付けが失敗する蓋然性を抑制するためにOCRテキストのトークン化が行われる。これにより、図9、図5(D)を参照して説明したように、訓練フェーズにおいてOCRテキストの項目への分類をより正確に行うことができる。
ここで、機械学習モデルを用いる場合、訓練フェーズ(図3)と実行フェーズ(図2)とで基本的に同じ処理を行う必要があるとの要請から、訓練フェーズで導入した上記トークン化を実行フェーズにも導入する必要がある。実行フェーズにトークン化を導入した結果、OCRテキストが不必要に細分化される状況が生じうる。例えば、「甲乙株式会社」がトークン化により「甲乙」と「株式会社」とに分けられてしまうと、データ抽出モデルは「甲乙」、「株式会社」をそれぞれ独立に項目名「請求先」に分類することとなる。そこで本実施形態では同じ項目名に属するOCRテキストを統合するという処理を実行フェーズに設けている。これにより、上記の例では「甲乙」と「株式会社」とが統合されて「甲乙株式会社」となり、その項目名として「請求先」が対応付けられる。
このように、本実施形態は、訓練フェーズにおいてより正確な教師データの生成を実現しつつ、それによる実行フェーズへの影響を抑えるか除去することができる。なお、レイアウトごとに統合の基準を定めてもよい。例えば、あるレイアウトの抽出対象項目Aは2以上ある場合に統合して1つとするが、抽出対象項目Bは2以上あっても統合せずにそれぞれ項目Bに分類するよう定めてもよい。データ統合部は、入力されたファイルのレイアウトに対応する統合基準を参照して統合処理を行ってもよい。
以上、本発明を実施形態に基づいて説明した。実施形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
図4や図5(B)に示されるように、実施形態では領域取得部105および/または領域分割部106で得られる各矩形領域に「いろは」「株式会社」「A1234-901」等の一つの文字または文字列のみが含まれる場合について説明したが、本実施形態のデータ抽出装置100は各領域に複数の文字または文字列が含まれる場合にも適用できる。例えば、図4に示されるようにPDFファイルに行列状の表(規則的に配列されたデータ群)が含まれる場合、当該表を認識した第2文字認識部104は「金額」の列に含まれる全ての文字群T1を一括で認識し、領域取得部105は文字群T1を包含する矩形領域を取得する。これに合わせて、図8(C)において、「Extraction Item」の欄に抽出対象項目『金額』(Amount)が入力され、「Tokenized Text」の欄に文字認識部241による文字群T1の認識結果が入力され、「Bounding Box」の欄に文字群T1を包含する図4の矩形領域の領域情報(第2領域取得部242で取得される)が入力された教師データを教師データ生成部250が生成することで、当該教師データによって訓練されたデータ抽出モデルは、図4の文字群T1を『金額』を表すデータ群として一挙に抽出できる。
なお、実施形態で説明した各装置の機能構成はハードウェア資源またはソフトウェア資源により、あるいはハードウェア資源とソフトウェア資源の協働により実現できる。ハードウェア資源としてプロセッサ、ROM、RAM、その他のLSIを利用できる。ソフトウェア資源としてオペレーティングシステム、アプリケーション等のプログラムを利用できる。
本発明は、情報処理技術に関する。
42 レイアウト、44 使用中モデル、45 モデルステータス、46 レイアウト有効化部、51 モデル選択部、55 モデルステータス、56 訓練ファイル表示領域、100 データ抽出装置、101 ファイル入力部、102 第1文字認識部、103 レイアウト判別部、104 第2文字認識部、105 領域取得部、106 領域分割部、107 モデル取得部、108 データ抽出部、109 信頼度提示部、110 データ統合部、111 データ出力部、200 モデル訓練装置、210 ファイル入力部、220 レイアウト設定部、230 教示部、231 項目名教示部、232 第1領域教示部、241 文字認識部、242 第2領域取得部、243 領域分割部、250 教師データ生成部、251 領域比較部、252 項目名/領域結合部、260 モデル訓練部、270 モデル格納部、280 モデル有効化部、300 モデル保持部、400 操作端末。
Claims (14)
- 入力されたファイルのレイアウトを判別するレイアウト判別部と、
判別されたレイアウトにおける抽出対象データを指定するデータ抽出モデルを取得するモデル取得部と、
取得されたデータ抽出モデルを入力されたファイルの文字認識結果に適用し、当該文字認識結果から抽出対象データを抽出するデータ抽出部と、
を備える情報処理装置。 - 入力されたファイル中の文字を認識する文字認識部を更に備え、
前記レイアウト判別部は、認識された文字の配置に基づいて、入力されたファイルのレイアウトを判別する、
請求項1に記載の情報処理装置。 - 前記データ抽出モデルは、抽出対象データの項目名を示す項目名データを記録し、
前記データ抽出部は、抽出した抽出対象データと前記項目名データの組を出力する、
請求項1または2に記載の情報処理装置。 - 前記データ抽出部が抽出した複数の抽出対象データのうち、それらと組になる項目名データが同じものを一つのデータに統合するデータ統合部を更に備える、請求項3に記載の情報処理装置。
- 前記データ統合部は、前記データ抽出部が抽出した複数の抽出対象データのうち、それらと組になる項目名データが同じものであって、ファイル中の相対距離が所定距離以下のものを一つのデータに統合する、請求項4に記載の情報処理装置。
- 前記データ抽出部が抽出した抽出対象データについて、前記データ抽出モデルとの適合度に応じた信頼度を提示する信頼度提示部を更に備える、請求項1から5のいずれかに記載の情報処理装置。
- 入力されたファイルにレイアウトを設定するレイアウト設定部と、
抽出対象データの項目名を教示する項目名データと、入力されたファイル中の当該抽出対象データの位置を教示する第1位置情報の組を生成する教示部と、
入力されたファイル中の文字を認識する文字認識部と、
認識された文字に基づいて、入力されたファイル中の抽出対象データの位置を示す第2位置情報を取得する位置取得部と、
前記第1位置情報および前記第2位置情報の乖離が所定量以下の場合に、当該第1位置情報と組になる項目名データと当該第2位置情報が対応付けられた教師データを生成する教師データ生成部と、
生成された教師データに基づいて、前記レイアウトにおける抽出対象データを指定するデータ抽出モデルを訓練するモデル訓練部と、
を備える情報処理装置。 - 前記第1位置情報は、入力されたファイル中で抽出対象データが記入される第1領域を教示する第1領域情報を含み、
前記第2位置情報は、入力されたファイル中で抽出対象データが記入される第2領域を示す第2領域情報を含み、
前記教師データ生成部は、前記第1領域が前記第2領域を包含する場合に、当該第1領域情報と組になる項目名データと当該第2領域情報が対応付けられた教師データを生成する、
請求項7に記載の情報処理装置。 - 前記位置取得部が取得した前記第2領域情報を、前記第2領域に包含される複数のサブ領域を示す複数のサブ領域情報に分割する領域分割部を更に備え、
前記教師データ生成部は、前記第1領域が前記サブ領域を包含する場合に、当該第1領域情報と組になる項目名データと当該サブ領域情報が対応付けられた教師データを生成する、
請求項8に記載の情報処理装置。 - 一つのレイアウトに対して複数のデータ抽出モデルを保持可能なモデル保持部と、
前記複数のデータ抽出モデルのうち少なくとも一つを有効化するモデル有効化部と、
を更に備える請求項7から9のいずれかに記載の情報処理装置。 - 入力されたファイルのレイアウトを判別するレイアウト判別ステップと、
判別されたレイアウトにおける抽出対象データを指定するデータ抽出モデルを取得するモデル取得ステップと、
取得されたデータ抽出モデルを入力されたファイルの文字認識結果に適用し、当該文字認識結果から抽出対象データを抽出するデータ抽出ステップと、
を備える情報処理方法。 - 入力されたファイルのレイアウトを判別するレイアウト判別ステップと、
判別されたレイアウトにおける抽出対象データを指定するデータ抽出モデルを取得するモデル取得ステップと、
取得されたデータ抽出モデルを入力されたファイルの文字認識結果に適用し、当該文字認識結果から抽出対象データを抽出するデータ抽出ステップと、
をコンピュータに実行させる情報処理プログラム。 - 入力されたファイルにレイアウトを設定するレイアウト設定ステップと、
抽出対象データの項目名を教示する項目名データと、入力されたファイル中の当該抽出対象データの位置を教示する第1位置情報の組を生成する教示ステップと、
入力されたファイル中の文字を認識する文字認識ステップと、
認識された文字に基づいて、入力されたファイル中の抽出対象データの位置を示す第2位置情報を取得する位置取得ステップと、
前記第1位置情報および前記第2位置情報の乖離が所定量以下の場合に、当該第1位置情報と組になる項目名データと当該第2位置情報が対応付けられた教師データを生成する教師データ生成ステップと、
生成された教師データに基づいて、前記レイアウトにおける抽出対象データを指定するデータ抽出モデルを訓練するモデル訓練ステップと、
を備える情報処理方法。 - 入力されたファイルにレイアウトを設定するレイアウト設定ステップと、
抽出対象データの項目名を教示する項目名データと、入力されたファイル中の当該抽出対象データの位置を教示する第1位置情報の組を生成する教示ステップと、
入力されたファイル中の文字を認識する文字認識ステップと、
認識された文字に基づいて、入力されたファイル中の抽出対象データの位置を示す第2位置情報を取得する位置取得ステップと、
前記第1位置情報および前記第2位置情報の乖離が所定量以下の場合に、当該第1位置情報と組になる項目名データと当該第2位置情報が対応付けられた教師データを生成する教師データ生成ステップと、
生成された教師データに基づいて、前記レイアウトにおける抽出対象データを指定するデータ抽出モデルを訓練するモデル訓練ステップと、
をコンピュータに実行させる情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/035333 WO2023047570A1 (ja) | 2021-09-27 | 2021-09-27 | 情報処理装置、情報処理方法、情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/035333 WO2023047570A1 (ja) | 2021-09-27 | 2021-09-27 | 情報処理装置、情報処理方法、情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023047570A1 true WO2023047570A1 (ja) | 2023-03-30 |
Family
ID=85720272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/035333 WO2023047570A1 (ja) | 2021-09-27 | 2021-09-27 | 情報処理装置、情報処理方法、情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023047570A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07210627A (ja) * | 1994-01-25 | 1995-08-11 | Fuji Xerox Co Ltd | 文書論理構造認識装置 |
JP2000090117A (ja) * | 1998-07-16 | 2000-03-31 | Ricoh Co Ltd | 文書画像の論理要素抽出方法、装置および記録媒体 |
JP2009009307A (ja) * | 2007-06-27 | 2009-01-15 | Canon Inc | 文書画像処理装置及びその方法 |
-
2021
- 2021-09-27 WO PCT/JP2021/035333 patent/WO2023047570A1/ja unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07210627A (ja) * | 1994-01-25 | 1995-08-11 | Fuji Xerox Co Ltd | 文書論理構造認識装置 |
JP2000090117A (ja) * | 1998-07-16 | 2000-03-31 | Ricoh Co Ltd | 文書画像の論理要素抽出方法、装置および記録媒体 |
JP2009009307A (ja) * | 2007-06-27 | 2009-01-15 | Canon Inc | 文書画像処理装置及びその方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10366123B1 (en) | Template-free extraction of data from documents | |
US6031625A (en) | System for data extraction from a print data stream | |
US7020320B2 (en) | Extracting text written on a check | |
US9213893B2 (en) | Extracting data from semi-structured electronic documents | |
US20120102002A1 (en) | Automatic data validation and correction | |
US20070300295A1 (en) | Systems and methods to extract data automatically from a composite electronic document | |
JP5385349B2 (ja) | レシート定義データ作成装置およびそのプログラム | |
JPH06501584A (ja) | 情報処理装置 | |
US20210366055A1 (en) | Systems and methods for generating accurate transaction data and manipulation | |
US20090049375A1 (en) | Selective processing of information from a digital copy of a document for data entry | |
WO2001061587A1 (en) | Financial processing system and method | |
US10614125B1 (en) | Modeling and extracting elements in semi-structured documents | |
JP2013164740A (ja) | 会計情報読取りシステム、会計情報読取り方法、及びプログラム | |
Ha et al. | Recognition of OCR invoice metadata block types | |
CN111914729A (zh) | 凭证关联方法、装置、计算机设备及存储介质 | |
US11386263B2 (en) | Automatic generation of form application | |
JP2014041442A (ja) | レシート定義データ作成装置およびプログラム | |
US8687210B2 (en) | Document data access | |
JP2016192223A (ja) | 会計情報読取りシステム及びプログラム | |
US20190163684A1 (en) | Method and system for converting data into a software application compatible format | |
WO2023047570A1 (ja) | 情報処理装置、情報処理方法、情報処理プログラム | |
JP5766438B2 (ja) | 電子メディアにおけるクリックスルー機能に関する方法およびシステム | |
JP5550959B2 (ja) | 文書処理システム、及びプログラム | |
Fernando | Intelligent Document Processing: A Guide For Building RPA Solutions | |
US20240184985A1 (en) | Information representation structure analysis device, and information representation structure analysis method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21958443 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |