Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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");
share|improve this question

closed as not constructive by gnat, Bart van Ingen Schenau, GlenH7, Jim G., World Engineer May 24 '13 at 22:07

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

10  
1  
Come on @SK-logic, this was exactly what I wanted. Why didn't you answer the question buddy? :) –  Saeed Neamati Aug 26 '11 at 11:38
4  
my couple of links are too short for a decent answer, and I'm too lazy to expand it further. –  SK-logic Aug 26 '11 at 11:39
    
Your going to find this difficult to acomplish without some help from somebody with a greater understanding of the written language your trying to target. –  Ramhound Aug 26 '11 at 13:15
    
@Ramhound, do you have any experience of NLP? –  Saeed Neamati Aug 26 '11 at 14:53

2 Answers 2

Having had a look around myself in this department, I really like OpenNLP, which is now maintained by Apache.

Since OpenNLP is a Java library, you need to use these instructions with IKVM, and you can (quite readily) get OpenNLP working with .NET. You can then use the library directly in your C# code without having to have an additional compatibility layer (as I think getting some Python code to work with IronPython can be problematic).

SharpNLP was meant to be a .NET version, but it hasn't been updated since 2006.

share|improve this answer

Perhaps you could use a combination of NLTK (Natural Language Toolkit) and IronPython

NLTK is a leading platform for building Python programs to work with human language data. It provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning.

Thanks to a hands-on guide introducing programming fundamentals alongside topics in computational linguistics, NLTK is suitable for linguists, engineers, students, educators, researchers, and industry users alike. NLTK is available for Windows, Mac OS X, and Linux. Best of all, NLTK is a free, open source, community-driven project...

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.