IP Library Granted Patent US 9,576,009
Granted Patent B1
US 9,576,009 · App. 14/626,966 · Granted Feb 21, 2017

Automatic generation of narratives from data using communication goals and narrative analytics

Inventors: Kristian J. Hammond (Chicago, IL); Lawrence Birnbaum (Evanston, IL); Nathan Drew Nichols (Chicago, IL); Andrew R. Paley (Chicago, IL); Shingo Murata (Chicago, IL); Pia Opulencia (Chicago, IL)
Assignee: NARRATIVE SCIENCE INC.
G06F17/30321
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 9,576,009
App. No.
14/626,966
Granted
Feb 21, 2017
Kind
B1
Abstract

The exemplary embodiments described herein are related to techniques for automatically generating narratives about data based on communication goal data structures that are associated with configurable content blocks. The use of such communication goal data structures facilitates modes of operation whereby narratives can be generated in real-time and/or interactive manners.

Claims (165)

1. A method comprising:

a processor defining a communication goal data structure, wherein the communication goal data structure is associated with a communication goal and comprises (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure;

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative; and

the processor storing another communication goal data structure in the memory, the another communication goal data structure being associated with another communication goal, and

wherein the defined communication goal data structure further comprises third data that is indicative of the another communication goal data structure to thereby identify the another communication goal data structure as being related to the defined communication goal data structure.

2. The method of claim 1 further comprising:

the processor defining a plurality of values for the communication goal parameters;

the processor instantiating the content block data structure associated with the communication goal data structure based on the defined parameter values; and

the processor automatically generating a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

3. The method of claim 2 further comprising:

the processor receiving input via an interface; and

wherein the step of defining step the plurality of values for the communication goal parameters comprises the processor defining the plurality of values for the communication goal parameters in response to the received input.

4. A method comprising:

a processor defining a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of describing a status for a subject, the defined communication goal data structure comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure; and

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative; and

wherein the second data comprises:

a subject metric parameter; and

a time frame parameter.

5. The method of claim 4 wherein the second data further comprises:

a change threshold parameter.

6. A method comprising:

a processor defining a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of evaluating a status for a subject, the defined communication goal data structure comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure; and

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative; and

wherein the second data comprises:

a subject metric parameter;

a time frame parameter; and

a reference comparison parameter.

7. A method comprising:

a processor defining a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of explaining a status for a subject, the defined communication goal data structure comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure; and

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative; and

wherein the second data comprises:

a subject metric parameter;

a time frame parameter; and

a driver parameter for the subject metric parameter.

8. The method of claim 7 wherein the driver parameter comprises a plurality of the driver parameters.

9. The method of claim 8 wherein the plurality of driver parameters comprise a contributing driver and an inhibiting driver.

10. A method comprising:

a processor defining a communication goal data structure, wherein the communication goal data structure comprises (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure;

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

storing a plurality of the communication goal data structures in the memory as a communication goal library, each communication goal data structure in the library being associated with a communication goal such that the communication goal data structures in the communication goal library are associated with a plurality of different communication goals;

storing a plurality of the content block data structures in the memory as a content block library, the content block data structures configured to specify a plurality of narrative analytic models for a plurality of different narrative types;

the processor processing input relating to a request for a narrative story about a set of data to determine a communication goal corresponding to the request;

the processor selecting a communication goal data structure from the communication goal library based on the determined communication goal; and

the processor automatically generating a narrative about the data set based on an instantiation of the content block data structure in the content block library that is associated with the selected communication goal data structure.

11. A method comprising:

a processor defining a communication goal data structure, wherein the communication goal data structure is associated with a communication goal and comprises (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure;

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

receiving input through an interface, the input defining a plurality of values for the communication goal parameters;

the processor instantiating the content block data structure associated with the communication goal data structure based on the defined parameter values; and

the processor automatically generating a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

12. The method of claim 11 wherein the interface comprises a user interface, and wherein the received input comprises user input.

13. The method of claim 11 wherein the second data comprises:

an information density parameter.

14. The method of claim 11 wherein the second data comprises:

a tone parameter.

15. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the communication goal data structure is associated with a communication goal and comprises (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure;

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative; and

store another communication goal data structure in the memory, the another communication goal data structure being associated with another communication goal; and

wherein the defined communication goal data structure further comprises third data that is indicative of the another communication goal data structure to thereby identify the another communication goal data structure as being related to the defined communication goal data structure.

16. The apparatus of claim 15 wherein the processor is further configured to:

define a plurality of values for the communication goal parameters;

instantiate the content block data structure associated with the communication goal data structure based on the defined parameter values; and

automatically generate a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

17. The apparatus of claim 16 wherein the processor is further configured to (1) receive input via an interface, and (2) define the plurality of values for the communication goal parameters in response to the received input.

18. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of describing a status for a subject, the defined communication goal comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure; and

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative; and

wherein the second data comprises:

a subject metric parameter; and

a time frame parameter.

19. The apparatus of claim 18 wherein the second data further comprises:

a change threshold parameter.

20. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of evaluating a status for a subject, the defined communication goal comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure; and

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative; and

wherein the second data comprises:

a subject metric parameter;

a time frame parameter; and

a reference comparison parameter.

21. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of explaining a status for a subject, the defined communication goal comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure; and

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative; and

wherein the second data comprises:

a subject metric parameter;

a time frame parameter; and

a driver parameter for the subject metric parameter.

22. The apparatus of claim 21 wherein the driver parameter comprises a plurality of the driver parameters.

23. The apparatus of claim 22 wherein the plurality of driver parameters comprise a contributing driver and an inhibiting driver.

24. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the communication goal data structure comprises (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure;

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

store a plurality of the communication goal data structures in the memory as a communication goal library, each communication goal data structure in the library being associated with a communication goal such that the communication goal data structures in the communication goal library are associated with a plurality of different communication goals;

store a plurality of the content block data structures in the memory as a content block library, the content block data structures configured to specify a plurality of narrative analytic models for a plurality of different narrative types;

process input relating to a request for a narrative story about a set of data to determine a communication goal corresponding to the request;

select a communication goal data structure from the communication goal library based on the determined communication goal; and

automatically generate a narrative about the data set based on an instantiation of the content block data structure in the content block library that is associated with the selected communication goal data structure.

25. The apparatus of claim 24 wherein the second data comprises:

an information density parameter.

26. The apparatus of claim 24 wherein the second data comprises:

a tone parameter.

27. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the communication goal data structure is associated with a communication goal and comprises (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure;

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

receive input through an interface, the input defining a plurality of values for the communication goal parameters;

instantiate the content block data structure associated with the communication goal data structure based on the defined parameter values; and

automatically generate a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

28. The apparatus of claim 27 wherein the interface comprises a user interface, and wherein the received input comprises user input.

29. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of describing a status for a subject, the defined communication goal comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure;

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

define a plurality of values for the communication goal parameters;

instantiate the content block data structure associated with the communication goal data structure based on the defined parameter values; and

automatically generate a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

30. The apparatus of claim 29 wherein the processor is further configured to (1) receive input via an interface, and (2) define the plurality of values for the communication goal parameters in response to the received input.

31. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of evaluating a status for a subject, the defined communication goal comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure;

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

define a plurality of values for the communication goal parameters;

instantiate the content block data structure associated with the communication goal data structure based on the defined parameter values; and

automatically generate a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

32. The apparatus of claim 31 wherein the processor is further configured to (1) receive input via an interface, and (2) define the plurality of values for the communication goal parameters in response to the received input.

33. An apparatus comprising:

a processor configured to:

define a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of explaining a status for a subject, the defined communication goal comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are for use by the parameterized models of the associated content block data structure;

store the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

define a plurality of values for the communication goal parameters;

instantiate the content block data structure associated with the communication goal data structure based on the defined parameter values; and

automatically generate a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

34. The apparatus of claim 33 wherein the processor is further configured to (1) receive input via an interface, and (2) define the plurality of values for the communication goal parameters in response to the received input.

35. A method comprising:

a processor defining a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of describing a status for a subject, the defined communication goal data structure comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure;

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

the processor defining a plurality of values for the communication goal parameters;

the processor instantiating the content block data structure associated with the communication goal data structure based on the defined parameter values; and

the processor automatically generating a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

36. The method of claim 35 further comprising:

the processor receiving input via an interface; and

wherein the step of defining step the plurality of values for the communication goal parameters comprises the processor defining the plurality of values for the communication goal parameters in response to the received input.

37. A method comprising:

a processor defining a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of evaluating a status for a subject, the defined communication goal data structure comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure;

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

the processor defining a plurality of values for the communication goal parameters;

the processor instantiating the content block data structure associated with the communication goal data structure based on the defined parameter values; and

the processor automatically generating a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

38. The method of claim 37 further comprising:

the processor receiving input via an interface; and

wherein the step of defining step the plurality of values for the communication goal parameters comprises the processor defining the plurality of values for the communication goal parameters in response to the received input.

39. A method comprising:

a processor defining a communication goal data structure, wherein the defined communication goal data structure is associated with a communication goal of explaining a status for a subject, the defined communication goal data structure comprising (1) first data that is indicative of a content block data structure associated with the communication goal data structure, the associated content block data structure comprising a parameterized model for a plurality of data components that need to be analyzed to generate a narrative and a parameterized model for a plurality of computational components for analyzing the data components to generate a narrative, and (2) second data that is indicative of a plurality of communication goal parameters whose values are variable, wherein the plurality of communication goal parameters are used by the parameterized models of the associated content block data structure;

the processor storing the defined communication goal data structure in a memory such that the defined communication goal data structure is accessible for use by a processor when automatically generating a narrative about data based on input about a communication goal to be satisfied by the automatically generated narrative;

the processor defining a plurality of values for the communication goal parameters;

the processor instantiating the content block data structure associated with the communication goal data structure based on the defined parameter values; and

the processor automatically generating a narrative about the data using the instantiated content block data structure, wherein the narrative targets the communication goal associated with the communication goal data structure.

40. The method of claim 39 further comprising:

the processor receiving input via an interface; and

wherein the step of defining step the plurality of values for the communication goal parameters comprises the processor defining the plurality of values for the communication goal parameters in response to the received input.

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 Mar 18, 2015
From: HAMMOND, KRISTIAN J.; BIRNBAUM, LAWRENCE; NICHOLS, NATHAN DREW; PALEY, ANDREW R.; MURATA, SHINGO; OPULENCIA, PIA
To: NARRATIVE SCIENCE INC.
Reel/Frame 035190/0837 →
Continuity (6)
Continuation 14521264 · Oct 22, 2014
Continuation 14570834 · Dec 15, 2014
Continuation 14521264
Continuation 14626966
Continuation 14570858 · Dec 15, 2014
Continuation 14521264