opus-mt-en-pgm: English to Para-Germanic

Translates English into Para-Germanic, a speakable Proto-Germanic.

Proto-Germanic, the ancestor of English, German, Dutch, the Nordic languages and Gothic, was never written down; linguists reconstruct it from its daughters and disagree on details. Para-Germanic follows one reconstruction (Ringe 2006, Kroonen 2013) and answers every open question with one stated choice, kept everywhere. That makes it a para-language: a variety that could plausibly have been spoken alongside the real one, not a claim about exactly what was said. Every choice, with its main alternative, is on the positions page.

Its spelling is phonemic and types on any phone keyboard: doubled vowels for length (oo), ou for the overlong vowel, a final -hn for a nasal vowel (bookuhn "book", acc.), th for þ, y for j, q for kw.

  • Try it: the Space runs this model in the browser, with the engine, speech and a word-by-word breakdown.
  • Learn it: the course on Linguardia, where each word's popup shows where it comes from.

The model writes a grammar plan, the engine spells it

I bought a new car yesterday.
-> ek$nom yesterday new%acc.sg.m car#acc.sg buy@1sg.prt .
-> Ek gestra niwyanoohn selbawagnahn kaupoodee.

The language's grammar engine (engine/engine.js, lexicon in engine/engine-lex.json, a line-for-line port of the Python engine, identical on all 97,403 forms) turns the plan into words, so every form is one the grammar makes. A word the lexicon lacks stays visible as an English key instead of a confident guess.

Plan syntax: word@person.mood verb (prs, prt, opt, imp, inf), word#case.number noun (nom, acc, gen, dat), word%[cmp.|sup.]case.number.gender[.wk] adjective, word$case pronoun, N! numeral, a bare word is a particle or preposition.

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tok = AutoTokenizer.from_pretrained("linguardia/opus-mt-en-pgm")
model = AutoModelForSeq2SeqLM.from_pretrained("linguardia/opus-mt-en-pgm")
batch = tok([">>pgm<< The children are playing in the snow."], return_tensors="pt")
plan = tok.batch_decode(model.generate(**batch, num_beams=5), skip_special_tokens=True)[0]

Vocabulary

Every word is marked: attested Proto-Germanic (checked twice against Kroonen, Ringe and the daughters), a loan Proto-Germanic really made (wīną, strātō, kattuz), a regular derivation, or a coinage. It borrows nothing Proto-Germanic did not: modern words are built from old ones, often as calques of the real etymology (telephone ferrastebnoo "far-voice", car selbawagnaz "self-wagon", school liznahuusahn "learning-house").

Training data

The Para-Indo-European translator's grammar plans (17,552 written sentences, x3, and 110,000 meaning frames), converted mechanically to Proto-Germanic (cases, prepositions, tense, the impersonal man, subject pronouns), on a 4,600-word lexicon. Warm-started from linguardia/opus-mt-en-pie. None of the course's 2,000 sentences are trained on.

Evaluation

The course's own held-out sentences, plans spelled by the engine:

split sentences chrF BLEU exact plans fully spellable
dev 1,000 72.94 45.68 25.0% 95.7%
test 1,000 72.59 44.06 22.3% 96.7%

Scored in the current, phonemic spelling (references spelled from their plans by the same engine). The final checkpoint is used; the lowest-validation-loss one scored 3 chrF lower.

Limits

  • A reconstruction of a reconstruction: a well-informed guess, not attested speech.
  • It sometimes writes a dummy "it" before weather verbs and rarely uses the reflexive possessive siinaz; both come from the converted training data.
  • Long or complex English degrades quickly; the training sentences are short.

Licence

Base model Helsinki-NLP/opus-mt-en-mul, Apache-2.0. Data, engine and lexicon by Linguardia. This finetune: Apache-2.0.

Downloads last month
8
Safetensors
Model size
77M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for linguardia/opus-mt-en-pgm

Finetuned
(39)
this model

Space using linguardia/opus-mt-en-pgm 1