majka je v /nlp/projekty/ajka/bin/majka, 32 bitová verze je .../majka32, majka pro apollo .../majka64-apollo.
Použití je zatím zcela triviální:
/nlp/projekty/ajka/bin/majka -h -f soubor data [default: /nlp/projekty/ajka/lib/majka.w-lt] -p tisknout i zadane slovo -h help echo test | /nlp/projekty/ajka/bin/majka test:k1gInSc1 test:k1gInSc4 test:k1gMnSc1 testa:k1gFnPc2Defaultní soubor dělá analýzu slovní tvar → lemma:značka, kdy ve značce jsou i všechny značky z poznámek (hM atp.).
/nlp/projekty/ajka/lib/majka.l-wt je soubor, který k lemmatu dogeneruje všechny slovní tvary se značkami, /nlp/projekty/ajka/lib/majka.lt-w je soubor, který pro lemma a značku vygeneruje slovní tvary.
Jiný formát výstupu či jiné typy analýz na požádání. :-) (Nechci kopírovat ajku, aniž bych věděl, že to někdo skutečně používá atp.)
#include "majka.h" automat majka(data); if (majka) exit(0); char * vysledky = new char[majka.maxvelikost()]; majka.najdi(word, vysledky); for (vysledek = vysledky, i = 0; i < majka.vysledku; i++, vysledek += strlen(vysledek) + 1) { if (tisk) cout << word << ":"; cout << vysledek << '\n'; }
perl -I/nlp/projekty/ajka/lib -MMajka -Mv5.10 -e ' my $m = Majka->new; map say, @{$m->find("test")}' test:k1gInSc1 test:k1gInSc4 test:k1gMnSc1 testa:k1gFnPc2případně
#!/usr/bin/perl -w use strict; use lib '/nlp/projekty/ajka/lib/'; use Majka; my $m = Majka->new("/nlp/projekty/ajka/lib/majka.w-lt"); print map "$_\n", @{$m->find("test")};Více viz (konec) /nlp/projekty/ajka/lib/Majka.pm
majka je >7 x rychlejší (v DP byla >6 x, ale ještě hodlám zkusit pár dalších věcí)
echo procentně | /nlp/projekty/ajka/bin/ajka -n - <s> =procentně=== (1100-ostatně) <l>procentně <c>k6eAd1;tM <n>148.2--ADJ : ADV <n>450.1--i s numerickým prefixem <n>455.1-tM-vyjadřuje způsob
echo dvouprocentně | /nlp/projekty/ajka/bin/ajka -n - <s> =dvou==+=procentně=== (1100-ostatně) <l>dvouprocentně <c>k6eAd1
echo -e "procentně\ndvouprocentně" | /nlp/projekty/ajka/bin/ajka -n - <s> =procentně=== (1100-ostatně) <l>procentně <c>k6eAd1;tM <n>148.2--ADJ : ADV <n>450.1--i s numerickým prefixem <n>455.1-tM-vyjadřuje způsob <s> =dvou==+=procentně=== (1100-ostatně) <l>dvouprocentně <c>k6eAd1;tM <n>148.2--ADJ : ADV <n>450.1--i s numerickým prefixem <n>455.1-tM-vyjadřuje způsob→ ajka si chybně zapamatuje značky z poznámky a použije je u dalšího slova, pokud je toto složené. Poznámky možná nebyly příliš využívány, že si toho nikdo nevšiml, třeba u ležela stostránková knížka to dá zjevné nesmysly. (Tohle mám hnusným hackem opravené pro ajku, protože mně to příliš narušovalo srovnávání, ale nechce se mi to opravovat pro alib.)
echo medusy | /nlp/projekty/ajka/bin/ajka -n - <s> =medus==y= (739-koza) <l>medusa <c>k1gFnPc1 <c>k1gFnPc4;hF <c>k1gFnPc5;hF <c>k1gFnSc2;hF <n>367.2--dubleta: dlouhá + z = krátká + s <n>179.1-_,hF-SUBST : FEMPOSS <n>140.1--pravopisná dubleta <n>141.1--živočich, co s ním?oproti tomu
echo medúzy | /nlp/projekty/ajka/bin/ajka -n - <s> =medúz==y= (739-koza) <l>medúza <c>k1gFnPc1 <c>k1gFnPc4 <c>k1gFnPc5 <c>k1gFnSc2 <n>140.1--pravopisná dubleta <n>141.1--živočich, co s ním? <n>367.1--dubleta: dlouhá + z = krátká + s <n>179.1-_,hF-SUBST : FEMPOSS→ ajka si chybně zapamatuje to .2 z 367.2 a použije to k výběru druhého tagu z _,hF, i když má podle 179.1 vybrat první. Není mi úplně jasné, proč se to neprojeví i u prvního tagu.
echo PhDr | /nlp/projekty/ajka/bin/ajka -n - <s> =PhDr=== (1788-ČR) <l>phdr <c>kA <n>791.1--standardne se pise s teckou
echo dvacetpět | /nlp/projekty/ajka/bin/ajka -n - --not found
echo dvacetipěti | /nlp/projekty/ajka/bin/ajka -n - <s> dvac=eti==+=pět=i== (1241-pět) <l>dvacetipět <c>k4c2 <c>k4c3 <c>k4c6 <c>k4c7Správně je dvacet pět, dvaceti pěti, asi by ale bylo lepší, aby majka uměla i tyto pravopisně nesprávné podoby.
echo nalézt | /nlp/projekty/ajka/bin/ajka -n - <s> =nal=ézt== (948-nalézt) <l>nalézt <c>k5eAaBmF;rDaP <n>169.1-rD,rD,rD,rD,rD-INF : SUBST-í : ADJ-ý : ADJ-n//-t : ADJ-ší <n>792.1-aP-dokonavé <s> =nal=éz=t= (1600-vynalézt) <l>nalézt <c>k5eAaPmF
echo dvounásob | iu | ../majka.zaloha/majka -f w-lt_fi.+w.fsa | ui dvounásob:k6eAd1 echo dvojnásob | iu | ../majka.zaloha/majka -f w-lt_fi.+w.fsa | ui dvojnásobit:k5eAaImRp2nSrDpodobně rozloží dvou+křídlý, ale ne dvou+křídlí → budu ještě muset nějak projít.