IP Library Granted Patent US 10,452,783
Granted Patent B2
US 10,452,783 · App. 15/978,315 · Granted Oct 22, 2019

Conversational agent

Inventors: Sam Pasupalak (Waterloo, CA); Joshua R. Pantony (Long Island City, NY); Wilson Hsu (Waterloo, CA); Zhiyuan Wu (Waterloo, CA); Phil Tregenza (Waterloo, CA); Kaheer Suleman (Cambridge, CA); James Simpson (Waterloo, CA); Andrew McNamara (Kitchener, CA); Tareq Ismail (Nepean, CA)
Assignee: Maluuba, Inc.
G06F17/279G06F16/90332G06F16/9535G06F17/27G06F17/278G06F17/28G10L15/265G10L15/30G10L15/22H04M3/4936
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,452,783
App. No.
15/978,315
Granted
Oct 22, 2019
Kind
B2
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.

Claims (61)

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. The computing device of claim 1 , wherein the instructions further cause the computing device to:

select, by the NLP engine, at least one conditional random field (CRF) in response to the domain.

3. The computing device of claim 2 , wherein the instructions further cause the computing device to:

store at least one optimized feature set associated with the domain, the at least one CRF configured to access the at least one feature set.

4. The computing device of claim 1 , wherein the user query is associated with a plurality of commands and the instructions further cause the computing device to:

assign a priority level to each of the plurality of commands;

execute each of the plurality of commands according to the assigned priority level;

assign a pending status to each of the plurality of commands until completed; and

generate output indicating the pending status for each of the plurality of commands.

5. The computing device of claim 1 , wherein the instructions further cause the computing device to:

identify at least one dialogue response to the query.

6. The computing device of claim 5 , wherein the instructions further cause the computing device to:

format an output comprising the at least one dialogue response.

7. The computing device of claim 6 , wherein the instructions further cause the computing device to:

format the at least one dialogue response in a conversational manner.

8. The computing device of claim 5 , wherein the instructions further cause the computing device to:

create, by the NLP engine, a list of candidate interpretations of the user query; and

present the at least one dialogue response in the list of candidate interpretations.

9. The computing device of claim 6 , wherein the instructions further cause the computing device to:

identify at least one unfilled entity relating to the user intent; and

generate at least one dialogue response comprising a prompt to obtain the at least one unfilled entity.

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.

11. The method of claim 10 , wherein the input device is a microphone.

12. The method of claim 10 , wherein deriving the user intent from the user query further comprises:

identifying a subgroup associated with the user query.

13. The method of claim 10 , wherein the parameter comprises multiple parameters.

14. The method of claim 10 , wherein deriving the user intent from the user query further comprises:

identifying at least one service capable of satisfying the user intent.

15. The method of claim 10 , further comprising:

identifying at least one dialogue response to the query.

16. The method of claim 10 , further comprising:

identifying at least one unfilled entity relating to the command; and

generating at least one dialogue response comprising a prompt to obtain the at least one unfilled entity.

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.

18. The computer storage device of claim 17 , the computer-executable instructions further causing the processor to:

identify at least one dialogue response to the user query.

19. The computer storage device of claim 18 , wherein the dialogue response requests information about the domain.

20. The computer storage device of claim 19 , the computer-executable instructions further causing the processor to:

extract the service from the user query.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2020
From: MALUUBA INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053116/0878 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2018
From: PASUPALAK, SAM; PANTONY, JOSHUA R.; HSU, WILSON; WU, ZHIYUAN; TREGENZA, PHIL; SULEMAN, KAHEER; SIMPSON, JAMES; MCNAMARA, ANDREW; ISMAIL, TAREQ
To: MALUUBA INC.
Reel/Frame 046713/0001 →
Continuity (4)
Continuation 15436429 · Feb 17, 2017
Continuation 14394824
Provisional Application 61636444 · Apr 20, 2012
Related Publication 20180260384A1 · Sep 13, 2018