# US 11,907,657 B1 · Dynamically extracting n-grams for automated vocabulary updates

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

- Number: US 11,907,657 B1
- Document ID: US11907657B1
- Status: Granted
- Kind: B1
- Application number: 18/217,523
- Filed: 2023-06-30
- Granted: 2024-02-20
- Earliest claimed: 2023-06-30
- Assignees: Intuit Inc.
- Applicants: Intuit Inc.
- Inventors: Byungkyu Kang; Shivakumara Narayanaswamy; Andrew Mattarella-Micke
- Web page: https://patentgrep.com/patent/US11907657B1

## CPC

- G06F 40/279: Recognition of textual entities
- G06F 40/242: Dictionaries
- G06F 40/284: Lexical analysis, e.g. tokenisation or collocates
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods dynamically extracting n-grams for automated vocabulary updates. Text is received. An n-gram extracted from the text is matched to a canonical n-gram from a vocabulary to identify a tag for the text. An n-gram weight is computed for the n-gram extracted from the text. The n-gram weight may be computed by adjusting a term frequency of the n-gram. A relevancy score is computed for the tag using the n-gram weight and using an n-gram frequency of the canonical n-gram. The relevancy score is computed by dividing the n-gram weight by a value proportional to the n-gram frequency of the canonical n-gram. The relevancy score of the n-gram is presented.

## Claims

### Claim 1

A method, comprising:
receiving text;
matching an n-gram extracted from the text to a canonical n-gram from a vocabulary to identify a tag for the text;
computing an n-gram weight for the n-gram extracted from the text, wherein the n-gram weight is computed by adjusting a term frequency of the n-gram;
computing a relevancy score for the tag using the n-gram weight and using an n-gram frequency of the canonical n-gram, wherein the relevancy score is computed by dividing the n-gram weight by a value proportional to the n-gram frequency of the canonical n-gram; and
presenting the relevancy score of the n-gram.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
ranking the n-gram within a set of n-grams extracted from the text using a maximum marginal relevance algorithm and using an embedding vector for the n-gram.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
grouping the tag with a set of tags corresponding to the canonical n-gram to combine a set of n-gram weights comprising the n-gram weight to form a combined weight, wherein the set of tags correspond to a set of n-grams mapped to the canonical n-gram; and
computing the relevancy score using the combined weight for the n-gram weight.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
selecting a threshold number of n-grams using the relevancy score; and
presenting the relevancy score identifying the n-gram as a keyword of the text.

### Claim 5 (depends on 1)

The method of claim 1, wherein the vocabulary is periodically updated to include data from a recent update interval and remove data from a previous update interval, wherein the n-gram is identified with an n-gram tag of a set of tags that identify metadata of the text, wherein the metadata comprises n-gram identifiers, document identifiers, participant identifiers, and timestamp identifiers.

### Claim 6 (depends on 1)

The method of claim 1, wherein the vocabulary is updated by:
selecting a set of historical data comprising one or more conversations and search queries during a time window comprising a plurality of update intervals;
extracting a set of n-grams from the set of historical data for the time window;
computing n-gram statistics for the set of n-grams for the time window;
calculating canonical statistics for a set of canonized n-grams generated from the set of n-grams for the time window;
generating a mapping between the set of canonical n-grams and the set of n-grams; and
presenting the canonical statistics with the set of canonized n-grams.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
computing the n-gram statistics comprising:
a query number identifying a number of the search queries in the set of historical data,
an n-gram number of a set of n-gram numbers identifying a number of times the n-gram appears in the conversations of the set of historical data, and
a conversation number of a set of conversation numbers identify a number of conversations in which the n-gram of the n-gram number appears.

### Claim 8 (depends on 6)

The method of claim 6, further comprising:
calculating the canonical statistics comprising a canonical n-gram frequency of a set of canonical n-gram frequencies identifying a frequency of the canonical n-gram in each document of the set of historical data, wherein a document is one of a conversation and a search query.

### Claim 9 (depends on 6)

The method of claim 6, further comprising:
generating a table comprising rows for the canonical n-grams and columns for the canonical statistics.

### Claim 10 (depends on 6)

The method of claim 6, further comprising:
canonizing the set of normalized n-grams using the n-gram statistics to form a set of canonized n-grams.

### Claim 11

A system comprising:
a processor;
an application executing the processor and configured for:
receiving text;
matching an n-gram extracted from the text to a canonical n-gram from a vocabulary to identify a tag for the text;
computing an n-gram weight for the n-gram extracted from the text, wherein the n-gram weight is computed by adjusting a term frequency of the n-gram;
computing a relevancy score for the tag using the n-gram weight and using an n-gram frequency of the canonical n-gram, wherein the relevancy score is computed by dividing the n-gram weight by a value proportional to the n-gram frequency of the canonical n-gram; and
presenting the relevancy score of the n-gram.

### Claim 12 (depends on 11)

The system of claim 11, wherein the application is further configured for:
ranking the n-gram within a set of n-grams extracted from the text using a maximum marginal relevance algorithm and using an embedding vector for the n-gram.

### Claim 13 (depends on 11)

The system of claim 11, wherein the application is further configured for:
grouping the tag with a set of tags corresponding to the canonical n-gram to combine a set of n-gram weights comprising the n-gram weight to form a combined weight, wherein the set of tags correspond to a set of n-grams mapped to the canonical n-gram; and
computing the relevancy score using the combined weight for the n-gram weight.

### Claim 14 (depends on 11)

The system of claim 11, wherein the application is further configured for:
selecting a threshold number of n-grams using the relevancy score; and
presenting the relevancy score identifying the n-gram as a keyword of the text.

### Claim 15 (depends on 11)

The system of claim 11, wherein the vocabulary is periodically updated to include a recent update interval and remove a previous update interval, wherein the n-gram is identified with an n-gram tag of a set of tags that identify metadata of the text, wherein the metadata comprises n-gram identifiers, document identifiers, participant identifiers, and timestamp identifiers.

### Claim 16 (depends on 11)

The system of claim 11, wherein the vocabulary is updated by:
selecting a set of historical data comprising one or more conversations and search queries during a time window comprising a plurality of update intervals;
extracting a set of n-grams from the set of historical data for the time window;
computing n-gram statistics for the set of n-grams for the time window;
calculating canonical statistics for a set of canonized n-grams generated from the set of n-grams for the time window;
generating a mapping between the set of canonical n-grams and the set of n-grams; and presenting the canonical statistics with the set of canonized n-grams.

### Claim 17 (depends on 16)

The system of claim 16, wherein the application is further configured for:
computing the n-gram statistics comprising:
a query number identifying a number of the search queries in the set of historical data,
an n-gram number of a set of n-gram numbers identifying a number of times the n-gram appears in the conversations of the set of historical data, and
a conversation number of a set of conversation numbers identify a number of conversations in which the n-gram of the n-gram number appears.

### Claim 18 (depends on 16)

The system of claim 16, wherein the application is further configured for:
calculating the canonical statistics comprising a canonical n-gram frequency of a set of canonical n-gram frequencies identifying a frequency of the canonical n-gram in each document of the set of historical data, wherein a document is one of a conversation and a search query.

### Claim 19 (depends on 16)

The system of claim 16, wherein the application is further configured for:
generating a table comprising rows for the canonical n-grams and columns for the canonical statistics.

### Claim 20

A method, comprising:
selecting a set of historical data comprising one or more conversations and search queries during a time window comprising a plurality of update intervals;
extracting a set of n-grams from the set of historical data for the time window;
computing n-gram statistics for the set of n-grams for the time window;
calculating canonical statistics for a set of canonized n-grams generated from the set of n-grams for the time window;
generating a mapping between the set of canonical n-grams and the set of n-grams; and
presenting the canonical statistics with the set of canonized n-grams.
