IP Library Granted Patent US 11,238,090
Granted Patent B1
US 11,238,090 · App. 15/253,385 · Granted Feb 1, 2022

Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from visualization data

Inventors: Daniel Joseph Platt (Chicago, IL); Mauro Eduardo Ignacio Mujica-Parodi, III (Chicago, IL); Lawrence A. Birnbaum (Evanston, IL); Alexander Rudolf Sippel (Chicago, IL); Jonathan Alden Drake (Chicago, IL); Peter Horace Sherman (Chicago, IL)
Assignee: NARRATIVE SCIENCE INC.
G06F16/51G06F16/248G06F16/9024G06T11/206
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 11,238,090
App. No.
15/253,385
Filed
Aug 31, 2016
Granted
Feb 1, 2022
Kind
B1
Examiner
VU, BAI DUC
Art Unit
2165
USPC
707/722
Abstract

Disclosed herein are example embodiments that describe how a narrative generation techniques can be used in connection with data visualization tools to automatically generate narratives that explain the information conveyed by a visualization of a data set. In example embodiments, new data structures and artificial intelligence (AI) logic can be used by narrative generation software to map different types of visualizations to different types of story configurations that will drive how narrative text is generated by the narrative generation software.

Claims (125)

1. A method comprising:

processing visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, wherein the visualization parameter data corresponds to a visualization about a data set, wherein the visualization parameter data comprises metadata that indicates a visualization type for the visualization from among a plurality of different visualization types, wherein the processing step comprises:

accessing a data structure in a memory, wherein the data structure associates a plurality of different story types with a plurality of the different visualization types, the different visualization types comprising a plurality of members of the group consisting of (1) a vertical bar chart, (2) a histogram, (3) a clustered bar chart, (4) a stacked bar chart, (5) a line chart with a single line, (6) a graph with a single graph, (7) a line chart with a plurality of lines and a single dimension, (8) a graph with a plurality of graphs and a single dimension, (9) a line chart with a plurality of lines and plurality of dimensions, and (10) a graph with a plurality of graphs and a plurality of dimensions;

selecting the story type that is associated by the accessed data structure with the visualization type-indicative metadata of the processed visualization parameter data; and

configuring the selected story type based on the processed visualization parameter data; and

automatically generating the natural language narrative about the data set based on the configured story type; and

wherein the method steps are performed by a processor.

2. The method of claim 1 wherein the story types are represented by a plurality of story configurations, each of a plurality of the story configurations specifying one or more content block data structures, at least one of the content block data structures specifying one or more angle data structures.

3. The method of claim 2 wherein the configuring step comprises the processor specifying a parameter for a content block data structure of the selected story configuration based on the processed visualization parameter data.

4. The method of claim 2 wherein the configuring step comprises the processor specifying a parameter for an angle data structure of a content block data structure of the selected story configuration based on the processed visualization parameter data.

5. The method of claim 1 wherein the natural language narrative about the data set is generated based solely on the visualization parameter data.

6. The method of claim 1 further comprising:

the processor accessing a visualization platform via an application programming interface (API) to obtain the visualization parameter data.

7. The method of claim 6 wherein the step of accessing the visualization platform further comprises: (1) first accessing the visualization platform via the API to obtain a first set of visualization parameter data, the first set of visualization parameter data for use by the processor to select the story type based on the accessed data structure and (2) second accessing the visualization platform via the API to obtain a second set of visualization parameter data, the second set of visualization parameter data for use by the processor to configure the selected story type.

8. The method of claim 1 further comprising:

the processor receiving data indicative of a selection by a user of a component of the visualization; and

in response to the received component selection data, the processor (1) updating at least one of the selecting step and/or the configuring step based on the received component selection data and (2) repeating the automatically generating step based on the updating step.

9. The method of claim 1 wherein the processor is part of a narrative generation platform in communication with a visualization platform.

10. The method of claim 1 wherein the processor executes the method steps as an extension within a visualization platform.

11. The method of claim 1 further comprising:

displaying the natural language narrative in coordination with a display of the visualization.

12. The method of claim 11 wherein the displaying step comprises displaying the natural language narrative as a caption for the visualization.

13. The method of claim 1 wherein the selected story type defines a narrative structure for the natural language narrative, and wherein the automatically generating step comprises:

the processor determining content for inclusion in the natural language narrative based on the configured story type and the data set; and

the processor generating the natural language narrative from the determined content in accordance with the narrative structure for the selected story type.

14. The method of claim 1 wherein the processor comprises a plurality of processors.

15. A method comprising:

processing visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, wherein the visualization parameter data corresponds to a visualization about a data set, wherein the visualization parameter data comprises an axis label for the visualization, wherein the processing step comprises:

accessing a data structure in a memory, wherein the data structure associates different axis labels with a plurality of different story types;

selecting the story type that is associated by the accessed data structure with the axis label of the processed visualization parameter data; and

configuring the selected story type based on the processed visualization parameter data; and

automatically generating natural language narrative about the data set based on the configured story type;

wherein the method steps are performed by a processor.

16. The method of claim 15 wherein the processor comprises a plurality of processors.

17. A method comprising:

processing visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, wherein the visualization parameter data corresponds to a visualization about a data set, wherein the visualization parameter data comprises a data type for an axis of the visualization, wherein the axis data type indicates that data shown by the visualization along the axis corresponds to continuous data, wherein the processing step comprises:

accessing a data structure in a memory, wherein the data structure associates different axis data types with a plurality of different story types;

selecting the story type that is associated by the accessed data structure with the axis data type of the processed visualization parameter data; and

configuring the selected story type based on the processed visualization parameter data; and

automatically generating natural language narrative about the data set based on the configured story type;

wherein the method steps are performed by a processor.

18. The method of claim 17 wherein the continuous data indication corresponds to temporal data.

19. The method of claim 17 wherein the processor comprises a plurality of processors.

20. An apparatus comprising:

a processor and memory that are configured to:

process visualization parameter data to determine how to translate the visualization parameter data into natural language narrative text that describes the visualization parameter data, the visualization parameter data comprising visualization data and visualization metadata that define a visualization of a data set, wherein the visualization metadata comprises a visualization type for the visualization from among a plurality of different visualization types, wherein the processor and memory are further configured to perform the following as part of the process operation:

select a story configuration from among a plurality of story configurations based on a data structure that associates a plurality of different story configurations with a plurality of the different visualization types, wherein the selected story configuration is associated by the data structure with the visualization type of the visualization metadata within the processed visualization parameter data, and wherein the selected story configuration specifies a narrative analytic model for generating a narrative and a plurality of parameters used by the narrative analytic model, the different visualization types comprising a plurality of members of the group consisting of (1) a vertical bar chart, (2) a histogram, (3) a clustered bar chart, (4) a stacked bar chart, (5) a line chart with a single line, (6) a graph with a single graph, (7) a line chart with a plurality of lines and a single dimension, (8) a graph with a plurality of graphs and a single dimension, (9) a line chart with a plurality of lines and plurality of dimensions, and (10) a graph with a plurality of graphs and a plurality of dimensions;

process the selected story configuration to identify the parameters needed for the selected story configuration;

map visualization data and visualization metadata from the processed visualization parameter data to the identified story configuration parameters based on a parameter mapping data structure; and

parameterize the selected story configuration using the mapped visualization data and visualization metadata from the processed visualization parameter data; and

automatically generate the natural language narrative text about the visualization based on the parameterized story configuration and the mapped visualization data and visualization metadata from the processed visualization parameter data.

21. The apparatus of claim 20 wherein the processor comprises a plurality of processors.

22. A computer program product comprising:

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

process visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, wherein the visualization parameter data corresponds to a visualization about a data set, wherein the visualization parameter data comprises metadata that indicates a visualization type for the visualization from among a plurality of different visualization types, wherein the instructions are further configured for execution by the processor to cause the processor to perform the following as part of the process operation:

access a data structure in a memory, wherein the data structure associates a plurality of different story types with a plurality of the different visualization types, the different visualization types comprising a plurality of members of the group consisting of (1) a vertical bar chart, (2) a histogram, (3) a clustered bar chart, (4) a stacked bar chart, (5) a line chart with a single line, (6) a graph with a single graph, (7) a line chart with a plurality of lines and a single dimension, (8) a graph with a plurality of graphs and a single dimension, (9) a line chart with a plurality of lines and plurality of dimensions, and (10) a graph with a plurality of graphs and a plurality of dimensions;

select the story type that is associated by the accessed data structure with the visualization type-indicative metadata of the processed visualization parameter data; and

configure the selected story type based on the processed visualization parameter data; and

automatically generate the natural language narrative about the data set based on the configured story type.

23. A method comprising:

processing visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, wherein the visualization parameter data corresponds to a visualization about a data set, wherein the visualization parameter data comprises metadata that indicates a visualization type for the visualization from among a plurality of different visualization types, wherein the processing step comprises:

accessing a data structure in a memory, wherein the data structure associates a plurality of different story types with a plurality of the different visualization types, the different visualization types comprising a plurality of members of the group consisting of (1) a vertical bar chart, (2) a histogram, (3) a clustered bar chart, (4) a stacked bar chart, (5) a line chart with a single line, (6) a graph with a single graph, (7) a line chart with a plurality of lines and a single dimension, (8) a graph with a plurality of graphs and a single dimension, (9) a line chart with a plurality of lines and plurality of dimensions, and (10) a graph with a plurality of graphs and a plurality of dimensions;

selecting the story type that is associated by the accessed data structure with the visualization type-indicative metadata of the processed visualization parameter data; and

based on the selected story type, selecting a subset of narrative analytics from among a set of narrative analytics for use in generating the natural language narrative about the data set; and

automatically generating the natural language narrative about the data set using the selected subset of narrative analytics; and

wherein the method steps are performed by a processor.

24. The method of claim 23 further comprising:

maintaining a plurality of story type-specific narrative generation engines, each story-type specific narrative generation engine being associated with a story type and configured to generate narrative texts that are organized in accordance with its associated story type; and

wherein the subset selecting step comprises the processor selecting the story type-specific narrative generation engine that is associated with the selected story type; and

wherein the automatically generating step comprises using the selected story type-specific narrative generation engine to generate the natural language narrative about the data set.

25. The method of claim 23 wherein the subset selecting step comprises the processor selecting a story configuration associated with the selected story type, the story configuration specifying the subset of narrative analytics.

26. The method of claim 23 wherein the processor comprises a plurality of processors.

27. A method comprising:

processing visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, wherein the visualization parameter data comprises visualization metadata for a visualization from among the plurality of different visualization metadata items, wherein the processing step comprises:

accessing a data structure in a memory, wherein the data structure associates visualization parameter data with a plurality of story types including (1) an association of visualization metadata that indicates the visualization is a bar chart with a first story type and (2) an association of visualization metadata that indicates the visualization is a line chart with a second story type, wherein the second story type is different than the first story type;

selecting the story type that is associated by the accessed data structure with the processed visualization parameter data; and

configuring the selected story type based on the processed visualization parameter data; and

automatically generating the natural language narrative about the data set based on the configured story type; and

wherein the method steps are performed by a processor.

28. The method of claim 27 wherein the processor comprises a plurality of processors.

29. The method of claim 27 wherein the first story type defines a story that compares a plurality of elements of the bar chart defined by the visualization parameter data, and wherein the second story type defines a story that describes a trend in a plurality of data values of the line chart defined by the visualization parameter data.

30. A method comprising:

processing visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, wherein the visualization parameter data comprises visualization metadata for a visualization from among the plurality of different visualization metadata items, wherein the processing step comprises:

accessing a data structure in a memory, wherein the data structure associates visualization parameter data with a plurality of story types including (1) an association of visualization metadata that indicates the visualization is a first type of bar chart with a first story type and (2) an association of visualization metadata that indicates the visualization is a second type of bar chart with a second story type, wherein the second story type is different than the first story type;

selecting the story type that is associated by the accessed data structure with the processed visualization parameter data; and

configuring the selected story type based on the processed visualization parameter data; and

automatically generating the natural language narrative about the data set based on the configured story type; and

wherein the method steps are performed by a processor.

31. The method of claim 30 wherein the processor comprises a plurality of processors.

32. A method comprising:

processing visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, wherein the visualization parameter data comprises visualization metadata for a visualization from among the plurality of different visualization metadata items, wherein the processing step comprises:

accessing a data structure in a memory, wherein the data structure associates visualization parameter data with a plurality of story types including (1) an association of visualization metadata that indicates the visualization is a line chart that plots a single line with a first story type and (2) an association of visualization metadata that indicates the visualization is a line chart that plots multiple lines with a second story type, wherein the second story type is different than the first story type;

selecting the story type that is associated by the accessed data structure with the processed visualization parameter data; and

configuring the selected story type based on the processed visualization parameter data; and

automatically generating the natural language narrative about the data set based on the configured story type; and

wherein the method steps are performed by a processor.

33. The method of claim 32 wherein the processor comprises a plurality of processors.

34. An apparatus comprising:

a processor and memory that are configured to:

process visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, the visualization parameter data comprising visualization data and visualization metadata that define a visualization of a data set, wherein the processor and memory are further configured to perform the following as part of the process operation:

select a story configuration from among a plurality of story configurations based on a data structure and the processed visualization parameter data, wherein the data structure associates a plurality of different items of visualization metadata with a plurality of different story configurations including (1) an association of visualization metadata that indicates the visualization is a bar chart with a first story configuration and (2) an association of visualization metadata that indicates the visualization is a line chart with a second story configuration, wherein the second story configuration is different than the first story configuration, the selected story configuration specifying (1) a narrative analytic model for generating the natural language narrative and (2) a plurality of parameters used by the narrative analytic model;

process the selected story configuration to identify the parameters needed for the selected story configuration;

map visualization data and visualization metadata from the processed visualization parameter data to the identified story configuration parameters based on a parameter mapping data structure; and

parameterize the selected story configuration using the mapped visualization data and visualization metadata from the processed visualization parameter data; and

automatically generate the natural language narrative based on the parameterized story configuration and the mapped visualization data and visualization metadata from the processed visualization parameter data.

35. The apparatus of claim 34 wherein the processor comprises a plurality of processors.

36. The apparatus of claim 34 wherein the first story configuration defines a story that compares a plurality of elements of the bar chart defined by the visualization parameter data, and wherein the second story configuration defines a story that describes a trend in a plurality of data values of the line chart defined by the visualization parameter data.

37. An apparatus comprising:

a processor and memory that are configured to:

process visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, the visualization parameter data comprising visualization data and visualization metadata that define a visualization of a data set, wherein the processor and memory are further configured to perform the following as part of the process operation:

select a story configuration from among a plurality of story configurations based on a data structure and the processed visualization parameter data, wherein the data structure associates a plurality of different items of visualization metadata with a plurality of different story configurations including (1) an association of visualization metadata that indicates the visualization is a first type of bar chart with a first story configuration and (2) an association of visualization metadata that indicates the visualization is a second type of bar chart with a second story configuration, wherein the second story configuration is different than the first story configuration, the selected story configuration specifying (1) a narrative analytic model for generating the natural language narrative and (2) a plurality of parameters used by the narrative analytic model;

process the selected story configuration to identify the parameters needed for the selected story configuration;

map visualization data and visualization metadata from the processed visualization parameter data to the identified story configuration parameters based on a parameter mapping data structure; and

parameterize the selected story configuration using the mapped visualization data and visualization metadata from the processed visualization parameter data; and

automatically generate the natural language narrative based on the parameterized story configuration and the mapped visualization data and visualization metadata from the processed visualization parameter data.

38. The apparatus of claim 37 wherein the processor comprises a plurality of processors.

39. An apparatus comprising:

a processor and memory that are configured to:

process visualization parameter data to determine how to translate the visualization parameter data into a natural language narrative that explains the visualization parameter data, the visualization parameter data comprising visualization data and visualization metadata that define a visualization of a data set, wherein the processor and memory are further configured to perform the following as part of the process operation:

select a story configuration from among a plurality of story configurations based on a data structure and the processed visualization parameter data, wherein the data structure associates a plurality of different items of visualization metadata with a plurality of different story configurations including (1) an association of visualization metadata that indicates the visualization is a line chart that plots a single line with a first story configuration and (2) an association of visualization metadata that indicates the visualization is a line chart that plots multiple lines with a second story configuration, wherein the second story configuration is different than the first story configuration, the selected story configuration specifying (1) a narrative analytic model for generating the natural language narrative and (2) a plurality of parameters used by the narrative analytic model;

process the selected story configuration to identify the parameters needed for the selected story configuration;

map visualization data and visualization metadata from the processed visualization parameter data to the identified story configuration parameters based on a parameter mapping data structure; and

parameterize the selected story configuration using the mapped visualization data and visualization metadata from the processed visualization parameter data; and

automatically generate the natural language narrative based on the parameterized story configuration and the mapped visualization data and visualization metadata from the processed visualization parameter data.

40. The apparatus of claim 39 wherein the processor comprises a plurality of processors.

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 Sep 16, 2016
From: PLATT, DANIEL JOSEPH; MUJICA-PARODI, MAURO EDUARDO IGNACIO, III; BIRNBAUM, LAWRENCE A.; SIPPEL, ALEXANDER RUDOLPH; DRAKE, JONATHAN ALDEN; SHERMAN, PETER HORACE
To: NARRATIVE SCIENCE INC.
Reel/Frame 039765/0037 →
Continuity (1)
Provisional Application 62249813 · Nov 2, 2015
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