2009-08-12 8 views
9

Mon but est d'analyser certains corpus (Twitter pour l'instant) pour le contenu émotionnel. Juste aujourd'hui j'ai réalisé qu'il serait judicieux de chercher des mots plutôt que d'avoir une liste exhaustive de termes émotionnels. Et donc j'ai exploré nltk.stem seulement pour réaliser qu'il y a 4 stemmers différents. Je voudrais demander aux linguistes de stackoverflow si LancasterStemmer, PorterStemmer, RegexpStemmer, RSLPStemmer, ou WordNetStemmer est de préférence avec une certaine justification.Quel mot stemmer devrais-je utiliser dans nltk?

Répondre

7

RSLP est pour le portugais. Je suppose que tu veux l'anglais. Regexp vous demanderait de développer vos propres expressions souches, donc je pense que cela peut aussi être ignoré. Le WordnetStemmer exige que vous connaissiez la partie du discours pour le mot, de sorte que vous devez d'abord faire un tag pour l'utiliser. J'ai utilisé l'algorithme de stemming de porteur et c'est plutôt bon, mais l'algorithme lancaster est plus récent, donc ça pourrait être mieux. Vous pouvez essayer d'utiliser une combinaison de stemmers, où vous choisissez la tige la plus courte de chaque stemmer. Quoi qu'il en soit, la ligne de fond est que PorterStemmer est un bon choix par défaut.

9

Cela peut être un peu différent de ce que vous demandez, mais la bibliothèque Nodebox Lingustics contient une fonction is_emotive() qui semble vérifier les mots pour voir s'ils sont des hyponymes récursifs de certains mots émotionnels. De commonsense.py

ekman = ["anger", "disgust", "fear", "joy", "sadness", "surprise"] 
    other = ["emotion", "feeling", "expression"] 

Pas égrappoir, mais une approche intéressante de vérifier.

Questions connexes