УДК 004.85

Анализ подходов к решению проблемы понимания и обработки естественного языка методами машинного обучения

Л.В. Рудак*1, О.И. Федяев*2

*1 магистрант, Донецкий национальный технический университет, leo2598@yandex.ua

*2 к.т.н, доцент, Донецкий национальный технический университет, fedyaev@donntu.org, OrcID: 0000-0001-6822-7306, SPIN-код: 7777-3791

Рудак Л.В., Федяев О.И. Анализ подходов к решению проблемы понимания и обработки естественного языка методами машинного обучения. В работе рассматривается проблема обработки естественного языка и современные подходы к её решению. В ходе работы были проанализированы программные реализации, решающие различные вариации изучаемой проблемы, такие как Fairseq, Spacy и DeepPavlov.

Ключевые слова: обработка естественного языка, машинное обучение, нейронные сети, глубокое обучение.

Введение

Обработка естественного языка (Natural language processing, NLP) -- область исследований, находящаяся на пересечении компьютерных наук, искусственного интеллекта и лингвистики. Предметом её исследований являются методы компьютерного анализа и синтеза текстов на естественном языке, т.е. вопросы, относящиеся к обработке и пониманию естественного языка для перевода текста и конструирования грамотных ответов на вопросы [1].

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

  1. Человеческий язык -- специально сконструированная система передачи смысла сказанного или написанного. Это не просто экзогенный сигнал, а осознанная передача информации. Кроме того, язык кодируется так, что даже маленькие дети могут быстро выучить его.
  2. Человеческий язык -- дискретная, символьная или категориальная сигнальная система, обладающая надежностью.
  3. Категориальные символы языка кодируются как сигналы для общения по нескольким каналам: звук, жесты, письмо, изображения и так далее. При этом язык способен выражаться любым способом [2].

Новые перспективы технологий NLP основываются на глубоком обучении (deep learning) с применением искусственных нейронных сетей -- области машинного обучения, которая начала бурно развиваться только в начале этого десятилетия по следующим причинам:

  • накоплены большие объёмы тренировочных данных;
  • разработаны высокопроизводительные вычислительные системы (многоядерные CPU и GPU);
  • созданы новые модели и алгоритмы с расширенными возможностями и улучшенной производительностью, c гибким обучением на промежуточных представлениях;
  • появились обучающие методы c использованием контекста, новые методы регуляризации и оптимизации.

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

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

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

Библиотека Fairseq

Данная библиотека машинного обучения с открытым исходным кодом, основанная на наборе инструментов последовательного моделирования. Это позволяет исследователям с её помощью обучать пользовательские модели для трансформера с целью обучения языку, перевода и решению других задач. Она поддерживает распределённое обучение на нескольких графических процессорах [4].

Возможность моделирования последовательных данных является одной из особенностей библиотеки. Она поддерживает различные модели. Рассмотрим эти модели.

Свёрточные нейронные сети (CNN). Эта нейронная сеть имеет специальную архитектуру, нацеленную на эффективное распознавание образов [5]. Она реализует следующий функционал:

  • моделирование языка с помощью Gated CNN [6];
  • классический структурированный прогноз потерь;
  • иерархическая генерация нейронных историй;
  • обучение без учителя для распознавания речи с использованием решения прогнозной аналитики.

LightConv и DynamicConv. Эти модели содержит некоторый предварительно обученный набор данных, а также инструкции по обучению новой модели. Исследователь может быстро получать наборы предобработанных данных с помощью метода fairseq-preprocess для таких языков, как русский, английский, китайский, немецкий и французский, с помощью метода для обучения новой модели fairseq-train.

Сети долгой краткосрочной памяти (LSTM). LSTM -- это искусственная рекуррентная нейронная сеть (RNN), которая хорошо подходит для классификации и прогнозирования данных временных рядов. Её удобно использовать для распознавания несегментированного почерка, распознавания речи и обнаружения аномалий в сетевом трафике. Рисунок 1 с комментариями просто иллюстрирует идею применения LSTM. Библиотека предлагает практический подход к решению нейронного машинного перевода на основе внимания [7].

Пример реализации LSTM-шифровщика с помощью библиотеки Fairseq

Рисунок 1 — Пример реализации LSTM-шифровщика с помощью библиотеки Fairseq

Нейронные сети трансформеры. Трансформер -- это архитектура глубоких нейронных сетей. По аналогии с рекуррентными нейронными сетями трансформеры предназначены для обработки последовательностей, таких как текст на естественном языке, и решения таких задач как машинный перевод и автоматическое реферирование [8].

Вместо CNN и RNN многие исследователи предпочитают использовать сети трансформеры. Они реализуют кодировщик и декодер, чтобы выявить глобальные зависимости между вводом и выводом.

Библиотека Spacy

Данная библиотека с открытым исходным кодом для расширенной обработки естественного языка (NLP) в Python. Она является бесплатной. Библиотека Spacy помогает создавать приложения, обрабатывающие и «понимающие» большие объёмы текста. Её можно использовать для построения систем извлечения информации, понимания естественного языка или для предварительной обработки текста для глубокого обучения [9].

Статистические модели. В то время как некоторые функции библиотеки работают независимо, другие требуют загрузки обученных конвейеров, которые позволяют предсказывать лингвистические аннотации, например, является ли слово глаголом или существительным. Обученный конвейер может состоять из нескольких компонентов, которые используют статистическую модель, обученную на помеченных данных. В настоящее время библиотека Spacy предлагает обученные конвейеры для множества языков, которые можно установить, как отдельные модули Python. Пакеты конвейеров могут различаться по размеру, скорости, использованию памяти, точности и содержащимся в них данным [10].

Лингвистические аннотации. С помощью лингвистических аннотаций Spacy возможно улучшить понимание грамматической структуры текста. Они включают типы слов, такие как части речи, и то, как слова связаны друг с другом. Например, при анализе текста имеет огромное значение, является ли существительное субъектом предложения или объектом - или используется ли в английском языке слово «google» в качестве глагола или относится к веб-сайту или компании в конкретном контексте [11].

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

Общие языковые данные в корне каталога включают правила, которые могут быть обобщены для разных языков, например правила для базовой пунктуации, эмодзи, смайликов и однобуквенных сокращений. Отдельные языковые данные в подмодуле содержат правила, относящиеся только к определённому языку. Он также занимается сборкой всех компонентов и созданием подкласса Language -- например, английского или русского. Значения определены в Language.Defaults [12]. Основные функции библиотеки Spacy приведены в табл. 1.

Таблица 1 — Особенности библиотеки Spacy
Название функция Описание функции
Токенизация Сегментирование текста на слова, знаки препинания и т.д.
Пометка части речи (POS) Присваивание частей речи токенам, например глагол или существительное.
Анализ зависимостей Назначение меток синтаксических зависимостей, описывающих отношения между отдельными токенами, такими как субъект или объект.
Лемматизация Назначение базовых форм слов
Определение границ предложения (SBD) Поиск и сегментирование отдельных предложений.
Распознавание именованных сущностей (NER) Маркировка именованных «реальных» объектов, таких как люди, компании или местоположения.
Связывание сущностей (EL) Устранение неоднозначности текстовых сущностей в уникальные идентификаторы в базе знаний.
Сходство Сравнение слов, фрагментов текста и документов и определение их сходства.
Текстовая классификация Назначение категорий или меток всему документу или его частям.
Соответствие на основе правил Поиск последовательностей токенов на основе их текстов и лингвистических аннотаций, аналогичных регулярным выражениям.
Обучение Обновление и улучшение прогнозов статистической модели.
Сериализация Сохранение объектов в файлы или байтовые строки.

На рисунке 2 показан пример разбиения стандартного текста-примера на русском языке на части речи, где NOUN -- существительное, VERB -- глагол, ADJ -- прилагательное.

Пример разбиения русского текста на части речи

Рисунок 2 — Пример разбиения русского текста на части речи

Библиотека DeepPavlov

Данная библиотека является диалоговой и использует искусственный интеллект, с открытым исходным кодом, построенная на TensorFlow, Keras и PyTorch [13].

Библиотека DeepPavlov предназначена для:

  • разработки готовых чат-ботов и сложных разговорных систем,
  • исследования в области NLP и, в частности, диалоговых систем.
Схема работы библиотеки DeepPavlov

Рисунок 3 — Схема работы библиотеки DeepPavlov

Ключевые концепции:

  1. Навык выполняет цель пользователя в некоторой области. Как правило, это достигается путём предоставления информации или завершения транзакции (например, ответа на вопрос с помощью часто задаваемых вопросов, бронирования билетов и т. д.). Однако для некоторых задач успешное взаимодействие определяется как постоянное взаимодействие.
  2. Модель -- это любая модель NLP, которая не обязательно общается с пользователем на естественном языке.
  3. Компонент -- это многоразовая функциональная часть модели или навыка.
  4. Модели на основе правил нельзя обучить.
  5. Модели машинного обучения (ML) обучается только автономно.
  6. Модели глубокого обучения (DL) можно обучать независимо и в сквозном режиме, объединяя их в цепочку.
  7. Менеджер навыков выполняет выбор навыка для генерации ответа.
  8. Сцепление строит пайплайн модели из разнородных компонентов (на основе правил / ML / DL). Это позволяет обучать и выводить модели в пайплайне в целом.

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

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

Архитектура. Современные виртуальные помощники, такие как Amazon Alexa и помощники Google, объединяют и организуют различные разговорные навыки для решения широкого спектра задач пользователя. DeepPavlov Agent -- это платформа для разработки масштабируемых и готовых к работе многофункциональных виртуальных помощников, сложных диалоговых систем и чат-ботов [15].

Ключевые особенности:

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

Главные архитектурные концепции:

  • высказывание -- это сообщение, созданное человеком или ботом;
  • сервис -- это модель NLP или любая другая внешняя служба, поддерживающая REST API;
  • ответ после обработки -- это окончательное высказывание диалогового агента, которое отображается пользователю;
  • состояние хранит текущие диалоги между пользователями и агентом, а также другую информацию, сериализованную в формате json [16].

Заключение

При изучении проблемы анализа и обработки естественного языка средствами машинного обучения были проанализированы современные подходы к её решению.

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

Литература

  1. Обработка естественного языка -- Режим доступа: https://neerc.ifmo.ru/wiki/index.php?title=Обработка_естественного_языка - Загл. с экрана;
  2. Правильный NLP: как работают и что умеют системы обработки естественного языка -- Режим доступа: https://tproger.ru/articles/natural-language-processing/ - Загл. с экрана;
  3. Что такое глубокое обучение? -- Режим доступа: https://www.baslerweb.com/ru/vision-campus/otrasli-i-zadachi/chto-takoe-glubokoe-obuchenie/ - Загл. с экрана;
  4. Fairseq documentation -- Режим доступа: https://fairseq.readthedocs.io/en/latest/ - Загл. с экрана;
  5. Свёрточная нейронная сеть -- Режим доступа: https://ru.wikipedia.org/wiki/Свёрточная_нейронная_сеть - Загл. с экрана;
  6. Gated recurrent unit -- Режим доступа: https://ru.wikipedia.org/wiki/Gated_recurrent_unit -- Загл. с экрана;
  7. Fairseq -- All You Need to Know -- Режим доступа: https://www.folio3.ai/blog/fairseq/ - Загл. с экрана;
  8. Трансформер (модель машинного обучения) -- Режим доступа: https://ru.wikipedia.org/wiki/Трансформер_(модель_машинного_обучения) - Загл. с экрана;
  9. spaCy 101: Everything you need to know -- Режим доступа: https://spacy.io/usage/spacy-101 - Загл. с экрана;
  10. Features -- Режим доступа: https://spacy.io/usage/spacy-101#features - Загл. с экрана;
  11. Industrial-Strength Natural Language Processing -- Режим доступа: https://spacy.io/ - Загл. с экрана;
  12. Language data -- Режим доступа: https://spacy.io/usage/spacy-101#language-data - Загл. с экрана;
  13. Conceptual overview -- Режим доступа: http://docs.deeppavlov.ai/en/master/intro/overview.html - Загл. с экрана;
  14. Features -- Режим доступа: http://docs.deeppavlov.ai/en/master/features/overview.html - Загл. с экрана;
  15. DeepPavlov Agent documentation -- Режим доступа: https://deeppavlov-agent.readthedocs.io/en/latest/index.html - Загл. с экрана;
  16. Architecture Overview -- Режим доступа: https://deeppavlov-agent.readthedocs.io/en/latest/intro/overview.html - Загл. с экрана.

Рудак Л.В., Федяев О.И. Анализ подходов к решению проблемы понимания и обработки естественного языка методами машинного обучения. В работе рассматривается проблема обработки естественного языка и современные подходы к её решению. В ходе работы были проанализированы программные реализации, решающие различные вариации изучаемой проблемы, такие как Fairseq, Spacy и DeepPavlov.

Ключевые слова: обработка естественного языка, машинное обучение, нейронные сети, глубокое обучение.

Rudak L.V., Fedyaev O.I. Analysis of approaches to solving the problem of understanding and processing natural language using machine learning methods. The work covers the problem of natural language processing, modern approaches to its solution are studied. In the course of the work, software implementations for solving different variations of the problem were identified, such as Fairseq, Spacy and DeepPavlov.

Keywords: natural language processing, machine learning, neural networks, deep learning.