Современные алгоритмы разбора знают, где существительные, где глаголы и т. д., и умеют различать все соответствующие оттенки смысла. Алгоритмы смотрят на контекст всего предложения и делают выводы о том, к какой части речи принадлежит то или иное слово, на основе его места в предложении и контекста.
Введя эти предложения в программу разбора по частям речи, мы получаем на выходе примерно следующее:[252]
He/PRP held/VBD out/RP hope/NN that/IN she/PRP would/MD buy/VB the/DT book/NN herself/PRP./.
She/PRP hoped/VBD he/PRP would/MD buy/VB her/PRP the/DT book/NN./.
Hope/NNP told/VBD him/PRP to/TO buy/VB the/DT book/NN himself/PRP./.
Заглавные буквы после косой черты – сокращенные обозначения частей речи. Слово hope было правильно опознано в первом предложении как существительное (NN), во втором – как глагол (VBD), а в третьем – как имя собственное (NNP). Для размеченного таким образом текста легко написать программу, которая извлечет только существительные, помеченные NN. Так мы получим существительные – кирпичики, из которых строится фундамент: опираясь на них, компьютер выделяет из текста темы.
Исследователи используют разные способы обучения компьютеров распознаванию частей речи. Но в большинстве этих способов задействован обширный корпус предложений, уже размеченных людьми. Специалисты по грамматике часами сидят над текстами, помечая части речи, а затем эти размеченные предложения загружают в программу в качестве обучающих данных. На основе этих данных машина строит статистическую модель, которая вычисляет вероятность появления той или иной комбинации слов. Например, компьютер может заметить, что после слова the в 55 % случаев стоит существительное, в 40 % – прилагательное и в 5 % – числительное. Конечно, такие программы разбора тоже иногда ошибаются, но очень редко – так редко, что, по мнению некоторых исследователей, задача компьютерного разбора по частям речи «уже решена». Другие исследователи возражают, но не слишком активно. Программа разбора по частям речи, разработанная в Стэнфордском университете, работает с точностью 97–100 %. Такая точность, безусловно, годится для большинства задач анализа текстов – в том числе тех, что мы решали при исследовании бестселлеров.
Распознавание именованных сущностей (NER) – другая область обработки естественного языка, тесно связанная с нашими исследованиями. Именованная сущность – это человек, географический объект или организация: Лисбет Саландер, Нью-Йорк, Microsoft. Распознавание подобных грамматических объектов позволяет находить ответы на разные вопросы – например, влияет ли место, где происходит действие романа, на факт его попадания в списки бестселлеров? Мы, разумеется, задались этим вопросом и обнаружили следующее: для того, станет ли роман бестселлером, важно, происходит ли действие в городе или где-нибудь в лесу. Конкретный город не важен. Роман, герои которого живут в Нью-Йорке, имеет столько же шансов, сколько и роман, герои которого живут в Стокгольме.