Попытка определить язык манускрипта Войнича, Random Forest Classifier

    Пытаемся определить язык таинственной рукописи — манускрипта Войнича — простыми методами обработки естественных языков на Python.



    1 Что это — манускрипт Войнича?


    Манускрипт Войнича — таинственная рукопись (кодекс, манускрипт или просто книга) в добрых 240 страниц пришедшая к нам, предположительно, из XV века. Рукопись была случайно приобретена у антиквара мужем знаменитой писательницы-карбонария Этель Войнич — Уилфредом Войничем — в 1912 году и скоро стала достоянием широкой общественности.

    Язык рукописи не определен до сих пор. Ряд исследователей манускрипта предполагают, что текст рукописи — шифровка. Иные уверены, что манускрипт написан на языке, не сохранившемся в известных нам сегодня текстах. Третьи и вовсе считают манускрипт Войнича бессмыслицей (см современный гимн абсурдизму Codex Seraphinianus).

    В качестве примера приведу сканированный фрагмент сабжа с текстом и нимфами:



    2 Чем так интересен диковинный манускрипт?


    Может быть, это — поздняя подделка? По-видимому, нет. В отличие от Туринской плащаницы, ни радиоуглеродный анализ, ни прочие попытки оспорить древность пергамента пока не дали однозначного ответа. А ведь Войнич не мог предвидеть изотопный анализ в самом начале XX века…

    Но если рукопись — бессмысленный набор букв пера шаловливого монаха, дворянина в измененном сознании? Нет, однозначно нет. Бездумно шлепая по клавишам, я, например, изображу всем привычный модулированный QWERTY-клавиатурой белый шум наподобие “asfds dsf”. Графологическая экспертиза показывает: автор писал твердой рукой набитые “в подкорку” символы хорошо известного ему алфавита. Плюс корреляции распределения букв и слов в тексте рукописи соответствуют “живому” тексту. К примеру, в рукописи, разделенной условно на 6 разделов, есть слова — “эндемики”, часто встречающиеся в каком-нибудь одном из разделов, но отсутствующие в прочих.

    Но что если рукопись — сложный шифр, и попытки взломать его теоретически лишены смысла? Если принять на веру почтенный возраст текста, версия шифровки крайне маловероятна. Средние века могли предложить разве шифр подстановки, который так легко и элегантно ломал еще Эдгар Аллан По. И снова, корреляция букв и слов текста не характерна для подавляющего большинства шифров.

    Несмотря на колоссальные успехи в переводе древних письменностей, в том числе, с применением современных вычислительных ресурсов, рукопись Войнича до сих пор не поддается ни профессиональным языковедам со стажем, ни молодым амбициозным data-scientist-ам.

    3 Но что если язык манускрипта нам известен


    … но написание отличается? Кто, например, распознает в этом тексте латынь?



    А вот другой пример — транслитерация английского текста на греческий:

    in one of the many little suburbs which cling to the outskirts of london
    ιν ονε οφ θε μανυ λιττλε συμπυρμπσ whιχ cλιγγ το θε ουτσκιρτσ οφ λονδον

    пайтоновской библиотекой Transliterate. NB: это уже не шифр подстановки — некоторые многобуквенные сочетания передаются одной буквой и наоборот.

    Я попробую опознать (классифицировать) язык рукописи или же найти наиболее близкого родственника ему из известных языков, выделив характерные черты (features) и обучив на них модель:



    На первом этапе — featurization — мы превращаем тексты в feature-вектора: фиксированного размера массивы вещественных чисел, где каждая размерность вектора отвечает за свою особую черту (feature) исходного текста. Например, условимся в 15-м измерении вектора сохранять частоту употребления в тексте самого распространенного слова, 16-м измерением — второго по популярности слова … в N-м измерении — наибольшую длину последовательности из одного и того же повторяющегося слова и т.д.

    На втором шаге — обучение — мы подбираем коэффициенты классификатора исходя из априорного знания языка каждого из текстов.

    Как только классификатор натренирован, мы можем использовать эту модель для определения языка текста, не попавшего в обучающую выборку. Например, для текста рукописи Войнича.

    4 На картинке всё так просто — в чем подвох?


    Сложность заключается в том, как конкретно превратить текстовый файл в вектор. Отделив зерна от плевел и оставив лишь те характеристики, что свойственны языку в целом, а не каждому конкретному тексту.

    Если, упрощая, превратить исходные тексты в кодировку (т.е. числа), и “скормить” эти данные как есть одной из многочисленных нейросетевых моделей, результат, вероятно, нас не порадует. Вероятней всего, натренированная на таких данных модель будет привязана к алфавиту и именно на основе символов, прежде всего, попытается определить язык неизвестного текста.

    Но алфавит манускрипта “не имеет аналогов ”. Более того, мы не можем полностью положиться на закономерности в распределении букв. Теоретически возможен и вариант передачи фонетики одного языка правилами другого (язык эльфийский — а руны мордорские).

    Коварный писец не использовал ни знаков препинания, ни цифр, известных нам. Весь текст можно рассматривать как поток слов, разделенных на абзацы. Нет даже уверенности в том, где кончается одно предложение и начинается другое.

    Значит, поднимемся на уровень выше относительно букв и будем опираться на слова. Составим на основе текста рукописи словарь и проследим закономерности уже на уровне слов.

    5 Исходный текст манускрипта


    Разумеется, кодировать замысловатые символы манускрипта Войнича в их Unicode-эквиваленты и обратно самостоятельно вовсе не требуется — эту работу уже проделали за нас, например, здесь. С опциями по-умолчанию я получу следующий эквивалент первой строки манускрипта:

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

    Точки и восклицательные знаки (а также ряд других символов алфавита EVA) — всего лишь разделители, которые для наших целей вполне можно заменить пробелами. Знаки вопроса и звездочки — нераспознанные слова / буквы.

    Для проверки подставим текст сюда и получим фрагмент рукописи:



    6 Программа — классификатор текстов (Python)


    Вот ссылка на репозитарий кода с необходимым минимумом подсказок в README, чтобы протестировать код в работе.

    Я собрал по 20+ текстов на латыни, русском, английском, польском, и греческом языках стараясь выдерживать объем каждого текста в ± 35 000 слов (объем рукописи Войнича).

    Тексты старался подбирать близких датировок, в одном написании — например, в русскоязычных текстах избегал буквы Ѣ, а варианты написания греческих букв с различными диакритическими знаками приводил к единому знаменателю. Также убрал из текстов цифры, спец. символы, лишние пробелы, привел буквы к одному регистру.

    Следующий шаг — построить “словарь”, содержащий такую информацию как:

    • частота употребления каждого слова в тексте (текстах),
    • “корень” слова — а точнее, неизменяемая, общая часть для множества слов,
    • распространенные “приставки” и “окончания” — а точнее, начала и окончания слов, вместе с “корнем” составляющие собственно слова,
    • распространенные последовательности из 2-х и 3-х одинаковых слов и частота их появления.

    “Корень” слова я забрал в кавычки — простой алгоритм (да и я сам иногда) не в состоянии определить, к примеру, какой корень у слова подставка? Подставка? Подставка?

    Вообще говоря, этот словарь — наполовину подготовленные данные для построения feature-вектора. Почему я выделил этот этап — составление и кэширование словарей по отдельным текстам и по совокупности текстов для каждого из языков? Дело в том, что такой словарь строится довольно долго, порядка полуминуты на каждый текстовый файл. А текстовых файлов у меня набралось уже более 120.

    7 Featurization


    Получение feature-вектора — всего лишь предварительный этап для дальнейшей магии классификатора. Как ООП-фрик я, разумеется, создал абстрактный класс BaseFeaturizer для вышестоящей логики, чтобы не нарушать принцип инверсии зависимостей. Этот класс завещает потомкам уметь превращать один или же сразу много текстовых файлов в числовые вектора.

    А еще класс-наследник должен давать каждой отдельной feature (i-координате feature-вектора) имя. Это пригодится, если мы решим визуализировать машинную логику классификации. Например, 0-е измерение вектора будет помечено как CRw1 — автокорреляция частоты употребления слов, взятых из текста на соседней позиции (с лагом 1).

    От класса BaseFeaturizer я унаследовал класс WordMorphFeaturizer, логика которого базируется на частоте употребления слов во всем тексте и в рамках скользящего окна из 12 слов.

    Важный аспект — код конкретного наследника BaseFeaturizer помимо собственно текстов нуждается еще в подготовленных на их основе словарях (класс CorpusFeatures), которые уже скорее всего закэшированы на диске на момент старта обучения и тестирования модели.

    8 Классификация


    Следующий абстрактный класс — BaseClassifier. Этот объект может обучаться, а затем классифицировать тексты по их feature-векторам.

    Для реализации (класс RandomForestLangClassifier) я выбрал алгоритм Random Forest Classifier из библиотеки sklearn. Почему именно этот классификатор?

    • Random Forest Classifier мне подошел со своими параметрами по-умолчанию,
    • он не требует нормализации входных данных,
    • предлагает простую и наглядную визуализацию алгоритма принятия решения.

    Так как, на мой взгляд, Random Forest Classifier вполне справился со своей задачей, других реализаций я уже не писал.

    9 Обучение и тестирование


    80% файлов — большие фрагменты из опусов Байрона, Аксакова, Апулея, Павсания и прочих авторов, чьи тексты я смог найти в формате txt — были отобраны случайным образом для тренировки классификатора. Оставшиеся 20% (28 файлов) определены для вневыборочного тестирования.

    Пока я тестировал классификатор на ~30 английских и 20 русских текстах, классификатор давал большой процент ошибок: почти в половине случаев язык текста определялся неверно. Но когда я завел ~120 текстовых файлов на 5 языках (русский, английский, латынь, староэллинский и польский) классификатор перестал ошибаться и начал распознавать корректно язык 27 — 28 файлов из 28 тестовых примеров.

    Затем я несколько усложнил задачу: ирландский роман XIX века “Rachel Gray” записал транслитом на греческий и подал на вход обученному классификатору. Язык текста в транслите снова был определен корректно.

    10 Алгоритм классификации наглядно


    Вот так выглядит одно из 100 деревьев в составе обученного Random Forest Classifier (чтобы изображение было более читаемым, я отрезал 3 узла правого поддерева):



    На примере корневого узла поясню значение каждой подписи:

    • DGram3 <= 0.28 — критерий классификации. В данном случае DGram3 — конкретное именованное классом WordMorphFeaturizer измерение feature-вектора, а именно, частота третьего по распространенности слова в скользящем окне из 12 слов,
    • gini = 0.76 — коэффициент, известный как Gini impurity, объясняется, например, в этой статье. Не вдаваясь в подробности, можно сказать, что этот коэффициент характеризует степень неопределенности относительно принадлежности входных данных какому-либо конкретному классу. Продвигаясь от корня в сторону листьев мы наблюдаем уменьшение коэффициента. Наконец, для листа gini, закономерно, равен 0 (жребий брошен),
    • samples = 92 — количество текстов, на которых построено поддерево,
    • value = [46, 17, 45, 12, 29] — количество текстов в поддереве, попавших в ту или иную категорию (46 английских, 17 греческих, 45 латинских и т.д.),
    • class = en (английский текст) — определяется по наиболее заполненному поддереву.

    Если критерий (DGram3 <= 0.28 для корневого узла) выполняется, переходим к левому поддереву, иначе — к правому. В каждом листе все тексты должны быть отнесены к одному классу (языку) а критерий неопределенности Джини ≡ 0.

    Окончательное же решение принимает ансамбль из 100 подобных деревьев, построенных в ходе обучения классификатора.

    11 И как же определила программа язык манускрипта?


    Латынь, оценка вероятности 0.59. И, разумеется, это еще не разгадка проблемы столетия.

    Соответствие один к одному словаря манускрипта и латинского языка установить непросто — если вообще возможно. Вот, к примеру, десятка самых часто употребляемых слов: рукописи Войнича, латыни,



    древнегреческого и русского языков:



    Звездочкой отмечены слова, которым трудно подобрать русский эквивалент — например, артикли либо предлоги, меняющие значение в зависимости от контекста.

    Очевидного соответствия вроде



    с распространением правил замены букв на остальные часто употребляемые слова мне найти не удалось. Можно лишь делать предположения — например, самое часто употребляемое слово — это союз “и” — как и во всех остальных рассмотренных языках за исключением английского, в котором союз “and” был задвинут на второе место определенным артиклем “the”.

    Что дальше?


    Во-первых, стоит попытаться дополнить выборку языков текстами на современном французском, испанском, …, ближневосточных языках, по возможности — древнеанглийском, языках франции (до XV века) и прочих. Если даже ни один их этих языков не является языком рукописи, всё же повысится точность определения известных языков, а языку манускрипта, возможно, будет подобран более близкий эквивалент.

    Более творческая задача — попытаться определить часть речи для каждого слова. Для ряда языков (разумеется, прежде всего — английского) с этой задачей хорошо справляются PoS (Part of Speech) токенизаторы в составе доступных для скачивания пакетов. Но как определить роли слов неизвестного языка?

    Схожие задачи решал советский лингвист Б.В. Сухотин — например, он описал алгоритмы:

    • разделения символов неизвестного алфавита на гласные и согласные — к сожалению, не 100% надежного, в особенности для языков с нетривиальной передачей фонетики, вроде французского,
    • выделение морфем в тексте без пробелов.

    Для PoS-токенизации мы можем отталкиваться от частоты употребления слов, вхождения в сочетания из 2 / 3 слов, распределения слов по разделам текста: союзы и частицы должны быть распределены более равномерно, чем существительные.

    Литература


    Не буду оставлять здесь ссылки на книги и руководства по NLP — этого достаточно в сети. Вместо этого перечислю художественные произведения, которые стали для меня большой находкой еще в детстве, где героям пришлось потрудиться над разгадкой зашифрованных текстов:

    1. Э. А. По: “Золотой жук” — нестареющая классика,
    2. В. Бабенко: “Встреча” — лихо закрученная, в чем-то провидческая детективная повесть конца 80-х,
    3. К. Кирицэ: “Рыцари с Черешневой улицы, или Замок девушки в белом” — увлекательный подростковый роман, написанный без скидки на возраст читателя.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 79

      0

      Андрей, Вы не пробовали прореживать текст рукописи? Например, случайным образом удаляя некоторые абзацы? Возможно, не весь текст написан единым «шифром».

        +1
        Вы случайно не читали Замок девушки в белом? Лаура выбросила часть текста, ориентируясь на стихотворный размер :)
        Как я понимаю, исследователи рукописи не нашли каких-то значимых отклонений в распределении частоты употребления символов по тексту. Сам же я пока не смотрел…

        Все же я, ориентируясь на чужие доводы, скорее полагаю, что рукопись написана на естественном языке. Но вообще, искать какие-то закономерности в рамках глав (на счет абзацев — не уверен) — это как раз в планах.
          +1

          Ваш анализ основан на выделении слов, которые определяются пробелами в исходной рукописи. Что, если разбивка рукописи на слова была намеренно нарушена? И на самом деле границы слов проходят вовсе не там, где нарисованы пробелы? Можно как-то избавится от этой слабости?

            +1
            Интересная идея. Конечно, такой вариант написания возможен (хотя чем руководствовался автор текста?). Но вопрос — а к чему вообще привязываться в тексте:
            • Нет известных исторических имен.
            • Нет известных светил в «астрологическом» разделе.
            • Нет индийских / римских цифр.

            Алгоритм разделения букв на гласные / согласные тоже дает не очень уверенные результаты (меняются от страницы к странице, если прогонять алгоритм постранично).

            Стоит ли попробовать N-произвольных разбиений текста? Надо подумать…
              0
              Алгоритм разделения букв на гласные / согласные тоже дает не очень уверенные результаты (меняются от страницы к странице, если прогонять алгоритм постранично).
              Результаты меняются именно для каждой страницы, или возможны другие принципы разбивки? Количество гласных-согласных остается одинаковым для каждой из страниц?
                0
                Может daiin это имя?
                  0
                  (хотя чем руководствовался автор текста?)
                  Шифром простой замены например. Если так то пробовать N=количеству_букв разбиений текста.
                  Но комментарий novoselov ниже с высокой степенью вероятности указывает что пробелы там где должны быть.
                  0
                  Если пробелы расставлять в случайных местах, то одинаковые слова будут встречаться реже.
              +1
              Что скажете об этом — arxiv.org/ftp/arxiv/papers/1604/1604.04149.pdf?
                +2
                Манускрипт может оказаться стеганограммой, а, например, один из «астрологических» кругов — ключом. Статья интересная, надо будет попозже прочитать вдумчиво. Но вот возникло впечатление, что автор делает очень смелые выводы уже изначально: например, трансформируя рисунок утки в буквы.

                Я, всё же, был нацелен на отработку гипотезы естественного языка. Если она себя исчерпает (или же я просто сдамся) — тогда можно обратиться к шифрам.
                  +1
                  Помнится алхимики использовали шифры и астрологию для своих записей. Что любопытно, рукопись относится к 15-му веку, примерно в это же время алхимия становится достаточно популярной, чтобы папа Римский запретил ее в начале 16-го века.
                  Еще одной особенностью алхимиков было то, что они свои рецепты записывали скорее как философское учение о мире, чем как конкретную рецептуру, что в принципе укладывается в тренды того времени — подгонять свои исследования под астрологию и шифровать, чтобы избежать обвинения в ереси (вспоминаем Джордано Бруно и его увлечения магией с известным финалом, кстати та же эпоха).
                  Версия о причастности текста к алхимии или медицине может говорить в пользу шифровки текста наполненной именами собственными, а дальше уже как фантазия позволит, слова запросто могли быть написаны задом наперед или для чтения в зеркале. Имхо, анализ популярных методов шифрования того времени может немного помочь.
                    0
                    del
                +2

                Интересно было бы часть рукописи скормить, например, gpt3 и посмотреть на результат.

                  0
                  Почему "και (и)" отмечено звёздочкой как «слово, которому трудно подобрать русский эквивалент»?
                  В викисловаре союз «и» — его единственное значение.

                  По сути статьи: www.voynich.nu/a3_para.html заканчивается словами «The results presented in this page are critally important for anyone interested in translating the text of the Voynich MS. The fact that structures like the ones introduced in this page exist, tells us that the MS text is not one that was encrypted from an Indo-European plain text using the type of encryption available in the early 15th Century. Any tentative solution working along these lines will necessarily fail.»
                  В свете этого хотелось бы понять, почему для сравнения рассматриваются именно европейские языки.
                    +1
                    На счет "και (и)" — это, пожалуй, я допустил помарку. С союзом "και" как раз всё ясно. В отличие от союза τε.

                    Почему европейские языки? Конечно, было бы неплохо искать наиболее близкий язык среди более вероятных кандидатов. А те языки, что есть, собраны, прежде всего, для обучения модели.

                    На очереди вот этот арамейский корпус. Надеюсь, там найдется в достаточном количестве (хотя бы десяток) текстов нужного объема.
                      +2
                      Не факт, что европейские языки — это более вероятные кандидаты.

                      Во-первых, статистические закономерности в тексте манускрипта никак не увязываются с европейскими языками.

                      Во-вторых, использование уникальной письменности выглядит намного правдоподобнее в предположении, что манускрипт написан носителем экзотического языка, у которого не было общепринятой письменности — например, вьетнамцем или ацтеком, получившим средневековое европейское образование, и решившим записать поверья своего народа.
                    +1
                    Также убрал из текстов цифры

                    Если из текста для обучения модели убирать цифры, не ломает ли это сам текст, его смысл?
                    В тексте манускрипта, возможно, присутствуют числительные вместо цифр.
                      0
                      Вот как раз числительные я не убирал из текста. Почему убрал цифры? Всё же, маловероятно что в тексте рукописи они есть. По распределению букв этого не видно.

                      Есть, конечно, вариант что все буквы — на деле цифры, отсылки к тексту («Грехи отцов» в Швейке) — но это уже совсем нереалистично.
                        0
                        Я имел ввиду вместо удаления цифр подмену их числительными.
                          0
                          Искали ли слова, состоящие только из какого-то ряда букв (10-12) предполагая их цифрами?
                        +2
                        А почему бы вам для начала не попробовать определить языковую группу? Если будете уверенны в языковой группе, легче будет подобрать подходящие данные для определения языка.
                          0
                          Пока нет идей, как это сделать. Одно можно сказать определенно — текст написан слева-направо, что сужает поиск :) Руническое письмо скандиндинавов, очевидно, тоже отбрасываем.
                            +2
                            Потренируйтесь на хорошо вам знакомой группе — славянской. Каким то образом, ваш мозг может узнать в незнакомом языке славянские корни? Есть что то общее. Возможно это вычислить?
                              0
                              Всё уже украдено до нас (С).

                              Можно поизучать труды, например, Сергея Старостина. Он занимался походими проблемами. Или любых других лингвистов, которые занимались схожими проблемами.
                              0
                              А вот совсем не факт, что слева направо написан.
                              Если это документ для применения, то сильного шифрования там не должно быть, т.к. он должен читаться достаточно бегло.
                              Имхо, выявление склонений в словах может помочь определить группу языков, а так же направление текста.
                              Если предположить, что текст надо было читать через зеркало, то сам тип шифрования вряд ли будет сложным, а окончания слов будут менять в их начале.
                              Судя по документу, в тексте присутствует мешанина из описания мира, свойств растений и их применения.

                              немного моей фантазии )
                              Заголовок спойлера
                              Взял отсюда скан манускрипта, долистал до 14й страны, зеркально отразил в Пейнте и предположил, что это итальянские слова с искаженным почерком, дальше некоторые слова по наитию в гугл-переводчике забивал как итальянские (т.е. латынь)
                              image
                              Po (немного)
                              petto (грудь)
                              poss (возможный)
                              passto (прошлое)
                            +1
                            Интересно, а как «suburbs» превратилось "συμπυρμπσ"? Я тоже как-то пробовал в деле одну библиотеку на Java для транслитерации (одну из самых популярных, вроде бы ICU4j), и она то-ли оставляла как есть некоторые русские буквы, то-ли вставляла вместо них какие-то непонятные символы юникода. В итоге 10 строчек кода решили проблему лучше всяких багованных библиотек.
                              +1
                              Прежде всего, наша согласная «б» записывается нетривиально в греческом.
                                0
                                в современном греческом нет буквы для обозначения звука б (то что обычно называют бетой это на самом деле вита), поэтому для этого используются две буквы мю и пи.
                                например
                                μπίρα (бира, пиво)
                                μπανάνα — банан

                                только вот я не уверен насчет конкретно этого примера с suburbs, насколько помню греки μπ в середине слова произносили не как б а скорее как мб. хотя меня может и слух подводил
                                  0
                                  Вроде бы, в середине слова тоже «б»: κόμπρα /ˈcɔ.bɾa/

                                  Но почему не σουμπουρμπς?
                                  Во-первых, υ читается как «и», а не как «у».
                                  Во-вторых, σ на конце слова пишется иначе.
                                    0
                                    Разумеется, транслитерация может быть некорректной. С транслитом En -> Ru пакет вообще справился на 3 с двумя минусами. На всякий случай, вот здесь лежат маппинги пакета Transliterate из моего примера.
                                  +3
                                  Но если рукопись — бессмысленный набор букв пера шаловливого монаха, дворянина в измененном сознании? Нет, однозначно нет. Бездумно шлепая по клавишам, я, например, изображу всем привычный модулированный QWERTY-клавиатурой белый шум наподобие “asfds dsf”. Графологическая экспертиза показывает: автор писал твердой рукой набитые “в подкорку” символы хорошо известного ему алфавита. Плюс корреляции распределения букв и слов в тексте рукописи соответствуют “живому” тексту.

                                  А вариант шизофрении автора никто не рассматривал? Или другого расстройства психики.
                                  Многие люди страдающие такими расстройствами весьма уверены в себе и конкретны в своих действиях.
                                    +2
                                    Почему идея о психических заболеваниях авторов то и дело всплывает для нерасшифрованных письменностей? То же самое с ронго-ронго, предлагавшиеся расшифровки одна другой краше: у одного расшифровщика все тексты про маниакальных колхозников, бесконечно сажающих и пожинающих разные сельхоз-культуры, у дргого — про то что все со всеми беспорядочно совокупляются, у третьего — что тексты про то, как мужик жену убил… Одни и те же тексты, а каков простор для фантазии!
                                      0
                                      То, что сейчас считается шизофренией, раньше считалось проявлением потусторонних сил.
                                      Да и само понятие психических отклонений появилось много позже, так что речь скорее об оккультизме.
                                      0
                                      Как я понимаю, неизвестный язык практически невозможно понять не имея текста с переводом на известный нам язык. Как было, например, с Розеттским камнем.

                                      То есть до Роззетского камня древнеегипетских текстов было полно, но вот расшифровать их не могли. А появился перевод и пошло дело.
                                      0
                                      Какая шизофрения? Все, буквально все улики (как сам текст, так и иллюстрации) говорят о том, что это — мистификация, попытка придумать некую таинственную алхимическую книгу (скорее всего, с целью продать её какому-то ценителю), изготовленная примерно в XV веке.

                                      P.S. На самом деле единственный шанс придать этому всему некоторый смысл — это стеганография. Но в этом случае все попытки статистического анализа совершенно бесполезны.
                                        0
                                        Тогда шизофреник должен оперировать осмысленными словами, составляя из них бессмысленный текст. Какие-то паттерны прослеживаются и на уровне символов, и на уровне слов, и на уровне N-грамм…

                                        В любом случае, перевод манускрипта — челлендж per se. Никто не ждет ответа на загадку тысячелетия, или, например, рецепта вечной молодости :)
                                        –1

                                        При решении задачи полезно знать результат. В том смысле что там вообще есть смысл. К примеру, недавно кумранские рукописи признали подделкой

                                        0

                                        В тексте часто повторяются последовательности вида o&, 8g, anv, встречаются на конце почти каждого слова и отдельно. Можно предположить, что они кодируют отдельные буквы, то есть это все-таки какой-то шифр подстановки.

                                          0

                                          Частота появления iin напоминает частоту появления окончания um в латинских текстах.
                                          Я взял несколько латинских текстов отсюда и посчитал скриптом окончания слов.


                                          По частоте можно предположить такое соответствие:


                                          iin - um
                                          
                                          edy - is
                                          ody - us
                                          eey - it
                                          
                                          hey - et
                                          hdy - es

                                          Начиная со второго окончания можно заметить соответствие dy - s, ey - t, поэтому я и выбрал такие варианты, но um выбивается из этого правила.


                                          С другой стороны, если проверять по частоте целых слов, есть 2 популярных слова daiin и aiin. По схожести подходят только est и et, но тогда шифр сложнее. Возможно, какие-то соответствия слогов записаны задом наперед.

                                            0
                                            Да, daiin портит картину. Не может (?) существительное (...iin -> ...um) встречаться так часто.
                                              0
                                              а если это, как в арабском, только согласные буквы, а гласные подразумеваются?
                                          +1
                                          для вашего корпуса текстов могу подсказать идею — брать тексты религиозных источников. Например, для Библии можно найти тексты всех книг на множестве языков и алфавитов.
                                          То же самое касается более восточных текстов — индийских, китайских. Кроме того дл некоторых текстов доступна транслитерация в латыницу
                                            0

                                            Поскольку уже доказано неоднократно, что язык Манускрипта Войнича прекрасно вписывается во все возможные языковые паттерны (у них есть спец. название, но я не помню навскидку) романо-германской языковой группы, то вряд ли это шифр. Не представляю себе, чтобы после ЗАшифровки данные могли бы вписываться в законы НЕзашифрованного текста — слишком круто, мне кажется.

                                              0
                                              Если бы это было так, Манускрипт уже перестал быть загадкой. Даже не имея корпуса именного того языка, на котором составлен шифр, можно получить неплохие расшифровки, воспользовавшись корпусами для родственных или более поздних языков.
                                                –1

                                                В этом и прикол, что структурно это европейский язык, а метод Шампольона к нему не применишь хоть тресни. Над этим серьезные дяди от лингвистики бьются ни один год — уж много чего перепробовано, не извольте сомневаться.

                                                  0
                                                  Поймите, верное предположение о том, что за язык перед нами, равносильно расшифровке. Даже если сам этот язык в записях едва сохранился, а есть только родственные ему языки.

                                                  То есть, например, древне-церковнославянский текст, записанный глаголицей, если мы прикинемся, что глаголицы не знаем, можно прочитать, использовав более поздние тексты на кириллице, написанные на древне-новгородском языке.
                                                    0

                                                    Структура языка совершенно точно (в этом исследователи уверены на 100%, как я понял) говорит о том, что это ЯЗЫК. Может и шифровка, может и бред сивой кобылы по смыслу, но в первую очередь — язык. Структурно. И это важно, т.к. сымитировать структуру реального языка (живого ли, мертвого ли — привет, латынь!) крайне сложно, если вообще возможно. Это то, о чем я говорю. И важно зафиксировать, что максимум что известно — языковая группа: романо-германская. Пишут тут еще про иврит и т.д., но насколько я помню, именно в разрезе структуры он близок именно к Р-Г группе. На предмет соответствий его с чем только ни сверяли, разумеется. Видимо отсюда и упоминания об иврите и проч.
                                                    Вы говорите о другом — если, условно, написать арабской вязью французский текст, то его можно дешифровать. Возможно, не знаю, этому нас не обучали. Но фишка-то в другом: Войнича написан неизвестной "вязью" и на неизвестном (по структуре) языке. Но глобально структура соответствует романо-германской группе.
                                                    То есть мы друг другу не противоречим в целом, просто я говорю, что 2 неизвестных в уравнении, а не 1. Ну или если угодно, одно неизвестное имеет некие косвенные признаки, но "известнее" от того не становится.

                                                      0
                                                      Для получения чернового варианта расшифровки достаточно было бы взять корпус текстов других романских языков, найти для него частоту n-грамм и применить к тексту Манускрипта один из алгоритмов для дешифровки омофонической замены, использующий найденные частоты.
                                                      Когда вы видите очередную новость о том, что кто-то расшифровал манускрипт Войнича, то смотрите всего на две вещи: на каком же он языке и есть ли коротенькая табличка с соответствием символов текста каким-нибудь определенным буквам. Если этого в новости нет, дальше можно и не читать — расшифровка не найдена.
                                                        0

                                                        Омофоническая замена как раз-таки и не канает, ибо по признакам — это язык, а не шифр. Мы пришли к тому, с чего я начал. :-)

                                                        0
                                                        сымитировать структуру реального языка (живого ли, мертвого ли — привет, латынь!) крайне сложно, если вообще возможно

                                                        Вы серьёзно?
                                                        en.wikipedia.org/wiki/List_of_constructed_languages#Artistic/fictional_languages
                                                          0

                                                          Вы реально не видите разницы между "создать искусственный язык" и "создать язык, соответствующий в матем. моделях натуральному языку"? :-)))))
                                                          Можно договориться, что "йцукенд" это "хлеб", но он от этого не впишется в логику придуманного языка так, как "хлеб" вписывается в русский, "bread" в английский, "brot" в немецкий и т.д.
                                                          Надеюсь, теперь вам ясно.

                                                            0
                                                            Тогда поясните, каким именно образом daiin «вписывается в логику» языка МВ.
                                                              –1

                                                              Вам нужно адресовать этот вопрос исследователям, проводившим этот анализ — очевидно же. Мое личное мнение, что вы с каждым сообщением закапываете себя всё глубже, но у вас, видимо, прямо противоположное видение ситуации.

                                                                0
                                                                Я бы охотно им его адресовал, но вы же не раскрываете имена исследователей, якобы получивших такие результаты.
                                                  –1

                                                  Ну фразы типа "фаслишфаком факруфато" тоже вписываются во все языковые паттерны, но это тоже своего рода шифр.

                                                    +1
                                                    Можно пруф того, что «доказано неоднократно, что язык Манускрипта Войнича прекрасно вписывается во все возможные языковые паттерны романо-германской языковой группы»?
                                                      0

                                                      Этот факт был упомянут в нескольких статьях о манускрипте, которые, разумеется, я в закладках не храню, так что ссылок не будет. Но именно этот факт мне запал в душу больше всех, ибо как лингвист по образованию я понимаю насколько сложно создать по сути новый язык. А как человек, дружащий с логикой, я понимаю, что создать шифр, результат которого будет соответствовать паттернам живого языка, на грани нереального. Этим я и поделился в своем комменте.

                                                        0
                                                        Кроме «язык романо-германской группы» и «по сути новый язык», есть ещё масса вариантов. В википедии пишут, что язык МВ пытались отождествить с баскским, с берберским, с древнетюркским, с китайским, и т.д., потому что как раз «паттернам романо-германской языковой группы» он соответствует хуже всего — например, в нём нет предлогов и артиклей.
                                                    0
                                                    Если Манускрипт написан на естественном языке, то определение этого языка равносильно расшифровке через несколько секунд при наличии корпуса и словаря. Тогда задача сводится к шифру омофонической замены, для которых за последние годы появились быстрые и надёжные алгоритмы:
                                                    1. S. Ravi, K. Knight Bayesian Inference for Zodiac and Other Homophonic Ciphers
                                                    2. A. Dhavari, R. Low, M. Stamp Efficient Cryptanalysis of Homophonic Substitution Ciphers
                                                    3. M. Nuhn, H. Ney, J. Schamper Beam Search for Solving Substitution Ciphers
                                                    4. M. Nuhn, H. Ney, J. Schamper Improved Decipherment of Homophonic Ciphers
                                                    5. N. Kopal Cryptanalysis of Homophonic Substitution Ciphers Using Simulated Annealing with Fixed Temperature
                                                    6. F. Foxon Finding Probable Frequency Sums to Reduce the Key Space of Homophonic Substitution Ciphers
                                                      0

                                                      Так вроде уже определили, что написан на Иврите? https://www.timesofisrael.com/scientists-claim-to-crack-an-elusive-centuries-old-code-and-its-hebrew/

                                                        0
                                                        Если читать эту статью дальше заголовка, то в ней объясняется, что иврит исследователям примерещился.
                                                        +1
                                                        Ну есть еще и куча альтернативно увлеченных товарищей=) однажды я выслушал восхитительную историю о том что манускрипт Войнича — это «клякса» из параллельного мира, на которой по непонятной причине не отработала синхронизация текста. Типа часто вещи кочуют туда-сюда, но при перемещении инфоматрица измерения корректирует ее под свою структуру, понятную живущим в нем. Причем на серьезных щщах говорил и обиделся когда я ему посоветовал фантастику писать.

                                                        з.ы. версия Чешира о протороманском языке пока нравится мне больше всего
                                                          0
                                                          Интересен еще вопрос: из каких материалов выполнен манускрипт? Бумага, чернила и другое. Его же на чем-то и чем-то физически писали? Может это окажет какую-то помощь?
                                                            0
                                                            В книге около 240 страниц тонкого пергамента (точное количество зависит от того, как считать некоторые страницы, сложенные дополнительно по горизонтали). На обложке нет никаких надписей или рисунков. Размеры страницы — 16,2 на 23,5 см, толщина книги — 5 см[11]. Пробелы в нумерации страниц (которая, видимо, была произведена значительно позже написания книги) указывают на то, что некоторые страницы были утеряны до обретения книги Вильфредом Войничем, изначально книга содержала не менее 272 страниц[1]. Текст написан гусиным пером чернилами на основе железистых соединений галловой кислоты, ими же выполнены иллюстрации. Иллюстрации грубовато раскрашены цветными красками — возможно, уже после написания книги[12][13].
                                                            0
                                                            Похоже на скоропись
                                                              0

                                                              Нашел интересную статью Voynich Manuscript coding and decoding methods, автор Alexander Ulyanenkov. С середины файла идет версия на русском. У него там все неплохо сходится. Если коротко — английский язык, стеганография, некоторые буквы обозначают повторения или развороты слогов, или удаление буквы из слога. Разобрано много примеров, которые это подтверждают.

                                                                0
                                                                Типичное лингвофричество в стиле Чудинова.
                                                                  0

                                                                  Ну да, некоторые аргументы мне показались притянуты за уши, но подкупило большое количество примеров. Она довольно большая, я подробно не читал, может это и не доказывает ничего.

                                                                0

                                                                Возможно эта рукопись была ценна в 1888)
                                                                Но сейчас ее ценность (достоверность, актуальность, целостность информации, а также применимость) под очень большим вопросом.
                                                                Доколе??
                                                                Ради шутки разума?)

                                                                  0
                                                                  распространенные последовательности из 2-х и 3-х одинаковых слов и частота их появления.

                                                                  Как у вас считается частотность 2- и 3-грамм?
                                                                  Я решал похожую задачу на шарпе словарями, подопытный текст "Гарри Поттер". Так и не сумел добиться хороших результатов, книга подвешивала программу на 5 минут.

                                                                    0
                                                                    Если я вас правильно понял — то всё просто, см github.com/AndreyCorelli/voynich_morph/blob/master/vman/apps/vnlp/training/detailed_dictionary.py, строки 70 — 89.

                                                                    Создаю словарь (два словаря — для 2-грамм и 3-грамм) вида «N-грамм»: количество вхождений, (изначально равно 1). Проверяю каждую очередную пару слов на вхождение в словарь. Если уже есть в словаре — инкрементирую количество вхождений в словарь.
                                                                      0

                                                                      Спасибо, но не то пальто.
                                                                      Не тот компот.
                                                                      Это я решал такую задачу:


                                                                      Пример
                                                                      По тексту a b c d. b c d. e b c a d. должен быть составлен такой словарь:


                                                                      1
                                                                      "a": "b"
                                                                      2
                                                                      "b": "c"
                                                                      3
                                                                      "c": "d"
                                                                      4
                                                                      "e": "b"
                                                                      5
                                                                      "a b": "c"
                                                                      6
                                                                      "b c": "d"
                                                                      7
                                                                      "e b": "c"
                                                                      8
                                                                      "c a": "d"


                                                                      Обратите внимание:
                                                                      из двух биграмм "a b" и "a d", встречающихся однократно, в словаре есть только пара "a": "b", как лексикографически меньшая.
                                                                      из двух встречающихся в тексте биграмм "c d" и "c a" в словаре есть только более частотная пара "c": "d".
                                                                      из двух триграмм "b c d" и "b c a" в словаре есть только более частотная "b c": "d".


                                                                      Я так понял, что при одинаковом счётчике нужно ещё сравнивать по другому фактору. Одинаковые счётчики я могу узнать только после прохода по всему тексту, потом лишний проход — дорого. Как-то нужно сразу ранжировать, только я не допёр — как.

                                                                      0
                                                                      Что-то в духе приведенной выше ссылки — arxiv.org/ftp/arxiv/papers/1604/1604.04149.pdf.
                                                                      Пусть иные исследуют манускрипт как культурологический феномен — мне же интересен «чистый» NLP.
                                                                      0
                                                                      прежде всего надо уяснить текст ли это, а не фейк…
                                                                      т.е. осмысленная информация или нет, неважно зашифрованная или нет…
                                                                      если текст несёт информацию, он обязательно связан с картинками,
                                                                      хотя они могут быть иносказательными… если взять картинку в публикации — ну наобум — задача Архимеда на вытеснение воды при неполном погружении плавающих тыкв… или набившие оскомину звёзды в космическом эфире…
                                                                      потом… цифры могут быть написаны буквами, например — шесть… на любом языке, римские, арабские, египетские… ван, ту… один, два… унос, дуо… в том числе и даты.
                                                                      ни кто не отменял и решётку Кардано… уж очень ровно текст написан…
                                                                        0
                                                                        В тринадцатилетнем возрасте я совершенно так же придумал свою письменность — смешанную алфавитно-силлабическую, и писал свой дневник каллиграфическим пером на настоящем пергаменте на придуманном языке, имеющем основой мой редкий язык группы оиль (oïl). Результат был очень похожим. Тогда я не знал о рукописи Войновича, разумеется. Расшифровке такое 'личное' письмо не поддаётся.

                                                                        Only users with full accounts can post comments. Log in, please.