Поскольку мы занимаемся компьютерным анализом текстов, нас часто спрашивают, не хотим ли мы заняться и компьютерным литературным творчеством. Конечно, мы задумываемся, на что оказалась бы способна компьютерная программа, имей ее авторы доступ ко всем данным, накопленным нами при исследовании бестселлеров. Мы научили компьютер обнаруживать и измерять присутствие нескольких тысяч элементов, необходимых для того, чтобы книга стала бестселлером. Интересно было бы взять все эти данные и разработать новые скрипты, которые генерируют романы на основе наших наборов переменных.
У такого романа явно больше шансов понравиться читателям, чем у других творений машины. Однако нам это неинтересно. Ведь в любом случае новый текст будет создан на основе существующего – или работ живых писателей (как Настоящая любовь. wrt), или текстов, лежащих в свободном доступе в интернете (как книга Каземи), или же личного опыта самих программистов. В последнем случае они должны будут дать машине такие подробные инструкции, что, по совести, компьютер уже нельзя будет назвать автором получившегося текста. Мы предпочли бы просто сесть за стол вдвоем, вооружиться бумагой и ручкой и попробовать самим написать роман на базе своих изысканий.
Постскриптум, или Некоторые подробности о методе
Несколько предупреждений. Этот постскриптум задуман как простой мостик – не мост Риальто и не Понте-Веккьо, а простой мостик, вроде доски, перекинутой через овраг, – между миром художественной литературы и миром компьютерного анализа текстов. То, что вы прочитаете дальше, не предназначено для специалистов по компьютерным наукам, преподавателей или техников из издательства. Здесь не будет программного кода для анализа эмоций в романах. Вы также не найдете здесь пошагового руководства «Как построить собственный бестселлерометр в домашних условиях». Для тех, кто интересуется компьютерными науками, есть множество учебников и научных статей, из которых можно научиться как основам, так и более сложным методам анализа текстов. Аналогичным образом эти заключительные страницы не предназначены для страстных любителей чтения или будущих писателей. Вы увидите несколько примеров выданной компьютером информации и рассказ простыми словами о таких вещах, как синтаксический разбор, машинное обучение, распознавание именованных сущностей. Это – упрощенное введение в методы, использованные для получения результатов, которые легли в основу нашей книги.
В методе, который мы использовали для классификации книг, есть два основных понятия, соответствующие двум основным стадиям общего процесса анализа. Эти термины – «интеллектуальный анализ текста» и «машинное обучение» – часто используются как взаимозаменяемые, и во многих аспектах они взаимозависимы. Для осмысленного анализа текста часто требуется сначала обучить машину, а для обучения машины нужна некоторая информация из текста. Но в данном случае мы хотим разграничить эти два понятия. «Интеллектуальный анализ текста» мы будем понимать в узком смысле – как процесс поиска и извлечения определенных параметров из текста книги. Это будет наш первый шаг. «Машинное обучение» можно определить (также в узком смысле) как способ обработки полученных параметров, на основе которых будет сделан вывод о том, принадлежит ли книга к группе бестселлеров. Это второй шаг. Чтобы довести обе части процесса до удовлетворительного состояния (то есть до такого, который позволил нам с уверенностью представить «Сферу» как образцовый пример наиболее вероятного бестселлера), нам понадобилось около четырех лет и несколько тысяч компьютеров.
Интеллектуальный анализ текста
Компьютеры могут читать текст самыми разными способами – деталями этого процесса занимается отдельная дисциплина, обработка естественного языка. Существуют мощные программы для извлечения данных из текстов. Базовые задачи при анализе естественного языка – выделение слов, идентификация предложений, разбор по частям речи и разбор зависимостей. В каждой из этих задач есть свои сложности, так что «базовый» в данном случае не значит «простой». Решение этих задач лежит в самой основе нашей работы, описанной в этой книге.
Что такое разбиение на слова? Попросту говоря, компьютер учат находить начало и конец каждого слова. На первый взгляд может показаться, что это очень просто: где пробел – там заканчивается одно слово и начинается следующее. Часто так оно и есть. Но для интеллектуального анализа текста этого «часто» – недостаточно: всегда существуют граничные случаи, усложняющие жизнь. Посмотрите на предыдущее предложение. После слова «недостаточно» стоит двоеточие. Оно не является частью слова, поэтому нельзя приказать компьютеру разбивать слова только по пробелам. Компьютеры должны знать, что «хорошо» – это слово, а двоеточие – знак препинания. Посмотрим теперь на английское слово doesn’t. Это сокращение от does not
[244]. Как вы думаете, doesn’t – это одно слово или два? Если одно, то придется объяснить компьютеру, что апостроф – не такой знак препинания, как двоеточие в предыдущем примере, и что его следует трактовать как заменитель буквы. А как насчет can’t
[245] или притяжательной формы Robert’s? Компьютеру бывает сложно разобраться в этих и других причудах словоупотребления. Впрочем, это и людям иногда сложно. Мы спросили своих студентов, что такое can’t – одно слово или два. Половина ответила, что одно, а половина – что два, имея в виду, что это сокращение от can not. Еще бывают сложные слова, которые иногда пишутся в два слова, иногда – в одно, а иногда – через дефис. В ходе работы над этой книгой мы раз пять обсуждали написание одного и того же слова: bestseller. Как его следует писать – bestseller или best-seller? Оно образовано от глагола bestsell, но с этим глаголом возникает тот же вопрос. Сокращения и сложные слова отчасти подобны коту Шредингера: они существуют в двух состояниях одновременно.
Значит, даже такая вроде бы простая задача, как разбиение на слова, оказывается весьма нетривиальной, если углубиться в детали языка и грамматики. Специалисты по обработке естественного языка подходят к этому вопросу так: они пишут программы, которые сначала вычленяют слова в тексте, а затем предлагают несколько вариантов обработки сокращений, слов с заглавной буквы и т. п. При исследовании современных бестселлеров нам все время приходилось принимать решения именно по таким вопросам. В конце концов оказалось, что на них можно отвечать по-разному для разных задач. Например, при анализе стиля, о котором мы говорили в 4-й главе, мы решили игнорировать заглавные буквы – таким образом, с точки зрения компьютера The и the было одним и тем же словом. Мы пренебрегли возможной разницей между ними. Но мы могли бы пойти и другим путем, попросив компьютер трактовать их как два разных слова, и тогда, возможно, узнали бы что-нибудь очень полезное. The с заглавной буквы будет, скорее всего, стоять в начале предложения. В 5-й главе мы показали, какую важную роль играет The в заглавиях романов. А что, если авторы бестселлеров начинают большее количество предложений со слова The? Мы решили анализировать это слово так, как если бы оно всегда было написано с маленькой буквы. Возможно, в результате мы пропустили какую-то важную стилевую особенность бестселлеров.