Korpus Dyskursu Parlamentarnego Maciej Ogrodniczuk Zespół Inżynierii Lingwistycznej Instytut Podstaw Informatyki PAN Warsztaty CLARIN-PL Lublin, 25 września 2019 r.
Korpus Dyskursu Parlamentarnego W pigułce: zbiór dokumentów parlamentu RP z lat 1919 2019 (prawie 700 mln segmentów): stenogramów z posiedzeń plenarnych, stenogramów z posiedzeń komisji, interpelacji, zapytań i odpowiedzi w postaci tekstowej, z anotacjami lingwistycznymi. 2
Dane źródłowe Trochę historii: 1993 : edytowalne PDFy, inne formaty dostępne wewnętrznie i pozyskane w ramach projektu CESAR, 1989 93: skany/ocr stenogramów w ramach CLARIN-u, 1919 88: OCR skanów przygotowanych przez Bibliotekę Sejmową, z poprawkami struktury za pomocą skryptów pisanych przez różne osoby. Parlamentaria: https://biblioteka.sejm.gov.pl/ katalogi_bazy_archiwum_sejmu/ 3
Dane wynikowe Trochę statystyki: Lata Źródło Segmenty 1919 1922 Sejm Ustawodawczy 6 869 099 1922 1939 I V kadencja Sejmu II RP 14 371 884 1922 1939 I V kadencja Senatu II RP 4 840 683 1943 1947 Krajowa Rada Narodowa 251 379 1947 1952 Sejm Ustawodawczy 2 588 892 1952 1991 I X kadencja Sejmu PRL 20 920 827 1991 I VIII kadencja Sejmu III RP 153 411 614 Interpelacje sejmowe 150 539 780 Komisje sejmowe 274 810 580 1989 I-IX kadencja Senatu III RP 44 563 719 Komisje senackie 11 540 909 684 457 987 4
Dane korpusowe Format korpusu: opis lingwistyczny zgodny z Narodowym Korpusem Języka Polskiego, p. http://nlp.ipipan.waw.pl/tei4nkjp/ anotacja zewnętrzna TEI P5 stworzona automatycznie narzędziami analizy lingwistycznej: analizatorem morfologicznym Morfeusz SGJP (podział tekstu na wypowiedzi, segmenty, lematyzacja), tagerem Concraft (ujednoznacznione interpretacje morfoskładniowe), wykrywaczem nazw własnych Liner2 (imiona i nazwiska, organizacje, nazwy geograficzne). 5
Dostęp do korpusu Dostęp: do pobrania w postaci plików XML-owych (aktualnie bez anotacji lingwistycznych): http://clip.ipipan.waw.pl/ppc do przeszukiwania wyszukiwarką MTAS: https://kdp.nlp.ipipan.waw.pl/. 6
Wersja do pobrania Struktura katalogów: +---1919-1922 +---sejm +---posiedzenia +---pp +---191922-sjm-ppxxx-00001-01 header.xml text_structure.xml... +---191922-sjm-ppxxx-00002-01...... PPC_header.xml 7
Wersja do pobrania: nagłówek Podstawowe metadane: <sourcedesc> <bibl> <title>sprawozdanie stenograficzne z obrad Senatu RP z 7 grudnia 2016 r. (kadencja IX, Posiedzenie Plenarne 31, dzień 6).</title> <publisher>kancelaria Senatu RP</publisher> <note type="system">iii RP</note> <note type="house">senat</note> <note type="termno">9</note> <note type="type">posiedzenie Plenarne</note> <note type="sessionno">31</note> <note type="dayno">6</note> <date>2016-12-07</date> </bibl> </sourcedesc> 8
Wersja do pobrania: nagłówek Lista mówców: <profiledesc> <particdesc> <person xml:id="senatorbogdanborusewicz" role="speaker"> <persname>senator Bogdan Borusewicz</persName> </person>... <person xml:id="gloszsali" role="speaker"> <persname>głos z sali</persname> </person> </person> </particdesc> </profiledesc> 9
Wersja do pobrania: struktura tekstu Wypowiedzi: <teicorpus> <xi:include href="ppc_header.xml"/> <TEI> <xi:include href="header.xml"/> <text> <body> <!--... --> <div xml:id="txt_7-div"> <u xml:id="txt_7.1-u" who="#marszalek"> Głos ma poseł Edward Szymański. </u> <u xml:id="txt_7.2-u" who="#poseledwardszymanski"> Obywatelu Marszałku! Wysoki Sejmie! 10
Wyszukiwarka Co potrafi? wyszukiwać teksty na podstawie metadanych (np. tytuł, rok, data posiedzenia, kadencja,...) wyszukiwać segmenty ( słowa). 11
Wyszukiwanie tekstów 12
Model segmentacji Segmentacja a la NKJP: Będę szedł i gwizdał. 5 segmentów (włączając interpunkcję): Gwizdalibyśmy. 4 segmenty: Gwizdali by śmy. ponieważ: byśmy gwizdali oraz: Długośmy gwizdali. 13
Wyszukiwanie segmentów 14
Język zapytań Zapytania o segmenty: warunki dla segmentów zapisujemy w nawiasach kwadratowych: [atrybut="wartość"] najważniejsze atrybuty: base, orth, pos, np. [base="polska"] p. ściągawka do NKJP: http://nkjp.pl/poliqarp/help/pl.html atrybuty można łączyć używając operatorów koniunkcji &, alternatywy i negacji!. 15
Język zapytań Wyrażenia regularne: kropka zastępuje dowolny znak: bez. beza, bezy, bezą itp., ale nie bez czy bezami, znak zapytania oznacza opcjonalność poprzedniego znaku: beza? bez lub beza, gwiazdka oznacza dowolną (także zerową) liczbę wystąpień znaku lub wyrażenia bezpośrednio przed nią: Ala.* Ala i Alaska, nawiasy klamrowe oznaczają określoną liczbę wystąpień znaku lub wyrażenia poprzedzającego, np. tra(la)2,3 odpowiada segmentom tralala i tralalala. 16
Model nazw własnych Nazwy własne a la NKJP: Jednostka nazewnicza persname org- Name geog- Name place- Name date time forename surname add- Name settlement district region country bloc 17
Język zapytań Nazwy własne: zapytania w nawiasach kątowych z podaniem typu: <ne="person"/> operatory łączące segmenty: nazwa geograficzna zawierająca przyimek: <ne="geogname" /> containing [pos="prep"] nazwisko osoby, które stanowi część nazwy geograficznej: <ne="persname.surname"/> within <ne="geogname"/> dwa kolejne segmenty, z których pierwszy zaczyna się od A, drugi od M i które w całości w tekście występują jako nazwa osoby: [orth="a.*"][orth="m.*"] fullyalignedwith <ne="persname"/> 18
Ćwiczenia! Jak w Korpusomacie: 1 W którym roku po raz pierwszy użyto wyrażenia posłanka zamiast poseł? 2 Jaka jest nasza niepodległość? (jaki przymiotnik pojawia się najczęściej pomiędzy tymi dwoma rzeczownikami?) 3 Jaki najdłuższy łańcuch rzeczowników w dopełniaczu znajdziemy w korpusie? 4 Jakie wyrażenia przyimkowe z rzeczownikiem w celowniku pojawiały się najczęściej w wypowiedziach w okresie międzywojennym? 5 Jakie imię będące częścią nazwy organizacji pada w wypowiedziach sejmowych najczęściej? 6...? 19
Wyszukiwarka ngramów W zasadzie eksperyment: wyłącznie na danych posiedzeń plenarnych, trochę jak Google Ngram Viewer (https://books.google.com/ngrams), z możliwością pokazania frekwencji względnej i bezwzględnej. http://ngram.sejm.nlp.ipipan.waw.pl/ 20
Ngramy: socjalizm vs. komunizm 21
Ngramy: budownictwo mieszkaniowe 22
Ngramy: masy pracujące 23
Ngramy: edukacja vs. szkolnictwo 24
Plany na przyszłość Co dalej? porządki w danych (wciąż jest dużo błędów!), więcej danych, lepsza informacja o mówcach, ich przynależności partyjnej, płci,... linki do dokumentów źródłowych, lepsze narzędzia analizy lingwistycznej (nowsze i starsze ), więcej warstw analitycznych, co jeszcze? 25
Dziękuję! Państwu za uwagę, a instytucjom finansującym nasze prace za wsparcie: projekt europejski CESAR: Central and South-East European Resources (CIP ICT-PSP 271022) projekt CLARIN-PL (DIR/WK/2016/02 i 2018/01) 26
Bibliografia Zanim pojawi się książka: Ogrodniczuk M. (2018). Polish Parliamentary Corpus [w:] Darja Fišer, Maria Eskevich, Franciska de Jong (red.) Proceedings of the LREC 2018 Workshop ParlaCLARIN: Creating and Using Parliamentary Corpora, s. 15 19. Paryż, European Language Resources Association. Ogrodniczuk M. (2012). The Polish Sejm Corpus [w:] Proceedings of the Eighth International Conference on Language Resources and Evaluation (LREC 2012), s. 2219 2223. Stambuł, European Language Resources Association. 27