= Nástroje pro zpracování českých textů = Zpracování češtiny věnujeme v Centru zpracování přirozeného jazyka značnou pozornost. Podívejte se, jaké nástroje pro zpracování českých textů vyvíjíme. == Doplnění diakritiky == Poměrně hodně českých textů je napsáno bez diakritiky. Pro doplnění diakritiky můžete použít program `czaccent` Pavla Rychlého: === Stránka projektu === * http://nlp.fi.muni.cz/cz_accent/ == Segmentace na věty == Rozdělit text na věty se zdá jednoduché: kde je tečka, tam je konec věty. Ve skutečnosti věta končí tečkou jen někdy (protipříkladem budiž nadpisy nebo odrážky), někdy končí tečkou zkratka a za čísly jsou tečky vůbec záhada. === Stránka projektu === * http://nlp.fi.muni.cz/projekty/rozdelovac_vet/home.cgi == Tokenizace == Tokenizace je rozdělení věty na slova. Co je slovo? Zpravidla je to ta část mezi mezerami (a, ano, interpunkcí). Co je ''tys'' ve větě ''tys to spletl'': jedno slovo nebo dvě? Co jsou slova v případech jako ''jakž takž'', ''jakžtakž'', ''UB 40'', ''UB40'', ''192.0.0.1'', ''I'm''? Tokenizace je částečně jazykově závislá, pro češtinu lze použít nástroj `unitok` s nastavením českého jazyka. Spuštění nástroje `unitok` na strojích CZPJ: {{{ echo "Neustále se ženu za lepšími výsledky." | /corpora/programy/unitok.py }}} === Stránka projektu === * http://corpus.tools/ == Morfologická analýza == Cílem morfologické analýzy je určit základní tvar (lemma) a gramatické kategorie tokenu. Jeden token může mít více gramatických kategorií (např. slovo ''zdraví'' může být podstatné jméno v jednotném či množném čísle, přídavné jméno i sloveso). Morfologický analyzátor vypíše všechny možnosti. Gramatické kategorie jsou kódovány pomocí morfologických značek. Morfologické analyzátory vyvinuté v CZPJ jsou `ajka` Radka Sedláčka a novější `majka` Pavla Šmerka. Spuštění na strojích CZPJ: {{{ echo "ženu" | /nlp/projekty/ajka/bin/majka }}} Ukázka výpisu pro slovo ''ženu'': {{{ žena:k1gFnSc4 hnát:k5eAaImIp1nS }}} Základní tvar je před dvojtečkou, pro vysvětlení gramatických značek nahlédněte do http://nlp.fi.muni.cz/projekty/ajka/tags.pdf, novější značky (oproti původním značkám analyzátoru `ajka` jsou změny hlavně v kategoriích zájmen) najdete v článku: JAKUBÍČEK, Miloš, Vojtěch KOVÁŘ a Pavel ŠMERK. Czech Morphological Tagset Revisited. In Horák, Rychlý. Proceedings of Recent Advances in Slavonic Natural Language Processing 2011. Brno: Tribun EU, 2011. s. 29-42, 14 s. ISBN 978-80-263-0077-9. https://is.muni.cz/auth/publication/959110 (dostupný po přihlášení do IS MU). === Stránky projektů === * `ajka`: http://nlp.fi.muni.cz/projekty/ajka/ * `majka`: http://nlp.fi.muni.cz/czech-morphology-analyser/ == Morfologická desambiguace (tagging) == Morfologická desambiguace redukuje výstup morfologické analýzy na jeden základní tvar a jednu značku, které jsou platné pro token v konkrétním kontextu. Z věty ''Neustále se ženu za lepšími výsledky'' je jasné, že ''ženu'' je sloveso v první osobě jednotného čísla. Výstupem morfologické desambiguace je tedy seznam trojic (token, základní tvar, gramatická značka) pro každou větu. Pro morfologickou desambiguaci české věty je možné použít nástroj `desamb`. Spuštění na strojích CZPJ: {{{ echo "Neustále se ženu za lepšími výsledky." | /corpora/programy/unitok.py | /corpora/programy/desamb.utf8.majka.sh }}} Ukázka výstupu pro předchozí větu: {{{ Neustále neustále k6eAd1 se se k3xPyFc4 ženu hnát k5eAaImIp1nS za za k7c7 lepšími dobrý k2eAgInPc7d2 výsledky výsledek k1gInPc7 . . kIx. }}} == Syntaktická analýza == Cílem syntaktické analýzy je získat informace o syntaktických závislostech mezi tokeny, případně identifikovat větší syntakticky závislé celky – fráze. V CZPJ jsme vyvinuli dva různé syntaktické analyzátory: `synt` a `SET`. Spuštění analyzátoru `SET` na strojích CZPJ: {{{ echo "Neustále se ženu za lepšími výsledky." | /corpora/programy/unitok.py | /corpora/programy/desamb.utf8.majka.sh | /nlp/projekty/set/set/set.py }}} Analyzátor je možné spustit s řadou parametrů podle toho, jaký výpis potřebujete. Ukázka výstupu pro předchozí větu: {{{ 0 Neustále 2 d adverb 1 se 2 d object 2 ženu 7 p 3 za 2 d additional-prep 4 lepšími 5 d modifier 5 výsledky 3 d prep-object 6 . 7 p 7 8 p 8 -1 p }}} {{{ #!comment Spuštění analyzátoru `synt` na strojích CZPJ: TODO }}} === Stránky projektů === * `SET`: http://nlp.fi.muni.cz/trac/set * `synt`: http://nlp.fi.muni.cz/trac/synt == Český stoplist == Pro některé aplikace se hodí zpracovávat texty jako (multi)množiny slov (bag of words). V takových případech je vhodné počítat jen s plnovýznamovými slovy, možná se bude hodit seznam stop-slov neboli stoplist. Pro češtinu máme dva takové seznamy: [[cs/StopList|stoplist slov]] a [[cs/StoplistZakladnichTvaru|stoplist základních tvarů]] == Lexikální databáze == Pro některé úlohy je vhodné využít lexikální databáze. V CZPJ máme český !WordNet, [[cs/VerbaLex|VerbaLex]], klasické české slovníky (SSČ, SSJČ, PSJČ). Slovníky jsou dostupné na platformě Dictionary Editing and Browsing (DEB). === Stránky projektů === * [[cs/VerbaLex|VerbaLex]] * platforma `DEB`: http://deb.fi.muni.cz == Sémantická analýza == Úkoly sémantické analýzy jsou velice různé, takže následuje jen stručný seznam projektů, které souvisejí se sémantickou analýzou českého textu: === Stránky projektů === * rozpoznávání anafor `aara`: http://nlp.fi.muni.cz/projekty/watsonson/aara * vyhledávání klíčových frází (témat): http://nlp.fi.muni.cz/projekty/topicks {{{ #!comment * aktuální členění větné: TODO }}} == Korpusy == Pro zpracování češtiny je v nástroji !SketchEngine dostupných několik korpusů: czes2, desam, czTenTen, korpus české Wikipedie, Czechparl, paralelní korpus OPUS2. === Stránka projektu === * http://ske.fi.muni.cz/