1

I am pretty newbie in the NLP area and apologize that my question may be silly or incorrect. I look forward for any assistance that can give me the motion vector to the right direction.

Nowadays I am working on my thesis and there is an important part of it — natural language query parser. Previously I had some experience with search engine algorithms. But now I want my system to "understand" some types of queries, and be able to convert it, roughly speaking, into database query language to perform structured search. For example for the query "my friends who live in Russia" the system simply should look in the table "people" and select who have "country = Russia".

I am clearly understand that the structured search is not as simple NLP-problem as, for example, spam filtering, but there are plenty of such systems born nowadays: Siri, Google Now, Facebook Graph Search. They are able to "understand" the query and not just give the ranked result list (like classic search engines do) but proper presentation for the ruested type of information. I was interested in how they work inside, but could not find enough information.

I would appreciate for any information, any references and books that could help me in my researching of these systems and progress in my thesis. Preferably those can be applied in practice, not Ministry of Defence closed developments :)

English is not my native language, sorry for mistakes, I hope you understand my issues.

vas3k
  • 198
  • 1
  • 2
  • 10

1 Answers1

2

Your question is overly broad. If you want to get a useful answer you'll have to be a lot more specific.


Here's an idea: remove any filler words from the query to get the keywords, and then analyze the keywords to determine their semantic meaning. For example:

my friends who live in Russia

Removing filler words:

friends live Russia

Analyze (using synonyms, semantics and word lists):

friends -> people,
live -> location,
Russia -> country

Then construct query.

Daniel A.A. Pelsmaeker
  • 47,471
  • 20
  • 111
  • 157
  • Thanks for your answer. I know that my question is broad, sorry, but I also do not expect concrete answers, just movement vector. With this example I thinked in the same direction and just would like to know more about the methods and algorythms usable on the "analyze" stage. "Synonyms, semantics and word lists" as you say. – vas3k Mar 18 '13 at 12:34
  • @vas3k That's the hard part. A list of country names can help you find out if a noun is a country or not. Synonyms, such as friends-people can simplify the rest of the analysis. Then you have to find out what the user wants by looking at the verbs (i.e. live). That's all I can tell you. – Daniel A.A. Pelsmaeker Mar 18 '13 at 12:46
  • @Virtlink Fortunately, there are [several open-source tools that have already been developed](http://stackoverflow.com/questions/6689344/analysing-meaning-of-sentences/40732225#40732225) for this purpose, and they can make this task much easier. – Anderson Green Nov 22 '16 at 04:52