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.. w ujęciu obliczeniowym: analiza statyczna cech tekstów, które mogą być charakterystyczne dla: autora, okresu powstania itd. Typy cech 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 Przygotowanie korpusu tekstów Przetwarzanie językowe i wydobycie wektorów cech Przetwarzanie danych Analiza danych: grupowanie lub klasyfikacja na podstawie cech wektorów 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 35 fragmentów książek za pomocą WebSty z wizualizacją z programu Stylo (Eder i Rybicki)
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 licncji open-source (GPL) Zaopatrzona w interfejs graficzny Wyposażona w szereg metod nadzorowanych i nienadzorowanych Prosta w obsłudze, ale nie banalnie prosta
WebSty otwarty webowy system stylometryczny Warsztaty CLARIN-PL Łódź 3-4 II 2017 CLARIN-PL Idea: aplikacja webowa nie wymagająca instalowania wyposażona w narzędzia do analizy tekstu umożliwiające zdefiniowanie bogatego zestawu cech w połączeniu z dostępem do wielu narzędzi do analizy danych przetwarzania cech, obliczanie podobieństwa, wykrywanie grup, wizualizacji i analizy wyników Zmniejszenie barier technologicznej i wiedzy dla użytkowników w dostępie do narzędzi stylometrycznych
WebSty założenia Warsztaty CLARIN-PL Łódź 3-4 II 2017 CLARIN-PL 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 Grupowanie Klasyfikacja oparta na maszynowym uczeniu się Wizualizacja wyników Wydobywanie cech charakterystycznych dla grup Wszystkie moduły przetwarzające oparte o zestaw otwartych narzędzi. Możliwe podłączanie dalszych narzędzi.
Schemat systemu 1. Załadowanie korpusu z różnych źródeł 2. Wybór cech opisowych 3. Określenie parametrów przetwarzania przetwarzanie cech, np. transformacja liczba grup 4. Wstępne przetwarzanie automatyczne uruchomienie sekwencji narzędzi językowych 5. Obliczenie wartości cech zliczenie statystyk wystąpienia Warsztaty CLARIN-PL Łódź 3-4 II 2017 CLARIN-PL 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 12
Załadowanie plików Korpus z repozytorium Dspace CTJ Korpus spakowany z dysku sieciowego 13
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
Warsztaty CLARIN-PL Łódź 3-4 II 2017 CLARIN-PL 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
Wybór cech 18
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 Warsztaty CLARIN-PL Warszawa 13-15 IV 2015 CLARIN-PL 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
Ważenie cech Metody heurystyczne tf znormalizowana częstość 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 tf.idf 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 przestrzeni Transformacja przestrzeni wektorowej wektor dla każdego dokumentu zostaje znacząco zmniejszony z N cech na M cech, np. z 10 000 do 100 Cel 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
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)
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
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 30
Prezentacja wyników Warsztaty CLARIN-PL Łódź 3-4 II 2017 CLARIN-PL Dane z WebSty: 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 Metody wizualizacji w przeglądarce: Grupowanie: kolory, id grupy (liczba całkowita) dendrogram: rysunek, interaktywne drzewo, wykres kołowy Podobieństwo (relacja tekst-tekst): mapa-ciepła, wykres radarowy
Prezentacja wyników drzewo interaktywne 33
Prezentacja wyników wykres kołowy
Prezentacja wyników mapa ciepła 35
Prezentacja wyników wykres radarowy 36
Prezentacja wyników Warsztaty CLARIN-PL Łódź 3-4 II 2017 CLARIN-PL 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)
Skalowanie wielowymiarowe 38
Skalowanie wielowymiarowe 3D 39
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}) 40
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 42
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
WebStyEn - nie tylko język polski Język angielski - z wykorzystaniem spacy
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 46
WebSty: interfejs do cech
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
Dziękuję bardzo za uwagę http://ws.clarin-pl.eu/websty.html