There is an ever-growing need in the art for improved natural language generation (NLG) technology. However, one of the challenges for developing a robust NLG system as a platform that is to be used by many different users is that each user may have different stylistic preferences regarding how content should be presented in NLG output. For example, Company A and Company B may both use the same underlying NLG technology to produce performance reports about its salespeople, but each may have different stylistic preferences for such reports. However, configuring the NLG system to differentiate its stylistic output for different users is a challenging task technologically.
As a technical advance in the art, the inventors disclose the use of natural language processing (NLP) techniques that are applied to training data to generate information used to train an NLG system to produce output that stylistically resembles the training data. In other words, the NLP techniques discussed herein permit an NLG system to be trained via automated learning techniques in a manner that will satisfy a user who wants the NLG system to “write like me”.
NLG is a subfield of artificial intelligence (AI) concerned with technology that produces language as output on the basis of some input information or structure (e.g., where the input constitutes data about a situation to be analyzed and expressed in natural language).
NLP is a subfield of AI concerned with technology that interprets natural language inputs, and natural language understanding (NLU) is a subfield of NLP concerned with technology that draws conclusions on the basis of some input information or structure.
A computer system that trains an NLG system to flexibly produce style-specific natural language outputs needs to combine these difficult areas of NLG and NLP/NLU so that the system not only understands the deeper meanings and styles that underlie the training data but also is able to translate these stylistic understandings and meanings into a configuration that is usable by the NLG system. The inventors disclose herein a number of technical advances with respect to the use of NLP technology to train an NLG system.
For example, the inventors disclose an NLP system that is able to detect a plurality of linguistic features in the training data, wherein the training data comprises a plurality of words arranged in a natural language. These detected linguistic features are then aggregated into a specification data structure that is arranged for training an NLG system to produce natural language output that stylistically resembles the training data. This specification data structure can comprise a machine-readable representation of the detected linguistic features. Parameters in the specification data structure can be linked to objects in an ontology used by the NLG system to facilitate the training of the NLG system based on the detected linguistic features.
The detected linguistic features can include numeric styles in the training data as well as date and number textual expressions in the training data. Examples of such linguistic features include decimal precision features, decimal separator features, digit grouping delimiter features, currency symbol features, day expressions features, month expression features, currency expressions features, and numeric expressions features.
The detected linguistic features can also include ontological vocabulary derived from the training data. Such ontological vocabulary can be used to train the NLG system to use expressions for ontological objects known by the NLG system that match up with how those ontological objects are expressed in the training data.
In a particularly powerful example embodiment discussed herein, the detected linguistic features can include concept expression templates that model how a concept is expressed in the training data. Examples of concepts that can be modeled in this fashion from the training data include change concepts, compare concepts, driver concepts, and rank concepts. In an example embodiment, to detect and extract such concept expression templates from the training data, the training data can be scanned for the presence of one or more anchor words, where each anchor word is associated with a concept understood by the system. If an anchor word is present in the training data, the system can then process the training data to extract an expression template that models how the concept associated with the present anchor word is discussed in the training data. NLP parsing can be applied to the training data and linkages to NLG ontologies can be employed to facilitate this concept expression template extraction.
Further still, the inventors disclose how user interfaces can be employed that permit a user to selectively control which of the detected linguistic features will be used to train the NLG system. Such user interfaces can also permit users to create concept expression templates “on the fly” in response to text inputs from the user (e.g., where a user types in a sentence from which a concept expression template is to be extracted).
Through these and other features, example embodiments of the invention provide significant technical advances in the NLP and NLG arts by harnessing computer technology to improve how natural language training data is processed to train an NLG system for producing natural language outputs in a manner that stylistically resembles the training data.
To aid the NLP-based training system 106 and the NLG system 108 in their operations, the NLP-based training system 106 and the NLG system 108 can access supporting data 110. This supporting data 110 can include the ontological and project data that serves as a knowledge base for the AI platform 104.
The computer system 100 comprises one or more processors and associated memories that cooperate together to implement the operations discussed herein. The computer system 100 may also include a data source that serves as a repository of data for analysis by the AI platform 104 when processing inputs and generating outputs. These components can interconnect with each other in any of a variety of manners (e.g., via a bus, via a network, etc.). For example, the computer system 100 can take the form of a distributed computing architecture where one or more processors implement the NLP tasks described herein (see NLP-based training system 106), one or more processors implement the NLG tasks described herein (see NLG system 108). Furthermore, different processors can be used for NLP and NLG tasks, or alternatively some or all of these processors may implement both NLP and NLG tasks. It should also be understood that the computer system 100 may include additional or different components if desired by a practitioner. The one or more processors may comprise general-purpose processors (e.g., a single-core or multi-core microprocessor), special-purpose processors (e.g., an application-specific integrated circuit or digital-signal processor), programmable-logic devices (e.g., a field programmable gate array), etc. or any combination thereof that are suitable for carrying out the operations described herein. The associated memories may comprise one or more non-transitory computer-readable storage mediums, such as volatile storage mediums (e.g., random access memory, registers, and/or cache) and/or non-volatile storage mediums (e.g., read-only memory, a hard-disk drive, a solid-state drive, flash memory, and/or an optical-storage device). The memory may also be integrated in whole or in part with other components of the system 100. Further, the memory may be local to the processor(s), although it should be understood that the memory (or portions of the memory) could be remote from the processor(s), in which case the processor(s) may access such remote memory through a network interface. The memory may store software programs or instructions that are executed by the processor(s) during operation of the system 100. Such software programs can take the form of a plurality of instructions configured for execution by processor(s). The memory may also store project or session data generated and used by the system 100. The data source can be any source of data, such as one or more databases, file systems, computer networks, etc. which may be part of the memory accessed by the processor(s).
The NLP-based training system 106 can be designed to work end-to-end without any human supervision, although it should be understood that a practitioner may choose to provide a user interface that allows users to review and update the determined linguistic features before they are applied to the NLG system 108.
At step 202, a processor extracts linguistic features from the ingested training data using a variety of pattern matchers and rule-based NLP heuristics, examples of which are discussed below. Using these techniques, specific linguistic features can be detected in and extracted from each document, and each document can be converted into a data structure (e.g., a JSON data structure) that contains linguistic feature metadata.
At step 204, a processor aggregates the extracted linguistic features produced from the documents at step 202 by iterating over the document-specific data structures. This can include deriving totals, percentages, grouping, and sorting, which operates to produce a specification data structure (e.g., a JSON specification data structure, which is a machine-readable description of the linguistic features extracted from the ingested training data 126.
At step 206, a user interface (e.g., a browser-based graphical user interface (GUI)) can process the specification data structure and present a user with the linguistic features discovered by steps 202 and 204. Through the user interface, the user can elect to discard any of the discovered linguistic features. In example embodiments, the user can also enter custom sentences into the user interface to add additional ontological vocabulary to the system and/or add concept expressions to the specification. However, as noted above, such user interaction can be omitted if desired by a practitioner.
At step 208, a processor configures the NLG system 108 based on the specification data structure to thereby train the NLG system 108 to produce language that stylistically resembles the training data 126. In an example embodiment, a platform-specific applicator can take the JSON specification data structure (and any user preferences) as inputs and update the appropriate configuration within the NLG system 108.
The NLG system 108 can then use the specification data structure to update its configuration information to control how it produces natural language output. In an example embodiment, the NLG system 108 can produce NLG output about a data set based on defined configurations such as parameterized communication goal statements. An example of NLG technology that can be used as the NLG system 108 is the QUILL™ narrative generation platform from Narrative Science Inc. of Chicago, Ill. Aspects of this technology are described in the following patents and patent applications: U.S. Pat. Nos. 8,374,848, 8,355,903, 8,630,844, 8,688,434, 8,775,161, 8,843,363, 8,886,520, 8,892,417, 9,208,147, 9,251,134, 9,396,168, 9,576,009, 9,697,178, 9,697,197, 9,697,492, 9,720,884, 9,720,899, and 9,977,773, 9,990,337, and 10,185,477; and US patent application Ser. No. 15/253,385 (entitled “Applied Artificial Intelligence Technology for Using Narrative Analytics to Automatically Generate Narratives from Visualization Data, filed Aug. 31, 2016), 62/382,063 (entitled “Applied Artificial Intelligence Technology for Interactively Using Narrative Analytics to Focus and Control Visualizations of Data”, filed Aug. 31, 2016), Ser. No. 15/666,151 (entitled “Applied Artificial Intelligence Technology for Interactively Using Narrative Analytics to Focus and Control Visualizations of Data”, filed Aug. 1, 2017), Ser. No. 15/666,168 (entitled “Applied Artificial Intelligence Technology for Evaluating Drivers of Data Presented in Visualizations”, filed Aug. 1, 2017), Ser. No. 15/666,192 (entitled “Applied Artificial Intelligence Technology for Selective Control over Narrative Generation from Visualizations of Data”, filed Aug. 1, 2017), 62/458,460 (entitled “Interactive and Conversational Data Exploration”, filed Feb. 13, 2017), Ser. No. 15/895,800 (entitled “Interactive and Conversational Data Exploration”, filed Feb. 13, 2018), 62/460,349 (entitled “Applied Artificial Intelligence Technology for Performing Natural Language Generation (NLG) Using Composable Communication Goals and Ontologies to Generate Narrative Stories”, filed Feb. 17, 2017), Ser. No. 15/897,331 (entitled “Applied Artificial Intelligence Technology for Performing Natural Language Generation (NLG) Using Composable Communication Goals and Ontologies to Generate Narrative Stories”, filed Feb. 15, 2018), Ser. No. 15/897,350 (entitled “Applied Artificial Intelligence Technology for Determining and Mapping Data Requirements for Narrative Stories to Support Natural Language Generation (NLG) Using Composable Communication Goals”, filed Feb. 15, 2018), Ser. No. 15/897,359 (entitled “Applied Artificial Intelligence Technology for Story Outline Formation Using Composable Communication Goals to Support Natural Language Generation (NLG)”, filed Feb. 15, 2018), Ser. No. 15/897,364 (entitled “Applied Artificial Intelligence Technology for Runtime Computation of Story Outlines to Support Natural Language Generation (NLG)”, filed Feb. 15, 2018), Ser. No. 15/897,373 (entitled “Applied Artificial Intelligence Technology for Ontology Building to Support Natural Language Generation (NLG) Using Composable Communication Goals”, filed Feb. 15, 2018), Ser. No. 15/897,381 (entitled “Applied Artificial Intelligence Technology for Interactive Story Editing to Support Natural Language Generation (NLG)”, filed Feb. 15, 2018), 62/539,832 (entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Analysis Communication Goals”, filed Aug. 1, 2017), Ser. No. 16/047,800 (entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Analysis Communication Goals”, filed Jul. 27, 2018), Ser. No. 16/047,837 (entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on a Conditional Outcome Framework”, filed Jul. 27, 2018), 62/585,809 (entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Smart Attributes and Explanation Communication Goals”, filed Nov. 14, 2017), Ser. No. 16/183,230 (entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Smart Attributes”, filed Nov. 7, 2018), Ser. No. 16/183,270 (entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Explanation Communication Goals”, filed Nov. 7, 2018), 62/632,017 (entitled “Applied Artificial Intelligence Technology for Conversational Inferencing and Interactive Natural Language Generation”, filed Feb. 19, 2018), Ser. No. 16/277,000 (entitled “Applied Artificial Intelligence Technology for Conversational Inferencing”, filed Feb. 15, 2019), Ser. No. 16/277,003 (entitled “Applied Artificial Intelligence Technology for Conversational Inferencing and Interactive Natural Language Generation”, filed Feb. 15, 2019), Ser. No. 16/277,004 (entitled “Applied Artificial Intelligence Technology for Contextualizing Words to a Knowledge Base Using Natural Language Processing”, filed Feb. 15, 2019), Ser. No. 16/277,006 (entitled “Applied Artificial Intelligence Technology for Conversational Inferencing Using Named Entity Reduction”, filed Feb. 15, 2019), and Ser. No. 16/277,008 (entitled “Applied Artificial Intelligence Technology for Building a Knowledge Base Using Natural Language Processing”, filed Feb. 15, 2019); the entire disclosures of each of which are incorporated herein by reference. As explained in the above-referenced and incorporated Ser. No. 16/183,230 patent application, the NLG system 108 can employ a conditional outcome framework to determine the ideas that should be expressed in the narrative that is produced in response to the parameterized communication goal statement. Once the ideas have been generated by the conditional outcome framework of the NLG system 108, the NLG system can then form these ideas into a narrative using the techniques described in the above-referenced and incorporated Ser. No. 16/183,230 patent application to generate the natural language output. Through the training techniques discussed herein, this natural language output will stylistically resemble the training data by including one or more expressions that are derived from the linguistic features detected in and extracted from the training data.
I. Linguistic Features
I(A). Numeric Styles
The numeric styles class of linguistic features is concerned with how numeric values are rendered in text. Numeric style pattern matchers 300 can detect and extract different aspects of numeric style expressed by numbers within the training data. The pattern matchers within 300 (examples of which are discussed below) can use regular expressions to define the generalized patterns sought within the training data 126 so that specific instances of the patterns can be recognized. Each pattern matcher can be run against the full text of each document within the training data 126, and the constituents of each match can be captured for aggregation into the specification data structure 370.
One or more decision precision pattern matchers 302 can be configured to determine the number of digits contained in the fractional part of a number written in decimal form. For example, the number “5.5” exhibits a single digit of decimal precision, while the number “5.539” exhibits 3 digits of decimal precision. Regular expressions can be employed to detect numbers written in decimal form, and then associated logic can be used to count how many digits are to the right of the decimal.
One or more decimal separator pattern matchers 304 can be configured to determine the character that is used by a number string to separate the integer part of the number from the fractional part of the number. For example, often times a period “.” is used to denote the decimal in a number, but sometimes other characters are used, such as a comma “,”. Regular expressions can be employed to detect numbers written in decimal form, and then associated logic can be used to determine the character being used to separate the integer and fractional portions. For example, the decimal separator pattern matcher 304 can return a period as the decimal separator if the input number is “305.59”, and it can return a comma as the decimal separator if the input number is “305,59”.
One or more digit grouping delimiter pattern matchers 306 can be configured to determine the character that is used by a number string to divide groups of integers in large integers that represent values over 1000. For example, often times a comma “,” is used to separate rightmost groupings of 3 digits in an integer, but sometimes other characters are used, such as a period “.” or white space. Regular expressions can be employed to detect the presence of large integers that represent values over 1000, and then associated logic can be used to determine the character being used to separate the integer portions in groups of 3 digits starting from the rightmost integer digit. For example, the digit grouping delimiter pattern matcher 306 can return a comma as the digit grouping delimiter if the input number is “30,000”; it can return a period as the digit grouping delimiter if the input number is “30.000”; and it can return white space as the digit grouping delimiter if the input number is “30 000”. Disambiguation techniques can be applied to distinguish between numbers that may be ambiguous as to whether they are large integers or small integers with a fractional component following a decimal. As an example, if the decimal separator character is unknown, then the number “5,536” could be interpreted as five thousand five hundred thirty six (if the decimal separator is a period) or it could be interpreted as five point five three six (if the decimal separator is a comma). Possible disambiguation options can include resolving decimal separation and digit grouping hierarchically (e.g., excluding a character found to be a decimal separator from consideration as a digit grouping delimiter), or flagging ambiguous cases for resolution via user input, etc.
One or more currency symbol pattern matchers 308 can be configured to determine the character that is used as a currency symbol within a string that expresses a currency value. Regular expressions can be employed to detect the currency values, and then associated logic can return the character used as the currency symbol (e.g., $, ¥, €, etc.).
I(B). Date and Number Expressions
The date and numbers class of linguistic features is concerned with the form of how numbers are dates are expressed in text. Date and number pattern matchers 310 can detect and extract different aspects of the formats for dates and numbers within the training data. The pattern matchers within 310 (examples of which are discussed below) can use regular expressions to define the generalized patterns sought within the training data 126 so that specific instances of the patterns can be recognized. Each pattern matcher can be run against the full text of each document within the training data 126, and the constituents of each match can be captured for aggregation into the specification data structure 370.
One or more day expressions pattern matchers 312 can be configured to determine the textual form in which days of the year are expressed (e.g., “Monday, Jan. 13, 2018”, “01/13/2018”, “13/01/2018”, “Jan. 13, 2018”, etc.). Regular expressions can be employed to detect which of a set of possible day expression patterns are present within the training data.
One or more month expressions pattern matchers 314 can be configured to determine the textual form in which months of the year are expressed (e.g., “January 2018”, “Jan. 2018”, “01/2018”, etc.). Regular expressions can be employed to detect which of a set of possible month expression patterns are present within the training data.
One or more currency expressions pattern matchers 316 can be configured to determine the textual form in which currency values are expressed (e.g., “$20”, “20 USD”, “20 US Dollars”, etc.). Regular expressions can be employed to detect which of a set of possible currency expression patterns are present within the training data.
One or more numeric expressions pattern matchers 318 can be configured to determine the textual form in which integer and decimal values are expressed (e.g., “Three Thousand Eighteen”, “3018”, etc.). Regular expressions can be employed to detect which of a set of possible numeric expression patterns are present within the training data.
I(C). Ontological Vocabulary
The ontological vocabulary class of linguistic features is concerned with the words used to represent ontological entities and relationships within the training data. Different information domains might refer to the same notional entity using different lexicons (e.g., Company A might refer to sales personnel as “salespeople” while Company B might refer to sales personnel as “sales associates”). The ontological vocabulary pattern matchers 320 can use data accessible to the underlying NLG system (e.g., supporting data 110) to automatically detect ontologically-significant words, particularly nouns and verbs. For example, the ontological vocabulary pattern matchers 320 can leverage an ontology used by the NLG system 108, which can contain a rich ontology that may include human-readable labels and linguistic expression forms that span one or more domains. Other data sources that can be tapped can include data sources that contain named instances of ontological entities, as well as name attribute values related to known entities. Although specific named instances may not have any relevance to vocabulary features and NLG expressions, they can help disambiguate relationship and/or attribute words. Such data sources can be used to build a text search index that maps specific words back to their corresponding ontological entities, where the text search index is for use by the ontological vocabulary pattern matchers 320. The system can build the index by traversing all nodes in the ontology as well as all fields in the underlying data sources via a data access layer for the training system 106.
As an example, consider the following ontology:
Entity: salesperson
Expressions: salesperson, account executive
Entity: sale
Expressions: sale, transaction, auction
Relationship: sells
Participating Entities: salesperson, sale
Expressions: sells, achieves, earns
As well as the following dataset, in tabular form:
Once the data above is loaded into the system, the ontological vocabulary pattern matchers 320 can extract vocabulary features and infer preferences from any of the following examples of unstructured text:
“In 2018, the top account executive was Tom Reynolds, with a total of 56,000”.
Identified: “account executive”
Result: Express salesperson entities as “account executive”
“In 2018, Aaron Young achieved 50,000 transactions”
Identified: “Aaron Young”, “achieved”, “transactions”
Result: Express relationship of sales+salespeople as “achieve”
At step 400 of
The ontology 410 can be the ontology for a data set addressed by the message, an example of such an ontology is described in the above-referenced and incorporated Ser. No. 16/183,230 patent application.
The project data 412 represents the data set that serves as a project-specific knowledge base. For example, the project data 412 can be the sales data for the salespeople of a company. Thus, the project data 412 may include a number of entity instances and attribute values for the entity types and attributes of the ontology 410.
The deictic context 414 can be a data structure that maps referring terms such as pronouns and demonstratives in the training data to specific named entities in the supporting data 110. This linguistic/deictic context can help the system know how to map referring terms such as pronouns that are mentioned in the training data to specific entities that are mentioned in the training data. An example of technology that can be used to build such a linguistic/deictic context is described in (1) U.S. patent application 62/612,820, filed Jan. 2, 2018, and entitled “Context Saliency-Based Deictic Parser for Natural Language Generation and Natural Language Processing”, (2) U.S. patent application Ser. No. 16/233,746, filed Dec. 27, 2018, and entitled “Context Saliency-Based Deictic Parser for Natural Language Generation”, and (3) U.S. patent application Ser. No. 16/233,776, filed Dec. 27, 2018, and entitled “Context Saliency-Based Deictic Parser for Natural Language Processing”, the entire disclosures of each of which are incorporated herein by reference.
The general knowledge 416 can be a data structure that identifies the words that people commonly use to describe data and timeframes (e.g., “highest”, etc.).
Step 400 can operate to read through these data sources and extract each unique instance of a named entity that is found to be present in the data sources, and build the prefix tree that allows the system to later recognize these named entities in the words of the training data and then map those named entities to elements in the ontology 410, project data 412, deictic context 414, and/or general knowledge that are understood by the system. Also, if desired by a practitioner, it should be understood that step 400 can be performed as a pre-processing step that happens before any training data is received by the NLP training system 106.
Then, step 402 maps words in the training data to named entities in the prefix tree. Thus, if the word “Aaron” appears in the training data, this can be recognized and mapped via the prefix tree to the entity instance of Aaron Young, and if the word “generate” appears in the training data, this can be recognized and mapped via the prefix tree to the attribute of sales value.
I(D). Concept Expressions
The concept expressions class of linguistic features is concerned with the sequence of words or phrases used in the training data to express NLG concepts. Concept expressions pattern matchers 330 can be used to infer the high level concepts that are expressed in the training data, and they thus represent a particularly powerful and innovative aspect that can be employed in example embodiments of training system 106. Examples of concepts that can be detected by pattern matchers 330 include:
The system can be configured to assume that all concept expressions contain an anchor word, a single or compound word that is globally unique to a particular concept. The system can then use occurrences of these anchor words to identify candidate phrases for template extraction. Examples of specific anchor words for several concepts are listed below.
For example, one or more change concept pattern matchers 332 can be configured to detect the presence of any of the following anchor words in a training sentence. Upon detection of one of these anchor words, the subject training sentence can be categorized as a candidate for a change expression and get passed to template extraction logic 350 (discussed below).
Examples of anchor words for a change concept can include:
As another example, one or more compare concept pattern matchers 334 can be configured to detect the presence of any of the following anchor words in a training sentence. Upon detection of one of these anchor words, the subject training sentence can be categorized as a candidate for a compare expression and get passed to template extraction logic 350 (discussed below). Examples of anchor words for a compare concept can include:
As another example, one or more driver concept pattern matchers 336 can be configured to detect the presence of any of the following anchor words in a training sentence. Upon detection of one of these anchor words, the subject training sentence can be categorized as a candidate for a driver expression and get passed to template extraction logic 350 (discussed below). Examples of anchor words for a driver concept can include:
As another example, one or more rank concept pattern matchers 338 can be configured to detect the presence of any of the following anchor words in a training sentence. Upon detection of one of these anchor words, the subject training sentence can be categorized as a candidate for a rank expression and get passed to template extraction logic 350 (discussed below). Examples of anchor words for a rank concept can include:
Furthermore, while the examples discussed herein describe “change”, “compare”, “driver”, and “rank” concepts, it should be understood that a practitioner may choose to detect other concepts that could be present within training data. For example, any of “peaks and troughs” concepts, “volatility” concepts, “correlation” concepts, “prediction” concepts, “distribution” concepts, and others can also be detected using the techniques described herein. Following below are some additional examples of concepts that can be expressed in sentences and for which concept expression templates could be extracted using the techniques described herein:
Further still, while a single anchor word is used to assign a candidate concept classification to training sentences in the example embodiment discussed above, it should be understood that a practitioner could also use an anchor word in combination with additional metadata (such as part of speech tagging) or a combination of anchor words to infer concepts from training sentences. For example, a practitioner may conclude that the word “fewer” could be indicative of both a “change” concept and a “compare” concept, and additional words and/or rules could be used to further resolve which classification should be applied to the subject training sentence. As another example, the detection of a rank concept when the word “top” is present in the training data can be made dependent on whether “top” is being used in the subject sentence as an adjective (in which case the rank candidacy can get triggered) or as a noun (in which case the rank candidacy may not get triggered).
Once candidate phrases have been identified via the anchor word detection, the candidate phrases are then parsed and evaluated by template extraction logic 350 before producing a concept expression template. The template creation process can employ a sequence of rule-based heuristics, examples of which are discussed below. For example,
At step 500, a processor performs constituency parsing and dependency parsing on the training sentence to create a parse tree structure. Additional details for example embodiments of constituency parsing and dependency parsing are discussed below.
At step 502, a processor identifies entities in the parse tree structure based on data sources such as an ontology. This step can be performed using named entity recognition (NER) techniques, and an example of an NER technique that can be performed on the parse tree structure of
At step 504, a processor prunes clauses in the parse tree structure by removing clauses or phrases from the parse tree structure that do not contain relevant identified entities. For the parse tree structure of
At step 506, a processor collapses branches of the pruned parse tree structure based on relationships with identified entities. For example, step 506 can discard sibling tree nodes of any branches with known entities or attributes. With reference to the pruned parse tree structure of
At step 508, a processor parameterizes the collapsed parse tree structure to yield an NLG-compatible concept expression template. The NLG-compatible concept expression template can include semantically-significant variable slots. With respect to the running example, the following transformations can occur as part of step 508:
Given an input document, the training system can first use a sentence tokenizer to split the document into sentences that are then passed on for further processing. An example of a sentence that can produced by the tokenizer is:
Each sentence is then passed through two NLP tools—one for constituency parsing and one for dependency parsing. An example of a tool that can be used for constituency parsing is Stanford's CoreNLP. CoreNLP can be used to generate a constituency tree for the sentence. An example of a tool that can be used for dependency parsing is Explosion AI's Spacy. Spacy can be used to generate a dependency parse and part-of-speech tags, and it can also perform named entity recognition (NER). This NER is an NLP practice that uses static dictionaries and heuristics (e.g. capitalization) to recognize and flag person names (“Aaron Young”), geopolitical entities (“United States”), dates (“February”), etc.
The system can perform both a dependency and constituency parse because they serve unique roles in the template extraction process. The dependency parse is useful for determining the linguistic roles and relationships of different tokens in the sentence (e.g. determining the preposition associated with a given numeric value, or which verb has a recognized attribute as its object). The constituency tree, on the other hand, is important for building a tree structure compatible with the NLG system 108.
The system next applies a known resource extraction process such as the one described in connection with
The NLP results, extracted known resources, and raw sentence string for each sentence are set as a metadata on a node object that is passed to the template pattern matchers for further processing.
For all concepts expressible by the NLG system (e.g., “change”, “comparison”, “rank”, etc.), the training system can implement a separate pattern matcher used to identify sentences expressing that concept, as noted above in connection with
The “rank” concept includes “top”, “bottommost”, and “best”; the “compare” concept includes “more”, “less”; etc.
The training system thus implements a pattern matcher for each supported concept that scans the processed sentences, and is triggered any time it recognizes an anchor word/part-of-speech pair associated with the concept. Each processed sentence is passed through pattern matchers, and for each that is triggered the training system initiates the template extraction process.
When the pattern matcher for a given concept is triggered, the training system attempts to templatize the triggering sentence. This involves the following steps:
1. Token Generation and Substitution
As mentioned above, each sentence is processed with both CoreNLP (for the constituency tree) and Spacy (for NER, dependencies, etc.). The first step of template extraction is to integrate the constituency tree with the Spacy token objects, replacing the leaves of the CoreNLP constituency tree with Spacy tokens and their associated metadata. For any recognized named entities (e.g. “United States” and “February” in this example), we collapse all words making up the named entity into a single leaf in the tree.
2. Subtree Extraction
The next step is to extract from the complete parse tree the subtree expressing the identified concept. The default approach for this this is to move up the tree from the anchor word to the complete clause containing the anchor word. In the example of
This logic can be overridden for particular template extractors as appropriate. For example, the “rank” concept extractor can be designed to move up the tree to the topmost containing noun phrase (see the underlined portion in the example of
3. Clause Pruning
The training system then eliminates any clauses from the sentence that do not contain an anchor word or any known resources. In the example of
4. Known Resource/Entity Branch Collapsing
The next step is to collapse any branches containing known entity or attribute tokens (this includes both known resources extracted from the ontology or user data, or other entities recognized by NER during the initial Spacy pre-processing of the sentence). To accomplish this, the system moves up the tree from each recognized token to the highest containing noun phrase (NP) that that does not also contain an anchor word or another recognized token. For example, the initial NP (“The United States”) is collapsed to a single NP containing only the token for “United States”. The system does not collapse the NP containing “sales” beyond the bolded subtree in the example below, because the next highest NP (“a $5000 increase in sales in February”) contains an anchor word (“increase) as well as another entity (“February”). If instead the sentence had referenced “average weekly sales”, then that NP would have been collapsed to a single token NP including only “sales”.
5. Parameterization
The final step is to parameterize the sentence into an abstracted form usable by the NLG system. For the template extractors, this involves replacing tokens for attributes, entities, and dates with enumerated variables (ENTITY_0, ENTITY_1, etc.). A second pass handles parameterization of concept-specific elements (in the example for “change” below, the system parameterizes the “BY-VALUE”, and could do the same for the “TO” and “FROM” values if present). The system can also parameterize the anchor word, which allows for use of the template in NLG systems with synonyms for the anchor word (e.g. “ . . . saw a dip in sales . . . ”) or its opposite (“ . . . saw a decrease in sales . . . ”).
To ensure that generated templates are syntactically and semantically valid, the system can apply multiple passes of validation throughout the parsing and templatization process. If any of these fail, the system can raise an error when processing a sentence.
As noted above, the result of the extraction and aggregation phases is a specification data structure (such as a JSON specification), which is a machine-readable, declarative description of the linguistic features that the training system discovered. Each top-level key in the specification data structure can be a specific linguistic feature, whose value is a list of feature instances, grouped by their generalized form and sorted by frequency. Each list item contains a “count” value to indicate the number of times that generalized form was encountered. Examples of each feature's data structure in an example JSON specification are discussed below.
For example,
As another example,
As another example,
As another example,
As yet another example,
As yet another example,
As yet another example,
As yet another example,
As still another example,
As still another example,
Furthermore, it should be understood that if multiple different instances of a detected linguistic feature are detected in the training data, the JSON specification can include a separate entry for each instance. The system can then choose which instance should be used for training the NLG system based on heuristics (e.g., choosing the most common instance to train) or based on user input (e.g., presenting the instances to a user as selectable options and then training the NLG system based on the user-selected instance). For example, with reference to
III. User Interfaces
As noted above with reference to step 206, user interfaces can be provided to help a user control and review aspects of the training process. For example, a browser application can provide a user with interfaces for creating a document corpus, extracting features, and applying configuration changes to the NLG system 108.
The GUI of
In a particularly powerful aspect of an example embodiment, the GUI of
The GUI of
The GUI of
A parallel specification data structure can be created to capture the user decisions entered via the user interfaces around enabling/disabling the application of various extracted linguistic features from the training data. The parallel data structure which can be a parallel JSON specification can contain lists whose indexes match the original JSON specification's indexes, and each list item can be a JSON object with an “enabled” key.
Also, the system 100 can expose an HTTP API that allows programmatic access to perform corpus creation, JSON specification retrieval, and platform application. This API can be used by the browser application. The endpoints and associated payloads can be described via cURL commands as reflected by
IV. NLG Configuration/Instrumentation
The final phase of NLG training can employ a platform-specific applicator that takes the specification data structure (plus any user modifications as reflected in a parallel data structure) as an input and then updates the configuration for the NLG system 108 accordingly.
Each applicator can be responsible for defining the necessary business logic to manipulate the platform-specific configuration. It can also be responsible for initializing the necessary database/service/library connections to the platform in order to enact configuration changes. The applicator can then update the styling options for a narrative in the NLG system to reflect the extracted linguistic features for things such as date formats, number formats, etc. With respect to concept expression templates, the applicator can add them to the ontology 410 including as new expressions in the ontology 410 as appropriate (e.g., adding them as expressions to entity types, derived entity types, and/or relationships in the ontology 410 as may be appropriate). In another example embodiment, the concept expression templates can be loaded into or otherwise made available to the NLG AI (e.g., the NLG 530 shown in
An applicator iterates through feature instances for each top-level key in the JSON specification. Before applying changes, it checks the corresponding list in the user settings structure. If the user settings object in the corresponding list index position has an “enabled” key with a false value, the applicator will skip the current feature instance altogether and move on.
In an example, an applicator can process two items of input: (1) the JSON specification, and (2) an identifier for the project to be updated. The applicator then connects to the NLG system's configuration database using a configuration client library provided by the NLG system. This library can use the provided project ID to ensure that the appropriate project-specific configuration subset is accessible.
For each node in the list of vocabulary and concept features in the JSON specification, the applicator can perform the following:
While the invention has been described above in relation to its example embodiments, various modifications may be made thereto that still fall within the invention's scope. Such modifications to the invention will be recognizable upon review of the teachings herein.
This patent application claims priority to U.S. provisional patent application Ser. No. 62/691,197, filed Jun. 28, 2018, and entitled “Applied Artificial Intelligence Technology for Using Natural Language Processing to Train a Natural Language Generation System”, the entire disclosure of which is incorporated herein by reference. This patent application is related to (1) U.S. patent application Ser. No. 16/444,649, filed this same day, and entitled “Applied Artificial Intelligence Technology for Using Natural Language Processing and Concept Expression Templates to Train a Natural Language Generation System”, (2) U.S. patent application Ser. No. 16/444,718, filed this same day, and entitled “Applied Artificial Intelligence Technology for Using Natural Language Processing to Train a Natural Language Generation System With Respect to Date and Number Textual Features”, and (3) U.S. patent application Ser. No. 16/444,748, filed this same day, and entitled “Applied Artificial Intelligence Technology for Using Natural Language Processing to Train a Natural Language Generation System”, the entire disclosures of each of which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4992939 | Tyler | Feb 1991 | A |
5619631 | Schott | Apr 1997 | A |
5734916 | Greenfield et al. | Mar 1998 | A |
5802495 | Goltra | Sep 1998 | A |
5999664 | Mahoney et al. | Dec 1999 | A |
6006175 | Holzrichter | Dec 1999 | A |
6144938 | Surace et al. | Nov 2000 | A |
6278967 | Akers et al. | Aug 2001 | B1 |
6289363 | Consolatti et al. | Sep 2001 | B1 |
6651218 | Adler | Nov 2003 | B1 |
6757362 | Cooper et al. | Jun 2004 | B1 |
6771290 | Hoyle | Aug 2004 | B1 |
6917936 | Cancedda | Jul 2005 | B2 |
6968316 | Hamilton | Nov 2005 | B1 |
6976031 | Toupal et al. | Dec 2005 | B1 |
6976207 | Rujan et al. | Dec 2005 | B1 |
7027974 | Busch et al. | Apr 2006 | B1 |
7246315 | Andrieu et al. | Jul 2007 | B1 |
7324936 | Saldanha et al. | Jan 2008 | B2 |
7333967 | Bringsjord et al. | Feb 2008 | B1 |
7496621 | Pan et al. | Feb 2009 | B2 |
7577634 | Ryan et al. | Aug 2009 | B2 |
7610279 | Budzik et al. | Oct 2009 | B2 |
7617199 | Budzik et al. | Nov 2009 | B2 |
7617200 | Budzik et al. | Nov 2009 | B2 |
7627565 | Budzik et al. | Dec 2009 | B2 |
7644072 | Budzik et al. | Jan 2010 | B2 |
7657518 | Budzik et al. | Feb 2010 | B2 |
7716116 | Schiller | May 2010 | B2 |
7778895 | Baxter et al. | Aug 2010 | B1 |
7836010 | Hammond et al. | Nov 2010 | B2 |
7840448 | Musgrove et al. | Nov 2010 | B2 |
7856390 | Schiller | Dec 2010 | B2 |
7865496 | Schiller | Jan 2011 | B1 |
7930169 | Billerey-Mosier | Apr 2011 | B2 |
8046226 | Soble et al. | Oct 2011 | B2 |
8311863 | Kemp | Nov 2012 | B1 |
8355903 | Birnbaum et al. | Jan 2013 | B1 |
8374848 | Birnbaum et al. | Feb 2013 | B1 |
8447604 | Chang | May 2013 | B1 |
8463695 | Schiller | Jun 2013 | B2 |
8468244 | Redlich et al. | Jun 2013 | B2 |
8494944 | Schiller | Jul 2013 | B2 |
8515737 | Mien | Aug 2013 | B2 |
8612208 | Cooper et al. | Dec 2013 | B2 |
8630844 | Nichols et al. | Jan 2014 | B1 |
8630912 | Seki et al. | Jan 2014 | B2 |
8630919 | Baran et al. | Jan 2014 | B2 |
8676691 | Schiller | Mar 2014 | B2 |
8688434 | Birnbaum et al. | Apr 2014 | B1 |
8752134 | Ma et al. | Jun 2014 | B2 |
8762133 | Reiter | Jun 2014 | B2 |
8762134 | Reiter | Jun 2014 | B2 |
8775161 | Nichols et al. | Jul 2014 | B1 |
8812311 | Weber | Aug 2014 | B2 |
8843363 | Birnbaum et al. | Sep 2014 | B2 |
8886520 | Nichols et al. | Nov 2014 | B1 |
8892417 | Nichols et al. | Nov 2014 | B1 |
8892419 | Lundberg et al. | Nov 2014 | B2 |
8903711 | Lundberg et al. | Dec 2014 | B2 |
9135244 | Reiter | Sep 2015 | B2 |
9208147 | Nichols et al. | Dec 2015 | B1 |
9244894 | Dale et al. | Jan 2016 | B1 |
9251134 | Birnbaum et al. | Feb 2016 | B2 |
9323743 | Reiter | Apr 2016 | B2 |
9336193 | Logan et al. | May 2016 | B2 |
9355093 | Reiter | May 2016 | B2 |
9396168 | Birnbaum et al. | Jul 2016 | B2 |
9396181 | Sripada et al. | Jul 2016 | B1 |
9396758 | Oz et al. | Jul 2016 | B2 |
9405448 | Reiter | Aug 2016 | B2 |
9424254 | Howald et al. | Aug 2016 | B2 |
9430557 | Bhat et al. | Aug 2016 | B2 |
9460075 | Mungi et al. | Oct 2016 | B2 |
9529795 | Kondadadi et al. | Dec 2016 | B2 |
9576009 | Hammond et al. | Feb 2017 | B1 |
9665259 | Lee et al. | May 2017 | B2 |
9697178 | Nichols et al. | Jul 2017 | B1 |
9697197 | Birnbaum et al. | Jul 2017 | B1 |
9697492 | Birnbaum et al. | Jul 2017 | B1 |
9720884 | Birnbaum et al. | Aug 2017 | B2 |
9720899 | Birnbaum et al. | Aug 2017 | B1 |
9773166 | Connor et al. | Sep 2017 | B1 |
9792277 | Srinivasan | Oct 2017 | B2 |
9870629 | Cardno et al. | Jan 2018 | B2 |
9971967 | Bufe, III et al. | May 2018 | B2 |
9977773 | Birnbaum et al. | May 2018 | B1 |
9990337 | Birnbaum et al. | Jun 2018 | B2 |
10019512 | Boyle et al. | Jul 2018 | B2 |
10037377 | Boyle et al. | Jul 2018 | B2 |
10049152 | Ajmera et al. | Aug 2018 | B2 |
10068185 | Amershi et al. | Sep 2018 | B2 |
10095692 | Song et al. | Oct 2018 | B2 |
10115108 | Gendelev et al. | Oct 2018 | B1 |
10185477 | Paley et al. | Jan 2019 | B1 |
10268678 | Qiu et al. | Apr 2019 | B2 |
10339423 | Dinerstein | Jul 2019 | B1 |
10387970 | Wang et al. | Aug 2019 | B1 |
10416841 | Riche et al. | Sep 2019 | B2 |
10489488 | Birnbaum et al. | Nov 2019 | B2 |
10565308 | Reiter | Feb 2020 | B2 |
10699079 | Paley et al. | Jun 2020 | B1 |
10706236 | Platt | Jul 2020 | B1 |
10726061 | Chu et al. | Jul 2020 | B2 |
10810260 | Chen et al. | Oct 2020 | B2 |
11030697 | Erard et al. | Jun 2021 | B2 |
11055497 | Noh et al. | Jul 2021 | B2 |
20020046018 | Marcu et al. | Apr 2002 | A1 |
20020083025 | Robarts et al. | Jun 2002 | A1 |
20020107721 | Darwent et al. | Aug 2002 | A1 |
20030061029 | Shaket | Mar 2003 | A1 |
20030216905 | Chelba et al. | Nov 2003 | A1 |
20040015342 | Garst | Jan 2004 | A1 |
20040034520 | Langkilde-Geary et al. | Feb 2004 | A1 |
20040068691 | Asbury | Apr 2004 | A1 |
20040138899 | Birnbaum et al. | Jul 2004 | A1 |
20040174397 | Cereghini et al. | Sep 2004 | A1 |
20040225651 | Musgrove et al. | Nov 2004 | A1 |
20040230989 | Macey | Nov 2004 | A1 |
20040255232 | Hammond et al. | Dec 2004 | A1 |
20050027704 | Hammond et al. | Feb 2005 | A1 |
20050028156 | Hammond et al. | Feb 2005 | A1 |
20050033582 | Gadd et al. | Feb 2005 | A1 |
20050049852 | Chao | Mar 2005 | A1 |
20050125213 | Chen et al. | Jun 2005 | A1 |
20050137854 | Cancedda et al. | Jun 2005 | A1 |
20050273362 | Harris et al. | Dec 2005 | A1 |
20060031182 | Ryan et al. | Feb 2006 | A1 |
20060074634 | Gao et al. | Apr 2006 | A1 |
20060100852 | Gamon | May 2006 | A1 |
20060101335 | Pisciottano | May 2006 | A1 |
20060181531 | Goldschmidt | Aug 2006 | A1 |
20060212446 | Hammond et al. | Sep 2006 | A1 |
20060241936 | Katae | Oct 2006 | A1 |
20060271535 | Hammond et al. | Nov 2006 | A1 |
20060277168 | Hammond et al. | Dec 2006 | A1 |
20070132767 | Wright et al. | Jun 2007 | A1 |
20070185846 | Budzik et al. | Aug 2007 | A1 |
20070185847 | Budzik et al. | Aug 2007 | A1 |
20070185861 | Budzik et al. | Aug 2007 | A1 |
20070185862 | Budzik et al. | Aug 2007 | A1 |
20070185863 | Budzik et al. | Aug 2007 | A1 |
20070185864 | Budzik et al. | Aug 2007 | A1 |
20070185865 | Budzik et al. | Aug 2007 | A1 |
20070250479 | Lunt et al. | Oct 2007 | A1 |
20070250826 | O'Brien | Oct 2007 | A1 |
20070294201 | Nelken et al. | Dec 2007 | A1 |
20080005677 | Thompson | Jan 2008 | A1 |
20080140696 | Mathuria | Jun 2008 | A1 |
20080198156 | Jou et al. | Aug 2008 | A1 |
20080250070 | Abdulla et al. | Oct 2008 | A1 |
20080256066 | Zuckerman et al. | Oct 2008 | A1 |
20080304808 | Newell et al. | Dec 2008 | A1 |
20080306882 | Schiller | Dec 2008 | A1 |
20080313130 | Hammond et al. | Dec 2008 | A1 |
20090019013 | Tareen et al. | Jan 2009 | A1 |
20090030899 | Tareen et al. | Jan 2009 | A1 |
20090049041 | Tareen et al. | Feb 2009 | A1 |
20090083288 | LeDain et al. | Mar 2009 | A1 |
20090119584 | Herbst | May 2009 | A1 |
20090144608 | Oisel et al. | Jun 2009 | A1 |
20090175545 | Cancedda et al. | Jul 2009 | A1 |
20090248399 | Au | Oct 2009 | A1 |
20090254572 | Redlich et al. | Oct 2009 | A1 |
20100146393 | Land et al. | Jun 2010 | A1 |
20100161541 | Covannon et al. | Jun 2010 | A1 |
20100250497 | Redlich et al. | Sep 2010 | A1 |
20100325107 | Kenton et al. | Dec 2010 | A1 |
20110022941 | Osborne et al. | Jan 2011 | A1 |
20110040837 | Eden et al. | Feb 2011 | A1 |
20110044447 | Morris et al. | Feb 2011 | A1 |
20110077958 | Breitenstein et al. | Mar 2011 | A1 |
20110078105 | Wallace | Mar 2011 | A1 |
20110087486 | Schiller | Apr 2011 | A1 |
20110099184 | Symington | Apr 2011 | A1 |
20110113315 | Datha et al. | May 2011 | A1 |
20110113334 | Joy et al. | May 2011 | A1 |
20110213642 | Makar et al. | Sep 2011 | A1 |
20110246182 | Allen | Oct 2011 | A1 |
20110249953 | Suri et al. | Oct 2011 | A1 |
20110261049 | Cardno et al. | Oct 2011 | A1 |
20110288852 | Dymetman et al. | Nov 2011 | A1 |
20110295903 | Chen | Dec 2011 | A1 |
20110307435 | Overell et al. | Dec 2011 | A1 |
20110311144 | Tardif | Dec 2011 | A1 |
20110314381 | Fuller et al. | Dec 2011 | A1 |
20120011428 | Chisholm | Jan 2012 | A1 |
20120041903 | Beilby et al. | Feb 2012 | A1 |
20120069131 | Abelow | Mar 2012 | A1 |
20120109637 | Merugu et al. | May 2012 | A1 |
20120158850 | Harrison et al. | Jun 2012 | A1 |
20120166180 | Au | Jun 2012 | A1 |
20120265531 | Bennett | Oct 2012 | A1 |
20120310699 | McKenna et al. | Dec 2012 | A1 |
20130041677 | Nusimow et al. | Feb 2013 | A1 |
20130091031 | Baran et al. | Apr 2013 | A1 |
20130096947 | Shah et al. | Apr 2013 | A1 |
20130138430 | Eden et al. | May 2013 | A1 |
20130144605 | Brager et al. | Jun 2013 | A1 |
20130145242 | Birnbaum et al. | Jun 2013 | A1 |
20130173285 | Hyde et al. | Jul 2013 | A1 |
20130174026 | Locke | Jul 2013 | A1 |
20130211855 | Eberle et al. | Aug 2013 | A1 |
20130238330 | Casella dos Santos | Sep 2013 | A1 |
20130246934 | Wade et al. | Sep 2013 | A1 |
20130253910 | Turner et al. | Sep 2013 | A1 |
20130262092 | Wasick | Oct 2013 | A1 |
20130275121 | Tunstall-Pedoe | Oct 2013 | A1 |
20130304507 | Dail et al. | Nov 2013 | A1 |
20130316834 | Vogel et al. | Nov 2013 | A1 |
20140006012 | Zhou et al. | Jan 2014 | A1 |
20140040312 | Gorman et al. | Feb 2014 | A1 |
20140062712 | Reiter | Mar 2014 | A1 |
20140075004 | Van Dusen et al. | Mar 2014 | A1 |
20140129942 | Rathod | May 2014 | A1 |
20140134590 | Hiscock, Jr. | May 2014 | A1 |
20140163962 | Castelli et al. | Jun 2014 | A1 |
20140200878 | Mylonakis et al. | Jul 2014 | A1 |
20140201202 | Jones et al. | Jul 2014 | A1 |
20140314225 | Riahi et al. | Oct 2014 | A1 |
20140351281 | Tunstall-Pedoe | Nov 2014 | A1 |
20140356833 | Sabczynski et al. | Dec 2014 | A1 |
20140372850 | Campbell et al. | Dec 2014 | A1 |
20140375466 | Reiter | Dec 2014 | A1 |
20150032730 | Cialdea, Jr. et al. | Jan 2015 | A1 |
20150049951 | Chaturvedi et al. | Feb 2015 | A1 |
20150078232 | Djinki et al. | Mar 2015 | A1 |
20150142704 | London | May 2015 | A1 |
20150161997 | Wetsel et al. | Jun 2015 | A1 |
20150169548 | Reiter | Jun 2015 | A1 |
20150186504 | Gorman et al. | Jul 2015 | A1 |
20150199339 | Mirkin et al. | Jul 2015 | A1 |
20150227508 | Howald et al. | Aug 2015 | A1 |
20150227588 | Shapira et al. | Aug 2015 | A1 |
20150242384 | Reiter | Aug 2015 | A1 |
20150261745 | Song | Sep 2015 | A1 |
20150268930 | Lee et al. | Sep 2015 | A1 |
20150324347 | Bradshaw et al. | Nov 2015 | A1 |
20150324351 | Sripada et al. | Nov 2015 | A1 |
20150324374 | Sripada et al. | Nov 2015 | A1 |
20150325000 | Sripada | Nov 2015 | A1 |
20150331846 | Guggilla et al. | Nov 2015 | A1 |
20150331850 | Ramish | Nov 2015 | A1 |
20150347400 | Sripada | Dec 2015 | A1 |
20150347901 | Cama et al. | Dec 2015 | A1 |
20150356967 | Byron et al. | Dec 2015 | A1 |
20150363364 | Sripada | Dec 2015 | A1 |
20150370778 | Tremblay et al. | Dec 2015 | A1 |
20160019200 | Allen | Jan 2016 | A1 |
20160026253 | Bradski et al. | Jan 2016 | A1 |
20160027125 | Bryce | Jan 2016 | A1 |
20160054889 | Hadley et al. | Feb 2016 | A1 |
20160062954 | Ruff | Mar 2016 | A1 |
20160103559 | Maheshwari et al. | Apr 2016 | A1 |
20160132489 | Reiter | May 2016 | A1 |
20160140090 | Dale et al. | May 2016 | A1 |
20160162582 | Chatterjee et al. | Jun 2016 | A1 |
20160196491 | Chandrasekaran et al. | Jul 2016 | A1 |
20160217133 | Reiter et al. | Jul 2016 | A1 |
20160232152 | Mahamood | Aug 2016 | A1 |
20160232221 | McCloskey et al. | Aug 2016 | A1 |
20160314121 | Arroyo et al. | Oct 2016 | A1 |
20160314123 | Ramachandran | Oct 2016 | A1 |
20170004415 | Moretti et al. | Jan 2017 | A1 |
20170006135 | Siebel et al. | Jan 2017 | A1 |
20170017897 | Bugay et al. | Jan 2017 | A1 |
20170026705 | Yeh et al. | Jan 2017 | A1 |
20170046016 | Riche et al. | Feb 2017 | A1 |
20170060857 | Imbruce et al. | Mar 2017 | A1 |
20170061093 | Amarasingham et al. | Mar 2017 | A1 |
20170091291 | Bostick et al. | Mar 2017 | A1 |
20170116327 | Gorelick et al. | Apr 2017 | A1 |
20170124062 | Bhaowal | May 2017 | A1 |
20170125015 | Dielmann | May 2017 | A1 |
20170140405 | Gottemukkala et al. | May 2017 | A1 |
20170199928 | Zhao et al. | Jul 2017 | A1 |
20170206890 | Tapuhi | Jul 2017 | A1 |
20170212671 | Sathish et al. | Jul 2017 | A1 |
20170228372 | Moreno et al. | Aug 2017 | A1 |
20170242886 | Jolley et al. | Aug 2017 | A1 |
20170270105 | Ninan et al. | Sep 2017 | A1 |
20170293864 | Oh et al. | Oct 2017 | A1 |
20170358295 | Roux | Dec 2017 | A1 |
20170371856 | Can et al. | Dec 2017 | A1 |
20180025726 | Gatti de Bayser et al. | Jan 2018 | A1 |
20180075368 | Brennan et al. | Mar 2018 | A1 |
20180082184 | Guo et al. | Mar 2018 | A1 |
20180114158 | Foubert et al. | Apr 2018 | A1 |
20180189284 | Hosabettu | Jul 2018 | A1 |
20180232443 | Delgo et al. | Aug 2018 | A1 |
20180232487 | Erard et al. | Aug 2018 | A1 |
20180232493 | Erard et al. | Aug 2018 | A1 |
20180232812 | Erard et al. | Aug 2018 | A1 |
20180260380 | Birnbaum et al. | Sep 2018 | A1 |
20180285324 | Birnbaum et al. | Oct 2018 | A1 |
20180314689 | Wang et al. | Nov 2018 | A1 |
20190138615 | Huh et al. | May 2019 | A1 |
20190197097 | Nagarajan et al. | Jun 2019 | A1 |
20190272827 | Vozila | Sep 2019 | A1 |
20190332666 | Dadachev et al. | Oct 2019 | A1 |
20200042646 | Nagaraja et al. | Feb 2020 | A1 |
20200074013 | Chen et al. | Mar 2020 | A1 |
20200074310 | Li et al. | Mar 2020 | A1 |
20200089735 | Birnbaum et al. | Mar 2020 | A1 |
20200134032 | Lin et al. | Apr 2020 | A1 |
20200143468 | Riley | May 2020 | A1 |
Number | Date | Country |
---|---|---|
9630844 | Oct 1996 | WO |
2006122329 | Nov 2006 | WO |
2014035400 | Mar 2014 | WO |
2014035402 | Mar 2014 | WO |
2014035403 | Mar 2014 | WO |
2014035406 | Mar 2014 | WO |
2014035407 | Mar 2014 | WO |
2014035447 | Mar 2014 | WO |
2014070197 | May 2014 | WO |
2014076524 | May 2014 | WO |
2014076525 | May 2014 | WO |
2014102568 | Jul 2014 | WO |
2014102569 | Jul 2014 | WO |
2014111753 | Jul 2014 | WO |
2015028844 | Mar 2015 | WO |
2015159133 | Oct 2015 | WO |
Entry |
---|
Allen et al., “StatsMonkey: A Data-Driven Sports Narrative Writer”, Computational Models of Narrative: Papers from the AAAI Fall Symposium, Nov. 2010, 2 pages. |
Andersen, P., Hayes, P., Huettner, A., Schmandt, L., Nirenburg, I., and Weinstein, S. (1992). Automatic extraction of facts from press releases to generate news stories. In Proceedings of the third conference on Applied natural language processing. (Trento, Italy). ACM Press, New York, NY, 170-177. |
Andre, E., Herzog, G., & Rist, T. (1988). On the simultaneous interpretation of real world image sequences and their natural language description: the system SOCCER. Paper presented at Proceedings of the 8th. European Conference on Artificial Intelligence (ECAI), Munich. |
Asset Economics, Inc. (Feb. 11, 2011). |
Bailey, P. (1999). Searching for Storiness: Story-Generation from a Reader's Perspective. AAAI Technical Report FS-99-01. |
Bethem, T., Burton, J., Caldwell, T., Evans, M., Kittredge, R., Lavoie, B., and Werner, J. (2005). Generation of Real-time Narrative Summaries for Real-time Water Levels and Meteorological Observations in PORTS®. In Proceedings of the Fourth Conference on Artificial Intelligence Applications to Environmental Sciences (AMS-2005), San Diego, California. |
Bourbeau, L., Carcagno, D., Goldberg, E., Kittredge, R., & Polguere, A. (1990). Bilingual generation of weather forecasts in an operations environment. Paper presented at Proceedings of the 13th International Conference on Computational Linguistics (COLING), Helsinki, Finland, pp. 318-320. |
Boyd, S. (1998). TREND: a system for generating intelligent descriptions of time series data. Paper presented at Proceedings of the IEEE international conference on intelligent processing systems (ICIPS-1998). |
Character Writer Version 3.1, Typing Chimp Software LLC, 2012, screenshots from working program, pp. 1-19. |
Dehn, N. (1981). Story generation after TALE-SPIN. In Proceedings of the Seventh International Joint Conference on Artificial Intelligence. (Vancouver, Canada). |
Dramatica Pro version 4, Write Brothers, 1993-2006, user manual. |
Gatt, A., and Portet, F. (2009). Text content and task performance in the evaluation of a Natural Language Generation System. Proceedings of the Conference on Recent Advances in Natural Language Processing (RANLP-09). |
Gatt, A., Portet, F., Reiter, E., Hunter, J., Mahamood, S., Moncur, W., and Sripada, S. (2009). From data to text in the Neonatal Intensive Care Unit: Using NLG technology for decision support and information management. AI Communications 22, pp. 153-186. |
Glahn, H. (1970). Computer-produced worded forecasts. Bulletin of the American Meteorological Society, 51(12), 1126-1131. |
Goldberg, E., Driedger, N., & Kittredge, R. (1994). Using Natural-Language Processing to Produce Weather Forecasts. IEEE Expert, 9 (2), 45. |
Hargood, C., Millard, D. and Weal, M. (2009) Exploring the Importance of Themes in Narrative Systems. |
Hargood, C., Millard, D. and Weal, M. (2009). Investigating a Thematic Approach to Narrative Generation, 2009. |
Hunter, J., Freer, Y., Gatt, A., Logie, R., McIntosh, N., van der Meulen, M., Portet, F., Reiter, E., Sripada, S., and Sykes, C. (2008). Summarising Complex ICU Data in Natural Language. AMIA 2008 Annual Symposium Proceedings, pp. 323-327. |
Hunter, J., Gatt, A., Portet, F., Reiter, E., and Sripada, S. (2008). Using natural language generation technology to improve information flows in intensive care units. Proceedings of the 5th Conference on Prestigious Applications of Intelligent Systems, PAIS-08. |
Kittredge, R., and Lavoie, B. (1998). MeteoCogent: A Knowledge-Based Tool For Generating Weather Forecast Texts. In Proceedings of the American Meteorological Society AI Conference (AMS-98), Phoenix, Arizona. |
Kittredge, R., Polguere, A., & Goldberg, E. (1986). Synthesizing weather reports from formatted data. Paper presented at Proceedings of the 11th International Conference on Computational Linguistics, Bonn, Germany, pp. 563-565. |
Kukich, K. (1983). Design of a Knowledge-Based Report Generator. Proceedings of the 21st Conference of the Association for Computational Linguistics, Cambridge, MA, pp. 145-150. |
Kukich, K. (1983). Knowledge-Based Report Generation: A Technique for Automatically Generating Natural Language Reports from Databases. Paper presented at Proceedings of the Sixth International ACM SIGIR Conference, Washington, DC. |
McKeown, K., Kukich, K., & Shaw, J. (1994). Practical issues in automatic documentation generation. 4th Conference on Applied Natural Language Processing, Stuttgart, Germany, pp. 7-14. |
Meehan, James R., TALE-SPIN. (1977). An Interactive Program that Writes Stories. In Proceedings of the Fifth International Joint Conference on Artificial Intelligence. |
Memorandum Opinion and Order for O2 Media, LLC v. Narrative Science Inc., Case 1:15-cv-05129 (N.D. IL), Feb. 25, 2016, 25 pages (invalidating claims of U.S. Pat Nos. 7,856,390, 8,494,944, and 8,676,691 owned by O2 Media, LLC. |
Moncur, W., and Reiter, E. (2007). How Much to Tell? Disseminating Affective Information across a Social Network. Proceedings of Second International Workshop on Personalisation for e-Health. |
Moncur, W., Masthoff, J., Reiter, E. (2008) What Do You Want to Know? Investigating the Information Requirements of Patient Supporters. 21st IEEE International Symposium on Computer-Based Medical Systems (CBMS 2008), pp. 443-448. |
Movie Magic Screenwriter, Write Brothers, 2009, user manual. |
Portet, F., Reiter, E., Gatt, A., Hunter, J., Sripada, S., Freer, Y., and Sykes, C. (2009). Automatic Generation of Textual Summaries from Neonatal Intensive Care Data. Artificial Intelligence. |
Portet, F., Reiter, E., Hunter, J., and Sripada, S. (2007). Automatic Generation of Textual Summaries from Neonatal ntensive Care Data. In: Bellazzi, Riccardo, Ameen Abu-Hanna and Jim Hunter (Ed.), 11th Conference on Artificial ntelligence in Medicine (AIME 07), pp. 227-236. |
Reiter et al., “Building Applied Natural Generation Systems”, Cambridge University Press, 1995, pp. 1-32. |
Reiter, E. (2007). An architecture for Data-To-Text systems. In: Busemann, Stephan (Ed ), Proceedings of the 11th European Workshop on Natural Language Generation, pp. 97-104. |
Reiter, E., Gatt, A., Portet, F., and van der Meulen, M. (2008). The importance of narrative and other lessons from an evaluation of an NLG system that summarises clinical data. Proceedings of the 5th International Conference on Natural Language Generation. |
Reiter, E., Sripada, S., Hunter, J., Yu, J., and Davy, L (2005). Choosing words in computer-generated weather Precasts Artificial Intelligence, 167:137-169. |
Riedl et al., “Narrative Planning: Balancing Plot and Character”, Journal of Artificial Intelligence Research, 2010, op. 217-268, vol. 39. |
Robin, J. (1996). Evaluating the portability of revision rules for incremental summary generation. Paper presented at Proceedings of the 34th Annual Meeting of the Association for Computational Linguistics (ACL'96), Santa Cruz, CA. |
Rui, Y., Gupta, A., and Acero, A. 2000. Automatically extracting highlights for TV Baseball programs. In Proceedings of the eighth ACM international conference on Multimedia. (Marina del Rey, California, United States). ACM Press, New York, NY 105-115. |
Sripada, S., Reiter, E., and Davy, L (2003). SumTime-Mousam: Configurable Marine Weather Forecast Generator. Expert Update 6(3):4-10. |
Storyview, Screenplay Systems, 2000, user manual. |
Theune, M., Klabbers, E., Odijk, J., dePijper, J., and Krahmer, E. (2001) “From Data to Speech: A General Approach”, Natural Language Engineering 7(1): 47-86. |
Thomas, K., and Sripada, S. (2007). Atlas.txt: Linking Geo-referenced Data to Text for NLG. Paper presented at Proceedings of the 2007 European Natural Language Generation Workshop (ENLGO7). |
Thomas, K., and Sripada, S. (2008). What's in a message? Interpreting Geo-referenced Data for the Visually-impaired. Proceedings of the Int. conference on NLG. |
Thomas, K., Sumegi, L., Ferres, L., and Sripada, S. (2008). Enabling Access to Geo-referenced Information: Atlas.txt. Proceedings of the Cross-disciplinary Conference on Web Accessibility. |
Van der Meulen, M., Logie, R., Freer, Y., Sykes, C., McIntosh, N., and Hunter, J. (2008). When a Graph is Poorer than 100 Words: A Comparison of Computerised Natural Language Generation, Human Generated Descriptions and Graphical Displays in Neonatal Intensive Care. Applied Cognitive Psychology. |
Yu, J., Reiter, E., Hunter, J., and Mellish, C. (2007). Choosing the content of textual summaries of large time-series data sets. Natural Language Engineering, 13:25-49. |
Yu, J., Reiter, E., Hunter, J., and Sripada, S. (2003). SUMTIME-TURBINE: A Knowledge-Based System to Communicate Time Series Data in the Gas Turbine Domain. In P Chung et al. (Eds) Developments in Applied Artificial Intelligence: Proceedings of IEA/AIE-2003, pp. 379-384. Springer (LNAI 2718). |
Riedl et al., “From Linear Story Generation to Branching Story Graphs”, IEEE Computer Graphics and Applications, 2006, pp. 23-31. |
Cyganiak et al., “RDF 1.1 Concepts and Abstract Syntax”, W3C Recommendation, 2014, vol. 25, No. 2. |
Smith, “The Multivariable Method in Singular Perturbation Analysis”, SIAM Review, 1975, pp. 221-273, vol. 17, No. 2. |
EnglisheForums, “Direct Objects, Indirect Objects, Obliques, Dative Movement?”, [online] https://www.englishforums.com, published 2007. (Year: 2007). |
Notice of Allowance for U.S. Appl. No. 15/666,168 dated Jun. 14, 2021. |
Notice of Allowance for U.S. Appl. No. 16/235,649 dated Jun. 25, 2021. |
Notice of Allowance for U.S. Appl. No. 16/235,696 dated Jul. 21, 2021. |
Notice of Allowance for U.S. Appl. No. 16/235,636 dated Apr. 30, 2021. |
Notice of Allowance for U.S. Appl. No. 16/277,006 dated Feb. 18, 2021. |
Office Action for U.S. Appl. No. 15/414,027 dated Jan. 21, 2021. |
Office Action for U.S. Appl. No. 15/414,089 dated Jan. 21, 2021. |
Office Action for U.S. Appl. No. 15/666,168 dated Nov. 13, 2020. |
Office Action for U.S. Appl. No. 15/666,192 dated Dec. 11, 2019. |
Office Action for U.S. Appl. No. 15/666,151 dated Jun. 10, 2021. |
Office Action for U.S. Appl. No. 16/183,270 dated Apr. 13, 2021. |
Office Action for U.S. Appl. No. 16/233,746 dated Jun. 2, 2020. |
Office Action for U.S. Appl. No. 16/233,776 dated Jun. 2, 2020. |
Office Action for U.S. Appl. No. 16/235,594 dated Jun. 12, 2020. |
Office Action for U.S. Appl. No. 16/235,636 dated Jul. 9, 2020. |
Office Action for U.S. Appl. No. 16/235,649 dated Dec. 14, 2020. |
Office Action for U.S. Appl. No. 16/235,662 dated Jul. 6, 2020. |
Office Action for U.S. Appl. No. 16/235,696 dated Dec. 17, 2020. |
Office Action for U.S. Appl. No. 16/235,705 dated Jun. 18, 2020. |
Office Action for U.S. Appl. No. 16/253,556 dated Jun. 14, 2021. |
Office Action for U.S. Appl. No. 16/277,003 dated Sep. 16, 2020. |
Office Action for U.S. Appl. No. 16/277,004 dated Sep. 2, 2020. |
Office Action for U.S. Appl. No. 16/277,008 dated Nov. 23, 2020. |
Office Action for U.S. Appl. No. 16/277,004 dated Jun. 24, 2021. |
Office Action for U.S. Appl. No. 16/744,537 dated Aug. 3, 2021. |
Prosecution History for U.S. Appl. No. 16/047,800, now U.S. Pat. No. 10,699,079, filed Jul. 27, 2018. |
Prosecution History for U.S. Appl. No. 15/897,331, now U.S. Pat. No. 10,762,304, filed Feb. 15, 2018. |
Prosecution History for U.S. Appl. No. 16/277,000, now U.S. Pat. No. 10,755,046, filed Feb. 15, 2019. |
Prosecution History for U.S. Appl. No. 16/444,748, now U.S. Pat. No. 11,042,713, filed Jun. 18, 2019. |
Prosecution History for U.S. Appl. No. 16/689,699, now U.S. Pat. No. 10,956,656, filed Nov. 20, 2019. |
Response to Office Action for U.S. Appl. No. 15/414,027 dated Jan. 27, 2020. |
Response to Office Action for U.S. Appl. No. 15/414,089 dated Jan. 27, 2020. |
Response to Office Action for U.S. Appl. No. 16/233,746 dated Jun. 2, 2020. |
Response to Office Action for U.S. Appl. No. 16/233,776 dated Jun. 2, 2020. |
Response to Office Action for U.S. Appl. No. 16/235,594 dated Jun. 12, 2020. |
Response to Office Action for U.S. Appl. No. 16/235,636 dated Jul. 9, 2020. |
Response to Office Action for U.S. Appl. No. 16/235,662 dated Jul. 6, 2020. |
Response to Office Action for U.S. Appl. No. 16/235,705 dated Jun. 18, 2020. |
Response to Office Action for U.S. Appl. No. 16/277,003, filed Mar. 15, 2021. |
Response to Office Action for U.S. Appl. No. 16/277,004 dated Sep. 2, 2020. |
Number | Date | Country | |
---|---|---|---|
62691197 | Jun 2018 | US |