IP Library › Granted Patent US 11,809,419
Granted Patent B2
US 11,809,419 · App. 17/656,703 · Granted Nov 7, 2023

System to convert natural-language financial questions into database queries

Inventors: Lulu Cheng (Mountain View, CA); Meng Chen (Sunnyvale, CA); Jing Zhang (Poughkeepsie, NY); Wenting Cai (Mountain View, CA); Crystal Meng (Mountain View, CA)
Assignee: INTUIT, INC.
G06F16/24522G06F16/243G06F16/2457
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,809,419
App. No.
17/656,703
Granted
Nov 7, 2023
Kind
B2
Abstract

Systems of the present disclosure generate database queries for financial information requested in a natural-language form. A natural-language processing (NLP) financial aggregator receives a request for financial information and extracts NLP features of the request, including keywords. The NLP financial aggregator determines a type of the request based on the features and creates a query in a database-query language for the financial information based on the type and on the features. The NLP financial aggregator submits the query to a database where the financial information is stored. The software then receives the financial information from the database and sends the information to the user.

Claims (61)

1. A method for generating a database query corresponding to a natural-language request, the method comprising:

receiving a natural-language request for information;

determining a set of natural language processing (NLP) features characterizing the natural-language request;

splitting the natural language query into substrings based on one or more words known to be used to articulate time periods in natural language;

analyzing the substrings individually in order to determine a time period indicated in the natural language request;

generating a database query to retrieve the requested information based on the set of NLP features and the time period by:

generating an initial stub of the database query;

determining scores for a plurality of request types based on mappings between keywords in the set of NLP features and numerical amounts for the plurality of request types;

choosing a request type of the plurality of request types based on the scores, wherein the request type is associated with a query segment template and a query response template;

appending a first query segment to the initial stub of the database query based on the query segment template; and

appending a second query segment to the database query based on the time period;

submitting the database query to a database; and

responding to the natural-language request based on inserting a query response from the database into the query response template associated with the request type to create a natural language response.

2. The method of claim 1 , further comprising appending additional syntax to the database query to apply filtering criteria based on the set of NLP features.

3. The method of claim 1 , further comprising:

determining one or more categories related to the natural-language request; and

indicating the one or more categories in the database query.

4. The method of claim 3 , wherein the one or more categories are determined based on keyword-to-category mappings.

5. The method of claim 1 , wherein choosing the request type of the plurality of request types based on the scores comprises determining that a score of the scores that corresponds to the request type is a highest score of the scores.

6. The method of claim 1 , wherein the first query segment comprises a variable corresponding to a column of a table of the database.

7. A system, comprising:

one or more processors; and

a memory comprising instructions that, when executed by the one or more processors, cause the system to:

receive a natural-language request for information;

determine a set of natural language processing (NLP) features characterizing the natural-language request;

split the natural language query into substrings based on one or more words known to be used to articulate time periods in natural language;

analyze the substrings individually in order to determine a time period indicated in the natural language request;

generate a database query to retrieve the requested information based on the set of NLP features and the time period by:

generating an initial stub of the database query;

determining scores for a plurality of request types based on mappings between keywords in the set of NLP features and numerical amounts for the plurality of request types;

choosing a request type of the plurality of request types based on the scores, wherein the request type is associated with a query segment template and a query response template;

appending a first query segment to the initial stub of the database query based on the query segment template; and

appending a second query segment to the database query based on the time period;

submit the database query to a database; and

respond to the natural-language request based on inserting a query response from the database into the query response template associated with the request type to create a natural language response.

8. The system of claim 7 , wherein the instructions, when executed by the one or more processors, further cause the system to append additional syntax to the database query to apply filtering criteria based on the set of NLP features.

9. The system of claim 7 , wherein the instructions, when executed by the one or more processors, further cause the system to:

determine one or more categories related to the natural-language request; and

indicate the one or more categories in the database query.

10. The system of claim 9 , wherein the one or more categories are determined based on keyword-to-category mappings.

11. The system of claim 9 , wherein choosing the request type of the plurality of request types based on the scores comprises determining that a score of the scores that corresponds to the request type is a highest score of the scores.

12. The system of claim 9 , wherein the first query segment comprises a variable corresponding to a column of a table of the database.

13. A method for generating a database query corresponding to a natural-language request, the method comprising:

receiving, from a user, a natural-language request for information;

determining a set of natural language processing (NLP) features characterizing the natural-language request;

splitting the natural language query into substrings based on one or more words known to be used to articulate time periods in natural language;

analyzing the substrings individually in order to determine a time period indicated in the natural-language request;

generating a database query to retrieve the requested information based on the set of NLP features and the time period by:

generating an initial stub of the database query;

determining scores for a plurality of request types based on mappings between keywords in the set of NLP features and numerical amounts for the plurality of request types;

choosing a request type of the plurality of request types based on the scores, wherein the request type is associated with a query segment template and a query response template;

appending a first query segment to the initial stub of the database query based on the query segment template; and

appending a second query segment to the database query based on the time period;

submitting the database query to a database, wherein credentials of the user are used to access the database; and

responding to the natural-language request based on inserting a query response from the database into the query response template associated with the request type to create a natural language response, wherein the natural language response is provided to the user via a user interface.

14. The method of claim 13 , further comprising appending additional syntax to the database query to apply filtering criteria based on the set of NLP features.

15. The method of claim 13 , further comprising:

determining one or more categories related to the natural-language request; and

indicating the one or more categories in the database query.

16. The method of claim 15 , wherein the one or more categories are determined based on keyword-to-category mappings.

17. The method of claim 13 , wherein choosing the request type of the plurality of request types based on the scores comprises determining that a score of the scores that corresponds to the request type is a highest score of the scores.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2022
From: CHENG, LULU; CHEN, MENG; ZHANG, JING; CAI, WENTING; MENG, CRYSTAL
To: INTUIT, INC.
Reel/Frame 059411/0414 →
Continuity (2)
Continuation 15337324 · Oct 28, 2016
Related Publication 20220215023A1 · Jul 7, 2022