Following up on Marco’s point about Donald Fisk’s 2017 PCA: the same inverted-V/horseshoe shape appears in the data of You are not allowed to view links. Register or Login to view. (2021), if one uses PCA instead of the t-SNE projections shown in their paper.
Using their repository (You are not allowed to view links. Register or Login to view.), I ran PCA on their tf-idf page-by-word matrix (225 pages; as in their code, words appearing on fewer than two pages or on more than 95% of pages are excluded) and on their 6-topic NMF embedding. Both give a clear arch: plotted against the first principal component, the second follows a parabola closely (R² = 0.79 for tf-idf, 0.54 for NMF). Along the arch, herbal Currier A pages form the left arm, astrology and recipe pages sit near the apex, and starred paragraphs run down the right arm to a tight cluster of balneological pages — the same arrangement Fisk describes. Coloured by Currier language (lower row of the figure), the left arm is almost entirely A and the right arm B.
One technical note: the tokenizer in the repository joins lines without a space, so the last word of each line is fused with the first word of the next line (37,730 → 32,759 tokens). Since the fused tokens almost never occur on two pages, the filter removes them, so the effect is mainly that line-edge words are lost. The results above use the corrected tokenization (
index[pg] += ' ' + paragraph
); with the original code the arch is the same but slightly weaker (R² 0.76 / 0.48).
Using their repository (You are not allowed to view links. Register or Login to view.), I ran PCA on their tf-idf page-by-word matrix (225 pages; as in their code, words appearing on fewer than two pages or on more than 95% of pages are excluded) and on their 6-topic NMF embedding. Both give a clear arch: plotted against the first principal component, the second follows a parabola closely (R² = 0.79 for tf-idf, 0.54 for NMF). Along the arch, herbal Currier A pages form the left arm, astrology and recipe pages sit near the apex, and starred paragraphs run down the right arm to a tight cluster of balneological pages — the same arrangement Fisk describes. Coloured by Currier language (lower row of the figure), the left arm is almost entirely A and the right arm B.
One technical note: the tokenizer in the repository joins lines without a space, so the last word of each line is fused with the first word of the next line (37,730 → 32,759 tokens). Since the fused tokens almost never occur on two pages, the filter removes them, so the effect is mainly that line-edge words are lost. The results above use the corrected tokenization (
index[pg] += ' ' + paragraph
); with the original code the arch is the same but slightly weaker (R² 0.76 / 0.48).


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