Voynich原皿、ランダムフォレスト分類子の蚀語を決定する詊み

私たちは、Pythonの単玔な自然蚀語凊理技術を䜿甚しお、神秘的な原皿Voynich原皿の蚀語を特定しようずしおいたす。







1 Voynichの原皿ずは䜕ですか



Voynichの原皿は、おそらく15䞖玀から私たちに届いた、240ペヌゞに及ぶ䞍思議な原皿コヌデックス、原皿、たたは単なる本です。原皿は、1912幎に有名な炭玠質䜜家゚セル・ボむニッチりィルフレッド・ボむニッチの倫によっお叀物商から誀っお取埗され、すぐに䞀般の人々の所有物になりたした。



原皿の蚀語はただ決定されおいたせん。原皿の倚くの研究者は、原皿のテキストが暗号化されおいるこずを瀺唆しおいたす。他の人は、原皿が今日私たちに知られおいるテキストで生き残っおいない蚀語で曞かれたず確信しおいたす。さらに他の人は、Voynichの原皿をナンセンスだず考えおいたす䞍条理なCodex Seraphinianusの珟代の賛矎歌を参照しおください。



䟋ずしお、テキストずニンフを含む䞻題のスキャンされたフラグメントを瀺したす。







2なぜこの颚倉わりな原皿はずおも面癜いのですか



倚分これは遅い停造ですかどうやらそうではありたせん。トリノシュラりドずは異なり、攟射性炭玠分析も矊皮玙の叀さを争う他の詊みも、ただ明確な答えを䞎えおいたせん。しかし、Voynichは、20䞖玀の初めに同䜍䜓分析を予芋するこずはできたせんでした...



しかし、原皿が遊び心のある僧䟶、意識を倉えた貎族のペンからの無意味な文字のセットである堎合はどうなりたすかいいえ、絶察にありたせん。たずえば、無意識のうちにキヌを叩くず、「asfds dsf」のように、誰もがよく知っおいる倉調されたQWERTYキヌボヌドのホワむトノむズを描写したす。」。グラフによるず、䜜者はよく知られおいるアルファベットの蚘号をしっかりず手で曞いたこずがわかりたす。さらに、原皿のテキスト内の文字ず単語の分垃の盞関関係は、「生きおいる」テキストに察応しおいたす。たずえば、条件付きで6぀のセクションに分割された原皿には、「固有」ずいう単語がありたす。これは、セクションの1぀によく芋られたすが、他のセクションにはありたせん。



しかし、原皿が耇雑な暗号であり、それを砎ろうずしおも理論的に意味がない堎合はどうなるでしょうか。私たちがテキストの由緒ある時代を信じるならば、暗号化バヌゞョンは非垞にありそうにありたせん。䞭䞖は、゚ドガヌ・アラン・ポヌがずおも簡単か぀゚レガントに砎った代替暗号しか提䟛できたせんでした。繰り返したすが、テキストの文字ず単語の盞関関係は、倧倚数の暗号では䞀般的ではありたせん。



珟代のコンピュヌティングリ゜ヌスの䜿甚を含め、叀代のスクリプトの翻蚳に倧きな成功を収めたにもかかわらず、Voynichの原皿は、経隓豊富なプロの蚀語孊者や若い野心的なデヌタ科孊者のどちらにも反察しおいたす。



3しかし、原皿の蚀語が私たちに知られおいる堎合はどうなりたすか



...しかし、スペルは異なりたすかたずえば、このテキストでラテン語を認識しおいるのは誰ですか







そしお、ここに別の䟋がありたす-英語のテキストのギリシャ語ぞの翻蚳



in one of the many little suburbs which cling to the outskirts of london
ιΜ οΜε οφ Ξε ΌαΜυ λιττλε συΌπυρΌπσ whιχ cλιγγ το Ξε ουτσκιρτσ οφ λοΜΎοΜ


PythonのTransliterateラむブラリ。泚意これはもはや眮換暗号ではありたせん-いく぀かの耇数文字の組み合わせは1文字で送信され、その逆も同様です。



私は、特城を匷調し、それらの䞊にモデルを蚓緎、分類原皿の蚀語を識別しようずする、たたは既知の蚀語からのそれに比べお最も近いがありたす







最初の段階では-フィヌチャヌ-テキストを特城ベクトルに倉換したす。実数の固定サむズの配列で、ベクトルの各次元が゜ヌステキストの独自の特別な特城特城を担いたす。たずえば、ベクトルの15次元で、テキストで最も䞀般的な単語の䜿甚頻床を維持するこずに同意したしょう。16次元では、2番目に人気のある単語... N次元では、同じ繰り返し単語からのシヌケンスの最倧長などです。



2番目のステップであるトレヌニングでは、各テキストの蚀語に関する事前の知識に基づいお分類子の係数を遞択したす。



分類子がトレヌニングされるず、このモデルを䜿甚しお、トレヌニングサンプルに含たれおいなかったテキストの蚀語を刀別できたす。たずえば、Voynich原皿のテキストの堎合。



4絵はずおもシンプルです-キャッチは䜕ですか



トリッキヌな郚分は、テキストファむルをベクトルに正確に倉換する方法です。小麊をチャフから分離し、蚀語党䜓の特城である特城のみを残し、それぞれの特定のテキストは残したせん。



簡単にするために、゜ヌステキストを゚ンコヌディング぀たり数倀に倉換し、このデヌタをそのたた倚くのニュヌラルネットワヌクモデルの1぀に「フィヌド」するず、結果はおそらく私たちを満足させたせん。ほずんどの堎合、そのようなデヌタでトレヌニングされたモデルはアルファベットに関連付けられ、シンボルに基づいお、たず、未知のテキストの蚀語を決定しようずしたす。



しかし、原皿のアルファベットには「類䌌点はありたせん」。さらに、文字の分垃のパタヌンに完党に䟝存するこずはできたせん。理論的には、ある蚀語の音声を別の蚀語のルヌルで転送するこずも可胜です蚀語ぱルフであり、ルヌンはモルドヌルです。



狡猟な筆蚘者は、私たちが知っおいるように、句読点や数字を䜿甚したせんでした。すべおのテキストは、段萜に分割された単語のストリヌムず考えるこずができたす。ある文がどこで終わり、別の文がどこから始たるかに぀いおさえ確実ではありたせん。



これは、私たちが文字に関しおより高いレベルに䞊昇し、蚀葉に䟝存するこずを意味したす。原皿のテキストに基づいお蟞曞を䜜成し、すでに単語レベルでパタヌンを远跡したす。



5原皿の原文



もちろん、Voynich原皿の耇雑な文字をUnicodeの同等の文字に゚ンコヌドする必芁はなく、その逆も同様です。この䜜業は、たずえばここですでに行われおいたす。デフォルトのオプションを䜿甚するず、原皿の最初の行に盞圓する次のものが埗られたす。



fachys.ykal.ar.ataiin.shol.shory.cth!res.y.kor.sholdy!-


ドットず感嘆笊およびEVAアルファベットの他の倚くの蚘号は単なる区切り文字であり、私たちの目的ではスペヌスに眮き換えるこずができたす。疑問笊ずアスタリスクは認識されない単語/文字です。



確認のために、ここのテキストを眮き換えお、原皿の断片を取埗したしょう。







6プログラム-テキスト分類子Python



これは、実際のコヌドをテストするために必芁な最小限のREADMEヒントを含むコヌドリポゞトリぞのリンクです。



ラテン語、ロシア語、英語、ポヌランド語、ギリシャ語で20以䞊のテキストを収集し、各テキストの量を±35,000語Voynich原皿の量に維持しようずしたした。



私はテキストで近い日付を遞択しようずしたした。たずえば、ロシア語のテキストでは、文字Ѣを避けたした。異なるダむアクリティックでギリシャ語の文字を曞くこずのバリ゚ヌションは、共通の分母に぀ながりたした。たた、テキストから数字やスペシャルを削陀したした。文字、䜙分なスペヌス、1぀のケヌスに倉換された文字。



次のステップは、次のような情報を含む「蟞曞」を䜜成するこずです。



  • テキストテキスト内の各単語の䜿甚頻床、
  • 単語の「ルヌト」-぀たり、䞀連の単語の倉曎䞍可胜な共通郚分、
  • 䞀般的な「接頭蟞」ず「終わり」-ずいうか、実際の蚀葉を構成する「ルヌト」ず䞀緒に、蚀葉の始たりず終わり、
  • 2぀および3぀の同䞀の単語の䞀般的なシヌケンスずそれらの出珟頻床。


私は匕甚笊で単語の「ルヌト」を取りたした-単玔なアルゎリズムそしお時々私自身は、䟋えば、単語サポヌトのルヌトは䜕であるかを決定するこずができたせんかこずでになっおきおKA料金の䞋で



䞀般的に蚀えば、この語圙は、特城ベクトルを構築するための半分準備されたデヌタです。なぜ私はこの段階を遞び出したのですか個々のテキストず各蚀語のテキストのセットの蟞曞をコンパむルしおキャッシュしたすか実際、このような蟞曞の䜜成には長い時間がかかり、テキストファむルごずに玄30分かかりたす。そしお、私はすでに120以䞊のテキストファむルを持っおいたす。



7機胜化



特城ベクトルを取埗するこずは、分類噚をさらに魔法のようにするための予備段階にすぎたせん。もちろん、OOPフリヌクずしお、䟝存関係の反転の原則に違反しないように、アップストリヌムロゞック甚の抜象クラスBaseFeaturizerを䜜成したした。このクラスは、1぀たたは耇数のテキストファむルを䞀床に数倀ベクトルに倉換できるように子孫に遺莈したす。 たた、継承クラスは、個々のフィヌチャフィヌチャベクトルのi座暙に名前を付ける必芁がありたす。これは、分類のマシンロゞックを芖芚化する堎合に圹立ちたす。たずえば、ベクトルの0番目の次元はCRw1ずしおマヌクされたす-隣接する䜍眮のテキストから取埗された単語の䜿甚頻床の自動盞関ラグ1。BaseFeaturizer クラスから、クラスを継承したした







WordMorphFeaturizer。そのロゞックは、テキスト党䜓および12ワヌドのスラむドりィンドり内でのワヌドの䜿甚頻床に基づいおいたす。



重芁な偎面は、テキスト自䜓に加えお、BaseFeaturizerの特定の継承者のコヌドにも、モデルのトレヌニングずテストの開始時にすでにディスクにキャッシュされおいる可胜性が高い、それらに基づいお準備された蟞曞CorpusFeaturesクラスが必芁なこずです。



8分類



次の抜象クラスはBaseClassifierです。このオブゞェクトはトレヌニングしおから、特城ベクトルによっおテキストを分類できたす。



実装RandomForestLangClassifierクラスでは、sklearnラむブラリからRandom ForestClassifierアルゎリズムを遞択したした。なぜこの特定の分類子



  • Random Forest Classifierは、デフォルトのパラメヌタヌで私に適しおいたした。
  • 入力デヌタの正芏化は必芁ありたせん。
  • 意思決定アルゎリズムのシンプルで盎感的な芖芚化を提䟛したす。


私の意芋では、ランダムフォレスト分類子がそのタスクを凊理したので、他の実装を䜜成しおいたせん。



9トレヌニングずテスト



ファむルの80Byron、Aksakov、Apuleius、Pausanias、およびtxt圢匏でテキストを芋぀けるこずができた他の著者の䜜品からの倧きな断片は、分類子をトレヌニングするためにランダムに遞択されたした。残りの2028ファむルはサンプル倖テスト甚です。



箄30の英語ず20のロシア語のテキストで分類子をテストしたしたが、分類子ぱラヌの倧郚分を瀺したした。ほずんどの堎合、テキストの蚀語が正しく決定されおいたせんでした。しかし、私が5぀の蚀語ロシア語、英語、ラテン語、旧ギリシャ語、ポヌランド語で玄120のテキストファむルを開始したずき、分類子は間違いを犯すこずをやめ、28のテストケヌスから27〜28ファむルの蚀語を正しく認識し始めたした。



次に、問題を少し耇雑にしたした。19䞖玀のアむルランドの小説「レむチェル・グレむ」をギリシャ語に曞き写し、蚓緎を受けた分類者に提出したした。文字倉換のテキストの蚀語が再び正しく定矩されたした。



10分類アルゎリズムは明確です



これは、トレヌニングされたランダムフォレスト分類子の100本のツリヌの1぀がどのように芋えるかです画像を読みやすくするために、右偎のサブツリヌの3぀のノヌドを切り取りたした







䟋ずしおルヌトノヌドを䜿甚しお、各眲名の意味を説明したす。



  • DGram3 <= 0.28-分類基準。この堎合、DGram3は、WordMorphFeaturizerクラスによっお名前が付けられた特城ベクトルの特定の次元です。぀たり、12ワヌドのスラむディングりィンドりで3番目に䞀般的なワヌドの頻床です。
  • gini = 0.76 — , Gini impurity, , , . , , - . . , gini, , 0 ( ),
  • samples = 92 — , ,
  • value = [46, 17, 45, 12, 29] — , (46 , 17 , 45 ..),
  • class = en ( ) — .


基準ルヌトノヌドのDGram3 <= 0.28が満たされおいる堎合は、巊偎のサブツリヌに移動したす。そうでない堎合は、右偎に移動したす。各シヌトでは、すべおのテキストを1぀のクラス蚀語に割り圓お、Giniの䞍確実性基準≡0にする必芁がありたす。



最終的な決定は、分類子のトレヌニング䞭に䜜成された100本の同様のツリヌのアンサンブルによっお行われたす。



11そしお、プログラムはどのように原皿の蚀語を定矩したしたか



ラテン語、確率掚定0.59。そしおもちろん、これは今䞖玀の問題の解決策ではありたせん。



原皿蟞曞ずラテン語の1察1の察応は、䞍可胜ではないにしおも、簡単ではありたせん。たずえば、最も頻繁に䜿甚される10の 単語を







次に







瀺したす。Voynich原皿、ラテン語、叀代ギリシャ語、ロシア語アスタリスクは、ロシア語に盞圓するものを芋぀けるのが難しい単語を瀺したす。たずえば、文脈に応じお意味が倉わる蚘事や前眮詞などです。



のような明らかな䞀臎







文字を他のよく䜿う単語に眮き換えるための芏則の拡匵で、私は芋぀けるこずができたせんでした。仮定を立おるこずができるのは、たずえば、最も䞀般的な単語は「and」ずいう結合です。英語を陀く他のすべおの蚀語では、「and」ずいう結合が明確な蚘事「the」によっお2䜍に抌し䞊げられたした。



次は䜕ですか



たず、可胜であれば、蚀語のサンプルを珟代のフランス語、スペむン語、...、䞭東の蚀語のテキストで補足するこずを詊みる䟡倀がありたす-叀い英語、フランス語15䞖玀以前など。これらの蚀語のいずれも原皿の蚀語ではない堎合でも、既知の蚀語の定矩の粟床は向䞊し、おそらく原皿の蚀語に近いものが遞択されたす。



より創造的な課題は、各単語のスピヌチの䞀郚を定矩しようずするこずです。倚くの蚀語もちろん、たず第䞀に-英語の堎合、ダりンロヌド可胜なパッケヌゞの䞀郚ずしおのPoSPart of Speechトヌクナむザヌは、このタスクをうたく実行したす。しかし、未知の蚀語の単語の圹割をどのように決定するのですか



同様の問題は、゜ビ゚トの蚀語孊者B.V.によっお解決されたした。 Sukhotin-たずえば、圌はアルゎリズムに぀いお説明したした。



  • 未知のアルファベットの文字を母音ず子音に分離する-残念ながら、100信頌できるわけではありたせん。特に、フランス語などの重芁な音声を䜿甚する蚀語では、
  • スペヌスのないテキスト内のモルフェムの遞択。


PoSトヌクン化の堎合、単語の䜿甚頻床、2/3単語の組み合わせでの出珟、テキストのセクション党䜓での単語の分散から始めるこずができたす。ナニオンずパヌティクルは、名詞よりも均等に分散する必芁がありたす。



文献



NLPの本やチュヌトリアルぞのリンクはここに残したせん-ネット䞊ではそれで十分です。代わりに、私が子䟛の頃に玠晎らしい発芋ずなった芞術䜜品をリストアップしたす。そこでは、ヒヌロヌは暗号化されたテキストを解明するために䞀生懞呜努力しなければなりたせんでした。



  1. E. A.ポヌゎヌルデンビヌトルは時代を超越したクラシックです
  2. V. Babenko「Meeting」は、80幎代埌半の有名なねじれた、やや幻想的な探偵物語です。
  3. K.桐田「チェレシュネノァダ通りの階士、たたは癜衣の少女の城」は、読者の幎霢を割り匕いお曞かれた魅力的な10代の小説です。



All Articles