KonText a Sketch Engine – shody a rozdíly korpusových vyhledávačů v českém prostředí[1] Klára Osolsobě osolsobe@phil.muni.cz Anotace Přednáška se zaměří na praktický úvod do práce s jazykovými korpusy češtiny. Ukážeme nejdříve základní funkce nástroje pro práci s korpusy KonText a porovnáme je s analogickými funkcemi nástroje Sketch Engine. Na závěr vysvětlíme, kterými funkcemi disponuje nástroj Sketch Engine navíc oproti nástroji KonText a budeme demonstrovat, jak lze tyto funkce využít pro studium češtiny. Úvod Jednou z podmínek, kterou musí jazykový korpus jako zdroj dat pro studium jazyka splňovat, je v moderní době elektronické uložení a elektronická přístupnost jazykových dat, která korpus tvoří. Pro češtinu existuje v současnosti velké množství jazykových korpusů, které tuto podmínku splňují. Přestože roku 1994 vzniklo centrální pracoviště, jímž je Ústav Českého národního korpusu na filozofické fakultě Univerzity Karlovy v Praze (http://ucnk.ff.cuni.cz/cs/), dosud přetrvává v českém prostředí jistá variabilita nástrojů počítačového zpracování přirozeného jazyka (dále NLP). Nejobvyklejším základním nástrojem pro práci s jazykovým korpusem je korpusový vyhledávač (manažer), který v zásadě umožňuje klást dotazy na jazykové jednotky a zobrazovat jejich výskyt ve formátu KWIC (key word in context). Standardní korpusový vyhledávač (manažer) disponuje dalšími funkcemi, které umožňují ukládat vyhledaná data, třídit je a analyzovat je, přičemž nejobvyklejším typem analýzy je frekvenční analýza a dále analýzy založené na složitějších statisticky ověřených metodách pracujících s jazykovými daty. Výsledkem jsou potom frekvenční seznamy a seznamy kandidátů na relevantní kolokace pro klíčovou jednotku (klíčové slovo). Situace v českém prostředí V českém prostředí (České republice) lze z uživatelského hlediska pracovat s několika podobami korpusových vyhledávačů, které se váží na akademická pracoviště. Na tomto místě pomineme vyhledávač B. Lehečky vytvořený pro Staročeskou textovou banku v rámci projektů pracoviště Ústavu pro jazyk český AV ČR (http://vokabular.ujc.cas.cz/banka.aspx?idz=STB) a budeme se věnovat patrně uživatelsky nejrozšířenějšímu vyhledávači, jímž je nástroj KonText. (https://kontext.korpus.cz/first_form) a dále komerčnímu produktu firmy Lexical Computing Sketch Engine (https://www.sketchengine.co.uk/), který vybíráme zejména proto, že nástroj – webové rozhraní KonText s ním historicky souvisí. KonText a Sketch Engine historicky KonText je rozšířenou a graficky upravenou verzí původní aplikace NoSketch Engine, vyvíjenou v ÚČNK FF UK a na ÚFAL MFF UK pod licencí GNU GPL 2. Stejně jako NoSketch Engine[2] používá i KonText jako výpočetní server program Manatee. Vyhledávač (grafické rozhraní) KonText slouží všem uživatelům, kteří pracují s korpusy zpřístupňovanými Ústavem Českého národního korpusu. Projekt Český národní korpus umožňuje pracovat s obecnými vyváženými korpusy synchronními i diachronními, psaného i mluveného jazyka. Kromě toho jsou k dispozici i různé specializované korpusy, mezi nimi i korpusy paralelní (více informací viz http://wiki.korpus.cz/doku.php/cnk:uvod). Velké synchronní psané korpusy jsou lemmatizovány a morfologicky (některé i syntakticky) označkovány. Sketch Engine je nástroj pro výzkum fungování přirozeného jazyka určený lingvistům, lexikografům, překladatelům a učitelům i studentům. Umožňuje přístup ke čtyřem stům korpusů, které představují bohatství devadesátky jazyků (přehled a seznam viz https://www.sketchengine.co.uk/user-guide/user-manual/corpora/corpora-list/). Pro akademickou obec (studenty, pedagogy) Masarykovy Univerzity je dostupný již delší dobu. Nově od dubna 2018 do dubna 2022 je volně dostupný pro nekomerční využití přes infrastrukturu EU ELEXIS (https://www.sketchengine.co.uk/elexis/). Přehled základních funkcí obou nástrojů Pokud chceme užívat jakýkoliv korpusový vyhledávač, volíme na začátku korpus, s nímž chceme pracovat. Odpověď na otázku, který z obou nástrojů, o nichž je řeč výše, je lepší, je podmíněna badatelským záměrem. Ten totiž musí vzít v úvahu i to, který korpus je vhodný k jeho uskutečnění. Výhodou korpusů nabízených přes ÚČNK je dlouhodobá orientace pracoviště na tvorbu vyvážených korpusů češtiny a na dobrou úroveň lingvistických anotací. Výhodou nástroje Sketch Engine je pestrá nabídka korpusů různých jazyků. Se zřetelem k češtině spatřujeme jisté omezení v tom, že nabízí menší výběr korpusů než je k dispozici v ÚČNK. Nespornou výhodou nástroje SketchEngine je řada funkcí, které lze využít zejména v moderní korpusově orientované lexikografii. Některé z nich chceme ukázat, neboť je mohou využít i pokročilí studenti češtiny, a sice jako svého druhu on-line slovník. Shodné funkce obou nástrojů Nadále se tedy zmíníme o těch funkcích, které jsou společné, a ukážeme na praktických příkladech, jak je lze použít. Základní funkcí každého korpusového vyhledávače je okno, do kterého lze zapsat dotaz na jazykovou jednotku, kterou chceme v korpusu najít. Můžeme se tázat na konkrétní slovní tvar (word), na slovní spojení (frázi), popřípadě můžeme konstruovat složitější dotaz za pomoci regulárních výrazů v jazyce cql (corpus querry language). Pokud je korpus lemmatizovaný a značkovaný, pak se lze dotazovat také na všechny tvaroslovné varianty patřící pod jeden základní tvar, tedy na systémové slovo neboli lemma. Typ dotazu je v obou vyhledávačích třeba zvolit a dodržet formální náležitosti. V obou nástrojích fungují přístupy k manuálům – uživatelským příručkám[3], v nichž jsou popsány všechny podrobnosti včetně například základních rysů jazyka cql. Odpovědí na dotaz je vyhledaná jázyková jednotka ve všech výskytech ve zvoleném korpusu ve formátu KWIC (key word in context). Mějme následující úkol. Chtěli bychom z korpusů zjistit, co říkají Češi sami o sobě. Budeme postupovat co nejjednodušeji tak, abychom přitom demonstrovali funkce obou nástrojů a zároveň porovnali výsledky na různých korpusech, které jsou přes srovnávané nástroje přístupné. V rozhraní KonText zvolíme největší v současnosti dostupný korpus synchronní psané češtiny syn_v6 a přes Typ dotazu Fráze vyhledáme všechny výskyty spojení Češi jsou ve zvoleném korpusu (Obrázek 1). Obrázek 1 Tutéž akci zopakujeme pomocí nástroje Sketch Engine, přičemž budeme pracovat s velkým webovým korpusem czTenTen12 (Obrázek 2). Obrázek 2 Výsledkem bude v obou případech konkordanční seznam (Obrázek 3 a 4). Obrázek 3 Obrázek 4 Dalšími funkcemi, jimiž běžně korpusové vyhledávače disponují, jsou ukládání vyhledaných dat, jejich další zpracování pomocí filtrů, které slouží k výběru/odstranění části dat, frekvenční analýza vyhledaných dat a zobrazování dat i metadat[4]. K čemu slouží funkce Uložit/Save? Pomocí této funkce můžeme vyhledaná data uložit v textovém formátu a dále s nimi pracovat off-line. Pokud hledáme v korpusech ilustraci nějakého jevu v jazyce, pak nám tato funkce postačí. Příkladem je třeba využití jazykových korpusů v pedagogické praxi.[5] K čemu slouží funkce Filtr/Filter? Pomocí této funkce můžeme například vybrat část konkordance. Představme si, že se chceme (v konkardančním sezamu uvedeném výše) podívat pouze na ty doklady, kdy za klíčovým slovesným tvarem jsou následuje adjektivum. V rozsahu hledání definovaném jako první pozice vpravo (interval <1,1>) bezprostředně po klíčovém slovu vyhledáme všechna adjektiva. Takto lze filtr použít, pokud je text morfologicky označkován. V jazyce cql definujeme značku podle použitého tagsetu[6]. K čemu slouží funkce Frekvence/Frequency? Její pomocí můžeme vyhledaná data analyzovat z hlediska frekvence. Představme si, že chceme ve sledovaných korpusech zjistit frekvenci adjektiv vyskytujících se ve spojení Češi jsou . Na screenshotech níže vidíme, jak se pracuje v obou systémech s popsanými funkcemi a jaké výsledky získáme ze zvolených korpusů. Na první trojici scrennshotů (Obrázek 5, 6, 7) vidíme zadání v rozhraní KonText a výsledek frekvenční analýzy dat z korpusu syn_v6, druhá trojice screenshotů (Obrázek 8, 9, 10) ukazuje zadání v nástroji Sketch Engine a výsledky frekvenční analýzy dat korpusu czTenTen12. Obrázek 5 Obrázek 6 Obrázek 7 Obrázek 8 Obrázek 9 Obrázek 10 K čemu slouží funkce Zobrazení/View? Její pomocí měníme zobrazení konkordančního seznamu a zobrazení metainformací. Na ilustračním screenshotu (Obrázek 11) vidíme, že výskyt negativně hodnotícího adjektivum líní, které se jako jediné negativní adjektivum objevuje mezi prvními deseti nejfrekventovanějšími adjektivy ve sledovaném kontextu, je pozorovatelně svázán s žánrem blogu, který má z definice subjektivní charakter. Obrázek 11 Frekvenční analýzy lze ovšem dělat také sofistikovaněji a využít k nim metody corpus driven výzkumu kolokací. Oba nástroje umožňují získat kandidáty na relevantní kolokace klíčových slov vyhledaných v korpusech. Využívají k tomuto účelu statistické výpočty, které dávají dobré výsledky při práci s jazykovými daty[7]. Oba nástroje disponují s funkcí Kolokace/Collocations. Na následujících screnshotech ukážeme přehled statisticky významných kolokací na prvním místě vpravo od klíčového spojení (fráze) Češi jsou. Demonstrujeme tak jak funkci obou nástrojů (Obrázek 12 a 14), tak i rozdíly ve výsledcích prosté frekvenční analýzy v porovnání se sofistikovanější analýzou relevantních kolokací (Obrázek 13 a 15). Tentokrát jsme nesledovali jen adjektiva, ale všechna slova napravo od spojení (fráze) Češi jsou. Výsledky jsou pouze ilustrací k fungování obou nástrojů. Obrázek 12 Obrázek 13 Obrázek 14 Obrázek 15 Funkce nástroje Sketch Engine navíc Na závěr bychom rádi ilustrovali některé funkce, jimiž disponuje nástroj Sketch Engine navíc oproti rozhraní KontText. První je funkce Word Sketch/Slovní profil sloužící k vizualizaci frekvenčně uspořádaných gramaticky definovaných relací, do kterých vstupuje klíčové slovo v daném korpusu. Na screenshotu (obrázek 16) vidíme přehled Word Sketch k lemmatu Čech z korpusu czTenTen12. Povšimněme si například sloves, o nichž lze předpokládat, že substantivum plní roli subjektu, a která následují příslušné substantivum. Obrázek 16 Nástroj má zabudována pravidla parciální syntaktické analýzy založené na morfologických značkách Tak například na základě toho, že se v bezprostředním levém kontextu substantiva vyskytuje adjektivum, které se shoduje se substantivem v relevantních gramatických kategoriích, je vytvořen seznam a_modifier (adjektivních modifikátorů) typických (s relevantí frekvencí) pro klíčové substantivum. Druhou funkcí je Thesaurus (zobrazení podobných slov: na základě porovnání kontextů je vytvořen seznam a vizualizace slov, která mají podobné gramaticko-lexikální kontexty). Na screenshotu (obrázek 17) jsou slova vyskytující se v podobných kontextech jako slovo Čech. Obrázek 17 Třetí funkcí je Sketch rozdíl (vizualizace shod a rozdílů kontextu dvojice slov). Na následujících screenshotech je srovnání frekvencí sloves stojících v postpozici za dvojicí Čech/Němec (Obrázek 18) a Čech/Američan (Obrázek 19). Sloveso v postpozici za slovními tvary lemmatu Čech, které se nikdy nevyskytuje v téže pozici spolu s lemmaty Němec nebo Američan je podle screenshotů krást. Naopak slovesa stojící (v analyzovaném korpusu) pouze v kontextu lemmat Němec nebo Američan (nikoli Čech) jsou zaútočit a bombardovat. Jediným společným slovesem vyskytujícím se v bezprostředním kontextu všech tří lemmat (Čech/ Němec/ Američan) je milovat. Takto na základě statistických šetření řízených korpusovými daty lze vytvářet objektivní obraz o tom, co na sebe prozradíme, když o sobě a druhých píšeme.[8] Obrázek 18 Obrázek 19 Závěr Ukázali jsme na ilustračních příkladech shodné rysy obou korpusových nástrojů použitelných pro práci s korpusy českého jazyka. Genetická příbuznost obou nástrojů je zřejmá. Uživatel se snadno zorientuje a může pracovat s oběma nástroji. Zvolí si jeden nebo druhý s ohledem na konkrétní korpusy, které manažery zpřístupňují. Oba nástroje mají velmi dobré instruktivní uživatelské příručky, takže je možné naučit se s nimi pracovat i bez pomoci učitele. Pro studenty češtiny začátečníky je příznivé, že, manuály jsou dostupné i v angličtině. Sketch Engine nabízí také nově nástroj SkELL (Sketch Engine for Language Learning). Jedná se o jednoduchý nástroj pro studenty a učitele pro rychlé vyhledání užití jednotlivého slova/fráze v textech rodilých mluvčí (https://cskell.sketchengine.co.uk/run.cgi/skell). Nástroj disponuje funkcí pro hledání příkladových vět (konkordancí), slovních profilů (Words Sketch) a podobných slov (Thesaurus). Jde o pomůcku, která může nahradit výkladový slovník. Také manažer KonText disponuje oproti Sketch Engine dalšími funkcemi a nástroji, kterým jsme zde nevěnovali patřičnou pozornost. Pro studenty češtiny jako cizího jazyka upozorníme na závěr alespoň na nástroj Treq k vyhledávání překladových ekvivalentů založený na paralelních korpusech češtiny a řady dalších jazyků. Tento nástroj může posloužit jako doplněk/náhrada překladového slovníku.[9] Bibliografie Jan Hajič (2004): Disambiguation of Rich Inflection (Computational Morphology of Czech). Vol. 1. Karolinum Charles University Press, Praha. Milena Hnátková, Michal Křen, Pavel Procházka, Hana Skoumalová (2014): The SYN-series corpora of written Czech. In: Proceedings of the Ninth International Conference on Language Resources and Evaluation (LREC'14), s. 160–164. Reykjavík: ELRA. http://www.lrec-conf.org/proceedings/lrec2014/pdf/294_Paper.pdf Adam Kilgarriff, Pavel Rychlý, Pavel Smrž, David Tugwell (2004). Itri-04-08 the sketch engine. Information Technology. Adam Kilgarriff, Vojtěch Kovář, Simon Krek, Irena Srdanovič, Carole Tiberius (2010): A quantitative evaluation of word sketches. Proceedings of the 14th EURALEX International Congress, s. 372–379. Adam Kilgarriff, Vít Baisa, Jan Bušta, Miloš Jakubíček, Vojtěch Kovvář, Jan Michelfeit, Pavel Rychlý, Vít Suchomel (2014): The Sketch Engine: ten years on. Lexicography, 1, s. 7–36. Miloš Jakubíček, Adam Kilgarriff, Diana McCarthy, Pavel Rychlý (2010): Fast Syntactic Searching in Very Large Corpora for Many Languages. PACLIC, s. 741–747. Tomáš Jelínek (2008): Nové značkování v Českém národním korpusu. In: Naše řeč, 91, 1,s. 13–20. Vladimír Petkevič (2014): Problémy automatické morfologické disambiguace češtiny. In: Naše řeč, 97, 4, s. 194–207. Pavel Rychlý (2008): A Lexicographer-Friendly Association Score. Proc. 2nd Workshop on Recent Advances in Slavonic Natural Languages Processing, RASLAN, 2, s. 6–9. Drahomíra Spoustová, Jan Hajič, Jan Votrubec, Pavel Krbec, Pavel Květoň (2007): The Best of Two Worlds: Cooperation of Statistical and Rule-Based Taggers for Czech. In: Proceedings of the Workshop on Balto-Slavonic Natural Language Processing. ACL 2007, Praha, s. 67–74. Elektronické korpusy a korpusové nástroje Křen, M. – Cvrček, V. – Čapka, T. – Čermáková, A. – Hnátková, M. – Chlumská, L. – Jelínek, T. – Kováříková, D. – Petkevič, V. – Procházka, P. – Skoumalová, H. – Škrabal, M. – Truneček, P. – Vondřička, P. – Zasina, A.: Korpus SYN, verze 6 z 18. 12. 2017. Ústav Českého národního korpusu FF UK, Praha 2017. Dostupný z WWW: http://www.korpus.cz FI MU – czTenTen12. Centrum zpracování přirozeného jazyka FI MU, Brno. Dostupný z: WWW: http://ske.fi.muni.cz/bonito. Nástroj KonTetxt dostupný z: WWW: https://kontext.korpus.cz/first_form. Nástroj Sketch Engine dostupný z: WWW: https://www.sketchengine.co.uk/. Nástroj SkELL dostupný z: WWW: https://www.sketchengine.co.uk/skell/. Nástroj Treq dostupný z: WWW: http://treq.korpus.cz/index.php. ________________________________ [1] Text vznikl za podpory projektu MUNI/A/0862/2017 Čeština v jednotě synchronie a diachronie – 2018. [2] Manažer užívaný dříve pro práci s korpusy ÚČNK, který je nekomerční volně dostupnou (open-source) verzí softwarového nástroje Sketch Engine. Na rozdíl od něho nedisponuje některými funkcemi. Více: https://nlp.fi.muni.cz/trac/noske. [3] V rozhraní KonText se přes menu Nápověda/Help → Uživatelská příručka/User Manual se podle volby jazyka dostaneme k podrobné internetové příručce v češtině nebo angličtině. V nástroji Sketch Engine je v liště přímo odkaz Uživatelská příručka/Help oba odkazy vedou k manuálu v angličtině. [4] Metadata jsou jednak informace, které identifikují zdroje vyhledaných dokladů (typ textu, autora, žánr, …), jednak lingvistické informace vložené do korpusu, přes něž lze vyhledávat na různých rovinách lingvistické abstrakce (například lemmata, slovní druhy a další gramatické významy reprezentované morfologickými značkami, tzv. tagy). [5] Takto například pracují učitelé cizích jazyků s korpusy, když v nich hledají autentické věty jako ilustrační materiál nebo při tvorbě různých cvičení. [6] V českém prostředí existuje vícero tagsetů. Korpusy přístupné přes grafické rozhraní KonText jsou značkovány tagsetem, který v lingvistické literatuře bývá označován jako „pražský“ /viz více zde: https://wiki.korpus.cz/doku.php/seznamy:tagy). Korpusy budované na FI MU užívají tagset označovaný jako „brněnský“ (viz https://www.sketchengine.co.uk/tagset-reference-for-czech/). [7] Na obrázcích níže jsou kolokace seřazeny podle asociační míry MI-score (Obrázek 14) a LogDice (Obrázek 15). Viz více https://wiki.korpus.cz/doku.php/pojmy:asociacni_miry?redirect=1#dice_a_logdice. [8] Zajímavé je porovnání Sketch rozdílu dalších analogických dvojic jako Čech/Rus, Čech/Rom a Čech/Žid. [9] Před nějakou dobou byl v českém tisku zveřejněn seznam slov, s jejichž významem si nevědí rady ani české děti. Víte, co znamenají slova: bezbřehý, bytelný, balamutit, cudný, horlivý, hvozd, chmurný, chrabrý, jihnout, jímavý, jízlivý, kasat se, kazajka, klání, kloudný, komolit, konejšit, lačný, láteřit, ledabylý, lomozit, lpět, mamon, mdlý, mimoděk, nedůtklivě, nejapný, niterný, okounět, osočit, ostýchavý, otálet, otrapa, perný, pohnutka, pokoutně, ponurý, pookřát, pověra, potutelný, proradný, prchlivý, předpojatý, pýřit se, rmoutit, se, rozšafný, rusý, schlíplý, slídit, spílat, srdnatý, strádat, střenka, svérázný, svízel, sudí, šev, tklivý, trýznit, úděl, uhranout, unylý, úlisný, upejpat se, úporný, úskalí, uštěpačný, útlocitný, vesměs, vzývat, záhy, zakabonit se, zakolísat, záludný, zášť, zesinat, zevrubný, zmerčit, zpupný, ztepilý? Zkuste se na ně podívat zde: http://treq.korpus.cz/index.php a zde: https://cskell.sketchengine.co.uk/run.cgi/skell#.