# US 10,373,618 B2 · Natural language recommendation feedback

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

- Number: US 10,373,618 B2
- Document ID: US10373618B2
- Status: Granted
- Kind: B2
- Application number: 15/670,975
- Filed: 2017-08-07
- Published: 2019-02-07
- Granted: 2019-08-06
- Earliest claimed: 2017-08-07
- Assignees: SoundHound, Inc.
- Applicants: SoundHound, Inc.
- Inventors: Kamyar Mohajer; Robert Macrae
- Web page: https://patentgrep.com/patent/US10373618B2

## CPC

- G10L 15/22: Procedures used during a speech recognition process, e.g. man-machine dialogue
- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 16/243: {Natural language query formulation}
- G06F 16/2457: with adaptation to user needs
- G06F 16/24575: {using context}
- G10L 15/1822: {Parsing for meaning understanding}
- G10L 15/30: Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
- G10L 17/00: Speaker identification or verification techniques
- G10L 2015/223: {Execution procedure of a spoken command}
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems parse natural language expressions to extract items and values of their attributes and store them in a database. Systems also parse natural language expressions to extract values of attributes of user preferences and store them in a database. Recommendation engines use the databases to make recommendations. Parsing is of speech or text and uses conversation state, discussion context, synonym recognition, and speaker profile. Database pointers represent relative attribute values. Recommendations use machine learning to crowdsource from databases of many user preferences and to overcome the cold start problem. Parsing and recommendations use current or stored values of environmental parameters. Databases store different values of the same user preference attributes for different activities. Systems add unrecognized attributes and legal values when encountered in natural language expressions.

## Claims

### Claim 1

A non-transitory computer readable medium storing code that, if executed by a computer system, would cause the computer system to:
parse a first person's first natural language expression to identify an item and determine an item attribute value;
store, in an item database, the value in association with the attribute of the item;
parse a second person's second natural language expression from an identified user to determine a value preference for the attribute;
store, in a user database, the preference for the attribute in association with the identified user; and
use a recommendation engine on the item attribute value and the preference associated with the identified user to produce a recommendation.

### Claim 2 (depends on 1)

The non-transitory computer readable medium of claim 1 wherein the first natural language expression and the second natural language expression are spoken.

### Claim 3 (depends on 1)

The non-transitory computer readable medium of claim 1 that would further cause the computer system to:
store, in the item database, a value of an environmental parameter in association with the item attribute value,
wherein the recommendation engine considers the value of an environmental parameter and the current environment in producing the recommendation.

### Claim 4 (depends on 3)

The non-transitory computer readable medium of claim 3 wherein the environmental parameter is a type of activity.

### Claim 5 (depends on 1)

The non-transitory computer readable medium of claim 1 wherein the value is expressed relative to a reference item, and the non-transitory computer readable medium would further cause the computer system to store, in the item database, a reference to the reference item in association with the value of the attribute of the item, whereby the item attribute value can be computed from the corresponding value of the attribute of the reference item.

### Claim 6 (depends on 1)

The non-transitory computer readable medium of claim 1 that would further cause the computer system to derive values of a user attribute vector by classifying the identified user based on attributes of other users in the user database.

### Claim 7 (depends on 1)

The non-transitory computer readable medium of claim 1 wherein the recommendation engine produces a score associated with the recommendation.

### Claim 8 (depends on 1)

The non-transitory computer readable medium of claim 1 wherein the second natural language expression is a command.

### Claim 9 (depends on 8)

The non-transitory computer readable medium of claim 8 wherein the command specifies a time period.

### Claim 10 (depends on 1)

The non-transitory computer readable medium of claim 1 that would further cause the computer system to parse the second natural language expression to determine a value of an environmental parameter.

### Claim 11 (depends on 1)

The non-transitory computer readable medium of claim 1 that would further cause the computer system to:
determine an activity; and
associate the user preferences for the attribute with the activity.

### Claim 12 (depends on 11)

The non-transitory computer readable medium of claim 11 wherein determining the activity is by parsing the second natural language expression.

### Claim 13

A non-transitory computer readable medium storing code that, if executed by a computer system, would cause the computer system to:
parse a natural language expression from an identified user to:
identify an item and determine a value for an attribute of the item; and
determine a value preference for the attribute, including value attributes with values derived from a second user's natural language expression;
store, in an item database, the value in association with the attribute of the item;
store, in a user database, the preference for the attribute in association with the identified user; and
provide a recommendation based on the value and the preference.

### Claim 14 (depends on 13)

The non-transitory computer readable medium of claim 13 wherein the natural language expression is spoken.

### Claim 15 (depends on 13)

The non-transitory computer readable medium of claim 13 that would further cause the computer system to:
associate the value preference with a value of an environmental parameter.

### Claim 16

A non-transitory computer readable medium storing code that, if executed by a computer system, would cause the computer system to:
parse a natural language expression about an item to identify:
an item;
an attribute of the item; and
a non-numerical value of the attribute;
search a database for values of the attribute; and
in response to not finding the value of the attribute, enumerating the value as a new recognized value of the attribute in the database.

### Claim 17 (depends on 16)

The non-transitory computer readable medium of claim 16 that would further cause the computer system to:
store the value of the attribute in association with the item; and
store information descriptive of the speaker in association with the value.

### Claim 18

A non-transitory computer readable medium storing code that, if executed by a computer system, would cause the computer system to:
parse a natural language expression about an item to identify:
an item; and
an attribute of the item;
search a database for presence of the attribute; and
in response to not finding the attribute, adding the attribute as a new attribute defining of at least the identified item.

### Claim 19 (depends on 18)

The non-transitory computer readable medium of claim 18 that would further cause the computer system to enumerate the value as a possible value of the attribute.
