IIS_2023_1/podkorytova_yulia_lab_7
2023-11-27 02:51:56 +04:00
..
eng.txt podkorytova_yulia_lab_7 2023-11-27 02:51:56 +04:00
engRes1.JPG podkorytova_yulia_lab_7 2023-11-27 02:51:56 +04:00
engRes2.JPG podkorytova_yulia_lab_7 2023-11-27 02:51:56 +04:00
lr7.py podkorytova_yulia_lab_7 2023-11-27 02:51:56 +04:00
README.md podkorytova_yulia_lab_7 2023-11-27 02:51:56 +04:00
rus.txt podkorytova_yulia_lab_7 2023-11-27 02:51:56 +04:00
rusRes1.JPG podkorytova_yulia_lab_7 2023-11-27 02:51:56 +04:00
rusRes2.JPG podkorytova_yulia_lab_7 2023-11-27 02:51:56 +04:00

Лабораторная работа 7. Рекуррентная нейронная сеть и задача генерации текста

Задание на лабораторную:

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


Как запустить лабораторную работу:

Для запуска лабораторной работы необходимо открыть файл lr7.py, нажать на ПКМ и в выпадающем списке выбрать опцию "Run".


Технологии:

NumPy (Numerical Python) - это библиотека Python, которую применяют для математических вычислений: начиная с базовых функций и заканчивая линейной алгеброй.

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

Keras - это библиотека для языка программирования Python, которая предназначена для глубокого машинного обучения. Она позволяет быстрее создавать и настраивать модели — схемы, по которым распространяется и подсчитывается информация при обучении.

Keras Preprocessing - это модуль предварительной обработки и дополнения данных библиотеки глубокого обучения Keras. Он предоставляет утилиты для работы с данными изображения, текстовыми данными и данными последовательности.

Tokenizer - это инструмент, предоставляемый библиотекой Keras, который используется для токенизации текста (разделения текста на отдельные токены или слова). Токенизатор в Keras предоставляет функции для преобразования текста в последовательности числовых индексов.


Что делает лабораторная работа:

В лабораторной работе сначала данные считываются из файла, указанного в переменной file_path, создается экземпляр Tokenizer, который обучается на тексте из файла. Далее текст преобразуется в последовательности чисел с помощью функции texts_to_sequences, создаются обучающие данные путем создания последовательностей из слов и производится предобработка данных, чтобы все последовательности имели одинаковую длину, используя функцию pad_sequences. Данные разделяются на входные и выходные, создается модель рекуррентной нейронной сети с использованием Sequential и слоев Embedding (преобразует индексы слов в плотные векторные представления), LSTM ( рекуррентный слой, который обрабатывает последовательности данных с учетом долгосрочных зависимостей), Dropout (применяет случайное обнуление некоторых элементов входных данных во время обучения) и Dense (слой нейронной сети, в котором каждый нейрон связан со всеми нейронами предыдущего слоя). Модель компилируется с оптимизатором 'adam', функцией потерь 'sparse_categorical_crossentropy' и метрикой 'accuracy' и обучается на входных и выходных данных и на 150 эпохах. После генерируется текст на основе заданного начального предложения с помощью обученной модели. В функции генерации начальный текст преобразуется в последовательность чисел с помощью токенизатора, производится предобработка последовательности чисел, предсказывается следующее слово и выбирается наиболее вероятное, после этого предсказанное слово добавлется к начальному тексту.

Результатом работы являются сгенерированные тексты из 25 слов на русском и английском языках, которые начинаются со слов 'Зима' и 'Winter' и составляются на основе исходных текстов из файлов rus.txt и eng.txt соответсвенно.


Пример выходных данных:

Пример работы и сгенерированный русский текст ... Сгенерированный текст: "Зима лучшее время года зима это самое холодное время года она волшебная потому что всё укрыто белым снегом и это похоже на сказку зимой".

Пример работы и сгенерированный английский текст ... Сгенерированный текст: "Winter is the best time of the year winter is the coldest time of the year it is magical because everything is covered with white snow".


Вывод: результатом лабораторной работы стали сгенерированные при помощи рекурентной нейронной сети, обученной на 150 эпохах, тексты из 25 слов на русском и английском языках. Программа сгенеририровала достаточно осмысленный текст, очень похожий на исходный, как на русском, так и на английском языках. Это говорит о правильно подобранных архитектуре и параметрах.