The Voynich Ninja

Full Version: Strong evidence of a structured four-phase system in the Voynich Manuscript
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8
(25-04-2025, 01:09 PM)oshfdk Wrote: You are not allowed to view links. Register or Login to view.
(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.

Of course! No worries Smile
Hi Urtx13 and welcome.
Is there a ball-park timescale for when your paper will be available to read ?
and
Thank you for explaining  your work and your findings this is much appreciated.
(25-04-2025, 02:12 PM)RobGea Wrote: You are not allowed to view links. Register or Login to view.Hi Urtx13 and welcome.
Is there a ball-park timescale for when your paper will be available to read ?
and
Thank you for explaining  your work and your findings this is much appreciated.

Nice to meet you! 

Glad to hear that. The paper will be on ArXiv in less than two weeks. I am just finalizing the version with all the figures and tests. A more extended version will also be submmited soon to Cryptology. Looking forward to your thought once its out. And if you have any questions about the project please let me know and I will be glad to help.
Hello Urtx13
You should definitely describe your findings in more layman terms. You have some diverse audience here. Some people are good in Latin, some in cryptology, some in medieval handwriting, some in botanics etc. You cannot just expect people to download and run your Python scripts. And you cannot expect people to know your statistical techniques. 

Possibly at some moment they would have to be verified by experts if there aren't any mistakes or statistical artifacts but to gain momentum and get people interested you must show something interesting and convincing to an educated layman.

As I understand you don't have any translation of the text, even partial. Instead your tests detected some regularities in the manuscript text. Is that right?

What is the nature of these regularities? Tell us more in simple words.
Quote: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.

Fair enough, I double-checked and true, the labelling is done evenly on the dataset and then shuffled, effectively giving 25% of the folios Phase 0, a different (random) 25% of Folios Phase 1, and so on. But it's only balanced on the whole dataset when accounting for training+test, no guarantees to have a balance after the 75-25 split. With just 4 Phases, no big deal of course, but with more than 4 the imbalance can take a toll on the results and worsen scores.

Quote: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.

Is the accuracy 90-ish % accuracy you mention the score given in supervised_models_seed.py? That is the accuracy of the predictions by the model.

Quote:“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.

It's not about models for production. The validation set is to avoid overfitting, which is also key in academia. And there IS hyperparameter optimization.

Quote: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.

Oh yes you did:
Quote:Also, I think you’re right to question whether setting four topics is arbitrary. It’s not. We tried multiple options and observed that four is the only number that yields a strong, consistent internal pattern, not just via topic modeling, but also in entropy trends, classifier performance (96.5%), autocorrelation, FFT peaks, and alignment with agronomic cycles.


Quote: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.
(...)
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.

The picture was to exemplify, but you can be sure that when accounting for all parameters and hyperparameters, there are indeed local optima in the solution space. And your study is performing optimization because it involves training a machine learning model Smile Still, I don't think this is the reason why you're getting good results, just a pitfall I can see you falling into.

Quote: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.

You are using the fact that you trained an ML to predict some labels as evidence that there is a pattern to even learn in the first place.

My point still stands that you are using a trivial predictor - when ablating Lunar Angle you claim the accuracy drops to about 28% (close to what random prediction, 25% would be). Lunar Angle is a trivial predictor of Phase because no matter how shuffled the dataset and the Lunar Angle will be, if folio f1 gets a Lunar Angle of 92º (or whatever angle that may be depending on the seed), the following lines of code will execute to give the 'correct' Phase to folio f1 against which you'll end up measuring your accuracy:

Code:
If 0º ≤ Lunar Angle < 90º then:
        Phase := 0  # Lluna Nova
    If 90º ≤ Lunar Angle < 180º then:
        Phase := 1  # Quart Creixent
    If 180º ≤ Lunar Angle < 270º then:
        Phase := 2  # Lluna Plena
    If 270º ≤ Lunar Angle < 360º:
        Phase := 3  # Quart Minvant
(generate_lunar_angles_seed.py)

The AI models will have the entropy, the topics and the 'Lunar Angle' for each and every folio, and they'll eventually come to the best way of predicting the correct Phase: by looking at the Lunar Angle. That's how you get such an extraordinarily high accuracy.


By the track record of this post, you'll disagree with my remarks and claim I know jackshit and that I'm mixing up circular logic with validation and whatnot. Would you please download the code again in a separate folder and perform the same study, but this time ablating all features EXCEPT Lunar Angle and see if you get >85% accuracy as well? Or try running it with some gibberish text, MarcoP once uploaded an OCR of the Codex Seraphinianus to GitHub, I think that ought to do it.
(25-04-2025, 09:22 PM)Rafal Wrote: You are not allowed to view links. Register or Login to view.Hello Urtx13
You should definitely describe your findings in more layman terms. You have some diverse audience here. Some people are good in Latin, some in cryptology, some in medieval handwriting, some in botanics etc. You cannot just expect people to download and run your Python scripts. And you cannot expect people to know your statistical techniques. 

Possibly at some moment they would have to be verified by experts if there aren't any mistakes or statistical artifacts but to gain momentum and get people interested you must show something interesting and convincing to an educated layman.

As I understand you don't have any translation of the text, even partial. Instead your tests detected some regularities in the manuscript text. Is that right?

What is the nature of these regularities? Tell us more in simple words.

I did before I thought. I'll copy it here again:

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 Palladius' Opus Agriculturae.

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.

That’s correct: I don’t have any translation of the text yet.
However, what I have found is a firm first step towards achieving it.
(25-04-2025, 10:18 PM)RadioFM Wrote: You are not allowed to view links. Register or Login to view.
Quote: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.

Fair enough, I double-checked and true, the labelling is done evenly on the dataset and then shuffled, effectively giving 25% of the folios Phase 0, a different (random) 25% of Folios Phase 1, and so on. But it's only balanced on the whole dataset when accounting for training+test, no guarantees to have a balance after the 75-25 split. With just 4 Phases, no big deal of course, but with more than 4 the imbalance can take a toll on the results and worsen scores.

Quote: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.

Is the accuracy 90-ish % accuracy you mention the score given in supervised_models_seed.py? That is the accuracy of the predictions by the model.

Quote:“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.

It's not about models for production. The validation set is to avoid overfitting, which is also key in academia. And there IS hyperparameter optimization.

Quote: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.

Oh yes you did:
Quote:Also, I think you’re right to question whether setting four topics is arbitrary. It’s not. We tried multiple options and observed that four is the only number that yields a strong, consistent internal pattern, not just via topic modeling, but also in entropy trends, classifier performance (96.5%), autocorrelation, FFT peaks, and alignment with agronomic cycles.


Quote: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.
(...)
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.

The picture was to exemplify, but you can be sure that when accounting for all parameters and hyperparameters, there are indeed local optima in the solution space. And your study is performing optimization because it involves training a machine learning model Smile Still, I don't think this is the reason why you're getting good results, just a pitfall I can see you falling into.

Quote: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.

You are using the fact that you trained an ML to predict some labels as evidence that there is a pattern to even learn in the first place.

My point still stands that you are using a trivial predictor - when ablating Lunar Angle you claim the accuracy drops to about 28% (close to what random prediction, 25% would be). Lunar Angle is a trivial predictor of Phase because no matter how shuffled the dataset and the Lunar Angle will be, if folio f1 gets a Lunar Angle of 92º (or whatever angle that may be depending on the seed), the following lines of code will execute to give the 'correct' Phase to folio f1 against which you'll end up measuring your accuracy:

Code:
If 0º ≤ Lunar Angle < 90º then:
        Phase := 0  # Lluna Nova
    If 90º ≤ Lunar Angle < 180º then:
        Phase := 1  # Quart Creixent
    If 180º ≤ Lunar Angle < 270º then:
        Phase := 2  # Lluna Plena
    If 270º ≤ Lunar Angle < 360º:
        Phase := 3  # Quart Minvant
(generate_lunar_angles_seed.py)

The AI models will have the entropy, the topics and the 'Lunar Angle' for each and every folio, and they'll eventually come to the best way of predicting the correct Phase: by looking at the Lunar Angle. That's how you get such an extraordinarily high accuracy.


By the track record of this post, you'll disagree with my remarks and claim I know jackshit and that I'm mixing up circular logic with validation and whatnot. Would you please download the code again in a separate folder and perform the same study, but this time ablating all features EXCEPT Lunar Angle and see if you get >85% accuracy as well? Or try running it with some gibberish text, MarcoP once uploaded an OCR of the Codex Seraphinianus to GitHub, I think that ought to do it.

To clarify: in the current pipeline, the Lunar Angle is not used as a predictive feature.
It is only used once at the beginning, to assign Phase labels based on modular angle division.

The machine learning model is trained exclusively on token-based features (entropy, topic distributions) extracted from the text itself. The Lunar Angle is not an input feature.

Consequently, the classification accuracy reflects real structural patterns in the textual data, not a direct prediction from the assigned angles.

Furthermore, in the ablation study, removing the Lunar Angle leads to a strong drop in performance, confirming that the structure is grounded in the token distribution.

Of course, your point about verifying robustness is very valid — I am preparing additional tests with randomized datasets and alternative setups to reinforce the conclusions.

To summarize, you are misunderstanding the purpose of my work:

My goal is not to build a “phase predictor” with high accuracy.
My goal is to demonstrate that a latent four-phase structure exists within the text.
(25-04-2025, 10:18 PM)RadioFM Wrote: You are not allowed to view links. Register or Login to view.
Quote: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.

Fair enough, I double-checked and true, the labelling is done evenly on the dataset and then shuffled, effectively giving 25% of the folios Phase 0, a different (random) 25% of Folios Phase 1, and so on. But it's only balanced on the whole dataset when accounting for training+test, no guarantees to have a balance after the 75-25 split. With just 4 Phases, no big deal of course, but with more than 4 the imbalance can take a toll on the results and worsen scores.

Quote: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.

Is the accuracy 90-ish % accuracy you mention the score given in supervised_models_seed.py? That is the accuracy of the predictions by the model.

Quote:“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.

It's not about models for production. The validation set is to avoid overfitting, which is also key in academia. And there IS hyperparameter optimization.

Quote: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.

Oh yes you did:
Quote:Also, I think you’re right to question whether setting four topics is arbitrary. It’s not. We tried multiple options and observed that four is the only number that yields a strong, consistent internal pattern, not just via topic modeling, but also in entropy trends, classifier performance (96.5%), autocorrelation, FFT peaks, and alignment with agronomic cycles.


Quote: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.
(...)
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.

The picture was to exemplify, but you can be sure that when accounting for all parameters and hyperparameters, there are indeed local optima in the solution space. And your study is performing optimization because it involves training a machine learning model Smile Still, I don't think this is the reason why you're getting good results, just a pitfall I can see you falling into.

Quote: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.

You are using the fact that you trained an ML to predict some labels as evidence that there is a pattern to even learn in the first place.

My point still stands that you are using a trivial predictor - when ablating Lunar Angle you claim the accuracy drops to about 28% (close to what random prediction, 25% would be). Lunar Angle is a trivial predictor of Phase because no matter how shuffled the dataset and the Lunar Angle will be, if folio f1 gets a Lunar Angle of 92º (or whatever angle that may be depending on the seed), the following lines of code will execute to give the 'correct' Phase to folio f1 against which you'll end up measuring your accuracy:

Code:
If 0º ≤ Lunar Angle < 90º then:
        Phase := 0  # Lluna Nova
    If 90º ≤ Lunar Angle < 180º then:
        Phase := 1  # Quart Creixent
    If 180º ≤ Lunar Angle < 270º then:
        Phase := 2  # Lluna Plena
    If 270º ≤ Lunar Angle < 360º:
        Phase := 3  # Quart Minvant
(generate_lunar_angles_seed.py)

The AI models will have the entropy, the topics and the 'Lunar Angle' for each and every folio, and they'll eventually come to the best way of predicting the correct Phase: by looking at the Lunar Angle. That's how you get such an extraordinarily high accuracy.


Based on the track record of this post, you'll likely disagree with my remarks and claim I know nothing and that I'm mixing up circular logic with validation and so on. Would you please download the code again in a separate folder and perform the same study, but this time ablating all features EXCEPT Lunar Angle and see if you get >85% accuracy as well? Or try running it with some gibberish text, MarcoP once uploaded an OCR of the Codex Seraphinianus to GitHub, I think that ought to do it.

So:

The Lunar Angle is only used once at the beginning to assign Phase labels (0, 1, 2, 3) based on modular division (0–90°, 90–180°, etc.).
The Lunar Angle is never used as a feature for training or prediction. It is not part of the input to the Random Forest model.
The only features used for training are:
Lexical entropy (Shannon entropy per folio)
LDA topic distributions (from TF-IDF vectors)

Thus, the model learns to predict the assigned Phase purely based on textual patterns extracted from the folios, not from any information about the Lunar Angle.

In academic machine learning aimed at generalization, train/validation/test splits are essential.
However, this project does not optimize models for deployment — it tests for latent structure within a fixed corpus.
Therefore, classical overfitting concerns do not apply in the same way. The focus here is on pattern existence, not prediction quality.
What year are you in at "Universitat Oberta de Catalunya"?
What about Scribes and Currier languages?

Wasn't there 3 scribes writing Herbal folios and someone splitting Herbal into Herbal-A and Herbal-B dialects ?
Though that is not 4 divisions, it could cloud the issue.

I suppose we need  the data to see which folios are in which group.
Pages: 1 2 3 4 5 6 7 8