2010-02-20 7 views
11

Ich möchte wissen, was ist das beste Open-Source-Java-basierte Framework für Text Mining, Botg Machine Learning und Wörterbuch Methoden zu verwenden.Java Open Source Text Mining Frameworks

Ich benutze Mallet, aber es gibt nicht so viele Dokumente und ich weiß nicht, ob es alle meine Anforderungen erfüllt.

+1

Ich habe eine ähnliche Frage über bei http://stackoverflow.com/questions/2293636/what-is-a-good-java-library-for-parts-of-speech -tagging – Glenn

+0

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. –

Antwort

4

Obwohl kein spezialisiertes Text-Mining-Framework, hat Weka eine Reihe von Klassifikatoren normalerweise in Text-Mining-Aufgaben wie verwendet: SVM, KNN, Multinomial NaiveBayes, unter anderem.

Es hat auch ein paar Filter zu wok mit Textdaten wie der StringToWordVector Filter, der TF/IDF-Transformation durchführen kann.

Weitere Informationen finden Sie auf der Website Weka wiki.

+0

Das Problem ist, dass ich Named Entity Recognition (NER) ausführen muss, und Weka bietet keine Funktionen zum Extrahieren von Features aus Wörtern, wie orthographische und morphologische Merkmale. Aber es wird cool, wenn ich Wekas ​​Methoden auf IR anwenden kann. –

+1

Ich denke, Wikipedia-Seite zu dem Thema hat ein paar Links zu einigen Paketen für NER. Ich bin auch auf das UIMA-Projekt von Apache gestoßen, vielleicht finden Sie es nützlich: http://incubator.apache.org/uima/index.html – Amro

+0

Ja, ich kenne UIMA. Aber es bietet keine ML-Methoden. Es ist eine perfekte Lösung für Systeme, die NER mit Dictionary-basierten Ansätzen machen. Ich weiß nicht, wie man ML-Methoden in UIMA integriert. –

2

Vielleicht werfen Sie einen Blick auf Java Open Source NLP and Text Mining tools.

+0

Ich habe diese Website schon gesehen, es ist wirklich nett, danke. Aber ich habe nach deiner Erfahrung gefragt. Ich habe schon einige von ihnen ausprobiert, aber ich weiß nicht, welcher der Beste ist. Oder auch wenn ich ein, zwei oder mehr Frameworks verwenden muss, um meine Aufgabe zu erfüllen. –

+0

@ukrania Tut mir leid, ich bin nicht die richtige Person. Viel Glück. –

2

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.

+1

@JG Danke für deinen Rat :). Ich mache mein System für die Forschung. Ich muss etwas bezahlen, selbst wenn ich ein kommerzielles Tool mache? Was sind die Einschränkungen? –

2

Sie bereits über GATE wissen: http://gate.ac.uk/

... aber das ist, was wir (bei meinem Job) für viele verschiedene Text-Mining-Probleme verwendet haben. Es ist ziemlich flexibel und offen.

+0

@PSpeed ​​Ja, ich weiß es schon. GATE ist UIMA sehr ähnlich. Eigentlich war GATE der erste, der auftauchte. Ich weiß jedoch nicht, ob es möglich ist, ML-Methoden mit GATE durchzuführen. Weißt du etwas darüber? –

+0

Ich denke, GATE ist auch flexibler ... wir fanden, dass UIMA sehr einschränkend ist. Ich habe keine spezifische Erfahrung mit ML, aber es schien einfach so, als ob jemand daran arbeiten würde, dann wäre GATE eine wahrscheinliche Plattform. Dort könnte ich anfangen, wenn ich so etwas schreiben würde ... aber ich habe nicht nach bestimmten Projekten gesucht. – PSpeed

+0

Sieht so aus, als ob es zumindest etwas Arbeit in ML und GATE gegeben hat: http://gate.ac.uk/gate/doc/plugins.html#Machine_Learning – PSpeed

1

Ich baute eine maximale Entropie namens Entity Recognizer für CoNLL Daten mit OpenNLP MaxEnt http://sourceforge.net/projects/maxent/ für einen Kurs einmal.

Erforderlich eine Menge von Daten Vorverarbeitung mit benutzerdefinierten Perl-Skripten erhalten alle Features extrahiert in nette saubere numerische Vektoren obwohl.

6

Ich denke ehrlich, dass die verschiedenen Antworten hier sehr gut sind. Um meine Anforderungen zu erfüllen, habe ich jedoch Apache UIMA mit ClearTK gewählt. Es unterstützt mehrere ML-Methoden und ich habe keine Lizenzprobleme. Außerdem kann ich Wrapper für andere ML-Methoden erstellen und nutze den Vorteil des UIMA-Frameworks, das sehr gut organisiert und schnell ist.

Vielen Dank für Ihre interessanten Antworten.

Mit besten Grüßen, Ukrania