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

More Decks by CodeFest

Other Decks in Technology

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