IP Library Granted Patent US 11,989,519
Granted Patent B2
US 11,989,519 · App. 16/916,248 · Granted May 21, 2024

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

Inventors: Daniel Joseph Platt (Chicago, IL); Nathan D. Nichols (Chicago, IL); Michael Justin Smathers (Chicago, IL); Jared Lorince (Skokie, IL)
Assignee: Salesforce, Inc.
G06F40/30G06F16/3344G06F18/214G06F40/205G06F40/211G06F40/253G06F40/295G06N20/00G06F40/268G06F40/279G06F40/56G10L15/063G10L15/1822G10L15/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,989,519
App. No.
16/916,248
Granted
May 21, 2024
Kind
B2
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.

Claims (54)

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.

Assignments (4)
CHANGE OF NAME Recorded Mar 25, 2024
From: NARRATIVE SCIENCE INC.
To: NARRATIVE SCIENCE LLC
Reel/Frame 066884/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2024
From: NARRATIVE SCIENCE LLC
To: SALESFORCE, INC.
Reel/Frame 067218/0449 →
CHANGE OF NAME Recorded Oct 13, 2023
From: NARRATIVE SCIENCE INC.
To: NARRATIVE SCIENCE LLC
Reel/Frame 065237/0929 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2020
From: PLATT, DANIEL JOSEPH; NICHOLS, NATHAN D.; SMATHERS, MICHAEL JUSTIN; LORINCE, JARED
To: NARRATIVE SCIENCE INC.
Reel/Frame 053083/0914 →
Continuity (3)
Division 16444649 · Jun 18, 2019
Provisional Application 62691197 · Jun 28, 2018
Related Publication 20200334418A1 · Oct 22, 2020
Cited By (2)
US 12,518,095 US 12,547,837