Avec la plupart de ces types d'applications, vous devrez générer une grande partie de votre propre code pour une tâche de classification statistique. Comme Lucka l'a suggéré, NLTK est l'outil parfait pour la manipulation du langage naturel en Python, à condition que votre objectif n'interfère pas avec la nature non commerciale de sa licence. Cependant, je suggérerais d'autres logiciels pour la modélisation. Je n'ai pas trouvé beaucoup de modèles d'apprentissage machine avancés puissants disponibles pour Python, je vais donc suggérer des binaires autonomes qui coopèrent facilement avec lui.
Vous pourriez être intéressé par le Toolkit for Advanced Discriminative Modeling , qui peut être facilement interfacé avec Python. Cela a été utilisé pour les tâches de classification dans divers domaines du traitement du langage naturel. Vous avez également un choix d'un certain nombre de modèles différents. Je suggère de commencer par la classification d'entropie maximale tant que vous êtes déjà familiarisé avec la mise en œuvre d'un classificateur Naive Bayes. Sinon, vous voudrez peut-être l'examiner et en coder un pour vraiment comprendre correctement la classification statistique en tant que tâche d'apprentissage automatique.
Les groupes de linguistique computationnelle de l'Université du Texas à Austin ont organisé des cours où la plupart des projets qui en sont issus ont utilisé ce formidable outil. Vous pouvez consulter la page du cours de Computational Linguistics II pour avoir une idée de la façon de le faire fonctionner et des applications précédentes qu'il a servies.
Un autre excellent outil qui fonctionne dans la même veine est Mallet . La différence entre Mallet est qu'il y a un peu plus de documentation et d'autres modèles disponibles, tels que les arbres de décision, et c'est en Java, ce qui, à mon avis, le rend un peu plus lent. Weka est une suite complète de différents modèles d'apprentissage automatique dans un gros package qui comprend des éléments graphiques, mais c'est vraiment principalement destiné à des fins pédagogiques, et ce n'est pas vraiment quelque chose que je mettrais en production.
Bonne chance dans votre tâche. La partie la plus difficile sera probablement la quantité d'ingénierie des connaissances requise au départ pour que vous puissiez classer le «groupe de départ» dont votre modèle apprendra. Cela doit être assez important, selon que vous faites une classification binaire (heureux vs triste) ou toute une gamme d'émotions (ce qui en demandera encore plus). Assurez-vous de conserver certaines de ces données d'ingénierie pour les tests, ou exécutez des tests décuplés ou supprimés-un pour vous assurer que vous faites du bon travail de prédiction avant de les publier. Et le plus important, amusez-vous! C'est la meilleure partie de la PNL et de l'IA, à mon avis.