IP Library Granted Patent US 11,531,927
Granted Patent B2
US 11,531,927 · App. 15/824,382 · Granted Dec 20, 2022

Categorical data transformation and clustering for machine learning using natural language processing

Inventors: Kourosh Modarresi (Santa Clara, CA); Abdurrahman Ibn Munir (South Deerfield, MA)
Assignee: Adobe Inc.
G06N20/00G06F16/243G06F16/285G06F16/355
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,531,927
App. No.
15/824,382
Granted
Dec 20, 2022
Kind
B2
Abstract

Categorical data transformation and clustering techniques and systems are described for machine learning using natural language processing. These techniques and systems are configured to improve operation of a computing device to support efficient and accurate use of categorical data, which is not possible using conventional techniques. In an example, categorical data is received by a computing device that includes a categorical variable having a non-numerical data type for a number of classes. The categorical data is then converted into numerical data using natural language processing. Data is then generated by the computing device that includes a plurality of latent classes. This is performed by clustering the numerical data into a number of clusters that is smaller than the number of classes in the categorical data.

Claims (54)

1. A method implemented by a computing device, the method comprising:

receiving, by the computing device, a plurality of categorical variables that, respectively, have a number of classes that are non-numerical;

responsive to determining, by the computing device, the number of classes in a first said categorical variable is less than a number, generating a first set of training data by converting the first said categorical variable into numerical data using natural language processing;

responsive to determining, by the computing device, the number of classes in a second said categorical variable is greater than the number, generating a second set of training data by:

converting the second said categorical variable into numerical data as vector representations using natural language processing;

generating a plurality of latent classes by clustering the vector representations of the numerical data from the second said categorical variable into a number of clusters having semantically similar said vector representations;

training, by the computing device, a model using machine learning based on:

the first set of training data including the numerical data converted from the first said categorical variable that have the number of classes that is less than the number; and

the second set of training data including the plurality of latent classes formed by clustering the numerical data from the second said categorical variables that have the number of classes that is greater than the number;

processing, by the computing device,

data having the plurality of categorical variables using the trained model.

2. The method as described in claim 1 , wherein the converting includes converting the second said categorical variable into the numerical data into n-gram vector representations.

3. The method as described in claim 1 , wherein the vector representations represents multiple words.

4. The method as described in claim 1 , wherein the clustering is based on features included in a set of strings of alphabetical text.

5. The method as described in claim 4 , wherein the features include bi-gram words and tri-gram characters.

6. The method as described in claim 1 , wherein the clustering uses a K-means clustering technique.

7. The method as described in claim 1 , wherein the clustering uses a Silhouette clustering technique based on a measure of:

cohesion indicating how similar numerical values, of the numerical data, are to each other within a respective said cluster; and

separation indicating how dissimilar numerical values, of the numerical data, are to at least one other said cluster.

8. The method as described in claim 1 , wherein the number is ten or more.

9. The method as described in claim 1 , wherein the second said categorical variable includes URLs.

10. The method as described in claim 1 , further comprising parsing the second said categorical variable and the converting is based on the parsed categorical variable.

11. The method as described in claim 10 , wherein the parsing includes removing characters from that include punctuation and stop words.

12. A computing device comprising:

a processing system; and

a computer-readable storage medium storing instructions that, responsive to execution by the processing system, configures the processing system to perform operations comprising:

receiving a plurality of categorical variables that have, respectively a number of classes that are non-numerical;

responsive to determining that the number of classes in a first said categorical variable is less than a number, converting the first said categorical variable into numerical data using natural language processing to form a first set of training data;

responsive to determining that the number of classes in a second said categorical variable is greater than the number, generating a second set of training data by:

converting the second said categorical variable into numerical data using natural language processing; and

generating a plurality of latent classes by clustering the numerical data of the second said categorical variable into a number of clusters that is smaller than the number of classes to form a second set of the training data;

training a model using machine learning using:

the first set of training data including the numerical data converted from the first said categorical variable that have the number of classes that is less than the number; and

the second set of training data including the plurality of latent classes formed by clustering the numerical data from the second said categorical variable that have the number of classes that is greater than the number; and

processing the plurality of categorical variables in subsequent data using the trained model.

13. The computing device as described in claim 12 , the operations further comprising parsing the second said categorical variable to remove characters that do not contribute to the clustering.

14. The computing device as described in claim 12 , wherein the numerical data is configured as vector representations.

15. The computing device as described in claim 14 , wherein characters in the plurality of categorical variables are converted into the vector representations.

16. The computing device as described in claim 12 , wherein the clustering is based on a measure of:

cohesion indicating how similar numerical values, of the numerical data, are to each other within a respective said cluster; and

separation indicating how dissimilar numerical values, of the numerical data, are to at least one other said cluster.

17. The computing device as described in claim 12 , wherein the number has been found to produce results having limited accuracy.

18. One or more computer readable storage media storing instructions that, responsive to execution by a processing system, causes the processing system to perform operations comprising:

receiving a plurality of categorical variables having, respectively, a non-numerical data type having a number of classes;

responsive to determining that the number of classes in a first said categorical variable is less than a number, converting the first said categorical variable into numerical data using natural language processing to form a first set of training data;

responsive to determining that the number of classes in a second said categorical variable is greater than the number, generating a second set of training data by:

converting the second said categorical variable into numerical data using natural language processing; and

generating a plurality of latent classes by clustering the numerical data from the second said categorical variable into a number of clusters that is smaller than the number of classes to form the second set of training data;

training a model using machine learning using:

the first set of training data including the numerical data converted from the first said categorical variable that has the number of classes that is less than the number; and

the second set of training data including the plurality of latent classes formed by clustering the numerical data from the second said categorical variable that have the number of classes that is greater than the number; and

processing subsequent data using the trained model.

19. The one or more computer readable storage media as described in claim 18 , wherein the converting includes converting the second said categorical variable into the numerical data as vector representations of the number of classes.

20. The one or more computer readable storage media as described in claim 18 , further comprising parsing the second said categorical variable to remove characters that do not contribute to clustering.

Assignments (2)
CHANGE OF NAME Recorded Jan 21, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048103/0226 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2017
From: MODARRESI, KOUROSH; MUNIR, ABDURRAHMAN IBN
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 044275/0870 →
Continuity (1)
Related Publication 20190164083A1 · May 30, 2019
Cited By (1)
US 12,373,874