Русская фантастика -- ЛингвоАнализатор -- Приём рукописей и файлов | Помощь | Комментарии | Статья | ЧаВО | Состав базы | История | Каталог | Помогите! |
Распознавание автора текста с использованием цепей А.А. МарковаД.В. Хмелёвмай 1999
АннотацияВ статье посредством формального анализа текста решается задача определения авторства текста. Новый метод основывается на формальной математической модели последовательности букв текста как реализации цепи А.А. Маркова. Оказывается, частоты употребления пар букв очень хорошо характеризуют автора. Последнее утверждение проверено в объемном статистическом эксперименте на произведениях 82 писателей.
Содержание1 Введение2 Математические основания 2.1 Марковская модель 2.2 Схема эксперимента 2.3 Анализ частот употреблений букв (схема Бернулли) 3 Модельный эксперимент 4 Результаты более объемного вычислительного эксперимента 5 Заключение
1 ВведениеВ последние десятилетия наметилась тенденция поиска и выявления характерных структур авторского языка путем применения формально-количественных, статистических методов. Первые пробные шаги на этом пути предпринял еще в начале XIX века Н.А. Морозов [1]. Интересно, что тогда же известный математик А.А. Марков выступил с критикой Н.А. Морозова [2]. А.А. Марков критиковал Н.А. Морозова за то, что он не произвел тщательной статистической проверки утверждений относительно устойчивости некоторых элементов авторского стиля (например, частицы "не"). Примером правильного статистического подхода А.А. Марков считал свое исследование в статье [3], где он изучал распределение доли гласных и согласных среди первых 20000 букв "Евгения Онегина". Отметим, что работа [3] посвящена первому применению "испытаний, связанных в цепь", получивших впоследствии название цепей А.А. Маркова. Работа [3] удивительным образом предоставляет историческую основу методу определения авторства, изложенному в настоящей статье.Истории вопроса определения авторства текста посвящена первая глава книги [4]. Несмотря на то, что среди перечисленных в [4] присутствуют весьма изощренные методики определения структуры авторского стиля, все они страдают, на взгляд автора настоящей статьи, одним общим недостатком. Ни одна из этих методик не проходила проверку на большом числе писателей. Дело в том, что многие из методик имеют трудно формализуемый этап сведения естественно-литературного произведения к предлагаемой математической модели. Например, для некоторых из них необходима классификация всех слов текста по грамматическим классам, что требует участия человека. При таком подходе большой вычислительный эксперимент с целью проверки методики на большом числе авторов практически неосуществим. Поэтому все такие методики пытались использовать на небольшом числе авторов. Другого подхода придерживались авторы статьи [5]. Они исследовали несколько простых параметров авторского стиля и на огромном числе произведений писателей XVIII-XX веков статистически доказали, что доля всех служебных слов в длинном прозаическом произведении является т.н. авторским инвариантом. В настоящей статье предложен новый, независимый от [5], а также всех методик, перечисленных в [4], формальный метод установления автора текста. Наша постановка задачи отличается от [5]. Мы предполагаем, что в нашем распоряжении имеются достаточно длинные фрагменты прозаических произведений ряда авторов на русском языке. Про некоторый анонимный фрагмент текста известно, что он принадлежит одному из этих авторов, но какому - неизвестно. Требуется узнать - кому именно. Новый метод основывается на формальной математической модели последовательности букв текста как реализации цепи А.А. Маркова. По тем произведениям автора, которые достоверно им созданы, вычисляется матрица переходных частот употреблений пар букв. Она служит оценкой матрицы вероятностей перехода из буквы в букву. Матрица переходных частот строится для каждого из авторов. Для каждого автора оценивается вероятность того, что именно он написал анонимный фрагмент текста. Автором анонимного текста полагается тот, у которого вычисленная оценка вероятности больше. Такой метод оказывается удивительно точным для естественно-языковых текстов. Мы обсуждаем здесь особенности применения метода и сравниваем его с методом определения автора на основе частот употребления каждой из букв в отдельности. Проверка метода проводилась на произведениях 82 писателей, среди которых есть русские писатели как XIX, так и XX века.
2 Математические основания2.1 Марковская модельОбозначим через A некоторое множество букв. Через Ak обозначим множество слов длины k над алфавитом A. Пусть A* = Иk > 0Ak. Обозначим длину слова f О A* через |f|.Задачу определения автора текста можно сформулировать следующим образом. Пусть заданы n классов Ci, где i = 0, ..., n-1. В каждом классе Ci находятся последовательности fi,j О A*, где j = 1, ..., mi, т.е. Ci = { fi,j | j = 1,ј,mi}. Наша задача состоит в том, чтобы отнести x О A* к одному из классов Ci. Предположим, что последовательности букв fi,j являются реализациями цепи Маркова с переходной матрицей Pi. Построим оценку Pi. Обозначим через hi,j,kl число переходов букв k® l в фрагменте fi,j, положим hi,kl = еjhi,j,kl, а hi,k = еlhi,kl. Положим Pikl = hi,kl/hi,k. Возможно, некоторые Pikl равны нулю. Обозначим через Zi множество таких упорядоченных пар (k,l), что Pikl > 0. Предположим, что x также является реализацией цепи Маркова с матрицей переходных вероятностей Pq , где q неизвестный параметр, который принимает одно из значений 1, ..., n.
Обозначим через nk,l число переходов k® l в x. Пусть
также nk = еl nk,l.
Обозначим через
2.2 Схема экспериментаВозьмем A = {маленькие буквы кириллицы}И{символ пробела}. Предположим, что у нас имеются в распоряжении достаточно длинные фрагменты произведений n авторов на русском языке. Обозначим j-тый фрагмент i-того автора через gi,j. Можно считать, что фрагмент gi,j является последовательностью символов некоторого расширенного алфавита B, который включает, например, знаки пунктуации, большие буквы, латинские буквы и т.д. (на персональном компьютере B обычно совпадает с расширенным множеством символов ASCII).Каждый фрагмент gi,j О B* можно отобразить в A* посредством некоторой функции F: B*® A*. Пусть, например, F превращает все заглавные буквы в маленькие, склеивает перенесенные слова, выбрасывает все знаки пунктуации и излишние знаки пробела, оставляя их по одному между словами, а также вставляет один пробел в начале и один пробел в конце фрагмента в случае отсутствия таковых. Кроме того, мы будем рассматривать функцию G, которая устроена так же, как и функция F, с тем дополнением, что все слова, которые в фрагменте gi,j начинались с заглавной буквы, отбрасываются. Например, если y = "Кроме того, мы будем рассматривать функцию G,", то F(y) = " кроме того мы будем рассматривать функцию ", а G(y) = " того мы будем рассматривать функцию ". Теперь предположим, что некий фрагмент текста y О B* принадлежит одному из n авторов, и нам неизвестно, кому именно. Наша задача: определить автора фрагмента y. Мы можем найти автора, применяя оценку (2.1) к последовательности x = F(y) или к x = G(y). Следовательно, мы получаем два способа определения автора: 1) истинный автор - t(F(y)), 2) истинный автор - t(G(y)). Важно отметить, что оценки t(F(y)) и t(G(y)) вычисляются на основе информации о частотах употребления пар букв. Поскольку между словами вставлены пробелы, оценки t(F(y)) и t(G(y)) никак не зависят от порядка самих слов. По-видимому, t(F(y)) и t(G(y)) характеризуют последовательности морфем в словоформах русского языка, но, конечно, совсем не учитывают синтаксисическую информацию (на основе последней пытались устанавливать авторство в [4]). Обычно ни для одного из естественно-языковых текстов гипотеза о том, что он является реализацией соответствующей цепи А.А. Маркова, не выдерживает статистической проверки. Между тем, мы можем формально произвести все вычисления и найти оценку (2.1). Статистический эксперимент показывает, что авторы определяются очень уверенно.
2.3 Анализ частот употреблений букв (схема Бернулли)Схемой Бернулли в теории вероятностей называется последовательность независимых одинаково распределенных случайных величин. Формально мы можем предположить, что последовательности fi,j и x являются реализациями последовательности независимых одинаково распределенных случайных величин, принимающих значения в A, а x распределен как величины класса h, где h - неизвестный параметр. Тогда оценка (2.1) принимает вид
3 Модельный экспериментСначала проведем проверку нашей методики на следующем примере. Рассмотрим следующие произведения К. Булычева, А. Волкова, Н.В. Гоголя и В. Набокова. Мы хотим проверить эффективность оценки t(F(y)). Предлагается следующий способ: выбрать каждого автора i (i = 0,1,2,3) по одному контрольному произведению y i, оценить матрицы Pi по другим произведениям fi,j, а затем найти t(F(yi)). Если оценка работает хорошо, то для каждого автора i должно быть t(F(yi)) = i. 0) К. Булычев: Умение кидать мяч ( y0); Белое платье золушки (g0,1); Великий дух и беглецы (g0,2); Глубокоуважаемый микроб (g0,3); Закон для дракона (g0,4); Любимец [Спонсоры] (g0,5); Марсианское зелье (g0,6); Миниатюры (g0,7); "Можно попросить Нину?" (g0,8); На днях землетрясение в Лигоне (g0,9); Перевал (g0,10); Показания Оли Н. (g0,11); Поминальник XX века (g0,12); Раскопки курганов в долине Репеделкинок (g0,13); Тринадцать лет пути (g0,14); Смерть этажом ниже (g0,15); 1) А. Волков: Семь подземных королей ( y1); Волшебник изумрудного города (g1,1); Урфин Джюс и его деревянные солдаты (g1,2); Огненный бог Марранов (g1,3); Гениальный пень (g1,4); На войне, как на войне (g1,5); О чем молчали газеты... (g1,6); Преступление и наказание (g1,7); Эпилог (g1,8); Желтый Туман (g1,9); Тайна заброшенного замка (g1,10); 2) Н.В. Гоголь: Рассказы и повести ( y2, названия повестей: "Повесть о том, как поссорился Иван Иванович с Иваном Никифоровичем", "Старосветские помещики", "Вий", "Записки сумасшедшего"); Ревизор (g2,1); Тарас Бульба (g2,2); Вечера на хуторе близ Диканьки (g2,3); 3) В. Набоков: Другие берега ( y3); Король, дама, валет (g3,1); Лолита (g3,2); Машенька (g3,3); Рассказы (g3,4); Незавершенный роман (g3,5). Например, у А. Волкова контрольным произведением является y1, т.е. "Семь подземных королей." Все остальные произведения используются для вычисления Pi. Результаты вычислений представляются следующей таблицей.
В колонке c3 содержится суммарное число символов (букв и пробелов) в F(gi,j): c3 = еj |F(gi,j)|. В колонке c4 содержится число символов в F(yi), т.е. c4 = |F( yi)|. Например, для К. Булычева общий объем текстов еjF(g0,j) составляет 2'345'689. Общий объем F(y1), т.е. число символов A в повести "Умение кидать мяч", выбранной в качестве контрольного текста, равно 75'161.
В столбце c1 в строке j находится ранг числа Lj(F( yj)) среди
чисел {Li(F( yj)) | i = 0,1,2,3}. Под рангом мы подразумеваем
номер Lj(F(yj)) среди чисел {Li(F( yj)) | i = 0,1,2,3},
расположенных в порядке невозрастания. Например, если j = 1 и Li
расположились в порядке L0 Ј L3 Ј L2 Ј L1, то рангом L1
будет 3. А если j = 0 и Li расположились в том же порядке L0 Ј L3 Ј L2 Ј L1, то рангом L0 будет 0. Ранг Lj(F(yj)), среди
чисел {Li(F( yj) | i = 0,1,2,3} совпадает с рангом
Lj(F(yj))/|F(yj)|, среди чисел {Li(F(yj))/|F(yj)| | i = 0,1,2,3}. Расположим в строках j = 0,1,2,3 следующей матрицы по 4
числа Li(F( yj))/|F( yj)|, i = 0,1,2,3:
Прежде, чем обсудить этот результат, поясним, почему столбец c1 задан таким образом. Дело в том, что если авторство определено неверно (т.е., оказалось t(F(yj)) № j), то нас может интересовать, насколько мы были близки к правильному ответу. Если ранг Lj(F(yj))/|F( yj)| среди чисел {Li(F( yj))/|F( yj)| |i = 0,1,2,3} равен 1, то мы ошиблись всего на одного писателя. Такой случай существенно лучше случая ранга Lj(F( yj))/|F( yj)| равного 3, поскольку тут правильный писатель оказывается в списке претендентов на его собственное произведение последним, что свидетельствует о большей ошибке. Кроме того, матрица R сама по себе допускает интересные интерпретации. Например, из первой строки мы видим, что контрольное произведение К. Булычева "Умение кидать мяч" после самого К. Булычева больше походит на В. Набокова, затем на Н. Гоголя, и в последнюю очередь на произведения А. Волкова. Из последующих двух строк можно сделать вывод, что контрольные произведения А. Волкова и Н. Гоголя также в первую очередь походят на произведения В. Набокова. Может быть, это вызвано тем, что сам Набоков исторически находится между Н. Гоголем и парой писателей: А. Волковым и К. Булычевым? Если эта гипотеза верна, то наша метод чувствителен к исторической эпохе, в которую создано произведение. Некоторое подтверждение тому мы находим в последней строке матрицы R: контрольное произведение В. Набокова похоже в первую очередь на пару А. Волкова и К. Булычева, и лишь затем - на Н. Гоголя. Если бы пара А. Волкова и К. Булычева разбивалась Н. Гоголем. то мы имели бы аргумент против нашей гипотезы. Впрочем, возможны другие интерпретации матрицы R, и автор нисколько не настаивает на выше приведенной. Можно интересоваться зависимостью матрицы R от а) числа и объема текстов обучающих выборок; б) однородности по жанру; в) однородности по тематике; г) длины контрольного текста; д) единицы анализа (на уровне букв, слов и предложений) и многих других параметров. Ниже мы приводим информацию относительно пункта а). Вкратце вывод таков: методика работает удовлетворительно (то есть, на диагонали матрицы R в основном стоят 0) при объеме обучающей выборки свыше 100 тысяч символов ASCII, и объеме контрольного текста свыше 100 тысяч символов ASCII. Вернемся к обсуждению таблицы 1. Поскольку в столбце c1 все числа равны 0, авторство всех контрольных произведений определено верно. Результат тем более неожиданный, что мы использовали столь примитивную информацию о тексте, как частоты употребления пар букв. На самом деле простейший компьютерный эксперимент (результаты которого здесь не приведены) показал, что при небольшом числе подозреваемых писателей (меньше шести) даже оценка (2.2), основанная всего лишь на подсчете частот употребления букв, дает очень хорошие результаты. В следующем разделе описан значительно более объемный статистический эксперимент. Из него становится ясно, что методика устойчиво работает на очень большом числе авторов.
4 Результаты более объемного вычислительного экспериментаВ электронной библиотеке "Самые любимые книжки" нашлось n = 82 различных автора, которые творили в XIX-XX веках. Количество произведений разных авторов колебалось от 1 до 30 (например, у Аркадия и Бориса Стругацких). У немногих авторов, у которых нашлось лишь одно произведение (например, у Бориса Стругацкого), оно было поделено на две части, одна из которых использовалась в качестве контрольного текста. При отборе произведений учитывался объем: выбирались авторы, суммарный объем произведений которых превышал 100000 символов ASCII. Общее число произведений (романов, повестей, рассказов и т.п.) превысило 1000. Они были представлены в 386 файлах. Общий объем данных составил 128×106 символов ASCII. Для каждого автора мы составили список gi,j текстов, из которых были получены оценки Pi, и оставили один текст yi, подлежащий распознаванию и не используемый при оценке Pi. Следуя схеме, описанной в предыдущем разделе, мы провели эксперименты для проверки качества оценок t(F(·)), t(G(·)), e(F(·)), e(G(·)) на этих 82 писателях. Для экономии места мы приведем лишь таблицу, отображающую информацию об эффективности оценки t(G(·)). Эта таблица составлялась подобно таблице 1. Ради экономии места соответствующие таблицы L и R не приведены.
Первый вывод из данных этой таблицы состоит в том, что количество правильных ответов (нулей в колонке c1) очень велико - 69. Истинный автор произведения оказывается на втором месте в списке претендентов всего в трех случаях (в колонке c1 стоит 1): Л. Кудрявцев, Ф.М. Достоевский и Е. Козловский. На третьем месте (c1 = 2) - в двух случаях: Н. Романецкий и Е. Хаецкая. На четвертом месте оказывается лишь один автор (c1 = 3) - С. Казменко. Для остальных 7 авторов ошибка очень велика (Ю. Латынина, А. Лазаревич, С. Логинов, С. Щеглов, В. Шинкарев, А. Столяров, А. Свиридов). Они не оказываются даже в десятке претендентов на их собственные произведения.
Мерой неточности оценки t(G(·)) может служить средний ранг,
равный сумме чисел в колонке c1, деленной на общее число писателей
82. Здесь средний ранг равен
Второй вывод из данных таблицы 2 состоит в том, что метод работает и на стихотворных произведениях (А.С. Пушкина, С. Есенина и Н. Гумилева). В-третьих, правильно определяются писатели, чьи произведения переводились с польского языка (С. Лем и И. Хмелевская). В-четвертых, среди плохо распознаваемых авторов нет общепризнанных классиков русской литературы. Для сравнения, в следующей таблице приведены результаты аналогичного исследования с оценками t(F(x)), e(F(x)), e(G(x)) на тех же текстах.
5 ЗаключениеИз данных таблицы 3 хорошо видно, что оценка (2.1), основанная на анализе числа употреблений диад (двухбуквенных сочетаний), значительно эффективней оценки (2.2), основанной на частотном анализе одиночных букв, и правильно указывает автора с большой долей уверенности (84% против 3%). Можно было бы ожидать превосходство оценки (2.1), поскольку она использует больше информации об исходном тексте. Следует подчеркнуть удивительную точность (2.1) при распознавании истинного автора произведения (например, метод авторского инварианта [5] принципиально не может различить более 10 писателей, а здесь рассмотрено свыше 80). Такая точность несомненно должна привлечь внимание к изложенному методу.Отмечается существенное улучшение качества распознавания автора текста при выбрасывании слов, начинающихся с заглавной буквы. Этот феномен еще требует своего объяснения. Как уже говорилось, А.А. Марков весьма интересовался задачей определения авторства текста (об этом свидетельствует его статья [2]). Знаменательно, что его собственная идея о "связи испытаний в цепь", опробованная им же на литературном материале [3], привносит прогресс в решение этой задачи. Автор благодарен М.И. Гринчуку за плодотворные дисскуссии по этой тематике. Автор также признателен А.Т. Фоменко и Г.В. Носовскому за оживленное внимание к работе и обсуждения результатов. Кроме них, автор благодарит А.А. Поликарпова, совместные дискуссии с которым существенно повлияли на окончательное оформление работы.
Список литературы
Содержание1 Введение2 Математические основания 2.1 Марковская модель 2.2 Схема эксперимента 2.3 Анализ частот употреблений букв (схема Бернулли) 3 Модельный эксперимент 4 Результаты более объемного вычислительного эксперимента 5 Заключение
|
Русская фантастика -- ЛингвоАнализатор -- Приём рукописей и файлов | Помощь | Комментарии | Статья | ЧаВО | Состав базы | История | Каталог | Помогите! |
©1999 Программа лингвоанализа, Дмитрий Хмелёв. ©1999--2002 Автор программы, редактор, Дмитрий Хмелёв. ©1999 Идеи, редактура, Дмитрий Ватолин. ©1999 Рисунки, Егор Славинский. ©1999-2000 Web-интерфейс, Павел Петриенко. |