IIS_2023_1/almukhammetov_bulat_lab_7/README.md
2023-12-02 11:45:17 +04:00

37 lines
4.8 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.

Вариант 2
Задание:
Выбрать художественный текст (четные варианты русскоязычный, нечетные англоязычный) и обучить на нем рекуррентную нейронную сеть для решения задачи генерации. Подобрать архитектуру и параметры так, чтобы приблизиться
к максимально осмысленному результату. Далее разбиться на пары четный-нечетный вариант, обменяться разработанными сетями и проверить, как архитектура товарища справляется с вашим текстом. В завершении подобрать компромиссную архитектуру, справляющуюся достаточно хорошо с обоими видами текстов.
Данные:
Русский текст: Рассказ «Хлеб для собаки» - Владимир Тендряков
Английский текст: The Tell-Tale Heart - Edgar Allan Poe
Запуск:
Запустите файл lab7.py
Описание программы:
1. В начале программы задается функция `load_text(file_path)`, которая загружает текст из указанного файла с учетом кодировки UTF-8.
2. Функция `create_tokenizer(text)` создает токенизатор для обработки текста с использованием библиотеки Keras.
3. `generate_input_sequences(text, tokenizer)` генерирует входные последовательности для обучения модели, разбивая текст на n-граммы.
4. Создается рекуррентная нейронная сеть с использованием функции `create_model(total_words, max_sequence_length)`.
5. Модель содержит слои Embedding, LSTM и Dense, предназначенные для обработки последовательностей и генерации текста.
6. В функции `train_model(model, predictors, labels, epochs)` модель компилируется и обучается на входных последовательностях с заданным числом эпох.
7. После обучения модели используется функция `generate_text(seed_text, next_words, model, tokenizer, max_sequence_length)` для генерации текста на основе заданной начальной строки.
8. Программа предоставляет возможность генерации текста на основе обученной модели для продемонстрированного языка (русского или английского).
9. Загружаются тексты на разных языках (русском и английском), обучаются модели, генерируется текст, что позволяет проверить, как обученная модель справляется с текстом на другом языке.
Результаты:
Результат генерации на русском языке:
Парень увидел собаку же куркули грызут кору ты жалеешь «если враг не сдается его уничтожают » а это «уничтожают» вот так наверное и должно выглядеть черепа с глазами слоновьи ноги пена из черного рта ты просто боишься смотреть правде в глаза и хрипом те который готов меня на пустыре возле единого на моих
Результат генерации на английском языке:
Old man i kept quite still and said nothing for a whole hour i did not move a muscle and in the meantime i did not hear him lie down he was still sitting up in the bed listening just as i have done night after night hearkening to the death watches
Выводы:
Результаты генерации текстов на русском и английском языках демонстрируют, что обученные модели способны создавать относительно осмысленные последовательности слов, на английском языке текст получился лучше, возможно следует выбрать другие художественные тексты на русском языке для обучения модели.