4.8 KiB
Вариант 2
Задание: Выбрать художественный текст (четные варианты – русскоязычный, нечетные – англоязычный) и обучить на нем рекуррентную нейронную сеть для решения задачи генерации. Подобрать архитектуру и параметры так, чтобы приблизиться к максимально осмысленному результату. Далее разбиться на пары четный-нечетный вариант, обменяться разработанными сетями и проверить, как архитектура товарища справляется с вашим текстом. В завершении подобрать компромиссную архитектуру, справляющуюся достаточно хорошо с обоими видами текстов.
Данные: Русский текст: Рассказ «Хлеб для собаки» - Владимир Тендряков Английский текст: The Tell-Tale Heart - Edgar Allan Poe
Запуск: Запустите файл lab7.py
Описание программы:
- В начале программы задается функция
load_text(file_path)
, которая загружает текст из указанного файла с учетом кодировки UTF-8. - Функция
create_tokenizer(text)
создает токенизатор для обработки текста с использованием библиотеки Keras. generate_input_sequences(text, tokenizer)
генерирует входные последовательности для обучения модели, разбивая текст на n-граммы.- Создается рекуррентная нейронная сеть с использованием функции
create_model(total_words, max_sequence_length)
. - Модель содержит слои Embedding, LSTM и Dense, предназначенные для обработки последовательностей и генерации текста.
- В функции
train_model(model, predictors, labels, epochs)
модель компилируется и обучается на входных последовательностях с заданным числом эпох. - После обучения модели используется функция
generate_text(seed_text, next_words, model, tokenizer, max_sequence_length)
для генерации текста на основе заданной начальной строки. - Программа предоставляет возможность генерации текста на основе обученной модели для продемонстрированного языка (русского или английского).
- Загружаются тексты на разных языках (русском и английском), обучаются модели, генерируется текст, что позволяет проверить, как обученная модель справляется с текстом на другом языке.
Результаты:
Результат генерации на русском языке:
Парень увидел собаку же куркули грызут кору ты жалеешь «если враг не сдается его уничтожают » а это «уничтожают» вот так наверное и должно выглядеть черепа с глазами слоновьи ноги пена из черного рта ты просто боишься смотреть правде в глаза и хрипом те который готов меня на пустыре возле единого на моих
Результат генерации на английском языке: 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
Выводы:
Результаты генерации текстов на русском и английском языках демонстрируют, что обученные модели способны создавать относительно осмысленные последовательности слов, на английском языке текст получился лучше, возможно следует выбрать другие художественные тексты на русском языке для обучения модели.