System do klasyfikacji tekstu i analizy stylometrycznej Maciej Eder, Maciej Piasecki IJP PAN / UP Politechnika Wrocławska Katedra Inteligencji Obliczeniowej Grupa Naukowa G4.19 maciejeder@gmail.com maciej.piasecki@pwr.edu.pl 2015-04- 15
Stylometria Warsztaty stylometria: porównanie drobnych cech językowych w korpusie testków, którego celem jest wyłonienie podobieństw i różnic pomiędzy tekstami poszczególne własności języka nie pozwalają na skuteczne porównanie tektsów, ale w większej liczbie owe drobne różnice zaczynają być znaczące największe nadzieje stylometria wiąże z atrybucją autorską
Atrybucja autorska Warsztaty Jeśli mamy: tekst o nieznanym autorstwie korpus porównawczy zawierający teksty znanych autorów to czy można wśród nich odnaleźć najbliższego sąsiada, czyli tekst najbardziej podobny spośród dostępnych w korpusie? Gdzie można szukać stylistycznego odcisku palca : słowa synsemantyczne, najczęstsze słowa, pary słów, częste sekwencje literowe...
Mierzalne cechy stylu Warsztaty Idea stylistycznego odcisku palca cechy języka niedostrzegalne gołym okiem poza kontrolą autora (nieświadome) odporne na imitację, parodię itp. chętnie wybierany znacznik: częstości najczęstszych słów inne cechy: np. n-gramy klas gramatycznych Czy styl jest jednoznacznie zależny od autora? (por. kod DNA, odcisk palca, wzór na źrenicy,...)
Różne znaczniki stylu (cechy) Warsztaty Dawnymi czasy Niechcicowie żyli mniej więcej tak, jak żyją wszyscy po dworach na wsi. formy gramatyczne: dawnymi czasy niechcicowie żyli mniej... bi-gramy form gramatycznych: dawnymi czasy czasy niechcicowie niechcicowie żyli... lemmaty: dawny czas niechcic żyć mniej więcej... tri-gramy klas gramatycznych: ADJ NN Pers NN Pers VB Pers VB ADV... i wiele, wiele innych możliwych cech
Różne znaczniki stylu (cechy) Warsztaty It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. (J. Austen, Pride and Prejudice) the = 4.25% in = 3.45% of = 1.81%...
Metody wielowymiarowe Warsztaty
Kim jest Gall Anonim? Warsztaty
Kim jest Gall Anonim? Warsztaty
Nie tylko atrybucja... Warsztaty
Zmiana w języku (100 MFW) Warsztaty
Zmiana w języku (2-gramy POS) Warsztaty
Zmiana w języku (5000 MFW) Warsztaty
Analiza sekwencyjna Warsztaty
Biblia królowej Zofii (ok. 1455 r.) Warsztaty
Patrologia Latina (5,281 tekstów) Warsztaty
Wyzwania Warsztaty Mierzenie relacji tekstowych w dużych korpusach Wyciąganie znaczników stylu, które nie polegają na zwykłym pocięciu tekstu na szeregi n liter: Przetwarzanie Języka Naturalnego (NLP): konieczność użycia dodatkowych narzędzi
Cyklotron (1937 r.) Warsztaty
Wielki Zderzacz Hadronów Warsztaty
System do stylometrii i klasyfikacji Warsztaty Idea: połączenie w ramach jednej aplikacji webowej systemu Stylo do stylometrii i narzędzi do analizy tekstu oraz klasyfikacji zapewnienie bogatego zestawu cech dla języka polskiego uwolnienie użytkownika z potrzeby instalowania Założenia: cechy opisujące tekst mogą dotyczyć dowolnego poziomu analizy języka ograniczeniem są dostępne narzędzia dla języka polskiego analizowane mogą być zarówno dokumenty jak i fragmenty tekstu tryby: grupowania i klasyfikacji
Schemat systemu 1. Załadowanie korpusu opis nazwami meta-danymi na różnych poziomach 2. Wybór cech opisowych 3. Określenie parametrów przetwarzania grupowanie lub klasyfikacja przetwarzanie cech, np. transformacja 4. Wstępne przetwarzanie automatyczne uruchomienie sekwencji narzędzi językowych 5. Obliczenie wartości cech zliczenie statystyk wystąpienia 6. Filtrowanie i/lub transformacja cech, np. odsianie zbyt rzadkich/ częstych cech wyliczenie miar istotności na podstawie częstości 7. Zasadnicze przetwarzanie albo grupowanie albo klasyfikacja 8. Prezentacja wyników wizualizacje dane liczbowe Warsztaty
Schemat systemu Warsztaty Any2txt WCRFT2 Liner2 Dokument (doc) okument (docx) Any2txt WCRFT2 Liner2... Fextor Cluto Diagram (PNG) Dokument (pdf) Any2txt WCRFT2 Liner2 Przykładowy przebieg przetwarzania równoległego zbioru dokumentów
Cechy dla języka polskiego Warsztaty Poziomy analizy języka Morfologiczny Morfo-syntaktyczny Semantyki leksykalnej Wykorzystywane narzędzia językowe program do segmentacji tekstu i analizy morfologicznej - MACA tager morfosyntaktyczny - WCFRT2 program do rozpoznawania nazw własnych - Liner2 program do ujednoznaczniania sensów słów - WoSeDon
Cechy morfologiczne Warsztaty Długość: dokumentu, akapitu, zdania Formy wyrazowe Znaki interpunkcyjne Pseudo-sufiksy ostatnie kilka liter Dowolne tokeny wyrazowe Lematy podstawowe formy morfologiczne wyznaczane z pomocą tagera morfosyntaktycznego Sekwencje n elementowe wyrazowych tokenów lematów dwuelementowe tzw. bigramy trzyelementowe tzw. trigramy
Cechy morfosyntaktyczne Warsztaty Części mowy wyznaczane na podstawie rozpoznania klas gramtycznych Klasy gramatyczne zgodnie z definicją w Narodowym Korpusie Języka Polskiego klas gramatycznych, np. pseudoimiesłowy (preat), formy nieprzeszłe (fin), przymiotniki przyprzymiotnikowe (adja) wyznaczane przez tager morfosyntaktyczny Połączenie klas i wartości kategorii gramatycznych np. czasowniki w osobie 1 lub 2 Sekwencje klas gramatycznych przybliżają do pewnego stopnia konstrukcje składniowe
Cechy semantyczne Warsztaty Znaczenia leksykalne (sensy słów) wyznaczane względem Słowosieci identyfikatory wyznaczonych synsetów Uogólnione znaczenia leksykalne hiperonimy wyznaczonych synsetów poziom hiperonimu decyduje o stopniu uogólnienia Pojęcia ze sformalizowanej ontologii SUMO Suggested Upper Merged Ontology Dziedziny tematycznie ze zbioru WordNet Domains pola tematyczne wyznaczone w sposób automatyczny
Transformacja i filtrowanie przykład Warsztaty Łączenie cech różnego typu np. częstości lematów i klas gramatycznych Przykład procesu przetwarzania nazwa: tf.idf transformacja ukierunkowana na opis semantyczny 1. obliczenie częstości występowania lematów 2. odrzucenie cech-lematów występujących rzadziej niż n=10 3. normalizacja częstości lematu a, tf(a) = częstość(a) maksymalną częstości w danym dokumencie 4. ważenie idf(a)= ln( liczba dokumentów dokumenty(a) ) 5. wyliczenie wagi dla lematu: tf(a) * idf(a)
Stylo Warsztaty biblioteka (zestaw funkcji) dla środowiska R darmowa i na licncji open-source (GPL) zaopatrzona w interfejs graficzny wyposażona w szereg metod nadzorowanych i nienadzorowanych prosta w obsłudze, ale nie banalnie prosta
Domyślne GUI w stylo Warsztaty
Wystarczy kilka(naście) tekstów Warsztaty
Stylo jako serwis on-line Warsztaty
Grupowanie oparte na Cluto Warsztaty System oparty na Cluto uniwersalny system do grupowania obiektów reprezentowanych jako wektory liczbowe często używany do grupowania tekstów Metody grupowania aglomeracyjna (hierarchiczna) budowana jest hierarchia co raz większych grup poczynając od dwuelementowych płaska zbiór jest dzielony na n grup, gdzie n jest zadane z góry aglomeracyjno-płaska najpierw wyznaczany jest podział na n grup później grupy te łączone są w hierarchię
System oparty na Cluto Warsztaty Miary podobieństwa kosinusowa kosinus kąta pomiędzy wektorami cech zależy od stosunku wartości cech, a nie ich bezwzględnych wartości schemat tf.idf do transformacji cech oparta na współczynniku korelacji euklidesowa odległość pomiędzy wektorami cech Jaccarda stosunek wspólnej części cech do sumy Dalsze możliwości rozszerzania opisu tekstu szerszy zbiór nazw własnych relacje leksykalno-syntaktyczne, np. modyfikowany_przez(mądry) struktury leksykalno-składniowe lub leksykalno-semantyczne
Klasyfikacja semantyczna Warsztaty Cel klasyfikacji: przypisanie do dokumentów tekstowych lub fragmentów tekstów klas semantycznych klasy są zdefiniowane przez użytkownika Rodzaje systemów klasyfikacji nienadzorowane: klasy są zdefiniowane opisowo program klasyfikatora jest konstruowany i dostrajany na podstawie dużej ilości danych nadzorowane klasy są zadana w postaci ręcznie anotowanych dokumentów lub fragmentów tekstu
Proces budowy klasyfikatora Warsztaty 1. Identyfikacja źródeł 2. Pozyskanie korpusu tekstów 3. Wstępne przetwarzanie korpusu 4. Ręczna anotacja podkorpusu treningowo-testowego 5. Automatyczna anotacja korpusu 6. Analiza i udostępnienie anotowanego korpusu * Przyrostowa automatyczna anotacja: powtarzanie etapów 4-6
Przykład: Cindirela klasyfikacja listów pożegnalnych Warsztaty 1) Identyfikacja źródeł Cel: rozróżnianie pomiędzy prawdziwymi listami pożegnalnymi i listami napisanymi jako próba oszustwa określenie cech lingwistycznych listów prawdziwych rozpoznawanie tekstów jako wykazujących cechy listu pożegnalnego 2) Pozyskanie korpusu tekstów Polski Korpus Listów Pożegnalnych (Zaśko-Zielińska,2013) około 1000 listów prawdziwych i 320 listów sfałszowanych lub udawanych Teksty zebrane z internetu: dowolne oraz takie, które mają charakter listu, ale nie są listami pożegnalnymi
Przykład: Cindirela klasyfikacja listów pożegnalnych Warsztaty 3) Wstępne przetwarzanie korpusu Wykorzystanie wyników ręcznej transkrypcji i korekty tekstów (inaczej byłoby zbyt łatwo) Tager morfo-syntaktyczny WCRFT Rozpoznawanie nazw własnych Liner2 Ujednoznacznienie sensów słów i rzutowanie na ontologię WoSeDon 4) Ręczna anotacja podkorpusu treningowo-testowego dwie klasy: prawdziwe listy pożegnalne teksty, które nie są prawdziwymi listami pożegnalnymi
Cindirela wyniki eksperymentu 1 (klasyfikator SVM(RBF)) Warsztaty Cechy: Rezultat interp_per_sentence, interp_signs, avg_num, avg_verbs, avg_nouns avg_adjps avg_adverbs avg_interps avg_tok_count proper_nam_person_last proper_nam_person_first proper_nam_roads proper_nam_country proper_nam_city big_letter verb_per ppron12_per base TP: 982 FN: 272 FP: 168 TN: 3218 Accuracy: (TP+TN) / (TP+TN+FP+FN) = 90,52% Precision: TP / (TP+FP) = 85,39% TN / (TN+FN) = 92,21% Sensitivity: TP / (TP+FN) = 78,31% Specificity: TN / (TN+FP) = 95,04%
Cindirela wyniki eksperymentu 1 Warsztaty Rozkład decyzji pomiędzy klasami Forumowisko psychologia 'false': 601, 'true': 15 Forumowisko inne 'false': 1026, 'true': 11 Bryk 'false': 333, 'true': 21 Wikipedia 'false': 997, 'true': 1 Blog czytamwwannie 'false': 42, 'true': 2 sfałszowane listy 'false': 219, 'true': 118 prawdziwe listy 'true': 982, 'false': 272
Cindirela wyniki eksperymentu 2: Warsztaty Dodatkowe cechy: synsety i hiperonimy ze Słowosieci Poprawa dokładności rozpoznania Przykład cech znaczących verb_per ppron12_per avg_verbs interp_signs:dash big_letter interp_signs:fullstop interp_signs:comma avg_nouns interp_signs:question_mark avg_adverbs hypernym5:czasownik_- _STAN_NDK_oznaczający_stan_ emocjonalny-1(cst) hypernym5:czuć-2(cczuj) odczuwać-1(cczuj) avg_num hypernym5:mój-1(jak) synset:mój-1(jak) hypernym5:być-3(cst) avg_interps synset:kochanie-2(os) synset:kochanie-1(czy) obdarzanie_uczuciem-1(czy) darzenie_uczuciem-2(czy) darzenie_miłością-1(czy) obdarzanie_miłością-1(czy)
Dziękuję bardzo za uwagę http://ws.clarin-pl.eu/demo/stylo2.html