IP Library Granted Patent US 10,755,046
Granted Patent B1
US 10,755,046 · App. 16/277,000 · Granted Aug 25, 2020

Applied artificial intelligence technology for conversational inferencing

Inventors: Maia Lewis Meza (Chicago, IL); Clayton Nicholas Norris (Chicago, IL); Michael Justin Smathers (Chicago, IL); Daniel Joseph Platt (Chicago, IL); Nathan D. Nichols (Chicago, IL)
Assignee: NARRATIVE SCIENCE INC.
G06F40/279G06F40/211G06F40/253G06F40/30
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,046
App. No.
16/277,000
Granted
Aug 25, 2020
Kind
B1
Abstract

Disclosed herein is an NLP system that is able to extract meaning from a natural language message using improved parsing techniques. Such an NLP system can be used in concert with an NLG system to interactively interpret messages and generate response messages in an interactive conversational stream. The parsing can include (1) named entity recognition that contextualizes the meanings of words in a message with reference to a knowledge base of named entities understood by the NLP and NLG systems, (2) syntactically parsing the message to determine a grammatical hierarchy for the named entities within the message, (3) reduction of recognized named entities into aggregations of named entities using the determined grammatical hierarchy and reduction rules to further clarify the message's meaning, and (4) mapping the reduced aggregation of named entities to an intent or meaning, wherein this intent/meaning can be used as control instructions for an NLG process.

Claims (164)

1. A computer program product for natural language processing that applies computer technology to a message to determine a meaning for the message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the computer program product comprising:

a plurality of processor-executable instructions that are resident on a non-transitory computer readable storage medium, wherein the instructions are configured, upon execution by a processor, to cause the processor to:

perform named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

syntactically parse the message to generate data that defines a grammatical hierarchy of the named entities within the message;

reduce the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

generate control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message;

wherein the instructions are further configured, upon execution by a processor, to cause the processor to apply the reduction rules to combinations of named entities in the defined hierarchy starting from a lowest named entity in the defined hierarchy and progressing toward a top named entity in the defined hierarchy;

wherein the named entities in the defined hierarchy have associated named entity types, and wherein the reduction rules define how a plurality of different combinations of named entity types are reduced into a plurality of different aggregations of named entities, wherein each aggregation of named entities also has an associated named entity type;

wherein the named entity types include an entity, an entity type, a qualifier, an attribute, a relationship, and a relationship type; and

wherein the reduction rules comprise:

a first reduction rule that reduces a combination of named entities corresponding to the entity named entity type, the qualifier named entity type, and the attribute named entity type to an aggregated named entity corresponding to the entity named entity type;

a second reduction rule that reduces a combination of named entities corresponding to the relationship type named entity type and the entity named entity type to an aggregated named entity corresponding to the relationship entity type;

a third reduction rule that reduces a combination of named entities corresponding to the entity named entity type and the relationship named entity type to an aggregated named entity corresponding to the entity named entity type; and

a fourth reduction rule that reduces one or more named entities corresponding to the entity type named entity type to an aggregated named entity corresponding to the entity named entity type.

2. The computer program product of claim 1 wherein the instructions are further configured, upon execution by a processor, to cause the processor to apply the reduction rules to combinations of adjacent named entities in the defined hierarchy starting from the lowest named entity in the defined hierarchy and progressing toward the top named entity in the defined hierarchy.

3. A natural language processing method that applies computer technology to a message to determine a meaning for the message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the method comprising:

a processor performing named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

a processor syntactically parsing the message to generate data that defines a grammatical hierarchy of the named entities within the message;

a processor reducing the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

a processor generating control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message;

wherein the reducing step comprises a processor applying the reduction rules to combinations of named entities in the defined hierarchy starting from a lowest named entity in the defined hierarchy and progressing toward a top named entity in the defined hierarchy;

wherein the named entities in the defined hierarchy have associated named entity types, and wherein the reduction rules define how a plurality of different combinations of named entity types are reduced into a plurality of different aggregations of named entities, wherein each aggregation of named entities also has an associated named entity type;

wherein the named entity types include an entity, an entity type, a qualifier, an attribute, a relationship, and a relationship type; and

wherein the reduction rules comprise:

a first reduction rule that reduces a combination of named entities corresponding to the entity named entity type, the qualifier named entity type, and the attribute named entity type to an aggregated named entity corresponding to the entity named entity type;

a second reduction rule that reduces a combination of named entities corresponding to the relationship type named entity type and the entity named entity type to an aggregated named entity corresponding to the relationship entity type;

a third reduction rule that reduces a combination of named entities corresponding to the entity named entity type and the relationship named entity type to an aggregated named entity corresponding to the entity named entity type; and

a fourth reduction rule that reduces one or more named entities corresponding to the entity type named entity type to an aggregated named entity corresponding to the entity named entity type.

4. The method of claim 3 wherein the generating step comprises:

mapping the reduced aggregation of named entities to the control instructions based on a plurality of rules that map different reduced aggregations of named entities to different control instructions for the NLG system.

5. The method of claim 3 wherein the applying step comprises a processor applying the reduction rules to combinations of adjacent named entities in the defined hierarchy starting from the lowest named entity in the defined hierarchy and progressing toward the top named entity in the defined hierarchy.

6. A natural language processing method that applies computer technology to a message to determine a meaning for the message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the method comprising:

a processor performing named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

a processor syntactically parsing the message to generate data that defines a grammatical hierarchy of the named entities within the message;

a processor reducing the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

a processor generating control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message;

wherein the generating step comprises mapping the reduced aggregation of named entities to the control instructions based on a plurality of rules that map different reduced aggregations of named entities to different control instructions for the NLG system;

wherein the reduced aggregation of named entities has an associated named entity type, and wherein the mapping rules map reduced aggregations of named entities to the control instructions based on the associated named entity type for the reduced aggregation of named entities; and

wherein the associated named entity type is a combination of an entity, an attribute, and a qualifier, wherein the qualifier corresponds to a driver, and wherein the mapping rules map the entity, attribute, and driver qualifier combination named entity type to an explain communication goal statement.

7. The method of claim 6 wherein the knowledge base comprises an ontology for a data set addressed by the message.

8. The method of claim 7 wherein the ontology comprises (1) a plurality of entity types, (2) a plurality of attributes associated with a plurality of the entity types, (3) a plurality of qualifiers associated with a plurality of the entity types, and (4) a plurality of relationship types associated with a plurality of the entity types.

9. The method of claim 8 wherein the ontology further comprises a plurality of timeframes associated with a plurality of the entity types.

10. The method of claim 8 wherein the ontology further comprises a plurality of characterizations associated with a plurality of the entity types.

11. The method of claim 7 wherein the knowledge base further comprises the data set, the data set including a plurality of entity instances for a plurality of the entity types and a plurality of attribute values for a plurality of the attributes.

12. The method of claim 7 wherein the knowledge base further comprises a deictic context for a history of messages in a conversation relating to the data set.

13. The method of claim 12 wherein the deictic context associates a plurality of pronouns with a plurality of named entities from the knowledge base.

14. The method of claim 6 further comprising:

a processor processing the knowledge base;

a processor extracting the named entities from the knowledge base based on the processing; and

a processor building a tree structure from the extracted named entities; and

wherein the named entity recognition performing step comprises a processor comparing the words of the message with the tree structure to identify the named entities in the message.

15. The method of claim 6 wherein the syntactically parsing step comprises a processor performing a constituency parse on the message to generate the data that defines the grammatical hierarchy of the named entities within the message.

16. The method of claim 6 wherein the syntactically parsing step comprises a processor performing a dependency parse on the message to generate the data that defines the grammatical hierarchy of the named entities within the message.

17. The method of claim 6 wherein the reducing step comprises a processor applying the reduction rules to combinations of named entities in the defined hierarchy starting from a lowest named entity in the defined hierarchy and progressing toward a top named entity in the defined hierarchy.

18. The method of claim 17 wherein the named entities in the defined hierarchy have associated named entity types, and wherein the reduction rules define how a plurality of different combinations of named entity types are reduced into a plurality of different aggregations of named entities, wherein each aggregation of named entities also has an associated named entity type.

19. The method of claim 18 wherein the named entity types include an entity, an entity type, a qualifier, an attribute, a relationship, and a relationship type.

20. The method of claim 6 wherein the control instructions comprise a communication goal statement that is parameterized based on the reduced aggregation of named entities.

21. The method of claim 6 wherein the associated named entity type is an entity, and wherein the mapping rules map the entity named entity type to a callout entity communication goal statement.

22. The method of claim 6 wherein the associated named entity type is a combination of an entity and an attribute, and wherein the mapping rules map the entity and attribute combination named entity type to a present a value of an attribute of an entity communication goal statement.

23. The method of claim 6 further comprising:

a processor for the NLG system accessing the knowledge base based on the control instructions to generate the natural language response.

24. The method of claim 23 further comprising:

a processor receiving the message from a chatbot or a graphical user interface (GUI); and

a processor delivering the natural language response to the chatbot or the GUI.

25. The method of claim 23 further comprising:

repeating the method steps with respect to a plurality of messages to generate a plurality of the natural language responses in a conversation string.

26. The method of claim 25 wherein the repeating step comprises repeating the method steps with respect to a plurality of messages to generate a plurality of the natural language responses in a plurality of different conversation strings.

27. The method of claim 26 further comprising:

a processor associating each conversation string with a conversation identifier; and

a processor associating messages and natural language responses to messages with conversation identifiers to define the conversation strings.

28. The method of claim 25 further comprising:

receiving the messages from a plurality of different input channels; and

a processor standardizing the received messages to a common format prior to performing named entity recognition.

29. The method of claim 28 wherein the input channels include at least one of a graphical user interface (GUI) and/or a chatbot.

30. The method of claim 28 wherein the input channels include a plurality of different chatbots.

31. The method of claim 6 wherein the different control instructions for the NLG system correspond to different types of communication goals to be expressed by the natural language response.

32. The method of claim 31 wherein the different types of communication goals comprise at least one of a callout entity communication goal, a present value communication goal, an explain communication goal, a present change communication goal, and/or an explain change communication goal.

33. The method of claim 6 wherein the configuration parameters comprise (1) a specification parameter that represents a type of communication goal to be expressed by the natural language response, and (2) at least one story parameter for use by the NLG system when generating the natural language response, wherein the at least one story parameter is derived from at least one of the identified named entities.

34. The method of claim 33 wherein the at least one story parameter is derived from an aggregated named entity produced by the reducing step.

35. The method of claim 6 wherein the same processor performs the method steps.

36. The method of claim 6 wherein a plurality of different processors perform the method steps.

37. A natural language processing method that applies computer technology to a message to determine a meaning for the message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the method comprising:

a processor performing named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

a processor syntactically parsing the message to generate data that defines a grammatical hierarchy of the named entities within the message;

a processor reducing the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

a processor generating control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message;

wherein the generating step comprises mapping the reduced aggregation of named entities to the control instructions based on a plurality of rules that map different reduced aggregations of named entities to different control instructions for the NLG system;

wherein the reduced aggregation of named entities has an associated named entity type, and wherein the mapping rules map reduced aggregations of named entities to the control instructions based on the associated named entity type for the reduced aggregation of named entities; and

wherein the named entity types further include a timeframe type, wherein the associated named entity type is a combination of an entity, an attribute, a qualifier, and a plurality of timeframes, wherein the qualifier corresponds to a change, and wherein the mapping rules map the entity, attribute, change qualifier, and timeframes combination named entity type to a present change communication goal statement.

38. A natural language processing method that applies computer technology to a message to determine a meaning for the message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the method comprising:

a processor performing named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

a processor syntactically parsing the message to generate data that defines a grammatical hierarchy of the named entities within the message;

a processor reducing the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

a processor generating control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message

wherein the generating step comprises mapping the reduced aggregation of named entities to the control instructions based on a plurality of rules that map different reduced aggregations of named entities to different control instructions for the NLG system;

wherein the reduced aggregation of named entities has an associated named entity type, and wherein the mapping rules map reduced aggregations of named entities to the control instructions based on the associated named entity type for the reduced aggregation of named entities; and

wherein the named entity types further include a timeframe type, wherein the associated named entity type is a combination of an entity, an attribute, a first qualifier, a second qualifier, and a plurality of timeframes, wherein the first qualifier corresponds to a change, wherein the second qualifier corresponds to a driver, and wherein the mapping rules map the entity, attribute, change qualifier, driver qualifier, and timeframes combination named entity type to an explain change communication goal statement.

39. A natural language processing apparatus for determining a meaning of a message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the apparatus comprising:

a memory; and

a processor for cooperation with the memory, the processor configured to:

perform named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

syntactically parse the message to generate data that defines a grammatical hierarchy of the named entities within the message;

reduce the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

generate control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message;

wherein the processor is further configured to map the reduced aggregation of named entities to the control instructions based on a plurality of rules that map different reduced aggregations of named entities to different control instructions for the NLG system;

wherein the reduced aggregation of named entities has an associated named entity type, and wherein the mapping rules map reduced aggregations of named entities to the control instructions based on the associated named entity type for the reduced aggregation of named entities; and

wherein the associated named entity type is a combination of an entity, an attribute, and a qualifier, wherein the qualifier corresponds to a driver, and wherein the mapping rules map the entity, attribute, and driver qualifier combination named entity type to an explain communication goal statement.

40. The apparatus of claim 39 wherein the processor is further configured to apply the reduction rules to combinations of named entities in the defined hierarchy starting from a lowest named entity in the defined hierarchy and progressing toward a top named entity in the defined hierarchy.

41. The apparatus of claim 40 wherein the named entities in the defined hierarchy have associated named entity types, and wherein the reduction rules define how a plurality of different combinations of named entity types are reduced into a plurality of different aggregations of named entities, wherein each aggregation of named entities also has an associated named entity type.

42. The apparatus of claim 41 wherein the named entity types include an entity, an entity type, a qualifier, an attribute, a relationship, and a relationship type.

43. A natural language processing apparatus for determining a meaning of a message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the apparatus comprising:

a memory; and

a processor for cooperation with the memory, the processor configured to:

perform named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

syntactically parse the message to generate data that defines a grammatical hierarchy of the named entities within the message;

reduce the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

generate control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message;

wherein the processor is further configured to map the reduced aggregation of named entities to the control instructions based on a plurality of rules that map different reduced aggregations of named entities to different control instructions for the NLG system;

wherein the reduced aggregation of named entities has an associated named entity type, and wherein the mapping rules map reduced aggregations of named entities to the control instructions based on the associated named entity type for the reduced aggregation of named entities; and

wherein the named entity types further include a timeframe type, wherein the associated named entity type is a combination of an entity, an attribute, a qualifier, and a plurality of timeframes, wherein the qualifier corresponds to a change, and wherein the mapping rules map the entity, attribute, change qualifier, and timeframes combination named entity type to a present change communication goal statement.

44. The apparatus of claim 43 wherein the different control instructions for the NLG system correspond to different types of communication goals to be expressed by the natural language response.

45. The apparatus of claim 44 wherein the different types of communication goals comprise at least one of a callout entity communication goal, a present value communication goal, an explain communication goal, a present change communication goal, and/or an explain change communication goal.

46. The apparatus of claim 43 wherein the associated named entity type is an entity, and wherein the mapping rules map the entity named entity type to a callout entity communication goal statement.

47. The apparatus of claim 43 wherein the associated named entity type is a combination of an entity and an attribute, and wherein the mapping rules map the entity and attribute combination named entity type to a present a value of an attribute of an entity communication goal statement.

48. The apparatus of claim 43 wherein the configuration parameters comprise (1) a specification parameter that represents a type of communication goal to be expressed by the natural language response, and (2) at least one story parameter for use by the NLG system when generating the natural language response, wherein the at least one story parameter represents at least one of the identified named entities.

49. The apparatus of claim 48 wherein the at least one story parameter represents an aggregated named entity produced by the reduce operation.

50. The apparatus of claim 43 wherein the processor comprises a plurality of processors.

51. The apparatus of claim 43 wherein the processor is further configured to implement the NLG system.

52. The apparatus of claim 43 wherein the processor is further configured to syntactically parse the message by performing a constituency parse on the message to generate the data that defines the grammatical hierarchy of the named entities within the message.

53. The apparatus of claim 43 wherein the processor is further configured to syntactically parse the message by performing a dependency parse on the message to generate the data that defines the grammatical hierarchy of the named entities within the message.

54. The apparatus of claim 43 wherein the control instructions comprise a communication goal statement that is parameterized based on the reduced aggregation of named entities.

55. The apparatus of claim 43 further comprising:

the NLG system, wherein the NLG system is configured to access the knowledge base based on the control instructions to generate the natural language response.

56. The apparatus of claim 55 wherein the processor is further configured to (1) receive the message from a chatbot or a graphical user interface (GUI), and (2) deliver the natural language response to the chatbot or the GUI.

57. A natural language processing apparatus for determining a meaning of a message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the apparatus comprising:

a memory; and

a processor for cooperation with the memory, the processor configured to:

perform named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

syntactically parse the message to generate data that defines a grammatical hierarchy of the named entities within the message;

reduce the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

generate control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message.

wherein the processor is further configured to map the reduced aggregation of named entities to the control instructions based on a plurality of rules that map different reduced aggregations of named entities to different control instructions for the NLG system;

wherein the reduced aggregation of named entities has an associated named entity type, and wherein the mapping rules map reduced aggregations of named entities to the control instructions based on the associated named entity type for the reduced aggregation of named entities; and

wherein the named entity types further include a timeframe type, wherein the associated named entity type is a combination of an entity, an attribute, a first qualifier, a second qualifier, and a plurality of timeframes, wherein the first qualifier corresponds to a change, wherein the second qualifier corresponds to a driver, and wherein the mapping rules map the entity, attribute, change qualifier, driver qualifier, and timeframes combination named entity type to an explain change communication goal statement.

58. The apparatus of claim 57 wherein the processor is further configured to apply the reduction rules to combinations of named entities in the defined hierarchy starting from a lowest named entity in the defined hierarchy and progressing toward a top named entity in the defined hierarchy.

59. The apparatus of claim 58 wherein the named entities in the defined hierarchy have associated named entity types, and wherein the reduction rules define how a plurality of different combinations of named entity types are reduced into a plurality of different aggregations of named entities, wherein each aggregation of named entities also has an associated named entity type.

60. The apparatus of claim 59 wherein the named entity types include an entity, an entity type, a qualifier, an attribute, a relationship, and a relationship type.

61. A natural language processing apparatus for determining a meaning of a message in order to control a natural language generation (NLG) system for responding to the message, wherein the message comprises data representing a plurality of words arranged in natural language, the apparatus comprising:

a memory; and

a processor for cooperation with the memory, the processor configured to:

perform named entity recognition on the words of the message to identify a plurality of named entities that correspond to words in the message based on a knowledge base of named entities;

syntactically parse the message to generate data that defines a grammatical hierarchy of the named entities within the message;

reduce the named entities within the message to a reduced aggregation of named entities based on the defined grammatical hierarchy and a plurality of reduction rules, wherein the reduced aggregation of named entities represents an inferred core meaning for the message; and

generate control instructions for the NLG system based on the reduced aggregation of named entities, wherein the control instructions comprise a plurality of configuration parameters for the NLG system that are derived from the message, and wherein the control instructions are configured to cause the NLG system to generate a natural language response that expresses a communication goal that is responsive to the inferred core meaning for the message;

wherein the processor is further configured to apply the reduction rules to combinations of named entities in the defined hierarchy starting from a lowest named entity in the defined hierarchy and progressing toward a top named entity in the defined hierarchy;

wherein the named entities in the defined hierarchy have associated named entity types, and wherein the reduction rules define how a plurality of different combinations of named entity types are reduced into a plurality of different aggregations of named entities, wherein each aggregation of named entities also has an associated named entity type;

wherein the named entity types include an entity, an entity type, a qualifier, an attribute, a relationship, and a relationship type; and

wherein the reduction rules comprise:

a first reduction rule that reduces a combination of named entities corresponding to the entity named entity type, the qualifier named entity type, and the attribute named entity type to an aggregated named entity corresponding to the entity named entity type;

a second reduction rule that reduces a combination of named entities corresponding to the relationship type named entity type and the entity named entity type to an aggregated named entity corresponding to the relationship entity type;

a third reduction rule that reduces a combination of named entities corresponding to the entity named entity type and the relationship named entity type to an aggregated named entity corresponding to the entity named entity type; and

a fourth reduction rule that reduces one or more named entities corresponding to the entity type named entity type to an aggregated named entity corresponding to the entity named entity type.

62. The apparatus of claim 61 wherein the processor is further configured to map the reduced aggregation of named entities to the control instructions based on a plurality of rules that map different reduced aggregations of named entities to different control instructions for the NLG system.

63. The apparatus of claim 61 wherein the processor is further configured to apply the reduction rules to combinations of adjacent named entities in the defined hierarchy starting from the lowest named entity in the defined hierarchy and progressing toward the top named entity in the defined hierarchy.

Assignments (5)
CHANGE OF NAME Recorded Mar 25, 2024
From: NARRATIVE SCIENCE INC.
To: NARRATIVE SCIENCE LLC
Reel/Frame 066884/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2024
From: NARRATIVE SCIENCE LLC
To: SALESFORCE, INC.
Reel/Frame 067218/0449 →
RELEASE OF SECURITY INTEREST Recorded Mar 1, 2022
From: CIBC BANK USA
To: NARRATIVE SCIENCE INC
Reel/Frame 059640/0008 →
SECURITY INTEREST Recorded Aug 30, 2019
From: NARRATIVE SCIENCE INC.
To: CIBC BANK USA
Reel/Frame 050237/0365 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2019
From: LEWIS MEZA, MAIA; NORRIS, CLAYTON NICHOLAS; SMATHERS, MICHAEL JUSTIN; PLATT, DANIEL JOSEPH; NICHOLS, NATHAN D.
To: NARRATIVE SCIENCE INC.
Reel/Frame 048344/0959 →
Continuity (1)
Provisional Application 62632017 · Feb 19, 2018
Cited By (11)
US 12,248,461 US 12,288,039 US 12,314,674 US 12,423,525 US 12,462,114 US 12,468,694 US 12,505,093 US 12,608,416 US 12,614,042 US 12,632,445 US 12,681,997