Giter VIP home page Giter VIP logo

pushkin's Introduction

Нейросетевые генеративные текстовые модели

Автоэнкодерная модель для генерации текста

Код автоэнкодера содержится в файле lstm_ae.py. Реализовано две архитектуры:

  1. простой сжимающий автоэнкодер для цепочек слов;
  2. вариационный автоэнкодер.

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

Перед тренировкой автоэнкодера необходимо подготовить датасет с помощью prepare_vae_dataset.py. Этот код берет предложения из файла phrases.txt и загружает список векторов слов из текстового файла в формате word2vec (путь к нему нужно указать свой, так как выложить готовый файл невозможно из-за его размера). В результате работы программы будут созданы файлы с векторизованными предложениями, которые и загрузит код в lstm_ae.py.

Запуск тренировки автоэнкодера:

python lstm_ae.py --train 1

Расчет гистограмм распределения значений скрытых переменных:

python lstm_ae.py --estimate 1

Генерация случайного текста после выполнения первых двух этапов:

python lstm_ae.py --generate 1

Generative Adversarial Network для генерации предложений

Исключительно экспериментальный код.

Простейший вариант GAN реализован в gan_words.py.

В качестве входных данных берет, как и вышеописанные автоэнкодерные модели, файлы датасета, приготовленные prepare_vae_dataset.py.

Character sequence text entailment: продолжение символьной цепочки

Модель реализована на Python 2.x с использованием фреймворка Keras.

Обучение модели

Обучение реализовано в char_predictor.py.

Для обучения модели необходим текстовый файл (plain text, utf-8). Какую-либо нормализацию текста выполнять не требуется. Модель сама составит список всех используемых символов.

Путь к текстовому файла прописан в char_predictor.py. Там же стоит вторая важная настройка - количество сэмплов в обучающем датасете. Чем большое сэмплов, тем лучше модель будет работать, но время обучения будет расти пропорционально.

В ходе обучения программа сохраняет параметры модели на диске.

Для nb_patterns = 2000000 обучение с использованием GPU NVidia GTX 980 длится примерно 5 часов, с учетом 5 отбрасываемых эпох до срабатывания early stopping.

Проверка работы модели в консоли

Консольный генератор текста реализован в char_generator.py. Он загружает модельные данные из файлов, приготовленных в ходе обучения. далее можно вводить с клавиатуры цепочку символов (начало фразы), а модель выведет предполагаемое продолжение. Примерно так:

>: поздравляю с новы
поздравляю с новых настоящий собой мо

>: сяду на пенек, съем пиро
сяду на пенек, съем пиров накопления по нее 

>: цветы нужно поливать кажд
цветы нужно поливать каждое серодоразисте так

>: тише, мыши, кот на кры
тише, мыши, кот на крыше и высоких своей т

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.