Классификация текстов
АрхивСегодня в России и в мире действует целый ряд систем классификации больших объемов текстовой информации, в основе которых лежат технологии компьютерной лингвистики и алгоритмов распознавания образов.
Канва
Сегодня в России и в мире действует целый ряд систем классификации больших объемов текстовой информации, в основе которых лежат технологии компьютерной лингвистики и алгоритмов распознавания образов.
Принципы построения таких систем довольно универсальны. Набросаем сначала общую схему. Задача состоит в определении принадлежности входного текста одному или нескольким классам (или подклассам). Принадлежность к тому или иному классу может определяться общей тематикой текстов, упоминанием определенных имен, другими условиями, иногда довольно сложными - все зависит от того, как обучить систему.
В упрощенном виде подготовка системы к работе выглядит (для внешнего пользователя) примерно так. Пользователь определяет, какого типа тексты следует обработать и в какие «корзинки» (классы) разложить. Затем эксперты отбирают (как правило, несколько десятков) типичных, по их мнению, текстов для каждого класса. Это - набор обучающих текстов, он «загружается» в систему классификации в режиме обучения
После того, как обучение закончено, система способна распределять по классам огромные потоки текстовой информации. В России существуют системы классификации, обрабатывающие мегабайты текста (в среднем несколько тысяч документов и информационных сообщений) в секунду. В частности, такая система создана в Исследовательском центре искусственного интеллекта Института программных систем РАН (ИЦИИ ИПС РАН).
Высокая скорость достигается при реализации систем классификации на кластерных вычислителях; заметим, что эти задачи тривиальным образом распараллеливаются: одна и та же программа независимо обрабатывает потоки данных в каждом узле кластера. Теперь расскажем чуть подробнее об алгоритмах, применяющихся в таких системах.
Кухня
Задачу классификации текстов можно интерпретировать по-разному. С математической точки зрения - это задача распознавания образов в алгебраической постановке, а значит, для ее решения можно использовать те же принципы, что и для моделирования поведения живых организмов, прогнозирования запасов месторождений полезных ископаемых, оценки технологических процессов, распознавания графических объектов и пр. При таком подходе для каждого объекта выделяются наборы признаков. В случае текстов признаками являются слова и взаимосвязанные наборы слов, содержащиеся в текстах. Информация о признаках сводится в таблицу, которая называется информационной матрицей. Каждая строка матрицы соответствует одному из классов, каждый элемент строки - одному из признаков; численное значение этого элемента определяет, условно говоря, «вес» признака при принятии решения о принадлежности к данному классу. «Веса» вычисляются в процессе обучения при помощи статистических алгоритмов. Когда обучение завершено, принадлежность незнакомого текста к одному из классов устанавливается также путем статистического анализа обнаруженных в тексте признаков (с учетом их «весов»).
Описанная схема довольно проста, а существующие алгоритмы позволяют проводить классификацию с очень высокой достоверностью. Но такой результат достигается за счет огромных размеров информационной матрицы, длина строки которой исчисляется многими тысячами элементов (общим числом характерных слов и словосочетаний). Для построения же самого набора признаков используются методы структурной лингвистики. Примеры признаков и классов можно увидеть на рисунке.
Как обучающие, так и классифицируемые тексты сначала обрабатываются программами предварительного парсирования (parsing) - для разделения на предложения и слова. Далее в работу вступают модули морфологии и частичного синтаксического анализа. Первый из них ищет для каждого слова так называемую нормальную форму и определяет, в какой форме (падеже, склонении) оно используется в данном предложении. Второй модуль устанавливает связанность различных слов в предложении.
Все лингвистические модули, работающие в подобных системах, по-своему уникальны и несопоставимы по качеству с теми, что используются в массовых продуктах. Вот пример, иллюстрирующий специфичность решаемых ими лингвистических задач: применяемые в этих системах словари для морфологического разбора содержат все встречающиеся на территории России топонимы, около ста тысяч фамилий, имен и отчеств, а также все их формы. Разумеется, такие словари во много раз превышают по объему аналогичные словари, использующиеся в коммерческих системах автоматического перевода. Тем не менее, модули морфологического разбора в ряде систем классификации работают быстрее большинства своих коммерческих аналогов, поскольку они построены на несколько иных алгоритмах 1.
Последнее замечание относится и к модулям частичного синтаксического анализа, задача которых - найти все связанные многословные группы в каждом предложении текста (для последующего сравнения с признаками классов). Эта задача заведомо проще, чем полный синтаксический анализ предложения. Однако проблема в том, что модуль должен решать ее практически без ошибок - иначе он будет непригоден для систем классификации. При этом прямой перебор вариантов связей для каждого слова, полученных на выходе модуля морфологии, неприемлем из-за слишком большого времени работы программы.
Замечу напоследок, что такие системы классификации - не «коробочные продукты» и на массового пользователя не рассчитаны. Позволю себе дать прогноз, который может возмутить некоторых специалистов: в ближайшее время будет продемонстрировано, что системы классификации, построенные по таким принципам, смогут решать задачи определения эмоционально-психологической направленности текстов и выделения системных установок, заложенных в тексте.
1 (обратно к тексту) - Кстати, неожиданным может показаться такое утверждение: для получения высоких результатов в этой области приходится отказаться от многих достижений модного сегодня объектно-ориентированного подхода.
Пусть, например, речь идет о клиенте туристической фирмы, который желает провести (с супругой) две недели на Канарах и хочет заплатить за это не более полутора тысяч долларов. Первый вариант диалога с системой, не обладающей способностями к рассуждениям (в том числе на основе прецедентов): Клиент: Здравствуйте, я бы хотел слетать в отпуск на две недели в июле на Канарские острова. Я бы хотел поехать с женой, но не могу заплатить более полутора тысяч долларов. Система: Извините, но такой возможности у нас нет. Клиент: Может быть, найдется что-нибудь похожее в близком регионе? Система: Не могли бы вы уточнить, что вы имеете в виду, говоря о близком регионе? Клиент: Я имею в виду побережье Испании. Система: Извините, но это не близкий регион. Это более тысячи километров от Канарских островов! Клиент: Но климат там похожий… Система: Извините, что вы имеете в виду, говоря о климате?.. Скорее всего, клиент обратится в другое турагентство. Второй вариант диалога: Клиент: Здравствуйте, я бы хотел слетать в отпуск на две недели в июле на Канарские острова. Я бы хотел поехать с женой, но не могу заплатить более полутора тысяч долларов. Система: Извините, такой возможности сейчас нет. Может быть, вас устроит побережье Испании? Клиент: А как насчет климата, он похож на канарский? Система: Да, и, кроме того, билеты дешевле! Клиент: Отлично, забронируйте, пожалуйста. Этот, быть может, не очень серьезный пример показывает: а) во втором случае система «понимает», что хоть регион и не близок к Канарам, но может устроить клиента, во всяком случае, билет дешевле, и б) так как клиент хочет поехать в отпуск в июле, видимо, его интересуют море и пляжи, а это есть и на Канарах, и на побережье Испании. Система делает вывод о сходстве двух ситуаций и полагает, что решение «отдых в Испании» является близким к решению «отдых на Канарах». |