# US 12,001,446 B2 · System and method for extracting data from invoices and contracts

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,446 B2
- Document ID: US12001446B2
- Status: Granted
- Kind: B2
- Application number: 17/719,196
- Filed: 2022-04-12
- Published: 2023-10-12
- Granted: 2024-06-04
- Earliest claimed: 2022-04-12
- Assignees: Thinking Machine Systems Ltd.
- Applicants: Thinking Machine Systems Ltd.
- Inventors: Richard Martin
- Web page: https://patentgrep.com/patent/US12001446B2

## CPC

- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/355: Creation or modification of classes or clusters
- G06F 16/285: {Clustering or classification}
- G06F 16/383: using metadata automatically derived from the content
- G06N 5/022: Knowledge engineering; Knowledge acquisition
- G06F 40/279: Recognition of textual entities
- G06V 30/10: Character recognition
- G06V 30/416: Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING

## Abstract

A data processing system and corresponding method are presented. The system includes a communication module to retrieve a first document and a second document; a first database to store the first and second documents; and a processor. The processor extracts first data from the first document, orders the first data into a first data structure using a set of translation tables. The processor also extracts second data from the second document, orders the second data into a second data structure using the set of translation tables. The first data structure and the second data structure have a first and a second format, respectively. The first data and the second data comprise a plurality of entities, and the processor is configured to compare entities from the first data structure and the second data structure to identify matching entities.

## Claims

### Claim 1

A computer implemented method for processing data, the method comprising:
retrieving a first document containing unstructured or semi-structured data or a combination of both;
extracting first data from the unstructured or semi-structured data contained in the first document;
ordering the first data into a first data structure using a set of translation tables; wherein the first data structure has a first format;
retrieving a second document containing unstructured or semi-structured data or a combination of both;
extracting second data from the unstructured or semi-structured data contained in the second document;
wherein the extracting second data from the second document is performed using an extraction table having a predefined format configured to pre-order the second data;
ordering the second data into a second data structure using the set of translation tables; wherein the second data structure has a second format;
wherein the first data and the second data comprise a plurality of entities, and
comparing entities from the first data structure and the second data structure to identify matching entities,
wherein ordering the first data and the second data comprises executing a natural language processing algorithm configured to process the first data and the second data using the set of translation tables;
wherein the natural language processing algorithm is configured to identify primitive entities and to label each primitive entity with an attribute among a set of attributes;
wherein the set of attributes comprises at least one of a technology attribute, an action attribute, a destination attribute, an origination attribute, a location attribute, a country attribute, and a rule attribute.

### Claim 2 (depends on 1)

The method as claimed in claim 1, wherein the translation tables are derived from a common ontology representing relationship between entity classes present in the first document and the second document.

### Claim 3 (depends on 1)

The method as claimed in claim 1, wherein the first format of the first data structure matches a predefined data model.

### Claim 4 (depends on 1)

The method as claimed in claim 1, wherein extracting data comprises executing an optical character recognition algorithm configured to identify metadata.

### Claim 5 (depends on 1)

The method as claimed in claim 1, wherein the natural language processing algorithm is configured to identify a hierarchy between entities.

### Claim 6 (depends on 1)

The method as claimed in claim 1, wherein the set of translation tables comprises at least one of a service reference definition table, a service attributes table, a service to location mapping table, a location mapping table, a location rule definition table, and a location to country mapping table.

### Claim 7 (depends on 1)

The method as claimed in claim 1, further comprising executing a machine learning algorithm configured to analyse metadata to identify patterns or structures associated with a particular type of tables.

### Claim 8 (depends on 7)

The method as claimed in claim 7, further comprising collecting training data and training the machine learning algorithm using the training data.

### Claim 9 (depends on 7)

The method as claimed in claim 7, wherein the machine learning algorithm comprises a classifier of tables for classifying table data.

### Claim 10 (depends on 4)

The method as claimed in claim 4, comprising
comparing the metadata to identify one or more sets of related data;
for each set extracting and merging related data into a merged dataset; and
identifying a class associated with the merged dataset using the natural language processing algorithm.

### Claim 11 (depends on 10)

The method as claimed in claim 10, wherein the optical character recognition algorithm is configured to identify and extract text data and table data from the first and second documents.

### Claim 12 (depends on 11)

The method as claimed in claim 11, wherein the natural language processing algorithm is configured to classify table data into several classes and to combine table data having a same class.

### Claim 13 (depends on 1)

The method as claimed in claim 1, wherein the first document has a first document structure, and wherein the second document has a second document structure different from the first document structure.

### Claim 14 (depends on 1)

The computer implemented method as claimed in claim 1, wherein the first document and the second document are telecommunication documents.

### Claim 15 (depends on 1)

The method as claimed in claim 1, wherein comparing entities is performed using the set of translation tables.

### Claim 16 (depends on 1)

The method as claimed in claim 1, comprising executing a decision software engine configured to analyse the first and second data structures based on client specifications inputs and generating a report based on the analysis.

### Claim 17

A system for processing data, the system comprising:
a communication module configured to retrieve a first document and a second document, wherein the first document contains unstructured or semi structured data or a combination of both; and wherein the second document contains unstructured or semi structured data or a combination of both;
a first database configured to store the first and second documents; and
a processor configured to extract first data from the unstructured or semi-structured data contained in the first document;
to order the first data into a first data structure using a set of translation tables; wherein the first data structure has a first format;
to extract second data from the unstructured or semi-structured data contained in the second document using an extraction table having a predefined format configured to pre-order the second data; and
to order the second data into a second data structure using the set of translation tables; wherein the second data structure has a second format;
wherein the first data and the second data comprise a plurality of entities, the processor being configured to compare entities from the first data structure and the second data structure to identify matching entities, and
wherein the processor is configured to order the first data and the second data by executing a natural language processing algorithm configured to process data using the set of translation tables;
wherein the natural language processing algorithm is configured to identify primitive entities and to label each primitive entity with an attribute among a set of attributes;
wherein the set of attributes comprises at least one of a technology attribute, an action attribute, a destination attribute, an origination attribute, a location attribute, a country attribute, and a rule attribute.

### Claim 18 (depends on 17)

The system as claimed in claim 17, further comprising a second database for storing the first data structure and the second data structure, and a third database for storing the translation tables.

### Claim 19 (depends on 17)

The system as claimed in claim 17, wherein the processor is configured to load a data interpretation model, and to execute a natural language processing algorithm to perform classification based on the data interpretation model.

### Claim 20 (depends on 1)

A non-transitory computer-readable data carrier having stored thereon instructions which when executed by a computer cause the computer to carry out the method of claim 1.
