Задачи обработки текстов на естественном языке интересуют специалистов уже более полувека [1], за это время были разработаны методы решения задач информационного поиска [2], машинного перевода и т. п. При этом базовые принципы обработки неизменно связывались с компьютерной лингвистикой, однако многие новые задачи (например, выделение ключевых слов в документах или мониторинг социальных сетей), язык которых может очень сильно отличаться от «канонического», решаются и без ее применения. Среди задач, требующих пересмотра методов обработки текстов, можно назвать извлечение мнений, определение эмоциональной окраски текстов, анализ реального влияния источников информации (например, мнение «известного блогера» в действительности может быть интересно лишь его соседям по комнате), обработка некорректных или преднамеренно искаженных текстов.

Все эти задачи заставляют задуматься о том, всегда ли при обработке текстов следует отталкиваться от методов компьютерной лингвистики.

Во всех современных системах обработки текстов, начиная от простейшего поиска вхождения слов и заканчивая машинным переводом, предусмотрено несколько этапов, инвариантных к выбору естественного языка (рис. 1).

 

Рис. 1. Классическая поэтапная обработка текстов
Рис. 1. Классическая поэтапная обработка текстов

 

На вход системы поступает последовательность символов, и на первом этапе (лексический анализ) происходит ее разбиение на отдельные слова и предложения. При этом некоторые последовательности символов (например, тире и точки в русском языке) могут трактоваться неоднозначно. Кроме того, на этапе лексического анализа возникает задача деобфускации — обнаружения и исправления преднамеренно искаженных (обфусцированных) слов. Типичным примером таких искажений является замена в спам-рассылках слова «drugs» (лекарства, наркотик) на «d.r.u.g.s» или «d-r-u-g-s».

Обработка текстов на естественном языке

Задачи обработки текстов возникли сразу за появлением вычислительной техники, но, несмотря на полувековую историю исследований в области искусственного интеллекта, скачок в развитии ИТ и смежных дисциплин, удовлетворительного решения таких задач пока нет.

Константин Селезнев

На следующем этапе происходит обработка отдельных слов, которая часто сводится к морфологическому анализу — определению характеристик слова (граммем) и основной словоформы. Существует два подхода к проведению морфологического анализа. Первый (точная морфология) подразумевает построение одного большого словаря, содержащего характеристики каждого слова (для русского языка такой словарь строится на основе словаря А. А. Зализняка, содержащего более 8 млн слов). Этот подход сравнительно прост в реализации, но имеет два важных недостатка. Во-первых, система будет корректно обрабатывать только слова, которые есть в словаре. Во-вторых, во многих языках этот словарь будет слишком большим.

Альтернативный подход (неточная морфология) к проведению анализа слов заключается в использовании системы правил, согласно которым по заданному слову предсказываются его характеристики. Недостатком подхода является то, что он не всегда может гарантировать 100-процентную точность результатов.

В задачах полнотекстового поиска и классификации текстов не требуется проведения полного морфологического анализа слов, а нужна только проверка того факта, что два указанных слова на самом деле являются формами одного и того же слова. Это может быть выполнено путем их лемматизации (приведение к основной словоформе) или стемминга, который заключается в выделении некоторой неизменяемой части слов. Однако морфологический анализ, лемматизация и стемминг не всегда способны определять родственные слова, например «безопасность» и «защита». Задачу определения родственных слов решают путем использования специальных словарей-тезаурусов, представляющих собой ориентированные графы, у которых вершины соответствуют словам, а дуги — семантически окрашенным связям между словами. Близость двух слов определяется на основе кратчайшего пути, соединяющего две соответствующие вершины графа. Если необходимо учитывать контекст слов, то задача значительно усложняется, и ее следует отнести к семантической обработке текста. Существуют автоматизированные способы определения связанности слов на основе частоты их совместной встречаемости или степени совпадения их контекстов употребления.

При синтаксическом анализе последовательность слов исходного текста преобразуется в древовидную иерархию, у которой листья соответствуют отдельным словам, узлы — группам слов, а дуги — взаимосвязям между словами и группами слов. Это преобразование осуществляется на основе заданной грамматики языка, которая по сути является фиксированным набором правил. Использование грамматик связано с очевидными трудностями — для естественного языка сложно разработать описывающую его систему правил, причем это особенно трудно для языков со сложной морфологической моделью и произвольным порядком слов (таких как русский). Кроме того, подавляющее большинство написанных человеком текстов содержат ошибки или опечатки. По этой причине любая грамматика может оказаться неприменимой, а попытки учесть все возможные варианты ошибок результата не дадут.

В основе большинства систем синтаксического анализа текста на русском языке лежат подходы, предполагающие использование различных вариантов грамматик. Наиболее интересными результатами являются Яндекс «Томита-парсер» (извлечение информации), парсер технологии Abbyy Compreno и модули системы ЭТАП-3 (машинный перевод). Попытки сравнения синтаксических анализаторов проводились неоднократно [3], и обнаружилось, что существующие системы слишком разнородны, а результаты их работы трудно привести к общему знаменателю. Мало того, за кадром остается весьма серьезная проблема — синтаксический анализ сам по себе не имеет практической ценности, а является лишь промежуточным этапом решения более общей задачи. При разработке и оценке модулей синтаксического анализа тестовые данные должны быть примерами входных данных конкретной системы. Допустим, для кадрового агентства создается система обработки резюме соискателей — тогда модули синтаксического анализа должны тестироваться именно на таких текстах.

Положение синтаксического анализа среди других методов предварительной обработки текстов двояко. С одной стороны, синтаксическая структура предложения достаточно точно определяет связи между словами, что необходимо в ряде практических приложений, таких как машинный перевод или извлечение информации. С другой, некоторые задачи (например, полнотекстовый поиск или классификация текстов) решаются и без синтаксического анализа, без следования традициям и глубокого анализа текста.

В задачах, требующих понимания смысла, дальнейшая обработка текста заключается в обнаружении и разрешении слов-ссылок. Простейший способ выполнения данной операции заключается в использовании системы правил. Например, слово «который» обычно связано с последним использованным существительным мужского рода. В более сложном случае для разрешения ссылок вида «этот факт» необходимо учитывать контекст. По мере усложнения обрабатываемых ссылок система постепенно движется к построению «локального» тезауруса документа. Далее любое слово нужно оценивать как с точки зрения локального, так и с точки зрения глобального тезауруса.

В итоге получается, что разрешение ссылок является частным случаем понимания смысла, который зависит от локального тезауруса. Отчасти верно и обратное — локальный тезаурус зависит от содержания текста, при этом для корректного понимания отдельных фраз иногда приходится задействовать целые понятийные слои языка. Например, упоминание теории относительности автоматически «подключает» соответствующую терминологию и понятийный аппарат.

Качественно выполненный семантический анализ приводит к построению локального тезауруса, у которого узлы соответствуют словам и словосочетаниям исходного текста, а дуги задают синтаксические и семантические связи. Часть семантических связей может указывать на глобальный тезаурус, который может быть построен вручную, а может быть комбинацией локальных тезаурусов других текстов. Во втором случае возникает любопытная идея — смысл слова состоит в его связях с фрагментами накопленных и обработанных текстов.

Локальный тезаурус способен формализованно задать содержание любого документа, но такое представление может быть крайне неудобным для дальнейшей обработки, поскольку один и тот же факт представим множеством различных способов. Необходимо более строгое и унифицированное представление, которое позволит формально и однозначно задавать любой смысл. Оно может быть основано на каком-либо способе представления знаний, в том числе и с помощью семантических сетей. В этом случае необходимо детальное описание возможных типов узлов и связей в таких сетях, а также система правил для преобразования информации из локального тезауруса в семантическую сеть. Попытки решить указанные задачи предпринимались давно, но не увенчались успехом, хотя сообщается, что эти задачи решены в Abbyy Compreno.

Ограничения существующих методов

Обработка текста происходит в несколько этапов, при этом выходные данные одного этапа передаются либо на вход следующего этапа, либо модулям, предназначенным для решения конкретной практической задачи, например машинного перевода. Результаты работы любого этапа неоднозначны — одни и те же входные данные дают несколько возможных результатов, и наоборот — один и тот же результат может получаться из совершенно разных входных данных. Это приводит к тому, что объем обрабатываемой информации при переходе с этапа на этап может резко увеличиваться.

Традиционная схема многоэтапной работы требует пересмотра — анализ текста может проходить в две фазы (рис. 2): поверхностное сканирование и выявление ключевых фрагментов текста, а затем детальный анализ по принципиально другому сценарию, согласно которому вышестоящие модули обращаются к нижестоящим за необходимой уточняющей информацией. Например, в задаче извлечения информации при поверхностном сканировании определяются упоминания людей, а затем семантический модуль обращается к нижележащему синтаксическому с запросом «какие связи есть у каждого найденного упоминания».

 

Рис. 2. Двухфазная обработка текстов
Рис. 2. Двухфазная обработка текстов

 

Как уже говорилось, модули нужно тестировать на реальных входных данных системы, и попытки сделать универсальные модули анализа, пригодные для решения любых задач, сталкиваются с одной и той же проблемой — модули оказываются оптимизированы для одной задачи и не оптимальны для других, а если анализ текста выполняется плохо, то и качество работы всей системы невысокое. При двухфазной обработке текста система способна влиять на то, какие модули необходимо задействовать и насколько эффективен оказывается именно лингвистический анализ текста.

Обработка отдельных текстов

При решении практических задач важно разделить их на две большие группы (рис. 3): обработка отдельных документов и обработка их массивов.

 

Рис. 3. Классификация практических задач
Рис. 3. Классификация практических задач

 

Группу задач обработки отдельных документов следует разделить на две подгруппы: корректировка документов и извлечение информации. Первая подразумевает, что на входе и на выходе будет текстовый документ (задачи исправления ошибок, корректировки текста, определения его структуры, реферирования, машинный перевод). Вторая подгруппа включает в себя задачи, связанные с обработкой формально представленного смысла: извлечение фактов, выполнение запросов на естественном языке, организация естественно-языковых интерфейсов, а также генерация корректных текстов.

Реализация всех задач первой подгруппы может быть основана либо на правилах, сформулированных экспертами, либо на закономерностях, полученных в результате применения методов машинного обучения. Использование системы правил потенциально дает более точные и предсказуемые результаты, но подразумевает большие затраты на ее создание. В свою очередь, применение методов машинного обучения не столь трудоемко, но требует большого количества качественных примеров. Скажем, можно найти множество хороших переводов английского текста на другие европейские языки и обратно, но трудно найти примеры переводов для редких языков.

Вторая подгруппа задач обработки отдельных документов включает в себя извлечение информации, выполнение запросов на естественном языке, генерацию текстов и организацию естественно-языковых интерфейсов. Все эти задачи подразумевают «понимание» текстов и поиск упоминаемых фактов. Работа осуществляется на основе системы правил извлечения информации, каждое из которых задает шаблон синтаксической структуры и шаблон формируемого фрагмента формализованного представления информации. При обработке документа просматриваются результаты синтаксического анализа и ищутся фрагменты, структура которых отвечает шаблонам из правил извлечения информации. Далее в соответствии со «сработавшими» правилами часть слов извлекается из текста и преобразуется в формализованную структуру.

Ключевое отличие от задачи «понимания» текста состоит в том, что происходит работа с информацией из указанной предметной области, для которой четко заданы концептуальная модель данных и правила извлечения. Поскольку описанные принципы извлечения информации применимы для различных предметных областей, то возможно создание универсального ПО, такого как Яндекс «Томита-парсер».

Выполнение запросов на естественном языке отличается от извлечения информации только тем, что результатом работы являются не упомянутые факты, а формализованное описание условий. Практическое применение запросов на естественном языке понятно не до конца, поскольку в большинстве случаев пользователю удобнее явно задавать формальные ограничения на информационные поля. Например, вместо формулировки «нужна машина не старше 5 лет» удобнее просто ввести нужные значения в соответствующие поля готовой формы. Кроме того, при выполнении запроса на естественном языке у пользователя возникает вполне обоснованное подозрение: а правильно ли его поняла система? Тем не менее такие запросы удобны для сложных предметных областей, где каждая сущность может состоять из десятков информационных полей и связей с другими сущностями.

Генерация текстов состоит в построении корректных документов, содержащих описание формально заданной информации. Как и выполнение запросов на естественном языке, данная задача востребована только для сложных предметных областей. Кроме того, поскольку на выходе получается текстовый документ, то действует особенность систем корректировки документов: пользователь не станет доверять системе полностью и всегда будет просматривать выходную информацию.

Организацию естественно-языковых интерфейсов можно рассматривать как комбинацию сразу трех задач, решенных сегодня в системе IBM Watson: извлечение информации, поиск ответа на уровне базы знаний и генерация текста. Пока еще сложно сказать, как эти технологии будут востребованы, но планируется использовать систему для медицинской диагностики, хотя неясно, будет ли естественно-языковой интерфейс удобнее других способов взаимодействия с экспертными системами.

Обработка массивов текстовых документов

Сегодня основная работа с массивами текстовых документов сводится к поиску необходимых документов или их фрагментов, что является обобщением задачи информационного поиска. Данный процесс включает в себя как собственно поиск документов, так и смежные с ним задачи определения ключевых слов, дубликатов документов и цитат, классификации и рубрикации документов, построения сниппетов (фрагментов) документов, построение кратких обзоров нескольких документов и так далее, вплоть до машинного перевода найденных документов с языка оригинала на язык запроса.

Системы информационного поиска можно разделить на две группы: поиск в локальных коллекциях и поиск в Интернете. Суммарный объем документов при поиске в локальных коллекциях сравнительно небольшой, и документы обычно не содержат преднамеренных ошибок.

Поиск в Сети имеет важные особенности. Во-первых, коллекция исходных документов является распределенной, и ее сбор (краулинг) сам по себе непрост. Во-вторых, огромный объем накапливаемой информации требует максимально высокой скорости обработки. В-третьих, документы в Интернете могут содержать ошибки и преднамеренные искажения, которые необходимо определять и обрабатывать. Примером преднамеренных искажений является веб-спам и всевозможные «поисковые оптимизации». В-четвертых, положение документа в выборке зависит от содержимого других документов (учитывается количество гиперссылок и их текст). Улучшение работы систем полнотекстового поиска заключается прежде всего в решении перечисленных проблем, и только потом — в проведении более глубокого анализа текстов.

Полнотекстовый поиск в Интернете может рассматриваться как работа с предварительно накопленным хранилищем документов. Существуют задачи, которые рассматривают Сеть как постоянный источник документов и выполняют их «потоковую» обработку. Самыми важными задачами такого типа являются спам-фильтры и системы веб-мониторинга.

Фильтрацию спама можно рассматривать как задачу классификации текстовых документов на две категории: спам и не спам. При ее решении используются различные методы машинного обучения, анализирующие содержимое документа и встречающиеся в нем слова. Однако точность дает проверка источника письма по «блэк-листу» — специальной базе данных со сведениями о серверах, рассылающих спам. Этот пример показывает, что некоторые на первый взгляд «канонические» задачи обработки текстов могут решаться вообще без привлечения компьютерной лингвистики.

Веб-мониторинг состоит в постоянном отслеживании информации в Интернете и в социальных сетях. Целью такого отслеживания является поиск и анализ новых сообщений по заданной тематике (например, касающейся указанного бренда или события). Другая цель веб-мониторинга — выявление быстро распространяющейся информации, которая копируется из одного сообщения в другое. Как правило, от программного обеспечения требуется определять сами факты быстрого распространения информации, находить основные пути ее распространения и первоначальные источники. Наконец, к задачам веб-мониторинга относится определение источников информации, имеющих существенное влияние на пользователей сети. Примерами таких источников являются блогеры, количество читателей постов которых сравнимо с аудиторией СМИ. Каждый такой источник информации характеризуется двумя параметрами: охватом (как много пользователей читают сообщения данного источника) и степенью отклика (как много пользователей реагируют на сообщения данного источника). Цели определения влиятельных источников могут быть самыми разными, начиная от проведения маркетинговых акций и заканчивая мероприятиями, связанными с обеспечением безопасности.

Системы веб-мониторинга сталкиваются с теми же проблемами, что и поисковые системы: распределенность исходной информации, ее суммарный объем, количество ошибок, вероятность преднамеренных искажений и т. п. Анализ содержимого сообщений сосредоточен на выявлении ключевых слов, деобфускации слов, а также определении негативных высказываний.

***

Сегодня приходится решать разные задачи обработки текстов, учитывая множество характеристик (язык, наличие ошибок, вероятность преднамеренных искажений и т. д.), что ставит под сомнение возможность создания и использования универсальных модулей анализа. Вместе с тем многие задачи могут быть решены без использования популярной сегодня, но трудоемкой и неэффективной в ряде случаев компьютерной лингвистики — ряд проблем можно решать без учета особенностей естественного языка.

Литература

  1. Рассел С., Норвиг П. Искусственный интеллект. Современный подход. М.: Вильямс, 2007. — 1480с.
  2. Маннинг К., Рагхаван П., Шютце Х. Введение в информационный поиск. М.: Вильямс, 2011. — 528 с.
  3. Толдова С.Ю. Оценка методов автоматического анализа текста 2011–2012: синтаксические парсеры русского языка // Диалог-2012: тезисы конференции. Москва, 2012.

Константин Селезнев (skostik@relex.ru) — старший инженер-программист компании «РЕЛЭКС», Александр Владимиров (alcobass@gmail.com) — аспирант ВГУ (Воронеж).