Práce s Pražským závislostním korpusem

Mgr. Jan Štěpánek, Ph.D.

Karlova Univerzita v Praze

ÚFAL

Workshop představí Pražský závislostní korpus (Prague Dependency Treebank, PDT) a základní nástroje, které lze používat k jeho prohledávání. Na rozdíl od dnes již poměrně známého Českého národního korpusu obsahuje PDT i anotace syntaktických struktur, a to hned na dvou rovinách. Seznámíme se s teorií funkčního generativního popisu, na jejímž základě byl korpus vybudován, a popíšeme si aspekty, kterými se od teoretických východisek odchyluje.

http://jan.stepanek.matfyz.cz/13-lsl/

jan.stepanek@matfyz.cz

Funkční generativní popis

Stratifikační přístup – Lingvistickým popisem věty je její reprezentace na několika rovinách.

FGP — původní podoba

TGR: propozicesémantém
VČR: větatagmém
MR: formémsémamorfém
MFR: morfmorfoném
FR: hláskadistinktivní rys

Relace kombinace a reprezentace (vtah formy a funkce)

Závislostní strom

strom

Vztahy mezi rovinami

Rozdíly mezi FGP a PDT

Morfologická rovina

Morfologická rovina — příklad

Některé kontury problému se však po oživením Havlovým projevem zdají být jasnější.

slovní forma lemma morfologický tag
Některé některý PZFP1----------
kontury kontura NNFP1-----A----
problému problém NNIS2-----A----
se se_^(zvr._zájmeno/částice) P7-X4----------
však však J^-------------
po po-1 RR--6----------
oživení oživení_^(*3it) NNNS6-----A----
Havlovým Havlův_;S_^(*3el) AUIS7M---------
projevem projev NNIS7-----A----
zdají zdát VB-P---3P-AA---
být být Vf--------A----
jasnější jasný AAFP1----2A----
. . Z:-------------

Strukturní roviny

strom Mám se v prosinci v Budapešti účastnit summitu Konference o bezpečnosti a spolupráci v Evropě.

Analytická rovina

Analytická rovina — příklad

Některé kontury problému se však po oživení Havlovým projevem zdají být jasnější.

analytický strom

Tektogramatická rovina

Tektogramatická rovina — příklad

Některé kontury problému se však po oživení Havlovým projevem zdají být jasnější.

tektogramatický strom

Odkazy z TR do AR

Data PDT — zdroje

Lidové noviny, Mladá fronta, Českomoravský profit, Vesmír

Procentní zastoupení

Data PDT — roviny anotace

Pro data na každé rovině platí, že pro ně existuje anotace na všech nižších rovinách.

Roviny anotace

Data PDT — trénovací a testovací data

Trénovací a testovací
      data

Rozsah dat

Anotační schéma

PML formát — datové typy

Navíc sémantické role: TREES, NODE, CHILDNODES, ID, KNIT, ORDER, HIDE

Proč?!

Syntakticky anotovaný korpus?

Proč ho vlastně vůbec používat? K čemu se dá treebank použít?

Údiv

Nástroje

http://ufal.mff.cuni.cz/pdt2.0/

Příklady dotazů v PML-TQ

Hledání analytických stromů obsahujících dané slovo

a-node [ m/lemma = "přece" ]

Totéž pro tektogramatické stromy

t-node [
    a/lex.rf|a/aux.rf a-node [ m/lemma = "přece" ]
]

Příklady dotazů v PML-TQ (2)

Četnost citoslovcí

a-node $interj := [ m/tag ~ "^I" ]
>> give count()

Místo hledání pomocí regulárního výrazu lze použít i podřetězec:

a-node $interj := [ "I" = substr(m/tag, 0, 1) ]

Příklady dotazů v PML-TQ (3)

Četnost slovních druhů

a-node $word := [ ]
>> for substr($word.m/tag, 0, 1)
   give $1, count()
   sort by $2 desc

Četnost pádů podmětu

a-node $sb := [ afun = "Sb" ]
>> for substr($sb.m/tag, 4, 1)
   give $1, count()
   sort by $2

Příklady dotazů v PML-TQ (4)

Koordinované predikáty se společným podmětem

a-node $coord := [
    afun = "Coord",
    child a-node $pred1 := [ afun = "Pred" ],
    child a-node $pred2 := [ afun = "Pred" ],
    child a-node $sb    := [ afun = "Sb" ]
]
>> give distinct $coord.id
>> give count()

Klíčové slovo distinct zajistí, že se každá koordinace počítá jen jednou; jinak by se počítala dvakrát pro dvě možná pořadí predikátů, a pro koordinace většího počtu predikátů by se ještě vybíraly všechny možné dvojice.

Příklady dotazů v PML-TQ (5)

SVO klasifikace češtiny

# Joseph Greenberg
a-node $v := [
    substr(m/tag, 0, 1) = "V",
    ? echild a-node $c := [
        afun in { "Sb", "Obj" }
]]
>> give $v.id,
        if($c.id = $v.id, if($v.afun = "Pred", "V", "v"),
           substr($c.afun, 0, 1)),
        $c.ord
>> give distinct $1, concat($2, "" over $1 sort by $3)
>> filter $2 ~ "S" and $2 ~ "O"
>> give substitute($2, "(.)\\1+", "\\1", "g")
>> for $1 give $1, count()
>> give $1, if($1 ~ "V", $2, 0), if($1 ~ "v", $2, 0)
>> give $1,
        percnt(ratio($2 over all) + ratio($3 over all), 3)
>> give if($1 ~ "v", 1, 0), $1, 0 + $2 sort by $1, $3 desc
>> give $2, $3 & " %"

Příklady dotazů v PML-TQ (6)

Forma aktoru

t-node $act := [
    functor = "ACT",
    a/lex.rf $a := [ ]
]
>> for $a.afun
   give $1, count()
   sort by $2

Příklady dotazů v PML-TQ (7)

Obrácená závislost

Hledáme uzly, jejichž vztah se mezi analytickou a tektogramatickou rovinou obrátí, tj. závislý se stane řídícím a naopak.

t-node [
    a/lex.rf $a_child,
    echild t-node [ a/lex.rf $a_parent ]
];
a-node $a_parent := [
    echild a-node $a_child := [  ]
];
grafická reprezentace dotazu Jde hlavně o vyjádření množství, které se na analytické rovině řídí formou, kdežto na rovině tektogramatické se za řídící považuje počítaný předmět.

Konec

Děkuji za pozornost.