IP Library › Granted Patent US 10,776,579
Granted Patent B2
US 10,776,579 · App. 16/120,979 · Granted Sep 15, 2020

Generation of variable natural language descriptions from structured data

Inventors: Abhijit Mishra (Bangalore, IN); Parag Jain (Jabalpur, IN); Anirban Laha (Bangalore, IN); Karthik Sankaranarayanan (New Delhi, IN)
Assignee: International Business Machines Corporation
G06F40/247G06F16/26G06F16/288G06F40/205
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 10,776,579
App. No.
16/120,979
Filed
Sep 4, 2018
Granted
Sep 15, 2020
Kind
B2
Art Unit
2657
USPC
704/9
Abstract

Techniques for the generation of variable natural language descriptions from structured data are disclosed including receiving input data and generating a first plurality of tuples based on the received input data. A first plurality of sentences and a corresponding second plurality of tuples are obtained from a data repository based on the first plurality of tuples. A second plurality of sentences is generated based on the second plurality of tuples, the first plurality of sentences, and the first plurality of tuples. A sentence is selected from the first plurality of sentences and the second plurality of sentences for each of the first plurality of tuples. At least one paragraph variation is generated where each paragraph variation is generated based on two or more of the selected sentences. The at least one paragraph variation is presented as a natural language description of the input data.

Claims (104)

1. A computer-implemented method, the method comprising steps of:

receiving input data;

generating a first plurality of tuples based on the received input data;

obtaining (i) a first plurality of sentences and (ii) a corresponding second plurality of tuples from a data repository, the first plurality of sentences and corresponding second plurality of tuples obtained based on the first plurality of tuples, the first plurality of sentences generated based on the second plurality of tuples;

generating a second plurality of sentences based on (i) the second plurality of tuples, (ii) the first plurality of sentences, and (iii) the first plurality of tuples;

selecting a sentence for each of the first plurality of tuples from (i) the first plurality of sentences and (ii) the second plurality of sentences;

generating at least one paragraph variation, each paragraph variation generated based on two or more of the selected sentences; and

presenting the at least one paragraph variation as a natural language description of the input data;

wherein the steps are carried out by at least one computing device.

2. The computer-implemented method of claim 1 , wherein said generating the first plurality of tuples based on the received input data comprises:

identifying a plurality of entities in the input data;

determining relationships between the identified plurality of entities in the input data;

forming a third plurality of tuples based on (i) the identified plurality of entities and (ii) the determined relationships between the identified plurality of entities; and

performing lemmatization on the formed third plurality of tuples to generate the first plurality of tuples.

3. The computer-implemented method of claim 1 , wherein the first plurality of tuples is domain-independent with respect to a domain of the input data.

4. The computer-implemented method of claim 3 , wherein the domain of the input data are a domain selected from the group consisting of a table, a graph, a tree, a JavaScript Object Notation (JSON), a Resource Description Framework (RDF), and combinations thereof.

5. The computer-implemented method of claim 1 , comprising:

generating the second plurality of tuples, the generation of the second plurality of tuples comprising:

parsing a corpus of raw sentences to generate a third plurality of tuples, each tuple in the third plurality of tuples corresponding to a raw sentence in the corpus;

generating tuple variations based on the third plurality of tuples; and

adding the tuple variations to the third plurality of tuples to generate the second plurality of tuples, each tuple variation corresponding to a raw sentence in the corpus; and

storing the second plurality of tuples in the data repository.

6. The computer-implemented method of claim 5 , wherein said generating the tuple variations based on the third plurality of tuples comprises:

obtaining (i) morphosyntactic variations and (ii) synonyms for the third plurality of tuples; and

generating the tuple variations based on (i) the obtained morphosyntactic variations and (ii) synonyms.

7. The computer-implemented method of claim 1 , wherein said generating the second plurality of sentences based on (i) the second plurality of tuples, (ii) the first plurality of sentences, and (iii) the first plurality of tuples comprises:

generating vectors for the first plurality of tuples;

determining a similarity between (i) the vectors for the first plurality of tuples and (ii) vectors for the second plurality of tuples;

determining that the similarity between (i) a vector for a given tuple in the first plurality of tuples and (ii) a vector for a given tuple in the second plurality of tuples meets a predetermined threshold; and

in response to determining that the similarity meets the predetermined threshold, generating the sentence for the given tuple in the first plurality of tuples based on the sentence corresponding to the given tuple in the second plurality of tuples.

8. The computer-implemented method of claim 7 , wherein said generating the sentence for the given tuple in the first plurality of tuples based on the sentence corresponding to the given tuple in the second plurality of tuples comprises:

generating a first sentence based on the sentence corresponding to the given tuple in the second plurality of tuples, the first sentence comprising at least one entity tag; and

generating the sentence for the given tuple in the first plurality of tuples by replacing each entity tag of the first sentence with a corresponding entity from the given tuple in the first plurality of tuples.

9. The computer-implemented method of claim 1 , wherein said generating the second plurality of sentences based on (i) the second plurality of tuples, (ii) the first plurality of sentences, and (iii) the first plurality of tuples comprises:

training a classifier based on the second plurality of tuples;

classifying the first plurality of tuples based on the trained classifier; and

generating the second plurality of sentences based on the classifications.

10. The computer-implemented method of claim 1 , comprising:

generating (i) a fluency score and (ii) an adequacy score for each sentence in the first plurality of sentences and second plurality of sentences; and

ranking (i) the first plurality of sentences and (ii) the second plurality of sentences based on the generated fluency scores and adequacy scores,

wherein selecting the sentence for each of the first plurality of tuples from the first plurality of sentences and the second plurality of sentences comprises selecting the sentence based on the ranking.

11. The computer-implemented method of claim 1 , wherein said generating the at least one paragraph variation, comprises:

generating a list of sentences from the sentences selected for each of the first plurality of tuples;

segmenting the list into a plurality of sub-lists;

compounding sentences within each sub-list into a plurality of compound sentences; and

generating the at least one paragraph variation based on the plurality of compounded sentences.

12. The computer-implemented method of claim 11 , wherein said generating the at least one paragraph variation based on the plurality of compound sentences comprises:

combining the compound sentences to form a plurality of initial paragraphs;

identifying repetitive entities in the plurality of initial paragraphs;

replacing identified repetitive entities with co-reference entities in the plurality of initial paragraphs to form a plurality of final paragraphs; and

generating the at least one paragraph variation based on the plurality of final paragraphs.

13. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computing device to cause the computing device to:

receive input data;

generate a first plurality of tuples based on the received input data;

obtain (i) a first plurality of sentences and (ii) a corresponding second plurality of tuples from a data repository based on the first plurality of tuples, the first plurality of sentences generated based on the second plurality of tuples;

generate a second plurality of sentences based on (i) the second plurality of tuples, (ii) the first plurality of sentences, and (iii) the first plurality of tuples;

select a sentence for each of the first plurality of tuples from (i) the first plurality of sentences and (ii) the second plurality of sentences;

generate at least one paragraph variation, each paragraph variation generated based on two or more of the selected sentences; and

present the at least one paragraph variation as a natural language description of the input data.

14. The computer program product of claim 13 , wherein generating the first plurality of tuples based on the received input data comprises:

identifying a plurality of entities in the input data;

determining relationships between the identified plurality of entities in the input data;

forming a third plurality of tuples based on the identified plurality of entities and the determined relationships between the identified plurality of entities; and

performing lemmatization on the formed third plurality of tuples to generate the first plurality of tuples.

15. The computer program product of claim 13 , the program instructions further executable by the computing device to cause the computing device to generate the second plurality of tuples, the generation of the second plurality of tuples comprising:

parsing a corpus of raw sentences to generate a third plurality of tuples, each tuple in the third plurality of tuples corresponding to a raw sentence in the corpus;

generating tuple variations based on the third plurality of tuples; and

adding the tuple variations to the third plurality of tuples to generate the second plurality of tuples, each tuple variation corresponding to a raw sentence in the corpus; and

storing the second plurality of tuples in the data repository.

16. The computer program product of claim 13 , wherein said generating the second plurality of sentences based on (i) the second plurality of tuples, (ii) the first plurality of sentences, and (iii) the first plurality of tuples comprises:

generating vectors for the first plurality of tuples;

determining a similarity between (i) the vectors for the first plurality of tuples and (ii) vectors for the second plurality of tuples;

determining that the similarity between (i) a vector for a given tuple in the first plurality of tuples and (ii) a vector for a given tuple in the second plurality of tuples meets a predetermined threshold; and

in response to determining that the similarity meets the predetermined threshold, generating the sentence for the given tuple in the first plurality of tuples based on the sentence corresponding to the given tuple in the second plurality of tuples.

17. The computer program product of claim 13 , wherein said generating the second plurality of sentences based on (i) the second plurality of tuples, (ii) the first plurality of sentences, and (iii) the first plurality of tuples comprises:

training a classifier based on the second plurality of tuples;

classifying the first plurality of tuples based on the trained classifier; and

generating the second plurality of sentences based on the classifications.

18. The computer program product of claim 13 , the program instructions further executable by the computing device to cause the computing device to:

generate (i) a fluency score and (ii) an adequacy score for each sentence in the first plurality of sentences and second plurality of sentences; and

rank (i) the first plurality of sentences and (ii) the second plurality of sentences based on the generated fluency scores and adequacy scores,

wherein selecting the sentence for each of the first plurality of tuples from the first plurality of sentences and the second plurality of sentences comprises selecting the sentence based on the ranking.

19. A system comprising:

a memory; and

at least one processor operably coupled to the memory and configured for:

receiving input data;

generating a first plurality of tuples based on the received input data;

obtaining (i) a first plurality of sentences and (ii) a corresponding second plurality of tuples from a data repository based on the first plurality of tuples, the first plurality of sentences generated based on the second plurality of tuples;

generating a second plurality of sentences based on (i) the second plurality of tuples, (ii) the first plurality of sentences, and (iii) the first plurality of tuples;

selecting a sentence for each of the first plurality of tuples from (i) the first plurality of sentences and (ii) the second plurality of sentences;

generating at least one paragraph variation, each paragraph variation generated based on two or more of the selected sentences; and

presenting the at least one paragraph variation as a natural language description of the input data.

20. A computer-implemented method, the method comprising steps of:

obtaining a corpus of raw sentences from a data repository;

parsing the corpus of raw sentences to generate a plurality of tuples, each tuple corresponding to a raw sentence in the corpus;

generating tuple variations based on the plurality of tuples;

adding the tuple variations to the plurality of tuples to generate a second plurality of tuples, each tuple variation corresponding to a raw sentence in the corpora;

replacing entities in the second plurality of tuples with domain-independent tags to form a plurality of tagged tuples;

generating a label for each tagged tuple based on the corresponding raw sentence;

training a classifier based on (i) the tagged plurality of tuples and (ii) corresponding generated labels;

augmenting the tagged plurality of tuples based on the corresponding generated labels to generate a plurality of augmented tuples; and

training a generative model based on (i) the augmented tuples and (ii) the corresponding raw sentences;

wherein (i) the trained classifier and (ii) the trained generative model are together configured to generate a plurality of sentences based on a set of input data; and

wherein the steps are carried out by at least one computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2018
From: MISHRA, ABHIJIT; JAIN, PARAG; LAHA, ANIRBAN; SANKARANARAYANAN, KARTHIK
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046931/0197 →
Continuity (1)
Related Publication 20200073944A1 · Mar 5, 2020
Cited By (1)
US 12,664,191