WK, FN-1, semestr letni 2010 Korpusy tekstów w lingwistyce. Wyrażenia regularne. Cz. I Natalia Kotsyba, IBI AL UW 3 marca 2010
Czym jest korpus? Zbiór tekstów albo zapisanych wypowiedzi w postaci elektronicznej, wykorzystywany dla celów analizy lingwistycznej (The American Heritage Dictionary of the English Language) surowy bądź anotowany jedno- lub wielojęzyczny (komparatywny/równoległy) reprezentatywny; zrównoważony; specjalistyczny mały (do 1 mln słów) lub duży (od kilkudziesięciu mln słów i wyżej) Jakie istnieją rodzaje korpusów?
Czym jest korpus równoległy? Zbiór par tekstów (eng. bitexts) w dwóch albo więcej językach Запропонована модель виглядає доволі переконливо... Proponowany model wygląda dość przekonująco...
Czemu służą korpusy? Baza danych odpowiedników słów i wyrażeń oraz ich kontekstów dla osób uczących się języka Baza danych dla analizy lingwistycznej Punkt wyjścia do konstrukcji wiarygodnych słowników
Jak tworzymy korpusy? Dobieramy obszerny zbiór tekstów reprezentujących różne style językowe (np. artykuł, notatka prasowa, korespondencja, dokumentacja techniczna, literatura piękna). Znakujemy surowiec za pomocą odpowiednich narzędzi: lematyzator, analizator morfologiczny, aligner. Jakie narzędzia są stosowane do tworzenia korpusów?
Narzędzia do znakowania Lematyzator (poziom Google'a) dokonuje analizy morfologicznej w oparciu o heurystyki (http://pl.wikipedia.org/wiki/heurystyka_%28informatyka %29) jest przydatny w przypadku braku analizatora morfologicznego, ale wyniki wymagają weryfikacji Lemat podstawowa forma słowa; forma hasłowa, od greckiego λήμμα.
Narzędzia do znakowania Analizator morfologiczny wyznacza formę lub formy (w przypadku homonimii) podstawowe słowa oraz jego charakterystyki gramatyczne na podstawie bazy słownikowej oraz reguł gramatycznych miał 1. mieć, czasownik, 3os lp, cz. przeszły, tr. orzekający... 2. miał, rzeczownik, mianownik lp. r.męski... Istniejące analizatory języka polskiego: Marcin Woliński et al., IPI PAN (Morfeusz) Krzysztof Szafran, MIM UW M. Gajęcki et al., AGH
Narzędzia do znakowania Aligner służy do wyrównywania tekstów równoległych, przyporządkowując nawzajem odpowiadające sobie ich fragmenty typowymi fragmentami są zdania lub akapity Problem: jak wyróżnić i dopasować zdania?
Korpus IPI PAN od środka @ korpus.pl Ile słów jest tutaj zakodowano? <tok> <orth>porządek</orth> <lex><base>porządek</base><ctag>subst:sg:acc:m3</ctag></lex> <lex disamb="1"> <base>porządek</base><ctag>subst:sg:nom:m3</ctag> </lex> </tok> <tok> <orth>dzienny</orth> <lex><base>dzienny</base><ctag>adj:sg:acc:m3:pos</ctag></lex> <lex><base>dzienny</base><ctag>adj:sg:nom:m1:pos</ctag></lex> <lex><base>dzienny</base><ctag>adj:sg:nom:m2:pos</ctag></lex> <lex disamb="1"> <base>dzienny</base><ctag>adj:sg:nom:m3:pos</ctag> </lex> </tok>
Segmentacja wyrazów i zdań (2.1) Kiedy to się działo? W latach 40. Stany Zjednoczone włączyły się do wojny. (2.2) Skorzystać z Yahoo! Marek i jego koledzy nie chcieli. Ile zdań w 2.1 i 2.2? (uzasadnienie) (3.1) Bo ja się naprawdę boję głośno roześmiać. Ile lematów? (3.4) a. Dawno nie śpiewałam i nie tańczyłam. b. Dawnom nie śpiewała i nie tańczyła. (3.5) a. Kiedyś zatańczyłbym i zaśpiewałbym tam. b. Kiedyś bym tam zaśpiewał i zatańczył. Ile słów? Źródło tutaj i dalej: Adam Przepiórkowski. Korpus IPI PAN. Wersja wstępna. WARSZAWA 2004, dostępny na korpus.pl Kiedyś przyszedł doń, znaszli, itp. (Ile segmentów?)
Segmentacja wyrazów w Korpusie IPI PAN: zasady Za odrębne segmenty uznane są partykuły by, -ż(e) i -li; odrębnym segmentem jest poprzyimkowa nieakcentowana forma zaimka -ń; wyrazy złożone pisane przez łącznik są dzielone na segmenty; nie są natomiast dzielone skrótowce zawierające łącznik sygnalizujący odmianę, np. PRL-u; dzielone na segmenty są także występujące na końcu zdania formy kończące się kropką, np. skróty typu itd., itp., liczby pisane cyframi w znaczeniu porządkowym i inicjały, np. itp., George W. itp. ; W wypadku, gdy takie formy liczb nie występują na końcu zdania, są one uznawane za pojedyncze segmenty (haplologia kropki); znaki punktuacji są segmentami też (łącznie z łącznikiem).
Policz segmenty wg zasad KIPI Pojechalibyśmy z Janem M. Rokitą i Janem Nowakiem- Jeziorańskim na sesję polsko-amerykańską, gdyby nas zaprosił George W. Byłaby to nasza już 2. doń podróż od czasów PRL-u, a może i 3., czy nawet 4.
Dezambiguacja (ujednoznacznienie) Ile interpretacji? Podaj charakterystyki gramatyczne każdego słowa w każdej interpretacji, przykład na slajdzie 7. Miałem miał Jaki przypadek? (2.3) Pożądała go. (2.5) Pamiętam ją pijaną. Por. (2.4) a. Pożądał ją. b. Pożądał jej. (2.6) a. Pamiętam go pijanego. b. Pamiętam go pijanym.
Skróty w KIPI partykuło-przysłówki (żargonowo kubliki ): itp., itd., np., etc., jw., przymiotniki: tzw., śp., ww., rzeczowniki: br., cd., przyimki: ds. (prep:gen), pt. (prep:nom), formy nieprzeszłe czasownika: cdn.
Struktura znaczników morfosyntaktycznych (tag=znacznik, tagset=zestaw znaczników) Znaczniki (tagi) określają formę podstawową (tzw. lemat) i charakterystykę morfoskładniową danego segmentu (tzw. znacznik morfosyntaktyczny). Każdy znacznik morfosyntaktyczny jest ciągiem wartości rozdzielonych dwukropkami, np.: subst:sg:nom:m1 dla segmentu chłopiec. Pierwsza wartość, np. subst, określa klasę gramatyczną (w KIPI są nazywane fleksemami za Januszem Bieniem), następne zaś, np. sg, nom i m1 wartości odpowiednich dla tej klasy kategorii gramatycznych.
Klasy (fleksemy) i kategorie gramatyczne w KIPI: pierwsze przybliżenie Fleksemy: subst, depr, num, numcol, adj, adja, adjp, adv, ppron12, ppron3, siebie, fin, bedzie, aglt, praet, impt, imps, inf, pcon, pant, ger, pact, ppas, winien, pred, prep, conj, qub, xxs, xxx, ign, interp Kategorie i ich wartości: num (sg, pl); case (nom, gen, dat, acc, inst, loc, voc); gen (f, m1, m2,m3, n); per (pri, sec, ter); deg (pos, comp, sup); asp (imperf, perf); neg (aff, neg); akc (akc _go_, nakc)_jego_; praep (praep _niego_, npraep _jego_); acc (congr _dwaj_, rec _pięcioma_), agl (agl _niosł_, nagl _niósł_); wok (wok -em, nwok -m) Bardziej szczegółowy opis można znaleźć w materiałach następnych zajęć.
Wyszukiwanie w KIPI online: http://korpus.pl/poliqarp/poliqarp.php Wyszukiwanie bezpośrednie formy wyrazów. Wystarczy wprowadzić dany ciąg do okienka wyszukiwania, np.: kwiatek Kwiatek kwiatek/i (przełącznik /i pozwala na ignorowanie kasztowości liter) Wielkość prawego i lewego kontekstu można dostosować w opcjach wyszukiwarki. Wyniki wyszukiwania można sortować według lewego albo prawego kontekstu, rosnąco (a fronte) bądź spadająco (a tergo), zob. opcje wyszukiwarki.
Wyszukiwanie w KIPI: informacje zawarte w znakowaniu Obecność znakowania (anotacji, informacji o) w Korpusie pozwala na ograniczenie wyników wyszukiwania ze względów na: strukturę tekstów (zdania, akapity) metadane, czyli dane o danych, np. autor, tytuł tekstu, styl, czas napisania utworu rozbudowane dane gramatyczne
Wyrażenia regularne (REGEXP, regular expressions) Wyrażenia regularne to są zwarte sposoby zapisywania wzorów ciągów, które chcemy znaleźć w tekstach. Niektóre znaki w wyrażeniach regularnych pełnią specjalne funkcję i są nazywane znakami specjalnymi albo metaznakami:?, *, +,!,.,,,, {, }, [, ], (, ) oraz liczby naturalne pisane cyframi arabskimi. Jeżeli mają być częścią wyszukiwanych ciągów, należy je poprzedzić ukośnikiem, np. \?, \,, itd. Kropka. w regexp oznacza dowolny znak?, *, +, wskazują na ilość powtózeń fragmentu ciągu (kwantyfikatory), zob. przykłady i definicje dalej {, }, w takich nawiasach wpisujemy liczbę oczekiwanych powtórzeń zadanego ciągu [, ],, nawiasy kwadratowe i kreska pionowa są używane dla deklaracji alternatyw (, ), nawiasy okrągłe są używane dla wyodrębnienia fragmentów ciagów będących grupami znaków
Wybrane wyrażenia regularne (przećwiczenie za pomocą Poliqarpu) Ala Ela ( = alternatywa) [AEO]la ( [] = zestaw alternatyw) beza? (? = jedno albo zero wystąpień, np. bez, beza) bez. (. = dowolny znak, np. beza, bezy, ~bez) bez.? (bez, beza, bezy, bezą, ~ bezami).z.z..z.z..? a*by ( * = zero albo więcej wystąpień, np. aby, aaaby, ~abbyy) Ala.* (Ala, Alabama) ala.* /i (ala, ala, alabaster).*al+ ( + = jedno lub więcej wystąpień) al, all, a, robal, alll, Gall (Które nie pasuje?)
Wyrażenia regularne cd (przećwiczenie za pomocą Poliqarpu) "(pod na za)jecha.*" segmenty zaczynające się od podjecha, najecha i zajecha, np. podjechał, zajechawszy. Kwantyfikator {n,m} oznacza od n do m wystąpień znaku lub wyrażenia zawartego w nawiasy okrągłe bezpośrednio przed nim: a{1,3}b.* /i (Aby, aaaby, ABBYY, ABBA) {3} dokładnie 3 wystąpienia {3,} co najmniej 3 wystąpienia, tzn. od 3 i wyżej {,3} co najwięcej 3 wystąpienia, tzn. od zera do 3 "[bcćdfghjklłmnńprsśtwzżź]{4,}[aąeęioóuy]"/i segmenty składające się z co najmniej 4 spółgłosek i dokładnie jednej samogłoski, np. źdźbła i Chrzczę
Wyrażenia regularne cd (przećwiczenie za pomocą Poliqarpu) ".*(la){3,}.* segmenty, w których ciąg la występuje przynajmniej 3 razy pod rząd, np. tralalala, sialalala Specykacje segmentów podane powyżej muszą pasować do całych segmentów, stąd konieczność umieszczenia po obu stronach ciągu (la){3,} w zapytaniu wyżej wyrażenia.*, pasującego do dowolnego ciągu znaków. Ten sam efekt zostanie osiągnięty przy użyciu flagi /x, oznaczającej, że dana specykacja segmentu musi pasować przynajmniej do części danego segmentu, niekoniecznie do całego segmentu: "(la){3,}"/x "(la){3,}"/ix (dodatkowa flaga /i każe ignorować wielkość liter): segmenty, w których występuje ciąg lalala, LaLAla itp., np. tralalala, SiaLaLALA.