Difference between revisions of "Norwegian Nynorsk and Norwegian Bokmål"
Line 391: | Line 391: | ||
</pre> |
</pre> |
||
Infinitivsformane vil jo enno vere tvitydige. Slike valenskodar bør me få inn i ordbøkene. men me må finne ut kva for kodar me skal nytte. NorKompLeks gir valensannotasjon (argumentstruktur) for ganske mange ord, men me treng nok ikkje så mange kodar når det berre er snakk om å få rett omsetjing i bidix. Til CG kan kodane vere nyttige, men då må me nok omdefinere ein del SET i rlx-filene. |
|||
Infinitivsformane vil jo enno vere tvitydige. |
|||
Om me har ulike lemma på homonym (homografar), kan me nytte [[CG]] til [[lexical selection|orddisambiguering]]: |
Om me har ulike lemma på homonym (homografar), kan me nytte [[CG]] til [[lexical selection|orddisambiguering]]: |
Revision as of 09:06, 29 January 2010
Dette er ei side med praktisk informasjon for alle som vil bidra til maskinomsetjingsprosjekta til og frå norsk.
Nyaste offisielle utgåve av språkparet er 0.6.5, ei oppsummering av endringane står i fila NEWS.
Sjå au artikkelen om apertium-nn-nb, evt. presentasjonen.
Vil du bidra?
Det finst mange måtar å bidra til prosjektet.
- Om du ikkje har så mykje programmeringskunnskap kan du likevel enkelt bidra ved å leggje til forslag til omsetjingar (wiki).
- Om du har småendringar, ein programretting eller forslag til endringar kan du ta kontakt med t.d. Unhammer eller andre involverte.
- For å kunne gjere endringar direkte i koden må du ha ein konto på SourceForge, og du må sjekke ut kjeldekoden via SVN (sjå nedanfor).
Desse er dei viktige filene for prosjektet for maskinomsetjing mellom nynorsk og bokmål:
apertium-nn-nb.nb.dix apertium-nn-nb.nn-nb.dix apertium-nn-nb.nn.dix apertium-nn-nb.nn-nb.rlx apertium-nn-nb.nb-nn.rlx
Filene apertium-nn-nb.nb.dix
og apertium-nn-nb.nn.dix
(«ordbøkene») inneheld dei morfologiske parsarane/generatorane.
Fila apertium-nn-nb.nn-nb.dix
er transferleksikonet («omsetjingsordboka»).
Filene apertium-nn-nb.nn-nb.rlx
og apertium-nn-nb.nb-nn.rlx
inneheld CG-reglar for morfologisk disambiguering, desse er konvertert frå Oslo-Bergen-taggeren. Les au sida Contributing to an existing pair, som inneheld mykje nyttig informasjon.
Merk at oppslaga (<e>
) kan vere merka med ein restriksjon, <e r="LR">
, som viser at oppslaget vil bli analysert, men ikkje generert (dette kan vere nyttig med t.d. klammeformer).
SVN
Sjekk ut kjeldekoden med denne kommandoen:
svn co https://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-nn-nb
Til dei som ikkje har vore borti svn: For å gje denne kommandoen slik må du ha Linux eller Mac, svn installert, og kommandoen skal skrivast i terminal-programmet. Windowsbrukarar må laste ned programmet tortoisesvn (jf. denne svn-innføringssida).
SourceForge har au ei side der du kan sjå nyaste endringar i apertium-nn-nb.
Statistikk og status
For ordbøkene (dvs. utan dev/infreq*dix
-ordbøkene):
Språk | # | @ | / (bidix) | / (gen) | Dekning på Wikipedia | [#@/] på 20000 linjer frå Wikipedia |
---|---|---|---|---|---|---|
Nynorsk | 94 | 146 | 1 | 0 | 88.3% | ? |
Bokmål | 2 | 27 | 0 | 0 | 89.5% | ? |
Dei tre første kolonnene får du vha. skriptet dev/testvoc.sh
. Teikna #, /, @ og * er forklart på sida Apertium stream format. Skriptet dev/coverage.sh
gir dekning. Feilkoder i korpus får du ved å køyre cat /korpora/nb.txt | sed 's/[@#]/_/g'| fold | head -n 20000 | apertium-nb-nn | ack '[@#]'
(evt. grep -c
), og omvendt. Korpusa er nnwiki-20090119-pages-articles.xml.bz2 og nowiki-20090108-pages-articles.xml.bz2 (sjå download.wikimedia.org).
Sida List of language pairs viser kor mange oppslag kvar av ordbøkene har, i tabellen under har eg inkludert oppslaga som ikkje er med i systemet enno:
nn.dix | nb.dix | nn-nb.dix | dev/infreq...nn.dix | dev/infreq...nb.dix | dev/bm.adj.dix |
---|---|---|---|---|---|
46472 | 46185 | 50647 | 43970 | 80645 | 25402 |
WER-test 28/8 2009
diff på maskinomsetjing og redigert versjon
Statistics about input files ------------------------------------------------------- Number of words in reference: 3750 Number of words in test: 3736 Number of unknown words (marked with a star) in test: 653 Percentage of unknown words: 17.48 % Results when removing unknown-word marks (stars) ------------------------------------------------------- Edit distance: 400 Word error rate (WER): 10.71 % Number of position-independent word errors: 343 Position-independent word error rate (PER): 9.18 % Results when unknown-word marks (stars) are not removed ------------------------------------------------------- Edit distance: 824 Word Error Rate (WER): 22.06 % Number of position-independent word errors: 769 Position-independent word error rate (PER): 20.58 % Statistics about the translation of unknown words ------------------------------------------------------- Number of unknown words which were free rides: 424 Percentage of unknown words that were free rides: 64.93 %
Prioritert TODO-liste for neste utgåve
- Utvide vokabular/bidix (meir dekning)
- f.eks. med
lt-expand full.nb.dix | cut -d: -f2 | grep '<POS>' | sed 's/<.*//' | uniq > sjekke
oghunspell check -d nn sjekke
- f.eks. med
- Leggje til høgfrekvente partikkelverb
- generering: denne hacken gir oss anbefalte ikkje => rådte ikkje til
- analyse: vanlege multiord, då får me rådte til => anbefalte, medan rådte ikkje til => rådte ikke til; eller meir avanserte hacks (sjå nedanfor)
- Fleire eigedomspreposisjonar (kapteinen på skipet, motoren i bilen)... men korleis? def-list i transfer? semantiske taggar på substantiv?
- Samansetjingar, når implementasjonen i lttoolbox er ferdig. Sjå diskusjonssida og Compounds. Men, gitt ei liste av samansetjingar kan me au leggje til fleire eksplisitt i dix
- Chunking av NP-ar (overføring i tri steg), dette kan nok gjere NP-transfer ein del meir oversiktleg, og kan opne for at me legg ein verb-partikkel bak objektet
- adj.sint-tagging og transferreglar for «meir/mest komplisert» osb.
- Konvertere syntaksdelen av Oslo-Bergen-taggaren; me bør vere sikre på om ein NP er subjekt eller objekt (osb.) før me flyttar ein heil NP
- Sjekke at omsetjingane følgjer fellesordlista
Decisions to make, variants
In the long run, we'd like something like this, which Apertium supports through variants on transfer rules and lexical entries, but until then, there are some decisions to make.
I det siste har eg flytta ein del sideformar og slikt opp i paradigme på toppen av fila, sjå t.d. «mel_LR_mjøl» i nb.dix; dette paradigmet går på alle ord som kan ha anten mel(k) eller mjøl(k) i seg (hvetemel, hvetemjøl). Med god bruk av slike paradigme bør me vere eitt steg nærare slike enkle innstillingar som Nyno har; i tillegg til at det blir enklare å raskt endre seg til nye normalar. Ein annan fordel er at me slepp å ha ein haug med LR/RL-element i bidix, som raskt blir rotete og vanskeleg å sjekke for konsistens (tidlegare sto det t.d. ein RL på bokmål «mjølk» medan samansette ord med «-mjølk-» i seg ikkje hadde RL).
«Dagens BT» (tidssubstanstiv og genitiv)
Det finst allerei unntak som omsett «et års tid» til «eit års tid» (heller enn «tida til eit år»); me kunne lagt ei klasse med substantiv som alle skulle omsettast med ein annan regel om dei opptredde i bestemd form:
- (nb) dagens BT → BT i dag
- (nb) årets festival → festivalen i år
For no er dette gjort med ein spesiell kategori ngen_time_meas i transfer; sidan regelen for ngen_time_meas kjem først i fila, prøver me ikkje meir generelle ngen-reglane nedanfor.
LR og valfrie formar
Eg har nytta nynorsk.org-malen i mange tilfelle, berre for å ha noko litt konsekvent å gå etter, når det gjeld val mellom suffiks ol. --Unhammer 18:07, 6 July 2009 (UTC)
LR-ane er foreløpig slik at me har, for nynorske substantiv:
- tempusane (ikkje tempora(a))
- sagaa (ikkje sagai)
- dunderar (ikkje dundrar)
for nynorske verb:
- vemdest og har vemst (ikkje vemtest eller har vems)
- tømde og har tømt (ikkje tømte eller har tømd)
for nynorske adj.partisipp:
- laten og latne (mf, pl) (ikkje lata)
- late (nt) (ikkje lati eller lata)
- degd (mf) og degt (nt)
- treden (mf), trede (nt), tredne (pl/def) (ikkje tredd/tredt/tredde, der me har valet mellom dei to subparadigma)
(visse partisipp-paradigme med LR-ar dekkjer fleire lemma, det står «wsd todo» på dei fleste av desse...)
osb.
For bokmålssubstantiv har eg au unngått tempora osb., og har valt
- peppere (ikkje pepperer eller peprer)
- kapitlet (ikkje kapittelet)
Skriv gjerne på diskusjonssida om du ikkje er samd i formvala! (Det kan t.d. vere at det finst grupper av ord som ikkje skal følgje regelen over, medan andre ord skal dette.)
(Sjå au delen om WSD-problem nedanfor, visse LR-ar er der ganske enkelt fordi iallfall eitt lemma må veljast.)
Garpegenitiv
Idea: Possibly there could be a transfer rule variant on whether or not to keep the "garpegenitiv"/his-genitive across translations since it's a bit... disputed. --Unhammer
bli/vart/vorte?
- bli -r, blei, blitt ?
- bli -r, vart, vorte ?
- verte, vert, vart, vorte ?
(Go for frequency? In nn.dix I chose to put LR on 'litle', 'vetle' & 'lisle' since 'vesle' had the highest frequency in [avis.uib.no]; nb of course has LR on 'vesle'.)
kløyvd infinitiv -a
-e eller -a?
Førekomster i http://avis.uib.no: å vita:98, å vite:90 (vete:1, veta:9); å sitja:123, å sitje:40
så foreløpig ser det ut til at -a vinn for desse...
samsvarsbøying for partisippar
Eit raskt søk i Oslo-korpuset av tagga nynorsktekster tyder på at dette rett og slett ikkje skjer, sjekk t.d. «levd/levt» fulgt av substantiv, sjølv om no.wikipedia seier at det skal bøyast. Erik frå i18n-no vil «avgrense bruken» men nemner at «køyrd - køyrt - køyrde og dømd - dømt - dømde» er obligatorisk. Sånn implementeringsmessig er det kanskje like lett å innføre det for alle formar då? (Eller det er kanskje enklare med adjektivformar for desse. Fram til me får variantar.)
mange-fleire-flest as adjective?
Oslo-Bergen-taggeren represents as adjectives anything that can have pst/comp/sup; but other language pairs have this as a determiner... so, tagging it as an adjective makes it easier to work with OBT, but perhaps harder to move between other Scandinavian languages.
Multiword expressions, particle verbs
Generation
- hun bekjempet ofte fiender => ho kjempa ofte mot fiendar
Multiwords may be represented using something like:
<e lm="kjempe mot"> <i>kjemp</i><par n="mo/e__vblex"/> <p><l><b/>mot</l> <r><g><b/>mot</g></r> </p> </e>
(see the official documentation, pp.46--47.)
'kjempe' is the inflected lemma head, 'mot' the invariable lemma tail.
pretransfer (or cg-proc
) could do the moving, but a simpler alternative (generation only) is to use a little transfer hack.
Analysis
- Geografisk høyrer ikkje Jurafjella til Alpane, men geologisk gjer dei det. => Geografisk tilhører ikke Jurafjellene Alpene, men geologisk gjør de det.
For analysis, dev/apertium-nn-nb.multiwords.t1x has a possible solution.
echo '^Geografisk<adj><posi><nt><sg><ind>$ ^høyre<vblex><sep><pres>$ ^ikkje<adv>$ ^*Jurafjella$ ^til<part><sep>$ ^*Alpane$' | apertium-transfer -n apertium-nn-nb.multiwords.t1x multiwords.bin ^Geografisk<adj><posi><nt><sg><ind>$ ^tilhøyre<vblex><sep><pres>$ ^ikkje<adv>$ ^*Jurafjella$ ^*Alpane$
(although at the moment this puts all superblanks right before the word "tilhøyre")
There is more discussion on the page Separable verbs.
Transfer
Genitive/possessive
Eit søk i Oslo Bergen-korpuset av taggede bokmålstekster for genitivssubstantiv følgt av ein streng med minst eitt adjektiv viste at berre 1 av 16258 treff hadde >4 adjektiv i strengen. Så me treng berre ei endeleg mengd transferreglar for å få til:
* (nb) Min snute → Snuten min * (nb) Min sorte snute → Den svarte snuten min * (nb) Min katts snute → Snuten til katten min * (nb) Min gamle katts snute → Snuten til den gamle katten min * (nb) Min katts sorte snute → Den svarte snuten til katten min * (nb) Min lille gamle katts sorte snute → Den svarte snuten til den vesle gamle katten min
Det er til no 3 typar reglar for eigedomsfrasane:
- POSGEN ADJ* NIND
- min/naboens (sorte) katt
- POSGEN ADJ* NGEN ADJ* NIND
- min/naboens (sorte) katts (hvite) snute
- DETNONPOS ADJ* NGEN ADJ* NOM
- en (sort) katts (hvite) snute
(the last two as of yet only have single ADJ-rules, some copy-paste still todo)
Passive
At the moment, we have:
* (nb) Boken leses → Boka blir lese (pres) * (nb) Boken må leses → Boka må lesast (inf) * (nb) Boken ble lest → Boka vart lese (past)
* (nn) Boka blir lese → Boken leses * (nn) Å bli lese → Å leses * (nn) Boka kan lesast → Boken kan leses * (nn) Boka vart lese → Boken ble lest
So past-tense morphological passive in Bokmål, "boken lestes", is currently not in dix (nor in Norsk Ordbank, it seems), and is low-frequency enough not to matter much yet(?). The nn=>nb transfer rule for "bli vblex" only matches present and infinitive.
Note: only Bokmål has both infinitive and present st-forms of non-st-verbs – there are no Nynorsk <pres><pst>
entries (only <inf><pst>
).
Dictionary peculiarities in nn-nb
Formatting
Formatting is as with apertium-dixtools / dix.el (M-x align). (When <e>'s are indented too much this generally signifies that they haven't been thoroughly checked...)
Morphological tags
Regardless of part-of-speech category (adj,n,det.dem,...) and whether all markers are represented we should at least have the same order of markers:
<CAT>... <GEN><NBR><ART>
eg.
<det><dem><mf><sg> <adj><pst><mf><sg><ind> <n><f><sg><def>
In general, gender and definiteness are not specified in plural entries.
Nouns
All bokmål feminine gender nouns are doubly listed in the bidix (apertium-nn-nb.nn-nb.dix
), like so:
<e> <p><l>jente<s n="n"/><s n="f"/></l><r>jente<s n="n"/><s n="m"/></r></p></e> <e r="RL"><p><l>jente<s n="n"/><s n="f"/></l><r>jente<s n="n"/><s n="f"/></r></p></e>
...but with the use of bidix pardefs, it now looks like
<e> <p><l>jente<s n="n"/><s n="f"/></l><r>jente</r></p><par n="n_m_f"/></e>
(Where Norsk Ordbank has duplicate Nynorsk adjective entries with one mf and one (LR'ed) masculine, I've just deleted the masculine entry.)
Verbs
Verbs with adjective forms have these listed in their paradigms (eg. s/etje__vblex_adj
) and have double bidix entries, like so:
<e> <p><l>motsetje<s n="vblex"/></l> <r>motsette<s n="vblex"/></r></p></e> <e> <p><l>motsetje<s n="adj"/></l> <r>motsette<s n="adj"/></r></p></e>
(simplified with the bidix pardef vblex_adj
.)
The reason for this is simply that the Oslo-Bergen Tagger CG expects it to be like this, so for now this seems the simplest solution (for transfer to other languages it should be relatively easy to change all <adj><pp> to <vblex><pp> -- in any case, the pp and pprs tags are only used by these verbal adjectives, never by "regular" ones).
st-verbs (marked "pstv"
) sometimes don't have st-verb translations. If we're translating from an st-verb into a non-st-verb, the passive form of that verb is many times a good translation, for this we have the bidix pardef "pstv_pass"
so that we get:
- takast (inf) => taes
- tekst (pres) => taes
- tekest (pp) => tatt
- tokst (prest) => tok
...which is about as good as we can hope for. The bidix entry looks like
<e r="LR"><p><l>takast</l><r>ta</r></p><par n="pstv_pass"/></e>
(since in the other direction we'll just use the Nynorsk lemma ta)
However, some st-verbs translate more fluently into non-passive forms, so here we just have bidix entries that remove the "pstv"
tag:
<e r="LR"><p><l>devlast<s n="vblex"/><s n="pstv"/></l><r>krangle<s n="vblex"/></r></p></e>
Restricted multiwords
In some cases we've used simple multiwords to translate (especially some prepositions). However, in some cases these eat up other possible analyses, then we try to restrict them to generation. In monodix we have:
<e r="RL" lm="i dette"> <i>i<b/>dette</i><par n="i__pr"/></e>
In this case, we might want to analyse dette as a determiner rather than a part of a preposition, so the safer route is to not analyse such MWE's since our tagger won't even be given a choice if we do.
Forskjellar frå Norsk Ordbank
Visse ord i Norsk Ordbank har ulike oppslag, medan dei står under eitt oppslag i omsetjingsordboka til Apertium, t.d. inkluderer -gjere-ord i bidix -gjøre-formene (desse har r="LR" i <pardef n="g/jere__vblex_adj"/>
i nn.dix).
- Verb:
- -gjere/-gjøre
- Substantiv:
- -vit/-vett
...
Store og små bokstavar
Om eit ord typisk har Stor Forbokstav, tek Apertium seg av dette (dvs. «A4-format» blir til «A4-format» sjølv om det står "a4-format" i ordbøkene), her gir me små bokstavar overalt i ordbøkene.
Om eit ord har store bokstavar andre stader enn første bokstav, t.d. «BCG-vaksine», må me trikse litt. Det er ikkje lurt å ha store bokstavar i lemma (<r>), sidan apertium-transfer ikkje ser forskjell på kva for store bokstavar som kjem frå lemma og kva som kjem frå ordet me las (dvs. «Eg», «A4-format» og «BCG-vaksine» er alle representert på same måte i transfer, sjølv om ein i ordboka skreiv «eg» og «a4-format» men «BCG-vaksine»); og apertium-transfer må kunne endre bokstavstorleik når me flyttar rundt på ord:
- Vaksinens virkning -> Verknaden til vaksinen
er ein vanleg transfer-regel, kor «vaksinen» får liten forbokstav, samstundes vil me gjerne ha
- BCG-vaksinens virkning -> Verknaden til BCG-vaksinen
men transfer veit ikkje frå input at den store forbokstaven i «BCG-vaksinen» ikkje skal fjernast, transfer sender like godt ut «bcg-vaksine» (som gir # om me har <r>BCG-vaksine</r>).
Difor har me følgjande i ordbøkene (samla i paradigmet "akronym_ord__n"):
<e r="LR" lm="bcg-vaksine"><i>bcg-vaksin</i><par n="r/e__n"/></e> <e r="RL"><p> <l>BCG-vaksin</l><r>bcg-vaksin</r></p><par n="r/e__n"/></e>
Så <r> har berre små bokstavar, men me skriv alltid med store bokstavar på rett plass (om transfer les berre store bokstavar, vil output au vere berre store bokstavar; det går alltid greit å gå frå små til store i output, men ikkje andre vegen).
Enkel WSD / Orddisambiguering
Eg har skrive «wsd» i ein del kommentarar rundt omkring i ordbøkene, t.d. i nn.dix står det
<pardef n="v/ege__vblex"> <!-- wsd todo --> ...
sidan pardef-en v/ege__vblex
er nytta båe for vege_vekt og for vege_veg. Paradigmedefinisjonar markert med «wsd» må altså etter kvart endrast for å få unike <r> til bruk i bidix, slik at me iallfall for dei formane som er ulike får disambiguering «gratis», t.d. ved sterke vs svake bøyingar, slepte vs slapp. For det siste paret, der den svake formen er kausativ-transitiv medan den sterke er intransitiv, kan me ha følgjande pardef:
<pardef n="sl/eppe__vblex"> <e> <p><l>epp</l> <r>eppe<s n="vblex"/><s n="iv"/><s n="imp"/></r></p></e> <e r="LR"><p><l>epp</l> <r>eppe<s n="vblex"/><s n="tv"/><s n="imp"/></r></p></e> <e r="LR"><p><l>eppa</l> <r>eppe<s n="vblex"/><s n="iv"/><s n="inf"/></r></p></e> <e r="LR"><p><l>eppa</l> <r>eppe<s n="vblex"/><s n="tv"/><s n="inf"/></r></p></e> <e> <p><l>eppe</l> <r>eppe<s n="vblex"/><s n="iv"/><s n="inf"/></r></p></e> <e r="LR"><p><l>eppe</l> <r>eppe<s n="vblex"/><s n="tv"/><s n="inf"/></r></p></e> <e> <p><l>eppast</l><r>eppe<s n="vblex"/><s n="tv"/><s n="inf"/><s n="pst"/></r></p></e> <e r="LR"><p><l>eppast</l><r>eppe<s n="vblex"/><s n="iv"/><s n="inf"/><s n="pst"/></r></p></e> <e> <p><l>oppe</l> <r>eppe<s n="vblex"/><s n="iv"/><s n="pp"/></r></p></e> <e r="LR"><p><l>oppi</l> <r>eppe<s n="vblex"/><s n="iv"/><s n="pp"/></r></p></e> <e> <p><l>eppt</l> <r>eppe<s n="vblex"/><s n="tv"/><s n="pp"/></r></p></e> <e> <p><l>epp</l> <r>eppe<s n="vblex"/><s n="iv"/><s n="pres"/></r></p></e> <e> <p><l>epper</l> <r>eppe<s n="vblex"/><s n="tv"/><s n="pres"/></r></p></e> <e> <p><l>app</l> <r>eppe<s n="vblex"/><s n="iv"/><s n="pret"/></r></p></e> <e> <p><l>eppte</l> <r>eppe<s n="vblex"/><s n="tv"/><s n="pret"/></r></p></e> </pardef>
Infinitivsformane vil jo enno vere tvitydige. Slike valenskodar bør me få inn i ordbøkene. men me må finne ut kva for kodar me skal nytte. NorKompLeks gir valensannotasjon (argumentstruktur) for ganske mange ord, men me treng nok ikkje så mange kodar når det berre er snakk om å få rett omsetjing i bidix. Til CG kan kodane vere nyttige, men då må me nok omdefinere ein del SET i rlx-filene.
Om me har ulike lemma på homonym (homografar), kan me nytte CG til orddisambiguering:
Bilen køyrte i venstre ^fil/fil_PC<n><f><sg><ind>/fil_veg<n><f><sg><ind>$. Lag ein kopi av ei ^fil/fil_PC<n><f><sg><ind>/fil_veg<n><f><sg><ind>$.
LIST fil-PC = ("kopi" n) ("lagre" vblex) ("kopiere" vblex); LIST fil-veg = ("bil" n) ("svinge" vblex); # ... REMOVE ("fil_PC" n) IF (0* fil_veg) ; # etc.
CG: OBT
Konvertering
Føringsgrammatikken (CG) er konvertert frå Oslo-Bergen-taggaren. Me har ulike tags (sjå Norsk ordbank), hovudsakleg er det eit ein-til-ein-forhold, men visse stader er det meir komplisert (t.d. er pers i OBT representert som <p1>, <p2> eller <p3> i Apertium, medan <p1> i OBT blir pers 1). Fila dev/OBT-to-Apertium.sh
gjorde størsteparten av konverteringa.
Store og små bokstavar
Sidan lt-proc
representerer store bokstavar frå ordformen i sjølve lemma (baseform), måtte me før ha ri
etter alle ord med små bokstavar i CG-filane, dvs. der OBT hadde "<den>"
hadde me "<den>"ri
(ri
var ikkje nytta i OBT frå før av). Så om me las «Den var her.» ville lt-proc
gi ^Den/Den<det>...
, utan ri
ville regelen for ordet «den» ikkje køyrt.
Dette gjorde CG-en 6 gonger treigare... men no køyrer me lt-proc og cg-proc med -w
; då har me ordboksform på lemma (^Den/den<...>$ ^var/var<...>$
) fram til CG har køyrt, medan cg-proc sørger for at me så legg overflateform på lemma (^Den/Den<...>$ ^var/var<...>$
), og me treng ikkje ri
på alle strengene.
Architecture of CG files
Each morphological disambiguator (apertium-nn-nb.nn-nb.rlx
and apertium-nn-nb.nb-nn.rlx
) has four domains, each with select rules before remove rules. From the Nynorsk CG, with line numbers:
1053:CONSTRAINTS 1054:## select domain ... 4524:#CONSTRAINTS 4525:## remove domain ... 7162:CONSTRAINTS 7163:## select ndomain ... 42926:#CONSTRAINTS 42927:## remove ndomain ... 50186:CONSTRAINTS 50187:## select domain heur ... 50595:#CONSTRAINTS 50596:## remove domain heur ... 50738:CONSTRAINTS 50739:## select ndomain heur ... 52939:#CONSTRAINTS 52940:## remove ndomain heur
There are no word-specific rules in ndomain
s, only domain
s. The last half is "heuristic" (ie. safer rules get tried first).
Syntaks
Syntaksfilene er ikkje konvertert enno.
Desse er meint å køyre etter morfologisk disambiguering; i Apertium vil dei altså køyre slik:
... | cg-proc -w nn-nb.rlx.bin | cg-proc -w nn-nb.syntax.rlx.bin | apertium-tagger -g nn-nb.proc | ...
MAP-reglane i syntaksen legg til nye tags. Desse må fjernast igjen. Alle dei nye vil ha @
foran seg så det ville vore enkelt å fjerne dei med eit skript, men kanskje like greit å gjere det i apertium-tagger eller evt. apertium-transfer (iallfall om me skal ta nytte av taggar som @obj ol.). Innan apertium-transfer må dei iallfall fjernast, for å gjere oppslag i omsetjingsordboka mogleg.
Om me har taggar som @obj, kan dei nyttast til t.d.:
- Om vinteren selges nok kyrne => Om vinteren blir nok kyrne selt
ved å matche
<pattern-item n="vblexprespass"/> <pattern-item n="adv"/> <pattern-item n="@obj"/>
og
- Om vinteren selges nok de gamle kyrne => Om vinteren blir nok dei gamle kyrne selt
ved
<pattern-item n="vblexprespass"/> <pattern-item n="adv"/> <pattern-item n="@det>"/> <pattern-item n="@adj>"/> <pattern-item n="@obj"/>
Testing
Ressursar
- Norsk ordbank
- North Germanic languages
- Oslo-Bergen-taggaren CG-reglar (bokmål, nynorsk) + leksikon (binærfil) (sjå au lispkoden til samansetjingsanalysen)
- Oslo-Bergen-taggaren (heimeside)
- Gode nynorskord på Wikipedia – fin liste over gode omsetjingar frå bokmål til nynorsk
- Synonymer.no
- Nynorsk.org – «valfridom er oppskrytt»
- Nyord i norsk (søk etter t.d. pleonasme, ulike typar samansetjing, anglisisme, komposisjonsfuge (epentese), osb.)