Conversational agent
First Claim
1. A computing device comprising one or more processors and one or more storage devices storing instructions that, when executed by the one or more processors, cause the computing device to:
- receive a user query from an input device;
derive, using a natural language processing (NLP) engine, a user intent from the user query, wherein the user intent is associated with a set of functions to be carried out by the computing device;
extract from the user query, using the NLP engine, an entity associated with a command;
identify, using the NLP engine, a domain that is associated with the command;
execute the command, wherein the command is configured to direct the computing device to carry out at least one function selected from the set of functions; and
generate output of a result of the command.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and computer program product provide a conversation agent to process natural language queries expressed by a user and perform commands according to the derived intention of the user. A natural language processing (NLP) engine derives intent using conditional random fields to identify a domain and at least one task embodied in the query. The NLP may further identify one or more subdomains, and one or more entities related to the identified command. A template system creates a data structure for information relevant to the derived intent and passes a template to a services manager for interfacing with one or more services capable of accomplishing the task. A dialog manager may elicit more entities from the user if required by the services manager and otherwise engage in conversation with the user. In one embodiment, the conversational agent allows a user to engage in multiple conversations simultaneously.
22 Citations
20 Claims
-
1. A computing device comprising one or more processors and one or more storage devices storing instructions that, when executed by the one or more processors, cause the computing device to:
-
receive a user query from an input device; derive, using a natural language processing (NLP) engine, a user intent from the user query, wherein the user intent is associated with a set of functions to be carried out by the computing device; extract from the user query, using the NLP engine, an entity associated with a command; identify, using the NLP engine, a domain that is associated with the command; execute the command, wherein the command is configured to direct the computing device to carry out at least one function selected from the set of functions; and generate output of a result of the command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of processing a user query performed by a computing device, the method comprising:
-
receiving a user query from an input device; deriving, using a natural language processing (NLP) engine, a user intent from the user query by; identifying a domain associated with the user query; extracting a parameter from the user query; and extracting from the user query a command to perform an action by a service associated with the domain; sending a request to the service to execute the command associated with the user intent, wherein the request includes the parameter; receiving a response to the request from the service; and generating output of a result based on the response to the request. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer storage device storing computer-executable instructions that when executed by a processor cause the processor to:
-
receive a user query from an input device; identify, using a natural language processing (NLP) engine, a category that relates to the user query; extract, using the NLP engine, a command from the user query; extract, using the NLP engine, a parameter from the user query; derive, by the NLP engine, a user intent from the user query based on at least the category, the command, and the parameter; build a template to send to a service associated with the domain to execute the command, wherein the template includes the parameter; and generate output of at least one result of the executed command. - View Dependent Claims (18, 19, 20)
-
Specification