RU2774653C1 - Methods and systems for identifying fields in a document - Google Patents
Methods and systems for identifying fields in a document Download PDFInfo
- Publication number
- RU2774653C1 RU2774653C1 RU2021127301A RU2021127301A RU2774653C1 RU 2774653 C1 RU2774653 C1 RU 2774653C1 RU 2021127301 A RU2021127301 A RU 2021127301A RU 2021127301 A RU2021127301 A RU 2021127301A RU 2774653 C1 RU2774653 C1 RU 2774653C1
- Authority
- RU
- Russia
- Prior art keywords
- document
- field
- documents
- fields
- image
- Prior art date
Links
- 239000000126 substance Substances 0.000 abstract description 2
- 230000000875 corresponding Effects 0.000 description 34
- 238000001514 detection method Methods 0.000 description 20
- 239000000203 mixture Substances 0.000 description 18
- 238000000034 method Methods 0.000 description 16
- 238000010801 machine learning Methods 0.000 description 13
- 230000001537 neural Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000003287 optical Effects 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000011049 filling Methods 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000002085 persistent Effects 0.000 description 2
- 230000001360 synchronised Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000004931 aggregating Effects 0.000 description 1
- 230000003750 conditioning Effects 0.000 description 1
- 230000002596 correlated Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000000306 recurrent Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002104 routine Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
Images
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[001] Настоящее изобретение в общем относится к компьютерным системам, а более конкретно — к системам и способам обнаружения полей в документе.[001] The present invention generally relates to computer systems, and more specifically to systems and methods for detecting fields in a document.
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION
[002] На изображении может быть изображен документ или его часть. Документ может состоять из различных типов элементов, включая поля. На механизм обработки изображений может быть возложена задача обнаружения полей на изображении документа. [002] The image may show a document or part of it. A document can be made up of various types of elements, including fields. An image processing engine can be tasked with detecting margins in a document image.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION
[003] В соответствии с одним или несколькими вариантами реализации настоящего изобретения способ, описанный в примере, может включать в себя: получение набора данных для обучения, содержащего несколько изображений документа, причем каждое из нескольких изображений документа сопоставляется с соответствующими метаданными, определяющими поле документа, содержащее переменный текст; формирование путем обработки нескольких изображений документа первой тепловой карты, представленной структурой данных, содержащей несколько элементов тепловой карты, соответствующих нескольким пикселям изображения документа, причем в каждом элементе тепловой карты хранится счетчик некоторого количества изображений документа, в котором поле документа содержит пиксель изображения документа, связанный с элементом тепловой карты; получение изображения входного документа; и определение в пределах изображения входного документа области-кандидата, содержащей поле документа, причем область-кандидат содержит несколько пикселей изображения входного документа, соответствующих элементам тепловой карты, удовлетворяющим пороговому условию.[003] In accordance with one or more embodiments of the present invention, the method described in the example may include: obtaining a training data set containing multiple document images, each of the multiple document images being matched with the corresponding metadata that defines a field of the document, containing variable text; the formation by processing several images of the document of the first heat map, represented by a data structure containing several elements of the heat map corresponding to several pixels of the document image, each element of the heat map storing a counter of a certain number of document images, in which the document field contains a document image pixel associated with heat map element; obtaining an image of the input document; and determining, within the input document image, a candidate region containing the document field, the candidate region containing a plurality of input document image pixels corresponding to heat map elements that satisfy the threshold condition.
[004] В соответствии с одним или несколькими вариантами реализации настоящего изобретения система, описанная в примере, может включать в себя: запоминающее устройство для хранения инструкций; устройство обработки, соединенное с запоминающим устройством, причем устройство обработки предназначено для выполнения инструкций для: получения набора данных для обучения, содержащего несколько изображений документа, причем каждое из нескольких изображений документа сопоставляется с соответствующими метаданными, определяющими поле документа, содержащее переменный текст; формирования путем обработки нескольких изображений документа первой тепловой карты, представленной структурой данных, содержащей несколько элементов тепловой карты, соответствующих нескольким пикселям изображения документа, причем в каждом элементе тепловой карты хранится счетчик некоторого количества изображений документа, в котором поле документа содержит пиксель изображения документа, связанный с элементом тепловой карты; получения изображения входного документа; и определения в пределах изображения входного документа области-кандидата, содержащей поле документа, причем область-кандидат содержит несколько пикселей изображения входного документа, соответствующих элементам тепловой карты, удовлетворяющим пороговому условию.[004] In accordance with one or more embodiments of the present invention, the system described in the example may include: a memory device for storing instructions; a processing device coupled to the storage device, the processing device for executing instructions for: obtaining a training data set containing multiple document images, each of the multiple document images being matched with corresponding metadata defining a document field containing variable text; the formation by processing several images of the document of the first heat map, represented by a data structure containing several elements of the heat map corresponding to several pixels of the document image, and in each element of the heat map a counter of a certain number of document images is stored, in which the document field contains a document image pixel associated with heat map element; obtaining an image of the input document; and determining, within the input document image, a candidate region containing the document field, wherein the candidate region contains a plurality of input document image pixels corresponding to heat map elements that satisfy the threshold condition.
[005] В соответствии с одним или несколькими вариантами реализации настоящего изобретения энергонезависимый машиночитаемый носитель, описанный в примере, может содержать инструкции, при выполнении которых устройством обработки данных устройство обработки данных: получает набор данных для обучения, содержащий несколько изображений документа, причем каждое из нескольких изображений документа сопоставляется с соответствующими метаданными, определяющими поле документа, содержащее переменный текст; формирует путем обработки нескольких изображений документа первую тепловую карту, представленную структурой данных, содержащей несколько элементов тепловой карты, соответствующих нескольким пикселям изображения документа, причем в каждом элементе тепловой карты хранится счетчик некоторого количества изображений документа, в котором поле документа содержит пиксель изображения документа, связанный с элементом тепловой карты; получает изображение входного документа; определяет внутри изображения входного документа область-кандидат, содержащую поле документа, причем область-кандидат содержит несколько пикселей изображения входного документа, соответствующих элементам тепловой карты, удовлетворяющим пороговому условию.[005] In accordance with one or more embodiments of the present invention, the non-volatile computer-readable medium described in the example may contain instructions, when executed by the data processing device, the data processing device: obtains a training data set containing several document images, each of several images of the document is compared with the corresponding metadata that defines the field of the document containing the variable text; generates, by processing several document images, the first heat map represented by a data structure containing several heat map elements corresponding to several document image pixels, each heat map element storing a counter of a certain number of document images, in which the document field contains a document image pixel associated with heat map element; receives an image of the input document; defines, within the input document image, a candidate region containing the document field, wherein the candidate region contains several input document image pixels corresponding to heat map elements that satisfy the threshold condition.
[006] В соответствии с одним или несколькими вариантами реализации настоящего изобретения способ, описанный в примере, может включать в себя: получение набора данных для обучения, содержащего несколько документов, причем каждый из нескольких документов соотносится с несколькими размеченными пользователем полями; для данного поля из нескольких размеченных пользователем полей в данном документе из нескольких документов, установление того, повторяется ли в одном или нескольких дополнительных документах существующая в данном документе конкретная комбинация относительных положений одного или нескольких дополнительных размеченных пользователем полей относительно данного поля; указание неправильности выделения данного поля, если установлено, что конкретная комбинация не повторяется в любых дополнительных документах; установление наличия в двух или более других документах другой комбинации относительных положений дополнительных одного или нескольких полей, размеченных пользователем, относительно данного поля, если установлено, что конкретная комбинация повторяется в одном или нескольких дополнительных документах, причем указание данного поля как размеченного правильно, если установлено, что другая комбинация не существует в двух или более других документах; и указание данного поля как размеченного непоследовательно, если установлено, что данная комбинация существует в двух или более других документах. [006] In accordance with one or more embodiments of the present invention, the method described in the example may include: obtaining a training data set containing multiple documents, each of the multiple documents being associated with multiple user-labeled fields; for a given field of multiple user-marked fields in a given document of multiple documents, determining whether one or more additional documents repeat a particular combination of relative positions of one or more additional user-marked fields relative to the given field in the given document; an indication of the incorrect selection of this field, if it is established that a particular combination is not repeated in any additional documents; establishing the presence in two or more other documents of another combination of relative positions of one or more additional fields marked up by the user, relative to this field, if it is determined that a particular combination is repeated in one or more additional documents, and indicating this field as marked up correctly, if installed, that another combination does not exist in two or more other documents; and indicating a given field as tokenized inconsistently if the given combination is found to exist in two or more other documents.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[007] Настоящее изобретение иллюстрируется на примере, без каких бы то ни было ограничений; его сущность становится понятной при рассмотрении приведенного ниже подробного описания изобретения в сочетании с чертежами, на которых:[007] The present invention is illustrated by way of example, without any limitation; its essence becomes clear when considering the following detailed description of the invention in combination with the drawings, in which:
[008] На Фиг. 1 изображена высокоуровневая компонентная диаграмма иллюстративной системной архитектуры, соответствующая одному или нескольким вариантам реализации настоящего изобретения.[008] In FIG. 1 is a high-level component diagram of an exemplary system architecture in accordance with one or more embodiments of the present invention.
[009] На Фиг. 2 показана блок-схема высокого уровня примерного способа обнаружения полей в документе, соответствующая одному или нескольким вариантам реализации настоящего изобретения. [009] In FIG. 2 is a high-level flow diagram of an exemplary method for detecting fields in a document in accordance with one or more embodiments of the present invention.
[0010] На Фиг. 3 показана блок-схема различных компонент примерной системы обнаружения полей в документе, соответствующая одному или нескольким вариантам реализации настоящего изобретения.[0010] In FIG. 3 is a block diagram of various components of an exemplary document field detection system in accordance with one or more embodiments of the present invention.
[0011] На Фиг. 4А–4В показаны примеры тепловых карт, использованных при выполнении обнаружения полей в документе, соответствующие одному или нескольким вариантам реализации настоящего изобретения.[0011] In FIG. 4A-4B show examples of heat maps used in performing field detection on a document in accordance with one or more embodiments of the present invention.
[0012] На Фиг. 5 показан иллюстративный пример оценки внутреннего формата поля, соответствующий одному или нескольким вариантам реализации настоящего изобретения.[0012] In FIG. 5 shows an illustrative example of an internal field format evaluation in accordance with one or more embodiments of the present invention.
[0013] На Фиг. 6 показан иллюстративный пример документов с обнаруженными полями, соответствующий одному или нескольким вариантам реализации настоящего изобретения. [0013] In FIG. 6 shows an illustrative example of field detected documents in accordance with one or more embodiments of the present invention.
[0014] На Фиг. 7 показана блок-схема примерного способа обнаружения полей в документе, соответствующая одному или нескольким вариантам реализации настоящего изобретения.[0014] In FIG. 7 is a flow diagram of an exemplary method for detecting fields in a document in accordance with one or more embodiments of the present invention.
[0015] На Фиг. 8 изображена примерная компьютерная система, которая может выполнять любой из описанных в настоящей заявке способов, соответствующих одному или нескольким вариантам реализации настоящего изобретения.[0015] In FIG. 8 depicts an exemplary computer system that can perform any of the methods described herein in accordance with one or more embodiments of the present invention.
ОПИСАНИЕ ИЗОБРЕТЕНИЯDESCRIPTION OF THE INVENTION
[0016] Описываются варианты применения для обнаружения поля документа. «Поле» относится к участку внутри документа (например, прямоугольный участок), таким образом, что этот участок обозначается как местоуказатель, куда могут быть внесены переменные данные, создавая тем самым новый экземпляр типа документа (например, счет-фактура, поручение и т. д.). Поля, как правило, встречаются в документах-формах. В документе могут быть различные поля, такие как текстовые поля (содержащие цифры, числа, буквы, слова, предложения), графические поля (содержащие логотип или любое другое изображение), таблицы (содержащие строки, столбцы, ячейки) и так далее. [0016] Applications for document field detection are described. "Field" refers to an area within a document (e.g., a rectangular area), such that this area is designated as a placeholder where variable data can be entered, thereby creating a new instance of the document type (e.g., invoice, order, etc.). d.). Fields are usually found in form documents. A document can have various fields such as text fields (containing numbers, numbers, letters, words, sentences), graphic fields (containing a logo or any other image), tables (containing rows, columns, cells) and so on.
[0017] В настоящей заявке «электронный документ» (также называемый просто «документом» в настоящей заявке) может означать любой документ, изображение которого может быть доступно для вычислительной системы. Изображением может быть отсканированное изображение, сфотографированное изображение или любое другое отображение документа, которое может быть преобразовано в форму данных, доступную для компьютера. Например, «электронный документ» может относиться к файлу, содержащему один или несколько элементов цифрового содержимого, которые могут быть визуально отображены для обеспечения визуального представления электронного документа (например, на дисплее или в печатном виде). В соответствии с различными вариантами применения настоящего изобретения документ может соответствовать любому подходящему электронному формату файла, такому как PDF, DOC, ODT, JPEG и др. [0017] In this application, "electronic document" (also referred to simply as "document" in this application) can mean any document whose image can be accessed by a computing system. An image can be a scanned image, a photographed image, or any other representation of a document that can be converted into a computer-accessible data form. For example, an "electronic document" may refer to a file containing one or more digital content items that can be visually displayed to provide a visual representation of the electronic document (eg, on a display or in print). In accordance with various applications of the present invention, the document may conform to any suitable electronic file format such as PDF, DOC, ODT, JPEG, etc.
[0018] «Документ» может представлять собой финансовый, юридический или любой другой документ, например, документ, созданный путем заполнения полей алфавитно-цифровыми символами (например буквами, словами, цифрами) или изображениями. «Документ» может представлять собой документ, который распечатан, набран или написан от руки (например путем заполнения стандартной формы). «Документ» может представлять собой документ-форму, который имеет различные поля, такие как текстовые поля (содержащие цифры, числа, буквы, слова, предложения), графическое поле (содержащее логотип или любое другое изображение), таблицы (имеющие строки, столбцы, ячейки) и так далее. Примеры различных типов документов, которые имеют поля, включают в себя договоры, счета-фактуры, финансовые документы, визитные карточки, удостоверения личности, заявки на кредиты, приказы/выписки, бухгалтерские документы, отчетные документы, отчеты о патентном поиске, различные бланки компании и т. д.[0018] A "document" can be a financial, legal, or any other document, such as a document created by filling fields with alphanumeric characters (eg, letters, words, numbers) or images. A "document" may be a document that is printed, typed, or handwritten (eg, by filling out a standard form). A "document" may be a form document that has various fields such as text fields (containing numbers, numbers, letters, words, sentences), a graphic field (containing a logo or any other image), tables (having rows, columns, cells) and so on. Examples of different types of documents that have fields include contracts, invoices, financial documents, business cards, identification cards, loan applications, orders/statements, accounting documents, reporting documents, patent search reports, various company letterheads, and etc.
[0019] Поля можно найти в различных видах документов, таких как счета-фактуры, финансовые документы, визитные карточки, удостоверения личности, заявления на получение кредита и т. д. Оптическое распознавание символов (OCR) такого документа может включать в себя предварительный этап определения всех полей, содержащихся в документе, который может быть выполнен нейронными сетями, прошедшими обучение на большом числе (например тысячах) образцов документов, включающих в себя поля. Однако такой подход не обеспечивает обнаружения полей с достаточной точностью для различных типов документов, использующих универсальные образцы документов, поскольку документы могут существенно отличаться друг от друга. Таким образом, для обучения нейронных сетей может потребоваться большое количество документов каждого типа. Такие способы обнаружения полей требуют длительной и обширной подготовки с большим количеством операций, выполняемых вручную, не обладают гибкостью и потенциально могут приводить к разглашению конфиденциальных данных. Более того, эти способы также требуют точной разметки каждого документа. Однако, когда для разметки документов используются операции, выполняемые вручную, пользователи часто пропускают или неправильно размечают поля, что делает документы непригодными для использования в качестве обучающих образцов. Кроме того, чтобы устранить последствия такой неправильной разметки, пользователю может потребоваться повторить разметку или разметить дополнительные документы того же типа, чтобы начать обучение заново. В некоторых случаях пользователь также не может выполнить разметку правильно, так как он может не знать, где находится конкретное поле в документе, или поле не определяется описательным словом. Например, пользователь может иметь намерение разметить поле «total», которое, как ожидается, будет заполнено числом. Однако если поле не определяется словом «total», или пользователь не может найти слово «total», или в силу других причин, пользователь может вместо этого разметить другое поле, содержащее символы, визуально сходные с ожидаемым содержимым поля «total», например, другое поле, содержащее цифры. [0019] Fields can be found in various types of documents such as invoices, financial documents, business cards, identity cards, loan applications, etc. Optical Character Recognition (OCR) of such a document may include a preliminary step of determining all fields contained in a document, which can be performed by neural networks trained on a large number (for example, thousands) of document samples that include fields. However, this approach does not provide field detection with sufficient accuracy for various types of documents using universal document templates, since documents can differ significantly from each other. Thus, a large number of documents of each type may be required to train neural networks. These field discovery methods require lengthy and extensive training with many manual steps, lack flexibility, and potentially expose sensitive data. Moreover, these methods also require precise markup for each document. However, when manual operations are used to mark up documents, users often skip or mark up fields incorrectly, making the documents unsuitable for use as training samples. In addition, in order to correct the consequences of such incorrect markup, the user may need to repeat the markup or markup additional documents of the same type in order to start learning again. In some cases, the user also cannot markup correctly because they may not know where a particular field is in the document, or the field is not defined by a descriptive word. For example, the user may have the intention to mark up a "total" field that is expected to be filled with a number. However, if the field is not defined by the word "total", or the user cannot find the word "total", or for other reasons, the user may instead mark up another field containing characters visually similar to the expected content of the "total" field, such as another field containing numbers.
[0020] Варианты реализации настоящего изобретения устраняют вышеупомянутые и другие недостатки, обеспечивая механизмы обнаружения полей в документе без необходимости разметки большого количества документов вручную для обучения нейронной сети. Механизмы могут обеспечить быстрое обучение обучаемой модели на небольшом наборе данных, например, наборе данных, включающем не более десяти документов конкретного типа с размеченными полями. После обучения модели для конкретного класса документов она используется для обнаружения полей в других пользовательских документах того же класса.[0020] Embodiments of the present invention address the aforementioned and other disadvantages by providing mechanisms for detecting fields in a document without having to mark up a large number of documents manually to train a neural network. Mechanisms can provide fast training of a trainable model on a small data set, for example, a data set that includes no more than ten documents of a particular type with labeled fields. After the model has been trained for a particular class of documents, it is used to detect fields in other custom documents of the same class.
[0021] В одном из вариантов применения варианты реализации настоящего изобретения обеспечивают обучение нейронной сети с использованием небольшого количества размеченных документов, которые будут использоваться в качестве обучающих документов. Эти документы могут содержать метаданные, определяющие одно или несколько полей документа на основе пользовательской разметки, указывающей на расположение соответствующих полей документа. Обнаружение полей основано на определении пространственного распределения полей по отношению к визуальным опорным элементам в обучающих документах. После получения изображений документов получается текст из изображений документов, а также различные знаки, в том числе слова, из текста в изображениях документов. Опорные элементы на изображении документа могут быть использованы для определения расположения размеченных полей. Любой структурный элемент, относящийся к макету документа, может быть использован в качестве опорного. Опорный элемент может включать в себя предопределенные визуальные элементы, такие как предопределенное слово (например, ключевые слова, слова пользовательского словаря), предопределенный графический элемент (например, визуальный разделитель, логотип) и т. д. на изображениях документа. Опорные элементы на изображениях документа могут быть определены путем сопоставления слов из пользовательского словаря и (или) слов, которые появляются на данном документе (или в корпусе документов) с частотой, превышающей предопределенную пороговую частоту. Например, счет-фактура может содержать название компании, итоги, сроки оплаты и т. д. в качестве опорных элементов в зависимости от частоты, с которой эти ключевые слова могут появляться в документах данного типа. Расположение различных полей документа может быть определено относительно опорного элемента. [0021] In one application, embodiments of the present invention provide training to a neural network using a small number of markup documents to be used as training documents. These documents may contain metadata that defines one or more document fields based on custom markup that indicates the location of the corresponding fields in the document. Field detection is based on determining the spatial distribution of fields in relation to visual references in training documents. After receiving the document images, the text is obtained from the document images, as well as various characters, including words, from the text in the document images. Reference elements on the document image can be used to determine the location of marked fields. Any structural element related to the layout of the document can be used as a reference. An anchor element may include predefined visual elements such as a predefined word (eg, keywords, custom dictionary words), a predefined graphic element (eg, visual divider, logo), etc. on document images. Anchors in document images can be determined by matching words from a user dictionary and/or words that appear on a given document (or body of documents) at a frequency greater than a predetermined threshold frequency. For example, an invoice might contain the company name, totals, due dates, etc. as pivots, depending on the frequency with which these keywords may appear in this type of document. The location of the various fields of the document can be determined relative to the reference element.
[0022] Для каждого поля в наборе данных для обучения может быть сформирована тепловая карта по каждому опорному элементу. «Тепловая карта» представляет собой набор числовых элементов, составленных таким образом, чтобы значение каждого элемента определялось конкретной функцией, вычисляемой по координатам изображения, отражающим положение элемента. В некоторых вариантах применения тепловая карта может быть представлена прямоугольной матрицей, каждый элемент которой соответствует конкретному пикселю поблизости от опорного элемента таким образом, что значение, связанное с каждым пикселем, отражает количество обучающих документов, в которых данное поле содержит этот пиксель. Числовые значения элементов тепловой карты могут быть кодированы цветом для визуализации (отсюда и пошло название термина), однако этот шаг был бы излишним для обучения нейронных сетей, в которых используются не цвета, а числовые значения. [0022] For each field in the training dataset, a heat map can be generated for each pivot. "Heat map" is a set of numerical elements, compiled in such a way that the value of each element is determined by a specific function, calculated from the image coordinates that reflect the position of the element. In some applications, the heat map may be represented by a rectangular matrix, each element of which corresponds to a particular pixel in the vicinity of the reference element, such that the value associated with each pixel reflects the number of training documents in which that field contains that pixel. The numeric values of the heatmap elements can be color-coded for visualization (hence the name of the term), but this step would be redundant for training neural networks that use numeric values instead of colors.
[0023] Соответственно, на обучающем этапе могут быть сформированы тепловые карты относительно небольшого набора обучающих документов, которые сопровождаются метаданными («разметкой») с указанием положений и названий полей документа. Затем сформированные тепловые карты можно будет использовать для определения положений полей в других документах. В некоторых вариантах применения система, работающая в соответствии с вариантами реализации настоящего изобретения, может определить в изображении входного документа область-кандидат на каждое интересующее поле на основе тепловых карт, построенных для этого поля в отношении одного или нескольких опорных элементов. Каждая определенная область-кандидат будет включать в себя пиксели изображения входного документа, соответствующие элементам тепловой карты, удовлетворяющим пороговому условию (например когда их соответствующие значения превышают пороговое значение, когда выбрана заранее определенная доля пикселей, имеющих наибольшие значения, и т. д.). [0023] Accordingly, at the training stage, heat maps of a relatively small set of training documents can be generated, which are accompanied by metadata ("markup") indicating the positions and names of the fields of the document. Then the generated heat maps can be used to determine the positions of fields in other documents. In some applications, a system operating in accordance with embodiments of the present invention may determine a candidate region for each field of interest in an input document image based on heat maps generated for that field against one or more reference elements. Each defined candidate area will include input document image pixels corresponding to heatmap elements that satisfy a threshold condition (e.g., when their respective values exceed a threshold, when a predetermined proportion of pixels having the highest values is selected, etc.).
[0024] Выбранные области-кандидаты могут затем рассматриваться как положения соответствующих полей, например, путем применения технологий оптического распознавания символов (OCR) к фрагментам снимков, лежащим внутри областей-кандидатов. В некоторых вариантах применения извлеченное содержимое каждого поля документа можно оценивать с помощью BPE (Byte Pair Encoding, кодирование пар байтов) токенов, оценивая различия (например евклидовы расстояния) между BPE токеном, представляющим извлеченное содержимое данного поля входного документа, и BPE токенами, вычисленными для этого же поля в обучающих документах, BPE токен относится к числовому вектору, представляющему входной текст. В некоторых вариантах применения вектор может быть представлен в виде эмбеддинга промежуточного представления входного текста так, что в промежуточном представлении может использоваться искусственный алфавит, каждый символ которого может кодировать подстроку из одного или нескольких символов входного текста, как более подробно описано ниже. Встраиваемые данные формируются таким образом, что семантически близкие входные данные будут выдавать численно близкие встраиваемые данные.[0024] The selected candidate regions can then be considered as the positions of the respective fields, for example, by applying optical character recognition (OCR) techniques to the image fragments lying within the candidate regions. In some applications, the extracted content of each document field can be evaluated using BPE (Byte Pair Encoding) tokens, evaluating the differences (e.g., Euclidean distances) between the BPE token representing the extracted content of a given field in the input document and the BPE tokens computed for same field in the tutorials, the BPE token refers to a numeric vector representing the input text. In some applications, a vector may be represented by embedding an intermediate representation of the input text such that the intermediate representation may use an artificial alphabet, each character of which may encode a substring of one or more characters of the input text, as described in more detail below. Embedded data is formed in such a way that semantically similar input data will produce numerically close embedded data.
[0025] Соответственно, если вычисленное расстояние между BPE токеном, представляющим содержимое, извлеченное из поля-кандидата, и BPE токеном(и), представляющими одно и то же поле в наборе данных для обучения, меньше порогового значения, то вероятность того, что это поле будет обнаружено правильно, относительно велика, и поле кандидата может быть принято для извлечения информации. Описанные в настоящей заявке технологии позволяют автоматически обнаруживать поле в документах с помощью искусственного интеллекта. Описанные в настоящей заявке системы и способы представляют собой значительные улучшения в обеспечении более точного и эффективного обнаружения полей в документах. В способах применяются обучаемые модели, которые могут быть обучены на небольшом количестве (например, менее десяти) образцов документов обнаруживать и классифицировать поля, обеспечивая при этом высокое качество. Эти способы позволяют ускорить и повысить качество проверки данных. Кроме того, способы могут также служить руководством для пользователей, если пользователь мог неточно разметить поле или забыть его разметить. Способы позволяют выявить ошибочную разметку документа, выполненную пользователем, а также эффективно исправить и восстановить отсутствующую разметку полей. Кроме того, данные способы позволяют выбрать подмножество размеченных документов, содержащих полную и последовательную разметку, что, в свою очередь, может позволить обучить дополнительные, более точные модели. [0025] Accordingly, if the calculated distance between the BPE token representing the content extracted from the candidate field and the BPE token(s) representing the same field in the training dataset is less than a threshold value, then the probability that this the field will be detected correctly, relatively large, and the candidate field can be taken to extract information. The technologies described in this application allow automatic field detection in documents using artificial intelligence. The systems and methods described herein represent significant improvements in providing more accurate and efficient field detection in documents. The methods employ trainable models that can be trained on a small number (eg, less than ten) of sample documents to detect and classify fields while maintaining high quality. These methods allow you to speed up and improve the quality of data verification. In addition, the methods may also serve as a guide to users if the user may have inaccurately labeled a field or forgotten to label it. The methods make it possible to detect erroneous document markup performed by the user, as well as to effectively correct and restore the missing field markup. In addition, these methods allow you to select a subset of markup documents containing complete and consistent markup, which, in turn, can allow you to train additional, more accurate models.
[0026] Различные варианты реализации вышеупомянутых способов и систем подробно описаны ниже в виде примеров, а не ограничений.[0026] Various embodiments of the aforementioned methods and systems are detailed below by way of example and not limitation.
[0027] На Фиг. 1 изображена высокоуровневая компонентная диаграмма иллюстративной системной архитектуры 100, соответствующая одному или нескольким вариантам реализации настоящего изобретения. Системная архитектура 100 включает в себя вычислительное устройство 120, хранилище 160 и сервер 150, подключенный к сети 130. Сеть 130 может быть общедоступной сетью (например, интернет), частной сетью (например локальная вычислительная сеть (LAN) или глобальная вычислительная сеть (WAN)), или их комбинацией.[0027] In FIG. 1 is a high-level component diagram of an
[0028] Вычислительное устройство 120 может выполнять обнаружение полей на изображении документа. В одном из вариантов применения вычислительное устройство 120 может представлять собой настольный компьютер, ноутбук, смартфон, планшетный компьютер, сервер, сканер или любое подходящее вычислительное устройство, способное реализовать описанные в настоящей заявке технологии. Вычислительное устройство 120 может получать одно или несколько изображений. Например, изображение 110 может быть получено вычислительным устройством 120. Изображение 110 может включать в себя изображение документа, страницы документа или части страницы документа. Страница документа или часть страницы документа, представленная на изображении 110, может включать в себя одно или несколько полей с переменным текстом. В примере может потребоваться обнаружение различных полей документа внутри документа. Изображение 110 может быть предоставлено в качестве входного для вычислительного устройства 120. [0028] Computing device 120 may perform field detection on a document image. In one application, computing device 120 may be a desktop computer, laptop, smartphone, tablet computer, server, scanner, or any suitable computing device capable of implementing the technologies described herein. Computing device 120 may receive one or more images. For example, image 110 may be received by computing device 120. Image 110 may include an image of a document, a page of a document, or a portion of a page of a document. The document page or portion of a document page shown in image 110 may include one or more variable text fields. The example might want to detect various document fields within a document. Image 110 may be provided as input to computing device 120.
[0029] В одном из вариантов применения вычислительное устройство 120 может включать в себя детектор 122 полей. Детектор 122 полей может включать в себя инструкции, хранящиеся на одном или нескольких материальных машиночитаемых носителях информации вычислительного устройства 120 и исполняемые одним или несколькими устройствами обработки вычислительного устройства 120. В одном из вариантов применения детектор 122 полей может формировать в качестве выходных данных некоторое количество обнаруженных полей, содержимое, извлеченное из обнаруженных полей, и (или) выходной документ с некоторым количеством обнаруженных полей и содержимым, соответствующим обнаруженным полям. В одном из вариантов применения детектор 122 полей может использовать обученную модель 140 машинного обучения, которая обучена обнаружению полей в изображении 110. Модель 140 машинного обучения можно обучать с помощью обучающего набора изображений. В некоторых случаях модель 140 машинного обучения может быть частью детектора 122 полей или же доступ к ней можно получить на другой машине (например, на сервере 150) посредством детектора 122 полей. На основе выходных данных (например, тепловых карт, соответствующих пикселям изображения) обученной модели 140 машинного обучения, детектор 122 полей может определить на входном изображении 110 область-кандидат, которая обнаруживается как конкретное поле. Детектор 122 полей может также извлекать слова, относящиеся к обнаруженному полю. [0029] In one application, computing device 120 may include a field detector 122. Field detector 122 may include instructions stored on one or more tangible computer-readable storage media of computing device 120 and executed by one or more processing devices of computing device 120. In one application, field detector 122 may generate as output a number of detected fields. , content extracted from the detected fields, and/or an output document with some number of detected fields and content matching the detected fields. In one application, field detector 122 may use a trained machine learning model 140 that is trained to detect fields in image 110. Machine learning model 140 may be trained with a training set of images. In some cases, the machine learning model 140 may be part of the field detector 122, or it may be accessed on another machine (eg, server 150) through the field detector 122. Based on the output (eg, heat maps corresponding to image pixels) of the trained machine learning model 140, the field detector 122 may determine a candidate region in the input image 110 that is detected as a particular field. Field detector 122 may also extract words related to the detected field.
[0030] Сервер 150 может представлять собой сервер, установленный в стойку, может быть компьютером-маршрутизатором, персональным компьютером, карманным персональным компьютером, мобильным телефоном, ноутбуком, планшетным компьютером, фотоаппаратом, видеокамерой, нетбуком, настольным компьютером, медиацентром или любой комбинацией вышеперечисленного. Сервер 150 может включать в себя устройство 151 обучения обнаружению полей. Модель 140 машинного обучения может обозначать образцы модели, созданные устройством 151 обучения обнаружению полей с использованием обучающих данных, которые включают в себя обучающие входные данные и соответствующие заданные выходные данные (правильные ответы на соответствующие обучающие входные данные). Во время обучения можно найти закономерности в обучающих данных, которые привязывают обучающие входные данные к заданному выходному результату (ответ, который необходимо предсказать), и впоследствии используются моделью 140 машинного обучения для будущих предсказаний. Как более подробно описано ниже, модель 140 машинного обучения может состоять, например, из одного уровня линейных или нелинейных операций (например, метод опорных векторов Support Vector Machine [SVM]) или может быть глубокой сетью, т. е. модель машинного обучения, состоящая из нескольких уровней нелинейных операций). Примерами глубоких сетей являются нейронные сети, включая сверточные нейронные сети, рекуррентные нейронные сети с одним или несколькими скрытыми слоями, а также полностью связанные нейронные сети.[0030] The server 150 may be a rack-mounted server, a router computer, a personal computer, a personal digital assistant, a mobile phone, a laptop, a tablet computer, a camera, a camcorder, a netbook, a desktop computer, a media center, or any combination of the above. The server 150 may include a field detection learner 151 . The machine learning model 140 may denote model instances created by the field detection learning device 151 using training data that includes training inputs and corresponding given outputs (correct responses to corresponding training inputs). During training, patterns can be found in the training data that tie the training input to a given output (the answer to be predicted) and are subsequently used by the machine learning model 140 for future predictions. As described in more detail below, the machine learning model 140 may consist of, for example, a single layer of linear or non-linear operations (e.g., a Support Vector Machine [SVM]) or may be a deep network, i.e., a machine learning model consisting of from several levels of nonlinear operations). Examples of deep networks are neural networks, including convolutional neural networks, recurrent neural networks with one or more hidden layers, and fully connected neural networks.
[0031] Модель 140 машинного обучения может быть обучена устанавливать вероятность принадлежности пикселей изображений к определенному полю документа, как будет описано ниже. После обучения модели 140 машинного обучения ее можно подключить к детектору 122 полей для анализа изображения 110. Например, детектор 122 полей может запросить тепловые карты для некоторого количества ключевых слов на изображении 110. В некоторых примерах модель 140 может состоять из сверточной нейронной сети. Детектор 122 полей может получить один или несколько выходных результатов от обученной модели 140 машинного обучения. Выходной результат может представлять собой набор гипотез о расположении полей документа на основе тепловых карт. [0031] The machine learning model 140 can be trained to determine the probability that image pixels belong to a certain document field, as will be described below. Once machine learning model 140 has been trained, it can be connected to field detector 122 to analyze image 110. For example, field detector 122 may request heat maps for a number of keywords in image 110. In some examples, model 140 may consist of a convolutional neural network. The field detector 122 may receive one or more outputs from the trained machine learning model 140. The output result can be a set of hypotheses about the location of document fields based on heat maps.
[0032] Хранилище 160 может представлять собой постоянное хранилище, способное хранить изображение 110, тепловые карты, опорные элементы и точки, гипотезы о полях документа, обнаруженные поля и выходные изображения, а также структуры данных для присвоения меток, организации и индексации изображения 110. Хранилище 160 может размещаться на одном или нескольких устройствах хранения, таких как основная память, магнитные или оптические диски, ленты или жесткие диски, NAS, SAN и так далее. Несмотря на то, что хранилище 160 изображено отдельно от вычислительного устройства 120, в одном варианте применения хранилище 160 может быть частью вычислительного устройства 120. В некоторых вариантах применения хранилище 160 может быть сетевым файловым сервером, в то время как в других вариантах применения хранилище 160 может быть другим типом постоянного хранилища, таким как объектно-ориентированная база данных, реляционная база данных и т. д., которое может быть размещено на сервере или на одной или нескольких различных машинах, соединенных по сети 130 или подключенных к ней.[0032] Store 160 may be a persistent store capable of storing image 110, heat maps, pivots and points, document margin hypotheses, detected margins and output images, and data structures for labeling, organizing, and indexing image 110. Store 160 may reside on one or more storage devices such as main memory, magnetic or optical disks, tapes or hard drives, NAS, SAN, and so on. Although storage 160 is depicted separately from computing device 120, in one application, storage 160 may be part of computing device 120. In some applications, storage 160 may be a network file server, while in other applications, storage 160 may be another type of persistent storage, such as an object-oriented database, relational database, etc., that can be hosted on a server or on one or more different machines connected to or connected to the network 130.
[0033] На Фиг. 2 показана блок-схема высокого уровня примерного способа 200 обнаружения полей в документе, соответствующая одному или нескольким вариантам реализации настоящего изобретения. С высокого уровня работа системы может быть логически разделена на 2 этапа. Первый этап — этап 220 обучения, второй этап — этап 230 обнаружения поля входного документа. Этап 220 обучения может принимать в качестве входных данных различные документы 210, содержащие различные поля. На примере Фиг. 2 документы 210 включают в себя шаблон 212 банковского счета, сберегательный вклад 214, квитанцию 216, счет-фактуру 218 и др. В каждом из документов 210 содержится несколько полей. Например, шаблон 212 банковского счета включает в себя поля в виде таблицы 212a с двумя столбцами и несколькими строками, счет 218 включает в себя графическое поле с логотипом 218a, текстовое поле с цифрами 218b и др. При получении документов 210 на этапе 220 обучения каждый тип документов обрабатывается, чтобы система могла обучаться по разметке полей в этих документах. Одна или несколько моделей могут быть получены на этапе 220 обучения для обнаружения полей в документах. На этапе 230 обнаружения полей входного документа система обрабатывает входной документ с целью выявления структуры входного документа, обнаружения поля (полей) внутри входного документа на основе моделей, полученных на этапе 220 обучения, и извлекает поля с его содержимым. [0033] In FIG. 2 shows a high-level block diagram of an
[0034] На Фиг. 3 показана блок-схема различных компонент примерной системы 300 обнаружения полей в документе, соответствующая одному или нескольким вариантам реализации настоящего изобретения. В некоторых вариантах применения пользователь, например, человек-пользователь или пользователь-компьютерная система, может определить небольшое количество документов, содержащих одно или несколько полей. Пользователь может определить каждый тип документа, в котором выполняется обнаружение поля с помощью системы 300. В одном варианте применения пользователь может разметить поля в определенных документах. Для разметки поля пользователь может рисовать линии, круги, рамки, прямоугольники или другие фигуры, выделять или иным образом создавать разметку на части документа или вокруг нее, чтобы обозначить участок как определенное поле. Пользователь может разметить несколько полей, на которых нужно провести обучение для их обнаружения по каждому документу, например, поля «Total» и «Адрес». Кроме того, пользовательская разметка может включать в себя также определение размеченных полей (например, «Дата», «Total» и т. д.). «Небольшое количество» в том виде, в каком оно используется в настоящей заявке, может представлять собой, например, 3–5 документов. В примере пользователем размечено не более десяти документов определенного типа. Пользователь может разметить все поля в документе или разметить выборочные поля на документе. Каждое поле определяется и размечается независимо от других полей документа. [0034] In FIG. 3 is a block diagram of various components of an exemplary document
[0035] В некоторых вариантах применения пользователь может затем загрузить определенные документы в систему 300 в виде электронных документов. Электронными документами могут быть отсканированные изображения, сфотографированные изображения или любое другое отображение документа, которое может быть преобразовано в форму данных, доступную для компьютера. Загруженные документы в настоящей заявке называются изображениями 310 документов. В одном варианте применения пользователь может загружать документы, которые уже содержат размеченные поля. В другом варианте применения пользователь может осуществлять электронную разметку изображений 310 документов с помощью пользовательского интерфейса системы 300. Например, используя интерфейс пользователя, пользователь может указать (например, щелчком мыши, перетаскиванием, другими жестами и т. п.) на часть документа, содержащую требуемое слово, числа и т. д., и в дальнейшем система может автоматически разметить окружающие границы поля. В некоторых вариантах применения полученные документы могут быть автоматически сгруппированы в различные предварительные кластеры таким образом, чтобы в каждом кластере были похожие документы, что, в свою очередь, может помочь пользователю правильно разметить поля. Система 300 связывает каждое изображение документа из изображений 310 документа с метаданными, определяющими конкретное поле документа по разметке на изображении документа. В некоторых примерах метаданные определяют поле документа, содержащее текст переменной. В некоторых вариантах применения система 300 относит каждое изображение 310 документа к конкретному классу документа с помощью блока 320 классификации документов. Например, изображения документа могут быть отнесены к конкретному классу на основании сходства характеристик документов. В одном из примеров изображения документа могут быть классифицированы на основании имени продавца, связанного с документом. Для каждого класса в системе 300 собирается небольшая подборка изображений документа (например 2–6 изображений документа). [0035] In some applications, the user may then upload certain documents to the
[0036] В некоторых вариантах применения подблок 330 выбора слов системы 300 представляет собой подмодуль, использующий эвристический алгоритм для анализа текста документа. Текст может быть проанализирован по выбранным словам в макете документа на основе типов символов, таких как буквы, цифры, разделители и т. д. Эвристика может включать в себя решение задач экспериментальным методом и (или) методом проб и ошибок. Типичный эвристический алгоритм выводится с помощью некоторой функции, которая включается в систему для поиска решения, часто с использованием деревьев решений. Алгоритм может включать в себя шаги по настройке весов ветвей дерева решений в зависимости от вероятности того, что ветвь приведет к узлу конечной цели. Здесь эвристика может быть использована для разделения строк текста на группы одного типа символов. Например, каскадная классификация текстовых фрагментов в документе может быть представлена с помощью графа. Текстовые фрагменты являются узлами графа. Узлы графа соединяются ребрами (логические связи между текстовыми фрагментами). Граф может быть проанализирован и модифицирован для дальнейшей разбивки текстовых фрагментов, которые были изначально определены в каждом узле. Например, фрагмент текста, содержащий как буквы, так и цифры, можно разделить на два новых узла, чтобы отделить буквы от цифр. В одном варианте применения блок 330 получает текст из изображения 310 документа и разделяет текст документа на непрерывную подпоследовательность символов. Подпоследовательности символов могут относиться к одному и тому же типу символов. Например, типы символов могут включать в себя буквы, цифры и разделители. В подблоке 330 можно разделить текст на отдельные слова. В подблоке 330 можно получить все возможные слова в изображении 310 документа. [0036] In some applications, the word selection sub-unit 330 of the
[0037] В некоторых вариантах применения система 300 использует блок 340 классификации компонент полей для классификации каждого слова в изображении 310 документа в зависимости от вероятности включения этого слова в конкретное поле. В некоторых вариантах применения опорные элементы на изображении документа используются для определения расположения поля документа. Любой структурный элемент, относящийся к макету документа, может быть использован в качестве опорного. Опорный элемент может включать в себя предопределенное слово (например, ключевое слово), предопределенный графический элемент (например визуальный разделитель, логотип) и т. д. В некоторых вариантах применения набор опорных элементов может быть получен с помощью обучающей выборки изображений документа. В некоторых примерах на основе обучающих документов может быть сформирован специальный словарь «часто встречающихся слов». Часто встречающиеся слова — это список слов, сгруппированных по частоте возникновения в составе корпуса документов (например, обучающие образцы документов). Например, часто встречающиеся слова могут быть сгруппированы в виде рейтингового списка. В некоторых примерах опорные элементы на изображениях документа могут быть определены путем сопоставления часто встречающихся слов, появляющихся на одном или нескольких изображениях документа, с частотой, превышающей предопределенную пороговую частоту. В некоторых примерах опорные элементы могут быть определены по пользовательским словарям слов, различным разделителям словесных символов, штампам и другим предопределенным текстовым и (или) визуальным элементам на изображении документа. [0037] In some applications,
[0038] Опорный элемент может действовать как точка фокусировки, по отношению к которой определяется расположение поля документа. Например, центр прямоугольного участка, охватывающего часто встречающееся слово на изображении документа, может быть определен как расположение опорного элемента на этом изображении документа. В других примерах любое другое место, соответствующее опорному элементу, может быть обозначено как место расположения опорного элемента. На примере Фиг. 2 в качестве расположения опорного элемента «totaltotal» можно использовать расположение (например центр) прямоугольного участка 218с, окружающего слово «totaltotal» в документе 218. [0038] The reference element may act as a focal point with respect to which the location of the document margin is determined. For example, the center of a rectangular area enclosing a frequently occurring word in a document image may be defined as the location of the reference element in that document image. In other examples, any other location corresponding to the anchor may be designated as the location of the anchor. On the example of Fig. 2, the location (e.g. center) of the
[0039] В некоторых вариантах применения расположение поля документа (также называемого здесь «областью поля») может определяться по отношению к опорному элементу. На примере Фиг. 2 расположение поля документа (например расположение номеров 218b), соответствующего опорному элементу «total», может определяться по отношению к расположению опорного элемента «totaltotal» в документе. Для каждого изображения документа в обучающем наборе изображений документа (например изображения 310 документа) расположение поля документа можно получить на основе разметки изображения документа обучающего образца. В одном варианте применения система 300 связывает метаданные с конкретным полем документа на основе разметки пользователя на документе. Метаданные могут определять расположение поля документа относительно опорного элемента. Например, метаданные для конкретного размеченного изображения документа могут указывать на то, что расположение поля документа находится на 50 пикселей вправо от расположения опорного элемента на изображении документа. Расположение поля документа может быть выражено в виде диапазона расположений, количества пикселей и т. д. Расположение поля документа может включать в себя область на изображении документа. Областью может являться участок внутри изображения документа. У области может быть конкретная геометрическая форма, в том числе, например, в виде прямоугольника, четырехугольника, эллипса, круга, иного многоугольника и т. п. Расположение поля документа может относиться к области на изображении документа, содержащегося в поле документа.[0039] In some applications, the location of a document margin (also referred to herein as a "margin area") may be determined in relation to an anchor element. On the example of Fig. 2, the location of the document field (eg, location of
[0040] В некоторых вариантах применения для установления вероятности включения слова на изображении документа в конкретное поле используется тепловая карта. Для каждого заданного поля в наборе данных для обучения может быть сформирована тепловая карта по каждому опорному элементу. «Тепловая карта» представляет собой набор числовых элементов, составленных таким образом, чтобы значение каждого элемента определялось конкретной функцией, вычисляемой по координатам изображения, отражающим положение элемента. В некоторых вариантах применения тепловая карта может быть представлена прямоугольной матрицей в виде таблицы, сетки и т. д. Каждый элемент тепловой карты соответствует конкретному пикселю поблизости от опорного элемента таким образом, что значение, связанное с каждым пикселем, отражает количество обучающих документов, в которых данное поле содержит этот пиксель. Тепловая карта может быть представлена с использованием различных структур данных. Например, тепловая карта может быть представлена с использованием гистограмм, диаграмм, таблиц с ячейками, графов, чертежей и т. д. Тепловая карта — это технология визуализации данных, которая показывает величину явления с использованием цвета в двух измерениях. Числовые значения элементов тепловой карты могут быть кодированы цветом для визуализации (отсюда и пошло название термина), однако этот шаг был бы излишним для обучения нейронных сетей, в которых используются не цвета, а числовые значения.[0040] In some applications, a heat map is used to determine the likelihood of a word in a document image being included in a particular field. For each given field in the training dataset, a heat map can be generated for each pivot. "Heat map" is a set of numerical elements, compiled in such a way that the value of each element is determined by a specific function, calculated from the image coordinates that reflect the position of the element. In some applications, a heat map may be represented by a rectangular matrix in the form of a table, grid, etc. Each element of the heat map corresponds to a specific pixel in the vicinity of the reference element, such that the value associated with each pixel reflects the number of training documents in which this field contains that pixel. A heat map can be represented using various data structures. For example, a heat map can be represented using bar charts, charts, grids, graphs, drawings, etc. A heat map is a data visualization technology that shows the magnitude of a phenomenon using color in two dimensions. The numeric values of the heatmap elements can be color-coded for visualization (hence the name of the term), but this step would be redundant for training neural networks that use numeric values instead of colors.
[0041] В некоторых вариантах применения тепловая карта может быть сформирована для каждого опорного элемента в наборе изображений 310 обучающего документа. Тепловая карта формируется с использованием расположения поля документа относительно опорного элемента на основе метаданных для изображений обучающего документа. Например, расположение поля документа может быть представлено конкретными пикселями на изображении, включенным в рамку, окружающую поле документа, как это определено разметкой на изображении документа. Тепловая карта представлена структурой данных, включающей в себя несколько элементов тепловой карты. Например, тепловую карту можно создать, разделив изображение на прямоугольную сетку с заданным размером ячейки в пикселях. В данном примере сетка представляет собой структуру данных тепловой карты, а ячейки — элементы тепловой карты. Изображение, используемое для тепловой карты, может соответствовать каждому из изображений обучающего документа, а каждый из нескольких элементов тепловой карты может соответствовать каждому из некоторого количества пикселей изображения документа соответствующего изображения обучающего документа. В примере для каждой пары опорных элементов и расположения поля документа в обучающем наборе изображений документа ячейка заполняется значением, равным доле участка, занимаемого областью для поля документа, содержащегося в ячейке. [0041] In some applications, a heat map may be generated for each reference element in the image set 310 of the training document. The heat map is generated using the location of the document field relative to the reference element based on the metadata for images of the training document. For example, the location of a document field may be represented by specific pixels in an image included in a box surrounding the document field, as determined by the markup on the document image. A heat map is represented by a data structure that includes several heat map elements. For example, a heat map can be created by dividing an image into a rectangular grid with a given cell size in pixels. In this example, the grid is a heatmap data structure and the cells are heatmap elements. The image used for the heatmap may correspond to each of the training document images, and each of the multiple heatmap elements may correspond to each of a number of document image pixels of the corresponding training document image. In the example, for each pair of pivots and document field location in the training set of document images, the cell is filled with a value equal to the portion of the area occupied by the area for the document field contained in the cell.
[0042] В одном варианте применения для выбранного опорного элемента, для которого строится тепловая карта, в каждом из изображений обучающего документа устанавливается относительное расположение поля, соответствующего опорному элементу. Например, на гипотетическом изображении первого обучающего документа в 50 пикселях справа от расположения опорного элемента «total» можно найти числовое значение «$1000». Для структуры данных тепловой карты для опорного элемента «total» устанавливается, входит ли каждый пиксель изображения документа на первом изображении, соответствующий каждому элементу тепловой карты (например ячейке), в расположение поля документа, определяемое разметкой на изображении документа. Если какой-либо пиксель изображения документа полностью содержится в расположении поля документа (например в области, покрытой полем документа), элементу тепловой карты, соответствующему этому пикселю изображения документа, присваивается значение «1». Например, значение ячейки устанавливается равным «1», когда ячейка соответствует пикселю изображения в документе, содержащемуся в размеченной части изображения документа, покрывающего область для «$1000». Значение ячейки устанавливается равным «0», если оно соответствует пикселю изображения в документе, не занятому областью поля «$1000». В одном из вариантов применения значение, установленное в ячейке, указывает на количество изображений документа, в котором поле содержит пиксель, соответствующий элементу тепловой карты. Таким образом, элемент тепловой карты хранит счетчик количества изображений документа, в котором поле документа содержит пиксель изображения документа, связанный с элементом тепловой карты.[0042] In one application, for a selected reference element for which a heat map is being built, the relative position of the field corresponding to the reference element is set in each of the images of the training document. For example, in the hypothetical image of the first training document, 50 pixels to the right of the location of the “total” reference element, you can find the numerical value “$1000”. For the heatmap data structure, for the reference element "total", it is set whether each pixel of the document image in the first image corresponding to each element of the heatmap (for example, a cell) is included in the location of the document field, determined by the markup on the document image. If any document image pixel is entirely contained within the document field location (eg, the area covered by the document field), the heatmap element corresponding to that document image pixel is set to "1". For example, the value of a cell is set to "1" when the cell corresponds to an image pixel in the document contained in the marked-up portion of the document image covering the area for "$1000". The cell value is set to "0" if it corresponds to an image pixel in the document that is not occupied by the "$1000" field area. In one application, the value set in a cell indicates the number of images in a document in which the field contains a pixel corresponding to a heatmap element. Thus, the heatmap element stores a counter of the number of document images, in which the document field contains the document image pixel associated with the heatmap element.
[0043] Система 300 продолжает обновлять тепловую карту для выбранного опорного элемента, используя следующее изображение документа в обучающем наборе изображений документа. Значения элементов тепловой карты обновляются, чтобы можно было добавить новые значения, отражающие следующее изображение документа. Например, если значение конкретной ячейки на тепловой карте уже было установлено на «1», а ячейка соответствует пикселю изображения в следующем документе, который содержится в области поля «$1000», то значение ячейки увеличивается на значение «1» и равняется значению «2». Система 300 продолжает агрегацию значений элемента тепловой карты для каждого из изображений документа в обучающем наборе изображений документа для определения пикселей изображения, содержащихся в конкретном поле документа. В некоторых вариантах применения конечной гистограммой относительного расположения выбранного опорного элемента считается среднее арифметическое значений в соответствующих ячейках тепловых карт. [0043]
[0044] В некоторых вариантах применения система 300 может обновлять тепловую карту для выбранного опорного элемента, чтобы она могла включить в себя значения элементов тепловой карты, которые относятся к другому полю документа. То есть для выбранного опорного элемента, для которого строится тепловая карта, определяется расположение другого поля из всех изображений обучающего документа. Расположение определяется относительно выбранного опорного элемента тепловой карты. Например, расположение «invoice date», внесенное относительно опорного элемента «total», можно определить на тепловой карте, установив значение элементов тепловой карты на «1», где элементы тепловой карты соответствуют пикселям изображения, которые содержатся в поле «invoice date» на первом обучающем изображении. Сходным образом значения элементов тепловой карты агрегируются для каждого дополнительного изображения документа в обучающем наборе для расположения поля «invoice date» относительно опорного элемента «totaltotal». Таким образом, тепловая карта для выбранного опорного элемента может определять потенциальные расположения каждого поля документа по отношению к выбранному опорному элементу. Соответственно, на этапе обучения могут быть сформированы тепловые карты относительно небольшого набора обучающих документов, которые сопровождаются метаданными, указывающими расположение полей документа. Сформированные тепловые карты впоследствии можно будет использовать для определения расположений полей в других документах.[0044] In some applications, the
[0045] На Фиг. 4A показан пример тепловой карты 401 для выбранного опорного элемента. Опорный элемент 410 представляет собой предопределенное ключевое слово «date», которое встречается в обучающем наборе изображений документа. Тепловая карта 401 определяет расположение различных полей документа относительно элемента 410. Опорный элемент 410 показан пунктирными линиями, так как опорный элемент не является частью структуры 420 данных сетки, которая представляет собой тепловую карту 401. Скорее, опорный элемент 410 представляет собой положение на сетке, которое соответствует расположению ключевого слова «date» на обучающем наборе изображений документа. Элементы тепловой карты, такие как ячейки 431 и 432, соответствуют пикселям изображения в изображениях обучающего документа, которые содержатся в различных полях документа. В примере ячейка 432 показана темнее чем ячейка 433, что указывает на то, что счетчик для ячейки 432 имеет большее значение, чем счетчик для ячейки 433, что, в свою очередь, указывает на то, что большее количество изображений документа имеют пиксели изображения, соответствующие ячейке 432, содержащейся в соответствующем поле, а не ячейке 433. Сходным образом, на Фиг. 4B показан пример тепловой карты 402 для выбранного опорного элемента 411 с ключевым словом «Total» и расположениями различных полей, определенных по отношению к опорному элементу 411, обозначенному заштрихованными ячейками. В этом примере ячейка 442 показана темнее ячейки 443. На Фиг. 4A и 4B показана структура данных сетки, используемая для изображенных на ней тепловых карт. В примере размер сетки представляет собой гиперпараметр, например, 64x64 пикселя. Гиперпараметр также имеет другое значение, например, 32x32 пикселей, 16x16 пикселей и т. д. Гиперпараметр можно выбрать из значений, которые зависят, например, от самого документа (количество размеченных полей, размер текста и т. д.), макета документа и т. п.[0045] In FIG. 4A shows an
[0046] В некоторых вариантах применения система 300 использует характеристики тепловой карты для классификации каждого возможного слова, найденного на изображениях 310 документа, с целью определения вероятности того, что это слово будет содержаться в конкретной области поля. Классификация состоит из положительных и отрицательных примеров. Положительными примерами являются слова, включенные в конкретную область поля в соответствии с координатами поля (например ось х, ось у) в документе. Отрицательными примерами являются все слова, которые не включены в конкретную область поля. В качестве локализующих признаков гипотезы, формируемой блоком 340 классификации компонент полей, используются расположения конкретных областей полей, определенных на тепловых картах по отношению к опорным элементам. На выходе блока 340 формируется один или несколько наборов гипотез о компонентах полей. Гипотезы могут указывать на вероятное расположение поля документа в пределах документа по отношению к опорному элементу. Вероятное расположение устанавливается на основе положительных примеров, выявленных с помощью тепловых карт. [0046] In some applications, the
[0047] В некоторых вариантах применения система 300 оценивает внутренний формат извлеченного содержимого определенных полей в обучающем наборе изображений 310 документа с помощью токенов BPE (кодирование пар байтов). Токен BPE относится к числовому вектору, представляющему собой входной текст. В некоторых вариантах применения вектор может быть представлен в виде встраивания промежуточного представления входного текста так, что в промежуточном представлении может использоваться искусственный алфавит, каждый символ которого может кодировать подстроку из одного или нескольких символов входного текста, как более подробно описано ниже. Встраиваемые данные формируются таким образом, что семантически близкие входные данные будут выдавать численно близкие встраиваемые данные.[0047] In some applications, the
[0048] На Фиг. 5 показан иллюстративный пример оценки 500 внутреннего формата поля, соответствующий одному или нескольким вариантам реализации настоящего изобретения. В некоторых вариантах применения для оценки внутреннего формата обнаруженного поля система 300 использует токены BPE. В традиционных системах токены BPE обычно используются в задачах обработки естественного языка. Варианты реализации настоящего изобретения используют токены BPE для оценки внутреннего формата поля для более точного и уверенного обнаружения полей документа. Использование токенов BPE для оценки приводит к значительному улучшению механизма обнаружения полей путем повышения качества и скорости обнаружения полей в документах. [0048] In FIG. 5 shows an illustrative example of an internal field format evaluation 500 in accordance with one or more embodiments of the present invention. In some use cases,
[0049] В некоторых вариантах применения в рамках оценки 500 внутреннего формата поля использование токенов 510 BPE позволяет получить характеристики, описывающие внутренний формат содержимого (например переменный текст, слова) обнаруженных полей на изображениях документа. В системе 300 может использоваться механизм маркирования строк многоязычного словаря 520 токенов BPE. Словарь 520 может включать в себя предварительно обученные эмбеддинги 530 и словарь 540 предварительно обученного конкретного списка слов по частоте употребления. Как эмбеддинги 530, так и словарь 540 предварительно обучены на теле текстовых полей существующей базы данных разметок. В примере среднее арифметическое встраиваемых объектов принимается за вектор 550 признаков объекта текстовой строки токенов, входящих в строку. [0049] In some applications, within the field internal format evaluation 500, the use of BPE tokens 510 allows obtaining characteristics describing the internal content format (eg, variable text, words) of detected fields in document images. The
[0050] В некоторых вариантах применения токены BPE используются для содержимого обнаруженных полей в обучающем наборе данных (например изображения обучающего документа). Как отмечалось выше, искусственный алфавит символов может быть получен для использования в качестве токенов BPE (например в кодировках). Алфавит включает в себя отдельные символы и токены из двух символов, трех символов и т. д. В примере алфавит может включать в себя тысячу и более символов, представляющих различные комбинации символов. Каждое слово или символы в слове могут быть представлены в изображениях обучающего документа с помощью символов из производного алфавита, представляющего слово или символы для получения маркированного содержимого. Затем выводятся вставки BPE, которые являются векторным выражением токенов BPE. Слова в наборе обучающих документов, которые семантически ближе друг к другу (например «1000» и «2000»), будут производить численно близкие вставки (например евклидово расстояние между двумя векторами меньше предопределенного значения). Например, в одном документе в поле «total» может стоять «1000», а в другом документе в поле «total» может стоять «2000». При применении токенов BPE к этим значениям вставки BPE будут близки друг к другу. В результате можно будет подтвердить, что значения правильно определены как содержимое поля «total». При обработке системой входного документа для обнаружения полей учитывается суммарное (например среднеквадратическое, среднее и т. д.) значение токенов BPE для значений «1000» и «2000» обучающего документа для сравнения со значениями в обнаруженных полях входного документа. Если обнаруженное поле содержит значение (например «2500»), чья вставка BPE близка к суммарному значению BPE в обучающих документах, то обнаружение поля может быть подтверждено с большей степенью вероятности. Можно указать пороговый диапазон, чтобы установить, близко ли значение во входном документе к агрегированному значению. Кроме того, если обнаруженное поле содержит несколько слов, аналогичным образом можно использовать токены BPE для сравнения с опорной вставкой обнаруженного поля. [0050] In some applications, BPE tokens are used for the content of detected fields in the training dataset (eg, an image of a training document). As noted above, an artificial character alphabet can be obtained for use as BPE tokens (eg in encodings). The alphabet includes individual characters and tokens of two characters, three characters, and so on. In the example, the alphabet may include a thousand or more characters representing various combinations of characters. Each word or characters in a word can be represented in the training document images using characters from a derived alphabet representing the word or characters to produce labeled content. BPE inserts are then output, which are a vector expression of BPE tokens. Words in the training document set that are semantically closer to each other (eg "1000" and "2000") will produce numerically close insertions (eg the Euclidean distance between two vectors is less than a predefined value). For example, one document might have "1000" in the "total" field, while another document might have "2000" in the "total" field. When applying BPE tokens to these values, the BPE inserts will be close to each other. As a result, it will be possible to confirm that the values are correctly defined as the contents of the "total" field. When the system processes the input document to detect fields, the sum (e.g. rms, mean, etc.) value of BPE tokens for the values "1000" and "2000" of the training document is taken into account for comparison with the values in the detected fields of the input document. If the detected field contains a value (eg "2500") whose BPE insertion is close to the total BPE value in the training documents, then the field detection can be more likely to be confirmed. You can specify a threshold range to determine whether the value in the input document is close to the aggregated value. Also, if the discovered field contains multiple words, BPE tokens can be used in the same way to compare against the discovered field's reference insert.
[0051] Возвращаясь к Фиг. 3, в некоторых вариантах применения система 300 применяет блок 350 классификации связей между компонентами к полученным гипотезам из блока 340. Для каждой пары компонент (например слов) блок 350 вычисляет оценку совместного нахождения пары в гипотетическом поле документа. Например, гипотетическое поле может включать в себя несколько слов, например, поле адреса, которое включает в себя номер улицы, название улицы, город, штат, страну и т. д. Кроме того, возможные расположения полей, которые были определены на тепловых картах, могут включать в себя несколько слов. Соответственно, каждая гипотеза включает в себя последовательность одного или нескольких слов из нескольких слов, соответствующих расположению поля. [0051] Returning to FIG. 3, in some applications,
[0052] В некоторых вариантах применения система 300 применяет блок 360 фильтрации и оценки гипотез к полученным данным из блока 350. Блок 360 использует дополнительные параметры поля для фильтрации и оценки гипотез, полученных из блока 350. Например, дополнительные параметры могут включать в себя многостраничный индикатор (например для указания того, что поле находится более чем на одной странице документа), односторонний индикатор (например для указания того, что содержимое находится только на одной стороне документа), двусторонний индикатор (например для указания того, что содержимое находится на обеих сторонах документа), максимальный и минимальный размер геометрического поля, а также другие признаки как по отдельности, так и в сочетании друг с другом. В одном варианте применения параметры могут быть установлены пользователем системы 300. Например, пользователь может задать параметр, при котором содержимое поля будет многострочным или однострочным. В примере пользователь может задать параметр, указывающий, что поле «дата» или «total» в документе счет-фактуры может быть представлено только одной строкой. В другом варианте применения система 300 может задавать параметр, связанный с типом документа. Например, система 300 может задавать такие параметры, как геометрические параметры поля, пороговые значения и т. д. Эти параметры могут быть определены эвристическим методом. Типичный эвристический алгоритм получается при использовании некоторой функции, входящей в систему для поиска решения, часто с использованием деревьев решений. Алгоритм может включать в себя шаги по корректировке массы ветвей дерева решений в зависимости от вероятности того, что ветвь приведет к узлу конечной цели. В системе 300 также могут использоваться различные комбинации параметров или способов. Кроме того, в системе 300 могут использоваться линейные классификаторы, основанные на логистической регрессии (например обученные классификаторы, основанные на градиентном бустинге) в качестве классификатора компонент и классификатора гипотез для поля документа.[0052] In some applications,
[0053] В некоторых вариантах применения в системе 300 для оценки общего качества полученных гипотез используется блок 370 оценки и анализа качества гипотез. В некоторых примерах гипотезы берутся из блока 360. В других примерах гипотезы могут браться из другого блока системы 300. Для оценки качества гипотез в системе могут быть определены различные пороговые значения. Например, набор слов может быть определен как находящийся в «уверенной» группе, когда вероятность того, что набор слов относится к какому-либо полю на выходе классификации, является выше заданного порогового значения. Например, заданное пороговое значение может быть 0,5, 0,4 или другим значением, которое было установлено с помощью экспертного метода, такого как оценка документа тестового образца, или значением, которое является единичным заданным гиперпараметром (например параметром, полученным на основе предварительного распределения). [0053] In some applications, the
[0054] Оценка качества гипотезы может включать в себя определение «уверенности» слова и слов, которые «надежно» связаны с уверенным словом. Для оценки выбирается стартовая компонента из гипотез, а для ограничения поиска других слов выбирается область поиска вокруг гипотез. Например, для начала построения одной или нескольких гипотез выбирается одно или несколько «уверенных» слов. Областью поиска считается описывающий слово прямоугольник с границами, которые отстают на расстояние заданного максимального размера поля от границ стартовой компоненты. Затем собирается «уверенная цепочка» гипотез, включающая все слова, «надежно» связанные со стартовой компонентой, лежащей в зоне поиска. Затем собираются и оцениваются окончательные одна или несколько гипотез, которые включают в себя все слова из зоны поиска, которые «надежно» связаны со всеми компонентами «уверенной цепочки». «Надежность» связи слов может быть установлена с помощью эвристически настраиваемого порогового значения, например, определение того, какое значение выше настроенного порогового значения принимается как надежно связанное, какое значение ниже настроенного порогового значения принимается как ненадежно связанное и т. д. Например, заданное пороговое значение может быть получено путем обучения на большой выборке данных, поступивших от клиента, с помощью подходящего метода машинного обучения, а также путем проверки его значения с помощью перекрестной проверки или другого подходящего метода. Кроме того, дальнейший анализ документов может быть выполнен путем сравнения полей гипотезы с самым высоким качеством по сравнению с другими гипотезами.[0054] Assessing the quality of the hypothesis may include determining the "confidence" of the word and the words that are "reliably" associated with the confident word. For evaluation, the starting component from the hypotheses is selected, and to limit the search for other words, the search area around the hypotheses is selected. For example, to start building one or more hypotheses, one or more "confident" words are selected. The search area is a rectangle describing the word with borders that lag behind the borders of the start component by the distance of the specified maximum field size. Then a "confident chain" of hypotheses is assembled, including all words "reliably" associated with the starting component lying in the search zone. Then the final one or more hypotheses are collected and evaluated, which include all words from the search area that are "reliably" associated with all components of the "sure chain". The "reliability" of a word association can be set using a heuristically configurable threshold value, such as determining which value above a configured threshold value is accepted as well connected, which value below a configured threshold value is accepted as not well connected, etc. For example, a predetermined threshold the value can be obtained by training on a large sample of data from the client using a suitable machine learning method, as well as by checking its value using cross-validation or other suitable method. In addition, further analysis of documents can be performed by comparing hypothesis fields with the highest quality compared to other hypotheses.
[0055] В некоторых вариантах применения система 300 использует блок обнаружения и извлечения полей 380 для обнаружения и классификации полей на другом входном документе (документах) 380. Система 300 может определять поля в соответствии с выбранными гипотезами потенциальных полей со значением качества, отвечающим определенному порогу качества, и (или) полученными результатами анализа по внутреннему формату содержимого в пределах потенциальных полей. Например, когда система 300 получает входной документ 380 для обнаружения и извлечения полей, система 300 может обнаруживать поля на входном документе 380, классифицировать поля и извлекать содержимое в пределах обнаруженных полей. В некоторых примерах система 300 может автоматически загружать изображение документа с обнаруженными полями и извлеченным содержимым в хранилище данных и (или) программный портал. На Фиг. 6 показан иллюстративный пример входного документа 600 с обнаруженными полями 610, соответствующий одному или нескольким вариантам реализации настоящего изобретения. Система 300 обнаруживает поля 610 на основе гипотез, полученных с помощью обучающего набора изображений документа. [0055] In some applications,
[0056] Возвращаясь к Фиг. 3, в некоторых вариантах применения система 300 может получить изображение входного документа и может определить в пределах изображения входного документа область-кандидат для каждого поля, представляющего интерес, на основе тепловых карт, построенных для этого поля, в отношении одного или нескольких опорных элементов. Каждая определенная область-кандидат будет включать в себя пиксели изображения входного документа, соответствующие элементам тепловой карты, удовлетворяющим пороговому условию (например когда их соответствующие значения превышают пороговое значение, когда выбрана заранее определенная доля пикселей, имеющих наибольшие значения, и т. д.). Выбранные области-кандидаты могут затем рассматриваться как положения соответствующих полей, например, путем применения технологий оптического распознавания символов (OCR) к фрагментам снимков, лежащим внутри областей-кандидатов. [0056] Returning to FIG. 3, in some applications,
[0057] В некоторых примерах две или более тепловых карт могут быть использованы для обнаружения полей, в которых каждая тепловая карта построена для разных опорных элементов. Например, для обнаружения расположения конкретного поля (например поля, соответствующего опорному элементу «Invoice #», в дальнейшем именуемого полем «Invoice #») на новом входном изображении документа 380 ключевые слова из изображения документа сначала определяются с помощью словаря ключевых слов. Например, к определенным ключевым словам могут относиться «Date», «Total», «Balance due», «Due date» и т. д. Система 300 выбирает тепловые карты для каждого из ключевых слов и определяет вероятное положение для конкретного поля на изображении документа. Например, система 300 выбирает тепловую карту для опорного элемента «Date» и определяет вероятное положение конкретного поля (например поле « Invoice #») по отношению к опорному элементу «Date». Вероятное положение поля определяется на основе гипотез, сформированных на основе значений элементов тепловой карты, находящихся выше пороговых значений. Аналогичным образом система 300 выбирает тепловую карту для опорного элемента «Total» и определяет вероятное положение конкретного поля (например поля «Invoice #») по отношению к опорному элементу «Total» и т. д. для тепловых карт различных ключевых слов, найденных во входном документе. Затем система 300 сравнивает тепловые карты и определяет пересечение возможных точек, определенных с помощью различных тепловых карт. Система 300 выбирает одну или несколько точек на входном документе, которые соответствуют максимальному количеству пересекающихся тепловых карт, и определяет область, включая точки как область-кандидат на конкретное поле (например поле «Invoice #») на изображении входного документа. Пороговый номер может быть указан для количества пересекающихся точек. Если количество пересекающихся точек на тепловых картах соответствует пороговому количеству или превышает его, то выбранный участок должен быть включен в область-кандидат. Соответственно, область-кандидат определяется в качестве конкретного поля во входном документе. [0057] In some examples, two or more heat maps can be used to detect fields in which each heat map is built for different reference elements. For example, to locate a particular field (eg, the field corresponding to the "Invoice #" reference element, hereinafter referred to as the "Invoice #" field) in the new input document image 380, keywords from the document image are first determined using a keyword dictionary. For example, specific keywords might include "Date", "Total", "Balance due", "Due date", etc.
[0058] В некоторых вариантах применения содержимое, извлеченное из каждого обнаруженного поля документа, может оцениваться с помощью токенов BPE посредством определения различий (например евклидовых расстояний) между токеном BPE, представляющим извлеченное содержимое данного поля входного документа, и токенами BPE, вычисленными для этого же поля в обучающих документах. Если расчетное расстояние между токеном BPE, представляющим содержимое, извлеченное из поля-кандидата, и совокупностью (например среднеквадратическое значение, среднее) токена (токенов) BPE, представляющего одно и то же поле в наборе данных для обучения, меньше порогового значения, то вероятность того, что поле будет обнаружено правильно, относительно велика, и поле-кандидат может быть принято для извлечения информации.[0058] In some applications, the content extracted from each detected field of the document can be estimated using BPE tokens by determining differences (for example, Euclidean distances) between the BPE token representing the extracted content of a given field of the input document and the BPE tokens calculated for the same fields in training documents. If the estimated distance between the BPE token representing the content extracted from the candidate field and the population (e.g. rms, mean) of the BPE token(s) representing the same field in the training dataset is less than a threshold value, then the probability that that the field will be detected correctly is relatively large, and the candidate field can be taken to extract information.
[0059] В некоторых вариантах применения выходные данные различных модулей могут быть подключены для априорного анализа документа (например документов таких типов, как счета-фактуры, таблицы, квитанции, ключи-значения и т. д.). Могут также использоваться пользовательские правила, которые описывают знания о природе входного документа (например код страны, номер страницы и т. п.).[0059] In some applications, the output of various modules can be connected for a priori analysis of a document (for example, document types such as invoices, tables, receipts, key-values, etc.). Custom rules can also be used that describe knowledge about the nature of the input document (for example, country code, page number, etc.).
[0060] В некоторых вариантах применения после получения большого набора документов (например нескольких тысяч документов) система 300 может повторить процесс обучения, но с ошибками, определенными в процессе обнаружения полей. Это может еще больше повысить качество обнаружения полей. [0060] In some applications, after receiving a large set of documents (eg, several thousand documents), the
[0061] В некоторых вариантах применения система 3400 может установить точность пользовательской разметки на обучающих документах и исправить любую обнаруженную неточность. Документы с настраиваемой разметкой полей принимаются в качестве обучающих входных данных. Разметка в партии может быть полной (правильной), частичной, непоследовательной (одни и те же поля размечены в разных местах), ошибочной. Эта разметка представляет собой именно ту разметку, которую выполнил пользователь. Для каждого размеченного поля определяются возможные стабильные комбинации относительного положения других полей на основе разметки других полей, поиска этих полей системой, а также различных ключевых слов (часто встречающихся слов, входящих в область поля). Относительное положение полей может устанавливаться по абсолютному расположению (например по тому, как оно относится к документу, на котором находится поле, например, номер строки или обозначение пикселей на документе) или по относительному расположению (например по сравнению с конкретным элементом на документе, например, поле «total» находится на 100 пикселей вправо от поля «date»), или по зоне (например диапазону) приемлемого расположения (распределения) конкретных полей или ключевых слов (например указание на то, что поле «client number» должно всегда находиться слева от поля «client name» и не дальше 100 пикселей от него, в противном случае оно не считается значением данного поля). Поля, для которых существуют стабильные комбинации других полей и ключевых слов и для которых эти комбинации повторяются или соотносятся от документа к документу, считаются стабильными и, возможно, правильно размеченными. Поля, для которых не найдены стабильные закономерности, считаются либо неправильно размеченными, либо размеченными единично. Поля одного и того же типа (например «total») с разными стабильными структурами или комбинациями на разных наборах документов считаются либо непоследовательными (если это документы одного и того же кластера или продавца), либо обнаруживают неоднородность документов, на которых они расположены. Таким образом, система может проверить правильность полученной разметки и предсказать разметку с высоким уровнем уверенности при первом запуске системы с небольшим количеством документов, необходимых для начала обучения системы, при условии, что система содержит универсальную предварительно обученную модель машинного обучения разметке, содержащую стандартные правила в отношении предполагаемых типов пользовательских документов. В дальнейшем при сборе статистики пользовательской разметки модель обучается на пользовательских документах в обратном направлении, зная стабильные комбинации полей и ключевых слов, система может определить области возможного расположения неразмеченных полей или неправильно размеченных полей и давать пользователю подсказки. Например, система может предоставить подсказки о том, как правильно разметить конкретный документ, или загрузить подборку документов, где разметка явно неверна и нуждается в исправлении.[0061] In some applications, the system 3400 may determine the accuracy of user markup on training documents and correct any inaccuracy found. Documents with custom margins are accepted as training input. The marking in the batch can be complete (correct), partial, inconsistent (the same fields are marked in different places), erroneous. This markup is exactly the markup that the user performed. For each labeled field, possible stable combinations of the relative position of other fields are determined based on the labeling of other fields, the search for these fields by the system, and various keywords (frequently occurring words included in the field area). The relative position of margins can be set by absolute location (for example, how it relates to the document on which the margin is located, for example, the line number or pixel designation on the document) or by relative location (for example, compared to a specific element on the document, for example, the "total" field is 100 pixels to the right of the "date" field), or by a zone (for example, a range) of an acceptable location (distribution) of specific fields or keywords (for example, an indication that the "client number" field should always be located to the left of field "client name" and no further than 100 pixels from it, otherwise it is not considered the value of this field). Fields for which stable combinations of other fields and keywords exist, and for which these combinations are repeated or correlated from document to document, are considered stable and possibly well-tagged. Fields for which no stable patterns were found are considered either incorrectly labeled or single labeled. Fields of the same type (for example, “total”) with different stable structures or combinations on different sets of documents are considered either inconsistent (if these are documents of the same cluster or seller) or show heterogeneity in the documents on which they are located. In this way, the system can validate the received markup and predict the markup with a high level of confidence at the first run of the system with a small number of documents required to start training the system, provided that the system contains a generic pre-trained markup machine learning model containing standard rules regarding intended types of user documents. Later, when collecting user markup statistics, the model is trained on user documents in the opposite direction, knowing stable combinations of fields and keywords, the system can determine the areas of possible location of unmarked fields or incorrectly marked fields and give the user hints. For example, the system may provide hints on how to properly mark up a particular document, or download a collection of documents where the markup is obviously wrong and needs to be corrected.
[0062] На Фиг. 7 представлена блок-схема одного наглядного примера способа сегментации документа на блоки различных типов, соответствующего одному или нескольким вариантам реализации настоящего изобретения. Способ 700 и (или) каждая из его отдельных функций, процедур, подпрограмм или операций может выполняться одним или несколькими процессорами компьютерной системы (например моделью компьютерной системы 800 на Фиг. 8), выполняющими этот способ. В некоторых вариантах применения способ 700 может выполняться одним потоком обработки. В другом варианте применения способ 700 может выполняться двумя или более потоками обработки, каждый из которых выполняет одну или несколько отдельных функций, процедур, подпрограмм или операций способа. Например, потоки обработки, реализующие способ 700, могут быть синхронизированы (например с помощью семафоров, критических секций и (или) других механизмов синхронизации потоков). В другом варианте применения потоки обработки, осуществляющие способ 700, могут выполняться асинхронно по отношению друг к другу. Поэтому если на Фиг. 7 и связанном с ней описании перечислены операции способа 700 в конкретном порядке, различные варианты применения способа могут выполнять по меньшей мере некоторые из описанных операций параллельно и (или) в произвольно выбранном порядке. В одном из вариантов применения способ 700 может быть выполнен одним или несколькими различными компонентами, изображенными на Фиг. 1, такими как детектор 122 полей, устройство 151 обучения обнаружению полей и др. [0062] In FIG. 7 is a flow diagram of one illustrative example of a method for segmenting a document into blocks of various types, in accordance with one or more embodiments of the present invention.
[0063] На шаге 710 компьютерная система, применяющая данный способ, может получить набор данных для обучения. Набор данных для обучения может содержать несколько изображений документа. Каждое из нескольких изображений документа может быть связано с соответствующими метаданными, определяющими поле документа. Поле документа может содержать символы, такие как переменный текст. Для каждого из нескольких изображений документа метаданные могут определить размеченное расположение поля документа, соответствующее этому полю документа.[0063] At 710, the computer system using the method may obtain a training data set. The training dataset can contain multiple document images. Each of the multiple images in a document can be associated with corresponding metadata that defines a field in the document. A document field can contain characters such as variable text. For each of the multiple images of a document, the metadata may define the marked-up location of a document field corresponding to that document field.
[0064] На шаге 720 компьютерная система может сформировать первую тепловую карту. Тепловая карта может быть представлена структурой данных (например сеткой, графиком и т. д.). Структура данных может включать в себя несколько элементов тепловой карты (например ячеек), соответствующих нескольким пикселям изображения документа. В некоторых примерах каждый элемент тепловой карты содержит счетчик. Счетчик может указать некоторое количество изображений документа, в которых поле документа содержит пиксель изображения документа, связанный с элементом тепловой карты. [0064] At step 720, the computer system may generate a first heat map. A heat map can be represented by a data structure (e.g. grid, graph, etc.). The data structure may include several heatmap elements (eg cells) corresponding to several pixels of the document image. In some examples, each heatmap element contains a counter. The counter can specify a number of document images where the document field contains the document image pixel associated with the heatmap element.
[0065] На шаге 730 компьютерная система может получить изображение входного документа. На шаге 740 компьютерная система может определить область-кандидат в пределах изображения входного документа. Изображение-кандидат может содержать поле документа. В некоторых примерах область-кандидат содержит несколько пикселей изображения входного документа. В некоторых примерах пиксели изображения входного документа соответствуют элементам тепловой карты, удовлетворяющим пороговому условию. [0065] At step 730, the computer system may obtain an image of the input document. At 740, the computer system may determine a candidate region within the input document image. The candidate image may contain a document field. In some examples, the candidate region contains several pixels of the input document image. In some examples, pixels in an input document image correspond to heatmap elements that meet a threshold condition.
[0066] В некоторых примерах область-кандидат определяется с помощью нескольких тепловых карт. Несколько тепловых карт могут содержать первую тепловую карту и одну или несколько дополнительных тепловых карт. Каждая из нескольких тепловых карт определяет потенциальное расположение поля документа, соответствующего этому полю документа. Каждая из нескольких тепловых карт определяет потенциальное расположение поля документа относительно соответствующего опорного элемента в каждой из нескольких тепловых карт. В некоторых примерах соответствующий опорный элемент содержит предопределенное слово (например ключевое слово «Date») или предопределенный графический элемент (например визуальный разделитель, логотип и т. д.).[0066] In some examples, a candidate region is determined using multiple heat maps. Multiple heat maps may contain a first heat map and one or more additional heat maps. Each of several heatmaps defines the potential location of a document field corresponding to that document field. Each of the multiple heatmaps defines the potential location of a document field relative to the corresponding reference element in each of the multiple heatmaps. In some examples, the corresponding anchor element contains a predefined word (for example, the keyword "Date") or a predefined graphic element (for example, a visual divider, logo, etc.).
[0067] Кроме того, на этапе обучения компьютерная система может извлекать содержимое каждого изображения обучающего документа, где это содержимое включено в потенциальное расположение поля документа (например содержимое «1000», «2000» и «1500», соответственно, в каждом документе, где это содержимое содержится в потенциальном расположении поля «total»). Затем компьютерная система может проанализировать содержимое каждого изображения документа с помощью токенов BPE. В одном варианте применения для анализа содержимого компьютерная система может представлять содержимое каждого изображения документа с помощью токенов BPE для получения маркированного содержимого для каждого изображения документа. Компьютерная система может формировать векторное представление (например BPE эмбеддинги) маркированного содержимого для каждого изображения документа. Компьютерная система может вычислить расстояние (например евклидово расстояние) между парой эмбеддингов (например эмбеддингов, представляющих «1000» и «2000») из двух из нескольких изображений документа. Если установлено, что расстояние меньше предопределенного значения, то компьютерная система указывает, что потенциальное расположение поля документа, вероятно, является верным. На этапе обнаружения полей входного документа при обнаружении поля-кандидата (например «total») на входном документе с помощью обучающей модели может быть извлечено содержимое (например «2899») обнаруженного поля, а также могут быть сформированы BPE эмбеддинги извлеченного содержимого. Можно рассчитать суммарное значение BPE эмбеддингов в содержимое (например содержимое «1000», «2000» и «1500» в обучающих документах) поля в наборе обучающих документов. Если вычисленное расстояние между токеном BPE, представляющим содержимое, извлеченное из обнаруженного поля на входном документе, и совокупным токеном (токенами) BPE, представляющим то же самое поле в наборе обучающих данных, меньше порогового значения, то вероятность того, что поле обнаружено правильно, относительно велика, и поле-кандидат может быть принято в качестве обнаруженного поля и выбрано для извлечения информации.[0067] In addition, during the training step, the computer system may retrieve the content of each image of the training document, where the content is included in the potential location of the document field (for example, the content of "1000", "2000", and "1500", respectively, in each document, where this content is contained in the potential location of the "total" field). The computer system can then parse the content of each document image using BPE tokens. In one application for content analysis, a computer system may represent the content of each document image using BPE tokens to obtain tagged content for each document image. The computer system may generate a vector representation (eg BPE embeddings) of the tagged content for each document image. The computer system may calculate a distance (eg, Euclidean distance) between a pair of embeddings (eg, embeddings representing "1000" and "2000") from two of the multiple document images. If the distance is determined to be less than a predetermined value, then the computer system indicates that the potential location of the document margin is likely to be correct. At the stage of discovering the fields of the input document, when a candidate field (for example, “total”) is detected on the input document, the content (for example, “2899”) of the detected field can be extracted using the training model, and BPE embeddings of the extracted content can also be generated. You can calculate the sum of the BPE value of embeddings to content (for example, content "1000", "2000", and "1500" in training documents) fields in a set of training documents. If the calculated distance between a BPE token representing the content extracted from a detected field in the input document and the aggregate BPE token(s) representing the same field in the training dataset is less than a threshold value, then the probability that the field was detected correctly is relatively is large, and the candidate field can be taken as the discovered field and selected for information extraction.
[0068] На Фиг. 8 в качестве примера изображена компьютерная система 800, которая может выполнять любой из описанных в настоящей заявке способов, соответствующих одному или нескольким вариантам реализации настоящего изобретения. В одном из примеров компьютерной системе 800 может соответствовать вычислительное устройство, способное реализовать способ 700 на Фиг. 7. Компьютерная система 800 может быть подключена (например по сети) к другим компьютерным системам в локальной сети, интранете, экстранете или интернете. Компьютерная система 800 может работать в качестве сервера в сетевой среде клиент-сервер. Компьютерной системой 800 может быть персональный компьютер (ПК), планшетный компьютер, приставка (STB), карманный персональный компьютер (КПК), мобильный телефон, камера, видеокамера или любое устройство, способное выполнить набор инструкций (последовательных или иных), определяющих действия, которые должны быть предприняты этим устройством. Кроме того, хотя иллюстрируется только одна компьютерная система, под термином «компьютер» понимается также любая совокупность компьютеров, которые по отдельности или совместно выполняют набор (или несколько наборов) инструкций для реализации одного или нескольких способов, рассматриваемых в настоящей заявке.[0068] In FIG. 8 depicts an
[0069] Примерная вычислительная система 800 включает в себя устройство 802 обработки, память 804 (например память только для чтения (ROM), флэш-память, память динамического произвольного доступа (DRAM), например, синхронную DRAM (SDRAM)), а также устройство 818 хранения данных, которые обмениваются данными друг с другом по шине 830.[0069] An
[0070] Устройство 802 обработки представляет собой одно или несколько устройств обработки общего назначения, таких как микропроцессор, центральный процессор и т. п. В частности, устройство 802 обработки может быть микропроцессором со сложным набором команд (CISC), микропроцессором с сокращенным набором команд (RISC), микропроцессором с командными словами сверхбольшой длины (VLIW) или процессором, реализующим другие наборы команд, или процессорами, реализующими комбинацию наборов команд. Устройство 802 обработки может также быть одним или несколькими специализированными устройствами обработки, такими как специализированная интегральная схема (ASIC), программируемая логическая интегральная схема (FPGA), процессор для цифровой обработки сигналов (DSP), сетевой процессор и т. п. Устройство 802 обработки настроено на выполнение инструкций для выполнения операций и шагов, описанных в настоящей заявке.[0070] The
[0071] Компьютерная система 800 может также включать в себя устройство 822 сопряжения с сетью. Компьютерная система 800 может также включать в себя блок 810 видеодисплея (например жидкокристаллический дисплей (LCD) или катодно-лучевую трубку (CRT)), устройство 812 ввода алфавитно-цифровых данных (например клавиатуру), устройство 814 управления курсором (например мышь) и устройство 816 формирования сигнала (например сеть). В одном наглядном примере блок 810 видеодисплея, устройство 812 ввода алфавитно-цифровых данных и устройство 814 управления курсором могут быть объединены в один компонент или устройство (например сенсорный LCD дисплей).[0071]
[0072] Устройство 818 хранения данных может включать в себя машиночитаемый носитель 824, на котором хранятся инструкции 826, содержащие любую из описанных в настоящей заявке методик или функций. Инструкции 826 могут также находиться, полностью или хотя бы частично, в памяти 804 и (или) в устройстве 802 обработки во время их выполнения компьютерной системой 800, памятью 804 и устройством 802 обработки, которые являются также машиночитаемыми носителями. Далее инструкции 826 могут передаваться или приниматься по сети через устройство 822 сопряжения с сетью.[0072]
[0073] В то время как машиночитаемый носитель 824 информации показан в иллюстративных примерах в виде единого носителя, термин «машиночитаемый носитель информации» следует понимать как включающий в себя один или несколько носителей информации (например централизованную или распределенную базу данных и (или) связанные с ней кэши и серверы), на которых хранится один или несколько наборов инструкций. Термин «машиночитаемый носитель информации» также означает любой носитель информации, который способен хранить, кодировать или переносить набор инструкций для выполнения машиной и который заставляет машину выполнять одну или несколько методик настоящего изобретения. Соответственно, термин «машиночитаемый носитель информации» включает в себя, в частности, полупроводниковую память, оптические и магнитные носители.[0073] While the computer-
[0074] Хотя представленные в настоящей заявке процедуры выполнения различных способов показаны и описаны в конкретном порядке, порядок выполнения каждого способа может быть изменен так, чтобы некоторые процедуры могли выполняться в обратном порядке или так, чтобы некоторая процедура могла выполняться, по крайней мере частично, одновременно с другими процедурами. В некоторых вариантах применения инструкции или подпроцедуры отдельных процедур могут прерываться и (или) чередоваться.[0074] Although the procedures for performing the various methods presented herein are shown and described in a particular order, the order in which each method is performed can be changed so that some procedures can be performed in reverse order or so that some procedure can be performed, at least in part, along with other procedures. In some applications, statements or subroutines of individual procedures may be interrupted and/or interleaved.
[0075] Следует понимать, что приведенное выше описание должно быть иллюстративным, а не ограничивающим. Многие другие варианты применения будут очевидны для специалистов в данной области техники после прочтения и понимания вышеприведенного описания. Следовательно, объем изобретения должен устанавливаться со ссылкой на прилагаемые пункты формулы изобретения вместе с полным объемом эквивалентов, на которые такие пункты могут распространяться.[0075] It should be understood that the above description is to be illustrative and not restrictive. Many other uses will be apparent to those skilled in the art upon reading and understanding the foregoing description. Therefore, the scope of the invention must be established with reference to the appended claims, together with the full scope of the equivalents to which such claims may fall.
[0076] В вышеуказанном описании приведены многочисленные детали. Однако для специалиста в данной области техники будет очевидно, что варианты реализации настоящего изобретения могут применяться без этих конкретных подробностей. В некоторых случаях известные структуры и устройства показаны в виде блок-схемы, а не описаны в подробностях, чтобы не затруднить восприятие настоящего изобретения.[0076] Numerous details are given in the above description. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form rather than described in detail so as not to obscure the present invention.
[0077] Некоторые части приведенных выше подробных описаний представлены в виде алгоритмов и символических представлений операций с битами данных в памяти компьютера. Эти алгоритмические описания и представления являются средствами, используемыми специалистами в области обработки данных, для наиболее эффективной передачи существа своей работы другим специалистам в данной области техники. Алгоритм здесь и в целом задуман как самосогласованная последовательность шагов, приводящая к желаемому результату. Это те шаги, которые требуют физических манипуляций с физическими величинами. Обычно, хотя и не всегда, эти величины принимают форму электрических или магнитных сигналов, которые можно хранить, передавать, объединять, сравнивать и иным образом использовать. Было доказано, что иногда, в основном по причинам общего использования, удобно называть эти сигналы битами, значениями, элементами, символами, знаками, терминами, числами и т. п.[0077] Some parts of the above detailed descriptions are presented in the form of algorithms and symbolic representations of operations on data bits in computer memory. These algorithmic descriptions and representations are the means used by data scientists to most effectively convey the substance of their work to others in the art. The algorithm here and as a whole is conceived as a self-consistent sequence of steps leading to the desired result. These are the steps that require physical manipulation of physical quantities. Usually, though not always, these quantities take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared, and otherwise used. It has been shown that sometimes, mainly for reasons of common usage, it is convenient to refer to these signals as bits, values, elements, symbols, signs, terms, numbers, and the like.
[0078] Однако следует иметь в виду, что все эти и аналогичные термины должны ассоциироваться с соответствующими физическими величинами и являться просто удобными обозначениями, применяемыми к этим величинам. Если не указано иное, то исходя из всего последующего обсуждения, становится понятно, что такие часто встречающиеся в дискуссии термины, как «получение», «установление», «выбор», «хранение», «настройка» и т. п., относятся к действиям и процессам компьютерной системы или аналогичного электронного вычислительного устройства, которое управляет и преобразует данные, представленные в виде физических (электронных) величин в регистрах и памяти компьютерной системы, в другие данные, аналогичным образом представленные как физические величины в памяти или регистрах компьютерной системы, или в других подобных устройствах хранения, передачи или отображения информации.[0078] However, it should be borne in mind that all these and similar terms should be associated with the corresponding physical quantities and be simply convenient designations applied to these quantities. Unless otherwise indicated, it will be clear from the discussion that follows that such frequently used terms in the discussion as "acquisition", "setting", "selection", "storage", "configuration", etc., refer to to the actions and processes of a computer system or similar electronic computing device that controls and converts data represented as physical (electronic) quantities in the registers and memory of a computer system into other data similarly represented as physical quantities in the memory or registers of a computer system, or in other similar devices for storing, transmitting or displaying information.
[0079] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящей заявке. Это устройство может быть специально сконструировано для требуемых целей или может содержать компьютер общего назначения, выборочно активированный или переконфигурированный компьютерной программой, хранящейся в компьютере. Подобная компьютерная программа может храниться на машиночитаемом носителе информации, в частности, таком как дискеты, оптические диски, компакт-диски, магнитооптические диски, постоянная память (ROM), оперативная память (RAM), стираемая программируемая постоянная память (EPROM), электрически стираемая программируемая постоянная память (EEPROM), магнитные или оптические карты или любые другие носители информации, пригодные для хранения электронных инструкций, каждый из которых подключен к системной шине компьютера.[0079] The present invention also relates to a device for performing the operations described in this application. This device may be specially designed for the required purposes, or may include a general purpose computer, selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored on a computer-readable storage medium such as floppy disks, optical disks, compact disks, magneto-optical disks, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical cards, or any other storage media suitable for storing electronic instructions, each of which is connected to the computer's system bus.
[0080] Представленные в настоящей заявке алгоритмы и дисплеи по своей природе не связаны с каким-либо конкретным компьютером или другим устройством. В соответствии с содержащимися в настоящей заявке методическими указаниями, с программами могут использоваться различные системы общего назначения, но для выполнения требуемых методических этапов целесообразным может оказаться создание узкоспециализированного устройства. Для различных подобных систем нужная структура будет соответствовать требованиям, изложенным в описании. Кроме того, варианты реализации настоящего изобретения не рассматриваются в контексте какого-либо конкретного языка программирования. Очевидно, что для реализации настоящего изобретения, описанного в настоящей заявке, могут использоваться различные языки программирования.[0080] Presented in this application, the algorithms and displays are not inherently associated with any particular computer or other device. In accordance with the guidelines contained in this application, various general-purpose systems can be used with programs, but it may be appropriate to create a highly specialized device to perform the required methodological steps. For various such systems, the desired structure will meet the requirements set forth in the description. In addition, embodiments of the present invention are not considered in the context of any particular programming language. Obviously, various programming languages can be used to implement the present invention described in this application.
[0081] Варианты реализации настоящего изобретения могут быть предоставлены в виде компьютерного программного продукта или программного обеспечения, которое может включать в себя машиночитаемый носитель с сохраненными на нем инструкциями, который может быть использован для программирования компьютерной системы (или других электронных устройств) для выполнения процесса в соответствии с настоящим изобретением. Машиночитаемый носитель включает в себя любую процедуру хранения или передачи информации в форме, пригодной для чтения машиной (например компьютером). Например, к машиночитаемым (например пригодным для чтения компьютером) носителям относятся пригодные для чтения машиной (например компьютером) носители информации (например постоянная память (ROM), оперативная память (RAM), носители информации на магнитных дисках, оптические носители информации, устройства флэш-памяти и т.д.). [0081] Embodiments of the present invention may be provided as a computer program product or software that may include a computer-readable medium with instructions stored thereon that may be used to program a computer system (or other electronic devices) to perform a process in in accordance with the present invention. A computer-readable medium includes any procedure for storing or transmitting information in a form that is readable by a machine (eg, a computer). For example, machine-readable (e.g., computer-readable) media includes machine-readable (e.g., computer-readable) storage media (e.g., read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory, etc.).
[0082] Слова «пример» или «примерный» используются в настоящей заявке в качестве примера, образца или иллюстрации. Любой вариант реализации или образец, описанный в настоящей заявке с характеристикой «пример» или «примерный», не обязательно должен рассматриваться как предпочтительный или преимущественный по сравнению с другими вариантами реализации или образцами. Использование слов «пример» или «примерный», скорее, предназначено для представления концепции в приложении к конкретному случаю. В том виде, в каком термин «или» используется в настоящей заявке, он означает включающее «или», а не исключающее «или». То есть, если не указано иное или не ясно из контекста, «Х включает в себя А или В» используется для обозначения любой из естественных включающих перестановок. То есть, если Х включает в себя А; Х включает в себя В; или Х включает в себя и А, и В, то в любом из вышеперечисленных случаев формулировка «Х включает в себя А или В» считается истинной. Кроме того, неопределенные артикли «a» и «an», используемые в настоящей заявке на английском языке, и прилагаемые пункты формулы изобретения должны обычно толковаться как означающие «один или несколько», если только не указано иное или не ясно из контекста, что они должны быть приведены в форме единственного числа. Кроме того, использование в тексте термина «вариант применения», «один вариант применения» или «один из вариантов применения» не должно означать один и тот же вариант применения, если только он не описан в качестве такового. Кроме того, термины «первый», «второй», «третий», «четвертый» и т.д., используемые в настоящей заявке, означают метки для разграничения различных элементов и не обязательно имеют порядковое значение в соответствии с их числовым обозначением.[0082] The words "example" or "exemplary" are used in this application as an example, example or illustration. Any implementation or design described in this application with the characteristic "example" or "exemplary" should not necessarily be considered as preferred or advantageous over other implementations or designs. The use of the words "example" or "exemplary" is rather intended to present the concept as applied to a particular case. In the form in which the term "or" is used in this application, it means inclusive "or" and not exclusive "or". That is, unless otherwise indicated or clear from the context, "X includes A or B" is used to refer to any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then in any of the above cases, the wording "X includes A or B" is considered true. In addition, the indefinite articles "a" and "an" used in this application in English and the appended claims should generally be construed to mean "one or more" unless otherwise indicated or it is clear from the context that they must be given in the singular form. In addition, the use of the terms “use case”, “one use case”, or “one of the use cases” in the text should not mean the same use case, unless it is described as such. In addition, the terms "first", "second", "third", "fourth", etc., used in this application, mean marks to distinguish between various elements and do not necessarily have an ordinal value in accordance with their numerical designation.
Claims (7)
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020141790A Division RU2760471C1 (en) | 2020-12-17 | 2020-12-17 | Methods and systems for identifying fields in a document |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2774653C1 true RU2774653C1 (en) | 2022-06-21 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2603492C2 (en) * | 2013-12-20 | 2016-11-27 | Общество с ограниченной ответственностью "Аби Девелопмент" | Creation of flexible structural descriptions for documents with repeating irregular structures |
US10133718B2 (en) * | 2014-07-18 | 2018-11-20 | FHOOSH, Inc. | Systems and methods for locating, identifying and mapping electronic form fields |
US10176159B2 (en) * | 2014-05-05 | 2019-01-08 | Adobe Systems Incorporated | Identify data types and locations of form fields entered by different previous users on different copies of a scanned document to generate an interactive form field |
US10482174B1 (en) * | 2018-10-17 | 2019-11-19 | Capital One Services, Llc | Systems and methods for identifying form fields |
US20200042626A1 (en) * | 2018-07-31 | 2020-02-06 | Splunk Inc. | Identifying similar field sets using related source types |
RU2737720C1 (en) * | 2019-11-20 | 2020-12-02 | Общество с ограниченной ответственностью "Аби Продакшн" | Retrieving fields using neural networks without using templates |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2603492C2 (en) * | 2013-12-20 | 2016-11-27 | Общество с ограниченной ответственностью "Аби Девелопмент" | Creation of flexible structural descriptions for documents with repeating irregular structures |
US10176159B2 (en) * | 2014-05-05 | 2019-01-08 | Adobe Systems Incorporated | Identify data types and locations of form fields entered by different previous users on different copies of a scanned document to generate an interactive form field |
US10133718B2 (en) * | 2014-07-18 | 2018-11-20 | FHOOSH, Inc. | Systems and methods for locating, identifying and mapping electronic form fields |
US20200042626A1 (en) * | 2018-07-31 | 2020-02-06 | Splunk Inc. | Identifying similar field sets using related source types |
US10482174B1 (en) * | 2018-10-17 | 2019-11-19 | Capital One Services, Llc | Systems and methods for identifying form fields |
RU2737720C1 (en) * | 2019-11-20 | 2020-12-02 | Общество с ограниченной ответственностью "Аби Продакшн" | Retrieving fields using neural networks without using templates |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2760471C1 (en) | Methods and systems for identifying fields in a document | |
US11816165B2 (en) | Identification of fields in documents with neural networks without templates | |
RU2695489C1 (en) | Identification of fields on an image using artificial intelligence | |
Dong et al. | Tablesense: Spreadsheet table detection with convolutional neural networks | |
US10482174B1 (en) | Systems and methods for identifying form fields | |
US11232300B2 (en) | System and method for automatic detection and verification of optical character recognition data | |
US10489645B2 (en) | System and method for automatic detection and verification of optical character recognition data | |
Rong et al. | Recognizing text-based traffic guide panels with cascaded localization network | |
US11816138B2 (en) | Systems and methods for parsing log files using classification and a plurality of neural networks | |
CN109002834A (en) | Fine granularity image classification method based on multi-modal characterization | |
US20200125954A1 (en) | Systems and methods for selecting and generating log parsers using neural networks | |
CN110427612B (en) | Entity disambiguation method, device, equipment and storage medium based on multiple languages | |
US20220180066A1 (en) | Machine learning processing pipeline optimization | |
US20210366055A1 (en) | Systems and methods for generating accurate transaction data and manipulation | |
US20230138491A1 (en) | Continuous learning for document processing and analysis | |
CN111680506A (en) | External key mapping method and device of database table, electronic equipment and storage medium | |
CN114463767A (en) | Credit card identification method, device, computer equipment and storage medium | |
US20230084845A1 (en) | Entry detection and recognition for custom forms | |
Kumar Rai et al. | Medical prescription and report analyzer | |
US20230134218A1 (en) | Continuous learning for document processing and analysis | |
CN110457155B (en) | Sample class label correction method and device and electronic equipment | |
RU2774653C1 (en) | Methods and systems for identifying fields in a document | |
KR102467096B1 (en) | Method and apparatus for checking dataset to learn extraction model for metadata of thesis | |
CN115984588A (en) | Image background similarity analysis method and device, electronic equipment and storage medium | |
CN115546801A (en) | Method for extracting paper image data features of test document |