Магистр ДонНТУ Столбунская Анастасия Сергеевна

Столбунская
Анастасия Сергеевна

Факультет компьютерных наук и технологий

Кафедра искусстенного интеллекта и системного анализа

Специальность Системы искусственного интеллекта

Создание интеллектуальной системы стилистической оценки текста

Научный руководитель: доц. Кравец Татьяна Николаевна

Реферат по теме выпускной работы

Содержание

  • Введение

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

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

    Данная цель обусловила следующие задачи:

    • определить понятие обработка естественного языка;
    • выявить основные задачи обработки естественного языка;
    • выявить трудности, возникающие при выполнении задач естественного языка.
  • Обработка естественного языка

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

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

    Существует 10 основных и наиболее актуальных задач обработки естественного языка.[1,8]

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

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

    3. Анализ текста — процесс извлечения содержательной, высокого качества информации из текста на естественном языке для автоматизации процесса извлечения и анализа данных.
    4. Синтез текста — это объединение слов в предложения, предложений в текст по заданной на этапе анализа прагматической структуре. Задача синтеза может рассматриваться как обратная по отношению к анализу. К примеру, многоязыковая генерация. Так называют автоматическое составление специальных документов на нескольких языках (патентных формул, инструкций по эксплуатации технических изделий или программных систем). Для решения этого типа задач применяются подробные языковые модели.
    5. Машинный, или автоматический перевод. Под данной задачей обработки естественного языка подразумевается процесс перевода устных текстов, написанных на естественном языке, на другой, тоже естественный, язык при помощи электронно–вычислительных машин в предназначенных для данного типа задач компьютерных программах.
    6. Создание вопросно–ответных систем, то есть таких информационных систем, которые способны принимать, распознавать, классифицировать вопросы и давать ответы на них на естественном языке.

      Эта задача осуществляется по следующему алгоритму:

      • определения типа вопроса;
      • поиском текстов, потенциально содержащих ответ на этот вопрос;
      • извлечением ответа из этих источников.

      Такие системы можно классифицировать на:

      • те, которые предназначены для работы с текстами и темами определённой тематики;
      • те, которые способны работать с информацией, относящейся к различным сферам знания.
    7. Информационный поиск — процесс выявления информации в документах, содержащихся в доступных системе поиска базах данных, которые соответствуют заданному запросу по тематике.

      Исполнение этой задачи подразумевает под собой исполнение следующей последовательности операций:

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

      Существует 3 разновидности информационного поиска:

      • поиск по содержанию всего документа;
      • поиск по названию документа, дате его создания, автору, размеру и т.п. данным;
      • поиск по тематике изображения, предмету, присутствующему на нём.[2]
    8. Извлечение информации — задачи обработки естественного языка, выполняющая автоматическое извлечение необходимых данных из источника информации, текста (как правило, неструктурированного).
    9. Анализ тональности текста — анализ лексем текста, оценка их эмоциональной окрашенности и классификация по принадлежности к нейтральному, позитивному или негативному лексическому слою языка.
    10. Реферирование — сокращение объёма текста за счёт выделения основных тезисов путём поиска соответствий заданным в поиске ключевым словам и его краткое изложение.
  • Применение машинного обучения для понимания и использования текста

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

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

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

  • Трудности при выполнении задач

    В процессе выполнения задач возникают препятствия, создаваемые теми или иными особенностями естественного языка. Например, на качество понимания текста могут повлиять такие факторы, как:

    • отнесённость языка к той или иной языковой семье, группе;
    • порядок речи (прямой, обратный или свободный);
    • характерные особенности национальной культуры носителей естественного языка;
    • логический строй речи;
    • синтаксическое построение речи;
    • грамматический строй речи;
    • грамотность;
    • фонетические особенности речи;
    • полисемичность языка;
    • наличие омонимов в данном естественном языке;
    • способы словообразования, присущие определённому языку;
    • неологизмы, окказионализмы;
    • фразеологические обороты и устойчивые выражения.[4,5]
  • Стадии языкового анализа для обработки естественного языка

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

    Проблемой извлечения данных машиной из обычного текста занимается особое направление искусственного интеллекта: обработка естественного языка, или NLP (Natural Language Processing).

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

    Процесс чтения и понимания текста сам по себе очень сложен. Люди часто не соблюдают логику и последовательность повествования.

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

    Сначала нужно разбить процесс языкового анализа на стадии и понять, как они работают.[6–8]

    1. Выделение предложений. Можно предположить, что каждое предложение — это самостоятельная мысль или идея. Проще научить программу понимать единственное предложение, а не целый параграф.

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

    2. Токенизация, или выделение слов. Отделение фрагмента текста, когда встречаем пробел. Знаки препинания тоже являются токенами, поскольку могут иметь важное значение.
    3. Определение частей речи. Просматривает каждый токен и старается угадать, какой частью речи он является: существительным, глаголом, прилагательным или чем–то другим. Зная роль каждого слова в предложении, можно понять его общий смысл.

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

    4. Лемматизация. В языках слова могут иметь различные формы. Если тексты обрабатывает компьютер, он должен знать основную форму каждого слова, чтобы понимать, что речь идет об одной и той же концепции. В NLP этот процесс называется лемматизацией — нахождением основной формы (леммы) каждого слова в предложении.
    5. Определение стоп–слов. Определение важности каждого слова в предложении. Например, в английском языке очень много вспомогательных слов, таких как: and, the, a. При статистическом анализе текста эти токены создают много шума, так как появляются чаще, чем остальные. Некоторые NLP пайплайны отмечают их как стоп–слова и отсеивают перед подсчетом количества. Для обнаружения стоп–слов обычно используются готовые таблицы.
    6. Парсинг зависимостей. Установление взаимосвязей между словами в предложении. Конечная цель — построение дерева, в котором каждый токен имеет единственного родителя. Корнем может быть главный глагол. Модель получает слова и возвращает результат. Однако это более сложная задача.
      • 6.1. Поиск групп существительных. Рассматривает каждое слово в нашем предложении как отдельную сущность. Но иногда нужно сгруппировать токены, которые относятся к одной и той же идее или вещи. Используется полученное дерево парсинга, чтобы автоматически объединить такие слова.
    7. Распознавание именованных сущностей (Named Entity Recognition, NER). Обнаружение существительных и связей их с реальными концепциями. NER–системы не просто просматривают словари. Они анализируют контекст токена в предложении и используют статистические модели, чтобы угадать какой объект он представляет.
    8. Разрешение кореференции. Разрешением кореференции называется отслеживание местоимений в предложениях с целью выбрать все слова, относящиеся к одной сущности. Скомбинировав эту методику с деревом парсинга и информацией об именованных сущностях и получить возможность извлечь из документа огромное количество полезных данных.
  • Конвейер NLP на Python

    На рисунке 1 изображены стандартные этапы обычного NLP–конвейера, но в зависимости от конечной цели проекта и особенностей реализации модели, некоторые из них можно пропускать или менять местами. Все перечисленные шаги уже написаны и готовы к использованию.[7]

    Резюмирующая схема конвейера

    Рисунок 1 — Резюмирующая схема конвейера (анимация: 9 кадров, 1 циклов повторения, 16,5 килобайт)

  • Обработка естественного языка и машинное обучение

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

    Многие компании пытаются разработать идеального чат–бота, который, ведёт диалог, неотличимый от обычного общения между людьми. Новые чат–боты используют глубокое обучение не только для анализа ввода человеческой речи, но и для генерирования ответов. Анализ и создание ответа достигается в результате использования алгоритма глубокого обучения, который применяется в декодировке ввода и генерировании ответа. NLP также переводит ввод и вывод в текстовый формат, понятный и компьютеру, и человеку.

    Список задач, которые искусственная обработка языка должна решать. Многие из них могут быть связаны с распознаванием как текста, так и речи или даже картинок.[9,10]

    1. Реферирование. Задача состоит в том, чтобы создать реферат или резюме большого текста.
    2. Открытые и закрытые вопросы. От современных чат–ботов ожидают готовности ответить на вопросы независимо от того, открытые они или закрытые.
    3. Сопоставление. Бот должен сопоставлять объекты со словами, и понимать, когда разные слова относятся к одному объекту.
    4. Двусмысленность. Двусмысленность, которая часто содержится в явлениях естественного языка, пока что представляют серьёзную проблему для ботов. Одна только омонимия требует, чтоб было выбранное правильное значение в зависимости от контекста.
    5. Морфология. Чат–бот должен уметь разделить слова на морфемы.
    6. Семантика. Собственно, это задача определения смысла предложений или слов в естественном языке, и генерация высказываний на естественном языке.
    7. Структура текста. Связанность со структурой текста и пунктуацией.
    8. Тональность. Чат–бот должен различать эмоциональную окраску высказываний человека, его отношение к предмету разговора. Должен распознавать по манере человека изъясняться, строению предложений и выбору слов, в каком настроении человек: зол, счастлив, печален.
  • Заключение

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

    Также в данной работе рассматривается понятие искусственного интеллекта, подходы к разработке и направления искусственного интеллекта.

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

  • Список использованных источников

    1. Корн, Г. Справочник по математике для научных работников и инженеров / Г. Корн, Т. Корн. — М.: Наука. Главная редакция физико–математической литературы, 1974. — 832 с.
    2. Джаратано, Джозеф. Экспертные системы: принципы разработки и программирование / Джозеф Джаратано. — М.: Высшая школа, 2002. — 1152 с.
    3. Ясницкий, Л. Н. Введение в искусственный интеллект / Л. Н. Ясницкий. — М.: Издат. центр Академия, 2005. — 176 с.
    4. Джексон, Питер Введение в экспертные системы / Питер Джексон. — Харьков, 1997. — 112 с.
    5. Большакова, Е.И. Автоматическая обработка текстов на естественном языке и компьютерная лингвистика / Е.И. Большакова, Э.С. Клышинский, Д.Э. Ланде, А.А. Носков, О.В. Пескова. Е.В. Ягунова — М.: СССР-США СП Параграф, 1990. — 160 с.
    6. Как решить 90% задач NLP: пошаговое руководство по обработке естественного языка — Режим доступа: https://habr.com/company/oleg-bunin/blog/352614/
    7. Обработка естественного языка на Python — Режим доступа: https://proglib.io/p/fun-nlp/
    8. Столбунская А.С., Кравец Т.Н. Создание интеллектуальной системы стилистической оценки текста // Программная инженерия: методы и технологии разработки информационновычислительных систем(ПИИВС–2018) сборник научных трудов II научно–практической конференции (студенческая секция), Том 2, 14–15 ноября 2018 г. — Донецк, ГОУВПО Донецкий национальный технический университет, 2018. — с.253–256.
    9. Андрюхин А.И., Полетаев В.А. Рефлексивная референция и анализ квайнов // Информатика, управляющие системы, математическое и компьютерное моделирование в рамках III форума Инновационные перспективы Донбасса (ИУСМКМ — 2017): VIII Международная научно–техническая конференция, 25 мая 2017, г. Донецк: / Донец. национал. техн. ун–т; редкол. Ю.К. Орлов и др. — Донецк: ДонНТУ, 2017. — с.163–166.
    10. Как решить проблему машинного понимания естественного языка — Режим доступа: https://habr.com/post/271321/
    11. Особенности функционирования интеллектуальной поисковой системы — Режим доступа: http://elib.bsu.by/..