Wiki spuštěna 24. 7. 2025

Segmentace nového českého textu

Tento návod popisuje, jak nasegmentovat na věty český text, který se teprve pořizuje a není dosud s ničím zarovnán. Text dostaneme v jednoduchém XML, tzn. že jsou vyznačeny pouze odstavce (<p>) a řezy písma:

<p>"Ale Julesi," řekla maminka, "vždyť on to jistě řekl z legrace."</p>
<p>"<i>Z legrace </i>?" vykřikl strýc. "To by bylo ještě horší...! Raději chci věřit, že neporozuměl mé otázce."</p>
<p>Obrátil se ke mně.</p>

Možný problém je, že řezy písma jsou vloženy chybně (přes značky <p>).

Je-li XML v pořádku, provedeme tuto posloupnost příkazů:

  • Z XML dostaneme text:
    xml2standoff.py <soubor>.xml
  • Provedeme tokenizaci a napravíme konce vět:
    run_tokenizer --tokenizer=czech --output=vertical \
    < <soubor>.txt | no_space_after_token_morphanal.pl <soubor>.txt /dev/null | perl -pe 's/^<p>$//' | cut -f1 | cat -s \
    > <soubor>.vrt
  • VRT soubor, který jsme dostali, převedeme zase do XML:
    vrt2standoff.py <soubor>.vrt
    standoff2xml.py <soubor>.txt
    perl -i -pe 's:</?w>::g' <soubor>.merged.xml
    perl -i -pe 's:(</s>)[ ]*(<s>):$1\n$2:g' <soubor>.merged.xml

QR Code
QR Code wiki:user:skoumal:intercorp:segmentace (generated for current page)