fbpx

Co to właściwie jest, ten SentiTool – opowiada Jan Kocoń

Jan Kocoń jest inżynierem języka naturalnego – to on odpowiada za uczenie maszynowe zamknięte w SentiToolu, naszym narzędziu do analizy emocji w tekście. Koordynuje prace zespołu językoznawczego, integruje poszczególne elementy narzędzia, ściśle współpracuje z zespołem informatycznym.

Kiedy masz komuś pierwszy raz opowiedzieć o Sentimenti i SentiToolu, co mówisz najpierw?
Sentimenti jest projektem, w którym zajmujemy się analizą emocji w tekście. W odróżnieniu od rozwiązań konkurencji, w których rozpoznaje się wyłącznie wydźwięk tekstu (pozytywny, neutralny, negatywny), nasze narzędzia (na przykład SentiTool) są w stanie zrozumieć tekst, przypisać wyrazom w tekście konkretne znaczenia oraz emocje, jakie ludzie odczuwają w związku z tymi znaczeniami. Emocje te stanowią z kolei bazę wiedzy dla mechanizmu uczenia maszynowego, który dokonuje automatycznego rozpoznawania emocji na poziomie zdań oraz całego tekstu.

Co to znaczy, że analizujemy emocje w tekście?
W badaniach prowadzonych w projekcie zaadaptowaliśmy model Plutchika, obejmujący osiem emocji podstawowych: radość, smutek, zaufanie, wstręt, oczekiwanie, strach, zaskoczenie oraz złość. Jesteśmy w stanie oszacować, w jakim stopniu te emocje są wyrażone w tekście.

Skąd wiemy, jakie emocje ludzie czują?
Baza wiedzy, która jest pomocą dla naszego projektu, obejmuje ponad 30000 znaczeń słów, dla których 20000 unikatowych respondentów przypisuje oceny dotyczące wydźwięku oraz emocji. Mówimy tu o “znaczeniach”, a nie “słowach”, bo wyrazy są wieloznaczne, na przykład “ciemny” znaczy co innego w “ciemny błękit” lub “ciemny lud” i tylko w tym drugim przypadku niesie emocje. Każde znaczenie docelowo otrzyma 50 ocen od różnych osób. Dzięki temu wiemy, jakie odczucia wywołują określone znaczenia w tekście. Jednak emocja tekstu nie jest prostą sumą emocji przypisanych do znaczeń występujących w tym tekście…

Co jeszcze sprawia, że SentiTool działa?
Z pomocą przychodzą nam dwie rzeczy. Pierwszą z nich jest nasza gigantyczna baza opinii z przyporządkowanym wydźwiękiem, które pochodzą z różnych dziedzin: podróże, medycyna, produkty i wiele innych. Mamy ponad 10 milionów takich tekstów, co stanowi doskonałe źródło informacji o ogólnym odczuciu twórcy tekstu. Jednak aby stwierdzić, jakie emocje dany tekst wywołuje u czytelnika, prowadzimy także własne badania, analogiczne od badań prowadzonych na pojedynczych znaczeniach. Przedmiotem tych badań są tym razem teksty. Osoby ankietowane przypisują im emocje podstawowe, dokładnie tak samo jak znaczeniom słów. Drugi filar naszego narzędzia to kombinacja wielu metod uczenia maszynowego. Eksperci od przetwarzania języka naturalnego dostarczają nam narzędzi do analizy tekstu na poziomie składniowym oraz semantycznym, dodatkowo tworzą reguły analizy znaczeń w kontekście jak: negacja, przypuszczenie, osłabienie lub wzmocnienie wydźwięku itp. Jest to dodatkowa pomoc dla metod automatycznych, na przykład głębokich sieci neuronowych, za pomocą których odbywa się właściwe wnioskowanie na temat emocji w tekście.

Do czego aplikacja SentiTool może się według ciebie przydać?
Docelowo widzę wiele zastosowań dla naszego narzędzia. Pierwszy obszar obejmuje rynek reklam wyświetlanych w kontekście artykułów internetowych i dopasowywanie ich do emocji, jakie tekst publikacji wzbudza u czytelników. Przykładowo w smutnym tekście mogłaby pojawić się reklama towarzystwa ubezpieczeniowego, a w radosnym – reklama wycieczki. Kolejnym obszarem jest monitoring marki, czyli analizowanie jak klienci firm piszą w Internecie o danej firmie, jej produktach, jakie emocje im przy tym towarzyszą. Kolejne interesujące obszary to sortowanie skarg mailowych od klientów względem emocji w nich zawartych, detekcja konfliktów rodzących się w korespondencji pracowników, wykrywanie kryzysów w mediach społecznościowych, a nawet możliwość diagnozowania chorób psychicznych – potencjał SentiToola jest naprawdę ogromny.

Co jeszcze planujesz zrobić w SentiToolu?
Póki co, jest gotowy prototyp z prostą analizą tekstu na poziomie znaczeń oraz z analizą wydźwięku z wykorzystaniem naszych wielkich zasobów opinii. Obecnie we Wrocławskim zespole Sentimenti zarządzam budową mechanizmu uczenia maszynowego, w którym możliwe będzie zagregowanie zarówno informacji z bazy wiedzy dotyczącej znaczeń, jak i informacji pochodzących z potoku przetwarzania języka naturalnego. Wciąż spływają nam nowe dane o odczuciach osób czytających teksty, stanowiące nasz zbiór uczący. Im więcej danych, tym lepsza jakość narzędzia.