2009-08-12 10 views
9

Il mio obiettivo è quello di analizzare alcuni corpus (twitter per il momento) per il contenuto emotivo. Proprio oggi mi sono reso conto che avrebbe avuto un po 'di senso cercare le parole staminali anziché avere una lista esauriente di parole emozionali. E così ho esplorato nltk.stem solo per rendermi conto che ci sono 4 diversi stemmer. Vorrei chiedere ai linguisti di stackoverflow se LancasterStemmer, PorterStemmer, RegexpStemmer, RSLPStemmer o WordNetStemmer è preferibilmente preferibilmente con qualche giustificazione.Quale stemmer di parole dovrei usare in nltk?

risposta

7

RSLP è per portugese. Immagino che tu voglia l'inglese. Regexp richiederebbe di sviluppare le proprie espressioni di derivazione, quindi penso che possa essere ignorato. WordnetStemmer richiede che tu conosca la parte del discorso per la parola, quindi per prima cosa dovresti fare il tagging pos per usarlo. Ho usato l'algoritmo di porter e abbastanza buono, ma l'algoritmo di lancaster è più recente, quindi potrebbe essere migliore. Potresti provare a utilizzare una combinazione di stemmer, in cui scegli la radice più corta di ciascun stemmer. In ogni caso, la linea di fondo è che PorterStemmer è una buona scelta predefinita.

9

Può essere un po 'diverso da quello che si sta chiedendo, ma la libreria Nodebox Lingustics contiene una funzione is_emotive() che sembra controllare le parole per vedere se sono iponimi ricorsivi di certe parole emotive. Da commonsense.py

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

Non uno stallo, ma un approccio interessante da verificare.