Add first three key models
Browse files- README.md +50 -0
- copiale/README.md +11 -0
- copiale/copiale_key.tsv +54 -0
- copiale/copiale_model.pt +3 -0
- copiale/copiale_training_report.txt +85 -0
- index.json +417 -0
- maximilian_1472/README.md +11 -0
- maximilian_1472/maximilian_1472_key.tsv +44 -0
- maximilian_1472/maximilian_1472_model.pt +3 -0
- maximilian_1472/maximilian_1472_training_report.txt +74 -0
- maximilian_II/README.md +11 -0
- maximilian_II/maximilian_II_key.tsv +47 -0
- maximilian_II/maximilian_II_model.pt +3 -0
- maximilian_II/maximilian_II_training_report.txt +79 -0
README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: cc-by-4.0
|
| 3 |
+
tags:
|
| 4 |
+
- cryptology
|
| 5 |
+
- historical-cryptology
|
| 6 |
+
- homophonic-cipher
|
| 7 |
+
- substitution-cipher
|
| 8 |
+
- decipherment
|
| 9 |
+
library_name: pytorch
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
# Shared decipherment models for historical substitution ciphers
|
| 14 |
+
|
| 15 |
+
Each model in this collection has been trained for **one known historical cipher key**. It reads transcribed ciphertexts written with that key and produces a draft decipherment. Testing a ciphertext against all models shows which known key, if any, it was written with.
|
| 16 |
+
|
| 17 |
+
Use the models with the notebooks or command-line tool at **https://github.com/mbruton0426/keybridge**. You do not need to download anything from here by hand.
|
| 18 |
+
|
| 19 |
+
## Contents
|
| 20 |
+
|
| 21 |
+
| File | Purpose |
|
| 22 |
+
|------|---------|
|
| 23 |
+
| `index.json` | Lists every model with its symbols, transcription format, language and source. The tools read this file first. |
|
| 24 |
+
| `<model id>/<model id>_model.pt` | The trained model. |
|
| 25 |
+
| `<model id>/<model id>_key.tsv` | The key it was trained on. |
|
| 26 |
+
| `<model id>/<model id>_training_report.txt` | Training settings and accuracy on synthetic text. |
|
| 27 |
+
| `<model id>/README.md` | Description, source of the key, and contributor. |
|
| 28 |
+
| `submissions/` | Models contributed by others, waiting for review. |
|
| 29 |
+
|
| 30 |
+
## Models
|
| 31 |
+
|
| 32 |
+
| ID | Cipher | Transcription format | Source of the key |
|
| 33 |
+
|----|--------|----------------------|-------------------|
|
| 34 |
+
| `maximilian_II` | Letters of Maximilian II (1575) | symbols separated by spaces (single characters; convert one-character-per-symbol files with `keybridge convert`) | DECODE IDs 1471, 1412, 1407 |
|
| 35 |
+
| `maximilian_1472` | Maximilian letter with a different key | symbols separated by spaces (named symbols) | DECODE IDs 1472, 1473 |
|
| 36 |
+
| `copiale` | Copiale cipher | symbols separated by spaces | DECODE ID 2 |
|
| 37 |
+
|
| 38 |
+
All three were trained on 5,000 synthetic examples from the built-in English HistCiph plaintext, with rare-unit insertion at 0.02 (see each model's training report).
|
| 39 |
+
|
| 40 |
+
## Contributing a model
|
| 41 |
+
|
| 42 |
+
Train a model for your key with notebook ① and tick *Share my model*. Your contribution will be reviewed and added to `index.json`.
|
| 43 |
+
|
| 44 |
+
## Licence and citation
|
| 45 |
+
|
| 46 |
+
All models and keys are released under **CC BY 4.0**: you may use and adapt them for any purpose, provided you give appropriate credit. Please cite:
|
| 47 |
+
|
| 48 |
+
> [citation to be added] <!-- PLACEHOLDER -->
|
| 49 |
+
|
| 50 |
+
When you use a specific model, please also credit the original source of its key, given in that model's README.
|
copiale/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# copiale
|
| 2 |
+
|
| 3 |
+
- **Cipher:** Copiale cipher
|
| 4 |
+
- **Key source:** DECODE ID 2
|
| 5 |
+
- **Transcription format:** named symbols separated by spaces
|
| 6 |
+
- **Plaintext language of the cipher:** de
|
| 7 |
+
- **Training plaintext:** built-in English (HistCiph), 5,000 examples × 50 symbols, rare-unit insertion 0.02
|
| 8 |
+
- **Contributed by:** Micaella Bruton
|
| 9 |
+
- **Licence:** CC BY 4.0
|
| 10 |
+
|
| 11 |
+
See `copiale_training_report.txt` for all settings and the accuracy on unseen synthetic text.
|
copiale/copiale_key.tsv
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copiale cipher key (DECODE ID 2). Transcription format: symbols separated by spaces.
|
| 2 |
+
# eM and eN share the symbol "uu" in the original key; only EN is listed here.
|
| 3 |
+
plaintext ciphertext whole_word
|
| 4 |
+
<SPACE> "a" "b" "c" "ds" "e" "f" "ft" "gs" "h" "i" "k" "l" "m" "n" "o" "p" "q" "r" "s" "longs" "t" "u" "v" "w" "x" "y" "zs"
|
| 5 |
+
"A" "p." "n." "h."
|
| 6 |
+
"Ä" "fem"
|
| 7 |
+
"B" "sqp"
|
| 8 |
+
"C" "bas"
|
| 9 |
+
"CH" "arr"
|
| 10 |
+
"D" "pi" "z"
|
| 11 |
+
"E" "ah" "eh" "ih" "oh" "uh" "grr" "zzz"
|
| 12 |
+
"EN" "uu"
|
| 13 |
+
"F" "sqi"
|
| 14 |
+
"G" "del" "x."
|
| 15 |
+
"H" "hd"
|
| 16 |
+
"I" "y.." "ns" "iot"
|
| 17 |
+
"J" "car"
|
| 18 |
+
"K" "gam"
|
| 19 |
+
"L" "c."
|
| 20 |
+
"M" "plus"
|
| 21 |
+
"N" "mu" "ru" "nu" "g"
|
| 22 |
+
"O" "tri" "o."
|
| 23 |
+
"Ö" "no"
|
| 24 |
+
"P" "d"
|
| 25 |
+
"Q" "qua"
|
| 26 |
+
"R" "r." "three" "j"
|
| 27 |
+
"S" "bar"
|
| 28 |
+
"SCH" "cross"
|
| 29 |
+
"SS" "grc"
|
| 30 |
+
"ST" "hk"
|
| 31 |
+
"T" "lam"
|
| 32 |
+
"U" "ki" "ni"
|
| 33 |
+
"Ü" "grl"
|
| 34 |
+
"V" "mal"
|
| 35 |
+
"W" "m."
|
| 36 |
+
"X" "pipe"
|
| 37 |
+
"Y" "inf"
|
| 38 |
+
"Z" "s."
|
| 39 |
+
<DOUBLE> ":"
|
| 40 |
+
"MASTER" "nee" yes
|
| 41 |
+
"LODGE" "tri.." yes
|
| 42 |
+
"SOCIETY" "o.." yes
|
| 43 |
+
"OCULIST" "lip" yes
|
| 44 |
+
"SECRET" "star" yes
|
| 45 |
+
"FREEMASON" "bigx" yes
|
| 46 |
+
"TABLE" "gate" yes
|
| 47 |
+
"POWER" "toe" yes
|
| 48 |
+
"POSITION OF FEET" "bigl" yes
|
| 49 |
+
"GOD" "sci" yes
|
| 50 |
+
"?" "tribig"
|
| 51 |
+
":)" "smir"
|
| 52 |
+
"(:" "smil"
|
| 53 |
+
"." "."
|
| 54 |
+
"…" "…"
|
copiale/copiale_model.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:62068412c7fb616a98f56e138a2bce3e7380bc953a14ffeb7f1c6201ec9b7e6e
|
| 3 |
+
size 10355937
|
copiale/copiale_training_report.txt
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training report for 'copiale_5k_english_rares'
|
| 2 |
+
|
| 3 |
+
Settings
|
| 4 |
+
{
|
| 5 |
+
"project": "copiale_5k_english_rares",
|
| 6 |
+
"symbol_format": "symbols separated by spaces",
|
| 7 |
+
"plaintext_source": "English",
|
| 8 |
+
"plaintext_files": [],
|
| 9 |
+
"letter_replacements": "",
|
| 10 |
+
"word_spaces": "insert at random",
|
| 11 |
+
"training_examples": 5000,
|
| 12 |
+
"sequence_length": 50,
|
| 13 |
+
"null_rate": 0.05,
|
| 14 |
+
"double_rate": 0.5,
|
| 15 |
+
"rare_unit_rate": 0.02,
|
| 16 |
+
"search_trials": 20,
|
| 17 |
+
"seed": 9,
|
| 18 |
+
"max_epochs": 100,
|
| 19 |
+
"package_version": "1.0.0",
|
| 20 |
+
"created": "2026-10-13T18:53:46",
|
| 21 |
+
"key_file": "copiale_key.tsv"
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
Key
|
| 25 |
+
51 plaintext units written with 96 distinct cipher symbols (named).
|
| 26 |
+
Special units: <SPACE>, <DOUBLE>
|
| 27 |
+
Multi-letter units / nomenclature (17): (:, :), CH, EN, FREEMASON, GOD, LODGE, MASTER, OCULIST, POSITION OF FEET, POWER, SCH, SECRET, SOCIETY, SS, ST, TABLE
|
| 28 |
+
Whole-word only: FREEMASON, GOD, LODGE, MASTER, OCULIST, POSITION OF FEET, POWER, SECRET, SOCIETY, TABLE
|
| 29 |
+
|
| 30 |
+
Training data notes
|
| 31 |
+
Key units that occur fewer than 20 times: '(:', '.', ':)', '?', 'FREEMASON', 'GOD', 'LODGE', 'MASTER', 'OCULIST', 'POSITION OF FEET', 'POWER', 'SECRET', 'SOCIETY', 'TABLE', 'Ä', 'Ö', 'Ü', '…'
|
| 32 |
+
|
| 33 |
+
Model settings
|
| 34 |
+
{
|
| 35 |
+
"embedding_dim": 64,
|
| 36 |
+
"hidden_size": 320,
|
| 37 |
+
"num_layers": 2,
|
| 38 |
+
"num_heads": 1,
|
| 39 |
+
"dropout": 0.240148858687783,
|
| 40 |
+
"learning_rate": 0.00013871105837933085,
|
| 41 |
+
"batch_size": 32
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
Results
|
| 45 |
+
{
|
| 46 |
+
"synthetic_test_accuracy": 0.99996,
|
| 47 |
+
"synthetic_test_f1": 0.999940012845215,
|
| 48 |
+
"uncertain_share_in_key_reference": 0.00036,
|
| 49 |
+
"uncertain_share_scrambled_key_reference": 0.18957333333333334,
|
| 50 |
+
"units_not_in_training": [],
|
| 51 |
+
"training_minutes": 1.419196323553721,
|
| 52 |
+
"epochs": 30
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
Validation accuracy per round
|
| 56 |
+
1 0.9326
|
| 57 |
+
2 0.9977
|
| 58 |
+
3 0.9984
|
| 59 |
+
4 0.9986
|
| 60 |
+
5 0.9987
|
| 61 |
+
6 0.9994
|
| 62 |
+
7 0.9995
|
| 63 |
+
8 0.9996
|
| 64 |
+
9 0.9996
|
| 65 |
+
10 0.9996
|
| 66 |
+
11 0.9996
|
| 67 |
+
12 0.9996
|
| 68 |
+
13 0.9996
|
| 69 |
+
14 0.9996
|
| 70 |
+
15 0.9996
|
| 71 |
+
16 0.9997
|
| 72 |
+
17 0.9997
|
| 73 |
+
18 0.9997
|
| 74 |
+
19 0.9997
|
| 75 |
+
20 0.9998
|
| 76 |
+
21 0.9997
|
| 77 |
+
22 0.9998
|
| 78 |
+
23 0.9998
|
| 79 |
+
24 0.9998
|
| 80 |
+
25 0.9999
|
| 81 |
+
26 0.9999
|
| 82 |
+
27 1.0000
|
| 83 |
+
28 1.0000
|
| 84 |
+
29 1.0000
|
| 85 |
+
30 1.0000
|
index.json
ADDED
|
@@ -0,0 +1,417 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"index_version": 1,
|
| 3 |
+
"updated": "2026-10-14",
|
| 4 |
+
"license": "CC-BY-4.0",
|
| 5 |
+
"citation": "[citation to be added]",
|
| 6 |
+
"models": [
|
| 7 |
+
{
|
| 8 |
+
"id": "maximilian_II",
|
| 9 |
+
"name": "Letters of Maximilian II (1575)",
|
| 10 |
+
"path": "maximilian_II/maximilian_II_model.pt",
|
| 11 |
+
"key_file": "maximilian_II/maximilian_II_key.tsv",
|
| 12 |
+
"sha256": "330b4836f1eabbd31328b8ec5baa63ce33acf96997375b080574680a888212be",
|
| 13 |
+
"symbol_format": "symbols separated by spaces",
|
| 14 |
+
"symbol_type": "characters",
|
| 15 |
+
"symbols": [
|
| 16 |
+
"#",
|
| 17 |
+
"&",
|
| 18 |
+
"*",
|
| 19 |
+
"+",
|
| 20 |
+
"-",
|
| 21 |
+
".",
|
| 22 |
+
"/",
|
| 23 |
+
"0",
|
| 24 |
+
"1",
|
| 25 |
+
"2",
|
| 26 |
+
"3",
|
| 27 |
+
"4",
|
| 28 |
+
"5",
|
| 29 |
+
"6",
|
| 30 |
+
"7",
|
| 31 |
+
"8",
|
| 32 |
+
"9",
|
| 33 |
+
"B",
|
| 34 |
+
"C",
|
| 35 |
+
"D",
|
| 36 |
+
"E",
|
| 37 |
+
"F",
|
| 38 |
+
"G",
|
| 39 |
+
"H",
|
| 40 |
+
"I",
|
| 41 |
+
"J",
|
| 42 |
+
"K",
|
| 43 |
+
"L",
|
| 44 |
+
"M",
|
| 45 |
+
"O",
|
| 46 |
+
"P",
|
| 47 |
+
"Q",
|
| 48 |
+
"R",
|
| 49 |
+
"S",
|
| 50 |
+
"T",
|
| 51 |
+
"U",
|
| 52 |
+
"V",
|
| 53 |
+
"W",
|
| 54 |
+
"X",
|
| 55 |
+
"Y",
|
| 56 |
+
"Z",
|
| 57 |
+
"_",
|
| 58 |
+
"a",
|
| 59 |
+
"b",
|
| 60 |
+
"d",
|
| 61 |
+
"e",
|
| 62 |
+
"f",
|
| 63 |
+
"g",
|
| 64 |
+
"h",
|
| 65 |
+
"i",
|
| 66 |
+
"k",
|
| 67 |
+
"l",
|
| 68 |
+
"m",
|
| 69 |
+
"n",
|
| 70 |
+
"q",
|
| 71 |
+
"r",
|
| 72 |
+
"s",
|
| 73 |
+
"t",
|
| 74 |
+
"u",
|
| 75 |
+
"v",
|
| 76 |
+
"w",
|
| 77 |
+
"x",
|
| 78 |
+
"y",
|
| 79 |
+
"z",
|
| 80 |
+
"Ä",
|
| 81 |
+
"Ö",
|
| 82 |
+
"Ø",
|
| 83 |
+
"Ü",
|
| 84 |
+
"ä",
|
| 85 |
+
"ü",
|
| 86 |
+
"€"
|
| 87 |
+
],
|
| 88 |
+
"symbol_lengths": {
|
| 89 |
+
"1": 71
|
| 90 |
+
},
|
| 91 |
+
"plaintext_units": 45,
|
| 92 |
+
"letter_replacements": "J=I, V=U",
|
| 93 |
+
"plaintext_language": "de",
|
| 94 |
+
"training_plaintext": "English",
|
| 95 |
+
"period": "1575",
|
| 96 |
+
"source": "DECODE IDs 1471, 1412, 1407",
|
| 97 |
+
"contributor": "Micaella Bruton",
|
| 98 |
+
"training_examples": 5000,
|
| 99 |
+
"synthetic_test_accuracy": 0.9999599823922526,
|
| 100 |
+
"uncertain_share_in_key_reference": 0.00016007043098963545,
|
| 101 |
+
"uncertain_share_scrambled_key_reference": 0.15785612336094548,
|
| 102 |
+
"package_version": "1.0.0",
|
| 103 |
+
"added": "2026-10-14"
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"id": "maximilian_1472",
|
| 107 |
+
"name": "Maximilian letter with a different key",
|
| 108 |
+
"path": "maximilian_1472/maximilian_1472_model.pt",
|
| 109 |
+
"key_file": "maximilian_1472/maximilian_1472_key.tsv",
|
| 110 |
+
"sha256": "b96561044e3869b58981fc1cb8f1e4a6aea17199048e20fecf42ccf0be351b90",
|
| 111 |
+
"symbol_format": "symbols separated by spaces",
|
| 112 |
+
"symbol_type": "named",
|
| 113 |
+
"symbols": [
|
| 114 |
+
"+",
|
| 115 |
+
",",
|
| 116 |
+
",f",
|
| 117 |
+
".",
|
| 118 |
+
".Arrow",
|
| 119 |
+
".Scepter",
|
| 120 |
+
".f",
|
| 121 |
+
"1",
|
| 122 |
+
"2",
|
| 123 |
+
"2/z?",
|
| 124 |
+
"2^¨",
|
| 125 |
+
"3",
|
| 126 |
+
"3SmallGamma",
|
| 127 |
+
"4",
|
| 128 |
+
"4^.",
|
| 129 |
+
"4^¨",
|
| 130 |
+
"5",
|
| 131 |
+
"5/s?",
|
| 132 |
+
"5^¨",
|
| 133 |
+
"6",
|
| 134 |
+
"6/b?",
|
| 135 |
+
"8",
|
| 136 |
+
"8/b?",
|
| 137 |
+
"9",
|
| 138 |
+
"9^.",
|
| 139 |
+
":",
|
| 140 |
+
":4",
|
| 141 |
+
":H",
|
| 142 |
+
":Mu",
|
| 143 |
+
":Psi",
|
| 144 |
+
":ReversedSmallEpsilon",
|
| 145 |
+
"<SPACE>",
|
| 146 |
+
"Arrow",
|
| 147 |
+
"ArrowDivision",
|
| 148 |
+
"BallotScriptX",
|
| 149 |
+
"Cancer",
|
| 150 |
+
"CherokeeLetterDi",
|
| 151 |
+
"CircleWithDot",
|
| 152 |
+
"Division",
|
| 153 |
+
"Division_9",
|
| 154 |
+
"Epsilon",
|
| 155 |
+
"F",
|
| 156 |
+
"FishHook",
|
| 157 |
+
"Fountain",
|
| 158 |
+
"Gemini",
|
| 159 |
+
"Greater-thanSign",
|
| 160 |
+
"Greater-thanSign/d?",
|
| 161 |
+
"Greater-thanSign^H",
|
| 162 |
+
"Greater-thanSign_.",
|
| 163 |
+
"GreekCapitalRho",
|
| 164 |
+
"GreekSmallRho",
|
| 165 |
+
"GreekSmallRho?",
|
| 166 |
+
"H",
|
| 167 |
+
"Leo",
|
| 168 |
+
"Libra",
|
| 169 |
+
"LinkSymbol",
|
| 170 |
+
"M",
|
| 171 |
+
"MWithMiddleLine",
|
| 172 |
+
"Mercury",
|
| 173 |
+
"Mu",
|
| 174 |
+
"Mu^~",
|
| 175 |
+
"MusicalNote",
|
| 176 |
+
"Nauarieñ>",
|
| 177 |
+
"O",
|
| 178 |
+
"Omega",
|
| 179 |
+
"Omega?",
|
| 180 |
+
"Omega^_",
|
| 181 |
+
"Omega^¨",
|
| 182 |
+
"P",
|
| 183 |
+
"Pisces",
|
| 184 |
+
"Psi",
|
| 185 |
+
"Psi/+?",
|
| 186 |
+
"Psi9?",
|
| 187 |
+
"PsiEpsilon",
|
| 188 |
+
"PsiM",
|
| 189 |
+
"PsiOmega",
|
| 190 |
+
"PsiVerticalDivision",
|
| 191 |
+
"Psi_.",
|
| 192 |
+
"PsigVariant",
|
| 193 |
+
"ReversedEpsilon",
|
| 194 |
+
"ReversedSmallEpsilon",
|
| 195 |
+
"Scepter",
|
| 196 |
+
"ScepterDivision",
|
| 197 |
+
"ScepterSmallTheta",
|
| 198 |
+
"SmallGamma",
|
| 199 |
+
"SmallTheta",
|
| 200 |
+
"SmallTheta?",
|
| 201 |
+
"SmallTheta^.",
|
| 202 |
+
"SmallThetag",
|
| 203 |
+
"TaurusVerticalBar",
|
| 204 |
+
"UN",
|
| 205 |
+
"Union",
|
| 206 |
+
"Union/UnionWithDot?",
|
| 207 |
+
"UnionArrow",
|
| 208 |
+
"UnionWithDot",
|
| 209 |
+
"UnionWithDot/UnionWithTwoDot?",
|
| 210 |
+
"UnionWithTwoDot",
|
| 211 |
+
"UnionWithTwoDot/UnionWithDot?",
|
| 212 |
+
"UnionWithTwoDot^.",
|
| 213 |
+
"UnionWithTwoDotn",
|
| 214 |
+
"Unionf",
|
| 215 |
+
"VerticalDivision",
|
| 216 |
+
"a",
|
| 217 |
+
"b",
|
| 218 |
+
"b/6?",
|
| 219 |
+
"b^_",
|
| 220 |
+
"d",
|
| 221 |
+
"eLinkSymbol",
|
| 222 |
+
"eWithTail",
|
| 223 |
+
"f",
|
| 224 |
+
"g",
|
| 225 |
+
"gVariant",
|
| 226 |
+
"h",
|
| 227 |
+
"k",
|
| 228 |
+
"m",
|
| 229 |
+
"m_Loop",
|
| 230 |
+
"n",
|
| 231 |
+
"o",
|
| 232 |
+
"o+waw",
|
| 233 |
+
"o+wawVerticalLine",
|
| 234 |
+
"oOmega",
|
| 235 |
+
"oUnionWithTwoDot",
|
| 236 |
+
"p",
|
| 237 |
+
"q",
|
| 238 |
+
"q__",
|
| 239 |
+
"q___",
|
| 240 |
+
"r",
|
| 241 |
+
"s",
|
| 242 |
+
"s/5?",
|
| 243 |
+
"s/5?^¨",
|
| 244 |
+
"s^¨",
|
| 245 |
+
"t",
|
| 246 |
+
"x",
|
| 247 |
+
"z",
|
| 248 |
+
"z/2?"
|
| 249 |
+
],
|
| 250 |
+
"symbol_lengths": {
|
| 251 |
+
"1": 34,
|
| 252 |
+
"2": 6,
|
| 253 |
+
"6": 10,
|
| 254 |
+
"8": 6,
|
| 255 |
+
"4": 11,
|
| 256 |
+
"3": 11,
|
| 257 |
+
"11": 6,
|
| 258 |
+
"21": 1,
|
| 259 |
+
"7": 6,
|
| 260 |
+
"5": 7,
|
| 261 |
+
"13": 4,
|
| 262 |
+
"16": 5,
|
| 263 |
+
"10": 6,
|
| 264 |
+
"19": 3,
|
| 265 |
+
"18": 2,
|
| 266 |
+
"15": 5,
|
| 267 |
+
"14": 1,
|
| 268 |
+
"9": 2,
|
| 269 |
+
"20": 1,
|
| 270 |
+
"17": 4,
|
| 271 |
+
"12": 2,
|
| 272 |
+
"29": 2
|
| 273 |
+
},
|
| 274 |
+
"plaintext_units": 42,
|
| 275 |
+
"letter_replacements": "V=U",
|
| 276 |
+
"plaintext_language": "de",
|
| 277 |
+
"training_plaintext": "English",
|
| 278 |
+
"period": "FILL IN",
|
| 279 |
+
"source": "DECODE IDs 1472, 1473",
|
| 280 |
+
"contributor": "Micaella Bruton",
|
| 281 |
+
"training_examples": 5000,
|
| 282 |
+
"synthetic_test_accuracy": 1.0,
|
| 283 |
+
"uncertain_share_in_key_reference": 0.0007206053084591056,
|
| 284 |
+
"uncertain_share_scrambled_key_reference": 0.1847151607350174,
|
| 285 |
+
"package_version": "1.0.0",
|
| 286 |
+
"added": "2026-10-14"
|
| 287 |
+
},
|
| 288 |
+
{
|
| 289 |
+
"id": "copiale",
|
| 290 |
+
"name": "Copiale cipher",
|
| 291 |
+
"path": "copiale/copiale_model.pt",
|
| 292 |
+
"key_file": "copiale/copiale_key.tsv",
|
| 293 |
+
"sha256": "62068412c7fb616a98f56e138a2bce3e7380bc953a14ffeb7f1c6201ec9b7e6e",
|
| 294 |
+
"symbol_format": "symbols separated by spaces",
|
| 295 |
+
"symbol_type": "named",
|
| 296 |
+
"symbols": [
|
| 297 |
+
".",
|
| 298 |
+
":",
|
| 299 |
+
"a",
|
| 300 |
+
"ah",
|
| 301 |
+
"arr",
|
| 302 |
+
"b",
|
| 303 |
+
"bar",
|
| 304 |
+
"bas",
|
| 305 |
+
"bigl",
|
| 306 |
+
"bigx",
|
| 307 |
+
"c",
|
| 308 |
+
"c.",
|
| 309 |
+
"car",
|
| 310 |
+
"cross",
|
| 311 |
+
"d",
|
| 312 |
+
"del",
|
| 313 |
+
"ds",
|
| 314 |
+
"e",
|
| 315 |
+
"eh",
|
| 316 |
+
"f",
|
| 317 |
+
"fem",
|
| 318 |
+
"ft",
|
| 319 |
+
"g",
|
| 320 |
+
"gam",
|
| 321 |
+
"gate",
|
| 322 |
+
"grc",
|
| 323 |
+
"grl",
|
| 324 |
+
"grr",
|
| 325 |
+
"gs",
|
| 326 |
+
"h",
|
| 327 |
+
"h.",
|
| 328 |
+
"hd",
|
| 329 |
+
"hk",
|
| 330 |
+
"i",
|
| 331 |
+
"ih",
|
| 332 |
+
"inf",
|
| 333 |
+
"iot",
|
| 334 |
+
"j",
|
| 335 |
+
"k",
|
| 336 |
+
"ki",
|
| 337 |
+
"l",
|
| 338 |
+
"lam",
|
| 339 |
+
"lip",
|
| 340 |
+
"longs",
|
| 341 |
+
"m",
|
| 342 |
+
"m.",
|
| 343 |
+
"mal",
|
| 344 |
+
"mu",
|
| 345 |
+
"n",
|
| 346 |
+
"n.",
|
| 347 |
+
"nee",
|
| 348 |
+
"ni",
|
| 349 |
+
"no",
|
| 350 |
+
"ns",
|
| 351 |
+
"nu",
|
| 352 |
+
"o",
|
| 353 |
+
"o.",
|
| 354 |
+
"o..",
|
| 355 |
+
"oh",
|
| 356 |
+
"p",
|
| 357 |
+
"p.",
|
| 358 |
+
"pi",
|
| 359 |
+
"pipe",
|
| 360 |
+
"plus",
|
| 361 |
+
"q",
|
| 362 |
+
"qua",
|
| 363 |
+
"r",
|
| 364 |
+
"r.",
|
| 365 |
+
"ru",
|
| 366 |
+
"s",
|
| 367 |
+
"s.",
|
| 368 |
+
"sci",
|
| 369 |
+
"smil",
|
| 370 |
+
"smir",
|
| 371 |
+
"sqi",
|
| 372 |
+
"sqp",
|
| 373 |
+
"star",
|
| 374 |
+
"t",
|
| 375 |
+
"three",
|
| 376 |
+
"toe",
|
| 377 |
+
"tri",
|
| 378 |
+
"tri..",
|
| 379 |
+
"tribig",
|
| 380 |
+
"u",
|
| 381 |
+
"uh",
|
| 382 |
+
"uu",
|
| 383 |
+
"v",
|
| 384 |
+
"w",
|
| 385 |
+
"x",
|
| 386 |
+
"x.",
|
| 387 |
+
"y",
|
| 388 |
+
"y..",
|
| 389 |
+
"z",
|
| 390 |
+
"zs",
|
| 391 |
+
"zzz",
|
| 392 |
+
"…"
|
| 393 |
+
],
|
| 394 |
+
"symbol_lengths": {
|
| 395 |
+
"1": 29,
|
| 396 |
+
"2": 29,
|
| 397 |
+
"3": 25,
|
| 398 |
+
"4": 8,
|
| 399 |
+
"5": 4,
|
| 400 |
+
"6": 1
|
| 401 |
+
},
|
| 402 |
+
"plaintext_units": 51,
|
| 403 |
+
"letter_replacements": "",
|
| 404 |
+
"plaintext_language": "de",
|
| 405 |
+
"training_plaintext": "English",
|
| 406 |
+
"period": "18th century",
|
| 407 |
+
"source": "DECODE ID 2",
|
| 408 |
+
"contributor": "Micaella Bruton",
|
| 409 |
+
"training_examples": 5000,
|
| 410 |
+
"synthetic_test_accuracy": 0.99996,
|
| 411 |
+
"uncertain_share_in_key_reference": 0.00036,
|
| 412 |
+
"uncertain_share_scrambled_key_reference": 0.18957333333333334,
|
| 413 |
+
"package_version": "1.0.0",
|
| 414 |
+
"added": "2026-10-14"
|
| 415 |
+
}
|
| 416 |
+
]
|
| 417 |
+
}
|
maximilian_1472/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# maximilian_1472
|
| 2 |
+
|
| 3 |
+
- **Cipher:** Maximilian letter with a different key
|
| 4 |
+
- **Key source:** DECODE IDs 1472, 1473
|
| 5 |
+
- **Transcription format:** named symbols separated by spaces; the word divider is written <SPACE>
|
| 6 |
+
- **Plaintext language of the cipher:** de
|
| 7 |
+
- **Training plaintext:** built-in English (HistCiph), 5,000 examples × 50 symbols, rare-unit insertion 0.02
|
| 8 |
+
- **Contributed by:** Micaella Bruton
|
| 9 |
+
- **Licence:** CC BY 4.0
|
| 10 |
+
|
| 11 |
+
See `maximilian_1472_training_report.txt` for all settings and the accuracy on unseen synthetic text.
|
maximilian_1472/maximilian_1472_key.tsv
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Key for Maximilian II letter 1472 (different key). Built from maximillian_key_symbols in rw_keys.py. Symbols separated by spaces; <SPACE> written in the transcription is a cipher symbol (word divider).
|
| 2 |
+
plaintext ciphertext whole_word
|
| 3 |
+
<NULL> "BallotScriptX" "GreekSmallRho" "o+wawVerticalLine" "Pisces"
|
| 4 |
+
<SPACE> "<SPACE>" "PsiM"
|
| 5 |
+
"." "."
|
| 6 |
+
"," ","
|
| 7 |
+
":" ":"
|
| 8 |
+
"A" "Omega" "LinkSymbol" "CherokeeLetterDi" "PsiOmega" "z/2?" "2"
|
| 9 |
+
"B" "a" ":" "3SmallGamma"
|
| 10 |
+
"C" "6/b?" "b/6?" "6" "SmallThetag"
|
| 11 |
+
"D" "f" "g" "x" "o+waw"
|
| 12 |
+
"E" "9" "Union" ".Arrow" ".f" "Psi9?" "+" "Union/UnionWithDot?"
|
| 13 |
+
"F" "h" "CircleWithDot"
|
| 14 |
+
"G" "q" "Libra"
|
| 15 |
+
"H" "SmallTheta" "oOmega" "t" "ScepterSmallTheta" "SmallTheta^." "Omega^_"
|
| 16 |
+
"I" "SmallGamma" "8" "Greater-thanSign" "Nauarieñ>" "F" "Greater-thanSign_." "8/b?"
|
| 17 |
+
"J" "PsigVariant" "oUnionWithTwoDot"
|
| 18 |
+
"K" "M" "m"
|
| 19 |
+
"L" "r" "UN" "1" "P" "p" "UnionWithDot"
|
| 20 |
+
"M" "Epsilon" "Mu^~" ",f" "UnionWithTwoDotn" "MusicalNote" "Omega?"
|
| 21 |
+
"N" "Psi" "Scepter" "PsiEpsilon" ":Psi" "Psi/+?"
|
| 22 |
+
"O" "ReversedEpsilon" "5/s?" "s/5?" "k" "5" "s" "GreekSmallRho?"
|
| 23 |
+
"P" "n" "3" "eLinkSymbol"
|
| 24 |
+
"R" "o" "d" ":ReversedSmallEpsilon" "SmallTheta?" "Greater-thanSign^H" "O" "Greater-thanSign/d?"
|
| 25 |
+
"S" "H" "PsiVerticalDivision" "Psi_." ":H"
|
| 26 |
+
"T" "gVariant" "Mu" "UnionArrow" "9^." ":Mu"
|
| 27 |
+
"U" "4" "z" "Unionf" "2/z?" ":4" "UnionWithDot" "UnionWithTwoDot/UnionWithDot?"
|
| 28 |
+
"W" "UnionWithTwoDot" ".Scepter" "Division_9" "UnionWithDot/UnionWithTwoDot?" "UnionWithTwoDot^."
|
| 29 |
+
"X" "ArrowDivision"
|
| 30 |
+
"Z" "Division" "VerticalDivision" "eWithTail"
|
| 31 |
+
"Ä" "Omega^¨"
|
| 32 |
+
"Ü" "2^¨" "4^¨" "4^."
|
| 33 |
+
"Ö" "GreekCapitalRho" "5^¨" "s/5?^¨" "s^¨"
|
| 34 |
+
"CH" "b" "b^_"
|
| 35 |
+
"SS" "ScepterDivision" "Cancer"
|
| 36 |
+
"LL" "Mercury" "TaurusVerticalBar"
|
| 37 |
+
"NN" "Fountain"
|
| 38 |
+
"MM" "ReversedSmallEpsilon"
|
| 39 |
+
"TT" "Leo"
|
| 40 |
+
"RR" "Gemini"
|
| 41 |
+
"ST" "m_Loop" "FishHook"
|
| 42 |
+
"UND" "Arrow"
|
| 43 |
+
"SCH" "q___" "q__"
|
| 44 |
+
"HOHEIT" "MWithMiddleLine"
|
maximilian_1472/maximilian_1472_model.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b96561044e3869b58981fc1cb8f1e4a6aea17199048e20fecf42ccf0be351b90
|
| 3 |
+
size 10339225
|
maximilian_1472/maximilian_1472_training_report.txt
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training report for 'maximilian_1472_5k_english_rares'
|
| 2 |
+
|
| 3 |
+
Settings
|
| 4 |
+
{
|
| 5 |
+
"project": "maximilian_1472_5k_english_rares",
|
| 6 |
+
"symbol_format": "symbols separated by spaces",
|
| 7 |
+
"plaintext_source": "English",
|
| 8 |
+
"plaintext_files": [],
|
| 9 |
+
"letter_replacements": "V=U",
|
| 10 |
+
"word_spaces": "keep real word boundaries",
|
| 11 |
+
"training_examples": 5000,
|
| 12 |
+
"sequence_length": 50,
|
| 13 |
+
"null_rate": 0.05,
|
| 14 |
+
"double_rate": 0.5,
|
| 15 |
+
"rare_unit_rate": 0.02,
|
| 16 |
+
"search_trials": 20,
|
| 17 |
+
"seed": 9,
|
| 18 |
+
"max_epochs": 100,
|
| 19 |
+
"package_version": "1.0.0",
|
| 20 |
+
"created": "2026-10-13T18:51:27",
|
| 21 |
+
"key_file": "maximilian_1472_key.tsv"
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
Key
|
| 25 |
+
42 plaintext units written with 135 distinct cipher symbols (named).
|
| 26 |
+
Special units: <SPACE>, <NULL>
|
| 27 |
+
Multi-letter units / nomenclature (11): CH, HOHEIT, LL, MM, NN, RR, SCH, SS, ST, TT, UND
|
| 28 |
+
key note: Line 9: symbol ":" is listed for both ':' and 'B'. Keeping ':'; a symbol can only stand for one thing.
|
| 29 |
+
key note: Line 27: symbol "UnionWithDot" is listed for both 'L' and 'U'. Keeping 'L'; a symbol can only stand for one thing.
|
| 30 |
+
|
| 31 |
+
Training data notes
|
| 32 |
+
The plaintext has (almost) no word gaps, so gaps were inserted at random instead of keeping real word boundaries.
|
| 33 |
+
3.1% of plaintext characters have no entry in the key and were left out: 'Y' ×9889, 'Q' ×84
|
| 34 |
+
Key units that occur fewer than 20 times: ',', '.', 'HOHEIT', 'Ä', 'Ö'
|
| 35 |
+
|
| 36 |
+
Model settings
|
| 37 |
+
{
|
| 38 |
+
"embedding_dim": 64,
|
| 39 |
+
"hidden_size": 320,
|
| 40 |
+
"num_layers": 2,
|
| 41 |
+
"num_heads": 1,
|
| 42 |
+
"dropout": 0.240148858687783,
|
| 43 |
+
"learning_rate": 0.00013871105837933085,
|
| 44 |
+
"batch_size": 32
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
Results
|
| 48 |
+
{
|
| 49 |
+
"synthetic_test_accuracy": 1.0,
|
| 50 |
+
"synthetic_test_f1": 1.0,
|
| 51 |
+
"uncertain_share_in_key_reference": 0.0007206053084591056,
|
| 52 |
+
"uncertain_share_scrambled_key_reference": 0.1847151607350174,
|
| 53 |
+
"units_not_in_training": [],
|
| 54 |
+
"training_minutes": 0.7366686304410298,
|
| 55 |
+
"epochs": 16
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
Validation accuracy per round
|
| 59 |
+
1 0.8890
|
| 60 |
+
2 0.9922
|
| 61 |
+
3 0.9984
|
| 62 |
+
4 0.9991
|
| 63 |
+
5 0.9991
|
| 64 |
+
6 0.9991
|
| 65 |
+
7 0.9992
|
| 66 |
+
8 0.9996
|
| 67 |
+
9 0.9997
|
| 68 |
+
10 0.9997
|
| 69 |
+
11 0.9998
|
| 70 |
+
12 1.0000
|
| 71 |
+
13 1.0000
|
| 72 |
+
14 1.0000
|
| 73 |
+
15 1.0000
|
| 74 |
+
16 1.0000
|
maximilian_II/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# maximilian_II
|
| 2 |
+
|
| 3 |
+
- **Cipher:** Letters of Maximilian II (1575)
|
| 4 |
+
- **Key source:** DECODE IDs 1471, 1412, 1407
|
| 5 |
+
- **Transcription format:** single characters separated by spaces (convert one-character-per-symbol files with keybridge convert)
|
| 6 |
+
- **Plaintext language of the cipher:** de
|
| 7 |
+
- **Training plaintext:** built-in English (HistCiph), 5,000 examples × 50 symbols, rare-unit insertion 0.02
|
| 8 |
+
- **Contributed by:** Micaella Bruton
|
| 9 |
+
- **Licence:** CC BY 4.0
|
| 10 |
+
|
| 11 |
+
See `maximilian_II_training_report.txt` for all settings and the accuracy on unseen synthetic text.
|
maximilian_II/maximilian_II_key.tsv
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Key of three letters by Maximilian II (DECODE IDs 1471, 1412, 1407). Standard format: symbols separated by spaces; the word divider (a blank in the manuscript transcription) is written as "_".
|
| 2 |
+
plaintext ciphertext whole_word
|
| 3 |
+
<SPACE> "_"
|
| 4 |
+
"." "."
|
| 5 |
+
<NULL> "w" "7" "u" "v" "s" "i" "l" "Ä" "3" "B" "k" "#" "ä" "€"
|
| 6 |
+
"?" "y" "f" "x"
|
| 7 |
+
"ENCLITICA" "t"
|
| 8 |
+
"A" "J" "/"
|
| 9 |
+
"B" "T" "4"
|
| 10 |
+
"C" "Z"
|
| 11 |
+
"D" "M"
|
| 12 |
+
"E" "W" "P" "q"
|
| 13 |
+
"F" "L"
|
| 14 |
+
"G" "9"
|
| 15 |
+
"H" "X"
|
| 16 |
+
"I" "C" "K"
|
| 17 |
+
"K" "6"
|
| 18 |
+
"L" "S"
|
| 19 |
+
"M" "H"
|
| 20 |
+
"N" "D" "+"
|
| 21 |
+
"O" "I" "*"
|
| 22 |
+
"P" "Ü"
|
| 23 |
+
"Q" "m"
|
| 24 |
+
"R" "F" "1"
|
| 25 |
+
"S" "Q"
|
| 26 |
+
"T" "b" "U"
|
| 27 |
+
"U" "2" "G"
|
| 28 |
+
"W" "V"
|
| 29 |
+
"X" "ü"
|
| 30 |
+
"Y" "h"
|
| 31 |
+
"Z" "0"
|
| 32 |
+
"FF" "a"
|
| 33 |
+
"LL" "5"
|
| 34 |
+
"MM" "n"
|
| 35 |
+
"NN" "Ö"
|
| 36 |
+
"SS" "-"
|
| 37 |
+
"TT" "e"
|
| 38 |
+
"ST" "E"
|
| 39 |
+
"CT" "d"
|
| 40 |
+
"Ä" "g" "8"
|
| 41 |
+
"Ö" "Ø"
|
| 42 |
+
"Ü" "r"
|
| 43 |
+
"SCH" "Y"
|
| 44 |
+
"UND" "R"
|
| 45 |
+
"AUSTRIA" "z" yes
|
| 46 |
+
"HUNGARIA" "O" yes
|
| 47 |
+
"GERMANIA" "&" yes
|
maximilian_II/maximilian_II_model.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:330b4836f1eabbd31328b8ec5baa63ce33acf96997375b080574680a888212be
|
| 3 |
+
size 10336731
|
maximilian_II/maximilian_II_training_report.txt
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training report for 'maximilian_II_5k_english_rares'
|
| 2 |
+
|
| 3 |
+
Settings
|
| 4 |
+
{
|
| 5 |
+
"project": "maximilian_II_5k_english_rares",
|
| 6 |
+
"symbol_format": "symbols separated by spaces",
|
| 7 |
+
"plaintext_source": "English",
|
| 8 |
+
"plaintext_files": [],
|
| 9 |
+
"letter_replacements": "J=I, V=U",
|
| 10 |
+
"word_spaces": "insert at random",
|
| 11 |
+
"training_examples": 5000,
|
| 12 |
+
"sequence_length": 50,
|
| 13 |
+
"null_rate": 0.05,
|
| 14 |
+
"double_rate": 0.5,
|
| 15 |
+
"rare_unit_rate": 0.02,
|
| 16 |
+
"search_trials": 20,
|
| 17 |
+
"seed": 9,
|
| 18 |
+
"max_epochs": 100,
|
| 19 |
+
"package_version": "1.0.0",
|
| 20 |
+
"created": "2026-10-13T18:49:46",
|
| 21 |
+
"key_file": "maximilian_II_key.tsv"
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
Key
|
| 25 |
+
45 plaintext units written with 71 distinct cipher symbols (characters).
|
| 26 |
+
Special units: <SPACE>, <NULL>
|
| 27 |
+
Multi-letter units / nomenclature (14): AUSTRIA, CT, ENCLITICA, FF, GERMANIA, HUNGARIA, LL, MM, NN, SCH, SS, ST, TT, UND
|
| 28 |
+
Whole-word only: AUSTRIA, GERMANIA, HUNGARIA
|
| 29 |
+
|
| 30 |
+
Training data notes
|
| 31 |
+
Key units that occur fewer than 20 times: '.', '?', 'AUSTRIA', 'ENCLITICA', 'HUNGARIA', 'Ä', 'Ö', 'Ü'
|
| 32 |
+
|
| 33 |
+
Model settings
|
| 34 |
+
{
|
| 35 |
+
"embedding_dim": 64,
|
| 36 |
+
"hidden_size": 320,
|
| 37 |
+
"num_layers": 2,
|
| 38 |
+
"num_heads": 1,
|
| 39 |
+
"dropout": 0.240148858687783,
|
| 40 |
+
"learning_rate": 0.00013871105837933085,
|
| 41 |
+
"batch_size": 32
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
Results
|
| 45 |
+
{
|
| 46 |
+
"synthetic_test_accuracy": 0.9999599823922526,
|
| 47 |
+
"synthetic_test_f1": 0.9999399828047787,
|
| 48 |
+
"uncertain_share_in_key_reference": 0.00016007043098963545,
|
| 49 |
+
"uncertain_share_scrambled_key_reference": 0.15785612336094548,
|
| 50 |
+
"units_not_in_training": [],
|
| 51 |
+
"training_minutes": 1.1000991304715475,
|
| 52 |
+
"epochs": 24
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
Validation accuracy per round
|
| 56 |
+
1 0.9648
|
| 57 |
+
2 0.9940
|
| 58 |
+
3 0.9976
|
| 59 |
+
4 0.9986
|
| 60 |
+
5 0.9990
|
| 61 |
+
6 0.9993
|
| 62 |
+
7 0.9995
|
| 63 |
+
8 0.9997
|
| 64 |
+
9 0.9997
|
| 65 |
+
10 0.9997
|
| 66 |
+
11 0.9997
|
| 67 |
+
12 0.9998
|
| 68 |
+
13 0.9998
|
| 69 |
+
14 0.9998
|
| 70 |
+
15 0.9998
|
| 71 |
+
16 0.9998
|
| 72 |
+
17 0.9998
|
| 73 |
+
18 0.9998
|
| 74 |
+
19 0.9998
|
| 75 |
+
20 0.9999
|
| 76 |
+
21 0.9999
|
| 77 |
+
22 0.9999
|
| 78 |
+
23 1.0000
|
| 79 |
+
24 1.0000
|