IP Library Granted Patent US 10,853,582
Granted Patent B2
US 10,853,582 · App. 16/575,650 · Granted Dec 1, 2020

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: Microsoft Technology Licensing, LLC
G06F40/35G06F16/90332G06F16/9535G06F40/20G06F40/295G06F40/40G10L15/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,853,582
App. No.
16/575,650
Granted
Dec 1, 2020
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 dialogue 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 (59)

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;

derive, using a natural language processor (NLP), a user intent from the user query, wherein the user intent relates to a command to be executed by the computing device;

extract from the user query, using the NLP, an entity associated with the command;

identify, using the NLP, 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; 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, 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 user 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, 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 the 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; and

extracting a parameter associated with a command from the user query;

sending a request, wherein the request comprises the command and the parameter;

receiving a response to the request comprising a result of executing the command based on the parameter; and

causing an output of the result.

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 user 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;

identify, using a natural language processor (NLP), a category that relates to the user query;

extract, using the NLP, a parameter associated with a command from the user query;

derive, by the NLP, a user intent from the user query based on at least the category, the command, and the parameter;

build a template to request a service associated with the domain to execute the command, wherein the template includes the parameter; and

cause an 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 Sep 19, 2019
From: PASUPALAK, SAM; WU, ZHIYUAN; TREGENZA, PHIL; SULEMAN, KAHEER; SIMPSON, JAMES; MCNAMARA, ANDREW; ISMAIL, TAREQ; PANTONY, JOSHUA R.; HSU, WILSON
To: MALUUBA INC.
Reel/Frame 050429/0596 →
Continuity (5)
Continuation 15978315 · May 14, 2018
Continuation 15436429 · Feb 17, 2017
Continuation 14394824
Provisional Application 61636444 · Apr 20, 2012
Related Publication 20200012721A1 · Jan 9, 2020