Korpusomat � narz¦dzie do tworzeniaprzeszukiwalnych korpusów j¦zyka polskiego
Witold Kiera± �ukasz Kobyli«skiMaciej Ogrodniczuk Michaª Wasiluk Zbigniew Gawªowicz
Instytut Podstaw Informatyki PAN
Warsztaty CLARIN-PL w praktyce badawczejLublin
24�25 wrze±nia 2019
(IPI PAN) Korpusomat 25.09.2019 1 / 38
Agenda
Jak b¦d¡ wygl¡daªy te zaj¦cia?
Wprowadzenie � prezentacja Korpusomatu.
Jak dziaªa Korpusomat?
Warsztat � "tutorial".
Tworzenie korpusu
Pobieranie danych z ró»nych ¹ródeª
Metadane tekstów
Przeszukiwanie korpusu
Filtrowanie po metadanych
Generowanie statystyk
Generowanie plików XML
Pytania, uwagi i informacja zwrotna
(IPI PAN) Korpusomat 25.09.2019 2 / 38
Dlaczego warto zajmowa¢ si¦ lingwistyk¡korpusow¡?
Korpus to systematycznie wybrany zbiór tekstów, wykorzystywanych wanalizach lingwistycznych, przechowywanych najcz¦±ciej w formieelektronicznej, cz¦sto uzupeªniony dodatkowymi warstwami anotacji.
Przykªady zastosowa« analiz korpusowych
obliczanie cz¦sto±ci wyst¡pie« sªów, fraz i kolokacji,
badanie najcz¦stszych kontekstów wyst¡pie« sªów lub fraz,
badanie zmian j¦zyka w czasie, przy wykorzystaniu korpusów tekstówhistorycznych,
badanie rzeczywistego wykorzystania j¦zyka przez jego u»ytkowników(korpusy dziedzinowe, korpusy obcoj¦zyczne).
(IPI PAN) Korpusomat 25.09.2019 3 / 38
Dlaczego warto tworzy¢ korpusy tekstowe?
Przykªady istniej¡cych korpusów tekstowych
Narodowy Korpus J¦zyka Polskiego,
British National Corpus,
Penn Treebank,
ale te» np. Korpus J¦zyka Mªodzie»y, ...
Wedªug jakiego klucza mo»na utworzy¢ korpus?
wg dziedziny, np. teksty medyczne, ekonomiczne, prawnicze,
wg autora, np. Stanisªaw Lem,
wg epoki, np. korpus polszczyzny XVIII w.,
...
(IPI PAN) Korpusomat 25.09.2019 6 / 38
Dost¦pne korpusy dla j¦zyka polskiego
(IPI PAN) Korpusomat 25.09.2019 7 / 38
Web as a Corpus
Skorzystajmy z ogromnego zbioru danych, jakim jest sie¢ WWW,aby automatycznie tworzy¢ du»e korpusy
pobieranie (scraping) informacji z sieci - wedªug zadanych kryteriów,
�ltrowanie danych (np. wªa±ciwy j¦zyk),
czyszczenie danych (np. elementy steruj¡ce),
uzupeªnianie o dodatkowe warstwy informacji,
wa»ne metadane - pochodzenie.
(IPI PAN) Korpusomat 25.09.2019 8 / 38
Korpusomat
Czym jest Korpusomat?Narz¦dzie (serwis internetowy), sªu»¡ce do tworzenia wªasnych korpusówtekstowych, automatycznie anotowanych w warstwie morfosyntaktycznej ina poziomie jednostek nazewniczych.
Motywacja
analizy korpusowe s¡ cennym narz¦dziem wspieraj¡cym prac¦lingwistów, leksykografów, tªumaczy, studentów i nauczycieli,
du»¡ warto±ci¡ jest ªatwo±¢ u»ycia narz¦dzia i intuicyjno±¢ �Korpusomat z zaªo»enia powinien posiada¢ minimum potrzebnychfunkcji.
(IPI PAN) Korpusomat 25.09.2019 9 / 38
Idea Korpusomatu
Idea Korpusomatu
tworzenie korpusu nie wymaga specjalistycznej wiedzy,
korpus mo»na utworzy¢ z dowolnego zbioru wªasnych zasobów,
nie s¡ potrzebne »adne dodatkowe instalacje na wªasnym komputerze.
3
TXT
EPUB
DOC
Konwersjado czystego tekstu
Analiza morfologiczna(Morfeusz)
Znakowanie(Concraft2)
Rozpoznawanie nazw własnych (Liner2)
Indeksowanie(MTAS)
Web (przeszukiwanie)
Web (statystyki)
XML (eksport)
(IPI PAN) Korpusomat 25.09.2019 10 / 38
Warsztat
http://korpusomat.pl
WARSZTAT
(IPI PAN) Korpusomat 25.09.2019 11 / 38
Korpusomat � funkcje (1)
�atwo±¢ u»ycia i dodatkowe mo»liwo±ci
pobieranie tekstów ze wskazanych adresów internetowych(web-scraping),
masowe ªadowanie wielu tekstów z plików (drag-and-drop),
ªadowanie archiwów plików ¹ródªowych (zip),
autodetekcja metadanych,
kon�guracja wªasnej struktury metadanych,
generowanie korpusu w formacie XML.
(IPI PAN) Korpusomat 25.09.2019 12 / 38
Korpusomat � funkcje (2)
Jakie typy analiz wykonywane s¡ przez Korpusomat?
znakowanie morfosyntaktyczne � pozwala tworzy¢ zapytania dokorpusu, które zawieraj¡ skªadowe opisuj¡ce morfoskªadni¦poszczególnych segmentów,
znakowanie jednostek nazewniczych � pozwala uwzgl¦dnia¢ wzapytaniach nazwy osób, organizacji, miejsc, itp.,
moduª statystyczny
lista frekwencyjna,
lista terminów,
mo»liwo±¢ tworzenia podsumowa« i grupowania wyników zapyta«, na
przykªad wg metadanych.
(IPI PAN) Korpusomat 25.09.2019 13 / 38
Korpusomat � dziaªanie
Etapy przetwarzania
ekstrakcja tekstu: konwersja formatów binarnych oraz ekstrakcja tre±cigªównej,
konwersja kodowania tekstu do UTF-8,
segmentacja i analiza morfologiczna tekstu,
znakowanie morfosyntaktyczne,
rozpoznawanie jednostek nazewniczych,
indeksowanie korpusu, pozwalaj¡ce na efektywne przeszukiwanie.
(IPI PAN) Korpusomat 25.09.2019 14 / 38
Ekstrakcja tekstu
Konwersja formatów binarnych
konwersja ma na celu uzyskanie tekstu ¹ródªowego z formatubinarnego,
przykªad: lord-jim-tom-pierwszy.epub:
META-INFOPS ⇒ part1.html, part2.html, part3.htmlmimetype
konwersja wykonywana jest za pomoc¡ biblioteki Apache Tika orazoprogramowania Calibre.
Ekstrakcja tekstu gªównego
istotna szczególnie w kontek±cie stron internetowych,
odseparowanie tekstu gªównego od elementów steruj¡cych (nawigacja,przypisy, itp.).
(IPI PAN) Korpusomat 25.09.2019 15 / 38
Segmentacja i analiza morfologiczna
Segmentacja
ma na celu podzielenie ci¡gªego tekstu na rozª¡czne segmenty(tokeny), podlegaj¡ce dalszej analizie,
przykªad: Przyjechałbym do Ciebie. ⇒[Przyjechał][by][m] [do] [Ciebie][.],
segmentacj¦ realizuje analizator Morfeusz.
Analiza morfologiczna
pozwala na okre±lenie mo»liwych interpretacji gramatycznych danegosegmentu,
przykªad: miał (patrz nast¦pny slajd),
analiza morfologiczna wykonywana jest za pomoc¡ analizatoraMorfeusz i sªownika SGJP.
(IPI PAN) Korpusomat 25.09.2019 16 / 38
Znakowanie morfosyntaktyczne
Znakowanie morfosyntaktyczne
celem znakowania jest wybranie jednej z mo»liwych interpretacjigramatycznych segmentu(ujednoznacznienie mo»liwo±ci otrzymanych w wyniku analizymorfosyntaktycznej),
przykªad: Miał wówczas dwa lata.:[0,1,miał,miał,subst:sg:acc:m3,nazwa pospolita,_
0,1,miał,miał,subst:sg:nom:m3,nazwa pospolita,_
⇒ 0,1,miał,miec:v1,praet:sg:m1.m2.m3:imperf,_,_
0,1,miał,miec:v2,praet:sg:m1.m2.m3:imperf,_,_]
tagowanie realizowane jest za pomoc¡ tagera Concraft 2.0,wytrenowanego na korpusie NKJP 1M, wersja 1.2.
(IPI PAN) Korpusomat 25.09.2019 17 / 38
Rozpoznawanie jednostek nazewniczych
Rozpoznawanie jednostek nazewniczych
automatyczne rozpoznawanie jednostek nazewicznych pozwalaoznakowa¢ w tek±cie nazwy osób, organizacji, miejsc, itp.,
przykªad: Barrack Obama przyleciał do Polski.,
znakowanie jednostek nazewniczych wykonywane jest za pomoc¡oprogramowania Liner2, z modelem wytrenowanym na korpusie NKJP1M, wersja 1.2.
(IPI PAN) Korpusomat 25.09.2019 18 / 38
Indeksowanie korpusu
Indeksowanie korpusu
ª¡czne indeksowanie wszystkich tekstów zebranych w korpusie dopostaci umo»liwiaj¡cej efektywne przeszukiwanie,
indeksowane s¡ wszystkie poprawnie przetworzone pliki ¹ródªowe,ª¡cznie z metadanymi i poszczególnymi warstwami anotacji,
indeksowanie wykonywane jest z wykorzystaniem oprogramowaniaMTAS,
indeksowanie wykonywane jest asynchronicznie, w tle i nie zakªócawykonywania innych dziaªa« na tym samym lub innym korpusie,
¹ródªowy zestaw plików � anotowane teksty w formacie XML �mog¡ równie» zosta¢ pobrane w postaci archiwum zip do analizwªasnych na lokalnym komputerze.
(IPI PAN) Korpusomat 25.09.2019 19 / 38
Warsztat
http://korpusomat.pl
WARSZTAT
(IPI PAN) Korpusomat 25.09.2019 20 / 38
Podstawy j¦zyka zapyta«
Podstawy j¦zyka zapyta«
(IPI PAN) Korpusomat 25.09.2019 21 / 38
CQL � podstawy j¦zyka zapyta« (1)
Zapytania o segmenty
przyszedł � forma ortogra�czna segmentu,
przyszedł czas � ci¡g segmentów,
Uwaga � segmentacja
Jako odr¦bne segmenty traktowane s¡ formy aglutynacyjne leksemu byc:[łgał][es], [długo][smy], [tak][em]
a tak»e partykuªy by, -z(e) i -li, oraz poprzyimkowa nieakcentowanaforma zaimka -n: [do][n], [ze][n].
(IPI PAN) Korpusomat 25.09.2019 22 / 38
Przykªad analizy j¦zykowej (1)
Konteksty rzeczownika człowiek
(IPI PAN) Korpusomat 25.09.2019 23 / 38
CQL � podstawy j¦zyka zapyta« (2)
Zapytania o formy podstawowe
przyszedł � forma ortogra�czna segmentu,
[orth="przyszedł"] � forma ortogra�czna segmentu,
[base="przyjsc"] � forma podstawowa segmentu,
Uwaga � segmentacja
Chciałbym � nie znajdzie wyst¡pie«, ze wzgl¦du na segmentacj¦,Chciał by m � prawidªowe zapytanie.
Uwaga � kasztowo±¢
Chciałbym � domy±lnie rozró»niane s¡ wielkie i maªe litery w zapytaniu, awi¦c takie zapytanie znajdzie jedynie segmenty pisane z wielkiej litery.
(IPI PAN) Korpusomat 25.09.2019 24 / 38
Przykªad analizy j¦zykowej (2)
Konteksty wszystkich form frazy uczciwy człowiek
(IPI PAN) Korpusomat 25.09.2019 25 / 38
CQL � podstawy j¦zyka zapyta« (3)
Wyra»enia regularne
"Ala|Ela" � Ala lub Ela,
"[AE]la" � Ala lub Ela,
"beza?" � bez lub beza,
"bez." � beza, bezy lub beza,
"bez.?" � bez, beza, beza, ale nie bezami,
"a*by" � aby, ale te» np. aaaaby,
".*al+" � dal, robal, Gall,
"a{1,3}b.*" � Aby, aaaby, absolutnie, ABBA.
(IPI PAN) Korpusomat 25.09.2019 26 / 38
CQL � podstawy j¦zyka zapyta« (4)
Zapytania wy»szego rz¦du
[orth="mine" & base="mina"] � koniunkcja,
[base="on" | base="ja"] � alternatywa,
[] � dowolny segment,
[orth="sie"][]{2,4}[base="bac"] � forma leksemu bac
wyst¦puj¡ca dwie, trzy lub cztery pozycje dalej ni» forma sie.
Zapytania o znaczniki morfosyntaktyczne
[pos="subst"] � rzeczownik,
[pos="subst" & number="sg"] � rzeczownik w liczbie pojedynczej,
[pos="subst" & !gender="f"] � rzeczownik rodzaju m¦skiego lubnijakiego.
(IPI PAN) Korpusomat 25.09.2019 27 / 38
CQL � podstawy j¦zyka zapyta« (5)
�¡czne zapytania o znacznik morfosyntaktyczny
[tag="subst:sg:nom:f"] � rzeczowniki »e«skie w mianowniku opojedynczej warto±ci liczby,
[tag=".*:sg:(nom|acc):m[123].*"] � wykorzystanie wyra»eniaregularnego.
Zastosowanie zbiorczej kategorii feat
[pos="subst" & case="acc" & number="pl" & gender="f"]
[pos="subst" & feat="acc" & feat="pl" & feat="f"]
(IPI PAN) Korpusomat 25.09.2019 28 / 38
CQL � podstawy j¦zyka zapyta« (6)
Kontekst zdania i akapitu
[base="bac"][!orth="sie"]{1,10}[orth="sie"] within <s/>
� forma si¦ wyst¦puje za form¡ leksemu by¢, w odlegªo±ci conajmniej jednego i nie wi¦cej ni» dziesi¦ciu segmentów w ramachjednego zdania, o pojedynczej warto±ci liczby,
[pos="bedzie"] within (<s/> containing [pos="inf"]) �wyst¡pienia czasownika by¢ w czasie przyszªym zªo»onym ograniczonedo zda« zawieraj¡cych form¦ bezokolicznika.
Pocz¡tek / koniec zdania
<s> [pos="num"] � wszystkie wyst¡pienia liczebnika stoj¡cego napocz¡tku zdania,
[pos="num"][pos="interp"]</s> � wszystkie wyst¡pienia ci¡guskªadaj¡cego si¦ z liczebnika i znaku interpunkcyjnego stoj¡cych nako«cu zdania.
(IPI PAN) Korpusomat 25.09.2019 29 / 38
CQL � podstawy j¦zyka zapyta« (7)
Zapytania o jednostki nazewnicze
<ne/> � dowolna jednostka nazewnicza (równie» wielowyrazowa),
<ne="persName" /> � imi¦ lub nawisko osoby,
[ne="persName"] � pojedynczy segment, który jest imieniem lubnazwiskiem osoby,
<ne="persName.forename" /><ne="persName.surname" /> �dwie kolejne jednostki nazewnicze, z których pierwsza jest imieniem, adruga nazwiskiem,
<ne="persName.surname"/> within <ne="geogName"/> �nazwisko osoby, które stanowi cz¦±¢ nazwy geogra�cznej,
[base="nazywac"][]<ne/> � poª¡czenie zapytania o segmenty zzapytaniem o jednostki nazewnicze.
(IPI PAN) Korpusomat 25.09.2019 30 / 38
CQL � podstawy j¦zyka zapyta« (8)
�¡czenie typów zapyta«
[pos="conj" & base="i"] within <ne="orgName" /> �wszystkie nazwy organizacji zawieraj¡ce spójnik i, np. Krajowa RadaRadiofonii i Telewizji czy Instytut Meteorologii i Gospodarki Wodnej,
<ne="persName" /> !containing <ne="persName.forename" />
� wszystkie jednostki nazywaj¡ce osoby, których skªadow¡ nie jestimi¦,
<ne="geogName" /> [pos="conj"] <ne="geogName" /> �wyst¡pienia dwóch nazw geogra�cznych poª¡czonych spójnikiemwspóªrz¦dnym, np. Europa Zachodnia lub Skandynawia,
[orth="A.*"][orth="M.*"] fullyalignedwith <ne="persName"
/> � dwa kolejne segmenty, z których pierwszy zaczyna si¦ od A,drugi za± od M i które w caªo±ci w tek±cie wyst¦puj¡ jako nazwaosoby, np. Adam Michnik, Antoni Macierewicz.
(IPI PAN) Korpusomat 25.09.2019 31 / 38
Przykªady analiz � Joseph Conrad
Korpus
wszystkie utwory Josepha Conrada z Wolnych Lektur (dwie powie±ci,przygar±¢ opowiada«),
ponad 560 tys. segmentów.
Analiza
lista frekwencyjna rzeczowników,
sªownictwo charakterystyczne.
Rezultat
Na li±cie da¢ kilka wyra¹nie tematyczny (marynistycznych) rzeczowników:
kapitan (19.), statek (20. miejsce),
morze (29.), woda (37.),
pokªad (43.), okr¦t (46.).
(IPI PAN) Korpusomat 25.09.2019 32 / 38
Przykªady analiz � Joseph Conrad (2)
(IPI PAN) Korpusomat 25.09.2019 33 / 38
Przykªady analiz � Joseph Conrad (3)
(IPI PAN) Korpusomat 25.09.2019 34 / 38
Korpusomat � dalsze prace
Pomysªy na dalsze plany rozwoju Korpusomatu
podgl¡d dodatkowych warstw anotacji tekstu (np. sentyment, sensysªów),
gotowe zbiory danych (korpusy) do analiz porównawczych,
mo»liwo±¢ publicznego udost¦pniania swoich korpusów.
Sugestie mile widziane!
(IPI PAN) Korpusomat 25.09.2019 35 / 38
Wdro»enia Korpusomatu
Korpus tekstów polskich z XVII i XVIII w. (http://korba.edu.pl)
(IPI PAN) Korpusomat 25.09.2019 36 / 38
Wdro»enia Korpusomatu (cd.)
Korpus tekstów polskich z XIX w.(http://korpus19.nlp.ipipan.waw.pl)
(IPI PAN) Korpusomat 25.09.2019 37 / 38
Dzi¦kujemy!
Dzi¦kujemy za uwag¦.
(IPI PAN) Korpusomat 25.09.2019 38 / 38