WebSty - otwarty sieciowy system do analizy stylometrycznej tekstu Maciej Piasecki, Tomasz Walkowiak, Maciej Eder Politechnika Wrocławska Katedra Inteligencji Obliczeniowej Grupa Naukowa G4.19 Maciej.Piasecki@pwr.edu.pl Katedra Informatyki Technicznej Tomasz.Walkowiak@pwr.edu.pl IJP PAN / UP Kraków maciejeder@gmail.com
Stylometria Stylometria analiza tekstów pod kątem cech charakterystycznych dla autora, okresu powstania, gatunku, stylu, miejsca pochodzenia tekstu, języka źródłowego, tłumacza, itd. Spojrzenie z oddali: Typy cech analiza statyczna cech tekstów, które mogą być charakterystyczne dla: autora, okresu powstania itd. pojedyncze wystąpienia niosą mało informacji, ale kombinacja ich częstości występowania jest znacząca formy wyrazowe (słowa), cechy form: morfologiczne i gramatyczne, kolokacje, własności składniowe: frazy lub zdania
Stylometria - zastosowania Atrybucja autorska potwierdzenie porównanie tekstu z innymi tekstami danego autora ustalenie autorstwa dla zbioru znanych autorów i przykładowych tekstów ustalenie autorstwa innych tekstów wykrycie autorów podzielenie zbioru tekstów wg autorów Okres powstania tekstu podobieństwo do tekstów z określonych okresów Analiza stylu znane style (przykładowe teksty) vs ustalenie styli Rozpoznanie gatunku literackiego Miejsce powstania tekstu Ustalenie cech autora, np. płeć, język rodzimy Analiza tłumaczeń: język pierwotny, język rodzimy tłumacza
Stylometria proces analizy 1. Przygotowanie korpusu tekstów 2. Analiza językowa tekstów i ustalenie częstości występowania wybranych cech np. określonych słów, sekwencji klas gramatycznych 3. Przetwarzanie danych 4. Analiza danych: grupowanie lub klasyfikacja na podstawie cech wektorów 5. Analiza wyników i wizualizacja
Stylometria proces analizy Przygotowanie korpusu tekstów zgromadzenie dokumentów o znanych/nieznanych własnościach wydobycie czystego tekstu z dokumentów programy rozpoznające różne formaty problem cech zakłócających np. adresy internetowe, `szlaczki interpunkcyjne, stopki/nagłówki, przeniesienia wyrazów, metadane od redakcji itd. opatrzenie dokumentów metadanymi w nazwie pliku poprzez rekord metadanych, np. CMDI
Stylometria - przykład Grupowanie 5 książek, dwóch autorów podzielonych na fragmenty za pomocą WebSty
Stylo przykład systemu do analizy stylometrycznej System opracowany przez Macieja Edera (Uniwersytet Pedagogiczny w Krakowie, Instytut Języka Polskiego PAN) Biblioteka (zestaw funkcji) dla środowiska R Darmowa i na licencji open-source (GPL) Zaopatrzona w interfejs graficzny Wyposażona w szereg metod nadzorowanych i nienadzorowanych Prosta w obsłudze, ale nie banalnie prosta
WebSty założenia Aplikacja uruchamiana przez dowolną przeglądarkę 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 w połączeniu z dostępem do wielu narzędzi do analizy danych Grupowanie Klasyfikacja oparta na maszynowym uczeniu się Wizualizacja wyników Wydobywanie cech charakterystycznych dla grup Wszystkie moduły przetwarzające oparte są o zestaw otwartych narzędzi. Możliwe podłączanie dalszych narzędzi.
Schemat systemu 1. 2. 3. 4. 5. Załadowanie korpusu z różnych źródeł Wybór cech opisowych Określenie parametrów przetwarzania przetwarzanie cech, np. transformacja liczba grup Wstępne przetwarzanie automatyczne uruchomienie sekwencji narzędzi językowych Obliczenie wartości cech zliczenie statystyk wystąpienia 6. Filtrowanie i/lub transformacja cech, np. odsianie zbyt rzadkich/częstych cech ważenie cech wyznaczenie miar podobieństwa/odległości między tekstami 7. Grupowanie 8. Identyfikacja cech charakterystycznych grupa vs pozostałe 9. Prezentacja wyników dane liczbowe wizualizacje skalowanie wielowymiarowe
Przygotowanie i załadowanie korpusu Opisanie plików z tekstami Umieszczenie Bezpośrednie załadowanie plików do aplikacji automatyczna konwersja do tekstu z różnych formatów rtf, doc, docx, odt, xlslx, pdf (Uwaga: nie czyści z cech zakłócających!) ograniczona liczba, ograniczona ilość danych Wybór korpusu z repozytorium DSpace CLARIN-PL CTJ dowolny rozmiar, ale czas przetwarzania zależy od rozmiaru! automatyczna Korpus spakowany do pliku Zip z adresu w sieci j.w. ale możliwość załadowania własnych danych, np. z dysku sieciowego
Załadowanie plików
Załadowanie plików Korpus z repozytorium Dspace CTJ Korpus spakowany z dysku sieciowego
Cechy dla języka polskiego Założenia możliwe do identyfikacji na odpowiednim poziomie dokładności możliwie mało czułe na znaczenie tekstu Poziomy analizy języka morfologiczny morfo-syntaktyczny semantyki leksykalnej Wykorzystywane narzędzia językowe CLARIN-PL program do segmentacji tekstu i analizy morfologicznej MACA tager morfosyntaktyczny - WCFRT2 program do rozpoznawania nazw własnych - Liner2 -
Cechy morfologiczne i morfosyntaktyczne Formy wyrazowe dowolne z tekstu semantyczne powiązania wg listy najczęstszych w: danym korpusie skuteczne do grupowanie, lub języku wyniki porównywalne z innymi korpusami Znaki interpunkcyjne wybrane duży szum z niejęzykowego użycia Lematy podstawowe formy morfologiczne zmniejszają sztuczną różnorodność wyrazów wyznaczane z pomocą tagera morfosyntaktycznego wg listy najczęstszych - podobnie jak dla form wyrazowych
Cechy morfologiczne i morfosyntaktyczne 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 WCRFT2 niektóre klasy gramatyczne są często wynikiem błędów tagera dla nieznanych słów, np. burkinostki, wykrzykniki, formy obce Części mowy klasy gramatyczne pogrupowane wg naturalnych kryteriów Kombinacje klasa gramatyczna wartość kategorii gramatycznych np. forma nieprzeszła osoba 1 lub 2 Wskazuje na bezpośredni styl pisania, np. list
Cechy sekwencyjne Przykład cech Może to czysty hedonizm, ale wyznaję teorię, że potrzeby należy zaspokajać. Lematy: może:1, to:1, czysty:1, hedonizm:1,, :2, ale:1, wyznawać: 1 potrzeba:1 Klasy gramatyczne: qub:1, conj:2, adj:1, subst:3, fin:2, comp:1, inf:1 Sekwencje 2 lub 3 elementowe ciągłe sekwencje wystąpień cech w tekście lematów (lub form wyrazowych) w pewnym sensie sygnalizują kolokacje Problemem jest niska częstość konieczność filtrowania klas gramatycznych przybliżają do pewnego stopnia konstrukcje składniowe
Analiza autorstwa Typowe podejście najczęstsze wyrazy w korpusie Proponowana w WebSty najczęstsze lematy w języku (tj. w dużym korpusie) początkowo: 500 najczęstszych w Narodowym Korpusie Języka Polskiego dalej ręczna eliminacja lematów o większym ładunku semantycznym uzupełnienie podklas gramatycznych, np. spójników znaki interpunkcyjne (wybrane) Uogólnione najczęstsze wyrazy w języku (tj. w dużym korpusie) gotowa lista najczęstsze lematy w korpusie lub języku znaki interpunkcyjne
Wybór cech
Wybór cech
Analiza stylu Podstawowa cechy analogiczne jak w atrybucji autorstwa Rozszerzona klasy gramatyczne dwuelementowe sekwencje klas gramatycznych przybliżają strukturę składniową tekstu Potencjalne dalsze rozszerzenia lematy najczęstsze w języku częstość występowania zdań o określonych długościach częstość słów o określonych długościach trzyelementowe sekwencje klas gramatycznych struktury konstrukcji składniowych
Filtrowanie Usuwanie cech rzadkich minimalna liczba wystąpień cechy w korpusie cechy bardzo rzadkie powodują często przypadkowe powiązania wartość zależy od wielkości korpusu, ale min. 20 jest rozsądne minimalna liczba dokumentów (fragmentów), w których wystąpiła cecha cecha może być częsta, ale tylko w niektórych dokumentach min. 5 jest dość typowe zależne od wielkości korpusu Inne możliwości (niedostępne jeszcze z aplikacji) usuwanie wybranych wartości cech, np. sekwencji dwóch burkinostek usuwanie cech o małych wartościach po transformacji
Transformacja Ważenie cech matematyczne przekształcenie wartości, które ma na celu uwypuklenie istotnych różnic, a zniwelowanie nieznaczących schemat: (wartość cechy, opis dokumentu/korpusu) -> nowa wartość cechy Typy metod ważenia heurystyczne algorytm, który nie ma podstaw formalnych oparte na miarach istotności ze statystyki matematycznej oparte na teorii informacji
Podobieństwo dokumentów Reprezentacja dokumentów D 1 : [ v 11, v 12, v 13,, v 1m ] D 2 : [ v 21, v 22, v 23,, v 2m ] Obliczenie podobieństwa wektory wartości cech dla D 1 i D 2 zostają porównane ze sobą Metody miary odległości heurystyczne geometryczne
Podobieństwo dokumentów Metody oparte na mierze odległości odległość Manhattan suma różnic między wartościami cech, ważna jest każda cecha z osobna odległość Euklidesowa w wielowymiarowej przestrzeni, wartości cech bardzo wpływają na miarę Geometryczne miara kosinusowa (podobieństwa) kosinus kąta między wektorami, ważny jest kierunek wektora układ cech, a nie ich poszczególne wartości prosta, ale bardzo dobra w wielu zastosowaniach
Podobieństwo dokumentów Miary heurystyczne Dice stosunek masy cech wspólnych do wszystkich, obrazuje istotność części wspólnej Jaccard stosunek masy cech wspólnych do masy cech specyficznych dla obu dokumentów SHD (Piasecki, z systemu SuperMatrix) mierzy na ile oba dokumentów potrafią opisać się wzajemnie poprzez swoje cechy; miara może być ukierunkowana na określony kierunek porównania Delta miara odległości, suma różnic znormalizowanych statystycznie cech Delta Edera zmodyfikowana miara Delta
Opcje filtrowania, transformacji, podobieństwa i grupowania Opcje zaawansowane: Opcje wyznaczania podobieństwa Filtrowanie Transformacja cech (ważenie)
Grupowanie dokumentów Grupowanie pakiet Cluto uniwersalny system do grupowania danych metoda aglomeracyjno-podziałowa zaczyna od łączenia najbardziej do siebie podobnych elementów i grup później dzieli cały zbiór na podzbiory o dużym średnim podobieństwie pomiędzy dokumentami Parametry liczba grup na etapie podziału liczba grup widocznych w danych ukryte parametry wybór metody Predefiniowane ustawienia (przygotowane wcześniej) wybór określonych zespołów cech, np. do analizy autorstwa brakuje jeszcze wyboru parametrów przetwarzania, np. filtrowania, transformacji, itd..
Opcje grupowania Opcje zaawansowane: Opcje wyznaczania podobieństwa Filtrowanie Metoda liczenia podobieństwa
Eksperymentalna metod doboru parametrów Wybieramy kolekcję wzorcową dobrze ilustrującą zjawisko, które chcemy zbadać, np. zawierającą teksty o znanym autorstwie przykłady określonych stylów teksty tłumaczone z określonych języków zawierającą teksty podobne do tekstów badanych Na kolekcji wzorcowej przeprowadzamy eksperymenty w celu dobrania wartości parametrów zaczynamy od parametrów domyślnych badamy wyniki wizualizacji analizujemy cechy charakterystyczne wyznaczone dla grup Ustalone wartości parametrów stosujemy do kolekcji tekstów będącej przedmiotem badania
Prezentacja wyników
Prezentacja wyników Dane: dla każdego tekstu (pliku): plik wejściowy ew. pliki po podziale przynależność do grupy id grupy (wektor: Nx1) Dendrogram hierarchia drzewa (drzewo binarne) Podobieństwo między tekstami (macierz: NxN liczb 1-0) Odległość między tekstami (macierz: NxN liczb 0-+ ) Formaty: JSON, XLSX
Prezentacja wyników Warsztaty CLARIN-PL Łódź 3-4 II 2017 CLARIN-PL Interaktywny dendrogram drzewo bliskości tekstów i grup tekstów Mapa ciepła pokazuje podobieństwo tekstów i ich grupy Skalowanie wielowymiarowe pokazuje bliskość tekstów na płaszczyźnie Skalowanie wielowymiarowe z wizualizacją 3D pokazuje bliskość tekstów w przestrzeni trójwymiarowej Wykres radarowy powiązania (bliskość) tekstów rozmieszczonych na kole Wykres kołowy graf bliskości tekstów i grup tekstów wpisany w koło
Prezentacja wyników drzewo interaktywne 34
Prezentacja wyników mapa ciepła 35
Prezentacja wyników wykres radarowy 36
Prezentacja wyników wykres kołowy
Skalowanie wielowymiarowe
Skalowanie wielowymiarowe 3D
WebSty: wydobywanie cech Cel wydobycie cech charakterystycznych dla danej grupy lub dokumentu (planowane) porównywanie korpusów Schematy przetwarzania grupa vs pozostałe grupy razem rozkład cech względem grup Metody narzędzia: Weka, scipy, scikit-learn grupy metod Weka (miary informacyjne) testy statystyczne drzewa losowe eliminacja cech i algorytmy supervised
Selekcja cech Narzędzia: Weka, scipy, scikit-learn Grupy metod: weka (miary informacyjne) testy statystyczne drzewa losowe eliminacja cech i algorytmy supervised 41
WebSty: interfejs do cech
Dziękuję bardzo za uwagę http://ws.clarin-pl.eu/websty.html
Architektura rozwiązania Problemy: Różne środowiska programistyczne: Java, C++, Python, R Duże modele Długie czasy przetwarzania Udostępnianie jako aplikacja webowa Język modelowania (LPMN): urlzip(http://ws.clarin-pl.eu/ksiazki.zip) any2txt wcrft2 fextor({"features":"base"}) dir featfilt({"similarity":"jaccard }) cluto({"no_clusters":3}) 44
Schemat potoków przetwarzania Any2txt WCRFT2 Liner2 Fextor Document (doc) Any2txt WCRFT2 Liner2 Fextor FeatFilt Cluto Document (docx) Wynik... Any2txt WCRFT2 Liner2 Fextor Document (pdf) FeatSel Wynik z Cluto Wynik Wynik z Cluto MDS Wynik SubFeatSel
Architektura rozwiązania Samba Worker 1 (Any2txt) Worker 3 (WCRFT2) REST NLPREST2 RabbitMQ Worker 2 (fextor) Worker n (featfilt) Data base LPMN engine Wydajność przetwarzanie asynch. skalowanie synchronizacja po zadaniu zew. baza danych LPMN Engine Wykonanie LPMN model asynchroniczny 50 000 => 0.01 procesora RabbitMQ 46
Techniki użycia Aplikacja webowa Korpusy z różnych źródeł API programistyczne Własny kod: Java, Python, R Aplikacja wysyła korpus (plik zip) i np. stop listę Uruchamia wybrany tor przetwarzania filezip(id_pliku) any2txt wcrft2 fextor({"features":"base"}) dir output(korpus_ccl) featfilt({"similarity":"jaccard }) output(dane_podob) cluto({"no_clusters":3}) makezip Załadowanie wyników na lokalny komputer Można powtórzyć przetwarzanie od wybranego miejsca file(id_dane_podob) cluto({"no_clusters":15}) makezip Wysłanie korpusu do CTJ CLARIN-PL
Ważenie cech Metody heurystyczne tf znormalizowana częstość tf.idf częstość cechy w dokumencie podzielona przez najwyższą częstość cechy daje zaskakująco dobre wyniki dla częstych słów (lematów) z ograniczonej listy technika z wyszukiwania informacji czynnik idf promuje cechy, które występują w ograniczonej liczbie dokumentów Nie działa dla cech częstych np. klas gramatycznych występują wszędzie, więc idf=0 Normalize normalizacja, czyli sprowadzenie wartości cech do takich wartości, że cały wektor ma długość jeden zmniejsza wpływ długości tekstu na jego opis
Ważenie cech Metody statystyczne tscore test istotności statystycznej współwystąpienie cech ma tendencję do promowania częstych cech chi2 test powiązania dwóch zmiennych losowych często stosowany, bardziej zrównoważony niż tscore Miary oparte na teorii informacji MI Mutual Information (pol. miara informacji wzajemnej) określa ile możemy dowiedzieć się o wystąpieniach jednej zmiennej losowej (np. słowo w dokumencie) na podstawie wystąpień innej zmiennej losowej, np. konkretna cecha wartości dodatnie: cecha wnosi istotną informację mi simple inny wariant obliczania, tylko pary, a nie cały korpus
Transformacja i filtrowanie przykład Różne metody oceny istotności cechy dla dokumentu/próbki Łączenie cech różnego typu np. częstości lematów i klas gramatycznych Przykład procesu przetwarzania miara tf.idf 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)
Transformacja przestrzeni Transformacja przestrzeni wektorowej wektor dla każdego dokumentu zostaje znacząco zmniejszony z N cech na M cech, Cel np. z 10 000 do 100 zredukowanie przypadkowości szumów uwypuklenie podobieństw i zmniejszenie przypadkowych podobieństw niebezpieczeństwa Metody Zbytnie uogólnienie/uśrednienie Singular Value Decomposition (Latent Semantic Analysis) Random Projection
Prezentacja wyników Metody wizualizacji w przeglądarce: Teksty jako punkty w 2D, 3D: skalowanie wielowymiarowe ( MDS - Multidimensional scaling) metryczne zachowanie odległości niemetryczne zachowanie porządku w odległościach t-distributed Stochastic Neighbor Embedding (TSNE) zachowanie podobieństwa miara Kullback-Leibler nieliniowa redukcja wielowymiarowości Spectral Embedding (Laplacian Eigenmaps) zachowanie lokalnych informacji graf łączący sąsiednie punkty (podobne teksty)
WebStyEn - nie tylko język polski Język angielski - z wykorzystaniem spacy
Przykład cech Przetwarzanie: WebSty, korpusie 1000 klasycznych dzieł, cechy leksykalne, interpunkcja, bigramy; ważenie PMI, selekcja Mann-Whitney Kraszewski_syn_jazdona_1880 Kraszewski_krakow-za-loktka_1880 Kraszewski_pogrobek_1880 Kraszewski_kunigas_1882 Kraszewski_boleszczyce_1877 Kraszewski_stara-basn-tom-III_1876 Kraszewski_braciazmartwychwstancy_1876 Kraszewski_banita_1885 Kraszewski_strzemienczyk_1883 Kraszewski_stara-basn-tom-I_1876 Kraszewski_bialy-ksiaze_1882 Kraszewski_jelita_1881 Kraszewski_caprea-i-roma_1860 Kraszewski_stara-basn-tom-II_1876 Stryjkowski_stryjkowski_kronika-polskalitewska-zmudzka-i-wszystkiej-rusi_1846 bigrams:inf_imps bigrams:inf_praet bigrams:ppron3_pcon bigrams:ppas_pcon bigrams:imps_interp bigrams:ppron3_pant bigrams:pant_interp lex_classes:imps_count bigrams:subst_pant bigrams:interj_inf base:wszyscy bigrams:siebie_pcon base:on base:choć base:gdy bigrams:praet_pant bigrams:ppron3_imps bigrams:adj_pant bigrams:pant_pact
WebSty: ćwiczenia 1. WebSty: http://websty.clarin-pl.eu 2. 3. Mały korpus: 2 autorów, 5 nowel http://ws.clarin-pl.eu/public/teksty/2mini.zip analiza całych tekstów: cechy, metody, wizualizacja Analiza z podziałem na grupy, j.w. oraz dodatkowo analiza istotności cech Testy na predefiniowanych ustawieniach 35 książek, rozszerzona analiza autorstwa, różne metody grupowania, wykrycie cech istotnych 4. Mały korpus 50 książek ( podkorpus) korpus: http://ws.clarin-pl.eu/50k.zip należy wybrać dowolną próbkę tekstów do 31 tekstów przetestować WebSty na różnych ustawieniach