The Divvun and Giellatekno teams build language technology aimed at minority and indigenous languages
View GiellaLT on GitHub divvungiellatekno/giellalt.uit.no
Hangouts: Kevin, Lene
Lene skrev:
Vi har etterhvert fått mer og mer semtagger, både på substantiv og adjektiv. Taggene er i bruk også i disambiguering.
I sme-smX blir taggene med over i apertium, sjøl om de ikke er med i dix, og de er dermed med i disambigueringa (bedre resultat)
(ordet får to analyser, en med og en uten semtagg:
"<bargobáikkis>"
"bargobáiki" n sem_plc sg loc
"bargobáiki" n sg loc
, og analysen med semtagg blir valgt i functions.cg3 for disambigueringa. Analysen uten semtagg blir parret med dix)
og de kan også brukes i transferreglene
Taggene blir fjerna i t1x.
Kevin skrev:
I sme-nob har me brukt bidix-paradigme til tre relevante ting her:
1. Til å endra/fjerna taggar som generelle reglar:
Paradigmet "__adj" gjer cmp_attr.cmp → pst.mf.sg.ind og
ess → pst.GD.ND (medan andre taggar blir overført likt).
2. Til å markera leksikalske unntak frå regelen:
Paradigmet "pl__n" gjer t.d. alle sg-lesingar til pl:
<e><p><l>bivvu<s n="n"/><s n="sem_clth"/></l><r>klær<s n="n"/><s n="nt"/></r></p><par n="pl__n"/></e>
<e><p><l>beaiveruhta<s n="n"/><s n="sem_money"/></l><r>dagpenger<s n="n"/><s n="m"/></r></p><par n="pl__n"/></e>
… der dei fleste substantiv bruker "__n" som lar sg gå til sg.
3. Til å trimma analysar me ikkje vil ha med:
Ved å ha eit bidix-paradigme som *ikkje* har med
<e><p><l/><r/></p></e>
, men berre t.d.
<e><p><l><s n="inf"/></r><s n="inf"/></r>
osb., får du ikkje med dei analysane som ikkje er spesifisert i
paradigmet.
Alle tre funksjonane er moglege å utføra på andre måtar, og eg ser
fordelen med å sleppa å spesifisera sem-taggar i bidix; me må berre
passa på at me ikkje mistar noko i omskrivinga.
Punkt 1. er jo gjort med transferreglar i sme-smX, det kan me gjera her
òg.
Punkt 2. er vanskelegare – viss me ikkje skal spesifisera sem-taggar,
kan me heller ikkje spesifisera taggar som kjem etter sem-taggen på
sme-sida (for då får me berre ikkje-sem-analysen med). Altså,
<e><p><l>bivvu<s n="n"/><s n="sg"/></l><r>klær<s n="n"/><s n="nt"/><s n="pl"/></r></p></e>
vil trimma sem-analysen. Me kan heller ikkje ha
<e><p><l>bivvu<s n="n"/></l><r>klær<s n="n"/><s n="nt"/><s n="pl"/></r></p></e>
sidan me då får bidix-output
^bivvu<n><sem_clth><sg><nom>/klær<n><nt><pl><sem_clth><sg><nom>$, som
berre blir eit rot.
Eitt alternativ for leksikalske unntak er at me rett og slett seier «ok,
for dei må me ha sem-taggar med i bidix», men me kan jo bruka eit
paradigme av sem-taggar så det ikkje er så farleg om ting endrar seg,
altså:
<pardef n="semtags">
<e><p><l><s n="sem_clth"/></l><r></r></p></e>
<e><p><l><s n="sem_jna."/></l><r></r></p></e>
<!-- ingen sem-tagg: -->
<e><p><l/><r/></p></e>
</pardef>
<pardef n="pl__n">
<e><par n="semtags"/><p><l><s n="sg"/></l><r><s n="pl"/></r></p></e>
<e><par n="semtags"/><p><l><s n="pl"/></l><r><s n="pl"/></r></p></e>
</pardef>
<e><p><l>bivvu<s n="n"/></l><r>klær<s n="n"/><s n="nt"/></r></p><par n="pl__n"/></e>
Punkt 3. kan me nok løysa i rm-deriv-cmp.twol – det er kanskje bra å
ha alt på éin plass der uansett?
lemma n sg
<e><p><l>vuovdi<s n="n"/></l><r>vyevdi<s n="n"/></r></p></e>
<e><p><l>vuovdi<s n="n"/><s n="nomag"/></l><r>vyebdee<s n="n"/><s n="nomag"/></r></p></e>
<e><p><l>dikšu<s n="n"/><s n="sem_act"/></l><r>tipšo<s n="n"/></r></p></e><!-- Nom Actionis -->
<e><p><l>dikšu<s n="n"/><s n="nomag"/></l><r>tipšoo<s n="n"/><s n="nomag"/></r></p></e><!-- Dahkkinamma -->
<e><p><l>gullevaš<s n="adj"/><s n="sem_dummytag"/><s n="attr"/></l><r>kuullâđ¹<s n="vblex"/><s n="prsprc"/></r></p></e>
<e><p><l>bivvu<s n="n"/><!--sem--><s n="sg"/></l><r>klær<s n="n"/><s n="nt"/><s n="pl"/></r></p></e>
$ echo '^bivvu<n><sem_clth><sg><nom>$' | lt-proc -b sme-nob.autobil.bin
^bivvu<n><sem_clth><sg><nom>/@bivvu<n><sem_clth><sg><nom>$
Mogleg alternativ:
<pardef n="semtags">
<e><p><l><s n="sem_clth"/></l><r></r></p></e>
<e><p><l><s n="sem_jna."/></l><r></r></p></e>
<!-- ingen sem-tagg: -->
<e><p><l/><r/></p></e>
</pardef>
<pardef n="pl__n">
<e><par n="semtags"/><p><l><s n="sg"/></l><r><s n="pl"/></r></p></e>
<e><par n="semtags"/><p><l><s n="pl"/></l><r><s n="pl"/></r></p></e>
</pardef>
<e><p><l>bivvu<s n="n"/></l><r>klær<s n="n"/><s n="nt"/></r></p><par n="pl__n"/></e>
(for å sleppa å eksplisitt spesifisera sem-taggar på unntaka òg)
<rule comment="C[] NOM.GEN ADJ_ATTR NOM
<choose><when><test> <!-- Lene: for sápmi.n.sg.gen samisk.adj -->
<equal><clip pos="1" side="tl" part="a_adj"/><lit-tag v="adj"/></equal></test>
<call-macro n="set_defnes2"><with-param pos="2"/><with-param pos="1"/></call-macro>
<call-macro n="modify_adj_gen_nbr"><with-param pos="2"/><with-param pos="1"/></call-macro>
<let>
<var n="pre-nom"/>
<concat>
<lit v="^"/>
<clip pos="1" side="tl" part="lemh"/>
<clip pos="1" side="tl" part="a_adj"/>
<clip pos="1" side="tl" part="grau"/>
<clip pos="1" side="tl" part="gen"/>
<clip pos="1" side="tl" part="nbr"/>
<lit-tag v="3"/>
<clip pos="1" side="tl" part="lemq"/>
<lit v="$"/>
<b pos="1"/>
<lit v="^"/>
<clip pos="2" side="tl" part="lemh"/>
<clip pos="2" side="tl" part="a_adj"/>
<clip pos="2" side="tl" part="grau"/>
<clip pos="2" side="tl" part="gen"/>
<clip pos="2" side="tl" part="nbr"/>
<lit-tag v="def"/>
<clip pos="2" side="tl" part="lemq"/>
<lit v="$"/>
<b pos="2"/>
</concat>
</let>
</when>
<otherwise>
sápmi→samisk feiler når ordet ikkje er head i chunken (out_nom handterer det, men me har ingen macro for pre-nom)
Alle top kan også være cog, pluss at mange går til feil paradigme i nob.dix
Alle cog/top i nob.jdix har like paradigmer
TODO: legge til RL i nob.dix for generering uten cog eller top tagg
[/mt/infra/Paralleltexts.html] (burde kanskje hatt P(osition-independent)WER òg? ofte nyttigare metrikk for gisting)
I smenob brukes clip med enkeltdeler for output. Dette er mer robust i fohrold til endringer i tagging i source language.
I smesmX endrer vi tagstringen med regler og macro, og så clip whole ut. Dette gjør det enklere å skifte mellom ordklasser osv, men er passer kanskje best for nære språkpar.
Fordel med å bytta til smesmX-metoden at ting blir likare på tvers av sme-par. Ulempe med å bytta: veldig mykje koda med clip-delar, stor jobb, kanskje mindre robust resultat(?).
echo Mun boađán skuvllas | apertium -d. sme-nob-syntax
^Mun<prn><pers><p1><sg><nom><@SUBJ→><MAP:1677:subj>Pers>$ ^boahtit<vblex><iv><indic><pres><p1><sg><@+FMAINV>$ ^skuvla<n><sem_edu_org><sg><loc><@←ADVL-ela><MAP:1865:V<advl>$^.<sent>$
echo Mun ráhkadan láibbi čázis | apertium -d. sme-nob-syntax
^Mun<prn><pers><p1><sg><nom><@SUBJ→><MAP:1677:subj>Pers>$ ^ráhkadit<vblex><tv><indic><pres><p1><sg><@+FMAINV>$ ^láibi<n><sem_food><sg><acc><@←OBJ><MAP:2051:TV<obj>$ ^čáhci<n><sem_plc_substnc_wthr><sg><loc><@←ADVL-ela><MAP:1869:V<advl>$^.<sent>$
echo Mun boađán doppe | apertium -d. sme-nob-syntax
^Mun<prn><pers><p1><sg><nom><@SUBJ→><MAP:1677:subj>Pers>$ ^boahtit<vblex><iv><indic><pres><p1><sg><@+FMAINV>$ ^doppe<adv><sem_plc><@←ADVL-ela><MAP:1865:V<advl><SELECT:2253>/¬doppe<adv><@←ADVL-ela><MAP:1865:V<advl><SELECT:2253>$^.<sent>$
$ echo "Mihttomearri lea beassat hálddašanguovllus."|apertium -d . sme-nob-syntax
^Mihttomearri<n><sem_semcon><sg><nom><@SPRED→><MAP:1658:spred>SubjInf>$ ^leat<vblex><iv><indic><pres><p3><sg><@+FMAINV>$ ^beassat<vblex><iv><inf><@←SUBJ>$ ^hálddašeapmi<n><cmp_sgnom><cmp>+guovlu<n><sg><loc><@-F←ADVL-ela><MAP:1801:f<advl>$^..<sent>$
@-F←ADVL-ela – ekvivalent med @←ADVL-ela
http://wiki.apertium.org/wiki/Northern_Sámi_and_Norwegian/Regression_tests
Setninger som er avhengig av variabler
^det/den
echo lotto-speallu | apertium -d. sme-nob
et lottospill
echo lotto-speallu | apertium -d. sme-nob-disam
^lotto-speallu/lotto<n><sem_game><cmp_sgnom><cmp_hyph><cmp>+speallu<n><sg><nom>$^./.<sent>$
$ echo '^lotto<n><m><sg><ind><guio>$'|lt-proc -d nob/nob.autogen.bin
lotto-
<e><p><l><s n="cmp_sgnom"/><s n="cmp_hyph"/><s n="cmp"/></l><r><s n="sg"/><s n="nom"/></r></p></e> <!-- Lene added - we should have hyphen also at nob. -->
Ordføreren i/av Kautokeino kommune
<rule comment="C[] NOM.GEN NOM.GEN NOM
"set_caseprep"
Vi prøvde å debugge denne, men blei ikke ferdige
[https://sourceforge.net/p/apertium/svn/HEAD/tree/languages/apertium-nob]
2511 #samisk<sg><ind>
2260 #som
713 #samme<det><dem><nt><sp><def>
643 #samme<det><dem><m><sp><def>
497 #Davvi
366 #kjent<adj><sint><pst><mf><sg><ind>
254 #Stortinget<np><nt>
253 #samme<det><dem><f><sp><def>
230 #kjent<adj><sint><pst><un><pl><ind>
212 #Jesus<np><ant><m>
202 #Min
195 #samisk<sg><def>
186 #selv<det><emph>
176 #gymnas<n><m><sg><ind>
168 #Ávvir<np> <== fra Aasen**np til Wikipedia**np
167 #ILO<np>
166 #gymnas<n><m><sg><def>
163 #nær<sup><def>
156 #kjent<adj><sint><pst><nt><sg><ind>
155 #Guttorm<np><cog>
154 #selv<det><emph><un><un><sp>
150 #samisk<pl><ind>
146 #Universitetet
130 #hverandre<prn><res><pl>
102 #ILO<np><gen>
100 #noen<mf><sp>
99 #Karen<np><cog>
97 #ForfatternesForlag<np>
95 #kjent<adj><sint><pst><un><sp><def>