2009-08-12 13 views
9

Mi objetivo es analizar algunos corpus (twitter por el momento) para contenido emocional. Justo hoy me di cuenta de que tendría sentido buscar tallos de palabras en lugar de tener una lista exhaustiva de raíces de palabras emocionales. Y entonces he estado explorando nltk.stem solo para darme cuenta de que hay 4 diferentes stemmers. Me gustaría preguntar a los lingüistas de stackoverflow si LancasterStemmer, PorterStemmer, RegexpStemmer, RSLPStemmer o WordNetStemmer son los mejores, preferiblemente con alguna justificación.¿Qué palabra lectora debo usar en nltk?

Respuesta

7

RSLP es para portugués. Supongo que quieres inglés. Regexp requeriría que desarrolles tus propias expresiones derivadas, por lo que creo que también se pueden ignorar. El WordnetStemmer requiere que conozca la parte del discurso de la palabra, por lo que tendría que hacer el etiquetado pos primero para poder usarlo. He usado el algoritmo de generación de porter y es bastante bueno, pero el algoritmo de lancaster es más nuevo, por lo que podría ser mejor. Es posible que desee probar el uso de una combinación de stemmers, donde elige el tallo más corto de cada tallo. De todos modos, la conclusión es que PorterStemmer es una buena opción predeterminada.

9

Puede ser un poco diferente de lo que está preguntando, pero la biblioteca de Nodebox Lingustics contiene una función is_emotive() que parece verificar las palabras para ver si son hipónimos recíprocos de ciertas palabras emocionales. De commonsense.py

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

No es una lectora de pelusas, pero es un enfoque interesante para verificar.