CLARIN-PL Narzędzia do automatycznej analizy odniesień w tekstach Michał Marcińczuk Jan Kocoń Politechnika Wrocławska Katedra Inteligencji Obliczeniowej Grupa Naukowa G4.19 michal.marcinczuk@pwr.edu.pl jan.kocon@pwr.edu.pl 2015-04-13
Agenda Część I Część III Wstęp teoretyczny Praca z odniesieniami Czym są odniesienia Przeglądanie wyników, ręczna ocena Część II Część IV Automatyczne rozpoznawanie odniesień w tekście Zaawansowane metody przeglądania anotacji Korpus wzorcowy, modele statystyczne Język WCCL Match 2
Agenda Część I Część III Wstęp teoretyczny Praca z odniesieniami Czym są odniesienia Przeglądanie wyników, ręczna ocena Część II Część IV Automatyczne rozpoznawanie odniesień w tekście Zaawansowane metody przeglądania anotacji Korpus wzorcowy, modele statystyczne Język WCCL Match 3
I. Czym są odniesienia Odniesienia to fragmenty tekstu reprezentujące pojęcia określonych kategorii. Rozważane kategorie odniesień: A) Jednostki identyfikacyjne, B) Wyrażenia temporalne. 4
I.A. Jednostki identyfikacyjne Jednostki identyfikacyjne to fragmenty tekstu odnoszące się do pewnych obiektów lub grup obiektów określonych kategorii. Wyróżniamy trzy główne grupy jednostek identyfikacyjnych: nazwy: º nazwy własne np. Politechnika Wrocławska, Polska, º nazwy ogólne nazwy klas lub serii, np. iphone 4, Astra 2.0, przymiotniki pochodzące od nazw własnych, np. polski, gdański, europejskimi. wyrażenia liczbowe jednoznacznie identyfikujące obiekty lub będące częścią takich wyrażeń, np.. numer domu/mieszkania, numer PESEL, itp. 5
I.A. Wytyczne znakowania Nie ma jednej ugruntowanej definicji czym są jednostki identyfikacyjne konieczność sformułowania definicji i określenia zakresu znakowania. WytyczneKPWr-JednostkiIdentyfikacyjne.pdf Kategoryzacja semantyczna Sekine's Extended Named Entity Hierarchy (http://nlp.cs.nyu.edu/ene/), wytyczne ACE Definicja nazw własnych: Słownik nazw własnych J. Grzeni, ekspertyza Zespołu Ortograficzno-Onomastyczneg Własne założenia wynikające z planowanych zastosowań i docelowej reprezentacji danych. 6
I.A. Schemat jednostek identyfikacyjnych (1/2) Schemat definiuje ponad 100 kategorii jednostek identyfikacyjnych. Kategorie są ułożone w kilkupoziomową hierarchię. Na najwyższym poziomie znajduje się dziewięć grup: nam_adj przymiotniki pochodzące od nazw własnych, nam_eve wydarzenia organizowane lub ustalone przez ludzi oraz klęski żywiołowe, nam_fac konstrukcje (budowle, budynki, pomniki) stworzone przez ludzi. nam_liv istoty żywe (ludzie, postacie, zwierzęta), nam_loc toponimy (lokalizacje, jednostki geopolityczne i geograficzne), nam_num wyrażenia liczbowe, nam_org organizacje, instytucje, zespoły, zorganizowane grupy itd. nam_oth nazwy technologii, walut, adres e-mail, strony www, itd. nam_pro chrematonimy (wytwory ludzkie). 7
I.A. Schemat jednostek identyfikacyjnych (2/2) Kategorie szczegółowe dla nam_loc nam_loc_astronomical naturalne ciała niebieskie, nam_loc_country_region regiony geograficzne w obrębie kraju, nam_loc_gpe jednostki geopolityczne. nam_loc_gpe_admin podział administracyjny,, nam_loc_gpe_city miasta I 4 pozostałe podkategorie nam_loc_gpe_* nam_loc_hydronym naturalne obiekty wodne, nam_loc_hydronym_river rzeki, nam_loc_hydronym_lake jeziora, i 4 pozostałe podkategorie nam_loc_hydronym_* nam_loc_land ziemne obiekty geograficzne, nam_loc_land_cape przylądki. nam_loc_land_continent kontynenty. I 8 pozostałych podkategorii nam_loc_land_* 8
I.B. Wyrażenia temporalne Wyrażenia temporalne to fragmenty tekstu odnoszące się do czasu. Wyrażenia te mówią nam kiedy coś się stało, jak długo coś trwało albo jak często coś się wydarza.. Wytyczne anotacji zostały opracowane w oparciu o wytyczne TimeML. (oryginalnie stworzone dla j. angielskiego). WytyczneKPWr-WyrażeniaTemporalneTIMEX.pdf Kategoria Anotacja Opis Data t3_date Wyrażenie opisujące termin zgodnie z kalendarzem. Jest to jednostka czasu większa lub równa jednemu dniowi (rozumianemu jako doba). Odpowiada na kluczowe pytanie: kiedy. Pora t3_time Typ wyrażenia lokalizującego. Określenie to odnosi się do pory dnia (nocy). Nie musi ono być bardzo precyzyjne. Odpowiada na kluczowe pytanie: kiedy. Trwanie t3_duration Wyrażenie opisujące czas trwania jakiejś sytuacji, wyodrębniony przedział czasowy, w którym coś się dzieje. Odpowiada na kluczowe pytanie: jak długo. Seria t3_set Wyrażenie opisujące serię zdarzeń. Odpowiada na kluczowe pytanie: jak często. 9
I.B. Wyrażenia temporalne Przykłady Data (t3_date) Trwanie (t3_duration) piątek 1 października 1999 roku. dwa miesiące w Kamionce Górnej. drugiego grudnia. 48 godzin wczoraj. trzy tygodnie latem 1964 roku. całą ostatnią noc [we] wtorek osiemnastego. 20 dni w lipcu [w] listopadzie 1943. 3 godziny w zeszły poniedziałek, latem tego roku Pora (t3_time) Seria (t3_set) dwa razy w tygodniu. za dziesięć trzecia. co dwa dni. dwadzieścia po dwunastej. każdej niedzieli. wpół do pierwszej. [o] jedenastej rano. 9.00 w piątek 1 października 1999. rankiem 31 stycznia. wczoraj w nocy. 10
I. Korpus KPWr Wytyczne dla jednostek identyfikacyjnych i wyrażeń temporalnych zostały użyte do oznakowania korpusu KPWr materiał do trenowania modeli statystycznych oraz oceny jakości narzędzi. Charakterystyka KPWr: Ponad 1600. dokumentów na licencji Creative Commons, Fragmenty długości do 200 słów, Teksty zróżnicowane tematycznie i gatunkowo (15 podkorpusów). Anotacje odniesień: Jednostki identyfikacyjne 1205 dokumentów,19854 anotacji, Wyrażenia temporalne 1635 dokumentów, 6099 anotacji. Inne warstwy anotacji: frazy składniowe, znaczenia słów (WSD), relacje semantyczne między jednostkami identyfikacyjnymi, koreferencja, lematyzacja. 11
I. Korpus KPWr» podział na podkorpusy Liczba dokumentów w podkorpusach 171 blogi 358 dap (długie artykuły preasowe) 132 dialog kap (krótkie artykuły prasowe) nauka 91 popularno-naukowe i podręczniki 123 proza dawna proza współczesna religijne 221 80 stenogramy techniczne 62 17 87 79 73 86 42 15 urzędowe ustawy wikinews wikipedia 12
Agenda Część I Część III Wstęp teoretyczny Praca z odniesieniami Czym są odniesienia Przeglądanie wyników, ręczna ocena Część II Część IV Automatyczne rozpoznawanie odniesień w tekście Zaawansowane metody przeglądania anotacji Korpus wzorcowy, modele statystyczne Język WCCL Match 13
II. Liner2 Cechy narzędzia do automatycznego rozpoznawania odniesień: wykorzystuje model statystyczny, dedykowane metody regułowo-słownikowe, klasyfikacja w oparciu o cechy z lokalnego kontekstu. Procedura konstrukcji modelu: 1) Opracowanie wytycznych i oznakowanie korpusu treningowotestowego. 2) Definicja potencjalnych cech do opisu tokenów w tekście. 3) Eksperymentalna selekcja cech istotnych i optymalizacja parametrów modelu statystycznego. 4) Uczenie modelu statystycznego. 5) Uzupełnienie modelu statystycznego regułami i metodami słownikowymi. 14
II. Statystyki anotacji w KPWr Na potrzeby uczenia, dostrajania parametrów i testowania korpus KPWr został podzielony na trzy części: Część ucząca (ok 50%) - testowanie różnych konfiguracji modelu, badanie istotności statystycznej między różnymi wariantami modelu (walidacja krzyżowa), uczenie ostatecznej wersji modelu,, Część pomocnicza (ok 25%) - dostrajanie parametrów, Część testowa (ok 25%) - ocena ostatecznego modelu. Kategoria Uczący Pomocniczy Testowy Razem ~50% ~25% ~25% 100% Dokumenty Jednostki identyfikacyjne Anotacje 600 300 305 1 205 9 604 5 274 4 976 19 854 Dokumenty 819 408 408 1 635 2 949 1 632 1 518 6 099 Wyrażenia temporalne Anotacje 15
II. Modele danych Dostępne modele danych: 1) Jednostki identyfikacyjne granice jednostek Named Entities (nam) główne kategorie Named Entities (top9) szczegółowe kategorie Named Entities (n82) 2) Wyrażenia temporalne granice wyrażeń Temporal Expressions (1class) cztery kategorie Temporal Expressions (4classes) 16
II.A. Jednostki identyfikacyjne» jakość rozpoznawania (1/3) Model n82 (wybrane kategorie) Precyzja Precyzja Kompletność nam_adj_country 73% 66% nam_adj_country nam_fac_road 74% 61% nam_fac_road nam_liv_person 71% 79% nam_liv_person nam_loc_gpe_admin1 79% 65% nam_loc_gpe_admin1 nam_loc_gpe_admin2 86% 72% nam_loc_gpe_admin2 nam_loc_gpe_city 69% 81% nam_loc_gpe_city nam_loc_gpe_country 91% 94% nam_loc_gpe_country nam_loc_hydronym_river 89% 50% nam_loc_hydronym_river nam_loc_land_continent 92% 78% nam_loc_land_continent nam_org_group_team 78% 68% nam_org_group_team nam_org_nation 81% 59% nam_org_nation nam_org_political_party 89% 74% nam_org_political_party nam_oth_currency 100% 74% nam_oth_currency Łącznie 67% 59% Łącznie Granice 86% 75% Granice Kategoria 0 10 Kompletność 20 30 40 50 60 70 80 90 17 100
II.A. Jednostki identyfikacyjne» jakość rozpoznawania (2/3) Model top9 Precyzja Kategoria Precyzja Kompletność nam_adj 74% 61% nam_adj nam_eve 55% 28% nam_eve nam_fac 69% 37% nam_fac nam_liv 79% 78% nam_liv nam_loc 82% 87% nam_loc nam_num 100% 64% nam_num nam_org 65% 68% nam_org nam_oth 75% 48% nam_oth nam_pro 57% 50% nam_pro Łącznie 73% 69% Łącznie Granice 85% 80% Granice 0 10 20 30 40 Kompletność 50 60 70 80 90 100 18
II.A. Jednostki identyfikacyjne» jakość rozpoznawania (3/3) Model nam Kategoria Precyzja Precyzja Kompletność nam 85% 83% Granice (top9) 85% 80% Granice (top9) Granice (n82) 86% 75% Granice (n82) Kompletność nam 0 10 20 30 40 50 60 70 80 90 100 19
II.B. Wyrażenia temporalne» jakość rozpoznawania Modele 1class i 4classes Precyzja Kompletność t3_date 90% 86% t3_date t3_time 77% 54% t3_time t3_duration 72% 70% t3_duration t3_set 68% 34% t3_set Łącznie 86% 79% Łącznie timex 86% 83% timex Kategoria Precyzja 0 10 20 30 Kompletność 40 50 60 70 80 90 100 20
Agenda Część I Część III Wstęp teoretyczny Praca z odniesieniami Czym są odniesienia Przeglądanie wyników, ręczna ocena Część II Część IV Automatyczne rozpoznawanie odniesień w tekście Zaawansowane metody przeglądania anotacji Korpus wzorcowy, modele statystyczne Język WCCL Match 21
III. Rozpoznawanie odniesień Sposoby korzystania z narzędzi: 1) Dostęp programistyczny narzędzie Liner2 wraz modelami dostępne jest na licencji GPL; strona www: http://nlp.pwr.wroc.pl/liner2. 2) Demo Liner2 możliwość szybkiego przetworzenia i wyświetlenia wyników rozpoznawania dla krótkich tekstów; strona www: http://inforex.clarin-pl.eu/index.php?page=ner. 3) Przetwarzanie przez D-Space daje możliwość przetworzenia dowolnej liczby tekstów bez konieczności instalowania narzędzia. 22
III. Demo Liner2 http://inforex.clarin-pl.eu/index.php?page=ner 23
III. D-Space ->Inforex Dokumenty użytkownika D-Space any2txt wcrft2 Liner2 WoSeD on 1) Jednostki identyfikacyjne (nam) 2) Jednostki identyfikacyjne (top9) 3) Jednostki identyfikacyjne (n82) 4) Wyrażenia temporalne (timex1) 5) Wyrażenia temporalne (timex4) Przeglądanie anotacji w dokumencie (Preview) Weryfikacja anotacji (Bootstrapping) Przeglądanie anotacji po kategoriach (Annotation browser ) Eskport listy anotacji do plikucsv (Annotation browser ) 24
Weryfikacja i przeglądanie odniesień w systemie Inforex 25
III. Inforex Preview 26
III. Inforex Bootstrapping 27
III. Inforex Annotations 28
III. Inforex Annotation browser 29
III. Eksport do pliku CSV 30
Agenda Część I Część III Wstęp teoretyczny Praca z odniesieniami Czym są odniesienia Przeglądanie wyników, ręczna ocena Część II Część IV Automatyczne rozpoznawanie odniesień w tekście Zaawansowane metody przeglądania anotacji Korpus wzorcowy, modele statystyczne Język WCCL Match 31
IV. Wccl Match 32
IV. Wccl Match (Corpus)» Przybornik 33
IV. Wccl Match (Corpus)» opis anotacji 34
IV. Wccl Match (Corpus)» edytor reguł 35
IV. Wccl Match (Corpus)» wynik wyszukiwania 36
IV. WCCL i Wccl Match Formalizm WCCL Formalizm Wccl Match WCCL (Wrocław Corpus Constraint Language) to formalizm pozwalający na pisanie wyrażeń funkcyjnych wartościowanych na tekście oznakowanym morfo-syntaktycznie. Takie wyrażenie mogą być użyte bezpośrednio jako cechy dla algorytmów maszynowego uczenia przy tworzeniu systemów przetwarzania języka naturalnego. Formalizm powstał z myślą o języku polskim. Wccl Match to formalizm pozwalający na pisanie reguł dopasowania sekwencji tokenów i/lub anotacji w obrębie zdania. Dopasowanie pozwala na naniesienie nowych anotacji na wskazane fragmenty oraz usunięcie istniejących anotacji. Jednym z zastosowań języka WCCL Match jest możliwość wyszukiwania zdań zawierających określone kategorie anotacji oraz spełniające zadane warunki. 37
IV. Składnia reguł Wccl Match» struktura pliku z regułami match_rules ( apply( match( is("person_nam"), in("w", base[0]), is("city_nam") ), cond( not( annsub(:1, "possessive") ) ), actions( mark(m, "person_in_city") ) ) ) Wewnątrz match_rules znajduje się lista reguł (apply). Reguły wykonywane są sekwencyjne w kolejności wystąpienia w match_rules. 38
IV. Składnia reguł Wccl Match» sekcja match match_rules ( apply( match( is("person_nam"), in("w", base[0]), is("city_nam") ), cond( not( annsub(:1, "possessive") ) ), actions( mark(m, "person_in_city") ) ) ) Sekcja match opisuje poszukiwaną sekwencję tokenów i/lub anotacji. 39
IV. Składnia reguł Wccl Match» sekcja cond match_rules ( apply( match( is("person_nam"), in("w", base[0]), is("city_nam") ), cond( not( annsub(:1, "possessive") ) ), actions( mark(m, "person_in_city") ) ) ) Sekcja cond zawiera dodatkowe warunki, jakie muszą spełnić elementy dopasowanej sekwencji. 40
IV. Składnia reguł Wccl Match» sekcja actions match_rules ( apply( match( is("person_nam"), in("w", base[0]), is("city_nam") ), cond( not( annsub(:1, "possessive") ) ), actions( mark(m, "person_in_city") ) ) ) Sekcja actions zawiera listę akcji, które zostaną wykonane na dopasowanej sekwencji. 41
Przykładowe zastosowania 42
IV. Przykładowe zastosowanie» nam + przyimek + nam Annotations nam_prep_nam red yes Rules match_rules ( apply( match( is("nam"), in(prep, class[0]), is("nam") ), actions( mark(m, "nam_prep_nam") ) ) ) I grunt bydziemy mieli jak Dąbek z Poklinkowa, co tu był pierw za parobka, a tera jaki pan. Otwarcie Hotelu Piast we Wrocławiu niedziela, 1 marca 2015 Hotel Piast po trwającym półtora roku generalnym remoncie znów otwarty od 18 lutego 2015 roku WIG20 bez Lotosu, Kernela i JSW poniedziałek, 23 marca 2015 Od dzisiejszej sesji Jastrzębska Spółka Węglowa obok Lotosu i ukraińskiej spółki Kernel Holding nie będą już notowane indeksie Giełdy Papierów Wartościowych WIG20 poinformowała giełda w komunikacie prasowym. 43
IV. Przykładowe zastosowanie» rzeczownik + nam (uzgodniony) Annotations nam_apo red yes Rules match_rules ( apply( match( and( equal(class[0], subst), not(equal(cas[0], gen)) ), is("nam") ), cond( if( skip(first(m), $L, and( not(equal(class[$l], subst)), not(isannend($l, "nam")) ), 1), and( equal(class[$l], subst), agrpp(first(:1), $L, {cas}) ), False ) ), actions( mark(m, "nam_prep_nam") ) )) Na chłodnik dawał baczenie garbaty mleczarz Dionizy.. Wielki napis MACCORMICK skakał czarnymi literami po ścierniu, na którym odgniatały się w zielonej koniczynce wzorzyste ślady żelaznych kół żniwiarki. Urządzenie RoboCORE to połączenie elektroniki i oprogramowania w niewielkiej obudowie o wymiarach 115 x 125 mm w wersji podstawowej oraz 82 x 82 mm w wersji mini. Udali się oni w pierwszy kurs do końca nowego odcinka na Pradze, którym jest stacja C15 Dworzec Wileński, następnie przejechali całą trasę do stacji C9 Rondo Daszyńskiego na Woli i kolejnym pociągiem wrócili na stację początkową. 44
CLARIN-PL Dziękuję bardzo za uwagę