Frage

Wir brauchen ein Inhaltsklassifizierungsmodul. Der Bayesian -Klassifizierer scheint das zu sein, wonach ich suche. Sollten wir Orange oder NLTK entscheiden?

War es hilfreich?

Lösung

Wie durch die Dokumentation belegt, ist die naive Bayes -Implementierung in jeder Bibliothek einfach zu bedienen. Warum also nicht Ihre Daten mit beiden ausführen und die Ergebnisse vergleichen?

Sowohl Orange als auch NLTK sind beide reife, stabile Bibliotheken (10+ Jahre in der Entwicklung für jede Bibliothek), die an großen Universitäten stammen. Sie haben einige gemeinsame Merkmale, die hauptsächlich Algorithmen für maschinelles Lernen haben. Darüber hinaus sind sie in Umfang, Zweck und Umsetzung ganz anders.

Orange ist Domain Agnostic-nicht auf eine bestimmte akademische Disziplin oder kommerzielle Domäne gerichtet, stattdessen wirbt sie als Full-Stack-Data Mining und ML-Plattform aus. Es liegt auf dem Werkzeug selbst und nicht die Anwendung dieser Tools in einer bestimmten Disziplin.

Zu den Funktionen gehören IO, der Datenanalysealgorithmus und eine Datenvisualisierungs -Leinwand.

NLTK hingegen begann und bleibt ein akademisches Projekt in einer Computer -Linguistikabteilung einer großen Universität. Die von Ihnen erwähnte Aufgabe (Klassifizierung des Dokumentinhalts) und Ihr Algorithmus der Wahl (naive Bayes'sche) sind im Kern der Funktionalität von NLTK ziemlich genau richtig. NLTK hat in der Tat ML/Data Mining -Algorithmen, aber nur, weil sie einen bestimmten Nutzen in der Computersprungingistik haben.

NLTK umfasst natürlich einige ML-Algorithmen, jedoch nur, weil sie in der Computersprachliese nützlich sind, zusammen mit Dokumentenparsern, Tokenisierern, Teil der Analysespezifikationen usw.-alle umfassen NLTK.

Vielleicht ist die naive Bayes -Implementierung in Orange genauso gut, ich würde immer noch die Implementierung von NLTK wählen, da sie für die jeweilige Aufgabe, die Sie erwähnt haben, eindeutig optimiert ist.

Es gibt zahlreiche Tutorials zu NLTK und insbesondere für seine naiven Bayes zur Verwendung der Inhaltsklassifizierung. Ein Blog -Beitrag von Jim Plus und ein anderer in Streamhacker.com, Zum Beispiel zeigen hervorragende Tutorials für die Verwendung von NLTKs naiven Bayes; Die zweite enthält eine Linien-für-Linie-Diskussion des Code, der für den Zugriff auf dieses Modul erforderlich ist. Die Autoren dieser beiden Beiträge berichten über gute Ergebnisse mit NLTK (92% in ersteren, 73% im letzteren).

Andere Tipps

Ich kenne Orange nicht, aber +1 für NLTK:

Ich habe die Klassifizierungstools in NLTK nacheinander verwendet, um Text und verwandte Meta -Daten zu klassifizieren. Bayesian ist der Standard, aber es gibt andere Alternativen wie maximale Entropie. Da Sie auch ein Toolkit sind, können Sie nach Belieben anpassen - z. B.. Erstellen Sie Ihre eigenen Funktionen (was ich für die Meta -Daten getan habe).

NLTK hat auch ein paar gute Bücher, von denen eines unter Creative Commons (sowie O'Reilly) erhältlich ist.

NLTK ist ein Toolkit, das ein Vier -Staats -Modell der natürlichen Sprachverarbeitung unterstützt:

  1. Tokenisierung: Charaktere als Wörter gruppieren. Dies reicht von trivialen Regex -Zügen bis hin zu Kontraktionen wie "Kann nicht" umgehen.
  2. Tagging. Dies ist die Anwendung von Teil der Speech-Tags auf die Token (z. B. "nn" für Substantiv "VBG" für Verb Gerund). Dies erfolgt normalerweise durch Training eines Modells (z. B. Hidden Markov) auf einem Trainingskorpus (dh große Liste von durch Hand gekennzeichneten Sätzen).
  3. Chunking/Parsen. Dies nimmt jeden markierten Satz und das Extrahieren von Merkmalen in einen Baum (z. B. Nomen -Phrasen). Dies kann nach einer handgeschriebenen Grammatik oder einer auf einem Korpus trainierten Grammatik erfolgen.
  4. Informationsextraktion. Dies durchquert den Baum und extrahiert die Daten. Hier würde Ihre spezifische orange = frucht gemacht.

NLTK unterstützt WordNet, ein riesiges semantisches Wörterbuch, das Wörter klassifiziert. Es gibt also 5 Substantivdefinitionen für Orange (Obst, Baum, Pigment, Farbe, Fluss in Südafrika). Jedes von diesen hat eine oder mehrere "Hypernympfade", die hierarchien von Klassifikationen sind. ZB Das erste Gefühl von 'Orange' hat zwei Wege:

  • orange/citrus/essible_fruit/frucht/reproduktiv_struktur/plant_organ/plant_part/natural_object/worle/Object/Physical_entity/Entity

und

  • orange/citrus/essible_fruit/produc/food/fest/materie/physikal_entität/Entität

Abhängig von Ihrer Anwendungsdomäne können Sie Orange als Frucht oder Lebensmittel oder eine Pflanzungssache identifizieren. Dann können Sie die Struktur der Sprechbaum verwenden, um mehr zu bestimmen (wer hat was für die Früchte usw. tat)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top