Techniques for providing a natural language narrative
AssigneeCBS Interactive Inc.
InventorMatthew Locke
Life of this patent
Estimating the term…
Abstract
Various embodiments for providing a natural language narrative are described. Embodiments may include a summary engine that collects data about an event, and selects a template to narrate a story about the event. A template may include static text, slots for data from the event, and slots for dynamic word choice. Templates may be selected according to a story type and story “flavor.” Templates may also include conditions that determine a choice of the use of template sub-sections. Various aspects of the templates may be selected randomly, to create the impression that the story is human-generated. The stories may be published to a variety of locations and formats. Other embodiments are described and claimed.
Claims18
A computer-implemented method comprising:
- receiving a notification indicating that data about an event is in a database;
- receiving the data about the event from the database, the received data comprising data generated by an application based on an analysis of visual information of a video of the event;
- selecting a story type associated with a plurality of paragraph types, the story type comprising one or more word categories comprising a container for one or more sets of word lists, each word category associated with a set of properties, each word list comprising a container for word definitions comprising one or more synonyms, each word definition in each word list bound to a data item in the received event data comprising a range of values, the data item comprising one or more of a score of the event, a characteristic of an action taken during the event, statistical data about a participant's performance during the event, statistical data about a team's performance during the event, historical data about a team, and historical data about a participant, each paragraph type comprising a different set of a plurality of paragraph definitions, each paragraph definition comprising static text and an empty template slot in a plurality of sentences;
- selecting a paragraph definition randomly from the set of the plurality of paragraph definitions for a first one of the plurality of associated paragraph types of the selected story type;
- selecting an additional paragraph definition randomly from the set of the plurality of paragraph definitions for each of the remaining paragraph types of the selected story type;
- appending the selected paragraph definitions together to form a master narrative template for the event, the master narrative template comprising the empty template slots of the selected paragraph definitions;
- completing a narrative summary by:
- filling a data empty template slot in the master narrative template with a data item from the received data;
- selecting a word from a first word list of the one or more sets of word lists when a value of the data item to which the first word list is bound is within the range of values of the selected word;
- randomly selecting a word from a second word list of the one or more sets of word lists when the value of the data item is not within the range of values;
- and
- filling word empty template slots in the master narrative template with the selected words from the first and second word lists;
- and
- publishing the narrative summary.
An apparatus comprising:
- a logic device comprising processing circuitry;
- a memory storing instructions which when executed by the logic device cause the logic device to:
- receive a notification indicating that data about an event is in a database;
- receive the data about the event from the database, the received data comprising data generated by an application based on an analysis of visual information of a video of the event;
- select a story type associated with a plurality of paragraph types, the story type comprising one or more word categories comprising a container for one or more sets of word lists, each word category associated with a set of properties, each word list comprising a container for word definitions comprising one or more synonyms, each word definition in each word list bound to a data item in the received event data comprising a range of values, the data item comprising one or more of a score of the event, a characteristic of an action taken during the event, statistical data about a participant's performance during the event, statistical data about a team's performance during the event, historical data about a team, and historical data about a participant, each paragraph type comprising a different set of a plurality of paragraph definitions, each paragraph definition comprising static text and an empty template slot in a plurality of sentences;
- select a paragraph definition randomly from the set of the plurality of paragraph definitions for a first one of the plurality of associated paragraph types of the selected story type;
- select an additional paragraph definition randomly from the set of the plurality of paragraph definitions for each of the remaining paragraph types of the selected story type;
- append the selected paragraph definitions together to form a master narrative template for the event, the master narrative template comprising the empty template slots of the selected paragraph definitions;
- complete a narrative summary by:
- filling a data empty template slot in the master narrative template with a data item from the received data;
- selecting a word from a first word list of the one or more sets of word lists when a value of the data item to which the first word list is bound is within the range of values of the selected word;
- randomly selecting a word from a second word list of the one or more sets of word lists when the value of the data item is not within the range of values;
- and
- filling word empty template slots in the master narrative template with the selected words from the first and second word lists;
- and
- publishing the narrative summary.
A non-transitory computer-readable storage medium comprising instructions that when executed cause a computing system to:
- receive a notification indicating that data about an event is in a database;
- receive the data about the event from the database, the received data comprising data generated by an application based on an analysis of visual information of a video of the event;
- select a story type associated with a plurality of paragraph types, the story type comprising one or more word categories comprising a container for one or more sets of word lists, each word category associated with a set of properties, each word list comprising a container for word definitions comprising one or more synonyms, each word definition in each word list bound to a data item in the received event data comprising a range of values, the data item comprising one or more of a score of the event, a characteristic of an action taken during the event, statistical data about a participant's performance during the event, statistical data about a team's performance during the event, historical data about a team, and historical data about a participant, each paragraph type comprising a different set of a plurality of paragraph definitions, each paragraph definition comprising static text and an empty template slot in a plurality of sentences;
- select a paragraph definition randomly from the set of the plurality of paragraph definitions for each of the plurality of associated paragraph types of the selected story type;
- select a subsequent paragraph definition randomly from the set of the plurality of paragraph definitions for each of the remaining paragraph types of the selected story type;
- append the selected paragraph definitions together to form a master template for the event, the master template comprising the empty template slots of the selected paragraph definitions;
- generate a narrative summary by:
- filling a data empty template slot in the master template with a data item from the received data,
- selecting a word from a first word list of the one or more sets of word lists when a value of the data item to which the first word list is bound is within the range of values of the selected word;
- randomly selecting a word from a second word list of the one or more sets of word lists when the value of the data item is not within the range of values;
- and
- filling word empty template slots in the master narrative template with the selected words from the first and second word lists;
- and
- publish the narrative summary.
Dependencies are inferred from the claim text.