I'm writing a web application in which I need to analyze words (now just in English, but maybe in future in any language). I tried to write a framework to do the job, but it soon proved to be something really really hard. Finding stems, understanding part of speech, finding consonants, determining morphological patterns, etc. It's really getting harder with each new requirement.
Is there any framework out there (preferably compatible with .NET or PHP frameworks) for working with human languages (English for example)? Some common methods of such framework could be:
List<Synonym> synonyms = SynonymFinder.FindSynonyms("Help");
Stem stem = MorphologyAnalyzer.GetStem("Determining");
Pronunciation pronunciation = Phonetics.Transcribe("Speech");