Morfologická analýza hindštiny
Evidentně existuje vícero nástrojů, ale dlouho bylo těžké se k nim dostat a rozchodit je. Hajdarábádský analyzátor (anusAraka), který se nám v létě 2009 nepodařilo rozchodit ani za přímé asistence jeho hajdarábádského správce Avinéše PVS, nakonec doznal změn a objevil se na jejich webu ke stažení pod licencí GNU GPL v podobě, kterou už se po jistém úsilí podařilo přeložit.
Aktuální verzi jsem nalezl na stránce http://ltrc.iiit.ac.in/showfile.php?filename=onlineServices/morph/index.htm, kde se klikne na Linux version.
Podle README se má spustit skript auto_install.pl
, který všechno přeloží. Řešil jsem následující problémy:
- V
ltrc/anusAraka/com/morph/main.c
bylo potřeba opravit zalomení řádku uvnitř řetězce. - V
ltrc/anusAraka/hindi/morph/test/Makefile
je potřeba upravit linkování: místo “-lgdbm
” tam musí být “-lgdbm -lgdbm_compat
”.
README dále praví:
Add the following line to your .bash_profile
PATH=$PATH:/ha/home/zeman/nastroje/ltrc/anusAraka/hindi/morph_SV
The input file "inp" contents are :: muJe usane The outut file generated by command morph_sv.sh inp is "inp.mo" and its contents are :: MO_¤1_mEM{mEM P any s 1 *ko* }/_MO MO_¤1_vaha{vaha P any s 1 *ne* }/_MO
The outut file generated by command morph_svu.sh inp is "inp.mo" and its contents are :: MO_¤ROOT:1_mEM{PDGM:mEM CAT:P gender:any number:s case:1 TAM:*ko* }/_MO MO_¤ROOT:1_vaha{PDGM:vaha CAT:P gender:any number:s case:1 TAM:*ne* }/_MO
Pozor:
- Skript chce na konci mazat pomocné soubory. K tomu je potřeba, abych neměl alias, který mi z “
rm
” dělá “rm -i
”, protože tím se celá akce stává interaktivní a skript se mě na každý pomocný soubor ptá. - Výstup není v ASCII kvůli znaku ¤. I když zrovna tenhle znak nejspíš nepotřebuju, je potřeba si výstup překódovat, aby moje skripty dostaly čisté UTF-8.
- Převod písma dévanágarí z UTF-8 do WX a zpět už mám pokusně napsaný, ale ještě bude asi nutné ho ladit. Bude také potřeba zapsat každé slovo na samostatný řádek a zapamatovat si původní řádkování, abychom se k němu mohli vrátit. Rovněž bude potřeba si zapamatovat původní slova před převodem do WX, protože převod není vratný v případě, že vstup obsahuje něco jiného než dévanágarí (latinku, arabské číslice, jiná indická písma).