Difference between revisions of "Norwegian Nynorsk and Norwegian Bokmål"

From Apertium
Jump to navigation Jump to search
Line 57: Line 57:
For bokmålssubstantiv har eg au unngått ''tempora'' osb., og har valt
For bokmålssubstantiv har eg au unngått ''tempora'' osb., og har valt
* ''peppere'' (ikkje ''pepperer'' eller ''peprer'')
* ''peppere'' (ikkje ''pepperer'' eller ''peprer'')
* ''kapitlet'' (ikkje ''kapittelet'')


Skriv gjerne på diskusjonssida om du ikkje er samd i formvala!
Skriv gjerne på diskusjonssida om du ikkje er samd i formvala!

Revision as of 18:24, 6 July 2009

Dette er ei side med praktisk informasjon for alle som vil bidra til maskinomsetjingsprosjekta til og frå norsk.

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.

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.

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.

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)

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!

(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

  • 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) does the moving.

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.

Notes on bokmål NP structure

Possible phrases to put in an NP slot (based on Dyvik 2000, p.11--13)) with Apertium tags:

  • året<n>
  • et<det><ind> år<n>
  • mange<adj> år<n>
  • de<det> mange<adj> årene<n>
  • alle<det><qnt> de<det><def> mange<adj> årene<n> dine<det><pos>
    • all the many years yours
  • alle<det><qnt> disse<det><def> dine<det><pos> seksti<num> år<n> som<cnjsub> gikk<vblex>
    • all these your sixty years which went
  • alle<det><qnt> som<cnjsub> gikk<vblex>
  • mange<adj>
  • mange<adj> raske<adj>
  • *raske<adj>
    • (That is, we can't say "Gi meg raske." (Give me quick (ones).) but we can say "Gi meg noen raske." (Give me some quick (ones).).)

Dictionary peculiarities in nn-nb

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...)

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.

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>

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>

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).

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.

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), har me for no berre lagt til ri etter alle ord med små bokstavar i CG-filane, dvs. der OBT har "<den>" har me "<den>"ri (ri var ikkje nytta i OBT frå før av). Så om me les «Den var her.» vil lt-proc gi ^Den/Den<det>..., utan ri ville regelen for ordet «den» ikkje køyrt.

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 ndomains, only domains. The last half is "heuristic" (ie. safer rules get tried first).

Testing

Ressursar

Verkt(ø)y