# US 9,563,904 B2 · Extracting product purchase information from electronic messages

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

- Number: US 9,563,904 B2
- Document ID: US9563904B2
- Status: Granted
- Kind: B2
- Application number: 14/519,919
- Filed: 2014-10-21
- Published: 2016-04-21
- Granted: 2017-02-07
- Earliest claimed: 2014-10-21
- Assignees: Slice Technologies, Inc.
- Applicants: Slice Technologies, Inc.
- Inventors: Ievgen Mastierov; Conal Sathi
- Web page: https://patentgrep.com/patent/US9563904B2

## CPC

- G06Q 20/047: {using payment protocols involving electronic receipts}
- G06F 16/355: Creation or modification of classes or clusters
- G06F 40/131: Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
- G06F 40/211: Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
- G06Q 30/0204: Market segmentation
- G06Q 30/0255: {based on user history}
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Improved systems and methods for extracting product purchase information from electronic messages transmitted between physical network nodes to convey product purchase information to designated recipients. These examples provide a product purchase information extraction service that is able to extract product purchase information from electronic messages with high precision across a wide variety of electronic message formats and thereby solve the practical problems that have arisen as a result of the proliferation of different electronic message formats used by individual merchants and across different merchants and different languages. In this regard, these examples are able to automatically learn the structures and semantics of different message formats, which accelerates the ability to support new message sources, new markets, and different languages.

## Claims

### Claim 1

A computer-implemented method, comprising:
for each purchase-related electronic message in a group of purchase-related electronic messages selected from a collection of electronic messages transmitted between network nodes and stored in a first networked non-transitory computer-readable memory,
segmenting, by a processor, contents of the electronic message into tokens;
matching the electronic message to one of multiple clusters of purchase-related electronic messages, wherein each cluster is associated with a respective grammar that recursively defines a respective allowable arrangement of tokens corresponding to structural elements of the electronic messages in the matched cluster;
parsing, by a processor, the tokens segmented from the electronic message in accordance with the grammar associated with the cluster matched to the electronic message, wherein the parsing comprises identifying the tokens segmented from the electronic message that correspond to respective structural elements defined in the grammar and extracting unidentified tokens segmented from the electronic message as field tokens;
determining classification features from the tokens corresponding to structural elements of the electronic messages in the matched cluster;
classifying, by at least one machine learning classifier, the extracted field tokens with respective product purchase relevant labels based on the determined classification features;
storing associations between the product purchase relevant labels and the respective extracted field tokens as aggregated data in a second networked non-transitory computer-readable memory; and
transmitting data for displaying a view based on the aggregated data on a client network node.

### Claim 2 (depends on 1)

The method of claim 1, wherein the matching comprises:
identifying a message sender of the electronic message;
ascertaining the clusters of electronic messages that are associated with the identified message sender;
with each of the ascertained clusters, associating a respective similarity score indicating a degree of similarity between contents of the electronic message and contents of the electronic messages of the ascertained cluster; and
matching the electronic message to the ascertained cluster associated with a highest one of the similarity scores.

### Claim 3 (depends on 2)

The method of claim 2, wherein each similarity score compares similarity and diversity of the contents of the electronic message and contents of a respective one of the electronic messages of the associated cluster.

### Claim 4 (depends on 3)

The method of claim 3, wherein each similarity score is computed based on a comparison of (i) an intersection of respective features of the selected electronic message and a respective one of the electronic messages in the associated cluster and (ii) a union of respective features of the selected electronic message and a respective one of the electronic messages in the associated cluster.

### Claim 5 (depends on 1)

The method of claim 1, wherein the segmenting comprises identifying strings of contiguous one or more symbols separated by blank spaces, and extracting each of the identified strings as a respective token.

### Claim 6 (depends on 1)

The method of claim 1, wherein the classifying comprises classifying each of a plurality of the extracted field tokens as one of: a price in a predetermined price classification taxonomy; an identifier in a predetermined identifier classification taxonomy; and an item description.

### Claim 7 (depends on 1)

The method of claim 1, wherein, for each cluster, the structural elements defined in the respective grammar comprise static structural elements each of which appears in all of the electronic messages in the cluster.

### Claim 8 (depends on 7)

The method of claim 7, wherein:
the parsing comprises ascertaining the field tokens that correspond to prices;
the determining comprises choosing as price classification features the identified tokens corresponding to static structural elements that immediately precede the field tokens ascertained to correspond to prices; and
the classifying comprises labeling the field tokens ascertained to correspond to prices based on the respective price classification features.

### Claim 9 (depends on 8)

The method of claim 8, wherein the price classification features comprise words in the identified tokens corresponding to static structural elements that immediately precede the field tokens ascertained to correspond to prices.

### Claim 10 (depends on 8)

The method of claim 8, wherein the choosing comprises, for each of a plurality of the price related field tokens: identifying a respective set of two-word phrases in a sequence of tokens immediately preceding the price related field token;
and selecting ones of the two-word phrases as the chosen price classification features for the respective price related field token.

### Claim 11 (depends on 7)

The method of claim 7, wherein:
the parsing comprises ascertaining the field tokens that correspond to identifiers;
the determining comprises choosing as identifier classification features the identified tokens corresponding to static structural elements that immediately precede the field tokens ascertained to correspond to identifiers; and
the classifying comprises labeling the field tokens ascertained to correspond to identifiers based on the respective identifier classification features.

### Claim 12 (depends on 11)

The method of claim 11, wherein the identifier classification features comprise: words in the identified tokens corresponding to structural elements that immediately precede the ascertained identifier related field tokens; and
characteristics of the ascertained identifier related field tokens.

### Claim 13 (depends on 1)

The method of claim 1, wherein:
the parsing comprises ascertaining the field tokens that correspond to item descriptions;
the determining comprises choosing as item description classification features characteristics of the field tokens ascertained to correspond to item descriptions; and
the classifying comprises labeling the field tokens ascertained to correspond to item descriptions based on the respective item description classification features.

### Claim 14 (depends on 1)

The method of claim 1, wherein the structural elements defined in the grammar comprise iterating static structural elements each of which appears in all of the electronic messages in the respective cluster and repeats in a plurality of the electronic messages in the respective cluster.

### Claim 15 (depends on 14)

The method of claim 14, wherein:
the parsing comprises ascertaining as iterator related field tokens the field tokens that are associated with the identified tokens that correspond to the iterating static structural elements defined in the grammar;
the determining comprises choosing as iterator classification features the identified tokens corresponding to iterating static structural elements adjacent the field tokens ascertained as iterator related field tokens; and
the classifying comprises labeling the field tokens ascertained as iterator related field tokens based on the respective iterator classification features.

### Claim 16 (depends on 15)

The method of claim 15, wherein the classifying comprises classifying each of the field tokens ascertained as iterator related field tokens as one of: a price; a quantity; and an item description.

### Claim 17 (depends on 1)

The method of claim 1, wherein the aggregated data permits computer-based generation of commercially relevant data sets in response to respective queries.

### Claim 18 (depends on 1)

The method of claim 1, further comprising, by computer apparatus, generating product purchase summary information based on the aggregated data, and transmitting data for displaying a visualization of the product purchase summary information on a physical network node.

### Claim 19 (depends on 1)

The method of claim 1, further comprising, for each selected electronic message, preprocessing the selected electronic message after the segmenting, wherein the preprocessing comprises replacing tokens in the selected message matching patterns for numbers with wildcard tokens.

### Claim 20

An apparatus, comprising non-transitory memory storing processor-readable instructions, and one or more processors coupled to the memory, configured to execute the instructions, and based at least in part on the execution of the instructions configured to perform operations comprising:
identifying purchase-related electronic messages in a collection of electronic messages transmitted between network nodes and stored in a first networked non-transitory computer-readable memory;
for each of a plurality of the identified purchase-related electronic messages,
segmenting, by a processor, contents of the identified electronic message into tokens;
matching the identified electronic message to one of multiple clusters of purchase-related electronic messages, wherein each cluster is associated with a respective grammar that recursively defines a respective allowable arrangement of tokens corresponding to structural elements of the electronic messages in the cluster matched to the identified electronic message;
parsing, by a processor, the tokens segmented from the identified electronic message in accordance with the grammar associated with the cluster matched to the identified electronic message, wherein the parsing comprises identifying the tokens segmented from the identified electronic message that correspond to respective structural elements defined in the grammar and extracting unidentified tokens segmented from the identified electronic message as field tokens;
determining classification features from the tokens corresponding to structural elements of the electronic messages in the matched cluster;
classifying, by at least one machine learning classifier, the extracted field tokens with respective product purchase relevant labels based on the determined classification features; and
storing associations between the product purchase relevant labels and the respective extracted field tokens as aggregated data in a second networked non-transitory computer-readable memory; and
in response to a request from a client network node, transmitting data for displaying a view based on the aggregated data on the client network node.

### Claim 21

At least one non-transitory computer-readable medium having processor-readable program code embodied therein, the processor-readable program code adapted to be executed by a processor to implement a method comprising:
for each purchase-related electronic message in a group of purchase-related electronic messages selected from a collection of electronic messages transmitted between network nodes and stored in a first networked non-transitory computer-readable memory,
segmenting, by a processor, contents of the electronic message into tokens;
matching the electronic message to one of multiple clusters of purchase-related electronic messages, wherein each cluster is associated with a respective grammar that recursively defines a respective allowable arrangement of tokens corresponding to structural elements of the electronic messages in the matched cluster;
parsing, by a processor, the tokens segmented from the electronic message in accordance with the grammar associated with the cluster matched to the electronic message, wherein the parsing comprises identifying the tokens segmented from the electronic message that correspond to respective structural elements defined in the grammar and extracting unidentified tokens segmented from the electronic message as field tokens;
determining classification features from the tokens corresponding to structural elements of the electronic messages in the matched cluster;
classifying, by at least one machine learning classifier, the extracted field tokens with respective product purchase relevant labels based on the determined classification features;
storing associations between the product purchase relevant labels and the respective extracted field tokens as aggregated data in a second networked non-transitory computer-readable memory; and
transmitting data for displaying a view based on the aggregated data on a client network node.

### Claim 22

An apparatus comprising at least one non-transitory memory storing processor-readable instructions, and at least one processor coupled to the memory, configured to execute the instructions, and based at least in part on the execution of the instructions configured to implement:
a product purchase information token parser configured to
segment contents of a selected electronic message into tokens,
match the selected electronic message to one of multiple clusters of purchase-related electronic messages transmitted between physical network nodes to convey product purchase information to designated recipients, wherein each cluster is associated with a respective grammar that recursively defines a respective allowable arrangement of tokens corresponding to structural elements of the electronic messages in the matched cluster, and
parse the tokens segmented from the selected electronic message in accordance with the grammar associated with the cluster matched to the selected electronic message, wherein the parsing comprises identifying the tokens segmented from the selected electronic message that correspond to respective structural elements defined in the grammar and extracting unidentified tokens segmented from the selected electronic message as field tokens;
a product purchase information token classifier configured to
determine classification features of the selected electronic message from the tokens corresponding to structural elements of the electronic messages in the matched cluster,
classify the extracted field tokens with respective product purchase relevant labels based on the determined classification features; and
non-transitory computer-readable memory storing associations between the product purchase relevant labels and the respective extracted field tokens in one or more data structures permitting computer-based generation of actionable purchase history information.
