2010-10-13 18 views
37

Czytałem wiele artykułów, które wyjaśniają potrzebę początkowego zestawu tekstów sklasyfikowanych jako "pozytywne" lub "negatywne", zanim system analizy sentymentu naprawdę zadziała.Bezinteresowna analiza nastrojów

Moje pytanie brzmi: czy ktoś próbował po prostu przeprowadzić elementarne sprawdzanie "pozytywnych" przymiotników i "przeczących" przymiotników, biorąc pod uwagę wszystkie proste negatory, aby nie klasyfikować "niezadowolonych" jako pozytywnych? Jeśli tak, to czy są jakieś artykuły, które mówią, dlaczego ta strategia nie jest realistyczna?

Odpowiedz

55

classic paper by Peter Turney (2002) wyjaśnia sposób zrobić bez nadzoru analiza uczuć (dodatni/klasyfikacja ujemna) używając tylko słowa doskonała i słaba jako zestaw nasion. Turney używa mutual information innych słów z tymi dwoma przymiotnikami, aby osiągnąć dokładność 74%.

+0

Ten otrzyma znacznik odpowiedzi. To bardzo interesujący artykuł. – Trindaz

15

Nie próbowałem robić niewytrenowanej analizy sentymentów, tak jak opisujesz, ale z góry mojej głowy powiedziałbym, że upraszczasz ten problem. Po prostu analiza przymiotników nie wystarczy, aby dobrze zrozumieć sentyment tekstu; na przykład, rozważ słowo "głupi". Sam możesz to sklasyfikować jako negatywny, ale jeśli przegląd produktu miałby mieć "... [x] produkt sprawia, że ​​ich konkurenci wyglądają głupio, nie myśląc o tej funkcji w pierwszej kolejności ...", wtedy nastroje na pewno byłyby pozytywne . Większy kontekst, w którym pojawiają się słowa, zdecydowanie ma znaczenie w czymś takim. Dlatego sam niewytrenowany worek słów (nie wspominając o jeszcze bardziej ograniczonej torebce przymiotników) nie wystarcza, aby odpowiednio rozwiązać ten problem.

Wstępnie sklasyfikowane dane ("dane treningowe") pomagają w tym, że problem przechodzi od próby określenia, czy tekst ma pozytywny lub negatywny sentyment od zera, do próby ustalenia, czy tekst jest bardziej podobny do pozytywnych tekstów lub negatywne teksty i klasyfikuj je w ten sposób. Innym ważnym punktem jest to, że analizy tekstowe, takie jak analiza sentymentów, często mają duży wpływ na różnice w charakterystyce tekstów w zależności od domeny. Właśnie dlatego posiadanie dobrego zestawu danych do treningu (to jest dokładnych danych z domeny, w której pracujesz, i jest nadzieja reprezentatywna dla tekstów, które będziesz musiał sklasyfikować) jest tak samo ważne jak budowanie dobrego system do klasyfikacji przy pomocy.

Niezupełnie artykuł, ale mam nadzieję, że pomaga.

+0

Dzięki za odpowiedź waffle! Doceniam wszystkie informacje, które mogę uzyskać na ten temat. – Trindaz

2

Próbowałem wyszukiwać słowa kluczowe za pomocą słownika afektu, aby przewidzieć etykietę sentencji na poziomie zdania. Biorąc pod uwagę ogólność słownictwa (niezwiązanego z domeną), wyniki wynosiły około 61%. Artykuł jest dostępny na mojej stronie głównej.

W nieco ulepszonej wersji uwzględniono przysłówki negacyjne. Cały system, nazwany EmoLib, jest dostępna dla Demo:

http://dtminredis.housing.salle.url.edu:8080/EmoLib/

Pozdrawiam,

+0

Dzięki za tę atrillę. Sprawdził się całkiem dobrze podczas testów, które przeprowadziłem. – Trindaz

2

Dawid

Nie jestem pewien, czy to pomaga, ale może warto zajrzeć do Jacob Perkins na blog post o korzystaniu NLTK do analizy nastrojów.

+2

Zajmuje się nadzorowaną klasyfikacją. – theharshest

0

Nie ma żadnych magicznych "skrótów" w analizie nastrojów, tak jak w przypadku każdego innego rodzaju analizy tekstu, która ma na celu odkrycie ukrytej "treści" fragmentu tekstu. Próba skrócenia sprawdzonych metod analizy tekstu poprzez uproszczone "przymiotnikowe" sprawdzanie lub podobne podejście prowadzi do niejednoznaczności, błędnej klasyfikacji itp., Które pod koniec dnia dają słabą dokładność odczytu sentymentów. Im bardziej lakoniczne źródło (np. Twitter), tym trudniejszy jest problem.

3

Papier Turneya (2002), o którym wspomina larsman, jest dobrym podstawowym. W nowszych badaniach, Li and He [2009] wprowadzono podejście z wykorzystaniem Latent Dirichlet Allocation (LDA) w celu wyszkolenia modelu, który może klasyfikować ogólny sentyment i temat artykułu jednocześnie w całkowicie nienadzorowany sposób. Dokładność, jaką osiągają, wynosi 84,6%.

+0

to wygląda obiecująco, będę go czytać i komentować ponownie –

+1

Czy faktycznie próbowałeś tego? Pracuję nad podobnym problemem, próbując przeprowadzić analizę sentymentów w archiwach wiadomości e-mail od Enron. – user1943079

+0

@ TrungHuynh Publikuję to prawie 4 lata po opublikowaniu odpowiedzi, ale link do gazety został teraz zmieniony. Czy możesz podać mi nazwę czasopisma, aby móc go wyszukać w Internecie? – Krishh

2

Próbowałem kilku metod analizy nastrojów do eksploracji opinii w opiniach. Najbardziej zadziałała mi metoda opisana w książce Liu: http://www.cs.uic.edu/~liub/WebMiningBook.html W tej książce Liu i inni porównali wiele strategii i omówili różne artykuły dotyczące analizy nastrojów i wydawania opinii.

Chociaż moim głównym celem było wyodrębnienie funkcji w opiniach, zaimplementowałem klasyfikator sentymentów do wykrywania pozytywnej i negatywnej klasyfikacji tych cech.

Użyłem NLTK do wstępnego przetwarzania (tokoryzacji, oznaczania POS) i tworzenia trygramów. Następnie zastosowałem klasyfikatory Bayesian w tym zestawieniu, aby porównać je z innymi strategiami, które Liu dokładnie lokalizował.

Jedna z metod polega na oznaczaniu jako POS/neg na każdym trygrramie wyrażającym tę informację i użyciu niektórych klasyfikatorów na tych danych. Inna metoda, którą próbowałem i działałam lepiej (około 85% dokładności w moim zbiorze danych), obliczał sumę wyników PMI (punktualne wzajemne informacje) dla każdego słowa w zdaniu i słów znakomity/słaby jako nasiona pos/klasa neg.

+0

Witam Luchux, pracuję nad podobną domeną, możesz podzielić się swoim zestawem danych, będzie to bardzo pomocne. – turing