IP Library Granted Patent US 12,205,580
Granted Patent B1
US 12,205,580 · App. 17/036,617 · Granted Jan 21, 2025

Natural language input routing

Inventors: Joe Pemberton (Seattle, WA); Michael Schwartz (Seattle, WA); Vijitha Raji (Sammamish, WA); Archit Jain (Seattle, WA); Tara Raj (Seattle, WA); Alexander Go (Sammamish, WA)
Assignee: Amazon Technologies, Inc.
G10L15/22G10L2015/221G10L2015/223
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 12,205,580
App. No.
17/036,617
Granted
Jan 21, 2025
Kind
B1
Abstract

Techniques for selecting a skill component to process a natural language input are described. When a natural language input is received, natural language understanding (NLU) output data representing the natural language input is generated, and skill components (capable of processing the NLU output data) are determined. Thereafter, rules (for preventing the invocation of skill components) are implemented in a tiered manner, resulting in the determination of a subset of the skill components. The subset of skill components is ranked using a machine learning model(s), and the top-ranked skill component is called to process the NLU output data.

Claims (109)

1. A computer-implemented method comprising:

receiving first data corresponding to a first natural language input;

determining a first plurality of processing components configured to generate first output data responsive to the first natural language input, the first plurality of processing components corresponding to a processing component type and comprising a first processing component, a second processing component, and a third processing component;

determining, from a storage, a first rule representing when the first processing component is to be prevented from processing to generate output data responsive to natural language inputs;

determining a second plurality of processing components configured to generate the first output data, the second plurality of processing components corresponding to the processing component type and comprising the second processing component and the third processing component, wherein the first processing component is excluded from the second plurality of processing components based on the first rule;

determining, from the storage, a second rule indicating all but the second processing component, of the processing component type, are to be prevented from processing the first data;

determining, from the storage, a third rule indicating all but the third processing component, of the processing component type, are to be prevented from processing the first data;

sending, to a device and based at least on the second rule and the third rule, a request for selection of the second processing component or the third processing component;

after sending the request, receiving, from the device, second data representing selection of the second processing component; and

causing the second processing component to generate the first output data.

2. The computer-implemented method of claim 1 , further comprising:

receiving second data corresponding to a second natural language input;

determining a third plurality of processing components configured to generate second output data responsive to the second natural language input, the third plurality of processing components corresponding to the processing component type;

determining, from the storage, a fourth rule indicating all but a fourth processing component, of the processing component type, are to be prevented from processing the second data;

in response to the fourth rule and based on a plurality of rules corresponding to lower priority rules than the fourth rule, determining the plurality of rules are to be ignored with respect to processing of the second data; and

causing the fourth processing component to generate the second output data.

3. The computer-implemented method of claim 1 , further comprising:

sending the first data to the second processing component;

after sending the first data, receiving, from the second processing component, pre-response data representing the second processing component is capable of generating the first output data; and

causing the second processing component to generating the first output data further based at least in part on the pre-response data.

4. The computer-implemented method of claim 1 , further comprising:

receiving, from a device, second data corresponding to a second natural language input;

determining a third plurality of processing components configured to generate second output data responsive to the second natural language input, the third plurality of processing components corresponding to the processing component type and comprising a fourth processing component and a fifth processing component;

determining, from the storage, a fourth rule indicating the fourth processing component is to be prevented from processing the second data;

storing third data associating the fourth processing component with an indicator representing the fourth processing component is to be prevented from processing the second data;

determining the fourth processing component is to process the second data; and

based on the fourth processing component being associated with the indicator, causing the device to indicate the second natural language input was unable to be processed.

5. A computer-implemented method comprising:

receiving first data representing a first natural language input;

determining a first plurality of processing components configured to generate first output data responsive to the first natural language input, the first plurality of processing components corresponding to a processing component type and comprising a first processing component and a second processing component;

determining a first rule indicating all but the first processing component, of the processing component type, are to be prevented from processing the first data;

determining a second rule indicating all but the second processing component, of the processing component type are to be prevented from processing the first data;

sending, to a device, a request for selection of the first processing component or the second processing component;

after sending the request, receiving, from the device, second data representing selection of the first processing component; and

causing the first processing component to generate the first output data.

6. The computer-implemented method of claim 5 , further comprising:

determining a third rule representing a third processing component is to be prevented from processing the first data, the third rule corresponding to a lower priority rule than the first rule and the second rule; and

determining the first processing component is to generate the first output data further based at least in part on the third rule.

7. The computer-implemented method of claim 5 , further comprising:

receiving second data representing a second natural language input;

determining a second plurality of processing components configured to generate second output data responsive to the second natural language input;

determining a third rule representing all but a third processing component, of the second plurality of processing components, are to be prevented from processing the second data;

determining a fourth rule corresponding to a lower priority rule than the third rule;

ignoring the fourth rule based at least in part on the third rule representing all but the third processing component, of the second plurality of processing components, are to be prevented from processing the second data and based at least in part on the fourth rule corresponding to the lower priority rule; and

causing the third processing component to generate the second output data.

8. The computer-implemented method of claim 5 , further comprising:

sending the first data to the first processing component;

after sending the first data, receiving, from the first processing component, pre-response data representing the first processing component is able to generate the first output data; and

causing the first processing component is to generate the first output data further based at least in part on the pre-response data.

9. The computer-implemented method of claim 5 , further comprising:

receiving second data representing a second natural language input;

determining a second plurality of processing components configured to generate second output data responsive to the second natural language input, the second plurality of processing components comprising a third processing component and a fourth processing component;

determining a third rule representing the third processing component is to be prevented from processing the second data;

storing third data associating the third processing component with an indicator representing the third processing component is to be prevented from processing the second data;

determining the third processing component is to process the second data; and

based on the third processing component being associated with the indicator, causing the device to indicate the second natural language input was unable to be processed.

10. The computer-implemented method of claim 5 , further comprising:

receiving the first data from the device;

determining the device corresponds to a device type; and

determining the first rule based at least in part on the first rule corresponding to the device type.

11. The computer-implemented method of claim 5 , further comprising:

receiving second data representing a second natural language input;

determining a second plurality of processing components configured to generate second output data responsive to the second natural language input;

determining a third rule representing all but a third processing component, of the second plurality of processing components, are to be prevented from processing the second data;

determining a fourth rule representing the third processing component is to be prevented from processing the second data;

ignoring the fourth rule based at least in part on the third rule representing all but the third processing component are to be prevented from processing the second data; and

causing the third processing component to generate the second output data.

12. A computing system comprising:

at least one processor; and

at least one memory comprising instructions that, when executed by the at least one processor, cause the computing system to:

receive first data representing a first natural language input;

determine a first plurality of processing components configured to generate first output data responsive to the first natural language input, the first plurality of processing components corresponding to a processing component type and comprising a first processing component and a second processing component;

determine a first rule indicating all but the first processing component, of the processing component type, are to be prevented from processing the first data;

determine a second rule indicating all but the second processing component, of the processing component type, are to be prevented from processing the first data;

send, to a device, a request for selection of the first processing component or the second processing component;

after sending the request, receive, from the device, second data representing selection of the first processing component; and

cause the first processing component to generate the first output data.

13. The computing system of claim 12 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the computing system to:

determine a third rule representing a third processing component is to be prevented from processing the first data, the third rule corresponding to a lower priority rule than the first rule and the second rule; and

determine the first processing component is to generate the first output data based at least in part on the third rule.

14. The computing system of claim 12 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the computing system to:

receive second data representing a second natural language input;

determine a second plurality of processing components configured to generate second output data responsive to the second natural language input;

determine a third rule representing all but a third processing component, of the second plurality of processing components, are to be prevented from processing the second data;

determine a fourth rule corresponding to a lower priority rule than the second rule;

ignore the fourth rule based at least in part on the third rule representing all but the third processing component, of the second plurality of processing components, are to be prevented from processing the second data and based at least in part on the fourth rule corresponding to the lower priority rule; and

cause the third processing component to generate the second output data.

15. The computing system of claim 12 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the computing system to:

send the first data to the first processing component;

after sending the first data, receive, from the first processing component, pre-response data representing the first processing component is able to generate the first output data; and

cause the first processing component is to generate the first output data further based at least in part on the pre-response data.

16. The computing system of claim 12 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the computing system to:

receive second data representing a second natural language input;

determine a second plurality of processing components configured to generate second output data responsive to the second natural language input, the second plurality of processing components comprising a third processing component and a fourth processing component;

determine a third rule representing the third processing component is to be prevented from processing the second data;

store third data associating the third processing component with an indicator representing the third processing component is to be prevented from processing the second data;

determine the third processing component is to process the second data; and

based on the third processing component being associated with the indicator, cause the device to indicate the second natural language input was unable to be processed.

17. The computing system of claim 12 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the computing system to:

receive the first data from the device;

determine the device corresponds to a device type; and

determine the first rule based at least in part on the first rule corresponding to the device type.

18. The computing system of claim 12 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the computing system to:

receive second data representing a second natural language input;

determine a second plurality of processing components configured to generate second output data responsive to the second natural language input;

determine a third rule representing all but a third processing component, of the second plurality of processing components, are to be prevented from processing the second data;

determine a fourth rule representing the third processing component is to be prevented from processing the second data;

ignore the fourth rule based at least in part on the second rule representing all but the third processing component are to be prevented from processing the second data; and

cause the third processing component to generate the second output data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2020
From: PEMBERTON, JOE; SCHWARTZ, MICHAEL; RAJI, VIJITHA; JAIN, ARCHIT; RAJ, TARA; GO, ALEXANDER
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 053919/0223 →
References Cited (10)
US 10490187B2 · Laurens · 2019 [cited by examiner]
US 20140278413A1 · Pitschel · 2014 [cited by examiner]
US 20170278514A1 · Mathias · 2017 [cited by examiner]
US 20170357637A1 · Nell · 2017 [cited by examiner]
US 20180173403A1 · Carbune · 2018 [cited by examiner]
US 20180260680A1 · Finkelstein · 2018 [cited by examiner]
US 20210027485A1 · Zhang · 2021 [cited by examiner]
US 20210074285A1 · Golikov · 2021 [cited by examiner]
US 20210342194A1 · Zhang · 2021 [cited by examiner]
US 20220028379A1 · Carbune · 2022 [cited by examiner]
Cited By (1)
US 12,488,796