Politechnika Warszawska Rok akademicki 2013/2014 Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki PRACA DYPLOMOWA MAGISTERSKA Maciej Pieńkosz Wykrywanie emocji w tekście z wykorzystaniem wyszukiwarki internetowej Opiekun pracy: dr inż. Dominik Ryżko Ocena pracy: .................. .............................. Podpis Przewodniczącego Komisji Egzaminu Dyplomowego Kierunek: Informatyka Specjalność: Inżynieria Systemów Informatycznych Data urodzenia: 1989.05.09 Data rozpoczęcia studiów: 2012.02.20 Życiorys Urodziłem się 05.09.1989 r. w Warszawie. Tutaj ukończyłem szkołę podstawo- wą oraz gimnazjum, a także XIV Liceum Ogólnokształcące im. Stanisława Staszica. W 2008 roku rozpocząłem naukę na wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej na kierunku Informatyka. W lutym 2012 roku uzyskałem tytułinżynierawspecjalnościSystemyInformacyjno-Decyzyjne.Tematemmojejpra- cy inżynierskiej były wielokryterialne metody rutingu z ograniczeniami dla Internetu Przyszłości.JeszczewtymsamymrokurozpocząłemstudiaIIstopnianatymsamym wydziale na specjalności Inżynieria Systemów Informatycznych. .................................... Podpis studenta EGZAMIN DYPLOMOWY Złożył egzamin dyplomowy w dniu .............................................. Z wynikiem ..................................................................... Ogólny wynik studiów ........................................................... Dodatkowe wnioski i uwagi Komisji .............................................. .................................................................................. .................................................................................. Streszczenie Tytuł: Wykrywanie emocji w tekście z wykorzystaniem wyszukiwarki internetowej Tematem niniejszej pracy jest zagadnienie wykrywanie emocji w tekstach w języ- kuangielskim.Zaproponowanokilkawariantówalgorytmurozwiązaniaproblemu,ko- rzystających z wyszukiwarki internetowej. Poszczególne wersje różniły się sposobem wyznaczania istotnych wyrażeń z tekstu, metodą obliczania oceny emocji na pod- stawie uzyskanych liczby trafień i zastosowanymi operatorami wyszukiwania. Przy implementacji algorytmu wykorzystano różne techniki przetwarzania języka natu- ralnego (segmentację, oznaczanie części mowy, analizę składniową) oraz popularne narzędzia programistyczne ułatwiające obróbkę tekstu (NLTK, biblioteki z Uniwer- sytetu Stanford). Skuteczność poszczególnych wersji algorytmów została sprawdzona nazbiorzeocenionychprzezczłowiekanagłówkówpochodzącychzkonkursuSemEval 2007. Słowakluczowe:wykrywanieemocji,przetwarzaniejęzykanaturalnego,wyszukiwarki internetowe Abstract Title: Detecting emotions in text using web search engine The subject of the thesis is a problem of detecting emotions from texts in English language. Several variants of an algorithm for solving the problem using web search engine are proposed. Particular versions differ by the way of extracting essential phrases from the text, method of calculating affective score based on the returned hit counts and used search operators. In the implementation of the algorithm the various techniques (tokenization, Part-of-Speech tagging, semantic parsing), as well as the popular programming tools (NLTK, Stanford University tools) of natural language processing have been used. The efficiency of particular variants of method has been examined on manually annotated headlines dataset from SemEval 2007 workshop. Key words: emotion detection, natural language processing, web search engines Spis treści 1 Wstęp 3 2 Przetwarzanie języka naturalnego 5 2.1 Poziomy opisu języka . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Morfologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 Składnia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.3 Semantyka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.4 Pragmatyka . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Trudności w przetwarzaniu języka naturalnego . . . . . . . . . . . . . 7 2.3 Podejście symboliczne i statystyczne . . . . . . . . . . . . . . . . . . 8 2.4 Główne zagadnienia NLP . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.1 Stemming i lematyzacja . . . . . . . . . . . . . . . . . . . . . 10 2.4.2 Segmentacja tekstu . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.3 Oznaczanie części mowy . . . . . . . . . . . . . . . . . . . . . 11 2.4.4 Pozostałe zagadnienia . . . . . . . . . . . . . . . . . . . . . . 13 3 Problem wykrywania emocji w tekście 15 3.1 Analiza wydźwięku . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.1 Algorytm Turneya . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Modele Emocji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2.1 Modele kategorialne . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2.2 Modele przestrzenne . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.3 Model OCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 Stosowane podejścia . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.4 Zasoby leksykalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4 Proponowana metoda rozwiązywania 25 4.1 Koncepcja rozwiązania . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1 SPIS TREŚCI 4.2 Przykład działania algorytmu . . . . . . . . . . . . . . . . . . . . . . 28 4.3 Modyfikacje algorytmu . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3.1 Użycie unigramów . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3.2 Użycie bigramów . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3.3 Użycie wielu synonimów emocji . . . . . . . . . . . . . . . . . 30 4.3.4 Uwzględnienie zależności składniowych wyższego rzędu . . . . 31 4.3.5 Użycie innych operatorów wyszukiwania . . . . . . . . . . . . 34 4.3.6 Zastosowanie funkcji maksimum . . . . . . . . . . . . . . . . . 34 4.3.7 Zastosowanie różnych miar podobieństwa . . . . . . . . . . . . 34 4.4 Budowa afektywnego słownika . . . . . . . . . . . . . . . . . . . . . . 36 5 Opis implementacji 37 5.1 Implementacja algorytmu wykrywania emocji . . . . . . . . . . . . . 37 5.2 Zbiór danych testowych . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3 Przetwarzanie wstępne . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.4 Pozyskiwanie wyników z wyszukiwarki internetowej . . . . . . . . . . 42 5.5 Oszacowanie wielkości sieci . . . . . . . . . . . . . . . . . . . . . . . . 44 6 Przeprowadzone badania i wyniki eksperymentów 46 6.1 Opis badań . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.2 Stosowane miary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.2.1 Miara kosinusowa . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.2.2 Współczynnik korelacji Pearsona . . . . . . . . . . . . . . . . 47 6.2.3 Dokładność, precyzja, kompletność . . . . . . . . . . . . . . . 48 6.3 Wyniki eksperymentów . . . . . . . . . . . . . . . . . . . . . . . . . . 48 6.3.1 Algorytm 1 – wersja podstawowa . . . . . . . . . . . . . . . . 49 6.3.2 Algorytm 2 – wykorzystanie unigramów . . . . . . . . . . . . 50 6.3.3 Algorytm 3 – wykorzystanie bigramów . . . . . . . . . . . . . 51 6.3.4 Algorytm 4 – wykorzystanie unigramów i synonimów emocji . 52 6.3.5 Algorytm 5 – wykorzystanie bigramów i synonimów emocji . . 53 6.3.6 Algorytm 6 – wykorzystanie wyrażeń uzyskanych w wyniku analizy składniowej oraz synonimów emocji . . . . . . . . . . . 54 6.4 Analiza wyników . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7 Podsumowanie 58 Bibliografia 60 2 Rozdział 1 Wstęp Umiejętnośćrozpoznawania,interpretowaniaiwyrażaniaemocjipełnibardzoważ- ną rolę w życiu ludzi. Zdolność do rozumienia stanu wewnętrznego drugiej osoby pozwala na lepszą, skuteczniejszą komunikację, umożliwia szybsze zorientowanie się w oczekiwaniach i potrzebach innych oraz pozwala na szybsze wykrycie zagrożenia. W obecnych czasach coraz większą rolę w naszym życiu pełnią komputery, które są coraz bardziej zaawansowane technicznie i mają coraz większe możliwości. W związ- ku z tym pojawia się potrzeba, by interakcja z nimi również odbywała się w bardziej naturalny, ludzki sposób. Niezbędne jest, by komputery potrafiły rozpoznawać i ana- lizowaćemocjeorazbyuwzględniałyjewswoimdziałaniu.Dlategowostatnichlatach prężnie rozwija się dziedzina nauki zwana affective computing, zajmująca się bada- niem i tworzeniem urządzeń i automatycznych systemów potrafiących rozpoznawać, interpretować i przetwarzać emocje. Informacja o odczuciach może mieć różne pochodzenie – można odczytać ją z wyrazu twarzy, gestów, mogą być również zawarte w tekście. Ze względu na rozwój Internetuigwałtownywzrostilościdanychwnimprzechowywanych,zwłaszczaostat- nie z wymienionych źródeł jest szczególnie godne uwagi. Dzięki dostępności tak dużej ilości informacji, zdolność oceny emocji ma o wiele więcej praktycznych zastosowań niż kiedykolwiek. Przedsiębiorcysąskłonniwydaćdużopieniędzy,żebydowiedziećsięonastawieniu ludzi do ich produktów i usług, a także o ich potrzebach i niespełnionych oczekiwa- niach. Wiedza taka może pomóc im w stworzeniu produktów bardziej dopasowanych do potrzeb klientów, a co za tym idzie, lepszych. Zwykli użytkownicy Internetu są zainteresowani opinią innych na temat określonych produktów czy usług. Podob- 3 ROZDZIAŁ 1. WSTĘP ne informacje są niezwykle cenne w marketingu, gdyż dzięki nim można stworzyć skuteczniejszą reklamę. Znajomość stosunku ludzi do bieżących wydarzeń pozwala również tworzyć precyzyjne sondaże, a nawet przewidywać wyniki wyborów. Podob- na wiedza wykorzystywana jest nawet do przewidywania wahań cen na giełdzie. Jak wspomniano, ilość opinii, które są obecnie dostępne, jest ogromna. Ludzie codziennie zamieszczają setki gigabajtów wpisów na przeróżnych stronach interne- towych, blogach czy portalach społecznościowych. Zadanie przeanalizowania tych wszystkich danych przekracza zdolności analityczne człowieka. Dlatego użyteczny jest automatyczny system informacyjny, który może wspomóc użytkownika w prze- twarzaniu takich danych. W ostatnich latach duży rozwój przeżywa dziedzina in- formatyki, jaką jest NLP (Natural Language Procesing), zajmująca się metodami automatycznego przetwarzania języka naturalnego. Dzięki osiągnięciom na tym polu jesteśmy w stanie z powodzeniem tworzyć systemy, które potrafią, przynajmniej do pewnego stopnia, uporać się z zadaniem rozpoznawania emocji w tekście. Celem niniejszej pracy jest opracowanie i zbadanie algorytmu wykry- wania emocji w tekście, który wykorzystuje do działania wiedzę zgroma- dzoną w Internecie, uzyskiwaną za pomocą wyszukiwarki. Podejście to jest o tyle interesujące i niestandardowe, że nie wymaga specjalnego, ocenionego wcześniej przezczłowieka,zbiorudanychdonauki.Metodatazostałapoddanaeksperymentom w celu zbadania jej skuteczności. W rozdziale 2 przedstawiono podstawowe informacje o przetwarzaniu języka na- turalnego. Rozdział 3 zawiera teoretyczne podstawy automatycznego wykrywania emocji w tekście oraz przegląd rozwiązań stosowanych w tej dziedzinie. W rozdziale 4 przedstawiono nową metodę rozwiązującą powyższy problem, opartą na klasycz- nym algorytmie Turneya. W Rozdziale 5 opisano szczegółowo implementację algo- rytmu oraz poszczególne jego kroki i modyfikacje, zastosowane w celu poprawy jego skuteczności. Rozdział 6 zawiera opis i wyniki badań przeprowadzonych na zbiorze danych testowych z zawodów SemEval 2007. W Rozdziale 7 znajduje się podsumo- wanie wyników pracy oraz wnioski z przeprowadzonych badań. 4 Rozdział 2 Przetwarzanie języka naturalnego W obecnych czasach, dzięki dokonaniom i rozwojowi w dziedzinie przetwarzania języka naturalnego, komputery są w stanie rozumieć i przetwarzać język. Przetwa- rzanie języka naturalnego (ang. natural language processing, NLP) jest to dziedzina nauki z pogranicza informatyki, sztucznej inteligencji i lingwistyki zajmująca się technikami automatycznego rozumienia, analizowania i generowania języka przez komputer. Przez „język naturalny” rozumiemy tutaj język używany w codziennej komunikacji przez ludzi, w przeciwieństwie do sztucznych tworów, takich jak np. języki programowania. NLP obejmuje szerokie spektrum zagadnień, począwszy od tak przyziemnych, jak zliczanie wystąpień słów w tekście czy automatyczne dziele- nie wyrazów, po nowatorskie rozwiązania, np. automatyczne udzielanie odpowiedzi na pytania przez wyszukiwarkę internetową czy automatyczne tłumaczenie mowy na inne języki w czasie rzeczywistym. Analiza może dotyczyć zarówno tekstu, jak i mo- wy, lecz obiektem przetwarzania zwykle jest jednak tekst. Rozpoznawanie i synteza mowy rozwinęło się bowiem jako oddzielny dział wiedzy. 2.1 Poziomy opisu języka Język naturalny może być analizowany na kilku poziomach. Odpowiadają one stopniom szczegółowości w jakich można go opisać. Poziomy te przenikają się, a znaczenie języka ma źródło we wszystkich warstwach. Ponieważ ludzie potrafią wy- korzystać wszystkie poziomy by prawidłowo rozumieć język, automatyczny system przetwarzania powinien również brać pod uwagę jak najwięcej z nich. 5 ROZDZIAŁ 2. PRZETWARZANIE JĘZYKA NATURALNEGO Najważniejsze poziomy języka to: fonetyka, fonologia, morfologia, składnia, se- mantyka i pragmatyka. Dwa pierwsze z nich związane są odpowiednio z badaniem właściwości fizycznych dźwięków mowy oraz ich funkcjonowania w dźwiękowym sys- temie językowym. Dlatego nie są istotne z punktu przetwarzania języka naturalnego, który zajmuje się głównie tekstami a nie mową. 2.1.1 Morfologia Poziom morfologii związany jest ze słowotwórstwem oraz odmianą części mowy (fleksją). Podstawową jednostką analizy jest abstrakcyjny morfem – najmniejsza, niepodzielna część znaczeniowa wyrazów. Na przykład, słowo napisała może zostać podzielone na następujące morfemy: przedrostek na, rdzeń pis i przyrostek ała. Po- nieważ znaczenie morfemów zawsze pozostaje niezmienne, ludzie potrafią domyślić się nieznanego słowa poprzez rozłożenie go na istotne części i wnioskowanie na ich podstawie. Podobnie system komputerowy, poprzez analizę i modyfikację morfemów w słowie, jest w stanie np. rozpoznać znaczenie wyrazów lub wygenerować odmie- nione jego formy. 2.1.2 Składnia Składnia zajmuje się budową wypowiedzi. Na tym poziomie analizowana jest struktura zdań i określane są funkcje poszczególnych wyrazów (podmiot, dopełnie- nie, orzeczenie) oraz zależności między słowami w zdaniu (związek zgody, związek rządu). Składnia bardzo często determinuje znaczenie wypowiedzi, ponieważ szyk i zależności w zdaniu tak naprawdę określają jego sens. Na przykład, dwa zdania: Klient zapłacił za nie mało i Klient nie zapłacił za mało różnią się jedynie składnią, a znaczą zupełnie co innego. 2.1.3 Semantyka Semantykazajmujesięanaliząznaczeńposzczególnychwyrazówwzdaniu.Natym poziomie określany jest sens słowa w konkretnej wypowiedzi na podstawie kontekstu znaczeniowego, w jakim znajduje się wyraz. Na przykład, rzeczownik zamek może oznaczać średniowieczną budowlę lub mechanizm zamykający drzwi. Aby odkryć właściwe znaczenie, należy przeanalizować sens innych słów występujących w zdaniu. 6 ROZDZIAŁ 2. PRZETWARZANIE JĘZYKA NATURALNEGO Zadaniem analizy semantycznej jest rozstrzygnięcie takich niejednoznaczności. 2.1.4 Pragmatyka Poziom pragmatyki związany jest z rozumieniem i interpretowaniem wypowiedzi w zależności od kontekstu. Celem jest wydobycie ze zdania tych informacji, których nie można bezpośrednio wywnioskować z jego struktury, budowy czy zawartości. Często niezbędna jest do tego ogólna wiedza o otaczającym świecie. Dlatego na tym etapie często wykorzystywane są mechanizmy wnioskowania i specjalnie stworzone bazy wiedzy. Na przykład, dla zdań: Wyborcy odwrócili się od polityków, ponieważ ich obietnice nie zostały spełnione i Wyborcy odwrócili się od polityków, ponieważ ich oczekiwania nie zostały spełnione istotne może być określenie, do kogo odnosi się zaimek ich. Rozstrzygnięcie wymaga w tym przypadku jednak szerszej wiedzy o świecie, niż tylko tej, którą bezpośrednio można wywnioskować ze zdania. Innym zagadnieniami na poziomie pragmatyki jest prawidłowa interpretacja humoru, ironii, czy metafor, co niejednokrotnie sprawia problemy nawet samym ludziom. 2.2 Trudności w przetwarzaniu języka naturalnego Chociaż opanowanie języka naturalnego jest podstawową i jedną z pierwszych umiejętności, której uczy się człowiek, nauczenie tej umiejętności komputera nie jest zadaniem łatwym. Wyzwania, które stoją przed badaczami wynikają z wyso- ko nieprecyzyjnej i niejednoznacznej natury języka. Obserwować ją można na wielu poziomach: • składni – relacje pomiędzy słowami w zdaniu można określić często na kilka sposobów, co prowadzi do różnych interpretacji tekstu, • semantyki–tosamosłowomożemiećwieleznaczeń,wzależnościodkontekstu, • pragmatyki – występowanie metafor, tautologii, ironii, itd. Dodatkowym problemem jest np. istnienie homonimów (słów o tej samej formie językowej, lecz pochodzących od wyrazów o różnym znaczeniu), synonimów (różnych wyrazów o tym samym lub bardzo zbliżonym znaczeniu) czy idiomów (wyrażeń, 7
Description: