Preprocess Og Lookup2CG
Møte 11.12.2015 om ulike problem knytta til overgangen mellom fst og verda omkring (preprocess, lookup2cg, apertium).
- COPY/SUBSTITUTE
- V*
- Derivasjon + samansetjing
- MWE/
COPY/SUBSTITUTE
Apertium vil at input frå fst skal bli filtrert og ikkje lagt til. Når
Praksis i dag:
- Vi endrar TV -> IV i CG (modulo kontekst), i staden for å ha det to gonger i FST.
- Namn er Sem/Plc i morfologien. Dei kan bli Sem/Sur avhengig av kontekst.
- Ivalo Sem/Sur skal vere kont
Løysingar:
- TV/IV -> vi legg dei få verba det gjeld til to gonger, med kvar sin tagg
- Vi legg både Sem/Sur og Sem/Plc til i affixes/propernouns.lexc.
Dette har tre fordelar:
- Betre for Arpertium
- Mogleg å finjustere meir i fst-en
- Mogleg å bruke både SELECT og REMOVE på både Sem/Plc og Sem/Sur
V* og endring
Grammatikkontrollen kan ikkje bruke lookup2cg
Eksempel på regel som ikke fungerer i Apertium:
=> johtilit blir ikke Adv i Apertium, men Der/l verb.
... *1 BARRIER V ...
Preprosesseringa legg til eit symbol til N, A, V før Der/..., som
CG: Fjern * tilslutt i CG med SUBSTITUTE
Derivasjon
I dag:
lookup2cg:
"<mánábiila>" "máná#biila" N Sg Nom "<mielkebiila>" "mielkebiila" N Sg Nom
Apertium:
$ echo mánábiila|apertium -f none -d . sme-nob-disam "<mánábiila>" "biila" n sem_veh sg nom "mánná" n sem_hum cmp_sggen cmp $ echo dáŋkabiila|apertium -f none -d . sme-nob-disam "<dáŋkabiila>" "dáŋkabiila" n sem_veh sg nom
SELECT hjul IF (1 ("biila")); # vil matcha mánábiila SELECT mat IF (1/1 ("is")); # vil t.d. matcha vis neste ord er (dynamisk samansett) iskake SELECT mat IF (1/* ("is")); # vil t.d. matcha vis neste ord er (dynamisk samansett) iskaffekake eller kaffeiskake REMOVE SUB:1 Cmp; # fjern alle samansette lesingar
vanskeleg: kan ikkje ha taggar frå underlesingar i SET som skal matcha på overlesingar:
"<mánábiila>" "biila" n sem_veh sg nom "mánná" n sem_hum cmp_sggen cmp vil ikkje matcha SET foo = (sem_veh) + (cmp);
vanskeleg: kan ikkje ha krav på under- og overlesing *av same lesing* i same REMOVE-regel
"<ønskeliste>" "liste" N "ønske" V "liste" V "ønske" N "liste" N "ønske" N Umogleg å laga reglar som fjernar V+N-samansetjingar (og prioriterer N+N): REMOVE sub1=N + sub0=V IF (sub1=N + sub0=N); # ingen syntaks for dette enno
(frå http://wiki.apertium.org/wiki/Subreadings#Wishlist)
Dette diskuterte vi 19. mars.
Vi gjennomfører dette i februar.
MWE/ og preprocess
Dette handlar om preprocess. Vi vil analysere og preprosessere i same steg.
Vi eksperimenterer med hfsts pmatch
West-Virginia PLC ; Ávvil PLCSUR ; LEXICON PLCSUR +Sem/Plc: +Sem/Sur: Eks. SUBSTITUTE:TV-IV (V TV) (V IV) FAUXV (0 ("lávet") OR ("áigut")); #RemoveFromApertium {{{ <e a="yr"><p><l>Avvevákkirášša<s n="np"/></l><r>Avvevákkirášša<s n="np"/></r></p><par n="PlcSur__np"/></e> <e r="LR"><p><l>Avvil<s n="np"/><s n="sem_sur"/></l><r>Avvil<s n="np"/><s n="top"/></r></p><par n="__np"/></e> <e><p><l>Avvil<s n="np"/><s n="sem_plc"/></l><r>Ivalo<s n="np"/><s n="top"/></r></p><par n="__np"/></e>
sme$ echo 'ráhkisvuohta' | usme ráhkisvuohta ráhkis+A+Der/vuohta+N+Sg+Nom ráhkisvuohta ráhkisvuohta+N+Sg+Nom sme$ echo 'ráhkisvuohta' | usme | lookup2cg "<ráhkisvuohta>" "ráhkisvuohta" N Sg Nom "ráhkis" A* Der/vuohta N Sg Nom
ráhkisvuohta ráhkis+A+Der/vuohta+N+Sg+Nom
sme$ usme nr. nr. nr+N+ABBR+Nom nr. nr+N+ABBR+Gen nr. nr+N+ABBR+Attr nr. nr+N+ABBR+Acc nr nr nr+N+ABBR+Nom nr nr+N+ABBR+Gen nr nr+N+ABBR+Attr nr nr+N+ABBR+Acc
sme$ echo 'Dat lei 2. girji.' | preprocess --abbr=tools/preprocess/abbr.txt Dat lei 2. girji . sme$ echo 'Dat lei 2. Ja de bođiimet.' | preprocess --abbr=tools/preprocess/abbr.txt Dat lei 2 . Ja de bođiimet .
Dette kan bli betre med å ta med informasjon frå analysen.