Tvorba korpusů a vytěžování jazykových dat: metody, modely, nástroje
Vydavatelství Filozofické fakulty Univerzity Palackého v Olomouci Edice Lingvistika
[
[
Petr Pořízka
Recenzovali doc. Mgr. Václav Cvrček, Ph.D.
doc. Mgr. Štefan Beňuš, Ph.D., M.A.
Vydala Univerzita Palackého v Olomouci, Filozofická fakulta Edice Lingvistika, sv. 1 Edici řídí doc. PhDr. Ludmila Veselovská, Ph.D. Zpracování a vydání publikace bylo umožněno díky finanční podpoře udělené roku 2014 Ministerstvem školství, mládeže a tělovýchovy ČR v rámci Institucionálního rozvojového plánu, programu V. Excelence, Filozofické fakultě Univerzity Palackého v Olomouci: Podpora publikační činnosti akademických pracovníků Filozofické fakulty Univerzity Palackého. Neoprávněné užití tohoto díla je porušením autorských práv a může zakládat občanskoprávní, správněprávní, popř. trestněprávní odpovědnost. © Petr Pořízka, 2014 © Univerzita Palackého, 2014 ISBN 978-80-87895-16-0
..... OBSAH
ÚVOD 8
1 Vytěžování korpusových dat a dotazovací jazyk CQL
17
1.1 Kvantitativní metody vyhodnocování korpusových dat 28 1.1.1 Vytvoření frekvenčního slovníku (v Manatee/Bonitu) 30 1.1.2 Disperze výrazů 32 1.1.3 Kolokace a koligace 33 1.1.4 Testy kolokační významnosti – asociační míry 39 1.1.4.1 MI-score – vzájemná informace 40 1.1.4.2 T-test, t-score – míra kontrastu 42 1.2 Základní regulární výrazy CQL (Corpus Query Language) 48 2 Anotace a technické aspekty tvorby korpusů
51
2.1 Formát dat a kódování znaků 56 2.1.1 Konce řádků ve zdrojovém souboru – typy a jejich nastavení 61
2.1.2 Segmentace a tokenizace textu 62 2.1.3 Korpusové formáty vertikály a sloupcová (lingvistická) anotace 68 2.2 Anotace (metadata) a formát XML 71 2.2.1 Element nebo atribut? – strukturování XML dokumentu 83 2.2.2 Strukturace s elementy 84 2.2.3 Strukturace s atributy a prázdným elementem 86 2.2.4 Strukturace kombinací elementů a atributů 87 2.3 Možnosti XML pro lingvistické zpracování dat 89 2.3.1 Varianty korpusové vertikály 97 2.4 Pokročilejší práce s regulárními výrazy a jazykem CQL 100 2.4.1 Přegenerovávání komplexních strukturovaných vzorů a víceznačnost tagsetu 109 2.4.2 Rozšířené sady regulárních metaznaků 117 2.4.3 Souvislosti XML a CQL: způsob anotace a formát vyhledávacích masek 124
OBSAH [ 4 ]
..... 3 Nástroje pro vytěžování korpusových dat 139 3.1 WordList 140 3.2 ConcApp 140 3.3 SCP – Simple Concordance Program 142 3.4 Corsis-TenkaText 142 3.5 WConcord 146 3.6 TextSTAT 149 3.7 AntConc 152 3.7.1 Regulární výrazy 154 3.7.2 Disperze výrazů a detekce jejich výskytu v definovaných úsecích 156 3.7.3 Slovníky, frekvenční seznamy a statistické testy 158 3.7.4 Klastry/n-gramy 159 3.7.5 Kolokace/koligace (MI-score, t-score) 159 3.7.6 Klíčová/tematická slova (logLikelihood, Chi-squared) 160 3.7.7 Indexace slovníku (lemma list) 162 3.8 Xaira 166 3.8.1 Kompilace korpusu 166 3.8.2 Typy dotazů a možnosti vytěžování dat 168 3.8.2.1 Phrase Query (fráze) 168 3.8.2.2 Word Query (slovní tvar) 169 3.8.2.3 Addkey Query (atributivní dotaz) 171 3.8.2.4 Pattern Query (řetězec) 172 3.8.2.5 XML Query (XML tagy) 173 3.8.2.6 Query Builder Visual Interface (grafická tvorba dotazu) 174
3.8.2.7 CQL/XQL Query (CQL/XQL dotaz) 176 3.8.2.8 Collocation (kolokace) 178 4 Možnosti automatického zpracování textu 183 4.1 Softwarové nástroje 184 4.1.1 jTokenizer 184 4.1.2 MLTC – Multilingual Corpus Toolkit 190 4.2 Počítačové skripty pro automatické zpracování textu 192
OBSAH [ 5 ]
..... 4.2.1 Příkazový řádek 192 4.2.1.1 Základy práce s příkazovým řádkem 193 4.2.1.2 Tipy pro práci s příkazovým řádkem 198 4.2.2 Počítačové skripty a jejich využití v korpusové lingvistice 198 4.2.2.1 fsmTokenize 199 4.2.2.2 sentence-boundary.pl 199 4.2.2.3 join-files.pl 200 4.2.2.4 concordance01.pl 202 4.2.2.5 concordance02.pl 204 4.2.2.6 simple_vocab.pl 204 4.2.2.7 freq_list.pl 205 4.2.2.8 bigramcount.pl 206 4.2.3 Unixové/linuxové nástroje pro zpracování textu 206 4.2.3.1 Číslování řádků 208 4.2.3.2 Konverze konců řádků 210 4.2.3.3 Konverze kódování znaků 211 4.2.4 Linuxové nástroje a vytěžování korpusových dat 212 4.2.4.1 awk: manipulace s vertikálou a sloupcovou anotací 218 4.2.4.2 sed: textové konverze a frekvenční slovníky 221 4.2.4.3 Tvorba slovníku z příkazového řádku 223 4.2.5 Nástroje pro automatickou lingvistickou anotaci: lemmatizace a taggování 226 4.2.5.1 MorphoDiTa – tvorba automaticky anotované databáze 232
4.2.5.1.1 Tokenizer 233 4.2.5.1.2 Morphological Generation 235 4.2.5.1.3 Morphological Analysis 235 4.2.5.1.4 Morphological Tagger 236 4.2.6 MorphCon (konvertor morfologických tagsetů) 239 4.2.6.1 SimpleTag-Conversion 240 4.2.6.2 KWIC/Tag-Format 240 4.2.6.3 WPL-VerticalMode 241
OBSAH [ 6 ]
..... 5 Kompilace korpusu v systému Manatee/Bonito 243 5.1 Základní úprava zdrojového souboru: nastavení kódování znaků a typů konců řádků a souborového formátu 244 5.2 Konverze zdrojového souboru do vertikály 244 5.3 Anotace zdrojové vertikály 245 5.4 Příprava a konfigurace serveru Manatee 246 5.5 Konfigurace (deklarace) zdrojové vertikály 247 5.6 Kompilace: konverze zdrojové vertikály do korpusové databáze 250
5.7 Formát a tvorba paralelního korpusu 251 Závěr 257 Literatura a prameny
261
Přílohy 273 Rejstřík 280 Summary 285
OBSAH [ 7 ]
.....
ÚVOD Korpusová lingvistika je dnes jednou z nejdůležitějších metod(ologií) současného jazykovědného výzkumu. Existuje již celá řada jazykových korpusů, jež v současnosti představují velmi efektivní a zároveň exaktní způsob práce s autentickým materiálem (reálnými jazykovými daty). K práci s korpusy slouží nejrůznější aplikace, nejčastěji tzv. korpusové manažery1 – komplexní programy, které umožňují zpracovávat a později vyhledávat korpusová data (texty) podle různých kritérií, automaticky generovat frekvenční či abecední seznamy, provádět statistické (kvantitativní) analýzy, exportovat a ukládat výsledky korpusového vyhledávání do lokálního počítače uživatele pro další práci atp.2 Využití jazykových korpusů a jejich potenciálu pro filologickou práci tak závisí na míře obeznámenosti uživatele s danými softwarovými nástroji a jejich funkcemi. Předkládaný text si klade za úkol dva hlavní cíle: představit vybrané korpusové nástroje a především standardizovaný dotazovací jazyk CQL (Corpus Query Language), jenž slouží k vytváření vyhledávacích vzorů (masek), jejichž prostřednictvím jazyková data z korpusů vytěžujeme. Naším záměrem je prezentovat všechny prostředky a možnosti dotazovacího jazyka CQL, a to komplexně, zevrubně a způsobem,
1
Někdy též nazývané konkordační nástroje.
2
Možnostem využití a práci s korpusovými nástroji je věnována zejm. kap. 3, s. 139nn.
ÚVOD [ 8 – OBSAH ]
..... jenž rozšiřuje a přesahuje informace uváděné v existujících manuálech, cvičebnicích ad. příručkách korpusového vytěžování dat. V praxi se můžeme dostat do situace, kdy daný text, s nímž potřebujeme pracovat, nemáme k dispozici v žádném hotovém korpusu. Tomu je podřízen druhý cíl – představit možnosti a postupy, jež vedou k vytvoření korpusové databáze, a to podle kritérií, jež si předem stanovíme. Znalosti z oblasti technického zpracování korpusů jsou klíčovým tématem této práce a pomohou nám nejen sestavit databázi pro své potřeby, ale zároveň i zefektivnit práci s databázemi již existujícími. Korpus je možno definovat jako soubor elektronicky zpracovaných a databázově uložených textů (různé velikosti), jejž je možno dále opatřit různými anotacemi a které jsou primárně určeny jazykovědnému či literárněvědnému výzkumu (pole využití je ale mnohem širší). Atkins, Clear a Ostler ve studii Corpus Design Kriteria (1992) užitečně rozdělují kolekce textů do čtyř různých typů:3 ›› ››
›› ››
archiv: sklad elektronicky čitelných textů, které nejsou ani sjednoceny, ani zpracovány elektronická knihovna: sbírka elektronických textů ve standardním formátu s některými konvencemi vztahujícími se k obsahu atd., ale bez přísných výběrových omezení korpus: de facto část elektronické knihovny, jež je zpracována podle předem stanovených zásad pro sběr a zpracování textů subkorpus: podmnožina korpusu – statický komponent celého korpusu, anebo dynamický výběr z korpusu, který vzniká při korpusové analýze (on-line)4
Definujeme-li korpus jako soubor textů uložených v elektronické databázi, které charakterizuje jednotná metodologie a jsou zpravidla opatřeny anotacemi (doprovodnými metainformacemi; anotace viz kap. 2 a subkap. 2.2), pak je možno za korpus pokládat (zpravidla elektronický) textový soubor jazykových dat zpracovaný podle předem stanovených a jednotných zásad (srov. definice výše).
3
ČERMÁK – KLÍMOVÁ – PETKEVIČ, 2000, s. 76.
4
Např. korpus SYN2000 je složen ze tří statických subkorpusů – z beletrie, odborné literatury a publicistiky; při korpusové analýze lze vytvářet další dynamické subkorpusy, např. v rámci beletrie můžeme vyčlenit texty prozaické, dramatické, můžeme vyhledávat jen v textech písňových, povídkových atp.
ÚVOD [ 9 – OBSAH ]
..... Typologicky lze korpusy rozdělit na: a. korpusy psaného vs. mluveného jazyka (podle jazykové formy) b. synchronní vs. diachronní (podle zaměření na stav současného jazyka, jeho struktury a vztahů, anebo proměny a vývojové tendence jazyka či jazykového jevu v čase) c. monolingvní vs. srovnatelné vs. paralelní (korpusy jednoho jazyka, resp. jedné variety či jazykové formy vs. korpus textů vybraných dle týchž kritérií (žánr, zaměření, délka) v různých jazycích či různých varietách jednoho jazyka vs. projekty zdrojových textů a jejich překladů)5 d. obecné vs. specializované (korpusy koncipované tak, aby tvořily reprezentativní vzorek jazyka vs. úžeji vymezené, např. žánrově, tematicky, zaměřené na určitou jazykovou varietu apod. – př. korpusy nářeční, testovací, studijní ad.) e. neanotované vs. anotované (podle toho, zda jde o text prostý jakýchkoli úprav, nebo zda je text opatřen určitými metainformacemi – jsou mu dodatečně přiřazovány interpretační, bibliografické či jiné informace, zejm. lingvistická interpretace) Charakteristika daného korpusu je pak dána průsečíkem jednotlivých základních kritérií: např. SYN20056 – (a) psaný, (b) synchronní, (c) monolingvní, (d) obecný, (e) anotovaný: lemmatizace a morfologické značkování;7 korpus DIALOG8 – (a) mluvený, (b) synchronní, (c) monolingvní, (d) specializovaný: mediální dialogy, (e) anotovaný: transkribovaný + dílčí lemmatizace a morfologické značkování; SCHOLA20109 – (a) mluvený, (b) synchronní, (c) monolingvní, (d) specializovaný: korpus vyučovacích hodin, (e) anotovaný: sociolingvistická charakteristika a dílčí kvazifonetická anotace atp. Korpusy lze rozlišovat také podle řady dalších doprovodných kritérií: velikost, struktura, typ anotace10 (lingvistická – např. lemmatizace, textově typografická, sociolingvistická, literárněvědná aj.) apod. Výběr korpusu pro praktickou filologickou práci by měl být určen po-
5
K pojmům srovnatelný a paralelní korpus viz též studii CHLUMSKÁ, 2014.
6
Viz http://wiki.korpus.cz/doku.php/cnk:syn2005.
7
Typům anotací se budeme věnovat v kap. 2, s. 51nn. Termínům lemmatizace a morfologické značkování se věnujeme v subkap. 4.2.5. Viz též další odkazy v rejstříku.
8
Viz http://ujc.dialogy.cz/.
9
Viz http://wiki.korpus.cz/doku.php/cnk:schola2010.
10 Viz pozn. 7.
ÚVOD [ 10 – OBSAH ]
..... vahou úkolu, před nímž filolog stojí. Dnes je již k dispozici celá řada korpusových databází, a to jak specializovaných, tak těch, jež jsou budovány jako obecné a reprezentativní. Lze tedy pracovat s korpusy mluveného jazyka (PMK, BMK, korpusy řady ORAL, DIALOG, MONOLOG…), s korpusy specializovanými (SCHOLA2010 – korpus vyučovacích hodin, SKRIPT2012 – korpus školních prací, ORWELL – korpus románu 1984 od G. Orwella, KSK-DOPISY – korpus soukromé korespondence…), ale i s datově rozsáhlými korpusy reprezentujícími současnou češtinu (korpusy řady SYN…).11 Korpusová lingvistika se v České republice systematicky a kontinuálně rozvíjí především od r. 1994, kdy byl založen Ústav Českého národního korpusu12 při Filozofické fakultě Univerzity Karlovy (dále ÚČNK), který má dosud v tomto jazykovědném oboru dominantní postavení. Korpusovým projektům se ale věnuje několik dalších pracovišť: zejména Ústav formální a aplikované lingvistiky Matematicko-fyzikální fakulty Univerzity Karlovy (dále ÚFAL) a Centrum zpracování přirozeného jazyka Fakulty informatiky Masarykovy univerzity v Brně (Natural Language Processing Laboratory; dále Centrum NLP). I na těchto univerzitních pracovištích, která se specializují na počítačové zpracování přirozeného jazyka, vznikly a vznikají projekty korpusové lingvistiky; právě v ÚFAL a v Centru NLP jsou vyvíjeny počítačové aplikace (software, webová rozhraní a servery, korpusové manažery, specializované počítačové aplikace či jednodušší skripty pro zpracování textu ad.), jež česká korpusová lingvistika užívá.13 Dalšími pracovišti, na kterých vznikly či vznikají dílčí korpusy či korpusové aktivity, jsou Ústav teoretické a komputační lingvistiky FF UK Praha,14 Ústav pro jazyk český AV ČR (korpus DIALOG či MONOLOG),15 Ústav pro českou literaturu AV ČR (literárněvědný projekt Česká elektronická knihovna či Korpus českého verše),16 Ústav českého jazyka FF MU Brno (zejména Brněnský mluvený
11 Informace o zmíněných korpusech lze nalézt zde: http://wiki.korpus.cz/doku.php/ cnk:uvod. 12 Viz webové stránky pracoviště http://ucnk.ff.cuni.cz/. 13 K projektům ÚFAL viz http://ufal.mff.cuni.cz/projects, resp. http://ufal.mff.cuni.cz/ tools. K projektům Centra NLP viz http://nlp.fi.muni.cz/web3/cs/Vyzkum. 14 Viz http://utkl.ff.cuni.cz/. 15 Blíže viz http://ujc.dialogy.cz/, http://monolog.dialogy.org/. 16 Viz http://www.ceska-poezie.cz/cek/, http://www.versologie.cz/kcv.html.
ÚVOD [ 11 – OBSAH ]
..... korpus)17 a v neposlední řadě i Katedra bohemistiky FF UP v Olomouci (zejm. Olomoucký korpus mluvené češtiny či specializované malé autorské korpusy – kupř. korpusy esejů Otokara Březiny a Ladislava Klímy – viz zde subkap. 2.3, s. 89–96).18 Tradičně se rozlišuje mezi dvěma metodologickými přístupy. Prvním je (1) corpus-based (na korpusu založený) přístup, kdy jsou korpusová data využívána k ověřování předem stanovených lingvistických hypotéz formulovaných na základě introspekce, dosavadních znalostí o jazyce a s využitím tradičních kategorií a popisů. V opozici stojí (2) corpus-driven (korpusem řízený) přístup, který svou podstatou znalosti o jazyce i tradiční apriorní kategorie či popisy zatlačuje do pozadí, neboť korpus se zde stává hlavním (příp. jediným) zdrojem informací. I tento přístup vychází z určitých hypotéz, ale na základě korpusových dat jsou původní předpoklady přeformulovávány tak, aby odpovídaly jazykové realitě, reálným datům – korpusová data tedy u tohoto přístupu sehrávají klíčovou roli. Dnes se hovoří ještě o (3) corpus-informed (korpusem poučeném) přístupu, který slouží spíše k okrajovému využití korpusů, např. k vyhledávání vhodných jazykových příkladů, a o (4) corpus-assisted (korpusem podporovaném) přístupu, který zkoumá proměny významu určitých pojmů či konceptů na základě teoretických východisek a srovnání klíčových slov různých textů v různých časových úsecích.19 STRUKTURA A OBSAH MONOGRAFIE Kniha nabízí systematický vhled
do problematiky technického zpracování jazykových dat i jejich vytěžování a prezentuje metody a prostředky, jak sestavit vlastní textovou databázi (korpus). Jde tedy o možnosti a principy počítačového zpracování textu, nikoli o interpretaci lingvistických dat. Zároveň je nutno zdůraznit, že možnosti vytěžování korpusových dat jsou v tomto textu zaměřeny a cíleny na dotazovací (meta)jazyk(y), zejm. CQL (Corpus Query 17 Ten byl začleněn do struktury Českého národního korpusu – blíže viz http://ucnk. ff.cuni.cz/bmk.php. V Brně rovněž vznikl nový obor Český jazyk se specializací počítačová lingvistika (koncipovaný jako jednooborové bakalářské studium). Výuku, která probíhá od r. 2010, zajišťují pracovníci Ústavu českého jazyka Filozofické fakulty MU, Katedry informačních technologií Fakulty informatiky MU a Centra zpracování přirozeného jazyka FI MU. Bližší informace lze nalézt na webu http:// www.pocitacova-lingvistika.cz/. 18 Korpusovým projektům Katedry bohemistiky FF UP je věnován webový portál http://corpus.upol.cz/. Řadu užitečných materiálů a odkazů lze nalézt i na výukovém webu http://korpling.webnode.cz/, materiály z tohoto webu ale budou postupně přemisťovány na web http://corpus.upol.cz/. 19 Srov. též studii CHLUMSKÁ, 2014, s. 222–223.
ÚVOD [ 12 – OBSAH ]
..... Language) – standardizovaný a všeobecně/mezinárodně rozšířený dotazovací jazyk užívaný v korpusové lingvistice. Text se tedy např. systematicky nevěnuje velmi důležité oblasti korpusového výzkumu – kvantitativní analýze textu a statistickým metodám vytěžování dat: přestože místy upozorňujeme alespoň na ty nejzákladnější přístupy a možnosti jako jsou frekvenční distribuce či elementární možnosti vyhledávání kolokací či koligací, zůstávají zde tyto metody poněkud stranou, neboť již existuje řada titulů, které se tomuto tématu zevrubně věnují.20 V současnosti již existuje celá řada korpusů a jazykových databází různých typů a zaměření, které lze využít k lingvistické, resp. filologické analýze textu. Příloha 1 poskytuje základní a stručný přehled těch nejdůležitějších a nejužívanějších alespoň formou bibliografických odkazů,21 neboť tento text je zaměřen spíše na možnosti práce s korpusovými texty než na (úplný) výčet a charakteristiku korpusových projektů. Informace o nich lze nalézt na webových stránkách výše uvedených pracovišť, příp. v bibliografii (viz s. 270–271). Kniha je rozdělena na pět kapitol a obě hlavní témata se v nich v různé míře prolínají a postupně prohlubují. První kapitola se věnuje základům dotazovacího jazyka CQL a vysvětluje elementární principy vytěžování korpusových dat. Prostor je věnován i základním metodám kvantitativního vyhodnocování korpusových dat, mezi něž nesporně patří vytváření frekvenčních seznamů či zkoumání kolokací (a koligací) prostřednictvím nejznámějších statistických testů MI-score a t-score. Kapitolu uzavírá kompletní přehled základních regulárních výrazů CQL. Následující, v pořadí druhá kapitola patří mezi nejdůležitější části textu, neboť je zaměřena na anotaci a technické aspekty tvorby 20 Čtenáře lze odkázat zejm. na tyto monografie: JOHNSON, K.: Quantitative Methods in Linguistics (Blackwell Publishing 2008); GRIES, Th. S.: Quantitative Corpus Linguistics with R (Routledge 2009); BAAYEN, R. H.: Analyzing Linguistic Data (Cambridge 2008). Od českých autorů zejm. TĚŠITELOVÁ, M.: Otázky lexikální statistiky (Praha 1974); TĚŠITELOVÁ, M.: Využití statistických metod v gramatice (Praha 1980); TĚŠITELOVÁ, M.: Kvantitativní lingvistika (Praha 1987); PECINA, P.: Lexical Association Measures: Collocation Extraction (Praha 2009); CVRČEK, V.: Kvantitativní analýza kontextu (Praha 2013). Dále např. studie a články R. Čecha nebo M. Křena ad. 21 Vzhledem k charakteru poměrně dynamicky se rozvíjejícího oboru nelze ani podat výčet úplný. Navíc se neustále pracuje na nových korpusových databázích. Uvedený přehled má tedy skutečně sloužit k základní orientaci a uvést ty nejznámější projekty.
ÚVOD [ 13 – OBSAH ]
..... korpusů, zejm. formát dat a kódování znaků, segmentaci textu, využití značkovacího jazyka XML pro korpusovou anotaci atd. Témata, jež zde řešíme jak z teoretického pohledu, tak na praktických ukázkách, patří mezi klíčová, pokud jde o přípravu a zpracování korpusové databáze. Zároveň představují nejen fundament pro tvorbu korpusů, ale i pro pokročilejší práci s regulárními výrazy a jazykem CQL, především pokud jde o komplexní využití prostředků CQL a vytváření složitějších vyhledávacích masek. V této souvislosti ilustrujeme na konkrétních příkladech i možnou variantnost zápisu CQL dotazů, tedy jev, kdy jeden dotaz lze v CQL zapsat více způsoby, a tematizujeme možné přegenerovávání (overgeneration) komplexních strukturovaných vzorů. Prezentujeme ale i nové či alternativní možnosti a prostředky tvorby korpusových dotazů – např. použití rozšířených sad regulárních výrazů (PCRE a POSIX metavýrazů). Zásadní je pasáž o korpusových formátech a značkovacím jazyce XML (Extensible Markup Language), jenž v současnosti představuje nejrozšířenější mezinárodní standard pro anotaci korpusových databází. Představeny jsou prostředky a pravidla tvorby (základy syntaxe) XML dokumentů i jeho možnosti pro anotaci korpusových textů v různých formátech. Snažíme se ukázat principiální souvislosti XML a CQL, tedy souvislost mezi XML formátem, způsobem anotace databáze a formátem vyhledávacích masek CQL, vč. užití tzv. proximitních operátorů. Třetí kapitola prezentuje vybrané softwarové nástroje pro vytěžování korpusových dat, od nejjednodušších aplikací určených pro dílčí či základní korpusové operace až po komplexní korpusové nástroje. Zaměřujeme se zde převážně na práci s lingvisticky neanotovanými texty a ukazujeme možnosti relativně jednoduché tvorby malých korpusů i způsobů jejich vytěžování. Podáváme přitom vždy stručnou charakteristiku nástroje, jeho funkcí, příp. implementovaného dotazovacího jazyka (zda umožňuje v dotazech použít základní regulární výrazy, nebo je možno použít i sad rozšířených). Popisujeme též rozšířené funkce některých konkordančních nástrojů, zejm. AntConc a Xaira, např. možnost tvorby seznamu lemmat (lemma listů), zobrazení disperze výrazů v textech, použití statistických testů k vyhledávání kolokátů či koligací, detekce tematických slov apod. Technicky nejnáročnějšími pasážemi monografie jsou čtvrtá a pátá kapitola, jež se věnují (ad 4. kap.) možnostem automatického zpracování textu do strukturované databáze prostřednictvím softwarových nástrojů a počítačových skriptů a zabývají se rovněž (ad 5. kap.) tvorbou korpusu v systému Manatee/Bonito. Postupně jsou představeny všechny fáze počítačového zpracování dat: nastavení či konverze kódování znaků, konců řádků i souborového formátu, segmentace či ÚVOD [ 14 – OBSAH ]
..... tokenizace textu, jeho zpracování do některého z korpusových formátů (např. do tzv. vertikály), proces anotace různého typu a rozsahu (zejm. lemmatizace a taggování). Součástí těchto technických pasáží jsou i základy práce s příkazovým řádkem, neboť počítačové skripty je nutno kvůli absenci grafického uživatelského rozhraní spouštět právě zápisem (příkazem s různými parametry) z příkazového řádku operačního systému. Zároveň demonstrujeme i využití příkazového řádku pro některé základní korpusové operace, jako je vyhledávání klíčových slov, tj. generování konkordancí, tvorba frekvenčních či abecedních seznamů ad. možností, a to vše přímo ze zdrojových textů bez nutnosti importu textů do korpusových softwarových nástrojů. Příkazový řádek využijeme i v konečné fázi kompilace vytvořené databáze do korpusového manažeru Manatee/Bonito. Právě tomuto procesu je věnována samostatná (pátá) a poslední kapitola. Záměrně tím oddělujeme praktické vytěžování dat v tomto nástroji, jež prostupuje napříč celou knihou, od technického zpracování korpusu. Jednak lze tento korpusový manažer využít jen v případě, kdy hodláme vytěžovat již existující (hotové) korpusy (např. ČNK), ať už prostřednictvím uživatelského rozhraní Bonito, Sketch Engine nebo nejnovějšího KonTextu. Ale především je proces kompilace databáze v systému Manatee (vč. nastavení různých parametrů – deklarací) ze všech nástrojů, s nimiž v knize pracujeme, nejnáročnější. Osvojíme-li si ale postupy popsané v této kapitole, získáme tím možnost využít software, který je schopen velmi efektivně vytěžovat i komplexně anotovanou korpusovou databázi, již si sami vybudujeme. Závěr kapitoly je věnován formátu a tvorbě paralelního korpusu v systému Manatee. Doplňkem této monografie je webové úložiště, kde uživatelé tohoto textu naleznou celou řadu materiálů: instalační soubory softwarových nástrojů či počítačové skripty, s nimiž v textu pracujeme, ale i úryvky zdrojových textů či příkladů z textu. Pokud tedy nebude výslovně uvedeno jinak, čtenáři naleznou nástroje užité v této knize na webové adrese: http://corpus.upol.cz/tvorba-korpusu. Protože primárně předpokládáme v technické oblasti méně zkušené uživatele, volíme – pokud jde o technické zpracování textu – nástroje běžící pod operačním systémem Windows, přestože pro jiné platformy (zejm. Linux) existuje řada dalších velmi zajímavých a volně dostupných nástrojů. OS Linux jsme předem vyloučili, neboť instalace a konfigurace aplikací v Linuxu ze zdrojových balíčků je pro nezkušeného či méně zkušeného uživatele poměrně náročná. ÚVOD [ 15 – OBSAH ]
..... Typografické konvence užité v knize Kurziva: lingvistické doklady, klíčové pojmy, termíny, důležité pasáže textu Lineární písmo: zdrojové texty, zdrojové kódy, korpusové dotazy, počítačové zápisy (příkazový řádek atp.)
ÚVOD [ 16 – OBSAH ]
.....
[1]
VYTĚŽOVÁNÍ KORPUSOVÝCH DAT A DOTAZOVACÍ JAZYK CQL Každý, kdo chce k lingvistickým analýzám
či obecně k lingvistickému výzkumu využívat jazykové korpusy, je postaven před nutnost seznámit se (pokud možno zevrubně) se základními metodami korpusového vyhledávání a vyhodnocování dat, neboť je to nezbytný předpoklad, jak využít potenciál, který korpusové databáze poskytují. Tato kapitola je věnována oněm základům korpusové práce a prostředkům, jež je nutno pro systematickou korpusovou práci s databázemi znát. Nejprve se věnujeme obecným charakteristikám korpusových nástrojů – jejich grafickému rozhraní, struktuře a elementární funkcionalitě. Následuje pasáž týkající se klíčového korpusového dotazovacího jazyka CQL a jeho základních prostředků, vč. formální podoby nejjednodušších korpusových dotazů. V souvislosti s tím jsou představeny nejdůležitější korpusové pojmy a termíny (KWIC, konkordance, atribut, tag ad.). Součástí kapitoly je pasáž o kvantitativních metodách vyhodnocování jazykových dat, i zde doprovázená charakteristikou přináležících pojmů (četnost, frekvenční distribuce, absolutní a relativní frekvence, kolokace, n-gram, disperze ad.). Tato pasáž se teoreticky věnuje i statistickým testům kolokační významnosti, zejm. nejužívanějšímu MI-score a t-score. Průběžně si prostřednictvím korpusového manažeru Manatee/Bonito prakticky ukážeme, jak vyhledat jednoduché konkordance, vytvořit frekvenční slovník textu, VYTĚŽOVÁNÍ KORPUSOVÝCH DAT A DOTAZOVACÍ JAZYK CQL [ 17 – OBSAH ]
..... detekovat disperze výrazů či vyhledávat a vyhodnocovat kolokace. V závěru kapitoly je uveden přehled základních regulárních výrazů jazyka CQL. Vytěžování korpusových dat (tedy faktická využitelnost celého korpusu či jazykové databáze) je závislé především na třech faktorech: 1. zda, do jaké míry a jakým způsobem byla provedena anotace původních textů 2. jaký softwarový nástroj byl použit k tvorbě databáze a k vyhledávání dat (tj. jaké nabízí prostředky a možnosti vyhledávání a vyhodnocování dat, příp. ukládání výsledků) 3. na tom, jaká je obeznámenost konkrétního uživatele se softwarovým nástrojem a především s možnostmi (syntaxí) vyhledávacího jazyka Maximum lze z korpusů vytěžit jen v případě, známe-li a využíváme jak vnitřní strukturu daného korpusu (typů anotací), tak možnosti vyhledávání samotného, tj. syntaktická pravidla a prostředky dotazovacího jazyka, který je v korpusovém manažeru implementován a formalizován. Nejčastěji se dnes používá dotazovací jazyk CQL (bližší charakteristika – subkap. 1.2 a 2.4) a tzv. regulární výrazy. Funkce regulárních výrazů spočívá v definování vzorů (tzv. vyhledávacích masek), které se následně program snaží rozpoznat a vyhledat v daném textu. Metaznaky jsou spolu s dalšími funkčními výrazy velmi efektivním nástrojem pro vytěžování korpusových dat. V současnosti sice již existuje řada aplikací, které uživatelům proces konstruování vyhledávacích dotazů usnadňují,22 to však nic nemění na faktu, že je třeba dotazovací jazyk příslušného softwarového nástroje – jeho prostředky, syntax i strukturu – dobře znát a ovládat, neboť lze obecně konstatovat, že míra využití korpusových dat je v podstatě přímo závislá na míře znalosti a schopnosti uživatele využít regulárních výrazů a syntaxe dotazovacího jazyka ke konstruování jednoduchých i složitějších vyhledávacích vzorů/masek. Čím lépe známe a využíváme syntax dotazovacího jazyka, tím větší možnosti se nám nabízejí.23 A vy22 Srov. např. interaktivní tabulku pro tvorbu pozičních morfologických tagů dostupnou na adrese http://utkl.ff.cuni.cz/~skoumal/morfo/, nebo v manažeru KonText nově implementované funkce vložit tag, vložit "within", jež jsou k dispozici ve formě záložek v rámci CQL typu dotazu; příp. nabídku ke specifikaci dotazu podle metainformací, kde lze prostým zatržením konkrétního políčka z nabídky filtrovat žánrový typ zdrojového textu. 23 Pro praktické procvičování regulárních výrazů a jazyka CQL lze doporučit zejména studijní příručku Jak využívat Český národní korpus (ČERMÁK – BLATNÁ a kol., Praha 2005). Příručka je koncipována jako cvičebnice s mnoha úkoly a klíčem k jejich řešení. Na konci příručky je třístránkový seznam základních vyhledávacích vzorů,
VYTĚŽOVÁNÍ KORPUSOVÝCH DAT A DOTAZOVACÍ JAZYK CQL [ 18 – OBSAH ]
..... tváření komplexnějších vyhledávacích vzorů je podmíněno i znalostí anotační struktury daných korpusů, jak již bylo zmíněno a jak později uvidíme na praktických příkladech. Neméně důležitý je i výběr nástroje určeného k práci s databází – jeho možnosti totiž podmiňují využitelnost/vytěžitelnost dat. Korpusových nástrojů dnes existuje celá řada, od univerzálních až ke specializovanějším (např. určených jen k tvorbě abecedních či frekvenčních slovníků), nástroje komerční i volně dostupné, aplikace určené k instalaci do lokálního počítače či jako webová platforma, k níž se přistupuje skrze internetové připojení. Stojíme-li tedy před úkolem vytvořit korpusovou databázi, pak je volba a znalost konkrétního nástroje velmi důležitá. V mnoha případech není ani třeba volit komplexní/robustní systém, ale vystačíme si s relativně jednoduchými konkordančními programy.24 Jedním z hlavních kritérií výběru nástrojů, které jsme si v této práci zvolili, je použít volně dostupný, neplacený software – veškeré nástroje, s nimiž pracujeme, tedy spadají do kategorie freeware, open source, GNU GPL či podobných volných licencí.25 Placeným (komerčním) produktům se často vyrovnají nebo jsou odnoží (variantou) některého z komerčních programů (např. open source varianta NoSketch Engine a komerční varianta The Sketch Engine s aditivními funkcemi – viz níže). Většina korpusových nástrojů určených k vyhledávání korpusových dat, tzv. konkordančních nástrojů, v podstatě nabízí všechny základní korpusové operace, tj. vyhledání slova či sousloví v kontextu s údaji o jejich frekvenční distribuci a informací o zdrojovém textu, tvorba abecedních či frekvenčních slovníků, příp. vyhledání kolokací/koligací.26 Důležitým aspektem nástrojů je ale i jejich schopnost pracovat s různě velkými daty; horní limit většiny desktopových aplikací se které mohou být zejména začátečníkům při práci velmi užitečné. Přiložen je rovněž praktický tabulkový přehled pozičních morfologických tagů. Existuje i příručka Experimentujeme s češtinou. Jak pracovat s korpusem českého jazyka ve školách i mimo ně (ŠULC, 2007), ta ale obsahuje jen skutečně elementární informace o možnostech vyhledávání a užívá především tzv. grafickou tvorbu dotazu, z dnešního pohledu již poněkud zastaralou. Nejnověji lze nalézt základní informace i ve wikimanuálu práce s ČNK na adrese: http://wiki.korpus.cz/doku.php/manual:uvod. Naše doporučení má rovněž nedávno vydaná kniha K. OSOLSOBĚ Česká morfologie a korpusy (Praha 2014), jež probírá korpusové úkoly a cvičení systematicky a komplexně. 24 Existují ale i situace, kdy tuto možnost volby nástroje pro práci s korpusem nemáme: to platí např. pro korpusy ČNK, jež jsou z licenčních důvodů zcela svázány s nástroji, jejichž prostřednictvím jsou korpusy a texty v nich zveřejňovány. 25 Z tohoto důvodu např. nezařazujeme do našeho přehledu poměrně široce užívaný nástroj WordSmith (http://www.lexically.net/wordsmith/), který patří zejména v britské korpusové lingvistice k běžnému standardu. 26 K termínům kolokace a koligace viz subkap. 1.1.3, s. 33nn.
VYTĚŽOVÁNÍ KORPUSOVÝCH DAT A DOTAZOVACÍ JAZYK CQL [ 19 – OBSAH ]
..... pohybuje okolo 1 milionu slov. Pokročilejší nástroje nabízejí komplexnější práci s texty, zejm. s provedenými anotacemi, kdy je možno vytěžovat text dle různých lingvistických či jiných kritérií: např. typ textu (publicistika, beletrie: povídka, novela, román), autor, titul atp. Vybrané nástroje a jejich možnosti jsou prezentovány v kap. 3 na s. 193nn. V české korpusové lingvistice jsou u většiny korpusových projektů nejužívanější korpusové manažery založené na systému Manatee (© Pavel Rychlý, Centrum NLP) s různou grafickou nadstavbou, resp. softwarovým klientem: 27 1. freeware Bonito28 2a. novější open source verze NoSketch Engine29 2b. placená verze The Sketch Engine30 3. nejnovější KonText,31 open source nástroj, který je odnoží verze NoSketch Engine Až na výjimky používají korpusový manažer Manatee/Bonito téměř všechny české korpusy, jde tedy o jakýsi český softwarový korpusový standard a de facto se postupně stává i standardem v mezinárodním měřítku. Novější verze NoSketch Engine a zejm. The Sketch Engine jsou užívány jako hlavní korpusové manažery u řady národních korpusů (např. pro národní korpus britský, slovenský, slovinský ad.). Je tedy logické, že je tomuto nástroji v práci věnováno nejvíce pozornosti; systém Manatee/ Bonito jsme vybrali i pro prezentaci postupů a metod tvorby komplexně anotovaného korpusu (kap. 5, s. 243nn). Existuje celá řada publikací a manuálů, které se věnují detailnímu popisu jednotlivých funkcí tohoto nástroje. V tomto textu se proto zevrubnou charakteristikou Manatee/ Bonita nebudeme zabývat, naše pozornost bude spíše výběrová, podřízená účelu naší práce. Předpokládáme tedy již základní obeznámenost se
27 Základní informace a uživatelský manuál pro práci s tímto korpusovým manažerem lze nalézt v příručce Český národní korpus – Úvod a příručka uživatele (Praha 2000) nebo na následujících webových stránkách: http://nlp.fi.muni.cz/projects/bonito/, http://ucnk.ff.cuni.cz/bonito/. Nejnověji lze informace k práci s tímto nástrojem nalézt ve wikimanuálu práce s ČNK na adrese http://wiki.korpus.cz/doku.php. V tomto textu se zaměříme spíše na principy jazyka CQL, jež mají obecnou platnost, a na využití anotací korpusů při práci s korpusovým manažerem. 28 Viz http://www.fi.muni.cz/~pary/ a http://www.textforge.cz/products/. 29 Http://nlp.fi.muni.cz/trac/noske/ (© Pavel Rychlý). 30 Http://www.sketchengine.co.uk/ (© Pavel Rychlý, Adam Kilgarriff, Jan Pomikálek). 31 Https://kontext.korpus.cz/ (© ČNK).
VYTĚŽOVÁNÍ KORPUSOVÝCH DAT A DOTAZOVACÍ JAZYK CQL [ 20 – OBSAH ]