Стилометрия, или как отличить Акунина от Булгакова с помощью 50 строк кода?
Довольно интересным направлением «прикладной статистики» и NLP (Natural Languages Processing а вовсе не то что многие сейчас подумали) является анализ текста. Появилось это направление задолго до компьютеров, и имело вполне практическую цель: определить автора того или иного текста. С помощью ПК это впрочем, гораздо легче и удобнее, да и результаты получаются весьма интересные. Посмотрим, какие закономерности можно выявить с помощью совсем простого кода на Python.
Для тех кому интересно, продолжение под катом.
История
Одной из первых практических задач было определение авторства политических текстов The Federalist Papers, написанных в США в 1780 годах. Их авторами было несколько человек, но кто есть кто, окончательно было неизвестно. Первый подход к построению кривой распределения длины слов был предпринят еще в 1851 г, и можно представить, какой это был объем работы. Сейчас, слава богу, всё проще. Я рассмотрю простейший способ анализа с помощью несложных расчетов и пакета Natural Language Toolkit, что в совокупности с matplotlib позволяет получить интересные результаты буквально в несколько строк кода. Мы посмотрим, как все это можно визуализировать и какие закономерности можно увидеть.
Те, кому интересны результаты, главу «код» могут пропустить.
Перейдем к практическому примеру. Возьмем для анализа следующий текст:
Подключим библиотеку nltk:
Массив tokens содержит все слова и знаки пунктуации строки:
Отфильтруем массив, удалив из него знаки препинания и переведем слова в нижний регистр:
Теперь мы можем получить первый статистический параметр: лексическое разнообразие текста. Это соотношение числа уникальных слов к их общему количеству.
Для данного текста этот параметр равен 96.6%.
Несложно получить среднюю длину слова:
Множество set(tokens_) дает нам неповторяющийся список слов, далее мы просто вычисляем среднее, разделив сумму на количество. Для этого текста средняя длина слова равна 4.86.
Средняя длина предложения вычисляется с помощью метода sent_tokenize в NLTK, который, как очевидно из названия, разбивает текст на предложения.
Для нашего текста длина предложения составляет 15 слов.
Для данного текста параметр составляет 57.14 запятых на 1000 символов.
Как можно видеть, здесь есть два варианта. Часть файлов, скачанных из онлайн-библиотек, хранятся в кодировке 1251. Другая часть файлов сохранена методом copy-paste в Блокноте, и имеет более современную кодировку UTF-8. Вышеприведенный метод сначала пытается открыть файл как 1251, в случае неудачи мы считаем что это UTF-8, на практике такого подхода оказалось вполне достаточно.
Визуализация
Пока все выглядит довольно скучно. Гораздо интереснее становится тогда, когда эти данные можно увидеть графически. Я взял наугад по одной книге от 4х известных авторов, тексты были взяты со всем известной Библиотеки Максима Мошкова Lib.ru. Каждая книга разбивается на блоки одинаковой длины, для каждого блока параметры вычисляются вышеописанным способом.
Лексическое разнообразие и средняя длина слова не дают какой-либо заметной разницы:
Очевидно, все авторы люди образованные, тексты написаны хорошим и литературным русским языком, какой-либо значимой разницы в объеме используемых слов не видно. Параметр «длина слова» тоже не дает видимых отличий. А вот средняя длина предложения отличается весьма заметно:
Он боялся, Лужин старший, что, когда сын узнает, зачем так нужны были совершенно безликие Трувор и Синеус, и таблица слов, требующих ять, и главнейшие русские реки, с ним случится то же, что два года назад, когда, медленно и тяжко, при звуке скрипевших ступеней, стрелявших половиц, передвигаемых сундуков, наполнив собою весь дом, появилась француженка.
Разумеется, анализ можно делать по любому символу, например, можно сравнить, как часто у разных авторов встречается знак двоеточия «:»:
Несложно вывести частоты появления различных символов в виде кривой, взяв по одной книге от каждого автора:
Частоты употребления разных символов в русском языке похожи, но различия в стиле разных авторов все же есть. Для сравнения, вот так выглядит кривая для разных книг одного автора:
Идея, надеюсь, понятна. «Отпечаток» использования различных символов отличается для разных авторов, и как было показано, технологию можно использовать даже для выявления клонов на популярном англоязычном сайте reddit.com. Впрочем, насколько достоверно это работает для русского языка, автору неизвестно.
Мы же рассмотрим пример попроще. Популярная в СССР детская книга «Улица младшего сына» имеет двух авторов, Лев Кассиль и Макс Поляновский. На графике хорошо видно статистическое различие по Lexical Diversity. Можно предположить что начало книги писал один автор, а закончил другой:
Но разумеется, может это и просто совпадение, теория вероятности такое, в принципе, допускает. Более того, только один параметр не является доказательством, для примера можно посмотреть, какое количество характеристик текста может использоваться для анализа авторства.
Заключение
Вышеприведенный анализ показался довольно интересным. Используя несложные, практически школьные, формулы, можно получить довольно любопытные результаты. Разумеется, анализ можно и усложнить, например, можно попробовать определить, менялся ли стиль автора с годами, вариантов тут много.
Для желающих поэкспериментировать самостоятельно, исходный код для Python 3.7 приведен под спойлером.
Стилометрия: как в разное время люди искали авторов текстов
Сегодня для того, чтобы понять, кто написал текст под псевдонимом, у исследователей есть количественные методы анализа, в основе которых – подсчет служебных слов в тексте. О том, как люди к этому пришли, рассказываем в материале об истории стилометрии
Вопросы авторства того или иного текста столетиями волнуют человечество. Например, существовал ли Гомер и писал ли он «Илиаду»? Кем на самом деле был Шекспир? Принадлежит ли «Тихий Дон» Шолохову, а «Зов кукушки» — Джоан Роулинг? И хотя на некоторые вопросы однозначного ответа все еще нет, современные научные методы позволяют в большинстве случаев установить автора произведения.
Сегодня статистический анализ для атрибуции текста называется стилометрией, однако не всегда ее задачей был поиск автора, кроме того — до появления компьютеров, позволяющих проводить сложные математические вычисления, методы стилометрии могли отличаться от сегодняшних.
Первые свидетельства атрибуции текста
Вопрос о том, принадлежит ли текст названному автору или нет, часто выходит за рамки науки в область идеологии или политики, а в XV веке от него зависела судьба государства. Тогда римские папы имели притязания на сюзеренитет над Неаполитанским королевством. Светская власть пап объяснялась «Константиновым даром» — грамотой, в которой было сказано, что якобы император Константин Великий передал папе Сильвестру I западную часть Римской империи и отправился в Константинополь. Однако в 1440 году итальянский гуманист Лоренцо Валла написал трактат «О подложности Константинова дара», в котором он доказал, что текст — подделка, написанная средневековой латынью VIII века, а не IV века, как предполагалось.
Эта работа — первый пример атрибуции с опорой на сам текст. К сожалению, в ситуациях, когда временного разрыва между текстом и событием нет, такой метод не применим. И если у исследователей нет никаких дополнительных свидетельств о возможном авторе, например, платежных ведомостей за публикацию, то единственным доступным инструментом остается количественный анализ, который от трудов Лоренцо Валла отделен по меньшей мере четырьмя веками развития научного метода.
Томас Менденхолл и ошибочный признак
Одним из первых проблему авторства в XIX веке количественным методом пытался решить американский физик Томас Менденхолл. Он, опираясь на предположения английского математика Августа де Моргана, использовал длину слова как признак авторства и пришел к выводу о том, что Шекспир — это Фрэнсис Бэкон. Однако, как оказалось, признак, который он выбрал, не дискриминирующий (т.е. не обладает способностью отделять одного автора от другого), кроме того, Менденхолл ошибся в подсчетах. Поэтому ни установить, кому принадлежат тексты Шекспира, ни изобрести универсальный метод определения авторства ему не удалось.
Винцетий Лютославский и появление стилометрии
В конце XIX веке начинаются активные эксперименты как в способах определения авторства, так и в датировке текстов. И хотя с точки зрения авторства исследования не были успешными, они заложили идею того, что в тексте нужно искать частотные атомарные факты. Например, польско-немецкая школа антиковедов и, в частности, Винцетий Лютославский предлагали считать служебные слова в тексте, на основе чего делать осторожные утверждения о том, какие диалоги Платона были написаны раньше, а какие позже. Такой метод они назвали стилометрией, и он, в отличие от стилометрии сегодняшней, не помогал устанавливать принадлежность текста кому-либо. Эмпирических подтверждений в пользу какого-то эксперимента об авторстве в конце XIX века попросту не было.
Однако исследования, как мы сейчас знаем, шли в правильном направлении. Просто у ученых того времени не было возможности быстро проверять гипотезы, подсчитывать частотности большого количества слов. Говоря проще — у них не было компьютеров, без которых на подсчет частотности хотя бы одного слова в тексте занимал несколько дней кропотливой работы.
Николай Морозов у истоков стилометрии
Труды Винцентия Лютославского и других членов польско-немецкой школы стилометристов в начале XX века вдохновили Николая Александровича Морозова на подсчет служебных слов для определения авторства текста.
Он посчитал 3 служебных слова для произведений А.С. Пушкина, Л.Н. Толстого, Н.В. Гоголя и И.С. Тургенева в статье «Лингвистические спектры, как средство для отличения плагиатов от истинных произведений того или другого известного автора и для определения их эпохи», однако написал, что это занимает очень много времени, и не получил какого-то убедительного результата. Николай Морозов показал закономерность в использовании служебных слов писателями, но полноценный эксперимент, который бы доказывал эффективность метода на разных авторах, не поставил, а вскоре вернулся к революционной деятельности, после чего уже не вернулся к исследованию. Вероятно, он бы и не дошел до результата, потому как ему необходимо было посчитать частоту не для 3-х, а примерно для 100 служебных слов. Однако стоит сказать, что Николай Морозов, по сути, объединил два корня современной стилометрии. Один идет от задачи — определение авторства, что до него безуспешно пытался сделать Томас Менденхолл, другой — от метода подсчета, придуманного польско-немецкими античниками.
Статистический эксперимент для 12 спорных памфлетов
В 1963 году два американских статистика, Фредерик Мостеллер и Дэвид Уоллес, опубликовали статью «Inference in an Authorship Problem», в которой ответили на известный в американской историографии вопрос о том, кто написал 12 спорных памфлетов из «Записок федералиста» — сборника статей в поддержку утверждения Конституции США. Все публикации подписывались псевдонимом Публий, но несмотря на это авторство большинства текстов было известно, за исключением 12 памфлетов.
Тогда Мостеллер и Уоллес, которые, в отличие от предшественников, уже имели ЭВМ для сложных вычислений, попробовали посчитать служебные слова в текстах, но не для датировки, как это делали антиковеды конца XIX века, а для поиска автора. Кандидатами в авторы 12 спорных памфлетов были Джеймс Мэдисон (4-й президент США) и Александр Гамильтон (соратник Джорджа Вашингтона, основоположник американской экономической системы).
В ходе эксперимента статистики обнаружили, что целый ряд служебных слов употребляется и в 12 спорных памфлетах, и в статьях Джеймса Мэдисона.
Это исследование предшествует современной стилометрии, ключевая идея которой в том, что человек почти не контролирует грамматическую часть своей речи — например, он может не задумываться, как часто использует предлоги «про» или «о» и как часто их взаимозаменяет. И хотя использование одного такого предлога ничего не скажет исследователю, 100 или 200 служебных слов на большом корпусе текстов, как оказалось, могут показать закономерности для разных авторов.
Джон Барроуз и современная стилометрия
Большинство современных стилометрических исследований опираются на метод Дельты, придуманный Джоном Барроузом (John Burrows) в конце 1990-х — начале 2000-х годов. В его основе лежит подсчет разницы в частотностях между наиболее частотными словами в спорном тексте и тех трудах, чье авторство не вызывает сомнения. Чем меньше дельта, тем выше вероятность, что текст принадлежит ближайшему автору. Так Джон Барроуз изобрел первый универсальный инструмент для атрибуции текста.
Сам Барроуз открыл свой метод на английских поэтах XVII века. Но многочисленные эксперименты показывают, что Дельта работает с разными жанрами и языками. Дельта уже многократно проверялась на разных вариантах английского, немецком, французском, итальянском, польском, русском, китайском и других языках, включая древние. Тексты неизменно кластеризуются алгоритмом по автору. Вот эксперимент редакции Системного Блока с 14-ю русскими романами одного периода:
Самый главный плюс стилометрии в том, что ее легко верифицировать экспериментально. Большинство текстов в мире имеют конкретное авторство, и никто в нем не сомневается. Поэтому можно взять Л.Н. Толстого, Ф.М. Достоевского и И.С. Тургенева и смотреть, как дельта распределит произведения между ними. Недостаток стилометрии в том, что она достоверно работает только на больших текстах, не менее 5-10 тысячи слов.
Стилометрия и шекспировский вопрос
К сожалению, стилометрия не дает однозначного ответа об авторстве шекспировских текстов. Прежде всего потому, что они меньше, чем требуется для подсчета с помощью Дельты Барроуза. Кроме того, есть не так много авторов-современников, с которыми можно сравнивать труды Шекспира в том же жанре — на стилометрию влияет жанровый сигнал, поэтому взять, скажем, пьесы и исторические трактаты не получится. Еще для дизайна убедительного исследования нужны авторы, которые точно не являются кандидатами.
Пока с помощью стилометрии удалось лишь подтвердить утверждения шекспироведов о том, что часть пьесы «Генрих VI» Шекспир писал в соавторстве с Кристофером Марло — одним из тех людей, кому иногда приписывают авторство Шекспира. Эта теория красиво эксплуатируется в фильме Джима Джармуша «Выживут только любовники», однако стилометрия говорит, что тексты Марло не смешиваются с текстами Шекспира, за исключением отдельных пьес, и в частности — «ГенрихаVI». Некоторые издательства уже указывают, что «Генрих VI» был написан в соавторстве.
В остальном сказать что-либо о трудах поэта однозначно нельзя. Если был кто-то под именем Шекспира и ничего не написал под настоящим именем, то узнать об этом с помощью стилометрии не получится.
Перспективы стилометрии
Перспективным направлением исследований является соавторство. Если книгу писали несколько авторов, исследователям важно понять, какие фрагменты писал каждый из них. Например, приключенческий роман «Скиталец» официально написан Генри Хаггардом и Эндрю Лэнгом в 1890 году, однако стилометрический инструмент rolling stylo, который показывает авторский сигнал в тексте динамически, демонстрирует довольно убедительно, что большую часть текста написал Хаггард, хотя начало он оставил от Лэнга.
Другое важное направление — переводы. Законный вопрос, который назревает у людей при знакомстве со стилометрией: что произойдет, если проанализировать не сами тексты, а их переводы? Как правило, одного автора переводят разные люди в течение нескольких лет. Например, если мы возьмем переводы романов Жюля Верна, то получим тексты, написанные переводчиками на разных языках. Оказывается, что авторский сигнал во многих случаях сохраняется. Жюль Верн, переведенный на английский разными людьми, оказывается похож на остальные произведения Жюля Верна. При этом авторство в экспериментах уцелевает не всегда, их результаты на этот счет довольно противоречивы. Прямо сейчас в стилометрии делается много исследований, которые могут позволить атрибутировать переведенные тексты.
Стилометрия
Стилометрия — исследование стилистики, обычно включающее статистический анализ и относящееся к письменному тексту. Иногда этот термин может применяться к аналогичному исследованию живописи и музыки. Обычно стилометрия используется для атрибуции или датировки текста и применяется как в филологии, так и в юридической экспертизе.
История
Основы стилометрии заложил выдающийся итальянский филолог Лоренцо Валла, опубликовав трактат О подложности Константинова дара, в котором на основе различных, в том числе стилистических критериев доказывалось, что данный текст является подделкой. Также Валле принадлежит честь доказательства факта, что трактат «Риторика к Гереннию» не принадлежит Цицерону, а т.наз. «Ареопагитики» — священномученику Дионисию Ареопагиту. Современная стилометрия обычно построена на применении компьютеров к анализу текста.
Литература
Полезное
Смотреть что такое «Стилометрия» в других словарях:
СТИЛОМЕТРИЯ — [ Словарь иностранных слов русского языка
Квантитативная лингвистика — (англ. quantitative linguistics) это раздел общей лингвистики и, в частности, математической лингвистики. Квантитативная лингвистика (КЛ) занимается исследованием процесса изучения языка, его изменения и сферы применения, а также… … Википедия
Атрибуция произведения — Запрос «Атрибуция» перенаправляется сюда; см. также другие значения. Атрибуция (лат. attributio) в филологии определение подлинности или подложности рукописного текста и установление его автора. Атрибуция в искусствоведении … … Википедия
Определение плагиата — Способы обнаружения плагиата в з … Википедия
Стилометрия это применение изучение языкового стиля, обычно в письменной речи, но успешно применяется и в музыке. [1] и художественной живописи [2] также. [3] Другая концептуализация определяет его как лингвистическую дисциплину, которая оценивает стиль автора посредством применения статистического анализа к основной части их работ. [4]
Стилометрия часто используется для атрибуции авторство к анонимный или оспариваемые документы. [5] Он имеет как юридические, так и академические и литературные приложения, начиная от вопроса о авторство произведений Шекспира к судебная лингвистика.
Содержание
История
Стилометрия выросла из более ранних методов анализа текстов на предмет аутентичности, идентичности автора и других вопросов.
Основы стилометрии заложил польский философ. Винценты Лютославски в Принципы стилометрии (1890). Лютославский использовал этот метод для построения хронологии Диалоги Платона. [7]
Развитие компьютеров и их способности анализировать большие объемы данных увеличили этот вид усилий на порядки. Однако большие возможности компьютеров для анализа данных не гарантируют хорошего качества продукции. В начале 1960-х годов преподобный А.К. Мортон произвел компьютерный анализ четырнадцати посланий Нового Завета, приписываемых апостолу Павлу, который показал, что эти работы написали шесть разных авторов. Проверка его метода, примененного к работам Джеймс Джойс, дали результат Улисс, Многопрофильный, многостильвенный роман Джойса, был составлен пятью отдельными людьми, ни один из которых, очевидно, не принимал участия в создании первого романа Джойса, Портрет художника в молодости. [8]
Приложения
Применения стилометрии включают литературные исследования, исторические исследования, социальные исследования, а также многие судебно-медицинские исследования. [10] [11] Его также можно применить к компьютерный код [12] и обнаружение внутреннего плагиата, который должен обнаруживать плагиат на основе изменений стиля письма в документе. [13] Стилометрию также можно использовать для определения того, является ли человек носителем английского языка или нет, по его скорость набора. [14]
Стилометрия как метод уязвима к искажению текста во время редактирования. [15] Также есть случай, когда автор перенимает разные стили в ходе своей карьеры, как это было продемонстрировано на примере Платон, которые выбрали разные стилистические политики, такие как те, которые были приняты для ранних и средних диалогов, посвященных проблеме Сократа. [16]
Текущее исследование
Академические площадки и мероприятия
Стилометрические методы используются для нескольких академических тем, в основном в качестве дополнения к машинному обучению, обработке естественного языка и лексикографии.
Судебная лингвистика
В Ассоциация развития искусственного интеллекта (AAAI) провела несколько мероприятий по субъективному и стилистическому анализу текста. [23] [24] [25]
СКОВОРОДА
Тематические исследования, представляющие интерес
Данные и методы
Поскольку стилометрия имеет как описательные варианты использования, используемые для характеристики содержимого коллекции, так и идентифицирующие варианты использования, например При определении авторов или категорий текстов методы, используемые для анализа данных и функций, перечисленных выше, варьируются от методов, созданных для классификации элементов в наборы или для распределения элементов в пространстве вариаций функций. Большинство методов являются статистическими по своей природе, например кластерный анализ и дискриминантный анализ, обычно основаны на филологический данные и функции, и являются плодотворными областями приложений для современных машинное обучение методы.
В то время как в прошлом стилометрия подчеркивала самые редкие или наиболее яркие элементы текста, современные методы могут выделить идентифицирующие шаблоны даже в общих частях речи. Большинство систем основаны на лексической статистике, то есть на использовании частотности слов и терминов в тексте для характеристики текста (или его автора). В этом контексте, в отличие от поиск информации, наблюдаемые закономерности возникновения самые распространенные слова более интересны, чем актуальные термины, которые встречаются реже. [50] [51]
В одном из таких методов текст анализируется, чтобы найти 50 наиболее употребительных слов. Затем текст делится на блоки по 5000 слов, и каждый из блоков анализируется, чтобы определить частоту встречаемости этих 50 слов в этом блоке. Это создает уникальный идентификатор из 50 номеров для каждого фрагмента. Эти числа помещают каждый кусок текста в точку в 50-мерном пространстве. Это 50-мерное пространство сплющено в плоскость с помощью анализ основных компонентов (СПС). В результате отображаются точки, соответствующие авторскому стилю. Если два литературных произведения помещены в одну плоскость, в результирующем шаблоне может быть показано, принадлежат ли оба произведения одному или разным авторам.
1. Гауссовская статистика
Стилометрические данные распределены по Закон Ципфа-Мандельброта. Распределение чрезвычайно резкое и лептокуртика, причина, по которой исследователи не могли использовать статистику для решения, например, проблемы с установлением авторства. Тем не менее, использование гауссовой статистики вполне возможно, если применить преобразование данных. [52]
2. Нейронные сети
Нейронные сети, частный случай статистических методов машинного обучения, были использованы для анализа авторства текстов. Тексты с бесспорным авторством используются для обучения нейронной сети с помощью таких процессов, как обратное распространение, так что ошибка обучения вычисляется и используется для обновления процесса для повышения точности. Посредством процесса, похожего на нелинейную регрессию, сеть получает возможность обобщать свою способность распознавания на новые тексты, с которыми она еще не сталкивалась, классифицируя их с установленной степенью уверенности. Такие методы были применены к давним заявлениям о сотрудничестве Шекспир со своими современниками Флетчером и Кристофер Марлоу, [53] [54] и подтвердил мнение, основанное на более традиционных исследованиях, о том, что такое сотрудничество действительно имело место.
Исследование 1999 года показало, что программа нейронной сети достигла 70% точности в определении авторства стихотворений, которые она еще не анализировала. В этом исследовании Vrije Universiteit изучалась идентификация стихов трех голландских авторов с использованием только буквенных последовательностей, таких как «логово». [55]
В исследовании использовалось сети глубоких убеждений (DBN) для модели проверки авторства, применимой для непрерывной аутентификации (CA). [56]
Одна из проблем, связанных с этим методом анализа, заключается в том, что сеть может стать предвзятой на основе ее обучающего набора, что может привести к более частому выбору авторов, которых сеть анализирует. [55]
3. Генетические алгоритмы
В генетический алгоритм это еще один метод машинного обучения, используемый для стилометрии. Это включает метод, который начинается с набора правил. Пример правила может быть таким: «Если но появляется более 1,7 раз на каждую тысячу слов, тогда текст обозначается как автор X «. Программа представлена с текстом и использует правила для определения авторства. Правила проверяются на наборе известных текстов, и каждому правилу присваивается оценка пригодности 50 правил с наименьшими оценками не используются. В оставшиеся 50 правил вносятся небольшие изменения и вводятся 50 новых правил. Это повторяется до тех пор, пока развитые правила не приписывают тексты правильно.
4. Редкие пары
Один из методов определения стиля называется «редкие пары» и основан на индивидуальных привычках словосочетание. Использование определенных слов для конкретного автора может быть идиосинкратически связано с использованием других, предсказуемых слов.
Указание авторства в мгновенных сообщениях
Распространение Интернета сместило внимание атрибуции авторства к онлайн-текстам (веб-страницы, блоги и т. Д.), Электронным сообщениям (электронная почта, твиты, посты и т. Д.) И другим типам письменной информации, которая намного короче, чем средняя книга, гораздо менее формальная и более разнообразная с точки зрения выразительных элементов, таких как цвета, макет, шрифты, графика, смайлики и т. д. Усилия по учету таких аспектов на уровне как структуры, так и синтаксиса были представлены в. [57] Кроме того, были введены специфические для контента и идиосинкразические подсказки (например, тематические модели и инструменты проверки грамматики), чтобы выявить преднамеренный стилистический выбор. [58]
Стандартные стилометрические функции использовались для категоризации содержимого чата по мгновенное сообщение, [59] или поведение участников, [60] но попыток идентифицировать участников чата пока мало и рано. Кроме того, игнорировалось сходство между разговорами и взаимодействиями в чате, но это основное различие между данными чата и любым другим типом письменной информации.
Смотрите также
Примечания
Рекомендации
дальнейшее чтение
См. Также академический журнал Литературные и лингвистические вычисления (опубликовано Оксфордский университет) и Языковые ресурсы и оценка журнал.





