04-09-2025, 09:59 PM
(This post was last modified: 05-09-2025, 12:56 PM by quimqu.
Edit Reason: Edited Phase 5 according to the comments.
)
First of all, thank you for this thread.
As a Data Scientist, I want to check by myself all what has been said, specially Rene's thoughts in post, which were very clearly explained and have given me a lot to think. So I have prepared a 9 setps pipeline with Kaggle to check all this by myself and try to extract my conclusions. And now I try to summarize here:
Phase 1 – First glyphs in a line
I looked at the first symbols of each line.
I found, as René said, that the first line of a paragraph almost always starts with the set
{p, t, k, f}, while the other lines often start with {d, s, y, o, q}.
The difference is huge (about 84% with the rest of the glyphs) and highly significant. In other words, paragraph starts follow one rule, and the rest of the lines follow another. That’s very different from what we’d expect in a natural language.
Phase 2 – Word endings
I checked how often words end with m or g.
Globally, I saw that m and g are much more common at the end of a line than in the middle. For example, around 15% of line-final words end in m, compared with only 1% in the middle of a line.
This looks like an artificial line-final decoration, not something natural.
Phase 3 – Short lines and labels
I checked short lines (3 words or fewer).
The same line-start and line-end rules still apply to short lines. But for labels (the single-word captions next to drawings), the rules disappear. Labels behave differently: they don’t follow the line-start conventions, and they never end with m or g.
That makes sense if labels were generated differently from the running text.
Phase 4 – Vertical alternation of q
I looked at how often lines starting with q appear one after another.
If q starts happened at random, I would expect them to cluster sometimes. But instead, I found the opposite: q lines actively avoid following each other. Statistically, two q lines in a row are only about a quarter as common as expected.
It looks like the text was arranged to prevent such repetitions, as if someone wanted variety for the sake of appearance.
Phase 5 – Word length alternation
I measured how the length of a word relates to the length of the next word.
I had initially written that "in real languages, the correlation is usually slightly positive", but that was too strong. What I actually used was the standard Pearson correlation of word length vs. the next word’s length, which gave me a slightly negative value in the Voynich (around –0.07). That means it tends toward alternation (long-short, short-long).
Nablator pointed out that there is another way to define autocorrelation, by binarizing words into short or long relative to the mean, and then measuring how often pairs are concordant (short-short, long-long) vs. discordant (short-long, long-short). That measure and Pearson correlation are not the same, so it makes sense that they give different values. Both highlight different aspects of the rhythm.
From what I have seen in the literature, natural languages also tend to show slightly negative lag-1 autocorrelation (short words followed by long ones, and vice versa). At longer lags the correlation becomes slightly positive. So in this sense, the Voynich’s negative short-range autocorrelation is not anomalous: it actually resembles the short-term behavior of natural languages.
That said, when I scrambled the words within each line, the alternation became even stronger. This suggests that the original text has some structure that reduces alternation, meaning it is not purely random. In other words, the Voynich text does not behave like natural languages, but neither does it look entirely artificial.
Phase 6 – Repetitions across line breaks
I looked for repeated word sequences (bigrams or trigrams) that happen right at a line break.
When they repeat elsewhere, the break falls in the same position again. That means the line break itself is part of the "rule" — it isn’t just a visual convenience, it shapes the text generation.
In natural writing, repeats would not respect line breaks in this way.
Phase 7 – Steep vs. flat distributions
I measured how symbol frequencies drop off from most common to least common.
In first lines of paragraphs, the distribution falls off steeply: a few symbols dominate. In other lines, the curve is flatter: symbols are more evenly spread. So paragraph starts have a very different "profile".
This separation again suggests that the text is constrained by position in the layout, not by meaning.
Phase 8 – Stratified by scribe, Currier, and section
I repeated the earlier tests for different scribes, for Currier A vs. B, and for manuscript sections.
The same rules appear everywhere, but their strength varies. For example, Herbal A shows stronger constraints than Balneo.
This means the overall system is consistent, but each scribe or section had its own "dialect" of the rules.
Phase 9 – Methodological checks
I ran controls to make sure the patterns weren’t artifacts.
I tried collapsing special glyphs like sh, excluding very short lines, analyzing labels separately, and permuting lines to estimate chance. The patterns still held up under these tests.
That gave me confidence that what I’m seeing is real, not just a quirk of preprocessing.
In short, I have tried to summarize the rules described earlier and show how they appear in the data.
If anyone would like to check the details, I can share the full Python code so the results can be verified independently.
Note: To bring more clarity to this topic — which can be complex to explain, especially in English since it is not my native language — I have used ChatGPT to help summarize the concepts and make them easier to understand.
As a Data Scientist, I want to check by myself all what has been said, specially Rene's thoughts in post, which were very clearly explained and have given me a lot to think. So I have prepared a 9 setps pipeline with Kaggle to check all this by myself and try to extract my conclusions. And now I try to summarize here:
Phase 1 – First glyphs in a line
I looked at the first symbols of each line.
I found, as René said, that the first line of a paragraph almost always starts with the set
{p, t, k, f}, while the other lines often start with {d, s, y, o, q}.
The difference is huge (about 84% with the rest of the glyphs) and highly significant. In other words, paragraph starts follow one rule, and the rest of the lines follow another. That’s very different from what we’d expect in a natural language.
Phase 2 – Word endings
I checked how often words end with m or g.
Globally, I saw that m and g are much more common at the end of a line than in the middle. For example, around 15% of line-final words end in m, compared with only 1% in the middle of a line.
This looks like an artificial line-final decoration, not something natural.
Phase 3 – Short lines and labels
I checked short lines (3 words or fewer).
The same line-start and line-end rules still apply to short lines. But for labels (the single-word captions next to drawings), the rules disappear. Labels behave differently: they don’t follow the line-start conventions, and they never end with m or g.
That makes sense if labels were generated differently from the running text.
Phase 4 – Vertical alternation of q
I looked at how often lines starting with q appear one after another.
If q starts happened at random, I would expect them to cluster sometimes. But instead, I found the opposite: q lines actively avoid following each other. Statistically, two q lines in a row are only about a quarter as common as expected.
It looks like the text was arranged to prevent such repetitions, as if someone wanted variety for the sake of appearance.
Phase 5 – Word length alternation
I measured how the length of a word relates to the length of the next word.
I had initially written that "in real languages, the correlation is usually slightly positive", but that was too strong. What I actually used was the standard Pearson correlation of word length vs. the next word’s length, which gave me a slightly negative value in the Voynich (around –0.07). That means it tends toward alternation (long-short, short-long).
Nablator pointed out that there is another way to define autocorrelation, by binarizing words into short or long relative to the mean, and then measuring how often pairs are concordant (short-short, long-long) vs. discordant (short-long, long-short). That measure and Pearson correlation are not the same, so it makes sense that they give different values. Both highlight different aspects of the rhythm.
From what I have seen in the literature, natural languages also tend to show slightly negative lag-1 autocorrelation (short words followed by long ones, and vice versa). At longer lags the correlation becomes slightly positive. So in this sense, the Voynich’s negative short-range autocorrelation is not anomalous: it actually resembles the short-term behavior of natural languages.
That said, when I scrambled the words within each line, the alternation became even stronger. This suggests that the original text has some structure that reduces alternation, meaning it is not purely random. In other words, the Voynich text does not behave like natural languages, but neither does it look entirely artificial.
Phase 6 – Repetitions across line breaks
I looked for repeated word sequences (bigrams or trigrams) that happen right at a line break.
When they repeat elsewhere, the break falls in the same position again. That means the line break itself is part of the "rule" — it isn’t just a visual convenience, it shapes the text generation.
In natural writing, repeats would not respect line breaks in this way.
Phase 7 – Steep vs. flat distributions
I measured how symbol frequencies drop off from most common to least common.
In first lines of paragraphs, the distribution falls off steeply: a few symbols dominate. In other lines, the curve is flatter: symbols are more evenly spread. So paragraph starts have a very different "profile".
This separation again suggests that the text is constrained by position in the layout, not by meaning.
Phase 8 – Stratified by scribe, Currier, and section
I repeated the earlier tests for different scribes, for Currier A vs. B, and for manuscript sections.
The same rules appear everywhere, but their strength varies. For example, Herbal A shows stronger constraints than Balneo.
This means the overall system is consistent, but each scribe or section had its own "dialect" of the rules.
Phase 9 – Methodological checks
I ran controls to make sure the patterns weren’t artifacts.
I tried collapsing special glyphs like sh, excluding very short lines, analyzing labels separately, and permuting lines to estimate chance. The patterns still held up under these tests.
That gave me confidence that what I’m seeing is real, not just a quirk of preprocessing.
In short, I have tried to summarize the rules described earlier and show how they appear in the data.
If anyone would like to check the details, I can share the full Python code so the results can be verified independently.
Note: To bring more clarity to this topic — which can be complex to explain, especially in English since it is not my native language — I have used ChatGPT to help summarize the concepts and make them easier to understand.


![[+]](https://www.voynich.ninja/images/collapse_collapsed.png)