This invention relates generally to database queries and, more specifically, to a system and method for performing natural language searches for documents in a database using alternate search suggestions.
With the advent of natural language chatbots, such as SIRI and ALEXA, users are increasingly employing bots to complete routine tasks, such as playing music, checking the weather, etc. Natural language bots are typically used in the consumer space, and they are designed to work with search engines that perform searches based on natural language key words.
Natural language bots can also be useful in business-to-business (B2B) applications. However, B2B systems are driven by heavy-duty data that is powered by complex databases, and chatbots are not designed to interface with such databases. One cannot query such a database using natural language key words due to the variability, complexity, and inherent ambiguity in natural language utterances.
Accessing data in B2B database requires a highly-structured database query language, such as SQL. A typical database query will reference a database object (e.g., a database table), one or more subject fields corresponding to a database object, one or more conditions referencing database fields, and sort/order by criteria. There are no implicit fields, semantic ambiguity, or fuzzy terms in a database query (see description of implicit fields, semantic ambiguity, and fuzzy terms below).
The highly-structured and complex nature of database queries present a challenge for natural language bots. Natural language queries are relatively unstructured and highly variable. For example:
A natural language bot for a B2B application must be able to effectively translate a natural language query to a database query. Known natural language bots use rudimentary natural language processing to parse part of a sentence, which, when used as an interface to a B2B database, results in an incomplete translation of the natural language query to a database query. This leads to incorrect or suboptimal results.
Therefore, there is demand for a system that can effectively translate a natural language query to a database query in B2B applications. During translation, however, the system is sometimes unable to map one or more terms from the natural language query to the database query, which limits the accuracy of the translation and the effectiveness of the query. Therefore, there is a need for a system that can additionally provide alternate natural language input search suggestion(s) for the one or more unmapped terms to incorporate into the database query upon the user's acceptance of such suggestion(s).
The present disclosure describes a system, method, and computer program for performing natural language searches for documents in a database using alternate search suggestions. The method is performed by a computer system that includes servers, storage systems, networks, operating systems, and databases.
The present invention describes a system and method for providing alternate natural language search suggestions for documents in a document database. The system receives a natural language query for documents in a database and processes the natural language query to map language terms to terms for a database query as well as identify a document database object. The system identifies one or more terms in the natural language query that it is unable to map to terms for a database query. If the unmapped terms are in a keyword dictionary, the system determines that the unmapped terms are candidate document keyword terms and provides an alternate natural language input search suggestion that includes a search for instances of the document database object that includes the candidate document keyword terms. If the user accepts the alternate natural language input search suggestion, the system creates a database query that includes a keyword subquery with the candidate document keyword terms and resolves the user's natural language query using the database query.
In one embodiment, a method for performing natural language searches for documents in a database using alternate search suggestions comprises the following steps:
The present disclosure describes a system, method, and computer program for performing natural language searches for documents in a database using alternate search suggestions. The method is performed by a computer system that includes servers, storage systems, networks, operating systems, and databases (“the system”).
Example implementations of the methods are described in more detail with respect to
The system processes the natural language query to map natural language terms to terms for a database query, including mapping one or more natural language terms to one or more database metadata query terms and identifying a document database object that is the subject of the user's natural language query (step 120). In certain embodiments, the document database object corresponds to a document type. In certain embodiments, the system also identifies a database field and a database field value. Further details of how this is accomplished is set forth in U.S. patent application Ser. No. 16/781,940, filed on Feb. 20, 2020, entitled “System, Method, and Computer Program for Converting a Natural Language Query to a Structured Database Query,” which is incorporated by reference as if full disclosed herein.
The system identifies one or more terms in the user's natural language query that the system is unable to map to terms for a database query (step 130). In certain embodiments, the unmapped terms are terms that the system does not recognize in the processing step as corresponding to a database search term or a keyword search term. The Query Planner Module 330 (see
The system determines whether the terms are in a keyword dictionary (step 135). If not, the system resolves the query without the unmapped terms (step 140). If the system determines that the terms are in a keyword dictionary, the system determines that the unmapped terms are candidate document keyword terms (step 150). In certain embodiments, this is done by looking up the words in the user input in a dictionary of indexed document keywords. The system provides an alternate natural language input search suggestion that includes a search for instances of the document database object that includes the candidate document keyword terms (step 155).
As seen in the table below, the “missed terms” in the table are the unmapped terms that the system determines are candidate document keyword terms. The alternate search suggestion includes both the candidate keyword terms and the terms recognized from the processing step.
The system determines whether the user accepted an alternate search suggestion (step 160). If not, the system resolves the query without the unmapped terms (step 165). If the system determines that the user accepted the alternate natural language input search suggestion, the system creates a database query that includes a metadata subquery with database metadata terms and a document keyword subquery that includes the candidate document keyword search term(s) (step 170). The database metadata terms are the database fields and objects. So, a metadata query may include field-value parameters for the search.
The system resolves the user's natural language query using the database query by performing metadata and document keyword searches on the document database based on the metadata subquery and the document keyword subquery (step 180). Further details are described in U.S. patent application Ser. No. 17/556,870, filed on Dec. 20, 2021, entitled “System, Method, and Computer Program for Performing Natural Language Queries for Documents in a Database,” which is incorporated by reference as if fully disclosed herein. In certain embodiments, resolving a document keyword subquery comprises determining if there are cached keyword results.
In certain embodiments, mapping natural language terms to database metadata query terms includes mapping database fields and values. In certain embodiments, the processing step includes mapping natural language terms to both database metadata query terms and document keyword query terms. In the processing step, the system may recognize some keywords. However, there may be other keywords that the system does not recognize. It is the unrecognized keywords that are the unmapped terms.
In certain embodiments, if the user's natural language query is a nested query, the system determines the cutoff point between the main and nested object clauses. If the object mentioned is in the nested clause, the system does not proceed. If the object is in the main clause, the system performs the methods described herein.
The system determines whether the database object is referenced implicitly or explicitly in the user's query (step 230). For example, an explicit object reference may be “an Act of God contract,” where contract is an explicit reference to the “contracts” database object (i.e., the database table that is for contracts). An implicit object reference may be “an Act of God, ACV over $20K”. In this case, the user did not state that they were looking for a contract, but it is implied. In this case, the system would have a rule that if “ACV” (which is a database field for the “contracts” object) is mentioned and there is no explicit database object referenced, then it would default to assuming that “contracts” is the database object.
If the system determines that the database object is referenced implicitly, the system uses a first format for the alternate natural language input search suggestion in which the candidate document keywords follow the database object reference (e.g., “<object reference> containing <candidate document keyword terms>”) (step 240). If the system determines that the database object is referenced explicitly, the system identifies the index position of the database object reference in the user's natural language query (step 250).
The system determines whether the minimum start index for the candidate keyword terms is after the database object reference (step 260). If it is, then the system uses the first format for the alternate natural language input search suggestion as described in step 240. If it is not, the system uses a second format for the alternate natural language input search suggestion in which the candidate document keywords precede the database object reference (e.g., “<candidate document keyword terms> in <object reference>”) (step 270).
Example system 300 includes an NLU Interface 310, which enables a user to input a natural language query to the system. An NLU Engine 320 applies an NLU model 325 to a user's natural language query, and Query Planner Module 330 creates a query plan in accordance with the method of
The methods described with respect to
As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the above disclosure is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5960407 | Vivona | Sep 1999 | A |
6253194 | Johnson et al. | Jun 2001 | B1 |
6473084 | Phillips et al. | Oct 2002 | B1 |
7328177 | Lin-Hendel | Feb 2008 | B1 |
7574381 | Lin-Hendel | Aug 2009 | B1 |
7693762 | Dagum et al. | Apr 2010 | B1 |
7725358 | Brown et al. | May 2010 | B1 |
8498954 | Malov et al. | Jul 2013 | B2 |
8583675 | Haahr et al. | Nov 2013 | B1 |
8644842 | Arrasvuori et al. | Feb 2014 | B2 |
9098569 | Bhagat | Aug 2015 | B1 |
9495222 | Jackson | Nov 2016 | B1 |
9519907 | Carter, III et al. | Dec 2016 | B2 |
10102199 | Bailey et al. | Oct 2018 | B2 |
10289261 | Aggarwal et al. | May 2019 | B2 |
10521491 | Krappe et al. | Dec 2019 | B2 |
10621640 | Krappe et al. | Apr 2020 | B2 |
10783575 | Krappe et al. | Sep 2020 | B1 |
11061948 | Su et al. | Jul 2021 | B2 |
11232508 | Krappe | Jan 2022 | B2 |
11302314 | Jawale et al. | Apr 2022 | B1 |
11455373 | Krappe et al. | Sep 2022 | B2 |
11475053 | Das et al. | Oct 2022 | B1 |
11550786 | Naganathan et al. | Jan 2023 | B1 |
11573989 | Bailey et al. | Feb 2023 | B2 |
11604799 | Bigdelu et al. | Mar 2023 | B1 |
11615080 | Naganathan et al. | Mar 2023 | B1 |
11615089 | Naganathan et al. | Mar 2023 | B1 |
11625436 | Kang et al. | Apr 2023 | B2 |
11720563 | Khan et al. | Aug 2023 | B1 |
11720951 | Krappe | Aug 2023 | B2 |
20020040332 | Maari et al. | Apr 2002 | A1 |
20030033240 | Balson et al. | Feb 2003 | A1 |
20040158560 | Wen | Aug 2004 | A1 |
20060100912 | Kumar et al. | May 2006 | A1 |
20060136470 | Dettinger et al. | Jun 2006 | A1 |
20070016536 | Mirlas et al. | Jan 2007 | A1 |
20070039209 | White et al. | Feb 2007 | A1 |
20070087756 | Hoffberg | Apr 2007 | A1 |
20070156669 | Marchisio et al. | Jul 2007 | A1 |
20070162373 | Kongtcheu | Jul 2007 | A1 |
20070294157 | Singla et al. | Dec 2007 | A1 |
20080046355 | Lo | Feb 2008 | A1 |
20080091551 | Olheiser et al. | Apr 2008 | A1 |
20080177717 | Kumar | Jul 2008 | A1 |
20090024613 | Niu | Jan 2009 | A1 |
20090048937 | Contreras et al. | Feb 2009 | A1 |
20090222319 | Cao et al. | Sep 2009 | A1 |
20090234710 | Belgaied Hassine et al. | Sep 2009 | A1 |
20090299974 | Kataoka et al. | Dec 2009 | A1 |
20090327166 | Carter, III et al. | Dec 2009 | A1 |
20100179859 | Davis et al. | Jul 2010 | A1 |
20100262478 | Bamborough et al. | Oct 2010 | A1 |
20100306120 | Ciptawilangga | Dec 2010 | A1 |
20110083079 | Farrell et al. | Apr 2011 | A1 |
20110179075 | Kikuchi et al. | Jul 2011 | A1 |
20110246136 | Haratsch et al. | Oct 2011 | A1 |
20110246434 | Cheenath et al. | Oct 2011 | A1 |
20110246465 | Koister et al. | Oct 2011 | A1 |
20120173384 | Herrmann et al. | Jul 2012 | A1 |
20120221410 | Bennett et al. | Aug 2012 | A1 |
20120246035 | Cross et al. | Sep 2012 | A1 |
20120254092 | Malov et al. | Oct 2012 | A1 |
20120254143 | Varma et al. | Oct 2012 | A1 |
20120259801 | Ji et al. | Oct 2012 | A1 |
20130103391 | Millmore et al. | Apr 2013 | A1 |
20130132273 | Stiege et al. | May 2013 | A1 |
20130304757 | Gebhard | Nov 2013 | A1 |
20140025529 | Honeycutt et al. | Jan 2014 | A1 |
20140040275 | Dang | Feb 2014 | A1 |
20140136443 | Kinsey, II et al. | May 2014 | A1 |
20140149273 | Angell et al. | May 2014 | A1 |
20140181084 | Herron | Jun 2014 | A1 |
20140379755 | Kuriakose | Dec 2014 | A1 |
20150120526 | Peterffy et al. | Apr 2015 | A1 |
20150142704 | London | May 2015 | A1 |
20150193447 | Voinea et al. | Jul 2015 | A1 |
20150309705 | Keeler et al. | Oct 2015 | A1 |
20150310005 | Ryger | Oct 2015 | A1 |
20150310114 | Ryger | Oct 2015 | A1 |
20150310115 | Ryger | Oct 2015 | A1 |
20150348551 | Gruber et al. | Dec 2015 | A1 |
20150378156 | Kuehne | Dec 2015 | A1 |
20160034923 | Majumdar et al. | Feb 2016 | A1 |
20160179781 | Boss et al. | Jun 2016 | A1 |
20160360336 | Gross et al. | Dec 2016 | A1 |
20170004588 | Isaacson et al. | Jan 2017 | A1 |
20170068670 | Orr et al. | Mar 2017 | A1 |
20170124176 | Beznos et al. | May 2017 | A1 |
20170124655 | Crabtree et al. | May 2017 | A1 |
20170192991 | Touma et al. | Jul 2017 | A1 |
20170235732 | Williams et al. | Aug 2017 | A1 |
20170243107 | Jolley et al. | Aug 2017 | A1 |
20170351241 | Bowers et al. | Dec 2017 | A1 |
20170358024 | Mattingly et al. | Dec 2017 | A1 |
20180005208 | Aggarwal et al. | Jan 2018 | A1 |
20180096406 | Krappe et al. | Apr 2018 | A1 |
20180218032 | Wong et al. | Aug 2018 | A1 |
20180285595 | Jessen | Oct 2018 | A1 |
20180293640 | Krappe | Oct 2018 | A1 |
20180336247 | Ignatyev et al. | Nov 2018 | A1 |
20180349324 | Krappe et al. | Dec 2018 | A1 |
20180349377 | Verma et al. | Dec 2018 | A1 |
20190139434 | DeLuca | May 2019 | A1 |
20190171728 | Wakankar et al. | Jun 2019 | A1 |
20190258632 | Pal et al. | Aug 2019 | A1 |
20190354604 | Filonov et al. | Nov 2019 | A1 |
20190370388 | Li et al. | Dec 2019 | A1 |
20200004784 | Okura et al. | Jan 2020 | A1 |
20200019632 | Larchev et al. | Jan 2020 | A1 |
20200057946 | Singaraju et al. | Feb 2020 | A1 |
20200065354 | Krappe et al. | Feb 2020 | A1 |
20200293521 | Kussmaul et al. | Sep 2020 | A1 |
20200334241 | Muralidhar et al. | Oct 2020 | A1 |
20200410007 | Kawaguchi | Dec 2020 | A1 |
20210019309 | Yadav et al. | Jan 2021 | A1 |
20210049212 | Weber et al. | Feb 2021 | A1 |
20210064483 | Paramasivam et al. | Mar 2021 | A1 |
20210089587 | Gupta et al. | Mar 2021 | A1 |
20210090575 | Mahmood et al. | Mar 2021 | A1 |
20210107141 | Shrivastava et al. | Apr 2021 | A1 |
20210241301 | Christensen et al. | Aug 2021 | A1 |
20210374263 | Maycotte et al. | Dec 2021 | A1 |
20220035867 | Tambi et al. | Feb 2022 | A1 |
20220148071 | Krappe | May 2022 | A1 |
20220180060 | Jain et al. | Jun 2022 | A1 |
20220318223 | Ahluwalia et al. | Oct 2022 | A1 |
20230205996 | Atallah et al. | Jun 2023 | A1 |
Number | Date | Country |
---|---|---|
2742395 | Jan 2019 | CA |
1315705 | Mar 2001 | CN |
106910091 | Jun 2017 | CN |
2650776 | Oct 2013 | EP |
3073421 | Sep 2016 | EP |
2001290977 | Oct 2001 | JP |
2017146909 | Aug 2017 | JP |
0052605 | Sep 2000 | WO |
03003146 | Jan 2003 | WO |
2005006122 | Jan 2005 | WO |
2015106353 | Jul 2015 | WO |
Entry |
---|
Lenis, Alicia “Developing Product Configurators for Use in a Multinational Industrial Goods Company”, MIT, May 2013, pp. 1-87. |
Oracle: Automating the Quote-to-Cash Process: An Oracle White Paper, Jun. 2009, pp. 1-19, 2009. |
McCormick, M., “What is Quote to Cash?” Jan. 20, 2016, Blog, BlackCurve, pp. 1-8, 2016. |
Microsoft/APTTUS: Ultimate Guide to Quote-To-Cash for Microsoft Customers, Web Archives, Oct. 1, 2015, pp. 1-28. |
Morelli et al., “IBM SPSS Predictive Analytics: Optimizing Decisions at the point of impact”, pp. 1-59, 2010. |
Riggins, J., “Interview Quote-to-Cash Pioneers Apttus Links Leads to Revenue”, May 21, 2014, pp. 1-7. |
Spedicato, G., et al., Machine Learning Methods to Perform Pricing Optimization. A Comparison with Standard GLMs, Dec. 2018, pp. 1-21. |
Wainewright, Phil, “Salesforce, Microsoft quote-to-cash partner Apttus raises $88m”, Sep. 29, 2016, pp. 1-7. |
Wainewright, Phil, Apttus Applies Azure Machine Learning to Quote-to-Cash, Apr. 3, 2016, pp. 1-5. |
Wireless News: Banglalink Keeps Mobile Subscribers Using Predictive Analytics with KXEN, Close-Up Media, Inc., pp. 1-2, Oct. 5, 2013. |
Xie, Qitao et al., “Chatbot Application on Cryptocurrency”, 2019 IEEE Conference on Computational Intelligence for Financial Engineering & Economics, pp. 1-8, 2019. |
Karnstedt, Marcel et al., “Semantic Caching in Ontology-based Mediator Systems”, 2003, 16 pages. |
Patzold, Torsten “Controlling Instruments for Price Management: A Single Case Study on a B2B Company in the OEM Business Operating in the German Electrical/Electronics Industry”, Sep. 2018, pp. 1-339. |
Raviteja1452, infix_evaluation_using_two_stacks, Apr. 3, 2017, 4 pages. |