В методе, который мы использовали для классификации книг, есть два основных понятия, соответствующие двум основным стадиям общего процесса анализа. Эти термины – «интеллектуальный анализ текста» и «машинное обучение» – часто используются как взаимозаменяемые, и во многих аспектах они взаимозависимы. Для осмысленного анализа текста часто требуется сначала обучить машину, а для обучения машины нужна некоторая информация из текста. Но в данном случае мы хотим разграничить эти два понятия. «Интеллектуальный анализ текста» мы будем понимать в узком смысле – как процесс поиска и извлечения определенных параметров из текста книги. Это будет наш первый шаг. «Машинное обучение» можно определить (также в узком смысле) как способ обработки полученных параметров, на основе которых будет сделан вывод о том, принадлежит ли книга к группе бестселлеров. Это второй шаг. Чтобы довести обе части процесса до удовлетворительного состояния (то есть до такого, который позволил нам с уверенностью представить «Сферу» как образцовый пример наиболее вероятного бестселлера), нам понадобилось около четырех лет и несколько тысяч компьютеров.
Интеллектуальный анализ текста
Компьютеры могут читать текст самыми разными способами – деталями этого процесса занимается отдельная дисциплина, обработка естественного языка. Существуют мощные программы для извлечения данных из текстов. Базовые задачи при анализе естественного языка – выделение слов, идентификация предложений, разбор по частям речи и разбор зависимостей. В каждой из этих задач есть свои сложности, так что «базовый» в данном случае не значит «простой». Решение этих задач лежит в самой основе нашей работы, описанной в этой книге.
Что такое разбиение на слова? Попросту говоря, компьютер учат находить начало и конец каждого слова. На первый взгляд может показаться, что это очень просто: где пробел – там заканчивается одно слово и начинается следующее. Часто так оно и есть. Но для интеллектуального анализа текста этого «часто» – недостаточно: всегда существуют граничные случаи, усложняющие жизнь. Посмотрите на предыдущее предложение. После слова «недостаточно» стоит двоеточие. Оно не является частью слова, поэтому нельзя приказать компьютеру разбивать слова только по пробелам. Компьютеры должны знать, что «хорошо» – это слово, а двоеточие – знак препинания. Посмотрим теперь на английское слово
Значит, даже такая вроде бы простая задача, как разбиение на слова, оказывается весьма нетривиальной, если углубиться в детали языка и грамматики. Специалисты по обработке естественного языка подходят к этому вопросу так: они пишут программы, которые сначала вычленяют слова в тексте, а затем предлагают несколько вариантов обработки сокращений, слов с заглавной буквы и т. п. При исследовании современных бестселлеров нам все время приходилось принимать решения именно по таким вопросам. В конце концов оказалось, что на них можно отвечать по-разному для разных задач. Например, при анализе стиля, о котором мы говорили в 4-й главе, мы решили игнорировать заглавные буквы – таким образом, с точки зрения компьютера