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

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

16b6c87229eaf58768d25ed7b2bbbf52?s=47 CodeFest
April 05, 2019

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

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

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

16b6c87229eaf58768d25ed7b2bbbf52?s=128

CodeFest

April 05, 2019
Tweet

Transcript

  1. Имитатор поэта, или как Пушкин писал бы через 200 лет

    Анна Мосолова Аналитик Data Monsters
  2. Classic AI 2 https://classic.sberbank.ai/description

  3. ПЕРВЫЙ ПОДХОД 3

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

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

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

  7. Тематическое моделирование 7 Алгоритмы LDA ARTM PLSA https://radimrehurek.com/gensim/ https://bigartm.readthedocs.io/en/stable/

  8. Тематическое моделирование 8 Тема Слова по теме + тема Тематическая

    модель LDA + +
  9. 9 Автор Тема Подбор слов по теме Выдача окончательного варианта

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

  11. Аугментация синонимами 11 Аугментация предложения в 8 раз с изменением

    25% слов
  12. Аугментация из дистрибутивных тезаурусов 12 https://rusvectores.org/ru/similar/ Холодный

  13. Аугментация переводом 13 Can’t wait for the spring to come

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

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

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

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

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

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

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

  21. Тематическое моделирование: применение 21 https://clck.ru/FNBjv https://clck.ru/FNBPZ Кластеризация документов Информационный поиск

    Классификация интентов в чат-ботах
  22. Аугментация текстов: применение 22 Копирайтинг Многообразие ответов чат-ботов Увеличение малых

    объемов данных
  23. Переранжирование по асессорской разметке: применение 23 Коррекция ответов чат-бота

  24. ВТОРОЙ ПОДХОД 24

  25. Второй подход 25 Первая строка Вторая строка Третья строка Четвертая

    строка Семантический поиск Генерация
  26. Семантический поиск 26 Annoy Тема + Первая строка Третья строка

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

    Рентгеноэлектрокардиографический word2vec fasttext ? рентгено + электро + кардио + графический Использованная модель: fasttext, cbow, Araneum https://rusvectores.org/ru/models/
  28. Annoy 28 Алгоритм приблизительного поиска ближайших соседей

  29. Генерация в рифму 29 Первая (или третья) строка Существительные Глаголы

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

    работает, но недостаточно хорошо. Среднее качество – 4 из 5 Решение: • Попробовать информационный поиск везде?
  31. ТРЕТИЙ ПОДХОД 31

  32. Третий подход 32 Первая строка Вторая строка Третья строка Четвертая

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

    строка Первая строка Третья строка Первая строка Третья строка Первая строка Третья строка Первая строка Третья строка + + https://allennlp.org/elmo Использованная модель – ELMo на Wikipedia http://docs.deeppavlov.ai/en/latest/intro/pretrained_vectors.html
  34. ELMo 34

  35. ELMo 35

  36. Фонетический поиск 36 Фонемные эмбеддинги Бинарное представление ударных и безударных

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

  38. Конец 38 Среднее качество – 3,8 из 5

  39. Итоги 39 • Получено 3 новых подхода к автоматической генерации

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

    Мария Боровикова Анастасия Малышева
  41. Полезные ссылки 41 https://radimrehurek.com/gensim/ https://bigartm.readthedocs.io/en/stable/ https://rusvectores.org/ru/ https://github.com/nsu-ai/russian_g2p https://fasttext.cc https://github.com/spotify/annoy https://github.com/yutkin/Lenta.Ru-News-Dataset

    https://allennlp.org/elmo http://docs.deeppavlov.ai/en/latest/intro/pretrained_vectors.html https://github.com/nsu-ai/pushkin-not-pushkin
  42. Анна Мосолова Аналитик DataMonsters Вопросы? a.mosolova333@gmail.com @anyabelk