PRŮVODCE ČESKÝM AKADEMICKÝM KORPUSEM 2.0

3. CD-ROM Český akademický korpus 2.0

3.1. Adresářová struktura

V této části uvádíme popis adresářové struktury CD-ROM, a to až do druhé, příp. třetí úrovně zanoření, viz tabulka 3.1. Pokud v textu odkazujeme na obsah CD-ROM, který je zanořen hlouběji, explicitně na to upozorňujeme uvedením úplné cesty.

Tabulka 3.1. Adresářová struktura CD-ROM ČAK 2.0

index.html # průvodce ČAK 2.0 česky (formát html)
index-en.html # průvodce ČAK 2.0 anglicky (formát html)
Install-on-Linux.pl # instalační skript pro Linux (anglicky)
Install-on-Windows.exe # instalační program pro MS Windows (anglicky)
Instaluj-na-Linuxu.pl # instalační skript pro Linux (česky)
Instaluj-na-Windows.exe # instalační program pro MS Windows (česky)
bonus-tracks/ # bonusový materiál
    STYX/
# elektronická cvičebnice češtiny
data/ # datová komponenta
    csts/
# ČAK 2.0 ve formátu CSTS (soubory [ans][0-9][0-9][sw].csts)
    pml/
# ČAK 2.0 ve formátu PML (soubory [ans][0-9][0-9][sw].[amw])
    schemas/
# PML schémata a dtd pro CSTS
doc # dokumentace
    cac-guide/
# průvodce ČAK 2.0 česky a anglicky (formát pdf)
tools/ # nástroje
    Bonito/
# korpusový manažer
    Java/
# Java Runtime Environment 6 Update 3 pro Linux a MS Windows
    LAW/
# anotační morfologický editor
    TrEd/
# anotační syntaktický editor včetně modulu TrEdVoice pro hlasové ovládání
    Netgraph/
# korpusový prohlížeč a vyhledávač
    tool_chain/
# nástroje pro automatické zpracování českých textů
        tool_chain
# skript pro spouštění tokenizace a/nebo morfologické analýzy a/nebo tagování a/nebo parsování
        ...
   
tutorials/ # tutoriály k nástrojům

3.2. Data

Předmětem této části je organizace ČAK 2.0 do souborů, jejichž jména podléhají jisté konvenci, a samotná vnitřní reprezentace souborů.

3.2.1. Formát dat

Hlavním datovým formátem ČAK 2.0 je formát nazvaný Prague Markup Language (PML), založený na XML [31] a navržený pro bohatou reprezentaci lingvistické anotace textů. Každé zvolené rovině anotace odpovídá jeden samostatný soubor. Návrh PML probíhal souběžně s tektogramatickou anotací PZK 2.0.

Vedlejším datovým formátem ČAK 2.0 je formát CSTS. Jde o formát SGML [19] používaný v PZK 1.0 a rovněž v Českém národním korpusu [13]. Důvodem pro jeho použití v ČAK 2.0 je větší čitelnost tohoto formátu pro člověka, jeho snadné zpracování jednoduchými nástroji a rovněž to, že některé z nástrojů ČAK 2.0 pracují výhradně s CSTS. K dispozici je též nástroj pro převod mezi těmito dvěma formáty.

Následující oddíl obsahuje stručný přehled hlavních vlastností formátu PML; podrobné informace jsou publikovány v technické zprávě (Pajas, Štěpánek, 2005). V další části uvádíme stručný přehled hlavních vlastností formátu CSTS. Podrobnější informace je možno nalézt v dokumentaci PZK 2.0 [12].

Formát PML

V PML se mohou jednotlivé oddělené roviny anotace překrývat a mohou být konzistentně propojeny jak mezi sebou, tak i s dalšími zdroji dat. Každá rovina anotace je popsána v souboru PML schéma, který je jakousi formalizací abstraktního anotačního schématu pro tu kterou rovinu anotace. PML schéma popisuje, které elementy se na dané rovině vyskytují, jak jsou spojovány, vnořovány a strukturovány, hodnoty jakého typu se v nich mohou vyskytovat a jakou roli hrají v anotačním schématu (tato informace o tzv. PML roli může být využívána i aplikacemi ke správnému určení způsobu zobrazení PML dat uživateli). Z PML schématu mohou být automaticky generována další schémata, jako je Relax NG [18], díky čemuž může být konzistence dat ověřena pomocí běžných nástrojů pro XML. Obě verze schémat jsou k dispozici v adresáři data/schemas/. Pro ilustraci uvádíme v tabulce 3.2 část PML schématu w-roviny dat ČAK (data/schemas/wdata_schema.xml), která specifikuje, že odstavec (typ para, v případě ČAK 2.0 vždy celý dokument) sestává z posloupnosti elementů typu w-node.type; tento typ je níže definován jako struktura obsahující mimo jiné dva povinné elementy: id (jednoznačný identifikátor s rolí #ID) a token (slovní jednotku).

Tabulka 3.2. PML schéma w-roviny ČAK 2.0


<type name="w-para.type">
    <sequence>
        <...
        <element name="w" type="w-node.type"/>
    </sequence>
</type>
<type name="w-node.type">
    <structure name="w-node">
        <member as_attribute="1" name="id" role="#ID" required="1">
           cdata format="ID"/></member>
        <member name="token" required="1"><cdata format="any"/>
        </member>
        <member name="no_space_after" type="bool.type"/>
    </structure>
</type>
...

Každý PML soubor začíná hlavičkou odkazující na PML schéma souboru. V hlavičce jsou uvedeny všechny externí zdroje, na které je z tohoto souboru odkazováno, spolu s několika dalšími informacemi potřebnými pro správné vyhodnocení odkazů. Zbytek souboru obsahuje vlastní anotaci. Část hlavičky souboru m-roviny (n01w.m), kde se odkazuje na PML schéma tohoto souboru (mdata_schema.xml) a na příslušný soubor w-roviny (n01w.w), uvádíme jako příklad v tabulce 3.3.

Tabulka 3.3. Část hlavičky souboru n01w.m


<head>
    <schema href="mdata_schema.xml" />
    <references>
        <reffile id="w" href="n01w.w" name="wdata" />
    </references>
</head>
...

Obdobně tabulka 3.4 ukazuje referenční část hlavičky souboru a-roviny (n01w.a), kde se odkazuje na PML-schéma tohoto souboru (adata_schema.xml) a na příslušný soubor m-roviny (n01w.m) a w-roviny (n01w.w).

Tabulka 3.4. Část hlavičky souboru n01w.a


<head>
    <schema href="adata_schema.xml" />
    <references>
        <reffile id="m" href="n01w.m" name="mdata" />
        <reffile id="w" href="n01w.w" name="wdata" />
    </references>
</head>
...

Anotace je vyjádřena pomocí XML elementů a atributů pojmenovaných a použitých v souladu s příslušným PML schématem. Pro ilustraci uvádíme v tabulce 3.5 příklad morfologické anotace části věty Váš boj je i naším bojem. Otvírací značka elementu s obsahuje identifikátor celé věty, stejně tak otvírací značky elementu m obsahují identifikátory dané anotace odpovídajících slovních jednotek w-roviny, na které se odkazuje z elementu w.rf. Další elementy obsahují formu (form), morfologickou značku (tag) a lemma (lemma) a element src.rf udává zdroj anotace, v tomto případě ruční.

Tabulka 3.5. Ukázka anotace věty na m-rovině ve formátu PML


<s id="m-n01w-s14">
    <m id="m-n01w-s14W1">
        <src.rf>manual</src.rf>
        <w.rf>w#w-n01w-s14W1</w.rf>
        <form>Váš</form>
        <lemma>tvůj_^(přivlast.)</lemma>
        <tag>PSYS1-P2-------</tag>
    </m>
    <m id="m-n01w-s14W2">
        <src.rf>manual</src.rf>
        <w.rf>w#w-n01w-s14W2</w.rf>
        <form>boj</form>
        <lemma>boj</lemma>
        <tag>NNIS1-----A----</tag>
    </m>
    <m id="m-n01w-s14W3">
        <src.rf>manual</src.rf>
        <w.rf>w#w-n01w-s14W3</w.rf>
        <form>je</form>
        <lemma>být</lemma>
        <tag>VB-S---3P-AA---</tag>
    </m>

    ...

    <m id="m-n01w-s14W7">
        <src.rf>manual</src.rf>
        <form_change>insert</form_change>
        <form>.</form>
        <lemma>.</lemma>
        <tag>Z:-------------</tag>
    </m>
</s>

Tabulka 3.6 ukazuje příklad analytické anotace věty Váš boj je i naším bojem. Pro přehlednost jsou vynechány méně důležité elementy. Závislostní struktura věty je zachycena strukturou vnořovaných elementů. Synovské uzly jsou obaleny elementem children. Každý uzel je dále obalen elementem LM, jehož atributem je identifikátor tohoto uzlu; výjimkou jsou jednoprvkové seznamy uzlů, kde tento element může být vynechán, identifikátor uzlu je pak atributem elementu children. Element m.rf odkazuje na příslušný prvek nižší roviny, který obsahuje konkrétní slovní formu, element afun obsahuje analytickou funkci uzlu. Element ord obsahuje pořadí uzlu ve stromu zleva doprava, které je shodné s pořadím slova ve větě.

Tabulka 3.6. Ukázka anotace věty na a-rovině ve formátu PML


<LM id="a-n01w-s14">
    <s.rf>m#m-n01w-s14</s.rf>
    <afun>AuxS</afun>
    <ord>0</ord>
    <children>
        <LM id="a-n01w-s14W3">
            <afun>Pred</afun>
            <m.rf>m#m-n01w-s14W3</m.rf>
            <ord>3</ord>
            <children>
                <LM id="a-n01w-s14W2">
                    <afun>Sb</afun>
                    <m.rf>m#m-n01w-s14W2</m.rf>
                    <ord>2</ord>
                    <children id="a-n01w-s14W1">
                        <afun>Atr</afun>
                        <m.rf>m#m-n01w-s14W1</m.rf>
                        <ord>1</ord>
                    </children>
                </LM>
                <LM id="a-n01w-s14W6">
                    <afun>Pnom</afun>
                    <m.rf>m#m-n01w-s14W6</m.rf>
                    <ord>6</ord>
                    <children id="a-n01w-s14W5">
                        <afun>Atr</afun>
                        <m.rf>m#m-n01w-s14W5</m.rf>
                        <ord>5</ord>
                        <children id="a-n01w-s14W4">
                            <afun>AuxZ</afun>
                            <m.rf>m#m-n01w-s14W4</m.rf>
                            <ord>4</ord>
                        </children>
                    </children>
                </LM>
            </children>
        </LM>
        <LM id="a-n01w-s14W7">
            <afun>AuxK</afun>
            <m.rf>m#m-n01w-s14W7</m.rf>
            <ord>7</ord>
        </LM>
    </children>
</LM>

XML elementy všech souborů patří do vyhrazeného jmenného prostoru http://ufal.mff.cuni.cz/pdt/pml/ (pouze název jmenného prostoru, nejedná se o smysluplný odkaz). Formát PML poskytuje jednotnou reprezentaci většiny běžných anotačních konstrukcí, jako jsou struktury atribut-hodnota, seznam alternativních hodnot určitého typu (atomického nebo dále strukturovaného), odkazy v rámci PML souboru, odkazy mezi různými PML soubory (v ČAK 2.0 použité k odkazům mezi rovinami) nebo do dalších externích zdrojů typu XML.

Formát CSTS

Ve formátu CSTS jsou všechny roviny anotace uchovány v jednom souboru.

Soubor CSTS začíná (nepovinnou) hlavičkou (element h) a dále obsahuje alespoň jeden element doc. Element doc sestává z hlavičky (element a) a obsahu (element c). Element c pak sestává z posloupnosti odstavců (element p) a vět v těchto odstavcích (element s).

Každá slovní jednotka věty je na samostatném řádku souboru (element f, resp. d pro interpunkci), dále na tomto řádku následuje anotace této slovní jednotky na všech rovinách. Element l obsahuje lemma slovní jednotky, element t obsahuje její morfologickou značku. Element A obsahuje analytickou funkci slovní jednotky. Jednoznačný identifikátor slovní jednotky v rámci věty je uložen v elementu r. Element g obsahuje odkaz na řídící uzel příslušného slova; v tomto elementu je uveden identifikátor příslušného řídícího uzlu.

Tabulka 3.7 ukazuje, jak ve formátu CSTS vypadá kompletní anotace věty Váš boj je i naším bojem.

Tabulka 3.7. Ukázka anotace věty ve formátu CSTS


<s id=n01w-s14>
<f id=n01w-s14W1>Váš<l>tvůj_^(přivlast.)<t>PSYS1-P2-------
   <r>1<g>2<A>Atr
<f id=n01w-s14W2>boj<l>boj<t>NNIS1-----A----<r>2<g>3<A>Sb
<f id=n01w-s14W3>je<l>být<t>VB-S---3P-AA---<r>3<g>0<A>Pred
<f id=n01w-s14W4>i<l>i<t>J^-------------<r>4<g>5<A>AuxZ
<f id=n01w-s14W5>naším<l>můj_^(přivlast.)<t>PSZS7-P1-------
   <r>5<g>6<A>Atr
<f id=n01w-s14W6>bojem<l>boj<t>NNIS7-----A----<r>6<g>3<A>Pnom
<D>
<d id=n01w-s14W7>.<l>.<t>Z:-------------<r>7<g>0<A>AuxK

DTD soubor pro formát CSTS se nachází v adresáři data/schemas/. Podrobný popis tohoto formátu je možno nalézt v dokumentaci PZK 2.0 [12].

V adresářích tools/tool_chain/csts2pml/ a tools/tool_chain/pml2csts/ jsou k dispozici převodní skripty mezi oběma formáty.

3.2.2. Konvence pojmenování souborů

Každý datový soubor ČAK 2.0 odpovídá jednomu anotovanému dokumentu. První znak jména souboru indikuje styl textu: n označuje novinové články (publicistiku), s označuje vědecké texty (odborný styl), a označuje texty administrativní. Následuje dvoumístné pořadové číslo dokumentu v rámci skupiny dokumentů jednoho stylu; písmeno za číslem udává, zda jde o původně psaný text (písmeno w) nebo o přepis mluvené řeči, tzv. mluvený text (písmeno s). Jména souborů jsou také součástí identifikátorů vět a prvků vět obsažených v těchto souborech, např. <m id="m-n01w-s1W1"> v tabulce 3.5. V příloze A jsou uvedena jména souborů pro jednotlivé dokumenty.

Příklad: Soubory se jménem podle šablony a[0-9][0-9]s* obsahují přepisy mluvené řeči s administrativním obsahem.

Ve formátu PML přípona souboru vyjadřuje rovinu anotace dokumentu. Přípona .w označuje w-rovinu, .m označuje m-rovinu a .a označuje a-rovinu. Mluvíme potom o w-souborech, m-souborech a a-souborech. Ke každému a-souboru existuje právě jeden m-soubor a právě jeden w-soubor. Z každého a-souboru vedou odkazy do příslušného m-souboru a w-souboru a z každého m-souboru vedou odkazy do příslušného w-souboru (viz výše). Z tohoto důvodu by soubory neměly být přejmenovány. Z w-souboru do m-souboru (ani do a-souboru) odkazy nevedou, stejně tak nevedou odkazy z m-souboru do a-souboru.

Ve formátu CSTS je pouze jediná přípona pro všechny soubory, a sice přípona "csts".

Příklad: s17w.a označuje soubor obsahující anotace na a-rovině odborného psaného dokumentu. Ze souboru vedou odkazy do souborů s17w.m a s17w.w, ze souboru s17w.m vede odkaz do souboru s17w.w. Název s17w.csts označuje CSTS soubor, který obsahuje anotace ze všech tří anotačních rovin (w-rovina, m-rovina, a-rovina) odborného psaného dokumentu.

3.2.3. Velikost dat

ČAK 2.0 sestává ze 180 ručně anotovaných textových dokumentů obsahujících celkem 31 707 vět s 652 131 slovními jednotkami (tyto údaje jako i všechny ostatní jsou počítány z m-souborů). Slovních jednotek bez interpunkce je 570 760. Slovních jednotek bez interpunkce a bez čísel zapsaných číslicemi je 565 910. V tabulce 3.8 jsou uvedeny velikosti jednotlivých částí dat rozdělených podle stylu a podle formy.

Tabulka 3.8. Velikost jednotlivých částí ČAK 2.0 podle stylu a formy

styl forma počet souborů počet vět počet slovních jednotek počet slovních jednotek bez interpunkce počet slovních jednotek bez interpunkce a bez čísel zapsaných číslicemi
publicistický psaná 52 10 234 189 435 165 469 163 693
publicistický mluvená 8 1433 28 737 24 864 24 859
odborný psaná 68 11 113 245 174 216 280 214 127
odborný mluvená 32 4576 115 853 100 281 100 272
administrativní psaná 16 3362 58 697 51 431 50 524
administrativní mluvená 4 989 14 235 12 435 12 435
             
celkem psaná 136 24 709 493 306 433 180 428 344
celkem mluvená 44 6998 158 825 137 580 137 566
celkem psaná a mluvená 180 31 707 652 131 570 760 565 910

Zvlášť uvádíme v tabulce 3.9 kvantitativní údaje pro znaky '#' a '?', které byly ručně vloženy do ČAK jakožto znaky zástupné za chybějící slova a čísla zapsaná číslicemi.

Tabulka 3.9. Kvantitativní charakteristiky ČAK 2.0 – vložené znaky '#' a '?'

styl forma počet výskytů '#' (v počtu vět) počet výskytů '?' (v počtu vět) počet výskytů '#' nebo '?' (v počtu vět) počet vět bez vložených symbolů
publicistický psaná 1776 (1187) 925 (680) 2701 (1563) 8671
publicistický mluvená 5 (5) 25 (25) 30 (30) 1403
odborný psaná 2153 (1224) 2230 (1418) 4383 (2031) 9082
odborný mluvená 9 (9) 131 (108) 140 (113) 4463
administrativní psaná 907 (616) 635 (476) 1542 (919) 2443
administrativní mluvená 0 (0) 16 (15) 16 (15) 974

Pro úplnost dodáváme, že každý zveřejněný experiment provedený na datech ČAK 2.0 by měl obsahovat informaci o tom, jaká část dat byla pro jaký účel v experimentu použita.

Souhrnně konstatujeme, že anotace ČAK 2.0 je rozdělena do tří rovin, a to do roviny slovní (w-rovina), morfologické (m-rovina) a analytické (a-rovina). Každá z těchto rovin má vlastní PML schéma (v adresáři data/schemas/ soubory wdata_schema.xml, mdata_schema.xml, adata_schema.xml). Adresář data/pml/ obsahuje celkem 496 souborů, a to 180 w-souborů, 180 m-souborů a 136 a-souborů. Mluvené texty nebyly anotovány na analytické rovině. Pokyny pro  analytickou anotaci psaných textů není možné aplikovat na mluvené texty.

Data jsou k dispozici též ve formátu CSTS v adresáři data/csts/, který obsahuje celkem 180 souborů, z toho 136 souborů obsahuje morfologickou a syntaktickou anotaci, zatímco 44 souborů obsahuje pouze morfologickou anotaci.

Vzhledem k motivaci přičlenit ČAK k PZK předkládáme tabulku 3.10, kde je uvedeno základní srovnání obou korpusů. Všímáme si pouze těch charakteristik, které mají oba korpusy společné. K přímému začlenění ČAK do PZK dojde někdy v budoucnu při vydání další verze PZK.

Tabulka 3.10. Srovnání ČAK 2.0 a PZK 2.0

charakteristika PZK 2.0   ČAK 2.0
počet slov (tis.) počet vět (tis.) počet slov (tis.) počet vět (tis.)
anotace morfologická 2000 116   652 32
anotace analytická 1500 88   493 25
forma psaná 2000 116   493 25
forma mluvená -- --   159 7
styl publicistický 1620 94   218 12
styl administrativní -- --   73 4
styl odborný 380 22   361 16

3.3. Nástroje

Anotování dat, opravy anotací, vyhledávání v anotovaných datech a zpracování dat automatickými procedurami zprostředkovává celá řada nástrojů. Vzhledem k tomu, že ČAK 2.0 je korpus anotovaný na m-rovině a a-rovině, nabízíme nástroje, které umožňují práci s daty, tedy i s ČAK, právě na těchto dvou rovinách. Tabulka 3.11 poskytuje základní orientaci v nástrojích, které jsou součástí CD-ROM. Pro každý nástroj je uvedena jeho základní charakteristika spolu s určením, na jaký druh práce je nástroj vhodný. V dalších oddílech pak následuje podrobnější popisy jednotlivých nástrojů.

Tabulka 3.11. Přehled nástrojů

nástroj popis určení
Bonito korpusový manažer
  • vyhledávání v textech ČAK 2.0
  • vyhledávání v morfologických anotacích ČAK 2.0
  • vyhledávání v analytických funkcích přiřazených slovům korpusu ČAK 2.0 v rámci analytické anotace
  • základní statistické výpočty nad ČAK 2.0
LAW morfologický anotační editor
  • morfologické anotování (ruční zjednoznačnění morfologické analýzy)
TrEd syntaktický anotační editor
  • syntaktické anotování (určování větných členů a syntaktických závislostí mezi nimi)
Netgraph korpusový prohlížeč
  • vyhledávání v syntaktických strukturách ČAK 2.0
tool_chain automatická procedura pro zpracování českých textů
  • tokenizace
  • morfologická analýza
  • tagování (automatické zjednoznačnění morfologické analýzy)
  • parsování (automatická syntaktická analýza s určováním analytických funkcí)

3.3.1. Korpusový manažer Bonito

Grafický nástroj Bonito [32] ulehčuje uživatelům práci s jazykovými korpusy, zejména při vyhledávání a při základních statistických výpočtech nad vyhledanými daty. Bonito je nadstavbou korpusového manažeru Manatee, který provádí nejrůznější operace nad korpusovými daty. Podrobná dokumentace k nástroji Bonito je součástí nástroje samotného a vyvolá se z hlavního menu Nápověda.

Hlavní obrazovka Bonito je uvedena na obrázku 3.1. Základní ovládání nástroje ukážeme na konkrétních příkladech.

Obrázek 3.1. Bonito: hlavní obrazovka

Bonito: hlavní obrazovka

Vysvětlivky k obrázku 3.1

  • 1  Hlavní menu

  • 2  Tlačítko pro výběr korpusu

  • 3  Dotazovací řádek

  • 4  Hlavní okno pro zobrazení výsledků dotazu

  • 5  Sloupec s výskyty odpovídajícími dotazu

  • 6  Konkordanční řádky

  • 7  Vybrané konkordanční řádky

  • 8  Vedlejší okno pro zobrazení historie dotazu a širšího kontextu

  • 9  Stavový řádek

Z korpusového nástroje Bonito je možné vyvolat morfologickou analýzu, a to z menu Manažer | Morfologie. Nové okno, které tak otevřete, si můžete nechat připravené po celou dobu práce s korpusovým nástrojem. Můžete z něj spouštět morfologickou analýzu nebo syntézu (generování). Morfologická analýza zadaného slova vypíše všechna možná lemmata a příslušné značky. Při zaškrtnutí syntézy zase dostanete všechny možné slovní tvary, které lze ze zadaného lemmatu vytvořit, spolu s jejich morfologickými značkami. Viz obr. 3.2.

Obrázek 3.2. Bonito: volání morfologické analýzy

Bonito: volání morfologické analýzy

Tutoriál obsahuje podrobnější návod pro práci s Bonito.

3.3.2. Morfologický anotační editor LAW

LAW (Lexical Annotation Workbench, [33]) je integrované prostředí pro morfologické anotování. Podporuje přímou morfologickou anotaci (tj. přiřazování lemmatu a značky danému slovu), porovnání anotací jednoho textu (například vytvořených více anotátory), vyhledávání slov, značek atd. Editor pracuje na všech operačních systémech, které podporují Javu, včetně systémů Windows a Linux. LAW je otevřeným systémem rozšiřitelným prostřednictvím externích modulů – např. pro různá zobrazení dat, import/export souborů a nápovědy. LAW podporuje formáty PML [14], csts [12] a TNT [38].

Hlavní části programu

Nástroj se skládá ze tří hlavních částí, jak je vidět na obrázku 3.3.

Obrázek 3.3. LAW: hlavní obrazovka

LAW: hlavní obrazovka
  1. Navigátor – zobrazuje seznamy slov dokumentu filtrované podle různých kritérií a umožňuje výběr určitého slova pro disambiguaci.

  2. Da Panely – zobrazují morfologickou informaci o slovu a umožňují její disambiguaci, tzn. výběr správného lemmatu a značky. Panel se skládá ze dvou oken – seznamu skupin a seznamu položek. Seznam položek zobrazuje všechna lemmata a značky přiřazené danému slovu (na dané m-rovině). Pomocí seznamu skupin lze položky omezit jen na určité lemma, slovní druh, podrobný slovní druh nebo rod. Jeden Da Panel je vždy hlavní (primary), určité akce se pak týkají jen tohoto panelu (např. Ctrl-T aktivuje seznam lemmat a značek v hlavním panelu).

  3. Kontextová okna – kontextové informace, např. text dokumentu, syntaktické struktury atd.

Obvyklý způsob práce

Anotační proces probíhá následovně:
  1. Otevřete m-soubor, který chcete anotovat: File | Open (Ctrl-O). Odpovídající w-soubor se otevře automaticky.

  2. Přepněte se v Navigátoru do seznamu nejednoznačných slov (Ambi + jméno daného m-souboru), ve kterém se zobrazí nejednoznačná slova, tj. slova, pro která morfologická analýza nabízí více možností, a vyberte ze seznamu první slovo.

  3. Zmáčkněte Enter. Kurzor se přesune do hlavního Da Panelu. Vyberte správné lemma a značku a opět zmáčkněte Enter. Kurzor se přesune na další nejednoznačné slovo.

    Pokud uděláte chybu, přepněte se v Navigátoru do seznamu všech položek (All), nalezněte chybně anotované slovo a vyberte jej. Příslušná anotace se zobrazí v Da Panelu. Vyberte správné lemma a značku a přepněte se zpátky do seznamu nejednoznačných slov (Ambi X).

  4. Uložte výsledek anotování: File | Save (Ctrl-S).

3.3.3. Syntaktický anotační editor TrEd

TrEd (Tree Editor, [37]) je integrovaným prostředím primárně navrženým pro syntaktické anotování vět, při kterém je větě přiřazena stromová struktura. Zároveň může být použit i k prohlížení dat a obsahuje také několik druhů vyhledávacích funkcí.

TrEd podporuje vstupní a výstupní formáty PML a CSTS, které jsme čtenářům již představili v části 3.2.1. TrEd je zároveň modulárním systémem, proto je snadné doplnit podporu pro další formáty.

TrEd nabízí různé možnosti nastavení v závislosti na požadavcích uživatele. Jeho funkčnost může být dále rozšířena pomocí uživatelsky definovaných maker v jazyce Perl, které je možné vyvolat buď přímo klávesovou zkratkou, nebo přes položku v menu.

Programátorsky orientované uživatele bude jistě zajímat varianta nástroje TrEd bez grafického rozhraní, a to nástroj btred pro dávkové zpracování dat (Batch-mode Tree Editor). Dalším doplňkem je nástroj NTrEd, který umožňuje paralelizovat procesy spuštěné nástrojem btred jejich distribucí na více výpočetních strojů.

Pro otevření souborů v TrEd zvolte menu File | Open. Vyberte jakýkoliv soubor *.a (tj. soubor s analytickou anotací) nebo soubor *.csts, TrEd jej otevře a ihned zobrazí strom pro první větu daného souboru.

Typický vzhled TrEdu je na na obrázku 3.4. Jde o větu Problémy motivace jsou tak staré jako lidstvo. Vysvětlivky následují.

  • 1  Okno se stromem, který reprezentuje analytickou anotaci věty.

  • 2  Věta.

  • 3  Stavový řádek. Zobrazuje pro vybrané slovo (zvýrazněný uzel, zde Problémy) různé informace (zde identifikační číslo uzlu, lemma a morfologická značka).

  • 4  Aktuální kontext. Kontext je prostředí, ve kterém uživatel pracuje s anotacemi. V jednom kontextu je povoleno pouze anotace prohlížet (např. v kontextu PML_A_View se dají prohlížet analytické anotace), v jiném je měnit (např. v kontextu PML_A_Edit se dají analytické anotace měnit). Kontext je možné změnit kliknutím na jméno aktuálního kontextu a následným výběrem nového kontextu ze zobrazeného seznamu.

  • 5  Aktuální zobrazovací styl. Může být změněn podobným způsobem jako kontext.

  • 6  Editace zobrazovacího stylu.

  • 7  Zobrazení seznamu všech vět aktuálního souboru.

  • 8  Tlačítka pro otevření, uložení a opětovné otevření souboru.

  • 9  Tlačítka pro přesunutí na předchozí/následující strom v aktuálním souboru a pro správu oken.

Obrázek 3.4. TrEd: hlavní obrazovka

TrEd: hlavní obrazovka

Soubory ČAK 2.0 jsou implicitně otvírány v kontextu PML_A_View, který neumožňuje jejich editaci, pouze prohlížení. Pokud si přejete soubory měnit, přepněte se do kontextu PML_A_Edit. V obou kontextech je k dispozici jeden zobrazovací styl – PML_A. V libovolném kontextu můžete zobrazit seznam všech maker definovaných v daném kontextu a jejich klávesové zkratky, a to vybráním menu View | List of Named Macros.

3.3.4. Korpusový prohlížeč Netgraph

Netgraph [35] je aplikace typu klient-server, která umožňuje prohledávat ČAK 2.0 současně několika uživateli připojenými přes internet. Netgraph je navržený tak, aby prohledávání bylo co nejjednodušší a intuitivní, při zachování vysoké síly dotazovacího jazyka (Mírovský, 2008).

Dotaz v Netgraphu je jeden uzel nebo strom s vlastnostmi definovanými uživatelem, který má být vyhledán v korpusu. Prohledávání korpusu pak znamená hledání vět (samozřejmě ve formě anotovaných stromů), v nichž je hledaný uzel nebo strom obsažen. Uživatel má možnost zadat dotazy nejrůznější složitosti, od těch nejjednodušších (jako je hledání všech stromů korpusu, které obsahují dané slovo) po pokročilejší (jako např. hledání všech vět, obsahujících sloveso rozvité objektem, který není ve třetím pádě, a nejméně jedním příslovcem atd.). Dotazy mohou být dále rozšířeny tzv. meta atributy, které umožňují vyhledávat ještě složitější konstrukce.

Dotazy se v Netgraphu vytvářejí v uživatelsky přívětivém grafickém prostředí. Příkladem je dotaz na obrázku 3.5. V tomto jednoduchém dotazu hledáme všechny stromy, které obsahují uzel označený jako predikát rozvitý nejméně dvěma uzly označenými jako subjekt a objekt. Pořadí těchto uzlů v nalezených stromech není v dotazu nijak omezeno.

Obrázek 3.5. Netgraph: vytváření dotazu

Netgraph: vytváření dotazu

Jedním z výsledků, které server vyhledá, může být strom z obrázku 3.6.

Obrázek 3.6. Netgraph: výsledek dotazu

Netgraph: výsledek dotazu

Uživatel vždy používá klientskou část programu Netgraph. Tímto klientem se může připojit k veřejnému serveru quest.ms.mff.cuni.cz na portu 2001. Pokud si uživatel nainstaluje i serverovou část Netgraphu, může se připojit lokálně k tomuto vlastnímu serveru a prohledávat korpus bez přístupu k  internetu.

3.3.5. Automatické zpracování textů

Paralelně s prací nad daty jsou vyvíjeny aplikace pro morfologické a syntaktické zpracování českých textů. Součástí CD-ROM jsou dvě základní morfologické aplikace – morfologická analýza a tagování – a jedna syntaktická aplikace – parsování. Tyto tři aplikace jsou doplněny tokenizací.

Tokenizace je proces, který rozdělí daný text na jednotlivá slova. Výsledkem je tzv. vertikála, tedy soubor, v němž je každé slovo nebo interpunkční znaménko na zvláštním řádku. Pod pojmem tokenizace se často rozumí i tzv. segmentace, což je označení začátků odstavců a vět. I naše tokenizace text současně segmentuje.

V našem pojetí je však tokenizace ještě něco navíc – převádí vertikálu do formátu CSTS (viz část „Formát CSTS“). Převod do tohoto formátu spočívá hlavně v přidání hlavičky před vertikálu a označení jednotlivých slov jednoduchými značkami, které rozlišují vlastnosti slov viditelné přímo z jejich ortografického zápisu. Jde zejména o odlišení interpunkčních znamének, čísel zapsaných číslicemi nebo slov obsahujících číslice. Dále se speciální značkou označí slova začínající velkým písmenem a slova, která jsou celá napsána velkými písmeny. Výsledek tokenizace, tedy vertikála ve formátu CSTS, je potom přímo vstupním formátem pro další zpracování.

Morfologická analýza zpracovává jednotlivé slovní formy a určuje pro ně lemmata (základní tvary, např. pro podstatná jména první pád jednotného čísla, pro slovesa infinitiv) a možné morfologické interpretace.

Základem morfologické analýzy je morfologický slovník, který obsahuje tvaroslovné informace o českých slovech a jejich tvarech. Každý slovní tvar má přiřazeno lemma a morfologickou značku (morfologický tag), která popisuje morfologické vlastnosti tohoto tvaru. V použitém morfologickém slovníku mají mnohá lemmata doplňující informace o stylu, sémantice nebo o způsobu odvození. V případě zkratek bývají lemmata opatřena komentářem s vysvětlujícím textem v příloze B.

Vzhledem k vysoké homonymii češtiny lze většině slovních tvarů přiřadit více morfologických značek, občas i více lemmat. Např. slovní tvar pekla má dvě různá lemmata – podstatné jméno peklo a sloveso péci. Obě lemmata dále mohou pro uvedený slovní tvar mít několik různých morfologických značek. Při morfologické analýze se probírají jednotlivé slovní formy z celého korpusu a porovnávají se se slovními formami obsaženými v morfologickém slovníku. V případě shody se danému slovnímu tvaru přiřadí příslušná lemmata a morfologické značky. Výsledkem morfologické analýzy pro konkrétní slovo je tedy množina dvojic lemma–morfologická značka.

Na morfologickou analýzu navazuje tagování (někdy také desambiguace nebo disambiguace). Během této fáze se vybere ze všech možných lemmat a morfologických značek přiřazených v předchozí fázi jediná dvojice, která by měla být v konkrétním kontextu správná. Vzhledem k obtížnosti úlohy není možné navrhnout takovou metodu tagování, která by pracovala se stoprocentní úspěšností. Program, který tagování provádí, je označován jako tagger. Tagger, který je součástí CD-ROM, je založen na skrytých markovovských modelech s využitím průměrovaného perceptronu (Collins, 2002). Jedná se o metodu statistickou. Vstupem taggeru je text, který pro každé slovo obsahuje množinu všech možných morfologických značek a lemmat (výstup z morfologické analýzy). Na výstupu pak k těmto datům přidává jednoznačně vybranou značku a jí odpovídající lemma. Tagger byl natrénován na datech PZK 2.0.

Parsování představuje další úroveň zpracování textů, která navazuje na tagování. Při parsování se pro každé slovo věty určí jeho syntaktická závislost na jiném slovu věty a přiřadí se mu analytická funkce. Program, který parsování provádí, je označován jako parser. Parser, který je součástí CD-ROM, je založen na stejné metodologii jako použitý tagger. Vstupem parseru je text, který pro každé slovo textu obsahuje právě jednu dvojici lemma-morfologická značka. Na výstupu je stromová struktura ohodnocená analytickými funkcemi. Parser byl natrénován na trénovacích datech PZK 2.0.

Aby uživatel mohl nástroje pohodlně používat, vytvořili jsme skript tool_chain, který prostřednictvím základních přepínačů dokumentovaných v tabulce 3.12 spustí požadovaný nástroj. Řetězením přepínačů je možné spustit více nástrojů za sebou.

Příklad: Chceme-li surový text zpracovat morfologickou analýzou, spustíme tool_chain -tA

Připomenutí: Při práci s formátem PML musí být se souborem, který vstupuje do skriptu tool_chain, v adresáři i soubory, na které se z něho odkazuje. Pokud je vstupním souborem m-soubor, musí ho „doprovázet“ i příslušný w-soubor.

Tabulka 3.12. Skript tool_chain

parametr typ zpracování formát vstupního souboru

formát výstupního

souboru

-t tokenizace surový text CSTS
-A morfologická analýza CSTS PML m-soubor, CSTS
-T tagování PML m-soubor, CSTS (výstup morfologické analýzy) PML m-soubor, CSTS
-P parsování PML m-soubor, CSTS PML a-soubor, CSTS

Příklad: Ukážeme zpracování věty Fantastickým finišem si však Neumannová doběhla pro vytoužené olympijské zlato. Výsledky morfologické analýzy (spuštěním tool_chain -tA) a tagování (spuštěním tool_chain -T) jsou souhrnně uvedeny v tabulce 3.13. V případě více možných lemmat odpovídajících dané slovní formě (např. slovní forma si je analyzována buď jako sloveso být, nebo jako zvratná částice se) jsou tyto základní tvary odděleny symbolem svislého lomítka „|“. Abychom usnadnili čtenáři pátrání po chybách, kterých se tagger dopustil, potvrzujeme, že se tagger žádných chyb nedopustil. Výsledek parsování (spuštěním tool_chain -P) je uveden na obrázku 3.7. U každého uzlu stromu je zobrazena slovní forma, zjednoznačněné lemma, zjednoznačněná morfologická značka a analytická funkce. Abychom i v tomto případě usnadnili čtenáři pátrání po chybách, potvrzujeme, že se parser žádné chyby nedopustil.

Tabulka 3.13. Ukázka textu zpracovaného morfologickou analýzou a tagováním

vstupní text výsledek morfologické analýzy výsledek tagování
Fantastickým fantastický AAFP3----1A---- AAIP3----1A---- AAIS6----1A---7 AAIS7----1A---- AAMP3----1A---- AAMS6----1A---7 AAMS7----1A---- AANP3----1A---- AANS6----1A---7 AANS7----1A---- fantastický AAIS7----1A----
finišem finiš NNIS7-----A---- finiš NNIS7-----A----
si být VB-S---2P-AA--7|se_ ^(zvr._zájmeno/částice) P7-X3---------- se_^(zvr._zájmeno/částice) P7-X3----------
však však J^------------- však J^-------------
Neumannová Neumannová_;S NNFS1-----A---- NNFS5-----A---- Neumannová_;S NNFS1-----A----
doběhla doběhnout_:W VpQW---XR-AA--1 doběhnout_:W VpQW---XR-AA--1
pro pro-1 RR--4---------- pro-1 RR--4----------
vytoužené vytoužený_^(*3it) AAFP1----1A---- AAFP4----1A---- AAFP5----1A---- AAFS2----1A---- AAFS3----1A---- AAFS6----1A---- AAIP1----1A---- AAIP4----1A---- AAIP5----1A---- AAMP4----1A---- AANS1----1A---- AANS4----1A---- AANS5----1A---- vytoužený_^(*3it) AANS4----1A----
olympijské olympijský AAFP1----1A---- AAFP4----1A---- AAFP5----1A---- AAFS2----1A---- AAFS3----1A---- AAFS6----1A---- AAIP1----1A---- AAIP4----1A---- AAIP5----1A---- AAMP4----1A---- AANS1----1A---- AANS4----1A---- AANS5----1A---- olympijský AANS4----1A----
zlato zlato NNNS1-----A---- NNNS4-----A---- NNNS5-----A---- zlato NNNS4-----A----
. . Z:------------- . Z:-------------

Obrázek 3.7. Ukázka zpracování věty parsováním

Ukázka zpracování věty parsováním

Pro vyzkoušení nástrojů uživatelům doporučujeme , aby si vybrali libovolný český text a zpracovali jej skriptem tool_chain -tA . Následně výstup skriptu otevřete v nástroji LAW a začněte zjednoznačňovat přiřazené značky slov.

Soubor s ručně zjednoznačněnými značkami zpracujte skriptem tool_chain -P. Následně výstup skriptu otevřete v nástroji TrEd a můžete začít opravovat závislosti a analytické funkce.