Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeFest 2019. Анна Мосолова (Data Monsters) — Имитатор поэта, или как Пушкин писал бы через 200 лет

CodeFest
April 05, 2019

CodeFest 2019. Анна Мосолова (Data Monsters) — Имитатор поэта, или как Пушкин писал бы через 200 лет

Доклад посвящён описанию двух алгоритмов работы автопоэта для русского языка, изначально создававшегося для соревнования, а потом ставшего чем-то большим. Первая часть рассказа будет о первом алгоритме автопоэта, который осуществлял поиск ключевых слов с помощью тематической модели LDA, обученной на корпусе википедии, подставлял их всеми возможными способами в рамках морфологических характеристик слов в исходные стихотворения автора и затем ранжировал по приближенности ритмы и рифмы к оригинальному стихотворению автора.

Вторая часть представит новый подход к созданию автопоэта, где это задание представляется как задача информационного поиска. Эта версия сначала находит в новостном корпусе все семантически близкие строчки к строкам исходного стихотворения автора с помощью эмбеддингов eLMO и метода k-ближайших соседей и из двух наиболее близких строит первую и третью строки будущего стихотворения, затем в корпусе идёт поиск наиболее фонетически близких строчек к двум уже полученным, и две самые близкие образуют вторую и третью строки. Таких вариантов генерируется несколько, и затем, с помощью логистической регрессии, осуществляется ранжирование получившихся стихотворений, и самое похожее на заданную тему выдаётся как итоговый вариант.

CodeFest

April 05, 2019
Tweet

More Decks by CodeFest

Other Decks in Technology

Transcript

  1. Первый подход 4 Автор Тема Подбор слов по теме Выдача

    окончательного варианта Выбор лучшего стихотворения после замены Замена слов в стихотворении автора
  2. 5 Автор Тема Подбор слов по теме Выдача окончательного варианта

    Выбор лучшего стихотворения после замены Замена слов в стихотворении автора Первый подход
  3. 9 Автор Тема Подбор слов по теме Выдача окончательного варианта

    Выбор лучшего стихотворения после замены Замена слов в стихотворении автора Первый подход
  4. Аугментация переводом 13 Can’t wait for the spring to come

    Не могу дождаться прихода весны Не могу дождаться прихода пружины
  5. Замена слов в стихотворении автора 14 Слова по теме Корпус

    стихотворений Аугментатор Новая лексика Проверка ритма + Сгенерированные стихотворения Имя автора Стихотворение автора
  6. 15 Автор Тема Подбор слов по теме Выдача окончательного варианта

    Выбор лучшего стихотворения после замены Замена слов в стихотворении автора Первый подход
  7. Выбор лучшего стихотворения после замены 16 Акцентор: • А.А. Зализняк,

    Грамматический словарь русского языка • Морфотеги Пример: корова коро+ва Транскриптор: • Адаптированные правила трансформации фонем из книги Б.М. Лобанов, Цирульник Л.И., «Компьютерный синтез и клонирование речи» Пример: корова K A R O 0 V A https://github.com/nsu-ai/russian_g2p
  8. Выбор лучшего стихотворения после замены 17 Исходное стихотворение Сгенерированные стихотворения

    Структура ударных и безударных слогов Последние фонемы строки + Отбор наиболее похожих структур Итоговое стихотворение
  9. Переранжирование по асессорской разметке 18 Логистическая регрессия 30000 стихотворений с

    темой и оценками асессоров Сгенерированные стихотворения Тема Стихотворение с самой высокой оценкой Выбор лучшего стихотворения после замены
  10. Это конец? 19 О хорошем: • Среднее время работы –

    5 секунд • Легковесный Проблема: • Недостаточное высокое качество – средняя оценка за стихотворение 2,7 из 5 Решение: • Новый подход: информационный поиск
  11. Семантический поиск 26 Annoy Тема + Первая строка Третья строка

    Первая строка Третья строка Первая строка Третья строка Первая строка Третья строка Первая строка Третья строка + + https://fasttext.cc https://github.com/spotify/annoy https://github.com/yutkin/Lenta.Ru-News-Dataset
  12. Fasttext 27 Эмбеддинг предложения = среднее эмбеддингов слов в предложении

    Рентгеноэлектрокардиографический word2vec fasttext ? рентгено + электро + кардио + графический Использованная модель: fasttext, cbow, Araneum https://rusvectores.org/ru/models/
  13. Генерация в рифму 29 Первая (или третья) строка Существительные Глаголы

    Прилагательные Замена с сохранением морфологических характеристик и состава гласных Самые похожие по рифме строки (теперь вторая (или четвертая))
  14. Может, это конец? 30 И снова нет! Проблема: • Генерация

    работает, но недостаточно хорошо. Среднее качество – 4 из 5 Решение: • Попробовать информационный поиск везде?
  15. Третий подход 32 Первая строка Вторая строка Третья строка Четвертая

    строка Семантический поиск Фонетический поиск
  16. Семантический поиск [2] 33 Annoy Тема + Первая строка Третья

    строка Первая строка Третья строка Первая строка Третья строка Первая строка Третья строка Первая строка Третья строка + + https://allennlp.org/elmo Использованная модель – ELMo на Wikipedia http://docs.deeppavlov.ai/en/latest/intro/pretrained_vectors.html
  17. Фонетический поиск 36 Фонемные эмбеддинги Бинарное представление ударных и безударных

    гласных k ближайших соседей Annoy Ближайшие строки Первая (или третья) строка Самые близкие строки (вторая или четвертая) по ритму и рифме Первая (или третья) строка
  18. Итоги 39 • Получено 3 новых подхода к автоматической генерации

    стихотворений • Опробовано на практике множество алгоритмов, которые могут применяться в различных задачах NLP • Можно не сочинять стихи самому - https://github.com/nsu-ai/pushkin-not-pushkin