Syntaktická anotace českých korpusů

grant GAČR P406/10/0434, 2010-2012

Grant se zaměřoval na dosažení především těchto hlavních cílů:

Podle koncepce projektu připravené v prvním roce projektu je vstupní česká věta zachycena na 3 rovinách popisu:

  1. na rovině grafémické, kde je věta, identifikovaná a oddělená od ostatních vět větným segmentátorem, reprezentována jako posloupnost tokenů (korpusových pozic) včetně interpunkce
  2. na rovině morfologické, kde jsou jednotlivým tokenům připsány morfologické údaje v podobě morfologických značek (tagů)
  3. na rovině povrchově syntaktické, kde je věta reprezentována v podobě složkového syntaktického stromu, přičemž jednotlivé tokeny a syntaktické (sub)struktury mají připsány povrchově syntaktické funkce

Klíčová je reprezentace věty na rovině c), která je jedním z hlavních výstupů projektu; při zobrazení věty na rovině c) má však uživatel samozřejmě možnost zobrazit si u každého tokenu i jeho podobu (grafémický slovní tvar) a morfologickou charakteristiku.

Vstupní věta je tedy postupně zpracována takto:

  1. na vstupu je věta jakožto posloupnost znaků zpracována větným segmentátorem a tokenizérem; výstupem je zachycení věty na rovině (a)
  2. na rovině (a) je věta následně morfologicky analyzována a disambiguována: vzniká tak její reprezentace na rovině (b), kde každý token věty je opatřen podrobnou morfologickou charakteristikou
  3. věta na rovině (b) je vstupem závislostního parseru (používá se MST parser a/nebo MALT parser), který ji analyzuje a vytvoří její povrchověsyntaktickou reprezentaci  ve formátu analytické roviny PDT (= Prague Dependency Treebank). Jelikož tento formát plně neodpovídá cílům projektu (schází např. možnost různorodé reprezentace syntaktické struktury věty), je věta po důležité fázi, kterou je
  4. automatická oprava výstupu parseru. Opravená syntaktická struktura je poté
  5. konvertována do výsledné podoby, kterou je bezprostředněsložková struktura s různými možnostmi uživatelské vizualizace.

Každý z uvedených kroků snad s výjimkou vytvoření podoby věty na rovině (a), ač i segmentace a tokenizace nejsou zcela bez problémů je, jak známo, velmi nesnadný. Řešitelský tým měl ambici zlepšit zpracování věty ve všech uvedených zpracovatelských fázích a na rovině (c) pak větu vhodně zobrazit na přání uživatele.

Hlavní výstupy projektu

SYNtakticky Anotovaný ČEský Korpus SYNÁČEK

Byl vytvořen plně automaticky SYNtakticky Anotovaný ČEský Korpus SYNÁČEK o rozsahu více než 1 milion slov, tj. cca 65000 vět vybraných ze tří hlavních textových žánrů: publicistiky, beletrie a odborné literatury. Tento korpus je anotován na základě nového anotačního schématu umožňujícího mj. různá zobrazení různých podob syntaktických struktur. Věty ve výsledném pilotním korpusu mají podobu bezprostředně-složkových stromů, uživatel si však může syntakticky analyzovanou větu zobrazit také závislostně v podobě povrchové nebo hloubkové.

Softwarové nástroje

Ke zlepšení syntaktické analýzy byly vyvinuty nové softwarové nástroje a zkvalitněny nástroje dosavadní. Ukazuje se, že spojením nových a starších vylepšených nástrojů v jeden systém a podstatným zkvalitněním lingvistického popisu češtiny (zvláště v oblasti morfologie a syntaxe) promítnutého do textových dat, s nimiž celý softwarový systém pracuje, lze v budoucnu plně automaticky s vyšší úspěšností označkovat stamilionové korpusy českých textů (přibližně do 1 miliardy slov), nejen výsledný pilotní korpus.

Nové softwarové nástroje:

Zkvalitnění těchto softwarových nástrojů:

Zkvalitnění jazykových dat

Tento aspekt je klíčový: při současné úrovni syntaktické analýzy češtiny se dají její výsledky zlepšovat zřejmě pouze stále jemnějším popisem dat, vhodným nastavením a vyladěním syntakticky relevantních parametrů pro stochastický parsing, kvalitní morfologickou disambiguací se zaměřením na nejčastější chyby. Konkrétně byla zkvalitněna tato jazyková data:

Podrobný popis projektu

  1. Úvod
  2. Anotace pilotního korpusu SYNÁČEK o velikosti cca 1 milion slovních tvarů (korpusových pozic)
  3. Automatická morfologická analýza a disambiguace
  4. Stochastická syntaktická analýza a rozbor chyb stochastického parseru MST
  5. Opravný systém založený na lingvistických pravidlech
  6. Návrh a implementace programu na zkvalitnění stochastické syntaktické analýzy zjednodušením vstupního textu
  7. Konverze syntakticky anotovaných dat ze závislostní podoby analytické roviny PDT do formátu do výstupní podoby bezprostředněsložkové
  8. Porovnání vzorku vět v podobě PDT s výstupní podobou korpusu
  9. Syntaktický slovník valenčních rámců
  10. Tvorba softwarového systému integrujícího konverzi syntakticky anotovaných dat a funkce korpusového manažeru
  11. Příprava trénovacích dat
  12. Revize morfologického slovníku
  13. Slovník víceslovných výrazů (kolokace a frazémy)
  14. Vytvoření základní sémantické klasifikace adverbií a substantiv na podporu syntaktické analýzy (zejména pro odlišení adverbialií a objektů)
  15. Bibliografie

0. Úvod

Projekt se zaměřoval na dosažení především těchto hlavních cílů:

Těmto cílům byla podřízena řada cílů dílčích, jež budou popsány níže.

Podle koncepce projektu připravené v prvním roce projektu je vstupní česká věta zachycena na 3 rovinách popisu:

  1. na rovině grafémické, kde je věta, identifikovaná a oddělená od ostatních vět větným segmentátorem, reprezentována jako posloupnost tokenů (korpusových pozic) včetně interpunkce
  2. na rovině morfologické, kde jsou jednotlivým tokenům připsány morfologické údaje v podobě morfologických značek (tagů)
  3. na rovině povrchově syntaktické, kde je věta reprezentována v podobě složkového syntaktického stromu, přičemž jednotlivé tokeny a syntaktické (pod)struktury mají připsány povrchově syntaktické funkce

Klíčová je reprezentace věty na rovině (c), která je jedním z hlavních výstupů projektu; při zobrazení věty na rovině (c) má však uživatel samozřejmě možnost zobrazit si u každého tokenu i jeho podobu (grafémický slovní tvar) a morfologickou charakteristiku.

Vstupní věta je tedy postupně zpracována takto:

  1. na vstupu je věta jakožto posloupnost znaků zpracována větným segmentátorem a tokenizérem; výstupem je zachycení věty na rovině (a)
  2. na rovině (a) je věta následně morfologicky analyzována a disambiguována: vzniká tak její reprezentace na rovině (b), kde každý token věty je opatřen podrobnou morfologickou charakteristikou
  3. věta na rovině (b) je vstupem závislostního parseru (používá se MST parser a/nebo MALT parser), který ji analyzuje a vytvoří její povrchověsyntaktickou reprezentaci ve formátu analytické roviny PDT (= Prague Dependency Treebank). Jelikož tento formát plně neodpovídá cílům projektu (schází např. možnost různorodé reprezentace syntaktické struktury věty), je věta po důležité fázi automatické opravy výstupu parseru dále konvertována do výsledné podoby, kterou je struktura s různými možnostmi uživatelské vizualizace.

Každý z uvedených kroků snad s výjimkou vytvoření podoby věty na rovině (a), ač i segmentace a tokenizace nejsou zcela bez problémů je, jak známo, velmi nesnadný. Řešitelský tým měl ambici zlepšit zpracování věty ve všech uvedených zpracovatelských fázích a na rovině (c) pak větu vhodně zobrazit na přání uživatele. Jednotlivé dílčí fáze zpracování, příslušné softwarové programy a jazyková data jsou popsány v níže uvedených odstavcích, v nichž se zároveň popisují dílčí úkoly projektu. Podrobněji jsou hlavní aspekty projektu popsány v přílohách (viz níže), v nichž jsou obsaženy publikované výstupy projektu i materiály interní podrobněji rozvádějící v některých bodech tento popis.

1. Anotace pilotního korpusu SYNÁČEK o velikosti cca 1 milion slovních tvarů (korpusových pozic)

Byl vytvořen povrchově syntakticky anotovaný korpus SYNÁČEK (SYNtakticky Anotovaný ČEský Korpus, Syntactically annotated corpus of Czech) o rozsahu více než 1 milion slov, obsažených v cca 65000 větách vybraných ze tří hlavních textových žánrů: publicistiky, krásné literatury a odborné literatury. Syntakticky anotované věty v tomto korpusu mají podobu složkových stromů, přičemž každá neterminální i terminální složka má přiřazenu svou povrchově syntaktickou funkci v příslušné větě s výjimkou uzlu pro hlavní predikaci reprezentujícího celou větu jakožto hlavní složku, které není ve větě s přítomným hlavním slovesným predikátem funkce přiřazena. Jde o klasické povrchově syntaktické funkce jako Subj (subjekt), Obj (objekt), Attr (atribut), Advb (adverbiále), VbAttr (doplněk), NomPred (nominální predikát), CoMemb (člen koordinace) a další funkce související s možnostmi různé vizualizace syntaktické struktury, zejména funkce Head (hlava, řídící prvek dané struktury), rozlišená ve vymezených případech na SurfHead (povrchová hlava) a DeepHead (hloubková hlava). Rozlišení povrchové a hloubkové hlavy se týká takových struktur, jako je spojení tvaru pomocného slovesa být s minulým příčestím v 1. a 2. osobě a s pasivním příčestím, kondicionálová částice by ve všech 3 osobách a obou číslech s minulým příčestím, či tvar sponového slovesa být s nominálním predikátem nebo adverbiem; zachycení předložkové fráze, kde předložka obdrží funkci SurfHead a syntaktické substantivum, jež předložka řídí, funkci DeepHead, a reprezentace vztahu spojky a řídícího predikátu vedlejší klauze. Ve speciálních případech má funkce DeepHead svůj alias - povrchověsyntaktickou funkci NomPred (nominální predikát) nebo Advb (adverbiále).

Anotované syntaktické struktury jsou v zásadě 2 typů: Headed a Unheaded. Typ Headed je typem struktur vyjadřujících závislostní vztahy, typ Unheaded naopak struktur jiné, nezávislostní povahy, jako je koordinace (např. otec a matka), apozice (sv. Štěpán, prvomučedník) a dále nestrukturované slovní spojení (např. víceslovná spojka "i když"). Úplný soupis syntaktických funkcí spolu s jejich stručným popisem je uveden v příloze Syntakticke_funkce.pdf.

V syntaktické struktuře nejsou žádné přidané uzly, například pro lexikálně nevyjádřený podmět finitního slovesa klauze nebo infinitivu v kondenzované, nominalizované konstrukci se na výstupu nevytváří odpovídající uzel. V syntaktické konstrukci není reflektován slovosled ten je jasný z podoby věty na rovině (a), kterou si uživatel může pochopitelně také zobrazit. Každá terminální složka obsahuje mimo svou funkci na rozdíl od složky neterminální i příslušný slovní tvar a morfologickou značku: daná věta je tak reprezentována na třech výše zmíněných rovinách: grafémické, morfologické a syntaktické. Výsledný korpus byl vytvořen plně automaticky, trénovací korpus o rozsahu cca 165000 slov (viz níže) byl vytvořen poloautomaticky a navíc byl vytvořen velmi malý ručně anotovaný korpus manuálových cca 815 vět), a to proto, aby řešitelé získali přesnější představu o kvalitě softwarových nástrojů podílejících se na vytvoření korpusu (závislostní parsing, konverze do složkového formátu, v menší míře i morfologická disambiguace).

V korpusu se dá vyhledávat pomocí korpusového manažeru (je popsán v odst. 9 níže).

Proces anotace se skládá z těchto fází (viz i odst. 0. Úvod výše):

  1. segmentace a tokenizace vstupní české věty - vznik podoby věty na rovině grafémické
  2. morfologická analýza
  3. hybridní morfologická disambiguace (spolupráce systému LanGr založeného na syntaktických pravidlech se stochastickým taggerem MorČe)
  4. parsing pomocí MST parseru nebo MALT parseru (podle analytické roviny PDT)
  5. oprava výstupu stochastického parsingu opravným softwarovým systémem založeným na pravidlech
  6. konverze opraveného výstupu do výsledné bezprostředněsložkové syntaktické struktury věty

Další popis je členěn zrhuba podle chronologického řazení jednotlivých stadií zpracování.

2. Automatická morfologická analýza a disambiguace

Velmi důležitou součástí procesu syntaktické analýzy en gros je i automatická morfologická analýza a morfologická disambiguace. Morfologická analýza pražského (Hajičova) typu (srov. Hajič, 2004) se opírá zejména o rozsáhlý morfologický slovník obsahující v současnosti cca 828000 lemmat (včetně derivovaných tvarů), z toho 170000 vlastních jmen a efektivní algoritmus analýzy. Slovník je nutno neustále zdokonalovat: v průběhu projektu se proto přidávaly nové lexémy (lemmata), zařazovaly se do příslušných paradigmat a opravovaly se nejrůznější druhy chyb, zvláště v lemmatizaci a morfologické interpretaci slovních tvarů. Slovník byl mj. doplněn např. o cca 600 činitelských slov končících formantem -tel a o 1500 nových názvů rostlin a dalších entit.

Klíčovou přípravnou fází pro syntaktickou analýzu je morfologická disambiguace. V průběhu práce na projektu bylo vytvořeno a na korpusech SYN2005, SYN2010 a SYN (srov. Český národní korpus, 2005, 2010; 2005, 2010) ověřeno a odladěno 354 nových pravidel disambiguace založené na pravidlech a opraveno cca 220 dalších. Nová pravidla se týkala zejména slovnědruhové disambiguace frekventovaných infinitivů (moci, pomoci, stát...), slovnědruhově homografních dativních tvarů (typ kárám), slovnědruhové homografie typu adjektivum vs. sloveso (typ: plní, mírní, lítá, rovná, shodnou, rozhodnou) a dalších jevů slovnědruhové honografie. Zvláštní pozornost byla věnována pádům: především velmi obtížné disambiguaci dativu, lokálu a akuzativu, která vyžaduje velmi jemná, náročná pravidla, a také jednotlivým frekventovaným homonymním slovům, např. to. Opravy pravidel se týkaly hlavně pravidel pro disambiguaci pádů substantiv a adjektiv, pravidel pro separaci klauzí v souvětích a konečně chyb nalezených při rešerších v korpusech a způsobených dosavadními pravidly. Z hlediska typů pravidel se vyvíjela jak pravidla konfigurační, vyjádřená regulárními výrazy, tak tzv. pravidla algoritmická (využívající například párování reflexiv se, si s jejich základovými slovy). Oba typy pravidel byly implementovány  v programovacím jazyce LanGr (srov. Květoň, 2006). V zájmu kvalitnější disambiguace se rovněž hlouběji zkoumal vztah syntaktických funkcí a morfologických forem, zvláště substantiv. Dále byla doplněna disambiguace ustálených kolokací a frazémů, převážně výrazů větných.

3. Stochastická syntaktická analýza a rozbor chyb stochastického parseru MST

Stěžejní součástí přípravy syntakticky anotovaného korpusu byla samozřejmě syntaktická analýza. Nevyvíjela se znovu, neboť parsing včetně přípravy gramatických pravidel syntaktické analýzy je úkol přesahující možnosti tříletého grantu malého řešitelského týmu, ale použily se existující parsery MST parser Ryana McDonalda (srov. McDonald et al., 2005) a MALT parser Joakima Nivreho (srov. Nivre et al., 2006 a 2007; viz též Kübler et al., 2009). Syntaktická anotace vytvořená zvoleným parserem byla pak opravena speciálním opravným softwarovým systémem vyvinutým v tomto projektu (viz odst. 4) a teprve pak postoupena ke konverzi do výsledného formátu. V souvislosti s činností parseru byly podrobně analyzovány výsledky MST parseru, a to jak manuálně na vzorcích z korpusu SYN2005, tak plně automaticky v rámci rozšířených trénovacích a testovacích dat PDT. Podrobně viz v česky psané příloze MST_parser_error_analysis.pdf. Zčásti byly analyzovány i slabiny MALT parseru a výsledky těchto rozborů se použily pro lingvisticky podložené návrhy nastavení parserů.

4. Opravný systém založený na lingvistických pravidlech

Během projektu byl vytvořen softwarový systém pro automatickou opravu výstupů stochastického parseru (srov. Jelínek, 2012). Systém je složen z lingvisticky motivovaných opravných pravidel, které se zaměřují na chybné struktury, které MST parser často vytváří. Vstupem i výstupem opravného programu je formát tzv. jednoduché vertikály, umožňující snadnou převoditelnost a operace s různými formáty (MST parser, CONLL formát, PML aj.) Účinnost programu byla podrobně analyzována na rozsáhlých vzorcích z korpusu SYN2005. Celková funkce programu a jeho jednotlivá pravidla (včetně jejich efektivity) jsou podrobně popsány v příloze Rule-based_correction_system.pdf (česky).

5. Návrh a implementace programu na zkvalitnění stochastické syntaktické analýzy zjednodušením vstupního textu

Ke zlepšení automatické syntaktické analýzy jsme kromě opravného systému uvedeného v bodě 4 zvolili metodu automatického zjednodušení dat (konkrétně odstranění lingvistického šumu , tj. některých syntakticky irelevantních vlastností slovních tvarů), s nimiž parser pracuje. Implementovali jsme základní verzi, která např. odstraňuje vokalizaci předložek, unifikuje některá vlastní jména, číslovky aj. Parser se tedy na trénovacích datech může soustředit na jednodušší data a lépe vybírat vhodné nastavení. Nová data (testovací nebo zcela nově analyzovaná), která se parseru předkládají, jsou zjednodušena stejným způsobem, lingvistické údaje se však neztrácejí, po zpracování parserem jsou totiž vráceny zpět. Díky tomuto programu se podařilo zlepšit výsledky MALT parseru z cca 86,1 / 79,9 % na 86,5 / 80,8 % a MST parseru z cca 85,9 / 78,8 % na 86,1 / 79,0 % (unlabeled / labeled accuracy), výchozí čísla jsou nejlepší dosažené úspěšnosti v češtině pro daný parser, ne vždy ovšem zdokumentovaná. U MALT parseru je zlepšení znatelné, u MST je zlepšení na hranici statistické chyby. Vývoj tohoto softwarového systému nebyl dosud ukončen (jeho vývoj je dlouhodobý), i když pro účely projektu je systém již plně funkční a u MALT parseru díky němu dosahujeme lepší anotace.

6. Konverze syntakticky anotovaných dat ze závislostní podoby analytické roviny PDT do formátu do výstupní podoby bezprostředněsložkové

Aby byla data výstupního syntakticky anotovaného korpusu méně závislá na konkrétním teoretickém pojetí (konkrétně na závislostní koncepci zvolené při značkování PDT) a aby se dala různým způsobem zobrazovat, byla konvertována ze závislostní podoby analytické roviny PDT vytvářené výše zmíněnými parsery do podoby bezprostředněsložkových struktur. Repertoár klasických syntaktických funkcí užívaných na analytické rovině PDT byl při konverzi na výstupu obohacen mj. o funkce Head, DeepHead, SurfHead, jež umožňují zobrazit mimo složkovou strukturu věty i její strukturu hloubkovou a povrchovou, přičemž funkce Head je přiřazena řídícímu prvku dané (pod)struktury a sdružuje v sobě jak SurfHead, tak DeepHead; v některých jasně vymezených případech u struktury rozlišujeme povrchovou a hloubkovou hlavu: např. ve složeném víceslovném predikátu (viz podrobněji odst. 1 výše). Při konverzi se mimo uzly opatřené uvedenými speciálními funkcemi nepřidávají do výsledné struktury žádné další uzly. Konverzi řídí skupina 24 implementovaných konverzních pravidel s variantami. Mimo základní typ konverze závislostní struktury, kdy se na složkovém výstupu stane řídící prvek závislostní struktury sestrou svých závislých členů a navíc opatřenou funkcí Head, byla zpracována i řada speciálních případů souvisejících zvláště se funkcí SurfHead a DeepHead.

Aby se otestovala úspěšnost konverze,

  1. vybrala se z poloautomaticky, tedy kvalitně anotovaných syntaktických dat reprezentativní skupina vět poloautomaticky syntakticky označkovaných anotátorkami
  2. vybral se reprezentativní vzorek 815 vět z manuálu PDT (cf. Hajič J. et al., 1999) a tento vzorek byl nejprve automaticky analyzován a výsledek ručně opraven.

Oba vzorky byly pak konvertovány a výsledek analyzován introspekcí: ukázalo se, že konverzní program má problémy jen se složitě do sebe zanořenými koordinacemi a apozicemi, v menší míře se problémy vyskytují i u některých typů koordinace předložkových skupin.

7. Porovnání vzorku vět v podobě PDT s výstupní podobou korpusu

Byl shromážděn vzorek 815 vět obsažených v anotačním manuálu PDT (Hajič et al., 1999). Jelikož manuál obsahuje popis všech typů syntaktických struktur, které se na analytické rovině  PDT značkovaly, a vhodné příkladové věty, bylo možné připravit tento vzorek jako dostatečně reprezentativní. K tomuto vzorku byla přidána ještě skupina vět poloautomaticky syntakticky označkovaných anotátorkami. Rozšířený vzorek vět ve formátu analytické roviny PDT (závislostní struktura) byl poté zkonvertován do podoby bezprostředněsložkové (popis konverze viz v odst. 6). Ukázalo se jako velmi výhodné mít různé možnosti, jak zobrazit danou větu na třech rovinách popisu, zvláště na rovině syntaktické trojím způsobem: standardní složkovou strukturu, hloubkovou strukturu a strukturu povrchovou. Tato možnost je navíc kombinována s možností zobrazit pouze část stromové struktury: ze syntaktického podstromu se zobrazí pouze jeho funkce a zbývající zobrazená struktura je tak přehlednější. Takto se postupovalo i při ladění konverzního programu. Ukázalo se - a to je podstatné -, že celý přístup je perspektivní a že takto bude možné v budoucnu syntakticky analyzovat data řádově větší a plně automaticky tak vytvářet rozsáhlé treebanks.

Největším problémem, který také ztěžoval přípravu co nejkvalitnějších dat, zůstává stále poměrně vysoká chybovost stochastických parserů, které často chybují i v případě, že jim morfologická disambiguace poskytně morfologicky správně anotovaná data.

8. Syntaktický slovník valenčních rámců

V projektu jsme použili 3 typy vstupních dat: slovník VALLEX vyvinutý v ÚFAL MFF UK (srov. Lopatková et al., 2008), valenční slovník, jehož základem je slovník BRIEF (srov. Pala et al., 1997, a Skoumalová, 2001), a seznamy sloves, jichž používá systém LanGr (viz Květoň, 2006).

Slovník VALLEX obsahuje 4891 sloves a 12241 slovesných rámců. Rámce jsou vybudovány na teoretickém základě daném Funkčním generativním popisem jazyka: členové každého rámce mají přiřazeny tzv. funktory (aktanty a volná doplnění) a své povrchové realizace. V projektu jsme členům rámců přiřadili povrchové syntaktické funkce (např. Subj, Obj, Advb...), což bylo poměrně snadné až na funkci Subj. Poté, co jsme se omezili pouze na funkce syntaktické, některé z rámců se ukázaly jako nadbytečné a byly vyřazeny.

Syntaktický slovník rámců jsme doplnili o slovesa ze slovníku Brief a upravili sjednocením variant jednotlivých slovesných rámců a přiřazením jak výše zmíněných funktorů, tak povrchových funkcí členům rámců. Tímot postupem jsme slovník rozšířili o dalších 6324 sloves a 7344 slovesných rámců.

Výsledný slovník jsme porovnali s 8219 slovesy obsaženými v systému LanGr a do slovníku jsme pak přidali dalších 2582 sloves. Jejich rámce jsem vytvořili poloautomaticky: použili jsme seznamů sloves s určitou vlastností (např. slovesa reflexiva tantum, tranzitivní slovesa a další). Výsledný slovník obsahuje 13797 sloves a cca 20000 rámců.

9. Tvorba softwarového systému integrujícího konverzi syntakticky anotovaných dat a funkce korpusového manažeru

Byla vyvinuta aplikace SyntViewer, která plní dva důležité úkoly:

  1. realizuje konverzi z formátu PDT, v němž je věta reprezentována v podobě závislostního stromu, do formátu výstupního, který má podobu bezprostředněsložkové struktury (srov. odst. 6 výše);
  2. funguje jako korpusový manažer: umožňuje prohledávat a zobrazovat lingvistická data ve výstupním korpusu.

Aplikace je implementována jako stand-alone aplikace spustitelná v prostředí Java Virtual Machine - tj. téměř v každém dnešním operačním systému a téměř na každém počítači.

Vnitřně je navržena s využitím návrhových vzorů s důsledně implementovanou volnou vazbou mezi jednotlivými stavebními komponenty aplikace. Takový návrh umožňuje poměrně snadný další rozvoj.

Aplikace pracuje s datovými soubory, které načítá z disku a pracuje s nimi v operační paměti. Současná verze je proto limitována velikostí operační paměti a zatím neumožňuje pracovat s velmi velkými korpusy o velikosti více než miliardy korpusových pozic.

Data aplikace jsou uložena ve speciálním formátu založeném na standardu XML. Aplikace zároveň umožňuje načíst data několika dalších formátů a transformovat je do svého vnitřního formátu. Takto jsou podporovány formáty "vertikála" (užívaná v projektu) a CSTS (specifický typ strukturního značkování textu). Při transformaci do svého vnitřního formátu provádí aplikace úpravy dat založené na implementovaných lingvistických pravidlech. Pravidla jsou přímo kódována v programovacím jazyce Java.

Aplikace uživateli zobrazuje načtená data v několika různých pohledech. Uživatel si vybírá způsob zobrazení: v současnosti je podporováno zobrazení: (i) horizontální, (ii) kompaktní horizontální a (iii) vertikální. V kompaktním i nekompaktním horizontálním pohledu uživatel vidí celou větu vepsanou do šířky, ve vertikálním jsou naopak jednotlivá slova zobrazované věty umístěna pod sebou a struktura je vyznačena vedle nich.

Pro přehledné zobrazení větších struktur aplikace implementuje možnost uživatelského sbalování a rozbalování částí struktur, a to klepnutím na patřičná místa ve strukturách. Umožňuje tak přehledné částečné zobrazení syntaktické struktury.

Implementovány jsou i různé lingvistické pohledy na jazyková data: uživatel si může vybrat, zda ho zajímá povrchová závislost, hloubková závislost či bezprostředněsložková struktura. Mezi těmito reprezentacemi dané věty může uživatel kdykoliv přepínat.

Podobně si uživatel průběžně vybírá množství zobrazených informací: může si nechat zobrazit lemma a/nebo syntaktickou funkci a/nebo morfologickou informaci.

Důležitou součástí aplikace SyntViewer je vyhledávání v datech. Vyhledávání probíhá na základě uživatelského dotazu, který je vyhodnocen a uživateli jsou zobrazeny relevantní výsledky. Ty si uživatel může prohlížet a případně rovněž upravovat dotaz a podmínky vyhledávání.

Implementovaný uživatelský dotazovací jazyk disponuje plnou silou booleovské algebry včetně negace. Je jím možné klást dotazy zároveň jak na syntaktické vztahy, tak na morfologické vlastnosti i (pod)řetězce slovních tvarů (např. je možné v korpusu zjistit všechna adverbialia rozvíjející sloveso v nějakém čase a v určitém tvaru apod.)

Uživatel zadává dotazy v dotazovacím jazyce do formulářů, které se ho snaží vést a poskytovat mu nápovědu, a to jak ke struktuře dotazu, tak k jednotlivým zadaným výrazům a operátorům.

Vlastní dotaz se skládá ze dvou částí: deklarační a výrazové. V deklarační části uživatel specifikuje proměnné: ty mohou nabývat hodnot ze struktury vyhledané věty. V části výrazové pak uživatel zapisuje podmínky, které musí pro vyhledané věty mezi jejími částmi platit.

Při vyhledávání jsou dosazovány hodnoty proměnným a prověřována podmínka dotazu tak, že pro kladné části podmínky postačuje, když se pro proměnné, jež se v ní vyskytují, podaří najít alespoň jednu část struktury, která podmínce vyhovuje.

Pro negativní části podmínky, tedy pro ty, které se nacházejí za booleovským operátorem NOT, je nutné zjistit, zda pro žádné nastavení hodnot proměnných, které se vyskytují pouze v negativní části, tato část nemůže platit. Proto je vyhledávání optimalizováno a negativní části se vyhodnocují vždy až poté, co jsou kladně vyhodnoceny všechny pozitivní části podmínky.

10. Příprava trénovacích dat

Byly připraveny dvě sady trénovacích dat:

10.1 Poloautomatické morfologické značkování 1 milionu slovních tvarů v českých textech a příprava vzorového trénovacího korpusu založeného na těchto textech

Korpus slouží strojovému učení stochastických programů a testování systémů založených na pravidlech (systém automatické morfologické disambiguace založený na pravidlech a systém pro opravu syntaktických struktur). Texty v tomto korpusu by tedy měly být anotovány pokud možno bezchybně, což však znamená, že musí být anotovány ručně. Plná ruční anotace je ovšem velice pracná, neboť morfologická analýza přiřazuje slovnímu tvaru průměrně až 12 morfologických značek a disambiguace by tak byla pro lidského anotátora v podstatě neproveditelná. Proto jsme anotátorům usnadnili práci automatickým snížením počtu zpracovávaných značek. Nejprve jsme na vstupní data spustili naprosto bezpečná pravidla, poté kolokační/frazémový modul a pak opět bezpečná pravidla. Touto metodou jsme snížili počet značek na jedno slovo v průměru na 2,5, přičemž počet slovních tvarů majících přiřazenu jedinou značku se tak zvýšil z 36,5 % na více než 65 %. Přitom pokrytí (recall) dosažené touto procedurou je stále dost vysoké: více než 98,9 % (sama morfologická analýza má pokrytí 99,25 %).

Každý text byl pak ručně disambiguován dvěma nezávislými anotátory, jejich výsledky porovnány a opraveny třetím pracovníkem.

11. Revize morfologického slovníku

Morfologický slovník byl rozšířen o seznam variant homonymních lemmat, například: stát_1_(substantivum), stát_2_(sloveso), vydávat_se (doplněno reflexivum), usmát_se, zvyknout_si o rozsah cca 900 položek. Rozšíření je koncipováno tak, aby umožňovalo odkazovat z korpusových dat do morfologického a syntaktického korpusu.

12. Slovník víceslovných výrazů (kolokace a frazémy)

V průběhu projektu byl podstatně rozšířen slovník víceslovných výrazů (celkem o cca 3000 hesel). Tento slovník je koncipován jako klasifikovaný soupis hesel tvořený lemmaty slovních spojení, jež se dělí do 5 kategorií:

13. Vytvoření základní sémantické klasifikace adverbií a substantiv na podporu syntaktické analýzy (zejména pro odlišení adverbialií a objektů)

Oproti původnímu plánu použít českého sémantického počítačového tezauru WordNet jsme na základě korpusů SYN2005, SYN2010 a SYN rozdělili adverbialia do 3 tříd: 1) temporální, 2) lokální a 3) ostatní (zejména způsobová, příčinná, účelová, podmínková...). Český WordNet k této klasifikaci totiž neposkytuje data natolik jemně rozčleněná, jaká poskytují rozsáhlé korpusy a jaká bychom potřebovali. Každá z uvedených tříd se ještě dále dělí na adverbialia:

  1. jednoslovná (temporální, lokální, ostatní)
  2. víceslovná (temporální, lokální, ostatní)
Víceslovná adverbialia se dále dělí na
  1. ustálená (frazémová) spojení
  2. obecná víceslovná adverbialia.

Způsob zpracování předvedeme na adverbiích/adverbialiích temporálních, zpracování ostatních typů je analogické.

Ad a. Temporální jednoslovná adverbia/adverbialia

Automaticky byl na základě morfologického slovníku a manuálního třídění sestaven seznam 280 jednoslovných temporálních adverbií (například: předevčírem, kdykoli, kdys, zasvobodna, dneska, mezitím)

Ad b. Temporální víceslovná adverbialia

Tato adverbialia dělíme na:

  1. ustálená (frazémová) víceslovná časová adverbialia
  2. obecná víceslovná časová určení

c. Temporální substantiva

Mimo soupis adverbií a adverbiálií byl pořízen i seznam substantiv označujících nějaké časové období (např. den, doba, dospívání, hodina, léto, noc, průběh) nebo událost (např. narození, revoluce, válka).

Ad b1 Na základě programu FRANTA (ph(F)Raseme ANnotation and Text Analysis) a jeho tabulek byl automaticky vytvořen seznam všech neohebných nominálních frazémů (například: na poslední chvíli, v hodině dvanácté, na místě...). Z těchto frazémů byla pak ručně vytříděna časová adverbialia, kterých je nyní celkem 287 (příklady: do roka a do dne, při každé příležitosti).

Ad b2 Byly vytvořeny slovnědruhové vzorce časových adverbialií (za využití seznamu předložkových výrazů ze Slovníku české frazeologie a idiomatiky SČFI 4, srov. Čermák 2009, například: po skončení, před koncem, po začátku) a automaticky vytvořena tabulka pro program vyhledávání víceslovných slovních spojení se slovy ze seznamu typu c. výše. Po označení (vyhledání) v korpusových datech byl automaticky vytvořen seznam nalezených spojení, který byl poté ručně roztříděn.

Dále byla vytvořena tabulka dalších potenciálně temporálních slovních spojení, a programem FRANTA pro vyhledávání podle morfologické značky byla nalezena všechna potenciálně temporální slovní spojení v korpusových datech. Tato spojení byla pak ručně klasifikována podle typu adverbiále. Přitom se ukázalo, že složené předložky jsou velmi dobrým vodítkem k určení typu adverbiále.

Obdobně jako adverbia/adverbialia temporální byla zpracována i adverbialia místní (např. venku, vzadu, pod vodou, v lese) a ostatní, zvláště způsobová (krokem, zpaměti, touto formou, v dobré víře apod.), příčiny (např. pod dojmem posledních událostí, ze staré známosti), účelu (za tím účelem) a podmínky (za všech okolností, ani za zlaté prase). Počet takto zpracovaných místních adverbialií je 112, ostatních pak 125.

14. Bibliografie

Čermák F. (2009).
Slovník české frazeologie a idiomatiky (SČFI) 4. Výrazy větné. Leda, Praha.
Český národní korpus SYN2005, SYN2010, SYN (2005, 2010).
Ústav Českého národního korpusu FF UK. Praha 2005, 2010. Dostupný z WWW: http://www.korpus.cz.
Hajič J., J. Panevová, E. Buráňová, Z. Urešová, A. Bémová, J. Kárník, J. Štěpánek, P. Pajas (1999):
Anotace na analytické rovině. Návod pro anotátory. ÚFAL MFF UK, Praha.
Hajič J. (2004):
Disambiguation of Rich Inflection (Computational Morphology of Czech). Karolinum, Praha.
Jelínek T. , V. Petkevič (2011):
Systém jazykového značkování korpusů současné psané češtiny. In: Korpusová lingvistika Praha 2011, sv. 3: Gramatika a značkování korpusů. Nakladatelství Lidové noviny / Ústav českého národního korpusu, Praha, pp. 154 - 170.
Jelínek T. (2012):
Automatic Rule-Based Correction of Stochastic Syntactic Annotation of Czech. In: Ziková M., M. Dočekal (eds.), Slavic Languages in Formal Grammar. Proceedings of FDSL 8.5, Brno 2010. Peter Lang, Frankfurt am Main, pp. 65 - 81. (pdf)
Květoň P. (2006):
Rule-Based Morphological Disambiguation. Disertační práce, MFF UK, Praha.
Kübler S., R. McDonald, J. Nivre (2009):
Dependency Parsing. Morgan & Claypool.
Lopatková M., Z. Žabokrtský, V. Kettnerová (2008):
Valenční slovník českých sloves. Charles Univerzity/Karolinum, Prague.
McDonald R., F. Pereira, K. Ribarov, J. Hajič (2005):
Non-Projective Dependency Parsing using Spanning Tree Algorithms. In: Proceedings of HLT-EMNLP 2005. ACL, Vancouver, pp. 523 - 530.
Nivre J., J. Hall, J. Nilsson (2006):
MaltParser: A Data-Driven Parser-Generator for Dependency Parsing. In: Proceedings of the fifth international conference on Language Resources and Evaluation (LREC2006), May 24 26, 2006, Genoa, Italy, pp. 2216 - 2219.
Nivre J., J. Hall, J. Nilsson, A. Chanev, G. Eryigit, S. Kübler, S. Marinov, E. Marsi (2007):
MaltParser: A language-independent system for data-driven dependency parsing. Natural Language Engineering, 13(2), 2007, pp. 95 - 135.
Novák V., Z. Žabokrtský (2007):
Feature Engineering in Maximum Spanning Tree Dependency Parser. In: Lecture Notes in Computer Science, Proceedings of the 10th International Conference TSD 2007, Springer Verlag, Berlin/Heidelberg, pp. 92 - 98.
Pala K., P. Ševeček (1997):
Valence českých sloves. In: Sborník prací FFBU, volume A45. Masaryk Univerzity, Brno, pp. 41 - 45.
Prague Dependency Treebank 2.0 (2006).
ÚFAL MFF UK & CKL, Praha. Available at WWW: http://ufal.mff.cuni.cz/pdt2.0.
Skoumalová H. (2001):
Czech Syntactic Lexicon. Dissertation thesis, Univerzita Karlova, Praha.
Votrubec J. (2006):
Morphological Tagging Based on Averaged Perceptron. In: WDS 06 Proceedings of Contributed Papers. MFF UK, Praha, pp. 191 - 195.

Přílohy

Projektová bibliografie

Hnátková M., P. Jäger, T. Jelínek, V. Petkevič, A. Rosen, H. Skoumalová (2011):
Syntakticky anotovaný korpus českých textů. In: Korpusová lingvistika Praha 2011, sv. 3: Gramatika a značkování korpusů. Nakladatelství Lidové noviny / Ústav českého národního korpusu, Praha, pp. 143 - 153. ISBN 978-80-7422-116-3. (pdf)
Jelínek T. (2011):
Systém pro syntaktické značkování velkých textových korpusů. In: Korpusová lingvistika Praha 2011, sv. 3: Gramatika a značkování korpusů. Nakladatelství Lidové noviny / Ústav českého národního korpusu, Praha, pp. 123 - 142. ISBN 978-80-7422-116-3. (pdf)
Skoumalová H. (2011):
Porovnání úspěšnosti tagování korpusu. In: Korpusová lingvistika Praha 2011, sv. 3: Gramatika a značkování korpusů. Nakladatelství Lidové noviny / Ústav českého národního korpusu, Praha, pp. 199 - 207. ISBN 978-80-7422-116-3. Podpořeno navíc z výzkumného záměru MSM0021620823. (pdf)
Jäger P., V. Petkevič, A. Rosen, H. Skoumalová (2012):
Towards a treebank for all tastes. In: Ziková M., M. Dočekal (eds.), Slavic Languages in Formal Grammar. Proceedings of FDSL 8.5, Brno 2010. Peter Lang, Frankfurt am Main, pp. 49 - 65. ISBN 978-3-631-63609-1. (pdf)
Jelínek T. (2012):
Automatic Rule-Based Correction of Stochastic Syntactic Annotation of Czech. In: Ziková M., M. Dočekal (eds.), Slavic Languages in Formal Grammar. Proceedings of FDSL 8.5, Brno 2010. Peter Lang, Frankfurt am Main, pp. 65 - 80. ISBN 978-3-631-63609-1. (pdf)
Jelínek T., V. Petkevič, A. Rosen, H. Skoumalová (2012):
Czech Treebanking Unlimited. In: Hajič J., K. De Smedt, M. Tadič (eds.): Proceedings of the META-RESEARCH Workshop on Advanced Treebanking 2012. European Language Resources Evaluation (ELRA), Istanbul 2012, pp. 37 - 44. ISBN 978-2-9517408-7-7. (pdf)
Petkevič V. (2012):
Syntactic Functions of Infinitive in Contemporary Czech. In: Ziková M., M. Dočekal (eds.), Slavic Languages in Formal Grammar. Proceedings of FDSL 8.5, Brno 2010. Peter Lang, Frankfurt am Main, pp. 165 - 179. ISBN 978-3-631-63609-1. (pdf)

V tisku:

Hnátková M.:
Automatická slovnědruhová desambiguace slova "to" v ustálených větných výrazech. The paper presented at the conference Gramatika a korpus 2012 held in Prague (Nov 28 - Nov 30, 2012). (pdf)
Jelínek T.:
Porovnání funkčních stylů v korpusu SYN2005 na základě frekvence syntaktických funkcí substantiv. The paper presented at the conference Gramatika a korpus 2012 held in Prague (Nov 28 - Nov 30, 2012). (pdf)
Petkevič V.:
Automatické rozpoznávání substantivního dativu a jeho syntaktických funkcí v českých textech. The paper presented at the conference Gramatika a korpus 2012 held in Prague (Nov 28 - Nov 30, 2012). (pdf)

Připravuje se k tisku:

Rosen A.:
Grammar-based treebank a happy marriage of empiricism and theory? The plenary paper presented at the conference Gramatika a korpus 2012 held in Prague (Nov 28 - Nov 30, 2012). (prezentace)

Prezentace:

Hnátková M., P. Jäger, T. Jelínek, V. Petkevič, A. Rosen, H. Skoumalová (2011):
Treebanking a la carte. The paper presented at the conference Slavicorp in Ragusa (Dubrovnik, Croatia) held in the period Sep 12 - Sep 14, 2011.
Hnátková M., P. Jäger, T. Jelínek, V. Petkevič, A. Rosen, H. Skoumalová (2012):
A treebank for everyone. The presentation delivered at the University of Warsaw, Zespół Lingwistyki Korpusowej Języków Słowiańskich, Instytut Slawistyki Zachodniej i Południowej, Uniwersytet Warszawski, on June 19, 2012.
Rosen A., J. Hana (2012):
Haplology of Reflexive Clitics. The presentation delivered at the University of Göttingen, on May 4, 2012.

Poslední úprava: 04. 03. 2013 10:39