IP Library Granted Patent US 11,755,569
Granted Patent B2
US 11,755,569 · App. 16/962,540 · Granted Sep 12, 2023

Method for processing a question in natural language

Inventor: Dennis Diefenbach (Saint Etienne, FR)
Assignees: UNIVERSITE JEAN MONNET SAINT ETIENNE; CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE (CNRS)
G06F16/243G06F16/248G06F16/24578G06F40/205G06F40/40
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,755,569
App. No.
16/962,540
Granted
Sep 12, 2023
Kind
B2
Abstract

The present invention is related to a method for processing a question in natural language received at a server ( 2 ), comprising performing by a processing unit ( 21 ) of the server ( 2 ) steps of: (a) for each n-gram of the question which is not a stop word, from at least one given knowledge base of entities linked by relations, identifying as initial entities and initial relations the entities and relations of the knowledge base matching said n-gram; (b) generating a set of possible queries for entities or relations of said given knowledge base, as a function of the initial entities and initial relations identified for all the n-gram of the question; (c) ranking each query of said set of possible queries as a function of at least one predetermined criterion, so as to identify a top-ranked possible query; (d) executing said top-ranked possible query, and returning the result entities or relations.

Claims (48)

1. A method for processing a question in natural language received at a server, comprising performing by a processing unit of the server steps of:

(a) for each n-gram of the question which is not a stop word, from at least one given knowledge base of entities linked by relations, identifying as initial entities and initial relations the entities and relations of the knowledge base matching said n-gram;

(b) generating a set of possible queries for entities or relations of said given knowledge base, as a function of the initial entities and initial relations identified for all the n-gram of the question;

(c) ranking each query of said set of possible queries as a function of at least one predetermined criterion, so as to identify a top-ranked possible query;

(d) executing said top-ranked possible query, and returning the result entities or relations;

wherein each query of said set of possible queries contains as parameter at least one of the initial entities and initial relations, and matches at least one predetermined pattern;

wherein each query of said set of possible queries contains up to K connected triples that can be created starting from the initial entities and initial relations;

wherein step (b) comprises computing the pairwise distance between every initial entity or initial relation, and recursively creating all connected triple patterns from the initial entities and initial relations with up to K triples as a function of the computed pairwise distances;

wherein computing the pairwise distance between every initial entity or initial relation comprises performing a breadth-first search in an undirected way from every initial entity only, using Header-Dictionary-Triple as an indexing structure.

2. A method for processing a question in natural language received at a server, comprising performing by a processing unit of the server steps of:

(a) for each n-gram of the question which is not a stop word, from at least one given knowledge base of entities linked by relations, identifying as initial entities and initial relations the entities and relations of the knowledge base matching said n-gram;

(b) generating a set of possible queries for entities or relations of said given knowledge base, as a function of the initial entities and initial relations identified for all the n-gram of the question;

(c) ranking each query of said set of possible queries as a function of at least one predetermined criterion, so as to identify a top-ranked possible query;

(d) executing said top-ranked possible query, and returning the result entities or relations;

wherein each query of said set of possible queries contains as parameter at least one of the initial entities and initial relations, and matches at least one predetermined pattern;

wherein each query of said set of possible queries contains up to K connected triples that can be created starting from the initial entities and initial relations;

wherein step (b) comprises computing the pairwise distance between every initial entity or initial relation, and recursively creating all connected triple patterns from the initial entities and initial relations with up to K triples as a function of the computed pairwise distances;

wherein recursively creating all connected triple patterns from the initial entities and initial relations with up to K triples as a function of the computed pairwise distances comprises, for each integer k lower than K, attempting to add each theoretical triple that can be created starting from the initial entities and initial relations to each created pattern of k triples.

3. A method for processing a question in natural language received at a server, comprising performing by a processing unit of the server steps of:

(a) for each n-gram of the question which is not a stop word, from at least one given knowledge base of entities linked by relations, identifying as initial entities and initial relations the entities and relations of the knowledge base matching said n-gram;

(b) generating a set of possible queries for entities or relations of said given knowledge base, as a function of the initial entities and initial relations identified for all the n-gram of the question;

(c) ranking each query of said set of possible queries as a function of at least one predetermined criterion, so as to identify a top-ranked possible query;

(d) executing said top-ranked possible query, and returning the result entities or relations;

wherein each query of said set of possible queries contains as parameter at least one of the initial entities and initial relations, and matches at least one predetermined pattern;

wherein each query of said set of possible queries contains up to K connected triples that can be created starting from the initial entities and initial relations;

wherein step (b) comprises computing the pairwise distance between every initial entity or initial relation, and recursively creating all connected triple patterns from the initial entities and initial relations with up to K triples as a function of the computed pairwise distances;

wherein a theoretical triple that can be created starting from the initial entities and initial relations can be added to a created pattern of k triples if said theoretical triple matches with every triple of said created triple pattern a possible combination of pairwise distances between their initial entities and/or initial relations.

4. A method for processing a question in natural language received at a server, comprising performing by a processing unit of the server steps of:

(a) for each n-gram of the question which is not a stop word, from at least one given knowledge base of entities linked by relations, identifying as initial entities and initial relations the entities and relations of the knowledge base matching said n-gram;

(b) generating a set of possible queries for entities or relations of said given knowledge base, as a function of the initial entities and initial relations identified for all the n-gram of the question;

(c) ranking each query of said set of possible queries as a function of at least one predetermined criterion, so as to identify a top-ranked possible query;

(d) executing said top-ranked possible query, and returning the result entities or relations;

wherein at least the following criteria are used in step (c):

a number of variables in the query;

a number of triples in the query;

a number of the words in the question which are covered by the query;

wherein at least the following criteria are further used in step (c):

an edit distance of a label in the knowledge base of each initial entity and initial relation used as parameter of the query and the word in the question it is associated to;

a sum of the relevance of the initial entities and initial relations used as parameters in the query.

5. The method according to claim 1 , wherein each query is a SPARQL query.

6. The method according to claim 1 , wherein each possible query is generated at step (b).

7. The method according to claim 1 , wherein K=2 and each query of said set of possible queries is a SPARQL query following one of the patterns:

SELECT/ASK var WHERE {s1 s2 s3.}

SELECT/ASK var WHERE {s1 s2 s3. s4 s5 s6.}.

8. The method according to claim 1 , wherein each possible query of said set gives a non-empty result.

9. The method according to claim 1 , wherein step (d) comprises the previous calculation of a confidence score for the top-ranked possible query, said top-ranked possible query being executed only if said confidence score is above a threshold.

10. The method according to claim 1 , wherein an entity or a relation of the knowledge base matches a n-gram if a name of said entity or relation and the n-gram have a common stem.

11. A non-transitory computer-readable medium comprising instruction which, when executed by a computer, cause the computer to carry out the method according to claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2020
From: DIEFENBACH, DENNIS
To: UNIVERSITE JEAN MONNET SAINT ETIENNE; CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE (CNRS)
Reel/Frame 053701/0994 →
Priority Claims (1)
EP 18305035 · Jan 18, 2018 · regional
Continuity (1)
Related Publication 20200409943A1 · Dec 31, 2020
Cited By (1)
US 12,393,575