I update here the modelling with the Voynich MS. I don't know if this will be of interest, but I think it gives some things to think about.
What I have done:
These are the results.
LDA
LDA model detects better coherence with just 3 topics. But it is too generalistic, so I took the peak of 9 topics to work with:
![[Image: uKObvS1.png]](https://i.imgur.com/uKObvS1.png)
You can see in this plot, that some of them overlap at about their 30% of their distance map radius, but I think it is worth the try:
![[Image: Iy74uAV.png]](https://i.imgur.com/Iy74uAV.png)
This is the distribution of the topics per paragraph:
![[Image: BG1af5i.png]](https://i.imgur.com/BG1af5i.png)
And these the word clouds per topic:
![[Image: t6IrJ93.png]](https://i.imgur.com/t6IrJ93.png)
And the topic distribution by section:
![[Image: SW3Onuu.png]](https://i.imgur.com/SW3Onuu.png)
BERTopic
BERTopic automates the number of topic found. Noise goes to topic -1. After training, BERTopic finds also 9 topics (plus the noise -1 topic). Here is the distribution:
![[Image: RTU52LU.png]](https://i.imgur.com/RTU52LU.png)
And here the word clouds:
![[Image: IbqZk3U.png]](https://i.imgur.com/IbqZk3U.png)
And the topic distribution by section:
![[Image: g0uWdhB.png]](https://i.imgur.com/g0uWdhB.png)
NMF
Automated elbow detection for NMF finds 6 topics as the optimum:
![[Image: jAICkeb.png]](https://i.imgur.com/jAICkeb.png)
The distribution across the paragraphs is following:
![[Image: fK4jaEF.png]](https://i.imgur.com/fK4jaEF.png)
The word clouds:
![[Image: xzJ4sta.png]](https://i.imgur.com/xzJ4sta.png)
And the distribution by section:
![[Image: 8Cn4xM6.png]](https://i.imgur.com/8Cn4xM6.png)
So, if you need any information about my work, feel free to contact me.
Bonus
I am just starting to analyse the results, but I did something. I know ChatGPT is not a friend here, but it is a good tool to summarize results. So I gave him the most weighted words per topic and per model, and the models distribution, and ask it to tell me which correlations or informations can it give me. Please don’t dismiss or demonize my work simply because I consulted ChatGPT for ideas.
Here is the answer, which can be also interesting:
1️⃣ Distribution of topics across sections (the heatmap-like proportions)
LDA
2️⃣ Topic keywords (high-level interpretation)
LDA
3️⃣ General observations
4️⃣ Hypotheses
What I have done:
- Created a list of paragraphs (paragraphs starting with ¡ and ending with ., but also the "lists" of words like in the cosmological roses, ara taken as paragraphs.
- Removed the most frequent used words, assuming that they are common words (who knows?). Words removed are: ['aiin', 'ar', 'chedy', 'chey', 'chol', 'daiin', 'dar', 'dy', 'ol', 'or', 'qokeey', 's', 'shedy', 'shey', 'y']
- Removed the single word paragraphs.
- Ran LDA, BERTopic and NMF models.
These are the results.
LDA
LDA model detects better coherence with just 3 topics. But it is too generalistic, so I took the peak of 9 topics to work with:
![[Image: uKObvS1.png]](https://i.imgur.com/uKObvS1.png)
You can see in this plot, that some of them overlap at about their 30% of their distance map radius, but I think it is worth the try:
![[Image: Iy74uAV.png]](https://i.imgur.com/Iy74uAV.png)
This is the distribution of the topics per paragraph:
![[Image: BG1af5i.png]](https://i.imgur.com/BG1af5i.png)
And these the word clouds per topic:
![[Image: t6IrJ93.png]](https://i.imgur.com/t6IrJ93.png)
And the topic distribution by section:
![[Image: SW3Onuu.png]](https://i.imgur.com/SW3Onuu.png)
BERTopic
BERTopic automates the number of topic found. Noise goes to topic -1. After training, BERTopic finds also 9 topics (plus the noise -1 topic). Here is the distribution:
![[Image: RTU52LU.png]](https://i.imgur.com/RTU52LU.png)
And here the word clouds:
![[Image: IbqZk3U.png]](https://i.imgur.com/IbqZk3U.png)
And the topic distribution by section:
![[Image: g0uWdhB.png]](https://i.imgur.com/g0uWdhB.png)
NMF
Automated elbow detection for NMF finds 6 topics as the optimum:
![[Image: jAICkeb.png]](https://i.imgur.com/jAICkeb.png)
The distribution across the paragraphs is following:
![[Image: fK4jaEF.png]](https://i.imgur.com/fK4jaEF.png)
The word clouds:
![[Image: xzJ4sta.png]](https://i.imgur.com/xzJ4sta.png)
And the distribution by section:
![[Image: 8Cn4xM6.png]](https://i.imgur.com/8Cn4xM6.png)
So, if you need any information about my work, feel free to contact me.
Bonus
I am just starting to analyse the results, but I did something. I know ChatGPT is not a friend here, but it is a good tool to summarize results. So I gave him the most weighted words per topic and per model, and the models distribution, and ask it to tell me which correlations or informations can it give me. Please don’t dismiss or demonize my work simply because I consulted ChatGPT for ideas.
Here is the answer, which can be also interesting:
1️⃣ Distribution of topics across sections (the heatmap-like proportions)
LDA
- LDA topics are spread fairly evenly across sections; no single topic is strongly concentrated in one section.
- Topic 2 stands out:
- Biological has a very high proportion (0.52)
- That suggests some vocabulary in Topic 2 is unique to that section (possibly labels, patterns, or specialized words).
- Biological has a very high proportion (0.52)
- Botanical is broadly distributed across many topics, which is expected given it’s the largest section.
- Astronomical and Cosmological are not dominated by a single topic — they are mixed.
- Large share of paragraphs labeled -1 (outliers/no clear topic) especially in Cosmological (0.46), Pharmacological (0.50), Recipes (0.57).
→ Suggests these sections have less internally consistent clusters or use more varied vocabulary.
- Topic 0 is Botanical-heavy (0.59).
- Topic 2 is Biological-heavy (0.23).
- Overall: BERTopic seems to be splitting Botanical and Biological into distinct clusters, but struggles to model Cosmological/Recipes.
- Much stronger specialization than LDA:
- Topic 1 is almost entirely Botanical (0.65).
- Topic 3 is largely Biological (0.46).
- Topic 2 is Cosmological-heavy (0.67).
- Topic 5 is Pharmacological-heavy (0.65).
- Topic 1 is almost entirely Botanical (0.65).
- This is a clear separation:
NMF aligns topics with manuscript sections much more than LDA or BERTopic.
2️⃣ Topic keywords (high-level interpretation)
LDA
- Top words dominated by common Voynich stems: qokeedy, qokedy, chor, otedy, dal, dain...
- These are global frequent tokens, which is why LDA distributes topics evenly across sections.
- Topics 0–8 look more like statistical clusters of frequent syllable-like units than semantic groups.
- Hypothesis: LDA in Voynich case mostly groups by script/word-form patterns (maybe scribal habits, line positions, gallows usage) rather than semantic categories.
- Topics 0–8 clearly group orthographically similar word families:
- Topic 0: chor, chy, sho, cthy...
- Topic 1: qokaiin, qokain, okaiin...
- Topic 3: otoldy, okol, okolo...
- Topic 5: qokchedy, qopchedy...
- Topic 0: chor, chy, sho, cthy...
- This is strong evidence BERTopic clusters by word-form morphology — essentially “roots” or repeating glyph patterns.
- These clusters sometimes align with sections (Topic 0 heavily Botanical, etc.).
- The clearest segmentation:
- Topic 1: chor, chy, cthy, shol
→ matches clusters in Herbal/plant section (Botanical).
- Topic 2: okaiin, okar, qokaiin...
→ occurs in sections with lots of aiin endings (Cosmological + Recipes).
- Topic 3: qokain, qokal, qol
→ concentrated in Biological section.
- Topic 5: cheol, okeol, sheol
→ concentrated in Pharmacological.
- Topic 1: chor, chy, cthy, shol
- Hypothesis: NMF is isolating morphological families tied to certain sections — possibly reflecting differences in vocabulary or “currier hands”.
3️⃣ General observations
- Alphabetical arrangement in Culpeper caused topics to scatter across the section;
Voynich doesn’t have alphabetical ordering so topic clustering should reflect functional segmentation.
We see some of that in NMF.
- LDA here is limited — its topics align weakly with sections, suggesting it mainly captures high-frequency tokens.
- BERTopic finds morphological families but leaves many outliers (-1) — possibly because Voynich word distribution is flatter than typical text corpora.
- NMF shows the strongest correspondence between topics and sections, suggesting:
- Different sections use distinct “lexical sets” (whether actual lexicon or scribal variants).
- Voynich sections may have semi-autonomous vocabularies.
- Different sections use distinct “lexical sets” (whether actual lexicon or scribal variants).
4️⃣ Hypotheses
- Different scribes or functional registers
- The alignment of NMF topics to sections suggests either different scribes with different preferred glyph sequences, or different formulaic content by section.
- The alignment of NMF topics to sections suggests either different scribes with different preferred glyph sequences, or different formulaic content by section.
- Section-specific vocabulary
- Biological vs. Botanical vs. Pharmacological differences may indicate thematic sets of words (real or pseudo-lexical).
- Biological vs. Botanical vs. Pharmacological differences may indicate thematic sets of words (real or pseudo-lexical).
- Cosmological as an anomaly
- Cosmological sections cluster together in NMF (Topic 2) despite being short; could imply repeated formulae or unique word-shapes.
- Cosmological sections cluster together in NMF (Topic 2) despite being short; could imply repeated formulae or unique word-shapes.
- Recipes section is diffuse
- BERTopic and LDA both show Recipes as not strongly tied to one topic; perhaps because of greater lexical diversity or mixing of vocabulary sets.
- BERTopic and LDA both show Recipes as not strongly tied to one topic; perhaps because of greater lexical diversity or mixing of vocabulary sets.
- Pharmacological section is specialized
- NMF Topic 5 dominance suggests a stable repeated vocabulary unique to this section.
- NMF Topic 5 dominance suggests a stable repeated vocabulary unique to this section.


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