Avec la plupart de ces types d'applications, vous devrez développer 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, tant 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 solides modèles d'apprentissage automatique avancés disponibles pour Python, je vais donc suggérer quelques binaires autonomes qui coopèrent facilement avec lui.
Vous pourriez être intéressé par La boîte à outils pour la modélisation discriminative avancée qui peut être facilement interfacé avec Python. Il a été utilisé pour des tâches de classification dans divers domaines du traitement du langage naturel. Vous avez également le choix entre un certain nombre de modèles différents. Je vous suggère de commencer par la classification par entropie maximale si vous êtes déjà familiarisé avec la mise en œuvre d'un classificateur Naive Bayes. Si ce n'est pas le cas, vous pouvez vous pencher sur la question et en coder un afin d'acquérir une bonne compréhension de la classification statistique en tant que tâche d'apprentissage automatique.
Les groupes de linguistique informatique de l'université du Texas à Austin ont organisé des cours où la plupart des projets qui en sont issus ont utilisé cet outil formidable. Vous pouvez consulter la page du cours pour Linguistique informatique II pour avoir une idée de la manière de le faire fonctionner et des applications précédentes auxquelles il a servi.
Un autre excellent outil qui fonctionne dans le même esprit est le suivant Maillet . La différence avec Mallet est qu'il y a un peu plus de documentation et quelques modèles supplémentaires disponibles, comme les arbres de décision, et qu'il 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 regroupés dans un seul et même paquet qui comprend quelques éléments graphiques, mais il est surtout destiné à des fins pédagogiques et 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 de la connaissance requise au départ pour classer le "jeu de graines" à partir duquel votre modèle va apprendre. Elle doit être assez importante, selon que vous faites une classification binaire (heureux vs triste) ou une gamme complète d'émotions (ce qui nécessitera encore plus). Veillez à conserver certaines de ces données pour les tester, ou effectuez des tests de décuplement ou de suppression pour vous assurer que vous faites un bon travail de prédiction avant de le diffuser. Et surtout, amusez-vous bien ! C'est la meilleure partie de la PNL et de l'IA, à mon avis.