概要
- Voynich Manuscriptを現代NLPで構造解析したプロジェクトの要約
- 翻訳やパターン憶測を避け、言語構造の有無のみを検証
- SBERTクラスタリングやマルコフ遷移などを用いた手法を採用
- サフィックス除去前処理の影響や限界も明記
- 結果として、未知言語でも言語的構造が観察されたことを示唆
Voynich Manuscript 構造解析プロジェクト概要
プロジェクトの目的と背景
- Voynich Manuscript(ヴォイニッチ手稿)は 未解読の15世紀写本 で、言語・暗号・人工言語・偽書など多様な仮説が存在
- 本プロジェクトは NLP(自然言語処理)手法 で「構造的言語らしさ」の有無を検証することを目的とすること
- 翻訳や意味推測 は行わず、 構造的特徴 (クラスタリング、品詞推定、遷移パターンなど)のみを分析対象とすること
- 個人の学習目的 で始めたものであり、言語学者・暗号研究者ではないことを明記すること
プロジェクト構成
- /data/
- AB.docx:全フォリオ・行タグ付き転写データ
- voynichese/:サフィックス除去済み根語テキスト
- stripped_cluster_lookup.json:根語ごとのクラスタID
- unique_stripped_words.json:全根語リスト
- voynich_line_clusters.csv:行ごとのクラスタ系列
- /scripts/
- cluster_roots.py:SBERTクラスタリング+サフィックス除去
- map_lines_to_clusters.py:各行をクラスタIDにマッピング
- pos_model.py:クラスタ挙動から品詞的役割推定
- transition_matrix.py:クラスタ遷移行列の構築・可視化
- lexicon_builder.py:セクション別・役割別語彙仮説生成
- cluster_language_similarity.py:実在言語とのクラスタ類似度比較(任意)
- /results/
- Figure_1.png:SBERTクラスタ(PCA可視化)
- transition_matrix_heatmap.png:マルコフ遷移行列ヒートマップ
- cluster_role_summary.csv、lexicon_candidates.csv等:分析結果ファイル
主な技術的貢献
- サフィックス除去 後の根語クラスタリング(多言語SBERT利用)
- 機能語的クラスタ と 内容語的クラスタ の識別
- マルコフ遷移行列 によるクラスタ系列の構造的可視化
- フォリオ(セクション)別 の統語構造の比較
- データ駆動型語彙仮説テーブル の生成
前処理上の重要な選択
- aiin, dy, chy等のサフィックス的語尾を除去 し根語を抽出すること
- 目的:反復変化する語幹を抽出しクラスタリング精度を向上させること
- 仮説:語尾が 音韻的パディング・文法的粒子・呪文的反復・ノイズ 等の可能性
- 効果:クラスタのまとまり向上・遷移行列の構造化
- リスク: 形態素情報の損失・有意味な屈折形の消失・機能語偏重のバイアス導入
- サフィックスを独立トークン扱いする再分析も推奨すること
主な発見(例)
- クラスタ8 :高頻度・低多様性・行頭出現が多く、機能語的性質を示唆
- クラスタ3 :高多様性・柔軟な配置、内容語的性質を示唆
- 遷移行列 :内部構造が強く、ランダム系列とは異なる
- セクションごとのクラスタ利用・品詞推定パターン に違いが観察される(Botanical, Biological等)
仮説
- 本写本は 音節パディングや位置的反復を伴う構造的人工言語または記憶術的言語 を符号化している可能性
- 統語構造・機能語/内容語分離・セクションごとの言語変化 が観察されること
再現手順
- 依存関係インストール
pip install -r requirements.txt
- 各分析ステージのスクリプト実行
python scripts/cluster_roots.pypython scripts/map_lines_to_clusters.pypython scripts/pos_model.pypython scripts/transition_matrix.pypython scripts/lexicon_builder.py
可視化例
- Figure 1 :SBERTクラスタ埋め込み(PCA次元圧縮)
- Figure 2 :SBERTクラスタ埋め込み(UMAP次元圧縮)
- Figure 3 :SBERTクラスタ埋め込み(PaCMAP次元圧縮)
- Figure 4 :遷移行列ヒートマップ
限界・注意点
- クラスタと語の対応が間接的であり、 頻度推定が重複する可能性
- サフィックス除去はヒューリスティック であり、意味的語尾を除去している場合あり
- 意味的翻訳は一切行わず、構造分析のみ
著者コメント
- 本プロジェクトは NLPやAIの学習目的 で、「未知の構造的言語」に現代手法がどこまで迫れるかを検証するために実施
- Voynich Manuscriptの 解読や翻訳を目指すものではなく、構造分析の可能性を示すことが主眼
- Rosetta Stoneの発見を期待する人向けではなく、構造モデル化に関心のある研究者・愛好者向け
最近の拡張・貢献者への謝辞
- UMAP・PaCMAP 等の非線形次元削減可視化サポート追加(CLI引数で切替可能)
- モデルを all-MiniLM-L6-v2からparaphrase-multilingual-mpnet-base-v2 へ大型化
- MacOS未対応(Windowsのみ動作確認済み)
- @theElandor:UMAP実装・CLI改善・コード整理の貢献
- @patcon:PaCMAP/LocalMAP次元削減アルゴリズム実装の貢献
- コントリビューション・批評・拡張歓迎 (言語学者・暗号研究者・人工言語愛好家・計算言語学者など)
付記
- 本プロジェクトは NLP学習のために未知・未解読対象へ適用 した実験的試み
- Voynich Manuscriptは 15世紀の未知文字写本 であり、解読不能・偽書・暗号・人工言語など諸説あり
- サフィックス除去→SBERTクラスタリング→品詞推定→マルコフ遷移行列 という流れで構造のみを分析
- セクションごとに 一貫した構造的パターン が観察されたことを強調
- GitHubリポジトリ:https://github.com/brianmg/voynich-nlp-analysis
- 詳細解説:https://brig90.substack.com/p/modeling-the-voynich-manuscrip...
- NLP初心者としての実践例 であり、構造的言語モデリングや特殊ケースに関心のある方からの フィードバックを歓迎