Hi, I was wondering if there is anything in C++ that deals with sentence matching and scoring, without building with counting string locations. I need to develop a post-processor for the Sphinx 4 speech recognizer to control a robot.
Here is an example problem....
Speech input: "Please walk ten feet to your right."
Recognizer generated hypothesis: "Walk ten feet two right."
In this example the machine should ask for clarification, but it may be possible to extrapolate the meaning by ignoring the omission of "please" and "your", correctly comprehending the hetero-graph "two, to" and immediately execute the intended command.
I could use if string == [exact match] but if it does not match or is ambiguous, the condition must be dealt with.
If there is nothing in C++, is there anything out there already written for this kind of problem?
Why not just check the word used before 'to' and check if it's another number. For example, if the last word said was 'hundred' or 'twenty' then you would want 102 or 22 respectively. However, if the last word is 'feet' or 'meters' then obviously it is not being used as a number.
There are C++ toolkits in the list, but I have to admit that I've defected to Python and the NLTK, as there's a good book about it. But you can call Python from C++ easily enough.
Andy
PS This is a new interest for me, which is why I needed a book. I'm just working my way through the book at this time: http://www.nltk.org/book
andywestken nailed it. I should have googled natural language ...
I have only time to learn the C++, C# and Java group, and I would prefer to keep the code as simple as possible. I already have to send the basic hypothesis from the Java recognizer to the C++ program. I would have kept it all Java but Java is too slow for extensive searching in a machine with limited processing resources.
In other words, it would not be feasible to mobilize IBM's Watson with feet.