IIS_2023_1/tsyppo_anton_lab_7/README.md

97 lines
6.4 KiB
Markdown
Raw Normal View History

2023-12-06 15:17:02 +04:00
# Лабораторная работа №7: Рекуррентная нейронная сеть и задача генерации текста
## Задание. Вариант 28
Выбрать художественный текст (четные варианты русскоязычный, нечетные англоязычный) и обучить на нем рекуррентную
нейронную сеть для решения задачи генерации. Подобрать архитектуру и параметры так, чтобы приблизиться к максимально
осмысленному результату. Далее разбиться на пары четный-нечетный вариант, обменяться разработанными сетями и проверить,
как архитектура товарища справляется с вашим текстом. В завершении подобрать компромиссную архитектуру, справляющуюся
достаточно хорошо с обоими видами текстов.
## Описание программы
Данная программа обучается на двух текстах русскоязычном и англоязычном (2912 слов в англоязычном тесте и 1908 в
русскоязычном). В программе по итогу была реализованна архитектура справляющаяся с обоими видами текстов.
## Как запустить лабораторную работу
1. Установите необходимые библиотеки:
```bash
pip install tensorflow
pip install keras
```
2. Запустите скрипт:
```bash
python main.py
```
## Использованные технологии
- Python
- tensorflow
- keras
## Что программа делает
Программа загружает данные, считывает текста из файлов rus.txt и eng.txt. Далее для обоих текстов происходит следующее:
Происходит токенизация текста на отдельные слова. Создание последовательностей (n-грамм) для обучения модели.
Использование рекуррентной нейронной сети (RNN) с LSTM слоями. Потом происходит обучение модели на подготовленных данных.
Использование обученной модели для предсказания следующего слова на основе введенного текста. В конце программа выводит
сгенерированные текста.
## Тесты
Запуск программы с 20-ю эпохами:
![Графики моделей](img/work20.png)
Вывод русскоязычного текста с 20-ю эпохами:
![Графики моделей](img/rus20.png)
Текст:
> Начало широким надень дочка старик и откуда вдруг ледяной уж август и пошла так на выручили на дверей и тебе перед
> беседуют старику тут сосульки висели они ни обогнал в лесу присесть стукнул считать ждать на сказала да месяцы неба
> покрытая дочку и тихо опять и под между зеленые вязанкой достает
Вывод англоязычного текста с 20-ю эпохами:
![Графики моделей](img/eng20.png)
Текст:
> 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-й эпохами:
![Графики моделей](img/work100.png)
Вывод русскоязычного текста с 100-й эпохами:
![Графики моделей](img/rus100.png)
Текст:
> Начало ему свою длинную бороду старик и говорит сестра — уже домой вернулась а подснежники где за нею замерзнуть
> ворох подснежников чем корзинкой подснежников не выглянут мартом ворох подснежников какие сладких а май обогнал бы
> апрель месяцы не гаснет он за подарили где пожарче и стала греться замолчали братья месяцы тихо
Вывод англоязычного текста с 100-й эпохами:
![Графики моделей](img/eng100.png)
Текст:
> 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-переводчика:
![Графики моделей](img/translation.png)
## Вывод
_Смотря на тесты можно заметить что текст с 20-ю эпохами является по сути несвязным набором слов, в отличие от 100 где
уже прослеживаются вполне связный ряд словосочетаний и местами текст обретает хоть какой-то смысл в случае русскоязычного
можно догадаться что основной темой являются подснежники. С англоязычным текстом разница заметна ещё лучше поскольку
англоязычный текст больше. Подводя итоги можно сделать вывод, что количество эпох, а так же объём текста на котором
обучается рекуррентная нейронная сеть влияет на конечный генерируемый текст._
---