Компьютерная лингвистика

Компьютерная лингвистика: примеры прикладных задач

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

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

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

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

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

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

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

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

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

Очень близка к классификации задача рубрицирования текста (Text Classification) — отнесение текста к одной из заранее известных тематических рубрик (обычно рубрики образуют иерархическое дерево тематик).

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

Актуальная прикладная задача, часто относимая к направлению Text Mining — это извлечение информации из текстов (Information Extraction), что требуется при решении задач экономической и производственной аналитики. При решении этой задачи осуществляется выделение в тесте естественного языка определенных объектов — именованных сущностей (имен персоналий, географических названий, названий фирм и пр.), их отношений и связанных с ними событий. Как правило, это реализуется на основе частичного синтаксического анализа текста, позволяющего выполнять обработку больших массивов текстов, в частности, потоков новостей от информационных агентств. Выделенные данные тем или иным образом структурируются или визуализируются.

К направлению Text Mining относятся и две другие близкие задачи — выделение мнений (Opinion Mining) и анализ тональности текстов (Sentiment Analysis), привлекающие внимание все большего числа исследователей в силу своей актуальности. В первой задаче происходит поиск (в блогах, форумах, интернет-магазинах и пр.) мнений пользователей о товарах и других объектах, а также производится анализ этих мнений. Вторая задача близка к классической задаче контент-анализа текстов массовой коммуникации, в ней оценивается общая тональность высказываний и текста в целом.

Ещё одна прикладная задача, которая возникла более 50 лет назад и развитие которой стимулировало появление сети Интернет, — это поддержка диалога на ЕЯ. Ранее эта задача чаще всего решалась в рамках какой-либо информационной системы, в частности, для обработки запросов на естественном языке к специализированной базе данных — в этом случае язык запросов достаточно ограничен (лексически и грамматически), что позволяет использовать упрощенные метода анализа вопросов, а ответы строить по шаблонам. В настоящий момент все более широкое распространение в Интернете получают чат-боты, поддерживающие беседу с человеком на некоторую тему и являющиеся наследниками известной системы ELIZA (разработанной в области ИИ в 70 гг.). Очевидный успех этого направления в том, что появились программы, которые проходят известный тест Тьюринга.

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

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

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

Активно развивающимся направлением является распознавание и синтез звучащей речи. Неизбежно возникающие ошибки распознавания исправляются автоматическими методами на основе словарей и морфологических моделей, также применяется машинное обучение.

Уровни обработки текста: токенизация, морфологический и синтаксический анализ

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

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

Морфологическому анализу предшествует подготовительный этап: текст нужно разбить на предложения, а в каждом предложении выделить слова, знаки препинания и другие элементы текста — смайлики, числа, формулы, таблицы и пр. Этот этап называется токенизацией (tokenization), а выделенные в результате единицы (слова, числа, знаки препинания и пр.) называются токенами (tokens).

Задачи компьютерной морфологии, как и большинство задач прикладной лингвистики, решаются тремя типами подходов:

 • подходы на основе правил, составленных экспертами (rule-based methods);

• статистические методы (statistical methods), связанные в основном с машинным обучением (machine learning);

• гибридные подходы, совмещающие статистику и правила (hybrid methods).

Токенизацию можно проводить с помощью любого из этих трех подходов. Правила для выделения предложений на первый взгляд кажутся очевидными: предложения заканчиваются точкой, многоточием, вопросительным или восклицательным знаком. Можно рассматривать эти знаки как границы предложений. Но точкой могут заканчиваться также сокращения, например, Mme., Syn., Auj. и прочие. Тогда можно добавить правило о том, что конец предложения отмечается точкой и следующей за ней прописной буквой. Под это правило ошибочно попадут инициалы, например, Дж. Д. Сэлинджер, и при этом не попадут предложения из социальных сетей, где прописные буквы используются не всегда. Однако, немного подумав, можно составить достаточно эффективный набор правил для выделения границ предложений.

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

Гибридный подход совмещает статистику и правила.

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

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

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

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

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

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

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

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

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

Подход, основанный на грамматике зависимостей (ГЗ), представляет структуру предложения в виде дерева (графа) зависимостей. Его основоположником принято считать французского лингвиста Луи Теньера. С точки зрения ГЗ, строение предложения подобно строению молекулы: предложение состоит из слов и связей между ними. Вместе с тем, синтаксическую связь нельзя назвать двусторонней; в большинстве случаев синтаксическая связь является подчинительной. Синтаксические связи «устанавливают между словами отношения зависимости»: из двух слов одно является главным, а другое — зависимым.

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

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

Подход, грамматики зависимостей и грамматики непосредственных составляющих, предполагает установление отношений зависимости не только между словами, но и между группами слов.  В некоторых прикладных задачах комбинированный подход реализуется с помощью расширенных сетей переходов (Augmented Transition Networks, ATN) и основанных на них ATN-грамматиках. ATN-грамматики — это комбинация грамматик непосредственных составляющих (НС) и Марковских цепей (сетей переходов), в которых переходы производятся не только от слова к слову (что приводит к проблемам при анализе сложных фраз), но и между словами и НС или непосредственно между НС. Однако при этом для каждого класса НС строится своя независимая сеть, позволяющая анализировать эту НС по-отдельности. Кроме того, в ATN-грамматиках используются специальные «регистры» для обеспечения грамматического согласования и управления. Расширенные сети переходов являются самостоятельными алгоритмическими моделями, по мощности эквивалентными машинам Тьюринга.

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

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

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

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

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

В настоящий момент наиболее известными подходами к автоматизированному морфемному разбору являются: метод Харриса, метод Дежона, метод Бернхард, а также метод, реализованный в системе Morfessor. Каждый из них относится к методам, не требующим размеченных данных, и целиком опирается на информацию из неразмеченных корпусов.