IIS_2023_1/tsyppo_anton_lab_7/README.md
2023-12-06 15:17:02 +04:00

97 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №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 где
уже прослеживаются вполне связный ряд словосочетаний и местами текст обретает хоть какой-то смысл в случае русскоязычного
можно догадаться что основной темой являются подснежники. С англоязычным текстом разница заметна ещё лучше поскольку
англоязычный текст больше. Подводя итоги можно сделать вывод, что количество эпох, а так же объём текста на котором
обучается рекуррентная нейронная сеть влияет на конечный генерируемый текст._
---