IP Library Granted Patent US 10,990,767
Granted Patent B1
US 10,990,767 · App. 16/744,504 · Granted Apr 27, 2021

Applied artificial intelligence technology for adaptive natural language understanding

Inventors: Michael Justin Smathers (Chicago, IL); Daniel Joseph Platt (Chicago, IL); Nathan D. Nichols (Chicago, IL); Jared Lorince (Skokie, IL)
Assignee: NARRATIVE SCIENCE INC.
G06F40/56G06F16/322G06F40/284G06N3/08
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,990,767
App. No.
16/744,504
Granted
Apr 27, 2021
Kind
B1
Abstract

Applied Artificial Intelligence Technology for Adaptive Natural Language Understanding Disclosed herein is computer technology that provides adaptive mechanisms for learning concepts that are expressed by natural language sentences, and then applies this learning to appropriately classify new natural language sentences with the relevant concept that they express.

Claims (66)

1. A method for applying artificial intelligence technology to natural language understanding, the method comprising:

a processor training a classifier with a plurality of concept-labeled sentences so that the classifier is trained to distinguish between a plurality of concepts based on sentence composition and structure;

the processor processing a sentence using the trained classifier;

the processor identifying a concept for the sentence based on the processing; and

the processor creating a data structure that associates the sentence with the identified concept;

wherein the training step comprises:

for each of a plurality of the concept-labeled sentences, (1) converting the concept-labeled sentence into a list of tokens, the tokens including (token, part-of-speech) pairs for a plurality of words in the sentence, (2) creating a set of permutations of the tokens of the token list for the sentence, wherein the permutations maintain an order for the tokens of the token list for the sentence, (3) generating a set of string match rules from the permutations, (4) comparing the string match rules for the sentence against all of the string match rules used by the trained classifier with respect to concepts other than the concept associated with the sentence, and (5) based on the comparing, discarding any string match rules that are used by the trained classifier with respect to concepts other than the concept associated with the sentence.

2. The method of claim 1 wherein the generating step comprises:

removing tokens that are on a stoplist; and

inserting span operator tokens between non-sequential pairs of tokens in the permutations.

3. The method of claim 1 wherein the training step further comprises:

for each of a plurality of the concept-labeled sentences, removing string match rules that are redundant with respect to concept classifying the concept-labeled sentences.

4. The method of claim 3 wherein the removing step comprises:

for each of a plurality of pairs of string match rules for a concept, (1) processing the concept-labeled sentences using the pair of string match rules, and (2) identifying one of the string match rules in the pair as being redundant if the pair of string match rules produce hits on the same set of the processed concept-labeled sentences.

5. The method of claim 3 wherein the training step further comprises:

generating a classification data structure based on the string match rules.

6. The method of claim 5 wherein the classification data structure comprises a prefix tree data structure.

7. The method of claim 1 further comprising:

repeating the processing, identifying, and data structure creating steps for a plurality of sentences.

8. The method of claim 1 further comprising:

the processor providing a user interface (UI) through which a user reviews the associated concept for the sentence.

9. The method of claim 8 further comprising:

the processor associating the sentence with a different concept in response to user input through the UI.

10. The method of claim 1 further comprising:

the processor providing a user interface (UI) through which a user enters a sentence and an associated concept classification for the entered sentence;

the processor processing the entered sentence using the trained classifier; and

if the trained classifier concludes that the entered sentence is unclassified, the processor retraining the trained classifier with the entered sentence and its associated concept.

11. The method of claim 1 further comprising:

training a natural language generation (NLG) system based on the processed sentence to train the NLG system to produce natural language output from a data set so that the produced natural language output expresses the identified concept in a manner that stylistically resembles the processed sentence with respect to sentence composition and structure.

12. The method of claim 11 further comprising:

repeating the processing, identifying, and data structure creating steps for a plurality of sentences; and

the processor filtering a plurality of the processed sentences to select at least one of the processed sentences to use for training the NLG system.

13. The method of claim 1 wherein the processor comprises a plurality of processors that perform one or more different steps of the method.

14. The method of claim 1 wherein the processor comprises one processor that performs the method.

15. An applied artificial intelligence apparatus for natural language understanding, the apparatus comprising:

a processor configured to (1) train a classifier with a plurality of concept-labeled sentences so that the classifier is trained to distinguish between a plurality of concepts based on sentence composition and structure, (2) process a sentence using the trained classifier, (3) identify a concept for the sentence based on the processing, and (4) create a data structure that associates the sentence with the identified concept; and

a memory configured to store the created data structure; and

wherein the processor is further configured to train the classifier by, for each of a plurality of the concept-labeled sentences, (1) converting the concept-labeled sentence into a list of tokens, the tokens including (token, part-of-speech) pairs for a plurality of words in the sentence, (2) creating a set of permutations of the tokens of the token list for the sentence, wherein the permutations maintain an order for the tokens of the token list for the sentence, (3) generating a set of string match rules from the permutations, (4) comparing the string match rules for the sentence against all of the string match rules used by the trained classifier with respect to concepts other than the concept associated with the sentence, and (5) based on the comparing, discarding any string match rules that are used by the trained classifier with respect to concepts other than the concept associated with the sentence.

16. The apparatus of claim 15 wherein the processor is further configured to generate the string match rules by (1) removing tokens that are on a stoplist, and (2) inserting span operator tokens between non-sequential pairs of tokens in the permutations.

17. The apparatus of claim 15 wherein the processor is further configured to train the classifier by, for each of a plurality of the concept-labeled sentences, removing string match rules that are redundant with respect to concept classifying the concept-labeled sentences.

18. The apparatus of claim 17 wherein the processor is further configured to remove redundant string match rules by, for each of a plurality of pairs of string match rules for a concept, (1) processing the concept-labeled sentences using the pair of string match rules, and (2) identifying one of the string match rules in the pair as being redundant if the pair of string match rules produce hits on the same set of the processed concept-labeled sentences.

19. The apparatus of claim 18 wherein the processor is further configured to train the classifier by generating a classification data structure based on the string match rules.

20. The apparatus of claim 15 further comprising:

a natural language generation (NLG) system, wherein the NLG system is configured to be trained based on the processed sentence to produce natural language output from a data set so that the produced natural language output expresses the identified concept in a manner that stylistically resembles the processed sentence with respect to sentence composition and structure.

21. The apparatus of claim 20 wherein the processor is further configured to:

perform the process, identify, and data structure creation steps for a plurality of sentences; and

filter a plurality of the processed sentences to select at least one of the processed sentences to use for training the NLG system.

22. The apparatus of claim 15 wherein the processor comprises a plurality of processors.

23. The apparatus of claim 15 wherein the processor is further configured to train the classifier by generating a classification data structure based on the string match rules.

24. The apparatus of claim 23 wherein the classification data structure comprises a prefix tree data structure.

25. The apparatus of claim 15 wherein the processor is further configured to perform the process, identify, and data structure creation operations for a plurality of sentences.

26. The apparatus of claim 15 wherein the processor is further configured to provide a user interface (UI) configured for user review of the associated concept for the sentence.

27. The apparatus of claim 26 wherein the processor is further configured to associate the sentence with a different concept in response to user input through the UI.

28. The apparatus of claim 15 wherein the processor is further configured to:

provide a user interface (UI) that is configured for user entry of a sentence and an associated concept classification for the entered sentence;

process the entered sentence using the trained classifier; and

if the trained classifier concludes that the entered sentence is unclassified, retrain the trained classifier with the entered sentence and its associated concept.

29. A computer program product for applying artificial intelligence technology to natural language understanding, the computer program product comprising:

a plurality of processor-executable instructions that are resident on a non-transitory computer-readable storage medium, wherein the instructions upon execution are configured to cause a processor to:

train a classifier with a plurality of concept-labeled sentences so that the classifier is trained to distinguish between a plurality of concepts based on sentence composition and structure;

process a sentence using the trained classifier;

identify a concept for the sentence based on the processing; and

create a data structure that associates the sentence with the identified concept;

wherein the instructions are further configured, upon execution, to cause the processor to train the classifier by, for each of a plurality of the concept-labeled sentences, (1) converting the concept-labeled sentence into a list of tokens, the tokens including (token, part-of-speech) pairs for a plurality of words in the sentence, (2) creating a set of permutations of the tokens of the token list for the sentence, wherein the permutations maintain an order for the tokens of the token list for the sentence, (3) generating a set of string match rules from the permutations, (4) comparing the string match rules for the sentence against all of the string match rules used by the trained classifier with respect to concepts other than the concept associated with the sentence, and (5) based on the comparing, discarding any string match rules that are used by the trained classifier with respect to concepts other than the concept associated with the sentence.

30. The computer program product of claim 29 wherein the instructions are further configured, upon execution, to cause the processor to train the classifier by generating a classification data structure based on the string match rules.

31. The computer program product of claim 30 wherein the classification data structure comprises a prefix tree data structure.

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 →
SECURITY INTEREST Recorded Feb 24, 2020
From: NARRATIVE SCIENCE INC.
To: CIBC BANK USA
Reel/Frame 051904/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2020
From: SMATHERS, MICHAEL JUSTIN; PLATT, DANIEL JOSEPH; NICHOLS, NATHAN D.; LORINCE, JARED
To: NARRATIVE SCIENCE INC.
Reel/Frame 051623/0549 →
Continuity (1)
Provisional Application 62797787 · Jan 28, 2019
Cited By (15)
US 12,248,461 US 12,288,039 US 12,314,674 US 12,361,071 US 12,423,525 US 12,462,114 US 12,468,694 US 12,496,524 US 12,505,093 US 12,566,804 US 12,608,416 US 12,614,042 US 12,632,445 US 12,675,493 US 12,681,997