What Lies Beneath: Statistical Structure in Voynichese Revealed by Transformers
#1
This work approaches the Voynich manuscript from a fresh angle—by applying small-scale character-level GPT models to its transliterated text. Instead of attempting direct decipherment or semantic interpretation, the focus is on investigating the internal structure and statistical patterns embedded in the glyph sequences.
By training models on different sections of the manuscript using a simplified and consistent transliteration system, this study probes how well a transformer-based language model can learn and predict the character sequences. The results provide compelling evidence that the text is far from random, showing meaningful structural regularities that a machine can capture with relatively low uncertainty.
This computational perspective offers a complementary lens to traditional Voynich research, suggesting that the manuscript’s mysterious text may follow underlying syntactic or generative rules—even if their semantic content remains unknown. It is an invitation to consider the manuscript as a linguistic system in its own right, accessible to modern machine learning tools, and to explore new paths for understanding its secrets.

Objective
The aim of this project is to explore the internal structure of the Voynich manuscript by training a small GPT model on its transliterated text. Using the Courrier transliteration, which offers a simplified and consistent representation of Voynichese glyphs, the goal is to test how well a transformer model can learn and predict character sequences within this mysterious and undeciphered corpus.

Methodology
I trained four different character-level GPT models (≈0.8M parameters) using You are not allowed to view links. Register or Login to view., each on a different subset of the manuscript:

NotebookText ScopeValidation LossPerplexity
Voynich_char_tokenizerFull manuscript1.21663.38
Biological_Voynich_char_tokenizerOnly biological section1.28453.61
Herbal_Voynich_char_tokenizerOnly herbal section1.53374.64
Herbal_and_pharmaceutical_Voynich_char_tokenizerHerbal + pharmaceutical1.53374.64

Each dataset was carefully filtered to remove uncertain tokens (?), header lines, and other non-linguistic symbols. Paragraphs were reconstructed using markers from the transcription file.

Why character-level tokenization?
Early attempts at word-level tokenization (based on dot-separated EVA words) yielded poor results, primarily due to:
  • A large vocabulary size (~15,000+ unique tokens).
  • Very sparse and repetitive training data per token.
  • Increased perplexity and unstable loss curves.
In contrast, character-level models:
  • Have a much smaller and denser vocabulary.
  • Perform well with limited data.
  • Naturally capture the morphological regularities of Voynichese.

Perplexity Results & Interpretation
Perplexity measures how well a model predicts the next token — lower values mean better predictability.

DatasetPerplexity
Full Voynich3.38
Biological3.61
Herbal4.64
Herbal + Pharmaceutical4.64

The relatively low perplexity values (3–4.6) show that the model can learn strong internal structure from the Voynich text, particularly in the full corpus and biological section. These numbers are comparable to what we observe in natural languages at the character level, and far from what we would expect from purely random or meaningless sequences.

Why this matters
These results support the long-standing hypothesis — prominently discussed by René Zandbergen and others — that the Voynich manuscript, while undeciphered, exhibits non-random, rule-governed linguistic patterns.
Even though the GPT model has no access to semantics, its ability to predict Voynichese characters with such low uncertainty suggests that the manuscript likely follows an underlying syntax or generation process — artificial or natural.
In essence, the model behaves like a human listener hearing a foreign language repeatedly: it can’t understand the meaning, but learns to anticipate the next syllables based on structure.

Future Work
This approach opens up further directions:
  • Train section-specific models (e.g., cosmological, recipes).
  • Cluster generated tokens morphologically.
  • Compare synthetic Voynichese to natural languages.
  • Test statistical properties against controlled glossolalia or cipher texts.

To facilitate further exploration and replication, I’m sharing my Github where you can find the Jupyter notebooks used in this study:

You are not allowed to view links. Register or Login to view.

Feel free to download, review, and experiment with the code and data. Your feedback and insights are very welcome!

(08-06-2025, 01:44 PM)oshfdk wrote: You are not allowed to view links. Register or Login to view.Well, that's the main question for me, because we already know about a lot of regularity from curve-line systems, slot grammars, etc. These approaches have explicit simple rules that are easy to analyze and compare, as opposed to black-box GPT models.

Without some metric that shows that a GPT based approach identifies structures beyond already identified with previous methods, it's hard for me to see if the GPT based approach is of any use at all.

I ran a validation test on a recent output of 891 generated words using a simplified slot grammar system adapted to EVA transliteration conventions.

Basic slot grammar rules:

valid_prefixes = ("qo", "ch", "sh")
valid_suffixes = ("y", "dy", "aiin", "ain", "daiin")
invalid_double_letters = ("tt", "pp", "ff")
invalid_final_glifs = ("q", "e", "ch")

Adapted for EVA transcription in Courier-like glifs:

valid_prefixes = ("4O", "S", "Z")
valid_suffixes = ("9", "89", "AM", "AN", "8AM")
invalid_final_glifs = ("4", "C", "S")
invalid_double_letters = ("PP", "BB", "FF")

Summary of results:
  • ✅ 96.74% of the generated words match the slot grammar rules
  • ✅ 95.5% of the total set correspond to real EVA words from the corpus
  • ⚠️ 100% of the words have valid final glifs and no invalid double letters (so these two conditions have been learnt 100%)


Below is a list of the invented words that fulfill 100% the slot grammar restrictions:

Correct invented words: ['SCCX9', 'ZCCC9', '4OFAECC89', '4OFAEZC89', '4OFAEFCCC9', '4OFAEO9', 'SCCC89', '4OFAEZC89', 'SEFAN', '4ORAR9', '4OFCC889']

Below is a table of the invented words that do not fulfill 100% the slot grammar restrictions, and why:

WordPrefixSuffixEndOKNoBadDbl✅ AllOK
ROPAJFalseFalseTrueTrueFalse
OFAEZEFalseFalseTrueTrueFalse
AEORFalseFalseTrueTrueFalse
EZCC89RFalseFalseTrueTrueFalse
4OESCC9RTrueFalseTrueTrueFalse
ESCO8FalseFalseTrueTrueFalse
4CFARFalseFalseTrueTrueFalse
8AROEFalseFalseTrueTrueFalse
OEFCCC89FalseTrueTrueTrueFalse
FAEOE9FalseTrueTrueTrueFalse
POEZC89FalseTrueTrueTrueFalse
EFS9FalseTrueTrueTrueFalse
OZCC9FalseTrueTrueTrueFalse
AEFMFalseFalseTrueTrueFalse
2OEZCC9FalseTrueTrueTrueFalse
OEFARORFalseFalseTrueTrueFalse
2OEZCC89FalseTrueTrueTrueFalse
E8ANFalseTrueTrueTrueFalse
Z2AETrueFalseTrueTrueFalse
AEARFalseFalseTrueTrueFalse
8EAMFalseTrueTrueTrueFalse
RSCC89FalseTrueTrueTrueFalse
8AEZC9FalseTrueTrueTrueFalse
2AROEFalseFalseTrueTrueFalse
EOEZC9FalseTrueTrueTrueFalse
BOEFANFalseTrueTrueTrueFalse
EOEFCC89FalseTrueTrueTrueFalse
4OFOEOETrueFalseTrueTrueFalse
4OFCCOETrueFalseTrueTrueFalse

The high percentage of conformity suggests that the generation process is strongly guided by structural constraints similar to those observed in actual Voynichese. While not all words match real entries from the manuscript, most invented forms remain within plausible morpho-phonological boundaries defined by the slot grammar. This supports the idea that the model is not producing random noise, but instead approximates a coherent internal system—whether artificial or natural.

Update 06/09/2025: I update with a heatmap of the loss per folio according my trained GPT. This gives an insight of the strangest folia according to the model.

(08-06-2025, 05:44 PM)davidma wrote: You are not allowed to view links. Register or Login to view.
(08-06-2025, 03:39 PM)quimqu wrote: You are not allowed to view links. Register or Login to view.The high percentage of conformity suggests that the generation process is strongly guided by structural constraints similar to those observed in actual Voynichese. While not all words match real entries from the manuscript, most invented forms remain within plausible morpho-phonological boundaries defined by the slot grammar. This supports the idea that the model is not producing random noise, but instead approximates a coherent internal system—whether artificial or natural.

Could you in theory test for non-conforming words already in the VM? Or i guess measure how much they break the internal rules? I wonder if it could be interesting to see where these pop up in the VM, if they are predominant in "labelese" or maybe in certain sections? Or certain scribes? To my knowledge this hasnt been done yet but I am probably wrong.

Hi!

Thanks for the thoughtful suggestion — I think you're absolutely right that identifying non-conforming words and tracking their locations in the manuscript could reveal meaningful patterns.

What I’ve done so far is train a character-level GPT model on Voynichese text (using Currier transliteration). Then, I used this model to estimate the average word-level loss for each token in the manuscript — essentially measuring how well the model “understands” each word given its context.

I attach here a png fie of the interesting resulting heatmap of loss, so you can easily see which folios are the most strange ones according to GPT. Surprisingly, the last folios have the lowest loss.

[Image: jKk1ZAA.png]

From this, I have been able to:
  • Compute the average loss per folio, showing how predictable the text is in different sections.
  • Visualize this data as a heatmap, coloring folios by their average word loss.
This framework opens up possibilities exactly along the lines you suggested:
  • Highlighting words or regions where the model struggles most.
  • Investigating whether these “high-loss” zones correlate with labelese, specific sections, or particular scribes (if metadata is available).
  • Zooming in on the individual words the model finds most anomalous, and seeing their frequency and distribution.
I haven’t done the full detailed analysis yet, but the infrastructure is ready and the heatmap helps guide further exploration.

Below is a BBCode table showing the top 30 most anomalous words in Currier transcription ranked by loss (i.e. the words the model found hardest to predict):


? Top 30 most anomalous words (by loss):

WordLossFreqLen
RH10.155812
J9.857331
E9.8573151
69.8573151
B9.857321
Q9.857321
F9.857341
99.8573531
39.857311
R9.8573351
49.857341
89.8573321
Z9.857391
A9.857311
29.85731211
C9.857311
D9.857331
O9.8573181
9J9.434412
FT8.877412
FU8.549312
OT8.337312
8DE8.258413
OU8.016712
O37.526832
9EJE7.520714
P37.411012
8R7.320812
ON7.246422
QE7.074812


These words often consist of very short tokens, sometimes single characters or rare combinations, which the model struggles to predict confidently. Investigating where these words cluster — whether in labels, particular manuscript sections, or scribes — could provide insights into the structure or anomalies within the text.

To my knowledge, a comprehensive analysis of “non-conforming” words in the Voynich Manuscript has not yet been performed at this level of detail, so this approach offers a promising direction for further research.

If you or anyone else is interested, I’d be happy to collaborate or share the tools I’ve developed so far.
Reply


Messages In This Thread
What Lies Beneath: Statistical Structure in Voynichese Revealed by Transformers - by quimqu - 08-06-2025, 01:07 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Similarity of Voynichese glyphs according to their immediate statistical environment Mauro 14 3,839 11-06-2026, 04:24 AM
Last Post: Jorge_Stolfi

Forum Jump:


Users browsing this thread: