Ich habe LingPipe verwendet - eine Suite von Java-Bibliotheken für die linguistische Analyse der menschlichen Sprache - für Text-Mining (und andere damit zusammenhängende) Aufgaben.
Es ist ein sehr gut dokumentierte Software-Paket, und die Website enthält mehrere Tutorials, die gründlich erklären, wie eine bestimmte Aufgabe mit LingPipe, wie named entity recognition zu tun. Es gibt auch eine Newsgroup, in der Sie Ihre Fragen zur Software (oder zu den NLP-bezogenen Aufgaben) stellen können und von den Autoren des Pakets eine schnelle Antwort erhalten. und natürlich eine blog.
Der Quellcode ist auch sehr einfach zu folgen und gut dokumentiert, was für mich immer ein großes Plus ist.
Wie für Machine Learning-Algorithmen gibt es viele, von Naïve Bayes bis Conditional Random Field. Auf der anderen Seite haben sie für Dictionary-Matching-Algorithmen eine ExactDicitonaryChunker, die eine Implementierung des Aho-Corasich-Algorithmus ist (ein sehr, sehr schneller Algorithmus für diese Aufgabe).
In der Summe, ich denke, es ist eines der besten NLP-Software-Paket für Java (Ich habe nicht jedes einzelne Paket verwendet, so dass ich nicht sagen kann, es ist das beste), und ich kann es definitiv empfehlen für die Aufgabe, die Sie zur Hand haben.
Ich habe eine ähnliche Frage über bei http://stackoverflow.com/questions/2293636/what-is-a-good-java-library-for-parts-of-speech -tagging – Glenn
Dank: P. Es wäre schön, einen dieser POS-Tagger mit einem breiten Framework zu verwenden, das alle IR-Anforderungen erfüllt, wenn ML-Methoden verwendet werden. Lingpipe ist sehr schön für Wörterbücher, aber es ist nicht frei für kommerzielle Tools. –