Statistische Klassifizierung von Texten

32

Ich bin ein Programmierer ohne statistischen Hintergrund und suche derzeit nach verschiedenen Klassifizierungsmethoden für eine große Anzahl verschiedener Dokumente, die ich in vordefinierte Kategorien einteilen möchte. Ich habe über kNN, SVM und NN gelesen. Ich habe jedoch einige Probleme beim Einstieg. Welche Ressourcen empfehlen Sie? Ich kenne Einzelvariablen- und Mehrfachvariablen-Kalkül recht gut, daher sollte meine Mathematik stark genug sein. Ich besitze auch Bishops Buch über neuronale Netze, aber es hat sich als Einführung als etwas dicht erwiesen.

Emil H
quelle

Antworten:

19

Ich empfehle diese Bücher - sie sind auch bei Amazon sehr beliebt:

"Text Mining" von Weiss

"Text Mining Application Programming" von Konchady

Für Software empfehle ich RapidMiner (mit dem Text-Plugin), kostenlos und Open Source.

Dies ist mein "Text Mining-Prozess":

  • Sammeln Sie die Dokumente (normalerweise ein Web-Crawl)
    • [Probe wenn zu groß]
    • Zeitstempel
    • Markup entfernen
  • tokenize: Aufteilen in Zeichen, Wörter, n-Gramm oder Schiebefenster
  • stemming (aka lemmatization)
    • [Synonyme einschließen]
    • siehe Porter oder Schneeflockenalgorithmus Pronomen und Artikel sind in der Regel schlechte Prädiktoren
  • Stoppwörter entfernen
  • Merkmalsvektorisierung
    • binär (erscheint oder nicht)
    • Wortzahl
    • relative Häufigkeit: tf-idf
    • Informationsgewinn, Chi-Quadrat
    • [einen Mindestwert für die Aufnahme haben]
  • Gewichtung
    • Wörter am oberen Rand des Dokuments höher gewichten?

Dann können Sie mit der Klassifizierung beginnen. kNN, SVM oder Naive Bayes.

Sie können meine Serie von Text Mining-Videos hier sehen

Neil McGuigan
quelle
Das ist eine großartige Antwort! Ich werde mich um Ihre Buchvorschläge kümmern, und die Beschreibung Ihres Prozesses ist auch großartig. Mir gefallen besonders die Vorschläge für Merkmalsvektorisierungen.
Emil H
(Wenn jemand noch weiter auf den Vektorisierungsteil eingehen möchte, wäre das großartig.)
Emil H
11

Ein großartiger Einführungstext zu den von Ihnen genannten Themen ist Introduction to Information Retrieval ( Einführung in das Abrufen von Informationen) , der kostenlos online im Volltext verfügbar ist.

Einführung in die Informationsbeschaffung

Fabian Steeg
quelle
Ich habe das gestern bei der Arbeit gescannt. Es ist eine interessante Lektüre - ich wünschte, ich hätte mehr Zeit, um das Material darin aufzunehmen, aber ich musste das bekommen, was ich brauchte, und weitermachen.
Thomas Owens
einverstanden, das ist ein ausgezeichnetes Buch. Es erklärt ziemlich genau, wie Google funktioniert :)
Neil McGuigan
5

Das neuronale Netzwerk ist möglicherweise zu langsam für eine große Anzahl von Dokumenten (auch dies ist mittlerweile ziemlich veraltet).
Sie können auch Random Forest unter den Klassifikatoren überprüfen. Es ist ziemlich schnell, skaliert gut und benötigt keine komplexe Abstimmung.


quelle
+1 für zufällige Wälder. Auf jeden Fall ein guter Klassifikator, um den 1. zu versuchen, da sie nicht überanpassen.
Zach
4

Wenn Sie von der Programmierseite kommen, besteht eine Möglichkeit darin, das Natural Language Toolkit (NLTK) für Python zu verwenden. Es gibt ein frei verfügbares O'Reilly-Buch, das unter anderem eine weniger dichte und praktischere Einführung in die Erstellung von Klassifikatoren für Dokumente bietet.

Wenn Sie sich für statistische Aspekte interessieren, ist Roger Levys laufendes Buch Probabilistic Models in Study of Language möglicherweise nicht schlecht zu lesen. Es ist für Cogsci / Compsci-Absolventen geschrieben, die mit statistischen NLP-Techniken beginnen.

ars
quelle
3

Zum einen kann ich Ihnen das Buch Grundlagen der statistischen Verarbeitung natürlicher Sprache von Manning und Schütze empfehlen .

Die Methoden, die ich verwenden würde, sind Worthäufigkeitsverteilungen und Ngram-Sprachmodelle. Die erste Methode funktioniert sehr gut, wenn Sie ein Thema klassifizieren möchten und Ihre Themen spezifisch und fachkundig sind (mit Schlüsselwörtern). Die Ngram-Modellierung ist der beste Weg, um Schreibstile usw. zu klassifizieren.

Peter Smit
quelle
0

Naive Bayes ist normalerweise der Ausgangspunkt für die Klassifizierung von Texten. Hier ist ein Artikel von Dr. Dobbs über die Implementierung von Texten . Es ist auch oft der Endpunkt für die Textklassifizierung, da es so effizient und parallel ist, dass SpamAssassin und POPFile es verwenden.

Jaroslaw Bulatow
quelle