It's not very sexy, but I think you might find it easier and more robust just to use an NLP library.
I built something similar (albeit for a relatively limited database of recipes) for a hackathon a couple of weeks back. I didn't even use a proper NLP library, just some simple hand-rolled pattern-matching, and got pretty good results.
Good luck!