Построение нейронной сети для классификации запросов на естественном языке к программе-помощнику для поиска и анализа текстов судебных документов
Разработка чат-бота для поиска текстов судебных решений. Рассмотрение механизма предварительной обработки текста запроса. Классификация запросов на естественном языке, перевод текста в векторное представление. Проектирование и тестирование нейронной сети.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 24.02.2019 |
Размер файла | 484,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Построение нейронной сети для классификации запросов на естественном языке к программе-помощнику для поиска и анализа текстов судебных документов
Алексеев Д.О., Трунов А.С.
Московский Технический Университет Связи и Информатики Москва, Россия
В статье изложен процесс построения нейронной сети для классификации запросов пользователя к автоматизированному помощнику, так называемому «чат-боту». В настоящее время чат-боты активно применяются в банковской сфере и телекоммуникациях. Они существенно помогают экономить ресурсы компаниям за счет автоматического приема и обработки документов от клиентов.
Как правило, чат-боты применяются в той области, которая требует обработки пользовательских запросов на естественном языке и принятии определенных решений, на основе этих запросов. Одной из таких областей является судебная система, которая, в частности, решает задачи по поиску и анализу судебных решений для их дальнейшей обработки, например, формирование карточек статистической отчетности. Поэтому разработка чат-бота для поиска и анализа текстов судебных решений является актуальной.
Одна из задач, которая может быть выделена при разработке чат-бота является классификация по категориям поступающих к чат-боту запросов от пользователя. Правильная классификация запроса позволит программе в дальнейшем выбрать параметры запроса и корректно выполнить ответную команду. запрос нейронный текст бот
Работа выполнена в рамках курсового проекта по дисциплине «Machine Learning», научный руководитель - старший преподаватель Трунов А.С.
Постановка задачи
Необходимо классифицировать запрос на естественном языке к программепомощнику по поиску и анализу текстов судебных документов. Задачей является анализ входящих сообщений от пользователя, а именно определение типа запроса, который програме необходимо выполнить. Имеется следующий тестовый список возможных запросов к чат-боту: поиск документа по введенным параметрам, извлечение данных из документа, поиск схожих документов. Эту задачу требуется решить с применением нейронных сетей. Всего имеется 3 типа запроса для помощника, назовем их классами и пронумеруем:
1й класс - "Поиск документа по введенным параметрам"
2й класс - "Извлечение данных из документа"
3й класс - "Поиск схожих документов"
Нейронную сеть необходимо обучить и протестировать на наборе из 250 неструктурированных запросов на естественном языке, где каждый запрос маркирован в соответствии с классом. Для обучения нейронной сети из этого набора выделены 70% примеров (175), а для тестирования сети оставшиеся 30% (75).
Решение задачи классификации запросов на естественном языке проводится с помощью следующих этапов [1; 2]:
Предварительная обработка текстов запросов;
Перевод текста запросов в вещественное пространство признаков, где каждому запросу будет сопоставлен вектор фиксированной длины;
Классификация на выбранном алгоритме.
Предварительная обработка текста запроса
Все тексты на естественном языке имеют большое количество слов, которые не несут информации о данном тексте. К примеру, в английском языке такими словами являются артикли, в русском к ним можно отнести предлоги, союзы, частицы. Для достижения лучшего качества классификации на первом этапе предобработки текстов обычно необходимо удалять такие слова, мы также будем удалять слова содержащие цифры и знаки препинания.
Далее необходимо приведение каждого слова к основе, одинаковой для всех его грамматических форм. Это необходимо, так как слова несущие один и тот же смысл могут быть записаны в разной форме. Например, одно и то же слово может встретиться в разных склонениях, иметь различные приставки и окончания [3]. Для реализации данного этапа необходимо применения стемминга (stemming). Стемминг -- это процесс нахождения основы слова для заданного исходного слова. Конкретный способ решения задачи поиска основы слов называется алгоритм стемминга, а конкретная реализация -- стеммер. Применяемый алгоритм стемминга для обработки текста запросов описан в статье «Russian stemming algorithm» [4].
Пример предварительной обработки текста неструктурированного запроса приведен в таблице 1:
Таблица 1
Порядок операции |
Операция обработки запроса |
Полученный результат - обработанные запрос |
|
1 |
Исходный запрос |
Найти все документы по делу № А14-7662 |
|
2 |
Удаление не ключевых слов |
Найти все документы по делу |
|
3 |
Применение стемминга |
найт все документ по дел |
Перевод текста запроса в векторное представление
Нейронные сети должны иметь входные данные фиксированной длины, проблема в том, что все запросы к чат-боту содержат разное число слов. Самое распространенное решение -- перевести каждое слово в вектор, длина которого равна количеству используемых слов во всех текстах запросов, получив таким образом словарь слов (слововектор). Далее для каждого запроса, необходимо сложить вектора соответствующие встреченным словам, получив таким образом результирующий вектор предложения. Такое представление часто называется «neural bag of words» (NBoW) -- «нейронная сумка слов», поскольку порядок слов в нем теряется.
Пример составления словаря приведен в таблице 2. На примере словарь сформирован по текстам двух запросов, предварительно обработанных. Получившееся количество слов - 8, что и является длиной вектора, а каждому слову сопоставлен вектор в котором i элемент, соответствующий номеру слова, равен единице. Нужно отметить, что встреченные слова в текстах запросов не повторяются в словаре.
Таблица 2
№ слова |
Слова после предварительной обработки |
Векторное представление слов |
|
1 |
найт |
1 0 0 0 0 0 0 0 |
|
2 |
все |
0 1 0 0 0 0 0 0 |
|
3 |
документ |
0 0 1 0 0 0 0 0 |
|
4 |
по |
0 0 0 1 0 0 0 0 |
|
5 |
дел |
0 0 0 0 1 0 0 0 |
|
6 |
поиск |
0 0 0 0 0 1 0 0 |
|
7 |
решен |
0 0 0 0 0 0 1 0 |
|
8 |
суд |
0 0 0 0 0 0 0 1 |
Также приведем пример векторного представления запроса. Сначала текст запроса подвергается предварительной обработке (удаление лишних слов и стемминг, таблица 1), далее формируется словарь размер которого равен количеству используемых слов во всех текстах запросов (таблица 2). Результирующий вектор равен сумме векторов, которые соответствуют словам, встреченным в обработанном тексте запроса (таблица 3).
Таблица 3
№ операции |
Операции над запросом |
Результат операции |
|
1 |
Исходный запрос |
Решения суда по делу № А14-6273 |
|
2 |
Предварительная обработка запроса |
решен суд по дел |
|
3 |
Векторное представление запроса |
0 0 0 1 1 0 1 1 |
Проектирование и обучение нейронной сети
Для обучения нейронной сети классификации запросов выбран метод обратного распространения ошибки (backpropagation) [5]. После обработки текстов запросов получен словарь размером 96 слов. Это соответствует количеству признаков для обучения нейронной сети (входной слой). Также добавим один скрытый слой. Полученная нейронная сеть имеет следующие параметры:
общее количество слоёв в сети.
количество элементов (нейронов) в слое L, не считая корректировочную константу.
Для рассматриваемой сети = 96, 1 (входной слой) равен 96 элементам, 2 равен 40 элементам (скрытый слой), 3 (результирующий слой) равен 3 элементам. Выбрана сигмоидальная функция активации, вычисляющая выходной сигнал.
Модель для рассматриваемой нейронной сети представлена на рисунке 1.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рис. 1. Модель нейронной сети
Нейронная сеть реализована в системе для математических вычислений «Octave».
Последовательность действий при обучении нейронной сети приведена на рисунке 2.
Рис. 2. Алгоритм обучения нейронной сети
Тестирование разработанной нейронной сети
Для оценки эффективности используется тестовая выборка, состоящая из 30% от исходной (файл 'testSet'), примеры из тестовой выборки не пересекаются с примерами из обучающей выборки. После обучения нейронной сети, мы получили матрицу параметров для каждого слоя (файлы 'Theta1' и 'Theta2'), таким образом можно вычислить значение функции гипотезы для каждого i-ого элемента тестовой выборки. Для определения точности классификации, сравниваем полученное значение класса нейронной сетью с тестовым набором. Для тестирования классификации запросов используется функция «predict», алгоритм которой приведен на рисунке 3.
Результаты тестирования
Для тестовой выборки (75 примеров) результат классификации с оптимальными параметрами обучения нейронной сети составил 67%. В общем случае точность классификации должна быть повышена с помощью увеличения размера обучающей выборки.
Рис. 3. Алгоритм тестирования нейронной сети
Приведем примеры классификации для отдельных примеров, которые не содержатся в обучающей выборке для нейронной сети (таблица 4). Вероятность принадлежности к классу лежит в интервале [0; 1].
Таблица 4
Текст запроса |
Вероятность принадлежности к классу запроса |
|||
1й класс "Поиск документа по введенным параметрам" |
2й класс "Извлечение данных из документа" |
3й класс "Поиск схожих документов" |
||
«Выведи решения суда, статьи 184, 291 за 2017 год» |
0.71 |
0.55 |
0.38 |
|
«Выдай номера статей из документа № А32-9434» |
0.23 |
0.84 |
0.6 |
|
«Сравнить документы № А32-1004 и № А32-1611» |
0.11 |
0.4 |
0.87 |
Заключение
В статье решена задача классификации запросов на естественном языке для программы-помощника по поиску и анализу текстов судебных документов с помощью нейронной сети. Результат классификации для тестовой выборки составил 67%. Правильная классификация запроса позволит помощнику в дальнейшем выбрать параметры команды и корректно выполнить запрос. В дальнейшем планируется предусмотреть орфографические ошибки в тексте запроса.
В статье приводится разработка нейронная сети для классификации запросов, алгоритмом обучения выбран алгоритм обратного распространения ошибки. Также рассмотрен механизм предварительной обработки текста запроса. Приведены результаты тестирования, точность классификации должна быть повышена с помощью увеличения размера обучающей выборки. Статья демонстрирует способ применения нейронных сетей к текстовым данным.
Список источников и литературы
Воронцов, К. В. Курс лекций по машиному обучению / К. В. Воронцов. -- 2015.
В. В. Круглов, В. В. Борисов -- Искусственные нейронные сети. Теория и практика, 2002. -- 382с.
Нейронные сети- математический аппарат. [Электронный ресурс]. -
http://www.basegroup.ru/library/analysis/neural/math/
Russian stemming algorithm. [Электронный ресурс]. -
http://snowball.tartarus.org/algorithms/russian/stemmer.html
Л.И. Воронова, В.И. Воронов. MachineLearning: Регрессионные методы интеллектуального анализа данных: учебное пособие - МТУСИ, 2017 - 81 с.
Размещено на Allbest.ru
...Подобные документы
История развития компьютерного анализа текста на естественном языке; выделение его проблем. Принципы извлечения информации и обработки разговорной речи. Ознакомление с программными продуктами, реализующими машинный перевод и проверку орфографии.
реферат [371,0 K], добавлен 13.02.2011Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.
лабораторная работа [2,3 M], добавлен 25.03.2014Этап предварительной обработки данных, классификации, принятия решения. Изображения обучающих рукописных символов, тестового символа. Выход нейронной сети для тестового символа. График тренировки нейронной сети. Последовательность точек. Входные вектора.
статья [245,7 K], добавлен 29.09.2008Построение векторной модели нейронной сети. Проектирование и разработка поискового механизма, реализующего поиск в полнотекстовой базе данных средствами нейронных сетей Кохонена с применением модифицированного алгоритма расширяющегося нейронного газа.
курсовая работа [949,0 K], добавлен 18.07.2014Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Изучение и реализация системы, использующей возможности Microsoft Azure для распределенного обучения нейронной сети. Рассмотрение функционирования распределенных вычислений. Выбор задачи для исследования; тестирование данного программного ресурса.
дипломная работа [2,0 M], добавлен 20.07.2015Обоснование выбора метода извлечения ключевых слов. Анализ предметной области, проектирование информационной системы поиска релевантных документов. Реализация запросов к электронным библиотекам. Реализация интерфейса системы поиска релевантных документов.
дипломная работа [1,1 M], добавлен 21.09.2016Модель и задачи искусственного нейрона. Проектирование двуслойной нейронной сети прямого распространения с обратным распространением ошибки, способной подбирать коэффициенты ПИД-регулятора, для управления движения робота. Комплект “LEGO Mindstorms NXT.
отчет по практике [797,8 K], добавлен 13.04.2015Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017Особенности и преимущества языка C#. Алгоритмы поиска маршрутов в графе. Разработка вычислительной системы транспортной логистики на языке C#. Выбор среды разработки, визуализация транспортной сети. Задание условий поиска и пример работы алгоритма.
дипломная работа [457,1 K], добавлен 24.06.2015Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Программная реализация статической нейронной сети Хемминга, распознающей символы текста. Описание реализации алгоритма. Реализация и обучение сети, входные символы. Локализация и масштабирование изображения, его искажение. Алгоритм распознавания текста.
контрольная работа [102,3 K], добавлен 29.06.2010Перевод - процесс создания на основе исходного текста на одном языке равноценного ему в коммуникативном отношении текста на другом языке, требования к обеспечению его эквивалентности. Машинные технологии перевода; характеристика систем Translation Memory.
презентация [347,8 K], добавлен 06.01.2014Проектирование программного обеспечения, позволяющего создавать и вести множество электронных словарей. Обоснование выбора программных средств решения задачи. Разработка формы входных и выходных данных. Описание модулей программы и процесса отладки.
дипломная работа [1007,7 K], добавлен 03.07.2015Функциональные возможности, преимущества и недостатки существующих лингвистических процессоров. Проектирование интерфейса взаимодействия облачного хранилища с лингвистическим процессором и компонентов доступа к сервисам. Программный продукт IKVM.NET.
дипломная работа [2,0 M], добавлен 21.09.2016Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка.
курсовая работа [549,7 K], добавлен 03.03.2015Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.
дипломная работа [1,5 M], добавлен 17.09.2013Разработка алгоритма автоматического создания отзывов на русском языке с использованием лексико-синтаксических шаблонов. Процесс создания текста при помощи цепей Маркова. Принцип работы Томита-парсера. Применение автоматических генераторов текстов.
курсовая работа [150,6 K], добавлен 27.09.2016Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.
дипломная работа [2,4 M], добавлен 07.02.2013