# US 2022/0284392 A1 · Automated extraction, inference and normalization of structured attributes for product data

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

- Number: US 2022/0284392 A1
- Document ID: US20220284392A1
- Status: Published application
- Kind: A1
- Application number: 17/660,756
- Filed: 2022-04-26
- Published: 2022-09-08
- Earliest claimed: 2020-01-10
- Assignees: Hearst Magazine Media, Inc.
- Applicants: Hearst Magazine Media, Inc.
- Inventors: Govind Chandrasekhar; Ramanan Balakrishnan; Praveen Sekar; Yashaswini D R; Shiva Sankar Selva Kumar Valsala Kumari; Vijay Mohanbhai Bambhaniya; Srinivasan Kidambi Sridharan; Vinoth Gopinathan; Varun Sivamani; Raj Bhandari; Asmit Kumar; Dinesh Kumar Nalluri
- Web page: https://patentgrep.com/patent/US20220284392A1

## CPC

- G06F 7/32: Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence {merging methods in general}(G06F7/36 takes precedence)
- G06Q 10/0838: {Historical data}
- G06F 7/14: Merging, i.e. combining at least two sets of record carriers each arranged in the same ordered sequence to produce a single set having the same ordered sequence
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/258: {Data format conversion from or to a database}
- G06N 3/0442: characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/09: Supervised learning
- G06N 3/091: Active learning
- G06N 3/092: Reinforcement learning
- G06N 3/096: Transfer learning
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 5/02: Knowledge representation; Symbolic representation
- G06N 20/00: Machine learning
- G06N 20/20: Ensemble learning
- G06N 3/006: based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
- G06N 3/044: Recurrent networks, e.g. Hopfield networks
- G06N 3/045: Combinations of networks
- G06N 3/08: Learning methods
- G06Q 10/0831: Overseas transactions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- 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
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for automated extraction, inference and normalization of structured attributes for a Product Category Normalizer to access product records from external data sources. The Product Category Normalizer defines a product-description taxonomy of product categories represented by a classification tree. The Product Category Normalizer employs product attribute data and machine learning techniques to analyze the product data of an input product record. Based on the product data of the input product record, the Product Category Normalizer extracts and infers appropriate product data for a relevant product category in the classification tree for the item described by the input product record. The Product Category Normalizer normalizes the product data of the input product record. The Product Category Normalizer provides an output normalized product record related to a product category and product attributes of the classification tree.

## Claims

### Claim 1

A computer-implemented method, comprising:
defining a product-description taxonomy represented according to a classification tree by clustering tags using product data from product records in a product catalog,
the classification tree comprising at least one product category path defined by one or more product category nodes at successively deeper tree levels,
wherein a given product category node is associated with at least one product attribute-key paired with one or more key-values;
defining key data using the product data, the key data comprising:
at least one product attribute-key,
one or more allowed key-values, and
a representative key-value associated with a set of equivalent key-values; and
applying:
one or more machine learning (ML) models, and
the key data, and/or heuristic data, the heuristic data defined using the product data and the key data, the heuristic data comprising: a mapping between a product attribute-key and a set of one or more equivalent attribute-keys and at least one key-value exclusive to a particular product attribute-key,
to an input product record to generate an output normalized product record categorizing the input product record according to the classification tree's product-description taxonomy.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, the method further comprising:
accessing a first product page, the first product page comprising data about a respective product;
extracting product attributes from the first product page;
creating a first product data record using the extracted product attributes, wherein the first product record is missing a first attribute that corresponds to a code from a first taxonomy;
providing the first product data record to one or more machine learning models;
using the one or more machine learning models to predict, based at least in part on a destination associated with the first product, the first attribute that corresponds to a code from a first taxonomy; and
using the first predicted attribute with respect to cross-border shipping of the first product.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein defining at least one product attribute-key comprises:
sampling a subset of product records from the product catalog;
detecting product category data in for at least one sampled product record;
clustering the sample product record with similar product category data;
for at least one record cluster:
building an attribute histogram using a distribution of occurrences of product category attribute data in the record cluster;
creating an attribute-product set comprising product-attribute-keys using a portion of the attribute histogram and a data type of for at least one attribute-key; and
assigning the attribute-product set to a particular node in the classification tree.

### Claim 4 (depends on 2)

The computer-implemented method of claim 2, wherein defining one or more allowed key-values for the node comprises:
for at least one record cluster:
building a key-value histogram using a distribution of occurrences of product category value data in the record cluster;
for at least one product attribute-key, creating an attribute-allowed-values set using a portion of the key-value histogram.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein defining a representative key-value matched to a set of equivalent key-values comprises:
identifying sampled product records with matching product identifiers;
building product identifier clusters using sampled product records with matching product identifiers;
for at least one product identifier cluster:
collecting key data with value data from the sampled product records in the cluster;
detecting key data matching a particular attribute-key in a respective attribute-allowed-values set;
defining a most-frequently occurring value data of the matching key data as a representative-key-value; and
generating an attribute-equivalent-values set for the particular attribute-key comprising:
the representative-key-value associated with a remaining plurality of values of the detected, and
matching key data.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein defining a mapping in the heuristic data comprises:
sampling a subset of product records from the product catalog;
collecting one or more structured key-value pairs from a sampled product record;
comparing for at least one structured key-value pair to one or more attribute-allowed-values sets for product attribute-keys;
identifying a candidate-key from a respective structured key-pair upon determining the structured key satisfies a similarity threshold with an allowed attribute-key in one of the compared attribute-allowed-values sets;
creating a key-mapping heuristic between the candidate key and a particular product attribute-key associated with the compared attribute-allowed-values sets that includes the similar, allowed attribute-key;
comparing for at least one structured key-value pair to one or more attribute-equivalent-values set;
identifying a candidate-value from a respective structured key-pair upon determining the structured value satisfies a similarity threshold with an equivalent key-value in one of the compared attribute-equivalent-values set; and
creating a value-mapping heuristic between the candidate value and a particular representative key-value associated with the compared attribute-equivalent-values set that includes the similar, equivalent key-value.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein defining a plurality of key-values exclusive to a particular product attribute-key in the heuristic data comprises:
sampling a subset of product records from the product catalog;
building a key-value histogram using a distribution of occurrences of value data for product attribute data in the sample product records;
identifying, in the key-value histogram, key value data for particular product attribute data that minimally occurs for other product attribute data;
comparing the particular product attribute data with the attribute-allowed-values set to identify an allowed attribute-key that satisfies a similarity threshold with the particular product attribute data; and
generating a value-dictionary heuristic that defines the identified key value data as an exclusive key-value for the attribute-allowed-values set that includes the similar allowed attribute-key.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, the method further comprising defining a frequent text phrase as a regex key-value that corresponds to a product attribute-key in the heuristic data by at least:
sampling a subset of product records from the product catalog;
accessing in the key data one or more related attribute-product sets and attribute-allowed-values sets;
combining the related sets;
indicating text in a sampled product record that matches one or more entries in the combined set;
detecting a first indicated text occurs within a threshold distance of a second indicated text;
detecting a threshold spacing is satisfied between the first and the second indicated text;
identifying a first entry in the combined set that matches the first indicated text;
identifying a second entry in the combined set that matches the second indicated text;
generating a regex key-value heuristic includes the first entry, the second entry and spacing for inserting of select key-values; and
associating the regex key-value heuristic with related attribute-product set from the combined set.

### Claim 9 (depends on 1)

The method of claim 1, wherein generating an output normalized product record for an input product record comprises:
feeding the input product record into one or more machine learning (ML) models to predict a product category for the input product record from the classification tree's product-description taxonomy;
identifying, for the predicted product category, a product category path of one or more nodes in the classification tree;
accessing, in the key data, a product attribute-list for at least one elder node in the product category path at a higher-tree level above the node for the predicted product category and access the attribute-allowed-values sets that correspond to the product attribute-lists of for at least one elder node;
generating a set of record attribute-keys to be considered for the input product record using the accessed attribute-product sets and corresponding attribute-allowed-values sets of the elder nodes;
extracting text from the input product record; and
generating a pre-processed product record comprising the input product record, the predicted product category, the set of record attribute-keys and the extracted text.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
feeding the input product record into one or more machine learning (ML) models to predict a product category for the input product record from the classification tree's product-description taxonomy;
identifying, for the predicted product category, a product category path of one or more nodes in the classification tree;
accessing, in the key data, a product attribute-list for at least one elder node in the product category path at a higher-tree level above the node for the predicted product category and access the attribute-allowed-values sets that correspond to the product attribute-lists of for at least one elder node;
generating a set of record attribute-keys to be considered for the input product record using the accessed attribute-product sets and corresponding attribute-allowed-values sets of the elder nodes;
extracting text from the input product record;
generating a pre-processed product record comprising the input product record, the predicted product category, the set of record attribute-keys and the extracted text;
identifying one or more attribute-keys in the set of record attribute-keys that map to a portion of the extracted text via one or more key-mapping heuristics;
feeding the pre-processed product record into one or more extraction ML models;
identifying ML output and one or more mapped attribute-keys as extracted attribute-keys; and
creating an extracted product record by inserting the extracted attribute-keys into the pre-processed product record.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
feeding the input product record into one or more machine learning (ML) models to predict a product category for the input product record from the classification tree's product-description taxonomy;
identifying, for the predicted product category, a product category path of one or more nodes in the classification tree;
accessing, in the key data, a product attribute-list for at least one elder node in the product category path at a higher-tree level above the node for the predicted product category and access the attribute-allowed-values sets that correspond to the product attribute-lists of for at least one elder node;
generating a set of record attribute-keys to be considered for the input product record using the accessed attribute-product sets and corresponding attribute-allowed-values sets of the elder nodes;
extracting text from the input product record;
generating a pre-processed product record comprising the input product record, the predicted product category, the set of record attribute-keys and the extracted text;
identifying one or more attribute-keys in the set of record attribute-keys that map to a portion of the extracted text via one or more key-mapping heuristics;
feeding the pre-processed product record into one or more extraction ML models;
identifying ML output and one or more mapped attribute-keys as extracted attribute-keys;
creating an extracted product record by inserting the extracted attribute-keys into the pre-processed product record;
identifying one or more inferred attribute-keys as output from feeding the extracted product record into one or more ML models; and
creating an extracted product record by inserting inferred attribute-keys into the extracted product record.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
feeding the input product record into one or more machine learning (ML) models to predict a product category for the input product record from the classification tree's product-description taxonomy;
identifying, for the predicted product category, a product category path of one or more nodes in the classification tree;
accessing, in the key data, a product attribute-list for at least one elder node in the product category path at a higher-tree level above the node for the predicted product category and access the attribute-allowed-values sets that correspond to the product attribute-lists of for at least one elder node;
generating a set of record attribute-keys to be considered for the input product record using the accessed attribute-product sets and corresponding attribute-allowed-values sets of the elder nodes;
extracting text from the input product record;
generating a pre-processed product record comprising the input product record, the predicted product category, the set of record attribute-keys and the extracted text;
identifying one or more attribute-keys in the set of record attribute-keys that map to a portion of the extracted text via one or more key-mapping heuristics;
feeding the pre-processed product record into one or more extraction ML models;
identifying ML output and one or more mapped attribute-keys as extracted attribute-keys;
creating an extracted product record by inserting the extracted attribute-keys into the pre-processed product record;
compare the extracted product record to one or more attribute-product sets to determine a value data type for at least one inferred attribute-key;
for a given inferred attribute-key with a numeric data type, access a scale conversion library to identify a scaled unit conversion for the numeric attribute; and
for a given inferred attribute-key with a textual data type, normalize the extracted attribute-key.

### Claim 13 (depends on 1)

The computer-implemented method of claim 1, wherein at least one product record comprises data extracted from an image.

### Claim 14

A system comprising:
one or more processors; and
a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:
defining a product-description taxonomy represented according to a classification tree comprising clustering tags using product data from product records in a product catalog, the classification tree comprising at least one product category path defined by one or more product category nodes at successively deeper tree levels, at least one product category node associated with at least one product attribute-key paired with one or more key-values;
defining key data using the product data, the key data comprising:
at least one product attribute-key,
one or more allowed key-values, and
a representative key-value corresponding to a set of equivalent key-values;
defining heuristic data using the product data and the key data, the heuristic data comprising:
a mapping between a product attribute-key and a set of equivalent attribute-keys, and
at least one key-value exclusive to a particular product attribute-key; and
applying:
one or more machine learning (ML) models, and
the key data, and/or heuristic data, the heuristic data defined using the product data and the key data, the heuristic data comprising a mapping between a product attribute-key and a set of equivalent attribute-keys,
to an input product record to generate an output normalized product record categorizing the input product record according to the classification tree's product-description taxonomy.

### Claim 15 (depends on 14)

The system of claim 14, the system further configured to:
access a first product page, the first product page comprising data about a respective product;
extract product attributes from the first product page;
define a first product data record using the extracted product attributes, wherein the first product record is missing a first attribute that corresponds to a code from a first taxonomy;
use one or more machine learning models to predict, based at least in part on a destination associated with the first product, the first attribute that corresponds to a code from a first taxonomy; and
use the first predicted attribute with respect to cross-border shipping of the first product.

### Claim 16 (depends on 14)

The system of claim 14, wherein at least one product record comprises data extracted from an image.

### Claim 17 (depends on 14)

The system of claim 14, wherein defining at least one product attribute-key comprises:
sampling a subset of product records from the product catalog;
detecting product category data in at least one sampled product record;
clustering the sample product record with similar product category data;
for at least one record cluster:
building an attribute histogram using a distribution of occurrences of product category attribute data in the record cluster;
creating an attribute-product set comprising product-attribute-keys using a portion of the attribute histogram and a data type of for at least one attribute-key; and
assigning the attribute-product set to a particular node in the classification tree.

### Claim 18 (depends on 14)

The system of claim 14, wherein defining a plurality of allowed key-values for the node comprises:
for at least one record cluster:
building a key-value histogram using a distribution of occurrences of product category value data in the record cluster;
for at least one product attribute-key, creating an attribute-allowed-values set using a portion of the key-value histogram.

### Claim 19 (depends on 14)

The system of claim 14, wherein defining a representative key-value matched to a set of equivalent key-values comprises:
identifying sampled product records with matching product identifiers;
building product identifier clusters using sampled product records with matching product identifiers;
for at least one product identifier cluster:
collecting key data with value data from the sampled product records in the cluster;
detecting key data matching a particular attribute-key in a respective attribute-allowed-values set;
defining a most-frequently occurring value data of the matching key data as a representative-key-value; and
generating an attribute-equivalent-values set for the particular attribute-key comprising:
the representative-key-value associated with a remaining plurality of values of the detected, and matching key data.

### Claim 20 (depends on 14)

The system of claim 14, wherein defining a mapping in the heuristic data comprises:
sampling a subset of product records from the product catalog;
collecting one or more structured key-value pairs from a sampled product record;
comparing for at least one structured key-value pair to one or more attribute-allowed-values sets for product attribute-keys;
identifying a candidate-key from a respective structured key-pair upon determining the structured key satisfies a similarity threshold with an allowed attribute-key in one of the compared attribute-allowed-values sets;
creating a key-mapping heuristic between the candidate key and a particular product attribute-key associated with the compared attribute-allowed-values sets that includes the similar, allowed attribute-key;
comparing for at least one structured key-value pair to one or more attribute-equivalent-values set;
identifying a candidate-value from a respective structured key-pair upon determining the structured value satisfies a similarity threshold with an equivalent key-value in one of the compared attribute-equivalent-values set; and
creating a value-mapping heuristic between the candidate value and a particular representative key-value associated with the compared attribute-equivalent-values set that includes the similar, equivalent key-value.

### Claim 21 (depends on 14)

The system of claim 14, wherein defining a plurality of key-values exclusive to a particular product attribute-key in the heuristic data comprises:
sampling a subset of product records from the product catalog;
building a key-value histogram using a distribution of occurrences of value data for product attribute data in the sample product records;
identifying, in the key-value histogram, key value data for particular product attribute data that minimally occurs for other product attribute data;
comparing the particular product attribute data with the attribute-allowed-values set to identify an allowed attribute-key that satisfies a similarity threshold with the particular product attribute data; and
generating a value-dictionary heuristic that defines the identified key value data as an exclusive key-value for the attribute-allowed-values set that includes the similar allowed attribute-key.

### Claim 22 (depends on 14)

The system of claim 14, wherein the system is configured to define a frequent text phrase as a regex key-value that corresponds to a product attribute-key in the heuristic data by at least:
sampling a subset of product records from the product catalog;
accessing in the key data one or more related attribute-product sets and attribute-allowed-values sets;
combining the related sets;
indicating text in a sampled product record that matches one or more entries in the combined set;
detecting a first indicated text occurs within a threshold distance of a second indicated text;
detecting a threshold spacing is satisfied between the first and the second indicated text;
identifying a first entry in the combined set that matches the first indicated text;
identifying a second entry in the combined set that matches the second indicated text;
generating a regex key-value heuristic includes the first entry, the second entry and spacing for inserting of select key-values; and
associating the regex key-value heuristic with related attribute-product set from the combined set.

### Claim 23 (depends on 14)

The system of claim 14, wherein generating an output normalized product record for an input product record comprises:
feeding the input product record into one or more machine learning (ML) models to predict a product category for the input product record from the classification tree's product-description taxonomy;
identifying, for the predicted product category, a product category path of one or more nodes in the classification tree;
accessing, in the key data, a product attribute-list for at least one elder node in the product category path at a higher-tree level above the node for the predicted product category and access the attribute-allowed-values sets that correspond to the product attribute-lists of for at least one elder node;
generating a set of record attribute-keys to be considered for the input product record using the accessed attribute-product sets and corresponding attribute-allowed-values sets of the elder nodes;
extracting text from the input product record; and
generating a pre-processed product record comprising the input product record, the predicted product category, set of record attribute-keys and the extracted text.

### Claim 24 (depends on 14)

The system of claim 14, wherein generating an output normalized product record for an input product record comprises:
feeding the input product record into one or more machine learning (ML) models to predict a product category for the input product record from the classification tree's product-description taxonomy;
identifying, for the predicted product category, a product category path of one or more nodes in the classification tree;
accessing, in the key data, a product attribute-list for at least one elder node in the product category path at a higher-tree level above the node for the predicted product category and access the attribute-allowed-values sets that correspond to the product attribute-lists of for at least one elder node;
generating a set of record attribute-keys to be considered for the input product record using the accessed attribute-product sets and corresponding attribute-allowed-values sets of the elder nodes;
extracting text from the input product record; and
generating a pre-processed product record comprising the input product record, the predicted product category, set of record attribute-keys and the extracted text;
wherein the system is further configured to:
identify one or more attribute-keys in the set of record attribute-keys that map to a portion of the extracted text via one or more key-mapping heuristics;
feed the pre-processed product record into one or more extraction ML models;
identify ML output and one or more mapped attribute-keys as extracted attribute-keys; and
create an extracted product record by inserting the extracted attribute-keys into the pre-processed product record.

### Claim 25 (depends on 14)

The system of claim 14, wherein generating an output normalized product record for an input product record comprises:
feeding the input product record into one or more machine learning (ML) models to predict a product category for the input product record from the classification tree's product-description taxonomy;
identifying, for the predicted product category, a product category path of one or more nodes in the classification tree;
accessing, in the key data, a product attribute-list for at least one elder node in the product category path at a higher-tree level above the node for the predicted product category and access the attribute-allowed-values sets that correspond to the product attribute-lists of for at least one elder node;
generating a set of record attribute-keys to be considered for the input product record using the accessed attribute-product sets and corresponding attribute-allowed-values sets of the elder nodes;
extracting text from the input product record; and
generating a pre-processed product record comprising the input product record, the predicted product category, set of record attribute-keys and the extracted text;
wherein the system is further configured to:
identify one or more attribute-keys in the set of record attribute-keys that map to a portion of the extracted text via one or more key-mapping heuristics;
feed the pre-processed product record into one or more extraction ML models;
identify ML output and one or more mapped attribute-keys as extracted attribute-keys;
create an extracted product record by inserting the extracted attribute-keys into the pre-processed product record;
identify one or more attribute-keys in the set of record attribute-keys that map to a portion of the extracted text via one or more key-mapping heuristics;
feed the pre-processed product record into one or more extraction ML models;
identifying ML output and one or more mapped attribute-keys as extracted attribute-keys;
create an extracted product record by inserting the extracted attribute-keys into the pre-processed product record;
identify one or more inferred attribute-keys as output from feeding the extracted product record into one or more ML models; and
create an extracted product record by inserting inferred attribute-keys into the extracted product record.

### Claim 26 (depends on 14)

The system of claim 14, wherein generating an output normalized product record for an input product record comprises:
feeding the input product record into one or more machine learning (ML) models to predict a product category for the input product record from the classification tree's product-description taxonomy;
identifying, for the predicted product category, a product category path of one or more nodes in the classification tree;
accessing, in the key data, a product attribute-list for at least one elder node in the product category path at a higher-tree level above the node for the predicted product category and access the attribute-allowed-values sets that correspond to the product attribute-lists of for at least one elder node;
generating a set of record attribute-keys to be considered for the input product record using the accessed attribute-product sets and corresponding attribute-allowed-values sets of the elder nodes;
extracting text from the input product record; and
generating a pre-processed product record comprising the input product record, the predicted product category, set of record attribute-keys and the extracted text;
wherein the system is further configured to:
identify one or more attribute-keys in the set of record attribute-keys that map to a portion of the extracted text via one or more key-mapping heuristics;
feed the pre-processed product record into one or more extraction ML models;
identify ML output and one or more mapped attribute-keys as extracted attribute-keys;
create an extracted product record by inserting the extracted attribute-keys into the pre-processed product record;
identify one or more attribute-keys in the set of record attribute-keys that map to a portion of the extracted text via one or more key-mapping heuristics;
feed the pre-processed product record into one or more extraction ML models;
identify ML output and one or more mapped attribute-keys as extracted attribute-keys;
create an extracted product record by inserting the extracted attribute-keys into the pre-processed product record;
identify one or more inferred attribute-keys as output from feeding the extracted product record into one or more ML models;
create an extracted product record by inserting inferred attribute-keys into the extracted product record;
compare the extracted product record to one or more attribute-product sets to determine a value data type for at least one inferred attribute-key;
for given inferred attribute-key with a numeric data type, access a scale conversion library to identify a scaled unit conversion for the numeric attribute; and
for a given inferred attribute-key with a textual data type, normalize the inferred attribute-key.
