Usługa do statystycznej analizy wydźwięku i emocji w tekstach. Usługa dostępna również online
jako usługa webowa z demo pod adresem http://ws.clarin-pl.eu/sentyment.shtml
.
any2txt|wcrft2|wsd|ccl_emo({"lang":"polish"})|ccl_emo_stats({"lang":"polish", "split_paragraphs": false})
Narzędzie wykorzystuje Słowosieć anotowaną emotywnie oraz system do ujednoznaczniania znaczeń słów. Proces analizy tekstu przebiega w następujący sposób.
Tekst podlega ujednoznacznianiu znaczeń słów poprzez przypisanie znaczeń ze Słowosieci (patrz opis usługi WSD):
Następnie dla ujednoznacznionych znaczeń pobierana jest informacja emotywna ze Słowosieci-EMO. Dla każdego ze znaczeń pobierana jest informacja o jego polaryzacji
wydźwięku -- pozytywny, negatywny, neutralny lub niejednoznaczny (amb), emocjach z modelu Plutchika oraz fundamentalnych wartościach ludzkich (Puzynina). W tym
miejscu warto wspomnieć, że nie wszystkie jednostki Słowosieciowe (znaczenia) posiadają informację emotywną (w takich sytuacjach jednostka jest pomijana w
statystykach), a jednostki niejednoznaczne powinny być traktowane różnie w zależności od kontekstu użycia, nawet po procesie ujednoznacznienia.
Końcowym etapem jest usługa wyliczająca statystyki występowania wydźwięku, emocji i wartości fundamentalnych. Narzędzie do wyliczania statystyk sumuje wartości
w każdym z wymiarów. Wyjątek stanowi oznaczenie "niejednoznaczne", gdzie do statystyki polaryzacji doliczana jest informacja w obu wymiarach polaryzacji,
t.j. wymiarze pozytywnym i negatywnym. Ma to na celu uwzględnienie takich jednostek w statystykach (by odróżnić teksty całkowicie neutralne od tekstów potencjalnie
nacechowanych zawierających jednostki typu amb) jednocześnie bez wskazywania na to, która polaryzacja jest właściwa (wymagałoby to dodatkowego ujednoznacznienia
polaryzacji w kontekście, czego narzędzie nie wykonuje, choć w większości przypadków ujednoznacznienie znaczenia jest wystarczające).
W mechanizmie sumowania pod uwagę brana jest wartość polaryzacji, czyli "siła" spolaryzowania jednostki. Zakłada się "mocną" (np. -2, 2) i "słabą" (np. -1, 1)
polaryzację, gdzie wymiar ten przyjmuje wartości ze skali [-2,-1,0,1,2].
Poniższy przykład ilustruje mechanizm zliczania dla polaryzacji. Pogrubioną, kolorową czcionką oznaczono przypadki polaryzacji mocnej, bez pogrubienia słabej,
gdzie kolor czerwony to polaryzacja negatywna, zielony to pozytywna, a niebieski to niejednoznaczna (nie są to rzeczywiste przypisania systemu, a jedynie przykład
ilustrujący działanie mechanizmu zliczania).
To był naprawdę okropny dzień! Mnóstwo nieprzyjemnych spraw, trudności
w odnalezieniu rytmu pracy i jeszcze kłopoty z dziećmi w szkole.
Pozytywne było jedynie to, że udało mi się rozprawić z przeciekającym kranem.
pozytywny.1(2) + udać się.1 (1) + rytm.2(+1) = 4
okropny.1(-2) + nieprzyjemny.1(-2) + trudność.1(-1) + kłopot.1(-1) + rytm.2(-1) = -7
Liczby po kropce oznaczają numer znaczenia ze Słowosieci. Liczby w nawiasach to wartości sumowanej polaryzacji. Tak w teorii powinien zadziałać system.
Poniżej przedstawiono przykład z przypisaniem systemu i wynik mechanizmu zliczania wraz z objaśnieniem dla rzeczywistego przypadku:
todo!
any2txt|wcrft2|wsd|ccl_emo({"lang":"polish"})|ccl_emo_stats({"lang":"polish", "split_paragraphs": false})
Plik w formacie ccl z wyznaczonymi POS (wyjście z taggera np. morphoDita, wcrft2) i znaczeniami z WSD.
Plik
from lpmn_client import download_file, upload_file
from lpmn_client import Task
task = Task(lpmn='any2txt|wcrft2|wsd|ccl_emo({"lang":"polish"})|ccl_emo_stats({"lang":"polish", "split_paragraphs": false})')
task.email = "example@mail.com" # change e-mail
file_id = upload_file("./test.zip") # zip file with some documents (for example docx files)
output_file_id = task.run(file_id)
download_file(output_file_id, "./out")
(C) CLARIN-PL