IP Library › Granted Patent US 10,755,051
Granted Patent B2
US 10,755,051 · App. 15/884,262 · Granted Aug 25, 2020

Rule-based natural language processing

Inventors: Philippe P. Piernot (Palo Alto, CA); Didier Rene Guzzoni (Montsur-Rolle, CH)
Assignee: Apple Inc.
G06F40/30G06F40/295G06F40/35G10L15/1822G10L15/22
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,755,051
App. No.
15/884,262
Granted
Aug 25, 2020
Kind
B2
Abstract

Systems and processes for rule-based natural language processing are provided. In accordance with one example, a method includes, at an electronic device with one or more processors, receiving a natural-language input; determining, based on the natural-language input, an input expression pattern; determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions; and in accordance with a determination that the input expression pattern matches an expression pattern of an intent definition of the plurality of intent definitions: selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern; performing a task associated with the selected intent definition; and outputting an output indicating whether the task was performed.

Claims (133)

1. An electronic device, comprising:

one or more processors;

a memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

receiving a natural-language input;

determining, based on the natural-language input, an input expression pattern;

determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions; and

in accordance with a determination that the input expression pattern matches an expression pattern of an intent definition of the plurality of intent definitions:

selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern;

performing a task associated with the selected intent definition; and

outputting an output indicating whether the task was performed.

2. The electronic device of claim 1 , wherein the one or more programs further include instructions for:

in accordance with a determination that the input expression pattern does not match an expression pattern of an intent definition of the plurality of intent definitions, forgoing selecting an intent definition of the plurality of intent definitions.

3. The electronic device of claim 1 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining, based on context of the electronic device, whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions.

4. The electronic device of claim 1 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining; for at least one intent definition of the plurality of intent definitions, whether precondition criteria has been met.

5. The electronic device of claim 1 , wherein determining, based on the natural-language input, an input expression pattern comprises:

identifying an entity of the natural-language input; and

replacing the entity of the natural-language input with a span,

wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions includes determining whether the span matches a span of at least one intent definition of the plurality of intent definitions.

6. The electronic device of claim 1 , wherein selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern comprises:

selecting a first intent definition of the plurality of intent definitions determined to have an expression pattern matching the input expression pattern.

7. The electronic device of claim 1 , wherein selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern comprises:

determining a matching score for each intent definition having an expression pattern matching the input expression pattern; and

selecting the intent definition associated with a highest matching score.

8. The electronic device of claim 1 , wherein the one or more programs further include instructions for:

determining whether a parameter of the selected intent definition requires a value;

in accordance with a determination that a parameter of the selected intent definition requires a value:

prior to performing a task associated with the selected intent definition, determining a value for the parameter.

9. The electronic device of claim 8 , wherein determining a value for the parameter comprises:

outputting a request for a value for the parameter;

receiving an input indicative of a parameter value; and

assigning the parameter the parameter value.

10. The electronic device of claim 8 , wherein determining a value for the parameter comprises:

in response to determining that the parameter of the selected intent definition requires a value, automatically assigning the parameter a value.

11. The electronic device of claim 1 , wherein the one or more programs further include instructions for:

further in accordance with a determination that the input expression pattern matches an expression pattern of an intent definition of the plurality of intent definitions, determining whether a parameter of the selected intent definition of the plurality of intent definitions is within a predetermined range,

wherein performing a task associated with the selected intent definition comprises:

in accordance with a determination that the parameter of the selected intent definition is within the predetermined range, performing a first task; and

in accordance with a determination that the parameter of the selected intent definition is not within the predetermined range, performing a second task different than the first task.

12. The electronic device of claim 1 , wherein determining, based on the natural-language input, an input expression pattern comprises:

determining a domain of the natural-language input.

13. The electronic device of claim 1 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining whether the input expression pattern matches a first respective expression pattern of each of a plurality of intent definitions; and

determining whether the input expression pattern matches a second respective expression pattern of each of a plurality of intent definitions.

14. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by one or more processors of an electronic device, cause the electronic device to:

receive a natural-language input;

determine, based on the natural-language input, an input expression pattern;

determine whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions; and

in accordance with a determination that the input expression pattern matches an expression pattern of an intent definition of the plurality of intent definitions:

select an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern;

perform a task associated with the selected intent definition; and

output an output indicating whether the task was performed.

15. A method, comprising:

at an electronic device with one or more processors:

receiving a natural-language input;

determining, based on the natural-language input, an input expression pattern;

determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions; and

in accordance with a determination that the input expression pattern matches an expression pattern of an intent definition of the plurality of intent definitions:

selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern;

performing a task associated with the selected intent definition; and

outputting an output indicating whether the task was performed.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the one or more programs further include instructions for:

in accordance with a determination that the input expression pattern does not match an expression pattern of an intent definition of the plurality of intent definitions, forgoing selecting an intent definition of the plurality of intent definitions.

17. The non-transitory computer-readable storage medium of claim 14 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining, based on context of the electronic device, whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions.

18. The non-transitory computer-readable storage medium of claim 14 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining, for at least one intent definition of the plurality of intent definitions, whether precondition criteria has been met.

19. The non-transitory computer-readable storage medium of claim 14 , wherein determining, based on the natural-language input, an input expression pattern comprises:

identifying an entity of the natural-language input; and

replacing the entity of the natural-language input with a span,

wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions includes determining whether the span matches a span of at least one intent definition of the plurality of intent definitions.

20. The non-transitory computer-readable storage medium of claim 14 , wherein selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern comprises:

selecting a first intent definition of the plurality of intent definitions determined to have an expression pattern matching the input expression pattern.

21. The non-transitory computer-readable storage medium of claim 14 , wherein selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern comprises:

determining a matching score for each intent definition having an expression pattern matching the input expression pattern; and

selecting the intent definition associated with a highest matching score.

22. The non-transitory computer-readable storage medium of claim 14 , wherein the one or more programs further include instructions for:

determining whether a parameter of the selected intent definition requires a value;

in accordance with a determination that a parameter of the selected intent definition requires a value:

prior to performing a task associated with the selected intent definition, determining a value for the parameter.

23. The non-transitory computer-readable storage medium of claim 22 , wherein determining a value for the parameter comprises:

outputting a request for a value for the parameter;

receiving an input indicative of a parameter value; and

assigning the parameter the parameter value.

24. The non-transitory computer-readable storage medium of claim 22 , wherein determining a value for the parameter comprises:

in response to determining that the parameter of the selected intent definition requires a value, automatically assigning the parameter a value.

25. The non-transitory computer-readable storage medium of claim 14 , wherein the one or more programs further include instructions for:

further in accordance with a determination that the input expression pattern matches an expression pattern of an intent definition of the plurality of intent definitions, determining whether a parameter of the selected intent definition of the plurality of intent definitions is within a predetermined range,

wherein performing a task associated with the selected intent definition comprises:

in accordance with a determination that the parameter of the selected intent definition is within the predetermined range, performing a first task; and

in accordance with a determination that the parameter of the selected intent definition is not within the predetermined range, performing a second task different than the first task.

26. The non-transitory computer-readable storage medium of claim 14 , wherein determining, based on the natural-language input, an input expression pattern comprises:

determining a domain of the natural-language input.

27. The non-transitory computer-readable storage medium of claim 14 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining whether the input expression pattern matches a first respective expression pattern of each of a plurality of intent definitions; and

determining whether the input expression pattern matches a second respective expression pattern of each of a plurality of intent definitions.

28. The method of claim 15 , further comprising:

in accordance with a determination that the input expression pattern does not match an expression pattern of an intent definition of the plurality of intent definitions, forgoing selecting an intent definition of the plurality of intent definitions.

29. The method of claim 15 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining, based on context of the electronic device, whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions.

30. The method of claim 15 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining, for at least one intent definition of the plurality of intent definitions, whether precondition criteria has been met.

31. The method of claim 15 , wherein determining, based on the natural-language input, an input expression pattern comprises:

identifying an entity of the natural-language input; and

replacing the entity of the natural-language input with a span,

wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions includes determining whether the span matches a span of at least one intent definition of the plurality of intent definitions.

32. The method of claim 15 , wherein selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern comprises:

selecting a first intent definition of the plurality of intent definitions determined to have an expression pattern matching the input expression pattern.

33. The method of claim 15 , wherein selecting an intent definition of the plurality of intent definitions having an expression pattern matching the input expression pattern comprises:

determining a matching score for each intent definition having an expression pattern matching the input expression pattern; and

selecting the intent definition associated with a highest matching score.

34. The method of claim 15 , further comprising:

determining whether a parameter of the selected intent definition requires a value;

in accordance with a determination that a parameter of the selected intent definition requires a value:

prior to performing a task associated with the selected intent definition, determining a value for the parameter.

35. The method of claim 34 , wherein determining a value for the parameter comprises:

outputting a request for a value for the parameter;

receiving an input indicative of a parameter value; and

assigning the parameter the parameter value.

36. The method of claim 34 , wherein determining a value for the parameter comprises:

in response to determining that the parameter of the selected intent definition requires a value, automatically assigning the parameter a value.

37. The method of claim 15 , further comprising:

further in accordance with a determination that the input expression pattern matches an expression pattern of an intent definition of the plurality of intent definitions, determining whether a parameter of the selected intent definition of the plurality of intent definitions is within a predetermined range,

wherein performing a task associated with the selected intent definition comprises:

in accordance with a determination that the parameter of the selected intent definition is within the predetermined range, performing a first task; and

in accordance with a determination that the parameter of the selected intent definition is not within the predetermined range, performing a second task different than the first task.

38. The method of claim 15 , wherein determining, based on the natural-language input, an input expression pattern comprises:

determining a domain of the natural-language input.

39. The method of claim 15 , wherein determining whether the input expression pattern matches a respective expression pattern of each of a plurality of intent definitions comprises:

determining whether the input expression pattern matches a first respective expression pattern of each of a plurality of intent definitions; and

determining whether the input expression pattern matches a second respective expression pattern of each of a plurality of intent definitions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2018
From: PIERNOT, PHILIPPE P.; GUZZONI, DIDIER RENE
To: APPLE INC.
Reel/Frame 044883/0455 →
Continuity (2)
Provisional Application 62566109 · Sep 29, 2017
Related Publication 20190102378A1 · Apr 4, 2019
Cited By (3)
US 12,651,595 US 12,694,235 US 12,705,423