diff --git a/aclass.pl b/aclass.pl index 377e97e..a0ef71a 100755 --- a/aclass.pl +++ b/aclass.pl @@ -1,130 +1,130 @@ -#!/usr/bin/perl -# Na základě morfologických značek rodiče a dítěte přiřadí syntaktickou značku. -# (c) 2007 Dan Zeman -# Licence: GNU GPL - -sub usage -{ - print STDERR ("Usage: aclass.pl -m model [-z mdgdz] < input > output\n"); - print STDERR (" model: the output of atrain.pl (trained model)\n"); - print STDERR (" mdgdz: read structure from ; default \n"); - print STDERR (" input: CSTS file to add syntactic tags\n"); - print STDERR (" output: CSTS file with added syntactic tags\n"); -} - -use utf8; -use open ":utf8"; -binmode(STDIN, ":utf8"); -binmode(STDOUT, ":utf8"); -binmode(STDERR, ":utf8"); -use Getopt::Long; -use csts; -use lib '/home/zeman/projekty/parser'; -use strom; - - - -# Přečíst volby. -# Zdroj: prázdný nebo "rodic_vzor" znamená , jinak třeba "mdgdz" znamená . -GetOptions('model=s' => \$model, 'zdroj=s' => \$zdroj); -if($model eq "") -{ - usage(); - die("Chybí model.\n"); -} -# Přečíst statistiku. -open(STAT, $model) or die("Nelze číst $model: $!\n"); -while() -{ - # Odstranit znak konce řádku. - s/\r?\n$//; - # Rozdělit řádek na klíč (dvojice morfologických značek) a hodnotu (syntaktickou značku). - my ($klic, $hodnota) = split(/\t/, $_); - # Uložit do hashe. - $stat{$klic} = $hodnota; -} -close(STAT); -csts::projit_data("-", \%konfig, \&zpracovat_vetu); -$n_spravne = 0 if($n_spravne eq ""); -$n_spatne = $n_celkem-$n_spravne; -$uspesnost = $n_celkem ? $n_spravne/$n_celkem : 0; -print STDERR ("A $n_celkem - G $n_spravne - B $n_spatne - P $uspesnost\n"); -print STDERR ("Neznámá dvojice mznaček, ale známá mznačka dítěte: $n_neznama_dvojice z toho chyb $n_chyb_neznama_dvojice\n"); -print STDERR ("Není známa ani mznačka dítěte: $n_neznama_dvojice_i_dite z toho chyb $n_chyb_neznama_dvojice_i_dite\n"); - - - -#------------------------------------------------------------------------------ -# Zpracuje poslední přečtenou větu. -#------------------------------------------------------------------------------ -sub zpracovat_vetu -{ - my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě - my $anot = shift; # pole hashů o jednotlivých slovech - # Postavit si strom podle výstupu parseru. - strom::postavit($anot, $zdroj); - # Vypsat začátek věty. - print("\n"); - # Projít větu po slovech. - foreach my $slovo (@{$anot}) - { - my $klic = "$slovo->{znacka} $slovo->{parent}{znacka}"; - # Odstranit z klíče případné tabulátory a konce řádků, protože totéž jsme dělali při tréninku. - $klic =~ s/[\t\r\n]+/ /sg; - my $hodnota = $stat{$klic}; - my $neznama_dvojice = 0; - my $neznama_dvojice_i_dite = 0; - # Jestliže jsme nenašli žádnou sznačku pro danou dvojici mznaček, zkusíme najít sznačku pro mznačku dítěte. - if($hodnota eq "") - { - $klic = $slovo->{znacka}; - $klic =~ s/[\t\r\n]+/ /sg; - $hodnota = $stat{$klic}; - $n_neznama_dvojice++; - $neznama_dvojice = 1; - } - # Jestliže jsme ani teď nenašli žádnou sznačku, zkusíme najít nejčastější sznačku. - if($hodnota eq "") - { - $klic = ""; - $hodnota = $stat{$klic}; - $n_neznama_dvojice_i_dite++; - $neznama_dvojice_i_dite = 1; - } - # Zkontrolovat, zda hodnota z naší statistiky odpovídá skutečné syntaktické značce slova. - $slovo->{afun} =~ s/[\t\r\n]+/ /sg; - if($hodnota eq $slovo->{afun}) - { - $n_spravne++; - } - else - { - if($neznama_dvojice) - { - $n_chyb_neznama_dvojice++; - } - elsif($neznama_dvojice_i_dite) - { - $n_chyb_neznama_dvojice_i_dite++; - } - } - $n_celkem++; - # Vypsat slovo. - if($slovo->{ord}) - { - $slovo->{form} =~ s/&/&/g; - $slovo->{form} =~ s/{form} =~ s/>/>/g; - $slovo->{lemma} =~ s/&/&/g; - $slovo->{lemma} =~ s/{lemma} =~ s/>/>/g; - $slovo->{znacka} =~ s/&/&/g; - $slovo->{znacka} =~ s/{znacka} =~ s/>/>/g; - $hodnota =~ s/&/&/g; - $hodnota =~ s//>/g; - print("$slovo->{form}$slovo->{lemma}$slovo->{znacka}$slovo->{ord}$slovo->{rodic_vzor}$slovo->{afun}$slovo->{mdgdz}$hodnota\n"); - } - } -} +#!/usr/bin/perl +# Na základě morfologických značek rodiče a dítěte přiřadí syntaktickou značku. +# (c) 2007 Dan Zeman +# Licence: GNU GPL + +sub usage +{ + print STDERR ("Usage: aclass.pl -m model [-z mdgdz] < input > output\n"); + print STDERR (" model: the output of atrain.pl (trained model)\n"); + print STDERR (" mdgdz: read structure from ; default \n"); + print STDERR (" input: CSTS file to add syntactic tags\n"); + print STDERR (" output: CSTS file with added syntactic tags\n"); +} + +use utf8; +use open ":utf8"; +binmode(STDIN, ":utf8"); +binmode(STDOUT, ":utf8"); +binmode(STDERR, ":utf8"); +use Getopt::Long; +use csts; +use lib '/home/zeman/projekty/parser'; +use strom; + + + +# Přečíst volby. +# Zdroj: prázdný nebo "rodic_vzor" znamená , jinak třeba "mdgdz" znamená . +GetOptions('model=s' => \$model, 'zdroj=s' => \$zdroj); +if($model eq "") +{ + usage(); + die("Chybí model.\n"); +} +# Přečíst statistiku. +open(STAT, $model) or die("Nelze číst $model: $!\n"); +while() +{ + # Odstranit znak konce řádku. + s/\r?\n$//; + # Rozdělit řádek na klíč (dvojice morfologických značek) a hodnotu (syntaktickou značku). + my ($klic, $hodnota) = split(/\t/, $_); + # Uložit do hashe. + $stat{$klic} = $hodnota; +} +close(STAT); +csts::projit_data("-", \%konfig, \&zpracovat_vetu); +$n_spravne = 0 if($n_spravne eq ""); +$n_spatne = $n_celkem-$n_spravne; +$uspesnost = $n_celkem ? $n_spravne/$n_celkem : 0; +print STDERR ("A $n_celkem - G $n_spravne - B $n_spatne - P $uspesnost\n"); +print STDERR ("Neznámá dvojice mznaček, ale známá mznačka dítěte: $n_neznama_dvojice z toho chyb $n_chyb_neznama_dvojice\n"); +print STDERR ("Není známa ani mznačka dítěte: $n_neznama_dvojice_i_dite z toho chyb $n_chyb_neznama_dvojice_i_dite\n"); + + + +#------------------------------------------------------------------------------ +# Zpracuje poslední přečtenou větu. +#------------------------------------------------------------------------------ +sub zpracovat_vetu +{ + my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě + my $anot = shift; # pole hashů o jednotlivých slovech + # Postavit si strom podle výstupu parseru. + strom::postavit($anot, $zdroj); + # Vypsat začátek věty. + print("\n"); + # Projít větu po slovech. + foreach my $slovo (@{$anot}) + { + my $klic = "$slovo->{znacka} $slovo->{parent}{znacka}"; + # Odstranit z klíče případné tabulátory a konce řádků, protože totéž jsme dělali při tréninku. + $klic =~ s/[\t\r\n]+/ /sg; + my $hodnota = $stat{$klic}; + my $neznama_dvojice = 0; + my $neznama_dvojice_i_dite = 0; + # Jestliže jsme nenašli žádnou sznačku pro danou dvojici mznaček, zkusíme najít sznačku pro mznačku dítěte. + if($hodnota eq "") + { + $klic = $slovo->{znacka}; + $klic =~ s/[\t\r\n]+/ /sg; + $hodnota = $stat{$klic}; + $n_neznama_dvojice++; + $neznama_dvojice = 1; + } + # Jestliže jsme ani teď nenašli žádnou sznačku, zkusíme najít nejčastější sznačku. + if($hodnota eq "") + { + $klic = ""; + $hodnota = $stat{$klic}; + $n_neznama_dvojice_i_dite++; + $neznama_dvojice_i_dite = 1; + } + # Zkontrolovat, zda hodnota z naší statistiky odpovídá skutečné syntaktické značce slova. + $slovo->{afun} =~ s/[\t\r\n]+/ /sg; + if($hodnota eq $slovo->{afun}) + { + $n_spravne++; + } + else + { + if($neznama_dvojice) + { + $n_chyb_neznama_dvojice++; + } + elsif($neznama_dvojice_i_dite) + { + $n_chyb_neznama_dvojice_i_dite++; + } + } + $n_celkem++; + # Vypsat slovo. + if($slovo->{ord}) + { + $slovo->{form} =~ s/&/&/g; + $slovo->{form} =~ s/{form} =~ s/>/>/g; + $slovo->{lemma} =~ s/&/&/g; + $slovo->{lemma} =~ s/{lemma} =~ s/>/>/g; + $slovo->{znacka} =~ s/&/&/g; + $slovo->{znacka} =~ s/{znacka} =~ s/>/>/g; + $hodnota =~ s/&/&/g; + $hodnota =~ s//>/g; + print("$slovo->{form}$slovo->{lemma}$slovo->{znacka}$slovo->{ord}$slovo->{rodic_vzor}$slovo->{afun}$slovo->{mdgdz}$hodnota\n"); + } + } +} diff --git a/atrain.pl b/atrain.pl index ba2d15e..27222dc 100755 --- a/atrain.pl +++ b/atrain.pl @@ -1,46 +1,46 @@ -#!/usr/bin/perl -# Čte CSTS a učí se vztah mezi morfologickými značkami rodiče a dítěte a syntaktickou značkou. -# (c) 2007 Dan Zeman -# Licence: GNU GPL - -use utf8; -use open ":utf8"; -binmode(STDIN, ":utf8"); -binmode(STDOUT, ":utf8"); -binmode(STDERR, ":utf8"); -use csts; - -csts::projit_data("-", \%konfig, \&zpracovat_vetu); -# U každé dvojice nahradit pole možností s četnostmi tou nejčetnější možností. -my @klice = sort(keys(%stat)); -foreach my $klic (@klice) -{ - my @klice2 = sort{$stat{$klic}{$b}<=>$stat{$klic}{$a}}(keys(%{$stat{$klic}})); - my $odpoved = $klice2[0]; - # Kvůli uložení nahradit v klíči i v odpovědi všechny tabulátory něčím jiným. - $klic =~ s/[\t\r\n]+/ /sg; - $odpoved =~ s/[\t\r\n]+/ /sg; - # Uložit statistiku. - print("$klic\t$odpoved\n"); -} - - - -#------------------------------------------------------------------------------ -# Zpracuje poslední přečtenou větu. -#------------------------------------------------------------------------------ -sub zpracovat_vetu -{ - my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě - my $anot = shift; # pole hashů o jednotlivých slovech - # Projít větu po slovech. - foreach my $slovo (@{$anot}) - { - # Zjistit morfologickou značku slova, morfologickou značku jeho rodiče a syntaktickou značku slova. - my $klic = "$slovo->{znacka} $anot->[$slovo->{rodic_vzor}]{znacka}"; - my $klic2 = $slovo->{afun}; - $stat{$klic}{$klic2}++; - $stat{$slovo->{znacka}}{$klic2}++; - $stat{""}{$klic2}++; - } -} +#!/usr/bin/perl +# Čte CSTS a učí se vztah mezi morfologickými značkami rodiče a dítěte a syntaktickou značkou. +# (c) 2007 Dan Zeman +# Licence: GNU GPL + +use utf8; +use open ":utf8"; +binmode(STDIN, ":utf8"); +binmode(STDOUT, ":utf8"); +binmode(STDERR, ":utf8"); +use csts; + +csts::projit_data("-", \%konfig, \&zpracovat_vetu); +# U každé dvojice nahradit pole možností s četnostmi tou nejčetnější možností. +my @klice = sort(keys(%stat)); +foreach my $klic (@klice) +{ + my @klice2 = sort{$stat{$klic}{$b}<=>$stat{$klic}{$a}}(keys(%{$stat{$klic}})); + my $odpoved = $klice2[0]; + # Kvůli uložení nahradit v klíči i v odpovědi všechny tabulátory něčím jiným. + $klic =~ s/[\t\r\n]+/ /sg; + $odpoved =~ s/[\t\r\n]+/ /sg; + # Uložit statistiku. + print("$klic\t$odpoved\n"); +} + + + +#------------------------------------------------------------------------------ +# Zpracuje poslední přečtenou větu. +#------------------------------------------------------------------------------ +sub zpracovat_vetu +{ + my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě + my $anot = shift; # pole hashů o jednotlivých slovech + # Projít větu po slovech. + foreach my $slovo (@{$anot}) + { + # Zjistit morfologickou značku slova, morfologickou značku jeho rodiče a syntaktickou značku slova. + my $klic = "$slovo->{znacka} $anot->[$slovo->{rodic_vzor}]{znacka}"; + my $klic2 = $slovo->{afun}; + $stat{$klic}{$klic2}++; + $stat{$slovo->{znacka}}{$klic2}++; + $stat{""}{$klic2}++; + } +} diff --git a/parse.pl b/parse.pl index 5fd1d27..7fb8eb5 100755 --- a/parse.pl +++ b/parse.pl @@ -1,344 +1,344 @@ -#!/usr/bin/perl -# Načte natrénované statistiky a s jejich pomocí analyzuje věty na vstupu. -# Analýzy nikam nevypisuje, místo toho je rovnou porovnává se vzorovými -# a počítá si úspěšnost. -# (c) 1995-2008 Dan Zeman -# Licence: GNU GPL - -sub usage -{ - print STDERR ("Usage: parse.pl [-i config] [-m model] < input > output\n"); - print STDERR (" config: path to configuration file\n"); - print STDERR (" model: path to trained model\n"); - print STDERR (" input: CSTS file to parse\n"); - print STDERR (" output: parsed CSTS file\n"); -} - -use utf8; -use Getopt::Long; -# Zařídit, aby Perl hledal knihovny také ve složce, ve které se nachází tento skript. -BEGIN {my $path = `dirname $0`; $path =~ s/\r?\n$//; unshift(@INC, $path) unless(grep {$_ eq $path} @INC)} -use debug; -use parse; -use csts; -use vystupy; -use rozebrat; # sub rozebrat_vetu -use model; # kvůli sub zjistit_nezkreslenou_pravdepodobnost() -use krvety; -use ntice; -use subkat; -use nepreskocv; -use plodnost; -use povol; -use vyhodnoceni; - - - -$starttime = time(); -my $inisoubor = "parser.ini"; # jméno souboru s konfigurací -# parse.pl --i parser2.ini -GetOptions('model=s' => \$model, 'ini=s' => \$inisoubor); -# Výchozí nastavení parametrů. -%konfig = parse::vychozi_konfig(); -parse::precist_konfig($inisoubor, \%konfig); -if($model ne "") -{ - $konfig{stat} = $model; -} -# Nastavit, který výstup půjde na STDOUT. Ostatní půjdou na STDERR. -$vystupy::vystupy{csts}{stdout} = 1; - - - -# Načíst natrénované statistiky. -# Výchozí: najít v pracovním adresáři soubor s nejvyšším číslem. -if($konfig{stat} eq "") -{ - opendir(DIR, $konfig{prac}) or die("Nelze otevřít pracovní složku $konfig{prac}: $!\n"); - my $maxstat; - while(my $dir = readdir(DIR)) - { - if($dir =~ m/^(\d+)\.stat\r?\n?$/) - { - if($maxstat eq "" || $1>$maxstat) - { - $maxstat = $1; - } - } - } - closedir(DIR); - $konfig{stat} = "$konfig{prac}/$maxstat.stat"; - vypsat("konfig", "Použita statistika $konfig{stat}.\n"); - # Pokud najdeme záznam konfigurace, pod kterou statistika vznikla, opsat ji do naší konfigurace. - if(-f "$konfig{prac}/$maxstat.konfig") - { - open(STATKONFIG, "$konfig{prac}/$maxstat.konfig"); - while() - { - vypsat("konfig", "stat.konfig> $_"); - } - close(STATKONFIG); - } -} -cist_statistiku($konfig{stat}, \%stat, $konfig{kodovani_data}) or die("Chyba: prázdná statistika"); -$ls = $konfig{"ls"}; -$lz = 1-$ls; -# Je možné načíst i druhou statistiku a porovnávat, jak se mění úspěšnost -# analýzy při použití jedné či druhé. Volitelná statistika je stat1, základní -# je stat. -if($konfig{stat1}) -{ - cist_statistiku($konfig{prac}."/".$konfig{stat1}, \%stat1, $konfig{kodovani_data}); -} - - - -# Načíst seznam subkategorizačních rámců sloves. -if($konfig{valence} || $konfig{valence1}) -{ - $konfig{nacteny_subkategorizacni_slovnik} = subkat::cist($konfig{subcat}); # vrátí odkaz na hash se subkategorizačním slovníkem -} - - - -# Načíst seznam zákazů přeskočení slovesa určitou závislostí. -if($konfig{nepreskocv}) -{ - $konfig{nacteny_seznam_zakazu_preskoceni_slovesa} = nepreskocv::cist($konfig{nepreskocv_cesta}); # vrátí odkaz na hash -} - - - -# Načíst model plodnosti. -if($konfig{plodnost}) -{ - if($konfig{plodnost_model} eq "ffm") - { - plodnost::pripravit_ffm(\%stat); - } - else - { - plodnost::cist($konfig{plodnost_cesta}); # plodnost_cesta se zatím nezohledňuje, čte se natvrdo plodnost.txt - } -} - - - -# Načíst pomůcky pro model neprojektivit. -if($konfig{neproj}) -{ - povol::cist_rematizatory(); -} - - - -# Načíst vzory n-tic. -if($konfig{ntice}) -{ - $ntice = ntice::cist_ze_stat(\%stat); -} - - - -# Číst testovací věty a analyzovat je. - -vypsat("csts", "PDTspubmixnws1994yln942063

\n"); - -$konfig{hook_zacatek_cteni} = sub -{ - my $maska = shift; - my $soubory = shift; - vypsat("prubeh", "Maska pro jména souborů s daty: $maska\n"); - vypsat("prubeh", "Nalezeno ".($#{$soubory}+1)." souborů.\n"); -}; -csts::projit_data($konfig{test}, \%konfig); - -vypsat("csts", "\n"); - - - -if($vystupy::cislo_instance) -{ - my $g = $hodnoceni{spravne}; - my $p = $g/($g+$hodnoceni{spatne}); - my $predmet = sprintf("Parsing $vystupy::cislo_instance skoncil: %4.1f %% (G $g)", $p*100); - vystupy::kopirovat_do_mailu("vysledky", $predmet); -} -vyhodnoceni::vypsat(\%hodnoceni); -$stoptime = time(); -parse::vypsat_delku_trvani_programu($starttime, $stoptime, "konfig"); -parse::vypsat_delku_trvani_programu($starttime, $stoptime, "vysledky"); - - - -############################################################################### -# PODPROGRAMY -############################################################################### - - - -#------------------------------------------------------------------------------ -# Analyzuje větu. -#------------------------------------------------------------------------------ -sub zpracovat_vetu -{ - my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě - my $anot = shift; # pole hashů o jednotlivých slovech - # Vynechat prázdné věty a věty splňující zvláštní podmínky. - # Za prázdnou se považuje i věta, která obsahuje pouze 1 prvek (kořen). - if(scalar(@{$anot})>1 && !$vynechat_vetu) - { - $veta++; - # Ladící výpisy. - my ($sek, $min, $hod) = localtime(time()); - my $jmeno_souboru_do_hlaseni = $stav_cteni->{soubor}; - $jmeno_souboru_do_hlaseni =~ s-^.*/([^/]*)$-$1-; - $jmeno_souboru_do_hlaseni =~ s/\.(?:csts|amm)$//i; - my $n_slov = scalar(@{$anot}); - vypsat("prubeh", parse::cas()." $jmeno_souboru_do_hlaseni Analyzuje se věta $veta (", sprintf("%3d", $n_slov), ") ..."); - # Povolit ladící výpisy jen u prvních 50 vět. - $dbglog = $veta<=50; - ############################################### - # TADY ZAČÍNÁ VLASTNÍ ANALÝZA. - ############################################### - my $stav; # výstup parseru: kromě vlastní stromové struktury obsahuje i váhy a jiné doplňkové informace - # Ke krátkým větám máme k dispozici celé stromy. - if($#{$anot}<=8 && $konfig{krvety}) - { - $stav = krvety::rozebrat($anot, \%vzorstrom); - } - # Ostatní věty rozebrat klasicky pěkně slovo za slovem. - else - { - # Rozebrat větu pomocí statistického modelu závislostí dvou slov na sobě. - $stav = rozebrat::rozebrat_vetu($anot); - if($konfig{ntice}) - { - # Na závěr opravit některé chyby pomocí modelu n-tic. - # N-tice klidně mohou používat upravené morfologické značky z pole - # @anot, protože teď už se do nich nepromítá dědění v rámci koordinace. - my $rozbor_ntice = ntice::nasadit($ntice, $anot); - my @ana1 = @{$stav->{rodic}}; - for(my $i = 0; $i<=$#ana1; $i++) - { - if($rozbor_ntice->[$i] ne "" && $rozbor_ntice->[$i]!=-1) - { - $ana1[$i] = $rozbor_ntice->[$i]; - } - } - my @vzor = map{$_->{rodic_vzor}}(@{$anot}); - ntice::zhodnotit(\@vzor, $stav->{rodic}, \@ana1, $rozbor_ntice); - # Po zhodnocení vlivu n-tic uložit jimi ovlivněný strom na - # výstup, aby se počítala jeho celková úspěšnost. - $stav->{rodic} = \@ana1; - } - } - # Spočítat chyby. - vyhodnoceni::zkontrolovat_strom($anot, $stav, \%hodnoceni); - # Do hlášení na standardní výstup vypsat úspěšnost analýzy této věty. - my $celkova_uspesnost = $hodnoceni{spravne}+$hodnoceni{spatne}>0 ? $hodnoceni{spravne}/($hodnoceni{spravne}+$hodnoceni{spatne}) : 0; - vypsat("prubeh", sprintf(" %3d %% %3d %% (%2d/%2d) $anot->[1]{slovo} $anot->[2]{slovo} $anot->[3]{slovo}\n", $celkova_uspesnost*100, $hodnoceni{uspesnost_posledni_strom}*100, $hodnoceni{spravne_posledni_strom}, $hodnoceni{celkem_posledni_strom})); - # Vypsat výsledný strom. - vypsat_strom($anot, $stav_cteni->{vetid}, $stav->{rodic}); - # Vymazat proměnné, aby bylo možné číst další větu. - $spravne_strom = 0; - $spatne_strom = 0; - } -} - - - -#------------------------------------------------------------------------------ -# Načte statistický model závislostí na určitých datech (např. na značkách). -#------------------------------------------------------------------------------ -sub cist_statistiku -{ - my $soubor = shift; # odkud číst - my $statref = shift; # kam uložit - my $kodovani = shift; # z jakého kódování dekódovat - open(STAT, $soubor); - if($kodovani) - { - binmode(STAT, ":encoding($kodovani)"); - } - vypsat("prubeh", "Čte se statistika $soubor ["); - my $oznameno = 0; - my %cuzl; - my $celkem = 0; - while() - { - chomp; - m/(.*)\t(\d+)/; - my $k = $1; - my $c = $2; - my $udalost = $k; - # Pokud původní popis události obsahoval tabulátor, byl tabulátor zakódován a musíme ho teď dekódovat. - # Kvůli kódování tabulátorů byly zakódovány i ampersandy. - $udalost =~ s/&tab;/\t/g; - $udalost =~ s/&/&/g; - $statref->{$udalost} = $c; - # Přičíst i do celkového počtu všech událostí (jmenovatel). - $celkem += $c; - # Bohužel se musím alespoň dočasně uchýlit k nečistému programování. - # Některé události je vhodné ukládat v jiném tvaru, a vzhledem - # k obrovskému celkovému počtu událostí je nejefektivnější provádět - # úpravy už tady. - if($udalost =~ m/^VET (\S+) (\S+)/) - { - my $vzor = $1; - my $strom = $2; - # V evidenci lze ke každé dvojici vzor věty - strom nalézt četnost. - # My chceme ke každému vzoru věty znát právě jeden strom, a to ten - # s největší četností. - if($c>$vzorstrom{$vzor}{cetnost}) - { - $vzorstrom{$vzor}{strom} = $strom; - $vzorstrom{$vzor}{cetnost} = $c; - } - $vzorstrom{$vzor}{celkem} += $c; - } - # Oznámit pokrok ve čtení. - if($celkem>=$oznameno+10000) - { - vypsat("prubeh", "."); - $oznameno = $celkem; - } - } - close(STAT); - vypsat("prubeh", "]\n"); - return $celkem; -} - - - -#------------------------------------------------------------------------------ -# Vypíše výsledný strom na standardní výstup. -#------------------------------------------------------------------------------ -sub vypsat_strom -{ - my $anot = shift; # odkaz na pole hashů - my $vetid = shift; # identifikátor věty (opsat ze vstupu, nevymýšlet si vlastní) - my $strom = shift; # odkaz na pole indexů rodičů uzlů - # Zatím globální proměnné. - vypsat("csts", "\n"); - for(my $i = 1; $i<=$#{$strom}; $i++) - { - my %uzel; - foreach my $atribut (qw(form lemma znacka afun)) - { - $uzel{$atribut} = $anot->[$i]{$atribut}; - # Zakódovat znaky, které mají v CSTS zvláštní význam. - $uzel{$atribut} =~ s/&/&/g; - $uzel{$atribut} =~ s//>/g; - } - my $uzel = "$uzel{form}"; - $uzel .= "$uzel{lemma}"; - $uzel .= "$uzel{znacka}"; - $uzel .= "$i"; - $uzel .= "$anot->[$i]{rodic_vzor}"; - $uzel .= "$uzel{afun}"; - $uzel .= "$strom->[$i]"; - vypsat("csts", "$uzel\n"); - } -} +#!/usr/bin/perl +# Načte natrénované statistiky a s jejich pomocí analyzuje věty na vstupu. +# Analýzy nikam nevypisuje, místo toho je rovnou porovnává se vzorovými +# a počítá si úspěšnost. +# (c) 1995-2008 Dan Zeman +# Licence: GNU GPL + +sub usage +{ + print STDERR ("Usage: parse.pl [-i config] [-m model] < input > output\n"); + print STDERR (" config: path to configuration file\n"); + print STDERR (" model: path to trained model\n"); + print STDERR (" input: CSTS file to parse\n"); + print STDERR (" output: parsed CSTS file\n"); +} + +use utf8; +use Getopt::Long; +# Zařídit, aby Perl hledal knihovny také ve složce, ve které se nachází tento skript. +BEGIN {my $path = `dirname $0`; $path =~ s/\r?\n$//; unshift(@INC, $path) unless(grep {$_ eq $path} @INC)} +use debug; +use parse; +use csts; +use vystupy; +use rozebrat; # sub rozebrat_vetu +use model; # kvůli sub zjistit_nezkreslenou_pravdepodobnost() +use krvety; +use ntice; +use subkat; +use nepreskocv; +use plodnost; +use povol; +use vyhodnoceni; + + + +$starttime = time(); +my $inisoubor = "parser.ini"; # jméno souboru s konfigurací +# parse.pl --i parser2.ini +GetOptions('model=s' => \$model, 'ini=s' => \$inisoubor); +# Výchozí nastavení parametrů. +%konfig = parse::vychozi_konfig(); +parse::precist_konfig($inisoubor, \%konfig); +if($model ne "") +{ + $konfig{stat} = $model; +} +# Nastavit, který výstup půjde na STDOUT. Ostatní půjdou na STDERR. +$vystupy::vystupy{csts}{stdout} = 1; + + + +# Načíst natrénované statistiky. +# Výchozí: najít v pracovním adresáři soubor s nejvyšším číslem. +if($konfig{stat} eq "") +{ + opendir(DIR, $konfig{prac}) or die("Nelze otevřít pracovní složku $konfig{prac}: $!\n"); + my $maxstat; + while(my $dir = readdir(DIR)) + { + if($dir =~ m/^(\d+)\.stat\r?\n?$/) + { + if($maxstat eq "" || $1>$maxstat) + { + $maxstat = $1; + } + } + } + closedir(DIR); + $konfig{stat} = "$konfig{prac}/$maxstat.stat"; + vypsat("konfig", "Použita statistika $konfig{stat}.\n"); + # Pokud najdeme záznam konfigurace, pod kterou statistika vznikla, opsat ji do naší konfigurace. + if(-f "$konfig{prac}/$maxstat.konfig") + { + open(STATKONFIG, "$konfig{prac}/$maxstat.konfig"); + while() + { + vypsat("konfig", "stat.konfig> $_"); + } + close(STATKONFIG); + } +} +cist_statistiku($konfig{stat}, \%stat, $konfig{kodovani_data}) or die("Chyba: prázdná statistika"); +$ls = $konfig{"ls"}; +$lz = 1-$ls; +# Je možné načíst i druhou statistiku a porovnávat, jak se mění úspěšnost +# analýzy při použití jedné či druhé. Volitelná statistika je stat1, základní +# je stat. +if($konfig{stat1}) +{ + cist_statistiku($konfig{prac}."/".$konfig{stat1}, \%stat1, $konfig{kodovani_data}); +} + + + +# Načíst seznam subkategorizačních rámců sloves. +if($konfig{valence} || $konfig{valence1}) +{ + $konfig{nacteny_subkategorizacni_slovnik} = subkat::cist($konfig{subcat}); # vrátí odkaz na hash se subkategorizačním slovníkem +} + + + +# Načíst seznam zákazů přeskočení slovesa určitou závislostí. +if($konfig{nepreskocv}) +{ + $konfig{nacteny_seznam_zakazu_preskoceni_slovesa} = nepreskocv::cist($konfig{nepreskocv_cesta}); # vrátí odkaz na hash +} + + + +# Načíst model plodnosti. +if($konfig{plodnost}) +{ + if($konfig{plodnost_model} eq "ffm") + { + plodnost::pripravit_ffm(\%stat); + } + else + { + plodnost::cist($konfig{plodnost_cesta}); # plodnost_cesta se zatím nezohledňuje, čte se natvrdo plodnost.txt + } +} + + + +# Načíst pomůcky pro model neprojektivit. +if($konfig{neproj}) +{ + povol::cist_rematizatory(); +} + + + +# Načíst vzory n-tic. +if($konfig{ntice}) +{ + $ntice = ntice::cist_ze_stat(\%stat); +} + + + +# Číst testovací věty a analyzovat je. + +vypsat("csts", "PDTspubmixnws1994yln942063

\n"); + +$konfig{hook_zacatek_cteni} = sub +{ + my $maska = shift; + my $soubory = shift; + vypsat("prubeh", "Maska pro jména souborů s daty: $maska\n"); + vypsat("prubeh", "Nalezeno ".($#{$soubory}+1)." souborů.\n"); +}; +csts::projit_data($konfig{test}, \%konfig); + +vypsat("csts", "\n"); + + + +if($vystupy::cislo_instance) +{ + my $g = $hodnoceni{spravne}; + my $p = $g/($g+$hodnoceni{spatne}); + my $predmet = sprintf("Parsing $vystupy::cislo_instance skoncil: %4.1f %% (G $g)", $p*100); + vystupy::kopirovat_do_mailu("vysledky", $predmet); +} +vyhodnoceni::vypsat(\%hodnoceni); +$stoptime = time(); +parse::vypsat_delku_trvani_programu($starttime, $stoptime, "konfig"); +parse::vypsat_delku_trvani_programu($starttime, $stoptime, "vysledky"); + + + +############################################################################### +# PODPROGRAMY +############################################################################### + + + +#------------------------------------------------------------------------------ +# Analyzuje větu. +#------------------------------------------------------------------------------ +sub zpracovat_vetu +{ + my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě + my $anot = shift; # pole hashů o jednotlivých slovech + # Vynechat prázdné věty a věty splňující zvláštní podmínky. + # Za prázdnou se považuje i věta, která obsahuje pouze 1 prvek (kořen). + if(scalar(@{$anot})>1 && !$vynechat_vetu) + { + $veta++; + # Ladící výpisy. + my ($sek, $min, $hod) = localtime(time()); + my $jmeno_souboru_do_hlaseni = $stav_cteni->{soubor}; + $jmeno_souboru_do_hlaseni =~ s-^.*/([^/]*)$-$1-; + $jmeno_souboru_do_hlaseni =~ s/\.(?:csts|amm)$//i; + my $n_slov = scalar(@{$anot}); + vypsat("prubeh", parse::cas()." $jmeno_souboru_do_hlaseni Analyzuje se věta $veta (", sprintf("%3d", $n_slov), ") ..."); + # Povolit ladící výpisy jen u prvních 50 vět. + $dbglog = $veta<=50; + ############################################### + # TADY ZAČÍNÁ VLASTNÍ ANALÝZA. + ############################################### + my $stav; # výstup parseru: kromě vlastní stromové struktury obsahuje i váhy a jiné doplňkové informace + # Ke krátkým větám máme k dispozici celé stromy. + if($#{$anot}<=8 && $konfig{krvety}) + { + $stav = krvety::rozebrat($anot, \%vzorstrom); + } + # Ostatní věty rozebrat klasicky pěkně slovo za slovem. + else + { + # Rozebrat větu pomocí statistického modelu závislostí dvou slov na sobě. + $stav = rozebrat::rozebrat_vetu($anot); + if($konfig{ntice}) + { + # Na závěr opravit některé chyby pomocí modelu n-tic. + # N-tice klidně mohou používat upravené morfologické značky z pole + # @anot, protože teď už se do nich nepromítá dědění v rámci koordinace. + my $rozbor_ntice = ntice::nasadit($ntice, $anot); + my @ana1 = @{$stav->{rodic}}; + for(my $i = 0; $i<=$#ana1; $i++) + { + if($rozbor_ntice->[$i] ne "" && $rozbor_ntice->[$i]!=-1) + { + $ana1[$i] = $rozbor_ntice->[$i]; + } + } + my @vzor = map{$_->{rodic_vzor}}(@{$anot}); + ntice::zhodnotit(\@vzor, $stav->{rodic}, \@ana1, $rozbor_ntice); + # Po zhodnocení vlivu n-tic uložit jimi ovlivněný strom na + # výstup, aby se počítala jeho celková úspěšnost. + $stav->{rodic} = \@ana1; + } + } + # Spočítat chyby. + vyhodnoceni::zkontrolovat_strom($anot, $stav, \%hodnoceni); + # Do hlášení na standardní výstup vypsat úspěšnost analýzy této věty. + my $celkova_uspesnost = $hodnoceni{spravne}+$hodnoceni{spatne}>0 ? $hodnoceni{spravne}/($hodnoceni{spravne}+$hodnoceni{spatne}) : 0; + vypsat("prubeh", sprintf(" %3d %% %3d %% (%2d/%2d) $anot->[1]{slovo} $anot->[2]{slovo} $anot->[3]{slovo}\n", $celkova_uspesnost*100, $hodnoceni{uspesnost_posledni_strom}*100, $hodnoceni{spravne_posledni_strom}, $hodnoceni{celkem_posledni_strom})); + # Vypsat výsledný strom. + vypsat_strom($anot, $stav_cteni->{vetid}, $stav->{rodic}); + # Vymazat proměnné, aby bylo možné číst další větu. + $spravne_strom = 0; + $spatne_strom = 0; + } +} + + + +#------------------------------------------------------------------------------ +# Načte statistický model závislostí na určitých datech (např. na značkách). +#------------------------------------------------------------------------------ +sub cist_statistiku +{ + my $soubor = shift; # odkud číst + my $statref = shift; # kam uložit + my $kodovani = shift; # z jakého kódování dekódovat + open(STAT, $soubor); + if($kodovani) + { + binmode(STAT, ":encoding($kodovani)"); + } + vypsat("prubeh", "Čte se statistika $soubor ["); + my $oznameno = 0; + my %cuzl; + my $celkem = 0; + while() + { + chomp; + m/(.*)\t(\d+)/; + my $k = $1; + my $c = $2; + my $udalost = $k; + # Pokud původní popis události obsahoval tabulátor, byl tabulátor zakódován a musíme ho teď dekódovat. + # Kvůli kódování tabulátorů byly zakódovány i ampersandy. + $udalost =~ s/&tab;/\t/g; + $udalost =~ s/&/&/g; + $statref->{$udalost} = $c; + # Přičíst i do celkového počtu všech událostí (jmenovatel). + $celkem += $c; + # Bohužel se musím alespoň dočasně uchýlit k nečistému programování. + # Některé události je vhodné ukládat v jiném tvaru, a vzhledem + # k obrovskému celkovému počtu událostí je nejefektivnější provádět + # úpravy už tady. + if($udalost =~ m/^VET (\S+) (\S+)/) + { + my $vzor = $1; + my $strom = $2; + # V evidenci lze ke každé dvojici vzor věty - strom nalézt četnost. + # My chceme ke každému vzoru věty znát právě jeden strom, a to ten + # s největší četností. + if($c>$vzorstrom{$vzor}{cetnost}) + { + $vzorstrom{$vzor}{strom} = $strom; + $vzorstrom{$vzor}{cetnost} = $c; + } + $vzorstrom{$vzor}{celkem} += $c; + } + # Oznámit pokrok ve čtení. + if($celkem>=$oznameno+10000) + { + vypsat("prubeh", "."); + $oznameno = $celkem; + } + } + close(STAT); + vypsat("prubeh", "]\n"); + return $celkem; +} + + + +#------------------------------------------------------------------------------ +# Vypíše výsledný strom na standardní výstup. +#------------------------------------------------------------------------------ +sub vypsat_strom +{ + my $anot = shift; # odkaz na pole hashů + my $vetid = shift; # identifikátor věty (opsat ze vstupu, nevymýšlet si vlastní) + my $strom = shift; # odkaz na pole indexů rodičů uzlů + # Zatím globální proměnné. + vypsat("csts", "\n"); + for(my $i = 1; $i<=$#{$strom}; $i++) + { + my %uzel; + foreach my $atribut (qw(form lemma znacka afun)) + { + $uzel{$atribut} = $anot->[$i]{$atribut}; + # Zakódovat znaky, které mají v CSTS zvláštní význam. + $uzel{$atribut} =~ s/&/&/g; + $uzel{$atribut} =~ s//>/g; + } + my $uzel = "$uzel{form}"; + $uzel .= "$uzel{lemma}"; + $uzel .= "$uzel{znacka}"; + $uzel .= "$i"; + $uzel .= "$anot->[$i]{rodic_vzor}"; + $uzel .= "$uzel{afun}"; + $uzel .= "$strom->[$i]"; + vypsat("csts", "$uzel\n"); + } +} diff --git a/parser-padt.ini b/parser-padt.ini index 9b8516d..82a45e1 100644 --- a/parser-padt.ini +++ b/parser-padt.ini @@ -1,231 +1,231 @@ -# Konfigurace DZ Parseru -# Configuration of the DZ Parser - -# Je-li atribut uveden opakovaně, použije se poslední hodnota! -# If an attribute appears more than once, the last value will be used! - - - -############################################################################### -# Vstup a výstup -# Input and output -############################################################################### - -# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. -# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. - -# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. -# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. -# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. -# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. -# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. -# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. -rezim = debug - -# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. -# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. -ticho = 0 - -# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) -# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) -testovat = 1 - -# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? -# What messages to display (besides the trained model, parsed text and test results)? -# 0 .... pouze kritické chyby | fatal errors only -# 1 .... 0 + průběh práce | 0 + job progress -# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot -# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise -# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise -ukecanost = -1 - -# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), -# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. -# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding -# for training and test) but we need to know it in order to display examples in the terminal. -kodovani_data = utf8 - -# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. -kodovani_stderr = utf8 - -# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. -kodovani_log = utf8 - -# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. -# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. - -# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. -# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. -#train = /home/zeman/data/padt/trainmm.kruza.csts -train = /home/zeman/data/padt/trainmm.csts - -# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. -# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. -#test = /home/zeman/data/padt/testmm.kruza.bezneznamych.csts -test = /home/zeman/data/padt/testmm.csts - -# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. -# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. -prac = pracovni - -# Název souboru se statistikou událostí (v pracovní složce). -# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". -# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. -# Name of the file with the event statistics (in the working folder). -# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. -# Affects only the input of parse.pl, not the output of train.pl. -# 045.stat <= padt/trainmm.kruza.csts -# 033.stat <= pdt/2.0/trainmm.utf.csts -stat = pracovni/033.stat -# Případná druhá statistika pro porovnání změn v úspěšnosti. -# Possible second statistics to compare accuracies. -stat1 = - -# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. -# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. -subcat = ../valence/seznam_ramcu.txt - - - -############################################################################### -# Parametry tréninku i testu (při změně nutno přetrénovat!) -############################################################################### -# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. -# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána -# žádná věta, vynech = 0. -#vynech = ExD|Coord|Apos -#vynech = ExD -vynech = 0 -# Tzv. pseudovalence ano nebo ne? (0 nebo 1) -# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. -pseudoval = 1 -# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) -nevlastni_predlozky = 1 -# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) -# 0 = žádné změny značek -# 1 = změny přibližně jako v Baltimoru -# 2 = změny přibližně jako u Collinse -upravovat_mzn = 2 -# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) -# Pokud ano, přidá se například do značky pro předložku lemma předložky. -# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. -selex = 1 -# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, -# k těmto hodnotám už se nepřihlíží. -# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. -selex_predlozky = 1 -selex_podradici_spojky = 1 -selex_zajmena = 1 -selex_prislovce_100 = 1 -selex_byt = 1 -# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči -# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se -# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud -# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože -# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl -# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. -zarlivost = 0 -# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj0 = -# Zdroj morfologických značek: atribut src (např. ) -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj1 = -# Odlišovat koordinace od pravých závislostí? -koordinace = 1 -# Brát v úvahu vzdálenost? -# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě -# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused -# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka -vzdalenost = 3 -# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností -vzdalenost_delitel = 1 -# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve -# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! -pod_korenem_sloveso_misto_smeru = 1 -# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. -max_trenovacich_vet = 0 -# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o -# níže uvedeném počtu zjištěných událostí. -#split = 300000 - - - -############################################################################### -# Parametry testu (při změně není nutno přetrénovat). -############################################################################### -# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře -# povolit (1)? -neproj = 1 -# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít -# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. -#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! -komponentove = 1 -# Způsob výběru závislého uzlu, který má být na řadě. -vyberzav = relativni-cetnost -# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem -# k počtu výskytů závislého uzlu (0)?) -abscetnost = 0 -# Druh pravděpodobnostního modelu. -model = ls*slova+lz*znacky -# Váha modelu závislostí slov v kombinovaném modelu slova+značky. -ls = 0.734375 -#ls = 1 -# Upřednostňovat valenční závislosti? -valence = 0 -# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? -valence1 = 0 -# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. -valence1_maxnavratu = 100 -# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. -valence1_maxgenstav = 50000 -# Uplatnit zvláštní zacházení na vztažné vedlejší věty? -vztaz = 1 -# Povolit lokální konflikty (koordinace)? -lokon = 1 -# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících -# závislostech (syntaktické značky oddělené svislítky). -testafun = Sb|Obj|AuxT|Pnom|Adv -# Zakázat přeskakování bezdětných předložek? -predlozky = 1 -# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není -# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost -# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) -# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) -nekoord = 1 -# Zakázat přeskakování podstatných jmen v genitivu? -nepreskocg = 0 -# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? -nepreskocv = 1 -nepreskocv_cesta = zakazy_preskoceni.txt -# Modelovat plodnost? -# plodnost=1 ... plodnost bude zohledněna -# plodnost=0 ... plodnost nebude zohledněna -plodnost = 0 -# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) -# plodnost_model=ffm ... události ZPL z centrální statistiky -# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 -# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 -plodnost_model = qfm -# Zpracovat krátké věty zvláštním způsobem? -# krvety = 1 ... ano -# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají -krvety = 1 -# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? -# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech -# ntice = 0 ... ne -ntice = 1 -# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU -# Zavěšovat koncovou interpunkci povinně pod kořen? -koncint = 1 -# Má být počet dětí kořene omezen na 2? -koren_2_deti = 1 -# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud -# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? -mezicarkove_useky = 1 -# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? -carka_je_list = 1 -# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? -nekolik_nejlepsich_zavislosti = 0 +# Konfigurace DZ Parseru +# Configuration of the DZ Parser + +# Je-li atribut uveden opakovaně, použije se poslední hodnota! +# If an attribute appears more than once, the last value will be used! + + + +############################################################################### +# Vstup a výstup +# Input and output +############################################################################### + +# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. +# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. + +# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. +# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. +# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. +# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. +# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. +# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. +rezim = debug + +# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. +# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. +ticho = 0 + +# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) +# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) +testovat = 1 + +# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? +# What messages to display (besides the trained model, parsed text and test results)? +# 0 .... pouze kritické chyby | fatal errors only +# 1 .... 0 + průběh práce | 0 + job progress +# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot +# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise +# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise +ukecanost = -1 + +# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), +# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. +# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding +# for training and test) but we need to know it in order to display examples in the terminal. +kodovani_data = utf8 + +# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. +kodovani_stderr = utf8 + +# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. +kodovani_log = utf8 + +# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. +# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. + +# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. +# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. +#train = /home/zeman/data/padt/trainmm.kruza.csts +train = /home/zeman/data/padt/trainmm.csts + +# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. +# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. +#test = /home/zeman/data/padt/testmm.kruza.bezneznamych.csts +test = /home/zeman/data/padt/testmm.csts + +# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. +# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. +prac = pracovni + +# Název souboru se statistikou událostí (v pracovní složce). +# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". +# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. +# Name of the file with the event statistics (in the working folder). +# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. +# Affects only the input of parse.pl, not the output of train.pl. +# 045.stat <= padt/trainmm.kruza.csts +# 033.stat <= pdt/2.0/trainmm.utf.csts +stat = pracovni/033.stat +# Případná druhá statistika pro porovnání změn v úspěšnosti. +# Possible second statistics to compare accuracies. +stat1 = + +# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. +# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. +subcat = ../valence/seznam_ramcu.txt + + + +############################################################################### +# Parametry tréninku i testu (při změně nutno přetrénovat!) +############################################################################### +# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. +# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána +# žádná věta, vynech = 0. +#vynech = ExD|Coord|Apos +#vynech = ExD +vynech = 0 +# Tzv. pseudovalence ano nebo ne? (0 nebo 1) +# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. +pseudoval = 1 +# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) +nevlastni_predlozky = 1 +# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) +# 0 = žádné změny značek +# 1 = změny přibližně jako v Baltimoru +# 2 = změny přibližně jako u Collinse +upravovat_mzn = 2 +# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) +# Pokud ano, přidá se například do značky pro předložku lemma předložky. +# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. +selex = 1 +# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, +# k těmto hodnotám už se nepřihlíží. +# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. +selex_predlozky = 1 +selex_podradici_spojky = 1 +selex_zajmena = 1 +selex_prislovce_100 = 1 +selex_byt = 1 +# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči +# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se +# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud +# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože +# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl +# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. +zarlivost = 0 +# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj0 = +# Zdroj morfologických značek: atribut src (např. ) +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj1 = +# Odlišovat koordinace od pravých závislostí? +koordinace = 1 +# Brát v úvahu vzdálenost? +# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě +# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused +# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka +vzdalenost = 3 +# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností +vzdalenost_delitel = 1 +# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve +# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! +pod_korenem_sloveso_misto_smeru = 1 +# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. +max_trenovacich_vet = 0 +# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o +# níže uvedeném počtu zjištěných událostí. +#split = 300000 + + + +############################################################################### +# Parametry testu (při změně není nutno přetrénovat). +############################################################################### +# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře +# povolit (1)? +neproj = 1 +# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít +# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. +#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! +komponentove = 1 +# Způsob výběru závislého uzlu, který má být na řadě. +vyberzav = relativni-cetnost +# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem +# k počtu výskytů závislého uzlu (0)?) +abscetnost = 0 +# Druh pravděpodobnostního modelu. +model = ls*slova+lz*znacky +# Váha modelu závislostí slov v kombinovaném modelu slova+značky. +ls = 0.734375 +#ls = 1 +# Upřednostňovat valenční závislosti? +valence = 0 +# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? +valence1 = 0 +# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. +valence1_maxnavratu = 100 +# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. +valence1_maxgenstav = 50000 +# Uplatnit zvláštní zacházení na vztažné vedlejší věty? +vztaz = 1 +# Povolit lokální konflikty (koordinace)? +lokon = 1 +# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících +# závislostech (syntaktické značky oddělené svislítky). +testafun = Sb|Obj|AuxT|Pnom|Adv +# Zakázat přeskakování bezdětných předložek? +predlozky = 1 +# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není +# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost +# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) +# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) +nekoord = 1 +# Zakázat přeskakování podstatných jmen v genitivu? +nepreskocg = 0 +# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? +nepreskocv = 1 +nepreskocv_cesta = zakazy_preskoceni.txt +# Modelovat plodnost? +# plodnost=1 ... plodnost bude zohledněna +# plodnost=0 ... plodnost nebude zohledněna +plodnost = 0 +# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) +# plodnost_model=ffm ... události ZPL z centrální statistiky +# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 +# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 +plodnost_model = qfm +# Zpracovat krátké věty zvláštním způsobem? +# krvety = 1 ... ano +# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají +krvety = 1 +# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? +# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech +# ntice = 0 ... ne +ntice = 1 +# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU +# Zavěšovat koncovou interpunkci povinně pod kořen? +koncint = 1 +# Má být počet dětí kořene omezen na 2? +koren_2_deti = 1 +# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud +# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? +mezicarkove_useky = 1 +# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? +carka_je_list = 1 +# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? +nekolik_nejlepsich_zavislosti = 0 diff --git a/parser-pdt-slovak.ini b/parser-pdt-slovak.ini index c6d83f2..4c543b8 100644 --- a/parser-pdt-slovak.ini +++ b/parser-pdt-slovak.ini @@ -1,234 +1,234 @@ -# Konfigurace DZ Parseru -# Configuration of the DZ Parser - -# Je-li atribut uveden opakovaně, použije se poslední hodnota! -# If an attribute appears more than once, the last value will be used! - - - -############################################################################### -# Vstup a výstup -# Input and output -############################################################################### - -# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. -# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. - -# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. -# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. -# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. -# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. -# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. -# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. -rezim = debug - -# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. -# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. -ticho = 0 - -# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) -# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) -testovat = 1 - -# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? -# What messages to display (besides the trained model, parsed text and test results)? -# 0 .... pouze kritické chyby | fatal errors only -# 1 .... 0 + průběh práce | 0 + job progress -# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot -# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise -# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise -ukecanost = -1 - -# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), -# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. -# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding -# for training and test) but we need to know it in order to display examples in the terminal. -kodovani_data = utf8 - -# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. -kodovani_stderr = utf8 - -# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. -kodovani_log = utf8 - -# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. -# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. - -# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. -# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. -#train = /fs/clip-corpora/slovak/data_pdt/cs-train.csts -#train = /home/zeman/data/pdt-sk/train.cs.utf.csts -train = /home/zeman/data/pdt-sk/train.sk.utf.csts - -# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. -# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. -#test = /fs/clip-corpora/slovak/data_pdt/test.csts -#test = /home/zeman/data/pdt-sk/test.cs.utf.csts -test = /home/zeman/data/pdt-sk/test.sk.utf.csts - -# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. -# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. -prac = pracovni - -# Název souboru se statistikou událostí (v pracovní složce). -# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". -# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. -# Name of the file with the event statistics (in the working folder). -# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. -# Affects only the input of parse.pl, not the output of train.pl. -# 039.stat <= train.cs.utf.csts -# 041.stat <= train.sk.utf.csts -#stat = pracovni/039.stat -stat = pracovni/041.stat -# Případná druhá statistika pro porovnání změn v úspěšnosti. -# Possible second statistics to compare accuracies. -stat1 = - -# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. -# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. -subcat = ../valence/seznam_ramcu.txt - - - -############################################################################### -# Parametry tréninku i testu (při změně nutno přetrénovat!) -############################################################################### -# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. -# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána -# žádná věta, vynech = 0. -#vynech = ExD|Coord|Apos -#vynech = ExD -vynech = 0 -# Tzv. pseudovalence ano nebo ne? (0 nebo 1) -# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. -pseudoval = 1 -# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) -nevlastni_predlozky = 1 -# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) -# 0 = žádné změny značek -# 1 = změny přibližně jako v Baltimoru -# 2 = změny přibližně jako u Collinse -upravovat_mzn = 2 -# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) -# Pokud ano, přidá se například do značky pro předložku lemma předložky. -# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. -selex = 1 -# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, -# k těmto hodnotám už se nepřihlíží. -# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. -selex_predlozky = 1 -selex_podradici_spojky = 1 -selex_zajmena = 1 -selex_prislovce_100 = 1 -selex_byt = 1 -# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči -# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se -# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud -# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože -# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl -# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. -zarlivost = 0 -# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj0 = -# Zdroj morfologických značek: atribut src (např. ) -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj1 = -# Odlišovat koordinace od pravých závislostí? -koordinace = 1 -# Brát v úvahu vzdálenost? -# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě -# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused -# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka -vzdalenost = 3 -# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností -vzdalenost_delitel = 1 -# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve -# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! -pod_korenem_sloveso_misto_smeru = 1 -# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. -max_trenovacich_vet = 0 -# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o -# níže uvedeném počtu zjištěných událostí. -#split = 300000 - - - -############################################################################### -# Parametry testu (při změně není nutno přetrénovat). -############################################################################### -# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře -# povolit (1)? -neproj = 1 -# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít -# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. -#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! -komponentove = 1 -# Způsob výběru závislého uzlu, který má být na řadě. -vyberzav = relativni-cetnost -# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem -# k počtu výskytů závislého uzlu (0)?) -abscetnost = 0 -# Druh pravděpodobnostního modelu. -model = ls*slova+lz*znacky -# Váha modelu závislostí slov v kombinovaném modelu slova+značky. -ls = 0.734375 -#ls = 1 -# Upřednostňovat valenční závislosti? -valence = 0 -# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? -valence1 = 0 -# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. -valence1_maxnavratu = 100 -# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. -valence1_maxgenstav = 50000 -# Uplatnit zvláštní zacházení na vztažné vedlejší věty? -vztaz = 1 -# Povolit lokální konflikty (koordinace)? -lokon = 1 -# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících -# závislostech (syntaktické značky oddělené svislítky). -testafun = Sb|Obj|AuxT|Pnom|Adv -# Zakázat přeskakování bezdětných předložek? -predlozky = 1 -# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není -# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost -# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) -# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) -nekoord = 1 -# Zakázat přeskakování podstatných jmen v genitivu? -nepreskocg = 0 -# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? -nepreskocv = 1 -nepreskocv_cesta = zakazy_preskoceni.txt -# Modelovat plodnost? -# plodnost=1 ... plodnost bude zohledněna -# plodnost=0 ... plodnost nebude zohledněna -plodnost = 0 -# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) -# plodnost_model=ffm ... události ZPL z centrální statistiky -# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 -# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 -plodnost_model = qfm -# Zpracovat krátké věty zvláštním způsobem? -# krvety = 1 ... ano -# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají -krvety = 1 -# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? -# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech -# ntice = 0 ... ne -ntice = 1 -# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU -# Zavěšovat koncovou interpunkci povinně pod kořen? -koncint = 1 -# Má být počet dětí kořene omezen na 2? -koren_2_deti = 1 -# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud -# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? -mezicarkove_useky = 1 -# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? -carka_je_list = 1 -# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? -nekolik_nejlepsich_zavislosti = 0 +# Konfigurace DZ Parseru +# Configuration of the DZ Parser + +# Je-li atribut uveden opakovaně, použije se poslední hodnota! +# If an attribute appears more than once, the last value will be used! + + + +############################################################################### +# Vstup a výstup +# Input and output +############################################################################### + +# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. +# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. + +# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. +# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. +# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. +# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. +# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. +# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. +rezim = debug + +# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. +# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. +ticho = 0 + +# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) +# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) +testovat = 1 + +# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? +# What messages to display (besides the trained model, parsed text and test results)? +# 0 .... pouze kritické chyby | fatal errors only +# 1 .... 0 + průběh práce | 0 + job progress +# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot +# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise +# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise +ukecanost = -1 + +# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), +# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. +# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding +# for training and test) but we need to know it in order to display examples in the terminal. +kodovani_data = utf8 + +# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. +kodovani_stderr = utf8 + +# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. +kodovani_log = utf8 + +# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. +# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. + +# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. +# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. +#train = /fs/clip-corpora/slovak/data_pdt/cs-train.csts +#train = /home/zeman/data/pdt-sk/train.cs.utf.csts +train = /home/zeman/data/pdt-sk/train.sk.utf.csts + +# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. +# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. +#test = /fs/clip-corpora/slovak/data_pdt/test.csts +#test = /home/zeman/data/pdt-sk/test.cs.utf.csts +test = /home/zeman/data/pdt-sk/test.sk.utf.csts + +# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. +# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. +prac = pracovni + +# Název souboru se statistikou událostí (v pracovní složce). +# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". +# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. +# Name of the file with the event statistics (in the working folder). +# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. +# Affects only the input of parse.pl, not the output of train.pl. +# 039.stat <= train.cs.utf.csts +# 041.stat <= train.sk.utf.csts +#stat = pracovni/039.stat +stat = pracovni/041.stat +# Případná druhá statistika pro porovnání změn v úspěšnosti. +# Possible second statistics to compare accuracies. +stat1 = + +# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. +# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. +subcat = ../valence/seznam_ramcu.txt + + + +############################################################################### +# Parametry tréninku i testu (při změně nutno přetrénovat!) +############################################################################### +# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. +# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána +# žádná věta, vynech = 0. +#vynech = ExD|Coord|Apos +#vynech = ExD +vynech = 0 +# Tzv. pseudovalence ano nebo ne? (0 nebo 1) +# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. +pseudoval = 1 +# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) +nevlastni_predlozky = 1 +# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) +# 0 = žádné změny značek +# 1 = změny přibližně jako v Baltimoru +# 2 = změny přibližně jako u Collinse +upravovat_mzn = 2 +# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) +# Pokud ano, přidá se například do značky pro předložku lemma předložky. +# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. +selex = 1 +# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, +# k těmto hodnotám už se nepřihlíží. +# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. +selex_predlozky = 1 +selex_podradici_spojky = 1 +selex_zajmena = 1 +selex_prislovce_100 = 1 +selex_byt = 1 +# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči +# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se +# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud +# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože +# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl +# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. +zarlivost = 0 +# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj0 = +# Zdroj morfologických značek: atribut src (např. ) +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj1 = +# Odlišovat koordinace od pravých závislostí? +koordinace = 1 +# Brát v úvahu vzdálenost? +# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě +# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused +# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka +vzdalenost = 3 +# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností +vzdalenost_delitel = 1 +# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve +# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! +pod_korenem_sloveso_misto_smeru = 1 +# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. +max_trenovacich_vet = 0 +# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o +# níže uvedeném počtu zjištěných událostí. +#split = 300000 + + + +############################################################################### +# Parametry testu (při změně není nutno přetrénovat). +############################################################################### +# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře +# povolit (1)? +neproj = 1 +# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít +# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. +#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! +komponentove = 1 +# Způsob výběru závislého uzlu, který má být na řadě. +vyberzav = relativni-cetnost +# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem +# k počtu výskytů závislého uzlu (0)?) +abscetnost = 0 +# Druh pravděpodobnostního modelu. +model = ls*slova+lz*znacky +# Váha modelu závislostí slov v kombinovaném modelu slova+značky. +ls = 0.734375 +#ls = 1 +# Upřednostňovat valenční závislosti? +valence = 0 +# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? +valence1 = 0 +# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. +valence1_maxnavratu = 100 +# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. +valence1_maxgenstav = 50000 +# Uplatnit zvláštní zacházení na vztažné vedlejší věty? +vztaz = 1 +# Povolit lokální konflikty (koordinace)? +lokon = 1 +# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících +# závislostech (syntaktické značky oddělené svislítky). +testafun = Sb|Obj|AuxT|Pnom|Adv +# Zakázat přeskakování bezdětných předložek? +predlozky = 1 +# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není +# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost +# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) +# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) +nekoord = 1 +# Zakázat přeskakování podstatných jmen v genitivu? +nepreskocg = 0 +# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? +nepreskocv = 1 +nepreskocv_cesta = zakazy_preskoceni.txt +# Modelovat plodnost? +# plodnost=1 ... plodnost bude zohledněna +# plodnost=0 ... plodnost nebude zohledněna +plodnost = 0 +# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) +# plodnost_model=ffm ... události ZPL z centrální statistiky +# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 +# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 +plodnost_model = qfm +# Zpracovat krátké věty zvláštním způsobem? +# krvety = 1 ... ano +# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají +krvety = 1 +# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? +# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech +# ntice = 0 ... ne +ntice = 1 +# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU +# Zavěšovat koncovou interpunkci povinně pod kořen? +koncint = 1 +# Má být počet dětí kořene omezen na 2? +koren_2_deti = 1 +# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud +# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? +mezicarkove_useky = 1 +# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? +carka_je_list = 1 +# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? +nekolik_nejlepsich_zavislosti = 0 diff --git a/parser-pdt.ini b/parser-pdt.ini index 5f0254a..cc1ecd7 100644 --- a/parser-pdt.ini +++ b/parser-pdt.ini @@ -1,230 +1,230 @@ -# Konfigurace DZ Parseru -# Configuration of the DZ Parser - -# Je-li atribut uveden opakovaně, použije se poslední hodnota! -# If an attribute appears more than once, the last value will be used! - - - -############################################################################### -# Vstup a výstup -# Input and output -############################################################################### - -# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. -# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. - -# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. -# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. -# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. -# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. -# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. -# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. -rezim = debug - -# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. -# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. -ticho = 0 - -# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) -# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) -testovat = 1 - -# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? -# What messages to display (besides the trained model, parsed text and test results)? -# 0 .... pouze kritické chyby | fatal errors only -# 1 .... 0 + průběh práce | 0 + job progress -# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot -# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise -# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise -ukecanost = -1 - -# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), -# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. -# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding -# for training and test) but we need to know it in order to display examples in the terminal. -kodovani_data = utf8 - -# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. -kodovani_stderr = utf8 - -# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. -kodovani_log = utf8 - -# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. -# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. - -# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. -# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. -#train = /home/zeman/data/pdt/1.0/trainmm.utf.csts -train = /home/zeman/data/pdt/2.0/trainmm.utf.csts - -# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. -# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. -#test = /home/zeman/data/pdt/1.0/testmm.utf.csts -test = /home/zeman/data/pdt/2.0/dtestmm.utf.csts -#test = /home/zeman/data/pdt/2.0/etestmm.utf.csts - -# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. -# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. -prac = pracovni - -# Název souboru se statistikou událostí (v pracovní složce). -# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". -# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. -# Name of the file with the event statistics (in the working folder). -# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. -# Affects only the input of parse.pl, not the output of train.pl. -stat = -# Případná druhá statistika pro porovnání změn v úspěšnosti. -# Possible second statistics to compare accuracies. -stat1 = - -# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. -# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. -subcat = ../valence/seznam_ramcu.txt - - - -############################################################################### -# Parametry tréninku i testu (při změně nutno přetrénovat!) -############################################################################### -# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. -# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána -# žádná věta, vynech = 0. -#vynech = ExD|Coord|Apos -#vynech = ExD -vynech = 0 -# Tzv. pseudovalence ano nebo ne? (0 nebo 1) -# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. -pseudoval = 1 -# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) -nevlastni_predlozky = 1 -# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) -# 0 = žádné změny značek -# 1 = změny přibližně jako v Baltimoru -# 2 = změny přibližně jako u Collinse -upravovat_mzn = 2 -# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) -# Pokud ano, přidá se například do značky pro předložku lemma předložky. -# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. -selex = 1 -# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, -# k těmto hodnotám už se nepřihlíží. -# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. -selex_predlozky = 1 -selex_podradici_spojky = 1 -selex_zajmena = 1 -selex_prislovce_100 = 1 -selex_byt = 1 -# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči -# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se -# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud -# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože -# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl -# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. -zarlivost = 0 -# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj0 = MD -# Zdroj morfologických značek: atribut src (např. ) -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj1 = a -# Odlišovat koordinace od pravých závislostí? -koordinace = 1 -# Brát v úvahu vzdálenost? -# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě -# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused -# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka -vzdalenost = 3 -# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností -vzdalenost_delitel = 1 -# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve -# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! -pod_korenem_sloveso_misto_smeru = 1 -# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. -max_trenovacich_vet = 0 -# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o -# níže uvedeném počtu zjištěných událostí. -#split = 300000 - - - -############################################################################### -# Parametry testu (při změně není nutno přetrénovat). -############################################################################### -# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře -# povolit (1)? -neproj = 1 -# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít -# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. -#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! -komponentove = 1 -# Způsob výběru závislého uzlu, který má být na řadě. -vyberzav = relativni-cetnost -# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem -# k počtu výskytů závislého uzlu (0)?) -abscetnost = 0 -# Druh pravděpodobnostního modelu. -model = ls*slova+lz*znacky -# Váha modelu závislostí slov v kombinovaném modelu slova+značky. -ls = 0.734375 -#ls = 1 -# Upřednostňovat valenční závislosti? -valence = 0 -# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? -valence1 = 0 -# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. -valence1_maxnavratu = 100 -# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. -valence1_maxgenstav = 50000 -# Uplatnit zvláštní zacházení na vztažné vedlejší věty? -vztaz = 1 -# Povolit lokální konflikty (koordinace)? -lokon = 1 -# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících -# závislostech (syntaktické značky oddělené svislítky). -testafun = Sb|Obj|AuxT|Pnom|Adv -# Zakázat přeskakování bezdětných předložek? -predlozky = 1 -# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není -# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost -# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) -# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) -nekoord = 1 -# Zakázat přeskakování podstatných jmen v genitivu? -nepreskocg = 0 -# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? -nepreskocv = 1 -nepreskocv_cesta = zakazy_preskoceni.txt -# Modelovat plodnost? -# plodnost=1 ... plodnost bude zohledněna -# plodnost=0 ... plodnost nebude zohledněna -plodnost = 0 -# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) -# plodnost_model=ffm ... události ZPL z centrální statistiky -# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 -# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 -plodnost_model = qfm -# Zpracovat krátké věty zvláštním způsobem? -# krvety = 1 ... ano -# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají -krvety = 1 -# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? -# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech -# ntice = 0 ... ne -ntice = 1 -# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU -# Zavěšovat koncovou interpunkci povinně pod kořen? -koncint = 1 -# Má být počet dětí kořene omezen na 2? -koren_2_deti = 1 -# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud -# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? -mezicarkove_useky = 1 -# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? -carka_je_list = 1 -# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? -nekolik_nejlepsich_zavislosti = 0 +# Konfigurace DZ Parseru +# Configuration of the DZ Parser + +# Je-li atribut uveden opakovaně, použije se poslední hodnota! +# If an attribute appears more than once, the last value will be used! + + + +############################################################################### +# Vstup a výstup +# Input and output +############################################################################### + +# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. +# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. + +# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. +# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. +# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. +# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. +# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. +# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. +rezim = debug + +# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. +# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. +ticho = 0 + +# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) +# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) +testovat = 1 + +# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? +# What messages to display (besides the trained model, parsed text and test results)? +# 0 .... pouze kritické chyby | fatal errors only +# 1 .... 0 + průběh práce | 0 + job progress +# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot +# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise +# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise +ukecanost = -1 + +# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), +# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. +# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding +# for training and test) but we need to know it in order to display examples in the terminal. +kodovani_data = utf8 + +# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. +kodovani_stderr = utf8 + +# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. +kodovani_log = utf8 + +# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. +# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. + +# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. +# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. +#train = /home/zeman/data/pdt/1.0/trainmm.utf.csts +train = /home/zeman/data/pdt/2.0/trainmm.utf.csts + +# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. +# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. +#test = /home/zeman/data/pdt/1.0/testmm.utf.csts +test = /home/zeman/data/pdt/2.0/dtestmm.utf.csts +#test = /home/zeman/data/pdt/2.0/etestmm.utf.csts + +# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. +# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. +prac = pracovni + +# Název souboru se statistikou událostí (v pracovní složce). +# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". +# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. +# Name of the file with the event statistics (in the working folder). +# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. +# Affects only the input of parse.pl, not the output of train.pl. +stat = +# Případná druhá statistika pro porovnání změn v úspěšnosti. +# Possible second statistics to compare accuracies. +stat1 = + +# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. +# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. +subcat = ../valence/seznam_ramcu.txt + + + +############################################################################### +# Parametry tréninku i testu (při změně nutno přetrénovat!) +############################################################################### +# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. +# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána +# žádná věta, vynech = 0. +#vynech = ExD|Coord|Apos +#vynech = ExD +vynech = 0 +# Tzv. pseudovalence ano nebo ne? (0 nebo 1) +# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. +pseudoval = 1 +# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) +nevlastni_predlozky = 1 +# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) +# 0 = žádné změny značek +# 1 = změny přibližně jako v Baltimoru +# 2 = změny přibližně jako u Collinse +upravovat_mzn = 2 +# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) +# Pokud ano, přidá se například do značky pro předložku lemma předložky. +# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. +selex = 1 +# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, +# k těmto hodnotám už se nepřihlíží. +# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. +selex_predlozky = 1 +selex_podradici_spojky = 1 +selex_zajmena = 1 +selex_prislovce_100 = 1 +selex_byt = 1 +# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči +# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se +# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud +# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože +# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl +# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. +zarlivost = 0 +# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj0 = MD +# Zdroj morfologických značek: atribut src (např. ) +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj1 = a +# Odlišovat koordinace od pravých závislostí? +koordinace = 1 +# Brát v úvahu vzdálenost? +# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě +# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused +# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka +vzdalenost = 3 +# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností +vzdalenost_delitel = 1 +# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve +# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! +pod_korenem_sloveso_misto_smeru = 1 +# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. +max_trenovacich_vet = 0 +# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o +# níže uvedeném počtu zjištěných událostí. +#split = 300000 + + + +############################################################################### +# Parametry testu (při změně není nutno přetrénovat). +############################################################################### +# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře +# povolit (1)? +neproj = 1 +# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít +# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. +#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! +komponentove = 1 +# Způsob výběru závislého uzlu, který má být na řadě. +vyberzav = relativni-cetnost +# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem +# k počtu výskytů závislého uzlu (0)?) +abscetnost = 0 +# Druh pravděpodobnostního modelu. +model = ls*slova+lz*znacky +# Váha modelu závislostí slov v kombinovaném modelu slova+značky. +ls = 0.734375 +#ls = 1 +# Upřednostňovat valenční závislosti? +valence = 0 +# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? +valence1 = 0 +# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. +valence1_maxnavratu = 100 +# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. +valence1_maxgenstav = 50000 +# Uplatnit zvláštní zacházení na vztažné vedlejší věty? +vztaz = 1 +# Povolit lokální konflikty (koordinace)? +lokon = 1 +# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících +# závislostech (syntaktické značky oddělené svislítky). +testafun = Sb|Obj|AuxT|Pnom|Adv +# Zakázat přeskakování bezdětných předložek? +predlozky = 1 +# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není +# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost +# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) +# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) +nekoord = 1 +# Zakázat přeskakování podstatných jmen v genitivu? +nepreskocg = 0 +# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? +nepreskocv = 1 +nepreskocv_cesta = zakazy_preskoceni.txt +# Modelovat plodnost? +# plodnost=1 ... plodnost bude zohledněna +# plodnost=0 ... plodnost nebude zohledněna +plodnost = 0 +# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) +# plodnost_model=ffm ... události ZPL z centrální statistiky +# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 +# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 +plodnost_model = qfm +# Zpracovat krátké věty zvláštním způsobem? +# krvety = 1 ... ano +# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají +krvety = 1 +# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? +# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech +# ntice = 0 ... ne +ntice = 1 +# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU +# Zavěšovat koncovou interpunkci povinně pod kořen? +koncint = 1 +# Má být počet dětí kořene omezen na 2? +koren_2_deti = 1 +# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud +# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? +mezicarkove_useky = 1 +# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? +carka_je_list = 1 +# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? +nekolik_nejlepsich_zavislosti = 0 diff --git a/parser-pedt.ini b/parser-pedt.ini index 9367bd9..3c39fbb 100644 --- a/parser-pedt.ini +++ b/parser-pedt.ini @@ -1,229 +1,229 @@ -# Konfigurace DZ Parseru -# Configuration of the DZ Parser - -# Je-li atribut uveden opakovaně, použije se poslední hodnota! -# If an attribute appears more than once, the last value will be used! - - - -############################################################################### -# Vstup a výstup -# Input and output -############################################################################### - -# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. -# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. - -# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. -# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. -# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. -# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. -# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. -# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. -rezim = debug - -# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. -# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. -ticho = 0 - -# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) -# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) -testovat = 1 - -# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? -# What messages to display (besides the trained model, parsed text and test results)? -# 0 .... pouze kritické chyby | fatal errors only -# 1 .... 0 + průběh práce | 0 + job progress -# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot -# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise -# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise -ukecanost = -1 - -# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), -# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. -# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding -# for training and test) but we need to know it in order to display examples in the terminal. -kodovani_data = utf8 - -# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. -kodovani_stderr = utf8 - -# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. -kodovani_log = utf8 - -# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. -# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. - -# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. -# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. -train = /home/zeman/data/pedt/en-train.csts - -# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. -# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. -test = /home/zeman/data/pedt/en-dtest.csts - -# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. -# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. -prac = pracovni - -# Název souboru se statistikou událostí (v pracovní složce). -# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". -# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. -# Name of the file with the event statistics (in the working folder). -# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. -# Affects only the input of parse.pl, not the output of train.pl. -# 045.stat <= padt/trainmm.kruza.csts -# 033.stat <= pdt/2.0/trainmm.utf.csts -stat = pracovni/052.stat -# Případná druhá statistika pro porovnání změn v úspěšnosti. -# Possible second statistics to compare accuracies. -stat1 = - -# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. -# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. -subcat = ../valence/seznam_ramcu.txt - - - -############################################################################### -# Parametry tréninku i testu (při změně nutno přetrénovat!) -############################################################################### -# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. -# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána -# žádná věta, vynech = 0. -#vynech = ExD|Coord|Apos -#vynech = ExD -vynech = 0 -# Tzv. pseudovalence ano nebo ne? (0 nebo 1) -# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. -pseudoval = 1 -# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) -nevlastni_predlozky = 1 -# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) -# 0 = žádné změny značek -# 1 = změny přibližně jako v Baltimoru -# 2 = změny přibližně jako u Collinse -upravovat_mzn = 0 -# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) -# Pokud ano, přidá se například do značky pro předložku lemma předložky. -# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. -selex = 1 -# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, -# k těmto hodnotám už se nepřihlíží. -# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. -selex_predlozky = 1 -selex_podradici_spojky = 1 -selex_zajmena = 1 -selex_prislovce_100 = 1 -selex_byt = 1 -# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči -# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se -# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud -# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože -# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl -# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. -zarlivost = 0 -# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj0 = -# Zdroj morfologických značek: atribut src (např. ) -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj1 = -# Odlišovat koordinace od pravých závislostí? -koordinace = 1 -# Brát v úvahu vzdálenost? -# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě -# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused -# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka -vzdalenost = 3 -# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností -vzdalenost_delitel = 1 -# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve -# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! -pod_korenem_sloveso_misto_smeru = 1 -# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. -max_trenovacich_vet = 0 -# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o -# níže uvedeném počtu zjištěných událostí. -#split = 300000 - - - -############################################################################### -# Parametry testu (při změně není nutno přetrénovat). -############################################################################### -# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře -# povolit (1)? -neproj = 1 -# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít -# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. -#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! -komponentove = 1 -# Způsob výběru závislého uzlu, který má být na řadě. -vyberzav = relativni-cetnost -# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem -# k počtu výskytů závislého uzlu (0)?) -abscetnost = 0 -# Druh pravděpodobnostního modelu. -model = ls*slova+lz*znacky -# Váha modelu závislostí slov v kombinovaném modelu slova+značky. -ls = 0.734375 -#ls = 1 -# Upřednostňovat valenční závislosti? -valence = 0 -# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? -valence1 = 0 -# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. -valence1_maxnavratu = 100 -# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. -valence1_maxgenstav = 50000 -# Uplatnit zvláštní zacházení na vztažné vedlejší věty? -vztaz = 1 -# Povolit lokální konflikty (koordinace)? -lokon = 1 -# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících -# závislostech (syntaktické značky oddělené svislítky). -testafun = Sb|Obj|AuxT|Pnom|Adv -# Zakázat přeskakování bezdětných předložek? -predlozky = 1 -# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není -# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost -# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) -# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) -nekoord = 1 -# Zakázat přeskakování podstatných jmen v genitivu? -nepreskocg = 0 -# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? -nepreskocv = 1 -nepreskocv_cesta = zakazy_preskoceni.txt -# Modelovat plodnost? -# plodnost=1 ... plodnost bude zohledněna -# plodnost=0 ... plodnost nebude zohledněna -plodnost = 0 -# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) -# plodnost_model=ffm ... události ZPL z centrální statistiky -# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 -# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 -plodnost_model = qfm -# Zpracovat krátké věty zvláštním způsobem? -# krvety = 1 ... ano -# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají -krvety = 1 -# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? -# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech -# ntice = 0 ... ne -ntice = 1 -# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU -# Zavěšovat koncovou interpunkci povinně pod kořen? -koncint = 1 -# Má být počet dětí kořene omezen na 2? -koren_2_deti = 1 -# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud -# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? -mezicarkove_useky = 1 -# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? -carka_je_list = 1 -# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? -nekolik_nejlepsich_zavislosti = 0 +# Konfigurace DZ Parseru +# Configuration of the DZ Parser + +# Je-li atribut uveden opakovaně, použije se poslední hodnota! +# If an attribute appears more than once, the last value will be used! + + + +############################################################################### +# Vstup a výstup +# Input and output +############################################################################### + +# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. +# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. + +# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. +# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. +# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. +# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. +# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. +# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. +rezim = debug + +# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. +# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. +ticho = 0 + +# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) +# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) +testovat = 1 + +# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? +# What messages to display (besides the trained model, parsed text and test results)? +# 0 .... pouze kritické chyby | fatal errors only +# 1 .... 0 + průběh práce | 0 + job progress +# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot +# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise +# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise +ukecanost = -1 + +# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), +# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. +# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding +# for training and test) but we need to know it in order to display examples in the terminal. +kodovani_data = utf8 + +# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. +kodovani_stderr = utf8 + +# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. +kodovani_log = utf8 + +# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. +# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. + +# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. +# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. +train = /home/zeman/data/pedt/en-train.csts + +# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. +# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. +test = /home/zeman/data/pedt/en-dtest.csts + +# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. +# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. +prac = pracovni + +# Název souboru se statistikou událostí (v pracovní složce). +# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". +# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. +# Name of the file with the event statistics (in the working folder). +# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. +# Affects only the input of parse.pl, not the output of train.pl. +# 045.stat <= padt/trainmm.kruza.csts +# 033.stat <= pdt/2.0/trainmm.utf.csts +stat = pracovni/052.stat +# Případná druhá statistika pro porovnání změn v úspěšnosti. +# Possible second statistics to compare accuracies. +stat1 = + +# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. +# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. +subcat = ../valence/seznam_ramcu.txt + + + +############################################################################### +# Parametry tréninku i testu (při změně nutno přetrénovat!) +############################################################################### +# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. +# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána +# žádná věta, vynech = 0. +#vynech = ExD|Coord|Apos +#vynech = ExD +vynech = 0 +# Tzv. pseudovalence ano nebo ne? (0 nebo 1) +# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. +pseudoval = 1 +# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) +nevlastni_predlozky = 1 +# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) +# 0 = žádné změny značek +# 1 = změny přibližně jako v Baltimoru +# 2 = změny přibližně jako u Collinse +upravovat_mzn = 0 +# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) +# Pokud ano, přidá se například do značky pro předložku lemma předložky. +# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. +selex = 1 +# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, +# k těmto hodnotám už se nepřihlíží. +# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. +selex_predlozky = 1 +selex_podradici_spojky = 1 +selex_zajmena = 1 +selex_prislovce_100 = 1 +selex_byt = 1 +# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči +# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se +# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud +# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože +# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl +# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. +zarlivost = 0 +# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj0 = +# Zdroj morfologických značek: atribut src (např. ) +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj1 = +# Odlišovat koordinace od pravých závislostí? +koordinace = 1 +# Brát v úvahu vzdálenost? +# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě +# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused +# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka +vzdalenost = 3 +# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností +vzdalenost_delitel = 1 +# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve +# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! +pod_korenem_sloveso_misto_smeru = 1 +# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. +max_trenovacich_vet = 0 +# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o +# níže uvedeném počtu zjištěných událostí. +#split = 300000 + + + +############################################################################### +# Parametry testu (při změně není nutno přetrénovat). +############################################################################### +# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře +# povolit (1)? +neproj = 1 +# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít +# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. +#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! +komponentove = 1 +# Způsob výběru závislého uzlu, který má být na řadě. +vyberzav = relativni-cetnost +# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem +# k počtu výskytů závislého uzlu (0)?) +abscetnost = 0 +# Druh pravděpodobnostního modelu. +model = ls*slova+lz*znacky +# Váha modelu závislostí slov v kombinovaném modelu slova+značky. +ls = 0.734375 +#ls = 1 +# Upřednostňovat valenční závislosti? +valence = 0 +# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? +valence1 = 0 +# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. +valence1_maxnavratu = 100 +# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. +valence1_maxgenstav = 50000 +# Uplatnit zvláštní zacházení na vztažné vedlejší věty? +vztaz = 1 +# Povolit lokální konflikty (koordinace)? +lokon = 1 +# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících +# závislostech (syntaktické značky oddělené svislítky). +testafun = Sb|Obj|AuxT|Pnom|Adv +# Zakázat přeskakování bezdětných předložek? +predlozky = 1 +# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není +# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost +# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) +# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) +nekoord = 1 +# Zakázat přeskakování podstatných jmen v genitivu? +nepreskocg = 0 +# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? +nepreskocv = 1 +nepreskocv_cesta = zakazy_preskoceni.txt +# Modelovat plodnost? +# plodnost=1 ... plodnost bude zohledněna +# plodnost=0 ... plodnost nebude zohledněna +plodnost = 0 +# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) +# plodnost_model=ffm ... události ZPL z centrální statistiky +# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 +# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 +plodnost_model = qfm +# Zpracovat krátké věty zvláštním způsobem? +# krvety = 1 ... ano +# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají +krvety = 1 +# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? +# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech +# ntice = 0 ... ne +ntice = 1 +# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU +# Zavěšovat koncovou interpunkci povinně pod kořen? +koncint = 1 +# Má být počet dětí kořene omezen na 2? +koren_2_deti = 1 +# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud +# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? +mezicarkove_useky = 1 +# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? +carka_je_list = 1 +# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? +nekolik_nejlepsich_zavislosti = 0 diff --git a/parser-ru.ini b/parser-ru.ini index 5f0165a..351e9c3 100644 --- a/parser-ru.ini +++ b/parser-ru.ini @@ -1,233 +1,233 @@ -# Konfigurace DZ Parseru -# Configuration of the DZ Parser - -# Je-li atribut uveden opakovaně, použije se poslední hodnota! -# If an attribute appears more than once, the last value will be used! - - - -############################################################################### -# Vstup a výstup -# Input and output -############################################################################### - -# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. -# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. - -# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. -# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. -# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. -# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. -# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. -# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. -rezim = debug - -# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. -# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. -ticho = 0 - -# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) -# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) -testovat = 1 - -# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? -# What messages to display (besides the trained model, parsed text and test results)? -# 0 .... pouze kritické chyby | fatal errors only -# 1 .... 0 + průběh práce | 0 + job progress -# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot -# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise -# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise -ukecanost = -1 - -# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), -# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. -# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding -# for training and test) but we need to know it in order to display examples in the terminal. -kodovani_data = utf8 - -# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. -kodovani_stderr = utf8 - -# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. -kodovani_log = utf8 - -# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. -# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. - -# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. -# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. -#train = /home/zeman/data/pdt/2.0/trainmm.utf.csts -#train = /home/zeman/data/russian_dependency_treebank/data_csts_pdttags/[ABV]*.csts -#train = /home/zeman/data/russian_dependency_treebank/train-pdt2+rdt-abv.csts -train = /home/zeman/data/russian_dependency_treebank/train-pdt2+rdt-abv.dz.csts - -# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. -# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. -#test = /fs/clip-corpora/russian/dependency-treebank/data_csts_pdttags/*.csts -test = /home/zeman/data/russian_dependency_treebank/data_csts_pdttags/[DG]*.csts -#test = /home/zeman/data/russian_dependency_treebank/data_csts_pdttags/[ABV]*.csts - -# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. -# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. -prac = pracovni - -# Název souboru se statistikou událostí (v pracovní složce). -# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". -# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. -# Name of the file with the event statistics (in the working folder). -# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. -# Affects only the input of parse.pl, not the output of train.pl. -#stat = pracovni/033.stat -stat = pracovni/063.stat -# Případná druhá statistika pro porovnání změn v úspěšnosti. -# Possible second statistics to compare accuracies. -stat1 = - -# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. -# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. -subcat = ../valence/seznam_ramcu.txt - - - -############################################################################### -# Parametry tréninku i testu (při změně nutno přetrénovat!) -############################################################################### -# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. -# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána -# žádná věta, vynech = 0. -#vynech = ExD|Coord|Apos -#vynech = ExD -vynech = 0 -# Tzv. pseudovalence ano nebo ne? (0 nebo 1) -# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. -pseudoval = 1 -# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) -nevlastni_predlozky = 1 -# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) -# 0 = žádné změny značek -# 1 = změny přibližně jako v Baltimoru -# 2 = změny přibližně jako u Collinse -upravovat_mzn = 2 -# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) -# Pokud ano, přidá se například do značky pro předložku lemma předložky. -# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. -selex = 1 -# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, -# k těmto hodnotám už se nepřihlíží. -# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. -selex_predlozky = 1 -selex_podradici_spojky = 1 -selex_zajmena = 1 -selex_prislovce_100 = 1 -selex_byt = 1 -# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči -# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se -# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud -# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože -# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl -# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. -zarlivost = 0 -# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj0 = -# Zdroj morfologických značek: atribut src (např. ) -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj1 = -# Odlišovat koordinace od pravých závislostí? -koordinace = 1 -# Brát v úvahu vzdálenost? -# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě -# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused -# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka -vzdalenost = 3 -# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností -vzdalenost_delitel = 1 -# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve -# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! -pod_korenem_sloveso_misto_smeru = 1 -# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. -max_trenovacich_vet = 0 -# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o -# níže uvedeném počtu zjištěných událostí. -#split = 300000 - - - -############################################################################### -# Parametry testu (při změně není nutno přetrénovat). -############################################################################### -# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře -# povolit (1)? -neproj = 1 -# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít -# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. -#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! -komponentove = 1 -# Způsob výběru závislého uzlu, který má být na řadě. -vyberzav = relativni-cetnost -# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem -# k počtu výskytů závislého uzlu (0)?) -abscetnost = 0 -# Druh pravděpodobnostního modelu. -model = ls*slova+lz*znacky -# Váha modelu závislostí slov v kombinovaném modelu slova+značky. -ls = 0.734375 -#ls = 1 -# Upřednostňovat valenční závislosti? -valence = 0 -# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? -valence1 = 0 -# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. -valence1_maxnavratu = 100 -# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. -valence1_maxgenstav = 50000 -# Uplatnit zvláštní zacházení na vztažné vedlejší věty? -vztaz = 1 -# Povolit lokální konflikty (koordinace)? -lokon = 1 -# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících -# závislostech (syntaktické značky oddělené svislítky). -testafun = Sb|Obj|AuxT|Pnom|Adv -# Zakázat přeskakování bezdětných předložek? -predlozky = 1 -# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není -# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost -# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) -# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) -nekoord = 1 -# Zakázat přeskakování podstatných jmen v genitivu? -nepreskocg = 0 -# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? -nepreskocv = 1 -nepreskocv_cesta = zakazy_preskoceni.txt -# Modelovat plodnost? -# plodnost=1 ... plodnost bude zohledněna -# plodnost=0 ... plodnost nebude zohledněna -plodnost = 0 -# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) -# plodnost_model=ffm ... události ZPL z centrální statistiky -# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 -# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 -plodnost_model = qfm -# Zpracovat krátké věty zvláštním způsobem? -# krvety = 1 ... ano -# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají -krvety = 1 -# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? -# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech -# ntice = 0 ... ne -ntice = 1 -# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU -# Zavěšovat koncovou interpunkci povinně pod kořen? -koncint = 1 -# Má být počet dětí kořene omezen na 2? -koren_2_deti = 1 -# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud -# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? -mezicarkove_useky = 1 -# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? -carka_je_list = 1 -# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? -nekolik_nejlepsich_zavislosti = 0 +# Konfigurace DZ Parseru +# Configuration of the DZ Parser + +# Je-li atribut uveden opakovaně, použije se poslední hodnota! +# If an attribute appears more than once, the last value will be used! + + + +############################################################################### +# Vstup a výstup +# Input and output +############################################################################### + +# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. +# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. + +# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. +# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. +# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. +# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. +# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. +# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. +rezim = debug + +# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. +# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. +ticho = 0 + +# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) +# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) +testovat = 1 + +# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? +# What messages to display (besides the trained model, parsed text and test results)? +# 0 .... pouze kritické chyby | fatal errors only +# 1 .... 0 + průběh práce | 0 + job progress +# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot +# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise +# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise +ukecanost = -1 + +# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), +# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. +# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding +# for training and test) but we need to know it in order to display examples in the terminal. +kodovani_data = utf8 + +# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. +kodovani_stderr = utf8 + +# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. +kodovani_log = utf8 + +# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. +# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. + +# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. +# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. +#train = /home/zeman/data/pdt/2.0/trainmm.utf.csts +#train = /home/zeman/data/russian_dependency_treebank/data_csts_pdttags/[ABV]*.csts +#train = /home/zeman/data/russian_dependency_treebank/train-pdt2+rdt-abv.csts +train = /home/zeman/data/russian_dependency_treebank/train-pdt2+rdt-abv.dz.csts + +# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. +# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. +#test = /fs/clip-corpora/russian/dependency-treebank/data_csts_pdttags/*.csts +test = /home/zeman/data/russian_dependency_treebank/data_csts_pdttags/[DG]*.csts +#test = /home/zeman/data/russian_dependency_treebank/data_csts_pdttags/[ABV]*.csts + +# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. +# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. +prac = pracovni + +# Název souboru se statistikou událostí (v pracovní složce). +# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". +# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. +# Name of the file with the event statistics (in the working folder). +# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. +# Affects only the input of parse.pl, not the output of train.pl. +#stat = pracovni/033.stat +stat = pracovni/063.stat +# Případná druhá statistika pro porovnání změn v úspěšnosti. +# Possible second statistics to compare accuracies. +stat1 = + +# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. +# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. +subcat = ../valence/seznam_ramcu.txt + + + +############################################################################### +# Parametry tréninku i testu (při změně nutno přetrénovat!) +############################################################################### +# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. +# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána +# žádná věta, vynech = 0. +#vynech = ExD|Coord|Apos +#vynech = ExD +vynech = 0 +# Tzv. pseudovalence ano nebo ne? (0 nebo 1) +# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. +pseudoval = 1 +# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) +nevlastni_predlozky = 1 +# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) +# 0 = žádné změny značek +# 1 = změny přibližně jako v Baltimoru +# 2 = změny přibližně jako u Collinse +upravovat_mzn = 2 +# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) +# Pokud ano, přidá se například do značky pro předložku lemma předložky. +# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. +selex = 1 +# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, +# k těmto hodnotám už se nepřihlíží. +# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. +selex_predlozky = 1 +selex_podradici_spojky = 1 +selex_zajmena = 1 +selex_prislovce_100 = 1 +selex_byt = 1 +# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči +# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se +# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud +# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože +# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl +# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. +zarlivost = 0 +# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj0 = +# Zdroj morfologických značek: atribut src (např. ) +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj1 = +# Odlišovat koordinace od pravých závislostí? +koordinace = 1 +# Brát v úvahu vzdálenost? +# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě +# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused +# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka +vzdalenost = 3 +# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností +vzdalenost_delitel = 1 +# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve +# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! +pod_korenem_sloveso_misto_smeru = 1 +# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. +max_trenovacich_vet = 0 +# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o +# níže uvedeném počtu zjištěných událostí. +#split = 300000 + + + +############################################################################### +# Parametry testu (při změně není nutno přetrénovat). +############################################################################### +# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře +# povolit (1)? +neproj = 1 +# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít +# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. +#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! +komponentove = 1 +# Způsob výběru závislého uzlu, který má být na řadě. +vyberzav = relativni-cetnost +# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem +# k počtu výskytů závislého uzlu (0)?) +abscetnost = 0 +# Druh pravděpodobnostního modelu. +model = ls*slova+lz*znacky +# Váha modelu závislostí slov v kombinovaném modelu slova+značky. +ls = 0.734375 +#ls = 1 +# Upřednostňovat valenční závislosti? +valence = 0 +# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? +valence1 = 0 +# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. +valence1_maxnavratu = 100 +# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. +valence1_maxgenstav = 50000 +# Uplatnit zvláštní zacházení na vztažné vedlejší věty? +vztaz = 1 +# Povolit lokální konflikty (koordinace)? +lokon = 1 +# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících +# závislostech (syntaktické značky oddělené svislítky). +testafun = Sb|Obj|AuxT|Pnom|Adv +# Zakázat přeskakování bezdětných předložek? +predlozky = 1 +# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není +# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost +# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) +# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) +nekoord = 1 +# Zakázat přeskakování podstatných jmen v genitivu? +nepreskocg = 0 +# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? +nepreskocv = 1 +nepreskocv_cesta = zakazy_preskoceni.txt +# Modelovat plodnost? +# plodnost=1 ... plodnost bude zohledněna +# plodnost=0 ... plodnost nebude zohledněna +plodnost = 0 +# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) +# plodnost_model=ffm ... události ZPL z centrální statistiky +# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 +# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 +plodnost_model = qfm +# Zpracovat krátké věty zvláštním způsobem? +# krvety = 1 ... ano +# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají +krvety = 1 +# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? +# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech +# ntice = 0 ... ne +ntice = 1 +# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU +# Zavěšovat koncovou interpunkci povinně pod kořen? +koncint = 1 +# Má být počet dětí kořene omezen na 2? +koren_2_deti = 1 +# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud +# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? +mezicarkove_useky = 1 +# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? +carka_je_list = 1 +# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? +nekolik_nejlepsich_zavislosti = 0 diff --git a/parser.ini b/parser.ini index 91ac4ff..6b2111d 100644 --- a/parser.ini +++ b/parser.ini @@ -1,238 +1,238 @@ -# Konfigurace DZ Parseru -# Configuration of the DZ Parser - -# Je-li atribut uveden opakovaně, použije se poslední hodnota! -# If an attribute appears more than once, the last value will be used! - - - -############################################################################### -# Vstup a výstup -# Input and output -############################################################################### - -# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. -# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. - -# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. -# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. -# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. -# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. -# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. -# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. -rezim = debug - -# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. -# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. -ticho = 0 - -# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) -# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) -testovat = 1 - -# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? -# What messages to display (besides the trained model, parsed text and test results)? -# 0 .... pouze kritické chyby | fatal errors only -# 1 .... 0 + průběh práce | 0 + job progress -# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot -# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise -# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise -ukecanost = -1 - -# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), -# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. -# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding -# for training and test) but we need to know it in order to display examples in the terminal. -kodovani_data = utf8 - -# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. -kodovani_stderr = utf8 - -# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. -# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. -kodovani_log = utf8 - -# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. -# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. - -# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. -# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. -#train = /home/zeman/data/pdt/1.0/trainmm.utf.csts -#train = /home/zeman/data/pdt/2.0/trainmm.utf.csts -train = - - -# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. -# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. -#test = /home/zeman/data/pdt/1.0/testmm.utf.csts -#test = /home/zeman/data/pdt/2.0/dtestmm.utf.csts -#test = /home/zeman/data/pdt/2.0/etestmm.utf.csts -test = - - -# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. -# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. -prac = pracovni - -# Název souboru se statistikou událostí (v pracovní složce). -# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". -# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. -# Name of the file with the event statistics (in the working folder). -# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. -# Affects only the input of parse.pl, not the output of train.pl. -stat = -# Případná druhá statistika pro porovnání změn v úspěšnosti. -# Possible second statistics to compare accuracies. -stat1 = - -# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. -# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. -subcat = ../valence/seznam_ramcu.txt - - - -############################################################################### -# Parametry tréninku i testu (při změně nutno přetrénovat!) -############################################################################### -# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. -# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána -# žádná věta, vynech = 0. -#vynech = ExD|Coord|Apos -#vynech = ExD -vynech = 0 -# Tzv. pseudovalence ano nebo ne? (0 nebo 1) -# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. -pseudoval = 1 -# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) -nevlastni_predlozky = 1 -# Mají se ve statistikách kombinovat alternativní anotace? Např. značka -# N2|N4|P4 by se považovala za paralelní alternativy N2, N4 a P4. Pro zpracování -# alternativ jsou významné znaky svislítko a mezera, které se pak nesmí objevit -# v hodnotách atributů (zatím se týká pouze morfologických značek). Pokud jsou -# alternativy vypnuté, N2|N4|P4 se považuje za jednu značku. (0 nebo 1) -alternativy = 0 -# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) -# 0 = žádné změny značek -# 1 = změny přibližně jako v Baltimoru -# 2 = změny přibližně jako u Collinse -upravovat_mzn = 2 -# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) -# Pokud ano, přidá se například do značky pro předložku lemma předložky. -# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. -selex = 1 -# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, -# k těmto hodnotám už se nepřihlíží. -# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. -selex_predlozky = 1 -selex_podradici_spojky = 1 -selex_zajmena = 1 -selex_prislovce_100 = 1 -selex_byt = 1 -# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči -# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se -# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud -# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože -# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl -# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. -zarlivost = 0 -# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj0 = -# Zdroj morfologických značek: atribut src (např. ) -# Poznámka: přetrénování není nezbytné, ale vhodné. -mzdroj1 = -# Odlišovat koordinace od pravých závislostí? -koordinace = 0 -# Brát v úvahu vzdálenost? -# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě -# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused -# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka -vzdalenost = 3 -# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností -vzdalenost_delitel = 1 -# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve -# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! -pod_korenem_sloveso_misto_smeru = 1 -# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. -max_trenovacich_vet = 0 -# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o -# níže uvedeném počtu zjištěných událostí. -#split = 300000 - - - -############################################################################### -# Parametry testu (při změně není nutno přetrénovat). -############################################################################### -# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře -# povolit (1)? -neproj = 1 -# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít -# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. -#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! -komponentove = 1 -# Způsob výběru závislého uzlu, který má být na řadě. -vyberzav = relativni-cetnost -# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem -# k počtu výskytů závislého uzlu (0)?) -abscetnost = 0 -# Druh pravděpodobnostního modelu. -model = ls*slova+lz*znacky -# Váha modelu závislostí slov v kombinovaném modelu slova+značky. -ls = 0.734375 -#ls = 1 -# Upřednostňovat valenční závislosti? -valence = 0 -# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? -valence1 = 0 -# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. -valence1_maxnavratu = 100 -# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. -valence1_maxgenstav = 50000 -# Uplatnit zvláštní zacházení na vztažné vedlejší věty? -vztaz = 1 -# Povolit lokální konflikty (koordinace)? -lokon = 1 -# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících -# závislostech (syntaktické značky oddělené svislítky). -testafun = Sb|Obj|AuxT|Pnom|Adv -# Zakázat přeskakování bezdětných předložek? -predlozky = 1 -# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není -# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost -# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) -# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) -nekoord = 1 -# Zakázat přeskakování podstatných jmen v genitivu? -nepreskocg = 0 -# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? -nepreskocv = 1 -nepreskocv_cesta = zakazy_preskoceni.txt -# Modelovat plodnost? -# plodnost=1 ... plodnost bude zohledněna -# plodnost=0 ... plodnost nebude zohledněna -plodnost = 0 -# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) -# plodnost_model=ffm ... události ZPL z centrální statistiky -# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 -# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 -plodnost_model = qfm -# Zpracovat krátké věty zvláštním způsobem? -# krvety = 1 ... ano -# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají -krvety = 1 -# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? -# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech -# ntice = 0 ... ne -ntice = 1 -# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU -# Zavěšovat koncovou interpunkci povinně pod kořen? -koncint = 1 -# Má být počet dětí kořene omezen na 2? -koren_2_deti = 1 -# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud -# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? -mezicarkove_useky = 1 -# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? -carka_je_list = 1 -# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? -nekolik_nejlepsich_zavislosti = 0 +# Konfigurace DZ Parseru +# Configuration of the DZ Parser + +# Je-li atribut uveden opakovaně, použije se poslední hodnota! +# If an attribute appears more than once, the last value will be used! + + + +############################################################################### +# Vstup a výstup +# Input and output +############################################################################### + +# Atributy rezim a ticho určují, kam se bude vypisovat. Atributy ukecanost a testovat určují, co se bude vypisovat. +# The rezim and ticho attributes specify where the output goes. The ukecanost and testovat attributes specify what gets printed out. + +# V režimu normal se čte STDIN, píše se na STDOUT a STDERR a nevznikají soubory na disku. +# V režimu debug se vytvářejí číslované výstupní soubory v pracovní složce. Některé z nich mohou být kopírovány na STDOUT. +# Po skončení programu jsou v režimu debug zaslány výsledky testu a doba trvání programu mailem Danovi. +# If rezim=normal, STDIN is read, STDOUT and STDERR are written and no files are created on the disk. +# If rezim=debug, numbered output files are created in the working folder. Some of them can be duplicated to STDOUT. +# After finishing the run in debug mode the test results and the program duration time are mailed to Dan. +rezim = debug + +# V tichém režimu se nic neposílá na standardní výstup, vše jen do souborů. Uplatní se jen v režimu debug. +# If ticho=1, nothing is sent to the standard output, everything goes to files. Applies to rezim=debug only. +ticho = 0 + +# Testovat úspěšnost? (Pouze pro parse.pl. Předpoklad: vstupní data obsahují správné odpovědi.) +# Test accuracy? (For parse.pl only. Assumption: the input data contains the correct answers.) +testovat = 1 + +# Jaká hlášení vypisovat (kromě natrénovaného modelu, analyzovaného textu a výsledků testu)? +# What messages to display (besides the trained model, parsed text and test results)? +# 0 .... pouze kritické chyby | fatal errors only +# 1 .... 0 + průběh práce | 0 + job progress +# 2 .... 1 + otisk konfigurace | 1 + configuration snapshot +# -1 ... jako 1 když rezim=normal, jako 2 jinak | as 1 if rezim=normal, as 2 otherwise +# -2 ... jako 0 když rezim=normal, jako 2 jinak | as 0 if rezim=normal, as 2 otherwise +ukecanost = -1 + +# Kódování dat. Parser na znalosti kódování moc nezávisí (pokud použijete stejné kódování při tréninku i při testu), +# ale potřebujeme ho znát kvůli zobrazování příkladů v terminálu. +# Encoding of the data. The parser depends little on the knowledge of the encoding (as long as you use the same encoding +# for training and test) but we need to know it in order to display examples in the terminal. +kodovani_data = utf8 + +# Kódování diagnostických hlášení na STDERR. Pro cmd.exe v českých Windows použijte cp852. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages at STDERR. For cmd.exe in Czech Windows use cp852. Default is iso-8859-2. +kodovani_stderr = utf8 + +# Kódování diagnostických hlášení zapsaných do souborů. Pro prohlížení v českých Windows použijte cp1250. Výchozí je iso-8859-2. +# Encoding of the diagnostic messages written to files. For viewing in Czech Windows use cp1250. Default is iso-8859-2. +kodovani_log = utf8 + +# Poznámka: Kódování analyzovaného textu nelze ovlivnit. Je stejné jako na vstupu a mělo by být stejné jako u trénovacích dat. +# Note: The encoding of the parsed text cannot be changed. It is same as encoding of input and should be same as encoding of training data. + +# Cesta k trénovacím datům. Pomocí zástupných znaků * a ? lze určit více než jeden soubor. Pomlčka ("-") znamená standardní vstup. +# Path to the training data. May contain * and ? wildcards to specify more than one file. A dash ("-") means standard input. +#train = /home/zeman/data/pdt/1.0/trainmm.utf.csts +#train = /home/zeman/data/pdt/2.0/trainmm.utf.csts +train = - + +# Cesta k datům, která mají být analyzována (testovací data). Lze použít zástupné znaky. Pomlčka znamená standardní vstup. +# Path to the data to be parsed (test data). Wildcards may be used. A dash means standard input. +#test = /home/zeman/data/pdt/1.0/testmm.utf.csts +#test = /home/zeman/data/pdt/2.0/dtestmm.utf.csts +#test = /home/zeman/data/pdt/2.0/etestmm.utf.csts +test = - + +# Pracovní složka pro ukládání statistik, částečně zpracovaných dat aj. Pouze pro rezim=debug. +# Working folder for saving statistics, partially processed data etc. Only for rezim=debug. +prac = pracovni + +# Název souboru se statistikou událostí (v pracovní složce). +# Pokud je prázdný, parse.pl vybere v pracovní složce soubor s nejvyšším číslem a příponou ".stat". +# Ovlivňuje vstup parse.pl, ale ne výstup train.pl. +# Name of the file with the event statistics (in the working folder). +# If empty, parse.pl selects the file with the highest number and the extension ".stat" in the working folder. +# Affects only the input of parse.pl, not the output of train.pl. +stat = +# Případná druhá statistika pro porovnání změn v úspěšnosti. +# Possible second statistics to compare accuracies. +stat1 = + +# Název souboru se seznamem vazeb (rámců) sloves. Musí být uveden pouze když valence nebo valence1 = 1. +# Name of the file with the list of verb frames. Must only be set if valence or valence1 = 1. +subcat = ../valence/seznam_ramcu.txt + + + +############################################################################### +# Parametry tréninku i testu (při změně nutno přetrénovat!) +############################################################################### +# Seznam s-značek, které se nesmí ve větě vyskytnout, jinak bude vynechána. +# Značky jsou odděleny svislítkem, např. ExD|Coord|Apos. Nemá-li být vynechána +# žádná věta, vynech = 0. +#vynech = ExD|Coord|Apos +#vynech = ExD +vynech = 0 +# Tzv. pseudovalence ano nebo ne? (0 nebo 1) +# Jde o to, že slovesům se sčítá jejich čistě značková a heslová prst. +pseudoval = 1 +# Překroutit složené předložky, aby visely podle mě, ne podle PDT? (0 nebo 1) +nevlastni_predlozky = 1 +# Mají se ve statistikách kombinovat alternativní anotace? Např. značka +# N2|N4|P4 by se považovala za paralelní alternativy N2, N4 a P4. Pro zpracování +# alternativ jsou významné znaky svislítko a mezera, které se pak nesmí objevit +# v hodnotách atributů (zatím se týká pouze morfologických značek). Pokud jsou +# alternativy vypnuté, N2|N4|P4 se považuje za jednu značku. (0 nebo 1) +alternativy = 0 +# Upravovat morfologické značky? (Závislé na konkrétním jazyku a sadě značek.) +# 0 = žádné změny značek +# 1 = změny přibližně jako v Baltimoru +# 2 = změny přibližně jako u Collinse +upravovat_mzn = 2 +# Provádět tzv. selektivní lexikalizaci m-značek? (0 nebo 1) +# Pokud ano, přidá se například do značky pro předložku lemma předložky. +# Pozor, selex=1 nefunguje, jestliže upravovat_mzn!=2. +selex = 1 +# Selektivní lexikalizace každého slovního druhu zvlášť. Pokud je selex=0, +# k těmto hodnotám už se nepřihlíží. +# Svým způsobem by sem patřilo i výše uvedené pseudoval jako selex_slovesa. +selex_predlozky = 1 +selex_podradici_spojky = 1 +selex_zajmena = 1 +selex_prislovce_100 = 1 +selex_byt = 1 +# Parametrizovat pravděpodobnost závislosti otázkou, zda na navrhovaném rodiči +# už visí jiný uzel se stejnou značkou jako navrhované dítě? Při trénování se +# u každého uzlu zjišťuje, zda má alespoň jednoho takového sourozence, a pokud +# ano, příznak se nastaví u obou. Není to sice pravděpodobnostně korektní, protože +# při analýze bude odpověď kladná jen u jednoho z obou sourozenců, ale nemá smysl +# implementovat to pečlivěji, protože výsledný efekt je stejně negativní. +zarlivost = 0 +# Druh zdroje morfologických značek: MM, MD nebo prázdný řetězec (= ručně). +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj0 = +# Zdroj morfologických značek: atribut src (např. ) +# Poznámka: přetrénování není nezbytné, ale vhodné. +mzdroj1 = +# Odlišovat koordinace od pravých závislostí? +koordinace = 0 +# Brát v úvahu vzdálenost? +# vzdalenost = 0 ... vzdálenost se nezohledňuje v žádné podobě +# vzdalenost = 2 ... parametrem pro váhu závislosti je soused/nesoused +# vzdalenost = 3 ... parametrem pro váhu závislosti je soused/nesoused/čárka +vzdalenost = 3 +# vzdalenost_delitel = 1 ... nezávislé na výše uvedených: váha závislosti se dělí vzdáleností +vzdalenost_delitel = 1 +# Závislosti na kořeni nerozlišují směr, ale zato kontrolují přítomnost slovesa ve +# větě. Pozor, při změně tohoto přepínače se musí přetrénovat! +pod_korenem_sloveso_misto_smeru = 1 +# Omezit velikost trénovacích dat? Pokud tu není nula, trénink se zastaví po N větách a vypíše počet slov. +max_trenovacich_vet = 0 +# Technický problém s velikostí paměti: rozdělit trénovací data do úseků o +# níže uvedeném počtu zjištěných událostí. +#split = 300000 + + + +############################################################################### +# Parametry testu (při změně není nutno přetrénovat). +############################################################################### +# Způsob budování stromu: zakázat (0) neprojektivity, nebo je v omezené míře +# povolit (1)? +neproj = 1 +# Způsob budování stromu (komponentově, nebo shora dolů). Shora dolů lze použít +# pouze při neproj = 0, neprojektivity jsou v něm však povoleny libovolně. +#!!! Pozor, komponentove=0 momentálně (20.7.2004) způsobí zacyklení výpočtu! +komponentove = 1 +# Způsob výběru závislého uzlu, který má být na řadě. +vyberzav = relativni-cetnost +# Způsob ohodnocení závislosti (absolutní četnost (1), nebo relativní vzhledem +# k počtu výskytů závislého uzlu (0)?) +abscetnost = 0 +# Druh pravděpodobnostního modelu. +model = ls*slova+lz*znacky +# Váha modelu závislostí slov v kombinovaném modelu slova+značky. +ls = 0.734375 +#ls = 1 +# Upřednostňovat valenční závislosti? +valence = 0 +# Kontrolovat po sestavení prvního návrhu stromu, zda jsou naplněné valenční rámce? +valence1 = 0 +# Omezení počtu návratů při hledání lepšího naplnění valenčních rámců. +valence1_maxnavratu = 100 +# Omezení počtu generovaných stavů při hledání lepšího naplnění valenčních rámců. +valence1_maxgenstav = 50000 +# Uplatnit zvláštní zacházení na vztažné vedlejší věty? +vztaz = 1 +# Povolit lokální konflikty (koordinace)? +lokon = 1 +# Kromě celkové úspěšnosti sledovat zvlášť úspěšnost na následujících +# závislostech (syntaktické značky oddělené svislítky). +testafun = Sb|Obj|AuxT|Pnom|Adv +# Zakázat přeskakování bezdětných předložek? +predlozky = 1 +# Násobit pravděpodobnost závislosti pravděpodobností, že řídící uzel není +# koordinační spojkou? (Stejně, jako se už teď násobí pravděpodobnost +# koordinace pravděpodobností, že řídící uzel je koordinační spojkou.) +# (a1 / a0 je zkratka pro tuto volbu v zaznam.txt) +nekoord = 1 +# Zakázat přeskakování podstatných jmen v genitivu? +nepreskocg = 0 +# Zakázat přeskakování určitých slovesných tvarů určitými závislostmi? +nepreskocv = 1 +nepreskocv_cesta = zakazy_preskoceni.txt +# Modelovat plodnost? +# plodnost=1 ... plodnost bude zohledněna +# plodnost=0 ... plodnost nebude zohledněna +plodnost = 0 +# Jakým způsobem zohlednit plodnost? (Funguje pouze pokud plodnost=1.) +# plodnost_model=ffm ... události ZPL z centrální statistiky +# plodnost_model=tfm ... jen výběr v plodnost.txt, 0-0.5-1 +# plodnost_model=qfm ... jen výběr v plodnost.txt, 0-1 +plodnost_model = qfm +# Zpracovat krátké věty zvláštním způsobem? +# krvety = 1 ... ano +# krvety = 0 ... ne, ale při trénování se potřebné statistiky stejně sbírají +krvety = 1 +# Vyhodnocovat morfologické vzory pro n-tice, které mají v 90% stejnou strukturu? +# ntice = 1 ... ano, statistiky musejí být k dispozici ve zvláštních souborech +# ntice = 0 ... ne +ntice = 1 +# PEVNÁ OMEZENÍ, KTERÁ NEMAJÍ NIC SPOLEČNÉHO SE STATISTIKOU +# Zavěšovat koncovou interpunkci povinně pod kořen? +koncint = 1 +# Má být počet dětí kořene omezen na 2? +koren_2_deti = 1 +# Má se hlídat, aby z úseku mezi dvěma čárkami nevedla žádná závislost ven, dokud +# nejsou všechny uzly až na jeden zavěšeny v podstromu toho jednoho nezavěšeného? +mezicarkove_useky = 1 +# Vyžadovat, aby čárky byly listy, tj. aby zůstaly bezdětné? +carka_je_list = 1 +# Zahrnout do vyhodnocení několik nejlepších závislostí pro každé slovo? +nekolik_nejlepsich_zavislosti = 0 diff --git a/rematizatory.txt b/rematizatory.txt index 23a55fb..ce80284 100644 --- a/rematizatory.txt +++ b/rematizatory.txt @@ -1,48 +1,48 @@ -0.523659 166 151 ani -0.548148 148 122 napklad -0.556373 227 181 u -0.571429 4 3 zrovna -0.578947 11 8 jedin -0.596154 62 42 hlavn -0.600000 3 2 jakoby -0.600000 6 4 v -0.600000 6 4 nejenom -0.600000 12 8 maximln -0.600575 209 139 jet -0.601266 95 63 teba -0.604048 1373 900 i -0.609756 200 128 zejmna -0.611111 55 35 teprve -0.611111 66 42 hned -0.613260 222 140 pedevm -0.613636 27 17 nejmn -0.614286 43 27 zvlt -0.615385 24 15 piblin -0.620690 252 154 ji -0.632000 158 92 prv -0.644737 49 27 ne -0.651685 116 62 nejen -0.657143 23 12 nikoli -0.666667 2 1 toliko -0.666667 2 1 na -0.666667 4 2 takka -0.666667 46 23 dokonce -0.680328 83 39 pmo -0.684729 278 128 pouze -0.691223 441 197 jen -0.692810 106 47 asi -0.694686 719 316 a -0.708333 51 21 alespo -0.712121 47 19 zhruba -0.714286 10 4 aspo -0.722222 13 5 pinejmenm -0.736842 42 15 tm -0.740741 20 7 minimln -0.742857 26 9 nikoliv -0.750000 3 1 bezmla -0.800000 28 7 jenom -0.900000 9 1 skoro -1.000000 2 0 do -1.000000 2 0 mrn -1.000000 3 0 za -1.000000 52 0 nap +0.523659 166 151 ani +0.548148 148 122 napklad +0.556373 227 181 u +0.571429 4 3 zrovna +0.578947 11 8 jedin +0.596154 62 42 hlavn +0.600000 3 2 jakoby +0.600000 6 4 v +0.600000 6 4 nejenom +0.600000 12 8 maximln +0.600575 209 139 jet +0.601266 95 63 teba +0.604048 1373 900 i +0.609756 200 128 zejmna +0.611111 55 35 teprve +0.611111 66 42 hned +0.613260 222 140 pedevm +0.613636 27 17 nejmn +0.614286 43 27 zvlt +0.615385 24 15 piblin +0.620690 252 154 ji +0.632000 158 92 prv +0.644737 49 27 ne +0.651685 116 62 nejen +0.657143 23 12 nikoli +0.666667 2 1 toliko +0.666667 2 1 na +0.666667 4 2 takka +0.666667 46 23 dokonce +0.680328 83 39 pmo +0.684729 278 128 pouze +0.691223 441 197 jen +0.692810 106 47 asi +0.694686 719 316 a +0.708333 51 21 alespo +0.712121 47 19 zhruba +0.714286 10 4 aspo +0.722222 13 5 pinejmenm +0.736842 42 15 tm +0.740741 20 7 minimln +0.742857 26 9 nikoliv +0.750000 3 1 bezmla +0.800000 28 7 jenom +0.900000 9 1 skoro +1.000000 2 0 do +1.000000 2 0 mrn +1.000000 3 0 za +1.000000 52 0 nap diff --git a/train.pl b/train.pl index 1a00ace..2d1283a 100755 --- a/train.pl +++ b/train.pl @@ -1,820 +1,820 @@ -#!/usr/bin/perl -# Natrénuje statistiky z treebanku a uloží je. -# (c) 1995-2008 Dan Zeman -# License: GNU GPL - -use utf8; -use Getopt::Long; -# Zařídit, aby Perl hledal knihovny také ve složce, ve které se nachází tento skript. -BEGIN {my $path = `dirname $0`; $path =~ s/\r?\n$//; unshift(@INC, $path) unless(grep {$_ eq $path} @INC)} -use parse; -use csts; -use model; # kvůli zjistit_smer_a_delku() -use vystupy; -use ntice; -use ud; - - - -$starttime = time(); -my $inisoubor = "parser.ini"; # jméno souboru s konfigurací -# train.pl --i parser2.ini -GetOptions('ini=s' => \$inisoubor); -# Výchozí nastavení parametrů. -%konfig = parse::vychozi_konfig(); -parse::precist_konfig($inisoubor, \%konfig); -# Nastavit, který výstup půjde na STDOUT. Ostatní půjdou na STDERR. -$vystupy::vystupy{stat}{stdout} = 1; - - - -# Načíst seznam subkategorizačních rámců sloves. -# Potřebujeme ho, abychom mohli počítat, kolikrát se která m-značka vyskytla -# jako povinné, a kolikrát jako volné doplnění. -if($konfig{valence}) -{ - $konfig{nacteny_subkategorizacni_slovnik} = subkat::cist($konfig{subcat}); # vrátí odkaz na hash se subkategorizačním slovníkem -} - - - -# Kvůli snížení paměťových nároků lze statistický model rozdělit do dílů. -# Díly se číslují od jedničky. -$i_dil = 1; -$konfig{hook_zacatek_cteni} = sub -{ - my $maska = shift; - my $soubory = shift; - vypsat("prubeh", "Maska pro jména souborů s daty: $maska\n"); - vypsat("prubeh", "Nalezeno ".($#{$soubory}+1)." souborů.\n"); -}; -$tmpfile = zkopirovat_vstup_do_tmp($konfig{train}); -csts::projit_data($tmpfile, \%konfig, \&zpracovat_vetu); -vypsat("prubeh", "Počet vět = $veta\n"); -vypsat("prubeh", "Počet slov = $slovo\n"); -# Teď ještě natrénovat modely n-tic. Nemohli jsme to dělat všechno při jednom -# průchodu dat, protože by nám nemusela stačit paměť. N-tic sice přežije jen -# kolem 7000, ale během trénování jich musíme mít v paměti přes 5000000. -if($konfig{ntice}) -{ - %stat = (); - $veta = 0; - $slovo = 0; - $ohlasena_veta = 0; - csts::projit_data($tmpfile, \%konfig, \&zpracovat_vetu_ntice); - ntice::vypsat_do_stat(); -} -unlink($tmpfile); -# Poslat mi mail, že trénink je u konce. Musíme do mailu dát nějaký existující -# soubor. Stačil by mi sice prázdný mail jen s předmětem zprávy, ale pokud bych -# k tomu chtěl využít existující mechanismy, vznikl by mi tím na disku prázdný -# soubor. -if($vystupy::cislo_instance) -{ - vystupy::kopirovat_do_mailu("konfig", "Trenink $vystupy::cislo_instance skoncil"); -} - -# Konec. -$stoptime = time(); -parse::vypsat_delku_trvani_programu($starttime, $stoptime, "konfig"); -parse::vypsat_delku_trvani_programu($starttime, $stoptime, "vysledky") if($konfig{rezim} eq "debug"); - - - -############################################################################### -# PODPROGRAMY -############################################################################### - - - -#------------------------------------------------------------------------------ -# Projde větu a zapamatuje si vztahy v ní. -#------------------------------------------------------------------------------ -sub zpracovat_vetu -{ - my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě - my $anot = shift; # pole hashů o jednotlivých slovech - # Před zpracováním první věty souboru ohlásit nový soubor. - # (Test, zda jsme na začátku souboru, je uvnitř.) - vypsat_jmeno_souboru($stav_cteni); - # Vynechat věty se závadným obsahem (proměnná $vynechat_vetu se nastavuje - # při načítání slova) a věty nad rámec požadovaného rozsahu. - return if($vynechat_vetu || $konfig{max_trenovacich_vet} && $veta>=$konfig{max_trenovacich_vet}); - # Ohlásit na výstup číslo zpracovávané věty. - $veta++ if($#{$anot}>0); - $slovo += $#{$anot}; - $ohlasena_veta = ohlasit_vetu($stav_cteni, $ohlasena_veta, $veta); - # Zapamatovat si nejdelší větu. - if($#{$anot}>$maxn_slov) - { - $maxn_slov = $#{$anot}; - } - if($#{$anot}>0) # Pokud nezačínáme číst první větu. - { - #!!! - # Alternující části kódu. - my @alt; - $alt[0] = 1; # coordmember je (0) dite rodice se spravnym afunem (1) i vzdalenejsi potomek (treba pod predlozkou), ale zato clen (pokud je tedy dite korene koordinace, ale neni jeji clen, neni coordmember) - $alt[1] = 0; # ke koordinacim pridat apozice - $alt[2] = 1; # v beznych zavislostech zdedene znacky - $alt[3] = 0; # zaznamenavat koordinacni udalosti - # (jinak se zaznamenavaji pouze zavislosti) - #!!! - # Dokud existuje možnost, že při procházení koordinací se budou - # upravovat $anot->[$i]{znacka} a $anot->[$i]{afun}, musejí se koordinace zpracovávat před - # závislostmi, ve kterých se tohle využije. Až se bude spoléhat jen - # na zděděné značky, bude možné pořadí otočit. - if($konfig{koordinace}) - { - projit_koordinace($anot, \@alt); - } - # Projít větu a posbírat statistiky. - for(my $i = 1; $i<=$#{$anot}; $i++) - { - zjistit_udalosti_slovo($i, $anot->[$i]{rodic_vzor}, \@alt, $anot); - } - # Spočítat lokální konflikty. - spocitat_lokalni_konflikty($anot); - # Zjistit rámce všech řídících uzlů (včetně volitelných doplnění). - projit_ramce($anot); - # U krátkých vět si zapamatovat celý strom. - projit_kratkou_vetu($anot); - } - # Uložit statistiku, jestliže je tohle poslední věta, popř. poslední, která se vejde do omezení. - $i_dil = ulozit_statistiku_pokud_je_to_potreba($stav_cteni, $veta, $i_dil); -} - - - -#------------------------------------------------------------------------------ -# Projde větu, najde v ní n-tice a zapamatuje si je. -#------------------------------------------------------------------------------ -sub zpracovat_vetu_ntice -{ - my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě - my $anot = shift; # pole hashů o jednotlivých slovech - # Před zpracováním první věty souboru ohlásit nový soubor. - # (Test, zda jsme na začátku souboru, je uvnitř.) - vypsat_jmeno_souboru($stav_cteni); - # Vynechat věty se závadným obsahem (proměnná $vynechat_vetu se nastavuje - # při načítání slova) a věty nad rámec požadovaného rozsahu. - return if($vynechat_vetu || $konfig{max_trenovacich_vet} && $veta>=$konfig{max_trenovacich_vet}); - # Ohlásit na výstup číslo zpracovávané věty. - $veta++ if($#{$anot}>0); - $slovo += $#{$anot}; - $ohlasena_veta = ohlasit_vetu($stav_cteni, $ohlasena_veta, $veta, "N-tice: "); - for(my $n = 2; $n<=10; $n++) - { - ntice::ucit($n, $anot); - } -} - - - -#------------------------------------------------------------------------------ -# Vypíše do průběhu jméno souboru, který právě čteme. -#------------------------------------------------------------------------------ -sub vypsat_jmeno_souboru -{ - my $stav_cteni = shift; - if($stav_cteni->{novy_soubor}) - { - my ($sek, $min, $hod) = localtime(time()); - my $jmeno_souboru_do_hlaseni = $stav_cteni->{soubor}; - $jmeno_souboru_do_hlaseni =~ s-^.*/([^/]*)$-$1-; - $jmeno_souboru_do_hlaseni =~ s/\.(?:csts|amm)$//i; - vypsat("prubeh", parse::cas()." Otevírá se soubor $jmeno_souboru_do_hlaseni\n"); - } -} - - - -#------------------------------------------------------------------------------ -# Vypíše do průběhu číslo věty, kterou právě zpracováváme. Vrátí číslo věty, -# pokud ji ohlásil, jinak vrátí číslo naposledy ohlášené věty. -#------------------------------------------------------------------------------ -sub ohlasit_vetu -{ - my $stav_cteni = shift; - my $ohlasena_veta = shift; - my $veta = shift; - my $prubeh = shift; - if($veta-$ohlasena_veta==100 || - $stav_cteni->{posledni_veta} || - ($konfig{max_trenovacich_vet} && $veta==$konfig{max_trenovacich_vet})) - { - vypsat("prubeh", parse::cas()." ${prubeh}Zpracovává se věta $veta.\n"); - $ohlasena_veta = $veta; - } - return $ohlasena_veta; -} - - - -#------------------------------------------------------------------------------ -# Zjistit, zda je potřeba uložit statistiku, a v případě potřeby to udělá. -#------------------------------------------------------------------------------ -sub ulozit_statistiku_pokud_je_to_potreba -{ - my $stav_cteni = shift; - my $veta = shift; # číslo zpracovávané věty - my $i_dil = shift; - # %stat: globální proměnná - my $konfig = \%main::konfig; - # Jestliže jsme už přečetli určitý počet událostí, uložit dosud nasbíranou - # statistiku, vyprázdnit paměť a od příští věty začít nanovo. - my $n_udalosti = int(keys(%stat)); - if($konfig->{split}>0 && $n_udalosti>=$konfig->{split} || - $konfig->{max_trenovacich_vet} && $veta==$konfig->{max_trenovacich_vet} || - $stav_cteni->{posledni_veta}) - { - # Jméno souboru se statistikou. - my $jmeno = $konfig->{prac}."/".$konfig->{stat}; - if($konfig->{split}) - { - vypsat("prubeh", parse::cas()." Konec $i_dil. dílu.\n"); - $jmeno .= $i_dil; - } - # Uložit dosud nasbíranou statistiku. - ulozit(\%stat, $jmeno); - unless($stav_cteni->{posledni_veta}) - { - # Uvolnit paměť pro nový díl. - vypsat("prubeh", parse::cas()." Uvolňuje se paměť.\n"); - undef(%stat); - } - $i_dil++; - } - return $i_dil; -} - - - -#------------------------------------------------------------------------------ -# Zjistí trénovací události o jednom slově (to neznamená, že kvůli němu nebude -# potřebovat projít všechna ostatní slova věty). -#------------------------------------------------------------------------------ -sub zjistit_udalosti_slovo -{ - my $z = shift; - my $r = shift; - my $alt = shift; # jen odkaz na pole - my $anot = shift; # jen odkaz na pole - # Vynechat uzly, jejichž rodič řídí koordinaci. Buď jsou členy koordinace a - # jejich vztah k rodiči není závislost. Nebo závisejí na koordinaci, ta by - # ale místo značky souřadící spojky měla být reprezentována značkou - # typického člena, takže závislost na koordinaci vyžaduje zvláštní - # zacházení. - my $coordmember; - if($konfig{koordinace}) - { - if(!$alt->[0]) - { - if(!$alt->[1]) - { - $coordmember = ($anot->[$r]{afun}=~m/Coord/); - } - else - { - $coordmember = ($anot->[$r]{afun}=~m/(?:Coord|Apos)/); - } - } - else - { - $coordmember = $anot->[$z]{coordmember}; - } - } - # Odlišit členy koordinací od závislých uzlů. - if(!$coordmember) - { - if($konfig{koordinace}) - { - # Vynechat uzly, které samy řídí koordinaci. I vůči svým nadřízeným - # by koordinace měla být reprezentována něčím jiným než značkou - # souřadící spojky. - my $coordroot; - if(!$alt->[1]) - { - $coordroot = $anot->[$z]{afun}=~m/Coord/; - } - else - { - $coordroot = $anot->[$z]{afun}=~m/(?:Coord|Apos)/; - } - if($coordroot) - { - next; - } - } - # Doplňkové parametry: směr hrany a vzdálenost. - my $rs = $anot->[$r]{slovo}; - my $zs = $anot->[$z]{slovo}; - my $rz; - my $zz; - # Použít vlastní, nebo zděděné značky? - if(!$alt->[2] || !$konfig{koordinace}) - { - $rz = $anot->[$r]{uznacka}; - $zz = $anot->[$z]{uznacka}; - } - else - { - $rz = $anot->[$r]{mznpodstrom}; - $zz = $anot->[$z]{mznpodstrom}; - } - my ($smer, $delka) = model::zjistit_smer_a_delku($anot, $r, $z); - # Pokusné volitelné rozšíření: má uzel sourozence stejného druhu? - my $zarlivost = $konfig{zarlivost} ? (ma_sourozence_stejneho_druhu($anot, $r, $z) ? " N" : " Z") : ""; - ud("OSS $rs $zs $smer $delka"); - ud("OZZ $rz $zz $smer $delka$zarlivost"); - ud("OSZ $rs $zz $smer $delka"); - ud("OZS $rz $zs $smer $delka"); - ud("ZSS $rs $zs"); - ud("ZZZ $rz $zz"); - ud("ZSZ $rs $zz"); - ud("ZZS $rz $zs"); - if($konfig{"pseudoval"}) - { - if($rz =~ m/^V/) - { - my $rrr = $rz.$anot->[$r]{heslo}; - $rrr =~ s/_.*//; - ud("ZPV $rrr $zz $smer $delka"); - } - } - } -} - - - -#------------------------------------------------------------------------------ -# Projde větu a zaeviduje události související s koordinacemi. -# Parametry: @anot. Do značek a afunů zapisuje! -# $alt_coordmember: 1 = člen koordinace se pozná novým způsobem -# $alt_apos: 1 = ke koordinacím přidat apozice -# $alt_znvkor: 1 = události KZZ se sestavují podle zděděných značek v kořeni; -# totéž platí pro morfologickou(é) značku(y), která(é) reprezentuje(í) koordi- -# naci v jejích závislostních vztazích s okolím. -#------------------------------------------------------------------------------ -sub projit_koordinace -{ - my $anot = shift; # odkaz na pole hashů - my $alt = shift; # odkaz na pole - my $alt_znvkor = shift; - # Projít koordinace a posbírat statistiky o nich. - for(my $i = 1; $i<=$#{$anot}; $i++) - { - # Zapamatovat si výskyty každého slova, aby bylo možné počítat, - # v kolika procentech toto slovo řídilo koordinaci. - ud("USS $anot->[$i]{slovo}"); - ud("USZ $anot->[$i]{slovo}/$anot->[$i]{uznacka}"); - ud("UZZ $anot->[$i]{uznacka}"); - my $koren; - if($alt->[1]) - { - $koren = $anot->[$i]{afun} =~ m/(?:Coord|Apos)/; - } - else - { - $koren = $anot->[$i]{afun} =~ m/Coord/; - } - if($koren) - { - # Zapamatovat si pro každé slovo, kolikrát řídilo koord. - ud("KJJ $anot->[$i]{slovo}"); - my $n_clenu; # Počet členů koordinace. - my @koortypy; # Potřeba jen když !$alt->[3]. - for(my $j = 1; $j<=$#{$anot}; $j++) - { - my $clen; - if($alt->[0]) - { - $clen = $anot->[$j]{coordmember}; - } - else - { - if($alt->[1]) - { - $clen = $anot->[$j]{afun} =~ m/_(?:Co|Ap)$/; - } - else - { - $clen = $anot->[$j]{afun} =~ m/_Co$/; - } - } - if($anot->[$j]{rodic_vzor}==$i && $clen) - { - # Zapamatovat si pro každé heslo, kolikrát řídilo - # vícečetnou koordinaci. - if(++$n_clenu==3) - { - ud("KJ3 $anot->[$i]{slovo}"); - } - if($alt->[3]) - { - # Značky všech členů koordinace jsou posbírané u - # kořene. - my $mz = $anot->[$j]{mznpodstrom}; - my $oz = $anot->[$i]{mznpodstrom}; - # Vyhodit z nich první výskyt mojí značky - zastupuje - # mne sama. Nemůžeme to udělat pomocí regulárních - # výrazů, protože bychom museli zneškodnit nejen - # svislítka, ale i závorky a jiné znaky ve značkách. - my @mz = split(/\|/, $mz); - my @oz = split(/\|/, $oz); - for(my $k = 0; $k<=$#mz; $k++) - { - for(my $l = 0; $l<=$#oz; $l++) - { - if($oz[$l] eq $mz[$k]) - { - splice(@oz, $l, 1); - last; - } - } - } - $oz = join("|", @oz); - # Nyní už lze ohlásit koordinační událost. Roznásobení - # zbývajících značek s těmi mými zajistí přímo - # procedura ud(). - ud("KZZ $mz $oz"); - } - else - { - # Projít všechny dosud zjištěné členy a spárovat je se - # mnou. - for(my $k = 0; $k<=$#koortypy; $k++) - { - ud("KZZ $anot->[$j]{uznacka} $koortypy[$k]"); - ud("KZZ $koortypy[$k] $anot->[$j]{uznacka}"); - } - $koortypy[++$#koortypy] = $anot->[$j]{uznacka}; - } - } - } - if(!$alt->[2]) - { - # Zrušit koordinaci, aby byl vidět typ členů. - $anot->[$i]{afun} = "zpracovana koordinace"; - $anot->[$i]{uznacka} = $koortypy[0]; - } - } - } -} - - - -#------------------------------------------------------------------------------ -# Kontextové trénování. -# Projde větu a pro každé slovo si zapamatuje jeho skutečné zavěšení -# v konkurenci s každým možným jiným zavěšením v okolí. -#------------------------------------------------------------------------------ -sub spocitat_lokalni_konflikty -{ - my $anot = shift; # odkaz na pole hashů - # Bohužel je asi někde v této funkci chyba: asi se přistupuje k prvkům za - # současnou hranicí pole @anot. Tímpádem se nemůžeme spolehnout na délku - # pole a řídit s její pomocí cykly. Pokud chybu neopravíme, bude bezpečnější - # hned na začátku délku věty zafixovat a na konci ji vrátit. - my $n = $#{$anot}; - for(my $i = 1; $i<=$n; $i++) - { - # Pokud je slovo zavěšeno doleva, zapamatovat si poražené konkurenty napravo. - if($anot->[$i]{rodic_vzor}<$i) - { - # Jde o závislost, nebo koordinaci? - my $vazba = ($anot->[$i]{afun}=~m/_Co/ ? "C " : "").$anot->[zjistit_vazbu($anot, $i)]{uznacka}; - # Projít konkurenty. - my $j = $i+1; - do { - # Zapamatovat si konkurenční závislost. - ud("LOK $anot->[$i]{uznacka} L $vazba P $anot->[$j]{uznacka} L"); - # Pokud $j řídí kooridnaci, zapamatovat si ji také. - if($anot->[$j]{afun}=~m/Coord/) - { - for(my $k = $j+1; $k<=$n; $k++) - { - if($anot->[$k]{rodic_vzor}==$j && $anot->[$k]{afun}=~m/_Co$/ && - $anot->[$k]{afun}!~m/Coord/) # Složené koordinace je lepší - # vynechat než správně procházet. - { - ud("LOK $anot->[$i]{uznacka} L $vazba P C $anot->[$k]{uznacka} L"); - last; - } - } - } - # Pokud $j neřídí koordinaci, ale teoreticky by mohlo, protože - # už jsme ho dříve viděli v pozici koordinační spojky, - # zapamatovat si i všechny potenciální koordinace. - my $n_jako_koord = $stat{"KJJ $anot->[$j]{slovo}"}; - if($n_jako_koord>0) - { - my $n_jako_cokoli = $stat{"USS $anot->[$j]{slovo}"}; - for(my $k = $j+1; $k>=0 && $k<=$n && $k>$j; $k = $anot->[$k]{rodic_vzor}) - { - ud("LOK $anot->[$i]{uznacka} L $vazba P C $anot->[$k]{uznacka} L", - $n_jako_koord/$n_jako_cokoli); - } - } - # Pokud má $j dítě nalevo ode mě, skončit. - for(my $k = $i-1; $k>0; $k--) - { - if($anot->[$k]{rodic_vzor}==$j) - { - $j = 0; - last; - } - } - $j = $anot->[$j]{rodic_vzor}; - } while($j>$i); - } - # Pokud je zavěšeno doprava, zapamatovat si poražené konkurenty nalevo. - else - { - # Jde o závislost, nebo koordinaci? - my $vazba = ($anot->[$i]{afun}=~m/_Co/ ? "C " : "").$anot->[zjistit_vazbu($anot, $i)]{uznacka}; - # Projít konkurenty. - my $j = $i-1; - do { - # Zapamatovat si konkurenční závislost. - ud("LOK $anot->[$i]{uznacka} L $anot->[$j]{uznacka} P $vazba P"); - # Pokud $j řídí kooridnaci, zapamatovat si ji také. - if($anot->[$j]{afun}=~m/Coord/) - { - for(my $k = $j-1; $k>0 && $k<=$n; $k--) - { - if($anot->[$k]{rodic_vzor}==$j && $anot->[$k]{afun}=~m/_Co$/ && - $anot->[$k]{afun}!~m/Coord/) # Složené koordinace je lepší - # vynechat než správně procházet. - { - ud("LOK $anot->[$i]{uznacka} L C $anot->[$k]{uznacka} P $vazba P"); - last; - } - } - } - # Pokud $j neřídí koordinaci, ale teoreticky by mohlo, protože - # už jsme ho dříve viděli v pozici koordinační spojky, - # zapamatovat si i všechny potenciální koordinace. - my $n_jako_koord = $stat{"KJJ $anot->[$j]{slovo}"}; - if($n_jako_koord>0) - { - my $n_jako_cokoli = $stat{"USS $anot->[$j]{slovo}"}; - for(my $k = $j-1; $k>=0 && $k<=$n && $k<$j; $k = $anot->[$k]{rodic_vzor}) - { - ud("LOK $anot->[$i]{uznacka} L C $anot->[$k]{uznacka} P $vazba P", - $n_jako_koord/$n_jako_cokoli); - } - } - # Pokud má $j dítě napravo ode mě, skončit. - for(my $k = $i+1; $k<=$n; $k++) - { - if($anot->[$k]{rodic_vzor}==$j) - { - $j = 0; - last; - } - } - $j = $anot->[$j]{rodic_vzor}; - } while($j<$i && $j>0); - } - } - # Oprava chyby způsobené neopodstatněnými přístupy k prvkům mimo pole. - $#{$anot} = $n; -} - - - -#------------------------------------------------------------------------------ -# Projde větu a zapamatuje si rámce všech řídících uzlů. Nepokouší se oddělit -# povinná doplnění od volitelných, to se bude muset dělat až s celou statisti- -# kou najednou. -#------------------------------------------------------------------------------ -sub projit_ramce -{ - my $anot = shift; # odkaz na pole hashů - my @ramce; - # Projít závislé uzly a zapsat je do rámců jejich řídících uzlů. - for(my $i = 0; $i<=$#{$anot}; $i++) - { - my $rodic = $anot->[$i]{rodic_vzor}; - $rodic = "" if($rodic<0); # Pojistka. Dělám to takhle kvůli snaze dosáhnout statistiky identické s 013. - push(@{$ramce[$rodic]}, $anot->[$i]{mznpodstrom}); - } - # Projít nasbírané rámce a seřadit jejich členy podle abecedy. - # Tím se zajistí nezávislost rámců na slovosledu. - for(my $i = 0; $i<=$#ramce; $i++) - { - @{$ramce[$i]} = sort(@{$ramce[$i]}); - # Normalizovaný rámec ihned uložit do evidence. - my $heslo = $anot->[$i]{heslo}; - # Oddělit příčestí trpná od ostatních tvarů sloves. - $heslo .= "-trp" if($anot->[$i]{mznpodstrom} =~ m/V[S4]/); - # Členy rámce spojit vlnovkou, ta se v žádné značce nevyskytuje. - my $udalost = "RAM $heslo ".join("~", @{$ramce[$i]}); - ud($udalost); - } -} - - - -#------------------------------------------------------------------------------ -# Pokud je věta krátká, uloží celý její strom. -#------------------------------------------------------------------------------ -sub projit_kratkou_vetu -{ - my $anot = shift; #odkaz na pole hashů - # Zkontrolovat, že je věta dostatečně krátká. - if($#{$anot}>8) - { - return; - } - # Vytvořit událost: morfologický vzor a strom. - my $vzor; - my $strom; - my $i; - for($i = 1; $i<=$#{$anot}; $i++) - { - if($i>1) - { - $vzor .= "~"; - $strom .= ","; - } - $vzor .= $anot->[$i]{uznacka}; - $strom .= $anot->[$i]{rodic_vzor}; - } - # Uložit větu a její strom mezi události. - ud("VET $vzor $strom"); -} - - - -#------------------------------------------------------------------------------ -# Zapamatuje si výskyt něčeho (událost). V případě, že některý prvek události -# (např. morfologická značka řídícího uzlu) je nejednoznačný (tj. skládá se -# z více hodnot oddělených svislítkem), nahradí událost několika jednoznačnými -# událostmi a každé z nich přiřadí poměrnou část výskytu. -#------------------------------------------------------------------------------ -sub ud -{ - my $ud = shift; # událost, jejíž četnost chceme zvýšit - my $n = shift; # počet výskytů, o který chceme zvýšit četnost - my $statref = shift; # odkaz na hash, do nějž se četnosti ukládají - $n = 1 if($n eq ""); - ###!!! Tohle by ale fakt mělo být jinde!!! - # Koordinace započítat třikrát, je to jakési primitivní zvýšení jejich váhy. - if($ud =~ m/^KZZ/) - { - $n *= 3; - } - ud::ulozit($ud, $n, $statref); -} - - - -#------------------------------------------------------------------------------ -# Najde k uzlu jeho řídící uzel a vrátí jeho index. Pokud řídící uzel řídí -# koordinaci, vrátí místo něj index prvního člena této koordinace ve větě. -# Je na volajícím, aby vztah interpretoval jako koordinaci (závislý uzel má -# afun _Co), nebo jako závislost na koordinaci (závislý uzel má jiný afun). -#------------------------------------------------------------------------------ -sub zjistit_vazbu -{ - my $anot = shift; - my $z = shift; - my $r = $anot->[$z]{rodic_vzor}; - my $i; - if($anot->[$r]{afun}!~m/Coord/) - { - # Obyčejná závislost. - return $r; - } - else - { - # Koordinace nebo závislost na koordinaci. - for($i = 1; $i<=$#{$anot}; $i++) - { - if($anot->[$i]{rodic_vzor}==$r && $anot->[$i]{afun}=~m/_Co/ && $i!=$z) - { - # Ale pozor, mohla by to být další vnořená koordinace! - if($anot->[$i]{afun}=~m/Coord/) - { - $r = $i; - $i = 0; - } - else - { - return $i; - } - } - } - # Pokud z nějakého důvodu nebyl nalezen jiný člen koordinace, vrátit - # přece jenom index koordinační spojky. - return $r; - } -} - - - -#------------------------------------------------------------------------------ -# Uloží natrénované statistiky. -#------------------------------------------------------------------------------ -sub ulozit -{ - vypsat("prubeh", parse::cas()." Ukládá se statistika.\n"); - # Kvůli efektivitě se hašovací tabulka předává odkazem (volání - # ulozit(\%stat)). Ve volané funkci se na ni pak dá dostat dvěma způsoby: - # na celou tabulku najednou $%statref a na prvek $statref->{"ahoj"}. - my $statref = shift; - my @stat = keys(%$statref); - my $n = $#stat+1; - vypsat("prubeh", parse::cas()." Statistika obsahuje $n událostí.\n"); - $n = 1 if($n==0); # kvůli dělení při hlášení pokroku - for(my $i = 0; $i<=$#stat; $i++) - { - # Popis události nesmí obsahovat tabulátor, jinak by statistika nešla opět načíst. - my $ud = $stat[$i]; - $ud =~ s/&/&/g; - $ud =~ s/\t/&tab;/g; - vypsat("stat", "$ud\t$statref->{$stat[$i]}\n"); - } -} - - - -#------------------------------------------------------------------------------ -# Pro danou dvojici r-z zjistí, zda na r ještě visí jiný uzel se stejnou -# značkou jako z. -#------------------------------------------------------------------------------ -sub ma_sourozence_stejneho_druhu -{ - my $anot = shift; - my $r = shift; - my $z = shift; - for(my $i = 0; $i<=$#{$anot}; $i++) - { - if($i!=$z && $anot->[$i]{rodic_vzor}==$r && $anot->[$i]{uznacka} eq $anot->[$z]{uznacka}) - { - return 1; - } - } - return 0; -} - - - -#------------------------------------------------------------------------------ -# Vybere složku pro pomocné soubory (je různá ve Windows a v Linuxu), zkopíruje -# vstup do pomocného souboru a vrátí cestu k němu. Je to nutné, protože vstup -# čteme dvakrát za sebou, nejdřív kvůli normálnímu trénování a pak kvůli učení -# n-tic (obojí současně se nám totiž nevejde do paměti). Pokud bychom četli -# vstup ze standardního vstupu, podruhé už by tam nic nebylo. -#------------------------------------------------------------------------------ -sub zkopirovat_vstup_do_tmp -{ - my $vstup = shift; - # Jestliže existuje proměnná prostředí TEMP (bývá ve Windows), použít její - # obsah jako cestu k pomocné složce. - my $tmp; - if(exists($ENV{TEMP}) && -d $ENV{TEMP}) - { - $tmp = $ENV{TEMP}; - } - # Druhá varianta ve Windows je proměnná TMP. - elsif(exists($ENV{TMP}) && -d $ENV{TMP}) - { - $tmp = $ENV{TMP}; - } - # Pokud jsme na Linuxu na ÚFALu, měla by k těmto účelům existovat složka /mnt/h/tmp - elsif(-d "/mnt/h/tmp") - { - $tmp = "/mnt/h/tmp"; - } - # Pokud jsme na Linuxu, měla by k těmto účelům existovat složka /tmp. - elsif(-d "/tmp") - { - $tmp = "/tmp"; - } - # Pokud konfigurace definuje pracovní složku, mohlo by být dost místa a právo zápisu v ní. - elsif(exists($konfig{pracovni}) && -d $konfig{pracovni}) - { - $tmp = $konfig{pracovni}; - } - # Jinak nám nezbývá než zkusit aktuální složku. - else - { - $tmp = "."; - } - # Zkopírovat vstup do pomocné složky. Vstup známe jménem. Jestliže je to "-", jde o STDIN. - my $tmpfile = "$tmp/vstup-$$.csts"; - open(ZDROJ, $vstup) or die("Nelze číst soubor $vstup: $!\n"); - open(CIL, ">$tmpfile") or die("Nelze psát do souboru $tmpfile: $!\n"); - binmode(ZDROJ, ":raw"); - binmode(CIL, ":raw"); - while() - { - print CIL; - } - close(ZDROJ); - close(CIL); - return $tmpfile; -} +#!/usr/bin/perl +# Natrénuje statistiky z treebanku a uloží je. +# (c) 1995-2008 Dan Zeman +# License: GNU GPL + +use utf8; +use Getopt::Long; +# Zařídit, aby Perl hledal knihovny také ve složce, ve které se nachází tento skript. +BEGIN {my $path = `dirname $0`; $path =~ s/\r?\n$//; unshift(@INC, $path) unless(grep {$_ eq $path} @INC)} +use parse; +use csts; +use model; # kvůli zjistit_smer_a_delku() +use vystupy; +use ntice; +use ud; + + + +$starttime = time(); +my $inisoubor = "parser.ini"; # jméno souboru s konfigurací +# train.pl --i parser2.ini +GetOptions('ini=s' => \$inisoubor); +# Výchozí nastavení parametrů. +%konfig = parse::vychozi_konfig(); +parse::precist_konfig($inisoubor, \%konfig); +# Nastavit, který výstup půjde na STDOUT. Ostatní půjdou na STDERR. +$vystupy::vystupy{stat}{stdout} = 1; + + + +# Načíst seznam subkategorizačních rámců sloves. +# Potřebujeme ho, abychom mohli počítat, kolikrát se která m-značka vyskytla +# jako povinné, a kolikrát jako volné doplnění. +if($konfig{valence}) +{ + $konfig{nacteny_subkategorizacni_slovnik} = subkat::cist($konfig{subcat}); # vrátí odkaz na hash se subkategorizačním slovníkem +} + + + +# Kvůli snížení paměťových nároků lze statistický model rozdělit do dílů. +# Díly se číslují od jedničky. +$i_dil = 1; +$konfig{hook_zacatek_cteni} = sub +{ + my $maska = shift; + my $soubory = shift; + vypsat("prubeh", "Maska pro jména souborů s daty: $maska\n"); + vypsat("prubeh", "Nalezeno ".($#{$soubory}+1)." souborů.\n"); +}; +$tmpfile = zkopirovat_vstup_do_tmp($konfig{train}); +csts::projit_data($tmpfile, \%konfig, \&zpracovat_vetu); +vypsat("prubeh", "Počet vět = $veta\n"); +vypsat("prubeh", "Počet slov = $slovo\n"); +# Teď ještě natrénovat modely n-tic. Nemohli jsme to dělat všechno při jednom +# průchodu dat, protože by nám nemusela stačit paměť. N-tic sice přežije jen +# kolem 7000, ale během trénování jich musíme mít v paměti přes 5000000. +if($konfig{ntice}) +{ + %stat = (); + $veta = 0; + $slovo = 0; + $ohlasena_veta = 0; + csts::projit_data($tmpfile, \%konfig, \&zpracovat_vetu_ntice); + ntice::vypsat_do_stat(); +} +unlink($tmpfile); +# Poslat mi mail, že trénink je u konce. Musíme do mailu dát nějaký existující +# soubor. Stačil by mi sice prázdný mail jen s předmětem zprávy, ale pokud bych +# k tomu chtěl využít existující mechanismy, vznikl by mi tím na disku prázdný +# soubor. +if($vystupy::cislo_instance) +{ + vystupy::kopirovat_do_mailu("konfig", "Trenink $vystupy::cislo_instance skoncil"); +} + +# Konec. +$stoptime = time(); +parse::vypsat_delku_trvani_programu($starttime, $stoptime, "konfig"); +parse::vypsat_delku_trvani_programu($starttime, $stoptime, "vysledky") if($konfig{rezim} eq "debug"); + + + +############################################################################### +# PODPROGRAMY +############################################################################### + + + +#------------------------------------------------------------------------------ +# Projde větu a zapamatuje si vztahy v ní. +#------------------------------------------------------------------------------ +sub zpracovat_vetu +{ + my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě + my $anot = shift; # pole hashů o jednotlivých slovech + # Před zpracováním první věty souboru ohlásit nový soubor. + # (Test, zda jsme na začátku souboru, je uvnitř.) + vypsat_jmeno_souboru($stav_cteni); + # Vynechat věty se závadným obsahem (proměnná $vynechat_vetu se nastavuje + # při načítání slova) a věty nad rámec požadovaného rozsahu. + return if($vynechat_vetu || $konfig{max_trenovacich_vet} && $veta>=$konfig{max_trenovacich_vet}); + # Ohlásit na výstup číslo zpracovávané věty. + $veta++ if($#{$anot}>0); + $slovo += $#{$anot}; + $ohlasena_veta = ohlasit_vetu($stav_cteni, $ohlasena_veta, $veta); + # Zapamatovat si nejdelší větu. + if($#{$anot}>$maxn_slov) + { + $maxn_slov = $#{$anot}; + } + if($#{$anot}>0) # Pokud nezačínáme číst první větu. + { + #!!! + # Alternující části kódu. + my @alt; + $alt[0] = 1; # coordmember je (0) dite rodice se spravnym afunem (1) i vzdalenejsi potomek (treba pod predlozkou), ale zato clen (pokud je tedy dite korene koordinace, ale neni jeji clen, neni coordmember) + $alt[1] = 0; # ke koordinacim pridat apozice + $alt[2] = 1; # v beznych zavislostech zdedene znacky + $alt[3] = 0; # zaznamenavat koordinacni udalosti + # (jinak se zaznamenavaji pouze zavislosti) + #!!! + # Dokud existuje možnost, že při procházení koordinací se budou + # upravovat $anot->[$i]{znacka} a $anot->[$i]{afun}, musejí se koordinace zpracovávat před + # závislostmi, ve kterých se tohle využije. Až se bude spoléhat jen + # na zděděné značky, bude možné pořadí otočit. + if($konfig{koordinace}) + { + projit_koordinace($anot, \@alt); + } + # Projít větu a posbírat statistiky. + for(my $i = 1; $i<=$#{$anot}; $i++) + { + zjistit_udalosti_slovo($i, $anot->[$i]{rodic_vzor}, \@alt, $anot); + } + # Spočítat lokální konflikty. + spocitat_lokalni_konflikty($anot); + # Zjistit rámce všech řídících uzlů (včetně volitelných doplnění). + projit_ramce($anot); + # U krátkých vět si zapamatovat celý strom. + projit_kratkou_vetu($anot); + } + # Uložit statistiku, jestliže je tohle poslední věta, popř. poslední, která se vejde do omezení. + $i_dil = ulozit_statistiku_pokud_je_to_potreba($stav_cteni, $veta, $i_dil); +} + + + +#------------------------------------------------------------------------------ +# Projde větu, najde v ní n-tice a zapamatuje si je. +#------------------------------------------------------------------------------ +sub zpracovat_vetu_ntice +{ + my $stav_cteni = shift; # hash s údaji o aktuálním dokumentu, odstavci a větě + my $anot = shift; # pole hashů o jednotlivých slovech + # Před zpracováním první věty souboru ohlásit nový soubor. + # (Test, zda jsme na začátku souboru, je uvnitř.) + vypsat_jmeno_souboru($stav_cteni); + # Vynechat věty se závadným obsahem (proměnná $vynechat_vetu se nastavuje + # při načítání slova) a věty nad rámec požadovaného rozsahu. + return if($vynechat_vetu || $konfig{max_trenovacich_vet} && $veta>=$konfig{max_trenovacich_vet}); + # Ohlásit na výstup číslo zpracovávané věty. + $veta++ if($#{$anot}>0); + $slovo += $#{$anot}; + $ohlasena_veta = ohlasit_vetu($stav_cteni, $ohlasena_veta, $veta, "N-tice: "); + for(my $n = 2; $n<=10; $n++) + { + ntice::ucit($n, $anot); + } +} + + + +#------------------------------------------------------------------------------ +# Vypíše do průběhu jméno souboru, který právě čteme. +#------------------------------------------------------------------------------ +sub vypsat_jmeno_souboru +{ + my $stav_cteni = shift; + if($stav_cteni->{novy_soubor}) + { + my ($sek, $min, $hod) = localtime(time()); + my $jmeno_souboru_do_hlaseni = $stav_cteni->{soubor}; + $jmeno_souboru_do_hlaseni =~ s-^.*/([^/]*)$-$1-; + $jmeno_souboru_do_hlaseni =~ s/\.(?:csts|amm)$//i; + vypsat("prubeh", parse::cas()." Otevírá se soubor $jmeno_souboru_do_hlaseni\n"); + } +} + + + +#------------------------------------------------------------------------------ +# Vypíše do průběhu číslo věty, kterou právě zpracováváme. Vrátí číslo věty, +# pokud ji ohlásil, jinak vrátí číslo naposledy ohlášené věty. +#------------------------------------------------------------------------------ +sub ohlasit_vetu +{ + my $stav_cteni = shift; + my $ohlasena_veta = shift; + my $veta = shift; + my $prubeh = shift; + if($veta-$ohlasena_veta==100 || + $stav_cteni->{posledni_veta} || + ($konfig{max_trenovacich_vet} && $veta==$konfig{max_trenovacich_vet})) + { + vypsat("prubeh", parse::cas()." ${prubeh}Zpracovává se věta $veta.\n"); + $ohlasena_veta = $veta; + } + return $ohlasena_veta; +} + + + +#------------------------------------------------------------------------------ +# Zjistit, zda je potřeba uložit statistiku, a v případě potřeby to udělá. +#------------------------------------------------------------------------------ +sub ulozit_statistiku_pokud_je_to_potreba +{ + my $stav_cteni = shift; + my $veta = shift; # číslo zpracovávané věty + my $i_dil = shift; + # %stat: globální proměnná + my $konfig = \%main::konfig; + # Jestliže jsme už přečetli určitý počet událostí, uložit dosud nasbíranou + # statistiku, vyprázdnit paměť a od příští věty začít nanovo. + my $n_udalosti = int(keys(%stat)); + if($konfig->{split}>0 && $n_udalosti>=$konfig->{split} || + $konfig->{max_trenovacich_vet} && $veta==$konfig->{max_trenovacich_vet} || + $stav_cteni->{posledni_veta}) + { + # Jméno souboru se statistikou. + my $jmeno = $konfig->{prac}."/".$konfig->{stat}; + if($konfig->{split}) + { + vypsat("prubeh", parse::cas()." Konec $i_dil. dílu.\n"); + $jmeno .= $i_dil; + } + # Uložit dosud nasbíranou statistiku. + ulozit(\%stat, $jmeno); + unless($stav_cteni->{posledni_veta}) + { + # Uvolnit paměť pro nový díl. + vypsat("prubeh", parse::cas()." Uvolňuje se paměť.\n"); + undef(%stat); + } + $i_dil++; + } + return $i_dil; +} + + + +#------------------------------------------------------------------------------ +# Zjistí trénovací události o jednom slově (to neznamená, že kvůli němu nebude +# potřebovat projít všechna ostatní slova věty). +#------------------------------------------------------------------------------ +sub zjistit_udalosti_slovo +{ + my $z = shift; + my $r = shift; + my $alt = shift; # jen odkaz na pole + my $anot = shift; # jen odkaz na pole + # Vynechat uzly, jejichž rodič řídí koordinaci. Buď jsou členy koordinace a + # jejich vztah k rodiči není závislost. Nebo závisejí na koordinaci, ta by + # ale místo značky souřadící spojky měla být reprezentována značkou + # typického člena, takže závislost na koordinaci vyžaduje zvláštní + # zacházení. + my $coordmember; + if($konfig{koordinace}) + { + if(!$alt->[0]) + { + if(!$alt->[1]) + { + $coordmember = ($anot->[$r]{afun}=~m/Coord/); + } + else + { + $coordmember = ($anot->[$r]{afun}=~m/(?:Coord|Apos)/); + } + } + else + { + $coordmember = $anot->[$z]{coordmember}; + } + } + # Odlišit členy koordinací od závislých uzlů. + if(!$coordmember) + { + if($konfig{koordinace}) + { + # Vynechat uzly, které samy řídí koordinaci. I vůči svým nadřízeným + # by koordinace měla být reprezentována něčím jiným než značkou + # souřadící spojky. + my $coordroot; + if(!$alt->[1]) + { + $coordroot = $anot->[$z]{afun}=~m/Coord/; + } + else + { + $coordroot = $anot->[$z]{afun}=~m/(?:Coord|Apos)/; + } + if($coordroot) + { + next; + } + } + # Doplňkové parametry: směr hrany a vzdálenost. + my $rs = $anot->[$r]{slovo}; + my $zs = $anot->[$z]{slovo}; + my $rz; + my $zz; + # Použít vlastní, nebo zděděné značky? + if(!$alt->[2] || !$konfig{koordinace}) + { + $rz = $anot->[$r]{uznacka}; + $zz = $anot->[$z]{uznacka}; + } + else + { + $rz = $anot->[$r]{mznpodstrom}; + $zz = $anot->[$z]{mznpodstrom}; + } + my ($smer, $delka) = model::zjistit_smer_a_delku($anot, $r, $z); + # Pokusné volitelné rozšíření: má uzel sourozence stejného druhu? + my $zarlivost = $konfig{zarlivost} ? (ma_sourozence_stejneho_druhu($anot, $r, $z) ? " N" : " Z") : ""; + ud("OSS $rs $zs $smer $delka"); + ud("OZZ $rz $zz $smer $delka$zarlivost"); + ud("OSZ $rs $zz $smer $delka"); + ud("OZS $rz $zs $smer $delka"); + ud("ZSS $rs $zs"); + ud("ZZZ $rz $zz"); + ud("ZSZ $rs $zz"); + ud("ZZS $rz $zs"); + if($konfig{"pseudoval"}) + { + if($rz =~ m/^V/) + { + my $rrr = $rz.$anot->[$r]{heslo}; + $rrr =~ s/_.*//; + ud("ZPV $rrr $zz $smer $delka"); + } + } + } +} + + + +#------------------------------------------------------------------------------ +# Projde větu a zaeviduje události související s koordinacemi. +# Parametry: @anot. Do značek a afunů zapisuje! +# $alt_coordmember: 1 = člen koordinace se pozná novým způsobem +# $alt_apos: 1 = ke koordinacím přidat apozice +# $alt_znvkor: 1 = události KZZ se sestavují podle zděděných značek v kořeni; +# totéž platí pro morfologickou(é) značku(y), která(é) reprezentuje(í) koordi- +# naci v jejích závislostních vztazích s okolím. +#------------------------------------------------------------------------------ +sub projit_koordinace +{ + my $anot = shift; # odkaz na pole hashů + my $alt = shift; # odkaz na pole + my $alt_znvkor = shift; + # Projít koordinace a posbírat statistiky o nich. + for(my $i = 1; $i<=$#{$anot}; $i++) + { + # Zapamatovat si výskyty každého slova, aby bylo možné počítat, + # v kolika procentech toto slovo řídilo koordinaci. + ud("USS $anot->[$i]{slovo}"); + ud("USZ $anot->[$i]{slovo}/$anot->[$i]{uznacka}"); + ud("UZZ $anot->[$i]{uznacka}"); + my $koren; + if($alt->[1]) + { + $koren = $anot->[$i]{afun} =~ m/(?:Coord|Apos)/; + } + else + { + $koren = $anot->[$i]{afun} =~ m/Coord/; + } + if($koren) + { + # Zapamatovat si pro každé slovo, kolikrát řídilo koord. + ud("KJJ $anot->[$i]{slovo}"); + my $n_clenu; # Počet členů koordinace. + my @koortypy; # Potřeba jen když !$alt->[3]. + for(my $j = 1; $j<=$#{$anot}; $j++) + { + my $clen; + if($alt->[0]) + { + $clen = $anot->[$j]{coordmember}; + } + else + { + if($alt->[1]) + { + $clen = $anot->[$j]{afun} =~ m/_(?:Co|Ap)$/; + } + else + { + $clen = $anot->[$j]{afun} =~ m/_Co$/; + } + } + if($anot->[$j]{rodic_vzor}==$i && $clen) + { + # Zapamatovat si pro každé heslo, kolikrát řídilo + # vícečetnou koordinaci. + if(++$n_clenu==3) + { + ud("KJ3 $anot->[$i]{slovo}"); + } + if($alt->[3]) + { + # Značky všech členů koordinace jsou posbírané u + # kořene. + my $mz = $anot->[$j]{mznpodstrom}; + my $oz = $anot->[$i]{mznpodstrom}; + # Vyhodit z nich první výskyt mojí značky - zastupuje + # mne sama. Nemůžeme to udělat pomocí regulárních + # výrazů, protože bychom museli zneškodnit nejen + # svislítka, ale i závorky a jiné znaky ve značkách. + my @mz = split(/\|/, $mz); + my @oz = split(/\|/, $oz); + for(my $k = 0; $k<=$#mz; $k++) + { + for(my $l = 0; $l<=$#oz; $l++) + { + if($oz[$l] eq $mz[$k]) + { + splice(@oz, $l, 1); + last; + } + } + } + $oz = join("|", @oz); + # Nyní už lze ohlásit koordinační událost. Roznásobení + # zbývajících značek s těmi mými zajistí přímo + # procedura ud(). + ud("KZZ $mz $oz"); + } + else + { + # Projít všechny dosud zjištěné členy a spárovat je se + # mnou. + for(my $k = 0; $k<=$#koortypy; $k++) + { + ud("KZZ $anot->[$j]{uznacka} $koortypy[$k]"); + ud("KZZ $koortypy[$k] $anot->[$j]{uznacka}"); + } + $koortypy[++$#koortypy] = $anot->[$j]{uznacka}; + } + } + } + if(!$alt->[2]) + { + # Zrušit koordinaci, aby byl vidět typ členů. + $anot->[$i]{afun} = "zpracovana koordinace"; + $anot->[$i]{uznacka} = $koortypy[0]; + } + } + } +} + + + +#------------------------------------------------------------------------------ +# Kontextové trénování. +# Projde větu a pro každé slovo si zapamatuje jeho skutečné zavěšení +# v konkurenci s každým možným jiným zavěšením v okolí. +#------------------------------------------------------------------------------ +sub spocitat_lokalni_konflikty +{ + my $anot = shift; # odkaz na pole hashů + # Bohužel je asi někde v této funkci chyba: asi se přistupuje k prvkům za + # současnou hranicí pole @anot. Tímpádem se nemůžeme spolehnout na délku + # pole a řídit s její pomocí cykly. Pokud chybu neopravíme, bude bezpečnější + # hned na začátku délku věty zafixovat a na konci ji vrátit. + my $n = $#{$anot}; + for(my $i = 1; $i<=$n; $i++) + { + # Pokud je slovo zavěšeno doleva, zapamatovat si poražené konkurenty napravo. + if($anot->[$i]{rodic_vzor}<$i) + { + # Jde o závislost, nebo koordinaci? + my $vazba = ($anot->[$i]{afun}=~m/_Co/ ? "C " : "").$anot->[zjistit_vazbu($anot, $i)]{uznacka}; + # Projít konkurenty. + my $j = $i+1; + do { + # Zapamatovat si konkurenční závislost. + ud("LOK $anot->[$i]{uznacka} L $vazba P $anot->[$j]{uznacka} L"); + # Pokud $j řídí kooridnaci, zapamatovat si ji také. + if($anot->[$j]{afun}=~m/Coord/) + { + for(my $k = $j+1; $k<=$n; $k++) + { + if($anot->[$k]{rodic_vzor}==$j && $anot->[$k]{afun}=~m/_Co$/ && + $anot->[$k]{afun}!~m/Coord/) # Složené koordinace je lepší + # vynechat než správně procházet. + { + ud("LOK $anot->[$i]{uznacka} L $vazba P C $anot->[$k]{uznacka} L"); + last; + } + } + } + # Pokud $j neřídí koordinaci, ale teoreticky by mohlo, protože + # už jsme ho dříve viděli v pozici koordinační spojky, + # zapamatovat si i všechny potenciální koordinace. + my $n_jako_koord = $stat{"KJJ $anot->[$j]{slovo}"}; + if($n_jako_koord>0) + { + my $n_jako_cokoli = $stat{"USS $anot->[$j]{slovo}"}; + for(my $k = $j+1; $k>=0 && $k<=$n && $k>$j; $k = $anot->[$k]{rodic_vzor}) + { + ud("LOK $anot->[$i]{uznacka} L $vazba P C $anot->[$k]{uznacka} L", + $n_jako_koord/$n_jako_cokoli); + } + } + # Pokud má $j dítě nalevo ode mě, skončit. + for(my $k = $i-1; $k>0; $k--) + { + if($anot->[$k]{rodic_vzor}==$j) + { + $j = 0; + last; + } + } + $j = $anot->[$j]{rodic_vzor}; + } while($j>$i); + } + # Pokud je zavěšeno doprava, zapamatovat si poražené konkurenty nalevo. + else + { + # Jde o závislost, nebo koordinaci? + my $vazba = ($anot->[$i]{afun}=~m/_Co/ ? "C " : "").$anot->[zjistit_vazbu($anot, $i)]{uznacka}; + # Projít konkurenty. + my $j = $i-1; + do { + # Zapamatovat si konkurenční závislost. + ud("LOK $anot->[$i]{uznacka} L $anot->[$j]{uznacka} P $vazba P"); + # Pokud $j řídí kooridnaci, zapamatovat si ji také. + if($anot->[$j]{afun}=~m/Coord/) + { + for(my $k = $j-1; $k>0 && $k<=$n; $k--) + { + if($anot->[$k]{rodic_vzor}==$j && $anot->[$k]{afun}=~m/_Co$/ && + $anot->[$k]{afun}!~m/Coord/) # Složené koordinace je lepší + # vynechat než správně procházet. + { + ud("LOK $anot->[$i]{uznacka} L C $anot->[$k]{uznacka} P $vazba P"); + last; + } + } + } + # Pokud $j neřídí koordinaci, ale teoreticky by mohlo, protože + # už jsme ho dříve viděli v pozici koordinační spojky, + # zapamatovat si i všechny potenciální koordinace. + my $n_jako_koord = $stat{"KJJ $anot->[$j]{slovo}"}; + if($n_jako_koord>0) + { + my $n_jako_cokoli = $stat{"USS $anot->[$j]{slovo}"}; + for(my $k = $j-1; $k>=0 && $k<=$n && $k<$j; $k = $anot->[$k]{rodic_vzor}) + { + ud("LOK $anot->[$i]{uznacka} L C $anot->[$k]{uznacka} P $vazba P", + $n_jako_koord/$n_jako_cokoli); + } + } + # Pokud má $j dítě napravo ode mě, skončit. + for(my $k = $i+1; $k<=$n; $k++) + { + if($anot->[$k]{rodic_vzor}==$j) + { + $j = 0; + last; + } + } + $j = $anot->[$j]{rodic_vzor}; + } while($j<$i && $j>0); + } + } + # Oprava chyby způsobené neopodstatněnými přístupy k prvkům mimo pole. + $#{$anot} = $n; +} + + + +#------------------------------------------------------------------------------ +# Projde větu a zapamatuje si rámce všech řídících uzlů. Nepokouší se oddělit +# povinná doplnění od volitelných, to se bude muset dělat až s celou statisti- +# kou najednou. +#------------------------------------------------------------------------------ +sub projit_ramce +{ + my $anot = shift; # odkaz na pole hashů + my @ramce; + # Projít závislé uzly a zapsat je do rámců jejich řídících uzlů. + for(my $i = 0; $i<=$#{$anot}; $i++) + { + my $rodic = $anot->[$i]{rodic_vzor}; + $rodic = "" if($rodic<0); # Pojistka. Dělám to takhle kvůli snaze dosáhnout statistiky identické s 013. + push(@{$ramce[$rodic]}, $anot->[$i]{mznpodstrom}); + } + # Projít nasbírané rámce a seřadit jejich členy podle abecedy. + # Tím se zajistí nezávislost rámců na slovosledu. + for(my $i = 0; $i<=$#ramce; $i++) + { + @{$ramce[$i]} = sort(@{$ramce[$i]}); + # Normalizovaný rámec ihned uložit do evidence. + my $heslo = $anot->[$i]{heslo}; + # Oddělit příčestí trpná od ostatních tvarů sloves. + $heslo .= "-trp" if($anot->[$i]{mznpodstrom} =~ m/V[S4]/); + # Členy rámce spojit vlnovkou, ta se v žádné značce nevyskytuje. + my $udalost = "RAM $heslo ".join("~", @{$ramce[$i]}); + ud($udalost); + } +} + + + +#------------------------------------------------------------------------------ +# Pokud je věta krátká, uloží celý její strom. +#------------------------------------------------------------------------------ +sub projit_kratkou_vetu +{ + my $anot = shift; #odkaz na pole hashů + # Zkontrolovat, že je věta dostatečně krátká. + if($#{$anot}>8) + { + return; + } + # Vytvořit událost: morfologický vzor a strom. + my $vzor; + my $strom; + my $i; + for($i = 1; $i<=$#{$anot}; $i++) + { + if($i>1) + { + $vzor .= "~"; + $strom .= ","; + } + $vzor .= $anot->[$i]{uznacka}; + $strom .= $anot->[$i]{rodic_vzor}; + } + # Uložit větu a její strom mezi události. + ud("VET $vzor $strom"); +} + + + +#------------------------------------------------------------------------------ +# Zapamatuje si výskyt něčeho (událost). V případě, že některý prvek události +# (např. morfologická značka řídícího uzlu) je nejednoznačný (tj. skládá se +# z více hodnot oddělených svislítkem), nahradí událost několika jednoznačnými +# událostmi a každé z nich přiřadí poměrnou část výskytu. +#------------------------------------------------------------------------------ +sub ud +{ + my $ud = shift; # událost, jejíž četnost chceme zvýšit + my $n = shift; # počet výskytů, o který chceme zvýšit četnost + my $statref = shift; # odkaz na hash, do nějž se četnosti ukládají + $n = 1 if($n eq ""); + ###!!! Tohle by ale fakt mělo být jinde!!! + # Koordinace započítat třikrát, je to jakési primitivní zvýšení jejich váhy. + if($ud =~ m/^KZZ/) + { + $n *= 3; + } + ud::ulozit($ud, $n, $statref); +} + + + +#------------------------------------------------------------------------------ +# Najde k uzlu jeho řídící uzel a vrátí jeho index. Pokud řídící uzel řídí +# koordinaci, vrátí místo něj index prvního člena této koordinace ve větě. +# Je na volajícím, aby vztah interpretoval jako koordinaci (závislý uzel má +# afun _Co), nebo jako závislost na koordinaci (závislý uzel má jiný afun). +#------------------------------------------------------------------------------ +sub zjistit_vazbu +{ + my $anot = shift; + my $z = shift; + my $r = $anot->[$z]{rodic_vzor}; + my $i; + if($anot->[$r]{afun}!~m/Coord/) + { + # Obyčejná závislost. + return $r; + } + else + { + # Koordinace nebo závislost na koordinaci. + for($i = 1; $i<=$#{$anot}; $i++) + { + if($anot->[$i]{rodic_vzor}==$r && $anot->[$i]{afun}=~m/_Co/ && $i!=$z) + { + # Ale pozor, mohla by to být další vnořená koordinace! + if($anot->[$i]{afun}=~m/Coord/) + { + $r = $i; + $i = 0; + } + else + { + return $i; + } + } + } + # Pokud z nějakého důvodu nebyl nalezen jiný člen koordinace, vrátit + # přece jenom index koordinační spojky. + return $r; + } +} + + + +#------------------------------------------------------------------------------ +# Uloží natrénované statistiky. +#------------------------------------------------------------------------------ +sub ulozit +{ + vypsat("prubeh", parse::cas()." Ukládá se statistika.\n"); + # Kvůli efektivitě se hašovací tabulka předává odkazem (volání + # ulozit(\%stat)). Ve volané funkci se na ni pak dá dostat dvěma způsoby: + # na celou tabulku najednou $%statref a na prvek $statref->{"ahoj"}. + my $statref = shift; + my @stat = keys(%$statref); + my $n = $#stat+1; + vypsat("prubeh", parse::cas()." Statistika obsahuje $n událostí.\n"); + $n = 1 if($n==0); # kvůli dělení při hlášení pokroku + for(my $i = 0; $i<=$#stat; $i++) + { + # Popis události nesmí obsahovat tabulátor, jinak by statistika nešla opět načíst. + my $ud = $stat[$i]; + $ud =~ s/&/&/g; + $ud =~ s/\t/&tab;/g; + vypsat("stat", "$ud\t$statref->{$stat[$i]}\n"); + } +} + + + +#------------------------------------------------------------------------------ +# Pro danou dvojici r-z zjistí, zda na r ještě visí jiný uzel se stejnou +# značkou jako z. +#------------------------------------------------------------------------------ +sub ma_sourozence_stejneho_druhu +{ + my $anot = shift; + my $r = shift; + my $z = shift; + for(my $i = 0; $i<=$#{$anot}; $i++) + { + if($i!=$z && $anot->[$i]{rodic_vzor}==$r && $anot->[$i]{uznacka} eq $anot->[$z]{uznacka}) + { + return 1; + } + } + return 0; +} + + + +#------------------------------------------------------------------------------ +# Vybere složku pro pomocné soubory (je různá ve Windows a v Linuxu), zkopíruje +# vstup do pomocného souboru a vrátí cestu k němu. Je to nutné, protože vstup +# čteme dvakrát za sebou, nejdřív kvůli normálnímu trénování a pak kvůli učení +# n-tic (obojí současně se nám totiž nevejde do paměti). Pokud bychom četli +# vstup ze standardního vstupu, podruhé už by tam nic nebylo. +#------------------------------------------------------------------------------ +sub zkopirovat_vstup_do_tmp +{ + my $vstup = shift; + # Jestliže existuje proměnná prostředí TEMP (bývá ve Windows), použít její + # obsah jako cestu k pomocné složce. + my $tmp; + if(exists($ENV{TEMP}) && -d $ENV{TEMP}) + { + $tmp = $ENV{TEMP}; + } + # Druhá varianta ve Windows je proměnná TMP. + elsif(exists($ENV{TMP}) && -d $ENV{TMP}) + { + $tmp = $ENV{TMP}; + } + # Pokud jsme na Linuxu na ÚFALu, měla by k těmto účelům existovat složka /mnt/h/tmp + elsif(-d "/mnt/h/tmp") + { + $tmp = "/mnt/h/tmp"; + } + # Pokud jsme na Linuxu, měla by k těmto účelům existovat složka /tmp. + elsif(-d "/tmp") + { + $tmp = "/tmp"; + } + # Pokud konfigurace definuje pracovní složku, mohlo by být dost místa a právo zápisu v ní. + elsif(exists($konfig{pracovni}) && -d $konfig{pracovni}) + { + $tmp = $konfig{pracovni}; + } + # Jinak nám nezbývá než zkusit aktuální složku. + else + { + $tmp = "."; + } + # Zkopírovat vstup do pomocné složky. Vstup známe jménem. Jestliže je to "-", jde o STDIN. + my $tmpfile = "$tmp/vstup-$$.csts"; + open(ZDROJ, $vstup) or die("Nelze číst soubor $vstup: $!\n"); + open(CIL, ">$tmpfile") or die("Nelze psát do souboru $tmpfile: $!\n"); + binmode(ZDROJ, ":raw"); + binmode(CIL, ":raw"); + while() + { + print CIL; + } + close(ZDROJ); + close(CIL); + return $tmpfile; +} diff --git a/zakazy_preskoceni.txt b/zakazy_preskoceni.txt index 1057a09..7b34bd8 100644 --- a/zakazy_preskoceni.txt +++ b/zakazy_preskoceni.txt @@ -1,199 +1,199 @@ -Vp # Z)kK -Vbt VB Rv-1 -VB VB Z- -VB N1 Vs -Vf VB NN -Vp Z.kK Z, -Vf Vp Rod-1 -VB VB N4 -Vs # N2 -Vs Vje N4 -Vbt Vp Vp -VB VB A1 -Vp N1 Vje -Vje N1 J^ -Vbudou VB Vf -Vje Je Vp -Vjsou # VB -Vs N1 N1 -Vjsou VB VB -VB N1 A1 -Vbudou # N1 -Vf VB Dvce -Vp J^ N1 -Vje VB Z, -Vje N1 J, -Vf Vp Z- -Vf VB Z. -Vbude N1 VB -Vs J^ Vje -Vi VB Z, -Vbude # Z"kK -VB VB Vje -Vp Vbyl J^ -Vf Vp Vs -Vf Vp N6 -Vf # N1 -Vf Vje N7 -Vs Vje VB -Vjsou VB J^ -Vjsou Je VB -VB N2 Vbyl -Vp VB N4 -Vf Vp Rpro-1 -Vp # Z- -Vp N1 Vs -Vp # N1 -Vjsou N1 J^ -Vf VB N6 -VB N1 N6 -VB VB N2 -Vf Vje J, -Vf N1 N1 -Vf Vje Rv-1 -Vp VB Vp -Vs Vje Vf -Vf VB N2 -Vbt Vp VB -Vs TT VB -VB Vn VB -VB N1 Vje -Vi # N4 -Vs N1 VB -Vbyl Vp J^ -Vs Vje A1 -VB J^ Z: -Vbudou Vp Vf -Vbyl # N2 -Vje N1 Vp -Vjsem Vp J^ -Vs VB Vje -Vf Jaby Z, -Vf Vp Rk-1 -Vp VB Z, -Vjsou VB N1 -Vp N1 J, -VB N2 N2 -Vp VB J, -Vs N1 J^ -Vjsem Vp Vp -Vs Vje Rs-1 -Vjsme # Z"kK -Vf Vp Dg -Vje J, VB -VB N6 VB -Vf VB Ro-1 -Vs VB VB -Vp N1 N2 -Vbyl Vp VB -Vjsou Je Z, -Vf J, Vp -Vje Vp Z, -Vf J^ Je -Vbyl VB J^ -Vbyl Vp Vp -Vf VB Jaby -Vf TT VB -Vf VB Rza-1 -Vf Vp C= -Vje N2 VB -Vje N1 VB -Vbude Vf J^ -VB J, Vp -VB VB Z, -Vf VB Vje -Vp Jaby Vp -Vf Vp Z. -Vf N1 A1 -Vje Vp VB -Vbt VB N7 -Vje Vp Vp -Vs Vp VB -VB N1 Vf -Vf Vp Jaby -Vf VB A1 -Vf VB C= -Vby Je VB -Vbyl VB Vs -Vf N2 Vp -VB N2 Vp -VB VB N1 -Vf VB Z- -Vby VB Vp -Vs # Z"kK -Vje VB VB -Vf N2 J^ -Vf VB Rk-1 -Vf VB Db -Vjsem # Z"kK -Vf VB N3 -Vs Vje Rna-1 -Vbyl Je Z, -Vbyl # Z"kK -Vby # Z"kK -Vby VB VB -Vp Vp Vp -Vs Vp Vp -Vp Vp VB -Vs Vp Z, -VB # N1 -Vf N1 Vp -Vp J, VB -Vjsme Vp J^ -VB Vp Vp -Vf Vp Vf -Vs Vje Rv-1 -Vf # N2 -VB VB Vp -Vp N1 N1 -VB N4 VB -Vbude VB Vf -Vp VB J^ -Vje Je VB -VB Je Vje -Vby Vp Vp -Vf VB Dg -Vp VB VB -VB Vp J^ -Vf VB Je -Vs Vje J^ -Vf N1 VB -VB N1 Vp -Vbyl Vp Vs -Vf Vp Vp -VB Je Vp -VB N1 N1 -Vs Vje Z, -Vf VB Rna-1 -Vp N2 Vp -Vje # Z"kK -Vf VB Vp -VB # TT -Vp Je VB -Vp N2 J^ -VB VB VB -Vf N2 VB -Vf Vp N7 -VB Vp VB -Vp N2 VB -Vs Vje N7 -Vf VB Rv-1 -Vp J, Vp -Vf # Z"kK -VB N1 J^ -VB N2 J^ -VB N2 VB -Vf VB N7 -Vf VB Vf -Vp # N2 -Vp N1 VB -VB VB J^ -Vf VB VB -Vf Vp VB -VB J, VB -VB # N2 -Vp N1 Vp -VB N1 VB -Vp # Z"kK -VB # Z"kK -Vf VB N4 +Vp # Z)kK +Vbt VB Rv-1 +VB VB Z- +VB N1 Vs +Vf VB NN +Vp Z.kK Z, +Vf Vp Rod-1 +VB VB N4 +Vs # N2 +Vs Vje N4 +Vbt Vp Vp +VB VB A1 +Vp N1 Vje +Vje N1 J^ +Vbudou VB Vf +Vje Je Vp +Vjsou # VB +Vs N1 N1 +Vjsou VB VB +VB N1 A1 +Vbudou # N1 +Vf VB Dvce +Vp J^ N1 +Vje VB Z, +Vje N1 J, +Vf Vp Z- +Vf VB Z. +Vbude N1 VB +Vs J^ Vje +Vi VB Z, +Vbude # Z"kK +VB VB Vje +Vp Vbyl J^ +Vf Vp Vs +Vf Vp N6 +Vf # N1 +Vf Vje N7 +Vs Vje VB +Vjsou VB J^ +Vjsou Je VB +VB N2 Vbyl +Vp VB N4 +Vf Vp Rpro-1 +Vp # Z- +Vp N1 Vs +Vp # N1 +Vjsou N1 J^ +Vf VB N6 +VB N1 N6 +VB VB N2 +Vf Vje J, +Vf N1 N1 +Vf Vje Rv-1 +Vp VB Vp +Vs Vje Vf +Vf VB N2 +Vbt Vp VB +Vs TT VB +VB Vn VB +VB N1 Vje +Vi # N4 +Vs N1 VB +Vbyl Vp J^ +Vs Vje A1 +VB J^ Z: +Vbudou Vp Vf +Vbyl # N2 +Vje N1 Vp +Vjsem Vp J^ +Vs VB Vje +Vf Jaby Z, +Vf Vp Rk-1 +Vp VB Z, +Vjsou VB N1 +Vp N1 J, +VB N2 N2 +Vp VB J, +Vs N1 J^ +Vjsem Vp Vp +Vs Vje Rs-1 +Vjsme # Z"kK +Vf Vp Dg +Vje J, VB +VB N6 VB +Vf VB Ro-1 +Vs VB VB +Vp N1 N2 +Vbyl Vp VB +Vjsou Je Z, +Vf J, Vp +Vje Vp Z, +Vf J^ Je +Vbyl VB J^ +Vbyl Vp Vp +Vf VB Jaby +Vf TT VB +Vf VB Rza-1 +Vf Vp C= +Vje N2 VB +Vje N1 VB +Vbude Vf J^ +VB J, Vp +VB VB Z, +Vf VB Vje +Vp Jaby Vp +Vf Vp Z. +Vf N1 A1 +Vje Vp VB +Vbt VB N7 +Vje Vp Vp +Vs Vp VB +VB N1 Vf +Vf Vp Jaby +Vf VB A1 +Vf VB C= +Vby Je VB +Vbyl VB Vs +Vf N2 Vp +VB N2 Vp +VB VB N1 +Vf VB Z- +Vby VB Vp +Vs # Z"kK +Vje VB VB +Vf N2 J^ +Vf VB Rk-1 +Vf VB Db +Vjsem # Z"kK +Vf VB N3 +Vs Vje Rna-1 +Vbyl Je Z, +Vbyl # Z"kK +Vby # Z"kK +Vby VB VB +Vp Vp Vp +Vs Vp Vp +Vp Vp VB +Vs Vp Z, +VB # N1 +Vf N1 Vp +Vp J, VB +Vjsme Vp J^ +VB Vp Vp +Vf Vp Vf +Vs Vje Rv-1 +Vf # N2 +VB VB Vp +Vp N1 N1 +VB N4 VB +Vbude VB Vf +Vp VB J^ +Vje Je VB +VB Je Vje +Vby Vp Vp +Vf VB Dg +Vp VB VB +VB Vp J^ +Vf VB Je +Vs Vje J^ +Vf N1 VB +VB N1 Vp +Vbyl Vp Vs +Vf Vp Vp +VB Je Vp +VB N1 N1 +Vs Vje Z, +Vf VB Rna-1 +Vp N2 Vp +Vje # Z"kK +Vf VB Vp +VB # TT +Vp Je VB +Vp N2 J^ +VB VB VB +Vf N2 VB +Vf Vp N7 +VB Vp VB +Vp N2 VB +Vs Vje N7 +Vf VB Rv-1 +Vp J, Vp +Vf # Z"kK +VB N1 J^ +VB N2 J^ +VB N2 VB +Vf VB N7 +Vf VB Vf +Vp # N2 +Vp N1 VB +VB VB J^ +Vf VB VB +Vf Vp VB +VB J, VB +VB # N2 +Vp N1 Vp +VB N1 VB +Vp # Z"kK +VB # Z"kK +Vf VB N4 diff --git a/zaznam.txt b/zaznam.txt index 63968e1..b4947d0 100644 --- a/zaznam.txt +++ b/zaznam.txt @@ -1,5967 +1,5967 @@ - -******************************************************************************* -Perlov parser - zznam pokus -******************************************************************************* - - - -16.1.2002 - -Zkoproval jsem si st "am" z PDT verze 1. Tuto st budu nyn -pouvat pro trnovn. Obsahuje 83197 vt. Morfologick anotace je -provedena statisticky, morfologick analza chyb, ale d se snad -doplnit. Syntaktick anotace je run. - - - -17.1.2002 - -Prvn men na novch trnovacch datech, jet vak se starmi -(baltimorskmi) testovacmi daty. Nov model je zatm vhradn -lexikln (tj. funguje na slovnch tvarech) a nebere v vahu -zvislosti, kter byly pi trninku vidt jenom jednou (tj. co bylo -vidt jednou, jako by nebylo vidt vbec - et se tm pam a as). -Model tak zatm nem dn finesy, kter jsem dve doploval do -modelu na znakch, s vjimkou projektivity. Chyb tedy podprn model -pro plodnost slova, smr zvislosti i vzdlenost len -zvislosti. Tak chyb Viterbi, tj. strom se buduje hladovou (ale -komponentovou) metodou. - -G 28685 - B 35019 - P 45,0 - -Pidn smr hrany. - -G 26955 - B 36749 - P 42,3 - -Ponechny i zznamy o hranch spatench jen jednou. - -G 43000 - B 20704 - P 67,5 - -Pidna "vzdlenost" (sousedn = B, blzko; nesousedn = D, daleko). - -G 44671 - B 19033 - P 70,1 - -Pechod na testovac data z PDT1 (lu, lv, lw). spnost klesla skoro -na polovinu, co je dost zarejc, mon je chyba ve vyhodnocovn -(nebo byla ped chvl). - -G 49157 - B 77450 - P 38,8 - - - -18.1.2002 - -Po nalezen a odstrann chyby ve skriptu se spnost vrtila u jen -na 42 %. Zvratn vsledky u starch dat byly zejm zpsobeny tm, e -star testovac data jsou nyn soust novch trnovacch. - -G 53217 - B 73390 - P 42,0 - -Z trnovacch i testovacch dat odstranna velk psmena, zbyten -tpila statistiky. - -G 54027 - B 72580 - P 42,7 - -Jet jeden pokus zahodit zvislosti, kter byly vidt jenom jednou. - -G 50365 - B 76242 - P 39,8 - -Vrceny zvislosti vidn jen jednou, pidn model pro plodnost uzlu. - -G 54421 - B 72186 - P 43,0 - -Odstranna chyba, e nkter vty obsahovaly slovo "konec -dku". spnost klesla, protoe chyba umle pidvala neexistujc -vty, kter se nedaly zkazit. - -G 53982 - B 72046 - P 42,8 - -Pokus s modelem na znakch (od taggeru). Zatm neredukovan sada -znaek a bez Viterbiho, take pokud se vsledky podobaj tm z -Baltimoru, je to komponentovm budovnm stromu a zejmna vtm -objemem trnovacch dat a snadnji analyzovatelnmi testovacmi daty. - -G 71535 - B 54493 - P 56,8 - -Redukovan znaky: to snad ani za tu nmahu nestoj! e by zase bug? - -G 71622 - B 54406 - P 56,8 - -Znaky redukovan podle Collinse: u znaek, kter maj pd (N, A, P, C -a R), slovn druh a pd, u ostatnch slovn druh a poddruh. - -G 72207 - B 53821 - P 57,3 - -Po naten statistik pro slova i znaky spnost kupodivu mrn -stoupla, by se ve statistikch nadle hledaly jen znaky. Mon -proto, e nkter slova jsou shodn s nktermi znakami a nhodou to -vylo? - -G 72364 - B 53664 - P 57,4 - - - -Prvn kombinace modelu na slovech s modelem na znakch! Znakov -model se pouije tehdy, kdy slovn doporuuje zvislost, kterou nikdy -nevidl. Jinak se d vdy pednost slovnmu modelu. - -G 71445 - B 54583 - P 56,7 - -Pi nahrazovn slovnch hran, kter byly vidt nejve jednou: - -G 72593 - B 53435 - P 57,6 - -Pi nahrazovn slovnch hran, kter byly vidt nejve dvakrt: - -G 72327 - B 53701 - P 57,4 - - - -------------------------------------------------------------------------------- -Rokytnice nad Jizerou -Pozor, tento tden pokusy nejsou na stejnch trnovacch ani -testovacch datech, protoe je dlm na notebooku a ten neuthne -pli velk data. Ani bhem toho tdne nejsou bohuel data pod -stejn. - - - -21.1.2002 - -V nsledujcch testech se pednostn pouvaly statistiky na slovech, -pokud byla etnost 0, 1 nebo 2, pouila se msto toho statistika na -znakch. Pokud se tedy dle mluv o etnosti, je to bu etnost na -slovech, nebo na znakch, podle toho, jak se vpoet odvjel. -924 slov celkem -Pi pouit vech hran bez ohledu na etnost: -G 605 - B 319 - UG 0 - UB 0 - P 65,5 % - R 65,5 % -Pi vynechn hran s etnost 0: -G 582 - B 279 - UG 23 - UB 40 - P 67,6 % - R 63,0 % -Pi vynechn hran s etnost men ne 2: -G 439 - B 168 - UG 166 - UB 151 - P 72,3 % - R 47,5 % -Pi vynechn hran s etnost men ne 3: -G 354 - B 112 - UG 251 - UB 207 - P 76,0 % - R 38,3 % -Pi vynechn hran s etnost men ne 4: -G 283 - B 68 - UG 322 - UB 251 - P 80,6 % - R 30,6 % -Pi vynechn hran s etnost men ne 5: -G 244 - B 59 - UG 361 - UB 260 - P 80,5 % - R 26,4 % - - - -22.1.2002 - -Nevynechvaj se dn slova. V kolech, ve kterch vyhrla zvislost se -slovn pravdpodobnost men ne 5, se hledn opakuje s pouitm -pravdpodobnosti sloen ze slovn a znakov pravdpodobnosti, piem -ob maj stejnou vhu 0,5. - -G 692 - B 232 - P 74,9 - -Dotaz: Najt ppady, kdy na zklad slovn pravdpodobnosti vyhrla -patn zvislost, ale s pouitm pravdpodobnosti na dvojicch (heslo, -znaka) by vyhrla sprvn zvislost. - -K tomu je nutn natrnovat model na dvojicch (heslo, znaka). Jsou dv -monosti, jak takov model definovat ale jen ta druh m smysl; ta prvn -je tm ekvivalentn modelu na slovech: - -P = P((heslo1, znaka1) - (heslo2, znaka2)) = P(slovo1 - slovo2) -nebo -P = P(heslo1 - heslo2) * P(znaka1 - znaka2) - - - -23.1.2002 - -Pepsny kusy train.pl i parse.pl, aby se oba programy daly roziovat -o rzn modely. Nyn je poteba je vyladit, protoe kvli njakm chybm -spnost zase hluboko klesla. - -1. Model slovnch, heslovch a znakovch zvislost petrnovn na balku -Lidovch novin. 865 soubor, 45091 vt, 698671 slov (bez koen). Klin -notebook trnuje rychlost zhruba 1000 vt za 50 vtein (zpotku). Ale -limit, ne notebook upadne do nekonenho swapovn, je asi 6000 vt. -Nakonec vzat vsledek trnovn podle prvnch 5000 vt. Nalezeno 57036 -rznch zvislost slov, 51328 rznch zvislost hesel a 2681 rznch -zvislost znaek. - - - -24.1.2002 - -Zanm testovat vera natrnovan model. Testovac data velk a mal -(kvli rychlosti). Mal data: lu02.a (53 vt, 924 slov bez koen). -Velk data: test.a = setzen lu02.a a lu05.a (216 v, 3540 slov bez -koen). - -Samotn model zvislost znaek bez modelu plodnosti. Vsledky v prvnm -dku plat pi pouit vech hran vetn tch, kter nebyly v trnovacch -datech vidt nikdy (tj. ir odhad). daje ve druhm dku takov zvislosti -vynechvaj. - -G 510 - B 414 - P 55,2 -G 488 - B 385 - P 55,9 - R 52,8 - -Model zvislost znaek vetn plodnosti (ale bez zvislost slov). - -G 519 - B 405 - P 56,2 -G 499 - B 375 - P 57,1 - R 54,0 - -Model zvislost slov bez plodnosti. Tch 53 vt trv na Klin notebooku -11 minut, z toho 5 minut natn statistik! - -G 315 - B 609 - P 34,1 -G 174 - B 228 - P 43,3 - R 18,8 - -Tot, ale s plodnost. - -G 313 - B 611 - P 33,9 -G 173 - B 229 - P 43,0 - R 18,7 - -Kombinace slovnho a znakovho modelu. Slovn zvislosti vidn alespo -ptkrt se pouij bez ohledu na plodnost. Jinak se zkombinuj se znakovmi -pl na pl (je u nutn normalizovat etnosti, aby se z nich staly pravdpodobnosti, -ale dv jsem to nedlal a fungovalo to, tak radji vyzkoume oboj). -Celkov etnost se nsob znakovou plodnost, dn slovn plodnost se -nevyuv. - -G 524 - B 400 - P 56,7 -G 515 - B 379 - P 57,6 - R 55,7 - -Druh pokus: od pedchozho se li pouze tm, e absolutn etnosti jsou -pevedeny na relativn, tj. na pravdpodobnosti. - -G 524 - B 400 - P 56,7 -G 515 - B 379 - P 57,6 - R 55,7 - -Jet jeden npad: Nekombinovat slova a znaky pl na pl, ale v opanm -pomru, ne v jakm jsou jejich prmrn etnosti - aby se slova mla -vbec anci prosadit. Nebo v pomru "kolik je rznch zvislost slov" -proti "kolik je rznch znaek". - -G 525 - B 399 - P 56,8 -G 516 - B 378 - P 57,7 - R 55,8 - - - -------------------------------------------------------------------------------- -Praha -Zptky z Rokytnice nad Jizerou, nejdv se pokusm pesn zopakovat -vsledky z Rokytnice (na stejnch datech). - - - -30.1.2002 - -Stejn trnovac i testovac data jako v Rokytnici, stejn vsledky - -to se mi ulevilo. - -G 525 - B 399 - P 56,8 -G 516 - B 378 - P 57,7 - R 55,8 - -Tohle je bez vyhlazen plodnosti a na rokytnickch trnovacch datech -(prvnch 5000 vt z Lidovch novin), ale na kompletnch testovacch -datech (sam Lidov noviny). - -G 72227 - B 53801 - P 57,3 -G 69951 - B 51605 - P 57,5 - R 55,5 - -A te jet opan pokus: rokytnick testovac data (tj. pouze -lu02.a), ale vechna trnovac data (pes 80000 vt). - -G 546 - B 378 - P 59,1 -G 542 - B 367 - P 59,6 - R 58,7 - -Na zvr dne: rokytnick programy, ale kompletn trnovac i testovac -data z PDT 1. - -G 72749 - B 53279 - P 57,7 -G 71792 - B 52300 - P 57,9 - R 57,0 - - - -31.1.2002 - -Vyhlazen plodnosti. Pokud c(uzel)<5, d se msto vech nulovch plodnost -mal slo, kter je men ne nejmen skuten plodnost danho uzlu, celek -se pak normalizuje na souet 1. U uzl, kter byly vidt astji, se nuly -ponechvaj, protoe se povauj za dostaten prokzan. Pseudokd pro -dce pozorovan uzly: -fmin = min(f(uzel, i), i); -n0 = count(f(uzel, i)==0); -foreach i where f(uzel, i)==0 {f(uzel, i) = 0.5*fmin/n0;} -for i = 0 to 3 {f(uzel, i) /= (1+0.5*fmin);} - -G 72749 - B 53279 - P 57,7 -G 71792 - B 52300 - P 57,9 - R 57,0 - -To je dost divn, e by tato zmna neudlala s vsledky vbec nic? -Nejsp je to tm, e momentln pouvm jen znakovou plodnost a tam -se asi nuly pli nevyskytuj. - -Zkusme se tedy jet vrtit ke slovn plodnosti, te u -vyhlazen. Celkov plodnost bude souin slovn a znakov plodnosti. - -G 72510 - B 53518 - P 57,5 -G 72095 - B 53024 - P 57,6 - R 57,2 - -Pokus: adaptivn analza. Po vbru zvislosti se tato pid do -statistiky a od pt se me pout, jako by byla vidna v -trnovacch datech. - -G 71304 - B 54724 - P 56,6 -G 71299 - B 54702 - P 56,6 - R 56,6 - -Je to zhoren, take se vrtme k pvodnmu stavu. Chyb pi analze -je jet pli mnoho, ne aby bylo dobr se z analzy nco uit. - - - -1.2.2002 - -Opt zruit adaptivn analzu a taky slovn plodnost. - -Pokus o demagnetizaci souadcch spojek. Pokud se to poda, bude -jet poteba demagnetizovat dvojk v koeni, rky (funguj jako -spojky) a mon i nco dalho. - -Prvn zpsob demagnetizace: spojka a posledn len koordinace se -prohod, ostatn leny koordinace a rky tedy zvisej na poslednm -lenu. Testovn je zatm tm mn estnm zpsobem, tj. koordinace ve -vzorov analze se transformuj podobn jako se transformovaly v -trnovacch datech. estnj by bylo provst inverzn transformaci -nalezen analzy a vsledek porovnat s netransformovanou vzorovou -analzou. Me se toti stt, e transformace njakou informaci -ztrat, a pak oba postupy nebudou ekvivalentn. - -I tak je ovem vsledek katastrofln. Z m neznmch pin -transformace koordinac mimodn zvily pitalivost koen vt. - -G 40659 - B 85369 - P 32,3 -G 40656 - B 85353 - P 32,3 - R 32,3 - -Byla njak bota v plodnosti. Zatm plodnost odstavena pln, ale -lep vsledky asi budou, a chybu odstranme a plodnost znovu -pouijeme. - -G 75578 - B 50450 - P 60,0 -G 75577 - B 50441 - P 60,0 - R 60,0 - - - -7.2.2002 - -Odstranna chyba v plodnosti. Bohuel se ukazuje, e ani tak nen -plodnost v tomto tvaru pnosem. - -G 73320 - B 52708 - P 58,2 -G 72823 - B 52255 - P 58,2 - R 57,8 - -Plodnost tedy vyazena z innosti. Pro kontrolu jet jednou test, ml -by mt stejn vsledky jako posledn test z 1. nora, ale nen tomu -tak. Ve zmnn chyba (zpsoben mimochodem u pi trnovn, kdy se -dvojk z koene nahrazoval przdnm etzcem) mla zejm pi -vynechn plodnosti blahodrn inky. Nicmn i tohle je zlepen -oproti pvodnm koordinacm o 0,6 %. - -G 73427 - B 52601 - P 58,3 -G 72985 - B 52059 - P 58,4 - R 57,9 - -Druh zpsob demagnetizace koordinanch spojek. Koenem podstromu je -posledn len koordinace, na kadm lenu koordinace vdy vis -pedchzejc len a rka nebo spojka, kter ho od pedchzejcho -lenu oddluje. - -G 74611 - B 51417 - P 59,2 -G 74168 - B 50887 - P 59,3 - R 58,9 - -Tet zpsob demagnetizace koordinanch spojek. Koenem podstromu je -posledn len koordinace, na nm vis koordinan spojka, na n -pedchzejc len koordinace, na nm pop. rka, pak dal len atd. ---- -Objevena chyba v transformacch koordinac. Po oprav chyby nov -pokusy. - -Prvn zpsob (pouze vmna koene): - -G 73943 - B 52085 - P 58,7 -G 73464 - B 51538 - P 58,8 - R 58,3 - -Druh zpsob (binrn stromeek): - -G 74398 - B 51630 - P 59,0 -G 73919 - B 51084 - P 59,1 - R 58,7 - -Tet zpsob (etzek): - -G 73059 - B 52969 - P 58,0 -G 72681 - B 52474 - P 58,1 - R 57,7 - - - -8.2.2002 - -Velmi asto se chybuje v tece za vtou. Dostane se na adu a pli -pozd, take po n dve ne koen hmtne njak slovo vty. Dv mon -een. Prvn: je-li na konci vty interpunkce, hned na zatku ji -povsit pod koen. Druh - statisticky ist, ale pedpokldm men -spnost: do povolench hran pidat hranu z koene do poslednho -dosud nezavenho slova vty - vzhledem k tomu, e nepovolujeme -zavsit koen pod nco jinho, projektivita se tm neporu. Mon, e -dokonce meme povolit hranu z koene kamkoliv, ale tm si nejsem -jist. Zatm zkusm nejjednodu cestu, tj. prvn een. - -G 78156 - B 47872 - P 62,0 -G 77975 - B 47735 - P 62,0 - R 61,9 - -Dal problm je se sloenmi pedlokami (nap. "v oboru"). I na n -zavedeme transformaci a budeme je testovat "neestnm zpsobem", -tj. tut transformaci provedeme s testovacmi daty, msto abychom -inverzn transformaci provdli s vsledkem analzy. Vsledkem je -kupodivu zhoren. Radji tuto transformaci zrume. - -G 77619 - B 48409 - P 61,6 -G 77440 - B 48283 - P 61,6 - R 61,4 - -Upravena Mikova redukce znaek. U interpunkce pidno jako druh znak -znamnko samo. - -G 79364 - B 46664 - P 63,0 -G 79153 - B 46359 - P 63,0 - R 62,8 - -Roztpena statistika o zvislostech na koeni. Msto na smr (kter -je od koene vdy doprava) se ptme, zda vta obsahuje nebo neobsahuje -sloveso. Pokud ho toti obsahuje, vis na koeni obvykle ono, -poppad f koordinace, jeho je lenem, ale ne jin slovn druhy. - -G 79572 - B 46456 - P 63,1 -G 78634 - B 44988 - P 63,6 - R 62,4 - -Neekanm dsledkem je velmi ast chybn pipojen slovesa na -koncovou interpunkci msto na koen. Proto jet rozme pravu sady -znaek: pokud jde o posledn prvek vty, pipoj se na konec znaky -"K", cel znaka tedy bude nap. "Z.K". - -G 81727 - B 44301 - P 64,8 -G 78618 - B 40262 - P 66,1 - R 62,4 - -spnost sice stoupla, ale na pkladech chybnch vt je vidt, e -v mstech, kvli kterm jsem k poslednmu opaten shl, se toto -minulo inkem. Bude nutn jet tot co se znakou provst s heslem -a se slovem. - -G 81901 - B 44127 - P 65,0 -G 78624 - B 40100 - P 66,2 - R 62,4 - -Navzdory v snaze ukzky chyb i nadle ukazuj adu zvislost vedoucch -koncov interpunkce dol, take bychom je mon mohli zakzat natvrdo. Efekt -ale zpotku asi nebude velk, protoe ve stejnm souboru chyb je vidt, e -koen podstromu pod interpunkc je stejn njak nesmysl, kter koenem bt -nem, take zavenm celho podstromu jinam se chyba neodstran. Asi je -nejvy as vrtit Viterbiho. - - - -9.2.2002 - -Intermezzo - pokusy doma na mench trnovacch i testovacch datech! Ke -trnovn pouity soubory zanajc na "c1", k testovn pouze soubor "l02.a". -Testujeme algoritmus Viterbiho, take nm zmizelo prbn sledovn, co by se -stalo, kdybychom vynechvali zvislosti s nulovou etnost. (Stejn u se to -del dobu moc neli.) Nicmn zatm testujeme jen funknost, take ka -Viterbiho je nastavena na 1. Vsledek by tedy ml bt stejn jako dve, co -jet pro jistotu ovme pozdji na fakult. POZOR (do pednky)! Viterbi -vyaduje alespo primitivn vyhlazen, nuly ho dokou pln zniit! - -G 629 - B 383 - P 62,2 - T 0:20 s - - - -10.2.2002 - -Ale tot starm programem dv jin vsledky! - -G 590 - B 334 - P 63,9 - T 0:16 s -G 569 - B 301 - P 65,4 - R 61,6 - -U Viterbiho vychz celkem 1012 zvislost, v pvodn procedue 924 (co je -slo, se kterm se setkvm u dlouho, take mu vm sp). - -Pestvm porovnvat koen (to jsou sam chyby), stejn ale nedostvm souet, -jak m bt. spnost je ovem te zas lep ne pvodn. - -G 629 - B 335 - P 65,2 - -Objevena dal chyba - zaven koncov interpunkce se zapotvalo dvakrt. -Nyn u vsledky Viterbi(1) vypadaj stejn jako vsledky pvodn procedury: - -G 590 - B 334 - P 63,9 - -Viterbi(2) - -G 563 - B 361 - P 60,9 - -Viterbi(2) se zapotnm obou nejlepch strom: - -G 1091 - B 694 - P 61,1 - -Objevena dal chyba - koen neml znaku #, nbr przdn etzec. Oprava ale -vsledky vylepit nedokzala. - -G 590 - B 334 - P 63,9 - -Objevena dal chyba - hrany se dlily podle smru i u koene, pestoe tam je -smr vdy doprava a msto smru se mlo sledovat, zda vta obsahuje sloveso. - -G 595 - B 329 - P 64,4 -G 594 - B 325 - P 64,6 - R 64,3 - -Tot s viterbim(2), zapotvaj se oba nejlep stromy: - -G 826 - B 501 - P 62,2 - -A te se asi definitivn vrtme k analze bez Viterbiho (resp. k Viterbimu -s paprskem ky 1). Nicmn budeme nadle pracovat s programem, kter -Viterbiho na podn umouje. Star program od tto chvle pestvm -aktualizovat. - -G 595 - B 329 - P 64,4 - -U znakovho modelu nyn k pedlokm msto pdu dvm pmo pedloku samu. -Brnm se tm zbytenm chybm zpsobenm mylnm vstupem Honzova taggeru. - -G 596 - B 328 - P 64,5 - -Do vzdlenosti pidn tet stav. Krom B (blzko, tj. sousedi) a D (daleko, -tj. nesousedi) jet zvltn druh D, oznaen rkou (",") a znamenajc, e -mezi dotynmi se vyskytla rka. Prvn vsledky jsem podil omylem - model -byl u natrnovn se temi stavy, ale pouit stle jen se dvma. Jsem zvdav, -jestli po oprav dojde k dalmu zlepen, nebo naopak ke zhoren... - -G 611 - B 313 - P 66,1 - -Po oprav skuten trochu ztrcm, natst ne a na pvodn rove: - -G 607 - B 317 - P 65,7 - -Model vzdlenosti jet rozen, nyn je evidovn i poet rek, kter se mezi -uzly vmstnaly. Tm by se mohly spravit vcelenn koordinace. - -G 612 - B 312 - P 66,2 - - - -11.2.2002 - -Peneseno zptky na fakultu. Natrnovno opt na 83000 vt, testovno -na 7319 vtch. Jinak vnitn shodn. Vsledky jsou mrnm zlepenm -oproti stavu na fakult v ptek veer, ale zhorenm oproti stavu -vera veer doma. - -G 82312 - B 43818 - P 65,3 - T 5:28 - -Pro jistotu zkusme jet jednou Viterbiho. dn pekvapen se -bohuel nekon :-( - -G 93253 - B 51820 - P 64,3 - T 25:32 - -Pokusil jsem se, aby se stejn jako u analzy ani u trninku u -nevynechvala posledn vta. Protoe jsem vak pidal podmnku, e se -zpracovvaj jen neprzdn vty, celkov poet ve skutenosti klesl, a -to o dost: na 73088. Trnovn trvalo nco pes 2:49 minuty. Poet -testovacch vt zstv 7319. - -G 82312 - B 43818 - P 65,3 - -Do znaky pro podstatn jmno jsem pidal daj, zda jde o kestn -jmno osoby (s dvojic kestn jmno - pjmen se zachz jinak ne s -jinou podobnou dvojic podstatnch jmen a bvaj v tom chyby - snad -tato evidence pome)... - -G 82948 - B 43257 - P 65,7 - -Mal statistika navc: -34717 ppad rozhodoval pouze znakov model (slovn p=0). - To je 27,5 % ze 126205 celkem rozhodovanch slov. - Tyto ppady dopadly G 20681 - B 14036 - P 59,6. -100 % sprvnch vt bylo 867, tj. asi 11,8 %. - Nejdel z nich mla 18 (!) slov. - Prmrn takov vty mly 4 slova. - Prmrn dlka testovac vty je pitom 17 slov. - Mon by bylo zajmav odvodit statistiku, kter by krom - spnosti na zvislostech tak mila, jak tk bylo tto - spnosti doshnout - na vtch o 1 slovu to bylo jednoduch, - na vtch o 100 slovech je i 50 % velk spch - mon vt, - ne odpovd 50 zavenm slovm? - - - -Prvn pokus s modelem zvislost hesel. Samostatn testujeme model -"hesla*znacky", tj. pravdpodobnost, e se souasn vyskytla dan -zvislost mezi hesly a dan zvislost mezi znakami. (To nen tot -jako pravdpodobnost, e se vyskytla zvislost, jej dc uzel m -souasn dan heslo1 a znaku1 a zvisl uzel m souasn dan heslo2 -a znaku2. Tato druh monost je tm ekvivalentn modelu zvislost -slov, zatmco prvn monost je mn specificky parametrizovna. - -"slova" -A 126030 - G 54684 - B 71346 - P 43,4 (vse) -A 40496 - G 22634 - B 17862 - P 55,9 (>=5) -A 29997 - G 15635 - B 14362 - P 52,1 (>=1) -A 55537 - G 16415 - B 39122 - P 29,6 (==0) - -"hesla" -A 126030 - G 46360 - B 79670 - P 36,8 (vse) -A 44601 - G 20362 - B 24239 - P 45,7 (>=5) -A 21059 - G 8002 - B 13057 - P 38,0 (>=1) -A 60370 - G 17996 - B 42374 - P 29,8 (==0) - -"znacky" -A 126030 - G 85215 - B 40815 - P 67,6 (vse) <== NEJLEPSI!!! -A 119222 - G 78586 - B 40636 - P 65,9 (>=5) -A 210 - G 79 - B 131 - P 37,6 (>=1) -A 6598 - G 6550 - B 48 - P 99,3 (==0) - ze by tohle byly Z.K? - -"0.5*slova+0.5*znacky" (resp. "$ls*slova+$lz*znacky") -A 126030 - G 84264 - B 41766 - P 66,9 (vse) -A 111976 - G 74632 - B 37344 - P 66,6 (>=5) -A 7444 - G 3081 - B 4363 - P 41,4 (>=1) -A 6610 - G 6551 - B 59 - P 99,1 (==0) - -pro >=5 "slova", jinak "0.5*slova+0.5*znacky" -A 126030 - G 82487 - B 43543 - P 65,5 (vse) -A 111734 - G 72799 - B 38935 - P 65,2 (>=5) -A 7680 - G 3135 - B 4545 - P 40,8 (>=1) -A 6616 - G 6553 - B 63 - P 99,0 (==0) - -pro >=15 "slova", jinak "0.5*slova+0.5*znacky" -A 126030 - G 84089 - B 41941 - P 66,7 (vse) -A 119175 - G 77448 - B 41727 - P 65,0 (>=5) -A 244 - G 89 - B 155 - P 36,5 (>=1) -A 6611 - G 6552 - B 59 - P 99,1 (==0) - -"hesla*znacky" -A 126030 - G 47558 - B 78472 - P 37,7 (vse) -A 63766 - G 29378 - B 34388 - P 46,1 (>=5) -A 1289 - G 39 - B 1250 - P 3,0 (>=1) -A 60975 - G 18141 - B 42834 - P 29,8 (==0) - -"slovo-znacka" -A 126030 - G 46213 - B 79817 - P 36,7 (vse) -A 109476 - G 37433 - B 72043 - P 34,2 (>=5) -A 8915 - G 2083 - B 6832 - P 23,4 (>=1) -A 7639 - G 6697 - B 942 - P 87,7 (==0) - -"heslo-znacka" -A 126030 - G 44212 - B 81818 - P 35,1 (vse) -A 111258 - G 36476 - B 74782 - P 32,8 (>=5) -A 7092 - G 1044 - B 6048 - P 14,7 (>=1) -A 7680 - G 6692 - B 988 - P 87,1 (==0) - -"(heslo-znacka)*znacky" -A 126030 - G 54773 - B 71257 - P 43,5 (vse) -A 21132 - G 14391 - B 6741 - P 68,1 (>=5) -A 97168 - G 33680 - B 63488 - P 34,7 (>=1) -A 7730 - G 6702 - B 1028 - P 86,7 (==0) - -pro >=5 "(heslo-znacka)*znacky", jinak "znacky" -A 126030 - G 85101 - B 40929 - P 67,5 (vse) -A 119222 - G 78472 - B 40750 - P 65,8 (>=5) -A 210 - G 79 - B 131 - P 37,6 (>=1) -A 6598 - G 6550 - B 48 - P 99,3 (==0) - - - -12.2.2002 - -Hledme nejlep vyven model "slova" a "znaky". -"ls*slova+lz*znacky" - -ls=0 -A 126030 - G 85215 - B 40815 - P 67,6 (vse) -A 119222 - G 78586 - B 40636 - P 65,9 (>=5) -A 210 - G 79 - B 131 - P 37,6 (>=1) -A 6598 - G 6550 - B 48 - P 99,3 (==0) - -ls=0,25 -A 126030 - G 85150 - B 40880 - P 67,6 (vse) -A 119151 - G 78493 - B 40658 - P 65,9 (>=5) -A 281 - G 107 - B 174 - P 38,1 (>=1) -A 6598 - G 6550 - B 48 - P 99,3 (==0) - -ls=0,5 -A 126030 - G 85262 - B 40768 - P 67,7 (vse) -A 119052 - G 78569 - B 40483 - P 66,0 (>=5) -A 376 - G 143 - B 233 - P 38,0 (>=1) -A 6602 - G 6550 - B 52 - P 99,2 (==0) - -ls=0,5625 -A 126030 - G 85265 - B 40765 - P 67,7 (vse) -A 118953 - G 78540 - B 40413 - P 66,0 (>=5) -A 475 - G 175 - B 300 - P 36,8 (>=1) -A 6602 - G 6550 - B 52 - P 99,2 (==0) - -ls=0,625 -A 126030 - G 85292 - B 40738 - P 67,7 (vse) -A 118863 - G 78536 - B 40327 - P 66,1 (>=5) -A 564 - G 206 - B 358 - P 36,5 (>=1) -A 6603 - G 6550 - B 53 - P 99,2 (==0) - -ls=0,6875 -A 126030 - G 85304 - B 40726 - P 67,7 (vse) -A 118807 - G 78520 - B 40287 - P 66,1 (>=5) -A 620 - G 234 - B 386 - P 37,7 (>=1) -A 6603 - G 6550 - B 53 - P 99,2 (==0) - -ls=0,71875 -A 126030 - G 85339 - B 40691 - P 67,7 (vse) -A 118755 - G 78537 - B 40218 - P 66,1 (>=5) -A 672 - G 252 - B 420 - P 37,5 (>=1) -A 6603 - G 6550 - B 53 - P 99,2 (==0) - -ls=0,734375 -A 126030 - G 85355 - B 40675 - P 67,7 (vse) <== NEJLEP! -A 118699 - G 78542 - B 40157 - P 66,2 (>=5) -A 728 - G 263 - B 465 - P 36,1 (>=1) -A 6603 - G 6550 - B 53 - P 99,2 (==0) - -ls=0,7421875 -A 126030 - G 85205 - B 40825 - P 67,6 (vse) -A 118675 - G 78383 - B 40292 - P 66,0 (>=5) -A 752 - G 272 - B 480 - P 36,2 (>=1) -A 6603 - G 6550 - B 53 - P 99,2 (==0) - -ls=0,75 -A 126030 - G 85222 - B 40808 - P 67,6 (vse) -A 118666 - G 78399 - B 40267 - P 66,1 (>=5) -A 759 - G 273 - B 486 - P 36,0 (>=1) -A 6605 - G 6550 - B 55 - P 99,2 (==0) - -ls=1 -A 126030 - G 54684 - B 71346 - P 43,4 (vse) -A 40496 - G 22634 - B 17862 - P 55,9 (>=5) -A 29997 - G 15635 - B 14362 - P 52,1 (>=1) -A 55537 - G 16415 - B 39122 - P 29,6 (==0) - -Prvn piblen k pouit valence a souasn k pouit -trigram. Pravdpodobnost zvislosti nov parametrizovna otzkou, zda -u ekvivalentn zvisl uzel pod tmt dcm uzlem -vis. Ekvivalentn je takov uzel, kter m stejnou morfologickou -znaku (resp. ty dva znaky, kter nm z n zbyly). - -G 84960 - B 41070 - P 67,4 - -Zhoren. Zkusme zjemnit definici ekvivalentnch sourozenc. Pokud -maj oba pd, musej ho mt stejn; jinak musej mt stejn prvn -psmeno znaky. - - - -12.2.2002 veer doma - -Opakovn poslednho testu, ale na domcch trnovacch a testovacch datech. - -G 623 - B 301 - P 67,4 - -Pokus: z testovacch dat vynechny vty, kter obsahuj alespo jednu zvislost -typu ExD. Pokus je inspirovn Carrollem et al. (1998), kter do testovn -experimentu se subkategorizanmi pravdpodobnostmi pi parsingu zahrnul pouze -vty pokryt svou gramatikou (tj. vty, ke kterm gramatika najde alespo jednu -analzu) s odvodnnm, e zbytek stejn obsahuje eliptick jmenn vty, -fragmenty dialog a podobn podivnosti, kter se stejn nesna pokrt. - -G 449 - B 215 - P 67,6 - -Dotaen pokusu do konce: dotyn vty byly vynechny i pi trninku. Msto asi -1900 vt se trnovac mnoina scvrkla jen na 1246 vt. - -G 446 - B 218 - P 67,2 - -Od diskriminace vt s ExD tedy zase ustupuji. Ustupuji tak od parametrizace -pravdpodobnost podle dvojat, protoe to spnost nezvedlo a chyby, ktermi -to bylo motivovno, se vyskytuj vesele dl. Mme tedy opt 1983 trnovacch -vt a 924 testovacch zvislost. - -G 608 - B 316 - P 65,8 - -Pozor! Take spnost na domcch datech je vrazn hor! V tomto svtle -pestv bt pln jist, e od vc, od kterch jsem prv ustoupil, jsem -opravdu ustupovat ml. I kdy jist nen ani opak, statistick prkaznost -domcch dat je pece jenom nzk. - -Opraveno potn spnosti pro zvislosti vybran nhodou (ve statistice mly -etnost 0). Chyba spovala v tom, e se mezi tyto hrany pipletly zvislosti -koncov interpunkce na koeni, kter se piazuj bez statistiky, tj. etnost u -nich nebyla uvedena, ale mly skoro stoprocentn spnost. - -A 924 - G 608 - B 316 - P 65,8 (ve) -A 749 - G 529 - B 220 - P 70,6 (>=5) -A 157 - G 71 - B 86 - P 45,2 (>=1) -A 18 - G 8 - B 10 - P 44,4 (==0) - -Pokus: Vynechat z trninku a testu vty, kter obsahuj koordinaci nebo -apozici. Z 1983 trnovacch vt zbylo 900. Z testovacch vt zbylo 21 (tj. 257 -slov). - -A 257 - G 187 - B 70 - P 72,8 (ve) -A 140 - G 119 - B 21 - P 85,0 (>=5) -A 111 - G 65 - B 46 - P 58,6 (>=1) -A 6 - G 3 - B 3 - P 50,0 (==0) - - - -13.2.2002 - -Zopakovn experiment s vynechnm koordinac a apozic. V trnovacch -datech zbylo 36200 vt, v testovacch 3496 vt. - -A 41598 - G 31367 - B 10231 - P 75,4 (ve) -A 40805 - G 31050 - B 9755 - P 76,1 (>=5) -A 756 - G 303 - B 453 - P 40,1 (>=1) -A 37 - G 14 - B 23 - P 37,8 (==0) - -Zopakovn experiment s vynechnm ExD (koordinace a apozice -vrceny). V trnovacch datech zbylo 53500 vt, v testovacch 5522 -vt. - -A 99092 - G 68494 - B 30598 - P 69,1 (ve) -A 98253 - G 68200 - B 30053 - P 69,4 (>=5) -A 762 - G 283 - B 479 - P 37,1 (>=1) -A 77 - G 11 - B 66 - P 14,3 (==0) - -Spojeny posledn dva pokusy. Vynechny jsou vty obsahujc ExD, -koordinaci nebo apozici. V trnovacch datech zbylo 25900 vt, -v testovacch 2658. - -A 36114 - G 27430 - B 8684 - P 76,0 (ve) -A 35300 - G 27076 - B 8224 - P 76,7 (>=5) -A 746 - G 340 - B 406 - P 45,6 (>=1) -A 68 - G 14 - B 54 - P 20,6 (==0) - -Przkum je hotov. Zkusm nicmn tento stav vc njakou dobu -ponechat. Jednak se tm zrychluje vpoet a jednak se mu lpe -soustedit na druhy chyb, kter s koordinacemi nesouvisej. - -Pokus: pestaneme do dlky zvislosti zahrnovat poet rek, protoe -tm se mon statistika pli drob. Ponechme vak informaci, zda se -na trase aspo jedna rka vyskytla, i nikoliv. - -G 27435 - B 8679 - P 76,0 - -Zlepen je minimln, ale alespo se to nezhorilo, take to tak -nechme. - -Valence - vodn przkum. Do vsledk jsou nyn zahrnuty pouze -zvislosti typu Sb, Obj, Adv, Pnom. Typ se ur podle vzorov vty, -pokud byl zvisl uzel zaven jinam, je to chyba. Analyzuje se ovem -cel vta. - -G 8848 - B 2569 - P 77,5 - -Tvary slovesa "bt" zkoprovny do znaek. Slibuji si od toho, e -konstrukce "bude dlat" ("dlat" m bt dc) se u nebude plst -s "me dlat" ("me" m bt dc). - -G 9014 - B 2403 - P 79,0 - -Znova rozlieny znaky pro zvratn zjmena "se", "si" od ostatnch -zjmen. Dvod: tato dv zjmena hraj dov vt roli pi valenci -ne vechna ostatn zjmena, take by mlo pomoct, kdy si je nebudeme -plst. Poznmka: mezi funkcemi, kter se maj kvli valencm sledovat, -jsem zapomnl uvst AuxT. V nejblim pokusu ho tedy jet tak -vynechm, pak se k nmu vrtm. - -G 9019 - B 2398 - P 79,0 - -Nepatrn zlepen. A te jak to vyjde pi pidn kontroly AuxT? -(Prvn vsledky jsou opakovnm baseline, druh opakovnm pokusu s -pidanm "bt", tet opakovnm pokusu s pidanm "se/si".) - -G 9254 - B 2677 - P 77,6 -G 9445 - B 2486 - P 79,2 -G 9456 - B 2475 - P 79,3 - -Jet vylepen "bt". Je-li zporn, odstranit pedponu "ne-". Je-li -v pest minulm, odstranit koncovku rodu a sla. U infinitivu se -zastaralou koncovkou "-ti" odstranit koncov "-i". - -G 9489 - B 2442 - P 79,5 - -Nejprimitivnj valence. Zkusit pidat heslo kadho slovesa do -znaky (pi zachovn prvnch dvou psmen znaky). Pravdpodobn to -sp ukod, protoe data pli zdnou bez nleitho vyhlazen, ale -za zkouku to stoj. - -G 6522 - B 5409 - P 54,7 - -Tak snad ani za zkouku to nestlo. Jet mal diletantsk pokus -(diletantsk, protoe se pli nezatuje dodrenm zkon -pravdpodobnosti): u zvislost, jejich dcm uzlem je sloveso, -udlat dva zznamy do te tabulky: jeden bude mt v dcm uzlu jen -morfologickou znaku, druh ji bude mt obohacenu o heslo jako v -pedchozm pokusu. V zvislm uzlu bude za vech okolnost znaka. Pi -analze se pak vythnou oba zznamy a etnosti se setou. Tm se -jednak trochu vyhlad dkost dat, jednak se celkov zvhodn -zvislosti zen slovesem oproti jinm, tj. slovesn vazby se snad -budou eit o nco pednostnji. - -G 9537 - B 2394 - P 79,9 - -Jednoduch valence. Na zatku kad analzy si najt vechna slovesa -ve vt, ke kadmu z nich vechny znm rmce, ty rozsekat na leny, -najt potenciln instance len ve vt a vechny takto vznikl -zvislosti si zapamatovat jako valenn. Zatm se neptme ani po tom, -zda je nkter vazba povinn (vyskytuje se ve vech rmcch), ani zda -dv rzn valenn zvislosti na tomt slovese jsou ze stejnho rmce -tohoto slovesa, ani zda jedna valence nen uspokojovna opakovan, ani -zda valenn zvislost peskakuje jin sloveso, kter m stejnou -neuspokojenou valenci. Na zatku kadho kola pak hledme nejdve -valenn zvislosti a teprve v ppad, e dn z nich nen povolen, -hledme mezi ostatnmi. - -G 8660 - B 3271 - P 72,6 - -Zd se, e tam, kde jedno sloveso m vce variant rmc, zbyten -vyhrvaj ty mn pravdpodobn. Utime tedy valenn zvislosti -sestupn podle pravdpodobnosti. - -G 8835 - B 3096 - P 74,1 - -A dle: valenn zvislosti dostanou pednost pouze v ppad, e u -je povolena ta nejlep z nich. Jinak se postupuje normlnm -zpsobem. I tak samozejm me vyhrt valenn zvislost, kter nen -nejlep z valennch. - -G 9416 - B 2515 - P 78,9 - -Opravena chyba: nezvratn zjmena s pdem nebyla zapotna jako -jmenn argumenty (jde zejmna o vztan a ukazovac zjmena - "to", -"kter" apod.). - -G 9426 - B 2505 - P 79,0 - -Zkusme jet jako druh kritrium azen valennch zvislost pidat -dlku zvislosti (m krat, tm lep). - -G 9407 - B 2524 - P 78,8 - -Nezlepuje se to. Ne vrtme nhodnou, zkusme tedy, zda pome -pstup "m del, tm lep". - -G 9445 - B 2486 - P 79,2 - -Kupodivu je tu mrn zlepen! Take to tak nechme. - -Zsobnk valennch zvislost se me zaseknout, pokud na jeho ele -vz zvislost, kter u nikdy nebude povolena. V takovm ppad je -nutn zvislost ze zsobnku odstranit. Takov ppad se pozn podle -toho, e nastala jedna z nsledujcch podmnek: 1) zvisl uzel u je -pipojen jinde; 2) nad zvislm uzlem vede zvislost, kter nevede nad -dcm nebo obrcen. - -G 9401 - B 2530 - P 78,8 - -Nepomohlo to a je to dost divok, tak to vrtm do pvodnho -stavu. Nkdy bych mohl ladnm vyzkoumat, co se tam vlastn dje a ve -kterch ppadech k tomu dolo, ale te na to nen as. - -G 9445 - B 2486 - P 79,2 - -Zkusm z testu vynechat Adv (vtinou nejsou soust valence). - -G 5903 - B 1668 - P 78,0 - -Vrtme Adv, vynechme Sb (nejsou podchyceny valennmi rmci). - -G 6962 - B 1953 - P 78,1 - -Vrtme oboj. - -G 9445 - B 2486 - P 79,2 - -Vynechme z valence sloveso "bt", protoe samo u je bez valence -podchyceno celkem dobe a naopak se mnohokrt vyskytuje jako pomocn, -nebo s mnoha rznmi rmci, take valence by ho mohla sp poplst. - -G 9455 - B 2476 - P 79,2 - -Zvhodnme zavovn tch vedlejch vt, kter jdou snadno poznat, -ale dosavadn model na to nem nstroj. Jakmile pod sloveso pipojme -zleva heslo "kter", koukneme se, zda je ped nm rka, pipojme ji -tak a potom hledme nejbli pedchzejc podstatn jmno nebo -zjmeno (mlo by se shodovat v rod a sle, ale to souasn znaky -neumouj, tak to odlome - stejn nepjde o pedmt ani podobnou -zvislost, take jde spe o uklizen vedlej vty ne o jej sprvn -zaven). - -G 9507 - B 2424 - P 79,7 - -Zkombinovat "diletantskou pseudovalenci", kterou jsme nahoe doshli -79,9 %, s tm, co jsme pouili v poslednm pokusu. Dvod: te sice -lpe ne u pseudovalence preferuju valenn zvislosti ped -nevalennmi, ale pro rozlien valennch mezi sebou zase potebuju -urit stupe lexikalizace, a ten byl v pseudovalenci obsaen. - -G 9564 - B 2367 - P 80,2 - -Zvratn zjmena "se" a "si" jsou u nkterch sloves tak zahrnuta pod -valencemi N4, resp. N3. Povolme tedy oboj. - -G 9560 - B 2371 - P 80,1 - -Mal zhoren. Nov valence na sebe spe nabalily rzn dal -kraviny. Ve uveden druhy "se" a "si" je nutn njak eit, ale -takhle to nejde, take beru zpt. - -MUSIM ALE ZKONTROLOVAT seznam vazeb, kter pouvm! Posledn -provdn pokus jsem dlal, protoe v seznamu vbec nebylo "obrtit -se" (bylo tam pouze "obrtit N4"), pitom na webu je jasn vidt, e -existuje rmec "obrtit se na". - - - -14.2.2002 - -Pokus: spojky "e", "aby" a ("zda" nebo "zdali") se pilep ke -znace. - -G 9635 - B 2296 - P 80,8 - -Ale zapomnl jsem upravit znaky ve valencch, mon to bude jet -lep. - -G 9619 - B 2312 - P 80,6 - -Ou nou! Jaktoe je to zase hor? Musm to ale asi nechat takhle, je -to sprvnj. - - - -21.2.2002 - -Pokus o podn zmen nkterch vsledk uvdnch ve lnku do -Taibei. Musm se dokzat vrtit k pvodn verzi programu, v ptek ped -odeslnm lnku jsem to dlal narychlo zbrkle a nepovedlo se mi to. - -Prvn krok: nyn lze v konfiguraci nastavit, zda se maj testovat -pouze hrany, kter maj ve vzorovch datech uritou analytickou -funkci, nebo vechny hrany. Prvn vsledek je pro hrany s afuny Sb, -Obj, Adv, Pnom a AuxT (tedy stejn jako ve vech pokusech poslednch -dn), druh je pro vechny hrany (afun .*). - -G 9491 - B 2440 - P 79,5 -G 27318 - B 8796 - P 75,6 - -Druh krok: specifikaci afun, kter se nesm ve vt vyskytnout, aby -vta nebyla vynechna, u konfigurace umouje. Nyn se zkusme vrtit -na neomezen data. Prvn vsledek je se zakzanmi afuny ExD, Coord a -Apos (tak to bylo poslednch nkolik dn), druh je pro povolen -vechny afuny pi testu (avak natrnovno je pod na omezench -datech), tet pouv neomezen data pi testu i pi trninku. Ve -vech pokusech u je ponechno testovn libovolnch afun (ve vtch, -kter nebyly vynechny). - -G 27318 - B 8796 - P 75,6 -G 84026 - B 42004 - P 66,7 -G 83540 - B 42490 - P 66,3 - -Ni spnost tetho pokusu vzhledem k druhmu je -pekvapujc. Krom toho jsme klesli i pod pvodn -spnost. Oekvno: - -G 85355 - B 40675 - P 67,7 - -Pi zbrklm ptenm pokusu o nvrat byly ovem vyazeny veker -machinace s morfologickmi znakami, take mimo jin zmizel tak -rozdl mezi uzly zvisejcmi na koeni, kdy ve vt bylo sloveso, a -kdy tam nebylo. Nyn naopak veker machinace vracm a budu je pak -vyazovat postupn, s vtm rozmyslem. Nejdve ale prbn -petrnovn a petestovn: - -G 87589 - B 38441 - P 69,5 - -Nyn odstranme tzv. selektivn lexikalizaci znaek, tj. veker -machinace se znakami vetn pidvn lemmatu do znaky pro -interpunkci. Vjimkou je pouze prava znaek pro kestn jmno, kde se -ale nepidv lemma, nbr cel lexikln kategorie; krom toho to -nesouvis s valenc. Interpunkce s valenc taky moc nesouvis, take -ji v ptm kroku jet tak vrtm. Te ale prbn vsledky: - -G 84314 - B 41716 - P 66,9 - -Vrcena lexikalizace znaek pro interpunkci a pedloky. (Pedloky -byly lexikalizovny u 10.2.2002, interpunkce jet dve.) - -G 85997 - B 40033 - P 68,2 - -spnost je pod vy ne ped pokusy s valenc. Mohlo by to bt -tm, e te v dlce zvislosti eviduji vskyt rky, tenkrt jsem -evidoval i poet rek. Jet tedy zkusm vrtit poet rek. Jet -jsem tak nalezl nsilnou pravu vedlejch vt zanajcch zjmenem -"kter", a vypnul jsem ji. - -G 85350 - B 40680 - P 67,7 - -Konen jsem se trefil vce mn do pedvalennho vsledku (jsem -jenom o pt zvislost hor). Te tedy opt pestanu evidovat poet -rek mezi dcm a zvislm a msto nj budu evidovat pouze -existenci rky. - -G 85360 - B 40670 - P 67,7 - -Vypnm lexikalizaci pedloek, ta se stane soust balku -"selektivn lexikalizace", a neme se tedy zapotvat do baseline -ped valennmi pokusy. Pi selektivn lexikalizaci u navc nebudu -pracovat s pouitm tvarem pedloky, ale s jejm lemmatem. - -G 85139 - B 40891 - P 67,6 - -Pt je poteba se njak postavit k nsilnmu een vedlejch vt -zanajcch zjmenem "kter". Je teba pokrt i dal vztan -zjmena, kterch se to tk. Je teba zjistit, jak moc pomh povinn -pipojovn takovch vt k nejblimu pedchzejcmu podstatnmu -jmnu a kolikrt pmo toto pipojen bylo patn i sprvn. Je teba -se zamyslet, zda nebude lep njak volnj a statistitj model, -kter nap. bude podmiovat obyejnou pravdpodobnost podmnkami, -kter pi nsilnm een vedou pmo k pipojen vedlej vty. A -cel tato funkce by asi mla bt voliteln v konfiguraci. Pokud se -rozhodnu mt ji pro valenn pokusy zapnutou, mla by bt soust -baseline. - - - -22.2.2002 - -Pokus s povinnm pipojovnm vztanch vedlejch vt k nejbli -jmenn frzi nalevo od rky. Zatm vrtm to, co u tam jednou bylo, -tedy vty se zjmenem "kter" v rznch rodech. Udlm to jako -volitelnou funkci, ale pro nejbli pokus bude zapnuta. Zvlṻ tak -zmm spnost tchto zvislost, protoe jedna vc je, kolikrt -byly spn ony samy, a jin, kolik chyb odstranily nebo naopak -zpsobily jinde ve strom. - -Vztan vty budeme testovat na malm vzorku 445 vt (soubory -lu0?.a). Tady je jeho poten spnost: - -G 5424 - B 2477 - P 68,6 - -Prvn dek je vdy celkov spnost, druh jen vztan vty. - -G 5487 - B 2414 - P 69,4 -G 30 - B 16 - P 65,2 - -To je pozoruhodn! Jak je vidt, samotn zaven vztanch vt je -natolik chybn, e celkovou spnost kaz, avak i tak pomh -umravnit jin zvislosti, dky emu celkov spnost naopak -vzrostla! Mon ale, e zaven vztanch vt bylo chybn i pedtm, -akort chyby smovaly jinam, take celkov i tohle je zlepen (nemm -toti monost jednodue zmit spnost zaven vztanch vt, kdy -nen pouito zvltn zachzen). To skoro stoj za zmnku v njak -publikaci. A te musme zjistit, kde k chybm dochz a zda se s nimi -d nco dlat. - -Chyby lze rozdlit do nsledujcch skupin: -1) Jmenn frze nebo sloveso ve vedlej vt jsou leny njak -koordinace nebo apozice. To zatm neumm opravit, protoe zatm neumm -zachzet s koordinacemi a apozicemi. -2) Sprvn jmenn frze rozvita zprava jinmi jmennmi frzemi v -genitivu nebo pedlokovmi frzemi. Zatm obecn neumm opravit a -een bude velmi obtn, zen leckdy smanticky nebo dokonce ani -lovkem nerozhodnuteln. Mon by nicmn stlo za przkum, zda nen -naopak astj zaven na nejvyho lena takovho etzku, msto -na nejniho, kter je souasn nejble k vedlej vt. -3) Jako pedchoz skupina, avak patn jmenn frze se se vztanm -zjmenem neshoduje v rod a sle. To umm opravit. - -Zakzno ven, kde nen shoda (nevm pak ale nikam, ani na -nejbli shodnou jmennou frzi, je to zas nechno na statistice). - -G 5477 - B 2424 - P 69,3 -G 29 - B 7 - P 80,6 - -Celkov spnosti to sice nepomohlo, ale nemu dlat vdom chyby, -abych zabrnil jinm, musm radji hledat jin zpsob odstrann tch -jinch. Nyn zkusm navc najt shodnou jmennou frzi, na kterou by -vedlej vta la zavsit. - -G 5486 - B 2415 - P 69,4 -G 33 - B 11 - P 75,0 - -Msto zjmena "kter" nyn vyzkoume zjmeno "jak". - -G 5422 - B 2479 - P 68,6 -Vztan vta uveden zjmenem "jak" se neobjevila ani jednou! - -Vracme zjmeno "kter", zjmeno "jak" vypoutme. Vracme se k -velkm testovacm datm. - -G 85830 - B 40200 - P 68,1 -G 390 - B 128 - P 75,3 - -Rozme pravidlo na vskyty zjmena "kter" v pedlokovch frzch -(nap. "Mu, na kterho byla podna aloba..."). Budeme tak potat, -kolikrt se zjmeno "kter" vyskytlo v testovacch datech celkem, aby -se poznalo, jak velkou st problmu jsme vbec schopni uchopit. - -G 85844 - B 40186 - P 68,1 -G 400 - B 133 - P 75,0 -vskyty zjmena "kter" = 124064 - -Tak to je tedy k smchu, vdy 533 zachycench vskyt "kter" tvo z -celkovho potu pouh 4 promile! To se divm, e zsah ml vbec -alespo takov vliv, jak ml. Na vin je samozejm psn vbr -okolnost, a nkterm okolnostem by se snad dalo pomoci bez nebezpe -ztrt - napklad se poaduje, abych v danm okamiku ml u zjmeno i -rku pipojen. Nemm-li, teba to provihnu. Nebudu ale te u tento -smr sledovat dl, protoe v nm stejn nen dn statistika. Radji -se vrtm ke sledovn valence a sbru podklad pro konenou verzi -lnku do Taibei. - -Vyhodnocen baseline (pln nelexikalizovanho parseru) paraleln pro -vechny zvislosti a pro valenn dleit zvislosti. - -G 85889 - B 40141 - P 68,1 (ve) -G 25459 - B 7936 - P 76,2 (valence) - -Lexikalizace s ls=0,734375 - -G 85844 - B 40186 - P 68,1 (ve) -G 25446 - B 7949 - P 76,2 (valence) - -Tak te u tohle ani nen optimln ls, protoe kdy jsem ho -stanovoval, byl cel model troiku odlin. Natst rozdly jsou tak -nepatrn, e na desetinch procenta se zhoren neprojev a bude to -vypadat, e se nic nehnulo ani nahoru, ani dol. - -pln obyejn lexikalizace, tj. ls=1, nsleduje: - -G 54844 - B 71186 - P 43,5 (ve) -G 14426 - B 18969 - P 43,2 (valence) - -Obyejn lexikalizace vrcena na 0,734375, pidna selektivn -lexikalizace (sloveso "bt", pedloky, podadc spojky a zvratn -zjmena). - -G 87615 - B 38415 - P 69,5 (ve) -G 25098 - B 8297 - P 75,2 (valence) - -Pidna "pseudovalence" (zvislostem obsahujcm slovesa se st -jejich pravdpodobnost podle znaek s pravdpodobnost, kde znaka -slovesa je lexikalizovan heslem). - -G 87735 - B 38295 - P 69,6 (ve) -G 25299 - B 8096 - P 75,8 (valence) - -A nakonec pidna opravdov valence v rozsahu, ke ktermu jsem se pi -pprav lnku zatm dostal (preference valennch zvislost). Ve -ve uveden zstv tak zapnuto. - -G 87645 - B 38385 - P 69,5 (ve) -G 25259 - B 8136 - P 75,6 (valence) - -A te budeme postupovat zase zptky, ale vechno budeme mit pi -vynechanch vtch obsahujcch ExD, Coord nebo Apos. - -G 28592 - B 7522 - P 79,2 (ve) -G 9629 - B 2302 - P 80,7 (valence) - -Nyn vypnu valenci. - -G 28644 - B 7470 - P 79,3 (ve) -G 9652 - B 2279 - P 80,9 (valence) - -Nyn vypnu i pseudovalenci. - -G 28643 - B 7471 - P 79,3 (ve) -G 9608 - B 2323 - P 80,5 (valence) - -Nyn vypnu i selektivn lexikalizaci. - -G 27556 - B 8558 - P 76,3 (ve) -G 9544 - B 2387 - P 80,0 (valence) - -Nyn zmnm ls na 1 (pln obyejn lexikalizace). - -G 17557 - B 18557 - P 48,6 (ve) -G 4984 - B 6947 - P 41,8 (valence) - -Nyn zmnm ls na 0 (dn lexikalizace). - -G 27496 - B 8618 - P 76,1 (ve) -G 9520 - B 2411 - P 79,8 (valence) - -Pokus: do selektivn lexikalizace pidat pslovce neodvozen z -pdavnch jmen (uzaven skupina, znaka Db). - -G 28554 - B 7560 - P 79,1 (ve) -G 9561 - B 2370 - P 80,1 (valence) - -Proti dosud nejlepm vsledkm s valenc je to drobn -zhoren. Pidme k nim jet pslovce se znakou Dg, ale heslem -"hodn" nebo "mlo-3" (jde nm hlavn o druh stupn "vce ne" a -"mn ne"). - -G 28558 - B 7556 - P 79,1 (ve) -G 9570 - B 2361 - P 80,2 (valence) - -Pslovce typu Db rum, pslovce "hodn" a "mlo" ponechvm a do -znaky nedvm jejich heslo, ale slovo. - -G 28587 - B 7527 - P 79,2 (ve) -G 9632 - B 2299 - P 80,7 (valence) - -Rum i pslovce "hodn" a "mlo". - -G 28592 - B 7522 - P 79,2 (ve) -G 9629 - B 2302 - P 80,7 (valence) - - - -26.2.2002 - -Zakzno, aby vce ne jedna zvislost vedla dovnit seku -ohranienho rkami. - -G 28703 - B 7411 - P 79,5 (ve) -G 9930 - B 2001 - P 83,2 (valence) - -Opraveno: koncov interpunkce je nyn samostatnm sekem. Tot plat -o koeni. - -G 29149 - B 6965 - P 80,7 (ve) -G 10009 - B 1922 - P 83,9 (valence) - -To je hezk, te ale hom zvdavost, jak to bude vypadat, kdy -nebudu vynechvat koordinace a spol.! - -G 91142 - B 34888 - P 72,3 (ve) -G 27256 - B 6139 - P 81,6 (valence) - -Te se zase jednou podvme, jak by nm pomohl Melk. M to ale -hek. Musme pout nezvisl testovn a to nm nebude dlat -transformace koordinac. Jinmi slovy, na koordinacch hodn ztratme, -protoe dokonce ani nebudeme zkouet peskldat je ve strom, kter -jsme vymysleli. Nezvisl test bez melku tedy dopad takto: - -G 83159 - B 42871 - P 66,0 - -Pd je mon jet vraznj, ne by se ekalo, a to proto, e ve -vtch s koordinac neplat pravidlo o uzavenosti mezirkovch -sek! Nap. ve vt "Vidl Martina, Lucku a Janu." se mus nejdve -pes rku spojit Martin s Luckou a Janou, teprve potom se to cel -spoj s "vidl" a "vidl" - opt pes rku, by pomyslnou a na druhou -stranu - se spoj s koenem. - -Pi postsubstituci melku (v njakm stavu z loskho lta, tj. bez -vylepen, kter jsem k nmu jet vymlel na podzim): - -G 83577 - B 42453 - P 66,3 - -Jasn kol nejblich dn tedy je: VYEIT KOORDINACE A APOZICE!!! -Vz v nich pli mnoho, urit alespo 10% spnosti. - - - -27.2.2002 - -Zahajuji frontln tok na koordinace. Nebudou se konat dn podvodn -transformace vzorovch analz pi testovn, msto toho se rovnou -vybuduje sprvn (tj. definic PDT poadovan) struktura koordinace. - -Krok 1: Vypnout pi trninku i testu transformace koordinac. Nutn -mus nastat dal pd spnosti. - -G 86994 - B 39036 - P 69,0 - -Kupodivu se spnost naopak trochu vrtila nahoru. Snad tedy pece -jenom ml dostatenou slu fakt, e trnujeme a testujeme stejnm -zpsobem. V kroku 2 ovem tento fakt opt trochu narume. - -Krok 2: Pi trninku vynechat zvislosti, jejich dcm nebo -zvislm uzlem je koordinan spojka. Test zatm ponechat beze zmny, -adekvtn prava testu bude provedena v nkterm z pozdjch krok. - -G 84078 - B 41952 - P 66,7 - -Te se pochopiteln projevila naprost neznalost koordinac pi -testu. Nevad, ty se toti budeme uit zvlṻ. - -Krok 3: Pi testu se v kadm kole dvm, zda jsou mezi povolenmi -zvislostmi ob plky dvoulenn koordinace: zvislost ehokoli na -souadc spojce a zvislost druhho lena stejnho druhu (co do -morfologick znaky) na t sam spojce z druh strany. Pokud je takov -dvojice zvislost povolen, dostane pednost. To je sice dost hrub -zsah do statistickho pediva, ale poslze bude metoda hrub sly i -zde nahrazena modelem. - -G 87276 - B 38754 - P 69,3 - -Krok 3b: Oprava. Jednou pouit koordinan spojka je zablokovan pro -dal potenciln koordinace. K zablokovn se navc pouije pepsn -jej znaky znakou poslednho koordinovanho lenu, take se tak -usnadn zavovn koordinace nahoru nebo nabalovn slov -rozvjejcch celou koordinaci. - -G 87928 - B 38102 - P 69,8 - -Krok 3c: Drobn vylepen. Slovesa maj jen dv tdy: Vf (infinitiv) a -V (vechno ostatn, tj. urit tvary slovesa). Pedpokldm, e -pozdji bude tento zsah nahrazen jemnj statistikou o tom, jak -kategorie se jak asto spojuj do koordinac, ale zatm, v prosted -hrub sly, je lep tohle ne nic. - -G 88265 - B 37765 - P 70,0 - -Krok 4: Rozit na vceetn koordinace! Pokud je povolena zvislost -rky na bval koordinan spojce (bval proto, e u byla zapojena -do koordinace a nyn je pepsna jednm ze len) a pokud nejbli -nezaven slovo nalevo od tto rky je stejnho druhu jako lenov -koordinace, pipojit rku pod koordinan spojku a nadit pipojen -onoho slova tamt v ptm kole. - -G 88561 - B 37469 - P 70,3 - -Krok 4b: Opravit slovesn tdy i u vceetnch koordinac. - -G 88594 - B 37436 - P 70,3 - -Krok 5: Prvn pokus o pidn statistik. Koordinace se souadcmi -spojkami (J^) se dlaj nadle natvrdo, pibyla vak monost -dvoulennch koordinac s jinmi spojkami (rky, jin slovn -druhy...). Pokud kolem takov spojky existuj dva voln uzly, -pravdpodobnost koordinace je relativn etnost jejich vskytu jako -len v te koordinaci. Tato pravdpodobnost sout s -pravdpodobnostmi obyejnch zvislost. Pokud vyhraje, m druh len -koordinace pidn do stromu jist. - -G 86448 - B 39582 - P 68,6 - -Krok 5b: Oprava. Tak jako v 3b i tady zablokovno, aby po pouit -spojky v koordinaci byla ta sam spojka pouita pro jinou koordinaci -vzdlenjch len. Tentokrt u neblokujeme zmnou morfologick -znaky - bylo by to neinn, protoe spojka se nepoznv podle -znaky, ale podle hesla. Msto toho vyplnme jedniku do prvku pole -$coord s indexem odpovdajcm indexu spojky ve vt. - -G 87846 - B 38184 - P 69,7 - -Krok 5c: Na statistiku najd i souadc spojky (J^). - -G 83291 - B 42739 - P 66,1 - -Krok 5d: Oprava. Pole $coord se nyn po analze kad vty vymazv. - -G 85295 - B 40735 - P 67,7 - -Krok 5e: Oprava. ada koordinac se zablokovala pedasn, jen proto, -e u se o nich nkdy uvaovalo. - -G 85247 - B 40783 - P 67,6 - -Krok 5f: Oprava. Nen sice vbec jist, e relativn etnosti -koordinanch ekvivalenc jsou porovnateln s relativnmi etnostmi -zvislost, ale pokud by tomu tak mlo bt, museli bychom relativn -etnosti koordinac zmenit (1-$ls)-krt, protoe jsou postaveny na -znakch a pravdpodobnosti zvislost se skldaj z model znaek a -slov. Proto nyn nsobm koordinan relativn etnosti uvedenm -faktorem. - -G 86235 - B 39795 - P 68,4 - -Krok 5g: Oprava. Tak jako ve 3b, opt se kopruje znaka jednoho ze -len koordinace do znaky koordinan spojky. Tentokrt ovem -vsledek me bt hor, protoe nkdy se zkoordinuj vci rozdlnch -typ a pak se me stt, e bude vybrn ten mn reprezentativn typ. - -G 86812 - B 39218 - P 68,9 - -Krok 5h: Lep pravdpodobnostn model (petrnovno). Nyn u se -nesleduje, jak asto dan spojka dila prv koordinaci danho druhu, -protoe jsem to stejn nevyuval. Zato se zjiuje, jak asto dan -heslo bylo koordinan spojkou vzhledem ke vem svm vskytm, a tmto -slem se nsob celkov pravdpodobnost koordinace. Take koordinaci -u nemagnetizuje kdejak hejhula v ele s rkami - ance vyhrt -reln u zstv opt pedevm souadcm spojkm. - -G 87268 - B 38762 - P 69,2 - - - -28.2.2002 - -Krok 5i: Oprava. Pi trnovn nesledovat heslo, ale slovn tvar -spojky. Heslo v tomto ppad paradoxn poskytuje astji vce -monost, a to proto, e mnoh spojky pat k heslm s rozlienmi -vznamy (plus-1, plus-2) a lematiztor je ne vdy tref. - -G 87242 - B 38788 - P 69,2 - -Dolo dokonce k nepatrnmu zhoren, i kdy procentuln spnost se -fakticky nezmnila. Pro pt by ale mlo bt bezpenj pouit -slov msto hesel, take to tak nechm. - -Krok 6: Te je poteba pidat vceetn koordinace. Pi trninku nov -sledujeme, kter spojky jsou schopny dit i vceetn koordinace -(nejsou to vechny, napklad u pomlky nebo dvojteky to -neoekvm). - -G 87385 - B 38645 - P 69,3 - -Krok 6b: Oprava. Do koene koordinace se nesm koprovat typ -koordinace, pokud u tam je (tj. pokud roziuju existujc -koordinaci). - -G 87450 - B 38580 - P 69,4 - -Krok 6c: Oprava. Pi trninku rozebrat sloen koordinace, aby se -nestalo, e podstatn jmno bude koordinan ekvivalentn se souadc -spojkou. Ani te to ale nedlm podn, protoe pouze peplcnu -koordinaci, kter u byla zpracovna, ale nemm jistotu, e jet ped -jejm zpracovnm nenarazm na koordinaci, do kter je vloena, nebo -na zvislost, kter na n vis nebo kterou ona sama vis na nkom. - -G 87164 - B 38866 - P 69,2 - -Krok 7: Je poteba pijt na to, kdy se m dvat pednost koordinacm -a kdy ne. Radikln krok: k nenulovm pravdpodobnostem koordinac, -pist 1. Tm se zajist, e pokud by to mohla bt koordinace, pak -dostane pednost. - -G 74126 - B 51904 - P 58,8 - -To ale dostvaj pednost i koordinace se spojkami, kter v 99 % svch -vskyt nemaj s koordinacemi nic spolenho, a koordinace len, -kter se na jedn koordinaci podlely jen omylem. Mohli bychom tedy -zkusit jin podvod. Koordinace dostane pednost, pokud je alespo 50 % -pravdpodobnost, e je to opravdu koordinace, neboli e domnl spojka -je opravdu koordinan spojkou a e domnl leny opravdu mohou bt -pohromad v jedn koordinaci. Pro prvn pravdpodobnost u mme -statistiku. Pro druhou bychom poet vskyt znaky v koordinaci s -konkrtn jinou znakou potebovali dlit celkovm potem vskyt -prvn znaky v koordinacch, a ten zatm neznme. Zatm tedy budeme -poadovat, aby ob znaky byly shodn. -(Krok 7b.) - -G 87772 - B 38258 - P 69,6 - -Krok 7c: Oprava. Pokud dvojice znaek nebyla pi trninku vidt v -dn koordinaci, ale znaky jsou toton, pravdpodobnost jejich -koordinan ekvivalence direktivn nastavit na 1. - -G 87844 - B 38186 - P 69,7 - -Krok 7d: Koordinace s mnoha rkami a dnou jasnou spojkou se spojuj -hierarchicky, a to proto, e nejdve se spoj prvn dva leny pod -rkou mezi nimi a pak u nen niku. Odte mezi stejnmi koordinacemi -preferovat ty, jejich spojka le vce vpravo. - -G 87847 - B 38183 - P 69,7 - -patn zprva od Petra Pajase: "atd" a podobn zkratky jsou zavovny -pokad jinak, achich achich! Pokud lze zavsit na nco jinho -(nap. rku), udl se to a "atd" je potom (obvykle) jednm ze len -koordinace. Samotn "atd" d koordinaci pouze pokud jin kandidt -nen, tedy nap. ve vt "Piel Tonda atd." V manulu k analytick -rovin je to napsno trochu jinak, ale pr patn. V datech to tak -nen vdy sprvn, nap. vta na zatku testovacch dat s ob -koordinac m v koeni koordinace atd., pestoe ped nm jsou spousty -rek. - -Krok 7e: Zrueno zkreslovn pravdpodobnost koordinac na zklad -jejich poad ve vt - i tak je tam toho zkreslovn dost. Je poteba -odstranit i absolutn preferenci koordinac jako takovch, ale kde -najt vhodn vyven se zvislostmi? Nkdy je poteba nejdve -pipojit pdavn jmno k podstatnmu a pak teprve spojit podstatn -jmna do koordinace, jindy je nutn nejdve spojit koordinaci -pdavnch jmen a pak teprve vsledek pipojit zvislost k -podstatnmu jmnu. - - - -1.3.2002 - -Pokus: pokud lze pdavn jmno bu zavsit na podstatn jmno -doprava, nebo koordinovat s jinm pdavnm jmnem vlevo, dostane -pednost koordinace. V ostatnch ppadech rozhoduje statistika. Pokud -pokus vyjde, pokusm se ho tak podchytit statisticky. - -G 87855 - B 38175 - P 69,7 - -Krok 8: Prvn pokus s stenm podmnnm vbru zaven kontextem -ostatnch monost vbru. Ve stejnou chvli byla vypnuta valence (ne -pseudovalence ani selex), protoe v souasn podob spe mrn -kod. Pesto spnost zatm mrn klesla, ale jsem optimista, a to -dodlm, bude to snad lep! - -G 87454 - B 38576 - P 69,4 - -Krok 8b: K souboji s konkurenty vlevo pidn souboj s konkurenty -vpravo. Dal zhoren :-( - -G 87172 - B 38858 - P 69,2 -Doplkov statistika: -Lev konkurent 946 x pomohl, 985 x ublil, zbytek patn i bez nj. -Prav konkurent 1080 x pomohl, 1454 x ublil, zbytek patn i bez nj. - -Krok 8c: Zkusme zvit pesnost na kor plnosti. Konkurentm -dovolme zvtzit pouze s potem vskyt 10 nebo vtm. - -G 87864 - B 38166 - P 69,7 -lkl 806:761 lkp 784:648 - -Krok 8d: OK, navc jet budeme poadovat, aby pevaha konkurenta nad -pvodnm kandidtem byla alespo dvoutetinov. - -G 88210 - B 37820 - P 70,0 -lkl 634:381 lkp 606:479 - -No slva, aspo e tak! Uvidme se pt tden... - - - -4.3.2002 - -Krok 8e: Sout o vtze loklnch konflikt se zatm vbec -neastnily koordinace (pestoe potebn statistiky byly pi trninku -zskny). Nyn tedy pidvm i koordinace. - -8e1: een loklnch konflikt muselo bt kvli koordinacm -pebudovno. V zjmu dobrho odladn tedy nejdve zkusme zopakovat -vsledky, kde se LK e pouze pro zvislosti. - -G 87546 - B 38484 - P 69,5 -lkl 644:756 lkp 622:503 - -Zhoren o 664 zvislost. Nkde je chyba. -8e2: Pokusme se tedy zopakovat vsledek bez een LK. - -G 87920 - B 38110 - P 69,8 - -Vsledek je o 65 zvislost lep ne posledn vsledek ped krokem 8, -ale to bude tm, e na zatku kroku 8 jsme tak vypnuli valence, a ty -zstaly vypnut i te. - -Rozdl mezi 8e1 a 8d me bt jet v poad testovn -zvislost. Jakmile se najde prvn konkurenn zvislost, kter je -"dostaten lep" ne pvodn kandidt, pouije se tato zvislost a -lep u se nehled. Poad prochzen konkurent tedy hraje -roli. Neumm sice asi dokonale zopakovat poad z kroku 8d, ale mu -ped prochzenm konkurent uspodat konkurenty podle vzdlenosti od -zvislho uzlu. - -G 87546 - B 38484 - P 69,5 - -8e3: Zjiuju, e pece jenom nejsou vypnuty koordinace. Tak te u je -vypnm doopravdy. - -G 88209 - B 37821 - P 70,0 - -Tak jsme konen skoro pesn (a na jednu zvislost, dvod neznm) -tam, co v ptek veer. patn zprva ovem je, e pidnm koordinac -se model zjevn opt zhor. (Vsledek viz 8e1.) - -8f: Opravena chyba. Za koordinan spojku se potalo kde co vetn -nap. pedloky "z". Nyn se sla koordinace jako konkurenta nsob -pravdpodobnost, e pouit koordinan spojka je skuten -koordinan spojka. - -G 88000 - B 38030 - P 69,8 -lkl 636:519 lkp 609:480 - -Tak te u je to snad technicky bez chyb, ale ten model... Nechpu, -jak je napklad mon, e "A1 L C N1 P N1" (pdavn jmno mohlo bt -spojeno doleva koordinac s podstatnm jmnem, nebo rozvjet jin -podstatn jmno napravo) vyhrla koordinace 30:0! - -Tak je to proto, e tagger oznail prvn pdavn jmno chybn jako -podstatn (nap. ve vt "Dobr i patn vsledky se vyskytuj u vech -pouvanch systm.") Pokud chceme pi analze pouvat vstup -taggeru, tak asi nememe pi trninku jeho nzory opravovat. Mli -bychom je vak pebt. Nedje se tak mon proto, e zatm pi sbrn -poraench konkurent bereme v vahu jen opravdov koordinace, ale pi -analze zkoumme vechny potenciln mon koordinace. Musme tedy i -pi trninku zkoumat, zda by nco mohlo bt koordinan spojkou, a -pokud ano, musme odhadnout, kte z jeho soused na druh stran by -pi analze mohli figurovat jako koordinovan sourozenci. Tohle je -obtn st. Asi by se opt mla prochzet vechna slova za spojkou, -kter nejsou svzna s njakm slovem na na stran spojky. - - - -6.3.2002 - -8g: Opraveno trnovn tak, jak je uvedeno ve. Nastalo mrn -zlepen. - -G 88243 - B 37787 - P 70,0 -lkl 661:409 lkp 608:482 - -8h: Ze skutench koordinac pi trnovn vynechny sloen (abych se -neuil koordinaci se spojkou), ale podle oekvn se na vsledku nic -nezmnilo. - -G 88243 - B 37787 - P 70,0 -lkl 661:409 lkp 608:482 - -8i: Pi souboji s konkurenty nevyhraje prvn konkurent, kter je -lep, ale ten nejlep z lepch konkurent. Na vsledcch to skoro -nic nemn (zlepen veho vudy o dv hrany). Pi blim pohledu na -statistiku loklnch konflikt je vak vidt vt pohyb: pibylo -astnch, ale i neastnch zsah. - -G 88245 - B 37785 - P 70,0 -lkl 687:455 lkp 620:505 - -8j: Souboj s konkurenty nyn probh tak, e se projdou vechny -dvojice lev kandidt - prav kandidt, kter pro zaven danho uzlu -pichzej v vahu. Na rozdl od dosavadnch pokus se tedy me stt, -e konkurs na dc uzel vyhraje nkdo na stejn stran jako pvodn -kandidt, ale nebude to pvodn kandidt. - -G 76707 - B 49323 - P 60,9 -LKG 4164 - LKB 13726 - -8j1: Vtz mus mt alespo 10 hlas, jinak se pouije kandidt podle -nekontextov pravdpodobnosti. - -G 78190 - B 47840 - P 62,0 -LKG 3019 - LKB 11544 - -8j2: Vtz mus bt alespo dvakrt lep ne druh nejlep, jinak se -pouije kandidt podle nekontextov pravdpodobnosti. - -G 87296 - B 38734 - P 69,3 -LKG 2185 - LKB 2809 - -8j3: Vtz nesm mt nekontextovou pravdpodobnost nulovou (co me -nastat i kvli kontrole mezirkovch sek). - -G 87496 - B 38534 - P 69,4 -LKG 1867 - LKB 2158 - -Pozastavuji vvoj tmto smrem a vracm se k prvn generaci loklnch -souboj, kterou se pokusm rozvjet jinak. - -G 88245 - B 37785 - P 70,0 -LKG 1307 - LKB 960 - -Krok 9: Pipravuji monost zmnit poad, ve kterm se pidvaj nov -hrany do stromu. Dosud se vdy bere hrana s nejvy nekontextovou -pravdpodobnost a pouze lokln souboje na tom mou nco zmnit. V -prvn sti kroku 9 jet toto pravidlo zachovm, ale pepu parser -tak, aby nejdve hledal zvisl uzel a potom vybral z kandidt na -jeho dc uzel. V dalch podkrocch pak bude snadn nahradit -pravidlo pro vbr zvislho uzlu jinm. - -9a: Vybr se zvisl uzel z nejlep zvislosti, ale ne z nejlep -koordinace. - -G 87033 - B 38997 - P 69,1 -LKG 1334 - LKB 976 - -9b: Vybr se zvisl uzel z nejlep zvislosti nebo -koordinace. Vsledky by mly bt rovny dosavadnmu maximu (70%). - -G 88245 - B 37785 - P 70,0 -LKG 1317 - LKB 962 (??? - odkud ten rozdl?) - -9c: Vybr se zvisl uzel, jeho dc uzel vyhraje s nejvt -absolutn silou (tj. poet vher pi trninku, nikoli pomr potu -vher k potu proher). - -G 75694 - B 50336 - P 60,1 - -9d: Vybr se zvisl uzel, jeho dc uzel vyhraje lokln konkurz -s nejvt relativn silou (tj. pomr potu vher a potu proher). - -G 76179 - B 49851 - P 60,4 - -9e: Vybr se zvisl uzel, kter m nejvce kandidt na dcho. - -G 47869 - B 78161 - P 38,0 - -9f: Vybr se zvisl uzel, kter m nejmn kandidt na dcho. - -G 47869 - B 78161 - P 38,0 (??? pro je to stejn jako 9e?) - -To je taky pkn blbost. Na zatku se vybere posledn slovo vty, -protoe m jen jednu monost, to ovem vbec nemus bt ta prav. A -pak se podobn vybr momentln posledn voln slovo a kdov do -kdy. - -9g: Jet mm npad, e by se mohly upednostovat zvisl uzly, kter -jsou obvykle ble k listm stromu, protoe je samozejm douc, -abych zavoval uzel a ve chvli, kdy je jeho podstrom (a tak -podstromy jeho sourozenc) kompletn postaven. Te u ale nemm chu -to implementovat, take pro dneek se vracm k vbru zvislho uzlu -podle toho, zda figuruje v hran s nejvt etnost. - -G 88242 - B 37788 - P 70,0 -LKG 1317 - LKB 963 - - - -24.5.2002 - -Zase na as opoutm koordinace a vracm se k subkategorizaci (kvli -dokonen lnku na Coling 2002 do Taibei). Protoe uplynulo 2,5 -msce a spoustu jsem toho zapomnl, pro zatek jen nov -petrnovn, otestovn a porovnn s vsledky zaznamenanmi -ve. dn vty nejsou vyloueny, ale v zvorce je uvedena spnost -pouze na Sb|Obj|AuxT|Pnom|Adv. Skuten valence pi tomto pokusu nen -zapnuta (valenn zvislosti nejsou upednostovny). Selektivn -lexikalizace zapnuta je. - -G 88273 - B 37757 - P 70,0 (78,6) - -Podobn pokus, ale trnovac a testovac data se omezuj na vty bez -ExD, Coord a Apos. - -G 28869 - B 7245 - P 79,9 (82,7) - - - -15.6.2002 - -Jet hloubji do minulosti: je vypnuta i selektivn -lexikalizace. Prvn dek obsahuje vty bez ExD, Coord a Apos, druh -dek vty bez ExD, tet dek vechny vty. - -G 28230 - B 7884 - P 77,5 (80,1) -G 66862 - B 32230 - P 67,5 (77,7) -G 83782 - B 42248 - P 66,5 (77,1) ---------------------------------- tot pro lambda = 0 -G 28145 - B 7969 - P 77,3 (79,9) -G 67800 - B 31292 - P 68,4 (77,7) -G 82382 - B 43648 - P 65,4 (77,0) ---------------------------------- tot pro lambda = 1 -G 23170 - B 12944 - P 46,7 (40,7) -G 44815 - B 54277 - P 45,2 (42,5) -G 57086 - B 68944 - P 45,3 (42,4) - -Nadle bude napevno lambda = 0,734375. Opt pro vechny ti mnoiny -dat, tentokrt zapneme selektivn lexikalizaci. - -G 28828 - B 7286 - P 79,8 (82,0) bez ExD, Coord a Apos -G 69394 - B 29698 - P 70,0 (79,2) bez ExD -G 85695 - B 40335 - P 68,0 (78,5) ve - -Selektivn lexikalizace zstane zapnuta, navc zapneme pseudovalenci. - -G 28801 - B 7313 - P 79,8 (82,1) bez ExD, Coord a Apos -G 69409 - B 29683 - P 70,0 (79,3) bez ExD -G 85730 - B 40300 - P 68,0 (78,7) ve - - - -16.7.2002 - -Porovnn mho a Charniakova parseru (kter chyby, kter dl on, -nedlm j a obrcen). Kvli tomu je poteba se vrtit k nastaven, -se kterm mj parser doshl nejvy spnosti (70 %). Zapnm een -loklnch konflikt. - -17.7.2002 - -Porovnn i s Collinsovm parserem. Vsledky jsou nsledujc (slo -znamen poet zvislost, zkratky vedle uvdj, kter parsery mly -prv tyto zvislosti uren dobe): - -77995 ec+mc+dz -18508 ec+mc - 3951 ec+dz - 3801 mc+dz - 5765 ec - 3662 mc - 2525 dz - 9821 - - - - -19.7.2002 - -Zpsnn kontrola zvislost vedoucch pes rku. Nyn nesm dn -zvislost pekroit rku nejen kdy sek, do nj nle zvisl -uzel, nen hotov, ale ani kdy kterkoli jin mezirkov sek jet -nen hotov. Jinmi slovy: nejdv pospojovat seky mezi rkami, -potom teprve seky mezi sebou navzjem. - -G 86527 - B 39503 - P 68,7 (78,8) ve - -Dolo ke zhoren, proto zase toto opaten rum. - -Jin problm: Nkdy se pli brzy zavs len koordinace na uzel, na -kterm by pozdji mla viset koordinace cel (napklad "je -absolventem elektrotechnick fakulty vut a postgradulnho studia" - -pli pozd se spoj "fakulty vut", take "fakulty" nevid svho -koordinovanho sourozence "studia" a spoj se tedy (pli brzy) -"absolventem fakulty"). - -Nvrh obecnho een: Ve chvli, kdy se pod dc uzel zavs nov -zvisl uzel, zskv dc uzel nov sousedy. V tu chvli mus znova -pezkoumat sv vlastn zaven, pokud u njak m. I nyn se bude -omezovat na sv sousedy, proto neme zavlct do stromu -neprojektivitu. - -25.7.2002 - -Konen mm odladnou prvn verzi ve uvedenho, ale vsledek je -zklamnm (dosavadn maximum je zopakovno ve druhm dku): - -G 87142 - B 38888 - P 69,1 (77,8) -G 88273 - B 37757 - P 70,0 (78,6) -ve skutenosti nameno po vypnut poslednho vmyslu -G 88234 - B 37796 - P 70,0 (78,6) -tj. jet o 39 zvislost he, ale to me bt v dsledku chybky -nejen te, ale i pedtm - -Opravy ji zavench uzl opt zapnuty, ale povinn se ihned po -zruen zvislosti znova zavuje odpojen uzel. Velmi nepatrn -zlepen. - -G 87204 - B 38826 - P 69,2 (77,7) - -Z dodatench oprav jsou vyloueny uzly zaven v koordinacch. Zatm -jen velmi nahrubo, pokud je dcm uzlem "a" a jeho znaka nezan -na "J". - -G 87587 - B 38443 - P 69,5 (77,7) - -Podn implementace tho: s vyuitm globlnho pole @coord. - -G 87768 - B 38262 - P 69,6 (77,4) - - - -26.7.2002 - -Ale bude to chtt detailn srovnn analzy s dodatenmi opravami a -bez nich a porovnn chyb: kter zmizely a kter pibyly. Zatm poty: - -A 15060 ... poet pleitost, kdy to vbec lo zkusit -B 5205 ... poet pleitost k oprav (do t chvle to bylo patn) - Kdyby se vechny tyto pleitosti vyuily, byl by - vsledek analzy G 93439 - B 32591 - P 74,1. Bohuel se - vyuil jen zlomek z nich a naopak se v ad ppad - podailo ji dobrou analzu pokazit. - -POZOR! Ne ve, emu ve km "pleitost k oprav", musela bt -opravdu pleitost. Netestoval jsem, zda sprvn zaven u bylo v -tu chvli k dispozici. Tak nen sprvn odhadnuta spnost, kter by -mohlo bt dosaeno, protoe potm pokusy o opravu, ale u nkterch -uzl mohlo dojt postupn k nkolika pokusm. - -S 4783 ... bylo a zstalo patn -L 422 ... podailo se opravit -D 8506 ... bylo a zstalo dobe -H 1349 ... podailo se zkazit - -Oprava: dosud pi oprav patn fungovalo omezen povolench -zvislost na opravovan uzel. - -G 87783 - B 38247 - P 69,7 (77,4) -D 8789 - S 4823 - L 460 - H 1051 - -Spotny opravdov ance nco opravit, tj. nejenom e v okamiku -pokusu o opravu byl dan uzel patn zaven, ale e tak bylo k -dispozici jeho sprvn zaven. Vsledek: - -1497 anc celkem -1434 uzl, kter anci dostali aspo jednou -=> kdyby se vechny ance vyuily a nic nezkazilo, analza by skonila -takto: -G 89668 - B 36362 - P 71,1 :-( to je mlo... - -Zvr: Opravy uzl tmto zpsobem mohou analzu vylepit jen o 1,1 %, -co je v tto dob jet dost mlo. Kad procento je sice dobr, ale -my neumme zajistit, aby se v prbhu oprav souasn nepokazilo nco, -co u bylo dobe. Proto od oprav odstupuji, pinejmenm prozatm. - -G 88235 - B 37795 - P 70,0 (78,6) - - - -Pokus: pravdpodobnost zvislost (ne koordinac) nsobit doplkem -pravdpodobnosti, e dc uzel je koordinan spojkou (zameno -hlavn proti pehnanmu ven uzl na spojku "a" jet dve, ne je -k dispozici druh koordinan len). Taky nepomh: - -G 87884 - B 38146 - P 69,7 (79,3) - - - -29.7.2002 - -Kontrola sek mezi rkami pepracovna s pomoc pole zakzanch -zvislost. Pravdpodobnost nekoordinanosti zstv -zapnuta. Pochopiteln to znamen tlum spnosti. Uvidme, zda se -pozdji poda s novou implementac rkovch sek dostat zpt na -pvodn spnost. - -G 86807 - B 39223 - P 68,9 (80,1) - -Vypnuta pravdpodobnost nekoordinanosti. - -G 87078 - B 38952 - P 69,1 (79,7) - -Mezirkov seky: opt je pekroen rky povoleno ihned, jakmile se -dokon zvisl sek (viz t pokus 19.7.2002). Tentokrt to ovem -nepomohlo. - -G 86116 - B 39914 - P 68,3 (78,3) - -Pekroen rky je povoleno a po sestaven vech sek, bohuel se -nyn musm spokojit s spnost 69,1 % :-( - -G 87078 - B 38952 - P 69,1 (79,7) - - - -Pokus: nelze peskoit pedloku zvislost vedouc zleva doprava, -dokud tato pedloka nem dt. Opt se pouv ern listina $zakaz. - -31.7.2002 - -Vsledky pokusu jsou patn. Vpoet je tikrt pomalej (trv nyn -23:50 minut) a spnost klesla o 1,3 %. (Po nvratu k pvodnmu stavu -program trv 10:37 minut (dve to bylo kolem osmi?) a spnost je -opt 69,1 %.) - -G 85486 - B 40544 - P 67,8 (74,2) - -Poznmka: po pepsn pokusu s pedlokami program bel skoro stejn -dlouho (23:47 minut, co m pekvapuje, protoe nov implementace by -mla bt efektivnj) a vsledek se nepatrn li (k lepmu). - -G 85504 - B 40526 - P 67,8 (74,3) - -Objevena chyba v pehodnocovn zkaz peskakovn pedloek. Po -jejm odstrann se program zrychlil na 15:47 minut a zvedla se i -spnost: - -G 87512 - B 38518 - P 69,4 (80,5) - -Jak analyzovat vliv novho omezen? -1) Spustit parser bez novho omezen a vstup si schovat. -parse.pl -cp analyza.csts vystupy/omezeni-0.csts -2) Spustit parser s novm omezenm a vstup si schovat. -parse.pl -cp analyza.csts vystupy/omezeni-1.csts -3) Spustit program pro porovnn vstup nkolika rznch -parser. Tento program mj. ulo nov soubor, kde jsou slity vsledky -vech analz. - -2.8.2002 - -Vylenny vty, ve kterch zkaz peskakovn pedloek zhoril -alespo jednu zvislost. Je jich celkem 417. Vsledky, kdy je -peskakovn pedloek zakzno: - -G 6142 - B 3665 - P 62,6 (72,9) - -Zazlohoval jsem ladc soubory analyza-debug.csts a analyza.log a -poutm test s vypnutm zkazem peskakovn pedloek. - -G 6279 - B 3528 - P 64,0 (74,4) - -5.8.2002 - -Objevena chyba v urovn dlky hrany, konkrtn zda se mezi uzly -nachz i nenachz rka. Bez petrnovn dolo ke zhoren -spnosti (zkaz peskakovn pedloek je zapnut). Snad to bude -lep po petrnovn. - -G 87512 - B 38518 - P 69,4 (80,5) ped opravou -G 87124 - B 38906 - P 69,1 (80,5) po oprav - -Po petrnovn - slva! -: - -G 89639 - B 36391 - P 71,1 (82,5) po petrnovn - -Te jet zbv zjistit, jestli to bez zkazu peskakovn pedloek -nen jet lep :-| - -6.8.2002 - -Vypnutm zkazu peskakovn bezdtnch pedloek se nyn spnost -skuten zhor, i kdy pochopiteln ne na rove ped odstrannm -chyby. - -G 89323 - B 36707 - P 70,9 (81,9) - - - -Vzhledem k objeven chyb se jet jednou pokusm vyzkouet nsoben -pravdpodobnosti zvislosti pravdpodobnost toho, e dc uzel nen -koordinan spojkou. Zkaz peskakovn pedloek je aktivn. - -G 89453 - B 36577 - P 71,0 (82,9) # prst. nekoordinanosti aktivn -G 89639 - B 36391 - P 71,1 (82,5) # neaktivn - -Kupodivu jsem vsledky neaktivn verze nedokzal zreprodukovat a vyly -o trochu lep! - -G 89684 - B 36346 - P 71,2 (82,5) - -Analza: -88395 sprvn ped i po - 1289 sprvn pouze ped - 1058 sprvn pouze po -35288 patn ped i po -Kdyby se podailo zskat vechna "sprvn" najednou, bylo by -P = 72,0 %. -Pechodem z a0 na a1 se zhorilo 860 vt. Z toho mj. vyplv, e -prmrn dlka zhoren vty je 26 slov, co je o 10 vc ne prmr! -spnost tchto vt: - -G 13934 - B 8179 - P 63,0 (80,4) - a1 (aktivn) -G 14799 - B 7314 - P 66,9 (80,7) - a0 (neaktivn) - - - -8.8.2002 - -Nov pokus s podmiovnm pravdpodobnosti zvislosti etnost -zvislho uzlu. Plat i u koordinac, pestoe koordinace pak m rzn -pravdpodobnosti, podle toho, od kterho uzlu se dvme. Nemlo by to -ale vadit, protoe ve stejnou chvli by mly bt povoleny pohledy od -obou uzl, take prost vyhraje jen jeden z nich. - -G 14206 - B 7907 - P 64,2 (80,3) - a1 aktivn - -Vzhledem k mrnmu zlepen zkusme tot i pro cel testovac data. - -G 89562 - B 36468 - P 71,1 (a1) - -Zlepen je opravdu nepatrn. Zkusme jet pro a0 (neaktivn). A pak -zkusme souty vech udlost, kter se dan hrany tkaj. - - - -27.9.2002 - -Podmnn pravdpodobnosti zvislost, a0 (neaktivn). - -G 89103 - B 36927 - P 70,7 (a0) - -Opt zapnm a1, tj. nekoordinan zvislosti se podmiuj -neschopnost dcho uzlu bt koordinan spojkou. - -G 89562 - B 36468 - P 71,1 (a1, podm. p.) - - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -MOMENTALNE BOHUZEL MUSIM DELAT POKUSY S NECIM JINYM, ABYCH MOHL NAPSAT -CLANEK DO PBML. PAK SE ALE MUSIM K PRACI Z 8.8. VRATIT, PROTOZE NENI -DOKONCENA! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - - -27.9.2002 - -Hlavn mylenka lnku do PBML: chyby v morfologickm znakovn -zvyuj poet chyb syntaktick analzy. Zjistit, jak velk tento vliv -je, a navrhnout a odzkouet een. Mon een: 1) na vstup parsingu -poslat plnou morfologickou analzu; 2) opravovat znakovn bhem -parsingu (tm, e se rozhodnu pro njakou variantu syntaktick stavby, -vyluuji nkter varianty znakovn); 3) dlat si cel znakovn -sm; 4) jako 2 nebo 3, ale vytipovat nejzvanj chyby (pdy -podstatnch jmen). - -lnek by mohl bt tak o cizch slovech (Bank of America) a o jinch -ruivch vlivech na parsing (zpracovn slovek, atd. v koordinacch -atd.) - - - -11.10.2002 - -Nov srie pokus s parsingem na rznch zdrojch morfologie (pln -analza, automatick zjednoznann (HMM, maxent), run -zjednoznann). Pedchzejc takov srie probhla v roce 1998 v -Baltimoru na neredukovanch pozinch znakch, PDT 0.5 nehotov, -zhruba 13000 trnovacch a 3500 testovacch vt. Nyn vezmu analytick -trnovac data z PDT 1.0 (pes 70000 vt), z nich oddlm asi 5000 -testovacch vt (nevezmu je z sti PDT oznaen jako testovac, -protoe potebuju mt k dispozici i run morfologick anotace) a -zbytek ponechm pro trnovn. - -Pvodn trnovac data obsahuj 1583 soubor ze vech 4 zdroj. Nyn -je prv kad dest z tchto soubor zkoprovn do mtest dat (158 -soubor), zbytek do mtrain (1425 soubor). Zastoupen zdroj by tedy -mlo zstat zhruba ve stejnch proporcch. - -Ze veho nejdv musme zopakovat dosavadn pokus na znakch z -taggeru, protoe mme jinou mnoinu dat, a tedy se asi budou mrn -liit i vsledky. - -Nov trnovac data maj 65847 vt a 1133509 slov. Trnovn trvalo -8:38 minut. Nov testovac data maj 7241 vt a 122081 slov. Testovn -trvalo 16:30 minut. - -G 85968 - B 36113 - P 70,4 (d-d) - -Trnovn podle run morfologie trvalo jen 4:38 minut a soubor se -statistikou m 47 MB msto 63 MB! - -G 76697 - B 45384 - P 62,8 (h-h blb) - -To je dost podezel! Urit je tam njak chyba! Ano, u redukovanch -znaek zmizel druh znak (pd nebo poddruh). Znova: trnovn trvalo -5:37 minut a statistika m 54 MB. Jene jet chyb selektivn -lexikalizace znaek pro pedloky! Napotet trvalo trnovn 7:26 -minut, statistika m 63 MB a na prvn pohled je v podku. Testovn -trvalo 15:55 minut. Vsledky: - -G 87795 - B 34286 - P 71,9 (h-h) - -Nezjednoznann morfologie, varianty znaek se slep do jednoho -etzce, ppadn duplikty se odstran. Trnovn trvalo 12:33 minut, -statistika m skoro 90 MB. Testovn trvalo 12:17 minut. - -G 82498 - B 39583 - P 67,6 (m-m setzen) - - - -18.10.2002 - -Trnovn s nezjednoznannou morfologi, ale vskyt nejednoznan -oznakovanho slova se povauje za nkolik necelch vskyt -jednoznan oznakovanch slov. Trnovn trvalo 19:58 minut a -vsledn soubor m 63 MB. Testovn trvalo 37:31 minut. - -G 87634 - B 34447 - P 71,8 (m-m rozloen) - -Asi byla chyba ve ten znaek, take to budu muset zopakovat. Te se -ale zase musm vnovat nemu jinmu. - - - -25.10.2002 - -Nvrat k plnm trnovacm a testovacm datm. Vsledky jsou bohuel o -nco hor, ne byly naposledy s touto konfigurac, a nevm pro :-( -Tenkrt bylo P = 71,1 %. - -G 89343 - B 36687 - P 70,9 - -Potebuji zjistit, jak je to s spnost na slovkch. -spnost zavovn slovek, slovek s pdem a slovek bez pd: - -G 2646 - B 789 - P 77,0 -G 1184 - B 220 - P 84,3 -G 2030 - B 569 - P 72,0 - -spnost slov, kter mla zviset na slovkch, na slovkch -s pdem a na slovkch bez pd: - -G 1070 - B 542 - P 66,4 -G 298 - B 231 - P 56,3 -G 771 - B 310 - P 71,3 - -Nyn petrnujeme a pi ten pekroutme vechny slovky, aby visely -pod svm podstatnm jmnem. V dokumentaci musm zdraznit, e zatm -nijak neem to, e se mi te do koene negenitivn frze me dostat -slovo v genitivu (pozdji to budu muset eit jako u koordinac -propagac pdu nahoru). - -G 89311 - B 36719 - P 70,9 - -Dokonce mrn zhoren! Budu se muset podvat, jestli nen v programu -njak chyba, ale asi to bude tm, e nyn maj negenitivn frze -genitivn hlavy. Napsat do lnku, e to vyaduje hlub analzu -rozdl v chybch s a bez pekroucen. - - - -1.11.2002 - -Upravuji parser, aby nebyl tak nron na pam a mohl bet i -doma. Zkladn mylenka: pi trnovn se statistika rozdl na men -kusy, kter se natrnuj a ulo samostatn. Analza pak bude mt dv -fze. V t prvn se postupn vezmou vechny dl natrnovan -statistiky, projdou se s nimi analyzovan data a ke kadmu slovu se -ulo vpis ze statistiky pro vechny jeho potenciln rodie. Pot se -data projdou jet jednou, petou se uloen hodnoty u jednotlivch -slov a navrhnou se stromy. - - - -14.11.2002 - -Dotaena do konce prvn verze rozdlenho parseru. Skript train.pl se -zmnil jen trochu, zastav trnink vdy po tolika udlostech, kolik -udv promnn $konfig{split}, ulo natrnovan dl statistiky, -vyprzdn statistiku v pamti a zane od dalho trnovacho souboru -nanovo. Skript parse.pl byl vak rozdlen na markparse.pl, kter -projde testovac data postupn se vemi dly statistik a zape pmo -do dat statistiky zjitn o dotyn vt, a skript parsemark.pl, -kter jet naposledy projde testovac data, pete si v kad vt -uloen sla a na jejich zklad vybuduje nejlep mon strom. - -Kvli rychlosti testuju zatm dlen parsing pouze na jednom -testovacm souboru, lu01.a. Z parsemark jsem vyhzel veker nadstavby -typu koordinace i lokln konflikty, take spnost musela -klesnout. Vsledky ukazuj v prvnm dku dlen parsing, ve druhm -pvodn parse.pl (s vyuitm cel statistiky najednou): - -G 286 - B 295 - P 49,2 -G 618 - B 301 - P 67,2 - -Zatm je v programu njak chyba, kter zpsobuje, e se ani nepiad -vechny zvislosti. Budu muset zase rychle zavst ladc zznamy. - - - -15.11.2002 - -Po opraven chyby u se zpracuj vechny vty (a vechna slova) -vstupu. spnost to nepatrn zlepilo. Spodn dek opakuje pro -srovnn spnost nedlenho parseru na stejnch datech. - -A 919 - G 466 - B 453 - P 50,7 -A 919 - G 618 - B 301 - P 67,2 - -Pedlal jsem markparse tak, aby se ukldaly rzn udlosti vetn -koordinac. Parsemark ale te na chvli vyuv pouze OZZ (bez -lexikalizace) a spnost kupodivu poskoila o hodn. - -G 575 - B 344 - P 62,6 -G 618 - B 301 - P 67,2 - -Kombinace OSS a OZZ 1:1. - -G 570 - B 349 - P 62,0 -G 618 - B 301 - P 67,2 - -Kombinace OSS a OZZ v pomru $ls:(1-$ls) (0.734375:0.265625). - -G 575 - B 344 - P 62,6 -G 618 - B 301 - P 67,2 - -Jednoduch pidn koordinac, zatm bez ady akc dlanch dve -(propagace znaky len do koordinan spojky, kontrola povolenosti -partnera, nsoben pravdpodobnosti koordinace pravdpodobnost, e -slovo v koeni je koordinan spojkou...) - -G 569 - B 350 - P 61,9 -G 618 - B 301 - P 67,2 - -Pidn test, e druh vtev zvaovan koordinace je povolena. - -G 591 - B 328 - P 64,3 -G 618 - B 301 - P 67,2 - -Pidno nsoben pravdpodobnosti koordinace pravdpodobnost -koordinan spojky. - -G 585 - B 334 - P 63,7 -G 618 - B 301 - P 67,2 - -Opravena chyba: ztrcela se informace o povinnm pipojen druh plky -koordinace v ptm kole. - -G 612 - B 307 - P 66,6 -G 618 - B 301 - P 67,2 - -Pidno koprovn znaky lena koordinace do znaky koordinan -spojky. S spnost to nehnulo. - -G 612 - B 307 - P 66,6 -G 618 - B 301 - P 67,2 - -Pidna kontrola, e jedna koordinan spojka neme dit dv -koordinace, z nich jedna stoj "obkromo" kolem druh. - - - -21.11.2002 - -Viz minule, koordinace se hledaly jen pro spojky, kter u pro njakou -koordinaci nebyly vyuity. Prvn vsledek je s chybou - pouit spojky -se oznaovalo jako $afun = "Coord", jene $afun se pln u pi ten -vzorovho souboru a vechny sprvn spojky tak byly pedem -zablokovny. Druh vsledek je po prav, dky kter se pouit spojky -oznauje jako $afun = "CoordX". Tet vsledek je jako obvykle z -nerozdlenho parseru. - -G 581 - B 338 - P 63,2 -G 616 - B 303 - P 67,0 -G 618 - B 301 - P 67,2 - - - -12.12.2002 - -Snam se posbrat dochovan verze perlovho parseru a spojit je pod -CVS (Concurrent Versions System). Motivac je zejmna snaha najt -verzi ped pestavbou, kter umla 71,7 %, ale sbrm i jin. - -Verze z 1.2.2002, nalezen v zipu v zloze dat doma na -Amazonce. Zznamy z 1.2.2002 potvrzuj, e tenkrt bylo 60 % nejlep -dosaen vsledek. -G 75578 - B 50450 - P 60,0 - -Verze z 11.10.2002 se trnuje jen na 65847 vtch. Podle zznam z -11.10.2002 lo o nezjednoznannou morfologii setzenou do dlouhch znaek. -G 82498 - B 39583 - P 67,6 -Po pesmrovn dat se ovem vsledky zhor, protoe parser.ini z t -doby jet neumooval pepnat tak zdroj morfologie, tj. ten MMt v -nm bylo nastaveno natvrdo v kdu, ale v "hlavnch" datech takov -anotace nen. Take se rozhodovalo nhodn. -G 43983 - B 82047 - P 34,9 -Nadji skt fakt, e parse.pl v tto verzi jet neobsahuje proceduru -ud(). Zkoum tedy v parslib.pl pepnout mzdroj z "MM" na "MD", teba -se spnost jet vrt. - -13.12.2002 - -Verze z 11.10.2002 petrnovna a petestovna na znakch MDt a. -G 89562 - B 36468 - P 71,1 -Podailo se mi tedy najt verzi, kter jet dosahovala zatm nejvy -spnosti z 27.9.2002 (kdy jsem musel peruit vvoj a zat se -vnovat lnku do PBML). Pedtm se takov spnost objevila u -8.8.2002 pi poslednm pokusu ped odjezdem na Tchaj-wan. Tenkrt lo -o mal zhoren, co vak zstalo bez povimnut, protoe jsem -pechzel od malch dat k velkm. U 6.8. jsem toti doshl vsledku G -89684 - B 36346 - P 71,2, co bylo pro zmnu nevysvtlen zlepen -oproti vsledku z 5.8. (G 89639 - B 36391 - P 71,1). Ze zznam -vyplv, e z 5. na 6. srpna jsem zkouel zapnout pensobovn -pravdpodobnosti zvislosti pravdpodobnost nekoordinanosti dcho -lenu. Tento pokus spnost zhoril, ale po jeho optovnm vypnut -vzrostla o nco ve ne na pvodn rove! Vsledek z 5. srpna - svm -zpsobem posledn stabiln - byl dosaen po zkazu peskakovn dosud -bezdtnch pedloek a po odstrann njak chyby v urovn -vzdlenosti uzl (dlky zvislosti). - -Nyn zkusm na objevenou verzi s spnost G 89562 dt commit a pot -ovit, zda s jinm nastavenm nezlepme spnost jet na rove -6., nebo aspo 5. srpna. - -Po zapnut absolutnch pravdpodobnost (pabs=1): -G 89397 - B 36633 - P 70,9 - -Po vypnut pravdpodobnosti nekoordinanosti (nekoord=0, pabs=1): -G 89537 - B 36493 - P 71,0 - -Po vypnut obojho (nekoord=0, pabs=0): -G 89106 - B 36924 - P 70,7 - -Take nvrat k (nekoord=1, pabs=0): -G 89562 - B 36468 - P 71,1 - - - -Pro jistotu jet jeden cvs commit, potom se pesuneme k novj -verzi. Ta pochz z 25.10.2002 a mla by bt tedy po pestavb -umoujc pouvat slovnkovou morfologii (a pepnat zdroj -morfologie v parser.ini msto pmo ve zdrojku). - -spnost verze z 25.10.2002 u je opravdu ni, tj. pestavbou se -nco ztratilo (mzdroj je MD/a, take sprvn by vsledek ml bt -stejn jako 11.10.2002): -G 89311 - B 36719 - P 70,9 - -Ztratilo se 251 zvislost. Zkusme je najt pomoc rozdl v -analzch. Nejdv ale commitnout - zaevidovat verzi z 25.10., by -znamen zhoren. - -Verze k 8.8.2002 (11.10.2002) s MDt a nejlep dochovanou spnost -(71,1 %) byla v CVS otagovna jako "rel-1". A najdu chybu a opravm -ji ve verzi z 25.10.2002, nebo a hledn chyby vzdm, mohly by -souasn verze soubor z 25.10.2002 dostat tag "rel-2" a revizn slo -2.0. Soubory *.stat a *.csts by se mon mohly vyhodit z repository, -pokud to jet jde. - -Zkoumm, kde se ztratilo tch 251 zvislost. Ukazuje se, e se li -natrnovan statistiky v obou verzch, problm je tedy u pi -trninku. Diffem na zdrojky obou verz zjiuju, e pravdpodobn jde -o chybu pi zmnch v parslib.pl. Jednoduchou vmnou podezelho -regulrnho vrazu se sice nic nezmnilo, ale po vmn celho -parslib.pl chyba zmizela (statistiky jsou toton a spnost je tak -na pvodn rovni, tj. 71,1 %). - -Budu postupovat od star verze parslib.pl k novj a v prbhu budu -kontrolovat trnink na jednom trnovacm souboru. - - - -2.1.2003 - -Nalezena a opravena chyba v parslib.pl z 25.10.2002. Dosaena -spnost z 8.8.2002-11.10.2002: - -G 89562 - B 36468 - P 71,1 - - - -3.1.2003 - -Vechny verze zachovan do 11.12.2002 jsou nyn ji pevedeny pod -CVS. I verze po 25.10.2002 pouvaj opraven parslib.pl. Zkusm nyn, -zda si pln posledn verze NEdlenho parseru (kter ovem u -existuje paraleln s dlenm a sdl s nm trnovac skript train.pl, -kter se o ppadnm dlen dozv pouze z parser.ini) zachovv -spnost 71,1 %. - -Oprava parslib.pl: v obnoven verzi chybla funkce cas() pouvan -v dlenm parseru, doplnno. Oprava train.pl: etl z parser.ini -velikost blok pro dlen, ale nevdl, e velikost 0 znamen zkaz -dlen. Oprava parse.pl: neuml st statistiku z pracovn sloky; -ztratila se mu procedura vymazat_vetu() (zejm byla v chybnm -parslib.pl). Tak neuml do tto sloky zapisovat sv vstupy -(analyza.csts, analyza-debug.csts, analyza.log). - -G 89562 - B 36468 - P 71,1 - -Heurka! Nedlen parser tedy peil ve sv nejlep verzi a dlen je -mon vyvjet paraleln, kdy na nj zrovna bude as. Potvrzuji stav -CVS. - - - -14.1.2003 Nov Hut - -Doasn nemu pout cel trnovac data, omezuju se na soubory -z eskomoravskho Profitu (c*). Testovac data jsem zatm pouil -cel, i kdy kvli rychlosti je poslze taky omezm. Testovn na -celch datech trvalo nco mlo pes 1 hodinu. - -G 86730 - B 39300 - P 68,8 - -Men data: pouze soubory lu*, 2294 vt, 39539 slov. Testovn trv -19:54 minut. - -G 27845 - B 11694 - P 70,4 - - - -16.1.2003 - -Test na pouze jednom souboru: lu01.a. - -G 632 - B 287 - P 68,8 - -Kdy se za pravdpodobnost povauje etnost (slovn etnost -kombinovan se znakovou etnost vahami danmi konfigurac, ale -nepeveden na pravdpodobnost). - -G 625 - B 294 - P 68,0 - -Zhoren by mlo odpovdat zapnut absolutn pravdpodobnosti -(konfig{pabs}), kterou v tomto ppad nelze vypnout. Hned to -vyzkoume: vrtme se k pvodn procedue, ale zapneme pabs. -Jene ve skutenosti dolo ke zlepen. Hm, to nechpu. - -G 642 - B 277 - P 69,9 - -Pouze sest slovn a znakovou etnost, ale nevyvaovat je. (Odpovd -vahm 0,5:0,5.) - -G 617 - B 302 - P 67,1 - -Pidat etnosti slovo-znaka a znaka-slovo. - -G 609 - B 310 - P 66,3 - -Pidat etnosti neberouc v vahu vzdlenost a smr. - -G 578 - B 341 - P 62,9 - - - -30.1.2003 Praha - -Nvrat k plnm datm. CVS commit, vsledky stle stejn jako loni v -srpnu, pro osven: - -G 89562 - B 36468 - P 71,1 - -Pokus se zsobnkem stav (zatm se jen buduje, ale nepouv). Nkde -bude asi bug, protoe nejen e to trv 1:04 hodiny, ale jet ke vemu -to nedv stejn vsledky. - -G 89295 - B 36735 - P 70,9 - -Po vypnut ukldn stavu se spnost vrtila a vpoet trval jen 18 -minut. - -Kdy jsem nechal ukldn stavu vypnut, ale zapnul jsem kolem nj -pokusn pidn a optovn ubrn zvislosti ze stromu, spnost -klesla na 70,9 % - pridat_zavislost() a ubrat_zavislost() tedy -nevracej parser do pvodnho stavu! Analza trvala 37 minut. - -Naopak kdy jsem toto pidvn zatrhnul, ale dovolil jsem ukldn -stav (stle stejnch, to nen pro hash tak nron), analza trvala -21 minut a spnost byla 71,1 %. Dalo by se tedy obejt funkce -pridat_zavislost() a ubrat_zavislost() (nap. tak, e bych pro -ukldn pouze pidal run do ukldanho seznamu jedno slo), to asi -nakonec udlm kvli efektivit, nicmn chybu v obou funkcch je -nutn najt a opravit. - - - -31.1.2003 - -Chyba ve funkcch pridat_zavislost() a zrusit_zavislost() opravena -tak, e byla vytvoena tet funkce zjistit_povol(). Bohuel se -ukazuje, e sprvn vytvoen seznam povolench zvislost byl ten, -kter vedl na ni spnost. Vsledky jet nejsou definitivn, -protoe na novou funkci se jet nepelo v celm programu. Seznam -povolench se te nebude prbn udrovat, nbr potat a ped -hlednm nov zvislosti. Je to pomalej jen o mlo: cel analza -trvala necelch 20 minut, oproti verejm 18 minutm starou metodou. - -G 89296 - B 36734 - P 70,9 % - -Po plnm odstrann $povol spnost jet klesla. Asi jsem dosud -nhodou nepovoloval njak zvislosti, kter nebyly dobe. Funkce -zjistit_povol() se te vol na dvou mstech, ale pjde to snit na -jedno. Analza trv 23 minut. - -G 89196 - B 36834 - P 70,8 % - -Odstranil jsem druh voln zjistit_povol() ze -zjistit_moznosti_zaveseni(), msto toho se seznam povolench pedv -shora z generovat_stavy() pes lokalni_konflikty(). Taky jsem pln -odstranil promnn @rspan, @lspan a $soused, ale ty u se v tu chvli -nikde nepouvaly. Pesto se pokazilo 9 zvislost. OPRAVIT! - -G 89187 - B 36843 - P 70,8 % - - - -3.2.2003 - -Opt pidno druh zjistit_povol(). Chyba zmizela, take problm nebyl -v @lspan, ale tady! - -G 89196 - B 36834 - P 70,8 % - -Problm odstrann, zjistit_povol() se vol jen jednou bhem pidvn -jedn zvislosti, analza trv 22 minut na potai loki. spnost -zstv 70,8 %. - -Pokusil jsem se pejt na slovnkovou morfologii. Podle pokus na -nhradnch testovacch datech vylennch z trnovacch dat (a ovem -nepouitch v danm pokusu pro trnink) mla vyjt dokonce lpe ne -run morfologie, a zeteln lpe ne morfologie z taggeru. Tady to -vak tak ani trochu nevypad. Bu jsem udlal chybu tehdy, nebo te. - -G 82258 - B 43772 - P 65,3 - - - -4.2.2003 - -Vracm se k morfologii z taggeru. -Bhem dne dlm rzn pokusy s vtami o dlce 5, s pedlokami a s -peskakovnm sourozenc. Nic z toho zatm nen dotaeno, nicmn mm -vsledky pro tento pokus: N2 nesm peskakovat svho sourozence -vlevo. Pokud by to chtla udlat, tj. pokud mezi n a zamlenm -dcm uzlem le jin uzel, kter pmo nebo nepmo nezvis na n, -nbr na dcm uzlu, dostane takov zvislost pravdpodobnost -0. Vsledek ukazuje, e to mrn zlepen pin, a e bych se tedy -peskakovnm ml dle zabvat. - -G 89448 - B 36582 - P 71,0 - -Jet drobnost. Do manipulace s morfologickmi znakami pidna -transformace adovch slovek na pdavn jmna. Zlepen u tech -slov :-) - -G 89451 - B 36579 - P 71,0 - - - -5.2.2003 - -Zjiuju plodnost koene. Prvn pokus: po vybudovn stromu se zjist, -kolik dt m koen. Pokud jich m vce ne 2, vybere se koncov -interpunkce a nejpravdpodobnj dal dt, ostatn se odpoj a -pipoj jinam. Nevhody: tento pstup zatm neumouje nahradit jedno -sloveso koordinac sloves a obecn nedovoluje ostatnm uzlm na zmnu -reagovat. Pesto dolo k celkem viditelnmu zlepen. Zhorila se -ovem asov nronost (analza trvala 32 minut), a to proto, e do -koordinac bylo nutn pidat kontrolu povolenosti druh hrany. Mlo by -to jt alespo sten opravit, protoe seznam povolench zvislost -si lze pamatovat a dodat jako parametr. - -G 89765 - B 36265 - P 71,2 - -Druh pokus: zakzat zaven na koen a na koncovou interpunkci a do -konce. Bohuel se zd, e tento pstup pinesl vc kody ne uitku. - -G 89509 - B 36521 - P 71,0 - -Prozatm tedy nvrat zpt: - -G 89765 - B 36265 - P 71,2 - -Pidn ji vera vyzkouen pokus s vtami dlky 5 (zatm se -rozpoznv pouze vzorec "Praha (pt) -"). - -G 89978 - B 36052 - P 71,4 - - - -6.2.2002 - -Pokusy s rkami a zvislostmi na nich. Prvn piblen: na rce -nesm nic viset, protoe pak by to musela bt koordinace nebo apozice, -a ta se e jinde. - -G 90992 - B 35038 - P 72,2 - -Jup!!! - - - -13.2.2003 - -Po njakm vrtn poklesla spnost. Blb je, e u si nepamatuju, co -to bylo za pokus. Myslm ale, e lo o vypnut loklnch konflikt, -protoe jejich statistika je tentokrt przdn. Vypnuty byly pi -trninku, pi testu ne, ale vsledek je stejn. Byly vypnuty kvli -njak chyb (cyklilo se to), doufal jsem, e teba spnost sp -kaz, jejich statistika tomu napovdala. Ovem ony asi vylepuj -spnost ostatnch zvislost... - -G 90610 - B 35420 - P 71,9 - -Lokln konflikty znovuzprovoznny, ale spnost stle nen na -pvodn rovni. Budu si muset nechat zjistit rozdly mezi verz -parseru ze 6.2. a tou dnen. - -G 90833 - B 35197 - P 72,1 - -Ohledn rozdl. -parslib.pl ... nco se dje s koordinacemi a s apozicemi (ddn -znaek) - s apozicemi se dve nedlalo nic. Je ovem otzka, odkud se -tahle funkce vol. -train.pl ... li se, ale zatm se zd, e v nepodstatnch vcech -(pesunut mechanick prce kolem otvrn a prochzen soubor do -knihovny parslib.pl, pesunut mazn vty po jejm zpracovn tamt) - -Zvr: nenael jsem rozdl, kter by mohl zpsobovat rozdl v -spnosti. Zkusm tedy pustit parser ze 6.2., aby se vidlo, zda -vbec m spnost, kvli kter jsem ho zlohoval. A na vsledek se -pijdu podvat a ztra :-) - - - -14.2.2003 - -Parser z 6.2.2003 m opravdu spnost 72,2 % (G 90992 - B -35038). Nael jsem chybu, kvli kter pestaly fungovat tet a dal -leny koordinac (bylo nevhodn poadovno povolen pidn budouc -hrany v okamiku, kdy pidn nemohlo bt povoleno). Po jejm -odstrann se obnovila spnost z 6.2.2003: - -G 90992 - B 35038 - P 72,2 - -Provdm cvs commit a mau vybalenou verzi z 6.2.2003. -Vylepena efektivita zjiovn povolench hran v procedue -zjistit_pravdepodobnost_koordinace(). Bohuel bhem testovn naas -vypadl jeden z disk, take nelze ct, o kolik se vylep as na -analzu. Te kvli vpadku trvala 40 minut. Ovil jsem vak alespo, -e oprava nezpsobila njak nov chyby, po kterch by poklesla -spnost. - -G 90992 - B 35038 - P 72,2 - - - -17.2.2003 - -Konen dopsn prototyp knihovnch funkc pro ddn morfologickch -znaek u koordinac a apozic. Otestovno trnovn i analza, zda -nebyly zavleeny chyby a zejmna zda to nepad. Zatm se ovem znaky -dd, ale ty zddn se k niemu nepouvaj, take opravdov zkouka -ohnm teprve bude. Trnovn trvalo 9:31 minut, analza trvala 26:40 -minut. - -G 90992 - B 35038 - P 72,2 - -Pokus s pouitm ddnch znaek pi trninku na udlosti OZZ, OSZ, -OZS, ZZZ, ZSZ, ZZS a ZPV (pseudovalence), ne na koordinaci (KZZ, -UZZ). A vbec ne pi parsingu. Zatm to pineslo zhoren, co pi -omezenosti pouit nen a tak divn. Udlost po trninku je te -3354115 (vc, dve pod 3300000), trnovn trv 13:19 minut -(!). Analza trv 26 minut. - -G 89791 - B 36239 - P 71,2 :-( - -Musm zjistit, zda hlavn pot nen v tom, e kvli chybnmu -znakovn koordinace leckdy sdruuj leny s nekompatibilnmi -znakami, a ty pak chybn ovlivuj znaku cel koordinace i jej -vztahy. Zjistit, zda by pomohlo, kdyby se alespo v koeni ponechaly -duplikty znaek (tj. nejastj znaka by mla tak nejvt -vhu). To se toti nyn nedl, protoe mechanismus pro zpracovn -seznamu znaek pot se znakami z morfologick analzy. - -Te se tak dvm... Taky je to mon tm, e se pi trninku -alternativy ve znakch vbec nerozsekaly! Tam se toti testuje, -jestli je zdroj morfologie "MM", a to nen! - - - -18.2.2003 - -Vypnm ddn znaky, vrtm se k nim za pr tdn. Te musm nutn -vytvoit nco, o em pjde napsat na ACL, a to ddn znaky -nejsou. Mla by to bt subkategorizace - tentokrt pouit jako -vstupn filtr. - -Filtr se bude snait zabrnit tomu, aby vce ne jedno doplnn -stejnho druhu rozvjelo tot sloveso, pokud toto sloveso nem rmec, -kter opakovn pipout. Netk se volnch doplnn (zejmna -psloven uren asu a msta "kde"). Naopak se to tk podmtu -(lpe: podstatnho jmna v 1. pd), i kdy podmty v rmcch -neevidujeme. - -Obecnji: pokud na slovesu vis nco, co vypad jako vnitn doplnn, -ale sloveso to nem v rmci, vyvolat poplach. Mon, e jin sloveso -si to rdo vezme. - -Na druh stran: pokud to vypad, e slovesu nco chyb, poohldnout -se, jestli to v okol nepebv (tj. je to tam a nikdo jin na tom -nesed ze subkategorizanch pohnutek). Pokud ano, vyvolat tak -poplach. Zjistit, e slovesu nco chyb, nen pln triviln. Znamen -to, e musme projt vechny jeho rmce a najt takov, kde toho chyb -nejmn. Z prohledvn jsou vce mn vyloueny rmce, kter zavrhuj -nco, co naopak na slovesu vis (ale ne absolutn: me to tam toti -viset omylem). - -Seznam rmc by mohl bt nov, pozen novm perlovm kdem, hlavn -vak z nov verze treebanku, a asi nejen pro slovesa, ale pro vechny -slovn druhy, u kterch se njak preference vysleduj. - - - -Ovem po shldnut souboru se statistikou usuzuji, e nejdv by se -mohla vylepit pseudovalence. Ze slovesn znaky by se k heslu mlo -pipojit pouze poten "V", ale nikoli znak za nm, urujc as a -zpsob. A vbec by se neml brt ohled na smr a dlku zvislosti. - -V trnovacch datech zaznamenno 3149779 udlost. Trnovn trvalo -11:44 minut. - -prava pseudovalence: Bohuel jsou vsledky jet hor :-( - -G 88442 - B 37588 - P 70,2 - -Poddruh ze znaky asi nebyl nedleit, protoe rozlioval inn rod -od trpnho, a ty maj rzn rmce. Taky infinitiv a rozkazovac zpsob -jsou dleit, protoe nemaj podmt. Mon by se nemuselo rozliovat -mezi nimi navzjem, stejn jako mezi ptomn-budoucm a minulm -asem, ale to u jsou asi jen drobnosti. - -Zkusm tedy vrtit znaku, ale zatm nevrtit smr a dlku -zvislosti. - -Udlost je te 3178791. Trnovn trvalo 9 minut. - -G 90613 - B 35417 - P 71,9 - -Vracm i smr a dlku. Opt 3225713 udlost, trnovn trvalo 9:40 -minut. - -G 90992 - B 35038 - P 72,2 - -Dalm pedbnm pokusem by mohl bt zkaz peskakovn vznamovho -slovesa kvli nadazenmu modlnmu slovesu vnitnmi doplnnmi (tedy -pro tyto ely dejme tomu mkoliv s vjimkou R6 a D). Je to obdoba -ji vyzkouenho zkazu peskakovn N2 jinm N2. - -G 90774 - B 35256 - P 72,0 - -Rum zkaz, ani bych v tuto chvli podrobnji zkoumal, pro to -nefunguje. - -G 90992 - B 35038 - P 72,2 - - - -19.2.2003 - -Pokus s valenc. Jestlie na slovesu u vis N1, zakzat zaven -druhho N1 na tot sloveso. - -G 90437 - B 35593 - P 71,8 - -Pokraovn pokusu: ve uveden zkaz se netk slovesa "bt" -(psudek jmenn se sponou). - - - -5.3.2003 - -Deadline ACL Sapporo jsem provihnul, take se mu vrtit k vzkumu -:-) Pro zatek zkontrolujeme, e mme parser ve zdravm stavu, tj. e -dosahuje dosud nejlep dosaen spnosti 72,2 %. - -G 90992 - B 35038 - P 72,2 - -Dle se podvme na stav, v jakm bylo zanechno zpracovn koordinac -a apozic. Opustili jsme ho 18.2., naposledy se s nm nco dlo -17.2. Bylo rozchozeno ddn morfologickch znaek, ale jeho vyuit -pi syntaktick analze jet nebylo bezchybn a tak zhorovalo -spnost analzy. - - - -13.3.2003 - -Odstranny njak chyby v ddn znaek a jeho vyuit pi -trninku. spnost se ovem stle zhoruje, ale asi mi nezbyde, ne -to povaovat za nezbytnou drobnost na cest ke konenmu -vtzstv. Jet nemm prozkouman detaily, ale seln vsledky jsou -nsledujc: - -G 90465 - B 35565 - P 71,8 - -Jako obvykle je skuten pbytek chyb vt, ne tch 527 zvislost, -protoe na nkterch mstech se analza na opltku -zlepila. Konkrtn: - -Poet rozdlnch nzor pedchzejcho a souasnho parseru: 5814. -Z tohoto potu ml star parser dobe 1570, nov 1043. Nov parser -tedy pinesl 1570 zhoren a 1043 zlepen. V nzoru na ostatn -zvislosti z uvedench 5814 se parsery sice liily, ale oba ho mly -patn. - - - -14.3.2003 - -Prce na notebooku (Intel Celeron 800 MHz, 250 MB pamti, z toho, -zd se, asi 100 MB vyuij Windows ME). Trnink v pln i by se -sem neveel, ale analza ano, pokud ze statistiky odstranme vechny -udlosti, kter nebyly vidny vce ne jednou. Velikost souboru se -statistikou klesne ze 67 na 18 MB. spnost klesne pouze nepatrn: - -G 90759 - B 35271 - P 72,0 - -Pesto asi budu v praxi pro testy pouvat jen malou st dat, -protoe analza cel mnoiny trv dvakrt dle ne na lokim: 1:28 h. -Omezme se na soubory lu* (48 soubor). Jejich analza trv 26 min, -co odpovd dob potebn na lokim k analze vech dat. - -G 29205 - B 10334 - P 73,9 - -Stejn pokus na stejnm potai, ale pod Linuxem, je jednak del -(43 minut), jednak m ni spnost!!! Jedin vysvtlen, kter m -napad, je, e tento Linux ji msto ISO Latin 2 pouv Unicode -UTF-8, take nefungovaly lexikalizovan statistiky. - -G 28184 - B 11355 - P 71,3 - -Objevil jsem pravdpodobnou pinu, pro klesla spnost po -natrnovn na zddnch znakch. Zmnil se toti poet zvislost -N1-N1: dve vtzil smr zleva doprava, nyn zprava doleva. To -znamen, e zddn znaka se dostala do zvislosti s tm, kdo ji -zddil. Napklad by k tomu mohlo dojt u apozic, protoe koordinace -jsou v trninku u z dvjka podchyceny, ale apozice ne. - -Dle: slova a hesla by se mla ddit stejn jako znaky. - -Dle: na rozdl od dvjho ddn koordinac nyn ddme celou -skupinu znaek (podobn jako u morfologie ze slovnku). Pi evidenci -zvislost u se to vyuije, ale mlo by se to vyut i pi evidenci -koordinac a apozic. Nyn by se zaevidovala koordinace vdy, kdy -dc uzel m s-znaku Coord nebo Apos, a to mezi znakou zvislho -uzlu a vemi ostatnmi znakami v seznamu ve zddn znace dcho. - - - -28.3.2003 - -Nvrat na pota loki (Intel Pentium 4, 1.8 GHz, pam 1.5 GB). -Kontrola, e parser je ve stavu, v jakm si myslm, e jsem ho -zanechal. - -G 90465 - B 35565 - P 71,8 - -OK, je to stejn jako 13. bezna ped odsthovnm na -notebooka. Analza trvala 30 minut. - -Opraveno: pi ddn znaek se za lena koordinace neoznaila -pedloka, ale podstatn jmno pod n. Nyn u se oznauje -pedloka. Petrnovn trvalo 15 minut, zaznamenno 3301150 -udlost. - -G 90588 - B 35442 - P 71,9 - -Opraven zpsob, jakm se pi trnovn oddlovaly zvislosti od -koordinac. Dosud se nkter koordinace omylem zapotaly i do -zvislost, naopak zvislosti celch koordinac na nem se -vynechvaly apod. Nyn pi ddn znaek souasn buduju pro kad -uzel pznak, zda je lenem njak koordinace, take by to mlo -fungovat sprvn (pinejmenm tak sprvn, jak funguje ddn znaek) -a navc by to nov mlo zahrnovat i apozice. Petrnovn trvalo 18 -minut, statistika obsahuje 3222068 udlost (to dv smysl, byl -odstrann um chybnch udlost). - -G 90893 - B 35137 - P 72,1 - -Nyn jedin dal zmna: v train.pl se za koordinaci povauj nejen -konstrukce zen uzlem s s-znakou Coord, ale tak Apos. Trnovn -trvalo 13:30 minut, zjitno 3225577 udlost. - -G 90634 - B 35396 - P 71,9 :-( - - - -31.3.2003 - -Snam se vyut existenci alternativ u znaek -v koordinacch. Opravuji chybu - regulrn vraz se nedoke smit -se znakou "Z(". Zjitno 3242983 udlost. Trnovn trvalo 11 -minut. - -G 90465 - B 35565 - P 71,8 ;-(( - -Je to ale njak divn, protoe nejetnj koordinace jsou ty, kter -neobsahuj partnera. Opravena chyba. Zjitno 3009050 -udlost. Trnovn trvalo necelch 11 minut. - -G 90420 - B 35610 - P 71,7 - - - -3.4.2003 - -Zahajuji pestavbu parse.pl, kter mi umon paraleln parsovat podle -dvou rznch model a porovnvat jejich spnost. Souasn je to -vten pleitost vyistit po msce nabalovan kd. Dnes u to ale -nestihnu. Zatm jen paraleln bel pokus s neddnmi znakami. Ml -by dopadnout stejn jako 5.3.2003, ale jedna zvislost se nkde -ztratila, ert ji vem. - -G 90991 - B 35039 - P 72,2 - - - -16.4.2003 - -Dokonen pestavby odloeno na neurito. Te udlm jen jednu vc, -budu u kadho uzlu vypisovat seznam zvislost, kter byly povolen v -okamiku, kdy byl uzel zaven. S pomoc takovho vpisu bych ml bt -schopen najt chyby zpsoben posledn zmnou parseru. - -Zatm ale musm opravovat parser, aby byl opt provozuschopn, ten -pokus o pestavbu ped dvma tdny ho zjevn dostal do nekorektnho -stavu. Test poutm na oezan statistice (pouze udlosti, kter se -staly vce ne jednou), take spnost nebude standardn. - -G 90074 - B 35956 - P 71,5 -Poutm tedy jet tot na pln statistice. -G 90252 - B 35778 - P 71,6 - - - -9.5.2003 - -Potvrzen ve uveden posledn vsledek, ani bych si ovem pamatoval, -jakmi zmnami parametr k nmu dolo (u toti pamatuju i -lep). Analza na lokim trvala 32 minut. Zkoum ji jet pustit na -shrekovi s lokln kopi dat, ale zrychlen nen na pohled nijak -impozantn, trv to te 28 minut. - -Zkusm se vrtit k verzi ped hrtkami s apozicemi. Situaci mi -komplikuje zmizen sloky CVSROOT na FALu, ale natst mm njakou -zlohu z 13.3.2003 na notebooku, tak uvidme. - -Vsledky na souasnch datech (ovem tch "normlnch", nezskanch na -zddnch znakch), jsou skuten ty sprvn. - -G 90992 - B 35038 - P 72,2 - - - -12.5.2003 - -Musme pijt na to, kde je v novm parse.pl chyba, e jeho spnost -je pi pouit tho modelu hor. Omezme test na men data. - -star: G 672 - B 247 - P 73,1 -nov: G 665 - B 254 - P 72,4 - -Rozdly mezi parse.pl a parse1.pl jsou pli rozshl. Zkusme -nejdve zjistit, zda chyba nen v parslib.pl. Nechme star parse.pl, -aby pouval nov parslib1.pl. - -G 672 - B 247 - P 73,1 - -Chyba je tedy pmo v parse1.pl. Budu se postupn pesouvat od -parse.pl k parse1.pl. Prvn krok: pidm proceduru rozebrat_vetu(), -ani bych ji pouil. - -G 672 - B 247 - P 73,1 - - - -13.5.2003 - -Star kd nahrazen knihovn (parslib.pl) funkc -projit_data(). Vsledky zstvaj v podku. - -G 672 - B 247 - P 73,1 - - - -14.5.2003 - -Zvltn zpracovn vt o pti slovech posunuto v kdu v. spnost -se snila. Je to asi tm, e na konci z podmnky vypadly njak vci, -kter se maj dlat i pro ptislovn vty. - -G 667 - B 247 - P 73,0 - -Opraveno. - -G 672 - B 247 - P 73,1 - -Kmen razu je spojovn koene s koncovou interpunkc. Po jeho -pesunut do funkce generovat_stavy() se zjevn parser zaal chovat -jinak (a he). - -G 665 - B 254 - P 72,4 - -Opraveno. - -G 672 - B 247 - P 73,1 - -Nakonec pepnm na funkci rozebrat_vetu(). Krtk vzorek zstv -funkn. Te tedy pro jistotu otestujeme cel testovac data. Je to v -podku, stejn jako vsledky z 5. bezna! - -G 90992 - B 35038 - P 72,2 - -Pechod ze starho na novj parse.pl dokonen. spnost zstv -nesnen. - -Te zpt k spnosti koordinac a zddnch znaek. Vezme-li se -statistika natrnovan na zddnch znakch, spnost na lu01 -vrazn klesne: - -G 660 - B 259 - P 71,8 - -Te je jet poteba dt do podku train.pl. V souasnm stavu na -73088 vtch zjist 2998340 udlost. Bohuel, tohle nen to "sprvn" -trnovn z pohledu testu na lu01. - -G 662 - B 257 - P 72,0 - -V train.pl na dcch 181 a 182 vymuji zddn znaky za -vlastn. Nalo se 2979202 udlost. spnost na lu01 vzrostla, ale -pod jet nen train.pl v pvodn kondici. - -G 670 - B 249 - P 72,9 - - - -15.5.2003 - -Pokoum se pepnout do star verze train.pl, ale asi nen dost -star, protoe se v n tak pouvaj zddn znaky. Statistika -obsahuje 2351310 udlost. Vsledek je dost dsiv. - -G 506 - B 413 - P 55,1 - -Ze stejn verze jsem odstranil pouvn zddnch znaek. Statistika -obsahuje 3225713 udlost. - -G 672 - B 247 - P 73,1 -G 90991 - B 35039 - P 72,2 - -Ve velkm testu se ztratila jedna zvislost. Zkoum train.pl vytaen -z mezitm opravenho CVS. Statistika obsahuje 3225713 udlost a -zejm je toton se statistikou zskanou o pokus dve. Kdy vak -tento train.pl pustm v pvodnm kontextu, tedy zejmna s pvodnm -parslib.pl a na pvodnch datech (neobsahuj nezjednoznannou -morfologickou analzu), dostanu sice tak 3225713 udlost, ale -velikost souboru se statistikou se asi o 10000 bajt li. - -G 90992 - B 35038 - P 72,2 - -Poutm tento star train.pl se starm parslib.pl, ale s morfologicky -analyzovanmi daty (nemlo by to vadit se stejn nepouij, -pouij se ). Vsledn statistika je pravdpodobn shodn s -vtznou (dosahujc G 90992). - -Poutm tedy tot, ale s novm parslib.pl. Statistika obsahuje -3910869 udlost, co je dost divn. Zbytek musm odloit na ztek. - - - -16.5.2003 - -V novm parslib.pl se starm parser.ini se nezapnula redukce znaek. - - - -21.5.2003 - -Pokrauju v testovn starho train.pl a hledn optimln -konfigurace. V parser.ini, pouvanm starm train.pl, u pibyl -parametr upravovat_mzn = 1, kter si pete nov parslib.pl. Poutm -star train.pl s novm parslib.pl a s parser.ini upravenm ve -uvedenm zpsobem. Vstupem bude statistika-md.stat s datem 21.5.2003 -a asem nco po 12:28. Statistika obsahuje 3225713 udlost. Velikost -souboru je 68527045, to je ta patn. Chyba se tedy asi skrv v -parslib.pl. - - - -22.5.2003 - -Prce na notebooku. Omezuji trnovac i testovac data na -eskomoravsk profit (soubory zanajc na "c"). Nalezeno 252 -trnovacch soubor. Zpracovno 11300 vt. Nejdel vta obsahuje -132 slov. Trnovn belo 4:56 minut (dal men: 4:20, 4:18, -4:34). Prmrn doba 272 vtein, prmrn rychlost 42 vt / s. -Na Amazonce, ale s daty tahanmi po sti z Conga, to trvalo 6:20. -Kdy se netahaj data po sti, trv to 6:19 (musel jsem nicmn -vyut sov sluby a pipojit si lokln disk jako sov, ale -hlavn zpomalen stejn nejsp tkv v procesoru a pamti). -Prmrn rychlost ve Windows 2000 na Amazonce in 30 vt / s. -Statistika obsahuje 607328 udlost a m 12849 kB. - -S pouitm starho parslib.pl trv trnovn 5:12 minut. Statistika -obsahuje 607328 udlost a m 12847 kB. - -Upraven star parslib o rozdl . 3 (kontrola spchu RE na a -). 6:47 minut, 12847 kB. Tento rozdl tedy roli nehraje. - -Star parslib upraven o rozdl . 2 (volitelnost "upravovat_mzn"). -7:23 minut, 12847 kB. Tento rozdl tak nehraje roli. - -Star parslib upraven o rozdl . 1 (budovn $anot[$ord]{mznlist}). -4:51 minut, 12847 kB. Tento rozdl tak nehraje roli. Rozdl, kter -hledme, nen ve funkci zpracovat_slovo(), protoe ta u je te -v obou verzch stejn. - -Vyprzdnna funkce transformovat_koordinace(). -5:46 minut, 12847 kB. Tento rozdl tak nehraje roli. - -Zruena funkce transformovat_slozene_predlozky(). -5:29 minut, 12847 kB. Tento rozdl tak nehraje roli. - -Vymnny vnitnosti funkce projit_data(). -4:58 minut, 12849 kB. Tady nkde je ten rozdl! - -Vnitnosti vrceny, pouze pidna prava znaek koncov interpunkce. -4:49 minut, 12849 kB. To je ono! - - - -23.5.2003 - -Chyba byla v tom, e se koncov interpunkce oznaovala dvakrt pes -sebe, jednou v parslib.pl a podruh v train.pl. Po odstrann -druhho oznaovn z train.pl a ponechn prvnho v parslib.pl m -vsledn statistika opt jen 12847 kB. Trnovn trvalo 4:52 minut. -Po spojen takto opravenho train.pl s novm parslib.pl zstv -12847 kB. - -Nov train.pl obsahuje jednak svj nov kd, jednak voliteln -kompletn star kd. Star po oprav oznaovn koncov interpunkce -produkuje 12847 kB, nov vak stle nem ani sprvn poet udlost -(561619 msto 607328). - -dek 141: netestovat Apos, ale jenom Coord -dek 174: pouit $anot[$i]{coordmember} -dky 183 a 184: pouit zddnch znaek v zvislostnch udlostech -dky 206 a 257: podivn else-blok, tk se asi koordinac - -Do domcch testovacch dat zaazuji soubory zanajc na "lu0". -Celkem 9 soubor, 445 vt, 7901 slov. Testovn trv 6:36 minut. -G 5689 - B 2212 - P 72,0 - -Pokus s pravou trnovn. Msto na pm testovn, zda j nebo mj -rodi mme funkci Coord, se spolhme na anotaci coordmember, zji- -ovanou pi ten vstupu. Tato anotace ale zahrnuje i apozice a -nept se na mho rodie. -Trnovn trvalo 5:09 minut, statistika obsahuje 557955 udlost a -m 11885 kB. Vsledky testu: -G 5697 - B 2204 - P 72,1 - -V train.pl zavedeny dva rozskoky: -$alt[0] = 0 ... coordmember je dt koene koordinace, i kdyby nebylo - jejm lenem -$alt[0] = 1 ... coordmember je len koordinace, i kdyby nebyl dttem - koene, ale jeho vzdlenjm potomkem (teba pes - pedloku) -$alt[1] = 0 ... pouze Coord -$alt[1] = 1 ... i Apos se zpracovv jako koordinace - -Konfigurace 00 odpovd starmu (a zatm nejspnjmu) train.pl: -5:10 minut, 607328 udlost, 12847 kB. -G 5689 - B 2212 - P 72,0 - -Konfigurace 01 (pidat Apos, ale nekomplikovat si ivot vnoenmi): -4:50 minut, 597991 udlost, 12672 kB. -G 5680 - B 2221 - P 71,9 - -Konfigurace 10 (hldat vnoen, ale o apozice se nestarat): -4:52 minut, 557955 udlost, 11885 kB. -G 5697 - B 2204 - P 72,1 - -Konfigurace 11 (hldat vnoen vetn apozic): -5:06 minut, 555919 udlost, 11845 kB. -G 5700 - B 2201 - P 72,1 - -$alt[2] = 0 ... vlastn morfologick znaky -$alt[2] = 1 ... zddn morfologick znaky - -Konfigurace 111 (navc zddn znaky; nemlo by smysl, kdyby vlastnost -. 0 (prvn) byla 0, protoe pak by se msta, kde jde o ddn znaky, -vynechvala): -5:35 minut, 560668 udlost, 12042 kB. -G 5682 - B 2219 - P 71,9 - -Konfigurace 1100 (kontroln; tvrt vlastnost pokrv zatm cel -else blok tkajc se koordinac): -5:33 minut, 556348 udlost, 11864 kB. -G 5723 - B 2178 - P 72,4 -To je pekvapiv dobr. Na druhou stranu a te se dostaly ke slovu -nkter sti, kter se maj starat o koordinace, vak jsem se divil, -e nejsou v provozu. sten o koordinace pece bylo postarno u -dvno. Jen mi nejde do hlavy, e verze 00, kter tyto sti tak -vypn, by podle mch pokus mla bt ekvivalentn s verz, kter -byla na velkch datech dosud hodnocena jako nejspnj! - -Intermezzo: Testuji tent train.pl v te konfiguraci (1100) na -loki s velkmi daty. 73088 vt, 2956228 udlost. Trnovn trvalo -16:51 minut. Analza trvala 31:24 minut. Vsledky: -G 90765 - B 35265 - P 72,0 - - - -27.5.2003 - -Pozor, koordinan udlosti se zpracovvaj na dvou rznch mstech: -postaru ped zvislostmi, nov po zvislostech. Souasn verze tedy -nkter udlosti eviduje dvakrt. Te jsem cel druh koordinan -blok zakomentoval a pokoum se zopakovat vsledky pro konfiguraci -0000. Povedlo se. 4:59 minut, 607328 udlost, 12847 kB. - -Jednoduch krek, koordinan blok jsem pesunul dozadu k tomu -zakomentovanmu (je ale o rove v ve vlastn smyce, to jsem -zachoval). Nemlo by se nic zmnit, ale zmnilo se :-(. 4:20 minut, -547314 udlost, 11684 kB. - -Tak jinak. Zpracovn koordinac je na pvodnm mst, ale odstranil -jsem z nj voln funkce transformovat_koordinace(). 4:31 minut, -607328 udlost, 12847 kB. Piel jsem na to, pro asi hraje roli, -jestli se koordinace zpracovvaj ped zvislostmi, nebo po nich. Ve -starm zpracovn koordinac se toti mn morfologick znaka -v koeni koordinace. - -Koordinace pesunuty do samostatn procedury. Kontroln bh train.pl. -4:43 minut, 606506 udlost (jakto?!), 12836 kB. Opravena chyba -v odkazech. 4:54 minut, 607328 udlost, 12847 kB. Zruena procedura -evidovat_udalosti() (lo jen o kopii star trnovac procedury, u -nepouvanou). 4:50 minut, 607328 udlost, 12847 kB. Dokoneno -napojovn koordinac na voliteln rozskoky pro ddn znaky. 5:01 -minut, 607328 udlost, 12847 kB. - -Dal testovn, e se zachovala nejen velikost statistiky, ale i -spnost analzy. -Konfigurace 0000, parse.pl pro vechny pokusy nezmnn. -5:01 minut - 607328 udlost - 12847 kB (neli se) -6:30 minut - G 5689 - B 2212 - P 72,0 (neli se) - -Konfigurace 1000 (nov zpsob rozpoznn lena koordinace): -5:09 minut - 558561 udlost - 11904 kB (li se od 10 zkou. minule) -6:05 minut - G 5695 - B 2206 - P 72,1 (o 2 hor ne 10 minule) - -Konfigurace 0100 (apozice, ale rozpoznn lena postaru): -5:01 minut - 606744 udlost - 12882 kB (li se) -6:25 minut - G 5675 - B 2226 - P 71,8 (hor o 5) - -Konfigurace 1100 (nov rozpoznn lena + apozice): -5:00 minut - 558997 udlost - 11958 kB (li se) -6:15 minut - G 5674 - B 2227 - P 71,8 (hor o 26) - -Konfigurace 1001 (nov rozpoznn lena + zddn znaky v koord): -4:46 minut - 551019 udlost - 11784 kB -6:13 minut - G 5726 - B 2175 - P 72,5 (zatm nejlep vsledek) - -Konfigurace 1010 (nov rozpoznn lena + zddn znaky v zvisl): -4:55 minut - 563541 udlost - 12115 kB -6:22 minut - G 5683 - B 2218 - P 71,9 - -Konfigurace 1011 (nov rozpoznn lena + zddn vude): -5:16 minut - 552908 udlost - 11872 kB -6:27 minut - G 5683 - B 2218 - P 71,9 (zvltn: shodn vsledek s 1010, i kdy statistika je jin) - -Konfigurace 1101 (nov rozpoznn lena + apozice + zd v koord): -5:16 minut - 551473 udlost - 11851 kB -6:19 minut - G 5717 - B 2184 - P 72,4 - -Konfigurace 1110 (nov rozpoznn lena + apozice + zd v zvis): -4:55 minut - 564657 udlost - 12180 kB -6:14 minut - G 5667 - B 2234 - P 71,7 - -Konfigurace 1111 (pln pechod na apozice a zddn znaky): -4:56 minut - 552929 udlost - 11910 kB -6:15 minut - G 5673 - B 2228 - P 71,8 - -Zvr: obecn se zd, e zahrnut apozic nepomh. Ani jejich -vypnut vak samo o sob nevede k nejvy spnosti, pestoe -konfigurace 1011 by mi pila z tch bez apozic jet jako nejist -een. - - - -5.6.2003 - -Opt na lokim s velkmi daty. I tady vyzkoume nkolik konfigurac, -ale asi u ne vechny. Konfigurace 1111. -13:45 minut - 2927372 udlost - 63160948 B -31:24 minut - G 90811 - B 35219 - P 72,1 - - - -11.6.2003 - -Konfigurace 0000 (podle poslednch zkuenost s velkmi daty by to -mla bt ta nejlep). -16:44 minut - 3225713 udlost - 68517516 B -31:46 minut - G 90992 - B 35038 - P 72,2 - -Konfigurace 1001 (byla nejlep na malch datech). -12:03 minut - 2928036 udlost - 62868492 B -31:16 minut - G 91256 - B 34774 - P 72,4 - -NOV NEJLEP VSLEDEK! -Uklzm rozvrtan verze a potvrdm CVS. Alternativy v train.pl -zstanou pepnateln, ale pepnn nepjde ovldat z konfiguranho -souboru (bude se muset provdt pmo ve zdrojku) a defaultn zstane -zapnut konfigurace 1001, co znamen: -- rozpoznn lena koordinace novm zpsobem (porad si s lenem, - kter nen bezprostednm dttem koordinanho koene, nbr je - zaven nap. pes pedloku) -- apozice se nepovauje za koordinaci a nijak zvlṻ se nezpracovv -- pi trnovn zvislost se nepouvaj zddn znaky -- pi trnovn koordinac se naopak zddn znaky pouvaj -Posledn dva body znamenaj: - -Pi zaznamenvn udlosti KZZ (koordinace dvou znaek) zjiujeme -seznam znaek mch partner ze seznamu zddnch znaek koene -koordinace. Na rozdl od starho pstupu by tenhle ml bt odolnj -vi vnoenm koordinacm a pedlokm. Dve se prochzely vechny -uzly ve vt, o kadm se zjistilo, zda je to len koordinace, a pokud -byl, jeho znaka (ze @znacky) se pidala do @koortypy; zrove se -pidala KZZ pro nj a vechny ji dve nalezen @koortypy. - -Pozoruhodn je, e zejm navlas stejn zaznamenvn udlosti KZZ se -dje v bloku zpracovat_vetu() i ve z nj volanm bloku -projit_koordinace(). Musm zjistit, zda je to poteba kvli jinm -alternativm, nebo zda se do jedn z kopi bh nikdy nedostane, nebo -zda se dokonce provdj ob kopie a kad koordinace se zaeviduje -dvakrt! - -Skuten se volaj ud(KZZ) na obou mstech. Problm ale bude -komplikovanj, protoe pokad jsou parametry KZZ jin znaky. - - - -12.6.2003 - -Opraveno ukldn koordinac se patnmi znakami. Zatm neopraveno -dvoj ukldn koordinac. Konfigurace 1001. -13:46 minut - 2927251 udlost - 62851146 B -31:37 minut - G 91320 - B 34710 - P 72,5 - -Vypnuto druh ukldn koordinac, prvn ponechno. -13:40 minut - 2927054 udlost - 62848982 B -30:59 minut - G 91155 - B 34875 - P 72,3 - -Nov pokus o popis vtzn konfigurace 1001: -1) len koordinace se poznv novm algoritmem, zvldajcm vnoen -koordinace a pedloky v koordinacch. -2) Apozice se nepovauj za koordinace a zachz se s nimi jako s pry -obyejnch zvislost. -3) Zvislostn udlosti se sestavuj z vlastnch znaek dcho a -zvislho uzlu, nikoli z tch zddnch. Dokonce se zejm nedl ani -to, co se dlalo kdysi, toti e koen koordinace bude v zvislostech -neho na koordinaci i koordinace na nem zastoupen znakou prvnho -nebo poslednho lena koordinace. To by byla chyba! Koordinace by v -zvislostech mla bt reprezentovna nm lepm ne znakou spojky. -4) Koordinan udlosti se sestavuj novm algoritmem, kter vychz -ze zddnch znaek koene. Mj. se tm zajist sprvn zapotn -vnoench koordinac. (Star algoritmus prochzel vechny uzly vty, -pokud nael lena dan koordinace, sproval ho obousmrn se vemi -dve nalezenmi leny tto koordinace. Nov algoritmus pruje jen -jednosmrn, ale zato se vemi leny, tedy i s tmi, kte ve vt -nsleduj a za prv nalezenm lenem.) - -Opravena chyba: znaka prvnho lena koordinace se nekoprovala do -koene koordinace za elem sestavovn zvislostnch udlost, kde -nco zvis na koordinaci nebo koordinace zvis na -nem. (Technitji: $alt[2] se nepedvalo do a nepouvalo v -procedue projit_koordinace().) - -14:00 minut - 2964897 udlost - 63267805 B -32:29 minut - G 89598 - B 36432 - P 71,1 - -Ach jo. Zas jedna oprava chyby, kter totln zkaz spnost. Zkusme -tedy jet jednou zapnout zddn znaky pro koordinace vstupujc do -zvislost. Konfigurace 1011. - -12:22 minut - 2932518 udlost - 63163328 B -31:01 minut - G 90852 - B 35178 - P 72,1 - - - -17.6.2003 - -Vzhledem k opravm minul tvrtek je bohuel na mst opt -zkontrolovat, zda konfigurace 0000 jet stle dosahuje stejn -spnosti jako kdysi (i kdy tato spnost u nen nejlep v -historii, lep spnosti zatm byly dosaeny jen s pomoc chyby, a -tedy omylem a neodvodnn). - -Poznmka 19.6.2003: pibvaj dal konfigurace, adm je sestupn -podle spnosti. - -Konfigurace 0010. - -13:15 minut - 2942371 udlost -29:44 minut - G 91258 - B 34772 - P 72,4 - -Konfigurace 0011. - -13:11 minut - 2943053 udlost -30:47 minut - G 91103 - B 34927 - P 72,3 - -Konfigurace 0110. - -13:01 minut - 2892516 udlost. -30:42 minut - G 91027 - B 35003 - P 72,2 - -Konfigurace 0000. - -15:50 minut - 3225713 udlost -30:20 minut - G 90992 - B 35038 - P 72,2 - -Konfigurace 1010. - -11:34 minut - 2932361 udlost -30:26 minut - G 90966 - B 35064 - P 72,2 - -Konfigurace 1000. - -13:25 minut - 2969063 udlost -31:14 minut - G 90881 - B 35149 - P 72,1 - -Konfigurace 0100. - -12:42 minut - 3216376 udlost -31:43 minut - G 90733 - B 35297 - P 72,0 - -Konfigurace 1111. - -13:12 minut - 2926483 udlost -31:01 minut - G 90713 - B 35317 - P 72,0 - -Konfigurace 0001. - -12:39 minut - 3209963 udlost -30:15 minut - G 89827 - B 36203 - P 71,3 - -Konfigurace 1001. - -13:15 minut - 2964897 udlost -31:58 minut - G 89598 - B 36432 - P 71,1 - - - -20.6.2003 - -Dal konfigurace (zbv jich 6) u nebudu testovat. Nov nejlep -konfigurace je tedy 0010 s spnost 72,4 (91258). Tato konfigurace -znamen, e: -- lenstv v koordinaci se zjiuje postaru (tj. chybn!) -- apozice se nepovauj za koordinace -- koen koordinace jako . i z. len zvislost pouv zddn znaky -- v koordinanch udlostech se zddn znaky nepouvaj -Nastavm tuto konfiguraci v train.pl a provedu cvs commit, pak ale -znova zapnu i nov zjiovn lenstv v koordinaci a obtuju dv -desetiny procenta spnosti ve prospch sprvnho postupu. Dle se -tedy bude pokraovat s konfigurac 1010, kter m spnost 72,2 -(90966, co je nepatrn mn, ne mla dosavadn 0000). - - - -Zkusme kadou koordinaci (udlost KZZ) zapotat s dvojnsobkem -skuten etnosti. Kdy jsme nco podobnho udlali omylem, spnost -se zvila; nen akort jist, e to bylo tmhle a ne jet njakou -jinou chybou. - -13:25 minut - 2942371 udlost -29:10 minut - G 91763 - B 34267 - P 72,8 - -To jsou vci... Zkusm tedy, co se stane, kdy se kad koordinace -zapot tikrt. - -13:18 minut - 2942371 udlost -30:14 minut - G 91971 - B 34059 - P 73,0 - - - -26.6.2003 - -Trnuju konfiguraci 1010 (v ptek jsem a do veera ml zapnuto 0010), -nechvm vak zapnuto trojnsobn zvhodnn koordinac proti -zvislostem. - -12:46 minut - 2932361 udlost -29:45 minut - G 91209 - B 34821 - P 72,4 - -Pokus: nsiln prava funkce projit_koordinace(). Jestlie m -koordinace jen jednoho lena, vymae se ji zaznamenan udlost KJJ, -nezaznamen se udlost KZZ a msto toho se zaznamen zvislostn -udlost OZZ (jako zstupce; ostatn mn dleit zvislostn udlosti -se zatm nezaznamenvaj). - -11:17 minut - 2861004 udlost -29:43 minut - G 90400 - B 35630 - P 71,7 - -Nijak slibn to tedy nevypad. Pokus rum a jednoetnmi koordinacemi -se v tto chvli nebudu dle zabvat. - - - -27.6.2003 - -POZOR! Nov zpsob zjiovn lenstv v koordinaci je sice v nem -sprvnj, ale zase kale na to, zda mm nebo nemm vypnut apozice! -Zkoum je zatm natvrdo vypnout v parslib.pl. - -13:38 minut - 2963729 udlost. -29:53 minut - G 91235 - B 34795 - P 72,4 - -Abych mohl vbec jet nkdy nco upravovat v train.pl, budu muset -alternativy, kter jsem v poslednch tdnech vytvoil, zase njak -zkompaktnit a vbec to cel formln upravit. Bylo by dobr, kdyby i -tak zstala monost alternativy pepnat, ale hlavn je nutn, abych -si nezkazil souasnou nejlep spnost. - -Kontrola spnosti: -11:51 minut - 2963729 udlost. -30:07 minut - G 91235 - B 34795 - P 72,4 - - - -30.6.2003 - -Nov druh udlosti KMM udv, e uzel s jistou morfologickou znakou -byl lenem koordinace. Po vydlen pslunm potem udlost UZZ by -mla vzniknout pravdpodobnost zapojen uzlu do koordinace. - -Podle oekvn z toho dn zzrak nevypadl. - -G 89526 - B 36504 - P 71,0 - - - -1.7.2003 - -Valence. Nvrat k tomu, o em jsem psal do Taibei. Naposled jsem se -tm zabval zhruba ped rokem, kdy jsem odevzdval konenou verzi -lnku. Protoe tehdy nebylo jist, zda seznam slovesnch valenc z -Philadelphie byl ten nejlep, ke ktermu jsem se v roce 1999 dostal, -pokusm se ho zskat znova. Tentokrt pmo perlovm trnovaem, -prostednictvm udlost nad zddnmi znakami, z celho PDT 1 a pro -vechna slova (nejen slovesa). Budou to udlosti, kde na jedn stran -bude stt heslo dcho uzlu, na druh stran abecedn seazen -zddn morfologick znaky zvislch uzl. Ze zvislch uzl se -tentokrt nebudou umle vyhazovat podmty (podstatn jmna v prvnm -pd). U dcch sloves se za samostatn heslo budou povaovat tvary -trpnho pest, jinak se heslo vdy vezme z morfologick roviny. - -18:29 minut - 3231635 udlost, z toho 267906 RAM. - -Odboka, posteh: pivlastovac a ukazovac zjmena se odte budou -pi trninku i pi analze povaovat za pdavn jmna. - -17:20 minut - 3224091 udlost. -30:03 minut - G 91035 - B 34995 - P 72,2 - -Zhoren, vracm do pvodnho stavu. - -18:43 minut - 3231635 udlost. -30:00 minut - G 91235 - B 34795 - P 72,4 - -spnost se vrtila na dosavadn maximum. - - - -2.7.2003 - -Pokus s krtkmi vtami. Vechny vty dlky 5 slov a mn se pi -trninku zaznamenaj jako udlost VET , kde vzor bude -posloupnost morfologickch znaek, zaznamenan podobn jako rmec -(znaky jsou oddleny vlnovkou) a strom bude posloupnost sel, kter -pro kad slovo ur odkazem jeho rodie. Nap.: -VET Rk~A3~N3 0,3,1 - -13:22 minut - 3235652 udlost, z toho 4018 VET. -29:46 minut - G 91388 - B 34642 - P 72,5 - -Zkusme rozen na vty o esti slovech. - -16:54 minut - 3237584 udlost, z toho 5950 VET. -30:51 minut - G 91391 - B 34639 - P 72,5 - -Zlepen u bylo dost nepatrn a mon by se s ohledem na napchan -kody mlo radji zstat u vt do dlky 5, ale pesto se zkusme jet -podvat na vty o sedmi slovech. Tam u pravdpodobn dojde ke -zhoren, ale kdo v... - -13:54 minut - 3239777 udlost, z toho 8143 VET. -29:49 minut - G 91491 - B 34539 - P 72,6 - -Dobr, zkusme jet vty o osmi slovech. - -13:42 minut - 3242203 udlost, z toho 10569 VET. -36:16 minut - G 91511 - B 34519 - P 72,6 - - - -3.7.2003 - -Poutm se do disertace, ppadn vstupy nsledujcch tdn se -mon objev pmo v n. - - - -8.8.2003 - -Ml jsem povypnan zpracovn koordinac, radji zkontroluju, e -pod jet umm doshnout t nejvy spnosti. - -17:21 minut - 3242203 udlost -31:28 minut - G 91539 - B 34491 - P 72.6 - - - -2.9.2003 - -Selektivn lexikalizuji vztan zjmena (kdo, co, kter, jak, , -jen) heslem. spnost se zvila, ale jen nepatrn. - -18:16 minut - 3262065 udlost (011) -33:12 minut - G 91550 - B 34480 - P 72,6 - -Podobn pokus, ale msto hesla pidvm jen "W" (za "wh"). - -17:38 minut - 3252683 udlost (013) -34:45 minut - G 91531 - B 34499 - P 72,6 - -Vracm zpt lexikalizaci heslem. Pokus o rozen: lexikalizuji -vechna zjmena, nejen vztan. - -14:29 minut - 3301172 udlost (015) -33:50 minut - G 91555 - B 34475 - P 72,6 - -Mrnj pokus: lexikalizuji osobn, pivlastovac, ukazovac a -vztan (tj. nejbnj uzaven tdy). Jde o zjmena zanajc na -j, ty, on, my, vy, mj, tvj, jeho, jej, n, v, jejich, svj, -ten, tento, tenhle, onen, takov, t, tent, sm, kdo, co, kter, -jak, , jen. Nastalo sice dal mrn zlepen, ale v clov verzi -parseru tuto pravu nenechm, protoe je jazykov zvisl. - -18:22 minut - 3293735 udlost (018) -36:23 minut - G 91561 - B 34469 - P 72,7 - -Vrcena selektivn lexikalizace vech zjmen. Pidna selektivn -lexikalizace podadcch spojek (dosud se lexikalizovaly pouze spojky -zanajc na "e", "aby" a "zda"). - -21:26 minut - 3316716 udlost (020) -30:09 minut - G 91344 - B 34686 - P 72,5 - -Selektivn lexikalizace podadcch spojek vrcena do pvodnho stavu. -Pidna selektivn lexikalizace vybranch pslovc. Jsou vymezena vtem -pmo ve zdrojku, ale pi troe prce je lze vymezit jazykov nezvisle -pro trnink i test jako takov pslovce (tvary, ne hesla), kter se -v trnovacch datech vyskytla alespo stokrt. Bohuel nejde pout -rozlien znaek Db a Dg, i kdy vtina nejastjch pslovc m Db. -Napklad dest nejastj pslovce "vce" se astn konstrukc, kvli -kterm stoj za to zkusit lexikalizaci, ale toto pslovce m znaku Dg -(protoe je to druh stupe pslovce "hodn"). - -9 nejastjch pslovc: -1. tak (2101) 2. jak (1638) 3. u (1611) 4. tak (1566) 5. ji (1344) -6. jet (1314) 7. vera (1293) 8. tedy (990) 9. pak (952) -5 nejastjch pslovc se znakou Dg: -10. vce (946) 26. stejn (448) 36. zejm (377) 41. asto (357) -46. mn (335) - -20:37 minut - 3439991 udlost (022) -30:18 minut - G 91944 - B 34086 - P 73,0 (!!!) - - - -3.9.2003 - -Nov pokus rozchodit subkategorizaci. Pro zatek (slo pokusu 24) jsem -v parser.ini zapnul valence=1. Nat se star philadelphsk seznam rmc -z /home/zeman/programy/valence/seznam_ramcu.txt. - -G 91837 - B 34193 - P 72,9 - -spnost se snila. Nechce se mi hned te zkoumat, kde je problm. -Soubor 0 = /home/zeman/data/test.amm, znaka = -Soubor 1 = 023.csts, znaka = -Soubor 2 = 024.csts, znaka = - 91639 0+1+2 (oba dobe) - 33690 0,1+2 (oba stejn patn) - 198 0,1,2 (oba patn, kad jinak) - 305 0+1,2 (zhoren) - 198 0+2,1 (zlepen) - - - -5.9.2003 - -Parser vrcen do stavu z 2.9.2003, pouit model 033.stat. - -G 91944 - B 34086 - P 73,0 - - - -8.9.2003 - -Pestavba. Potebuju zachovat neredukovan znaky pro vstup, ale -souasn parser si je nepamatuje. Po pestavb budou vechny anotace -krom vlastnho slovnho tvaru uloen v poli hash @anot. Pak se -budou nov druhy anotac pidvat snadnji. V prbhu pestavby se -budou muset provdt ast kontroly alespo na prvnch 200 vtch, -e to jet funguje. Vzorov analza (lu0*.csts) m nsledujc -vsledky: - -G 5889 - B 2012 - P 74,5 - -Prvn etapa: $hesla[$i] nahrazena $anot[$i]{heslo}. -parse.pl OK (G 5889) -Druh etapa: $znacky[$i] nahrazeny $anot[$i]{uznacka}, -$mznacky[$i] nahrazeny $anot[$i]{znacka}. To byl trochu vt boj, -snad posledn problm je s krtkmi vtami, zejm se te ve vzorci -objevuje znaka koncov interpunkce s K (teba Z.K) a v natrnovan -statistice to tak nen. Zazplatoval jsem to v parse.pl, ale mon -to zas nebude chodit po novm petrnovn, to se kadopdn mus -ovit! Take zatm mm oveno parse.pl na malch datech -(lu0*.csts). Te ped odchodem poutm tot na velkch datech a pak -tak train.pl a jet jednou parse.pl, aby se ovilo, e se -nepokazil ani trnink. - - - -9.9.2003 - -Vera podle oekvn zafungovalo upraven parse.pl nad starou statistikou, -ale nezafungovalo po petrnovn. Dnes jsem opt zruil pravu a vzorce -krtkch vt tedy vdy maj znaku koncov interpunkce rozenou o "K". -Bohuel se nkam ztratily 3 zvislosti. - -G 91941 (msto 91944) - B 34089 - P 73,0 - -Porovnvm statistiky 033 a 055 a logy 042 a 057. Ve statistikch se li -pouze novj udlosti ARG, ADJ, RAM a VET - nkter z nich dve nemly ve -znace koncov interpunkce na konci "K", a ada z nich dve nemla v hesle -koene dvojk. Bohuel se tm asi nevysvtluje pokles spnosti. Ze srovnn -log je vidt, e udlosti KZZ maj pokad trochu jin etnosti. Jak k tomu -ale mohlo dojt, kdy statistiky se v dcch KZZ neli? - - - -15.9.2003 - -Problm byl zpsoben tm, e nkter pravdpodobnosti byly zvisl na promnn -$scelkem, co byl bu souet etnost vech evidovanch udlost, nebo poet -rznch udlost. Kdy jsme pidali do statistiky udlosti, zmnily se nkter -pravdpodobnosti a obas to vedlo k vbru jin zvislosti. A to pesto, e -pidan udlosti nemly s jevy, jejich pravdpodobnost se zmnila, vbec nic -spolenho! - -een: rum "absolutn pravdpodobnosti" ($konfig{pabs} je v souasn -konfiguraci stejn nastaveno na 0), kvli kterm se $scelkem hlavn pouvalo. -Tam, kde se $scelkem pouvalo i pi $konfig{pabs}==0, lo o chybu. A i kdybych -se v budoucnosti chtl ke $konfig{pabs} vrtit, muselo by se ve jmenovateli -pouvat njak jin slo, kter se nezmn, pokud se nezmn statistiky, -kter se objevuj v itateli. - -Upozornn: spnost tm nejsp jet vce klesne. Zkusme ji pak pozvednout -dalm umlm zvhodnnm koordinac (teba e se koordinan udlosti budou -pi trninku zaznamenvat tikrt nebo tyikrt). - -G 92022 - B 34008 - P 73,0 - -Tak kupodivu tentokrt spnost naopak mrn pekonala dosavadn rekord! -Udlm tedy cvs commit a vrtm se k vzkumu rlivosti (lo o to zjistit, -kolikrt parser zavsil dva rlivce vedle sebe, kolikrt byl jeden nebo oba -patn atd.) - -S slovnm pokus zanme opt znova od zatku, petrnujeme s jednikou. - -3439995 udlost, 20:43 minut -G 92022 - B 34008 - P 73,0 - - - -8.3.2004 - -Pestavba parse.pl na parse1.pl a adu modul. Na souboru lu01 u se -pvodn i nov parser chovaj identicky. Podle ve uvedench zznam -ze z to vak vypad, e na celch datech jsou pod jet -rezervy. Nsleduj vsledky novho parseru (parse1): - -G 91933 - B 34097 - P 72,9 - -Ukazuje se ovem, e parse.pl je na tom v souasn dob pln -stejn. Matn si vzpomnm, e nkdy na podzim, kdy jsem nevedl -podn zznamy, jsem se rozhodl odstranit njakou systmovou chybu i -za cenu toho, e momentln to lehce pokod spnost. - -Pidvm nov moduly do CVS a potvrzuji stav CVS. Prozatm ponechvm -nov verzi jmno parse1 a star parse. V pt verzi se to asi u -zmn. - - - -10.4.2004 - -Dal prava parse1.pl kvli znovurozchozen subkategorizace. -Poten men mi poskytne srovnn, podle kterho bych ml -poznat, e jsem zpsobil chybu. Pouvm oezan model 4013 -(chyb udlosti vidn jen jednou nebo mnkrt). Testuju na prvnm -souboru lu01. - -G 680 - B 239 - P 74,0 - -Pro zatek pejdu z voln parslib.pl na pouvn csts.pm. -Souasn zrum pouvn pole @slova. - - - -11.4.2004 - -Po dni prce se mi podailo zadit, aby i upraven parser dval poadovanou -spnost. - -G 680 - B 239 - P 74,0 - - - -22.4.2004 - -Poutm parser na frekim se v pardou, vetn n-tic. Dv o pl procenta vy -spnost ne bylo dosud bn. Odpovd to tomu, jak si pamatuju inek n-tic, -ale v tomto zznamu nemu najt pslun slo, abych zjistil, zda to sed pesn. - -G 92594 - B 33436 - P 73,5 - bh 5031 - -elem dnen seance je ovit vliv valence (pravdpodobn zanedbateln) na spnost -v souasnch podmnkch. Mus se to toti napsat do disertace. Modul valence se -kvli tomu mus oprit a znovu rozchodit. - -G 92532 - B 33498 - P 73,4 - bh 5032 - - - -23.4.2004 - -Pseudoval = 0, valence = 1. - -G 92458 - B 33572 - P 73,4 - bh 5033 - -Pseudoval = 0, valence = 0. - -G 92525 - B 33505 - P 73,4 - bh 5034 - -Tm bylo prozatm uinno zadost poteb sel v disertaci. Te se vrtm k rznm -projevm subkategorizace sloves, konkrtn k peskakovn slovesa zvislost. -V bhu 5031 (viz prvn verej vsledek, G 92594) hledm vechny ppady, kdy -njak zvislost peskoila sloveso. Dlm je na sprvn a chybn a hledm takov, -kter jsou v drtiv vtin ppad (> 90 %) chybn. Dlm je podle upravench -znaek peskoenho slovesa, dcho a zvislho uzlu. Nejetnj chybn jsou: -(vysvtlivky: poet vskyt - procenta chybn/celkem - znaka slovesa - dcho - zvislho - 0/1 chybn/sprvn -168x (91,3%) Vf VB N4 0 -120x (90,9%) Vf Vp N4 0 - 98x (89,1%) Vf Vp Z, 0 - 92x (82,9%) Vf VB Z, 0 - 88x (40,2%) Vp # J^ 0 - 87x (92,6%) Vf VB J^ 0 -Celkem souet takovch peskoen, kter byla chybn ve vce ne 90 % ppad: 4946. -Kdyby se 90 % z tchto ppad (4451) pidalo do sprvnch zvislost, byla by -spnost 77 %! Jene to by vyadovalo, abych msto zakzan zvislosti nael vdy -tu sprvnou. A to je utopie. - -Pokud se nebudu ohlet na znaku zvislho uzlu, budou nejastj opt peskoen -infinitivy: -852x (89%) Vf VB 0 -667x (87%) Vf Vp 0 -Celkem souet 90- a vceprocentnch: 1796. - -Krom zkazu peskoen by se dala vyzkouet i jin vc. Pi trnovn bych si -u kad zvislosti pamatoval, zda peskoila sloveso (a pop. tak jak). - -Kdy se zake peskakovn pro konkrtn znaky, kter byly vidt aspo jednou -a u nich je peskok v aspo 90 % chybn, spnost vzroste. Ale pozor, zatm to -nen dvakrt korektn. Seznam zakzanch peskok toti zjiuju z testovacch -dat! - -G 93559 - B 32471 - P 74,2 - freki 5048 - -Poutm tedy na frekim test na trnovacch datech. Na vslednm CSTS zkusm vyhledat -nov seznam zakzanch peskok. Bude asi zkreslen, protoe parser se na trnovacch -datech chov jinak ne na testovacch, ale nebude to podvod. Nechce se mi vyleovat -zvltn data a parser petrnovvat na zbytku, i kdy na to nkdy teba tak dojde. - -freki 5050 ... cel trnovac data, zkaz peskakovn vypnut -shrek 5051 ... testovac data, zkaz zapnut, seznam zkaz: nejen slovesa, vidna aspo 1x -Oboj spadlo, protoe Milan nco dlal a odpojil disk, na kter se ukldaly vstupy. -Na novm disku pod slem 14 to nakonec dobhlo (trv to ovem kolem hodiny, prochzen -vech peskok ve tech vnoench smykch je dost neefektivn). - -G 93764 - B 32266 - P 74,4 - shrek 0014 - -Trnovac data (znova 5050, te pod slem 015). - -G 974093 - B 281497 - P 77,6 - 015 - - - -26.4.2004 - -Projdu vstup z parsingu trnovacch dat a zkusm na nm natrnovat zkazy peskakovn. -Zskal jsem 5968 rznch trojic znaek, definujcch zkazy (peskoen, dc, zvisl). -Zahrnuty jsou pouze trojice, kter se vyskytly alespo ptkrt. Zkusm pustit parser -s vyuitm tohoto seznamu zkaz. Zapnm zkaz peskakovn, vracm cestu k testovacm -datm. - -G 93132 - B 32898 - P 73,9 - freki 016 :-( - -Chtlo by to pece jen zjistit, jak moc se idm, kdy msto vylennch dat pouvm -analzu trnovacch dat. Natrnovat tedy parser na mtrain datech a pustit ho na mtest -data. - -017.stat je statistika natrnovan na mtrain datech. -freki 018 je analza mtest dat statistikou 017. -G 89121 - B 32960 - P 73,0 - freki 018 - -Pi t pleitosti jsem ponkud zcivilizoval train.pl, aby u nepouvalo parslib.pl, -ale csts.pm a parse.pm, a tak aby pln pelo na pole @anot a zapomnlo na @slova, -@struktura a @afun. Nyn pejmenuju parse1.pl na parse.pl a train1.pl na train.pl a -cel to ulom do CVS. - -Aktualizoval jsem seznam zakzanch peskok (peskoen-dc-zvisl) podle -018.csts. Jsou tam vechny slovn druhy v takovch peskocch, kter se vyskytly -alespo ptkrt a kter byly z 90 % patn. Celkem seznam pokrv 22283 peskoench -uzl v 018.csts. Nyn otestuju tento seznam zkaz na dtest datech parserem natrnovanm -na train datech (statistika 013.stat). - -G 92782 - B 33248 - P 73,6 - T 31:11 min - freki 019 - -Zpomalen kvli testovn zakzanch peskok (sloitost n3) se vraznji neprojevilo, -ale freki je zejm nov dlo (4 Intel Xeon 2.8 GHz, 4 GB pamti). - -spnost je ovem ni ne se seznamem z testovacch dat. Jet musm otestovat -seznamy zkaz zskan ze stejnch dat (018.csts), ale s jinm nastavenm. - -vidno alespo ptkrt, libovoln slovn druh ... u bylo ......... 019 - G 92782 - B 33248 - P 73,6 -vidno alespo jednou, libovoln slovn druh .... 46264 vskyt ... 020 - G 91375 - B 34655 - P 72,5 -vidno alespo jednou, jen slovesa .............. 5043 vskyt ... 021 - G 92995 - B 33035 - P 73,8 -vidno alespo ptkrt, jen slovesa ............. 2698 vskyt ... 022 - G 92995 - B 33035 - P 73,8 - - - -27.4.2004 - -Jet posledn pokus. Ponechme peskoky sloves, kter byly vidny alespo ptkrt, -akort k nim pidme ti nejastj peskoky jinch uzl. Jsou to prv ty, kter -byly vidny alespo 200krt: -Z, Vp VB (219) -Z, VB VB (250) -Z, N1 N1 (267) - -G 92942 - B 33088 - P 73,7 - freki 023 - -Nen mi jasn, pro je to hor. Tch 736 hran sice nemus bt automaticky dobe, -za prv v testovacch datech nemus bt stejn ast, za druh kdy zaku jednu -patnou monost, jet to neznamen, e poznm tu sprvnou. Ale kdy se to nezlep, -pro se to dokonce zhor? Mon kvli vedlejm inkm zkaz. Kdy v uritm -okamiku zaku udlat chybu, mon tm blokuju proveden neho sprvnho v ptm -kroku, a nkdo tomu nemu sprvnmu pak vyfoukne rybnk? - -Zvr: nechme ten nejmen seznam, protoe souasn pat ke dvma nejspnjm: -peskakovn sloves, pokud takov peskok byl k vidn alespo ptkrt a zrove -byl s alespo devadestiprocentn pravdpodobnost chybn. - -Potvrzuju novou spnost 73,8 (G 92995) do CVS. - -Pokrauju v testovn subkategorizace. Nyn se pokusm vyut zsobnk stav analzy. -Na konci analzy se zjist, zda m nkter sloveso nenaplnn rmec a zda je ve -vt materil, kterm by ho lo naplnit. Pokud ano, pokusme se o to. - - - -28.4.2004 - -Trochu jsem zcivilizoval ukldn stav analzy v modulu rozebrat.pm. Te kontroluju, -e jsem nepokazil spnost. - -G 92995 - B 33075 - P 73,8 - freki 026 - -OK, potvrzeno, e jsem nic nezkazil. - - - -29.4.2004 - -Dokonm pouvn zsobnku stav v ppad, e na konci prvnho pokusu o analzu -nem nkter sloveso naplnn svj valenn rmec, akoli by mohlo. Opravil jsem -ukldn stav, jet jednou vyzkoum, e se nic nepokazilo, ne zanu uloen -stavy doopravdy pouvat. - -G 92995 - B 33075 - P 73,8 - drak 027 - T 58:50 minut - -spnost se zapla pnbh nezmnila, ovem ukldn stav zvilo asovou nronost -skoro na dvojnsobek. Ze stejnho dvodu tak vzrostla pamov nronost ze 425 MB -a na 1 GB. - -Te tedy zkusme uloen stavy opravdu vyuvat. K tomu je poteba, aby se balk -zlonch stav z hashe zmnil na opravdov zsobnk (pole). Hash se nm vak tak -hodil, protoe bylo mon snadno zjistit, zda negenerujeme stav, kter u vygenerovn -byl. Rozdlme tedy strukturu stav na dv sti, hash vygenerovanch stav a zsobnk -nezpracovanch stav. - -generovat_stavy() - -Vygeneruje vechny stavy, ke kterm se lze dostat z aktulnho stavu. Vezme v vahu -seznamy povolench a zakzanch zvislost i v ppad, e nkter zvislost m -pednost bez ohledu na pravdpodobnostn model (nap. tzv. valenn zvislosti). -Nevezme je v vahu, pouze pokud m nkter zvislost absolutn pednost (je to -druh dl koordinace apod.) Nov stavy jsou stavy se vm vudy, jako kdyby se -vpoet opravdu ml ubrat tmto smrem. Nov zvislost je tedy pidna do stromu, -jej vha je znm a je promtnuta do ohodnocen celho stromu. Navc se v, jak -je pomr mezi vhou tto zvislosti a vhou vtzn zvislosti v tomto kole (nap. -90 %, ale me to bt i pes 100 %, pokud njak zvislost vyhrla dky protekci, -teba protoe je valenn). Prchod tedy mus bt dvoukolov, nejdve se vygeneruj -vechny mon pokraovac stavy vetn vah, potom se zjist, kter stav vyhraje, -a k ostatnm se dopot jejich procentuln odstup. - -Funkce generovat_stavy() dostane aktuln stav a vrt vechny stavy, ke kterm -se z nj d dojt. Ozna tak stav, kter podle n m zvtzit v tomto kole (jak -vyplv z pedchzejcho odstavce, nememe se spolehnout na to, e to bude stav -se 100 % pomrem k vtzi). - -Funkce generovat_stavy() nev o celkov evidenci vygenerovanch a zpracovanch -stav. Ani tedy nekontroluje, zda nenagenerovala njak stav, kter u nageneroval -nkdo jin. To vechno mus zajistit njak oblka - funkce, kter ji vol. Mon -ale jet zmnm nzor a ob innosti njak spojm. - -oblka - -Nechat si vygenerovat nov stavy z aktulnho stavu. -Vyjmout z nich vtze kola, ten u m jist, e se stane ptm aktulnm stavem. -Z ostatnch vyadit takov, jejich strom u byl nkdy vygenerovn (bez ohledu na to, zda u byly i zpracovny). -Zbvajc stavy pidat do pehledu stav. Pehled seadit podle pomru stavu k vtzi jeho kola. (Kvli tomuto azen -nen mon oznait pehled ani za zsobnk, ani za frontu.) -Pehled stav je poteba udrovat v rozumn velikosti. Oznout ho na n^2 stav, kde n je poet slov ve vt. - - - -7.5.2004 - -Pestavba kdu je z vt sti dopsna, me se zat ladit. Nejdv ale radji -zkusm nechat v chodu starou funkci generovat_stavy() a pout jen nkolik novch -nezbytnch drobnost. Funkce pridat_zavislost() a zrusit_zavislost() jsou pesthovny -do novho modulu stav a jsou do nich pesunuty i nkter sti okolnho kdu, kter -dve leely v rozebrat_vetu(). A zddn upraven morfologick znaky u nepepisuj -pvodn znaky v koenech koordinac, nbr se zapisuj do stavu. Z nj se potom -vyzvedvaj a v modulu model, kdy se zjiuj pravdpodobnosti. - -Nov kd funguje jen na 53 %. Star kupodivu taky, protoe se sna pouvat nkter -nov verze knihoven. Zjiuju, e nkter knihovny nejsou pidny do CVS! To se -mus napravit. Natst se mi podailo sestavit verzi, kter zvld pvodnch 73,8 % -(G 92955). up s n do CVS :-). - - - -10.5.2004 - -Te je poteba zjistit, pro nov verze nefunguje. - - - -11.5.2004 - -Postupn jsem opravil rozebrat.pm, pesunul jsem funkce pridat_zavislost() a zrusit_zavislost() -do novho modulu stav.pm, zruil jsem Viterbiho a cel modul rozebrat.pm jsem proistil. -Pi vytvoen koordinace u nemnm pvodn $anot->[$i]{uznacka}, ale ukldm prbn -mnn znaky do $stav->{uznck}[$i]. Tm si uvoluju ruce, abych se mohl kdykoli -vrtit k njakmu starmu stavu analzy, ale navc se ukzalo, e model n-tic a -dote dostval pokozen uznacky. Po oprav stoupla maximln spnost, co jsem -tak okamit potvrdil do CVS. - -G 93709 - B 32321 - P 74,4 % - T 20:50 (geri 83) => skoro 6 vt za vteinu - -Nyn se vrtme k pestavb zapoat 7.5.2004. Zbv asi jen vymnit modul genstav.pm. -Bohuel se mi ho neda pimt ke stejnmu vkonu jako pvodn genstav.pm, ten -nov zvld jen 70,0 % (G 88273). Navc mu to trv pern dlouho (52:51 minut). -Zkusm to udlat znova a postupn. Te se vrtm k pvodnmu genstav.pm a doufm, -e tak k spnosti 74,4 %. Navc zrum adres staraverze a ve zase pesthuju -do pvodn sloky. - -geri 111 - -G 93708, to je sice chyba jen o jedinou zvislost, ale nelb se mi to. Rozbaluju -cvs checkout do sloky staraverze a poutm analzu znova. - -geri 112 - -G 93709, take CVS zloha funguje. Budu si muset pohrt s jejm slouenm s upravovanou -verz. - -geri 113 je nov verze (v horn sloce), zmnny moduly rozebrat, genstav a stav -(pinejmenm), eviduj se vidn stromy, ale neschovvaj se k nim cel stavy -a nic se s nimi nedl. Evidence les dosahuje piek mezi 1000 a 2000 prvk a zd -se, e nijak viditeln nezatuje pam, protoe zatm tak ke stromu neuchovvme -dn velk data. - -G 93708 - -geri 114 je star verze (v doln sloce), kam jsem vak shora zkoproval stav.pm. -V novm stav.pm chybj funkce ulozit_stavy() a odfajfkovat_stavy(), kter by se -nemly nikde pouvat. Chyb tam tak funkce zkopirovat_stav(), co doufm tak -nevad. Naopak pibylo podn a opravdu hloubkov duplikovn stav, ale ani to -se zatm nikde nevyuv. - -G 93709 - -freki 115 se od pedchzejcho li tm, e z nov verze sem byl zkoprovn i -genstav.pm. - -G 93709 - -freki 116 m navc nov rozebrat.pm, m by ml bt kompletn (a na zaznam.txt). -Uvidme, zda doshne G 93709. - -G 93709 - - - -12.5.2004 - -Nael jsem rozdl v parser.ini. V tom horm bylo u zapnuto valence1 = 1. Zkoum -ho vypnout, jestli to pome. Mimochodem, mezi dobrou a vadnou verz jsou celkem -3 odchylky v analze, ale jen jedna z nich zhorila spnost. - -G 93708 - freki 117 - -Nepomohlo to. Dochz mi trplivost a provdm cvs checkout do horn sloky. Snad -pome aspo tohle. - -G 93708 - freki 118 - -Posledn pokus. Zrueny rozdly v povol.pm a zakaz.pm. Slva! - -G 93709 - freki 119 - -Slva! - -Pokoum se zcela zalenit uen n-tic do train.pl. Zatm zkusm pidat model n-tic -do statistiky, ani bych ho pouil (bude se jet stle natat z textovch soubor -lecch vedle), a zkusm kontroln pustit analzu, zda s novou statistikou bude -stejn spn. Trnink se jmenuje freki 120. - -Mus se dost etit pamt. Pokud se toti krom standardnch 3 000 000 trnovacch -udlost jet najednou eviduj vechny n-tice pro n=2 a 10, poere train.pl neuvitelnch -2,6 GB! V trnovacch datech je 5 308 978 n-tic, po profiltrovn jich ovem peije -jen 7934. Trnovn na frekim (Intel Xeon 2,8 GHz) nyn trv 32 minut. - -Zkusme, jestli se s takto natrnovanou statistikou d analyzovat stejn spn -jako dosud. Neml by to bt problm, protoe jedin rozdl by mlo bt 7000 novch -dk, kter se zatm k niemu nepouvaj. - - - -13.5.2004 - -freki 127 b nad statistikou 124.stat, kter by se od 013.stat mla liit prv -pidanmi n-ticemi. Pvodn textov soubory jet le ve stejn sloce, ale hned -pustm dal kontroln test, kter u opravdu nebude mt anci je najt. freki 128 -Bohuel, oba maj neuspokojiv vsledky. (Oba stejn.) - -G 92496 - B 33534 - P 73,4 - T 23:39 - -Mon je ale i jin problm, mon je njak chyba v trninku a jakkoliv nov -natrnovan statistika d hor vsledky ne 013.stat. Uvedu tedy parse.pl i ntice.pm -do pvodnho stavu, ale pustm je stejn na 124.stat. - -G 92202 - B 33828 - P 73,2 - T 22:19 - freki 129 - -Musm zkontrolovat, jestli jet pod dr spnost alespo na 013.stat. - -freki 130 - -124.stat se li od 013.stat. Od 013 se nezachoval zznam konfigurace, kter by -bylo mon porovnat se souasnou konfigurac. 013 m datum 3.2.2004 13:22:41, -take v ppad nezbytnosti zkusm shnout do CVS. - - - -14.5.2004 - -Zjistit, pro train.pl neukld konfiguraci, se kterou byl sputn. Opraveno, -sakura 134 u by si mla zachovat uloenou konfiguraci. V train.pl tak opravena -udlost KJ3, aby se ve statistice msto slovnho tvaru neobjevoval "HASH". Pesto -stle train.pl negeneruje stejnou statistiku jako train0.pl z 15.9.2003 (posledn -CVS train ped vyrobenm statistiky 013.stat 3.2.2004; nsledujc verze 2.13 u -vznikla 8.3.2003). A dle ani train0.pl negeneruje statistiku shodnou s 013, take -u "optimum" mon nikdy nezrekonstruuju. - -Rekapitulace statistik: -013.stat (3.2.2004) ... optimln stav co do spnosti parsingu, chci se k nmu - dostat, ale nevm jak. Nezachovalo se nastaven ani zdrojk trnovae. -132.stat (14.5.2004) ... vyrobil train0.pl z 15.9.2003. Nad 132 putn parser - (sakura 133), ale ani ten nem poadovanou spnost. M jen G 92499 (73,4 %). -138.stat (14.5.2004) ... nejnovj train.pl, ob ve uveden chyby opraveny. - -013.stat m 70400220 B, 3186784 udlost (dk). Obsahuje 108933 udlost USS. -132.stat m 76127819 B, 3439995 udlost (dk). Obsahuje 115479 udlost USS. -138.stat m 75947290 B, 3418684 udlost (dk). Obsahuje 115479 udlost USS. - -Skoro to vypad, e 013 byl natrnovn na jinch datech? Srovnme-li pouze udlosti -USS ve statistikch 013 a 138, zd se (pohledem na prvn strnku diffu), e 138 -m vechna sla vt nebo rovna slm z 013, a navc m nkter slova pln -nov. Nap. slovo "abdikovali". A to je dkaz! 013 vzniklo natrnovnm na mtrainu! -Zkusme na mtrainu natrnovat novou statistiku (jak pomoc train0.pl, tak pomoc -train.pl). - -sakura 139 ... train0.pl na mtrain.csts -drak 140 ..... train.pl na mtrain.csts - -139.stat m 70400220 B, 3186784 udlost. Obsahuje 108933 udlost USS. -140.stat m 70243916 B, 3167576 udlost. Obsahuje 108933 udlost USS. - -Te tedy zkusme parsing nad obma novmi statistikami. - -G 92398 - B 33632 - P 73,3 - T 45:19 - loki 141 ....... nad 139.stat -G 92096 - B 33934 - P 73,1 - T 22:23 - belzebub 143 ... nad 140.stat - -Jet jednou testuju spnost nad statistikou 013. U m to unavuje, ale zd se -podezel, e by se liila od statistiky 139, kdy jsou pesn stejn velk. A -pitom tent parser na jedn z nich funguje na 73,3 % a na druh dajn na 74,4 %. -Te mi diff potvrdil, e ob statistiky se vbec nijak neli! A z prbnch vsledk -to vypad, e i na 013 vkon njak poklesl. - - - -25.5.2004 - -Vracm se k parsingu po narozen Lucinky. -Test drak 150 nad statistikou 013. Kontrola, zda doshneme nejlep znm spnosti. -Optimum bylo dosaeno 11.5.2004 a in 74,4 % (G 93709). - -G 93709 - B 32321 - P 74,4 - T 30:27 - -Test drak 152 nad statistikou 139. Statistiky 013 a 139 jsou toton, take by -vsledek 152 ml bt stejn jako 150. - -G 93709 - B 32321 - P 74,4 - T 30:16 - -Test anette 153 nad statistikou 013. "Star verze parseru", tj. posledn verze -uloen v CVS. - -G 93709 - B 32321 - P 74,4 - T 26:02 - -Te se soustedm na to, aby train.pl uml vyrobit statistiku totonou s 013.stat. -Verze z 15.9.2003 to zejm um (pouil jsem ji 14.5.2004 a vznikla statistika -139, kter je s 013 toton). Pro jistotu jet jednou pustm train0.pl, co je -kopie verze z 15.9.2003, i kdy u m jin datum. Je to train anette 154, trnuje -se na mtrain datech (1425 soubor). - -3186784 udlost - T 10:33 - 154.stat se shoduje s 013.stat - -Paraleln poutm i novj train.pl, opt jen pro kontrolu, protoe vm, e tvo -odlinou statistiku. Je to train drak 155, rovn se trnuje na mtrain datech. -Asi po hodin prce to spadlo, protoe to nenalo funkci ntice::shrnout(). - -Prozkoumm rozdly mezi train0.pl a train.pl a tak rozdly mezi obma statistikami. -Vytvm pechodov skript train05.pl a budu prbn testovat, zda jet dosahuje -stejnch vsledk jako train0.pl. Nejdv sjednocuji "use" moduly v zhlav a odstrauji -shodlouh "pod" koment. Je to train anette 156. - -3186784 udlost - T 10:38 - 156.stat se shoduje s 013.stat - -Nahradm ten subkategorizanho slovnku analogickou funkc z modulu subkat. -Je to train anette 157. - -3186784 udlost - T 10:34 - 157.stat se shoduje s 013.stat - -Provedu vechny pravy, kter nejsou zvisl na nahrazen parslib.pl modulem csts.pm. -Vesms jsou jen kosmetick. Trnovn ntic zatm taky nepidm. Rozdlov soubor -obou train m pod jet 470 dk. Test momentlnho train05.pl je anette 158. - -3186784 udlost - T 10:44 - 158.stat se shoduje s 013.stat - -Nahradm pole $struktura[$i] polem $anot->[$i]{rodic_vzor}. Poloka rodic_vzor -se pln u i v parslib.pl, take by neml vzniknout problm. Je to train anette 159. -Bohuel se zejm zacyklil. Cyklen zpsobuje $struktura[$k] na dku 441. Zatm -nevm pro a poutm train05, kde je tento dek postaru, vechny ostatn struktury -jsou pepsny pomoc anot. Je to train anette 168. - -3192325 udlost (!!!) - T 10:59 - 168.stat se od tch pedchozch li! - -Mezitm jsem zadil, aby $anot->[0]{rodic_vzor} bylo 0 stejn jako $struktura[0]. -Mlo by tm odpadnout cyklen a mon tak rozdly mezi statistikami, uvidme. -Je to train anette 172. - -3191989 udlost - T 11:07 - 172.stat se li od 013.stat. - -Li se udlosti typu LOK a RAM. "Normln" udlosti se neli. Proto nejvt -podezen pad na zmny ve funkci spocitat_lokalni_konflikty(). Krom nhrady -$struktury $anotem jsem jet zpsoval podmnku na dku 634 o $i<$#{$anot}. -Toto zpsnn te zakomentovvm a poutm train anette 174. - -3186448 udlost - T 11:00 - 174.stat se li od 013.stat i od 172.stat. - -Od 013.stat se li mn ne 172.stat. Udlosti typu LOK u jsou v podku, li -se pouze udlosti typu RAM. Na tch by sice nezleelo, protoe momentln se, -pokud vm, pi parsingu nepouvaj, ale potebuju vdt, e umm vyrobit statistiku -totonou s 013, take se pokusm opravit i je. To je train anette 175. - -3186784 udlost - T 10:49 - 175.stat se shoduje s 013.stat. - -Nahradm pole $afun[$i] polem $anot->[$i]{afun}. Kvli tomu upravuji parslib.pl, -aby pi ten vyploval afuny do @anot. Train anette 176. - -3186784 udlost - T 11:08 - 176.stat se shoduje s 013.stat. - -Nahradm pole $slova[$i] polem $anot->[$i]{slovo}. Kvli tomu upravuji parslib.pl, -aby obsah obou pol byl opravdu toton. Zatm se toti u @anot nevyploval koen -a u dnho slova se nenahrazovala velk psmena malmi. Bohuel se to zase nkde -cykl. Grrr! A zase je to v loklnch konfliktech! Je to zludn chyba, neoprvnnmi -pstupy za hranici pole @anot se toto pole natahovalo, co mlo fatln dsledky -pro cyklus, kter byl dlkou pole zen. Chybu jsem nenael, radji jsem tedy na -zatku funkce dlku pole zkoproval, pak jsem se ve vech cyklech ptal na dlku -kopie a na konci jsem kopii zkoproval zpt do pokozenho pole. Train anette 192. - -3186784 udlost - T 10:57 - 192.stat se shoduje s 013.stat. - -Po odstrann pol @struktura, @afun a @slova upravuji posledn souvisejc dky, -zejmna voln funkc, ve kterch se dve tato pole pouvala. Train anette 193. - -3186784 udlost - T 13:04 - 193.stat se shoduje s 013.stat. - -Zd se, e nyn je ji ve pipraveno k pepojen z parslib.pl na csts.pm. Provedu -tedy vlastn pepojen. Train anette 194. - -3158211 udlost - T 21:14 - 194.stat se li od 013.stat :-( - - - -27.5.2004 - -Poutm parsing nad statistikou 194. Pedpokldm, e vsledek bude hor ne nad -013. Parse anette 195. - -G 93643 - B 32387 - P 74,3 - T 27:34 - - - -31.5.2004 - -Porovnvm statistiky 013 a 194. Li se snad ve vech udlostech. Porovnvm poad -vskytu udlost v train03.pl (pouv parslib.pl) a train05.pl (pouv csts.pm). -Rozdl je v koenech koordinac. Star program m v $anot->[$koren]{uznacka} znaku -koenovho slova nebo interpunkce. Novj program tam m mnoinu znaek zddnch -od len koordinace. - -train anette 196: train03.pl se zznamem udlost -train anette 197: train05.pl se zznamem udlost -... a po anette 230 - -Zd se, e jsem konen nael vechny rozdly v hledn zddnch znaek. Poutm -nov kompletn trnink train05 (anette 231). - -3186784 udlost - T 30:31 - 231.stat m sice stejn poet udlost jako 013.stat, -ale neshoduj se! Taky velikost soubor se li: 013 m 70400220 B, 231 m 72137493 B. -Ale to by mohlo bt tm, e jsem pi ladn zmnil OSS na OSSXXX. Dm to do podku -a odstranm vechny vpisy do souboru "ud", m by se taky ml program o tetinu -urychlit. Train anette 232. - -3186784 udlost - T 20:28 - 232.stat se shoduje s 013.stat. - -Po 19 dnech se mi tedy konen podailo modernizovat kd train.pl, ani by se to -podepsalo na generovanch statistikch. Pro tuto chvli ovem rezignuju na npad, -kvli ktermu to cel zaalo, toti na zalenn modelu ntic do bnho trninku. -Jednak u nemm na takov blbosti as, jednak by to nebylo jen tak, protoe ntice -vyaduj posbrat obrovsk mnostv novch udlost, z nich lze mal clov vzorek -odfiltrovat teprve na konci, kdy u se v, kter udlost byla vidna vce ne jednou. -Tm se nkolikansobn zvyuje pamov nronost programu (z nkolika stovek MB -a na asi 2 GB) i as potebn na vpoet (asi dvakrt). - -Zakomentovvm tedy dek s "ntice::ucit()", kopruji train05.pl do train.pl, mau -vechny mezistupn trainNN.pl a potvrzuji cvs commit. Potom jet naposledy volm -kontroln "train.pl ; parse.pl" a jdu dom :-) - - - -1.6.2004 - -Oba zvren pokusy dopadly dobe. Trnink trval 10:46 minut. - -G 93709 - B 32321 - P 74,4 - T 25:31 - -Te se pokusm opravit chybu v train.pl, kterou jsem objevil pi jeho modernizaci, -ale nemohl jsem s n nic dlat, protoe bych nedostal totonou statistiku. Bohuel -nen zarueno, e opravou chyby spnost stoupne a ne naopak klesne. - -Stejn je dost divn, e lokln konflikty, kterch se ta chyba tk, se dosud podlely -na lep spnosti (protoe kdy jsem je vypnul, spnost klesla), pestoe sama -slova, kter byla pi loklnch konfliktech pevena, dopadla bdn: 1286 zlepen -proti 2137 zhorenm. Tato bilance byla zejm zvrcena nepmmi vlivy, nap. e -jin zaven uzlu v loklnm konfliktu psobilo jako prevence nkolika dalch chyb. - -train anette 235: 3192797 udlost - T 11:18 -G 93717 - B 32313 - P 74,4 - T 25:39 - parse anette 236 - -Slva, spnost neklesla, i kdy stoupla jen nepatrn. Ani bilance loklnch konflikt -se nezmnila nijak dramaticky: 1297 zlepen proti 2145 zhorenm. Cvs commit. - - - -Je na ase vrtit se ke snahm o vybudovn zsobnku stav a o vracen se v ppad -nenaplnnho valennho rmce. Naposledy jsem se o nco tmto smrem pokouel 11.5.2004. -Njak pedstava, jak jsem to chtl dlat, je popsan u 29.4.2004, ale stejn si -nejsem jist, e tahle pedstava nepadla pi konfrontaci s realitou. - -V modulu genstav.pm jsou nyn dv verze klov funkce. V provozu je zatm stle -star verze pod nzvem generovat_stavy(). Nov verze se jmenuje generovat_stavy1() -a nevrac vtznho kandidta, nbr seznam novch stav, ze kterch se a pak -mus vybrat vtz. - -anette 238: generovat_stavy() u opravdu sten generuje nov stavy, ale ty jet -nemaj vliv na vbr vtze. Jde tedy jen o potvrzovac bh, e se nic neposralo. -spnost sice zstala nedotena, ale vpoet trv skoro tyikrt dle! - -G 93717 - B 32313 - P 74,4 - T 1:36:08 - -belzebub 249: O krok dl. Z novch stav u i vybrm vtze a kontroluju, e se -shoduje s vtzem, kterho vybral star kd. Pokud ne, hod se vjimka. --> genstav1.pm (genstav0.pm je pvodn z CVS) - -G 93717 - B 32313 - P 74,4 - T 1:22:49 - -anette 254: Vbr vtze z novch stav obohacen o lokln konflikty. Shoda se -kontroluje a potom. --> genstav2.pm - -G 93717 - B 32313 - P 74,4 - T 1:35:12 - -Nemme sice na nov kd pevedeno cel generovn novho stavu, ale jeho podstatnou -st ano. Nyn zmnm zpsob, jakm se vsledek funkce generovat_stavy() pedv -nahoru. Dosud se vracel "max-hash", kde kandidta popisovaly hodnoty r, z, c, p -a priste. Nyn se bude vracet pole stav, jeho prvn prvek bude ten vtzn. Vtzn -kandidt u do nj bude zanesen, tj. u volajcho odpadne nsledn voln funkce -stav::pridat_zavislost(). Zatm se budou vracet stavy nalezen starm kdem. - -belzebub 262 (ve uveden) -G 93717 - B 32313 - P 74,4 - T 1:27:04 - - - -2.6.2004 - -Funkce generovat_stavy() od nynjka vrac stavy nalezen novm kdem. K tomu je -poteba, aby se i zvren manipulace se stavem (souvisejc s koordinacemi) provdla -nad novmi stavy (a to nad vemi jet ped pidnm hrany, tm se zajist kompatibilita). -Pslun kus kdu jsem pesunul do funkce stav::pridat_zavislost(). Poutm dva -vpoty, jeden jet vrac stav upraven starm kdem a akort spolh na st -pesunutou do pridat_zavislost(), druh u navc vrac stavy nalezen novm kdem. -Prvn je belzebub 263, druh anette 264. - -belzebub 263 -G 93717 - B 32313 - P 74,4 - T 1:29:30 -anette 264 -G 92693 - B 33337 - P 73,5 - T 2:10:46 - -Zd se, e anette ztrc na spnosti! Oba vstupy se li, anette obas msto -odkazu na rodie vype -1! - -Obrovsk asov nronost generovn stav mon souvis s tm, e se vechny stavy -cachuj podle strom. Vypnm ukldn stav (zakomentovvm ho). - -Vracm kd na rove 263, tj. zvren manipulace zstvaj pesunut do modulu -stav, ale vrac se pod stav zskan starm kdem. V zjmu zpehlednn kdu vyndvm -z generovat_stavy() zavovn koncov interpunkce vyrbm j samostatnou funkci -generovat_pro_koncovou_interpunkci(). - -sakura 265 -G 93717 - B 32313 - P 74,4 - T 1:34:14 - -Pidvm obdobnou funkci pro generovn druh sti koordinace. - -euler 266 -G 93717 - B 32313 - P 74,4 - T 1:59:20 - -Pidvm obdobnou funkci pro zavovn valennch zvislost. - -anette 267 -G 93717 - B 32313 - P 74,4 - T 2:08:05 - -U pidvn zvislosti do dupliktu stavu v novm kdu jsem nael kopii kdu, kter -jsem ped 263 pesouval do modulu stav. Te u by tato kopie mla bt nadbyten, -proto jsem ji smazal. - -euler 268 -G 93717 - B 32313 - P 74,4 - T 2:22:52 - -Do zvltn funkce jsem pesunul i zkladn generovn novch stav a hledn vtznho -kandidta. --> genstav3.pm - -sakura 272 -G 93717 - B 32313 - P 74,4 - T 1:33:27 - -Zruil jsem funkce gererovat_stavy1(), vybrat_viteze() a generovat_stavy_rozskok(). -Patily k vtvi, kterou u te mu prohlsit za slepou. - -belzebub 273 -G 93717 - B 32313 - P 74,4 - T 1:24:41 - -Z novho kdu jsem odstranil nepouvanou kopii zpracovn koncov interpunkce a -valennch zvislost. - -geri 274 -G 93717 - B 32313 - P 74,4 - T 1:53:39 - -Vbr vtze mezi novmi stavy jsem pesunul pmo do funkce, ve kter seznam novch -stav vznik. Tam, kde se pvodn vybral vtz, se automaticky pedpokld, e -ho najdeme na nult pozici. --> genstav4.pm - -anette 275 -G 93717 - B 32313 - P 74,4 - T 1:50:31 - -Do zvltn funkce jsem pesunul i voln loklnch konflikt, vetn jejich nov -verze. --> genstav5.pm - -euler 277 -G 93717 - B 32313 - P 74,4 - T 2:03:12 - -Nov pokus vrtit z funkce generovat_stavy() pole stav dodan novm kdem. --> genstav6.pm - -Chyba, pro to poprv nelo, je ovem mon schovan v rozebrat.pm v backtrack(), -opravil jsem ji, ale rozebrat.pm jsem nezlohoval. - -anette 279 -G 93719 - B 32311 - P 74,4 - T 1:46:02 !!! MAL ZLEPEN - JAK TO? - -Odstrauji zdvojen zpracovn loklnch konflikt. Nadle se bude pouvat pouze -voln vzan na nov kd. Parseru by se mlo trochu ulevit co do asovch nrok. - -sakura 280 -G 93719 - B 32311 - P 74,4 - T 1:40:13 !!! MAL ZLEPEN - JAK TO? - -Odstrauji tak alternativn sti kdu v hlavn sti genstavu a kontrolu, zda -nov kd produkuje tot co star. A mstn zpracovn loklnch konflikt u nevrac -hash s novm kandidtem. Nen to poteba, protoe stejn rovnou uprav pole novch -stav. --> genstav7.pm - -belzebub 281 -G 93719 - B 32311 - P 74,4 - T 1:21:57 !!! MAL ZLEPEN - JAK TO? - -Kvli znan asov nronosti bude generovn vech pokraovacch stav voliteln -a standardn se bude generovat pouze vtzn stav. Zatm pouze vytvom pslun -vypna a vypnu ho. - -sakura 282 Alarm! Nzk spnost! -Rychle jet zkusme tot s vypnaem zapnutm. Zatek vypad rozumn, ale radji -ho nechm dobhnout do konce. - -sakura 283 -G 93719 - B 32311 - P 74,4 - T 1:37:31 !!! MAL ZLEPEN - JAK TO? - -Chyba snad opravena, poutm znova s vypnutm vypnaem. - -geri 284 -G 93717 - B 32313 - P 74,4 - T 36:35 - - - -Generovn stav je pebudovno. Jet vak nen vyeeno ukldn vygenerovanch -stav tak, aby bylo pozdji mon se k nktermu z nich vrtit. To u by se kvli -rychlosti mlo urit dlat jen u vytipovanch strom, kde na konci nen v podku -valence. - -Naposledy jsem se valenc zabval 22.4.2004, ale jinak. Pak jsem se zabval zakzanmi -peskoky sloves. 29.4.2004 jsem u psal pmo o ukldn stav a myslel jsem si, -e ho mm skoro hotov, ale nebyla to pravda. A dnes to vypad, e mm funkn -to, co se mi zdlo funkn u tenkrt. A je to cel pebudovan. - -Nikde ovem nemu najt zmnku o tom, zda u je naprogramovan poznvn, e ve -vt nen naplnn njak valenn rmec. Mlo by to bt udlan, protoe, pokud -vm, ped asem u jsem ml i statistiku, kolika vt se ten tyjtr tk. - -V modulu subkat.pm je funkce najit_nenaplnene_ramce(), kter pebr stav analzy -(nap. kvli nvrhu stromu) a odkaz na valenn slovnk a vrt 1, pokud zjist, -e ve vt existuje sloveso s nenaplnnm rmcem a materil, kterm by rmec el -naplnit. Tato funkce se momentln vol z funkce backtrack() v modulu rozebrat, -ale jej vsledek se ignoruje. - -Mlo by se udlat nsledujc: -- Jestlie byla funkce zavolna na danou vtu poprv a vrt 1, zapnout ukldn - stav a opakovat analzu vty a k tomuto bodu. Funkci ani nemusme hned znova - volat, stav by ml bt pln stejn, jen vedle bude existovat zsoba zlonch - stav. -- Obnovit vybran stav. Ideln by bylo obnovit druh nejlep pokraovn z msta, - ve kterm jsem si zazdil cestu k naplnnmu valennmu rmci, ale nevme, kter - msto to je - cestu jsme si mohli zazdt i nepmo. Proto obnovme stav, ve kterm - nejmn ztratme na vze oproti stavu, kter byl v dan chvli vybrn pvodn. -- Samozejm z vbru vynechme stavy, ke kterm se pozdji stejn dosplo normln - cestou. Mj. se tak vyhneme opakovanmu zkoumn dvojic N-A na rznch mstech - vty, kdy ve skutenosti se do analzy pohodln vely vechny. -- Musme tedy v njakm hashi evidovat vechny lesy, ze kterch u jsme dmali - pokraovac stavy. Ze zsoby stav vyloume takov, kter vychzej z ji znmho - lesa. -- I tak je nebezpe, e zsoba stav nezvladateln poroste. Musme tedy poet stav - v zsob shora omezit. Nemm jet jasno jak moc, mon by stailo na konstantn - mocninu potu slov ve vt, teba na n^2. Jde nm toti hlavn o to, aby zsobnk - nerostl exponenciln. Nejdel vta v testovacch datech m asi 100 slov, n^2 - by tedy bylo 10000. -- Poet stav ze zsobnku, kter skuten vyzkoume, by ml bt jet ni, abychom - se vsledku nkdy dokali. Navrhuji namtkou zkusit 50 nvrat z konce, pokud - se dve nenajde zaplnn valenn rmec. - - Tm se tak brnm "zacyklen" v ppad, e vta ve skutenosti nem dost - materilu do rmc, ale nae primitivn metoda to nezjistila, nap. kdy je - ve vt jeden akuzativ, ale 2 slovesa, kter by ho chtla. Ze zacyklen by se - sice teoreticky vyklouzlo vyzkouenm vech monch stav, ale jejich poet - je v praxi nutn povaovat za blzk nekonenu. -- Pokud i po "valennm backtrackingu" zstane nkter rmec nenaplnn, mli bychom - se vrtit k vsledku, kter jsme navrhovali jako prvn, protoe pozdjmi pravami - jsme pravdpodobn pokazili dal vci. - - Lep vak bude otestovat, jak to dopad v praxi, zda teba jeden nvrat v prmru - nepinese njak uitek. - - - -4.6.2004 - -Upravuji rozebrat.pm tak, aby se standardn pracovalo bez ukldn zlonch stav, -ale v moment, kdy se na konci najde nenaplnn (a naplniteln) slovesn rmec, -se cel rozbor zopakuje s ukldnm stav. Zatm se s nimi nic nedl. Ovem pozor, -nejsp se nedl vbec nic navc, protoe jsem zapomnl vynulovat vchoz stav, -take strom je ihned hotov. - -G 93717 - B 32313 - P 74,4 - T 22:01 - belzebub 285 - -Oprava. U resetuju stav ped novou analzou. - -G 93717 - B 32313 - P 74,4 - T 22:31 - belzebub 286 - - - -7.6.2004 - -Opravil jsem funkci subkat::najit_nenaplnene_ramce(), nyn snad vrac to, co m. - -G 93719 - B 32311 - P 74,4 - T 1:51:54 - anette 305 - -Byla tam chyba. Po nalezen prvn vty s nenaplnnm rmcem se u pepotvaly -vechny. - -G 93718 - B 32312 - P 74,4 - T 1:28:15 - anette 307 :-( - - - -10.6.2004 - -Poprv probhla cel analza se zapnutm vracenm se pro valenn doplnn. Neoekval -jsem nijak pevratn vsledky, ale zatm se vsledek zcela shoduje s vsledkem -analzy, pi n byla dotyn vlastnost vypnuta, co je podezel. - -G 93718 - B 32312 - P 74,4 - T 1:31:59 - freki 312 - -Poutm to cel jet jednou, ale pidvm statistiku, v kolika vtch k nvratu -dolo, ppadn ke kolika nvratm dolo a kolikrt to vbec vedlo k njak zmn -(zatm zjevn nikdy). - -Opraveno nkolik chyb, te u, zd se, backtracking funguje, akort v nm jet -chyb restrikce na poet stav, take hroz, e bu "nikdy" neskon, nebo skon -chybou pro nedostatek pamti. Pokusn bh na vt 6 nasbral 42000 stav, pak jsem -ho utnul, protoe byl putn interaktivn do more a neml jsem na nj as. Chtlo -by to pi vybrn nvratovho stavu posoudit, zda v tomto stavu jet je ance -zaplnit njakou nezaplnnou valenci. Jinak ho rovnou oznait za zpracovan. - -freki 335 ... Podle oekvn hned prvn backtracking vyhoel na nedostatku pamti -(nageneroval pes 59000 stav, zpracoval jich asi 4000 a spoteboval pes 2 GB). - - - -11.6.2004 - -Potebujeme seznam slov, kter ve vt pedstavuj rezervu pro naplovn rmc. -Jsou to slova, kter spluj valenn podmnky toho kterho slovesa, ale tak je -jet dn sloveso neangaovalo (valenn; mohou vak teba neprvem viset na -modlnm slovesu). Abychom takov seznam zskali, musme upravit funkci, kter -zatm pouze zjiuje, zda lze uspokojit neuspokojen poadavky, ale m na vc. - - - -14.-18.6.2004 - -Pracuju na modulu subkat.pm, aby dokzal ct, kter vazby v navrhovan analze -chyb a kter pro jejich naplnn nelze vyut. Vytvoil jsem funkci obohatit_pole_deti(), -kter mi umon seadit dti slovesa podle pravdpodobnosti, e jde o argumenty. -V ptek 18.6.2004 v 18:29 jsem to konen dopsal, te pijde ladn. - - - -7.7.2004 - -Po dovolen poutm parse.pl. Nezaal se vracet u u vty 6, ale a u vty 17. -Ani tady se ale nezd, e by to mlo nkdy skonit. Oprava: Stav, ve kterm nen -voln njak nadjn uzel (tj. takov, kter by mohl zaplnit valenci), se rovnou -ozna za zpracovan. Vpoet konverguje sice o nco rychleji, doopravdy zpracovanch -je te asi 16000 uzl, ale stejn je to nenosn dlouh a stejn to nakonec skon -na nedostatku pamti. Pjdeme tedy jet o krok dl. Budeme hledat stavy, kde je -nadjn uzel u rovnou pipojen ke slovesu, kter jeho pomoc potebuje. Budeme -ignorovat fakt, e nkter prchody odepisujeme dve, ne mohlo bt pipojen -vbec povoleno. Jestlie u nkterho nadjnho uzlu vyzkoume vechna jeho pipojen -ke vem hledajcm slovesm a nepome to, pestaneme dan uzel povaovat za nadji. -Potebujeme vdt, pro kter sloveso je kter uzel nadj. - -Zmna. Nebudeme si komplikovat evidenci tm, pro jak sloveso je jak uzel nadj. -Prost dovolme pokraovn jen ze stav tsn po zaven nkterho nadjnho -uzlu. Prvn spch: vta 17 je prvn, kterou backtracking proel spn (tj. -podailo se mu valence zaplnit)! Bylo nasbrno 11295 stav, z toho jen 407 bylo -na konci ve front nezpracovanch. - -I te bohuel hroz krach vpotu z dvodu nedostatku pamti. Zpracovan stavy -by se mly ihned po zpracovn (nebo zavren) vyprazdovat a na pznak {zpracovano}. -Byla by s tm ale spojena dal asov reie a navc se obvm, zda je to bezpen, -tj. zda opravdu nikde nesahm na jin poloky zpracovanch stav. - -Zatm se zd, e vpoet by mohl mt anci na dobhnut, i kdy i tak bude trvat -dov dle ne normln vpoty. - -geri 362 -Vpoet umle zastaven na vt, kde nejsp neexistuje optimln zaplnn rmc. -V okamiku zastaven ml proces alokovno 2,3 GB pamti, nageneroval 101193 stav, -z toho 4017 zbvalo zpracovat (avak poet nezpracovanch stle pomalu rostl). - -Krom vyprazdovn stav bych asi ml omezit celkov poet generovanch stav (teba -na 50000?) a celkov poet nvrat (500?). Zatm zavdm vyprazdovn stav a -omezen potu nvrat na 500. - -geri 363 - Nakonec tak Segmentation fault. - -Omezuji poet nvrat na 100. - -geri 364 - - - -13.7.2004, Kolna - -Pi psan disertace narm na problm vztanch vt a toho, pro se pravidlo -pro n uren uplatn tak mlokrt. - -Kolikrt se zkoum, zda jde o sprvnou zvislost typu "kter"? 1160-krt. -Ve vech tchto ppadech u je skuten ptomno zjmeno "kter", ale jet -nen ovena shoda. Pes nkter zjmena se tak zkou natahovat cel ada -zvislost. Mla by se chytat i zjmena visc pes pedloku, ale nemm oveno, -e to funguje, bhem vpotu jsem nic takovho nevidl. - -Na konci vpotu u se pekvapiv neobjevuje statistika spnosti tohoto pravidla, -take nemm podle eho ovit, jak to je. V testovacch datech je celkem 801 vskyt -tvar zjmena "kter". 48 z nich vis pes pedloku. - -Ve 483 ppadech se skuten pravidlo chytlo. Z toho 389-krt pravidlo zabralo -sprvn, spnost je tedy 80,5 %. - - - -16.7.2004 - -Kapitola o plodnosti uzl. Petrnovat a znova pustit parser, jednak jako kontrolu, -e ve ije, jednak pi trnovn pidat udlost ZPL - znakov plodnost. Nap. -"ZPL N7 2 10" znamen, e byl desetkrt zaznamenn ppad, kdy uzel se znakou -N7 ml dv dti. - -geri 367 - 3 448 405 udlost - 76 MB - T 11:08 -geri 369 - parse.pl nad 367.stat, je to podezel, asi nebude spnost takov, -jak m bt. Tak se mi vpoet zd pomal. Skonilo to po 767 vtch! -G 15500 - B 5391 - P 74,2 - T 6:22 -Aha! Zstal zapnut filtr, kter propustil pouze vty obsahujc zjmeno "kter"! -Vypnm, poutm znova. - -G 93785 - B 32245 - P 74,4 - T 22:12 - geri 370 - -Pekvapen. Po vypnut valence1 se spnost neekan zlepila o 67 zvislost -oproti nejlepmu zaznamenanmu stavu ped jejm zapnutm. Potvrzuji do CVS (kam -souasn pidvm modul plodnost.pm). - -Zkoum "typickou plodnost" (TFM). Pravdpodobnost i etnost zvislosti se nsob -pravdpodobnost, e uzel bude mt dal dt. Tato pravdpodobnost m ovem pouze -ti hodnoty. 0, pokud kvta dt u byla naplnna i pekroena. 1, pokud jet -nebyla dosaena. A 0,5, pokud uzel neupednostuje jednoznan konkrtn poet -dt (tj. nen pravda, e dotyn m-znaka byla vidt alespo 100, a z toho alespo -v 80 % s danm potem dt). - -G 93039 - P 73,8 % (geri 375) - -Zkoum "hldn kvty dt" (QFM). Plodnostn pravdpodobnost nyn nabv pouze -hodnot 0 a 1. Nula je pro uzly, kter jednoznan preferuj uritou kvtu, a t -u doshly nebo ji dokonce pekroily. Pro vechny ostatn je jednika. - -G 93113 - P 73,9 % (geri 377) - - - -17.7.2004 - -Implementuji plnou plodnost (FFM). Dv varianty: 3 a vce dt se bu povauje -za jedin stav, nebo se pro kadou znaku zohleduj vechny poty dt, se ktermi -byla vidna. Pokud se 3 a vce dt eviduje najednou, dostane uzel, kter u m -3 dti, automaticky 0.5. Pozor, opraven potn pravdpodobnosti oproti Modelu Jedna: kdy -chce uzel bu 0 nebo 2 dti, ale rozhodn ne 1, a u jedno dostal, m velmi vysokou -pravdpodobnost, e dostane i druh! - -G 93677 - P 74,3 % (geri 378) - -Jet druh varianta - i velk poty dt se potaj samostatn. - -G 90640 - P 71,9 % (geri 380) - - - -Vzdlenost. Krom standardnho zohledovn sousedstv a ppadnho potu intervenujcch -rek se jet pravdpodobnost a etnost zvislosti dl vzdlenost obou uzl. -inm tak na radu Tome Holana, ktermu to pomohlo. - -G 93845 - P 74,5 % - T 22:34 (geri 381) - -Nov rekord! CVS commit. - - - -19.7.2004 - -Vera jsem zkoumal vskyt neprojektivity (pomoc ../neproj/neproj.pl) ve vstupech -jednotlivch parser. Zjistil jsem, e u mne se vyskytly veho vudy dv (kvli -modelu n-tic, jinak by nebyly dn), u Tomovch parser kolem 200 (u jednoho a -1500) a u Zdekova pes 2000 (to u odpovd jejich skutenmu potu v testovacch -datech). - -Souasn m zaskoilo zjitn, e jak Tom, tak Zdenk si nedlaj hlavu s tm, -zda jimi zplozen struktura je strom! - -Dnes budu pidvat neprojektivity do svho parseru. Zanm sbrem rematiztor -pro typ RHEM-PREP-cokoli. Kvli zachovn statistickho pstupu se chci mnoinu -rematiztor nauit z trnovacch dat, nepdm se proto po seznamu, kter urit -maj anottoi treebanku. - -Budu tak muset zjistit, zda se nkter rematiztory vyskytuj v datech v podobn -konstelaci, ani by byly zaveny neprojektivn na uzel za pedlokou. - -Bohuel se to stv pomrn asto. 48 rematiztor se vyskytlo aspo jednou jako -rematiztor a aspo v 50% pevauje jejich zaven na uzel za pedlokou nad jinmi -zavenmi; obvykl podl je vak jen mezi 60 a 70%. - -Dv monosti: 1) natvrdo pipojovat rematiztory za pedloky. Vzhledem k ve -uveden statistice by to nemlo mt moc velk spch. 2) pi zmeren rematiztoru -pouze udlit vjimku ze zkazu neprojektivnch hran. Model rozhodne, zda bude vjimka -vyuita. - -geri 383: pouze povolit, ale nevnucovat -G 94054 - P 74,6 - T 23:19 - Nov rekord! - -Chtlo by to zefektivnit a lpe spravovat (voliteln zapnn v konfiguraci), ale -to te odkldm. Tak, jak to je, pidvm neproj.pm do cvs + commit. - -Infinitivy: jestlie infinitiv vis na svm levm sousedovi, vem uzlm, kter -maj povoleno zleva viset na tomto sousedovi, povolit tak viset na infinitivu. - -geri 384 -G 94074 - P 74,6 - T 23:17 - Nov rekord! - -Li a vak: pouze povolme jejich neprojektivn peskakovn, zbytek a u si vye -statistika. - -geri 392 -G 94080 - P 74,6 - T 23:57 - Nov rekord, i kdy u pomrn zanedbateln. cvs commit - - - -20.7.2004 - -Zan masivn testovn za elem zskn zvrench sel do disertace. -Vypnm podmnnou pravdpodobnost, msto n absolutn etnost zvislosti. - -geri 394 -G 90684 - P 72,0 - T 23:11 - -Pidvm alternativn verzi funkce zjistit_povol(), kter vedle komponentovho -budovn stromu umon tak budovn shora dol. Pozor, zatm je dsledkem vypnut -kontroly projektivity, take vsledek bude asi stran. -geri 395 -Zd se, e se vpoet zacyklil u vty 14. Parser asi bohuel pot s tm, e zvislosti -jsou povolovny uritm zpsobem, a te nemm as ho uit nco jinho. Zkusm jet -funkci obohatit o kontrolu projektivity a kdy to nepome, tak to zabalm. Ne, -balm to hned. Kontrola, e funguje pvodn nastaven (abscetnost=0, komponentove=1). -geri 400 -G 93845 - P 74,5 - T 23:30 -Jet zstaly vypnut neprojektivity. Pi tto pleitosti je trochu umravnm -a jejich zapnn pesunu do parser.ini (zatm bylo nutn ho zakomentovat v genstav.pm). -Zrum model neproj.pm (i z CVS) a ve pesunu do povol.pm. -geri 407 -G 94080 - P 74,6 - T 25:39 OK. - -Redukce znaek. Natrnovat model neredukovanch znaek. Tak se pokusit o redukci -zpsobem pouvanm v Modelu Jedna - nkde mm piblin peklad vech znaek. -freki 401 - trnuje s vypnutou redukc znaek -3 970 666 udlost - T 11:40 -freki 408 - parse.pl nad 401 (i te je pochopiteln vypnut redukce) -G 88351 - P 70,1 - T 26:37 - -Natrnovat model znaek redukovanch baltimorskou metodou. -freki 410 - trnuje s baltimorskou redukc -3 659 134 udlost - T 11:13 -freki 411 - parse.pl nad 410 (zapnuta baltimorsk redukce) -G 89535 - P 71,0 - T 26:02 - -Rzn mra lexikalizace (ne t selektivn, ale lambda). -Opt zapnout souasnou redukci znaek a pout statistiku 374.stat. -geri 412 - parse.pl: ls = 0.734375 -G 94080 - P 74,6 - T 25:45 -freki 413 - parse.pl: ls = 0 -G 93090 - P 73,9 - T 40:21 -freki 414 - parse.pl: ls = 1 -G 69142 - P 54,9 - T 39:27 - -Selektivn lexikalizace. -geri 416 - train.pl: vypnut selektivn lexikalizace -3 061 758 udlost - T 10:34 -geri 418 - parse.pl nad 416.stat -G 91038 - P 72,2 - T 24:14 - -Jet potebujeme vypnat selektivn lexikalizaci jednotlivch slovnch druh -zvlṻ. -train geri 420 - bez pedloek - T 11:40 - parse geri 426 - G 93904 - P 74,5 - T 31:33 -train geri 421 - bez podadcch spojek - T 18:47 - parse geri 427 - G 93604 - P 74,3 - T 31:38 -train geri 422 - bez zjmen - T 18:32 - parse freki 428 - G 93668 - P 74,3 - T 35:07 -train freki 423 - bez vybranch pslovc - T 17:17 - parse freki 429 - G 93487 - P 74,2 - T 34:42 -train geri 432 - bez slovesa bt - 3365461 udlost - T 11:01 - parse geri 433 - G 92235 - P 73,2 - T 24:40 -train freki 425 - bez pseudovalence (tj. selektivn lexikalizace sloves) - T 17:12 - parse drak 431 - G 93987 - P 74,6 - T 24:05 - - - -21.7.2004 - -Dal problm s pseudovalenc je na stran 52. Jsou tam spnosti men nejen -dvno, ale hlavn jen na zvislostech na slovesech (Sb|Obj|AuxT|Pnom|Adv). Vera -jsem zjistil, e na celkov spnosti se vypnut pseudovalence na prvnm desetinnm -mst vbec neprojev (by mal rozdl v potu sprvnch zvislost existuje). - -S vypnutou pseudovalenc (431.vysledky) to bylo 84,6 %. -Se zapnutou pseudovalenc (412.vysledky) to bylo 84,9 %. - -Opt potm normln spnost na vech uzlech. Vyhodnocen pseudovalence u mme -ovme ji ale i v kombinaci s valenc0. Valenci0 tak vyhodnotme samostatn. -Valenci1 u kvli asovm nrokm nebudeme znova testovat a zveejnme slo zjitn -poslednm pokusem. Stejn nebylo na celch datech. - -Pro pseudoval=0 pout statistiku 425, pro pseudoval=1 pout 374. - -pseudoval=0, valence=0 ... u mme (bh 431 vera): G 93987 - P 74,6 - T 24:05 freki -pseudoval=0, valence=1 ... geri 434: G 91866 - P 72,9 - T 24:51 geri -pseudoval=1, valence=0 ... freki 435: G 91882 - P 72,9 - T 25:11 freki -pseudoval=1, valence=1 ... drak 436: G 91882 - P 72,9 - T 24:46 drak -Toton vsledek na poslednch dvou dcch mi byl podezel, nkolikrt jsem kontroloval -zznam nastaven, ale opravdu to bylo putno sprvn. A NA TO, E BYLO VYPNUTO SELEX BT -OPRAVA: -pseudoval=0, valence=1 ... geri 437: G 93987 - P 74,6 - T 24:21 geri -pseudoval=1, valence=0 ... freki 439: G 94080 - P 74,6 - T 24:37 freki -pseudoval=1, valence=1 ... drak 438: G 94080 - P 74,6 - T 25:17 drak -Te u vsledky nekoliduj s dvjmi zjitnmi, ale je podezel, e parametr -$konfig{valence} nem na vsledky dn vliv. Ukazuje se, e pi pestavb genstav.pm -se pln vytratila podmnka, kter se na tento parametr dv. Podmnku vracm a -dky s valence=0 testuju znova, mon se budeme divit. -pseudoval=0, valence=0 ... te u nemus odpovdat verejmu 431; geri 440: G 93987 P 74,6 -pseudoval=1, valence=0 ... freki 441: G 94080 P 74,6 -Inu, valence zejm trv na svm, e celkov vsledek nijak ovlivovat nebude. - -rlivost. Poutm trnink, kter si u OZZ (a u nieho jinho!) vm, zda na danm -rodii vis jet jin uzel se stejnou znakou jako posuzovan dt. -train geri 442 - 3449293 udlost - T 11:29 -parse geri 444 - G 81075 - P 64,3 - T 24:57 - -rlivost opt vypnuta, pro jistotu poutm kontroln bh, kter m zjistit, zda -opt dosahujeme maximln znm spnosti G 94080 - P 74,6. -geri 445 - G 94080 - P 74,6 - T 24:21 -Potvrzeno. - -Zkaz peskakovn sloves (definovan souborem zakazy_preskoceni.txt). Vypnm ho -pznakem nepreskocv=0. Petrnovn nen nutn. -freki 446 - G 93914 - P 74,5 - T 22:27 - -Plodnost se zatm zapnala a vypnala natvrdo v kdu. Pedlvm ji tak, aby se -dala zapnout v konfiguranm souboru a navc aby se dalo vybrat ze t pstup -popsanch v disertaci (FFM, TFM a QFM). Statistika plodnosti nen pmou soust -hlavn statistiky, ale te se ze zvltnho souboru plodnost.txt. Proto pepna -umisuju mezi parametry, jejich zmna nevyaduje petrnovn. - -ffm - geri 447 - G 93852 - P 74,5 - T 25:26 -tfm - freki 448 - G 93292 - P 74,0 - T 24:27 -qfm - drak 449 - G 93315 - P 74,0 - T 24:22 -nic - sakura 450 - G 94080 - P 74,6 - T 31:27 - -Experimenty se vzdlenost. -1: Vzdlenost v dn podob nen parametrem pro vhu zvislosti. -2: Parametrem je, zda dc a zvisl spolu soused (standard Modelu Jedna). -3: Tet stav - vskyt rky mezi dcm a zvislm. Nyn je parametrem B/D/,. -4: Jako 3, ale vha zvislosti se navc dl vzdlenost mezi obma uzly. -Nejdve je teba natrnovat modely pro 1 a 2. Pro 3 u natrnovno mme a 4 trnovn nevyaduje. - -1: train geri 451 - 3283615 udlost - T 10:42 - parse geri 456 - G 91200 - P 72,4 - T 24:08 -2: train freki 452 - 3418129 udlost - T 10:41 - parse freki 457 - G 91926 - P 72,9 - T 24:32 -3: 374.stat - parse drak 453 - G 94032 - P 74,6 - T 23:38 -4: 374.stat - znm vsledek - G 94080 - P 74,6 - -Koordinace. Nejdve kontroln bh, e je opt spnost na maximu. -parse geri 458 - G 94080 - P 74,6 - T 24:34 -Te prost zkusm koordinace=0 v parser.ini. Je tam napsno, e se mus petrnovat, -to petrnujem. -train freki 459 - 3390516 udlost - T 23:02 -parse freki 460 - G 92267 - P 73,2 - T 22:35 - - - -22.7.2004 - -Krtk vty. Zatm se nedaj vypnat a zapnat. Zaadm pepna do sekce nevyadujc -petrnovn, protoe pi petrnovn se potebn statistiky sbraj kadopdn. -geri 461 - G 93838 - P 74,5 - -N-tice. Podobn jako krtk vty dosud nebyly voliteln, te budou. -geri 462 - G 92556 - P 73,4 -Chyba, souasn zstaly vypnut i krtk vty! Znova! -geri 463 - G 93054 - P 73,8 - -Pevn omezen. - -Pipojovn koncov interpunkce ke koeni. -freki 464 - G 91339 - 72,5 - -Zvislosti na koeni nerozliuj smr, ale zato kontroluj ptomnost slovesa ve -vt. Pozor, pi zmn tohoto pepnae se mus petrnovat! -train geri 465 - 3445058 udlost -parse geri 466 - G 94027 - P 74,6 - - - -23.7.2004 - -Plodnost koenu nesm bt vt ne 2. -parse geri 468 - G 93725 - P 74,4 - -Prv jedna vnj zvislost do seku mezi dvma rkami. -parse geri 469 - G 93545 - P 74,2 - -Na rce nesm viset nic. -parse geri 470 - G 93923 - P 74,5 - -Zkaz peskakovn bezdtnch pedloek. -parse geri 471 - G 94024 - P 74,6 - -Zkaz peskakovn podstatnch jmen v genitivu. -parse geri 472 - G 94112 - P 74,7 -Wow! Take pestoe to kdysi pomhalo, te je naopak lep to vypnout! -cvs commit -Pedchzejc pokusy u pepotvat nebudu, akort vude, kde v disertaci mluvm -o zvren spnosti, zmnm 74,6 na 74,7. - -Zvltn zpracovn vztanch vt se zjmenem "kter". -parse geri 473 - G 93967 - P 74,6 -V d-test datech se 801-krt vyskytuje tvar zjmena "kter". -1160-krt se parser ptal na nkterou zvislost, kter pes "kter" mla vst (na nkter -se mohl ptt opakovan a pes nkter vskyty "kter" mohlo vst nkolik potencilnch -zvislost, zejmna protoe ped zjmenem leelo nkolik podstatnch jmen. 483-krt -se nakonec pravidlo aplikovalo a zvislost byla pijata; z toho 389x sprvn. To -dv spnost pravidla 80,5 %. - -Vypnut vech vypnatelnch vlastnost Modelu Dva najednou: -vztaz = 0 -nepreskocg = 0 (m bt nyn vypnuto i ve finln verzi) -predlozky = 0 -carka_je_list = 0 -mezicarkove_useky = 0 -koren_2_deti = 0 -pod_korenem_sloveso_misto_smeru = 0 -koncint = 0 ------ tady kon pevn omezen -ntice = 0 -krvety = 0 -koordinace = 0 -vzdalenost = 0 -vzdalenost_delitel = 0 -... plodnost zstv vypnut stejn jako ve finln verzi -nepreskocv = 0 -selex = 0 -pseudoval = 0 -upravovat_mzn = 0 (msto 2) -abscetnost = 1 (msto 0) -neselektivn lexikalizace zstala na lambda = 0.734375 - -Musme petrnovat, pak teprv testy! -train geri 474 - 3459989 udlost - T 9:10 -parse geri 475 - G 71160 - P 56,5 - T 13:29 (!) - -Te zase ve zapnout, a na pevn omezen. -I tak se to mus petrnovat a neme se pout 374.stat, protoe za pevn omezen -povauju i to, e se pi trnovn pod koenem msto smru kouk na ptomnost slovesa. -train geri 477 - 3445058 udlost - T 11:03 -parse geri 478 - G 91177 - P 72,3 - T 21:57 - - - -Rychle ovit, e po optovnm zapnut vech spnch vylepen a pepnut na 374.stat -se spnost vrt k rekordn hodnot. -parse geri 479 - -dtest data 0.5 (bez petrnovn na 0.5!) -parse geri 484 - G 46505 - B 17213 - P 73,0 -etest data 0.5 (bez petrnovn na 0.5!) -parse geri 485 - G 47653 - B 17737 - P 72,9 - -Petrnovvm podle trnovacch dat z Baltimoru. -train geri 486 - 1218787 udlost - T 2:45 -parse geri 488 dtest - G 45299 - P 71,1 -parse geri 487 etest - G 46504 - P 71,1 - -ETEST 1.0 (s maximlnm vkonem a 374.stat)!!! -A 125713 - G 94121 - B 31592 - P 74,9 - - - -24.7.2004 - -Natrnovat na rznch zdrojch morfologie. Bohuel se to nebude tkat vedlejch -statistik, jako jsou n-tice, krtk vty i zkazy peskakovn sloves. Nemm u -as, abych to dothl do konce. Pokud se ale potvrd, e nejlpe to funguje na -statistice z taggeru, nebude dn dotahovn do konce nutn. - -human - train geri 491 - 3397730 udlost - T 10:56 -tagger a - u hotovo (374) - 3448365 udlost -tagger b - train geri 492 - 5238005 udlost - T 11:27 -dictionary - train freki 493 - 6394663 udlost - T 27:12 - -Je docela divn, o kolik vce udlost se objev pi pouit taggeru b oproti taggeru -a. Te probhne parsing. Nejdv kad na svm, "human" vynechvme, protoe bychom -ho museli testovat na jinch datech. - -tagger a - tagger a (374.stat) - u hotovo (472): G 94112 - P 74,7 -tagger b - tagger b (492.stat) - geri 495 -dictionary - dictionary (493.stat) - freki 496 - -human - tagger a -human - tagger b - -Parsing nad 493.stat (nezjednoznann morfologie) spadl na nedostatku pamti. -Nejdv ze statistiky vyhzm vci, kter se u lta trnuj jen ze zvdavosti, -konkrtn udlosti typu RAM, OSZ, OZS, ZZZ, ZSZ, ZZS, ZSS. Tm se statistika zmen, -potom se ale asi stejn bude muset zkoumat, co je pi vmn morfologickho zdroje -patn. - -MM ad train geri 497.stat - 2875424 udlost (97 MB) - T 20:14 -MD a parse geri 505 - G 91949 - P 73,0 - -MM ad parse geri -Nkde se ztrc pam! Po naten statistiky do parseru m proces jen 400 MB, -ale pak se klidn vyplh na 2 GB a spadne! - - - -1.8.2004 - -Peprogramoval jsem rozepisovn alternativ jinm zpsobem a pestala se ztrcet -pam. - -MM ad train i parse - G 85754 - P 68,0 - T 47:22 - geri 524 - -Problm je, e pi trnovn se zejm alternativy rozepisovaly patn. Proto upravm -train.pl, aby pouval tut funkci, a pustm trnink jet jednou. - -train geri 526 - 2872481 udlost (96 MB) - T 33:20 -parse geri 527 - G 85460 - P 67,8 - T 47:29 - -Druh verze: nejednoznan morfologie, ale bez rozepisovn alternativ (tj. etzec -znaek se povauje za jedinou znaku). - -train geri 528 - 1774510 udlost (55 MB) - T 9:09 -parse geri 529 - G 89553 - P 71,1 - T 21:23 - -DOSUD ZJITNO: -526+527: G 85460 - P 67,8 - T 47:29 - oba MM ad rozepsan -528+529: G 89553 - P 71,1 - T 21:23 - oba MM ad nerozepsan -374+472: G 94112 - P 74,7 - T 24:21 - oba MD a - -Te znova natrnujeme podle MD b. - -train geri 530 - 2379504 udlost (56 MB) - T 7:41 -parse geri 531 - -Prbn spnost je opt dsiv nzk, jak to? -Regulrn vraz pro chytal pln nesmysly. Je nutn petrnovat. - -train geri 534 - 1381009 udlost (34 MB) - T 7:30 -parse geri 535 - G 93920 - P 74,5 - T 23:46 - -Nov nastudovn MD a: - -train geri 536 - 1379879 udlost (33 MB) - T 7:44 -parse geri 537 - G 93840 - P 74,5 - T 22:35 -GRRR!!! -Jak to, e to nen toton s 374+472? -Zapnm rozepisovn alternativ (mon se stopov vyskytlo i u MD?), pouvm 374.stat. -parse geri 538 - G 93721 - P 74,4 - T 40:47 - - - -2.8.2004 - -Take znova. Zrume souasn zpsob rozepisovn, zapneme ten pvodn (i kdy -si myslm, e je chybn). A pouijeme 374.stat a MD a. - -parse geri 539 - G 93721 - P 74,4 :-(( - T 26:11 - -Bez ohledu na vsledek ptrn po pvodnm optimu budu vyplovat ostatn buky -tabulky. Jejich odchylky od hodnot, kter bych dostal, kdybych znal a odstranil -pinu problmu s optimem, by pravdpodobn byly zanedbateln. - -MM ad + MD a, tj. nastavit zdroj na MD a a statistiku na 526.stat. Rozepisovn -alternativ opt vypnout kvli asovm nrokm. - -parse freki 541 - G 91866 - P 72,9 - T 26:43 - -MM ad + MD b, tj. nastavit zdroj na MD b a statistiku na 526.stat. Rozepisovn -alternativ vypnout kvli asovm nrokm. - -parse geri 542 - G 91964 - P 73,0 - T 29:42 - -MD a + MM ad, tj. nastavit zdroj na MM ad, zapnout rozepisovn alternativ, pepnout -na statistiku 536.stat. - -parse freki 543 - G 87236 - P 69,2 - T 48:52 - -MD a + MD b, tj. nastavit zdroj na MD b, vypnout rozepisovn alternativ, pepnout -na statistiku 536.stat. - -parse belzebub 544 - G 93900 - P 74,5 - T 24:45 - -MD b + MM ad, tj. nastavit zdroj na MM ad, zapnout rozepisovn alternativ, pepnout -na statistiku 534.stat. - -parse drak 545 - G 87237 - P 69,2 - T 46:50 - -MD b + MD a, tj. nastavit zdroj na MD a, vypnout rozepisovn alternativ, pepnout -na statistiku 534.stat. - -parse geri 546 - G 93743 - 74,4 - T 29:04 - -human: Nejdve je poteba natrnovat statistiku. - -train loki 547 - 1354520 udlost (33 MB) - T 13:31 - -human + MM ad, tj. nastavit zdroj na MM ad, zapnout rozepisovn alternativ, pepnout -na statistiku 547.stat. - -parse geri 548 - G 87239 - P 69,2 - T 46:39 - -human + MD a, tj. nastavit zdroj na MD a, vypnout rozepisovn alternativ, pepnout -na statistiku 547.stat. - -parse geri 549 - G 93188 - P 73,9 - T 23:41 - -human + MD b, tj. nastavit zdroj na MD b, vypnout rozepisovn alternativ, pepnout -na statistiku 547.stat. - -parse freki 550 - G 93296 - P 74,0 - T 23:12 - -DOSUD ZJITNO: - -MM ne + MM ne = 528+529: G 89553 - P 71,1 - T 21:23 (ne znamen nerozepsan) -MM ad + MM ad = 526+527: G 85460 - P 67,8 - T 47:29 -MM ad + MD a = 526+541: G 91866 - P 72,9 - T 26:43 -MM ad + MD b = 526+542: G 91964 - P 73,0 - T 29:42 -MD a + MM ad = 536+543: G 87236 - P 69,2 - T 48:52 -MD a + MD a = 374+472: G 94112 - P 74,7 - T 24:21 (mlo by bt tot jako 536+537, ale nen, chybu neznm) -MD a + MD b = 536+544: G 93900 - P 74,5 - T 24:45 -MD b + MM ad = 534+545: G 87237 - P 69,2 - T 46:50 -MD b + MD a = 534+546: G 93743 - P 74,4 - T 29:04 -MD b + MD b = 534+535: G 93920 - P 74,5 - T 23:46 -human + MM ad = 547+548: G 87239 - P 69,2 - T 46:39 -human + MD a = 547+549: G 93188 - P 73,9 - T 23:41 -human + MD b = 547+550: G 93296 - P 74,0 - T 23:12 - - - -3.8.2004 - -cvs tag rel-3-4, aby se dala snadno rozbalit dosud nejlep verze parseru. Souasn -verze sice na rozdl od n um lpe rozepisovat alternativy, ale zatm je to za -cenu poklesu spnosti. Na hledn chyby te nemm as, musm ho odloit. - -Souasnou verzi kopruju do zlon sloky a pes ni rozbaluju rel-3-4. Poutm -pokusn bh, kter m ovit, e jsme se opravdu vrtili k spnosti 74,7 % (G 94112). - -parse geri 551 - G 94112 - P 74,7 - T 24:53 - -Pro jistotu do CVS ukldm i novj verzi (sprvn rozepisovn, ni spnost). -Ihned ji tak taguji, aby se dala samostatn rozbalit. -cvs commit -cvs tag rel-3-4b - -cvs commit, aby se uchovala verze, kter um sprvn rozepisovat alternativy. Pak -se vak musm vrtit k optimln verzi co do spnosti, abych mohl pokraovat -v pokusech pro disertaci. - -Zjistit spnost na vtch, a to jak celkovou, tak na vtch jednotlivch dlek. -Upravuju parse.pl. Pidvm do nj taky jedinou zmnu, kterou mla jeho rel-3-4b -oproti rel-3-4 - v tomto ppad by toti nemla mt opravdu dn vliv na spnost. - -parse geri 552 - G 94112 - P 74,7 -7319 vt, z toho 1539 stoprocentnch, tj. vtn spnost 21,0 %. -126030 slov, z toho 10716 ve stoprocentnch vtch, tj. ven vtn spnost 32,1 %. -Podle dlky vt: -dlka - vt - sprvnch - spnost - 1 55 55 100,0 - 2 199 198 99,5 - 3 151 122 80,8 - 4 209 148 70,8 - 5 274 196 71,5 - 6 220 118 53,6 - 7 276 128 46,4 - 8 248 93 37,5 - 9 267 98 36,7 -10 313 85 27,2 -11 282 64 22,7 -12 289 50 17,3 -13 289 48 16,6 -14 297 29 9,8 -15 280 31 11,1 -16 262 16 6,1 -17 273 11 4,0 -18 275 14 5,1 -19 249 10 4,0 -20 231 6 2,6 -21 218 6 2,8 -22 198 4 2,0 -23 193 3 1,6 -24 183 2 1,1 -25 162 2 1,2 -30 101 1 1,0 -32 70 1 1,4 - -Jet zjiuju aktuln SLOVN spnost na rzn dlouhch vtch. - -parse geri 557 - -spnost ven obtnost (opt celkov i na vtch urit dlky). - -parse geri 559 -VAZENO OBTIZNOSTI: A 118711 - G 88372.7251405133 - P 0.744435858012427 -D 2 - N 99 - A 199 - G 198 - P 99.5 -D 3 - N 100 - A 302 - G 275 - P 91.2 -D 4 - N 156 - A 627 - G 553 - P 88.3 -D 5 - N 219 - A 1096 - G 978 - P 89.3 -D 6 - N 183 - A 1100 - G 926 - P 84.2 -D 7 - N 236 - A 1656 - G 1381 - P 83.4 -D 8 - N 217 - A 1736 - G 1444 - P 83.2 -D 9 - N 237 - A 2136 - G 1757 - P 82.3 -D 10 - N 281 - A 2817 - G 2276 - P 80.8 -D 11 - N 256 - A 2820 - G 2244 - P 79.6 -D 12 - N 264 - A 3179 - G 2536 - P 79.8 -D 13 - N 266 - A 3468 - G 2772 - P 79.9 -D 14 - N 275 - A 3861 - G 2993 - P 77.5 -D 15 - N 261 - A 3920 - G 3056 - P 78.0 -D 16 - N 245 - A 3930 - G 2955 - P 75.2 -D 17 - N 256 - A 4368 - G 3314 - P 75.9 -D 18 - N 259 - A 4675 - G 3573 - P 76.4 -D 19 - N 235 - A 4482 - G 3378 - P 75.4 -D 20 - N 219 - A 4389 - G 3286 - P 74.9 -D 21 - N 207 - A 4360 - G 3277 - P 75.2 -D 22 - N 189 - A 4158 - G 3000 - P 72.2 -D 23 - N 184 - A 4246 - G 3149 - P 74.2 -D 24 - N 175 - A 4209 - G 3146 - P 74.7 -D 25 - N 155 - A 3888 - G 2872 - P 73.9 -D 26 - N 147 - A 3825 - G 2769 - P 72.4 -D 27 - N 149 - A 4030 - G 2880 - P 71.5 -D 28 - N 117 - A 3294 - G 2464 - P 74.8 -D 29 - N 115 - A 3360 - G 2448 - P 72.9 -D 30 - N 97 - A 2929 - G 2100 - P 71.7 -D 31 - N 69 - A 2160 - G 1536 - P 71.1 -D 32 - N 67 - A 2170 - G 1546 - P 71.2 -D 33 - N 70 - A 2336 - G 1699 - P 72.8 -D 34 - N 57 - A 1947 - G 1345 - P 69.1 -D 35 - N 49 - A 1734 - G 1195 - P 69.0 -D 36 - N 43 - A 1575 - G 1085 - P 68.9 -D 37 - N 37 - A 1404 - G 962 - P 68.5 -D 38 - N 34 - A 1295 - G 913 - P 70.5 -D 39 - N 38 - A 1482 - G 1045 - P 70.5 -D 40 - N 36 - A 1443 - G 991 - P 68.7 -D 41 - N 24 - A 1000 - G 713 - P 71.3 -D 42 - N 23 - A 984 - G 647 - P 65.8 -D 43 - N 24 - A 1050 - G 726 - P 69.2 -D 44 - N 17 - A 774 - G 522 - P 67.6 -D 45 - N 19 - A 880 - G 606 - P 68.9 -D 46 - N 15 - A 720 - G 483 - P 67.1 -D 47 - N 12 - A 598 - G 422 - P 70.7 -D 48 - N 16 - A 799 - G 558 - P 69.9 -D 49 - N 12 - A 624 - G 429 - P 68.8 -D 50 - N 13 - A 686 - G 457 - P 66.7 -D 51 - N 9 - A 500 - G 332 - P 66.5 -D 52 - N 5 - A 306 - G 206 - P 67.6 -D 53 - N 8 - A 468 - G 301 - P 64.4 -D 54 - N 4 - A 265 - G 184 - P 69.6 -D 55 - N 2 - A 162 - G 118 - P 73.3 -D 56 - N 5 - A 330 - G 231 - P 70.2 -D 57 - N 4 - A 280 - G 125 - P 44.9 -D 58 - N 2 - A 171 - G 89 - P 52.3 -D 59 - N 0 - A 58 - G 35 - P 61.0 -D 60 - N 3 - A 236 - G 157 - P 66.7 -D 61 - N 1 - A 120 - G 67 - P 56.6 -D 62 - N 0 - A 61 - G 30 - P 50.0 -D 63 - N 2 - A 186 - G 101 - P 54.5 -D 64 - N 1 - A 126 - G 84 - P 67.2 -D 65 - N 0 - A 64 - G 29 - P 46.2 -D 66 - N 0 - A 65 - G 40 - P 62.1 -D 68 - N 1 - A 134 - G 76 - P 57.4 -D 70 - N 0 - A 69 - G 45 - P 65.7 -D 72 - N 0 - A 71 - G 41 - P 58.3 -D 73 - N 0 - A 72 - G 39 - P 54.8 -D 74 - N 0 - A 73 - G 51 - P 70.3 -D 75 - N 0 - A 74 - G 30 - P 41.3 -D 100 - N 0 - A 99 - G 49 - P 50.0 -Vpoet skonil v 17:03:52. -Program bel 00:24:22 hodin. - - - -4.8.2004 - -Zjiuju, jak bude spnost, kdy vynechm zvislosti, kter byly vidt mn -ne ptkrt (tzv. experiment 1 v disertaci). A jak bude pesnost a plnost. - -parse geri 562 - -Navc pidvm jako alternativn zvislosti, kter dosahuj alespo 90% vhy vtzn -zvislosti. Protoe to vyaduje generovat vechny stavy a bude to trvat mnohem dle, -poutm to ihned. Jet bych ml vymyslet, jak se zjist P+R obou pokus najednou. -Z asovch dvod se na to ale asi vykalu pln. - -parse geri 563 - AA 126030 - A 133500 - G 95622 - P 71,6 - R 75,9 - F 73,7 - -Poutm test, kter dod spnost rozdlenou podle vzorovch s-znaek (afun). - -parse freki 564; vsledky viz disertace, st 13.5. - -Chystm trnink na mench datech. - -1000 vt: train geri 566 - parse freki 570 - A 126030 - G 84202 - B 41828 - P 0.668110767277632 - T 33:13 -10000: train freki 567 - parse freki 571 - A 126030 - G 90130 - B 35900 - P 0.715147187177656 - T 33:05 -25000: train freki 568 - parse geri 572 - A 126030 - G 92499 - B 33531 - P 0.733944298976434 - T 38:08 -50000: train geri 569 - parse geri 573 - A 126030 - G 93623 - B 32407 - P 0.742862810441958 - T 38:35 - - - -Nyn parsing na umle zmenenm modelu (tj. pouijeme 374.stat, ale vyhzme z nj -vechny udlosti vidn N-krt). - -N<1: 3351830 ud, 574.stat, 73 MB, parse freki 579 - G 94112 - P 74,7 - T 24:42 -N<=1: 944195 ud, 575.stat, 20 MB, parse freki 580 - G 93802 - P 74,4 - T 24:19 -N<=2: 538557 ud, 576.stat, 11 MB, parse geri 581 - G 93638 - P 74,3 - T 24:27 -N<=5: 238984 ud, 577.stat, 5 MB, parse geri 582 - G 93159 - P 73,9 - T 24:14 -N<=10: 123386 ud, 578.stat, 2 MB, parse drak 583 - G 92595 - P 73,5 - T 23:19 - -Trnuju vhradn na Lidovch novinch. 865 soubor. -train geri 584, 698671 slov, pes 39900 vt, NEVYPSALA SE DN STATISTIKA! -train geri 600, 865 soubor, 39978 vt, 698671 slov, 2187990 udlost, 48 MB, T 6:00 -parse geri 601 - G 93534 - P 74.2 - T 24:30 - -Pro srovnn potebujeme trnovac sadu, ve kter bude stejn nebo tm stejn -poet vt, ale ze vech zdroj, pokud mono ve stejnm pomru, v jakm se podlej -na celch trnovacch datech. Celkem mme 73088 vt, chceme vybrat 39978 vt. -Vezmeme tedy kad (73088/39978)-t, tj. kad 1,83-t soubor. - -train freki 602, 864 soubor, 39687 vt, 679665 slov, 2171319 udlost, 48 MB, T 5:55 -parse geri 603 - G 93392 - P 74,1 - T 24:43 - -Zjistit, jak se od sebe li spnost jednotlivch blok testovacch dat o 100 -vtch. Poutm zase klasick parsing se 374.stat, akort na konci se vype zvlṻ -spnost blok. - -parse geri 605 - -Vsledky: -minimum 67,7 % -maximum 82,2 % -Prbn stav 77 % po 1000 testovacch vtch! -Pi sprvnm seazen se d najt 12 blok, jejich celkov spnost je 80,1 %. -Obdobn nejhorch 12 blok m dohromady 69,8 %. - -Tak jet posledn sada test. Trnuju s vynechnm vt obsahujcch ExD. -train geri 610 - 53594 vt - 974838 slov - ALE KURVA NEN TAM POSLEDN VTA!!! - T 8:17 -train geri 613 - 53595 vt - 974841 slov - 2837809 udlost - 63 MB - T 12:41 -parse geri 621 - A 99094 - G 75418 - P 76.1 - T 18:07 - -Trnuju s vynechnm vt obsahujcch Coord nebo Apos. -train freki 612 - T 5:56 -train geri 614 - 36261 vt - 422292 slov - 1507160 udlost - 32 MB - T 9:29 -parse geri 618 - A 41598 - G 34456 - P 82,8 - -Trnuju s vynechnm vt obsahujcch ExD, Coord nebo Apos. -train freki 611 - T 5:43 -train freki 615 - 25970 vt - 354784 slov - 1323832 udlost - 28 MB - T 5:29 -parse freki 622 - A 36116 - G 29959 - P 83,0 - T 6:07 - - - -6.8.2004 - -Potebuju nov srovnn 7 parser, kde bude za mj parser pouita jeho nejnovj -verze (G 94112 P 74,7). Nap. 552.csts. - -We cannot use standard test data because we need held-out data to learn which parser specializes in what. PDT 1.0 d-test data contain 153 files. We keep the first 76 files for testing. The remaining 77 files will be used as held-out data. lv28.csts is the 76th file. The first sentence of lv29.csts is labeled ln94207:76-p3s14 but there are no labels in vse1.csts. The sentence begins with: Celnk mi ekl: A vm ty kvtiny nikdy nezvadnou a opice a se u vs furt usmv Here begins vseb.csts (held-out data). The first part is vsea.csts (new test data). -New tests: vsea.csts contains 62677 words -ec on vsea.csts: G 53275 - P 85.0 % -mc on vsea.csts: G 52233 - P 83.3 % -z on vsea.csts: G 47729 - P 76.2 % -dz on vsea.csts: G 47335 - P 75.5 % -th(r2l) on vsea.csts: G 45331 - P 72.3 % -th(l2r) on vsea.csts: G 44063 - P 70.3 % -th(pshrt) on vsea.csts: G 39806 - P 63.5 % -all parsers: G 27817 - P 44.4 % -at least one parser: G 60255 - P 96.1 % -absolute majority or ec: G 53761 - P 85.8 % -absolute majority P+R: G 49277 - left-out 8352 - P 90.7 - R 78.6 - F 84.2 -tips: - for all parsers number of times they contribute whenever ec is wrong; - voting where ec has 3 votes, mc 2 votes, others 1 vote each. -Now the same for three parsers (ec, mc, dz). -All parsers: G 42090 - P 67.2 % -At least one parser: G 58126 - P 92.7 % -Absolute majority P+R: G 52627 - O 3890 - P 89.5 - R 84.0 - F 86.7 J -Absolute majority or ec: G 54044 - P 86.2 % - -A te vezmeme vseb.csts a zjistme trojice mzn-zv/mzn--ec/mzn--mc+dz, pi -nich m pravdu astji mc+dz ne ec (>50%). - -A 62669 (JAK TO?) - G 53821 - P 85,9 - -Dal monosti: -1. Poadovat vy spnost jednotlivch trojic (75%, 90%...) -2. Zkusit jen dvojice mzn-zv/mzn--ec. -3. Zkusit jen dvojice mzn-zv/mzn--mc+dz. -4. Zkusit znova trojice i dvojice, ale jen slovn druhy bez pd. -5. Naopak zkusit kompletn pravu znaek, nejen tu zjednoduenou popsanou ve. - -Na celch upravench znakch, mc+dz proti ec. -A 62677 - G 53561 - P 85,5 - -Zven poadavek na alespo 2 vskyty, pes 50%. -A 62677 - G 53458 - P 85,3 - -Zven poadavek na alespo 2 vskyty, pes 75% (90% ani nem smysl, to se skoro nevyskytuje). -A 62677 - G 53392 - P 85,2 -Vtah z pednch mst seznamu: -N1#Z, 9 9 1.000000 -PseJ^Vp 8 8 1.000000 -NY2N2N2 6 6 1.000000 -A6Rv-1N6 6 6 1.000000 -... -N6Rs-1Rv-1 6 7 0.857143 -VBZ,Je 6 7 0.857143 -N4VBVf 6 7 0.857143 -N1J^Vp 32 39 0.820513 -A1VpN1 8 10 0.800000 -N6VBRv-1 4 5 0.800000 -A4J^N4 11 14 0.785714 - -Opt uvolnno na aspo 1 vskyt, pes 50 %. Msto trojic se uvauj dvojice (dc od Charniaka). -A 62677 - G 53768 - P 85,8 - -Msto trojic dvojice jako u pedchzejcho pokusu, ale msto od Charniaka se dc bere od MC+DZ. -A 62677 - G 53853 - P 85,9 !!! - -Msto plnch upravench znaek brt jen slovn druh a pd. -A 62677 - G 53963 - P 86,1 !!! - -Tot, ale nyn nesout MC+DZ proti EC, nbr DZ proti EC i MC (ti se nemusej shodovat). -A 62677 - G 53271 - P 85,0 (dokonce o 4 zvislosti hor ne EC sm) - -Tot, ale nyn se EC mus shodovat s MC. -A 62677 - G 53268 - P 85,0 (jet o dal 3 zvislosti hor) - -Vrtit se k tomu, e sout MC+DZ proti EC. Zkusit jet samotn slovn druhy bez -pd. -A 62677 - G 53999 - P 86,2 !!! to u se konen bl k tomu, co dokzalo bezkontextov hlasovn :-( - -Bezkontextov hlasovn (MC+DZ me pehlasovat EC vdycky, EC m pednost pouze -kdy m kad parser vlastn nzor). -A 62677 - G 54044 - P 86,2 !!! - -Jet zkusme popis souboje obrtit, ale mlo by to snad bt tot co pedtm. -Tedy: ume se, kdy me EC zvtzit, i kdy je ve sporu s MC a DZ, kte se shoduj. -Rodie zjiujeme podle nzoru EC. dc znaka je pln upraven, zvisl jen -slovn druh. -A 62677 - G 54058 - P 86,2 !!! - -Tot, ale ob znaky jsou jen slovn druh. -A 62677 - G 54078 - P 86,3 !!! - -Tot, ale ob znaky jsou pln upraven. -A 62677 - G 54090 - P 86,3 !!! - - - -Jet by stlo za to vdt, kdy m vyhrat Collins msto Charniaka, kdy vichni -3 mme svj vlastn nzor. Ale te u to nesthm vyzkouet. -tips: - for all parsers number of times they contribute whenever ec is wrong; - - voting where ec has 3 votes, mc 2 votes, others 1 vote each. -Use weights produced by some parsers (dz, th). Look at z if it used the "last rule" for that constituent. -Ze sekce 13.5 jasn vyplv, e neumm koordinace a apozice. Schvln, jestli mi model nkdy dovol pehlasovat Charniaka v zvislosti ehokoli na J^ nebo Z,. - -Rozit zkoumn kontextu tak, e pro libovolnou kombinaci nzor a znaek budeme -schopni ct, v kolika procentech se stalo, e nkter skupina parser mla pravdu. -Stihnout to jet pidat do konen verze disertace! - - - -Udlat cvs commit kvli pidanmu vyhodnoceni.pm! Nebude to takov sranda, ono -se to toti brn, e pr souasn verze nen up-to-date! - - - -Urgentn po dopsn disertace: Uloit do CVS novj verzi parseru (zejmna -train.pl a model.pm), kter um sprvn rozepisovat varianty. Vyvolat z CVS -star verzi, kter umla doshnout maxima 74,7 % na MDa+MDa. Odladit, najt -chybu a slouit ob verze. - - - -############################################################################### -Npady: -- Do zpracovn neprojektivit pidat neprojektivity koncov interpunkce - v uzvorkovanch vtch. -- jin pstup k zkazu peskok: pi trnovn si u kad zvislosti pamatovat, - zda peskoila sloveso -- 25.5.2004: train.pl: Ve funkci spocitat_lokalni_konflikty() se pouv pole - @rodic, kter ale pi trninku vbec neexistuje! Asi je to omyl, je tam toti - vtev if a else, v jedn z nich je pouit @rodic a ve druh $anot->[]{rodic_vzor}. - Bohuel to nemu te hned opravit a podvat se, co to udl s spnost, protoe - momentln krok za krokem upravuju train.pl, aby mohl pouvat nov knihovny - a pitom produkoval pod TUTɮ statistiku. -- 14.5.2004: genstav.pm: Dokonovn koordinac by se mlo dit systmem zkaz. -- 26.3.2004: DTEST: 16329 sloves v 7319 vtch, tedy 2,23 slovesa na - vtu (vetn tvar pomocnho slovesa bt). - OSNOVA KAPITOLY O SUBKATEGORIZACI - - Vysvtlit subkategorizaci. - - Vysvtlit, pro me pomoci pi parsingu. - - SLBIL JSEM, E V KAPITOLE 9 UKU, JAK ZSKAT SEZNAM. - - Tabulka typickch argument (> 50 % vskyt) - POZOR, ASI PLN IGNORUJU VSKYTY, KDY DAN LEN VIS NA NEM - JINM NE NA SLOVESE. - - rliv slova, tabulky. - CHTLO BY TO PLYNULEJ PECHOD K RLIVOSTI. VYSVTLIT, PRO SE - TM ZABVM. - - Odhalen, e je vlastn dost mlo chyb, s jejich odstrannm to - me pomoci, by mlo pijt a na konec, sp jako vsledek - ptrn, pro subkategorizace nenese velk ovoce. Aby bylo do t - doby o em pst. - --- - - Jak asto slovesu nco chyb? 8583 (6,8 %). - - Jak asto slovesu nco pebv? - - Jak asto jsou na slovese zaveny vzjemn nekompatibiln vci? - --- - Vf ... infinitiv - VB ... ptomn as - Vp ... pest minul - Vs ... pest trpn - Nejastj ppad: N4 m viset na Vf, ale bylo zaveno na VB. - P = mli viset a povsil jsem / povsil jsem - R = mli viset a povsil jsem / mli viset - 29829 vc mlo viset pod slovesem a zrove jsem je pod to - sprvn sloveso i povsil. 38412 mlo bt. 45255 bylo. - P = 29829 / 45255 = 65,9 % - R = 29829 / 38412 = 77,7 % - F = 2PR/(P+R) = 71,3 % -- 8.4.2004: Koordinace: Kad "a" mus mt pod sebou koordinaci! - Pokud tsn za "a" le sloveso, mus to bt koordinace sloves! -- 8.4.2004: 592 ppad (0,47 %), kdy vis Z: na VB, kdy mlo viset - na J^. 535 ppad, kdy ve stejn situaci figurovalo Vp msto VB. -- 8.4.2004: Do zvru disertace: Named entities by pomohly. -- 8.4.2004: KOPR: Jak se pozn typick zvislost, kterou njak - parser um lpe ne jin parsery? -- 8.4.2004: Tomovy rady: - - selektivn lexikalizace vech nejastjch slov bez ohledu na - slovn druh - - vha vzdlenosti dcho a zvislho uzlu a do vzdlenosti 15 - (ale je to vha, kterou se pensob cel pravdpodobnost, - neuchovvaj se tedy samostatn etnosti udlost o jednotlivch - vzdlenostech) -- 8.4.2004: Ven vskyty u sloves. Zatm jsme potali slovesa, se - ktermi bylo dan doplnn vidt. Te budeme tak potat, - kolikrt bylo doplnn se kterm slovesem vidt. - nd = poet vskyt doplnn - ns = poet sloves celkem - = nd / ns - J si do potu sloves nezapamatuji toto sloveso 1, ale...??? - Normalizovat na nejastj sloveso? - To taky nejde, nkter slovesa jsou extrmn ast! - je nco jako ance doplnn trefit co nejvc sloves. - Problm: nen pravdpodobnost. Me nabvat neomezen vysokch - hodnot. Jene jen mlo doplnn se vyskytlo vckrt, ne jak je - poet sloves: - N3 6943 - VINF 15263 - N7 10770 - J 10613 - PR4(se) 17253 - R6(v) 16186 - S 22934 - Z 31708 - N4 39375 - DB 38834 - N1 77233 - (N4) = 7,1. Interpretace: Kolikrt se mohlo vyskytnout s kadm - slovesem? Tm vydlit jeho vskyty - normalizace na etnost - ale - ne, to bychom dostali vdy poet sloves! -- 8.4.2004: Pro kad heslo a kadou vazbu si pamatovat pomr: - (kolikrt pod sebou m tuto vazbu) / (kolikrt se heslo vyskytlo) - Pokud se heslo vyskytlo alespo 5, zapamatovat si vazbu. Pokud - pak takov vazba ve vt je a dostane ji jin heslo, kter po n - netou stejn siln, pokusit se pehodnotit. -- 8.4.2004: Kter valenn doplnn maj nejhor spnost? -- 8.4.2004: Pokud existuje nco jako typick chyba, je to zvislost - na koordinacch. -- 8.4.2004: Roztdit chyby do skupin podle: - - valenn znaky zvislho uzlu - - lemmatu chybn navrenho dcho uzlu - - lemmatu sprvnho dcho uzlu -- Zkontrolovat, zda mm nejlep a nejnovj seznam valenc. -- Valence pedem: pouze pidat do znaek heslo tam, kde jde o sloveso. -- Valence EX POST: budovat zsobnk strom a na konci stromy seadit - podle mry, do jak uspokojuj valenn poadavky svch uzl. -- Vylepen pedloek: do znaek strkat heslo, ne tvar! -- Neodvozen pslovce zkoprovat do znaek. -- Podmnit lambdy konkrtnmi slovy (nap. u slova bt potebujeme vdt, e - lo o slovo bt, i kdyby o druhm lenu zvislosti mly rozhodovat jen - znaky). -- Mon konkrtn u slova bt by stlo za to pidat slovn tvar do znaky. -- Dti - na konci projt zsobnk a pehodnotit stromy podle toho, - kolik dt m kter uzel. -- Podmnn pravdpodobnosti: nejdve vybrat dc uzel (nap. podle - vzdlenosti od optimlnho potu dt), potom vybrat mezi jeho - kandidty na zvisl uzel, pravdpodobnosti jsou podmnn. -- Jet vylepit koordinace. A nezapomnat na apozice. -- Valence: Je-li naplnn podmt, u nepipojovat dal. Obdobn u koene - naplnno sloveso, u pedloky jmenn frze. -- Valence: negativn pravdpodobnosti: vem zvislostem, kter nevedou - k uspokojen njakho valennho poadavku, adekvtn snit pravdpodobnost. -- Valence: Nelze peskoit neuspokojenho zjemce. -- Pi stejn pravdpodobnosti dvou zvislost dt pednost zvislosti - mezi slovy, kter k sob maj ve vt bl. -- Dal zpsob, jak elit Honzovm chybm v pdech: pout morfologickou - analzu (pop. s preferenc pdu, kter vybral Honza). Poznmka: Obas nejde - jen o pdy, napklad infinitiv "pomoci" myln oznaen jako podstatn jmno - doke taky podn nabourat syntaxi. -- Vypotan lambdy (zkombinovat tolik rozmr, kolik to uthne). -- Dal otzka krom plodnosti: je u valenn msto zaplnno? Pokud - ano, pravdpodobnost je blzk nule. -- Obtnj kol: rozpoznat okamik, kdy se poslednho kandidta na - zaplnn valennho msta chystm povsit jinam. -- Rozliovat taggery A a B. -- Dovolit si nkter zvislosti nerozhodnout. -- Dovolit si nkde dt na vbr s vahami. -- Vylepit plodnost. Nap. rka m bu 0, nebo 2, ale nikdy 1. Kdy - u dvojka pev nulu, je nutn to dothnout do konce a neskejsnout - na jednice. -- Nesnesiteln magnetick souadc spojky. Pitom: - - Spojka mus spojovat vci stejnho druhu. - - Vci, kter nejsou z rznch stran spojky, mus bt oddleny - rkou. - - Alespo 2 vci jsou vtinou spojeny, ale nen to absolutn - platn pravidlo, spojky jako "vak" se nkdy spokoj s jedinm - lenem. - -- Distinguish the a tagger from the b tagger. Try the morphological analysis weighed using the taggers (both). -- Pomoc analzy, co bylo kdy kam zaveno, zjistit, jaktoe lokln konflikty v souhrnu pomhaj, akoli jejich vlastn - vyhodnocen k, e to, co maj dlat, dlaj blb? - -############################################################################### -koly od Honzy: -1. Nco udlat s neprojektivitami (a zjistit, co s nimi dlal Mike). -2. Ppadn okolo parsingu: pevst neprojektivity na projektivity a -zpt (=> lnek?). -3. Eugene Charniak: ME inspired parser - prozkoumat, jak to funguje. -############################################################################### -Moje vlastn koly: -- Pest nsledujc lnky: - M. Volk, G. Schneider: Comparing a Statistical and a Rule-Based - Tagger for German (http://xxx.lanl.gov:80/ps/cs/9811002). - Anoop Sarkar: Incremental Parser Generation for Tree Adjoining - Grammar. Proceedings of 34th ACL, Student Session, Santa Cruz, 1996. - - - -------------- -Zajmav vty -------------- -"Kolik m vlastn penz, Michaeli?" pt se snd novin s brlemi -nejslavnjho zpvka planety. + +******************************************************************************* +Perlov parser - zznam pokus +******************************************************************************* + + + +16.1.2002 + +Zkoproval jsem si st "am" z PDT verze 1. Tuto st budu nyn +pouvat pro trnovn. Obsahuje 83197 vt. Morfologick anotace je +provedena statisticky, morfologick analza chyb, ale d se snad +doplnit. Syntaktick anotace je run. + + + +17.1.2002 + +Prvn men na novch trnovacch datech, jet vak se starmi +(baltimorskmi) testovacmi daty. Nov model je zatm vhradn +lexikln (tj. funguje na slovnch tvarech) a nebere v vahu +zvislosti, kter byly pi trninku vidt jenom jednou (tj. co bylo +vidt jednou, jako by nebylo vidt vbec - et se tm pam a as). +Model tak zatm nem dn finesy, kter jsem dve doploval do +modelu na znakch, s vjimkou projektivity. Chyb tedy podprn model +pro plodnost slova, smr zvislosti i vzdlenost len +zvislosti. Tak chyb Viterbi, tj. strom se buduje hladovou (ale +komponentovou) metodou. + +G 28685 - B 35019 - P 45,0 + +Pidn smr hrany. + +G 26955 - B 36749 - P 42,3 + +Ponechny i zznamy o hranch spatench jen jednou. + +G 43000 - B 20704 - P 67,5 + +Pidna "vzdlenost" (sousedn = B, blzko; nesousedn = D, daleko). + +G 44671 - B 19033 - P 70,1 + +Pechod na testovac data z PDT1 (lu, lv, lw). spnost klesla skoro +na polovinu, co je dost zarejc, mon je chyba ve vyhodnocovn +(nebo byla ped chvl). + +G 49157 - B 77450 - P 38,8 + + + +18.1.2002 + +Po nalezen a odstrann chyby ve skriptu se spnost vrtila u jen +na 42 %. Zvratn vsledky u starch dat byly zejm zpsobeny tm, e +star testovac data jsou nyn soust novch trnovacch. + +G 53217 - B 73390 - P 42,0 + +Z trnovacch i testovacch dat odstranna velk psmena, zbyten +tpila statistiky. + +G 54027 - B 72580 - P 42,7 + +Jet jeden pokus zahodit zvislosti, kter byly vidt jenom jednou. + +G 50365 - B 76242 - P 39,8 + +Vrceny zvislosti vidn jen jednou, pidn model pro plodnost uzlu. + +G 54421 - B 72186 - P 43,0 + +Odstranna chyba, e nkter vty obsahovaly slovo "konec +dku". spnost klesla, protoe chyba umle pidvala neexistujc +vty, kter se nedaly zkazit. + +G 53982 - B 72046 - P 42,8 + +Pokus s modelem na znakch (od taggeru). Zatm neredukovan sada +znaek a bez Viterbiho, take pokud se vsledky podobaj tm z +Baltimoru, je to komponentovm budovnm stromu a zejmna vtm +objemem trnovacch dat a snadnji analyzovatelnmi testovacmi daty. + +G 71535 - B 54493 - P 56,8 + +Redukovan znaky: to snad ani za tu nmahu nestoj! e by zase bug? + +G 71622 - B 54406 - P 56,8 + +Znaky redukovan podle Collinse: u znaek, kter maj pd (N, A, P, C +a R), slovn druh a pd, u ostatnch slovn druh a poddruh. + +G 72207 - B 53821 - P 57,3 + +Po naten statistik pro slova i znaky spnost kupodivu mrn +stoupla, by se ve statistikch nadle hledaly jen znaky. Mon +proto, e nkter slova jsou shodn s nktermi znakami a nhodou to +vylo? + +G 72364 - B 53664 - P 57,4 + + + +Prvn kombinace modelu na slovech s modelem na znakch! Znakov +model se pouije tehdy, kdy slovn doporuuje zvislost, kterou nikdy +nevidl. Jinak se d vdy pednost slovnmu modelu. + +G 71445 - B 54583 - P 56,7 + +Pi nahrazovn slovnch hran, kter byly vidt nejve jednou: + +G 72593 - B 53435 - P 57,6 + +Pi nahrazovn slovnch hran, kter byly vidt nejve dvakrt: + +G 72327 - B 53701 - P 57,4 + + + +------------------------------------------------------------------------------- +Rokytnice nad Jizerou +Pozor, tento tden pokusy nejsou na stejnch trnovacch ani +testovacch datech, protoe je dlm na notebooku a ten neuthne +pli velk data. Ani bhem toho tdne nejsou bohuel data pod +stejn. + + + +21.1.2002 + +V nsledujcch testech se pednostn pouvaly statistiky na slovech, +pokud byla etnost 0, 1 nebo 2, pouila se msto toho statistika na +znakch. Pokud se tedy dle mluv o etnosti, je to bu etnost na +slovech, nebo na znakch, podle toho, jak se vpoet odvjel. +924 slov celkem +Pi pouit vech hran bez ohledu na etnost: +G 605 - B 319 - UG 0 - UB 0 - P 65,5 % - R 65,5 % +Pi vynechn hran s etnost 0: +G 582 - B 279 - UG 23 - UB 40 - P 67,6 % - R 63,0 % +Pi vynechn hran s etnost men ne 2: +G 439 - B 168 - UG 166 - UB 151 - P 72,3 % - R 47,5 % +Pi vynechn hran s etnost men ne 3: +G 354 - B 112 - UG 251 - UB 207 - P 76,0 % - R 38,3 % +Pi vynechn hran s etnost men ne 4: +G 283 - B 68 - UG 322 - UB 251 - P 80,6 % - R 30,6 % +Pi vynechn hran s etnost men ne 5: +G 244 - B 59 - UG 361 - UB 260 - P 80,5 % - R 26,4 % + + + +22.1.2002 + +Nevynechvaj se dn slova. V kolech, ve kterch vyhrla zvislost se +slovn pravdpodobnost men ne 5, se hledn opakuje s pouitm +pravdpodobnosti sloen ze slovn a znakov pravdpodobnosti, piem +ob maj stejnou vhu 0,5. + +G 692 - B 232 - P 74,9 + +Dotaz: Najt ppady, kdy na zklad slovn pravdpodobnosti vyhrla +patn zvislost, ale s pouitm pravdpodobnosti na dvojicch (heslo, +znaka) by vyhrla sprvn zvislost. + +K tomu je nutn natrnovat model na dvojicch (heslo, znaka). Jsou dv +monosti, jak takov model definovat ale jen ta druh m smysl; ta prvn +je tm ekvivalentn modelu na slovech: + +P = P((heslo1, znaka1) - (heslo2, znaka2)) = P(slovo1 - slovo2) +nebo +P = P(heslo1 - heslo2) * P(znaka1 - znaka2) + + + +23.1.2002 + +Pepsny kusy train.pl i parse.pl, aby se oba programy daly roziovat +o rzn modely. Nyn je poteba je vyladit, protoe kvli njakm chybm +spnost zase hluboko klesla. + +1. Model slovnch, heslovch a znakovch zvislost petrnovn na balku +Lidovch novin. 865 soubor, 45091 vt, 698671 slov (bez koen). Klin +notebook trnuje rychlost zhruba 1000 vt za 50 vtein (zpotku). Ale +limit, ne notebook upadne do nekonenho swapovn, je asi 6000 vt. +Nakonec vzat vsledek trnovn podle prvnch 5000 vt. Nalezeno 57036 +rznch zvislost slov, 51328 rznch zvislost hesel a 2681 rznch +zvislost znaek. + + + +24.1.2002 + +Zanm testovat vera natrnovan model. Testovac data velk a mal +(kvli rychlosti). Mal data: lu02.a (53 vt, 924 slov bez koen). +Velk data: test.a = setzen lu02.a a lu05.a (216 v, 3540 slov bez +koen). + +Samotn model zvislost znaek bez modelu plodnosti. Vsledky v prvnm +dku plat pi pouit vech hran vetn tch, kter nebyly v trnovacch +datech vidt nikdy (tj. ir odhad). daje ve druhm dku takov zvislosti +vynechvaj. + +G 510 - B 414 - P 55,2 +G 488 - B 385 - P 55,9 - R 52,8 + +Model zvislost znaek vetn plodnosti (ale bez zvislost slov). + +G 519 - B 405 - P 56,2 +G 499 - B 375 - P 57,1 - R 54,0 + +Model zvislost slov bez plodnosti. Tch 53 vt trv na Klin notebooku +11 minut, z toho 5 minut natn statistik! + +G 315 - B 609 - P 34,1 +G 174 - B 228 - P 43,3 - R 18,8 + +Tot, ale s plodnost. + +G 313 - B 611 - P 33,9 +G 173 - B 229 - P 43,0 - R 18,7 + +Kombinace slovnho a znakovho modelu. Slovn zvislosti vidn alespo +ptkrt se pouij bez ohledu na plodnost. Jinak se zkombinuj se znakovmi +pl na pl (je u nutn normalizovat etnosti, aby se z nich staly pravdpodobnosti, +ale dv jsem to nedlal a fungovalo to, tak radji vyzkoume oboj). +Celkov etnost se nsob znakovou plodnost, dn slovn plodnost se +nevyuv. + +G 524 - B 400 - P 56,7 +G 515 - B 379 - P 57,6 - R 55,7 + +Druh pokus: od pedchozho se li pouze tm, e absolutn etnosti jsou +pevedeny na relativn, tj. na pravdpodobnosti. + +G 524 - B 400 - P 56,7 +G 515 - B 379 - P 57,6 - R 55,7 + +Jet jeden npad: Nekombinovat slova a znaky pl na pl, ale v opanm +pomru, ne v jakm jsou jejich prmrn etnosti - aby se slova mla +vbec anci prosadit. Nebo v pomru "kolik je rznch zvislost slov" +proti "kolik je rznch znaek". + +G 525 - B 399 - P 56,8 +G 516 - B 378 - P 57,7 - R 55,8 + + + +------------------------------------------------------------------------------- +Praha +Zptky z Rokytnice nad Jizerou, nejdv se pokusm pesn zopakovat +vsledky z Rokytnice (na stejnch datech). + + + +30.1.2002 + +Stejn trnovac i testovac data jako v Rokytnici, stejn vsledky - +to se mi ulevilo. + +G 525 - B 399 - P 56,8 +G 516 - B 378 - P 57,7 - R 55,8 + +Tohle je bez vyhlazen plodnosti a na rokytnickch trnovacch datech +(prvnch 5000 vt z Lidovch novin), ale na kompletnch testovacch +datech (sam Lidov noviny). + +G 72227 - B 53801 - P 57,3 +G 69951 - B 51605 - P 57,5 - R 55,5 + +A te jet opan pokus: rokytnick testovac data (tj. pouze +lu02.a), ale vechna trnovac data (pes 80000 vt). + +G 546 - B 378 - P 59,1 +G 542 - B 367 - P 59,6 - R 58,7 + +Na zvr dne: rokytnick programy, ale kompletn trnovac i testovac +data z PDT 1. + +G 72749 - B 53279 - P 57,7 +G 71792 - B 52300 - P 57,9 - R 57,0 + + + +31.1.2002 + +Vyhlazen plodnosti. Pokud c(uzel)<5, d se msto vech nulovch plodnost +mal slo, kter je men ne nejmen skuten plodnost danho uzlu, celek +se pak normalizuje na souet 1. U uzl, kter byly vidt astji, se nuly +ponechvaj, protoe se povauj za dostaten prokzan. Pseudokd pro +dce pozorovan uzly: +fmin = min(f(uzel, i), i); +n0 = count(f(uzel, i)==0); +foreach i where f(uzel, i)==0 {f(uzel, i) = 0.5*fmin/n0;} +for i = 0 to 3 {f(uzel, i) /= (1+0.5*fmin);} + +G 72749 - B 53279 - P 57,7 +G 71792 - B 52300 - P 57,9 - R 57,0 + +To je dost divn, e by tato zmna neudlala s vsledky vbec nic? +Nejsp je to tm, e momentln pouvm jen znakovou plodnost a tam +se asi nuly pli nevyskytuj. + +Zkusme se tedy jet vrtit ke slovn plodnosti, te u +vyhlazen. Celkov plodnost bude souin slovn a znakov plodnosti. + +G 72510 - B 53518 - P 57,5 +G 72095 - B 53024 - P 57,6 - R 57,2 + +Pokus: adaptivn analza. Po vbru zvislosti se tato pid do +statistiky a od pt se me pout, jako by byla vidna v +trnovacch datech. + +G 71304 - B 54724 - P 56,6 +G 71299 - B 54702 - P 56,6 - R 56,6 + +Je to zhoren, take se vrtme k pvodnmu stavu. Chyb pi analze +je jet pli mnoho, ne aby bylo dobr se z analzy nco uit. + + + +1.2.2002 + +Opt zruit adaptivn analzu a taky slovn plodnost. + +Pokus o demagnetizaci souadcch spojek. Pokud se to poda, bude +jet poteba demagnetizovat dvojk v koeni, rky (funguj jako +spojky) a mon i nco dalho. + +Prvn zpsob demagnetizace: spojka a posledn len koordinace se +prohod, ostatn leny koordinace a rky tedy zvisej na poslednm +lenu. Testovn je zatm tm mn estnm zpsobem, tj. koordinace ve +vzorov analze se transformuj podobn jako se transformovaly v +trnovacch datech. estnj by bylo provst inverzn transformaci +nalezen analzy a vsledek porovnat s netransformovanou vzorovou +analzou. Me se toti stt, e transformace njakou informaci +ztrat, a pak oba postupy nebudou ekvivalentn. + +I tak je ovem vsledek katastrofln. Z m neznmch pin +transformace koordinac mimodn zvily pitalivost koen vt. + +G 40659 - B 85369 - P 32,3 +G 40656 - B 85353 - P 32,3 - R 32,3 + +Byla njak bota v plodnosti. Zatm plodnost odstavena pln, ale +lep vsledky asi budou, a chybu odstranme a plodnost znovu +pouijeme. + +G 75578 - B 50450 - P 60,0 +G 75577 - B 50441 - P 60,0 - R 60,0 + + + +7.2.2002 + +Odstranna chyba v plodnosti. Bohuel se ukazuje, e ani tak nen +plodnost v tomto tvaru pnosem. + +G 73320 - B 52708 - P 58,2 +G 72823 - B 52255 - P 58,2 - R 57,8 + +Plodnost tedy vyazena z innosti. Pro kontrolu jet jednou test, ml +by mt stejn vsledky jako posledn test z 1. nora, ale nen tomu +tak. Ve zmnn chyba (zpsoben mimochodem u pi trnovn, kdy se +dvojk z koene nahrazoval przdnm etzcem) mla zejm pi +vynechn plodnosti blahodrn inky. Nicmn i tohle je zlepen +oproti pvodnm koordinacm o 0,6 %. + +G 73427 - B 52601 - P 58,3 +G 72985 - B 52059 - P 58,4 - R 57,9 + +Druh zpsob demagnetizace koordinanch spojek. Koenem podstromu je +posledn len koordinace, na kadm lenu koordinace vdy vis +pedchzejc len a rka nebo spojka, kter ho od pedchzejcho +lenu oddluje. + +G 74611 - B 51417 - P 59,2 +G 74168 - B 50887 - P 59,3 - R 58,9 + +Tet zpsob demagnetizace koordinanch spojek. Koenem podstromu je +posledn len koordinace, na nm vis koordinan spojka, na n +pedchzejc len koordinace, na nm pop. rka, pak dal len atd. +--- +Objevena chyba v transformacch koordinac. Po oprav chyby nov +pokusy. + +Prvn zpsob (pouze vmna koene): + +G 73943 - B 52085 - P 58,7 +G 73464 - B 51538 - P 58,8 - R 58,3 + +Druh zpsob (binrn stromeek): + +G 74398 - B 51630 - P 59,0 +G 73919 - B 51084 - P 59,1 - R 58,7 + +Tet zpsob (etzek): + +G 73059 - B 52969 - P 58,0 +G 72681 - B 52474 - P 58,1 - R 57,7 + + + +8.2.2002 + +Velmi asto se chybuje v tece za vtou. Dostane se na adu a pli +pozd, take po n dve ne koen hmtne njak slovo vty. Dv mon +een. Prvn: je-li na konci vty interpunkce, hned na zatku ji +povsit pod koen. Druh - statisticky ist, ale pedpokldm men +spnost: do povolench hran pidat hranu z koene do poslednho +dosud nezavenho slova vty - vzhledem k tomu, e nepovolujeme +zavsit koen pod nco jinho, projektivita se tm neporu. Mon, e +dokonce meme povolit hranu z koene kamkoliv, ale tm si nejsem +jist. Zatm zkusm nejjednodu cestu, tj. prvn een. + +G 78156 - B 47872 - P 62,0 +G 77975 - B 47735 - P 62,0 - R 61,9 + +Dal problm je se sloenmi pedlokami (nap. "v oboru"). I na n +zavedeme transformaci a budeme je testovat "neestnm zpsobem", +tj. tut transformaci provedeme s testovacmi daty, msto abychom +inverzn transformaci provdli s vsledkem analzy. Vsledkem je +kupodivu zhoren. Radji tuto transformaci zrume. + +G 77619 - B 48409 - P 61,6 +G 77440 - B 48283 - P 61,6 - R 61,4 + +Upravena Mikova redukce znaek. U interpunkce pidno jako druh znak +znamnko samo. + +G 79364 - B 46664 - P 63,0 +G 79153 - B 46359 - P 63,0 - R 62,8 + +Roztpena statistika o zvislostech na koeni. Msto na smr (kter +je od koene vdy doprava) se ptme, zda vta obsahuje nebo neobsahuje +sloveso. Pokud ho toti obsahuje, vis na koeni obvykle ono, +poppad f koordinace, jeho je lenem, ale ne jin slovn druhy. + +G 79572 - B 46456 - P 63,1 +G 78634 - B 44988 - P 63,6 - R 62,4 + +Neekanm dsledkem je velmi ast chybn pipojen slovesa na +koncovou interpunkci msto na koen. Proto jet rozme pravu sady +znaek: pokud jde o posledn prvek vty, pipoj se na konec znaky +"K", cel znaka tedy bude nap. "Z.K". + +G 81727 - B 44301 - P 64,8 +G 78618 - B 40262 - P 66,1 - R 62,4 + +spnost sice stoupla, ale na pkladech chybnch vt je vidt, e +v mstech, kvli kterm jsem k poslednmu opaten shl, se toto +minulo inkem. Bude nutn jet tot co se znakou provst s heslem +a se slovem. + +G 81901 - B 44127 - P 65,0 +G 78624 - B 40100 - P 66,2 - R 62,4 + +Navzdory v snaze ukzky chyb i nadle ukazuj adu zvislost vedoucch +koncov interpunkce dol, take bychom je mon mohli zakzat natvrdo. Efekt +ale zpotku asi nebude velk, protoe ve stejnm souboru chyb je vidt, e +koen podstromu pod interpunkc je stejn njak nesmysl, kter koenem bt +nem, take zavenm celho podstromu jinam se chyba neodstran. Asi je +nejvy as vrtit Viterbiho. + + + +9.2.2002 + +Intermezzo - pokusy doma na mench trnovacch i testovacch datech! Ke +trnovn pouity soubory zanajc na "c1", k testovn pouze soubor "l02.a". +Testujeme algoritmus Viterbiho, take nm zmizelo prbn sledovn, co by se +stalo, kdybychom vynechvali zvislosti s nulovou etnost. (Stejn u se to +del dobu moc neli.) Nicmn zatm testujeme jen funknost, take ka +Viterbiho je nastavena na 1. Vsledek by tedy ml bt stejn jako dve, co +jet pro jistotu ovme pozdji na fakult. POZOR (do pednky)! Viterbi +vyaduje alespo primitivn vyhlazen, nuly ho dokou pln zniit! + +G 629 - B 383 - P 62,2 - T 0:20 s + + + +10.2.2002 + +Ale tot starm programem dv jin vsledky! + +G 590 - B 334 - P 63,9 - T 0:16 s +G 569 - B 301 - P 65,4 - R 61,6 + +U Viterbiho vychz celkem 1012 zvislost, v pvodn procedue 924 (co je +slo, se kterm se setkvm u dlouho, take mu vm sp). + +Pestvm porovnvat koen (to jsou sam chyby), stejn ale nedostvm souet, +jak m bt. spnost je ovem te zas lep ne pvodn. + +G 629 - B 335 - P 65,2 + +Objevena dal chyba - zaven koncov interpunkce se zapotvalo dvakrt. +Nyn u vsledky Viterbi(1) vypadaj stejn jako vsledky pvodn procedury: + +G 590 - B 334 - P 63,9 + +Viterbi(2) + +G 563 - B 361 - P 60,9 + +Viterbi(2) se zapotnm obou nejlepch strom: + +G 1091 - B 694 - P 61,1 + +Objevena dal chyba - koen neml znaku #, nbr przdn etzec. Oprava ale +vsledky vylepit nedokzala. + +G 590 - B 334 - P 63,9 + +Objevena dal chyba - hrany se dlily podle smru i u koene, pestoe tam je +smr vdy doprava a msto smru se mlo sledovat, zda vta obsahuje sloveso. + +G 595 - B 329 - P 64,4 +G 594 - B 325 - P 64,6 - R 64,3 + +Tot s viterbim(2), zapotvaj se oba nejlep stromy: + +G 826 - B 501 - P 62,2 + +A te se asi definitivn vrtme k analze bez Viterbiho (resp. k Viterbimu +s paprskem ky 1). Nicmn budeme nadle pracovat s programem, kter +Viterbiho na podn umouje. Star program od tto chvle pestvm +aktualizovat. + +G 595 - B 329 - P 64,4 + +U znakovho modelu nyn k pedlokm msto pdu dvm pmo pedloku samu. +Brnm se tm zbytenm chybm zpsobenm mylnm vstupem Honzova taggeru. + +G 596 - B 328 - P 64,5 + +Do vzdlenosti pidn tet stav. Krom B (blzko, tj. sousedi) a D (daleko, +tj. nesousedi) jet zvltn druh D, oznaen rkou (",") a znamenajc, e +mezi dotynmi se vyskytla rka. Prvn vsledky jsem podil omylem - model +byl u natrnovn se temi stavy, ale pouit stle jen se dvma. Jsem zvdav, +jestli po oprav dojde k dalmu zlepen, nebo naopak ke zhoren... + +G 611 - B 313 - P 66,1 + +Po oprav skuten trochu ztrcm, natst ne a na pvodn rove: + +G 607 - B 317 - P 65,7 + +Model vzdlenosti jet rozen, nyn je evidovn i poet rek, kter se mezi +uzly vmstnaly. Tm by se mohly spravit vcelenn koordinace. + +G 612 - B 312 - P 66,2 + + + +11.2.2002 + +Peneseno zptky na fakultu. Natrnovno opt na 83000 vt, testovno +na 7319 vtch. Jinak vnitn shodn. Vsledky jsou mrnm zlepenm +oproti stavu na fakult v ptek veer, ale zhorenm oproti stavu +vera veer doma. + +G 82312 - B 43818 - P 65,3 - T 5:28 + +Pro jistotu zkusme jet jednou Viterbiho. dn pekvapen se +bohuel nekon :-( + +G 93253 - B 51820 - P 64,3 - T 25:32 + +Pokusil jsem se, aby se stejn jako u analzy ani u trninku u +nevynechvala posledn vta. Protoe jsem vak pidal podmnku, e se +zpracovvaj jen neprzdn vty, celkov poet ve skutenosti klesl, a +to o dost: na 73088. Trnovn trvalo nco pes 2:49 minuty. Poet +testovacch vt zstv 7319. + +G 82312 - B 43818 - P 65,3 + +Do znaky pro podstatn jmno jsem pidal daj, zda jde o kestn +jmno osoby (s dvojic kestn jmno - pjmen se zachz jinak ne s +jinou podobnou dvojic podstatnch jmen a bvaj v tom chyby - snad +tato evidence pome)... + +G 82948 - B 43257 - P 65,7 + +Mal statistika navc: +34717 ppad rozhodoval pouze znakov model (slovn p=0). + To je 27,5 % ze 126205 celkem rozhodovanch slov. + Tyto ppady dopadly G 20681 - B 14036 - P 59,6. +100 % sprvnch vt bylo 867, tj. asi 11,8 %. + Nejdel z nich mla 18 (!) slov. + Prmrn takov vty mly 4 slova. + Prmrn dlka testovac vty je pitom 17 slov. + Mon by bylo zajmav odvodit statistiku, kter by krom + spnosti na zvislostech tak mila, jak tk bylo tto + spnosti doshnout - na vtch o 1 slovu to bylo jednoduch, + na vtch o 100 slovech je i 50 % velk spch - mon vt, + ne odpovd 50 zavenm slovm? + + + +Prvn pokus s modelem zvislost hesel. Samostatn testujeme model +"hesla*znacky", tj. pravdpodobnost, e se souasn vyskytla dan +zvislost mezi hesly a dan zvislost mezi znakami. (To nen tot +jako pravdpodobnost, e se vyskytla zvislost, jej dc uzel m +souasn dan heslo1 a znaku1 a zvisl uzel m souasn dan heslo2 +a znaku2. Tato druh monost je tm ekvivalentn modelu zvislost +slov, zatmco prvn monost je mn specificky parametrizovna. + +"slova" +A 126030 - G 54684 - B 71346 - P 43,4 (vse) +A 40496 - G 22634 - B 17862 - P 55,9 (>=5) +A 29997 - G 15635 - B 14362 - P 52,1 (>=1) +A 55537 - G 16415 - B 39122 - P 29,6 (==0) + +"hesla" +A 126030 - G 46360 - B 79670 - P 36,8 (vse) +A 44601 - G 20362 - B 24239 - P 45,7 (>=5) +A 21059 - G 8002 - B 13057 - P 38,0 (>=1) +A 60370 - G 17996 - B 42374 - P 29,8 (==0) + +"znacky" +A 126030 - G 85215 - B 40815 - P 67,6 (vse) <== NEJLEPSI!!! +A 119222 - G 78586 - B 40636 - P 65,9 (>=5) +A 210 - G 79 - B 131 - P 37,6 (>=1) +A 6598 - G 6550 - B 48 - P 99,3 (==0) - ze by tohle byly Z.K? + +"0.5*slova+0.5*znacky" (resp. "$ls*slova+$lz*znacky") +A 126030 - G 84264 - B 41766 - P 66,9 (vse) +A 111976 - G 74632 - B 37344 - P 66,6 (>=5) +A 7444 - G 3081 - B 4363 - P 41,4 (>=1) +A 6610 - G 6551 - B 59 - P 99,1 (==0) + +pro >=5 "slova", jinak "0.5*slova+0.5*znacky" +A 126030 - G 82487 - B 43543 - P 65,5 (vse) +A 111734 - G 72799 - B 38935 - P 65,2 (>=5) +A 7680 - G 3135 - B 4545 - P 40,8 (>=1) +A 6616 - G 6553 - B 63 - P 99,0 (==0) + +pro >=15 "slova", jinak "0.5*slova+0.5*znacky" +A 126030 - G 84089 - B 41941 - P 66,7 (vse) +A 119175 - G 77448 - B 41727 - P 65,0 (>=5) +A 244 - G 89 - B 155 - P 36,5 (>=1) +A 6611 - G 6552 - B 59 - P 99,1 (==0) + +"hesla*znacky" +A 126030 - G 47558 - B 78472 - P 37,7 (vse) +A 63766 - G 29378 - B 34388 - P 46,1 (>=5) +A 1289 - G 39 - B 1250 - P 3,0 (>=1) +A 60975 - G 18141 - B 42834 - P 29,8 (==0) + +"slovo-znacka" +A 126030 - G 46213 - B 79817 - P 36,7 (vse) +A 109476 - G 37433 - B 72043 - P 34,2 (>=5) +A 8915 - G 2083 - B 6832 - P 23,4 (>=1) +A 7639 - G 6697 - B 942 - P 87,7 (==0) + +"heslo-znacka" +A 126030 - G 44212 - B 81818 - P 35,1 (vse) +A 111258 - G 36476 - B 74782 - P 32,8 (>=5) +A 7092 - G 1044 - B 6048 - P 14,7 (>=1) +A 7680 - G 6692 - B 988 - P 87,1 (==0) + +"(heslo-znacka)*znacky" +A 126030 - G 54773 - B 71257 - P 43,5 (vse) +A 21132 - G 14391 - B 6741 - P 68,1 (>=5) +A 97168 - G 33680 - B 63488 - P 34,7 (>=1) +A 7730 - G 6702 - B 1028 - P 86,7 (==0) + +pro >=5 "(heslo-znacka)*znacky", jinak "znacky" +A 126030 - G 85101 - B 40929 - P 67,5 (vse) +A 119222 - G 78472 - B 40750 - P 65,8 (>=5) +A 210 - G 79 - B 131 - P 37,6 (>=1) +A 6598 - G 6550 - B 48 - P 99,3 (==0) + + + +12.2.2002 + +Hledme nejlep vyven model "slova" a "znaky". +"ls*slova+lz*znacky" + +ls=0 +A 126030 - G 85215 - B 40815 - P 67,6 (vse) +A 119222 - G 78586 - B 40636 - P 65,9 (>=5) +A 210 - G 79 - B 131 - P 37,6 (>=1) +A 6598 - G 6550 - B 48 - P 99,3 (==0) + +ls=0,25 +A 126030 - G 85150 - B 40880 - P 67,6 (vse) +A 119151 - G 78493 - B 40658 - P 65,9 (>=5) +A 281 - G 107 - B 174 - P 38,1 (>=1) +A 6598 - G 6550 - B 48 - P 99,3 (==0) + +ls=0,5 +A 126030 - G 85262 - B 40768 - P 67,7 (vse) +A 119052 - G 78569 - B 40483 - P 66,0 (>=5) +A 376 - G 143 - B 233 - P 38,0 (>=1) +A 6602 - G 6550 - B 52 - P 99,2 (==0) + +ls=0,5625 +A 126030 - G 85265 - B 40765 - P 67,7 (vse) +A 118953 - G 78540 - B 40413 - P 66,0 (>=5) +A 475 - G 175 - B 300 - P 36,8 (>=1) +A 6602 - G 6550 - B 52 - P 99,2 (==0) + +ls=0,625 +A 126030 - G 85292 - B 40738 - P 67,7 (vse) +A 118863 - G 78536 - B 40327 - P 66,1 (>=5) +A 564 - G 206 - B 358 - P 36,5 (>=1) +A 6603 - G 6550 - B 53 - P 99,2 (==0) + +ls=0,6875 +A 126030 - G 85304 - B 40726 - P 67,7 (vse) +A 118807 - G 78520 - B 40287 - P 66,1 (>=5) +A 620 - G 234 - B 386 - P 37,7 (>=1) +A 6603 - G 6550 - B 53 - P 99,2 (==0) + +ls=0,71875 +A 126030 - G 85339 - B 40691 - P 67,7 (vse) +A 118755 - G 78537 - B 40218 - P 66,1 (>=5) +A 672 - G 252 - B 420 - P 37,5 (>=1) +A 6603 - G 6550 - B 53 - P 99,2 (==0) + +ls=0,734375 +A 126030 - G 85355 - B 40675 - P 67,7 (vse) <== NEJLEP! +A 118699 - G 78542 - B 40157 - P 66,2 (>=5) +A 728 - G 263 - B 465 - P 36,1 (>=1) +A 6603 - G 6550 - B 53 - P 99,2 (==0) + +ls=0,7421875 +A 126030 - G 85205 - B 40825 - P 67,6 (vse) +A 118675 - G 78383 - B 40292 - P 66,0 (>=5) +A 752 - G 272 - B 480 - P 36,2 (>=1) +A 6603 - G 6550 - B 53 - P 99,2 (==0) + +ls=0,75 +A 126030 - G 85222 - B 40808 - P 67,6 (vse) +A 118666 - G 78399 - B 40267 - P 66,1 (>=5) +A 759 - G 273 - B 486 - P 36,0 (>=1) +A 6605 - G 6550 - B 55 - P 99,2 (==0) + +ls=1 +A 126030 - G 54684 - B 71346 - P 43,4 (vse) +A 40496 - G 22634 - B 17862 - P 55,9 (>=5) +A 29997 - G 15635 - B 14362 - P 52,1 (>=1) +A 55537 - G 16415 - B 39122 - P 29,6 (==0) + +Prvn piblen k pouit valence a souasn k pouit +trigram. Pravdpodobnost zvislosti nov parametrizovna otzkou, zda +u ekvivalentn zvisl uzel pod tmt dcm uzlem +vis. Ekvivalentn je takov uzel, kter m stejnou morfologickou +znaku (resp. ty dva znaky, kter nm z n zbyly). + +G 84960 - B 41070 - P 67,4 + +Zhoren. Zkusme zjemnit definici ekvivalentnch sourozenc. Pokud +maj oba pd, musej ho mt stejn; jinak musej mt stejn prvn +psmeno znaky. + + + +12.2.2002 veer doma + +Opakovn poslednho testu, ale na domcch trnovacch a testovacch datech. + +G 623 - B 301 - P 67,4 + +Pokus: z testovacch dat vynechny vty, kter obsahuj alespo jednu zvislost +typu ExD. Pokus je inspirovn Carrollem et al. (1998), kter do testovn +experimentu se subkategorizanmi pravdpodobnostmi pi parsingu zahrnul pouze +vty pokryt svou gramatikou (tj. vty, ke kterm gramatika najde alespo jednu +analzu) s odvodnnm, e zbytek stejn obsahuje eliptick jmenn vty, +fragmenty dialog a podobn podivnosti, kter se stejn nesna pokrt. + +G 449 - B 215 - P 67,6 + +Dotaen pokusu do konce: dotyn vty byly vynechny i pi trninku. Msto asi +1900 vt se trnovac mnoina scvrkla jen na 1246 vt. + +G 446 - B 218 - P 67,2 + +Od diskriminace vt s ExD tedy zase ustupuji. Ustupuji tak od parametrizace +pravdpodobnost podle dvojat, protoe to spnost nezvedlo a chyby, ktermi +to bylo motivovno, se vyskytuj vesele dl. Mme tedy opt 1983 trnovacch +vt a 924 testovacch zvislost. + +G 608 - B 316 - P 65,8 + +Pozor! Take spnost na domcch datech je vrazn hor! V tomto svtle +pestv bt pln jist, e od vc, od kterch jsem prv ustoupil, jsem +opravdu ustupovat ml. I kdy jist nen ani opak, statistick prkaznost +domcch dat je pece jenom nzk. + +Opraveno potn spnosti pro zvislosti vybran nhodou (ve statistice mly +etnost 0). Chyba spovala v tom, e se mezi tyto hrany pipletly zvislosti +koncov interpunkce na koeni, kter se piazuj bez statistiky, tj. etnost u +nich nebyla uvedena, ale mly skoro stoprocentn spnost. + +A 924 - G 608 - B 316 - P 65,8 (ve) +A 749 - G 529 - B 220 - P 70,6 (>=5) +A 157 - G 71 - B 86 - P 45,2 (>=1) +A 18 - G 8 - B 10 - P 44,4 (==0) + +Pokus: Vynechat z trninku a testu vty, kter obsahuj koordinaci nebo +apozici. Z 1983 trnovacch vt zbylo 900. Z testovacch vt zbylo 21 (tj. 257 +slov). + +A 257 - G 187 - B 70 - P 72,8 (ve) +A 140 - G 119 - B 21 - P 85,0 (>=5) +A 111 - G 65 - B 46 - P 58,6 (>=1) +A 6 - G 3 - B 3 - P 50,0 (==0) + + + +13.2.2002 + +Zopakovn experiment s vynechnm koordinac a apozic. V trnovacch +datech zbylo 36200 vt, v testovacch 3496 vt. + +A 41598 - G 31367 - B 10231 - P 75,4 (ve) +A 40805 - G 31050 - B 9755 - P 76,1 (>=5) +A 756 - G 303 - B 453 - P 40,1 (>=1) +A 37 - G 14 - B 23 - P 37,8 (==0) + +Zopakovn experiment s vynechnm ExD (koordinace a apozice +vrceny). V trnovacch datech zbylo 53500 vt, v testovacch 5522 +vt. + +A 99092 - G 68494 - B 30598 - P 69,1 (ve) +A 98253 - G 68200 - B 30053 - P 69,4 (>=5) +A 762 - G 283 - B 479 - P 37,1 (>=1) +A 77 - G 11 - B 66 - P 14,3 (==0) + +Spojeny posledn dva pokusy. Vynechny jsou vty obsahujc ExD, +koordinaci nebo apozici. V trnovacch datech zbylo 25900 vt, +v testovacch 2658. + +A 36114 - G 27430 - B 8684 - P 76,0 (ve) +A 35300 - G 27076 - B 8224 - P 76,7 (>=5) +A 746 - G 340 - B 406 - P 45,6 (>=1) +A 68 - G 14 - B 54 - P 20,6 (==0) + +Przkum je hotov. Zkusm nicmn tento stav vc njakou dobu +ponechat. Jednak se tm zrychluje vpoet a jednak se mu lpe +soustedit na druhy chyb, kter s koordinacemi nesouvisej. + +Pokus: pestaneme do dlky zvislosti zahrnovat poet rek, protoe +tm se mon statistika pli drob. Ponechme vak informaci, zda se +na trase aspo jedna rka vyskytla, i nikoliv. + +G 27435 - B 8679 - P 76,0 + +Zlepen je minimln, ale alespo se to nezhorilo, take to tak +nechme. + +Valence - vodn przkum. Do vsledk jsou nyn zahrnuty pouze +zvislosti typu Sb, Obj, Adv, Pnom. Typ se ur podle vzorov vty, +pokud byl zvisl uzel zaven jinam, je to chyba. Analyzuje se ovem +cel vta. + +G 8848 - B 2569 - P 77,5 + +Tvary slovesa "bt" zkoprovny do znaek. Slibuji si od toho, e +konstrukce "bude dlat" ("dlat" m bt dc) se u nebude plst +s "me dlat" ("me" m bt dc). + +G 9014 - B 2403 - P 79,0 + +Znova rozlieny znaky pro zvratn zjmena "se", "si" od ostatnch +zjmen. Dvod: tato dv zjmena hraj dov vt roli pi valenci +ne vechna ostatn zjmena, take by mlo pomoct, kdy si je nebudeme +plst. Poznmka: mezi funkcemi, kter se maj kvli valencm sledovat, +jsem zapomnl uvst AuxT. V nejblim pokusu ho tedy jet tak +vynechm, pak se k nmu vrtm. + +G 9019 - B 2398 - P 79,0 + +Nepatrn zlepen. A te jak to vyjde pi pidn kontroly AuxT? +(Prvn vsledky jsou opakovnm baseline, druh opakovnm pokusu s +pidanm "bt", tet opakovnm pokusu s pidanm "se/si".) + +G 9254 - B 2677 - P 77,6 +G 9445 - B 2486 - P 79,2 +G 9456 - B 2475 - P 79,3 + +Jet vylepen "bt". Je-li zporn, odstranit pedponu "ne-". Je-li +v pest minulm, odstranit koncovku rodu a sla. U infinitivu se +zastaralou koncovkou "-ti" odstranit koncov "-i". + +G 9489 - B 2442 - P 79,5 + +Nejprimitivnj valence. Zkusit pidat heslo kadho slovesa do +znaky (pi zachovn prvnch dvou psmen znaky). Pravdpodobn to +sp ukod, protoe data pli zdnou bez nleitho vyhlazen, ale +za zkouku to stoj. + +G 6522 - B 5409 - P 54,7 + +Tak snad ani za zkouku to nestlo. Jet mal diletantsk pokus +(diletantsk, protoe se pli nezatuje dodrenm zkon +pravdpodobnosti): u zvislost, jejich dcm uzlem je sloveso, +udlat dva zznamy do te tabulky: jeden bude mt v dcm uzlu jen +morfologickou znaku, druh ji bude mt obohacenu o heslo jako v +pedchozm pokusu. V zvislm uzlu bude za vech okolnost znaka. Pi +analze se pak vythnou oba zznamy a etnosti se setou. Tm se +jednak trochu vyhlad dkost dat, jednak se celkov zvhodn +zvislosti zen slovesem oproti jinm, tj. slovesn vazby se snad +budou eit o nco pednostnji. + +G 9537 - B 2394 - P 79,9 + +Jednoduch valence. Na zatku kad analzy si najt vechna slovesa +ve vt, ke kadmu z nich vechny znm rmce, ty rozsekat na leny, +najt potenciln instance len ve vt a vechny takto vznikl +zvislosti si zapamatovat jako valenn. Zatm se neptme ani po tom, +zda je nkter vazba povinn (vyskytuje se ve vech rmcch), ani zda +dv rzn valenn zvislosti na tomt slovese jsou ze stejnho rmce +tohoto slovesa, ani zda jedna valence nen uspokojovna opakovan, ani +zda valenn zvislost peskakuje jin sloveso, kter m stejnou +neuspokojenou valenci. Na zatku kadho kola pak hledme nejdve +valenn zvislosti a teprve v ppad, e dn z nich nen povolen, +hledme mezi ostatnmi. + +G 8660 - B 3271 - P 72,6 + +Zd se, e tam, kde jedno sloveso m vce variant rmc, zbyten +vyhrvaj ty mn pravdpodobn. Utime tedy valenn zvislosti +sestupn podle pravdpodobnosti. + +G 8835 - B 3096 - P 74,1 + +A dle: valenn zvislosti dostanou pednost pouze v ppad, e u +je povolena ta nejlep z nich. Jinak se postupuje normlnm +zpsobem. I tak samozejm me vyhrt valenn zvislost, kter nen +nejlep z valennch. + +G 9416 - B 2515 - P 78,9 + +Opravena chyba: nezvratn zjmena s pdem nebyla zapotna jako +jmenn argumenty (jde zejmna o vztan a ukazovac zjmena - "to", +"kter" apod.). + +G 9426 - B 2505 - P 79,0 + +Zkusme jet jako druh kritrium azen valennch zvislost pidat +dlku zvislosti (m krat, tm lep). + +G 9407 - B 2524 - P 78,8 + +Nezlepuje se to. Ne vrtme nhodnou, zkusme tedy, zda pome +pstup "m del, tm lep". + +G 9445 - B 2486 - P 79,2 + +Kupodivu je tu mrn zlepen! Take to tak nechme. + +Zsobnk valennch zvislost se me zaseknout, pokud na jeho ele +vz zvislost, kter u nikdy nebude povolena. V takovm ppad je +nutn zvislost ze zsobnku odstranit. Takov ppad se pozn podle +toho, e nastala jedna z nsledujcch podmnek: 1) zvisl uzel u je +pipojen jinde; 2) nad zvislm uzlem vede zvislost, kter nevede nad +dcm nebo obrcen. + +G 9401 - B 2530 - P 78,8 + +Nepomohlo to a je to dost divok, tak to vrtm do pvodnho +stavu. Nkdy bych mohl ladnm vyzkoumat, co se tam vlastn dje a ve +kterch ppadech k tomu dolo, ale te na to nen as. + +G 9445 - B 2486 - P 79,2 + +Zkusm z testu vynechat Adv (vtinou nejsou soust valence). + +G 5903 - B 1668 - P 78,0 + +Vrtme Adv, vynechme Sb (nejsou podchyceny valennmi rmci). + +G 6962 - B 1953 - P 78,1 + +Vrtme oboj. + +G 9445 - B 2486 - P 79,2 + +Vynechme z valence sloveso "bt", protoe samo u je bez valence +podchyceno celkem dobe a naopak se mnohokrt vyskytuje jako pomocn, +nebo s mnoha rznmi rmci, take valence by ho mohla sp poplst. + +G 9455 - B 2476 - P 79,2 + +Zvhodnme zavovn tch vedlejch vt, kter jdou snadno poznat, +ale dosavadn model na to nem nstroj. Jakmile pod sloveso pipojme +zleva heslo "kter", koukneme se, zda je ped nm rka, pipojme ji +tak a potom hledme nejbli pedchzejc podstatn jmno nebo +zjmeno (mlo by se shodovat v rod a sle, ale to souasn znaky +neumouj, tak to odlome - stejn nepjde o pedmt ani podobnou +zvislost, take jde spe o uklizen vedlej vty ne o jej sprvn +zaven). + +G 9507 - B 2424 - P 79,7 + +Zkombinovat "diletantskou pseudovalenci", kterou jsme nahoe doshli +79,9 %, s tm, co jsme pouili v poslednm pokusu. Dvod: te sice +lpe ne u pseudovalence preferuju valenn zvislosti ped +nevalennmi, ale pro rozlien valennch mezi sebou zase potebuju +urit stupe lexikalizace, a ten byl v pseudovalenci obsaen. + +G 9564 - B 2367 - P 80,2 + +Zvratn zjmena "se" a "si" jsou u nkterch sloves tak zahrnuta pod +valencemi N4, resp. N3. Povolme tedy oboj. + +G 9560 - B 2371 - P 80,1 + +Mal zhoren. Nov valence na sebe spe nabalily rzn dal +kraviny. Ve uveden druhy "se" a "si" je nutn njak eit, ale +takhle to nejde, take beru zpt. + +MUSIM ALE ZKONTROLOVAT seznam vazeb, kter pouvm! Posledn +provdn pokus jsem dlal, protoe v seznamu vbec nebylo "obrtit +se" (bylo tam pouze "obrtit N4"), pitom na webu je jasn vidt, e +existuje rmec "obrtit se na". + + + +14.2.2002 + +Pokus: spojky "e", "aby" a ("zda" nebo "zdali") se pilep ke +znace. + +G 9635 - B 2296 - P 80,8 + +Ale zapomnl jsem upravit znaky ve valencch, mon to bude jet +lep. + +G 9619 - B 2312 - P 80,6 + +Ou nou! Jaktoe je to zase hor? Musm to ale asi nechat takhle, je +to sprvnj. + + + +21.2.2002 + +Pokus o podn zmen nkterch vsledk uvdnch ve lnku do +Taibei. Musm se dokzat vrtit k pvodn verzi programu, v ptek ped +odeslnm lnku jsem to dlal narychlo zbrkle a nepovedlo se mi to. + +Prvn krok: nyn lze v konfiguraci nastavit, zda se maj testovat +pouze hrany, kter maj ve vzorovch datech uritou analytickou +funkci, nebo vechny hrany. Prvn vsledek je pro hrany s afuny Sb, +Obj, Adv, Pnom a AuxT (tedy stejn jako ve vech pokusech poslednch +dn), druh je pro vechny hrany (afun .*). + +G 9491 - B 2440 - P 79,5 +G 27318 - B 8796 - P 75,6 + +Druh krok: specifikaci afun, kter se nesm ve vt vyskytnout, aby +vta nebyla vynechna, u konfigurace umouje. Nyn se zkusme vrtit +na neomezen data. Prvn vsledek je se zakzanmi afuny ExD, Coord a +Apos (tak to bylo poslednch nkolik dn), druh je pro povolen +vechny afuny pi testu (avak natrnovno je pod na omezench +datech), tet pouv neomezen data pi testu i pi trninku. Ve +vech pokusech u je ponechno testovn libovolnch afun (ve vtch, +kter nebyly vynechny). + +G 27318 - B 8796 - P 75,6 +G 84026 - B 42004 - P 66,7 +G 83540 - B 42490 - P 66,3 + +Ni spnost tetho pokusu vzhledem k druhmu je +pekvapujc. Krom toho jsme klesli i pod pvodn +spnost. Oekvno: + +G 85355 - B 40675 - P 67,7 + +Pi zbrklm ptenm pokusu o nvrat byly ovem vyazeny veker +machinace s morfologickmi znakami, take mimo jin zmizel tak +rozdl mezi uzly zvisejcmi na koeni, kdy ve vt bylo sloveso, a +kdy tam nebylo. Nyn naopak veker machinace vracm a budu je pak +vyazovat postupn, s vtm rozmyslem. Nejdve ale prbn +petrnovn a petestovn: + +G 87589 - B 38441 - P 69,5 + +Nyn odstranme tzv. selektivn lexikalizaci znaek, tj. veker +machinace se znakami vetn pidvn lemmatu do znaky pro +interpunkci. Vjimkou je pouze prava znaek pro kestn jmno, kde se +ale nepidv lemma, nbr cel lexikln kategorie; krom toho to +nesouvis s valenc. Interpunkce s valenc taky moc nesouvis, take +ji v ptm kroku jet tak vrtm. Te ale prbn vsledky: + +G 84314 - B 41716 - P 66,9 + +Vrcena lexikalizace znaek pro interpunkci a pedloky. (Pedloky +byly lexikalizovny u 10.2.2002, interpunkce jet dve.) + +G 85997 - B 40033 - P 68,2 + +spnost je pod vy ne ped pokusy s valenc. Mohlo by to bt +tm, e te v dlce zvislosti eviduji vskyt rky, tenkrt jsem +evidoval i poet rek. Jet tedy zkusm vrtit poet rek. Jet +jsem tak nalezl nsilnou pravu vedlejch vt zanajcch zjmenem +"kter", a vypnul jsem ji. + +G 85350 - B 40680 - P 67,7 + +Konen jsem se trefil vce mn do pedvalennho vsledku (jsem +jenom o pt zvislost hor). Te tedy opt pestanu evidovat poet +rek mezi dcm a zvislm a msto nj budu evidovat pouze +existenci rky. + +G 85360 - B 40670 - P 67,7 + +Vypnm lexikalizaci pedloek, ta se stane soust balku +"selektivn lexikalizace", a neme se tedy zapotvat do baseline +ped valennmi pokusy. Pi selektivn lexikalizaci u navc nebudu +pracovat s pouitm tvarem pedloky, ale s jejm lemmatem. + +G 85139 - B 40891 - P 67,6 + +Pt je poteba se njak postavit k nsilnmu een vedlejch vt +zanajcch zjmenem "kter". Je teba pokrt i dal vztan +zjmena, kterch se to tk. Je teba zjistit, jak moc pomh povinn +pipojovn takovch vt k nejblimu pedchzejcmu podstatnmu +jmnu a kolikrt pmo toto pipojen bylo patn i sprvn. Je teba +se zamyslet, zda nebude lep njak volnj a statistitj model, +kter nap. bude podmiovat obyejnou pravdpodobnost podmnkami, +kter pi nsilnm een vedou pmo k pipojen vedlej vty. A +cel tato funkce by asi mla bt voliteln v konfiguraci. Pokud se +rozhodnu mt ji pro valenn pokusy zapnutou, mla by bt soust +baseline. + + + +22.2.2002 + +Pokus s povinnm pipojovnm vztanch vedlejch vt k nejbli +jmenn frzi nalevo od rky. Zatm vrtm to, co u tam jednou bylo, +tedy vty se zjmenem "kter" v rznch rodech. Udlm to jako +volitelnou funkci, ale pro nejbli pokus bude zapnuta. Zvlṻ tak +zmm spnost tchto zvislost, protoe jedna vc je, kolikrt +byly spn ony samy, a jin, kolik chyb odstranily nebo naopak +zpsobily jinde ve strom. + +Vztan vty budeme testovat na malm vzorku 445 vt (soubory +lu0?.a). Tady je jeho poten spnost: + +G 5424 - B 2477 - P 68,6 + +Prvn dek je vdy celkov spnost, druh jen vztan vty. + +G 5487 - B 2414 - P 69,4 +G 30 - B 16 - P 65,2 + +To je pozoruhodn! Jak je vidt, samotn zaven vztanch vt je +natolik chybn, e celkovou spnost kaz, avak i tak pomh +umravnit jin zvislosti, dky emu celkov spnost naopak +vzrostla! Mon ale, e zaven vztanch vt bylo chybn i pedtm, +akort chyby smovaly jinam, take celkov i tohle je zlepen (nemm +toti monost jednodue zmit spnost zaven vztanch vt, kdy +nen pouito zvltn zachzen). To skoro stoj za zmnku v njak +publikaci. A te musme zjistit, kde k chybm dochz a zda se s nimi +d nco dlat. + +Chyby lze rozdlit do nsledujcch skupin: +1) Jmenn frze nebo sloveso ve vedlej vt jsou leny njak +koordinace nebo apozice. To zatm neumm opravit, protoe zatm neumm +zachzet s koordinacemi a apozicemi. +2) Sprvn jmenn frze rozvita zprava jinmi jmennmi frzemi v +genitivu nebo pedlokovmi frzemi. Zatm obecn neumm opravit a +een bude velmi obtn, zen leckdy smanticky nebo dokonce ani +lovkem nerozhodnuteln. Mon by nicmn stlo za przkum, zda nen +naopak astj zaven na nejvyho lena takovho etzku, msto +na nejniho, kter je souasn nejble k vedlej vt. +3) Jako pedchoz skupina, avak patn jmenn frze se se vztanm +zjmenem neshoduje v rod a sle. To umm opravit. + +Zakzno ven, kde nen shoda (nevm pak ale nikam, ani na +nejbli shodnou jmennou frzi, je to zas nechno na statistice). + +G 5477 - B 2424 - P 69,3 +G 29 - B 7 - P 80,6 + +Celkov spnosti to sice nepomohlo, ale nemu dlat vdom chyby, +abych zabrnil jinm, musm radji hledat jin zpsob odstrann tch +jinch. Nyn zkusm navc najt shodnou jmennou frzi, na kterou by +vedlej vta la zavsit. + +G 5486 - B 2415 - P 69,4 +G 33 - B 11 - P 75,0 + +Msto zjmena "kter" nyn vyzkoume zjmeno "jak". + +G 5422 - B 2479 - P 68,6 +Vztan vta uveden zjmenem "jak" se neobjevila ani jednou! + +Vracme zjmeno "kter", zjmeno "jak" vypoutme. Vracme se k +velkm testovacm datm. + +G 85830 - B 40200 - P 68,1 +G 390 - B 128 - P 75,3 + +Rozme pravidlo na vskyty zjmena "kter" v pedlokovch frzch +(nap. "Mu, na kterho byla podna aloba..."). Budeme tak potat, +kolikrt se zjmeno "kter" vyskytlo v testovacch datech celkem, aby +se poznalo, jak velkou st problmu jsme vbec schopni uchopit. + +G 85844 - B 40186 - P 68,1 +G 400 - B 133 - P 75,0 +vskyty zjmena "kter" = 124064 + +Tak to je tedy k smchu, vdy 533 zachycench vskyt "kter" tvo z +celkovho potu pouh 4 promile! To se divm, e zsah ml vbec +alespo takov vliv, jak ml. Na vin je samozejm psn vbr +okolnost, a nkterm okolnostem by se snad dalo pomoci bez nebezpe +ztrt - napklad se poaduje, abych v danm okamiku ml u zjmeno i +rku pipojen. Nemm-li, teba to provihnu. Nebudu ale te u tento +smr sledovat dl, protoe v nm stejn nen dn statistika. Radji +se vrtm ke sledovn valence a sbru podklad pro konenou verzi +lnku do Taibei. + +Vyhodnocen baseline (pln nelexikalizovanho parseru) paraleln pro +vechny zvislosti a pro valenn dleit zvislosti. + +G 85889 - B 40141 - P 68,1 (ve) +G 25459 - B 7936 - P 76,2 (valence) + +Lexikalizace s ls=0,734375 + +G 85844 - B 40186 - P 68,1 (ve) +G 25446 - B 7949 - P 76,2 (valence) + +Tak te u tohle ani nen optimln ls, protoe kdy jsem ho +stanovoval, byl cel model troiku odlin. Natst rozdly jsou tak +nepatrn, e na desetinch procenta se zhoren neprojev a bude to +vypadat, e se nic nehnulo ani nahoru, ani dol. + +pln obyejn lexikalizace, tj. ls=1, nsleduje: + +G 54844 - B 71186 - P 43,5 (ve) +G 14426 - B 18969 - P 43,2 (valence) + +Obyejn lexikalizace vrcena na 0,734375, pidna selektivn +lexikalizace (sloveso "bt", pedloky, podadc spojky a zvratn +zjmena). + +G 87615 - B 38415 - P 69,5 (ve) +G 25098 - B 8297 - P 75,2 (valence) + +Pidna "pseudovalence" (zvislostem obsahujcm slovesa se st +jejich pravdpodobnost podle znaek s pravdpodobnost, kde znaka +slovesa je lexikalizovan heslem). + +G 87735 - B 38295 - P 69,6 (ve) +G 25299 - B 8096 - P 75,8 (valence) + +A nakonec pidna opravdov valence v rozsahu, ke ktermu jsem se pi +pprav lnku zatm dostal (preference valennch zvislost). Ve +ve uveden zstv tak zapnuto. + +G 87645 - B 38385 - P 69,5 (ve) +G 25259 - B 8136 - P 75,6 (valence) + +A te budeme postupovat zase zptky, ale vechno budeme mit pi +vynechanch vtch obsahujcch ExD, Coord nebo Apos. + +G 28592 - B 7522 - P 79,2 (ve) +G 9629 - B 2302 - P 80,7 (valence) + +Nyn vypnu valenci. + +G 28644 - B 7470 - P 79,3 (ve) +G 9652 - B 2279 - P 80,9 (valence) + +Nyn vypnu i pseudovalenci. + +G 28643 - B 7471 - P 79,3 (ve) +G 9608 - B 2323 - P 80,5 (valence) + +Nyn vypnu i selektivn lexikalizaci. + +G 27556 - B 8558 - P 76,3 (ve) +G 9544 - B 2387 - P 80,0 (valence) + +Nyn zmnm ls na 1 (pln obyejn lexikalizace). + +G 17557 - B 18557 - P 48,6 (ve) +G 4984 - B 6947 - P 41,8 (valence) + +Nyn zmnm ls na 0 (dn lexikalizace). + +G 27496 - B 8618 - P 76,1 (ve) +G 9520 - B 2411 - P 79,8 (valence) + +Pokus: do selektivn lexikalizace pidat pslovce neodvozen z +pdavnch jmen (uzaven skupina, znaka Db). + +G 28554 - B 7560 - P 79,1 (ve) +G 9561 - B 2370 - P 80,1 (valence) + +Proti dosud nejlepm vsledkm s valenc je to drobn +zhoren. Pidme k nim jet pslovce se znakou Dg, ale heslem +"hodn" nebo "mlo-3" (jde nm hlavn o druh stupn "vce ne" a +"mn ne"). + +G 28558 - B 7556 - P 79,1 (ve) +G 9570 - B 2361 - P 80,2 (valence) + +Pslovce typu Db rum, pslovce "hodn" a "mlo" ponechvm a do +znaky nedvm jejich heslo, ale slovo. + +G 28587 - B 7527 - P 79,2 (ve) +G 9632 - B 2299 - P 80,7 (valence) + +Rum i pslovce "hodn" a "mlo". + +G 28592 - B 7522 - P 79,2 (ve) +G 9629 - B 2302 - P 80,7 (valence) + + + +26.2.2002 + +Zakzno, aby vce ne jedna zvislost vedla dovnit seku +ohranienho rkami. + +G 28703 - B 7411 - P 79,5 (ve) +G 9930 - B 2001 - P 83,2 (valence) + +Opraveno: koncov interpunkce je nyn samostatnm sekem. Tot plat +o koeni. + +G 29149 - B 6965 - P 80,7 (ve) +G 10009 - B 1922 - P 83,9 (valence) + +To je hezk, te ale hom zvdavost, jak to bude vypadat, kdy +nebudu vynechvat koordinace a spol.! + +G 91142 - B 34888 - P 72,3 (ve) +G 27256 - B 6139 - P 81,6 (valence) + +Te se zase jednou podvme, jak by nm pomohl Melk. M to ale +hek. Musme pout nezvisl testovn a to nm nebude dlat +transformace koordinac. Jinmi slovy, na koordinacch hodn ztratme, +protoe dokonce ani nebudeme zkouet peskldat je ve strom, kter +jsme vymysleli. Nezvisl test bez melku tedy dopad takto: + +G 83159 - B 42871 - P 66,0 + +Pd je mon jet vraznj, ne by se ekalo, a to proto, e ve +vtch s koordinac neplat pravidlo o uzavenosti mezirkovch +sek! Nap. ve vt "Vidl Martina, Lucku a Janu." se mus nejdve +pes rku spojit Martin s Luckou a Janou, teprve potom se to cel +spoj s "vidl" a "vidl" - opt pes rku, by pomyslnou a na druhou +stranu - se spoj s koenem. + +Pi postsubstituci melku (v njakm stavu z loskho lta, tj. bez +vylepen, kter jsem k nmu jet vymlel na podzim): + +G 83577 - B 42453 - P 66,3 + +Jasn kol nejblich dn tedy je: VYEIT KOORDINACE A APOZICE!!! +Vz v nich pli mnoho, urit alespo 10% spnosti. + + + +27.2.2002 + +Zahajuji frontln tok na koordinace. Nebudou se konat dn podvodn +transformace vzorovch analz pi testovn, msto toho se rovnou +vybuduje sprvn (tj. definic PDT poadovan) struktura koordinace. + +Krok 1: Vypnout pi trninku i testu transformace koordinac. Nutn +mus nastat dal pd spnosti. + +G 86994 - B 39036 - P 69,0 + +Kupodivu se spnost naopak trochu vrtila nahoru. Snad tedy pece +jenom ml dostatenou slu fakt, e trnujeme a testujeme stejnm +zpsobem. V kroku 2 ovem tento fakt opt trochu narume. + +Krok 2: Pi trninku vynechat zvislosti, jejich dcm nebo +zvislm uzlem je koordinan spojka. Test zatm ponechat beze zmny, +adekvtn prava testu bude provedena v nkterm z pozdjch krok. + +G 84078 - B 41952 - P 66,7 + +Te se pochopiteln projevila naprost neznalost koordinac pi +testu. Nevad, ty se toti budeme uit zvlṻ. + +Krok 3: Pi testu se v kadm kole dvm, zda jsou mezi povolenmi +zvislostmi ob plky dvoulenn koordinace: zvislost ehokoli na +souadc spojce a zvislost druhho lena stejnho druhu (co do +morfologick znaky) na t sam spojce z druh strany. Pokud je takov +dvojice zvislost povolen, dostane pednost. To je sice dost hrub +zsah do statistickho pediva, ale poslze bude metoda hrub sly i +zde nahrazena modelem. + +G 87276 - B 38754 - P 69,3 + +Krok 3b: Oprava. Jednou pouit koordinan spojka je zablokovan pro +dal potenciln koordinace. K zablokovn se navc pouije pepsn +jej znaky znakou poslednho koordinovanho lenu, take se tak +usnadn zavovn koordinace nahoru nebo nabalovn slov +rozvjejcch celou koordinaci. + +G 87928 - B 38102 - P 69,8 + +Krok 3c: Drobn vylepen. Slovesa maj jen dv tdy: Vf (infinitiv) a +V (vechno ostatn, tj. urit tvary slovesa). Pedpokldm, e +pozdji bude tento zsah nahrazen jemnj statistikou o tom, jak +kategorie se jak asto spojuj do koordinac, ale zatm, v prosted +hrub sly, je lep tohle ne nic. + +G 88265 - B 37765 - P 70,0 + +Krok 4: Rozit na vceetn koordinace! Pokud je povolena zvislost +rky na bval koordinan spojce (bval proto, e u byla zapojena +do koordinace a nyn je pepsna jednm ze len) a pokud nejbli +nezaven slovo nalevo od tto rky je stejnho druhu jako lenov +koordinace, pipojit rku pod koordinan spojku a nadit pipojen +onoho slova tamt v ptm kole. + +G 88561 - B 37469 - P 70,3 + +Krok 4b: Opravit slovesn tdy i u vceetnch koordinac. + +G 88594 - B 37436 - P 70,3 + +Krok 5: Prvn pokus o pidn statistik. Koordinace se souadcmi +spojkami (J^) se dlaj nadle natvrdo, pibyla vak monost +dvoulennch koordinac s jinmi spojkami (rky, jin slovn +druhy...). Pokud kolem takov spojky existuj dva voln uzly, +pravdpodobnost koordinace je relativn etnost jejich vskytu jako +len v te koordinaci. Tato pravdpodobnost sout s +pravdpodobnostmi obyejnch zvislost. Pokud vyhraje, m druh len +koordinace pidn do stromu jist. + +G 86448 - B 39582 - P 68,6 + +Krok 5b: Oprava. Tak jako v 3b i tady zablokovno, aby po pouit +spojky v koordinaci byla ta sam spojka pouita pro jinou koordinaci +vzdlenjch len. Tentokrt u neblokujeme zmnou morfologick +znaky - bylo by to neinn, protoe spojka se nepoznv podle +znaky, ale podle hesla. Msto toho vyplnme jedniku do prvku pole +$coord s indexem odpovdajcm indexu spojky ve vt. + +G 87846 - B 38184 - P 69,7 + +Krok 5c: Na statistiku najd i souadc spojky (J^). + +G 83291 - B 42739 - P 66,1 + +Krok 5d: Oprava. Pole $coord se nyn po analze kad vty vymazv. + +G 85295 - B 40735 - P 67,7 + +Krok 5e: Oprava. ada koordinac se zablokovala pedasn, jen proto, +e u se o nich nkdy uvaovalo. + +G 85247 - B 40783 - P 67,6 + +Krok 5f: Oprava. Nen sice vbec jist, e relativn etnosti +koordinanch ekvivalenc jsou porovnateln s relativnmi etnostmi +zvislost, ale pokud by tomu tak mlo bt, museli bychom relativn +etnosti koordinac zmenit (1-$ls)-krt, protoe jsou postaveny na +znakch a pravdpodobnosti zvislost se skldaj z model znaek a +slov. Proto nyn nsobm koordinan relativn etnosti uvedenm +faktorem. + +G 86235 - B 39795 - P 68,4 + +Krok 5g: Oprava. Tak jako ve 3b, opt se kopruje znaka jednoho ze +len koordinace do znaky koordinan spojky. Tentokrt ovem +vsledek me bt hor, protoe nkdy se zkoordinuj vci rozdlnch +typ a pak se me stt, e bude vybrn ten mn reprezentativn typ. + +G 86812 - B 39218 - P 68,9 + +Krok 5h: Lep pravdpodobnostn model (petrnovno). Nyn u se +nesleduje, jak asto dan spojka dila prv koordinaci danho druhu, +protoe jsem to stejn nevyuval. Zato se zjiuje, jak asto dan +heslo bylo koordinan spojkou vzhledem ke vem svm vskytm, a tmto +slem se nsob celkov pravdpodobnost koordinace. Take koordinaci +u nemagnetizuje kdejak hejhula v ele s rkami - ance vyhrt +reln u zstv opt pedevm souadcm spojkm. + +G 87268 - B 38762 - P 69,2 + + + +28.2.2002 + +Krok 5i: Oprava. Pi trnovn nesledovat heslo, ale slovn tvar +spojky. Heslo v tomto ppad paradoxn poskytuje astji vce +monost, a to proto, e mnoh spojky pat k heslm s rozlienmi +vznamy (plus-1, plus-2) a lematiztor je ne vdy tref. + +G 87242 - B 38788 - P 69,2 + +Dolo dokonce k nepatrnmu zhoren, i kdy procentuln spnost se +fakticky nezmnila. Pro pt by ale mlo bt bezpenj pouit +slov msto hesel, take to tak nechm. + +Krok 6: Te je poteba pidat vceetn koordinace. Pi trninku nov +sledujeme, kter spojky jsou schopny dit i vceetn koordinace +(nejsou to vechny, napklad u pomlky nebo dvojteky to +neoekvm). + +G 87385 - B 38645 - P 69,3 + +Krok 6b: Oprava. Do koene koordinace se nesm koprovat typ +koordinace, pokud u tam je (tj. pokud roziuju existujc +koordinaci). + +G 87450 - B 38580 - P 69,4 + +Krok 6c: Oprava. Pi trninku rozebrat sloen koordinace, aby se +nestalo, e podstatn jmno bude koordinan ekvivalentn se souadc +spojkou. Ani te to ale nedlm podn, protoe pouze peplcnu +koordinaci, kter u byla zpracovna, ale nemm jistotu, e jet ped +jejm zpracovnm nenarazm na koordinaci, do kter je vloena, nebo +na zvislost, kter na n vis nebo kterou ona sama vis na nkom. + +G 87164 - B 38866 - P 69,2 + +Krok 7: Je poteba pijt na to, kdy se m dvat pednost koordinacm +a kdy ne. Radikln krok: k nenulovm pravdpodobnostem koordinac, +pist 1. Tm se zajist, e pokud by to mohla bt koordinace, pak +dostane pednost. + +G 74126 - B 51904 - P 58,8 + +To ale dostvaj pednost i koordinace se spojkami, kter v 99 % svch +vskyt nemaj s koordinacemi nic spolenho, a koordinace len, +kter se na jedn koordinaci podlely jen omylem. Mohli bychom tedy +zkusit jin podvod. Koordinace dostane pednost, pokud je alespo 50 % +pravdpodobnost, e je to opravdu koordinace, neboli e domnl spojka +je opravdu koordinan spojkou a e domnl leny opravdu mohou bt +pohromad v jedn koordinaci. Pro prvn pravdpodobnost u mme +statistiku. Pro druhou bychom poet vskyt znaky v koordinaci s +konkrtn jinou znakou potebovali dlit celkovm potem vskyt +prvn znaky v koordinacch, a ten zatm neznme. Zatm tedy budeme +poadovat, aby ob znaky byly shodn. +(Krok 7b.) + +G 87772 - B 38258 - P 69,6 + +Krok 7c: Oprava. Pokud dvojice znaek nebyla pi trninku vidt v +dn koordinaci, ale znaky jsou toton, pravdpodobnost jejich +koordinan ekvivalence direktivn nastavit na 1. + +G 87844 - B 38186 - P 69,7 + +Krok 7d: Koordinace s mnoha rkami a dnou jasnou spojkou se spojuj +hierarchicky, a to proto, e nejdve se spoj prvn dva leny pod +rkou mezi nimi a pak u nen niku. Odte mezi stejnmi koordinacemi +preferovat ty, jejich spojka le vce vpravo. + +G 87847 - B 38183 - P 69,7 + +patn zprva od Petra Pajase: "atd" a podobn zkratky jsou zavovny +pokad jinak, achich achich! Pokud lze zavsit na nco jinho +(nap. rku), udl se to a "atd" je potom (obvykle) jednm ze len +koordinace. Samotn "atd" d koordinaci pouze pokud jin kandidt +nen, tedy nap. ve vt "Piel Tonda atd." V manulu k analytick +rovin je to napsno trochu jinak, ale pr patn. V datech to tak +nen vdy sprvn, nap. vta na zatku testovacch dat s ob +koordinac m v koeni koordinace atd., pestoe ped nm jsou spousty +rek. + +Krok 7e: Zrueno zkreslovn pravdpodobnost koordinac na zklad +jejich poad ve vt - i tak je tam toho zkreslovn dost. Je poteba +odstranit i absolutn preferenci koordinac jako takovch, ale kde +najt vhodn vyven se zvislostmi? Nkdy je poteba nejdve +pipojit pdavn jmno k podstatnmu a pak teprve spojit podstatn +jmna do koordinace, jindy je nutn nejdve spojit koordinaci +pdavnch jmen a pak teprve vsledek pipojit zvislost k +podstatnmu jmnu. + + + +1.3.2002 + +Pokus: pokud lze pdavn jmno bu zavsit na podstatn jmno +doprava, nebo koordinovat s jinm pdavnm jmnem vlevo, dostane +pednost koordinace. V ostatnch ppadech rozhoduje statistika. Pokud +pokus vyjde, pokusm se ho tak podchytit statisticky. + +G 87855 - B 38175 - P 69,7 + +Krok 8: Prvn pokus s stenm podmnnm vbru zaven kontextem +ostatnch monost vbru. Ve stejnou chvli byla vypnuta valence (ne +pseudovalence ani selex), protoe v souasn podob spe mrn +kod. Pesto spnost zatm mrn klesla, ale jsem optimista, a to +dodlm, bude to snad lep! + +G 87454 - B 38576 - P 69,4 + +Krok 8b: K souboji s konkurenty vlevo pidn souboj s konkurenty +vpravo. Dal zhoren :-( + +G 87172 - B 38858 - P 69,2 +Doplkov statistika: +Lev konkurent 946 x pomohl, 985 x ublil, zbytek patn i bez nj. +Prav konkurent 1080 x pomohl, 1454 x ublil, zbytek patn i bez nj. + +Krok 8c: Zkusme zvit pesnost na kor plnosti. Konkurentm +dovolme zvtzit pouze s potem vskyt 10 nebo vtm. + +G 87864 - B 38166 - P 69,7 +lkl 806:761 lkp 784:648 + +Krok 8d: OK, navc jet budeme poadovat, aby pevaha konkurenta nad +pvodnm kandidtem byla alespo dvoutetinov. + +G 88210 - B 37820 - P 70,0 +lkl 634:381 lkp 606:479 + +No slva, aspo e tak! Uvidme se pt tden... + + + +4.3.2002 + +Krok 8e: Sout o vtze loklnch konflikt se zatm vbec +neastnily koordinace (pestoe potebn statistiky byly pi trninku +zskny). Nyn tedy pidvm i koordinace. + +8e1: een loklnch konflikt muselo bt kvli koordinacm +pebudovno. V zjmu dobrho odladn tedy nejdve zkusme zopakovat +vsledky, kde se LK e pouze pro zvislosti. + +G 87546 - B 38484 - P 69,5 +lkl 644:756 lkp 622:503 + +Zhoren o 664 zvislost. Nkde je chyba. +8e2: Pokusme se tedy zopakovat vsledek bez een LK. + +G 87920 - B 38110 - P 69,8 + +Vsledek je o 65 zvislost lep ne posledn vsledek ped krokem 8, +ale to bude tm, e na zatku kroku 8 jsme tak vypnuli valence, a ty +zstaly vypnut i te. + +Rozdl mezi 8e1 a 8d me bt jet v poad testovn +zvislost. Jakmile se najde prvn konkurenn zvislost, kter je +"dostaten lep" ne pvodn kandidt, pouije se tato zvislost a +lep u se nehled. Poad prochzen konkurent tedy hraje +roli. Neumm sice asi dokonale zopakovat poad z kroku 8d, ale mu +ped prochzenm konkurent uspodat konkurenty podle vzdlenosti od +zvislho uzlu. + +G 87546 - B 38484 - P 69,5 + +8e3: Zjiuju, e pece jenom nejsou vypnuty koordinace. Tak te u je +vypnm doopravdy. + +G 88209 - B 37821 - P 70,0 + +Tak jsme konen skoro pesn (a na jednu zvislost, dvod neznm) +tam, co v ptek veer. patn zprva ovem je, e pidnm koordinac +se model zjevn opt zhor. (Vsledek viz 8e1.) + +8f: Opravena chyba. Za koordinan spojku se potalo kde co vetn +nap. pedloky "z". Nyn se sla koordinace jako konkurenta nsob +pravdpodobnost, e pouit koordinan spojka je skuten +koordinan spojka. + +G 88000 - B 38030 - P 69,8 +lkl 636:519 lkp 609:480 + +Tak te u je to snad technicky bez chyb, ale ten model... Nechpu, +jak je napklad mon, e "A1 L C N1 P N1" (pdavn jmno mohlo bt +spojeno doleva koordinac s podstatnm jmnem, nebo rozvjet jin +podstatn jmno napravo) vyhrla koordinace 30:0! + +Tak je to proto, e tagger oznail prvn pdavn jmno chybn jako +podstatn (nap. ve vt "Dobr i patn vsledky se vyskytuj u vech +pouvanch systm.") Pokud chceme pi analze pouvat vstup +taggeru, tak asi nememe pi trninku jeho nzory opravovat. Mli +bychom je vak pebt. Nedje se tak mon proto, e zatm pi sbrn +poraench konkurent bereme v vahu jen opravdov koordinace, ale pi +analze zkoumme vechny potenciln mon koordinace. Musme tedy i +pi trninku zkoumat, zda by nco mohlo bt koordinan spojkou, a +pokud ano, musme odhadnout, kte z jeho soused na druh stran by +pi analze mohli figurovat jako koordinovan sourozenci. Tohle je +obtn st. Asi by se opt mla prochzet vechna slova za spojkou, +kter nejsou svzna s njakm slovem na na stran spojky. + + + +6.3.2002 + +8g: Opraveno trnovn tak, jak je uvedeno ve. Nastalo mrn +zlepen. + +G 88243 - B 37787 - P 70,0 +lkl 661:409 lkp 608:482 + +8h: Ze skutench koordinac pi trnovn vynechny sloen (abych se +neuil koordinaci se spojkou), ale podle oekvn se na vsledku nic +nezmnilo. + +G 88243 - B 37787 - P 70,0 +lkl 661:409 lkp 608:482 + +8i: Pi souboji s konkurenty nevyhraje prvn konkurent, kter je +lep, ale ten nejlep z lepch konkurent. Na vsledcch to skoro +nic nemn (zlepen veho vudy o dv hrany). Pi blim pohledu na +statistiku loklnch konflikt je vak vidt vt pohyb: pibylo +astnch, ale i neastnch zsah. + +G 88245 - B 37785 - P 70,0 +lkl 687:455 lkp 620:505 + +8j: Souboj s konkurenty nyn probh tak, e se projdou vechny +dvojice lev kandidt - prav kandidt, kter pro zaven danho uzlu +pichzej v vahu. Na rozdl od dosavadnch pokus se tedy me stt, +e konkurs na dc uzel vyhraje nkdo na stejn stran jako pvodn +kandidt, ale nebude to pvodn kandidt. + +G 76707 - B 49323 - P 60,9 +LKG 4164 - LKB 13726 + +8j1: Vtz mus mt alespo 10 hlas, jinak se pouije kandidt podle +nekontextov pravdpodobnosti. + +G 78190 - B 47840 - P 62,0 +LKG 3019 - LKB 11544 + +8j2: Vtz mus bt alespo dvakrt lep ne druh nejlep, jinak se +pouije kandidt podle nekontextov pravdpodobnosti. + +G 87296 - B 38734 - P 69,3 +LKG 2185 - LKB 2809 + +8j3: Vtz nesm mt nekontextovou pravdpodobnost nulovou (co me +nastat i kvli kontrole mezirkovch sek). + +G 87496 - B 38534 - P 69,4 +LKG 1867 - LKB 2158 + +Pozastavuji vvoj tmto smrem a vracm se k prvn generaci loklnch +souboj, kterou se pokusm rozvjet jinak. + +G 88245 - B 37785 - P 70,0 +LKG 1307 - LKB 960 + +Krok 9: Pipravuji monost zmnit poad, ve kterm se pidvaj nov +hrany do stromu. Dosud se vdy bere hrana s nejvy nekontextovou +pravdpodobnost a pouze lokln souboje na tom mou nco zmnit. V +prvn sti kroku 9 jet toto pravidlo zachovm, ale pepu parser +tak, aby nejdve hledal zvisl uzel a potom vybral z kandidt na +jeho dc uzel. V dalch podkrocch pak bude snadn nahradit +pravidlo pro vbr zvislho uzlu jinm. + +9a: Vybr se zvisl uzel z nejlep zvislosti, ale ne z nejlep +koordinace. + +G 87033 - B 38997 - P 69,1 +LKG 1334 - LKB 976 + +9b: Vybr se zvisl uzel z nejlep zvislosti nebo +koordinace. Vsledky by mly bt rovny dosavadnmu maximu (70%). + +G 88245 - B 37785 - P 70,0 +LKG 1317 - LKB 962 (??? - odkud ten rozdl?) + +9c: Vybr se zvisl uzel, jeho dc uzel vyhraje s nejvt +absolutn silou (tj. poet vher pi trninku, nikoli pomr potu +vher k potu proher). + +G 75694 - B 50336 - P 60,1 + +9d: Vybr se zvisl uzel, jeho dc uzel vyhraje lokln konkurz +s nejvt relativn silou (tj. pomr potu vher a potu proher). + +G 76179 - B 49851 - P 60,4 + +9e: Vybr se zvisl uzel, kter m nejvce kandidt na dcho. + +G 47869 - B 78161 - P 38,0 + +9f: Vybr se zvisl uzel, kter m nejmn kandidt na dcho. + +G 47869 - B 78161 - P 38,0 (??? pro je to stejn jako 9e?) + +To je taky pkn blbost. Na zatku se vybere posledn slovo vty, +protoe m jen jednu monost, to ovem vbec nemus bt ta prav. A +pak se podobn vybr momentln posledn voln slovo a kdov do +kdy. + +9g: Jet mm npad, e by se mohly upednostovat zvisl uzly, kter +jsou obvykle ble k listm stromu, protoe je samozejm douc, +abych zavoval uzel a ve chvli, kdy je jeho podstrom (a tak +podstromy jeho sourozenc) kompletn postaven. Te u ale nemm chu +to implementovat, take pro dneek se vracm k vbru zvislho uzlu +podle toho, zda figuruje v hran s nejvt etnost. + +G 88242 - B 37788 - P 70,0 +LKG 1317 - LKB 963 + + + +24.5.2002 + +Zase na as opoutm koordinace a vracm se k subkategorizaci (kvli +dokonen lnku na Coling 2002 do Taibei). Protoe uplynulo 2,5 +msce a spoustu jsem toho zapomnl, pro zatek jen nov +petrnovn, otestovn a porovnn s vsledky zaznamenanmi +ve. dn vty nejsou vyloueny, ale v zvorce je uvedena spnost +pouze na Sb|Obj|AuxT|Pnom|Adv. Skuten valence pi tomto pokusu nen +zapnuta (valenn zvislosti nejsou upednostovny). Selektivn +lexikalizace zapnuta je. + +G 88273 - B 37757 - P 70,0 (78,6) + +Podobn pokus, ale trnovac a testovac data se omezuj na vty bez +ExD, Coord a Apos. + +G 28869 - B 7245 - P 79,9 (82,7) + + + +15.6.2002 + +Jet hloubji do minulosti: je vypnuta i selektivn +lexikalizace. Prvn dek obsahuje vty bez ExD, Coord a Apos, druh +dek vty bez ExD, tet dek vechny vty. + +G 28230 - B 7884 - P 77,5 (80,1) +G 66862 - B 32230 - P 67,5 (77,7) +G 83782 - B 42248 - P 66,5 (77,1) +--------------------------------- tot pro lambda = 0 +G 28145 - B 7969 - P 77,3 (79,9) +G 67800 - B 31292 - P 68,4 (77,7) +G 82382 - B 43648 - P 65,4 (77,0) +--------------------------------- tot pro lambda = 1 +G 23170 - B 12944 - P 46,7 (40,7) +G 44815 - B 54277 - P 45,2 (42,5) +G 57086 - B 68944 - P 45,3 (42,4) + +Nadle bude napevno lambda = 0,734375. Opt pro vechny ti mnoiny +dat, tentokrt zapneme selektivn lexikalizaci. + +G 28828 - B 7286 - P 79,8 (82,0) bez ExD, Coord a Apos +G 69394 - B 29698 - P 70,0 (79,2) bez ExD +G 85695 - B 40335 - P 68,0 (78,5) ve + +Selektivn lexikalizace zstane zapnuta, navc zapneme pseudovalenci. + +G 28801 - B 7313 - P 79,8 (82,1) bez ExD, Coord a Apos +G 69409 - B 29683 - P 70,0 (79,3) bez ExD +G 85730 - B 40300 - P 68,0 (78,7) ve + + + +16.7.2002 + +Porovnn mho a Charniakova parseru (kter chyby, kter dl on, +nedlm j a obrcen). Kvli tomu je poteba se vrtit k nastaven, +se kterm mj parser doshl nejvy spnosti (70 %). Zapnm een +loklnch konflikt. + +17.7.2002 + +Porovnn i s Collinsovm parserem. Vsledky jsou nsledujc (slo +znamen poet zvislost, zkratky vedle uvdj, kter parsery mly +prv tyto zvislosti uren dobe): + +77995 ec+mc+dz +18508 ec+mc + 3951 ec+dz + 3801 mc+dz + 5765 ec + 3662 mc + 2525 dz + 9821 - + + + +19.7.2002 + +Zpsnn kontrola zvislost vedoucch pes rku. Nyn nesm dn +zvislost pekroit rku nejen kdy sek, do nj nle zvisl +uzel, nen hotov, ale ani kdy kterkoli jin mezirkov sek jet +nen hotov. Jinmi slovy: nejdv pospojovat seky mezi rkami, +potom teprve seky mezi sebou navzjem. + +G 86527 - B 39503 - P 68,7 (78,8) ve + +Dolo ke zhoren, proto zase toto opaten rum. + +Jin problm: Nkdy se pli brzy zavs len koordinace na uzel, na +kterm by pozdji mla viset koordinace cel (napklad "je +absolventem elektrotechnick fakulty vut a postgradulnho studia" - +pli pozd se spoj "fakulty vut", take "fakulty" nevid svho +koordinovanho sourozence "studia" a spoj se tedy (pli brzy) +"absolventem fakulty"). + +Nvrh obecnho een: Ve chvli, kdy se pod dc uzel zavs nov +zvisl uzel, zskv dc uzel nov sousedy. V tu chvli mus znova +pezkoumat sv vlastn zaven, pokud u njak m. I nyn se bude +omezovat na sv sousedy, proto neme zavlct do stromu +neprojektivitu. + +25.7.2002 + +Konen mm odladnou prvn verzi ve uvedenho, ale vsledek je +zklamnm (dosavadn maximum je zopakovno ve druhm dku): + +G 87142 - B 38888 - P 69,1 (77,8) +G 88273 - B 37757 - P 70,0 (78,6) +ve skutenosti nameno po vypnut poslednho vmyslu +G 88234 - B 37796 - P 70,0 (78,6) +tj. jet o 39 zvislost he, ale to me bt v dsledku chybky +nejen te, ale i pedtm + +Opravy ji zavench uzl opt zapnuty, ale povinn se ihned po +zruen zvislosti znova zavuje odpojen uzel. Velmi nepatrn +zlepen. + +G 87204 - B 38826 - P 69,2 (77,7) + +Z dodatench oprav jsou vyloueny uzly zaven v koordinacch. Zatm +jen velmi nahrubo, pokud je dcm uzlem "a" a jeho znaka nezan +na "J". + +G 87587 - B 38443 - P 69,5 (77,7) + +Podn implementace tho: s vyuitm globlnho pole @coord. + +G 87768 - B 38262 - P 69,6 (77,4) + + + +26.7.2002 + +Ale bude to chtt detailn srovnn analzy s dodatenmi opravami a +bez nich a porovnn chyb: kter zmizely a kter pibyly. Zatm poty: + +A 15060 ... poet pleitost, kdy to vbec lo zkusit +B 5205 ... poet pleitost k oprav (do t chvle to bylo patn) + Kdyby se vechny tyto pleitosti vyuily, byl by + vsledek analzy G 93439 - B 32591 - P 74,1. Bohuel se + vyuil jen zlomek z nich a naopak se v ad ppad + podailo ji dobrou analzu pokazit. + +POZOR! Ne ve, emu ve km "pleitost k oprav", musela bt +opravdu pleitost. Netestoval jsem, zda sprvn zaven u bylo v +tu chvli k dispozici. Tak nen sprvn odhadnuta spnost, kter by +mohlo bt dosaeno, protoe potm pokusy o opravu, ale u nkterch +uzl mohlo dojt postupn k nkolika pokusm. + +S 4783 ... bylo a zstalo patn +L 422 ... podailo se opravit +D 8506 ... bylo a zstalo dobe +H 1349 ... podailo se zkazit + +Oprava: dosud pi oprav patn fungovalo omezen povolench +zvislost na opravovan uzel. + +G 87783 - B 38247 - P 69,7 (77,4) +D 8789 - S 4823 - L 460 - H 1051 + +Spotny opravdov ance nco opravit, tj. nejenom e v okamiku +pokusu o opravu byl dan uzel patn zaven, ale e tak bylo k +dispozici jeho sprvn zaven. Vsledek: + +1497 anc celkem +1434 uzl, kter anci dostali aspo jednou +=> kdyby se vechny ance vyuily a nic nezkazilo, analza by skonila +takto: +G 89668 - B 36362 - P 71,1 :-( to je mlo... + +Zvr: Opravy uzl tmto zpsobem mohou analzu vylepit jen o 1,1 %, +co je v tto dob jet dost mlo. Kad procento je sice dobr, ale +my neumme zajistit, aby se v prbhu oprav souasn nepokazilo nco, +co u bylo dobe. Proto od oprav odstupuji, pinejmenm prozatm. + +G 88235 - B 37795 - P 70,0 (78,6) + + + +Pokus: pravdpodobnost zvislost (ne koordinac) nsobit doplkem +pravdpodobnosti, e dc uzel je koordinan spojkou (zameno +hlavn proti pehnanmu ven uzl na spojku "a" jet dve, ne je +k dispozici druh koordinan len). Taky nepomh: + +G 87884 - B 38146 - P 69,7 (79,3) + + + +29.7.2002 + +Kontrola sek mezi rkami pepracovna s pomoc pole zakzanch +zvislost. Pravdpodobnost nekoordinanosti zstv +zapnuta. Pochopiteln to znamen tlum spnosti. Uvidme, zda se +pozdji poda s novou implementac rkovch sek dostat zpt na +pvodn spnost. + +G 86807 - B 39223 - P 68,9 (80,1) + +Vypnuta pravdpodobnost nekoordinanosti. + +G 87078 - B 38952 - P 69,1 (79,7) + +Mezirkov seky: opt je pekroen rky povoleno ihned, jakmile se +dokon zvisl sek (viz t pokus 19.7.2002). Tentokrt to ovem +nepomohlo. + +G 86116 - B 39914 - P 68,3 (78,3) + +Pekroen rky je povoleno a po sestaven vech sek, bohuel se +nyn musm spokojit s spnost 69,1 % :-( + +G 87078 - B 38952 - P 69,1 (79,7) + + + +Pokus: nelze peskoit pedloku zvislost vedouc zleva doprava, +dokud tato pedloka nem dt. Opt se pouv ern listina $zakaz. + +31.7.2002 + +Vsledky pokusu jsou patn. Vpoet je tikrt pomalej (trv nyn +23:50 minut) a spnost klesla o 1,3 %. (Po nvratu k pvodnmu stavu +program trv 10:37 minut (dve to bylo kolem osmi?) a spnost je +opt 69,1 %.) + +G 85486 - B 40544 - P 67,8 (74,2) + +Poznmka: po pepsn pokusu s pedlokami program bel skoro stejn +dlouho (23:47 minut, co m pekvapuje, protoe nov implementace by +mla bt efektivnj) a vsledek se nepatrn li (k lepmu). + +G 85504 - B 40526 - P 67,8 (74,3) + +Objevena chyba v pehodnocovn zkaz peskakovn pedloek. Po +jejm odstrann se program zrychlil na 15:47 minut a zvedla se i +spnost: + +G 87512 - B 38518 - P 69,4 (80,5) + +Jak analyzovat vliv novho omezen? +1) Spustit parser bez novho omezen a vstup si schovat. +parse.pl +cp analyza.csts vystupy/omezeni-0.csts +2) Spustit parser s novm omezenm a vstup si schovat. +parse.pl +cp analyza.csts vystupy/omezeni-1.csts +3) Spustit program pro porovnn vstup nkolika rznch +parser. Tento program mj. ulo nov soubor, kde jsou slity vsledky +vech analz. + +2.8.2002 + +Vylenny vty, ve kterch zkaz peskakovn pedloek zhoril +alespo jednu zvislost. Je jich celkem 417. Vsledky, kdy je +peskakovn pedloek zakzno: + +G 6142 - B 3665 - P 62,6 (72,9) + +Zazlohoval jsem ladc soubory analyza-debug.csts a analyza.log a +poutm test s vypnutm zkazem peskakovn pedloek. + +G 6279 - B 3528 - P 64,0 (74,4) + +5.8.2002 + +Objevena chyba v urovn dlky hrany, konkrtn zda se mezi uzly +nachz i nenachz rka. Bez petrnovn dolo ke zhoren +spnosti (zkaz peskakovn pedloek je zapnut). Snad to bude +lep po petrnovn. + +G 87512 - B 38518 - P 69,4 (80,5) ped opravou +G 87124 - B 38906 - P 69,1 (80,5) po oprav + +Po petrnovn - slva! -: + +G 89639 - B 36391 - P 71,1 (82,5) po petrnovn + +Te jet zbv zjistit, jestli to bez zkazu peskakovn pedloek +nen jet lep :-| + +6.8.2002 + +Vypnutm zkazu peskakovn bezdtnch pedloek se nyn spnost +skuten zhor, i kdy pochopiteln ne na rove ped odstrannm +chyby. + +G 89323 - B 36707 - P 70,9 (81,9) + + + +Vzhledem k objeven chyb se jet jednou pokusm vyzkouet nsoben +pravdpodobnosti zvislosti pravdpodobnost toho, e dc uzel nen +koordinan spojkou. Zkaz peskakovn pedloek je aktivn. + +G 89453 - B 36577 - P 71,0 (82,9) # prst. nekoordinanosti aktivn +G 89639 - B 36391 - P 71,1 (82,5) # neaktivn + +Kupodivu jsem vsledky neaktivn verze nedokzal zreprodukovat a vyly +o trochu lep! + +G 89684 - B 36346 - P 71,2 (82,5) + +Analza: +88395 sprvn ped i po + 1289 sprvn pouze ped + 1058 sprvn pouze po +35288 patn ped i po +Kdyby se podailo zskat vechna "sprvn" najednou, bylo by +P = 72,0 %. +Pechodem z a0 na a1 se zhorilo 860 vt. Z toho mj. vyplv, e +prmrn dlka zhoren vty je 26 slov, co je o 10 vc ne prmr! +spnost tchto vt: + +G 13934 - B 8179 - P 63,0 (80,4) - a1 (aktivn) +G 14799 - B 7314 - P 66,9 (80,7) - a0 (neaktivn) + + + +8.8.2002 + +Nov pokus s podmiovnm pravdpodobnosti zvislosti etnost +zvislho uzlu. Plat i u koordinac, pestoe koordinace pak m rzn +pravdpodobnosti, podle toho, od kterho uzlu se dvme. Nemlo by to +ale vadit, protoe ve stejnou chvli by mly bt povoleny pohledy od +obou uzl, take prost vyhraje jen jeden z nich. + +G 14206 - B 7907 - P 64,2 (80,3) - a1 aktivn + +Vzhledem k mrnmu zlepen zkusme tot i pro cel testovac data. + +G 89562 - B 36468 - P 71,1 (a1) + +Zlepen je opravdu nepatrn. Zkusme jet pro a0 (neaktivn). A pak +zkusme souty vech udlost, kter se dan hrany tkaj. + + + +27.9.2002 + +Podmnn pravdpodobnosti zvislost, a0 (neaktivn). + +G 89103 - B 36927 - P 70,7 (a0) + +Opt zapnm a1, tj. nekoordinan zvislosti se podmiuj +neschopnost dcho uzlu bt koordinan spojkou. + +G 89562 - B 36468 - P 71,1 (a1, podm. p.) + + + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +MOMENTALNE BOHUZEL MUSIM DELAT POKUSY S NECIM JINYM, ABYCH MOHL NAPSAT +CLANEK DO PBML. PAK SE ALE MUSIM K PRACI Z 8.8. VRATIT, PROTOZE NENI +DOKONCENA! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + + +27.9.2002 + +Hlavn mylenka lnku do PBML: chyby v morfologickm znakovn +zvyuj poet chyb syntaktick analzy. Zjistit, jak velk tento vliv +je, a navrhnout a odzkouet een. Mon een: 1) na vstup parsingu +poslat plnou morfologickou analzu; 2) opravovat znakovn bhem +parsingu (tm, e se rozhodnu pro njakou variantu syntaktick stavby, +vyluuji nkter varianty znakovn); 3) dlat si cel znakovn +sm; 4) jako 2 nebo 3, ale vytipovat nejzvanj chyby (pdy +podstatnch jmen). + +lnek by mohl bt tak o cizch slovech (Bank of America) a o jinch +ruivch vlivech na parsing (zpracovn slovek, atd. v koordinacch +atd.) + + + +11.10.2002 + +Nov srie pokus s parsingem na rznch zdrojch morfologie (pln +analza, automatick zjednoznann (HMM, maxent), run +zjednoznann). Pedchzejc takov srie probhla v roce 1998 v +Baltimoru na neredukovanch pozinch znakch, PDT 0.5 nehotov, +zhruba 13000 trnovacch a 3500 testovacch vt. Nyn vezmu analytick +trnovac data z PDT 1.0 (pes 70000 vt), z nich oddlm asi 5000 +testovacch vt (nevezmu je z sti PDT oznaen jako testovac, +protoe potebuju mt k dispozici i run morfologick anotace) a +zbytek ponechm pro trnovn. + +Pvodn trnovac data obsahuj 1583 soubor ze vech 4 zdroj. Nyn +je prv kad dest z tchto soubor zkoprovn do mtest dat (158 +soubor), zbytek do mtrain (1425 soubor). Zastoupen zdroj by tedy +mlo zstat zhruba ve stejnch proporcch. + +Ze veho nejdv musme zopakovat dosavadn pokus na znakch z +taggeru, protoe mme jinou mnoinu dat, a tedy se asi budou mrn +liit i vsledky. + +Nov trnovac data maj 65847 vt a 1133509 slov. Trnovn trvalo +8:38 minut. Nov testovac data maj 7241 vt a 122081 slov. Testovn +trvalo 16:30 minut. + +G 85968 - B 36113 - P 70,4 (d-d) + +Trnovn podle run morfologie trvalo jen 4:38 minut a soubor se +statistikou m 47 MB msto 63 MB! + +G 76697 - B 45384 - P 62,8 (h-h blb) + +To je dost podezel! Urit je tam njak chyba! Ano, u redukovanch +znaek zmizel druh znak (pd nebo poddruh). Znova: trnovn trvalo +5:37 minut a statistika m 54 MB. Jene jet chyb selektivn +lexikalizace znaek pro pedloky! Napotet trvalo trnovn 7:26 +minut, statistika m 63 MB a na prvn pohled je v podku. Testovn +trvalo 15:55 minut. Vsledky: + +G 87795 - B 34286 - P 71,9 (h-h) + +Nezjednoznann morfologie, varianty znaek se slep do jednoho +etzce, ppadn duplikty se odstran. Trnovn trvalo 12:33 minut, +statistika m skoro 90 MB. Testovn trvalo 12:17 minut. + +G 82498 - B 39583 - P 67,6 (m-m setzen) + + + +18.10.2002 + +Trnovn s nezjednoznannou morfologi, ale vskyt nejednoznan +oznakovanho slova se povauje za nkolik necelch vskyt +jednoznan oznakovanch slov. Trnovn trvalo 19:58 minut a +vsledn soubor m 63 MB. Testovn trvalo 37:31 minut. + +G 87634 - B 34447 - P 71,8 (m-m rozloen) + +Asi byla chyba ve ten znaek, take to budu muset zopakovat. Te se +ale zase musm vnovat nemu jinmu. + + + +25.10.2002 + +Nvrat k plnm trnovacm a testovacm datm. Vsledky jsou bohuel o +nco hor, ne byly naposledy s touto konfigurac, a nevm pro :-( +Tenkrt bylo P = 71,1 %. + +G 89343 - B 36687 - P 70,9 + +Potebuji zjistit, jak je to s spnost na slovkch. +spnost zavovn slovek, slovek s pdem a slovek bez pd: + +G 2646 - B 789 - P 77,0 +G 1184 - B 220 - P 84,3 +G 2030 - B 569 - P 72,0 + +spnost slov, kter mla zviset na slovkch, na slovkch +s pdem a na slovkch bez pd: + +G 1070 - B 542 - P 66,4 +G 298 - B 231 - P 56,3 +G 771 - B 310 - P 71,3 + +Nyn petrnujeme a pi ten pekroutme vechny slovky, aby visely +pod svm podstatnm jmnem. V dokumentaci musm zdraznit, e zatm +nijak neem to, e se mi te do koene negenitivn frze me dostat +slovo v genitivu (pozdji to budu muset eit jako u koordinac +propagac pdu nahoru). + +G 89311 - B 36719 - P 70,9 + +Dokonce mrn zhoren! Budu se muset podvat, jestli nen v programu +njak chyba, ale asi to bude tm, e nyn maj negenitivn frze +genitivn hlavy. Napsat do lnku, e to vyaduje hlub analzu +rozdl v chybch s a bez pekroucen. + + + +1.11.2002 + +Upravuji parser, aby nebyl tak nron na pam a mohl bet i +doma. Zkladn mylenka: pi trnovn se statistika rozdl na men +kusy, kter se natrnuj a ulo samostatn. Analza pak bude mt dv +fze. V t prvn se postupn vezmou vechny dl natrnovan +statistiky, projdou se s nimi analyzovan data a ke kadmu slovu se +ulo vpis ze statistiky pro vechny jeho potenciln rodie. Pot se +data projdou jet jednou, petou se uloen hodnoty u jednotlivch +slov a navrhnou se stromy. + + + +14.11.2002 + +Dotaena do konce prvn verze rozdlenho parseru. Skript train.pl se +zmnil jen trochu, zastav trnink vdy po tolika udlostech, kolik +udv promnn $konfig{split}, ulo natrnovan dl statistiky, +vyprzdn statistiku v pamti a zane od dalho trnovacho souboru +nanovo. Skript parse.pl byl vak rozdlen na markparse.pl, kter +projde testovac data postupn se vemi dly statistik a zape pmo +do dat statistiky zjitn o dotyn vt, a skript parsemark.pl, +kter jet naposledy projde testovac data, pete si v kad vt +uloen sla a na jejich zklad vybuduje nejlep mon strom. + +Kvli rychlosti testuju zatm dlen parsing pouze na jednom +testovacm souboru, lu01.a. Z parsemark jsem vyhzel veker nadstavby +typu koordinace i lokln konflikty, take spnost musela +klesnout. Vsledky ukazuj v prvnm dku dlen parsing, ve druhm +pvodn parse.pl (s vyuitm cel statistiky najednou): + +G 286 - B 295 - P 49,2 +G 618 - B 301 - P 67,2 + +Zatm je v programu njak chyba, kter zpsobuje, e se ani nepiad +vechny zvislosti. Budu muset zase rychle zavst ladc zznamy. + + + +15.11.2002 + +Po opraven chyby u se zpracuj vechny vty (a vechna slova) +vstupu. spnost to nepatrn zlepilo. Spodn dek opakuje pro +srovnn spnost nedlenho parseru na stejnch datech. + +A 919 - G 466 - B 453 - P 50,7 +A 919 - G 618 - B 301 - P 67,2 + +Pedlal jsem markparse tak, aby se ukldaly rzn udlosti vetn +koordinac. Parsemark ale te na chvli vyuv pouze OZZ (bez +lexikalizace) a spnost kupodivu poskoila o hodn. + +G 575 - B 344 - P 62,6 +G 618 - B 301 - P 67,2 + +Kombinace OSS a OZZ 1:1. + +G 570 - B 349 - P 62,0 +G 618 - B 301 - P 67,2 + +Kombinace OSS a OZZ v pomru $ls:(1-$ls) (0.734375:0.265625). + +G 575 - B 344 - P 62,6 +G 618 - B 301 - P 67,2 + +Jednoduch pidn koordinac, zatm bez ady akc dlanch dve +(propagace znaky len do koordinan spojky, kontrola povolenosti +partnera, nsoben pravdpodobnosti koordinace pravdpodobnost, e +slovo v koeni je koordinan spojkou...) + +G 569 - B 350 - P 61,9 +G 618 - B 301 - P 67,2 + +Pidn test, e druh vtev zvaovan koordinace je povolena. + +G 591 - B 328 - P 64,3 +G 618 - B 301 - P 67,2 + +Pidno nsoben pravdpodobnosti koordinace pravdpodobnost +koordinan spojky. + +G 585 - B 334 - P 63,7 +G 618 - B 301 - P 67,2 + +Opravena chyba: ztrcela se informace o povinnm pipojen druh plky +koordinace v ptm kole. + +G 612 - B 307 - P 66,6 +G 618 - B 301 - P 67,2 + +Pidno koprovn znaky lena koordinace do znaky koordinan +spojky. S spnost to nehnulo. + +G 612 - B 307 - P 66,6 +G 618 - B 301 - P 67,2 + +Pidna kontrola, e jedna koordinan spojka neme dit dv +koordinace, z nich jedna stoj "obkromo" kolem druh. + + + +21.11.2002 + +Viz minule, koordinace se hledaly jen pro spojky, kter u pro njakou +koordinaci nebyly vyuity. Prvn vsledek je s chybou - pouit spojky +se oznaovalo jako $afun = "Coord", jene $afun se pln u pi ten +vzorovho souboru a vechny sprvn spojky tak byly pedem +zablokovny. Druh vsledek je po prav, dky kter se pouit spojky +oznauje jako $afun = "CoordX". Tet vsledek je jako obvykle z +nerozdlenho parseru. + +G 581 - B 338 - P 63,2 +G 616 - B 303 - P 67,0 +G 618 - B 301 - P 67,2 + + + +12.12.2002 + +Snam se posbrat dochovan verze perlovho parseru a spojit je pod +CVS (Concurrent Versions System). Motivac je zejmna snaha najt +verzi ped pestavbou, kter umla 71,7 %, ale sbrm i jin. + +Verze z 1.2.2002, nalezen v zipu v zloze dat doma na +Amazonce. Zznamy z 1.2.2002 potvrzuj, e tenkrt bylo 60 % nejlep +dosaen vsledek. +G 75578 - B 50450 - P 60,0 + +Verze z 11.10.2002 se trnuje jen na 65847 vtch. Podle zznam z +11.10.2002 lo o nezjednoznannou morfologii setzenou do dlouhch znaek. +G 82498 - B 39583 - P 67,6 +Po pesmrovn dat se ovem vsledky zhor, protoe parser.ini z t +doby jet neumooval pepnat tak zdroj morfologie, tj. ten MMt v +nm bylo nastaveno natvrdo v kdu, ale v "hlavnch" datech takov +anotace nen. Take se rozhodovalo nhodn. +G 43983 - B 82047 - P 34,9 +Nadji skt fakt, e parse.pl v tto verzi jet neobsahuje proceduru +ud(). Zkoum tedy v parslib.pl pepnout mzdroj z "MM" na "MD", teba +se spnost jet vrt. + +13.12.2002 + +Verze z 11.10.2002 petrnovna a petestovna na znakch MDt a. +G 89562 - B 36468 - P 71,1 +Podailo se mi tedy najt verzi, kter jet dosahovala zatm nejvy +spnosti z 27.9.2002 (kdy jsem musel peruit vvoj a zat se +vnovat lnku do PBML). Pedtm se takov spnost objevila u +8.8.2002 pi poslednm pokusu ped odjezdem na Tchaj-wan. Tenkrt lo +o mal zhoren, co vak zstalo bez povimnut, protoe jsem +pechzel od malch dat k velkm. U 6.8. jsem toti doshl vsledku G +89684 - B 36346 - P 71,2, co bylo pro zmnu nevysvtlen zlepen +oproti vsledku z 5.8. (G 89639 - B 36391 - P 71,1). Ze zznam +vyplv, e z 5. na 6. srpna jsem zkouel zapnout pensobovn +pravdpodobnosti zvislosti pravdpodobnost nekoordinanosti dcho +lenu. Tento pokus spnost zhoril, ale po jeho optovnm vypnut +vzrostla o nco ve ne na pvodn rove! Vsledek z 5. srpna - svm +zpsobem posledn stabiln - byl dosaen po zkazu peskakovn dosud +bezdtnch pedloek a po odstrann njak chyby v urovn +vzdlenosti uzl (dlky zvislosti). + +Nyn zkusm na objevenou verzi s spnost G 89562 dt commit a pot +ovit, zda s jinm nastavenm nezlepme spnost jet na rove +6., nebo aspo 5. srpna. + +Po zapnut absolutnch pravdpodobnost (pabs=1): +G 89397 - B 36633 - P 70,9 + +Po vypnut pravdpodobnosti nekoordinanosti (nekoord=0, pabs=1): +G 89537 - B 36493 - P 71,0 + +Po vypnut obojho (nekoord=0, pabs=0): +G 89106 - B 36924 - P 70,7 + +Take nvrat k (nekoord=1, pabs=0): +G 89562 - B 36468 - P 71,1 + + + +Pro jistotu jet jeden cvs commit, potom se pesuneme k novj +verzi. Ta pochz z 25.10.2002 a mla by bt tedy po pestavb +umoujc pouvat slovnkovou morfologii (a pepnat zdroj +morfologie v parser.ini msto pmo ve zdrojku). + +spnost verze z 25.10.2002 u je opravdu ni, tj. pestavbou se +nco ztratilo (mzdroj je MD/a, take sprvn by vsledek ml bt +stejn jako 11.10.2002): +G 89311 - B 36719 - P 70,9 + +Ztratilo se 251 zvislost. Zkusme je najt pomoc rozdl v +analzch. Nejdv ale commitnout - zaevidovat verzi z 25.10., by +znamen zhoren. + +Verze k 8.8.2002 (11.10.2002) s MDt a nejlep dochovanou spnost +(71,1 %) byla v CVS otagovna jako "rel-1". A najdu chybu a opravm +ji ve verzi z 25.10.2002, nebo a hledn chyby vzdm, mohly by +souasn verze soubor z 25.10.2002 dostat tag "rel-2" a revizn slo +2.0. Soubory *.stat a *.csts by se mon mohly vyhodit z repository, +pokud to jet jde. + +Zkoumm, kde se ztratilo tch 251 zvislost. Ukazuje se, e se li +natrnovan statistiky v obou verzch, problm je tedy u pi +trninku. Diffem na zdrojky obou verz zjiuju, e pravdpodobn jde +o chybu pi zmnch v parslib.pl. Jednoduchou vmnou podezelho +regulrnho vrazu se sice nic nezmnilo, ale po vmn celho +parslib.pl chyba zmizela (statistiky jsou toton a spnost je tak +na pvodn rovni, tj. 71,1 %). + +Budu postupovat od star verze parslib.pl k novj a v prbhu budu +kontrolovat trnink na jednom trnovacm souboru. + + + +2.1.2003 + +Nalezena a opravena chyba v parslib.pl z 25.10.2002. Dosaena +spnost z 8.8.2002-11.10.2002: + +G 89562 - B 36468 - P 71,1 + + + +3.1.2003 + +Vechny verze zachovan do 11.12.2002 jsou nyn ji pevedeny pod +CVS. I verze po 25.10.2002 pouvaj opraven parslib.pl. Zkusm nyn, +zda si pln posledn verze NEdlenho parseru (kter ovem u +existuje paraleln s dlenm a sdl s nm trnovac skript train.pl, +kter se o ppadnm dlen dozv pouze z parser.ini) zachovv +spnost 71,1 %. + +Oprava parslib.pl: v obnoven verzi chybla funkce cas() pouvan +v dlenm parseru, doplnno. Oprava train.pl: etl z parser.ini +velikost blok pro dlen, ale nevdl, e velikost 0 znamen zkaz +dlen. Oprava parse.pl: neuml st statistiku z pracovn sloky; +ztratila se mu procedura vymazat_vetu() (zejm byla v chybnm +parslib.pl). Tak neuml do tto sloky zapisovat sv vstupy +(analyza.csts, analyza-debug.csts, analyza.log). + +G 89562 - B 36468 - P 71,1 + +Heurka! Nedlen parser tedy peil ve sv nejlep verzi a dlen je +mon vyvjet paraleln, kdy na nj zrovna bude as. Potvrzuji stav +CVS. + + + +14.1.2003 Nov Hut + +Doasn nemu pout cel trnovac data, omezuju se na soubory +z eskomoravskho Profitu (c*). Testovac data jsem zatm pouil +cel, i kdy kvli rychlosti je poslze taky omezm. Testovn na +celch datech trvalo nco mlo pes 1 hodinu. + +G 86730 - B 39300 - P 68,8 + +Men data: pouze soubory lu*, 2294 vt, 39539 slov. Testovn trv +19:54 minut. + +G 27845 - B 11694 - P 70,4 + + + +16.1.2003 + +Test na pouze jednom souboru: lu01.a. + +G 632 - B 287 - P 68,8 + +Kdy se za pravdpodobnost povauje etnost (slovn etnost +kombinovan se znakovou etnost vahami danmi konfigurac, ale +nepeveden na pravdpodobnost). + +G 625 - B 294 - P 68,0 + +Zhoren by mlo odpovdat zapnut absolutn pravdpodobnosti +(konfig{pabs}), kterou v tomto ppad nelze vypnout. Hned to +vyzkoume: vrtme se k pvodn procedue, ale zapneme pabs. +Jene ve skutenosti dolo ke zlepen. Hm, to nechpu. + +G 642 - B 277 - P 69,9 + +Pouze sest slovn a znakovou etnost, ale nevyvaovat je. (Odpovd +vahm 0,5:0,5.) + +G 617 - B 302 - P 67,1 + +Pidat etnosti slovo-znaka a znaka-slovo. + +G 609 - B 310 - P 66,3 + +Pidat etnosti neberouc v vahu vzdlenost a smr. + +G 578 - B 341 - P 62,9 + + + +30.1.2003 Praha + +Nvrat k plnm datm. CVS commit, vsledky stle stejn jako loni v +srpnu, pro osven: + +G 89562 - B 36468 - P 71,1 + +Pokus se zsobnkem stav (zatm se jen buduje, ale nepouv). Nkde +bude asi bug, protoe nejen e to trv 1:04 hodiny, ale jet ke vemu +to nedv stejn vsledky. + +G 89295 - B 36735 - P 70,9 + +Po vypnut ukldn stavu se spnost vrtila a vpoet trval jen 18 +minut. + +Kdy jsem nechal ukldn stavu vypnut, ale zapnul jsem kolem nj +pokusn pidn a optovn ubrn zvislosti ze stromu, spnost +klesla na 70,9 % - pridat_zavislost() a ubrat_zavislost() tedy +nevracej parser do pvodnho stavu! Analza trvala 37 minut. + +Naopak kdy jsem toto pidvn zatrhnul, ale dovolil jsem ukldn +stav (stle stejnch, to nen pro hash tak nron), analza trvala +21 minut a spnost byla 71,1 %. Dalo by se tedy obejt funkce +pridat_zavislost() a ubrat_zavislost() (nap. tak, e bych pro +ukldn pouze pidal run do ukldanho seznamu jedno slo), to asi +nakonec udlm kvli efektivit, nicmn chybu v obou funkcch je +nutn najt a opravit. + + + +31.1.2003 + +Chyba ve funkcch pridat_zavislost() a zrusit_zavislost() opravena +tak, e byla vytvoena tet funkce zjistit_povol(). Bohuel se +ukazuje, e sprvn vytvoen seznam povolench zvislost byl ten, +kter vedl na ni spnost. Vsledky jet nejsou definitivn, +protoe na novou funkci se jet nepelo v celm programu. Seznam +povolench se te nebude prbn udrovat, nbr potat a ped +hlednm nov zvislosti. Je to pomalej jen o mlo: cel analza +trvala necelch 20 minut, oproti verejm 18 minutm starou metodou. + +G 89296 - B 36734 - P 70,9 % + +Po plnm odstrann $povol spnost jet klesla. Asi jsem dosud +nhodou nepovoloval njak zvislosti, kter nebyly dobe. Funkce +zjistit_povol() se te vol na dvou mstech, ale pjde to snit na +jedno. Analza trv 23 minut. + +G 89196 - B 36834 - P 70,8 % + +Odstranil jsem druh voln zjistit_povol() ze +zjistit_moznosti_zaveseni(), msto toho se seznam povolench pedv +shora z generovat_stavy() pes lokalni_konflikty(). Taky jsem pln +odstranil promnn @rspan, @lspan a $soused, ale ty u se v tu chvli +nikde nepouvaly. Pesto se pokazilo 9 zvislost. OPRAVIT! + +G 89187 - B 36843 - P 70,8 % + + + +3.2.2003 + +Opt pidno druh zjistit_povol(). Chyba zmizela, take problm nebyl +v @lspan, ale tady! + +G 89196 - B 36834 - P 70,8 % + +Problm odstrann, zjistit_povol() se vol jen jednou bhem pidvn +jedn zvislosti, analza trv 22 minut na potai loki. spnost +zstv 70,8 %. + +Pokusil jsem se pejt na slovnkovou morfologii. Podle pokus na +nhradnch testovacch datech vylennch z trnovacch dat (a ovem +nepouitch v danm pokusu pro trnink) mla vyjt dokonce lpe ne +run morfologie, a zeteln lpe ne morfologie z taggeru. Tady to +vak tak ani trochu nevypad. Bu jsem udlal chybu tehdy, nebo te. + +G 82258 - B 43772 - P 65,3 + + + +4.2.2003 + +Vracm se k morfologii z taggeru. +Bhem dne dlm rzn pokusy s vtami o dlce 5, s pedlokami a s +peskakovnm sourozenc. Nic z toho zatm nen dotaeno, nicmn mm +vsledky pro tento pokus: N2 nesm peskakovat svho sourozence +vlevo. Pokud by to chtla udlat, tj. pokud mezi n a zamlenm +dcm uzlem le jin uzel, kter pmo nebo nepmo nezvis na n, +nbr na dcm uzlu, dostane takov zvislost pravdpodobnost +0. Vsledek ukazuje, e to mrn zlepen pin, a e bych se tedy +peskakovnm ml dle zabvat. + +G 89448 - B 36582 - P 71,0 + +Jet drobnost. Do manipulace s morfologickmi znakami pidna +transformace adovch slovek na pdavn jmna. Zlepen u tech +slov :-) + +G 89451 - B 36579 - P 71,0 + + + +5.2.2003 + +Zjiuju plodnost koene. Prvn pokus: po vybudovn stromu se zjist, +kolik dt m koen. Pokud jich m vce ne 2, vybere se koncov +interpunkce a nejpravdpodobnj dal dt, ostatn se odpoj a +pipoj jinam. Nevhody: tento pstup zatm neumouje nahradit jedno +sloveso koordinac sloves a obecn nedovoluje ostatnm uzlm na zmnu +reagovat. Pesto dolo k celkem viditelnmu zlepen. Zhorila se +ovem asov nronost (analza trvala 32 minut), a to proto, e do +koordinac bylo nutn pidat kontrolu povolenosti druh hrany. Mlo by +to jt alespo sten opravit, protoe seznam povolench zvislost +si lze pamatovat a dodat jako parametr. + +G 89765 - B 36265 - P 71,2 + +Druh pokus: zakzat zaven na koen a na koncovou interpunkci a do +konce. Bohuel se zd, e tento pstup pinesl vc kody ne uitku. + +G 89509 - B 36521 - P 71,0 + +Prozatm tedy nvrat zpt: + +G 89765 - B 36265 - P 71,2 + +Pidn ji vera vyzkouen pokus s vtami dlky 5 (zatm se +rozpoznv pouze vzorec "Praha (pt) -"). + +G 89978 - B 36052 - P 71,4 + + + +6.2.2002 + +Pokusy s rkami a zvislostmi na nich. Prvn piblen: na rce +nesm nic viset, protoe pak by to musela bt koordinace nebo apozice, +a ta se e jinde. + +G 90992 - B 35038 - P 72,2 + +Jup!!! + + + +13.2.2003 + +Po njakm vrtn poklesla spnost. Blb je, e u si nepamatuju, co +to bylo za pokus. Myslm ale, e lo o vypnut loklnch konflikt, +protoe jejich statistika je tentokrt przdn. Vypnuty byly pi +trninku, pi testu ne, ale vsledek je stejn. Byly vypnuty kvli +njak chyb (cyklilo se to), doufal jsem, e teba spnost sp +kaz, jejich statistika tomu napovdala. Ovem ony asi vylepuj +spnost ostatnch zvislost... + +G 90610 - B 35420 - P 71,9 + +Lokln konflikty znovuzprovoznny, ale spnost stle nen na +pvodn rovni. Budu si muset nechat zjistit rozdly mezi verz +parseru ze 6.2. a tou dnen. + +G 90833 - B 35197 - P 72,1 + +Ohledn rozdl. +parslib.pl ... nco se dje s koordinacemi a s apozicemi (ddn +znaek) - s apozicemi se dve nedlalo nic. Je ovem otzka, odkud se +tahle funkce vol. +train.pl ... li se, ale zatm se zd, e v nepodstatnch vcech +(pesunut mechanick prce kolem otvrn a prochzen soubor do +knihovny parslib.pl, pesunut mazn vty po jejm zpracovn tamt) + +Zvr: nenael jsem rozdl, kter by mohl zpsobovat rozdl v +spnosti. Zkusm tedy pustit parser ze 6.2., aby se vidlo, zda +vbec m spnost, kvli kter jsem ho zlohoval. A na vsledek se +pijdu podvat a ztra :-) + + + +14.2.2003 + +Parser z 6.2.2003 m opravdu spnost 72,2 % (G 90992 - B +35038). Nael jsem chybu, kvli kter pestaly fungovat tet a dal +leny koordinac (bylo nevhodn poadovno povolen pidn budouc +hrany v okamiku, kdy pidn nemohlo bt povoleno). Po jejm +odstrann se obnovila spnost z 6.2.2003: + +G 90992 - B 35038 - P 72,2 + +Provdm cvs commit a mau vybalenou verzi z 6.2.2003. +Vylepena efektivita zjiovn povolench hran v procedue +zjistit_pravdepodobnost_koordinace(). Bohuel bhem testovn naas +vypadl jeden z disk, take nelze ct, o kolik se vylep as na +analzu. Te kvli vpadku trvala 40 minut. Ovil jsem vak alespo, +e oprava nezpsobila njak nov chyby, po kterch by poklesla +spnost. + +G 90992 - B 35038 - P 72,2 + + + +17.2.2003 + +Konen dopsn prototyp knihovnch funkc pro ddn morfologickch +znaek u koordinac a apozic. Otestovno trnovn i analza, zda +nebyly zavleeny chyby a zejmna zda to nepad. Zatm se ovem znaky +dd, ale ty zddn se k niemu nepouvaj, take opravdov zkouka +ohnm teprve bude. Trnovn trvalo 9:31 minut, analza trvala 26:40 +minut. + +G 90992 - B 35038 - P 72,2 + +Pokus s pouitm ddnch znaek pi trninku na udlosti OZZ, OSZ, +OZS, ZZZ, ZSZ, ZZS a ZPV (pseudovalence), ne na koordinaci (KZZ, +UZZ). A vbec ne pi parsingu. Zatm to pineslo zhoren, co pi +omezenosti pouit nen a tak divn. Udlost po trninku je te +3354115 (vc, dve pod 3300000), trnovn trv 13:19 minut +(!). Analza trv 26 minut. + +G 89791 - B 36239 - P 71,2 :-( + +Musm zjistit, zda hlavn pot nen v tom, e kvli chybnmu +znakovn koordinace leckdy sdruuj leny s nekompatibilnmi +znakami, a ty pak chybn ovlivuj znaku cel koordinace i jej +vztahy. Zjistit, zda by pomohlo, kdyby se alespo v koeni ponechaly +duplikty znaek (tj. nejastj znaka by mla tak nejvt +vhu). To se toti nyn nedl, protoe mechanismus pro zpracovn +seznamu znaek pot se znakami z morfologick analzy. + +Te se tak dvm... Taky je to mon tm, e se pi trninku +alternativy ve znakch vbec nerozsekaly! Tam se toti testuje, +jestli je zdroj morfologie "MM", a to nen! + + + +18.2.2003 + +Vypnm ddn znaky, vrtm se k nim za pr tdn. Te musm nutn +vytvoit nco, o em pjde napsat na ACL, a to ddn znaky +nejsou. Mla by to bt subkategorizace - tentokrt pouit jako +vstupn filtr. + +Filtr se bude snait zabrnit tomu, aby vce ne jedno doplnn +stejnho druhu rozvjelo tot sloveso, pokud toto sloveso nem rmec, +kter opakovn pipout. Netk se volnch doplnn (zejmna +psloven uren asu a msta "kde"). Naopak se to tk podmtu +(lpe: podstatnho jmna v 1. pd), i kdy podmty v rmcch +neevidujeme. + +Obecnji: pokud na slovesu vis nco, co vypad jako vnitn doplnn, +ale sloveso to nem v rmci, vyvolat poplach. Mon, e jin sloveso +si to rdo vezme. + +Na druh stran: pokud to vypad, e slovesu nco chyb, poohldnout +se, jestli to v okol nepebv (tj. je to tam a nikdo jin na tom +nesed ze subkategorizanch pohnutek). Pokud ano, vyvolat tak +poplach. Zjistit, e slovesu nco chyb, nen pln triviln. Znamen +to, e musme projt vechny jeho rmce a najt takov, kde toho chyb +nejmn. Z prohledvn jsou vce mn vyloueny rmce, kter zavrhuj +nco, co naopak na slovesu vis (ale ne absolutn: me to tam toti +viset omylem). + +Seznam rmc by mohl bt nov, pozen novm perlovm kdem, hlavn +vak z nov verze treebanku, a asi nejen pro slovesa, ale pro vechny +slovn druhy, u kterch se njak preference vysleduj. + + + +Ovem po shldnut souboru se statistikou usuzuji, e nejdv by se +mohla vylepit pseudovalence. Ze slovesn znaky by se k heslu mlo +pipojit pouze poten "V", ale nikoli znak za nm, urujc as a +zpsob. A vbec by se neml brt ohled na smr a dlku zvislosti. + +V trnovacch datech zaznamenno 3149779 udlost. Trnovn trvalo +11:44 minut. + +prava pseudovalence: Bohuel jsou vsledky jet hor :-( + +G 88442 - B 37588 - P 70,2 + +Poddruh ze znaky asi nebyl nedleit, protoe rozlioval inn rod +od trpnho, a ty maj rzn rmce. Taky infinitiv a rozkazovac zpsob +jsou dleit, protoe nemaj podmt. Mon by se nemuselo rozliovat +mezi nimi navzjem, stejn jako mezi ptomn-budoucm a minulm +asem, ale to u jsou asi jen drobnosti. + +Zkusm tedy vrtit znaku, ale zatm nevrtit smr a dlku +zvislosti. + +Udlost je te 3178791. Trnovn trvalo 9 minut. + +G 90613 - B 35417 - P 71,9 + +Vracm i smr a dlku. Opt 3225713 udlost, trnovn trvalo 9:40 +minut. + +G 90992 - B 35038 - P 72,2 + +Dalm pedbnm pokusem by mohl bt zkaz peskakovn vznamovho +slovesa kvli nadazenmu modlnmu slovesu vnitnmi doplnnmi (tedy +pro tyto ely dejme tomu mkoliv s vjimkou R6 a D). Je to obdoba +ji vyzkouenho zkazu peskakovn N2 jinm N2. + +G 90774 - B 35256 - P 72,0 + +Rum zkaz, ani bych v tuto chvli podrobnji zkoumal, pro to +nefunguje. + +G 90992 - B 35038 - P 72,2 + + + +19.2.2003 + +Pokus s valenc. Jestlie na slovesu u vis N1, zakzat zaven +druhho N1 na tot sloveso. + +G 90437 - B 35593 - P 71,8 + +Pokraovn pokusu: ve uveden zkaz se netk slovesa "bt" +(psudek jmenn se sponou). + + + +5.3.2003 + +Deadline ACL Sapporo jsem provihnul, take se mu vrtit k vzkumu +:-) Pro zatek zkontrolujeme, e mme parser ve zdravm stavu, tj. e +dosahuje dosud nejlep dosaen spnosti 72,2 %. + +G 90992 - B 35038 - P 72,2 + +Dle se podvme na stav, v jakm bylo zanechno zpracovn koordinac +a apozic. Opustili jsme ho 18.2., naposledy se s nm nco dlo +17.2. Bylo rozchozeno ddn morfologickch znaek, ale jeho vyuit +pi syntaktick analze jet nebylo bezchybn a tak zhorovalo +spnost analzy. + + + +13.3.2003 + +Odstranny njak chyby v ddn znaek a jeho vyuit pi +trninku. spnost se ovem stle zhoruje, ale asi mi nezbyde, ne +to povaovat za nezbytnou drobnost na cest ke konenmu +vtzstv. Jet nemm prozkouman detaily, ale seln vsledky jsou +nsledujc: + +G 90465 - B 35565 - P 71,8 + +Jako obvykle je skuten pbytek chyb vt, ne tch 527 zvislost, +protoe na nkterch mstech se analza na opltku +zlepila. Konkrtn: + +Poet rozdlnch nzor pedchzejcho a souasnho parseru: 5814. +Z tohoto potu ml star parser dobe 1570, nov 1043. Nov parser +tedy pinesl 1570 zhoren a 1043 zlepen. V nzoru na ostatn +zvislosti z uvedench 5814 se parsery sice liily, ale oba ho mly +patn. + + + +14.3.2003 + +Prce na notebooku (Intel Celeron 800 MHz, 250 MB pamti, z toho, +zd se, asi 100 MB vyuij Windows ME). Trnink v pln i by se +sem neveel, ale analza ano, pokud ze statistiky odstranme vechny +udlosti, kter nebyly vidny vce ne jednou. Velikost souboru se +statistikou klesne ze 67 na 18 MB. spnost klesne pouze nepatrn: + +G 90759 - B 35271 - P 72,0 + +Pesto asi budu v praxi pro testy pouvat jen malou st dat, +protoe analza cel mnoiny trv dvakrt dle ne na lokim: 1:28 h. +Omezme se na soubory lu* (48 soubor). Jejich analza trv 26 min, +co odpovd dob potebn na lokim k analze vech dat. + +G 29205 - B 10334 - P 73,9 + +Stejn pokus na stejnm potai, ale pod Linuxem, je jednak del +(43 minut), jednak m ni spnost!!! Jedin vysvtlen, kter m +napad, je, e tento Linux ji msto ISO Latin 2 pouv Unicode +UTF-8, take nefungovaly lexikalizovan statistiky. + +G 28184 - B 11355 - P 71,3 + +Objevil jsem pravdpodobnou pinu, pro klesla spnost po +natrnovn na zddnch znakch. Zmnil se toti poet zvislost +N1-N1: dve vtzil smr zleva doprava, nyn zprava doleva. To +znamen, e zddn znaka se dostala do zvislosti s tm, kdo ji +zddil. Napklad by k tomu mohlo dojt u apozic, protoe koordinace +jsou v trninku u z dvjka podchyceny, ale apozice ne. + +Dle: slova a hesla by se mla ddit stejn jako znaky. + +Dle: na rozdl od dvjho ddn koordinac nyn ddme celou +skupinu znaek (podobn jako u morfologie ze slovnku). Pi evidenci +zvislost u se to vyuije, ale mlo by se to vyut i pi evidenci +koordinac a apozic. Nyn by se zaevidovala koordinace vdy, kdy +dc uzel m s-znaku Coord nebo Apos, a to mezi znakou zvislho +uzlu a vemi ostatnmi znakami v seznamu ve zddn znace dcho. + + + +28.3.2003 + +Nvrat na pota loki (Intel Pentium 4, 1.8 GHz, pam 1.5 GB). +Kontrola, e parser je ve stavu, v jakm si myslm, e jsem ho +zanechal. + +G 90465 - B 35565 - P 71,8 + +OK, je to stejn jako 13. bezna ped odsthovnm na +notebooka. Analza trvala 30 minut. + +Opraveno: pi ddn znaek se za lena koordinace neoznaila +pedloka, ale podstatn jmno pod n. Nyn u se oznauje +pedloka. Petrnovn trvalo 15 minut, zaznamenno 3301150 +udlost. + +G 90588 - B 35442 - P 71,9 + +Opraven zpsob, jakm se pi trnovn oddlovaly zvislosti od +koordinac. Dosud se nkter koordinace omylem zapotaly i do +zvislost, naopak zvislosti celch koordinac na nem se +vynechvaly apod. Nyn pi ddn znaek souasn buduju pro kad +uzel pznak, zda je lenem njak koordinace, take by to mlo +fungovat sprvn (pinejmenm tak sprvn, jak funguje ddn znaek) +a navc by to nov mlo zahrnovat i apozice. Petrnovn trvalo 18 +minut, statistika obsahuje 3222068 udlost (to dv smysl, byl +odstrann um chybnch udlost). + +G 90893 - B 35137 - P 72,1 + +Nyn jedin dal zmna: v train.pl se za koordinaci povauj nejen +konstrukce zen uzlem s s-znakou Coord, ale tak Apos. Trnovn +trvalo 13:30 minut, zjitno 3225577 udlost. + +G 90634 - B 35396 - P 71,9 :-( + + + +31.3.2003 + +Snam se vyut existenci alternativ u znaek +v koordinacch. Opravuji chybu - regulrn vraz se nedoke smit +se znakou "Z(". Zjitno 3242983 udlost. Trnovn trvalo 11 +minut. + +G 90465 - B 35565 - P 71,8 ;-(( + +Je to ale njak divn, protoe nejetnj koordinace jsou ty, kter +neobsahuj partnera. Opravena chyba. Zjitno 3009050 +udlost. Trnovn trvalo necelch 11 minut. + +G 90420 - B 35610 - P 71,7 + + + +3.4.2003 + +Zahajuji pestavbu parse.pl, kter mi umon paraleln parsovat podle +dvou rznch model a porovnvat jejich spnost. Souasn je to +vten pleitost vyistit po msce nabalovan kd. Dnes u to ale +nestihnu. Zatm jen paraleln bel pokus s neddnmi znakami. Ml +by dopadnout stejn jako 5.3.2003, ale jedna zvislost se nkde +ztratila, ert ji vem. + +G 90991 - B 35039 - P 72,2 + + + +16.4.2003 + +Dokonen pestavby odloeno na neurito. Te udlm jen jednu vc, +budu u kadho uzlu vypisovat seznam zvislost, kter byly povolen v +okamiku, kdy byl uzel zaven. S pomoc takovho vpisu bych ml bt +schopen najt chyby zpsoben posledn zmnou parseru. + +Zatm ale musm opravovat parser, aby byl opt provozuschopn, ten +pokus o pestavbu ped dvma tdny ho zjevn dostal do nekorektnho +stavu. Test poutm na oezan statistice (pouze udlosti, kter se +staly vce ne jednou), take spnost nebude standardn. + +G 90074 - B 35956 - P 71,5 +Poutm tedy jet tot na pln statistice. +G 90252 - B 35778 - P 71,6 + + + +9.5.2003 + +Potvrzen ve uveden posledn vsledek, ani bych si ovem pamatoval, +jakmi zmnami parametr k nmu dolo (u toti pamatuju i +lep). Analza na lokim trvala 32 minut. Zkoum ji jet pustit na +shrekovi s lokln kopi dat, ale zrychlen nen na pohled nijak +impozantn, trv to te 28 minut. + +Zkusm se vrtit k verzi ped hrtkami s apozicemi. Situaci mi +komplikuje zmizen sloky CVSROOT na FALu, ale natst mm njakou +zlohu z 13.3.2003 na notebooku, tak uvidme. + +Vsledky na souasnch datech (ovem tch "normlnch", nezskanch na +zddnch znakch), jsou skuten ty sprvn. + +G 90992 - B 35038 - P 72,2 + + + +12.5.2003 + +Musme pijt na to, kde je v novm parse.pl chyba, e jeho spnost +je pi pouit tho modelu hor. Omezme test na men data. + +star: G 672 - B 247 - P 73,1 +nov: G 665 - B 254 - P 72,4 + +Rozdly mezi parse.pl a parse1.pl jsou pli rozshl. Zkusme +nejdve zjistit, zda chyba nen v parslib.pl. Nechme star parse.pl, +aby pouval nov parslib1.pl. + +G 672 - B 247 - P 73,1 + +Chyba je tedy pmo v parse1.pl. Budu se postupn pesouvat od +parse.pl k parse1.pl. Prvn krok: pidm proceduru rozebrat_vetu(), +ani bych ji pouil. + +G 672 - B 247 - P 73,1 + + + +13.5.2003 + +Star kd nahrazen knihovn (parslib.pl) funkc +projit_data(). Vsledky zstvaj v podku. + +G 672 - B 247 - P 73,1 + + + +14.5.2003 + +Zvltn zpracovn vt o pti slovech posunuto v kdu v. spnost +se snila. Je to asi tm, e na konci z podmnky vypadly njak vci, +kter se maj dlat i pro ptislovn vty. + +G 667 - B 247 - P 73,0 + +Opraveno. + +G 672 - B 247 - P 73,1 + +Kmen razu je spojovn koene s koncovou interpunkc. Po jeho +pesunut do funkce generovat_stavy() se zjevn parser zaal chovat +jinak (a he). + +G 665 - B 254 - P 72,4 + +Opraveno. + +G 672 - B 247 - P 73,1 + +Nakonec pepnm na funkci rozebrat_vetu(). Krtk vzorek zstv +funkn. Te tedy pro jistotu otestujeme cel testovac data. Je to v +podku, stejn jako vsledky z 5. bezna! + +G 90992 - B 35038 - P 72,2 + +Pechod ze starho na novj parse.pl dokonen. spnost zstv +nesnen. + +Te zpt k spnosti koordinac a zddnch znaek. Vezme-li se +statistika natrnovan na zddnch znakch, spnost na lu01 +vrazn klesne: + +G 660 - B 259 - P 71,8 + +Te je jet poteba dt do podku train.pl. V souasnm stavu na +73088 vtch zjist 2998340 udlost. Bohuel, tohle nen to "sprvn" +trnovn z pohledu testu na lu01. + +G 662 - B 257 - P 72,0 + +V train.pl na dcch 181 a 182 vymuji zddn znaky za +vlastn. Nalo se 2979202 udlost. spnost na lu01 vzrostla, ale +pod jet nen train.pl v pvodn kondici. + +G 670 - B 249 - P 72,9 + + + +15.5.2003 + +Pokoum se pepnout do star verze train.pl, ale asi nen dost +star, protoe se v n tak pouvaj zddn znaky. Statistika +obsahuje 2351310 udlost. Vsledek je dost dsiv. + +G 506 - B 413 - P 55,1 + +Ze stejn verze jsem odstranil pouvn zddnch znaek. Statistika +obsahuje 3225713 udlost. + +G 672 - B 247 - P 73,1 +G 90991 - B 35039 - P 72,2 + +Ve velkm testu se ztratila jedna zvislost. Zkoum train.pl vytaen +z mezitm opravenho CVS. Statistika obsahuje 3225713 udlost a +zejm je toton se statistikou zskanou o pokus dve. Kdy vak +tento train.pl pustm v pvodnm kontextu, tedy zejmna s pvodnm +parslib.pl a na pvodnch datech (neobsahuj nezjednoznannou +morfologickou analzu), dostanu sice tak 3225713 udlost, ale +velikost souboru se statistikou se asi o 10000 bajt li. + +G 90992 - B 35038 - P 72,2 + +Poutm tento star train.pl se starm parslib.pl, ale s morfologicky +analyzovanmi daty (nemlo by to vadit se stejn nepouij, +pouij se ). Vsledn statistika je pravdpodobn shodn s +vtznou (dosahujc G 90992). + +Poutm tedy tot, ale s novm parslib.pl. Statistika obsahuje +3910869 udlost, co je dost divn. Zbytek musm odloit na ztek. + + + +16.5.2003 + +V novm parslib.pl se starm parser.ini se nezapnula redukce znaek. + + + +21.5.2003 + +Pokrauju v testovn starho train.pl a hledn optimln +konfigurace. V parser.ini, pouvanm starm train.pl, u pibyl +parametr upravovat_mzn = 1, kter si pete nov parslib.pl. Poutm +star train.pl s novm parslib.pl a s parser.ini upravenm ve +uvedenm zpsobem. Vstupem bude statistika-md.stat s datem 21.5.2003 +a asem nco po 12:28. Statistika obsahuje 3225713 udlost. Velikost +souboru je 68527045, to je ta patn. Chyba se tedy asi skrv v +parslib.pl. + + + +22.5.2003 + +Prce na notebooku. Omezuji trnovac i testovac data na +eskomoravsk profit (soubory zanajc na "c"). Nalezeno 252 +trnovacch soubor. Zpracovno 11300 vt. Nejdel vta obsahuje +132 slov. Trnovn belo 4:56 minut (dal men: 4:20, 4:18, +4:34). Prmrn doba 272 vtein, prmrn rychlost 42 vt / s. +Na Amazonce, ale s daty tahanmi po sti z Conga, to trvalo 6:20. +Kdy se netahaj data po sti, trv to 6:19 (musel jsem nicmn +vyut sov sluby a pipojit si lokln disk jako sov, ale +hlavn zpomalen stejn nejsp tkv v procesoru a pamti). +Prmrn rychlost ve Windows 2000 na Amazonce in 30 vt / s. +Statistika obsahuje 607328 udlost a m 12849 kB. + +S pouitm starho parslib.pl trv trnovn 5:12 minut. Statistika +obsahuje 607328 udlost a m 12847 kB. + +Upraven star parslib o rozdl . 3 (kontrola spchu RE na a +). 6:47 minut, 12847 kB. Tento rozdl tedy roli nehraje. + +Star parslib upraven o rozdl . 2 (volitelnost "upravovat_mzn"). +7:23 minut, 12847 kB. Tento rozdl tak nehraje roli. + +Star parslib upraven o rozdl . 1 (budovn $anot[$ord]{mznlist}). +4:51 minut, 12847 kB. Tento rozdl tak nehraje roli. Rozdl, kter +hledme, nen ve funkci zpracovat_slovo(), protoe ta u je te +v obou verzch stejn. + +Vyprzdnna funkce transformovat_koordinace(). +5:46 minut, 12847 kB. Tento rozdl tak nehraje roli. + +Zruena funkce transformovat_slozene_predlozky(). +5:29 minut, 12847 kB. Tento rozdl tak nehraje roli. + +Vymnny vnitnosti funkce projit_data(). +4:58 minut, 12849 kB. Tady nkde je ten rozdl! + +Vnitnosti vrceny, pouze pidna prava znaek koncov interpunkce. +4:49 minut, 12849 kB. To je ono! + + + +23.5.2003 + +Chyba byla v tom, e se koncov interpunkce oznaovala dvakrt pes +sebe, jednou v parslib.pl a podruh v train.pl. Po odstrann +druhho oznaovn z train.pl a ponechn prvnho v parslib.pl m +vsledn statistika opt jen 12847 kB. Trnovn trvalo 4:52 minut. +Po spojen takto opravenho train.pl s novm parslib.pl zstv +12847 kB. + +Nov train.pl obsahuje jednak svj nov kd, jednak voliteln +kompletn star kd. Star po oprav oznaovn koncov interpunkce +produkuje 12847 kB, nov vak stle nem ani sprvn poet udlost +(561619 msto 607328). + +dek 141: netestovat Apos, ale jenom Coord +dek 174: pouit $anot[$i]{coordmember} +dky 183 a 184: pouit zddnch znaek v zvislostnch udlostech +dky 206 a 257: podivn else-blok, tk se asi koordinac + +Do domcch testovacch dat zaazuji soubory zanajc na "lu0". +Celkem 9 soubor, 445 vt, 7901 slov. Testovn trv 6:36 minut. +G 5689 - B 2212 - P 72,0 + +Pokus s pravou trnovn. Msto na pm testovn, zda j nebo mj +rodi mme funkci Coord, se spolhme na anotaci coordmember, zji- +ovanou pi ten vstupu. Tato anotace ale zahrnuje i apozice a +nept se na mho rodie. +Trnovn trvalo 5:09 minut, statistika obsahuje 557955 udlost a +m 11885 kB. Vsledky testu: +G 5697 - B 2204 - P 72,1 + +V train.pl zavedeny dva rozskoky: +$alt[0] = 0 ... coordmember je dt koene koordinace, i kdyby nebylo + jejm lenem +$alt[0] = 1 ... coordmember je len koordinace, i kdyby nebyl dttem + koene, ale jeho vzdlenjm potomkem (teba pes + pedloku) +$alt[1] = 0 ... pouze Coord +$alt[1] = 1 ... i Apos se zpracovv jako koordinace + +Konfigurace 00 odpovd starmu (a zatm nejspnjmu) train.pl: +5:10 minut, 607328 udlost, 12847 kB. +G 5689 - B 2212 - P 72,0 + +Konfigurace 01 (pidat Apos, ale nekomplikovat si ivot vnoenmi): +4:50 minut, 597991 udlost, 12672 kB. +G 5680 - B 2221 - P 71,9 + +Konfigurace 10 (hldat vnoen, ale o apozice se nestarat): +4:52 minut, 557955 udlost, 11885 kB. +G 5697 - B 2204 - P 72,1 + +Konfigurace 11 (hldat vnoen vetn apozic): +5:06 minut, 555919 udlost, 11845 kB. +G 5700 - B 2201 - P 72,1 + +$alt[2] = 0 ... vlastn morfologick znaky +$alt[2] = 1 ... zddn morfologick znaky + +Konfigurace 111 (navc zddn znaky; nemlo by smysl, kdyby vlastnost +. 0 (prvn) byla 0, protoe pak by se msta, kde jde o ddn znaky, +vynechvala): +5:35 minut, 560668 udlost, 12042 kB. +G 5682 - B 2219 - P 71,9 + +Konfigurace 1100 (kontroln; tvrt vlastnost pokrv zatm cel +else blok tkajc se koordinac): +5:33 minut, 556348 udlost, 11864 kB. +G 5723 - B 2178 - P 72,4 +To je pekvapiv dobr. Na druhou stranu a te se dostaly ke slovu +nkter sti, kter se maj starat o koordinace, vak jsem se divil, +e nejsou v provozu. sten o koordinace pece bylo postarno u +dvno. Jen mi nejde do hlavy, e verze 00, kter tyto sti tak +vypn, by podle mch pokus mla bt ekvivalentn s verz, kter +byla na velkch datech dosud hodnocena jako nejspnj! + +Intermezzo: Testuji tent train.pl v te konfiguraci (1100) na +loki s velkmi daty. 73088 vt, 2956228 udlost. Trnovn trvalo +16:51 minut. Analza trvala 31:24 minut. Vsledky: +G 90765 - B 35265 - P 72,0 + + + +27.5.2003 + +Pozor, koordinan udlosti se zpracovvaj na dvou rznch mstech: +postaru ped zvislostmi, nov po zvislostech. Souasn verze tedy +nkter udlosti eviduje dvakrt. Te jsem cel druh koordinan +blok zakomentoval a pokoum se zopakovat vsledky pro konfiguraci +0000. Povedlo se. 4:59 minut, 607328 udlost, 12847 kB. + +Jednoduch krek, koordinan blok jsem pesunul dozadu k tomu +zakomentovanmu (je ale o rove v ve vlastn smyce, to jsem +zachoval). Nemlo by se nic zmnit, ale zmnilo se :-(. 4:20 minut, +547314 udlost, 11684 kB. + +Tak jinak. Zpracovn koordinac je na pvodnm mst, ale odstranil +jsem z nj voln funkce transformovat_koordinace(). 4:31 minut, +607328 udlost, 12847 kB. Piel jsem na to, pro asi hraje roli, +jestli se koordinace zpracovvaj ped zvislostmi, nebo po nich. Ve +starm zpracovn koordinac se toti mn morfologick znaka +v koeni koordinace. + +Koordinace pesunuty do samostatn procedury. Kontroln bh train.pl. +4:43 minut, 606506 udlost (jakto?!), 12836 kB. Opravena chyba +v odkazech. 4:54 minut, 607328 udlost, 12847 kB. Zruena procedura +evidovat_udalosti() (lo jen o kopii star trnovac procedury, u +nepouvanou). 4:50 minut, 607328 udlost, 12847 kB. Dokoneno +napojovn koordinac na voliteln rozskoky pro ddn znaky. 5:01 +minut, 607328 udlost, 12847 kB. + +Dal testovn, e se zachovala nejen velikost statistiky, ale i +spnost analzy. +Konfigurace 0000, parse.pl pro vechny pokusy nezmnn. +5:01 minut - 607328 udlost - 12847 kB (neli se) +6:30 minut - G 5689 - B 2212 - P 72,0 (neli se) + +Konfigurace 1000 (nov zpsob rozpoznn lena koordinace): +5:09 minut - 558561 udlost - 11904 kB (li se od 10 zkou. minule) +6:05 minut - G 5695 - B 2206 - P 72,1 (o 2 hor ne 10 minule) + +Konfigurace 0100 (apozice, ale rozpoznn lena postaru): +5:01 minut - 606744 udlost - 12882 kB (li se) +6:25 minut - G 5675 - B 2226 - P 71,8 (hor o 5) + +Konfigurace 1100 (nov rozpoznn lena + apozice): +5:00 minut - 558997 udlost - 11958 kB (li se) +6:15 minut - G 5674 - B 2227 - P 71,8 (hor o 26) + +Konfigurace 1001 (nov rozpoznn lena + zddn znaky v koord): +4:46 minut - 551019 udlost - 11784 kB +6:13 minut - G 5726 - B 2175 - P 72,5 (zatm nejlep vsledek) + +Konfigurace 1010 (nov rozpoznn lena + zddn znaky v zvisl): +4:55 minut - 563541 udlost - 12115 kB +6:22 minut - G 5683 - B 2218 - P 71,9 + +Konfigurace 1011 (nov rozpoznn lena + zddn vude): +5:16 minut - 552908 udlost - 11872 kB +6:27 minut - G 5683 - B 2218 - P 71,9 (zvltn: shodn vsledek s 1010, i kdy statistika je jin) + +Konfigurace 1101 (nov rozpoznn lena + apozice + zd v koord): +5:16 minut - 551473 udlost - 11851 kB +6:19 minut - G 5717 - B 2184 - P 72,4 + +Konfigurace 1110 (nov rozpoznn lena + apozice + zd v zvis): +4:55 minut - 564657 udlost - 12180 kB +6:14 minut - G 5667 - B 2234 - P 71,7 + +Konfigurace 1111 (pln pechod na apozice a zddn znaky): +4:56 minut - 552929 udlost - 11910 kB +6:15 minut - G 5673 - B 2228 - P 71,8 + +Zvr: obecn se zd, e zahrnut apozic nepomh. Ani jejich +vypnut vak samo o sob nevede k nejvy spnosti, pestoe +konfigurace 1011 by mi pila z tch bez apozic jet jako nejist +een. + + + +5.6.2003 + +Opt na lokim s velkmi daty. I tady vyzkoume nkolik konfigurac, +ale asi u ne vechny. Konfigurace 1111. +13:45 minut - 2927372 udlost - 63160948 B +31:24 minut - G 90811 - B 35219 - P 72,1 + + + +11.6.2003 + +Konfigurace 0000 (podle poslednch zkuenost s velkmi daty by to +mla bt ta nejlep). +16:44 minut - 3225713 udlost - 68517516 B +31:46 minut - G 90992 - B 35038 - P 72,2 + +Konfigurace 1001 (byla nejlep na malch datech). +12:03 minut - 2928036 udlost - 62868492 B +31:16 minut - G 91256 - B 34774 - P 72,4 + +NOV NEJLEP VSLEDEK! +Uklzm rozvrtan verze a potvrdm CVS. Alternativy v train.pl +zstanou pepnateln, ale pepnn nepjde ovldat z konfiguranho +souboru (bude se muset provdt pmo ve zdrojku) a defaultn zstane +zapnut konfigurace 1001, co znamen: +- rozpoznn lena koordinace novm zpsobem (porad si s lenem, + kter nen bezprostednm dttem koordinanho koene, nbr je + zaven nap. pes pedloku) +- apozice se nepovauje za koordinaci a nijak zvlṻ se nezpracovv +- pi trnovn zvislost se nepouvaj zddn znaky +- pi trnovn koordinac se naopak zddn znaky pouvaj +Posledn dva body znamenaj: + +Pi zaznamenvn udlosti KZZ (koordinace dvou znaek) zjiujeme +seznam znaek mch partner ze seznamu zddnch znaek koene +koordinace. Na rozdl od starho pstupu by tenhle ml bt odolnj +vi vnoenm koordinacm a pedlokm. Dve se prochzely vechny +uzly ve vt, o kadm se zjistilo, zda je to len koordinace, a pokud +byl, jeho znaka (ze @znacky) se pidala do @koortypy; zrove se +pidala KZZ pro nj a vechny ji dve nalezen @koortypy. + +Pozoruhodn je, e zejm navlas stejn zaznamenvn udlosti KZZ se +dje v bloku zpracovat_vetu() i ve z nj volanm bloku +projit_koordinace(). Musm zjistit, zda je to poteba kvli jinm +alternativm, nebo zda se do jedn z kopi bh nikdy nedostane, nebo +zda se dokonce provdj ob kopie a kad koordinace se zaeviduje +dvakrt! + +Skuten se volaj ud(KZZ) na obou mstech. Problm ale bude +komplikovanj, protoe pokad jsou parametry KZZ jin znaky. + + + +12.6.2003 + +Opraveno ukldn koordinac se patnmi znakami. Zatm neopraveno +dvoj ukldn koordinac. Konfigurace 1001. +13:46 minut - 2927251 udlost - 62851146 B +31:37 minut - G 91320 - B 34710 - P 72,5 + +Vypnuto druh ukldn koordinac, prvn ponechno. +13:40 minut - 2927054 udlost - 62848982 B +30:59 minut - G 91155 - B 34875 - P 72,3 + +Nov pokus o popis vtzn konfigurace 1001: +1) len koordinace se poznv novm algoritmem, zvldajcm vnoen +koordinace a pedloky v koordinacch. +2) Apozice se nepovauj za koordinace a zachz se s nimi jako s pry +obyejnch zvislost. +3) Zvislostn udlosti se sestavuj z vlastnch znaek dcho a +zvislho uzlu, nikoli z tch zddnch. Dokonce se zejm nedl ani +to, co se dlalo kdysi, toti e koen koordinace bude v zvislostech +neho na koordinaci i koordinace na nem zastoupen znakou prvnho +nebo poslednho lena koordinace. To by byla chyba! Koordinace by v +zvislostech mla bt reprezentovna nm lepm ne znakou spojky. +4) Koordinan udlosti se sestavuj novm algoritmem, kter vychz +ze zddnch znaek koene. Mj. se tm zajist sprvn zapotn +vnoench koordinac. (Star algoritmus prochzel vechny uzly vty, +pokud nael lena dan koordinace, sproval ho obousmrn se vemi +dve nalezenmi leny tto koordinace. Nov algoritmus pruje jen +jednosmrn, ale zato se vemi leny, tedy i s tmi, kte ve vt +nsleduj a za prv nalezenm lenem.) + +Opravena chyba: znaka prvnho lena koordinace se nekoprovala do +koene koordinace za elem sestavovn zvislostnch udlost, kde +nco zvis na koordinaci nebo koordinace zvis na +nem. (Technitji: $alt[2] se nepedvalo do a nepouvalo v +procedue projit_koordinace().) + +14:00 minut - 2964897 udlost - 63267805 B +32:29 minut - G 89598 - B 36432 - P 71,1 + +Ach jo. Zas jedna oprava chyby, kter totln zkaz spnost. Zkusme +tedy jet jednou zapnout zddn znaky pro koordinace vstupujc do +zvislost. Konfigurace 1011. + +12:22 minut - 2932518 udlost - 63163328 B +31:01 minut - G 90852 - B 35178 - P 72,1 + + + +17.6.2003 + +Vzhledem k opravm minul tvrtek je bohuel na mst opt +zkontrolovat, zda konfigurace 0000 jet stle dosahuje stejn +spnosti jako kdysi (i kdy tato spnost u nen nejlep v +historii, lep spnosti zatm byly dosaeny jen s pomoc chyby, a +tedy omylem a neodvodnn). + +Poznmka 19.6.2003: pibvaj dal konfigurace, adm je sestupn +podle spnosti. + +Konfigurace 0010. + +13:15 minut - 2942371 udlost +29:44 minut - G 91258 - B 34772 - P 72,4 + +Konfigurace 0011. + +13:11 minut - 2943053 udlost +30:47 minut - G 91103 - B 34927 - P 72,3 + +Konfigurace 0110. + +13:01 minut - 2892516 udlost. +30:42 minut - G 91027 - B 35003 - P 72,2 + +Konfigurace 0000. + +15:50 minut - 3225713 udlost +30:20 minut - G 90992 - B 35038 - P 72,2 + +Konfigurace 1010. + +11:34 minut - 2932361 udlost +30:26 minut - G 90966 - B 35064 - P 72,2 + +Konfigurace 1000. + +13:25 minut - 2969063 udlost +31:14 minut - G 90881 - B 35149 - P 72,1 + +Konfigurace 0100. + +12:42 minut - 3216376 udlost +31:43 minut - G 90733 - B 35297 - P 72,0 + +Konfigurace 1111. + +13:12 minut - 2926483 udlost +31:01 minut - G 90713 - B 35317 - P 72,0 + +Konfigurace 0001. + +12:39 minut - 3209963 udlost +30:15 minut - G 89827 - B 36203 - P 71,3 + +Konfigurace 1001. + +13:15 minut - 2964897 udlost +31:58 minut - G 89598 - B 36432 - P 71,1 + + + +20.6.2003 + +Dal konfigurace (zbv jich 6) u nebudu testovat. Nov nejlep +konfigurace je tedy 0010 s spnost 72,4 (91258). Tato konfigurace +znamen, e: +- lenstv v koordinaci se zjiuje postaru (tj. chybn!) +- apozice se nepovauj za koordinace +- koen koordinace jako . i z. len zvislost pouv zddn znaky +- v koordinanch udlostech se zddn znaky nepouvaj +Nastavm tuto konfiguraci v train.pl a provedu cvs commit, pak ale +znova zapnu i nov zjiovn lenstv v koordinaci a obtuju dv +desetiny procenta spnosti ve prospch sprvnho postupu. Dle se +tedy bude pokraovat s konfigurac 1010, kter m spnost 72,2 +(90966, co je nepatrn mn, ne mla dosavadn 0000). + + + +Zkusme kadou koordinaci (udlost KZZ) zapotat s dvojnsobkem +skuten etnosti. Kdy jsme nco podobnho udlali omylem, spnost +se zvila; nen akort jist, e to bylo tmhle a ne jet njakou +jinou chybou. + +13:25 minut - 2942371 udlost +29:10 minut - G 91763 - B 34267 - P 72,8 + +To jsou vci... Zkusm tedy, co se stane, kdy se kad koordinace +zapot tikrt. + +13:18 minut - 2942371 udlost +30:14 minut - G 91971 - B 34059 - P 73,0 + + + +26.6.2003 + +Trnuju konfiguraci 1010 (v ptek jsem a do veera ml zapnuto 0010), +nechvm vak zapnuto trojnsobn zvhodnn koordinac proti +zvislostem. + +12:46 minut - 2932361 udlost +29:45 minut - G 91209 - B 34821 - P 72,4 + +Pokus: nsiln prava funkce projit_koordinace(). Jestlie m +koordinace jen jednoho lena, vymae se ji zaznamenan udlost KJJ, +nezaznamen se udlost KZZ a msto toho se zaznamen zvislostn +udlost OZZ (jako zstupce; ostatn mn dleit zvislostn udlosti +se zatm nezaznamenvaj). + +11:17 minut - 2861004 udlost +29:43 minut - G 90400 - B 35630 - P 71,7 + +Nijak slibn to tedy nevypad. Pokus rum a jednoetnmi koordinacemi +se v tto chvli nebudu dle zabvat. + + + +27.6.2003 + +POZOR! Nov zpsob zjiovn lenstv v koordinaci je sice v nem +sprvnj, ale zase kale na to, zda mm nebo nemm vypnut apozice! +Zkoum je zatm natvrdo vypnout v parslib.pl. + +13:38 minut - 2963729 udlost. +29:53 minut - G 91235 - B 34795 - P 72,4 + +Abych mohl vbec jet nkdy nco upravovat v train.pl, budu muset +alternativy, kter jsem v poslednch tdnech vytvoil, zase njak +zkompaktnit a vbec to cel formln upravit. Bylo by dobr, kdyby i +tak zstala monost alternativy pepnat, ale hlavn je nutn, abych +si nezkazil souasnou nejlep spnost. + +Kontrola spnosti: +11:51 minut - 2963729 udlost. +30:07 minut - G 91235 - B 34795 - P 72,4 + + + +30.6.2003 + +Nov druh udlosti KMM udv, e uzel s jistou morfologickou znakou +byl lenem koordinace. Po vydlen pslunm potem udlost UZZ by +mla vzniknout pravdpodobnost zapojen uzlu do koordinace. + +Podle oekvn z toho dn zzrak nevypadl. + +G 89526 - B 36504 - P 71,0 + + + +1.7.2003 + +Valence. Nvrat k tomu, o em jsem psal do Taibei. Naposled jsem se +tm zabval zhruba ped rokem, kdy jsem odevzdval konenou verzi +lnku. Protoe tehdy nebylo jist, zda seznam slovesnch valenc z +Philadelphie byl ten nejlep, ke ktermu jsem se v roce 1999 dostal, +pokusm se ho zskat znova. Tentokrt pmo perlovm trnovaem, +prostednictvm udlost nad zddnmi znakami, z celho PDT 1 a pro +vechna slova (nejen slovesa). Budou to udlosti, kde na jedn stran +bude stt heslo dcho uzlu, na druh stran abecedn seazen +zddn morfologick znaky zvislch uzl. Ze zvislch uzl se +tentokrt nebudou umle vyhazovat podmty (podstatn jmna v prvnm +pd). U dcch sloves se za samostatn heslo budou povaovat tvary +trpnho pest, jinak se heslo vdy vezme z morfologick roviny. + +18:29 minut - 3231635 udlost, z toho 267906 RAM. + +Odboka, posteh: pivlastovac a ukazovac zjmena se odte budou +pi trninku i pi analze povaovat za pdavn jmna. + +17:20 minut - 3224091 udlost. +30:03 minut - G 91035 - B 34995 - P 72,2 + +Zhoren, vracm do pvodnho stavu. + +18:43 minut - 3231635 udlost. +30:00 minut - G 91235 - B 34795 - P 72,4 + +spnost se vrtila na dosavadn maximum. + + + +2.7.2003 + +Pokus s krtkmi vtami. Vechny vty dlky 5 slov a mn se pi +trninku zaznamenaj jako udlost VET , kde vzor bude +posloupnost morfologickch znaek, zaznamenan podobn jako rmec +(znaky jsou oddleny vlnovkou) a strom bude posloupnost sel, kter +pro kad slovo ur odkazem jeho rodie. Nap.: +VET Rk~A3~N3 0,3,1 + +13:22 minut - 3235652 udlost, z toho 4018 VET. +29:46 minut - G 91388 - B 34642 - P 72,5 + +Zkusme rozen na vty o esti slovech. + +16:54 minut - 3237584 udlost, z toho 5950 VET. +30:51 minut - G 91391 - B 34639 - P 72,5 + +Zlepen u bylo dost nepatrn a mon by se s ohledem na napchan +kody mlo radji zstat u vt do dlky 5, ale pesto se zkusme jet +podvat na vty o sedmi slovech. Tam u pravdpodobn dojde ke +zhoren, ale kdo v... + +13:54 minut - 3239777 udlost, z toho 8143 VET. +29:49 minut - G 91491 - B 34539 - P 72,6 + +Dobr, zkusme jet vty o osmi slovech. + +13:42 minut - 3242203 udlost, z toho 10569 VET. +36:16 minut - G 91511 - B 34519 - P 72,6 + + + +3.7.2003 + +Poutm se do disertace, ppadn vstupy nsledujcch tdn se +mon objev pmo v n. + + + +8.8.2003 + +Ml jsem povypnan zpracovn koordinac, radji zkontroluju, e +pod jet umm doshnout t nejvy spnosti. + +17:21 minut - 3242203 udlost +31:28 minut - G 91539 - B 34491 - P 72.6 + + + +2.9.2003 + +Selektivn lexikalizuji vztan zjmena (kdo, co, kter, jak, , +jen) heslem. spnost se zvila, ale jen nepatrn. + +18:16 minut - 3262065 udlost (011) +33:12 minut - G 91550 - B 34480 - P 72,6 + +Podobn pokus, ale msto hesla pidvm jen "W" (za "wh"). + +17:38 minut - 3252683 udlost (013) +34:45 minut - G 91531 - B 34499 - P 72,6 + +Vracm zpt lexikalizaci heslem. Pokus o rozen: lexikalizuji +vechna zjmena, nejen vztan. + +14:29 minut - 3301172 udlost (015) +33:50 minut - G 91555 - B 34475 - P 72,6 + +Mrnj pokus: lexikalizuji osobn, pivlastovac, ukazovac a +vztan (tj. nejbnj uzaven tdy). Jde o zjmena zanajc na +j, ty, on, my, vy, mj, tvj, jeho, jej, n, v, jejich, svj, +ten, tento, tenhle, onen, takov, t, tent, sm, kdo, co, kter, +jak, , jen. Nastalo sice dal mrn zlepen, ale v clov verzi +parseru tuto pravu nenechm, protoe je jazykov zvisl. + +18:22 minut - 3293735 udlost (018) +36:23 minut - G 91561 - B 34469 - P 72,7 + +Vrcena selektivn lexikalizace vech zjmen. Pidna selektivn +lexikalizace podadcch spojek (dosud se lexikalizovaly pouze spojky +zanajc na "e", "aby" a "zda"). + +21:26 minut - 3316716 udlost (020) +30:09 minut - G 91344 - B 34686 - P 72,5 + +Selektivn lexikalizace podadcch spojek vrcena do pvodnho stavu. +Pidna selektivn lexikalizace vybranch pslovc. Jsou vymezena vtem +pmo ve zdrojku, ale pi troe prce je lze vymezit jazykov nezvisle +pro trnink i test jako takov pslovce (tvary, ne hesla), kter se +v trnovacch datech vyskytla alespo stokrt. Bohuel nejde pout +rozlien znaek Db a Dg, i kdy vtina nejastjch pslovc m Db. +Napklad dest nejastj pslovce "vce" se astn konstrukc, kvli +kterm stoj za to zkusit lexikalizaci, ale toto pslovce m znaku Dg +(protoe je to druh stupe pslovce "hodn"). + +9 nejastjch pslovc: +1. tak (2101) 2. jak (1638) 3. u (1611) 4. tak (1566) 5. ji (1344) +6. jet (1314) 7. vera (1293) 8. tedy (990) 9. pak (952) +5 nejastjch pslovc se znakou Dg: +10. vce (946) 26. stejn (448) 36. zejm (377) 41. asto (357) +46. mn (335) + +20:37 minut - 3439991 udlost (022) +30:18 minut - G 91944 - B 34086 - P 73,0 (!!!) + + + +3.9.2003 + +Nov pokus rozchodit subkategorizaci. Pro zatek (slo pokusu 24) jsem +v parser.ini zapnul valence=1. Nat se star philadelphsk seznam rmc +z /home/zeman/programy/valence/seznam_ramcu.txt. + +G 91837 - B 34193 - P 72,9 + +spnost se snila. Nechce se mi hned te zkoumat, kde je problm. +Soubor 0 = /home/zeman/data/test.amm, znaka = +Soubor 1 = 023.csts, znaka = +Soubor 2 = 024.csts, znaka = + 91639 0+1+2 (oba dobe) + 33690 0,1+2 (oba stejn patn) + 198 0,1,2 (oba patn, kad jinak) + 305 0+1,2 (zhoren) + 198 0+2,1 (zlepen) + + + +5.9.2003 + +Parser vrcen do stavu z 2.9.2003, pouit model 033.stat. + +G 91944 - B 34086 - P 73,0 + + + +8.9.2003 + +Pestavba. Potebuju zachovat neredukovan znaky pro vstup, ale +souasn parser si je nepamatuje. Po pestavb budou vechny anotace +krom vlastnho slovnho tvaru uloen v poli hash @anot. Pak se +budou nov druhy anotac pidvat snadnji. V prbhu pestavby se +budou muset provdt ast kontroly alespo na prvnch 200 vtch, +e to jet funguje. Vzorov analza (lu0*.csts) m nsledujc +vsledky: + +G 5889 - B 2012 - P 74,5 + +Prvn etapa: $hesla[$i] nahrazena $anot[$i]{heslo}. +parse.pl OK (G 5889) +Druh etapa: $znacky[$i] nahrazeny $anot[$i]{uznacka}, +$mznacky[$i] nahrazeny $anot[$i]{znacka}. To byl trochu vt boj, +snad posledn problm je s krtkmi vtami, zejm se te ve vzorci +objevuje znaka koncov interpunkce s K (teba Z.K) a v natrnovan +statistice to tak nen. Zazplatoval jsem to v parse.pl, ale mon +to zas nebude chodit po novm petrnovn, to se kadopdn mus +ovit! Take zatm mm oveno parse.pl na malch datech +(lu0*.csts). Te ped odchodem poutm tot na velkch datech a pak +tak train.pl a jet jednou parse.pl, aby se ovilo, e se +nepokazil ani trnink. + + + +9.9.2003 + +Vera podle oekvn zafungovalo upraven parse.pl nad starou statistikou, +ale nezafungovalo po petrnovn. Dnes jsem opt zruil pravu a vzorce +krtkch vt tedy vdy maj znaku koncov interpunkce rozenou o "K". +Bohuel se nkam ztratily 3 zvislosti. + +G 91941 (msto 91944) - B 34089 - P 73,0 + +Porovnvm statistiky 033 a 055 a logy 042 a 057. Ve statistikch se li +pouze novj udlosti ARG, ADJ, RAM a VET - nkter z nich dve nemly ve +znace koncov interpunkce na konci "K", a ada z nich dve nemla v hesle +koene dvojk. Bohuel se tm asi nevysvtluje pokles spnosti. Ze srovnn +log je vidt, e udlosti KZZ maj pokad trochu jin etnosti. Jak k tomu +ale mohlo dojt, kdy statistiky se v dcch KZZ neli? + + + +15.9.2003 + +Problm byl zpsoben tm, e nkter pravdpodobnosti byly zvisl na promnn +$scelkem, co byl bu souet etnost vech evidovanch udlost, nebo poet +rznch udlost. Kdy jsme pidali do statistiky udlosti, zmnily se nkter +pravdpodobnosti a obas to vedlo k vbru jin zvislosti. A to pesto, e +pidan udlosti nemly s jevy, jejich pravdpodobnost se zmnila, vbec nic +spolenho! + +een: rum "absolutn pravdpodobnosti" ($konfig{pabs} je v souasn +konfiguraci stejn nastaveno na 0), kvli kterm se $scelkem hlavn pouvalo. +Tam, kde se $scelkem pouvalo i pi $konfig{pabs}==0, lo o chybu. A i kdybych +se v budoucnosti chtl ke $konfig{pabs} vrtit, muselo by se ve jmenovateli +pouvat njak jin slo, kter se nezmn, pokud se nezmn statistiky, +kter se objevuj v itateli. + +Upozornn: spnost tm nejsp jet vce klesne. Zkusme ji pak pozvednout +dalm umlm zvhodnnm koordinac (teba e se koordinan udlosti budou +pi trninku zaznamenvat tikrt nebo tyikrt). + +G 92022 - B 34008 - P 73,0 + +Tak kupodivu tentokrt spnost naopak mrn pekonala dosavadn rekord! +Udlm tedy cvs commit a vrtm se k vzkumu rlivosti (lo o to zjistit, +kolikrt parser zavsil dva rlivce vedle sebe, kolikrt byl jeden nebo oba +patn atd.) + +S slovnm pokus zanme opt znova od zatku, petrnujeme s jednikou. + +3439995 udlost, 20:43 minut +G 92022 - B 34008 - P 73,0 + + + +8.3.2004 + +Pestavba parse.pl na parse1.pl a adu modul. Na souboru lu01 u se +pvodn i nov parser chovaj identicky. Podle ve uvedench zznam +ze z to vak vypad, e na celch datech jsou pod jet +rezervy. Nsleduj vsledky novho parseru (parse1): + +G 91933 - B 34097 - P 72,9 + +Ukazuje se ovem, e parse.pl je na tom v souasn dob pln +stejn. Matn si vzpomnm, e nkdy na podzim, kdy jsem nevedl +podn zznamy, jsem se rozhodl odstranit njakou systmovou chybu i +za cenu toho, e momentln to lehce pokod spnost. + +Pidvm nov moduly do CVS a potvrzuji stav CVS. Prozatm ponechvm +nov verzi jmno parse1 a star parse. V pt verzi se to asi u +zmn. + + + +10.4.2004 + +Dal prava parse1.pl kvli znovurozchozen subkategorizace. +Poten men mi poskytne srovnn, podle kterho bych ml +poznat, e jsem zpsobil chybu. Pouvm oezan model 4013 +(chyb udlosti vidn jen jednou nebo mnkrt). Testuju na prvnm +souboru lu01. + +G 680 - B 239 - P 74,0 + +Pro zatek pejdu z voln parslib.pl na pouvn csts.pm. +Souasn zrum pouvn pole @slova. + + + +11.4.2004 + +Po dni prce se mi podailo zadit, aby i upraven parser dval poadovanou +spnost. + +G 680 - B 239 - P 74,0 + + + +22.4.2004 + +Poutm parser na frekim se v pardou, vetn n-tic. Dv o pl procenta vy +spnost ne bylo dosud bn. Odpovd to tomu, jak si pamatuju inek n-tic, +ale v tomto zznamu nemu najt pslun slo, abych zjistil, zda to sed pesn. + +G 92594 - B 33436 - P 73,5 - bh 5031 + +elem dnen seance je ovit vliv valence (pravdpodobn zanedbateln) na spnost +v souasnch podmnkch. Mus se to toti napsat do disertace. Modul valence se +kvli tomu mus oprit a znovu rozchodit. + +G 92532 - B 33498 - P 73,4 - bh 5032 + + + +23.4.2004 + +Pseudoval = 0, valence = 1. + +G 92458 - B 33572 - P 73,4 - bh 5033 + +Pseudoval = 0, valence = 0. + +G 92525 - B 33505 - P 73,4 - bh 5034 + +Tm bylo prozatm uinno zadost poteb sel v disertaci. Te se vrtm k rznm +projevm subkategorizace sloves, konkrtn k peskakovn slovesa zvislost. +V bhu 5031 (viz prvn verej vsledek, G 92594) hledm vechny ppady, kdy +njak zvislost peskoila sloveso. Dlm je na sprvn a chybn a hledm takov, +kter jsou v drtiv vtin ppad (> 90 %) chybn. Dlm je podle upravench +znaek peskoenho slovesa, dcho a zvislho uzlu. Nejetnj chybn jsou: +(vysvtlivky: poet vskyt - procenta chybn/celkem - znaka slovesa - dcho - zvislho - 0/1 chybn/sprvn +168x (91,3%) Vf VB N4 0 +120x (90,9%) Vf Vp N4 0 + 98x (89,1%) Vf Vp Z, 0 + 92x (82,9%) Vf VB Z, 0 + 88x (40,2%) Vp # J^ 0 + 87x (92,6%) Vf VB J^ 0 +Celkem souet takovch peskoen, kter byla chybn ve vce ne 90 % ppad: 4946. +Kdyby se 90 % z tchto ppad (4451) pidalo do sprvnch zvislost, byla by +spnost 77 %! Jene to by vyadovalo, abych msto zakzan zvislosti nael vdy +tu sprvnou. A to je utopie. + +Pokud se nebudu ohlet na znaku zvislho uzlu, budou nejastj opt peskoen +infinitivy: +852x (89%) Vf VB 0 +667x (87%) Vf Vp 0 +Celkem souet 90- a vceprocentnch: 1796. + +Krom zkazu peskoen by se dala vyzkouet i jin vc. Pi trnovn bych si +u kad zvislosti pamatoval, zda peskoila sloveso (a pop. tak jak). + +Kdy se zake peskakovn pro konkrtn znaky, kter byly vidt aspo jednou +a u nich je peskok v aspo 90 % chybn, spnost vzroste. Ale pozor, zatm to +nen dvakrt korektn. Seznam zakzanch peskok toti zjiuju z testovacch +dat! + +G 93559 - B 32471 - P 74,2 - freki 5048 + +Poutm tedy na frekim test na trnovacch datech. Na vslednm CSTS zkusm vyhledat +nov seznam zakzanch peskok. Bude asi zkreslen, protoe parser se na trnovacch +datech chov jinak ne na testovacch, ale nebude to podvod. Nechce se mi vyleovat +zvltn data a parser petrnovvat na zbytku, i kdy na to nkdy teba tak dojde. + +freki 5050 ... cel trnovac data, zkaz peskakovn vypnut +shrek 5051 ... testovac data, zkaz zapnut, seznam zkaz: nejen slovesa, vidna aspo 1x +Oboj spadlo, protoe Milan nco dlal a odpojil disk, na kter se ukldaly vstupy. +Na novm disku pod slem 14 to nakonec dobhlo (trv to ovem kolem hodiny, prochzen +vech peskok ve tech vnoench smykch je dost neefektivn). + +G 93764 - B 32266 - P 74,4 - shrek 0014 + +Trnovac data (znova 5050, te pod slem 015). + +G 974093 - B 281497 - P 77,6 - 015 + + + +26.4.2004 + +Projdu vstup z parsingu trnovacch dat a zkusm na nm natrnovat zkazy peskakovn. +Zskal jsem 5968 rznch trojic znaek, definujcch zkazy (peskoen, dc, zvisl). +Zahrnuty jsou pouze trojice, kter se vyskytly alespo ptkrt. Zkusm pustit parser +s vyuitm tohoto seznamu zkaz. Zapnm zkaz peskakovn, vracm cestu k testovacm +datm. + +G 93132 - B 32898 - P 73,9 - freki 016 :-( + +Chtlo by to pece jen zjistit, jak moc se idm, kdy msto vylennch dat pouvm +analzu trnovacch dat. Natrnovat tedy parser na mtrain datech a pustit ho na mtest +data. + +017.stat je statistika natrnovan na mtrain datech. +freki 018 je analza mtest dat statistikou 017. +G 89121 - B 32960 - P 73,0 - freki 018 + +Pi t pleitosti jsem ponkud zcivilizoval train.pl, aby u nepouvalo parslib.pl, +ale csts.pm a parse.pm, a tak aby pln pelo na pole @anot a zapomnlo na @slova, +@struktura a @afun. Nyn pejmenuju parse1.pl na parse.pl a train1.pl na train.pl a +cel to ulom do CVS. + +Aktualizoval jsem seznam zakzanch peskok (peskoen-dc-zvisl) podle +018.csts. Jsou tam vechny slovn druhy v takovch peskocch, kter se vyskytly +alespo ptkrt a kter byly z 90 % patn. Celkem seznam pokrv 22283 peskoench +uzl v 018.csts. Nyn otestuju tento seznam zkaz na dtest datech parserem natrnovanm +na train datech (statistika 013.stat). + +G 92782 - B 33248 - P 73,6 - T 31:11 min - freki 019 + +Zpomalen kvli testovn zakzanch peskok (sloitost n3) se vraznji neprojevilo, +ale freki je zejm nov dlo (4 Intel Xeon 2.8 GHz, 4 GB pamti). + +spnost je ovem ni ne se seznamem z testovacch dat. Jet musm otestovat +seznamy zkaz zskan ze stejnch dat (018.csts), ale s jinm nastavenm. + +vidno alespo ptkrt, libovoln slovn druh ... u bylo ......... 019 - G 92782 - B 33248 - P 73,6 +vidno alespo jednou, libovoln slovn druh .... 46264 vskyt ... 020 - G 91375 - B 34655 - P 72,5 +vidno alespo jednou, jen slovesa .............. 5043 vskyt ... 021 - G 92995 - B 33035 - P 73,8 +vidno alespo ptkrt, jen slovesa ............. 2698 vskyt ... 022 - G 92995 - B 33035 - P 73,8 + + + +27.4.2004 + +Jet posledn pokus. Ponechme peskoky sloves, kter byly vidny alespo ptkrt, +akort k nim pidme ti nejastj peskoky jinch uzl. Jsou to prv ty, kter +byly vidny alespo 200krt: +Z, Vp VB (219) +Z, VB VB (250) +Z, N1 N1 (267) + +G 92942 - B 33088 - P 73,7 - freki 023 + +Nen mi jasn, pro je to hor. Tch 736 hran sice nemus bt automaticky dobe, +za prv v testovacch datech nemus bt stejn ast, za druh kdy zaku jednu +patnou monost, jet to neznamen, e poznm tu sprvnou. Ale kdy se to nezlep, +pro se to dokonce zhor? Mon kvli vedlejm inkm zkaz. Kdy v uritm +okamiku zaku udlat chybu, mon tm blokuju proveden neho sprvnho v ptm +kroku, a nkdo tomu nemu sprvnmu pak vyfoukne rybnk? + +Zvr: nechme ten nejmen seznam, protoe souasn pat ke dvma nejspnjm: +peskakovn sloves, pokud takov peskok byl k vidn alespo ptkrt a zrove +byl s alespo devadestiprocentn pravdpodobnost chybn. + +Potvrzuju novou spnost 73,8 (G 92995) do CVS. + +Pokrauju v testovn subkategorizace. Nyn se pokusm vyut zsobnk stav analzy. +Na konci analzy se zjist, zda m nkter sloveso nenaplnn rmec a zda je ve +vt materil, kterm by ho lo naplnit. Pokud ano, pokusme se o to. + + + +28.4.2004 + +Trochu jsem zcivilizoval ukldn stav analzy v modulu rozebrat.pm. Te kontroluju, +e jsem nepokazil spnost. + +G 92995 - B 33075 - P 73,8 - freki 026 + +OK, potvrzeno, e jsem nic nezkazil. + + + +29.4.2004 + +Dokonm pouvn zsobnku stav v ppad, e na konci prvnho pokusu o analzu +nem nkter sloveso naplnn svj valenn rmec, akoli by mohlo. Opravil jsem +ukldn stav, jet jednou vyzkoum, e se nic nepokazilo, ne zanu uloen +stavy doopravdy pouvat. + +G 92995 - B 33075 - P 73,8 - drak 027 - T 58:50 minut + +spnost se zapla pnbh nezmnila, ovem ukldn stav zvilo asovou nronost +skoro na dvojnsobek. Ze stejnho dvodu tak vzrostla pamov nronost ze 425 MB +a na 1 GB. + +Te tedy zkusme uloen stavy opravdu vyuvat. K tomu je poteba, aby se balk +zlonch stav z hashe zmnil na opravdov zsobnk (pole). Hash se nm vak tak +hodil, protoe bylo mon snadno zjistit, zda negenerujeme stav, kter u vygenerovn +byl. Rozdlme tedy strukturu stav na dv sti, hash vygenerovanch stav a zsobnk +nezpracovanch stav. + +generovat_stavy() + +Vygeneruje vechny stavy, ke kterm se lze dostat z aktulnho stavu. Vezme v vahu +seznamy povolench a zakzanch zvislost i v ppad, e nkter zvislost m +pednost bez ohledu na pravdpodobnostn model (nap. tzv. valenn zvislosti). +Nevezme je v vahu, pouze pokud m nkter zvislost absolutn pednost (je to +druh dl koordinace apod.) Nov stavy jsou stavy se vm vudy, jako kdyby se +vpoet opravdu ml ubrat tmto smrem. Nov zvislost je tedy pidna do stromu, +jej vha je znm a je promtnuta do ohodnocen celho stromu. Navc se v, jak +je pomr mezi vhou tto zvislosti a vhou vtzn zvislosti v tomto kole (nap. +90 %, ale me to bt i pes 100 %, pokud njak zvislost vyhrla dky protekci, +teba protoe je valenn). Prchod tedy mus bt dvoukolov, nejdve se vygeneruj +vechny mon pokraovac stavy vetn vah, potom se zjist, kter stav vyhraje, +a k ostatnm se dopot jejich procentuln odstup. + +Funkce generovat_stavy() dostane aktuln stav a vrt vechny stavy, ke kterm +se z nj d dojt. Ozna tak stav, kter podle n m zvtzit v tomto kole (jak +vyplv z pedchzejcho odstavce, nememe se spolehnout na to, e to bude stav +se 100 % pomrem k vtzi). + +Funkce generovat_stavy() nev o celkov evidenci vygenerovanch a zpracovanch +stav. Ani tedy nekontroluje, zda nenagenerovala njak stav, kter u nageneroval +nkdo jin. To vechno mus zajistit njak oblka - funkce, kter ji vol. Mon +ale jet zmnm nzor a ob innosti njak spojm. + +oblka + +Nechat si vygenerovat nov stavy z aktulnho stavu. +Vyjmout z nich vtze kola, ten u m jist, e se stane ptm aktulnm stavem. +Z ostatnch vyadit takov, jejich strom u byl nkdy vygenerovn (bez ohledu na to, zda u byly i zpracovny). +Zbvajc stavy pidat do pehledu stav. Pehled seadit podle pomru stavu k vtzi jeho kola. (Kvli tomuto azen +nen mon oznait pehled ani za zsobnk, ani za frontu.) +Pehled stav je poteba udrovat v rozumn velikosti. Oznout ho na n^2 stav, kde n je poet slov ve vt. + + + +7.5.2004 + +Pestavba kdu je z vt sti dopsna, me se zat ladit. Nejdv ale radji +zkusm nechat v chodu starou funkci generovat_stavy() a pout jen nkolik novch +nezbytnch drobnost. Funkce pridat_zavislost() a zrusit_zavislost() jsou pesthovny +do novho modulu stav a jsou do nich pesunuty i nkter sti okolnho kdu, kter +dve leely v rozebrat_vetu(). A zddn upraven morfologick znaky u nepepisuj +pvodn znaky v koenech koordinac, nbr se zapisuj do stavu. Z nj se potom +vyzvedvaj a v modulu model, kdy se zjiuj pravdpodobnosti. + +Nov kd funguje jen na 53 %. Star kupodivu taky, protoe se sna pouvat nkter +nov verze knihoven. Zjiuju, e nkter knihovny nejsou pidny do CVS! To se +mus napravit. Natst se mi podailo sestavit verzi, kter zvld pvodnch 73,8 % +(G 92955). up s n do CVS :-). + + + +10.5.2004 + +Te je poteba zjistit, pro nov verze nefunguje. + + + +11.5.2004 + +Postupn jsem opravil rozebrat.pm, pesunul jsem funkce pridat_zavislost() a zrusit_zavislost() +do novho modulu stav.pm, zruil jsem Viterbiho a cel modul rozebrat.pm jsem proistil. +Pi vytvoen koordinace u nemnm pvodn $anot->[$i]{uznacka}, ale ukldm prbn +mnn znaky do $stav->{uznck}[$i]. Tm si uvoluju ruce, abych se mohl kdykoli +vrtit k njakmu starmu stavu analzy, ale navc se ukzalo, e model n-tic a +dote dostval pokozen uznacky. Po oprav stoupla maximln spnost, co jsem +tak okamit potvrdil do CVS. + +G 93709 - B 32321 - P 74,4 % - T 20:50 (geri 83) => skoro 6 vt za vteinu + +Nyn se vrtme k pestavb zapoat 7.5.2004. Zbv asi jen vymnit modul genstav.pm. +Bohuel se mi ho neda pimt ke stejnmu vkonu jako pvodn genstav.pm, ten +nov zvld jen 70,0 % (G 88273). Navc mu to trv pern dlouho (52:51 minut). +Zkusm to udlat znova a postupn. Te se vrtm k pvodnmu genstav.pm a doufm, +e tak k spnosti 74,4 %. Navc zrum adres staraverze a ve zase pesthuju +do pvodn sloky. + +geri 111 + +G 93708, to je sice chyba jen o jedinou zvislost, ale nelb se mi to. Rozbaluju +cvs checkout do sloky staraverze a poutm analzu znova. + +geri 112 + +G 93709, take CVS zloha funguje. Budu si muset pohrt s jejm slouenm s upravovanou +verz. + +geri 113 je nov verze (v horn sloce), zmnny moduly rozebrat, genstav a stav +(pinejmenm), eviduj se vidn stromy, ale neschovvaj se k nim cel stavy +a nic se s nimi nedl. Evidence les dosahuje piek mezi 1000 a 2000 prvk a zd +se, e nijak viditeln nezatuje pam, protoe zatm tak ke stromu neuchovvme +dn velk data. + +G 93708 + +geri 114 je star verze (v doln sloce), kam jsem vak shora zkoproval stav.pm. +V novm stav.pm chybj funkce ulozit_stavy() a odfajfkovat_stavy(), kter by se +nemly nikde pouvat. Chyb tam tak funkce zkopirovat_stav(), co doufm tak +nevad. Naopak pibylo podn a opravdu hloubkov duplikovn stav, ale ani to +se zatm nikde nevyuv. + +G 93709 + +freki 115 se od pedchzejcho li tm, e z nov verze sem byl zkoprovn i +genstav.pm. + +G 93709 + +freki 116 m navc nov rozebrat.pm, m by ml bt kompletn (a na zaznam.txt). +Uvidme, zda doshne G 93709. + +G 93709 + + + +12.5.2004 + +Nael jsem rozdl v parser.ini. V tom horm bylo u zapnuto valence1 = 1. Zkoum +ho vypnout, jestli to pome. Mimochodem, mezi dobrou a vadnou verz jsou celkem +3 odchylky v analze, ale jen jedna z nich zhorila spnost. + +G 93708 - freki 117 + +Nepomohlo to. Dochz mi trplivost a provdm cvs checkout do horn sloky. Snad +pome aspo tohle. + +G 93708 - freki 118 + +Posledn pokus. Zrueny rozdly v povol.pm a zakaz.pm. Slva! + +G 93709 - freki 119 + +Slva! + +Pokoum se zcela zalenit uen n-tic do train.pl. Zatm zkusm pidat model n-tic +do statistiky, ani bych ho pouil (bude se jet stle natat z textovch soubor +lecch vedle), a zkusm kontroln pustit analzu, zda s novou statistikou bude +stejn spn. Trnink se jmenuje freki 120. + +Mus se dost etit pamt. Pokud se toti krom standardnch 3 000 000 trnovacch +udlost jet najednou eviduj vechny n-tice pro n=2 a 10, poere train.pl neuvitelnch +2,6 GB! V trnovacch datech je 5 308 978 n-tic, po profiltrovn jich ovem peije +jen 7934. Trnovn na frekim (Intel Xeon 2,8 GHz) nyn trv 32 minut. + +Zkusme, jestli se s takto natrnovanou statistikou d analyzovat stejn spn +jako dosud. Neml by to bt problm, protoe jedin rozdl by mlo bt 7000 novch +dk, kter se zatm k niemu nepouvaj. + + + +13.5.2004 + +freki 127 b nad statistikou 124.stat, kter by se od 013.stat mla liit prv +pidanmi n-ticemi. Pvodn textov soubory jet le ve stejn sloce, ale hned +pustm dal kontroln test, kter u opravdu nebude mt anci je najt. freki 128 +Bohuel, oba maj neuspokojiv vsledky. (Oba stejn.) + +G 92496 - B 33534 - P 73,4 - T 23:39 + +Mon je ale i jin problm, mon je njak chyba v trninku a jakkoliv nov +natrnovan statistika d hor vsledky ne 013.stat. Uvedu tedy parse.pl i ntice.pm +do pvodnho stavu, ale pustm je stejn na 124.stat. + +G 92202 - B 33828 - P 73,2 - T 22:19 - freki 129 + +Musm zkontrolovat, jestli jet pod dr spnost alespo na 013.stat. + +freki 130 + +124.stat se li od 013.stat. Od 013 se nezachoval zznam konfigurace, kter by +bylo mon porovnat se souasnou konfigurac. 013 m datum 3.2.2004 13:22:41, +take v ppad nezbytnosti zkusm shnout do CVS. + + + +14.5.2004 + +Zjistit, pro train.pl neukld konfiguraci, se kterou byl sputn. Opraveno, +sakura 134 u by si mla zachovat uloenou konfiguraci. V train.pl tak opravena +udlost KJ3, aby se ve statistice msto slovnho tvaru neobjevoval "HASH". Pesto +stle train.pl negeneruje stejnou statistiku jako train0.pl z 15.9.2003 (posledn +CVS train ped vyrobenm statistiky 013.stat 3.2.2004; nsledujc verze 2.13 u +vznikla 8.3.2003). A dle ani train0.pl negeneruje statistiku shodnou s 013, take +u "optimum" mon nikdy nezrekonstruuju. + +Rekapitulace statistik: +013.stat (3.2.2004) ... optimln stav co do spnosti parsingu, chci se k nmu + dostat, ale nevm jak. Nezachovalo se nastaven ani zdrojk trnovae. +132.stat (14.5.2004) ... vyrobil train0.pl z 15.9.2003. Nad 132 putn parser + (sakura 133), ale ani ten nem poadovanou spnost. M jen G 92499 (73,4 %). +138.stat (14.5.2004) ... nejnovj train.pl, ob ve uveden chyby opraveny. + +013.stat m 70400220 B, 3186784 udlost (dk). Obsahuje 108933 udlost USS. +132.stat m 76127819 B, 3439995 udlost (dk). Obsahuje 115479 udlost USS. +138.stat m 75947290 B, 3418684 udlost (dk). Obsahuje 115479 udlost USS. + +Skoro to vypad, e 013 byl natrnovn na jinch datech? Srovnme-li pouze udlosti +USS ve statistikch 013 a 138, zd se (pohledem na prvn strnku diffu), e 138 +m vechna sla vt nebo rovna slm z 013, a navc m nkter slova pln +nov. Nap. slovo "abdikovali". A to je dkaz! 013 vzniklo natrnovnm na mtrainu! +Zkusme na mtrainu natrnovat novou statistiku (jak pomoc train0.pl, tak pomoc +train.pl). + +sakura 139 ... train0.pl na mtrain.csts +drak 140 ..... train.pl na mtrain.csts + +139.stat m 70400220 B, 3186784 udlost. Obsahuje 108933 udlost USS. +140.stat m 70243916 B, 3167576 udlost. Obsahuje 108933 udlost USS. + +Te tedy zkusme parsing nad obma novmi statistikami. + +G 92398 - B 33632 - P 73,3 - T 45:19 - loki 141 ....... nad 139.stat +G 92096 - B 33934 - P 73,1 - T 22:23 - belzebub 143 ... nad 140.stat + +Jet jednou testuju spnost nad statistikou 013. U m to unavuje, ale zd se +podezel, e by se liila od statistiky 139, kdy jsou pesn stejn velk. A +pitom tent parser na jedn z nich funguje na 73,3 % a na druh dajn na 74,4 %. +Te mi diff potvrdil, e ob statistiky se vbec nijak neli! A z prbnch vsledk +to vypad, e i na 013 vkon njak poklesl. + + + +25.5.2004 + +Vracm se k parsingu po narozen Lucinky. +Test drak 150 nad statistikou 013. Kontrola, zda doshneme nejlep znm spnosti. +Optimum bylo dosaeno 11.5.2004 a in 74,4 % (G 93709). + +G 93709 - B 32321 - P 74,4 - T 30:27 + +Test drak 152 nad statistikou 139. Statistiky 013 a 139 jsou toton, take by +vsledek 152 ml bt stejn jako 150. + +G 93709 - B 32321 - P 74,4 - T 30:16 + +Test anette 153 nad statistikou 013. "Star verze parseru", tj. posledn verze +uloen v CVS. + +G 93709 - B 32321 - P 74,4 - T 26:02 + +Te se soustedm na to, aby train.pl uml vyrobit statistiku totonou s 013.stat. +Verze z 15.9.2003 to zejm um (pouil jsem ji 14.5.2004 a vznikla statistika +139, kter je s 013 toton). Pro jistotu jet jednou pustm train0.pl, co je +kopie verze z 15.9.2003, i kdy u m jin datum. Je to train anette 154, trnuje +se na mtrain datech (1425 soubor). + +3186784 udlost - T 10:33 - 154.stat se shoduje s 013.stat + +Paraleln poutm i novj train.pl, opt jen pro kontrolu, protoe vm, e tvo +odlinou statistiku. Je to train drak 155, rovn se trnuje na mtrain datech. +Asi po hodin prce to spadlo, protoe to nenalo funkci ntice::shrnout(). + +Prozkoumm rozdly mezi train0.pl a train.pl a tak rozdly mezi obma statistikami. +Vytvm pechodov skript train05.pl a budu prbn testovat, zda jet dosahuje +stejnch vsledk jako train0.pl. Nejdv sjednocuji "use" moduly v zhlav a odstrauji +shodlouh "pod" koment. Je to train anette 156. + +3186784 udlost - T 10:38 - 156.stat se shoduje s 013.stat + +Nahradm ten subkategorizanho slovnku analogickou funkc z modulu subkat. +Je to train anette 157. + +3186784 udlost - T 10:34 - 157.stat se shoduje s 013.stat + +Provedu vechny pravy, kter nejsou zvisl na nahrazen parslib.pl modulem csts.pm. +Vesms jsou jen kosmetick. Trnovn ntic zatm taky nepidm. Rozdlov soubor +obou train m pod jet 470 dk. Test momentlnho train05.pl je anette 158. + +3186784 udlost - T 10:44 - 158.stat se shoduje s 013.stat + +Nahradm pole $struktura[$i] polem $anot->[$i]{rodic_vzor}. Poloka rodic_vzor +se pln u i v parslib.pl, take by neml vzniknout problm. Je to train anette 159. +Bohuel se zejm zacyklil. Cyklen zpsobuje $struktura[$k] na dku 441. Zatm +nevm pro a poutm train05, kde je tento dek postaru, vechny ostatn struktury +jsou pepsny pomoc anot. Je to train anette 168. + +3192325 udlost (!!!) - T 10:59 - 168.stat se od tch pedchozch li! + +Mezitm jsem zadil, aby $anot->[0]{rodic_vzor} bylo 0 stejn jako $struktura[0]. +Mlo by tm odpadnout cyklen a mon tak rozdly mezi statistikami, uvidme. +Je to train anette 172. + +3191989 udlost - T 11:07 - 172.stat se li od 013.stat. + +Li se udlosti typu LOK a RAM. "Normln" udlosti se neli. Proto nejvt +podezen pad na zmny ve funkci spocitat_lokalni_konflikty(). Krom nhrady +$struktury $anotem jsem jet zpsoval podmnku na dku 634 o $i<$#{$anot}. +Toto zpsnn te zakomentovvm a poutm train anette 174. + +3186448 udlost - T 11:00 - 174.stat se li od 013.stat i od 172.stat. + +Od 013.stat se li mn ne 172.stat. Udlosti typu LOK u jsou v podku, li +se pouze udlosti typu RAM. Na tch by sice nezleelo, protoe momentln se, +pokud vm, pi parsingu nepouvaj, ale potebuju vdt, e umm vyrobit statistiku +totonou s 013, take se pokusm opravit i je. To je train anette 175. + +3186784 udlost - T 10:49 - 175.stat se shoduje s 013.stat. + +Nahradm pole $afun[$i] polem $anot->[$i]{afun}. Kvli tomu upravuji parslib.pl, +aby pi ten vyploval afuny do @anot. Train anette 176. + +3186784 udlost - T 11:08 - 176.stat se shoduje s 013.stat. + +Nahradm pole $slova[$i] polem $anot->[$i]{slovo}. Kvli tomu upravuji parslib.pl, +aby obsah obou pol byl opravdu toton. Zatm se toti u @anot nevyploval koen +a u dnho slova se nenahrazovala velk psmena malmi. Bohuel se to zase nkde +cykl. Grrr! A zase je to v loklnch konfliktech! Je to zludn chyba, neoprvnnmi +pstupy za hranici pole @anot se toto pole natahovalo, co mlo fatln dsledky +pro cyklus, kter byl dlkou pole zen. Chybu jsem nenael, radji jsem tedy na +zatku funkce dlku pole zkoproval, pak jsem se ve vech cyklech ptal na dlku +kopie a na konci jsem kopii zkoproval zpt do pokozenho pole. Train anette 192. + +3186784 udlost - T 10:57 - 192.stat se shoduje s 013.stat. + +Po odstrann pol @struktura, @afun a @slova upravuji posledn souvisejc dky, +zejmna voln funkc, ve kterch se dve tato pole pouvala. Train anette 193. + +3186784 udlost - T 13:04 - 193.stat se shoduje s 013.stat. + +Zd se, e nyn je ji ve pipraveno k pepojen z parslib.pl na csts.pm. Provedu +tedy vlastn pepojen. Train anette 194. + +3158211 udlost - T 21:14 - 194.stat se li od 013.stat :-( + + + +27.5.2004 + +Poutm parsing nad statistikou 194. Pedpokldm, e vsledek bude hor ne nad +013. Parse anette 195. + +G 93643 - B 32387 - P 74,3 - T 27:34 + + + +31.5.2004 + +Porovnvm statistiky 013 a 194. Li se snad ve vech udlostech. Porovnvm poad +vskytu udlost v train03.pl (pouv parslib.pl) a train05.pl (pouv csts.pm). +Rozdl je v koenech koordinac. Star program m v $anot->[$koren]{uznacka} znaku +koenovho slova nebo interpunkce. Novj program tam m mnoinu znaek zddnch +od len koordinace. + +train anette 196: train03.pl se zznamem udlost +train anette 197: train05.pl se zznamem udlost +... a po anette 230 + +Zd se, e jsem konen nael vechny rozdly v hledn zddnch znaek. Poutm +nov kompletn trnink train05 (anette 231). + +3186784 udlost - T 30:31 - 231.stat m sice stejn poet udlost jako 013.stat, +ale neshoduj se! Taky velikost soubor se li: 013 m 70400220 B, 231 m 72137493 B. +Ale to by mohlo bt tm, e jsem pi ladn zmnil OSS na OSSXXX. Dm to do podku +a odstranm vechny vpisy do souboru "ud", m by se taky ml program o tetinu +urychlit. Train anette 232. + +3186784 udlost - T 20:28 - 232.stat se shoduje s 013.stat. + +Po 19 dnech se mi tedy konen podailo modernizovat kd train.pl, ani by se to +podepsalo na generovanch statistikch. Pro tuto chvli ovem rezignuju na npad, +kvli ktermu to cel zaalo, toti na zalenn modelu ntic do bnho trninku. +Jednak u nemm na takov blbosti as, jednak by to nebylo jen tak, protoe ntice +vyaduj posbrat obrovsk mnostv novch udlost, z nich lze mal clov vzorek +odfiltrovat teprve na konci, kdy u se v, kter udlost byla vidna vce ne jednou. +Tm se nkolikansobn zvyuje pamov nronost programu (z nkolika stovek MB +a na asi 2 GB) i as potebn na vpoet (asi dvakrt). + +Zakomentovvm tedy dek s "ntice::ucit()", kopruji train05.pl do train.pl, mau +vechny mezistupn trainNN.pl a potvrzuji cvs commit. Potom jet naposledy volm +kontroln "train.pl ; parse.pl" a jdu dom :-) + + + +1.6.2004 + +Oba zvren pokusy dopadly dobe. Trnink trval 10:46 minut. + +G 93709 - B 32321 - P 74,4 - T 25:31 + +Te se pokusm opravit chybu v train.pl, kterou jsem objevil pi jeho modernizaci, +ale nemohl jsem s n nic dlat, protoe bych nedostal totonou statistiku. Bohuel +nen zarueno, e opravou chyby spnost stoupne a ne naopak klesne. + +Stejn je dost divn, e lokln konflikty, kterch se ta chyba tk, se dosud podlely +na lep spnosti (protoe kdy jsem je vypnul, spnost klesla), pestoe sama +slova, kter byla pi loklnch konfliktech pevena, dopadla bdn: 1286 zlepen +proti 2137 zhorenm. Tato bilance byla zejm zvrcena nepmmi vlivy, nap. e +jin zaven uzlu v loklnm konfliktu psobilo jako prevence nkolika dalch chyb. + +train anette 235: 3192797 udlost - T 11:18 +G 93717 - B 32313 - P 74,4 - T 25:39 - parse anette 236 + +Slva, spnost neklesla, i kdy stoupla jen nepatrn. Ani bilance loklnch konflikt +se nezmnila nijak dramaticky: 1297 zlepen proti 2145 zhorenm. Cvs commit. + + + +Je na ase vrtit se ke snahm o vybudovn zsobnku stav a o vracen se v ppad +nenaplnnho valennho rmce. Naposledy jsem se o nco tmto smrem pokouel 11.5.2004. +Njak pedstava, jak jsem to chtl dlat, je popsan u 29.4.2004, ale stejn si +nejsem jist, e tahle pedstava nepadla pi konfrontaci s realitou. + +V modulu genstav.pm jsou nyn dv verze klov funkce. V provozu je zatm stle +star verze pod nzvem generovat_stavy(). Nov verze se jmenuje generovat_stavy1() +a nevrac vtznho kandidta, nbr seznam novch stav, ze kterch se a pak +mus vybrat vtz. + +anette 238: generovat_stavy() u opravdu sten generuje nov stavy, ale ty jet +nemaj vliv na vbr vtze. Jde tedy jen o potvrzovac bh, e se nic neposralo. +spnost sice zstala nedotena, ale vpoet trv skoro tyikrt dle! + +G 93717 - B 32313 - P 74,4 - T 1:36:08 + +belzebub 249: O krok dl. Z novch stav u i vybrm vtze a kontroluju, e se +shoduje s vtzem, kterho vybral star kd. Pokud ne, hod se vjimka. +-> genstav1.pm (genstav0.pm je pvodn z CVS) + +G 93717 - B 32313 - P 74,4 - T 1:22:49 + +anette 254: Vbr vtze z novch stav obohacen o lokln konflikty. Shoda se +kontroluje a potom. +-> genstav2.pm + +G 93717 - B 32313 - P 74,4 - T 1:35:12 + +Nemme sice na nov kd pevedeno cel generovn novho stavu, ale jeho podstatnou +st ano. Nyn zmnm zpsob, jakm se vsledek funkce generovat_stavy() pedv +nahoru. Dosud se vracel "max-hash", kde kandidta popisovaly hodnoty r, z, c, p +a priste. Nyn se bude vracet pole stav, jeho prvn prvek bude ten vtzn. Vtzn +kandidt u do nj bude zanesen, tj. u volajcho odpadne nsledn voln funkce +stav::pridat_zavislost(). Zatm se budou vracet stavy nalezen starm kdem. + +belzebub 262 (ve uveden) +G 93717 - B 32313 - P 74,4 - T 1:27:04 + + + +2.6.2004 + +Funkce generovat_stavy() od nynjka vrac stavy nalezen novm kdem. K tomu je +poteba, aby se i zvren manipulace se stavem (souvisejc s koordinacemi) provdla +nad novmi stavy (a to nad vemi jet ped pidnm hrany, tm se zajist kompatibilita). +Pslun kus kdu jsem pesunul do funkce stav::pridat_zavislost(). Poutm dva +vpoty, jeden jet vrac stav upraven starm kdem a akort spolh na st +pesunutou do pridat_zavislost(), druh u navc vrac stavy nalezen novm kdem. +Prvn je belzebub 263, druh anette 264. + +belzebub 263 +G 93717 - B 32313 - P 74,4 - T 1:29:30 +anette 264 +G 92693 - B 33337 - P 73,5 - T 2:10:46 + +Zd se, e anette ztrc na spnosti! Oba vstupy se li, anette obas msto +odkazu na rodie vype -1! + +Obrovsk asov nronost generovn stav mon souvis s tm, e se vechny stavy +cachuj podle strom. Vypnm ukldn stav (zakomentovvm ho). + +Vracm kd na rove 263, tj. zvren manipulace zstvaj pesunut do modulu +stav, ale vrac se pod stav zskan starm kdem. V zjmu zpehlednn kdu vyndvm +z generovat_stavy() zavovn koncov interpunkce vyrbm j samostatnou funkci +generovat_pro_koncovou_interpunkci(). + +sakura 265 +G 93717 - B 32313 - P 74,4 - T 1:34:14 + +Pidvm obdobnou funkci pro generovn druh sti koordinace. + +euler 266 +G 93717 - B 32313 - P 74,4 - T 1:59:20 + +Pidvm obdobnou funkci pro zavovn valennch zvislost. + +anette 267 +G 93717 - B 32313 - P 74,4 - T 2:08:05 + +U pidvn zvislosti do dupliktu stavu v novm kdu jsem nael kopii kdu, kter +jsem ped 263 pesouval do modulu stav. Te u by tato kopie mla bt nadbyten, +proto jsem ji smazal. + +euler 268 +G 93717 - B 32313 - P 74,4 - T 2:22:52 + +Do zvltn funkce jsem pesunul i zkladn generovn novch stav a hledn vtznho +kandidta. +-> genstav3.pm + +sakura 272 +G 93717 - B 32313 - P 74,4 - T 1:33:27 + +Zruil jsem funkce gererovat_stavy1(), vybrat_viteze() a generovat_stavy_rozskok(). +Patily k vtvi, kterou u te mu prohlsit za slepou. + +belzebub 273 +G 93717 - B 32313 - P 74,4 - T 1:24:41 + +Z novho kdu jsem odstranil nepouvanou kopii zpracovn koncov interpunkce a +valennch zvislost. + +geri 274 +G 93717 - B 32313 - P 74,4 - T 1:53:39 + +Vbr vtze mezi novmi stavy jsem pesunul pmo do funkce, ve kter seznam novch +stav vznik. Tam, kde se pvodn vybral vtz, se automaticky pedpokld, e +ho najdeme na nult pozici. +-> genstav4.pm + +anette 275 +G 93717 - B 32313 - P 74,4 - T 1:50:31 + +Do zvltn funkce jsem pesunul i voln loklnch konflikt, vetn jejich nov +verze. +-> genstav5.pm + +euler 277 +G 93717 - B 32313 - P 74,4 - T 2:03:12 + +Nov pokus vrtit z funkce generovat_stavy() pole stav dodan novm kdem. +-> genstav6.pm + +Chyba, pro to poprv nelo, je ovem mon schovan v rozebrat.pm v backtrack(), +opravil jsem ji, ale rozebrat.pm jsem nezlohoval. + +anette 279 +G 93719 - B 32311 - P 74,4 - T 1:46:02 !!! MAL ZLEPEN - JAK TO? + +Odstrauji zdvojen zpracovn loklnch konflikt. Nadle se bude pouvat pouze +voln vzan na nov kd. Parseru by se mlo trochu ulevit co do asovch nrok. + +sakura 280 +G 93719 - B 32311 - P 74,4 - T 1:40:13 !!! MAL ZLEPEN - JAK TO? + +Odstrauji tak alternativn sti kdu v hlavn sti genstavu a kontrolu, zda +nov kd produkuje tot co star. A mstn zpracovn loklnch konflikt u nevrac +hash s novm kandidtem. Nen to poteba, protoe stejn rovnou uprav pole novch +stav. +-> genstav7.pm + +belzebub 281 +G 93719 - B 32311 - P 74,4 - T 1:21:57 !!! MAL ZLEPEN - JAK TO? + +Kvli znan asov nronosti bude generovn vech pokraovacch stav voliteln +a standardn se bude generovat pouze vtzn stav. Zatm pouze vytvom pslun +vypna a vypnu ho. + +sakura 282 Alarm! Nzk spnost! +Rychle jet zkusme tot s vypnaem zapnutm. Zatek vypad rozumn, ale radji +ho nechm dobhnout do konce. + +sakura 283 +G 93719 - B 32311 - P 74,4 - T 1:37:31 !!! MAL ZLEPEN - JAK TO? + +Chyba snad opravena, poutm znova s vypnutm vypnaem. + +geri 284 +G 93717 - B 32313 - P 74,4 - T 36:35 + + + +Generovn stav je pebudovno. Jet vak nen vyeeno ukldn vygenerovanch +stav tak, aby bylo pozdji mon se k nktermu z nich vrtit. To u by se kvli +rychlosti mlo urit dlat jen u vytipovanch strom, kde na konci nen v podku +valence. + +Naposledy jsem se valenc zabval 22.4.2004, ale jinak. Pak jsem se zabval zakzanmi +peskoky sloves. 29.4.2004 jsem u psal pmo o ukldn stav a myslel jsem si, +e ho mm skoro hotov, ale nebyla to pravda. A dnes to vypad, e mm funkn +to, co se mi zdlo funkn u tenkrt. A je to cel pebudovan. + +Nikde ovem nemu najt zmnku o tom, zda u je naprogramovan poznvn, e ve +vt nen naplnn njak valenn rmec. Mlo by to bt udlan, protoe, pokud +vm, ped asem u jsem ml i statistiku, kolika vt se ten tyjtr tk. + +V modulu subkat.pm je funkce najit_nenaplnene_ramce(), kter pebr stav analzy +(nap. kvli nvrhu stromu) a odkaz na valenn slovnk a vrt 1, pokud zjist, +e ve vt existuje sloveso s nenaplnnm rmcem a materil, kterm by rmec el +naplnit. Tato funkce se momentln vol z funkce backtrack() v modulu rozebrat, +ale jej vsledek se ignoruje. + +Mlo by se udlat nsledujc: +- Jestlie byla funkce zavolna na danou vtu poprv a vrt 1, zapnout ukldn + stav a opakovat analzu vty a k tomuto bodu. Funkci ani nemusme hned znova + volat, stav by ml bt pln stejn, jen vedle bude existovat zsoba zlonch + stav. +- Obnovit vybran stav. Ideln by bylo obnovit druh nejlep pokraovn z msta, + ve kterm jsem si zazdil cestu k naplnnmu valennmu rmci, ale nevme, kter + msto to je - cestu jsme si mohli zazdt i nepmo. Proto obnovme stav, ve kterm + nejmn ztratme na vze oproti stavu, kter byl v dan chvli vybrn pvodn. +- Samozejm z vbru vynechme stavy, ke kterm se pozdji stejn dosplo normln + cestou. Mj. se tak vyhneme opakovanmu zkoumn dvojic N-A na rznch mstech + vty, kdy ve skutenosti se do analzy pohodln vely vechny. +- Musme tedy v njakm hashi evidovat vechny lesy, ze kterch u jsme dmali + pokraovac stavy. Ze zsoby stav vyloume takov, kter vychzej z ji znmho + lesa. +- I tak je nebezpe, e zsoba stav nezvladateln poroste. Musme tedy poet stav + v zsob shora omezit. Nemm jet jasno jak moc, mon by stailo na konstantn + mocninu potu slov ve vt, teba na n^2. Jde nm toti hlavn o to, aby zsobnk + nerostl exponenciln. Nejdel vta v testovacch datech m asi 100 slov, n^2 + by tedy bylo 10000. +- Poet stav ze zsobnku, kter skuten vyzkoume, by ml bt jet ni, abychom + se vsledku nkdy dokali. Navrhuji namtkou zkusit 50 nvrat z konce, pokud + se dve nenajde zaplnn valenn rmec. + - Tm se tak brnm "zacyklen" v ppad, e vta ve skutenosti nem dost + materilu do rmc, ale nae primitivn metoda to nezjistila, nap. kdy je + ve vt jeden akuzativ, ale 2 slovesa, kter by ho chtla. Ze zacyklen by se + sice teoreticky vyklouzlo vyzkouenm vech monch stav, ale jejich poet + je v praxi nutn povaovat za blzk nekonenu. +- Pokud i po "valennm backtrackingu" zstane nkter rmec nenaplnn, mli bychom + se vrtit k vsledku, kter jsme navrhovali jako prvn, protoe pozdjmi pravami + jsme pravdpodobn pokazili dal vci. + - Lep vak bude otestovat, jak to dopad v praxi, zda teba jeden nvrat v prmru + nepinese njak uitek. + + + +4.6.2004 + +Upravuji rozebrat.pm tak, aby se standardn pracovalo bez ukldn zlonch stav, +ale v moment, kdy se na konci najde nenaplnn (a naplniteln) slovesn rmec, +se cel rozbor zopakuje s ukldnm stav. Zatm se s nimi nic nedl. Ovem pozor, +nejsp se nedl vbec nic navc, protoe jsem zapomnl vynulovat vchoz stav, +take strom je ihned hotov. + +G 93717 - B 32313 - P 74,4 - T 22:01 - belzebub 285 + +Oprava. U resetuju stav ped novou analzou. + +G 93717 - B 32313 - P 74,4 - T 22:31 - belzebub 286 + + + +7.6.2004 + +Opravil jsem funkci subkat::najit_nenaplnene_ramce(), nyn snad vrac to, co m. + +G 93719 - B 32311 - P 74,4 - T 1:51:54 - anette 305 + +Byla tam chyba. Po nalezen prvn vty s nenaplnnm rmcem se u pepotvaly +vechny. + +G 93718 - B 32312 - P 74,4 - T 1:28:15 - anette 307 :-( + + + +10.6.2004 + +Poprv probhla cel analza se zapnutm vracenm se pro valenn doplnn. Neoekval +jsem nijak pevratn vsledky, ale zatm se vsledek zcela shoduje s vsledkem +analzy, pi n byla dotyn vlastnost vypnuta, co je podezel. + +G 93718 - B 32312 - P 74,4 - T 1:31:59 - freki 312 + +Poutm to cel jet jednou, ale pidvm statistiku, v kolika vtch k nvratu +dolo, ppadn ke kolika nvratm dolo a kolikrt to vbec vedlo k njak zmn +(zatm zjevn nikdy). + +Opraveno nkolik chyb, te u, zd se, backtracking funguje, akort v nm jet +chyb restrikce na poet stav, take hroz, e bu "nikdy" neskon, nebo skon +chybou pro nedostatek pamti. Pokusn bh na vt 6 nasbral 42000 stav, pak jsem +ho utnul, protoe byl putn interaktivn do more a neml jsem na nj as. Chtlo +by to pi vybrn nvratovho stavu posoudit, zda v tomto stavu jet je ance +zaplnit njakou nezaplnnou valenci. Jinak ho rovnou oznait za zpracovan. + +freki 335 ... Podle oekvn hned prvn backtracking vyhoel na nedostatku pamti +(nageneroval pes 59000 stav, zpracoval jich asi 4000 a spoteboval pes 2 GB). + + + +11.6.2004 + +Potebujeme seznam slov, kter ve vt pedstavuj rezervu pro naplovn rmc. +Jsou to slova, kter spluj valenn podmnky toho kterho slovesa, ale tak je +jet dn sloveso neangaovalo (valenn; mohou vak teba neprvem viset na +modlnm slovesu). Abychom takov seznam zskali, musme upravit funkci, kter +zatm pouze zjiuje, zda lze uspokojit neuspokojen poadavky, ale m na vc. + + + +14.-18.6.2004 + +Pracuju na modulu subkat.pm, aby dokzal ct, kter vazby v navrhovan analze +chyb a kter pro jejich naplnn nelze vyut. Vytvoil jsem funkci obohatit_pole_deti(), +kter mi umon seadit dti slovesa podle pravdpodobnosti, e jde o argumenty. +V ptek 18.6.2004 v 18:29 jsem to konen dopsal, te pijde ladn. + + + +7.7.2004 + +Po dovolen poutm parse.pl. Nezaal se vracet u u vty 6, ale a u vty 17. +Ani tady se ale nezd, e by to mlo nkdy skonit. Oprava: Stav, ve kterm nen +voln njak nadjn uzel (tj. takov, kter by mohl zaplnit valenci), se rovnou +ozna za zpracovan. Vpoet konverguje sice o nco rychleji, doopravdy zpracovanch +je te asi 16000 uzl, ale stejn je to nenosn dlouh a stejn to nakonec skon +na nedostatku pamti. Pjdeme tedy jet o krok dl. Budeme hledat stavy, kde je +nadjn uzel u rovnou pipojen ke slovesu, kter jeho pomoc potebuje. Budeme +ignorovat fakt, e nkter prchody odepisujeme dve, ne mohlo bt pipojen +vbec povoleno. Jestlie u nkterho nadjnho uzlu vyzkoume vechna jeho pipojen +ke vem hledajcm slovesm a nepome to, pestaneme dan uzel povaovat za nadji. +Potebujeme vdt, pro kter sloveso je kter uzel nadj. + +Zmna. Nebudeme si komplikovat evidenci tm, pro jak sloveso je jak uzel nadj. +Prost dovolme pokraovn jen ze stav tsn po zaven nkterho nadjnho +uzlu. Prvn spch: vta 17 je prvn, kterou backtracking proel spn (tj. +podailo se mu valence zaplnit)! Bylo nasbrno 11295 stav, z toho jen 407 bylo +na konci ve front nezpracovanch. + +I te bohuel hroz krach vpotu z dvodu nedostatku pamti. Zpracovan stavy +by se mly ihned po zpracovn (nebo zavren) vyprazdovat a na pznak {zpracovano}. +Byla by s tm ale spojena dal asov reie a navc se obvm, zda je to bezpen, +tj. zda opravdu nikde nesahm na jin poloky zpracovanch stav. + +Zatm se zd, e vpoet by mohl mt anci na dobhnut, i kdy i tak bude trvat +dov dle ne normln vpoty. + +geri 362 +Vpoet umle zastaven na vt, kde nejsp neexistuje optimln zaplnn rmc. +V okamiku zastaven ml proces alokovno 2,3 GB pamti, nageneroval 101193 stav, +z toho 4017 zbvalo zpracovat (avak poet nezpracovanch stle pomalu rostl). + +Krom vyprazdovn stav bych asi ml omezit celkov poet generovanch stav (teba +na 50000?) a celkov poet nvrat (500?). Zatm zavdm vyprazdovn stav a +omezen potu nvrat na 500. + +geri 363 - Nakonec tak Segmentation fault. + +Omezuji poet nvrat na 100. + +geri 364 + + + +13.7.2004, Kolna + +Pi psan disertace narm na problm vztanch vt a toho, pro se pravidlo +pro n uren uplatn tak mlokrt. + +Kolikrt se zkoum, zda jde o sprvnou zvislost typu "kter"? 1160-krt. +Ve vech tchto ppadech u je skuten ptomno zjmeno "kter", ale jet +nen ovena shoda. Pes nkter zjmena se tak zkou natahovat cel ada +zvislost. Mla by se chytat i zjmena visc pes pedloku, ale nemm oveno, +e to funguje, bhem vpotu jsem nic takovho nevidl. + +Na konci vpotu u se pekvapiv neobjevuje statistika spnosti tohoto pravidla, +take nemm podle eho ovit, jak to je. V testovacch datech je celkem 801 vskyt +tvar zjmena "kter". 48 z nich vis pes pedloku. + +Ve 483 ppadech se skuten pravidlo chytlo. Z toho 389-krt pravidlo zabralo +sprvn, spnost je tedy 80,5 %. + + + +16.7.2004 + +Kapitola o plodnosti uzl. Petrnovat a znova pustit parser, jednak jako kontrolu, +e ve ije, jednak pi trnovn pidat udlost ZPL - znakov plodnost. Nap. +"ZPL N7 2 10" znamen, e byl desetkrt zaznamenn ppad, kdy uzel se znakou +N7 ml dv dti. + +geri 367 - 3 448 405 udlost - 76 MB - T 11:08 +geri 369 - parse.pl nad 367.stat, je to podezel, asi nebude spnost takov, +jak m bt. Tak se mi vpoet zd pomal. Skonilo to po 767 vtch! +G 15500 - B 5391 - P 74,2 - T 6:22 +Aha! Zstal zapnut filtr, kter propustil pouze vty obsahujc zjmeno "kter"! +Vypnm, poutm znova. + +G 93785 - B 32245 - P 74,4 - T 22:12 - geri 370 + +Pekvapen. Po vypnut valence1 se spnost neekan zlepila o 67 zvislost +oproti nejlepmu zaznamenanmu stavu ped jejm zapnutm. Potvrzuji do CVS (kam +souasn pidvm modul plodnost.pm). + +Zkoum "typickou plodnost" (TFM). Pravdpodobnost i etnost zvislosti se nsob +pravdpodobnost, e uzel bude mt dal dt. Tato pravdpodobnost m ovem pouze +ti hodnoty. 0, pokud kvta dt u byla naplnna i pekroena. 1, pokud jet +nebyla dosaena. A 0,5, pokud uzel neupednostuje jednoznan konkrtn poet +dt (tj. nen pravda, e dotyn m-znaka byla vidt alespo 100, a z toho alespo +v 80 % s danm potem dt). + +G 93039 - P 73,8 % (geri 375) + +Zkoum "hldn kvty dt" (QFM). Plodnostn pravdpodobnost nyn nabv pouze +hodnot 0 a 1. Nula je pro uzly, kter jednoznan preferuj uritou kvtu, a t +u doshly nebo ji dokonce pekroily. Pro vechny ostatn je jednika. + +G 93113 - P 73,9 % (geri 377) + + + +17.7.2004 + +Implementuji plnou plodnost (FFM). Dv varianty: 3 a vce dt se bu povauje +za jedin stav, nebo se pro kadou znaku zohleduj vechny poty dt, se ktermi +byla vidna. Pokud se 3 a vce dt eviduje najednou, dostane uzel, kter u m +3 dti, automaticky 0.5. Pozor, opraven potn pravdpodobnosti oproti Modelu Jedna: kdy +chce uzel bu 0 nebo 2 dti, ale rozhodn ne 1, a u jedno dostal, m velmi vysokou +pravdpodobnost, e dostane i druh! + +G 93677 - P 74,3 % (geri 378) + +Jet druh varianta - i velk poty dt se potaj samostatn. + +G 90640 - P 71,9 % (geri 380) + + + +Vzdlenost. Krom standardnho zohledovn sousedstv a ppadnho potu intervenujcch +rek se jet pravdpodobnost a etnost zvislosti dl vzdlenost obou uzl. +inm tak na radu Tome Holana, ktermu to pomohlo. + +G 93845 - P 74,5 % - T 22:34 (geri 381) + +Nov rekord! CVS commit. + + + +19.7.2004 + +Vera jsem zkoumal vskyt neprojektivity (pomoc ../neproj/neproj.pl) ve vstupech +jednotlivch parser. Zjistil jsem, e u mne se vyskytly veho vudy dv (kvli +modelu n-tic, jinak by nebyly dn), u Tomovch parser kolem 200 (u jednoho a +1500) a u Zdekova pes 2000 (to u odpovd jejich skutenmu potu v testovacch +datech). + +Souasn m zaskoilo zjitn, e jak Tom, tak Zdenk si nedlaj hlavu s tm, +zda jimi zplozen struktura je strom! + +Dnes budu pidvat neprojektivity do svho parseru. Zanm sbrem rematiztor +pro typ RHEM-PREP-cokoli. Kvli zachovn statistickho pstupu se chci mnoinu +rematiztor nauit z trnovacch dat, nepdm se proto po seznamu, kter urit +maj anottoi treebanku. + +Budu tak muset zjistit, zda se nkter rematiztory vyskytuj v datech v podobn +konstelaci, ani by byly zaveny neprojektivn na uzel za pedlokou. + +Bohuel se to stv pomrn asto. 48 rematiztor se vyskytlo aspo jednou jako +rematiztor a aspo v 50% pevauje jejich zaven na uzel za pedlokou nad jinmi +zavenmi; obvykl podl je vak jen mezi 60 a 70%. + +Dv monosti: 1) natvrdo pipojovat rematiztory za pedloky. Vzhledem k ve +uveden statistice by to nemlo mt moc velk spch. 2) pi zmeren rematiztoru +pouze udlit vjimku ze zkazu neprojektivnch hran. Model rozhodne, zda bude vjimka +vyuita. + +geri 383: pouze povolit, ale nevnucovat +G 94054 - P 74,6 - T 23:19 - Nov rekord! + +Chtlo by to zefektivnit a lpe spravovat (voliteln zapnn v konfiguraci), ale +to te odkldm. Tak, jak to je, pidvm neproj.pm do cvs + commit. + +Infinitivy: jestlie infinitiv vis na svm levm sousedovi, vem uzlm, kter +maj povoleno zleva viset na tomto sousedovi, povolit tak viset na infinitivu. + +geri 384 +G 94074 - P 74,6 - T 23:17 - Nov rekord! + +Li a vak: pouze povolme jejich neprojektivn peskakovn, zbytek a u si vye +statistika. + +geri 392 +G 94080 - P 74,6 - T 23:57 - Nov rekord, i kdy u pomrn zanedbateln. cvs commit + + + +20.7.2004 + +Zan masivn testovn za elem zskn zvrench sel do disertace. +Vypnm podmnnou pravdpodobnost, msto n absolutn etnost zvislosti. + +geri 394 +G 90684 - P 72,0 - T 23:11 + +Pidvm alternativn verzi funkce zjistit_povol(), kter vedle komponentovho +budovn stromu umon tak budovn shora dol. Pozor, zatm je dsledkem vypnut +kontroly projektivity, take vsledek bude asi stran. +geri 395 +Zd se, e se vpoet zacyklil u vty 14. Parser asi bohuel pot s tm, e zvislosti +jsou povolovny uritm zpsobem, a te nemm as ho uit nco jinho. Zkusm jet +funkci obohatit o kontrolu projektivity a kdy to nepome, tak to zabalm. Ne, +balm to hned. Kontrola, e funguje pvodn nastaven (abscetnost=0, komponentove=1). +geri 400 +G 93845 - P 74,5 - T 23:30 +Jet zstaly vypnut neprojektivity. Pi tto pleitosti je trochu umravnm +a jejich zapnn pesunu do parser.ini (zatm bylo nutn ho zakomentovat v genstav.pm). +Zrum model neproj.pm (i z CVS) a ve pesunu do povol.pm. +geri 407 +G 94080 - P 74,6 - T 25:39 OK. + +Redukce znaek. Natrnovat model neredukovanch znaek. Tak se pokusit o redukci +zpsobem pouvanm v Modelu Jedna - nkde mm piblin peklad vech znaek. +freki 401 - trnuje s vypnutou redukc znaek +3 970 666 udlost - T 11:40 +freki 408 - parse.pl nad 401 (i te je pochopiteln vypnut redukce) +G 88351 - P 70,1 - T 26:37 + +Natrnovat model znaek redukovanch baltimorskou metodou. +freki 410 - trnuje s baltimorskou redukc +3 659 134 udlost - T 11:13 +freki 411 - parse.pl nad 410 (zapnuta baltimorsk redukce) +G 89535 - P 71,0 - T 26:02 + +Rzn mra lexikalizace (ne t selektivn, ale lambda). +Opt zapnout souasnou redukci znaek a pout statistiku 374.stat. +geri 412 - parse.pl: ls = 0.734375 +G 94080 - P 74,6 - T 25:45 +freki 413 - parse.pl: ls = 0 +G 93090 - P 73,9 - T 40:21 +freki 414 - parse.pl: ls = 1 +G 69142 - P 54,9 - T 39:27 + +Selektivn lexikalizace. +geri 416 - train.pl: vypnut selektivn lexikalizace +3 061 758 udlost - T 10:34 +geri 418 - parse.pl nad 416.stat +G 91038 - P 72,2 - T 24:14 + +Jet potebujeme vypnat selektivn lexikalizaci jednotlivch slovnch druh +zvlṻ. +train geri 420 - bez pedloek - T 11:40 + parse geri 426 + G 93904 - P 74,5 - T 31:33 +train geri 421 - bez podadcch spojek - T 18:47 + parse geri 427 + G 93604 - P 74,3 - T 31:38 +train geri 422 - bez zjmen - T 18:32 + parse freki 428 + G 93668 - P 74,3 - T 35:07 +train freki 423 - bez vybranch pslovc - T 17:17 + parse freki 429 + G 93487 - P 74,2 - T 34:42 +train geri 432 - bez slovesa bt - 3365461 udlost - T 11:01 + parse geri 433 + G 92235 - P 73,2 - T 24:40 +train freki 425 - bez pseudovalence (tj. selektivn lexikalizace sloves) - T 17:12 + parse drak 431 + G 93987 - P 74,6 - T 24:05 + + + +21.7.2004 + +Dal problm s pseudovalenc je na stran 52. Jsou tam spnosti men nejen +dvno, ale hlavn jen na zvislostech na slovesech (Sb|Obj|AuxT|Pnom|Adv). Vera +jsem zjistil, e na celkov spnosti se vypnut pseudovalence na prvnm desetinnm +mst vbec neprojev (by mal rozdl v potu sprvnch zvislost existuje). + +S vypnutou pseudovalenc (431.vysledky) to bylo 84,6 %. +Se zapnutou pseudovalenc (412.vysledky) to bylo 84,9 %. + +Opt potm normln spnost na vech uzlech. Vyhodnocen pseudovalence u mme +ovme ji ale i v kombinaci s valenc0. Valenci0 tak vyhodnotme samostatn. +Valenci1 u kvli asovm nrokm nebudeme znova testovat a zveejnme slo zjitn +poslednm pokusem. Stejn nebylo na celch datech. + +Pro pseudoval=0 pout statistiku 425, pro pseudoval=1 pout 374. + +pseudoval=0, valence=0 ... u mme (bh 431 vera): G 93987 - P 74,6 - T 24:05 freki +pseudoval=0, valence=1 ... geri 434: G 91866 - P 72,9 - T 24:51 geri +pseudoval=1, valence=0 ... freki 435: G 91882 - P 72,9 - T 25:11 freki +pseudoval=1, valence=1 ... drak 436: G 91882 - P 72,9 - T 24:46 drak +Toton vsledek na poslednch dvou dcch mi byl podezel, nkolikrt jsem kontroloval +zznam nastaven, ale opravdu to bylo putno sprvn. A NA TO, E BYLO VYPNUTO SELEX BT +OPRAVA: +pseudoval=0, valence=1 ... geri 437: G 93987 - P 74,6 - T 24:21 geri +pseudoval=1, valence=0 ... freki 439: G 94080 - P 74,6 - T 24:37 freki +pseudoval=1, valence=1 ... drak 438: G 94080 - P 74,6 - T 25:17 drak +Te u vsledky nekoliduj s dvjmi zjitnmi, ale je podezel, e parametr +$konfig{valence} nem na vsledky dn vliv. Ukazuje se, e pi pestavb genstav.pm +se pln vytratila podmnka, kter se na tento parametr dv. Podmnku vracm a +dky s valence=0 testuju znova, mon se budeme divit. +pseudoval=0, valence=0 ... te u nemus odpovdat verejmu 431; geri 440: G 93987 P 74,6 +pseudoval=1, valence=0 ... freki 441: G 94080 P 74,6 +Inu, valence zejm trv na svm, e celkov vsledek nijak ovlivovat nebude. + +rlivost. Poutm trnink, kter si u OZZ (a u nieho jinho!) vm, zda na danm +rodii vis jet jin uzel se stejnou znakou jako posuzovan dt. +train geri 442 - 3449293 udlost - T 11:29 +parse geri 444 - G 81075 - P 64,3 - T 24:57 + +rlivost opt vypnuta, pro jistotu poutm kontroln bh, kter m zjistit, zda +opt dosahujeme maximln znm spnosti G 94080 - P 74,6. +geri 445 - G 94080 - P 74,6 - T 24:21 +Potvrzeno. + +Zkaz peskakovn sloves (definovan souborem zakazy_preskoceni.txt). Vypnm ho +pznakem nepreskocv=0. Petrnovn nen nutn. +freki 446 - G 93914 - P 74,5 - T 22:27 + +Plodnost se zatm zapnala a vypnala natvrdo v kdu. Pedlvm ji tak, aby se +dala zapnout v konfiguranm souboru a navc aby se dalo vybrat ze t pstup +popsanch v disertaci (FFM, TFM a QFM). Statistika plodnosti nen pmou soust +hlavn statistiky, ale te se ze zvltnho souboru plodnost.txt. Proto pepna +umisuju mezi parametry, jejich zmna nevyaduje petrnovn. + +ffm - geri 447 - G 93852 - P 74,5 - T 25:26 +tfm - freki 448 - G 93292 - P 74,0 - T 24:27 +qfm - drak 449 - G 93315 - P 74,0 - T 24:22 +nic - sakura 450 - G 94080 - P 74,6 - T 31:27 + +Experimenty se vzdlenost. +1: Vzdlenost v dn podob nen parametrem pro vhu zvislosti. +2: Parametrem je, zda dc a zvisl spolu soused (standard Modelu Jedna). +3: Tet stav - vskyt rky mezi dcm a zvislm. Nyn je parametrem B/D/,. +4: Jako 3, ale vha zvislosti se navc dl vzdlenost mezi obma uzly. +Nejdve je teba natrnovat modely pro 1 a 2. Pro 3 u natrnovno mme a 4 trnovn nevyaduje. + +1: train geri 451 - 3283615 udlost - T 10:42 + parse geri 456 - G 91200 - P 72,4 - T 24:08 +2: train freki 452 - 3418129 udlost - T 10:41 + parse freki 457 - G 91926 - P 72,9 - T 24:32 +3: 374.stat + parse drak 453 - G 94032 - P 74,6 - T 23:38 +4: 374.stat + znm vsledek - G 94080 - P 74,6 + +Koordinace. Nejdve kontroln bh, e je opt spnost na maximu. +parse geri 458 - G 94080 - P 74,6 - T 24:34 +Te prost zkusm koordinace=0 v parser.ini. Je tam napsno, e se mus petrnovat, +to petrnujem. +train freki 459 - 3390516 udlost - T 23:02 +parse freki 460 - G 92267 - P 73,2 - T 22:35 + + + +22.7.2004 + +Krtk vty. Zatm se nedaj vypnat a zapnat. Zaadm pepna do sekce nevyadujc +petrnovn, protoe pi petrnovn se potebn statistiky sbraj kadopdn. +geri 461 - G 93838 - P 74,5 + +N-tice. Podobn jako krtk vty dosud nebyly voliteln, te budou. +geri 462 - G 92556 - P 73,4 +Chyba, souasn zstaly vypnut i krtk vty! Znova! +geri 463 - G 93054 - P 73,8 + +Pevn omezen. + +Pipojovn koncov interpunkce ke koeni. +freki 464 - G 91339 - 72,5 + +Zvislosti na koeni nerozliuj smr, ale zato kontroluj ptomnost slovesa ve +vt. Pozor, pi zmn tohoto pepnae se mus petrnovat! +train geri 465 - 3445058 udlost +parse geri 466 - G 94027 - P 74,6 + + + +23.7.2004 + +Plodnost koenu nesm bt vt ne 2. +parse geri 468 - G 93725 - P 74,4 + +Prv jedna vnj zvislost do seku mezi dvma rkami. +parse geri 469 - G 93545 - P 74,2 + +Na rce nesm viset nic. +parse geri 470 - G 93923 - P 74,5 + +Zkaz peskakovn bezdtnch pedloek. +parse geri 471 - G 94024 - P 74,6 + +Zkaz peskakovn podstatnch jmen v genitivu. +parse geri 472 - G 94112 - P 74,7 +Wow! Take pestoe to kdysi pomhalo, te je naopak lep to vypnout! +cvs commit +Pedchzejc pokusy u pepotvat nebudu, akort vude, kde v disertaci mluvm +o zvren spnosti, zmnm 74,6 na 74,7. + +Zvltn zpracovn vztanch vt se zjmenem "kter". +parse geri 473 - G 93967 - P 74,6 +V d-test datech se 801-krt vyskytuje tvar zjmena "kter". +1160-krt se parser ptal na nkterou zvislost, kter pes "kter" mla vst (na nkter +se mohl ptt opakovan a pes nkter vskyty "kter" mohlo vst nkolik potencilnch +zvislost, zejmna protoe ped zjmenem leelo nkolik podstatnch jmen. 483-krt +se nakonec pravidlo aplikovalo a zvislost byla pijata; z toho 389x sprvn. To +dv spnost pravidla 80,5 %. + +Vypnut vech vypnatelnch vlastnost Modelu Dva najednou: +vztaz = 0 +nepreskocg = 0 (m bt nyn vypnuto i ve finln verzi) +predlozky = 0 +carka_je_list = 0 +mezicarkove_useky = 0 +koren_2_deti = 0 +pod_korenem_sloveso_misto_smeru = 0 +koncint = 0 +----- tady kon pevn omezen +ntice = 0 +krvety = 0 +koordinace = 0 +vzdalenost = 0 +vzdalenost_delitel = 0 +... plodnost zstv vypnut stejn jako ve finln verzi +nepreskocv = 0 +selex = 0 +pseudoval = 0 +upravovat_mzn = 0 (msto 2) +abscetnost = 1 (msto 0) +neselektivn lexikalizace zstala na lambda = 0.734375 + +Musme petrnovat, pak teprv testy! +train geri 474 - 3459989 udlost - T 9:10 +parse geri 475 - G 71160 - P 56,5 - T 13:29 (!) + +Te zase ve zapnout, a na pevn omezen. +I tak se to mus petrnovat a neme se pout 374.stat, protoe za pevn omezen +povauju i to, e se pi trnovn pod koenem msto smru kouk na ptomnost slovesa. +train geri 477 - 3445058 udlost - T 11:03 +parse geri 478 - G 91177 - P 72,3 - T 21:57 + + + +Rychle ovit, e po optovnm zapnut vech spnch vylepen a pepnut na 374.stat +se spnost vrt k rekordn hodnot. +parse geri 479 + +dtest data 0.5 (bez petrnovn na 0.5!) +parse geri 484 - G 46505 - B 17213 - P 73,0 +etest data 0.5 (bez petrnovn na 0.5!) +parse geri 485 - G 47653 - B 17737 - P 72,9 + +Petrnovvm podle trnovacch dat z Baltimoru. +train geri 486 - 1218787 udlost - T 2:45 +parse geri 488 dtest - G 45299 - P 71,1 +parse geri 487 etest - G 46504 - P 71,1 + +ETEST 1.0 (s maximlnm vkonem a 374.stat)!!! +A 125713 - G 94121 - B 31592 - P 74,9 + + + +24.7.2004 + +Natrnovat na rznch zdrojch morfologie. Bohuel se to nebude tkat vedlejch +statistik, jako jsou n-tice, krtk vty i zkazy peskakovn sloves. Nemm u +as, abych to dothl do konce. Pokud se ale potvrd, e nejlpe to funguje na +statistice z taggeru, nebude dn dotahovn do konce nutn. + +human + train geri 491 - 3397730 udlost - T 10:56 +tagger a + u hotovo (374) - 3448365 udlost +tagger b + train geri 492 - 5238005 udlost - T 11:27 +dictionary + train freki 493 - 6394663 udlost - T 27:12 + +Je docela divn, o kolik vce udlost se objev pi pouit taggeru b oproti taggeru +a. Te probhne parsing. Nejdv kad na svm, "human" vynechvme, protoe bychom +ho museli testovat na jinch datech. + +tagger a - tagger a (374.stat) + u hotovo (472): G 94112 - P 74,7 +tagger b - tagger b (492.stat) + geri 495 +dictionary - dictionary (493.stat) + freki 496 + +human - tagger a +human - tagger b + +Parsing nad 493.stat (nezjednoznann morfologie) spadl na nedostatku pamti. +Nejdv ze statistiky vyhzm vci, kter se u lta trnuj jen ze zvdavosti, +konkrtn udlosti typu RAM, OSZ, OZS, ZZZ, ZSZ, ZZS, ZSS. Tm se statistika zmen, +potom se ale asi stejn bude muset zkoumat, co je pi vmn morfologickho zdroje +patn. + +MM ad train geri 497.stat - 2875424 udlost (97 MB) - T 20:14 +MD a parse geri 505 - G 91949 - P 73,0 + +MM ad parse geri +Nkde se ztrc pam! Po naten statistiky do parseru m proces jen 400 MB, +ale pak se klidn vyplh na 2 GB a spadne! + + + +1.8.2004 + +Peprogramoval jsem rozepisovn alternativ jinm zpsobem a pestala se ztrcet +pam. + +MM ad train i parse - G 85754 - P 68,0 - T 47:22 - geri 524 + +Problm je, e pi trnovn se zejm alternativy rozepisovaly patn. Proto upravm +train.pl, aby pouval tut funkci, a pustm trnink jet jednou. + +train geri 526 - 2872481 udlost (96 MB) - T 33:20 +parse geri 527 - G 85460 - P 67,8 - T 47:29 + +Druh verze: nejednoznan morfologie, ale bez rozepisovn alternativ (tj. etzec +znaek se povauje za jedinou znaku). + +train geri 528 - 1774510 udlost (55 MB) - T 9:09 +parse geri 529 - G 89553 - P 71,1 - T 21:23 + +DOSUD ZJITNO: +526+527: G 85460 - P 67,8 - T 47:29 - oba MM ad rozepsan +528+529: G 89553 - P 71,1 - T 21:23 - oba MM ad nerozepsan +374+472: G 94112 - P 74,7 - T 24:21 - oba MD a + +Te znova natrnujeme podle MD b. + +train geri 530 - 2379504 udlost (56 MB) - T 7:41 +parse geri 531 + +Prbn spnost je opt dsiv nzk, jak to? +Regulrn vraz pro chytal pln nesmysly. Je nutn petrnovat. + +train geri 534 - 1381009 udlost (34 MB) - T 7:30 +parse geri 535 - G 93920 - P 74,5 - T 23:46 + +Nov nastudovn MD a: + +train geri 536 - 1379879 udlost (33 MB) - T 7:44 +parse geri 537 - G 93840 - P 74,5 - T 22:35 +GRRR!!! +Jak to, e to nen toton s 374+472? +Zapnm rozepisovn alternativ (mon se stopov vyskytlo i u MD?), pouvm 374.stat. +parse geri 538 - G 93721 - P 74,4 - T 40:47 + + + +2.8.2004 + +Take znova. Zrume souasn zpsob rozepisovn, zapneme ten pvodn (i kdy +si myslm, e je chybn). A pouijeme 374.stat a MD a. + +parse geri 539 - G 93721 - P 74,4 :-(( - T 26:11 + +Bez ohledu na vsledek ptrn po pvodnm optimu budu vyplovat ostatn buky +tabulky. Jejich odchylky od hodnot, kter bych dostal, kdybych znal a odstranil +pinu problmu s optimem, by pravdpodobn byly zanedbateln. + +MM ad + MD a, tj. nastavit zdroj na MD a a statistiku na 526.stat. Rozepisovn +alternativ opt vypnout kvli asovm nrokm. + +parse freki 541 - G 91866 - P 72,9 - T 26:43 + +MM ad + MD b, tj. nastavit zdroj na MD b a statistiku na 526.stat. Rozepisovn +alternativ vypnout kvli asovm nrokm. + +parse geri 542 - G 91964 - P 73,0 - T 29:42 + +MD a + MM ad, tj. nastavit zdroj na MM ad, zapnout rozepisovn alternativ, pepnout +na statistiku 536.stat. + +parse freki 543 - G 87236 - P 69,2 - T 48:52 + +MD a + MD b, tj. nastavit zdroj na MD b, vypnout rozepisovn alternativ, pepnout +na statistiku 536.stat. + +parse belzebub 544 - G 93900 - P 74,5 - T 24:45 + +MD b + MM ad, tj. nastavit zdroj na MM ad, zapnout rozepisovn alternativ, pepnout +na statistiku 534.stat. + +parse drak 545 - G 87237 - P 69,2 - T 46:50 + +MD b + MD a, tj. nastavit zdroj na MD a, vypnout rozepisovn alternativ, pepnout +na statistiku 534.stat. + +parse geri 546 - G 93743 - 74,4 - T 29:04 + +human: Nejdve je poteba natrnovat statistiku. + +train loki 547 - 1354520 udlost (33 MB) - T 13:31 + +human + MM ad, tj. nastavit zdroj na MM ad, zapnout rozepisovn alternativ, pepnout +na statistiku 547.stat. + +parse geri 548 - G 87239 - P 69,2 - T 46:39 + +human + MD a, tj. nastavit zdroj na MD a, vypnout rozepisovn alternativ, pepnout +na statistiku 547.stat. + +parse geri 549 - G 93188 - P 73,9 - T 23:41 + +human + MD b, tj. nastavit zdroj na MD b, vypnout rozepisovn alternativ, pepnout +na statistiku 547.stat. + +parse freki 550 - G 93296 - P 74,0 - T 23:12 + +DOSUD ZJITNO: + +MM ne + MM ne = 528+529: G 89553 - P 71,1 - T 21:23 (ne znamen nerozepsan) +MM ad + MM ad = 526+527: G 85460 - P 67,8 - T 47:29 +MM ad + MD a = 526+541: G 91866 - P 72,9 - T 26:43 +MM ad + MD b = 526+542: G 91964 - P 73,0 - T 29:42 +MD a + MM ad = 536+543: G 87236 - P 69,2 - T 48:52 +MD a + MD a = 374+472: G 94112 - P 74,7 - T 24:21 (mlo by bt tot jako 536+537, ale nen, chybu neznm) +MD a + MD b = 536+544: G 93900 - P 74,5 - T 24:45 +MD b + MM ad = 534+545: G 87237 - P 69,2 - T 46:50 +MD b + MD a = 534+546: G 93743 - P 74,4 - T 29:04 +MD b + MD b = 534+535: G 93920 - P 74,5 - T 23:46 +human + MM ad = 547+548: G 87239 - P 69,2 - T 46:39 +human + MD a = 547+549: G 93188 - P 73,9 - T 23:41 +human + MD b = 547+550: G 93296 - P 74,0 - T 23:12 + + + +3.8.2004 + +cvs tag rel-3-4, aby se dala snadno rozbalit dosud nejlep verze parseru. Souasn +verze sice na rozdl od n um lpe rozepisovat alternativy, ale zatm je to za +cenu poklesu spnosti. Na hledn chyby te nemm as, musm ho odloit. + +Souasnou verzi kopruju do zlon sloky a pes ni rozbaluju rel-3-4. Poutm +pokusn bh, kter m ovit, e jsme se opravdu vrtili k spnosti 74,7 % (G 94112). + +parse geri 551 - G 94112 - P 74,7 - T 24:53 + +Pro jistotu do CVS ukldm i novj verzi (sprvn rozepisovn, ni spnost). +Ihned ji tak taguji, aby se dala samostatn rozbalit. +cvs commit +cvs tag rel-3-4b + +cvs commit, aby se uchovala verze, kter um sprvn rozepisovat alternativy. Pak +se vak musm vrtit k optimln verzi co do spnosti, abych mohl pokraovat +v pokusech pro disertaci. + +Zjistit spnost na vtch, a to jak celkovou, tak na vtch jednotlivch dlek. +Upravuju parse.pl. Pidvm do nj taky jedinou zmnu, kterou mla jeho rel-3-4b +oproti rel-3-4 - v tomto ppad by toti nemla mt opravdu dn vliv na spnost. + +parse geri 552 - G 94112 - P 74,7 +7319 vt, z toho 1539 stoprocentnch, tj. vtn spnost 21,0 %. +126030 slov, z toho 10716 ve stoprocentnch vtch, tj. ven vtn spnost 32,1 %. +Podle dlky vt: +dlka - vt - sprvnch - spnost + 1 55 55 100,0 + 2 199 198 99,5 + 3 151 122 80,8 + 4 209 148 70,8 + 5 274 196 71,5 + 6 220 118 53,6 + 7 276 128 46,4 + 8 248 93 37,5 + 9 267 98 36,7 +10 313 85 27,2 +11 282 64 22,7 +12 289 50 17,3 +13 289 48 16,6 +14 297 29 9,8 +15 280 31 11,1 +16 262 16 6,1 +17 273 11 4,0 +18 275 14 5,1 +19 249 10 4,0 +20 231 6 2,6 +21 218 6 2,8 +22 198 4 2,0 +23 193 3 1,6 +24 183 2 1,1 +25 162 2 1,2 +30 101 1 1,0 +32 70 1 1,4 + +Jet zjiuju aktuln SLOVN spnost na rzn dlouhch vtch. + +parse geri 557 + +spnost ven obtnost (opt celkov i na vtch urit dlky). + +parse geri 559 +VAZENO OBTIZNOSTI: A 118711 - G 88372.7251405133 - P 0.744435858012427 +D 2 - N 99 - A 199 - G 198 - P 99.5 +D 3 - N 100 - A 302 - G 275 - P 91.2 +D 4 - N 156 - A 627 - G 553 - P 88.3 +D 5 - N 219 - A 1096 - G 978 - P 89.3 +D 6 - N 183 - A 1100 - G 926 - P 84.2 +D 7 - N 236 - A 1656 - G 1381 - P 83.4 +D 8 - N 217 - A 1736 - G 1444 - P 83.2 +D 9 - N 237 - A 2136 - G 1757 - P 82.3 +D 10 - N 281 - A 2817 - G 2276 - P 80.8 +D 11 - N 256 - A 2820 - G 2244 - P 79.6 +D 12 - N 264 - A 3179 - G 2536 - P 79.8 +D 13 - N 266 - A 3468 - G 2772 - P 79.9 +D 14 - N 275 - A 3861 - G 2993 - P 77.5 +D 15 - N 261 - A 3920 - G 3056 - P 78.0 +D 16 - N 245 - A 3930 - G 2955 - P 75.2 +D 17 - N 256 - A 4368 - G 3314 - P 75.9 +D 18 - N 259 - A 4675 - G 3573 - P 76.4 +D 19 - N 235 - A 4482 - G 3378 - P 75.4 +D 20 - N 219 - A 4389 - G 3286 - P 74.9 +D 21 - N 207 - A 4360 - G 3277 - P 75.2 +D 22 - N 189 - A 4158 - G 3000 - P 72.2 +D 23 - N 184 - A 4246 - G 3149 - P 74.2 +D 24 - N 175 - A 4209 - G 3146 - P 74.7 +D 25 - N 155 - A 3888 - G 2872 - P 73.9 +D 26 - N 147 - A 3825 - G 2769 - P 72.4 +D 27 - N 149 - A 4030 - G 2880 - P 71.5 +D 28 - N 117 - A 3294 - G 2464 - P 74.8 +D 29 - N 115 - A 3360 - G 2448 - P 72.9 +D 30 - N 97 - A 2929 - G 2100 - P 71.7 +D 31 - N 69 - A 2160 - G 1536 - P 71.1 +D 32 - N 67 - A 2170 - G 1546 - P 71.2 +D 33 - N 70 - A 2336 - G 1699 - P 72.8 +D 34 - N 57 - A 1947 - G 1345 - P 69.1 +D 35 - N 49 - A 1734 - G 1195 - P 69.0 +D 36 - N 43 - A 1575 - G 1085 - P 68.9 +D 37 - N 37 - A 1404 - G 962 - P 68.5 +D 38 - N 34 - A 1295 - G 913 - P 70.5 +D 39 - N 38 - A 1482 - G 1045 - P 70.5 +D 40 - N 36 - A 1443 - G 991 - P 68.7 +D 41 - N 24 - A 1000 - G 713 - P 71.3 +D 42 - N 23 - A 984 - G 647 - P 65.8 +D 43 - N 24 - A 1050 - G 726 - P 69.2 +D 44 - N 17 - A 774 - G 522 - P 67.6 +D 45 - N 19 - A 880 - G 606 - P 68.9 +D 46 - N 15 - A 720 - G 483 - P 67.1 +D 47 - N 12 - A 598 - G 422 - P 70.7 +D 48 - N 16 - A 799 - G 558 - P 69.9 +D 49 - N 12 - A 624 - G 429 - P 68.8 +D 50 - N 13 - A 686 - G 457 - P 66.7 +D 51 - N 9 - A 500 - G 332 - P 66.5 +D 52 - N 5 - A 306 - G 206 - P 67.6 +D 53 - N 8 - A 468 - G 301 - P 64.4 +D 54 - N 4 - A 265 - G 184 - P 69.6 +D 55 - N 2 - A 162 - G 118 - P 73.3 +D 56 - N 5 - A 330 - G 231 - P 70.2 +D 57 - N 4 - A 280 - G 125 - P 44.9 +D 58 - N 2 - A 171 - G 89 - P 52.3 +D 59 - N 0 - A 58 - G 35 - P 61.0 +D 60 - N 3 - A 236 - G 157 - P 66.7 +D 61 - N 1 - A 120 - G 67 - P 56.6 +D 62 - N 0 - A 61 - G 30 - P 50.0 +D 63 - N 2 - A 186 - G 101 - P 54.5 +D 64 - N 1 - A 126 - G 84 - P 67.2 +D 65 - N 0 - A 64 - G 29 - P 46.2 +D 66 - N 0 - A 65 - G 40 - P 62.1 +D 68 - N 1 - A 134 - G 76 - P 57.4 +D 70 - N 0 - A 69 - G 45 - P 65.7 +D 72 - N 0 - A 71 - G 41 - P 58.3 +D 73 - N 0 - A 72 - G 39 - P 54.8 +D 74 - N 0 - A 73 - G 51 - P 70.3 +D 75 - N 0 - A 74 - G 30 - P 41.3 +D 100 - N 0 - A 99 - G 49 - P 50.0 +Vpoet skonil v 17:03:52. +Program bel 00:24:22 hodin. + + + +4.8.2004 + +Zjiuju, jak bude spnost, kdy vynechm zvislosti, kter byly vidt mn +ne ptkrt (tzv. experiment 1 v disertaci). A jak bude pesnost a plnost. + +parse geri 562 + +Navc pidvm jako alternativn zvislosti, kter dosahuj alespo 90% vhy vtzn +zvislosti. Protoe to vyaduje generovat vechny stavy a bude to trvat mnohem dle, +poutm to ihned. Jet bych ml vymyslet, jak se zjist P+R obou pokus najednou. +Z asovch dvod se na to ale asi vykalu pln. + +parse geri 563 - AA 126030 - A 133500 - G 95622 - P 71,6 - R 75,9 - F 73,7 + +Poutm test, kter dod spnost rozdlenou podle vzorovch s-znaek (afun). + +parse freki 564; vsledky viz disertace, st 13.5. + +Chystm trnink na mench datech. + +1000 vt: train geri 566 + parse freki 570 - A 126030 - G 84202 - B 41828 - P 0.668110767277632 - T 33:13 +10000: train freki 567 + parse freki 571 - A 126030 - G 90130 - B 35900 - P 0.715147187177656 - T 33:05 +25000: train freki 568 + parse geri 572 - A 126030 - G 92499 - B 33531 - P 0.733944298976434 - T 38:08 +50000: train geri 569 + parse geri 573 - A 126030 - G 93623 - B 32407 - P 0.742862810441958 - T 38:35 + + + +Nyn parsing na umle zmenenm modelu (tj. pouijeme 374.stat, ale vyhzme z nj +vechny udlosti vidn N-krt). + +N<1: 3351830 ud, 574.stat, 73 MB, parse freki 579 - G 94112 - P 74,7 - T 24:42 +N<=1: 944195 ud, 575.stat, 20 MB, parse freki 580 - G 93802 - P 74,4 - T 24:19 +N<=2: 538557 ud, 576.stat, 11 MB, parse geri 581 - G 93638 - P 74,3 - T 24:27 +N<=5: 238984 ud, 577.stat, 5 MB, parse geri 582 - G 93159 - P 73,9 - T 24:14 +N<=10: 123386 ud, 578.stat, 2 MB, parse drak 583 - G 92595 - P 73,5 - T 23:19 + +Trnuju vhradn na Lidovch novinch. 865 soubor. +train geri 584, 698671 slov, pes 39900 vt, NEVYPSALA SE DN STATISTIKA! +train geri 600, 865 soubor, 39978 vt, 698671 slov, 2187990 udlost, 48 MB, T 6:00 +parse geri 601 - G 93534 - P 74.2 - T 24:30 + +Pro srovnn potebujeme trnovac sadu, ve kter bude stejn nebo tm stejn +poet vt, ale ze vech zdroj, pokud mono ve stejnm pomru, v jakm se podlej +na celch trnovacch datech. Celkem mme 73088 vt, chceme vybrat 39978 vt. +Vezmeme tedy kad (73088/39978)-t, tj. kad 1,83-t soubor. + +train freki 602, 864 soubor, 39687 vt, 679665 slov, 2171319 udlost, 48 MB, T 5:55 +parse geri 603 - G 93392 - P 74,1 - T 24:43 + +Zjistit, jak se od sebe li spnost jednotlivch blok testovacch dat o 100 +vtch. Poutm zase klasick parsing se 374.stat, akort na konci se vype zvlṻ +spnost blok. + +parse geri 605 + +Vsledky: +minimum 67,7 % +maximum 82,2 % +Prbn stav 77 % po 1000 testovacch vtch! +Pi sprvnm seazen se d najt 12 blok, jejich celkov spnost je 80,1 %. +Obdobn nejhorch 12 blok m dohromady 69,8 %. + +Tak jet posledn sada test. Trnuju s vynechnm vt obsahujcch ExD. +train geri 610 - 53594 vt - 974838 slov - ALE KURVA NEN TAM POSLEDN VTA!!! - T 8:17 +train geri 613 - 53595 vt - 974841 slov - 2837809 udlost - 63 MB - T 12:41 +parse geri 621 - A 99094 - G 75418 - P 76.1 - T 18:07 + +Trnuju s vynechnm vt obsahujcch Coord nebo Apos. +train freki 612 - T 5:56 +train geri 614 - 36261 vt - 422292 slov - 1507160 udlost - 32 MB - T 9:29 +parse geri 618 - A 41598 - G 34456 - P 82,8 + +Trnuju s vynechnm vt obsahujcch ExD, Coord nebo Apos. +train freki 611 - T 5:43 +train freki 615 - 25970 vt - 354784 slov - 1323832 udlost - 28 MB - T 5:29 +parse freki 622 - A 36116 - G 29959 - P 83,0 - T 6:07 + + + +6.8.2004 + +Potebuju nov srovnn 7 parser, kde bude za mj parser pouita jeho nejnovj +verze (G 94112 P 74,7). Nap. 552.csts. + +We cannot use standard test data because we need held-out data to learn which parser specializes in what. PDT 1.0 d-test data contain 153 files. We keep the first 76 files for testing. The remaining 77 files will be used as held-out data. lv28.csts is the 76th file. The first sentence of lv29.csts is labeled ln94207:76-p3s14 but there are no labels in vse1.csts. The sentence begins with: Celnk mi ekl: A vm ty kvtiny nikdy nezvadnou a opice a se u vs furt usmv Here begins vseb.csts (held-out data). The first part is vsea.csts (new test data). +New tests: vsea.csts contains 62677 words +ec on vsea.csts: G 53275 - P 85.0 % +mc on vsea.csts: G 52233 - P 83.3 % +z on vsea.csts: G 47729 - P 76.2 % +dz on vsea.csts: G 47335 - P 75.5 % +th(r2l) on vsea.csts: G 45331 - P 72.3 % +th(l2r) on vsea.csts: G 44063 - P 70.3 % +th(pshrt) on vsea.csts: G 39806 - P 63.5 % +all parsers: G 27817 - P 44.4 % +at least one parser: G 60255 - P 96.1 % +absolute majority or ec: G 53761 - P 85.8 % +absolute majority P+R: G 49277 - left-out 8352 - P 90.7 - R 78.6 - F 84.2 +tips: - for all parsers number of times they contribute whenever ec is wrong; - voting where ec has 3 votes, mc 2 votes, others 1 vote each. +Now the same for three parsers (ec, mc, dz). +All parsers: G 42090 - P 67.2 % +At least one parser: G 58126 - P 92.7 % +Absolute majority P+R: G 52627 - O 3890 - P 89.5 - R 84.0 - F 86.7 J +Absolute majority or ec: G 54044 - P 86.2 % + +A te vezmeme vseb.csts a zjistme trojice mzn-zv/mzn--ec/mzn--mc+dz, pi +nich m pravdu astji mc+dz ne ec (>50%). + +A 62669 (JAK TO?) - G 53821 - P 85,9 + +Dal monosti: +1. Poadovat vy spnost jednotlivch trojic (75%, 90%...) +2. Zkusit jen dvojice mzn-zv/mzn--ec. +3. Zkusit jen dvojice mzn-zv/mzn--mc+dz. +4. Zkusit znova trojice i dvojice, ale jen slovn druhy bez pd. +5. Naopak zkusit kompletn pravu znaek, nejen tu zjednoduenou popsanou ve. + +Na celch upravench znakch, mc+dz proti ec. +A 62677 - G 53561 - P 85,5 + +Zven poadavek na alespo 2 vskyty, pes 50%. +A 62677 - G 53458 - P 85,3 + +Zven poadavek na alespo 2 vskyty, pes 75% (90% ani nem smysl, to se skoro nevyskytuje). +A 62677 - G 53392 - P 85,2 +Vtah z pednch mst seznamu: +N1#Z, 9 9 1.000000 +PseJ^Vp 8 8 1.000000 +NY2N2N2 6 6 1.000000 +A6Rv-1N6 6 6 1.000000 +... +N6Rs-1Rv-1 6 7 0.857143 +VBZ,Je 6 7 0.857143 +N4VBVf 6 7 0.857143 +N1J^Vp 32 39 0.820513 +A1VpN1 8 10 0.800000 +N6VBRv-1 4 5 0.800000 +A4J^N4 11 14 0.785714 + +Opt uvolnno na aspo 1 vskyt, pes 50 %. Msto trojic se uvauj dvojice (dc od Charniaka). +A 62677 - G 53768 - P 85,8 + +Msto trojic dvojice jako u pedchzejcho pokusu, ale msto od Charniaka se dc bere od MC+DZ. +A 62677 - G 53853 - P 85,9 !!! + +Msto plnch upravench znaek brt jen slovn druh a pd. +A 62677 - G 53963 - P 86,1 !!! + +Tot, ale nyn nesout MC+DZ proti EC, nbr DZ proti EC i MC (ti se nemusej shodovat). +A 62677 - G 53271 - P 85,0 (dokonce o 4 zvislosti hor ne EC sm) + +Tot, ale nyn se EC mus shodovat s MC. +A 62677 - G 53268 - P 85,0 (jet o dal 3 zvislosti hor) + +Vrtit se k tomu, e sout MC+DZ proti EC. Zkusit jet samotn slovn druhy bez +pd. +A 62677 - G 53999 - P 86,2 !!! to u se konen bl k tomu, co dokzalo bezkontextov hlasovn :-( + +Bezkontextov hlasovn (MC+DZ me pehlasovat EC vdycky, EC m pednost pouze +kdy m kad parser vlastn nzor). +A 62677 - G 54044 - P 86,2 !!! + +Jet zkusme popis souboje obrtit, ale mlo by to snad bt tot co pedtm. +Tedy: ume se, kdy me EC zvtzit, i kdy je ve sporu s MC a DZ, kte se shoduj. +Rodie zjiujeme podle nzoru EC. dc znaka je pln upraven, zvisl jen +slovn druh. +A 62677 - G 54058 - P 86,2 !!! + +Tot, ale ob znaky jsou jen slovn druh. +A 62677 - G 54078 - P 86,3 !!! + +Tot, ale ob znaky jsou pln upraven. +A 62677 - G 54090 - P 86,3 !!! + + + +Jet by stlo za to vdt, kdy m vyhrat Collins msto Charniaka, kdy vichni +3 mme svj vlastn nzor. Ale te u to nesthm vyzkouet. +tips: - for all parsers number of times they contribute whenever ec is wrong; + - voting where ec has 3 votes, mc 2 votes, others 1 vote each. +Use weights produced by some parsers (dz, th). Look at z if it used the "last rule" for that constituent. +Ze sekce 13.5 jasn vyplv, e neumm koordinace a apozice. Schvln, jestli mi model nkdy dovol pehlasovat Charniaka v zvislosti ehokoli na J^ nebo Z,. + +Rozit zkoumn kontextu tak, e pro libovolnou kombinaci nzor a znaek budeme +schopni ct, v kolika procentech se stalo, e nkter skupina parser mla pravdu. +Stihnout to jet pidat do konen verze disertace! + + + +Udlat cvs commit kvli pidanmu vyhodnoceni.pm! Nebude to takov sranda, ono +se to toti brn, e pr souasn verze nen up-to-date! + + + +Urgentn po dopsn disertace: Uloit do CVS novj verzi parseru (zejmna +train.pl a model.pm), kter um sprvn rozepisovat varianty. Vyvolat z CVS +star verzi, kter umla doshnout maxima 74,7 % na MDa+MDa. Odladit, najt +chybu a slouit ob verze. + + + +############################################################################### +Npady: +- Do zpracovn neprojektivit pidat neprojektivity koncov interpunkce + v uzvorkovanch vtch. +- jin pstup k zkazu peskok: pi trnovn si u kad zvislosti pamatovat, + zda peskoila sloveso +- 25.5.2004: train.pl: Ve funkci spocitat_lokalni_konflikty() se pouv pole + @rodic, kter ale pi trninku vbec neexistuje! Asi je to omyl, je tam toti + vtev if a else, v jedn z nich je pouit @rodic a ve druh $anot->[]{rodic_vzor}. + Bohuel to nemu te hned opravit a podvat se, co to udl s spnost, protoe + momentln krok za krokem upravuju train.pl, aby mohl pouvat nov knihovny + a pitom produkoval pod TUTɮ statistiku. +- 14.5.2004: genstav.pm: Dokonovn koordinac by se mlo dit systmem zkaz. +- 26.3.2004: DTEST: 16329 sloves v 7319 vtch, tedy 2,23 slovesa na + vtu (vetn tvar pomocnho slovesa bt). + OSNOVA KAPITOLY O SUBKATEGORIZACI + - Vysvtlit subkategorizaci. + - Vysvtlit, pro me pomoci pi parsingu. + - SLBIL JSEM, E V KAPITOLE 9 UKU, JAK ZSKAT SEZNAM. + - Tabulka typickch argument (> 50 % vskyt) + POZOR, ASI PLN IGNORUJU VSKYTY, KDY DAN LEN VIS NA NEM + JINM NE NA SLOVESE. + - rliv slova, tabulky. + CHTLO BY TO PLYNULEJ PECHOD K RLIVOSTI. VYSVTLIT, PRO SE + TM ZABVM. + - Odhalen, e je vlastn dost mlo chyb, s jejich odstrannm to + me pomoci, by mlo pijt a na konec, sp jako vsledek + ptrn, pro subkategorizace nenese velk ovoce. Aby bylo do t + doby o em pst. + --- + - Jak asto slovesu nco chyb? 8583 (6,8 %). + - Jak asto slovesu nco pebv? + - Jak asto jsou na slovese zaveny vzjemn nekompatibiln vci? + --- + Vf ... infinitiv + VB ... ptomn as + Vp ... pest minul + Vs ... pest trpn + Nejastj ppad: N4 m viset na Vf, ale bylo zaveno na VB. + P = mli viset a povsil jsem / povsil jsem + R = mli viset a povsil jsem / mli viset + 29829 vc mlo viset pod slovesem a zrove jsem je pod to + sprvn sloveso i povsil. 38412 mlo bt. 45255 bylo. + P = 29829 / 45255 = 65,9 % + R = 29829 / 38412 = 77,7 % + F = 2PR/(P+R) = 71,3 % +- 8.4.2004: Koordinace: Kad "a" mus mt pod sebou koordinaci! + Pokud tsn za "a" le sloveso, mus to bt koordinace sloves! +- 8.4.2004: 592 ppad (0,47 %), kdy vis Z: na VB, kdy mlo viset + na J^. 535 ppad, kdy ve stejn situaci figurovalo Vp msto VB. +- 8.4.2004: Do zvru disertace: Named entities by pomohly. +- 8.4.2004: KOPR: Jak se pozn typick zvislost, kterou njak + parser um lpe ne jin parsery? +- 8.4.2004: Tomovy rady: + - selektivn lexikalizace vech nejastjch slov bez ohledu na + slovn druh + - vha vzdlenosti dcho a zvislho uzlu a do vzdlenosti 15 + (ale je to vha, kterou se pensob cel pravdpodobnost, + neuchovvaj se tedy samostatn etnosti udlost o jednotlivch + vzdlenostech) +- 8.4.2004: Ven vskyty u sloves. Zatm jsme potali slovesa, se + ktermi bylo dan doplnn vidt. Te budeme tak potat, + kolikrt bylo doplnn se kterm slovesem vidt. + nd = poet vskyt doplnn + ns = poet sloves celkem + = nd / ns + J si do potu sloves nezapamatuji toto sloveso 1, ale...??? + Normalizovat na nejastj sloveso? + To taky nejde, nkter slovesa jsou extrmn ast! + je nco jako ance doplnn trefit co nejvc sloves. + Problm: nen pravdpodobnost. Me nabvat neomezen vysokch + hodnot. Jene jen mlo doplnn se vyskytlo vckrt, ne jak je + poet sloves: + N3 6943 + VINF 15263 + N7 10770 + J 10613 + PR4(se) 17253 + R6(v) 16186 + S 22934 + Z 31708 + N4 39375 + DB 38834 + N1 77233 + (N4) = 7,1. Interpretace: Kolikrt se mohlo vyskytnout s kadm + slovesem? Tm vydlit jeho vskyty - normalizace na etnost - ale + ne, to bychom dostali vdy poet sloves! +- 8.4.2004: Pro kad heslo a kadou vazbu si pamatovat pomr: + (kolikrt pod sebou m tuto vazbu) / (kolikrt se heslo vyskytlo) + Pokud se heslo vyskytlo alespo 5, zapamatovat si vazbu. Pokud + pak takov vazba ve vt je a dostane ji jin heslo, kter po n + netou stejn siln, pokusit se pehodnotit. +- 8.4.2004: Kter valenn doplnn maj nejhor spnost? +- 8.4.2004: Pokud existuje nco jako typick chyba, je to zvislost + na koordinacch. +- 8.4.2004: Roztdit chyby do skupin podle: + - valenn znaky zvislho uzlu + - lemmatu chybn navrenho dcho uzlu + - lemmatu sprvnho dcho uzlu +- Zkontrolovat, zda mm nejlep a nejnovj seznam valenc. +- Valence pedem: pouze pidat do znaek heslo tam, kde jde o sloveso. +- Valence EX POST: budovat zsobnk strom a na konci stromy seadit + podle mry, do jak uspokojuj valenn poadavky svch uzl. +- Vylepen pedloek: do znaek strkat heslo, ne tvar! +- Neodvozen pslovce zkoprovat do znaek. +- Podmnit lambdy konkrtnmi slovy (nap. u slova bt potebujeme vdt, e + lo o slovo bt, i kdyby o druhm lenu zvislosti mly rozhodovat jen + znaky). +- Mon konkrtn u slova bt by stlo za to pidat slovn tvar do znaky. +- Dti - na konci projt zsobnk a pehodnotit stromy podle toho, + kolik dt m kter uzel. +- Podmnn pravdpodobnosti: nejdve vybrat dc uzel (nap. podle + vzdlenosti od optimlnho potu dt), potom vybrat mezi jeho + kandidty na zvisl uzel, pravdpodobnosti jsou podmnn. +- Jet vylepit koordinace. A nezapomnat na apozice. +- Valence: Je-li naplnn podmt, u nepipojovat dal. Obdobn u koene + naplnno sloveso, u pedloky jmenn frze. +- Valence: negativn pravdpodobnosti: vem zvislostem, kter nevedou + k uspokojen njakho valennho poadavku, adekvtn snit pravdpodobnost. +- Valence: Nelze peskoit neuspokojenho zjemce. +- Pi stejn pravdpodobnosti dvou zvislost dt pednost zvislosti + mezi slovy, kter k sob maj ve vt bl. +- Dal zpsob, jak elit Honzovm chybm v pdech: pout morfologickou + analzu (pop. s preferenc pdu, kter vybral Honza). Poznmka: Obas nejde + jen o pdy, napklad infinitiv "pomoci" myln oznaen jako podstatn jmno + doke taky podn nabourat syntaxi. +- Vypotan lambdy (zkombinovat tolik rozmr, kolik to uthne). +- Dal otzka krom plodnosti: je u valenn msto zaplnno? Pokud + ano, pravdpodobnost je blzk nule. +- Obtnj kol: rozpoznat okamik, kdy se poslednho kandidta na + zaplnn valennho msta chystm povsit jinam. +- Rozliovat taggery A a B. +- Dovolit si nkter zvislosti nerozhodnout. +- Dovolit si nkde dt na vbr s vahami. +- Vylepit plodnost. Nap. rka m bu 0, nebo 2, ale nikdy 1. Kdy + u dvojka pev nulu, je nutn to dothnout do konce a neskejsnout + na jednice. +- Nesnesiteln magnetick souadc spojky. Pitom: + - Spojka mus spojovat vci stejnho druhu. + - Vci, kter nejsou z rznch stran spojky, mus bt oddleny + rkou. + - Alespo 2 vci jsou vtinou spojeny, ale nen to absolutn + platn pravidlo, spojky jako "vak" se nkdy spokoj s jedinm + lenem. + +- Distinguish the a tagger from the b tagger. Try the morphological analysis weighed using the taggers (both). +- Pomoc analzy, co bylo kdy kam zaveno, zjistit, jaktoe lokln konflikty v souhrnu pomhaj, akoli jejich vlastn + vyhodnocen k, e to, co maj dlat, dlaj blb? + +############################################################################### +koly od Honzy: +1. Nco udlat s neprojektivitami (a zjistit, co s nimi dlal Mike). +2. Ppadn okolo parsingu: pevst neprojektivity na projektivity a +zpt (=> lnek?). +3. Eugene Charniak: ME inspired parser - prozkoumat, jak to funguje. +############################################################################### +Moje vlastn koly: +- Pest nsledujc lnky: + M. Volk, G. Schneider: Comparing a Statistical and a Rule-Based + Tagger for German (http://xxx.lanl.gov:80/ps/cs/9811002). + Anoop Sarkar: Incremental Parser Generation for Tree Adjoining + Grammar. Proceedings of 34th ACL, Student Session, Santa Cruz, 1996. + + + +------------- +Zajmav vty +------------- +"Kolik m vlastn penz, Michaeli?" pt se snd novin s brlemi +nejslavnjho zpvka planety.