Was Sie durch Klassifizierung bedeutet ist sehr wichtig.
Klassifizierung ist eine überwachte Aufgabe, die zuvor einen vormarkierten Korpus erfordert. Wenn Sie von dem bereits beschrifteten Korpus weggehen, müssen Sie ein Modell erstellen, indem Sie mehrere Methoden und Ansätze verwenden, und schließlich können Sie einen unmarkierten Testkorpus unter Verwendung dieses Modells klassifizieren. Wenn dies der Fall ist, können Sie einen Klassifikator mit mehreren Klassen verwenden, bei dem es sich in der Regel um eine binäre Baumanwendung eines binären Klassifikators handelt. Stand der Technik Ansatz für eine solche Art von Aufgabe ist mit einem Zweig der maschinellen Lernen, SVM. Zwei der besten SVM-Klassifikatoren sind LibSVM und SVMlight. Diese sind open-source, einfach zu bedienen und enthalten Klassifizierungswerkzeuge für mehrere Klassen. Schließlich müssen Sie eine Literaturstudie durchführen, um zu verstehen, was Sie zusätzlich tun müssen, um gute Ergebnisse zu erzielen, da die Verwendung dieser Klassifikatoren alleine nicht ausreicht. Sie müssen Ihren Korpus manipulieren/vorverarbeiten, um informationstragende Teile (z. B. Unigramme) zu extrahieren und laute Teile auszuschließen. Im Allgemeinen haben Sie wahrscheinlich einen langen Weg vor sich, aber NLP ist ein sehr interessantes Thema und es lohnt sich, daran zu arbeiten.
Wenn Sie jedoch unter Clustering klassifizieren, wird das Problem komplizierter. Clustering ist ein nicht überwachte Aufgabe, was bedeutet, dass Sie dem Programm, das Sie verwenden, keine Informationen darüber geben werden, welches Beispiel zu welcher Gruppe/Thema/Klasse gehört. Es gibt auch wissenschaftliche Arbeiten zu hybriden, halb überwachten Ansätzen, die jedoch vom eigentlichen Zweck des Clusterproblems abweichen. Die Vorverarbeitung, die Sie verwenden müssen, während Sie Ihren Korpus manipulieren, hat eine ähnliche Natur mit dem, was Sie im Klassifizierungsproblem tun müssen, deshalb werde ich es nicht noch einmal erwähnen. Um Clustering durchzuführen, müssen Sie mehreren Vorgehensweisen folgen. Erstens können Sie die Methode LDA (Latent Dirichlet Allocation) verwenden, um die Dimensionalität (Anzahl der Dimensionen Ihres Feature-Space) Ihres Corpus zu reduzieren, was zur Effizienz und zum Informationsgewinn von Features beiträgt. Neben oder nach LDA können Sie Hierarchical Clustering oder ähnliche andere Methoden wie K-Means verwenden, um Ihr unmarkiertes Korpus zu clustern. Sie können Gensim oder Scikit-Learn als Open-Source-Tools für Clustering verwenden. Beide sind leistungsstarke, gut dokumentierte und einfach zu bedienende Tools.
In allen Fällen, machen Sie viel akademische Lektüre und versuchen Sie, die Theorie unter diesen Aufgaben und Problemen zu verstehen. Auf diese Weise können Sie innovative und effiziente Lösungen für Ihr spezifisches Problem entwickeln, denn die Probleme in NLP sind in der Regel korpusabhängig und Sie sind in der Regel auf sich allein gestellt, während Sie sich mit Ihrem spezifischen Problem befassen. Es ist sehr schwierig, generische und gebrauchsfertige Lösungen zu finden, und ich empfehle auch nicht, sich auf eine solche Option zu verlassen.
Ich kann Ihre Frage überantworten, sorry für die irrelevanten Teile.
Viel Glück =)
Vielen Dank, Shane, für Ihre Antwort.Ich werde auf jeden Fall die von Ihnen erwähnten Datensätze prüfen! Aber ja, ich arbeite nur an englischen Daten und allgemeinen Domänen von Nachrichtenartikeln (ähnlich denen von Alchemy und OpenCalais klassifiziert). Ich werde MALLET eine Chance geben. – MFARID
Great lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben! – Shane