ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ ДЛЯ СОСТАВЛЕНИЯ РЕКОМЕНДАЦИЙ ПО ВЫБОРУ КОНКУРСНОГО НАПРАВЛЕНИЯ ДЛЯ АБИТУРИЕНТОВ - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ ДЛЯ СОСТАВЛЕНИЯ РЕКОМЕНДАЦИЙ ПО ВЫБОРУ КОНКУРСНОГО НАПРАВЛЕНИЯ ДЛЯ АБИТУРИЕНТОВ

Стрельников В.Г. 1, Трунов А.С. 1
1МТУСИ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В стремительно развивающееся информационное пространство активно внедряются методы машинного обучения, в частности для решения задач, связанных с обработкой естественного языка. К таким задачам относятся: интеллектуальный анализ текстов для извлечения структурированной информации, построения вопросно-ответных систем.

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

Для реализации программы использовалась библиотека skilit-learn[1], позволяющая разработать нейронную сеть, которая осуществляет классификацию направления на основе предпочтений абитуриента.

Данная работа выполнена в рамках курсового проекта по дисциплине «Методы интеллектуального анализа данных», научный руководитель – д.ф.-м.н., профессор Воронова Л.И.

Введение

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

Для преобразования текстов к векторной модели существует несколько часто встречаемых способов, одними из которых являются: мешок слов (англ. “Bag of Words”) и мешок N-грамм (англ. “Bag of N-grams”) [4]. Это модель текста на натуральном языке, являющаяся неупорядоченным набором уникальных слов или фраз по N слов; не содержит информацию о связях между словами или фразами. Модель мешка слов представляет собой матрицу, строки которой соответствуют отдельному тексту, а столбцы – определенным словам. Пересечение строки и столбца содержит число, определяющее количество вхождений слова в текст.

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

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

Текст

Мешок слов

Словарь

Мешок биграмм

Словарь

Текст для тестирования

«текст», «для», «тестирования»

«текст», «для», «тестирования», «отладки»

«текст», «для», «тестирования», «текст для», «для тестирования»

«текст», «для», «тестирования», «отладки», «текст для», «для тестирования», «для отладки»

Текст для отладки

«текст», «для», «отладки»

«текст», «для», «отладки», «текст для», «для отладки»

Описанная векторная модель не является эффективной, так как общеупотребительные слова (например, предлоги) являются малоинформативными, и они могут «затмить» редкие слова, но более важные для конкретного текста. Существует другой наиболее популярный способ преобразования текстов к числовым массивам – TF-IDF [1]. Это статистическая мера, используемая для оценки важности слова в документе, являющегося частью коллекции документов, находится по формуле (1).

 

TF – частота слова в документе, определяет его «важность» в пределах отдельного документа:

 

число вхождений слова в документ, общее число слов в данном документе.

IDF – обратная частота документа, уменьшает вес широко употребляемых слов в коллекции документов:

 

количество документов в коллекции, количество документов, в которых встречается слово .

Предобработка данных

Решение задачи классификации начинается с предобработки коллекции документов. Предобработка заключается в применении следующих методов: удаление символов и цифр; удаление стоп-слов (предлоги, союзы, частицы, часто употребляемые слова); стемминг или лемматизация [4].

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

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

Исходные данные

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

Для каждой специальности с официальных сайтов МТУСИ [6, 7] был собран материал, который представляет собой обучающую выборку. Материал содержит описание специальности: краткая информация, преподаваемые дисциплины, тематики выпускных квалификационных работ, возможное трудоустройство, научные направления.

Таблица 2. Исходных данные и размеры словарей после обработки

Направление

Количество слов в исходных текстах для направлений

Размер словаря мешка слов

Размер словаря мешка биграмм

Размер словаря мешка слов

со стеммингом

Размер словаря мешка биграмм

со стеммингом

«09.03.01»

933

3232

10887

1929

8928

«09.03.03»

524

«10.03.01»

1270

«11.03.01»

1882

«11.03.02»

2181

«15.03.04»

1169

«27.03.04»

851

«38.03.01»

1372

«42.03.01»

473

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

Рис. 1 Схема работы алгоритма программы

Обучение и оценка точности нейронной сети

В спроектированной архитектуре нейронной сети число входных нейронов соответствует размеру словаря (табл. 2). Для определения размера скрытого слоя не существует точных рекомендаций, однако следует сохранять одинаковое число нейронов в каждом скрытом слое [8]. Лучшие результаты были получены экспериментально при 500 скрытых слоев с 500 нейронами в каждом. Размер выходного слоя – 9 нейронов, соответствующие 9 специальностям. В качестве функции активации выбрана функция ReLU [9]. Алгоритм обучения – “Adam” [1, 10] – оптимизация на основе стохастического градиентного спуска.

ReLU – «выпрямленная линейная функция» (англ. “rectifiedlinearunit”) – реализует простой пороговый переход в нуле, повышающий скорость вычислений и сходимости градиентного спуска по отношению к сигмоидальным функциям [11]. График функции ReLU представлен на рис. 2. На выходе функция выдает либо 0, либо 1. ReLU определяется формулой:

 

, входной параметр, веса нейрона.

Рис. 2. График функции ReLU

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

Рис. 3. Примеры обработки запросов абитуриентов

Каждый участник имел возможность оценить предложенный вариант: «0» – предсказано неверно, «1» – предсказано верно, то есть максимально точно описывает введенные предпочтения. Точность рассчитывалась, как отношение числа верно предсказанных профилей, к общему числу участников тестирования. Результаты тестирования приведены в табл. 3

Табл. 3 Результаты тестирования для мешка слов и биграмм с использованием стемминга и без использования стемминга

 

Мешок слов

Биграммы

Без стемминга

63.6%

72.7%

Со стеммингом

72.7%

77.3%

Выводы

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

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

Список источников и литературы

  1. Открытая библиотека машинного обучения scikit-learn [Электронный ресурс]. – Режим доступа: http://scikit-learn.org/ (дата обращения: 25.12.2017)

  2. Открытая библиотека обработки естественного языка NTLK [Электронный ресурс]. – Режим доступа: http://www.nltk.org/ (дата обращения: 25.12.2017)

  3. Р.В. Толмачев, Л.И. Воронова. Тематическая классификация статей новостного ресурса методами латентно-семантического анализа – Современные наукоемкие технологии, №3 (55-60), 2017 – 134 с.

  4. Е.И. Большакова, Э.С. Клышинский, Д.В. Ландэ, А.А. Носков, О.В.Пескова, Е.В. Ягунова. Автоматическая обработка текстов на естественном языке и компьютерная лингвистика: учебное пособие – М.: МИЭМ, 2011 – 272 с.

  5. M. F. Porter An algorithm for suffix stripping // Program. — 1980. — Vol. 14, no. 3. — P. 130—137.

  6. Официальный веб-сайт МТУСИ [Электронный ресурс]. – Режим доступа: http://www.mtuci.ru/ (дата обращения: 25.12.2017)

  7. Официальный веб-сайт приемной комиссии МТУСИ [Электронный ресурс]. – Режим доступа: http://www.abitur.mtuci.ru/ (дата обращения: 25.12.2017)

  8. Л.И. Воронова, В.И. Воронов. Machine Learning: Регрессионные методы интеллектуального анализа данных: учебное пособие – МТУСИ, 2017 – 81 с.

  9. Andrew L. Maas, Awni Y. Hannun, Andrew Y. Ng Rectifier Nonlinearities Improve Neural Network Acoustic Models – Computer Science Department, Stanford University, CA 94305 USA, 2014

  10. Kingma, Diederik, and Jimmy Ba. "Adam: A method for stochastic optimization."arXiv preprint arXiv:1412.6980, 2014

  11. Н.Ю. Объедков, Е.Н. Турута, Л.И. Воронова. Применение алгоритма логистической регрессии для классификации состояния структуры сенсорной сети – Студенческий научный форум, 2017 (https://scienceforum.ru/2017/2320/29613/)

Просмотров работы: 249