.. | ||
eng_text.txt | ||
lab7.py | ||
README.md | ||
result_eng.png | ||
result_rus.png | ||
rus_text.txt |
Лабораторная работа №7
Рекуррентная нейронная сеть и задача генерации текста
ПИбд-41 Абанин Даниил
Как запустить лабораторную работу:
- установить python, numpy, keras, tensorflow
- запустить проект (стартовая точка lab7)
Какие технологии использовались:
- Язык программирования
Python
, библиотеки numpy, keras, tensorflow - Среда разработки
PyCharm
Что делает лабораторная работа:
- На основе выбранных художественных текстов происходит обучение рекуррентной нейронной сети для решения задачи генерации.
- Необходимо подобрать архитектуру и параметры так, чтобы приблизиться к максимально осмысленному результату.
Тест
- Чтение текста из файлов .txt (eng_text.txt, rus_text.txt)
- Вызов функция get_model_data, из которой мы получаем входные, выходные данные (X, y), размер словаря и токенайзер. Используем Tokenizer с настройкой char_level=True, что позволяет упразднить использование Embedding слоя далее
- Создание объекта Sequential (последовательная рекуррентная нейронная сеть) и добавление двух слоёв LSTM. LSTM (Long Short-Term Memory) представляет собой разновидность рекуррентной нейронной сети, которая эффективно работает с последовательными данными. Использование нескольких слоёв даёт большую гибкость. Dropout — это метод регуляризации для нейронных сетей и моделей глубокого обучения, решение проблемы переобучения. Слой Dense с функцией активации softmax используется для предсказания следующего слова
- Компилирование модели с использованием sparse_categorical_crossentropy
- Обучение модели на 100 эпохах (оптимальный вариант)
- Генерация текста
Сгенерированные тексты
-
ENG: I must be getting somewhere near the centre of the earth. how funny it'll seem to come out among the people that walk with their heads downward! the antipathies, i think—' (for, you see, alice had learnt several things of this
-
RUS: господин осматривал свою комнату, внесены были его пожитки: прежде всего чемодан из белой кожи, несколько поистасканный, показывавший, что был не в первый раз в дороге. чемодан внесли кучер селифан отправился на конюшню вози
По итогу, программа способна сгенерировать осмысленный текст в каждом из случаев