Hranice slov a vět Ondřej Tichý
Zadání: Tokenizátor Program na naučení konců vět Oddělovač vět Čte text ze standardního vstupu, hledá a vyznačuje v něm hranice tokenů (slov). Program na naučení konců vět Program, který se z trénovacích dat, ve kterých jsou vyznačené věty, naučí statistiku, potřebnou pro zlepšení rozhodování o hranicích vět. Oddělovač vět Čte ze standardního vstupu tokenizovaný text s vyznačenými hranicemi odstavců. Hledá a vyznačuje v něm hranice vět.
Tokenizátor Program projede každý řádek a pomocí regulárních výrazů tokenizuje text Např. ošetření různých formátů datumů URL a e-maily by šly ošetřit lépe pomocí „if“ při načtení tokenu a hledání např. „http://“ (pak už nerozdělím na „http : / /“) nebo „@“ Sázím mezery jak se mi hodí, na konci to příkazem $lines[$i] =~ s/(\s)+/ /g; od přebytečných mezer vyčistím
Učení hranic vět Na vstupu je na každém řádku věta, tzn. snadno najdu slova, za kterými je tečka a přitom neukončují větu Tím se vytvoří seznam zkratek, který se použije při hledání hranic vět
Hledání hranic vět Odstavec je na jednom řádku, tzn. načítám každý řádek Funkcí @radek = split(/ /, $lines[$i]); získám pole slov a hledám tečky Pokud je slovo před tečkou v seznamu zkratek, konec věty se neoznačí, jinak ano Nutno ošetřit výjimky, jako závorky, uvozovky, datum etc.
Závěr Během psaní programů v podstatě žádné problémy, jde hlavně o to se probít přes regulární výrazy, pak už to jde hezky…