RU2774653C1 - Methods and systems for identifying fields in a document - Google Patents

Methods and systems for identifying fields in a document Download PDF

Info

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
Application number
RU2021127301A
Other languages
Russian (ru)
Inventor
Станислав Владимирович Семенов
Original Assignee
АБИ Девелопмент Инк.
Filing date
Publication date
Application filed by АБИ Девелопмент Инк. filed Critical АБИ Девелопмент Инк.
Application granted granted Critical
Publication of RU2774653C1 publication Critical patent/RU2774653C1/en

Links

Images

Abstract

FIELD: computer technology.
SUBSTANCE: invention relates to the field of computer technology and can be used to detect fields on document images. The method involves obtaining a training dataset containing several documents, and each of several documents correlates with several fields marked up by the user; for a given field from several user-marked fields in this document from several documents, determining whether a specific combination of relative positions of one or more additional user-marked fields relative to this field is repeated in one or more additional documents in this document; indicating that the selection of this field is incorrect if it is established that a specific combination is not repeated in any additional documents; establishing the presence in two or more other documents of another combination of relative positions of additional one or more fields marked up by the user, relative to this field, if it is established that a specific combination is repeated in one or more additional documents, and specifying this field as marked up correctly if it is established that another combination does not exist in two or more other documents; specifying this field as marked up is contradictory if it is established that this combination exists in two or more other documents.
EFFECT: determining the accuracy of user markup of fields in documents.
1 cl, 9 dwg

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 exemplary system architecture 100 in accordance with one or more embodiments of the present invention. System architecture 100 includes computing device 120, storage 160, and server 150 connected to network 130. Network 130 may be a public network (eg, the Internet), a private network (eg, a local area network (LAN), or a wide area network (WAN) ), or a combination of them.

[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 exemplary method 200 for detecting fields in a document, in accordance with one or more embodiments of the present invention. From a high level, the operation of the system can be logically divided into 2 stages. The first step is the learning step 220, the second step is the input document field detection step 230. The learning step 220 may take as input different documents 210 containing different fields. On the example of Fig. 2, documents 210 include a bank account template 212, a savings deposit 214, a receipt 216, an invoice 218, and others. Each of the documents 210 contains several fields. For example, the bank account template 212 includes fields in the form of a table 212a with two columns and several rows, the account 218 includes a graphical logo field 218a, a text field with numbers 218b, and others. documents is processed so that the system can learn from the markup of fields in these documents. One or more models may be generated in training step 220 to detect fields in documents. In step 230 of detecting input document fields, the system processes the input document to detect the structure of the input document, detects the field(s) within the input document based on the models obtained in learning step 220, and extracts fields with its content.

[0034] На Фиг. 3 показана блок-схема различных компонент примерной системы 300 обнаружения полей в документе, соответствующая одному или нескольким вариантам реализации настоящего изобретения. В некоторых вариантах применения пользователь, например, человек-пользователь или пользователь-компьютерная система, может определить небольшое количество документов, содержащих одно или несколько полей. Пользователь может определить каждый тип документа, в котором выполняется обнаружение поля с помощью системы 300. В одном варианте применения пользователь может разметить поля в определенных документах. Для разметки поля пользователь может рисовать линии, круги, рамки, прямоугольники или другие фигуры, выделять или иным образом создавать разметку на части документа или вокруг нее, чтобы обозначить участок как определенное поле. Пользователь может разметить несколько полей, на которых нужно провести обучение для их обнаружения по каждому документу, например, поля «Total» и «Адрес». Кроме того, пользовательская разметка может включать в себя также определение размеченных полей (например, «Дата», «Total» и т. д.). «Небольшое количество» в том виде, в каком оно используется в настоящей заявке, может представлять собой, например, 3–5 документов. В примере пользователем размечено не более десяти документов определенного типа. Пользователь может разметить все поля в документе или разметить выборочные поля на документе. Каждое поле определяется и размечается независимо от других полей документа. [0034] In FIG. 3 is a block diagram of various components of an exemplary document field detection system 300 in accordance with one or more embodiments of the present invention. In some applications, a user, such as a human-user or user-computer system, may define a small number of documents containing one or more fields. The user may define each type of document in which field detection is performed by the system 300. In one application, the user may mark up fields in certain documents. To mark a field, a user may draw lines, circles, frames, rectangles, or other shapes, highlight, or otherwise create markup on or around a portion of a document to designate an area as a particular field. The user can mark several fields that need to be trained for their detection for each document, for example, the fields "Total" and "Address". In addition, custom markup can also include the definition of marked up fields (for example, "Date", "Total", etc.). A "small amount" as used in this application may be, for example, 3-5 documents. In the example, the user has marked up no more than ten documents of a certain type. The user can mark all fields in the document or mark selective fields on the document. Each field is defined and marked up independently of the other fields in the 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 system 300 as electronic documents. Electronic documents can be scanned images, photographed images, or any other representation of a document that can be converted into a computer-accessible data form. Downloaded documents are referred to as document images 310 in this application. In one use case, the user may download documents that already contain marked up fields. In another application, a user may electronically mark up document images 310 using the user interface of system 300. word, numbers, etc., and the system can then automatically mark the surrounding field boundaries. In some applications, received documents can be automatically grouped into different pre-clusters so that each cluster has similar documents, which in turn can help the user to correctly label the fields. The system 300 associates each document image of the document images 310 with metadata identifying a particular field of the document from the markup in the document image. In some examples, the metadata defines a field in the document that contains the text of the variable. In some applications, the system 300 assigns each document image 310 to a specific document class using the document classifier 320 . For example, document images may be assigned to a particular class based on the similarity of document characteristics. In one example, images of a document may be classified based on the name of the merchant associated with the document. For each class, the system 300 collects a small selection of document images (eg, 2-6 document images).

[0036] В некоторых вариантах применения подблок 330 выбора слов системы 300 представляет собой подмодуль, использующий эвристический алгоритм для анализа текста документа. Текст может быть проанализирован по выбранным словам в макете документа на основе типов символов, таких как буквы, цифры, разделители и т. д. Эвристика может включать в себя решение задач экспериментальным методом и (или) методом проб и ошибок. Типичный эвристический алгоритм выводится с помощью некоторой функции, которая включается в систему для поиска решения, часто с использованием деревьев решений. Алгоритм может включать в себя шаги по настройке весов ветвей дерева решений в зависимости от вероятности того, что ветвь приведет к узлу конечной цели. Здесь эвристика может быть использована для разделения строк текста на группы одного типа символов. Например, каскадная классификация текстовых фрагментов в документе может быть представлена с помощью графа. Текстовые фрагменты являются узлами графа. Узлы графа соединяются ребрами (логические связи между текстовыми фрагментами). Граф может быть проанализирован и модифицирован для дальнейшей разбивки текстовых фрагментов, которые были изначально определены в каждом узле. Например, фрагмент текста, содержащий как буквы, так и цифры, можно разделить на два новых узла, чтобы отделить буквы от цифр. В одном варианте применения блок 330 получает текст из изображения 310 документа и разделяет текст документа на непрерывную подпоследовательность символов. Подпоследовательности символов могут относиться к одному и тому же типу символов. Например, типы символов могут включать в себя буквы, цифры и разделители. В подблоке 330 можно разделить текст на отдельные слова. В подблоке 330 можно получить все возможные слова в изображении 310 документа. [0036] In some applications, the word selection sub-unit 330 of the system 300 is a sub-module that uses a heuristic algorithm to parse the text of a document. Text can be analyzed for selected words in the document layout based on character types such as letters, numbers, delimiters, etc. Heuristics can include problem solving by experimentation and/or trial and error. A typical heuristic algorithm is derived by some function that is included in the system to find a solution, often using decision trees. The algorithm may include steps to adjust the weights of the decision tree branches depending on the probability that the branch will lead to the final goal node. Here heuristics can be used to split lines of text into groups of the same character type. For example, a cascading classification of text fragments in a document can be represented using a graph. Text fragments are graph nodes. Graph nodes are connected by edges (logical connections between text fragments). The graph can be parsed and modified to further break down the text chunks that were originally defined at each node. For example, a piece of text containing both letters and numbers can be split into two new nodes to separate letters from numbers. In one application, block 330 receives text from document image 310 and separates the document text into a contiguous subsequence of characters. Subsequences of characters can refer to the same character type. For example, character types may include letters, numbers, and delimiters. In subblock 330, you can split the text into individual words. In subblock 330, all possible words in document image 310 can be obtained.

[0037] В некоторых вариантах применения система 300 использует блок 340 классификации компонент полей для классификации каждого слова в изображении 310 документа в зависимости от вероятности включения этого слова в конкретное поле. В некоторых вариантах применения опорные элементы на изображении документа используются для определения расположения поля документа. Любой структурный элемент, относящийся к макету документа, может быть использован в качестве опорного. Опорный элемент может включать в себя предопределенное слово (например, ключевое слово), предопределенный графический элемент (например визуальный разделитель, логотип) и т. д. В некоторых вариантах применения набор опорных элементов может быть получен с помощью обучающей выборки изображений документа. В некоторых примерах на основе обучающих документов может быть сформирован специальный словарь «часто встречающихся слов». Часто встречающиеся слова — это список слов, сгруппированных по частоте возникновения в составе корпуса документов (например, обучающие образцы документов). Например, часто встречающиеся слова могут быть сгруппированы в виде рейтингового списка. В некоторых примерах опорные элементы на изображениях документа могут быть определены путем сопоставления часто встречающихся слов, появляющихся на одном или нескольких изображениях документа, с частотой, превышающей предопределенную пороговую частоту. В некоторых примерах опорные элементы могут быть определены по пользовательским словарям слов, различным разделителям словесных символов, штампам и другим предопределенным текстовым и (или) визуальным элементам на изображении документа. [0037] In some applications, system 300 uses field component classifier 340 to classify each word in document image 310 based on the likelihood of that word being included in a particular field. In some applications, anchors on a document image are used to define the location of a document margin. Any structural element related to the layout of the document can be used as a reference. The datum may include a predefined word (eg, a keyword), a predefined graphic element (eg, visual divider, logo), etc. In some applications, a set of datums may be derived from a training set of document images. In some examples, a special dictionary of "frequent words" can be formed based on the training documents. Frequently occurring words is a list of words grouped by frequency of occurrence in a corpus of documents (for example, training sample documents). For example, frequently occurring words can be grouped into a ranking list. In some examples, pivots on document images may be determined by matching frequently occurring words that appear on one or more document images with a frequency greater than a predetermined threshold frequency. In some examples, pivots may be defined by custom word dictionaries, various word character separators, stamps, and other predefined text and/or visual elements in a document image.

[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 rectangular area 218c surrounding the word "totaltotal" in document 218 can be used as the location of the "totaltotal" pivot.

[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 numbers 218b) corresponding to the "total" anchor element may be determined with respect to the location of the "totaltotal" anchor element in the document. For each document image in the training set of document images (eg, document image 310), the location of the document field may be derived based on the document image markup of the training sample. In one application, system 300 associates metadata with a particular field in a document based on the user's markup on the document. The metadata may define the location of a document field relative to a reference element. For example, the metadata for a particular markup document image may indicate that the position of the document margin is 50 pixels to the right of the anchor element position on the document image. The location of a document field may be expressed as a range of locations, number of pixels, and so on. The location of a document field may include an area in a document image. A region can be a region within a document image. The region may have a specific geometric shape, including, for example, a rectangle, quadrilateral, ellipse, circle, other polygon, etc. The location of a document field may refer to an area on the image of the document contained in the document field.

[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] System 300 continues to update the heat map for the selected reference element using the next document image in the training set of document images. The values of the heatmap elements are updated so that new values can be added to reflect the next image in the document. For example, if the value of a particular cell in the heatmap has already been set to "1" and the cell corresponds to an image pixel in the next document that is contained in the field "$1000", then the value of the cell is incremented by the value "1" and equals the value "2" . The system 300 continues aggregating the heatmap element values for each of the document images in the document image training set to determine the image pixels contained in a particular document field. In some applications, the final histogram of the relative location of the selected reference element is the arithmetic mean of the values in the corresponding cells of the heat maps.

[0044] В некоторых вариантах применения система 300 может обновлять тепловую карту для выбранного опорного элемента, чтобы она могла включить в себя значения элементов тепловой карты, которые относятся к другому полю документа. То есть для выбранного опорного элемента, для которого строится тепловая карта, определяется расположение другого поля из всех изображений обучающего документа. Расположение определяется относительно выбранного опорного элемента тепловой карты. Например, расположение «invoice date», внесенное относительно опорного элемента «total», можно определить на тепловой карте, установив значение элементов тепловой карты на «1», где элементы тепловой карты соответствуют пикселям изображения, которые содержатся в поле «invoice date» на первом обучающем изображении. Сходным образом значения элементов тепловой карты агрегируются для каждого дополнительного изображения документа в обучающем наборе для расположения поля «invoice date» относительно опорного элемента «totaltotal». Таким образом, тепловая карта для выбранного опорного элемента может определять потенциальные расположения каждого поля документа по отношению к выбранному опорному элементу. Соответственно, на этапе обучения могут быть сформированы тепловые карты относительно небольшого набора обучающих документов, которые сопровождаются метаданными, указывающими расположение полей документа. Сформированные тепловые карты впоследствии можно будет использовать для определения расположений полей в других документах.[0044] In some applications, the system 300 may update the heatmap for the selected reference element so that it can include heatmap element values that are related to a different document field. That is, for the selected reference element, for which the heat map is being built, the location of another field is determined from all images of the training document. The location is relative to the selected heatmap reference element. For example, the location of the "invoice date" entered relative to the "total" reference element can be determined on a heatmap by setting the value of the heatmap elements to "1", where the heatmap elements correspond to the image pixels contained in the "invoice date" field on the first training image. Similarly, heatmap element values are aggregated for each additional document image in the training set to position the "invoice date" field relative to the "totaltotal" reference element. Thus, a heat map for a selected pivot may determine the potential locations of each document field in relation to the selected pivot. Accordingly, during the training phase, heat maps can be generated for a relatively small set of training documents, which are accompanied by metadata indicating the location of the document's fields. The generated heat maps can later be used to determine the location of fields in other documents.

[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 example heatmap 401 for a selected reference element. Anchor 410 is a predefined keyword "date" that occurs in the training set of document images. The heat map 401 defines the location of the various fields of the document relative to the element 410. The reference element 410 is shown in dotted lines because the reference element is not part of the grid data structure 420 that is the heat map 401. Rather, the reference element 410 is a position on the grid that corresponds to the location of the "date" keyword on the training set of document images. Heatmap elements, such as cells 431 and 432, correspond to image pixels in training document images that are contained in various document fields. In the example, cell 432 is shown darker than cell 433, indicating that the count for cell 432 is greater than the count for cell 433, which in turn indicates that more of the document's images have image pixels corresponding to cell 432 contained in the corresponding field rather than cell 433. Similarly, in FIG. 4B shows an example heatmap 402 for a selected pad 411 with the keyword "Total" and the locations of the various fields defined with respect to the pad 411 indicated by the shaded cells. In this example, cell 442 is shown darker than cell 443. In FIG. 4A and 4B show the grid data structure used for the heat maps depicted therein. In the example, the grid size is a hyperparameter, such as 64x64 pixels. The hyperparameter also has a different value, such as 32x32px, 16x16px, etc. The hyperparameter can be selected from values that depend on, for example, the document itself (number of marked up fields, text size, etc.), document layout, etc. . P.

[0046] В некоторых вариантах применения система 300 использует характеристики тепловой карты для классификации каждого возможного слова, найденного на изображениях 310 документа, с целью определения вероятности того, что это слово будет содержаться в конкретной области поля. Классификация состоит из положительных и отрицательных примеров. Положительными примерами являются слова, включенные в конкретную область поля в соответствии с координатами поля (например ось х, ось у) в документе. Отрицательными примерами являются все слова, которые не включены в конкретную область поля. В качестве локализующих признаков гипотезы, формируемой блоком 340 классификации компонент полей, используются расположения конкретных областей полей, определенных на тепловых картах по отношению к опорным элементам. На выходе блока 340 формируется один или несколько наборов гипотез о компонентах полей. Гипотезы могут указывать на вероятное расположение поля документа в пределах документа по отношению к опорному элементу. Вероятное расположение устанавливается на основе положительных примеров, выявленных с помощью тепловых карт. [0046] In some applications, the system 300 uses the characteristics of the heat map to classify each possible word found in the document images 310 to determine the likelihood that the word will be contained in a particular region of the field. The classification consists of positive and negative examples. Good examples are words included in a specific area of a field according to the coordinates of the field (eg x-axis, y-axis) in the document. Negative examples are all words that are not included in a specific area of the field. As localizing features of the hypothesis generated by the field component classification block 340, the locations of specific areas of the fields defined on the heat maps in relation to the reference elements are used. At the output of block 340, one or more sets of hypotheses about the field components are generated. Hypotheses may indicate the likely location of a document field within the document in relation to the reference element. The probable location is established based on the positive examples identified by the heat maps.

[0047] В некоторых вариантах применения система 300 оценивает внутренний формат извлеченного содержимого определенных полей в обучающем наборе изображений 310 документа с помощью токенов BPE (кодирование пар байтов). Токен BPE относится к числовому вектору, представляющему собой входной текст. В некоторых вариантах применения вектор может быть представлен в виде встраивания промежуточного представления входного текста так, что в промежуточном представлении может использоваться искусственный алфавит, каждый символ которого может кодировать подстроку из одного или нескольких символов входного текста, как более подробно описано ниже. Встраиваемые данные формируются таким образом, что семантически близкие входные данные будут выдавать численно близкие встраиваемые данные.[0047] In some applications, the system 300 evaluates the internal format of the extracted content of certain fields in the training set of document images 310 using BPE (Byte Pair Encoding) tokens. The BPE token refers to a numeric vector representing the input text. In some applications, a vector may be represented as an embedding of 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 similar embedded data.

[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, system 300 uses BPE tokens to evaluate the internal format of a detected field. In traditional systems, BPE tokens are commonly used in natural language processing tasks. Embodiments of the present invention use BPE tokens to evaluate the internal format of a field for more accurate and confident field detection in a document. The use of BPE tokens for evaluation results in a significant improvement in the field discovery mechanism by improving the quality and speed of field discovery in documents.

[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 system 300 may use the string tokenization mechanism of the multilingual dictionary 520 of BPE tokens. The dictionary 520 may include pre-trained embeddings 530 and a dictionary 540 of a pre-trained specific word list by frequency. Both embeddings 530 and vocabulary 540 are pre-trained on the body of text fields of an existing markup database. In the example, the arithmetic mean of the embedded objects is taken as a vector of 550 features of the text string object of the tokens included in the string.

[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, system 300 applies a component relationship classifier 350 to the derived hypotheses from block 340. For each pair of components (eg, words), block 350 computes an estimate of the pair's co-occurrence in a hypothesized document field. For example, a hypothetical field can include multiple words, such as an address field that includes street number, street name, city, state, country, and so on. In addition, the possible locations of fields that have been defined in heat maps, may include multiple words. Accordingly, each hypothesis includes a sequence of one or more words from several words corresponding to the location of the field.

[0052] В некоторых вариантах применения система 300 применяет блок 360 фильтрации и оценки гипотез к полученным данным из блока 350. Блок 360 использует дополнительные параметры поля для фильтрации и оценки гипотез, полученных из блока 350. Например, дополнительные параметры могут включать в себя многостраничный индикатор (например для указания того, что поле находится более чем на одной странице документа), односторонний индикатор (например для указания того, что содержимое находится только на одной стороне документа), двусторонний индикатор (например для указания того, что содержимое находится на обеих сторонах документа), максимальный и минимальный размер геометрического поля, а также другие признаки как по отдельности, так и в сочетании друг с другом. В одном варианте применения параметры могут быть установлены пользователем системы 300. Например, пользователь может задать параметр, при котором содержимое поля будет многострочным или однострочным. В примере пользователь может задать параметр, указывающий, что поле «дата» или «total» в документе счет-фактуры может быть представлено только одной строкой. В другом варианте применения система 300 может задавать параметр, связанный с типом документа. Например, система 300 может задавать такие параметры, как геометрические параметры поля, пороговые значения и т. д. Эти параметры могут быть определены эвристическим методом. Типичный эвристический алгоритм получается при использовании некоторой функции, входящей в систему для поиска решения, часто с использованием деревьев решений. Алгоритм может включать в себя шаги по корректировке массы ветвей дерева решений в зависимости от вероятности того, что ветвь приведет к узлу конечной цели. В системе 300 также могут использоваться различные комбинации параметров или способов. Кроме того, в системе 300 могут использоваться линейные классификаторы, основанные на логистической регрессии (например обученные классификаторы, основанные на градиентном бустинге) в качестве классификатора компонент и классификатора гипотез для поля документа.[0052] In some applications, system 300 applies a filtering and hypothesis evaluation block 360 to the received data from block 350. Block 360 uses additional field parameters to filter and evaluate hypotheses obtained from block 350. For example, additional parameters may include a multi-page indicator (for example, to indicate that the field is on more than one page of the document), one-sided indicator (for example, to indicate that the content is on only one side of the document), two-sided indicator (for example, to indicate that the content is on both sides of the document ), the maximum and minimum size of the geometric field, as well as other features, both individually and in combination with each other. In one application, the options can be set by a user of the system 300. For example, the user can set the option to have the content of a field be multi-line or single-line. In the example, the user can set a parameter indicating that the "date" or "total" field in the invoice document can only be represented by one line. In another application, system 300 may define a parameter associated with a document type. For example, system 300 may define parameters such as field geometry, thresholds, etc. These parameters may be determined heuristically. A typical heuristic algorithm is obtained by using some function included in the system to find a solution, often using decision trees. The algorithm may include steps to adjust the weight of the decision tree branches depending on the probability that the branch will lead to the final goal node. System 300 may also use various combinations of parameters or methods. In addition, linear classifiers based on logistic regression (eg, trained classifiers based on gradient boosting) can be used in system 300 as a component classifier and a hypothesis classifier for a document field.

[0053] В некоторых вариантах применения в системе 300 для оценки общего качества полученных гипотез используется блок 370 оценки и анализа качества гипотез. В некоторых примерах гипотезы берутся из блока 360. В других примерах гипотезы могут браться из другого блока системы 300. Для оценки качества гипотез в системе могут быть определены различные пороговые значения. Например, набор слов может быть определен как находящийся в «уверенной» группе, когда вероятность того, что набор слов относится к какому-либо полю на выходе классификации, является выше заданного порогового значения. Например, заданное пороговое значение может быть 0,5, 0,4 или другим значением, которое было установлено с помощью экспертного метода, такого как оценка документа тестового образца, или значением, которое является единичным заданным гиперпараметром (например параметром, полученным на основе предварительного распределения). [0053] In some applications, the system 300 uses a hypothesis quality evaluation and analysis unit 370 to evaluate the overall quality of the hypotheses received. In some examples, the hypotheses are taken from block 360. In other examples, the hypotheses may be taken from another block of the system 300. Various thresholds can be defined to evaluate the quality of the hypotheses in the system. For example, a set of words may be determined to be in a "confident" group when the probability that the set of words belongs to any field in the classification output is above a predetermined threshold. For example, the predetermined threshold value may be 0.5, 0.4, or another value that has been established using an expert method such as evaluating a test sample document, or a value that is a single predetermined hyperparameter (for example, a parameter derived from a predistribution ).

[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, system 300 uses a field detection and extractor 380 to detect and classify fields on other input document(s) 380. System 300 may determine fields according to selected potential field hypotheses with a quality value that meets a certain quality threshold. , and (or) the results of the analysis by the internal format of the content within the potential fields. For example, when system 300 receives input document 380 to detect and extract fields, system 300 can detect fields on input document 380, classify the fields, and extract content within the detected fields. In some examples, the system 300 may automatically upload a document image with the detected fields and retrieved content to the data store and/or software portal. On FIG. 6 shows an illustrative example of an input document 600 with detected fields 610 in accordance with one or more embodiments of the present invention. System 300 detects fields 610 based on hypotheses generated by the training set of document images.

[0056] Возвращаясь к Фиг. 3, в некоторых вариантах применения система 300 может получить изображение входного документа и может определить в пределах изображения входного документа область-кандидат для каждого поля, представляющего интерес, на основе тепловых карт, построенных для этого поля, в отношении одного или нескольких опорных элементов. Каждая определенная область-кандидат будет включать в себя пиксели изображения входного документа, соответствующие элементам тепловой карты, удовлетворяющим пороговому условию (например когда их соответствующие значения превышают пороговое значение, когда выбрана заранее определенная доля пикселей, имеющих наибольшие значения, и т. д.). Выбранные области-кандидаты могут затем рассматриваться как положения соответствующих полей, например, путем применения технологий оптического распознавания символов (OCR) к фрагментам снимков, лежащим внутри областей-кандидатов. [0056] Returning to FIG. 3, in some applications, system 300 may acquire an input document image and may determine, within the input document image, a candidate region for each field of interest 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.). 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 image fragments lying within the candidate regions.

[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. System 300 selects heatmaps for each of the keywords and determines the probable position for a particular field in a document image. . For example, system 300 selects a heat map for the "Date" pivot and determines the probable position of a particular field (eg, the "Invoice #" field) relative to the "Date" pivot. The probable position of the field is determined on the basis of hypotheses formed on the basis of the values of the elements of the heat map that are above the threshold values. Similarly, system 300 selects a heatmap for the "Total" pivot and determines the probable position of a particular field (e.g., the "Invoice #" field) relative to the "Total" pivot, etc. for heatmaps of the various keywords found in the input. document. The system 300 then compares the heat maps and determines the intersection of the possible points identified by the different heat maps. The system 300 selects one or more points on the input document that correspond to the maximum number of overlapping heatmaps and determines an area, including the points, as a candidate area for a particular field (eg, "Invoice #" field) in the input document image. A threshold number may be specified for the number of intersecting points. If the number of intersecting points on the heat maps meets or exceeds the threshold number, then the selected site should be included in the candidate area. Accordingly, the candidate region is defined as a specific field in the input document.

[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 system 300 may repeat the training process, but with errors identified in the field detection process. This can further improve the quality of field detection.

[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. Method 700 and/or each of its individual functions, procedures, routines, or operations may be performed by one or more computer system processors (eg, computer system model 800 in FIG. 8) executing the method. In some applications, method 700 may be performed by a single processing thread. In another application, method 700 may be executed by two or more processing threads, each of which performs one or more separate functions, procedures, subroutines, or method steps. For example, the processing threads implementing method 700 may be synchronized (eg, using semaphores, critical sections, and/or other thread synchronization mechanisms). In another application, the processing threads that implement method 700 may execute asynchronously with respect to each other. Therefore, if in Fig. 7 and its associated description lists the operations of the method 700 in a particular order, various applications of the method may perform at least some of the described operations in parallel and/or in an arbitrary order. In one application, method 700 may be performed by one or more of the different components depicted in FIG. 1, such as the field detector 122, the field detection learning device 151, etc.

[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 exemplary computer system 800 that can perform any of the methods described herein in accordance with one or more embodiments of the present invention. In one example, computer system 800 may be associated with a computing device capable of implementing method 700 of FIG. 7. Computer system 800 may be connected (eg, over a network) to other computer systems on a local area network, intranet, extranet, or the Internet. Computer system 800 may operate as a server in a client/server network environment. Computer system 800 may be a personal computer (PC), tablet computer, set-top box (STB), personal digital assistant (PDA), mobile phone, camera, camcorder, or any device capable of executing a set of instructions (sequential or otherwise) that specifies actions that must be undertaken by this device. In addition, although only one computer system is illustrated, the term "computer" also refers to any collection of computers that individually or collectively execute a set (or multiple sets) of instructions to implement one or more of the methods discussed in this application.

[0069] Примерная вычислительная система 800 включает в себя устройство 802 обработки, память 804 (например память только для чтения (ROM), флэш-память, память динамического произвольного доступа (DRAM), например, синхронную DRAM (SDRAM)), а также устройство 818 хранения данных, которые обмениваются данными друг с другом по шине 830.[0069] An exemplary computing system 800 includes a processor 802, a memory 804 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM), such as synchronous DRAM (SDRAM)), and a device 818 storage units that communicate with each other over the 830 bus.

[0070] Устройство 802 обработки представляет собой одно или несколько устройств обработки общего назначения, таких как микропроцессор, центральный процессор и т. п. В частности, устройство 802 обработки может быть микропроцессором со сложным набором команд (CISC), микропроцессором с сокращенным набором команд (RISC), микропроцессором с командными словами сверхбольшой длины (VLIW) или процессором, реализующим другие наборы команд, или процессорами, реализующими комбинацию наборов команд. Устройство 802 обработки может также быть одним или несколькими специализированными устройствами обработки, такими как специализированная интегральная схема (ASIC), программируемая логическая интегральная схема (FPGA), процессор для цифровой обработки сигналов (DSP), сетевой процессор и т. п. Устройство 802 обработки настроено на выполнение инструкций для выполнения операций и шагов, описанных в настоящей заявке.[0070] The processor 802 is one or more general purpose processing devices such as a microprocessor, a central processing unit, etc. In particular, the processor 802 may be a complex instruction set microprocessor (CISC), a reduced instruction set microprocessor ( RISC), a microprocessor with extra long instruction words (VLIW), or a processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processor 802 may also be one or more dedicated processing devices such as an application specific integrated circuit (ASIC), a field-programmable logic integrated circuit (FPGA), a digital signal processor (DSP), a network processor, and the like. Processor 802 is configured to follow the instructions to perform the operations and steps described in this application.

[0071] Компьютерная система 800 может также включать в себя устройство 822 сопряжения с сетью. Компьютерная система 800 может также включать в себя блок 810 видеодисплея (например жидкокристаллический дисплей (LCD) или катодно-лучевую трубку (CRT)), устройство 812 ввода алфавитно-цифровых данных (например клавиатуру), устройство 814 управления курсором (например мышь) и устройство 816 формирования сигнала (например сеть). В одном наглядном примере блок 810 видеодисплея, устройство 812 ввода алфавитно-цифровых данных и устройство 814 управления курсором могут быть объединены в один компонент или устройство (например сенсорный LCD дисплей).[0071] Computer system 800 may also include a network interface device 822. Computer system 800 may also include a video display unit 810 (eg, a liquid crystal display (LCD) or cathode ray tube (CRT)), an alphanumeric input device 812 (eg, a keyboard), a cursor control device 814 (eg, a mouse), and a device 816 signal conditioning (eg network). In one illustrative example, the video display unit 810, the alphanumeric input device 812, and the cursor control device 814 may be combined into a single component or device (eg, an LCD touchscreen display).

[0072] Устройство 818 хранения данных может включать в себя машиночитаемый носитель 824, на котором хранятся инструкции 826, содержащие любую из описанных в настоящей заявке методик или функций. Инструкции 826 могут также находиться, полностью или хотя бы частично, в памяти 804 и (или) в устройстве 802 обработки во время их выполнения компьютерной системой 800, памятью 804 и устройством 802 обработки, которые являются также машиночитаемыми носителями. Далее инструкции 826 могут передаваться или приниматься по сети через устройство 822 сопряжения с сетью.[0072] Storage device 818 may include a computer-readable medium 824 that stores instructions 826 containing any of the techniques or functions described herein. Instructions 826 may also reside, in whole or at least in part, in memory 804 and/or processor 802 during their execution by computer system 800, memory 804, and processor 802, which are also computer-readable media. Further, the instructions 826 may be transmitted or received over the network via the network interface device 822.

[0073] В то время как машиночитаемый носитель 824 информации показан в иллюстративных примерах в виде единого носителя, термин «машиночитаемый носитель информации» следует понимать как включающий в себя один или несколько носителей информации (например централизованную или распределенную базу данных и (или) связанные с ней кэши и серверы), на которых хранится один или несколько наборов инструкций. Термин «машиночитаемый носитель информации» также означает любой носитель информации, который способен хранить, кодировать или переносить набор инструкций для выполнения машиной и который заставляет машину выполнять одну или несколько методик настоящего изобретения. Соответственно, термин «машиночитаемый носитель информации» включает в себя, в частности, полупроводниковую память, оптические и магнитные носители.[0073] While the computer-readable storage medium 824 is shown in the illustrative examples as a single medium, the term "machine-readable storage medium" should be understood as including one or more storage media (for example, a centralized or distributed database and (or) associated with caches and servers) that store one or more sets of instructions. The term "computer-readable medium" also means any medium that is capable of storing, encoding, or carrying a set of instructions for execution by a machine and that causes the machine to perform one or more of the techniques of the present invention. Accordingly, the term "computer-readable storage medium" includes, in particular, semiconductor memory, optical and magnetic media.

[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)

Способ определения точности пользовательской разметки, включающий в себя:A method for determining the accuracy of a custom markup, including: получение набора данных для обучения, содержащего несколько документов, причем каждый из нескольких документов соотносится с несколькими размеченными пользователем полями;obtaining a training dataset 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 specific combination of the 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; and установление наличия в двух или более других документах другой комбинации относительных положений дополнительных одного или нескольких полей, размеченных пользователем, относительно данного поля, если установлено, что конкретная комбинация повторяется в одном или нескольких дополнительных документах, причем:establishing the presence in two or more other documents of another combination of relative positions of additional one or more fields marked up by the user, relative to this field, if it is found that a particular combination is repeated in one or more additional documents, and: указание данного поля как размеченного правильно, если установлено, что другая комбинация не существует в двух или более других документах; иspecifying a given field as properly tokenized if it is determined that another combination does not exist in two or more other documents; and указание данного поля как размеченного противоречиво, если установлено, что данная комбинация существует в двух или более других документах. specifying a given field as tokenized is inconsistent if the given combination is found to exist in two or more other documents.
RU2021127301A 2021-09-16 Methods and systems for identifying fields in a document RU2774653C1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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