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

Вариант 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

Выводы:

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