E-mail:
Пароль:
Забыли пароль?

Лингвистика и обработка текстов

«Открытые системы», № 04, 2013

Константин Селезнёв и Александр Владимиров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Классификация практических задач обработки текстов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Возврат к списку

ѕрокрутить вверх