Language Technology at UiT

The Divvun and Giellatekno teams build language technology aimed at minority and indigenous languages

View GiellaLT on GitHub divvungiellatekno/giellalt.uit.no

Formål: byggja eit alternativ til preprocess og lookup2cg. Begge perl-skripta inneheld lingvistisk prosessering, og denne prosesseringa må anten flyttast til andre komponentar (fst eller cg) eller fjernast heilt.

Saker:

Preprocess

preprocess + lookup -> hfst-proc2

Testsetning:

echo "Svein Holmestrand ozai doarjjaolbmo guovtti diibmui vahkkui, Kárášjoga gielda biehttalii dán veahki addimis. Holmestrand váiddii biehttaleami Finnmárkku Fylkkamánnái, ja oažžu dál logi diimmu doarjjaolbmoveahki." | hfst-proc2 --xerox -w tools/preprocess/preprocessor-gt-desc.pmhfst|l

Testsetning endra til ei kasusform av Kárášjoga gielda, slik at vi får testa at kasusbøygde former fungerer som dei skal:

echo "Svein Holmestrand ozai doarjjaolbmo guovtti diibmui vahkkui, Kárášjoga gielddas biehttalii dán veahki addimis. Holmestrand váiddii biehttaleami Finnmárkku Fylkkamánnái, ja oažžu dál logi diimmu doarjjaolbmoveahki." | hfst-proc2 --xerox -w tools/preprocess/preprocessor-gt-desc.pmhfst

For meir systematisk testing, bruk gullkorpuset:

$GTBIG/gt/sme/corp/sme-goldcorpus.txt

Analyser med både gamalt og nytt oppsett, jamfør utdata.

Nyaste hfst (svn 4228) gjev fleire identiske analyser:

vahkkui	vahkku+N+Err/Sub+Sg+Ill	0
vahkkui	vahkku+N+Sg+Ill	0
vahkkui	vahkku+N+Err/Sub+Sg+Ill	0
vahkkui	vahkku+N+Sg+Ill	0
vahkkui	vahkat+V+IV+Der/PassS+V+IV+Ind+Prt+Sg3	0

Vi vil bere ha éi, dvs unike analyser.

  1. start med gullkorpus, sjå på forskjellar.

Bruk skriptet perl $GTHOME/gt/script/sort-cohort.pl for å sikra at ikkje skilnader i rekkjefylgja i analysene i kohorten gjev utslag.

Vi har eit problem med longest match og tvetydige punktum:

2010.	2010+A+Ord+Attr	0
dr. Petersen

Lingvistikk i preprocess

Intransitive forkortingar

echo "Fitnodat lea A.S. Nu dat lea." | preprocess --abbr=abbr.txt
Fitnodat
lea
A.S.
.
Nu
dat
lea
.

vs.

echo "Fitnodat lea A.S. ja nu dat lea." | preprocess --abbr=abbr.txt
Fitnodat
lea
A.S.
ja
nu
dat
lea
.

vs.

echo "Fitnodat lea A.S. Nu dat lea." | hfst-proc2 --xerox tools/preprocess/preprocessor-gt-desc.pmhfst
Fitnodat	fitnodat+N+Sg+Nom

lea	leat+V+IV+Ind+Prs+Sg3

A.S.	A.S+N+ABBR+Gen
A.S.	A.S+N+ABBR+Acc
A.S.	A.S+N+ABBR+Nom
A.S.	A.S+N+ABBR+Attr

Nu	nu+Adv

dat	dat+Pron+Dem+Pl+Nom
dat	dat+Pron+Dem+Sg+Nom
dat	dat+Pcle

lea	leat+V+IV+Ind+Prs+Sg3

.	.+CLB

Setningsgrensa forsvann i hfst-proc2-varianten.

Numerale uttrykk

preprocess>echo "Fitnodat lea 20. ja nu dat lea." | preprocess --abbr=abbr.txt
Fitnodat
lea
20.
ja
nu
dat
lea
.

vs

preprocess>echo "Fitnodat lea 20. Nu dat lea." | preprocess --abbr=abbr.txt
Fitnodat
lea
20
.
Nu
dat
lea
.

Vi har med hfst-proc2:

20.
20.	20+A+Ord+Attr	0,000000

Vi vil ha:

20.
20.	20+A+Ord+Attr	0,000000
        .+CLB-potensiell
20	20+Num+Sg+Nom 0,000000
       .+CLB
Neste
ord
...

og så disambiguerer vi Attr vs Nom avh av CLB og Neste ord..

Tilsvarande kan vi faktisk gjere det med intransitive forkortingar. (Dat lea A.S. Šillju.)

Jf. [http://www.korrekturavdelingen.no/K4Forkortelser.htm]

Mun boađán 20.02 !
Boađátgo 20. ?
Mii háliidit leat a.s!
Mii háliidit leat a.s.!
≠```

Fleire døme:
* Erenomážit boazosápmelaččaid mielas lei dát oahppu dušši, go sin mánát han galggašedje viidásat bargat boazodoaluin. Ja maid vel boazodoalus ge dárogielain, norgga historjjáin, matematihkain jna.?
* Gámasgoikademiin, bassamiin, neaskimiin, vuoidamiin, galle gottura gápmasat ja galle gápmasa ovtta gotturis jna.?

## Bug i hfst-proc2 eller i pmatch-skriptet vårt

Juos gorreválggain => Juos go r r e válggain


og:

rehket-bihtáid =>

rehket- rehket+N+Sem/Money_Txt+SgGenCmp+RCmpnd 0 rehket- rehket+N+Sem/Money_Txt+SgNomCmp+RCmpnd 0

bihtáid bihttá+N+Sem/Part_Prod-cogn+Err/Sub+Pl+Acc 0 bihtáid bihttá+N+Sem/Part_Prod-cogn+Err/Sub+Pl+Gen 0 bihtáid bihttá+N+Sem/Part_Prod-cogn+Pl+Acc 0 bihtáid bihttá+N+Sem/Part_Prod-cogn+Pl+Gen 0


# Lookup2cg

* utfordring: lookup2cg inneheld lingvistikk
* arbeid: flytta lingvistikken over i lingvistiske komponentar

Arbeid framover:
* lookup2cg - vi gjer ingenting med denne
* forskjellar mellom lookup2cg og hfst-proc2
    - lemma av derivasjonar (når det kjem samansetjing etter) -> vi ser bort frå denne
    - lemma av samansetjingar -> vi ser bort frå denne
    - stjerne-POS -> underlesingar + cg-conv
    - lokal disambiguering -> vekting + spesifiserte vektklasser
    - ...

Handtering av skilnadene:
* sjå bort frå dei (dei er ikkje viktige)
* flytta til fst
* flytta til cg3
* fst+cg-conv (=underlesing)

Døme på mogleg utformat:

echo borrojuvvojin | usme borrojuvvojin borrat+V+TV+Der/PassL+V+IV+Ind+Prt+Sg1

correct$ echo borrojuvvojin | usme | lookup2cg “" "borrat" V* TV* Der/PassL V IV Ind Prt Sg1


Ciprian vil ha: "borrojuvvot" som lemma, som ikke finnes i FST

Slik, men det er ikke mulig (?):

" "borrojuvvot" V IV Ind Prt Sg1 "borrat" V* TV* Der/PassL

Slik er to etasjar:

" "borrojuvvojin" V IV Ind Prt Sg1 "borrat" V TV Der/PassL


echo beavdelágan | usme | lookup2cg “" "beavdi" N* SgNomCmp Der/lágan v1 A Attr


Ciprian vil ha: "beavdelágan" som lemma, som ikke finnes i FST

evt generere en del av analysen tilbake til FST for å generere et lemma (jf est)

Tre prinsipp:

1. **Vis alt**: Vis all avleiing, og prioriter dynamisk avleiing heller enn leksikaliserte former
1. **Vis ingenting**: Leksikaliser all avleiing dynamisk, stå att med bøyingsmorfologi
1. **Vis leksikon**: Bruk leksikaliserte former, men vis dynamisk avleiing og ikkje lag dynamisk leksikalisering

praktiske bruk:
1. ordbok:
    1. vi bruker leksikaliserte former i den grad det finnes som ord i XXX-smX
    1. vi bruker Der-taggen og dens lemma for å gi oversetting når vi ikke har ordparet i ordboka
1. MT:
    1. vi bruker leksikaliserte former i den grad det finnes som ord i bidix
    1. for dem det ikke finnes, bruker vi Der-taggene for å generere tilsvarende i målspråket
1. Korp
    1. for å søke på lemmaer er det bra med leksikaliserte former
   som *liktenviessu*
    1. for å søke på bestemte typer derivasjoner eller produktivitet, trenger vi Der-taggen og rotlemma
1. disambiguering
    1. bra å vite derivasjon for en del disambiguering
1. Grammatikkontrollen

Fleire døme:

echo echo liktenbeavdi | usme | lookup2cg “" "liktenbeavdi" N Sg Nom

echo liktenviessu | usme | lookup2cg “" "likten#viessut" V* IV* Der/NomAg N Sg Nom "likten#viessut" V* IV* Der/NomAg N Sg Gen "likten#viessut" V* IV* Der/NomAg N Sg Acc

correct$ usme geallan geallan geallat+V+TV+PrfPrc geallan geallat+V+TV+Actio+Nom geallan geallat+V+TV+Actio+Gen geallan geallat+V+TV+Ind+Prt+ConNeg geallan geallat+V+TV+Der/NomAct+N+Sg+Nom geallan geallat+V+TV+Der/NomAct+N+Sg+Gen

^C usme geallan geallan geallat+V+TV+PrfPrc geallan geallat+V+TV+Actio+Nom geallan geallat+V+TV+Actio+Gen geallan geallat+V+TV+Ind+Prt+ConNeg geallan geallat+V+TV+Der/NomAct+N+Sg+Nom geallan geallat+V+TV+Der/NomAct+N+Sg+Gen

^C echo geallanbeavdi | usme | lookup2cg “" "geallan#beavdi" N Sg Nom

echo geallan | usme | lookup2cg “" "geallat" V* TV* Der/NomAct N Sg Gen "geallat" V* TV* Der/NomAct N Sg Nom "geallat" V TV PrfPrc "geallat" V TV Ind Prt ConNeg "geallat" V TV Actio Gen "geallat" V TV Actio Nom

echo divodanbeavdi | usme | lookup2cg “" "divodan#beavdi" N Sg Nom

echo divodanbeavdi | usme divodanbeavdi divodeapmi+N+SgCmp+Cmp#beavdi+N+Sg+Nom divodanbeavdi divvut+V+TV+Der/d+V+Der/NomAct+N+SgCmp+Cmp#beavdi+N+Sg+Nom divodanbeavdi divodit+V+TV+Der/NomAct+N+SgCmp+Cmp#beavdi+N+Sg+Nom ```

Sitemap