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
Model tree for linguardia/opus-mt-en-pgm
Base model
Helsinki-NLP/opus-mt-en-mul