/tinkoff-util

test for tinkoff dl

Primary LanguagePython

tinkoff-util

Задание по программированию от Тинькофф Поколение

Напишите утилиту, которая на основе заданных текстов генерирует новые.

Моё решение основано на:

  1. Word2Vec, обученный на книгах Достоевского
  2. XGBClassifier, который на вход получает эмбэдинги от w2v и учится на предсказание последнего слова предложения

Подробнее:

  • Токенизирую с помощью gensim, использую stop-words
  • Word2Vec, предобученный на "Игроке", "Идиоте" и "Преступлении и наказании" Достоевского Ф.М.
  • XGBClassifier принимает на вход предложения без последнего слова, переведённые в эмбеддинги с помощью усреднения (ф-я sent2vec), и предсказывает последнее слово предложения (а точнее его индекс в словаре уникальных слов токенизированного текста)
  • Генерация происходит итеративно: текст который скармливается также токенизируется, к нему по одному генерерируется и добавляется новое слово
  • Добавил argparse
  • В конце модель ставит три точки, потому что ей есть что еще сказать...

Usage:

  • python train.py --input_dir texts
  • python generate.py --prefix "your text" --length n

UPD: passed