Bei den meisten dieser Arten von Anwendungen müssen Sie einen Großteil Ihres eigenen Codes für eine statistische Klassifizierungsaufgabe rollen. Wie Lucka vorgeschlagen hat, ist NLTK das perfekte Tool für die Manipulation natürlicher Sprachen in Python, solange Ihr Ziel den nichtkommerziellen Charakter seiner Lizenz nicht beeinträchtigt. Ich würde jedoch andere Softwarepakete für die Modellierung vorschlagen. Ich habe nicht viele stark fortgeschrittene Modelle für maschinelles Lernen gefunden, die für Python verfügbar sind, daher werde ich einige eigenständige Binärdateien vorschlagen, die problemlos damit zusammenarbeiten können.
Möglicherweise interessieren Sie sich für das Toolkit für erweiterte diskriminierende Modellierung , das problemlos mit Python verbunden werden kann. Dies wurde für Klassifizierungsaufgaben in verschiedenen Bereichen der Verarbeitung natürlicher Sprache verwendet. Sie haben auch eine Auswahl verschiedener Modelle. Ich würde vorschlagen, mit der Klassifizierung der maximalen Entropie zu beginnen, solange Sie bereits mit der Implementierung eines Naive Bayes-Klassifizierers vertraut sind. Wenn nicht, möchten Sie vielleicht einen Blick darauf werfen und einen Code erstellen, um ein gutes Verständnis der statistischen Klassifizierung als maschinelle Lernaufgabe zu erhalten.
Die Computerlinguistik-Gruppen der University of Texas in Austin haben Kurse abgehalten, in denen die meisten Projekte, die aus ihnen hervorgegangen sind, dieses großartige Tool verwendet haben. Auf der Kursseite für Computerlinguistik II können Sie sich ein Bild davon machen, wie es funktioniert und welche früheren Anwendungen es bedient hat.
Ein weiteres großartiges Werkzeug, das auf die gleiche Weise funktioniert, ist Mallet . Der Unterschied zwischen Mallet besteht darin, dass etwas mehr Dokumentation und einige weitere Modelle verfügbar sind, z. B. Entscheidungsbäume, und dass es sich um Java handelt, was es meiner Meinung nach etwas langsamer macht. Weka ist eine ganze Reihe verschiedener Modelle für maschinelles Lernen in einem großen Paket, das einige grafische Elemente enthält, aber eigentlich hauptsächlich für pädagogische Zwecke gedacht ist und nicht wirklich etwas ist, das ich in Produktion bringen würde.
Viel Glück bei Ihrer Aufgabe. Der wirklich schwierige Teil wird wahrscheinlich die Menge an Knowledge Engineering sein, die im Voraus erforderlich ist, damit Sie den „Startwert“ klassifizieren können, von dem Ihr Modell lernen wird. Es muss ziemlich groß sein, je nachdem, ob Sie eine binäre Klassifizierung (glücklich gegen traurig) oder eine ganze Reihe von Emotionen durchführen (was noch mehr erfordert). Stellen Sie sicher, dass Sie einige dieser technischen Daten zum Testen bereithalten, oder führen Sie zehnfache oder entfernte Tests durch, um sicherzustellen, dass Sie tatsächlich gute Vorhersagen treffen, bevor Sie sie veröffentlichen. Und vor allem viel Spaß! Dies ist meiner Meinung nach der beste Teil von NLP und AI.