IIS_2023_1/tsyppo_anton_lab_7
2023-12-06 15:17:02 +04:00
..
img tsyppo_anton_lab_7 is ready 2023-12-06 15:17:02 +04:00
text tsyppo_anton_lab_7 is ready 2023-12-06 15:17:02 +04:00
main.py tsyppo_anton_lab_7 is ready 2023-12-06 15:17:02 +04:00
README.md tsyppo_anton_lab_7 is ready 2023-12-06 15:17:02 +04:00

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

Задание. Вариант 28

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

Описание программы

Данная программа обучается на двух текстах русскоязычном и англоязычном (2912 слов в англоязычном тесте и 1908 в русскоязычном). В программе по итогу была реализованна архитектура справляющаяся с обоими видами текстов.

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

  1. Установите необходимые библиотеки:

    pip install tensorflow
    pip install keras
    
  2. Запустите скрипт:

    python main.py
    

Использованные технологии

  • Python
  • tensorflow
  • keras

Что программа делает

Программа загружает данные, считывает текста из файлов rus.txt и eng.txt. Далее для обоих текстов происходит следующее: Происходит токенизация текста на отдельные слова. Создание последовательностей (n-грамм) для обучения модели. Использование рекуррентной нейронной сети (RNN) с LSTM слоями. Потом происходит обучение модели на подготовленных данных. Использование обученной модели для предсказания следующего слова на основе введенного текста. В конце программа выводит сгенерированные текста.

Тесты

Запуск программы с 20-ю эпохами: Графики моделей

Вывод русскоязычного текста с 20-ю эпохами: Графики моделей

Текст:

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

Вывод англоязычного текста с 20-ю эпохами: Графики моделей

Текст:

Start if i back i im sure we any worked is has aloud into dinner has three coming surprised to soon about the back all he said to have thing mr britnell exactly across when he saw that looked at the picture before — a very dark he with the

Запуск программы с 100-й эпохами: Графики моделей

Вывод русскоязычного текста с 100-й эпохами: Графики моделей

Текст:

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

Вывод англоязычного текста с 100-й эпохами: Графики моделей

Текст:

Start a see said nisbet but i must have but what i must do first i must ask garwood exactly what he saw when he looked at the picture last night then i must have the picture photographed before it goes any further and thirdly i must find out where

Перевод англоязычных текстов с помощью Google-переводчика: Графики моделей

Вывод

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