AplikaceAplikace
Nastavení

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
kurz:syntakticka_analyza [2021/03/15 11:07] michalskrabalkurz:syntakticka_analyza [2022/08/13 13:19] (aktuální) – [Hledání v syntakticky anotovaném korpusu] alexandrrosen
Řádek 1: Řádek 1:
 ====== Hledání v syntakticky anotovaném korpusu ====== ====== Hledání v syntakticky anotovaném korpusu ======
  
-Korpusy [[cnk:syn2015|SYN2015]] a [[cnk:syn2020|SYN2020]] byly opatřeny syntaktickou anotací, která k morfologické anotaci a lemmatizaci přidává informaci o vztazích mezi slovy ve větě. Syntaktická anotace vychází z [[https://ufal.mff.cuni.cz/pdt2.0|Pražského závislostního korpusu]], z anotace na tzv. analytické (povrchové) rovině.+Korpusy [[cnk:syn2015|SYN2015]] a [[cnk:syn2020|SYN2020]] byly opatřeny syntaktickou anotací, která k morfologické anotaci a lemmatizaci přidává informaci o vztazích mezi slovy ve větě. Syntaktická anotace vychází z [[https://ufal.mff.cuni.cz/pdt2.0|Pražského závislostního korpusu]], z anotace na tzv. analytické (povrchové) rovině. Verze [[cnk:intercorp:verze13ud|13ud]] paralelního korpusu [[cnk:intercorp|InterCorp]] je syntakticky (a morfologicky) anotována alternativním způsobem podle zásad mezinárodního projektu [[pojmy:ud|Universal Dependencies]]. Dále popisujeme anotaci podle [[https://ufal.mff.cuni.cz/pdt2.0|Pražského závislostního korpusu]]. 
 Anotace je závislostní, to znamená, že každý token (tedy jak slovo, tak interpunkční znaménka aj.) je závislý buď na jiném tokenu v téže větě, nebo na technickém (umělém) "kořenu" věty v případě, že slovo má v celé větě řídící funkci (obvykle sloveso). Anotace je závislostní, to znamená, že každý token (tedy jak slovo, tak interpunkční znaménka aj.) je závislý buď na jiném tokenu v téže větě, nebo na technickém (umělém) "kořenu" věty v případě, že slovo má v celé větě řídící funkci (obvykle sloveso).
-Korpus byl označkován automaticky, přičemž chybovost značkování je cca 16%, tj. výrazně vyšší než v případě anotace morfologické. Chybovost je vyšší u méně častých a složitějších konstrukcí, nižší u jednodušších.+Korpus byl označkován automaticky, přičemž chybovost značkování je cca 11% (16% v SYN2015), tj. výrazně vyšší než v případě anotace morfologické. Chybovost je vyšší u méně častých a složitějších konstrukcí, nižší u jednodušších.
 Pro efektivní vyhledávání v rozsáhlém korpusu bylo nutno anotaci zjednodušit, vyhledávat lze tedy ve směru od závislého tokenu k řídícímu, ne naopak. Syntaktická anotace je podrobněji popsána v [[pojmy:syntakticka_analyza|samostatném hesle]]; zde se naučíme, jak se syntaktickou anotací pracovat. Všechny dotazy jsou založené na dotazovacím jazyce [[kurz:pokrocile_dotazy|CQL]]. Pro efektivní vyhledávání v rozsáhlém korpusu bylo nutno anotaci zjednodušit, vyhledávat lze tedy ve směru od závislého tokenu k řídícímu, ne naopak. Syntaktická anotace je podrobněji popsána v [[pojmy:syntakticka_analyza|samostatném hesle]]; zde se naučíme, jak se syntaktickou anotací pracovat. Všechny dotazy jsou založené na dotazovacím jazyce [[kurz:pokrocile_dotazy|CQL]].
  
Řádek 10: Řádek 11:
 Celé korpusy SYN2015 a SYN2020 jsou syntakticky označkované, u výsledku jakéhokoli dotazu můžeme vždy zobrazit kliknutím na ikonku {{:manualy:kontext:syntax-tree-icon.png?nolink&20|Ikonka pro zobrazení syntaktického stromu}} na levé straně konkordanční řádky, jak ukazuje obrázek: Celé korpusy SYN2015 a SYN2020 jsou syntakticky označkované, u výsledku jakéhokoli dotazu můžeme vždy zobrazit kliknutím na ikonku {{:manualy:kontext:syntax-tree-icon.png?nolink&20|Ikonka pro zobrazení syntaktického stromu}} na levé straně konkordanční řádky, jak ukazuje obrázek:
  
-[{{:kurz:kurz_synt_analyza_ex0.png?direct&700|Zobrazení syntaktického stromu FIXME}}]+[{{:kurz:kurz_synt_analyza_ex0.png?direct&700|Zobrazení syntaktického stromu }}]
  
 Po kliknutí se zobrazí syntaktický strom: Po kliknutí se zobrazí syntaktický strom:
Řádek 31: Řádek 32:
 Kromě těchto funkcí jsou v korpusu i funkce pomocné pro neplnovýznamová slova a interpunkci, např. pomocné sloveso **AuxV**, předložka **AuxP**, podřadicí spojka **AuxC**. A funkce označující slova (tokeny), které reprezentují slova ve vztahu koordinace **Coord** (obvykle spojky) a apozice **Apos** (nejčastěji interpunkce). Kromě těchto funkcí jsou v korpusu i funkce pomocné pro neplnovýznamová slova a interpunkci, např. pomocné sloveso **AuxV**, předložka **AuxP**, podřadicí spojka **AuxC**. A funkce označující slova (tokeny), které reprezentují slova ve vztahu koordinace **Coord** (obvykle spojky) a apozice **Apos** (nejčastěji interpunkce).
  
-[{{ :kurz:kurz_synt_analyza_ex1.png?direct&500|CQL dotaz na zájmena se synt. funkcí Pnom v instrumentálu FIXME}}]+[{{ :kurz:kurz_synt_analyza_ex1.png?direct&500|CQL dotaz na zájmena se synt. funkcí Pnom v instrumentálu }}]
  
 Chci-li například najít v korpusu SYN2015 všechna zájmena, která mají syntaktickou funkci "jmenná část verbonominálního predikátu", zadám následující dotaz: Chci-li například najít v korpusu SYN2015 všechna zájmena, která mají syntaktickou funkci "jmenná část verbonominálního predikátu", zadám následující dotaz:
Řádek 78: Řádek 79:
   ***p_case**: pád řídícího slova   ***p_case**: pád řídícího slova
  
-[{{ :kurz:kurz_synt_analyza_ex3.png?direct&500|CQL dotaz na substantiva závislá na následujících číslovkách FIXME }}]+[{{ :kurz:kurz_synt_analyza_ex3.png?direct&500|CQL dotaz na substantiva závislá na následujících číslovkách }}]
  
 Můžeme tak vyhledávat slova zároveň podle jejich vlastností a vlastností jejich řídícího slova. Můžeme tak vyhledávat slova zároveň podle jejich vlastností a vlastností jejich řídícího slova.
Řádek 120: Řádek 121:
 Pokud chceme vyhledat slova, která mají vícenásobnou hodnotu atributu eparent, musí se v dotazu objevit znaky zpětné lomítko a svislice **%%"\|"%%**. Svislice proto, že vícenásobná hodnota tento znak obsahuje, zpětné lomítko proto, aby se vyhledal skutečně znak %%"|"%%, a nepoužil se způsobem obvyklým v regulárním výrazu, tj. jako alternativa mezi dvěma možnostmi. Dotaz pak bude vypadat třeba takto: Pokud chceme vyhledat slova, která mají vícenásobnou hodnotu atributu eparent, musí se v dotazu objevit znaky zpětné lomítko a svislice **%%"\|"%%**. Svislice proto, že vícenásobná hodnota tento znak obsahuje, zpětné lomítko proto, aby se vyhledal skutečně znak %%"|"%%, a nepoužil se způsobem obvyklým v regulárním výrazu, tj. jako alternativa mezi dvěma možnostmi. Dotaz pak bude vypadat třeba takto:
  
-[{{:kurz:kurz_synt_anot_ex7.png?direct&400|CQL dotaz pro nalezení vícenásobných hodnot FIXME}}]+[{{:kurz:kurz_synt_anot_ex7.png?direct&400|CQL dotaz pro nalezení vícenásobných hodnot }}]
  
 Obecný dotaz, který vyhledá všechna slova s multihodnotou atributu eparent, může být formulován takto: ''[eparent=%%".+\|.+"%%]'' Obecný dotaz, který vyhledá všechna slova s multihodnotou atributu eparent, může být formulován takto: ''[eparent=%%".+\|.+"%%]''
Řádek 167: Řádek 168:
 Kdybychom chtěli vyloučit shodné přívlastky (//**panem** Novákem//, //městem **Prahou**//), museli bychom ještě vyloučit případy, kdy se řídící a závislé substantivum shodují v pádě. Ztratili bychom tím však i část jiných výskytů. Stačí vyloučit instrumentál u "skutečného rodiče" pomocí ''ep_case!=%%"%%7%%"%%''. Kdybychom chtěli vyloučit shodné přívlastky (//**panem** Novákem//, //městem **Prahou**//), museli bychom ještě vyloučit případy, kdy se řídící a závislé substantivum shodují v pádě. Ztratili bychom tím však i část jiných výskytů. Stačí vyloučit instrumentál u "skutečného rodiče" pomocí ''ep_case!=%%"%%7%%"%%''.
  
-[{{:kurz:kurz_synt_analyza_ex10.png?direct&400|CQL dotaz na vyhledání substantivních přívlastků v prostém instrumentálu FIXME}}]+[{{:kurz:kurz_synt_analyza_ex10.png?direct&400|CQL dotaz na vyhledání substantivních přívlastků v prostém instrumentálu }}]
  
 Vyhledáme tak 72 000 výskytů přívlastků, nejčastěji závislých na slovech //cesta//, //jízda//, //společnost//, //zásobování// nebo //rána//. Vyhledáme tak 72 000 výskytů přívlastků, nejčastěji závislých na slovech //cesta//, //jízda//, //společnost//, //zásobování// nebo //rána//.
Řádek 175: Řádek 176:
 Můžeme třeba chtít zjistit, jaké typy neshodných substantivních přívlastků (z hlediska syntaktické struktury) rozvíjejí substantivum //zájem//. Nejprve tedy vyhledáme všechny substantivní přívlastky rozvíjející toto slovo (přímo či přes předložku) následujícím příkazem: ''[pos=%%"N"%% & afun=%%"Atr.*"%% & ep_lemma=%%"zájem"%%]'' Můžeme třeba chtít zjistit, jaké typy neshodných substantivních přívlastků (z hlediska syntaktické struktury) rozvíjejí substantivum //zájem//. Nejprve tedy vyhledáme všechny substantivní přívlastky rozvíjející toto slovo (přímo či přes předložku) následujícím příkazem: ''[pos=%%"N"%% & afun=%%"Atr.*"%% & ep_lemma=%%"zájem"%%]''
  
-[{{ :kurz:kurz_synt_analyza_ex13.png?direct&400|FIXME}}]+[{{ :kurz:kurz_synt_analyza_ex13.png?direct&400|}}]
  
 Připomínáme, že při vyhledávání s využitím syntaktických atributů je třeba postupovat od závislých slov k řídícím, opačně to není možné, proto hledáme všechna substantiva s funkcí přívlastku závislá na (nejbližším plnovýznamovém) slově //zájem//. Po vyhledání a zobrazení konkordance v korpusu si vytvoříme frekvenční distribuci (**[[manualy:kontext:frekvence#vlastni_nastaveni_frekvencni_distribuce|Frekvence → Vlastní]]**). Na úrovni **1.** zvolíme atribut **prep**, prokliknutím modrého tlačítka plus vlevo dole přidáme úroveň a na úrovni **2.** zvolíme atribut **case**. Pozici a (Node) začít od necháme beze změny. Připomínáme, že při vyhledávání s využitím syntaktických atributů je třeba postupovat od závislých slov k řídícím, opačně to není možné, proto hledáme všechna substantiva s funkcí přívlastku závislá na (nejbližším plnovýznamovém) slově //zájem//. Po vyhledání a zobrazení konkordance v korpusu si vytvoříme frekvenční distribuci (**[[manualy:kontext:frekvence#vlastni_nastaveni_frekvencni_distribuce|Frekvence → Vlastní]]**). Na úrovni **1.** zvolíme atribut **prep**, prokliknutím modrého tlačítka plus vlevo dole přidáme úroveň a na úrovni **2.** zvolíme atribut **case**. Pozici a (Node) začít od necháme beze změny.