US 12,072,877 B2
Method and system of classification in a natural language user interface
Kaheer Suleman, Waterloo (CA); Joshua R. Pantony, Waterloo (CA); Wilson Hsu, Waterloo (CA); Zhiyuan Wu, Waterloo (CA); Phil Tregenza, Waterloo (CA); and Sam Pasupalak, Waterloo (CA)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on May 13, 2019, as Appl. No. 16/410,641.
Application 16/410,641 is a continuation of application No. 14/233,640, granted, now 10,387,410, previously published as PCT/CA2012/000685, filed on Jul. 19, 2012.
Claims priority of provisional application 61/596,407, filed on Feb. 8, 2012.
Claims priority of application No. CA 2747153 (CA), filed on Jul. 19, 2011.
Prior Publication US 2019/0272269 A1, Sep. 5, 2019
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/245 (2019.01); G06F 16/28 (2019.01); G06F 40/216 (2020.01); G06F 40/284 (2020.01); G06F 40/295 (2020.01); G06F 40/35 (2020.01); G06F 40/56 (2020.01); G10L 15/18 (2013.01); G10L 15/22 (2006.01); G06F 3/16 (2006.01); G06Q 30/0601 (2023.01)
CPC G06F 16/245 (2019.01) [G06F 16/285 (2019.01); G06F 40/216 (2020.01); G06F 40/284 (2020.01); G06F 40/295 (2020.01); G06F 40/35 (2020.01); G06F 40/56 (2020.01); G10L 15/1822 (2013.01); G10L 15/22 (2013.01); G06F 3/16 (2013.01); G06F 3/167 (2013.01); G06Q 30/0601 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A computer-implemented method of processing input queries for performing one or more commands, the method comprising:
receiving, by a communication system, a first query, wherein the first query includes a command requiring one or more parameters for performance;
determining a query type of the first query based on the command, wherein the query type is selected from a group comprising a functional query type, an entity query type, and clarification question type;
processing, in response to determining that the first query is the functional query type, the first query to determine a type of function for at least one command of the first query by ranking candidate types of functions for the at least one command;
identifying a template based on the type of function for the at least one command, wherein the template comprises the at least one command and at least one placeholder for an entity associated with performing the at least one command;
after receiving the first query and before performing the command, receiving a second query including an entity and anaphora;
in response to determining that a third query is received in response to a request for clarification:
classifying the third query as a clarification question type for the command;
creating a feature vector indicating a relevance of the second query and the third query to the first query;
based on the feature vector and the determination, processing the second query and the third query to associate the entity with the parameter required for performing the command of the first query;
in response to determining that the third query is not received in response to a first clarification question:
determining whether a query type of the third query is a functional query type or an entity query type;
determining, in response to determining that the third query is the function query type, a subsequent command by performing a plurality of natural language processing techniques to determine a rank of candidate commands and selecting the subsequent command in response;
performing the subsequent command and the command with the entity in place of the at least one placeholder in view of the subsequent command; and
providing one or more results of the performed commands.