DEV Community

Multigrid
Multigrid

Posted on • Originally published at multigrid.ai

Norwegian Bokmål and Nynorsk in AI-Generated Text

There is no such thing as writing something in neutral Norwegian. Every Norwegian sentence you commit to a page is in Bokmål or in Nynorsk, and a model given the word “Norwegian” has to choose for you. It always chooses the same one.

Two written standards, no neutral one

Norway standardises writing, not speech. Bokmål descends from the Danish written norm used during the union with Denmark, progressively Norwegianised through the twentieth century. Nynorsk was constructed in the 1850s by Ivar Aasen from rural dialects, deliberately as a written form that owed nothing to Danish. Both are official. Both are taught. Neither is a dialect of the other, and neither corresponds to how anybody speaks — spoken Norwegian is dialect, and a speaker from Bergen writing Bokmål is not writing the way they talk any more than a speaker from Oslo writing Nynorsk would be.

The practical consequence for anything generated: there is no fallback. In German you can write something that is unmarked between Germany and Austria and be understood as merely standard. In Norwegian, roughly every third function word is a fork. Choosing wrongly does not read as neutral; it reads as the other standard.

The language tags encode the same fork. The IANA language subtag registry carries nb for Bokmål and nn for Nynorsk as distinct subtags, with no as the macrolanguage covering both. If your system stores a locale of no or no-NO, it has recorded the ambiguity rather than resolved it, and every downstream component — the prompt, the spell-checker, the translation memory — will resolve it independently and possibly differently.

One sentence, both standards

The differences are not stylistic. They are in the highest-frequency words in the language, which is why the two forms are instantly distinguishable to a reader and why a mixed text is instantly wrong.

Bokmål   Jeg vet ikke hva hun heter, men vi kan spørre henne i morgen.
Nynorsk  Eg  veit ikkje kva ho  heiter, men vi kan spørje henne i morgon.
         ^^  ^^^^ ^^^^^ ^^^ ^^  ^^^^^^                ^^^^^^        ^^^^^^

English  I don't know what she is called, but we can ask her tomorrow.
Enter fullscreen mode Exit fullscreen mode

Six changes in a fourteen-word sentence, and five of them are in words that appear in almost any paragraph. That density is what makes the choice unavoidable and what makes it easy to verify: you do not need to read Norwegian to audit the output, you need a word list.

Bokmål         Nynorsk          gloss
jeg            eg               I
ikke           ikkje            not
hva            kva              what
hvem           kven             who
hvordan        korleis          how
hvorfor        kvifor           why
hun            ho               she
de / dem       dei              they / them
fra            frå              from
nå             no               now
mye            mykje            much
noe            noko             something
være           vere / vera      to be
komme          kome / koma      to come
skrev          skreiv           wrote
kastet         kasta            threw
Enter fullscreen mode Exit fullscreen mode

Two notes on reading that list. Bokmål permits kasta alongside kastet and boka alongside boken, so a Nynorsk-side form appearing in Bokmål text is often legal; the inference runs one way only. And Nynorsk no means “now”, which collides with the macrolanguage tag if you are grepping mechanically — match on ikkje, kva and eg instead, which have no Bokmål reading at all.

Why a model defaults to Bokmål

Bokmål is the written form of the large majority of Norwegian publishing: national newspapers, most public administration, most commercial text, most of the Norwegian web. Språkrådet, the Language Council of Norway, publishes the school statistics, and Nynorsk is the primary written form for a clear minority of pupils, concentrated in the western counties. Nynorsk Wikipedia exists as a separate project from Bokmål Wikipedia and is substantially smaller.

A model trained on crawled text inherits that ratio directly. Nothing in the training objective knows the two are co-official; it knows only that after Norwegian-looking context, ikke is far more probable than ikkje. Sampling then does what sampling does. This is the same mechanism that produces flattened, unregional Spanish, except that in Norwegian the flattening is not toward a neutral centre — there is no centre — it is toward one of the two real options.

Norway’s Language Act, in force since 2022 and published by Lovdata, requires central state bodies to use both written standards, with a minimum share for each. If you are generating text for a Norwegian public-sector audience, the standard is a compliance question and not a preference.

The real failure: Bokmål with Nynorsk seasoning

Asking for Nynorsk rarely produces Bokmål outright. It produces something worse to catch: a Bokmål skeleton with the most famous Nynorsk words substituted in. Eg and ikkje arrive because they are the two everyone knows; hvordan, noe and skrev survive underneath because the model is completing from a Bokmål prior and only the marked lexical items were overridden.

Two structural things leak even when the vocabulary is clean. Nynorsk has no -et weak past ending, so any -et verb form is a tell. And Nynorsk resists the passive and the noun-heavy constructions that administrative Bokmål is full of — a Nynorsk text that reads like a translated Bokmål circular is grammatically valid and still obviously not written by a Nynorsk writer. This is exactly the carry-over problem described in writing prompts natively rather than translating them, happening one level down.

The degradation is also positional. A short answer often comes back clean; the fourth paragraph drifts. Each token is sampled from a distribution that the instruction shifted but did not replace, and the longer the generation, the more the majority prior reasserts itself. Test on the length you actually ship, not on a two-sentence probe.

Asking for one, and checking you got it

  • Name the standard, never the language. “Norsk” is under-specified. “Skriv på nynorsk” or “Skriv på bokmål” is not.
  • Store nb or nn, never no. If the locale reaching your prompt template is a macrolanguage tag, the choice is being made by whichever component looks at it last. See putting the language into a prompt template as a variable.
  • Give one native example. A short paragraph of real Nynorsk in the prompt constrains the form far harder than the instruction does, for the reasons set out in writing few-shot examples in the target language.
  • Grep, do not read. A regex for \b(ikke|jeg|hva|hvordan|hvorfor|hun|dem|fra)\b over text that is supposed to be Nynorsk is a complete automated check, and it catches the hybrid case that a human skim misses.
  • Have a Nynorsk reader sign off once. The word list catches lexical drift. It does not catch Bokmål syntax wearing Nynorsk vocabulary, and no mechanical check does.

Related

Top comments (0)