The Voynich Ninja
[Article] Strong evidence of a structured four-phase system in the Voynich Manuscript - Printable Version

+- The Voynich Ninja (https://www.voynich.ninja)
+-- Forum: Voynich Research (https://www.voynich.ninja/forum-27.html)
+--- Forum: News (https://www.voynich.ninja/forum-25.html)
+--- Thread: [Article] Strong evidence of a structured four-phase system in the Voynich Manuscript (/thread-4650.html)

Pages: 1 2 3 4 5 6 7 8


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - Urtx13 - 25-04-2025

(25-04-2025, 09:09 AM)nablator Wrote: You are not allowed to view links. Register or Login to view.
(24-04-2025, 11:50 AM)Urtx13 Wrote: You are not allowed to view links. Register or Login to view.The real breakthrough is realizing that the Voynich text, when processed this way, contains a cyclical rhythm that aligns with that specific structure — something we wouldn’t expect from a meaningless or random text.

Random text (in case of some kind on non-uniform randomness) still has to be produced somehow and the workflow, whatever it was, could have resulted in a cyclical rhythm, especially when the work was probably done bifolio by bifolio, 4 pages of each bifolio in the same Currier language and by the same scribe. If the "phase" matched the advancement of work on each bifolio we would get a sequence of 0, 1, 0, 1, ... in the first half of quires and 2, 3, 2, 3, ... in the second half.

Very interesting! Let me see. It is a reasonable hypothesis and worth testing.

However, in our analysis, lunar phases were assigned randomly (fix seed, remember), and even under permutation and shuffle controls, the four-phase structure consistently collapsed.

Also, in the follow-up paper, I will explain that there are internal micro-patterns within individual folios (following the same pattern). 

So we’re now at a key moment: working together from a plausible hypothesis.

Please feel free to test anything you want with code, and share your thoughts or findings! I’d love to discuss them.


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - dashstofsk - 25-04-2025

Not everyone here knows Python. Are you able to attach some of your outputs.


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - Urtx13 - 25-04-2025

(25-04-2025, 11:02 AM)dashstofsk Wrote: You are not allowed to view links. Register or Login to view.Not everyone here knows Python. Are you able to attach some of your outputs.

I understand that not everyone is familiar with Python or code in general. Sorry!  No worries, all the results will be presented clearly and accessibly in the paper that’s currently on ArXiv.

Once it’s published, it will include visualizations, tables, and straightforward explanations so that anyone, even without technical knowledge, can understand the findings.

In short, I started from a linguistic hypothesis (as a linguist)—that the high repetition of words in the Voynich Manuscript hinted at an underlying internal pattern. The problem with decipherment was the obsession with comparing it to an existing language. Without a “Rosetta Stone,” it is linguistically impossible. Statistical tests confirmed this hypothesis with a model accuracy of 98.2%.

But this could’ve been a false positive. I am so scared of bias. So we ran control tests (that math gibberish that you've probably seen). The idea that “given enough time, a pattern will emerge” is absurd because actual patterns only persist under statistical testing. Of course, random noise can produce apparent patterns, but those vanish when you reshuffle or remove key variables. Explained:

– Shuffling the folio order drops accuracy to 31.6%
– Removing the lunar angle drops it to 28.1%
– Random phase labels give about 25% (pure chance)
This shows that the pattern is real, not just an accident.

Such patterns don’t appear spontaneously, which means someone intentionally created them. The intention, however, remains unknown.  In our case, the pattern remains stable across validation methods (98% accuracy, 73% relaxed phenological match), but it collapses to around 28–31% when we break the structure. But what is it?

My working theory is that the pattern may relate to lunar phases associated with planting, watering, and harvesting, based on the historical context and the manuscript’s imagery. Again, many speculated about that. We need numbers when testing this idea using medieval phenological and agronomic sources, such as Liber Ruralium Commodorum, Crescenzi, and Opus Agriculturae by Palladius.

Comparing the data, we get:
– Flowering phase match (±1 phase): 73.6%
– Agricultural task match: 72.0%

This doesn’t “decode” the text, but it demonstrates a meaningful, cyclical structure — possibly tied to a symbolic or agricultural calendar.

So, we have a hidden pattern, and we have an interesting match with medieval agronomic corpora.


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - RadioFM - 25-04-2025

Quote:The actual goal is to test whether lexical entropy and topic distributions (from LDA) correlate with that segmentation.

Okay, then no need for Lunar Angle to be a feature, otherwise the prediction is trivial....

Quote:“How does a single decision tree perform?”
It performs well — almost too well — because it immediately splits on Lunar_Angle.

Dude, how do you expect to get faithful metrics of correlations if your metrics are based on a trivial prediction?

  1. You assign a random decimal number called 'Lunar Angle' from 0 to 360 to each folio - seed 1405. Different seeds can give completely different results.
  2. You then discretize this number by creating an additional feature, 'Phase', using the following formula: Phase := ⌊LunarAngle % 90⌋

Depending on the seed you've chosen previously, maybe You are not allowed to view links. Register or Login to view. (or any folio) gets a Lunar Angle of 87.341º and Phase = 0, or maybe your dataset gets no Phase 0 folios at all! Change the seed to 1234 and maybe the whole dataset consists of all 116 folios sharing exactly Lunar Angle 201.12º and thus Phase 1. The segmentation is, as you said, random.

     3. You calculate the Entropy and the topic for each folio (these numeric values are NOT random for each folio)
     4. You train an AI that, looking at the Entropy, Topics and the Lunar Angle of a folio, predicts a Phase for that folio.
     5. The accuracy and "correlation" is then calculated as follows: How did the AI perform with respects to the random segmentation of Step #2?

Any ML model capable of dividing the Real number line in 4 intervals will quickly arrive at the solution of using Lunar Angle to predict Phase, you say so yourself - even a simple model like a single decision tree does this, having Lunar Angle as the best predictor of Phase. Accuracy, precision and all metrics will always be high except for those few seeds where there's a clear imbalance in the dataset. When a random seed in Step #1 segments the folios in such a way that maybe very few folios having Phase 3 are seen by the model, the model may not predict Phase 3 with a lot of accuracy of course, so the results won't always be within 89-100% range all the time (but most of the time will!)



If you really want to measure how Entropy and Topics correlate to the segmentation, Lunar Angle should obviously NOT be a feature in the model. But even then, using only Entropy and Topics as a predictor of phase, IMO your methodology has some flaws:
  • The golden standard and 'true' segmentation/labeling with which you derive your metrics is random (Step #1). You can change the seed and get a different segmentation altogether. Any metric derived of this will be using a random mapping of Folia to Phases as a gold standard. I can change the seed and get arbitrary results, as close to 100% accuracy as I want. How? I look for a seed that, by chance, maps every Folio to Phase 1: all machine learning models, even if only using Entropy and Topics as features, will converge to the default pattern of "Assign every Folio to Phase 1", yielding 100% accuracy.
    You could maybe use some unsupervised machine learning to get some other metrics from the text itself and not make Phase a random value, otherwise your accuracy/precision/recall/etc and all metrics will be based off random values taken as true.
  • You are not accounting for dataset imbalances - even if your gold standard is not some random number or Phase, given the small amount of folio for many Machine Learning setups (yes, even 116*2 can be small), you should try to balance classes in the training dataset, otherwise many models will tend to overfit by learning patterns typical to those classes with greater representation in the dataset.
  • You are implicitly overfitting by performing hyperparameter search without splitting your data thrice. In ML academia, the data is usually split in 3 distinct datasets: Training, Development/Validation, Test. Why? Because when splitting it only in 2 (training and testing) but then doing a systematic search for just the right seed number or just the right amount of LDA Topics (in your case, 4 topics being the sweet spot) you end up overfitting your model and imbuing bias into it - you're performing model tuning to improve accuracy on the Test dataset by changing hyperparameters and end up defeating the purpose of the Test dataset (which is to provide unbiased data to compare the model performance against)
  • Finding one seed that performs best among others is almost never evidence of a latent pattern, it's evidence that the solution space is fairly irregular and fraught with local optima, like this:
         



RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - Urtx13 - 25-04-2025

(25-04-2025, 12:24 PM)RadioFM Wrote: You are not allowed to view links. Register or Login to view.
Quote:The actual goal is to test whether lexical entropy and topic distributions (from LDA) correlate with that segmentation.

Okay, then no need for Lunar Angle to be a feature, otherwise the prediction is trivial....

Quote:“How does a single decision tree perform?”

It performs well — almost too well — because it immediately splits on Lunar_Angle.


Dude, how do you expect to get faithful metrics of correlations if your metrics are based on a trivial prediction?


  1. You assign a random decimal number called 'Lunar Angle' from 0 to 360 to each folio - seed 1405. Different seeds can give completely different results.
  2. You then discretize this number by creating an additional feature, 'Phase', using the following formula: Phase := ⌊LunarAngle % 90⌋

Depending on the seed you've chosen previously, maybe You are not allowed to view links. Register or Login to view. (or any folio) gets a Lunar Angle of 87.341º and Phase = 0, or maybe your dataset gets no Phase 0 folios at all! Change the seed to 1234 and maybe the whole dataset consists of all 116 folios sharing exactly Lunar Angle 201.12º and thus Phase 1. The segmentation is, as you said, random.

     3. You calculate the Entropy and the topic for each folio (these numeric values are NOT random for each folio)
     4. You train an AI that, looking at the Entropy, Topics and the Lunar Angle of a folio, predicts a Phase for that folio.
     5. The accuracy and "correlation" is then calculated as follows: How did the AI perform with respects to the random segmentation of Step #2?

Any ML model capable of dividing the Real number line in 4 intervals will quickly arrive at the solution of using Lunar Angle to predict Phase, you say so yourself - even a simple model like a single decision tree does this, having Lunar Angle as the best predictor of Phase. Accuracy, precision and all metrics will always be high except for those few seeds where there's a clear imbalance in the dataset. When a random seed in Step #1 segments the folios in such a way that maybe very few folios having Phase 3 are seen by the model, the model may not predict Phase 3 with a lot of accuracy of course, so the results won't always be within 89-100% range all the time (but most of the time will!)



If you really want to measure how Entropy and Topics correlate to the segmentation, Lunar Angle should obviously NOT be a feature in the model. But even then, using only Entropy and Topics as a predictor of phase, IMO say your methodology has some flaws:
  • The golden standard and 'true' segmentation/labeling with which you derive your metrics is random (Step #1). You can change the seed and get a different segmentation altogether. Any metric derived of this will be using a random mapping of Folia to Phases as a gold standard. I can change the seed and get arbitrary results, as close to 100% accuracy as I want. How? I look for a seed that, by chance, maps every Folio to Phase 1: all machine learning models, even if only using Entropy and Topics as features, will converge to the default pattern of "Assign every Folio to Phase 1", yielding 100% accuracy.
    You could maybe use some unsupervised machine learning to get some other metrics from the text itself and not make Phase a random value, otherwise your accuracy/precision/recall/etc and all metrics will be based off random values taken as true.
  • You are implicitly overfitting by performing hyperparameter search without splitting your data thrice. In ML academia, the data is usually split in 3 distinct datasets: Training, Development/Validation, Test. Why? Because when splitting it only in 2 (training and testing) but then doing a systematic search for just the right seed number or just the right amount of LDA Topics (in your case, 4 topics being the sweet spot) you end up overfitting your model and imbuing bias into it - you're performing model tuning to improve accuracy on the Test dataset by changing hyperparameters and end up defeating the purpose of the Test dataset (which is to provide unbiased data to compare the model performance against)
  •  

Before anything else, I’d appreciate it if you didn’t address me as “dude”. I'll not answer in an informal tone.
Let’s keep the tone academic so we can have a constructive discussion.

Now, regarding your concerns:

You’re right to be skeptical of circular logic and random segmentation. That’s why the whole point of our analysis is not to assume the lunar phase is meaningful — it’s to test whether an imposed four-phase cycle aligns with structural patterns within the text itself

To be clear:
  • The “Lunar Angle” is synthetic, generated with a fixed seed (1405), and we never claim it is a ground-truth label.
  • The goal is to see if the manuscript’s internal features (entropy, topic structure) respond coherently to that cyclical division.


If the manuscript had no internal rhythm, random segmentations would show no predictive power. But here’s what we found:
  • Baseline model (entropy + topics + lunar angle): ~98% accuracy.
  • Permutation test (n=100): shuffling the phase labels → accuracy drops to ~25%.
  • Ablation test (removing Lunar Angle): accuracy ~28%.
  • Shuffle A (random folio order + regenerated angles): accuracy ~31%.
  • Topic 2 autocorrelation + FFT (no phase labels used): reveals independent cyclic patterns at frequency 4.


Also:
  • No hyperparameter tuning to optimize results — everything is frozen (topics=4, seed=1405).
  • All scripts and data are public for full reproducibility.


So, yes — any model can trivially learn “Phase = LunarAngle mod 90.” That’s not the point.
The point is: why do entropy and topic structures — independently derived — line up so well with that segmentation?

That’s what makes it interesting.

If everything collapses when you randomize the labels, the order, or the angle, something non-trivial is being captured.

In short: You’re confusing tuning with hypothesis validation


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - oshfdk - 25-04-2025

(25-04-2025, 12:24 PM)RadioFM Wrote: You are not allowed to view links. Register or Login to view.
  1. You assign a random decimal number called 'Lunar Angle' from 0 to 360 to each folio - seed 1405. Different seeds can give completely different results.
  2. You then discretize this number by creating an additional feature, 'Phase', using the following formula: Phase := ⌊LunarAngle % 90⌋

Depending on the seed you've chosen previously, maybe You are not allowed to view links. Register or Login to view. (or any folio) gets a Lunar Angle of 87.341º and Phase = 0, or maybe your dataset gets no Phase 0 folios at all! Change the seed to 1234 and maybe the whole dataset consists of all 116 folios sharing exactly Lunar Angle 201.12º and thus Phase 1. The segmentation is, as you said, random.

     3. You calculate the Entropy and the topic for each folio (these numeric values are NOT random for each folio)
     4. You train an AI that, looking at the Entropy, Topics and the Lunar Angle of a folio, predicts a Phase for that folio.
     5. The accuracy and "correlation" is then calculated as follows: How did the AI perform with respects to the random segmentation of Step #2?

Thank you so much for doing this. When I was asking the original author for a high level simple description, this is what I was looking for.


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - Urtx13 - 25-04-2025

(25-04-2025, 12:24 PM)RadioFM Wrote: You are not allowed to view links. Register or Login to view.
Quote:The actual goal is to test whether lexical entropy and topic distributions (from LDA) correlate with that segmentation.

Okay, then no need for Lunar Angle to be a feature, otherwise the prediction is trivial....

Quote:“How does a single decision tree perform?”
It performs well — almost too well — because it immediately splits on Lunar_Angle.

Dude, how do you expect to get faithful metrics of correlations if your metrics are based on a trivial prediction?

  1. You assign a random decimal number called 'Lunar Angle' from 0 to 360 to each folio - seed 1405. Different seeds can give completely different results.
  2. You then discretize this number by creating an additional feature, 'Phase', using the following formula: Phase := ⌊LunarAngle % 90⌋

Depending on the seed you've chosen previously, maybe You are not allowed to view links. Register or Login to view. (or any folio) gets a Lunar Angle of 87.341º and Phase = 0, or maybe your dataset gets no Phase 0 folios at all! Change the seed to 1234 and maybe the whole dataset consists of all 116 folios sharing exactly Lunar Angle 201.12º and thus Phase 1. The segmentation is, as you said, random.

     3. You calculate the Entropy and the topic for each folio (these numeric values are NOT random for each folio)
     4. You train an AI that, looking at the Entropy, Topics and the Lunar Angle of a folio, predicts a Phase for that folio.
     5. The accuracy and "correlation" is then calculated as follows: How did the AI perform with respects to the random segmentation of Step #2?

Any ML model capable of dividing the Real number line in 4 intervals will quickly arrive at the solution of using Lunar Angle to predict Phase, you say so yourself - even a simple model like a single decision tree does this, having Lunar Angle as the best predictor of Phase. Accuracy, precision and all metrics will always be high except for those few seeds where there's a clear imbalance in the dataset. When a random seed in Step #1 segments the folios in such a way that maybe very few folios having Phase 3 are seen by the model, the model may not predict Phase 3 with a lot of accuracy of course, so the results won't always be within 89-100% range all the time (but most of the time will!)



If you really want to measure how Entropy and Topics correlate to the segmentation, Lunar Angle should obviously NOT be a feature in the model. But even then, using only Entropy and Topics as a predictor of phase, IMO your methodology has some flaws:
  • The golden standard and 'true' segmentation/labeling with which you derive your metrics is random (Step #1). You can change the seed and get a different segmentation altogether. Any metric derived of this will be using a random mapping of Folia to Phases as a gold standard. I can change the seed and get arbitrary results, as close to 100% accuracy as I want. How? I look for a seed that, by chance, maps every Folio to Phase 1: all machine learning models, even if only using Entropy and Topics as features, will converge to the default pattern of "Assign every Folio to Phase 1", yielding 100% accuracy.
    You could maybe use some unsupervised machine learning to get some other metrics from the text itself and not make Phase a random value, otherwise your accuracy/precision/recall/etc and all metrics will be based off random values taken as true.
  • You are not accounting for dataset imbalances - even if your gold standard is not some random number or Phase, given the small amount of folio for many Machine Learning setups (yes, even 116*2 can be small), you should try to balance classes in the training dataset, otherwise many models will tend to overfit by learning patterns typical to those classes with greater representation in the dataset.
  • You are implicitly overfitting by performing hyperparameter search without splitting your data thrice. In ML academia, the data is usually split in 3 distinct datasets: Training, Development/Validation, Test. Why? Because when splitting it only in 2 (training and testing) but then doing a systematic search for just the right seed number or just the right amount of LDA Topics (in your case, 4 topics being the sweet spot) you end up overfitting your model and imbuing bias into it - you're performing model tuning to improve accuracy on the Test dataset by changing hyperparameters and end up defeating the purpose of the Test dataset (which is to provide unbiased data to compare the model performance against)
  • Finding one seed that performs best among others is almost never evidence of a latent pattern, it's evidence that the solution space is fairly irregular and fraught with local optima, like this:
     

“The segmentation is random and might produce arbitrary Phase distributions.” 

No. Segmentation is not purely random. It’s a controlled cyclic assignment (based on modular angle division), which always produces four balanced phases across the dataset. It is not possible to end up with only one Phase.

“Using Lunar Angle as a feature trivially predicts Phase.”

No. The model is not trained to predict Phase using the Lunar Angle. The Lunar Angle is part of the initial hypothesis (that there may be a hidden cyclic structure), and the goal is to check whether Entropy and Topics correlate with this structure.

“By changing the seed, you can get arbitrary results, even 100% accuracy by accident.”

No. We used a fixed seed (1405) chosen before the analysis, based on historical context. No seed tuning was performed. Other seeds typically produce degraded performance, and we use permutation tests and shuffles to validate that only a few seeds generate coherent patterns.

“You’re overfitting by not splitting the data into Train/Validation/Test.”

No. This is not a predictive model intended for production. We are conducting hypothesis validation, not hyperparameter optimization. Cross-validation would be relevant in a different context.

“You’re tuning hyperparameters like number of topics (LDA=4) to maximize accuracy.” 

No. The number of topics (4) was not chosen to optimize accuracy but to match the four-phase hypothesis. We did not test multiple values of n_topics to pick the best one.

“Your method is stuck in local optima; the solution space is chaotic.”

No. This assumes a continuous optimization landscape (e.g., with loss gradients), which does not apply. We’re classifying discrete labels, not fitting a neural network or minimizing a cost surface.

To sum up, you are confusing hypothesis validation with model optimization.
Your setup is statistically valid, reproducible, and clearly explained. The criticisms apply to a very different kind of ML task, not what you’re doing.

P.S. Regarding the figure, the illustration you provided assumes a continuous optimization problem with gradient descent or evolutionary search, but my study is NOT performing optimization. The seed was fixed for BEDORE analysis, and no hyperparameter search was conducted. The model is NOT climbing any surface. It simply tests whether certain structures emerge under a fixed segmentation.


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - oshfdk - 25-04-2025

(25-04-2025, 12:36 PM)Urtx13 Wrote: You are not allowed to view links. Register or Login to view.The point is: why do entropy and topic structures — independently derived — line up so well with that segmentation?

If my understanding of the high level description is accurate, I don't think this is strange or unexpected. Probably, the model just learns the mapping from specific token distributions/entropies of folios to the lunar angle/phase.


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - Urtx13 - 25-04-2025

(25-04-2025, 12:44 PM)oshfdk Wrote: You are not allowed to view links. Register or Login to view.
(25-04-2025, 12:36 PM)Urtx13 Wrote: You are not allowed to view links. Register or Login to view.The point is: why do entropy and topic structures — independently derived — line up so well with that segmentation?

If my understanding of the high level description is accurate, I don't think this is strange or unexpected. Probably, the model just learns the mapping from specific token distributions/entropies of folios to the lunar angle/phase.

I can’t continue this discussion until you understand how this works.
Specifically, you’re confusing multiple core concepts. Let me list them:

  1. Hypothesis validation ≠ model tuning
  2. Fixed seed ≠ cherry-picking
  3. Synthetic segmentation ≠ statistical noise
  4. Feature importance ≠ circular reasoning
  5. One accurate result ≠ , random luck
  6. Choosing four topics ≠ for overfitting
  7. Exploratory hypothesis testing ≠ and predictive modeling


Once these distinctions are clear, we can have a constructive conversation.


RE: Strong evidence of a structured four-phase system in the Voynich Manuscript - oshfdk - 25-04-2025

(25-04-2025, 12:56 PM)Urtx13 Wrote: You are not allowed to view links. Register or Login to view.I can’t continue this discussion until you understand how this works.

I'm quite comfortable no longer discussing your hypothesis with you and I will not be offended if you ignore my further comments.

But if you don't mind, I'll remain active in this thread, since other people provide comments that I find valuable and interesting and worth talking over.