ConceptioArchiveGoogle Patents
Google Patentsopen access

Applied artificial intelligence technology for using natural language … — Salesforce, Inc. (US11989519B2)

Salesforce, Inc. · Google Patents
Google Patents · Patents · License: Open Access
Open Source ↗
salesforce
patent, google patents, intellectual property, US11989519B2, Salesforce, Inc., Daniel Joseph Platt, en, 2024

ABSTRACT

Abstract

Disclosed herein is computer technology that applies natural language processing (NLP) techniques to training data to generate information used to train a natural language generation (NLG) system to produce output that stylistically resembles the training data. In this fashion, the NLG system can be readily trained with training data supplied by a user so that the NLG system is adapted to produce output that stylistically resembles such training data. In an example, an NLP system detects a plurality of linguistic features in the training data. These detected linguistic features are then aggregated into a specification data structure that is arranged for training the NLG system to produce natural language output that stylistically resembles the training data. 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.

Description

CROSS-REFERENCE AND PRIORITY CLAIM TO RELATED PATENT APPLICATIONS

This patent application is a divisional of U.S. patent application Ser. No. 16/444,649, filed Jun. 18, 2019, and entitled “Applied Artificial Intelligence Technology for Using Natural Language Processing and Concept Expression Templates to Train a Natural Language Generation System”, now U.S. Pat. No. 10,706,236, which 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 disclosures of each of which are incorporated herein by reference.

This patent application is related to (1) U.S. patent application Ser. No. 16/444,689, filed Jun. 18, 2019, and entitled “Applied Artificial Intelligence Technology for Using Natural Language Processing to Train a Natural Language Generation System With Respect to Numeric Style Features”, (2) U.S. patent application Ser. No. 16/444,718, filed Jun. 18, 2019, 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 Jun. 18, 2019, 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.

INTRODUCTION

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.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 discloses an example AI computer system in accordance with an example embodiment.

FIG. 2 discloses an example process flow for NLP-based training of an NLG system.

FIG. 3 shows an example process flow for extracting linguistic features from training data and aggregating the extracted linguistic features into a specification data structure.

FIG. 4 A discloses an example process flow for entity identification in support of NLP in accordance with an example embodiment.

FIG. 4 B discloses an example prefix tree that can be used for identifying entities in training data.

FIG. 5 shows an example process flow for detecting and extracting concept expression templates from training data.

FIGS. 6 A- 6 D show examples of parse tree structures at various stages of the FIG. 5 process flow.

FIG. 6 E shows an example process flow for transforming and/or tagging tokens in a parse tree with NLG-compatible labels.

FIG. 7 shows another example schematic for end-to-end detection and extraction of concept expression templates from training data.

FIGS. 8 A- 8 I show examples of parse tree structures and other text examples at various stages of the FIG. 7 process.

FIGS. 9 A- 9 J show examples of different portions of a specification data structure that can be produced by the NLP training system.

FIGS. 10 A- 10 G show various example of user interfaces for controlling and operating the training system.

FIG. 10 H shows an example narrative produced by the trained NLG system.

FIGS. 11 A and 11 B show example specification data structures that illustrate how user inputs via user interfaces can modify a base specification data structure.

FIGS. 12 A and 12 B show example commands for an HTTP API with respect to an example embodiment.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

FIG. 1 shows an example computer system 100 in accordance with an example embodiment. The computer system 100 may comprise a training data gateway 102 that links an artificial intelligence (AI) platform 104 with one or more sources of input training data such as document(s) 120 , text input 122 , and/or speech input 124 . The training data gateway 102 then provides such information to an NLP-based training system 106 as training data 126 . As an example, the training data gateway 102 can receive an upload of one or more documents 120 , where the document(s) 120 serve as training data 126 . The training data gateway 102 can also receive user input in the form of text 122 (such as text input through a graphical user interface) wherein the text 122 serves as training data 126 . The training data gateway 102 can also receive user input in the form of speech 124 , where speech recognition is performed by the gateway 102 to convert the speech into training data 126 . For example, software such as the Transcribe application available from Amazon could be employed to transcribe speech data into text data for processing. The document(s) 120 , text input 122 , and/or speech input 124 can take the form of unstructured data arranged as a plurality of words in a natural language format. The NLP-based training system 106 applies NLP to the training data to determine linguistic styles that are present in the training data and uses the determined linguistic styles to generate configuration data 128 that is used to train the NLG system 108 to produce natural language output that stylistically resembles the training data 126 .

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 a

CROSS-REFERENCE AND PRIORITY CLAIM TO RELATED PATENT APPLICATIONS

This patent application is a divisional of U.S. patent application Ser. No. 16/444,649, filed Jun. 18, 2019, and entitled “Applied Artificial Intelligence Technology for Using Natural Language Processing and Concept Expression Templates to Train a Natural Language Generation System”, now U.S. Pat. No. 10,706,236, which 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 disclosures of each of which are incorporated herein by reference.

This patent application is related to (1) U.S. patent application Ser. No. 16/444,689, filed Jun. 18, 2019, and entitled “Applied Artificial Intelligence Technology for Using Natural Language Processing to Train a Natural Language Generation System With Respect to Numeric Style Features”, (2) U.S. patent application Ser. No. 16/444,718, filed Jun. 18, 2019, 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 Jun. 18, 2019, 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.

INTRODUCTION

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.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 discloses an example AI computer system in accordance with an example embodiment.

FIG. 2 discloses an example process flow for NLP-based training of an NLG system.

FIG. 3 shows an example process flow for extracting linguistic features from training data and aggregating the extracted linguistic features into a specification data structure.

FIG. 4 A discloses an example process flow for entity identification in support of NLP in accordance with an example embodiment.

FIG. 4 B discloses an example prefix tree that can be used for identifying entities in training data.

FIG. 5 shows an example process flow for detecting and extracting concept expression templates from training data.

FIGS. 6 A- 6 D show examples of parse tree structures at various stages of the FIG. 5 process flow.

FIG. 6 E shows an example process flow for transforming and/or tagging tokens in a parse tree with NLG-compatible labels.

FIG. 7 shows another example schematic for end-to-end detection and extraction of concept expression templates from training data.

FIGS. 8 A- 8 I show examples of parse tree structures and other text examples at various stages of the FIG. 7 process.

FIGS. 9 A- 9 J show examples of different portions of a specification data structure that can be produced by the NLP training system.

FIGS. 10 A- 10 G show various example of user interfaces for controlling and operating the training system.

FIG. 10 H shows an example narrative produced by the trained NLG system.

FIGS. 11 A and 11 B show example specification data structures that illustrate how user inputs via user interfaces can modify a base specification data structure.

FIGS. 12 A and 12 B show example commands for an HTTP API with respect to an example embodiment.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

FIG. 1 shows an example computer system 100 in accordance with an example embodiment. The computer system 100 may comprise a training data gateway 102 that links an artificial intelligence (AI) platform 104 with one or more sources of input training data such as document(s) 120 , text input 122 , and/or speech input 124 . The training data gateway 102 then provides such information to an NLP-based training system 106 as training data 126 . As an example, the training data gateway 102 can receive an upload of one or more documents 120 , where the document(s) 120 serve as training data 126 . The training data gateway 102 can also receive user input in the form of text 122 (such as text input through a graphical user interface) wherein the text 122 serves as training data 126 . The training data gateway 102 can also receive user input in the form of speech 124 , where speech recognition is performed by the gateway 102 to convert the speech into training data 126 . For example, software such as the Transcribe application available from Amazon could be employed to transcribe speech data into text data for processing. The document(s) 120 , text input 122 , and/or speech input 124 can take the form of unstructured data arranged as a plurality of words in a natural language format. The NLP-based training system 106 applies NLP to the training data to determine linguistic styles that are present in the training data and uses the determined linguistic styles to generate configuration data 128 that is used to train the NLG system 108 to produce natural language output that stylistically resembles the training data 126 .

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 .

FIG. 2 depicts an example process flow for execution by one or more processors that implement the NLP-based training system 106 . At step 200 , a processor ingests the training data 126 . For example, as noted, the training data 126 can take the form of a corpus of documents that are represented by files. The documents can be ingested, converted into raw text strings, and saved for use by the training system 106 (for example, in a relational database as one document per row). The same process can be followed for text inputs and speech inputs, albeit the volume of data will likely be lower in such instances. Also, if desired, multiple files can be ingested at step 200 using techniques such as multi-part, form-encoded HTTP POST.

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, IL. 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 U.S. 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

FIG. 3 depicts an example architecture for implementing systems

202 and 204 within the training system 106 . A variety of different pattern matchers can be employed to detect and extract linguistic features from the training data 126 . These pattern matchers can be implemented in software code within the training system 106 . In an example embodiment, the pattern matchers can employ regular expression (RegEx) pattern matching where regular expressions are used to define the patterns sought via the matching process. In example embodiments, the training system 106 can include numeric style pattern matchers 300 , date and number pattern matchers 310 , ontological vocabulary pattern matchers 320 , and concept expressions pattern matchers 330 . Examples of each of these will be discussed below. The linguistic features detected and extracted via the pattern matchers can then be aggregated into a specification data structure 370 .

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, January 13 th 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:

salesperson sales region year

Aaron Young 50000

East

2018

Daisy Bailey 51000

West

2018

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”

FIG. 4 A discloses an example process flow for performing ontological vocabulary pattern matching. As used herein, the term “named entity” refers to any ontological or data atom that the NLP system 106 recognizes in training data. As such, it should be understood that the term named entity refers to more than just the entities that are described as part of an ontology 410 within the supporting data 110 . Examples of different types of named entities can include entity types (e.g., salesperson), entity instances (e.g., John, who is an instance of a salesperson), attributes (e.g., sales, which are an attribute of a salesperson), attribute values, timeframes, relationship types, relationships, qualifiers, outcomes, entity bindings, and predicate bindings.

At step 400 of FIG. 4 A , the system builds a tree structure that can be used for recognizing named entities in the training data (e.g., the sentences of a training document or other training input), for example a prefix tree. This tree can pull information from the knowledge base such as the sources shown in FIG. 4 A , which may include an ontology 410 , project data 412 , linguistic/ deictic context 414 , and general knowledge 416 .

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 .

FIG. 4 B shows a simple example of a prefix tree that can be built as a result of step 400 . It should be understood that for many projects, the prefix tree would be much larger. In this example, it can be seen that the name “Aaron Young” was found in the knowledge base of data sources as an entity instance, the word “generate” was found in the knowledge base of data sources as an attribute of sales value, the pronoun “he” was found to be contextually relevant to the entity instance of Aaron Young, and so on for other named entities as shown by FIG. 4 B . Given that the ontology 410 may include a variety of different expressions for ontological elements (as described in the above-referenced and incorporated Ser. No. 16/183,230 patent application), it should be understood that the prefix tree can be highly robust at recognizing the meaning of a large number of words within the context of a training data set. For example, expressions such as “sales”, “sells”, “deals”, “moves”, “transactions”, etc. can be linked to an attribute such as the sales of a salesperson to allow the system to recognize a wide variety of words in training data that relates to sales data. In general, it can be expected that (1) nouns will often map to entity types, entity instances, characterizations, attributes, and qualifiers, (2) verbs will often map to attributes and relationships, (3) adjectives will often map to qualifiers and characterizations, and (4) prepositions will often map to relationships; however this need not always be the case and will depend on the nature of the data sources accessed by step 400 .

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

CLAIMS

Claims ( 33 )

What is claimed is:

1. A method of training a natural language generation system, the method comprising:

determining a prefix tree via a processor based on a training data source that includes a plurality of natural language sentences, the prefix tree linking one or more named entities included in the training data source to one or more attributes in the training data source;

determining a plurality of concepts via the processor based on the training data source;

parsing the plurality of natural language sentences via the processor based on an ontology to determine a plurality of parse tree structures representing the plurality of natural language sentences, the ontology including an ontological vocabulary class of linguistic features identifying words used to represent ontological entities and relationships within the training data source;

determining a plurality of concept expression templates via the processor by collapsing and parameterizing the plurality of parse tree structures based on the prefix tree, the ontology, and the plurality of concepts, the plurality of concept expression templates modeling how the plurality of natural language sentences express the plurality of concepts as applied to the named entities and the corresponding attributes; and

training the natural language generation system based on the plurality of concept expression templates to generate natural language output expressing a concept of the plurality of concepts about an input data set.

2. The method recited in claim 1 , the method further comprising:

receiving one or more of the plurality of natural language sentences as user input through a user interface.

3. The method recited in claim 1 , the method further comprising:

linking a plurality of parameters included in the concept expression templates to a plurality of objects in the ontology used by the natural language generation system to produce the natural language output.

4. The method recited in claim 1 , the method further comprising:

receiving the plurality of natural language sentences as part of a plurality of documents in a document corpus.

5. The method recited in claim 1 , wherein each of the plurality of concept expression templates correspond with a document including the plurality of natural language sentences.

6. The method recited in claim 1 , wherein the plurality of concepts are determined by analyzing the prefix tree.

7. The method recited in claim 1 , wherein determining the plurality of concepts comprises processing the plurality of natural language sentences against a plurality of pattern matchers to identify a plurality of matches, each of the plurality of matches matching a respective sentence of the plurality of natural language sentences to a pattern matcher of the plurality of pattern matchers.

8. The method recited in claim 7 , wherein the plurality of pattern matchers has associated concepts and wherein the plurality of concepts correspond to the associated concepts.

9. The method recited in claim 8 , wherein the plurality of pattern matchers includes a pattern matcher associated with a change concept, a compare concept, a driver concept, or a rank concept.

10. The method recited in claim 7 , wherein the plurality of pattern matchers is associated with a plurality of anchor words such that that different pattern matchers are associated with different anchor words.

11. The method recited in claim 10 , wherein determining the plurality of concepts comprises matching words in the plurality of natural language sentences against the anchor words.

12. One or more non-transitory computer readable media having instructions stored thereon for performing a method of training a natural language generation system, the method comprising:

determining a prefix tree via a processor based on a training data source that includes a plurality of natural language sentences, the prefix tree linking one or more named entities included in the training data source to one or more attributes in the training data source;

determining a plurality of concepts via the processor based on the training data source;

parsing the plurality of natural language sentences via the processor based on an ontology to determine a plurality of parse tree structures representing the plurality of natural language sentences, the ontology including an ontological vocabulary class of linguistic features identifying words used to represent ontological entities and relationships within the training data source;

determining a plurality of concept expression templates via the processor by collapsing and parameterizing the plurality of parse tree structures based on the prefix tree, the ontology, and the plurality of concepts, the plurality of concept expression templates modeling how the plurality of natural language sentences express the plurality of concepts as applied to the named entities and the corresponding attributes; and

training the natural language generation system based on the plurality of concept expression templates to generate natural language output expressing a concept of the plurality of concepts about an input data set.

13. The one or more non-transitory computer readable media recited in claim 12 , the method further comprising:

receiving one or more of the plurality of natural language sentences as user input through a user interface.

14. The one or more non-transitory computer readable media recited in claim 12 , the method further comprising:

linking a plurality of parameters included in the concept expression templates to a plurality of objects in the ontology used by the natural language generation system to produce the natural language output.

15. The one or more non-transitory computer readable media recited in claim 12 , the method further comprising:

receiving the plurality of natural language sentences as part of a plurality of documents in a document corpus.

16. The one or more non-transitory computer readable media recited in claim 12 , wherein each of the plurality of concept expression templates correspond with a document including the plurality of natural language sentences.

17. The one or more non-transitory computer readable media recited in claim 12 , wherein the plurality of concepts are determined by analyzing the prefix tree.

18. The one or more non-transitory computer readable media recited in claim 12 , wherein determining the plurality of concepts comprises processing the plurality of natural language sentences against a plurality of pattern matchers to identify a plurality of matches, each of the plurality of matches matching a respective sentence of the plurality of natural language sentences to a pattern matcher of the plurality of pattern matchers.

19. The one or more non-transitory computer readable media recited in claim 18 , wherein the plurality of pattern matchers has associated concepts and wherein the plurality of concepts correspond to the associated concepts.

20. The one or more non-transitory computer readable media recited in claim 19 , wherein the plurality of pattern matchers includes a pattern matcher associated with a change concept, a compare concept, a driver concept, or a rank concept.

21. The one or more non-transitory computer readable media recited in claim 18 , wherein the plurality of pattern matchers is associated with a plurality of anchor words such that that different pattern matchers are associated with different anchor words.

22. The one or more non-transitory computer readable media recited in claim 21 , wherein determining the plurality of concepts comprises matching words in the plurality of natural language sentences against the anchor words.

23. A system including a processor and memory, the system configured to train a natural language generation system by performing a method comprising:

determining a prefix tree via the processor based on a training data source that includes a plurality of natural language sentences, the prefix tree linking one or more named entities included in the training data source to one or more attributes in the training data source;

determining a plurality of concepts via the processor based on the training data source;

parsing the plurality of natural language sentences via the processor based on an ontology to determine a plurality of parse tree structures representing the plurality of natural language sentences, the ontology including an ontological vocabulary class of linguistic features identifying words used to represent ontological entities and relationships within the training data source;

determining a plurality of concept expression templates via the processor by collapsing and parameterizing the plurality of parse tree structures based on the prefix tree, the ontology, and the plurality of concepts, the plurality of concept expression templates modeling how the plurality of natural language sentences express the plurality of concepts as applied to the named entities and the corresponding attributes; and

training the natural language generation system based on the plurality of concept expression templates to generate natural language output expressing a concept of the plurality of concepts about an input data set.

24. The system recited in claim 23 , wherein the system is further configured to receiveone or more of the plurality of natural language sentences as user input through a user interface.

25. The system recited in claim 23 , wherein the system is further configured to link a plurality of parameters included in the concept expression templates to a plurality of objects in the ontology used by the natural language generation system to produce the natural language output.

26. The system recited in claim 23 , wherein the system is further configured to receive the plurality of natural language sentences as part of a plurality of documents in a document corpus.

27. The system recited in claim 23 , wherein each of the plurality of concept expression templates correspond with a document including the plurality of natural language sentences.

28. The system recited in claim 23 , wherein the plurality of concepts are determined by analyzing the prefix tree.

29. The system recited in claim 23 , wherein determining the plurality of concepts comprises processing the plurality of natural language sentences against a plurality of pattern matchers to identify a plurality of matches, each of the plurality of matches matching a respective sentence of the plurality of natural language sentences to a pattern matcher of the plurality of pattern matchers.

30. The system recited in claim 29 , wherein the plurality of pattern matchers has associated concepts and wherein the plurality of concepts correspond to the associated concepts.

31. The system recited in claim 30 , wherein the plurality of pattern matchers includes a pattern matcher associated with a change concept, a compare concept, a driver concept, or a rank concept.

32. The system recited in claim 29 , wherein the plurality of pattern matchers is associated with a plurality of anchor words such that that different pattern matchers are associated with different anchor words.

33. The system recited in claim 32 , wherein determining the plurality of concepts comprises matching words in the plurality of natural language sentences against the anchor words.

US16/916,248

2018-06-28

2020-06-30

Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system

Active

US11989519B2

( en )

Priority Applications (1)

Application Number

Priority Date

Filing Date

Title

US16/916,248

US11989519B2

( en )

2018-06-28

2020-06-30

Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system

Applications Claiming Priority (3)

Application Number

Priority Date

Filing Date

Title

US201862691197P

2018-06-28

2018-06-28

US16/444,649

US10706236B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system

US16/916,248

US11989519B2

( en )

2018-06-28

2020-06-30

Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system

Related Parent Applications (1)

Application Number

Title

Priority Date

Filing Date

US16/444,649

Division

US10706236B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system

Publications (2)

Publication Number

Publication Date

US20200334418A1

US20200334418A1 ( en )

2020-10-22

US11989519B2

true

US11989519B2 ( en )

2024-05-21

Family

ID=71408486

Family Applications (5)

Application Number

Title

Priority Date

Filing Date

US16/444,689

Active

2039-09-06

US11232270B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to numeric style features

US16/444,748

Active

US11042713B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing to train a natural language generation system

US16/444,718

Active

2039-12-21

US11334726B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to date and number textual features

US16/444,649

Active

US10706236B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system

US16/916,248

Active

US11989519B2

( en )

2018-06-28

2020-06-30

Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system

Family Applications Before (4)

Application Number

Title

Priority Date

Filing Date

US16/444,689

Active

2039-09-06

US11232270B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to numeric style features

US16/444,748

Active

US11042713B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing to train a natural language generation system

US16/444,718

Active

2039-12-21

US11334726B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to date and number textual features

US16/444,649

Active

US10706236B1

( en )

2018-06-28

2019-06-18

Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system

Country Status (1)

Country

Link

US

( 5 )

US11232270B1

( en )

Cited By (2)

* Cited by examiner, † Cited by third party

Publication number

Priority date

Publication date

Assignee

Title

US20250225328A1

( en )

*

2024-01-10

2025-07-10

International Business Machines Corporation

Artificial Intelligence Based Metadata Semantic Enrichment

US12518095B1

( en )

*

2022-06-30

2026-01-06

Amazon Technologies, Inc.

Dynamic entity catalog update for natural language processing

Families Citing this family (48)

* Cited by examiner, † Cited by third party

Publication number

Priority date

Publication date

Assignee

Title

US8355903B1

( en )

2010-05-13

2013-01-15

Northwestern University

System and method for using data and angles to automatically generate a narrative story

US9208147B1

( en )

2011-01-07

2015-12-08

Narrative Science Inc.

Method and apparatus for triggering the automatic generation of narratives

US11989659B2

( en )

2010-05-13

2024-05-21

Salesforce, Inc.

Method and apparatus for triggering the automatic generation of narratives

US10657201B1

( en )

2011-01-07

2020-05-19

Narrative Science Inc.

Configurable and portable system for generating narratives

US9720899B1

( en )

2011-01-07

2017-08-01

Narrative Science, Inc.

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

US10185477B1

( en )

2013-03-15

2019-01-22

Narrative Science Inc.

Method and system for configuring automatic generation of narratives from data

US11475076B2

( en )

2014-10-22

2022-10-18

Narrative Science Inc.

Interactive and conversational data exploration

US11922344B2

( en )

2014-10-22

2024-03-05

Narrative Science Llc

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

US11238090B1

( en )

2015-11-02

2022-02-01

Narrative Science Inc.

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

US12153618B2

( en )

2015-11-02

2024-11-26

Salesforce, Inc.

Applied artificial intelligence technology for automatically generating narratives from visualization data

US11222184B1

( en )

2015-11-02

2022-01-11

Narrative Science Inc.

Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from bar charts

US11170038B1

( en )

2015-11-02

2021-11-09

Narrative Science Inc.

Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from multiple visualizations

US11232268B1

( en )

2015-11-02

2022-01-25

Narrative Science Inc.

Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from line charts

US10853583B1

( en )

2016-08-31

2020-12-01

Narrative Science Inc.

Applied artificial intelligence technology for selective control over narrative generation from visualizations of data

US11568148B1

( en )

*

2017-02-17

2023-01-31

Narrative Science Inc.

Applied artificial intelligence technology for narrative generation based on explanation communication goals

US10572606B1

( en )

2017-02-17

2020-02-25

Narrative Science Inc.

Applied artificial intelligence technology for runtime computation of story outlines to support natural language generation (NLG)

US11954445B2

( en )

2017-02-17

2024-04-09

Narrative Science Llc

Applied artificial intelligence technology for narrative generation based on explanation communication goals

US10943069B1

( en )

2017-02-17

2021-03-09

Narrative Science Inc.

Applied artificial intelligence technology for narrative generation based on a conditional outcome framework

US11068661B1

( en )

2017-02-17

2021-07-20

Narrative Science Inc.

Applied artificial intelligence technology for narrative generation based on smart attributes

US11042709B1

( en )

2018-01-02

2021-06-22

Narrative Science Inc.

Context saliency-based deictic parser for natural language processing

US11003866B1

( en )

2018-01-17

2021-05-11

Narrative Science Inc.

Applied artificial intelligence technology for narrative generation using an invocable analysis service and data re-organization

US10755046B1

( en )

2018-02-19

2020-08-25

Narrative Science Inc.

Applied artificial intelligence technology for conversational inferencing

US11232270B1

( en )

*

2018-06-28

2022-01-25

Narrative Science Inc.

Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to numeric style features

US10839164B1

( en )

*

2018-10-01

2020-11-17

Iqvia Inc.

Automated translation of clinical trial documents

CN110162604B

( en )

*

2019-01-24

2023-09-12

腾讯科技(深圳)有限公司

Statement generation method, device, equipment and storage medium

US11341330B1

( en )

2019-01-28

2022-05-24

Narrative Science Inc.

Applied artificial intelligence technology for adaptive natural language understanding with term discovery

US10796104B1

( en )

*

2019-07-03

2020-10-06

Clinc, Inc.

Systems and methods for constructing an artificially diverse corpus of training data samples for training a contextually-biased model for a machine learning-based dialogue system

CN110309289B

( en )

*

2019-08-23

2019-12-06

深圳市优必选科技股份有限公司

Sentence generation method, sentence generation device and intelligent equipment

US11394799B2

( en )

2020-05-07

2022-07-19

Freeman Augustus Jackson

Methods, systems, apparatuses, and devices for facilitating for generation of an interactive story based on non-interactive data

US11314503B2

( en )

*

2020-06-08

2022-04-26

Bank Of America Corporation

Software development documentation using machine learning

US11556705B2

( en )

*

2020-10-29

2023-01-17

International Business Machines Corporation

Natural language processing payload generation

US12511491B2

( en )

*

2021-01-21

2025-12-30

Servicenow, Inc.

System and method for managing and optimizing lookup source templates in a natural language understanding (NLU) framework

US11734517B1

( en )

*

2021-03-09

2023-08-22

Yseop Sa

Systems and methods for measuring automatability of report generation using a natural language generation system

CH718451A2

( en )

*

2021-03-16

2022-09-30

Ella Media Ag

Procedure for generating files.

US12001786B2

( en )

2021-05-24

2024-06-04

Salesforce, Inc.

Applied artificial intelligence technology for natural language generation using a graph data structure with follow-up capabilities

US11769007B2

( en )

2021-05-27

2023-09-26

International Business Machines Corporation

Treebank synthesis for training production parsers

CN113361644B

( en )

*

2021-07-03

2024-05-14

上海理想信息产业(集团)有限公司

Model training method, telecommunication service characteristic information extraction method, device and equipment

CN113658585B

( en )

*

2021-08-13

2024-04-09

北京百度网讯科技有限公司

Training method of voice interaction model, voice interaction method and device

US12204545B1

( en )

*

2021-08-13

2025-01-21

Xsqrd, Inc.

System and method for electronic document parsing

US12609102B2

( en )

*

2021-09-30

2026-04-21

Sap Se

Training dataset generation for speech-to-text service

US12511477B2

( en )

*

2021-12-30

2025-12-30

Huawei Technologies Co., Ltd.

Methods and devices for generating sensitive text detectors

CN114510578A

( en )

*

2021-12-31

2022-05-17

富联智能工坊(郑州)有限公司

Triple prediction model training method, medium, generating device and server

CN114428823B

( en )

*

2022-01-28

2022-11-01

北京国电通网络技术有限公司

Data linkage method, device, equipment and medium based on multidimensional variable expression

US12462114B2

( en )

2022-01-31

2025-11-04

Salesforce, Inc.

Applied artificial intelligence technology for integrating natural language narrative generation with newsfeeds

CN114896983B

( en )

*

2022-05-12

2025-10-28

支付宝(杭州)信息技术有限公司

Model training method, text processing method, device and computer equipment

US20260072931A1

( en )

*

2022-09-26

2026-03-12

FORMIC Al LTD.

Application of an ai-based model to a preprocessed data set

US12496524B2

( en )

2023-05-03

2025-12-16

Gamechanger Media, Inc.

Systems and methods for automatic media generation for game sessions

US12405983B1

( en )

*

2024-02-29

2025-09-02

Palantir Technologies Inc.

Interacting with ontology-based databases using machine learning

Citations (396)

* Cited by examiner, † Cited by third party

Publication number

Priority date

Publication date

Assignee

Title

US4992939A

( en )

1988-08-05

1991-02-12

Tyler Brian G

Method of producing narrative analytical report

WO1996030844A1

( en )

1995-03-28

1996-10-03

Takashi Ogata

Support system for automation of story structure preparation

US5619631A

( en )

1995-06-07

1997-04-08

Binaryblitz

Method and apparatus for data alteration by manipulation of representational graphs

US5734916A

( en )

1994-06-01

1998-03-31

Screenplay Systems, Inc.

Method and apparatus for identifying, predicting, and reporting object relationships

US5794050A

( en )

1995-01-04

1998-08-11

Intelligent Text Processing, Inc.

Natural language understanding system

US5802495A

( en )

1996-03-01

1998-09-01

Goltra; Peter

Phrasing structure for the narrative display of findings

US5999664A

( en )

1997-11-14

1999-12-07

Xerox Corporation

System for searching a corpus of document images by user specified document layout components

US6006175A

( en )

1996-02-06

1999-12-21

The Regents Of The University Of California

Methods and apparatus for non-acoustic speech characterization and recognition

US6144938A

( en )

1998-05-01

2000-11-07

Sun Microsystems, Inc.

Voice user interface with personality

US6278967B1

( en )

1992-08-31

2001-08-21

Logovista Corporation

Automated system for generating natural language translations that are domain-specific, grammar rule-based, and/or based on part-of-speech analysis

US6289363B1

( en )

1996-08-23

2001-09-11

International Business Machines Corporation

Navigation editor framework for building mulitmedia titles

US20020046018A1

( en )

2000-05-11

2002-04-18

Daniel Marcu

Discourse parsing and summarization

US20020083025A1

( en )

1998-12-18

2002-06-27

Robarts James O.

Contextual responses based on automated learning techniques

US20020099730A1

( en )

2000-05-12

2002-07-25

Applied Psychology Research Limited

Automatic text classification system

US20020107721A1

( en )

2000-10-24

2002-08-08

International Business Machines Corporation

Story-based organizational assessment and effect system

US20030004706A1

( en )

2001-06-27

2003-01-02

Yale Thomas W.

Natural language processing system and method for knowledge management

US20030061029A1

( en )

2001-08-29

2003-03-27

Efraim Shaket

Device for conducting expectation based mixed initiative natural language dialogs

US20030110186A1

( en )

2001-04-26

2003-06-12

Michael Markowski

Dynamic generation of personalized presentation of domain-specific information content

US20030182102A1

( en )

2002-03-20

2003-09-25

Simon Corston-Oliver

Sentence realization model for a natural language generation system

US20030212543A1

( en )

2002-05-07

2003-11-13

International Business Machines Corporation

Integrated development tool for building a natural language understanding application

US6651218B1

( en )

1998-12-22

2003-11-18

Xerox Corporation

Dynamic content database for multiple document genres

US20030217335A1

( en )

2002-05-17

2003-11-20

Verity, Inc.

System and method for automatically discovering a hierarchy of concepts from a corpus of documents

US20030216905A1

( en )

2002-05-20

2003-11-20

Ciprian Chelba

Applying a structured language model to information extraction

US6665666B1

( en )

1999-10-26

2003-12-16

International Business Machines Corporation

System, method and program product for answering questions using a search engine

US20040015342A1

( en )

2002-02-15

2004-01-22

Garst Peter F.

Linguistic support for a recognizer of mathematical expressions

US20040029977A1

( en )

2000-11-30

2004-02-12

Rolf Kawa

Fine-grained emulsions

US20040034520A1

( en )

2002-03-04

2004-02-19

Irene Langkilde-Geary

Sentence generator

US6697998B1

( en )

2000-06-12

2004-02-24

International Business Machines Corporation

Automatic labeling of unlabeled text data

US20040068691A1

( en )

2002-04-19

2004-04-08

Mark Asbury

System and method for client-side locale specific numeric format handling in a web environment

US20040083092A1

( en )

2002-09-12

2004-04-29

Valles Luis Calixto

Apparatus and methods for developing conversational applications

US20040103116A1

( en )

2002-11-26

2004-05-27

Lingathurai Palanisamy

Intelligent retrieval and classification of information from a product manual

US6757362B1

( en )

2000-03-06

2004-06-29

Avaya Technology Corp.

Personal virtual assistant

US20040138899A1

( en )

2003-01-13

2004-07-15

Lawrence Birnbaum

Interactive task-sensitive assistant

US6771290B1

( en )

1998-07-17

2004-08-03

B.E. Technology, Llc

Computer interface method and apparatus with portable network organization system and targeted advertising

US20040174397A1

( en )

2003-03-05

2004-09-09

Paul Cereghini

Integration of visualizations, reports, and data

US20040225651A1

( en )

2003-05-07

2004-11-11

Musgrove Timothy A.

System and method for automatically generating a narrative product summary

US20040230989A1

( en )

2003-05-16

2004-11-18

Macey William H.

Method and apparatus for survey processing

US20040255232A1

( en )

2003-06-11

2004-12-16

Northwestern University

Networked presentation system

US20050028156A1

( en )

2003-07-30

2005-02-03

Northwestern University

Automatic method and system for formulating and transforming representations of context used by information services

US20050027704A1

( en )

2003-07-30

2005-02-03

Northwestern University

Method and system for assessing relevant properties of work contexts for use by information services

US20050033582A1

( en )

2001-02-28

2005-02-10

Michael Gadd

Spoken language interface

US20050049852A1

( en )

*

2003-09-03

2005-03-03

Chao Gerald Cheshun

Adaptive and scalable method for resolving natural language ambiguities

US20050125213A1

( en )

2003-12-04

2005-06-09

Yin Chen

Apparatus, system, and method for modeling and analyzing a plurality of computing workloads

US20050137854A1

( en )

2003-12-18

2005-06-23

Xerox Corporation

Method and apparatus for evaluating machine translation quality

US6917936B2

( en )

2002-12-18

2005-07-12

Xerox Corporation

Method and apparatus for measuring similarity between documents

US6968316B1

( en )

1999-11-03

2005-11-22

Sageworks, Inc.

Systems, methods and computer program products for producing narrative financial analysis reports

US20050273362A1

( en )

2004-06-02

2005-12-08

Catalis, Inc.

Method and system for generating medical narrative

US6976207B1

( en )

1999-04-28

2005-12-13

Ser Solutions, Inc.

Classification method and apparatus

US6976031B1

( en )

1999-12-06

2005-12-13

Sportspilot, Inc.

System and method for automatically generating a narrative report of an event, such as a sporting event

US20060031182A1

( en )

2004-08-05

2006-02-09

First Look Networks Llc

Method and apparatus for automatically providing expert analysis-based advice

<span itemp

Related documents

Record · ID 607282
Conceptio Open Knowledge Archive — every document is proof-bundled with source, license, and retrieval metadata.