Hranice slov a vět (němčina) Ondřej Dušek
Základní schéma token.pl dělení slov (s ohledem na data, URL, maily, A$,...) sentrain.pl hledání zkratek sent.pl dělení vět (předpokládá formát z token.pl a volitelně seznam zkratek ze sentrain.pl)
Zpracování souborů if ){ ){ open( INPUT, $ARGV[0] ); process_file( \*INPUT ); ); } else { process_file( \*STDIN ); } ## sub process_file { my $file = $_[0]; while( ){...
Unicode character properties v regular expressions: [\p{Property}] Letter, Number, Punctuation, Symbol Lowercase_Letter, Uppercase_Letter (ale ne uncased) Close_Punctuation, Open_Punctuation (závorky) Initial_Punctuation, Final_Punctuation (uvozovky, bohužel poplatné angličtině) STerm (konce věty)
Dělení slov Hledání pomocí reg. výrazů, „odkrajování“ $line =~ m/regexp/g; end = pos $line; substr( $line, 0, $end )); $line = substr( $line, $end ); regexpy pro URL a maily speciální ošetření data regexpem nahrubo, zbytek zvláštní funkce
Statistika hledání tečky mimo konec řádku uchovávání v asociativním poli zahrnutí četnosti formát výstupu: \n zpětné načtení stejné
Hranice vět hledání symbolů konce věty a testování spec. funkcí: porovnání se zkratkami vyloučení řadových číslovek (není 100%) průchod uvozovkami následovat musí velké nebo necasované písmeno, interpunkce nebo číslo problém s character properties a uvozovkami „devítky dole“
Výsledek 8 chybových míst na 321 testovacích větách (přesně -8, +1; jen přibližné, nutné zahrnout odstavce nebo počítat slova) problémy: uvozovky „z psacího stroje“ zkratky na konci věty / zkratky, které nejsou zkratky zvláštní znaky (lomítko na zač. věty ~ text písně) vylepšení? threshold na zkratky hledání uzávorkování na uvozovkách
Technický dotaz Ve Windows příkaz perl token.pl soubor.txt | perl sent.pl > vystup.txt funguje, ale token.pl soubor.txt | sent.pl > vystup.txt ne, i když by měly být ekvivalentní -- proč?