IP Library › Granted Patent US 10,565,986
Granted Patent B2
US 10,565,986 · App. 15/654,955 · Granted Feb 18, 2020

Extracting domain-specific actions and entities in natural language commands

Inventors: Prateek Kakirwar (Mountain View, CA); Avinash Thekkumpat (Mountain View, CA); Jeffrey Chen (Mountain View, CA)
Assignee: INTUIT INC.
G10L15/1822G06F3/167G06F17/2765G10L15/063G10L15/14G10L2015/228
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 10,565,986
App. No.
15/654,955
Granted
Feb 18, 2020
Kind
B2
Abstract

The present disclosure relates to processing domain-specific natural language commands. An example method generally includes receiving a natural language command. A command processor compares the received natural language command to a corpus of known commands to identify a probable matching command in the corpus of known commands to the received natural language command. The corpus of known commands comprises a plurality of domain-specific commands, each of which is mapped to a domain-specific action. Based on the comparison, the command processor identifies the domain-specific action associated with the probable matching command to perform in response to the received command and executes the identified domain-specific action.

Claims (61)

1. A method for processing natural language commands, comprising:

receiving a natural language command;

identifying a probable matching command in a corpus of known commands based on the received natural language command by attempting to identify an exact match between the received natural language command and a command in the corpus of known commands, wherein:

the corpus of known commands comprises a plurality of domain-specific commands representing commands having a specific meaning in a software application, and

each of the plurality of domain-specific commands are mapped to a function in the software application invoked by a respective domain-specific command of the plurality of domain-specific command;

upon failing to identify an exact match between the received natural language command and a command in the corpus of known commands:

generating a number, edition error, and recognition error (NER) scores between at least a portion of the received natural language command and each known command in the corpus of known commands, and

identifying the probable matching command in the corpus of known commands based on the generated NER scores, wherein the probable matching command in the corpus of known commands comprises a command having a highest generated NER score;

identifying a function to execute in the software application in response to the received natural language command based on the identified probable matching command; and

executing the identified function to perform a domain-specific action in the software application.

2. The method of claim 1 , wherein a mapping between a domain-specific command in the plurality of domain-specific commands to a function in the software application comprises a mapping between an action word in the domain-specific command and the function in the software application.

3. The method of claim 1 , wherein the identified probable matching command comprises an exact matching command in the corpus of known commands to the received natural language command, and wherein the function to execute is mapped to the exact matching command.

4. The method of claim 1 , wherein the identified probable matching command comprises an inexact match between the received natural language command and a command in the corpus of known commands.

5. The method of claim 4 , further comprising: identifying the probable matching command from a set of inexact matching commands, each respective inexact matching command being associated with a probability score indicating a likelihood that the received natural language command matches the respective inexact matching command, wherein the identified probable matching command comprises one of the set of inexact matching commands with a highest probability score.

6. The method of claim 5 , further comprising: upon determining that the probability score associated with the identified probable matching command with the highest probability score exceeds a threshold probability score, executing the domain-specific action associated with the identified probable matching command.

7. The method of claim 5 , further comprising:

upon determining that the probability score associated with the identified partial matching command is less than a threshold probability score:

prompting a user to indicate whether the function mapped to the identified probable matching command matches a user intent; and

upon receiving an indication that the function matches the user intent, executing the function mapped to the identified probable matching command.

8. The method of claim 5 , wherein the probability score is based, at least in part, on error rates calculated from comparisons between the received natural language command and each of the known commands in the corpus of known commands.

9. The method of claim 1 , further comprising:

receiving a training data set including a plurality of domain-specific commands annotated with information identifying functions associated with each of the plurality of domain-specific commands; and

generating one or more rules to identify functions in received commands based on the training data set.

10. A system, comprising:

a processor; and

a memory having instructions stored thereon which, when executed by the processor, performs an operation for processing natural language commands, the operation comprising:

receiving a natural language command;

identifying a probable matching command in a corpus of known commands based on the received natural language command by attempting to identify an exact match between the received natural language command and a command in the corpus of known commands, wherein:

the corpus of known commands comprises a plurality of domain-specific commands representing commands having a specific meaning in a software application, and

each of the plurality of domain-specific commands are mapped to a function in the software application invoked by a respective domain-specific command of the plurality of domain-specific command;

upon failing to identify an exact match between the received natural language command and a command in the corpus of known commands:

generating a number, edition error, and recognition error (NER) scores between at least a portion of the received natural language command and each command in the corpus of known commands, and

identifying a probable matching command in the corpus of known commands based on the generated NER scores, wherein the probable matching command in the corpus of known commands comprises a command having a highest generated NER score;

identifying a function to execute in the software application in response to the received natural language command based on the identified probable matching command; and

executing the identified function to perform a domain-specific action in the software application.

11. The system of claim 10 , wherein a mapping between a domain-specific command in the plurality of domain-specific commands to a function in the software application comprises a mapping between an action word in the domain-specific command and the function in the software application.

12. The system of claim 10 , wherein the identified probable matching command comprises an exact matching command in the corpus of known commands to the received natural language command, and wherein the function to execute is mapped to the exact matching command.

13. The system of claim 10 , wherein the identified probable matching command comprises an inexact match between the received natural language command and a domain-specific command in the corpus of known commands.

14. The system of claim 13 , further comprising: identifying the probable matching command from a set of inexact matching commands, each respective inexact matching command being associated with a probability score indicating a likelihood that the received natural language command matches the respective inexact matching command, and wherein the identified probable matching command comprises one of the set of inexact matching commands with a highest probability score.

15. The system of claim 14 , further comprising: upon determining that the probability score associated with the identified probable matching command with the highest probability score exceeds a threshold probability score, executing the domain-specific action associated with the identified probable matching command.

16. The system of claim 14 , further comprising:

upon determining that the probability score associated with the identified partial matching command is less than a threshold probability score:

prompting a user to indicate whether the function mapped to the identified probable matching command matches a user intent; and

upon receiving an indication that the function matches the user intent, executing the function mapped to the identified probable matching command.

17. The system of claim 14 , wherein the probability score is based, at least in part, on an error rate calculated from a comparison between the received natural language command and each of the known commands in the corpus of known commands.

18. The system of claim 10 , further comprising:

receiving a training data set including a plurality of domain-specific commands annotated with information identifying functions associated with each of the plurality of domain-specific commands; and

generating one or more rules to identify functions in received commands based on the training data set.

19. A non-transitory computer-readable medium having instructions stored thereon, which, when executed by a processor, performs an operation for processing natural language commands, the operation comprising:

receiving a natural language command;

identifying a probable matching command in a corpus of known commands based on the received natural language command by attempting to identify an exact match between the received natural language command and a command in the corpus of known commands, wherein:

the corpus of known commands comprises a plurality of domain-specific commands representing commands having a specific meaning in a software application, and

each of the plurality of domain-specific commands are mapped to a function in the software application invoked by a respective domain-specific command of the plurality of domain-specific commands;

upon failing to identify an exact match between the received natural language command and a command in the corpus of known commands:

generating number, edition error, and recognition error (NER) scores between at least a portion of the received natural language command and each known command in the corpus of known commands, and

identifying the probable matching command in the corpus of known commands based on the NER scores, wherein the probable matching command in the corpus of known commands comprises a command having a highest generated NER score;

identifying a function to execute in the software application in response to the received natural language command based on the identified probable matching command; and

executing the identified function to perform a domain-specific action in the software application.

20. The non-transitory computer-readable medium of claim 19 , wherein the operation further comprises:

receiving a training data set including a plurality of domain-specific commands annotated with information identifying functions associated with each of the plurality of domain-specific commands; and

generating one or more rules to identify functions in received commands based on the training data set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2017
From: KAKIRWAR, PRATEEK; THEKKUMPAT, AVINASH; CHEN, JEFFREY
To: INTUIT, INC.
Reel/Frame 043052/0948 →
Continuity (1)
Related Publication 20190027134A1 · Jan 24, 2019
Cited By (1)
US 12,504,910