2009-08-12 17 views
9

Moim celem jest przeanalizowanie jakiegoś korpusu (twittera na teraz) pod kątem zawartości emocjonalnej. Właśnie dziś zdałem sobie sprawę, że wyszukiwanie sensu słów byłoby sensowne, w przeciwieństwie do wyczerpującej listy wywodzących się z emocji. I tak odkrywam nltk.stem tylko po to, aby zdać sobie sprawę, że istnieją 4 różne stemplery. Chciałbym zapytać lingwistów stackoverflow, czy LancasterStemmer, PorterStemmer, RegexpStemmer, RSLPStemmer, czy WordNetStemmer najlepiej jest z pewnym uzasadnieniem.Które słowo stemmer powinienem użyć w Nltk?

Odpowiedz

7

RSLP jest dla portugalskiego. Zgaduję, że chcesz angielski. Regexp wymagałby rozwinięcia własnych wyrażeń pomocniczych, więc myślę, że można to również zignorować. WordnetStemmer wymaga, abyś znał część mowy dla słowa, więc musisz najpierw zrobić tagowanie POS, aby go użyć. Użyłem algorytmu wywoływania portera i jest on całkiem niezły, ale algorytm lancaster jest nowszy, więc może być lepszy. Możesz spróbować użyć kombinacji łodyg, w której wybierzesz najkrótsze łodygi z każdego łodygi. W każdym razie najważniejsze jest to, że PorterStemmer jest dobrym wyborem domyślnym.

9

Może to być nieco inne, niż pytasz, ale biblioteka Nodebox Lingustics zawiera funkcję is_emotive(), która wydaje się sprawdzać słowa, aby sprawdzić, czy są rekurencyjnymi hiponimami niektórych emocjonalnych słów. Od commonsense.py

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

Nie łodygi, ale ciekawe podejście do wymeldowania.

Powiązane problemy