Adaptive task framework
AssigneeMicrosoft Corporation
InventorsWilliam D. Ramsey, Jonas Barklund, Sanjeev Katariya
Life of this patent
Estimating the term…
Abstract
The subject disclosure pertains to systems and methods for performing natural language processing in which natural language input is mapped to a task. The system includes a task interface for defining a task, the associated data and the manner in which the task data is interpreted. Furthermore, the system provides a framework that manages the tasks to facilitate natural language processing. The task interface and framework can be used to provide natural language processing capabilities to third party applications. Additionally, the task framework can learn or be trained based upon feedback received from the third party applications.
Claims13
A task generating method for natural language processing, the task generating method comprising:
- receiving, at a computer, a query from an application, the query comprising natural language input, the natural language input comprising one or more tokens;
- automatically selecting, at the computer, a selected task from a plurality of tasks,
- each task in the plurality of tasks being an action performed by the application in response to particular natural language inputs;
- each task in the plurality of tasks having a standardized interface,
- the standardized interface comprising a keyword component and a slot component,
- the keyword components of different tasks in the plurality of tasks comprising differing sets of keywords,
- the slot components of different tasks in the plurality of tasks comprising different sets of slots, each slot in the set of slots having a slot name and a slot type,
- the keywords in the keyword component of the selected task matching one or more of the tokens;
- automatically generating, at the computer, a semantic solution, the semantic solution mapping slot names of slots in the slot component of the selected task to one or more of the tokens;
- after generating the semantic solution, automatically presenting, by the computer, the semantic solution to the application, the application configured to use the semantic solution to execute the selected task;
- and
- automatically updating, at the computer, the selected task by modifying at least one of:
- a slot name of a slot in the set of slots in the slot component of the selected task based upon user feedback, and
- a slot type of a slot in the set of slots in the slot component of the selected task based upon the user feedback.
A computer that can generate one or more tasks, the computer comprising:
- a system memory storing computer-executable instructions;
- and
- a processing unit comprising one or more microprocessors, the computer-executable instructions, when executed by the processing unit, cause the computer to:
- execute an application;
- receive a query from the application, the query comprising natural language input;
- automatically separate the query into a plurality of tokens;
- automatically using a model to rank tasks in a plurality of tasks,
- each task in the plurality of tasks having a standardized interface,
- each task in the plurality of tasks being an action performed by the application in response to particular natural language inputs,
- the standardized interface comprising:
- a slot component that specifies a plurality of slots, each slot in the plurality of slots specifying a slot name and a slot type,
- a keyword component that specifies a plurality of keywords,
- a name component that specifies a task name,
- an entity component that specifies a plurality of named entities
- a recognizer component that specifies a plurality of recognizers, and
- an execute method;
- automatically select a selected task in the plurality of tasks,
- the selected task being ranked highest,
- the plurality of keywords of the selected task matching tokens in the plurality of tokens,
- automatically use the recognizers of the recognizer component of the selected task to recognize named entities in the plurality of tokens, each of the named entities having specific meanings;
- automatically generate a semantic solution, the semantic solution being a hierarchy of markup language elements, the semantic solution comprising semantic condition elements that map slot names of slots in the slot component of the selected task to one or more of the named entities;
- automatically present the semantic solution to the application, the application configured to use the semantic solution to execute the selected task by invoking the execute method of the selected task;
- and
- after the application executes the selected task, receive feedback from a user;
- automatically update the selected task by modifying, based on the feedback, at least one of:
- a slot name of a slot in the set of slots in the slot component of the selected task, and
- a slot type of a slot in the set of slots in the slot component of the selected task.
A natural language processor comprising:
- means for defining one or more task interfaces for one or more tasks
- corresponding to one or more application actions by employing a standard task interface;
- means for defining at least one of one or more keywords or one or more slots for the one or more tasks, wherein defining a slot includes specifying a slot name and a slot type in the standard task interface;
- means for mapping application data as a slot value to the one or more tasks;
- means for linking components of the one or more tasks with at least one application;
- means for employing feedback to update the one or more defined task interfaces;
- and
- means for updating the one or more task interfaces by modifying at least one of the slot name, the slot type based on user feedback.
Dependencies are inferred from the claim text.