Najlepsze algorytmiczne podejście do analizy nastrojów [zamknięty]

Moim wymogiem jest branie w artykułach informacyjnych i określenie, czy są one pozytywne lub negatywne na temat tematu. Biorę podejście opisane poniżej, ale nadal czytam NLP może być przydatne tutaj. Wszystko co przeczytałem wskazuje na to, że NLP odróżnia opinię od faktu, co moim zdaniem nie miałoby większego znaczenia w moim przypadku. Zastanawiam się nad dwiema rzeczami:

1) Dlaczego mój algorytm nie działa i / lub Jak mogę go poprawić? (Wiem, że sarkazm byłby prawdopodobnie pułapką, ale znowu nie widzę tego pojawiających się znacznie w rodzaju wiadomości, które będziemy otrzymywać)

2) jak NLP pomoże, dlaczego powinienem go używać?

Moje podejście algorytmiczne (mam słowniki słów pozytywnych, negatywnych i negacyjnych):

1) policz liczbę słów pozytywnych i negatywnych w artykule

2) Jeśli słowo negacja znajduje się z 2 lub 3 słowa pozytywnego lub negatywnego słowa, (tj: nie najlepszy) negować wynik.

3) pomnóż wyniki przez wagi, które zostały ręcznie przypisane do każdego słowo. (1.0 na początek)

4) Dodaj sumy za pozytywne i negatywne, aby uzyskać wynik sentymentu.

Author: bragboy, 2010-11-17

6 answers

Nie wydaje mi się, żeby było coś szczególnie źle dzięki algorytmowi jest to dość prosty i praktyczny sposób, ale jest wiele sytuacji, w których popełni błędy.

  1. Dwuznaczne słowa sentencji - " Ten produkt działa strasznie "VS."ten produkt jest strasznie dobry"

  2. Pominięte negacje - " nigdy bym za miliony lat nie powiedział, że ten produkt jest wart kupno "

  3. Cytowany / pośredni tekst - "Mój tata mówi, że ten produkt jest straszny, ale się nie zgadzam"

  4. Porównania - "Ten produkt jest tak przydatny jak dziura w głowie"

  5. Wszystko subtelne - "ten produkt jest brzydki, powolny i nie inspirujący, ale to jedyna rzecz na rynku, która wykonuje swoją pracę"

Używam recenzji produktów jako przykładów zamiast wiadomości, ale masz pomysł. Aktualności artykuły są prawdopodobnie trudniejsze, ponieważ często będą starały się pokazać obie strony argumentu i mają tendencję do używania określonego stylu, aby przekazać punkt. Przykład końcowy jest dość powszechny np. w utworach opiniotwórczych.

Jeśli chodzi o to, że NLP pomaga Ci w tym, disambiguation sensu słowa (lub nawet po prostu tagowanie części mowy ) może pomóc z (1), analizowanie składni może pomóc z zależnościami dalekiego zasięgu w (2), jakiś rodzaj chunking może pomóc z (3). To wszystko praca na poziomie badań, nie ma nic, co wiem o tym, że możesz bezpośrednio użyć. Problemy (4) i (5) są o wiele trudniejsze, rzucam ręce i poddaję się w tym momencie.

Trzymałbym się Twojego podejścia i uważnie przyjrzałbym się wyjściu, aby sprawdzić, czy robi to, co chcesz. Oczywiście, że następnie podnosi kwestię tego, co chcesz zrozumieć definicję "sentyment", aby być na pierwszym miejscu...

 33
Author: Stompchicken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-17 11:23:20

Moim ulubionym przykładem jest "po prostu przeczytaj książkę". nie zawiera wyraźnego słowa sentymentalnego i jest wysoce zależny od kontekstu. Jeśli pojawi się w recenzji filmu, oznacza to, że film jest do bani, to strata czasu, ale książka jest dobra. Jeśli jednak jest to Recenzja książki, dostarcza pozytywnego sentymentu.

A co z - "to najmniejszy [komórkowy] telefon na rynku". w latach 90. Dzisiaj może to wskazywać, że jest o wiele za mały.

I myślę, że to jest miejsce, aby zacząć, aby uzyskać złożoność analizy nastrojów: http://www.cs.cornell.edu/home/llee/opinion-mining-sentiment-analysis-survey.html (przez Lillian Lee z Cornell).

 5
Author: ScienceFriction,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-18 09:16:21

Może okazać się przydatny system OpinionFinder i opisujące go dokumenty. Jest on dostępny pod adresem http://www.cs.pitt.edu/mpqa / z innymi zasobami do analizy opinii.

Wykracza poza klasyfikację polaryzacji na poziomie dokumentu, ale staraj się znaleźć indywidualne opinie na poziomie zdania.

 2
Author: zdepablo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 15:43:14

Uważam, że najlepszą odpowiedzią na wszystkie pytania, o których wspomniałeś, jest przeczytanie książki pod tytułem "Analiza nastrojów i wydobywanie opinii" autorstwa profesora Bing Liu. Ta książka jest najlepsza z własnych w dziedzinie analizy nastrojów. to niesamowite. Wystarczy spojrzeć na to, a znajdziesz odpowiedź na wszystkie pytania "dlaczego" i "jak"!

 2
Author: Pedram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-04 21:19:44

Techniki uczenia maszynowego są prawdopodobnie lepsze.

Whitelaw, Garg i Argamon mają technikę, która osiąga 92% dokładności, używając techniki podobnej do Twojej do czynienia z negacją i maszynami wektorowymi do klasyfikacji tekstu.

 2
Author: Ken Bloom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-08 18:40:59

Dlaczego nie spróbujesz czegoś podobnego do tego, jak działa filtr antyspamowy SpamAsassin ? Nie ma naprawdę dużej różnicy między wydobyciem intencji i opinii.

 -1
Author: horsh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-16 22:53:41