I am working on a project where I would like to achieve a sense of natural language understanding. However, I am going to start small and would like to train it on specific queries.
So for example, starting I might tell it:
songs.
Then if it sees a sentence like "Kanye Wests songs" it can match against that.
BUT then I would like to give it some extra sentences that could mean the same thing so that it eventually learns to be able to predict unknown sentences into a set that I have trained it on.
So I might add the sentence: "Songs by
And of course, it would be a database of names it can match against.
I came across a neat website, Wit.ai that does something like I talk about. However, they resolve their matches to an intent, where I would like to match it to a simplified query or BETTER a database like a query (like facebook graph search).
I understand a context-free grammar would work well for this (anything else?). But what are good methods to train several CFG that I say have a similar meaning and then when it sees unknown sentences it can try and predict?
Any thoughts would be great.
Basically, I would like to be able to take a natural language sentence and convert it to some form that can be run better understood to my system and presented to the user in a nice way.