Как стать автором
Обновить

Комментарии 6

Поздравляю, Вы открыли для себя генерацию текстов при помощи цепей Маркова!

  • Цепь Маркова — это последовательность событий, где каждое новое событие зависит только от предыдущего. Например, после одного слова может стоять другое слово. 

  • Существуют алгоритмы, которые способны генерировать текст на основании цепей Маркова. Они изучают, какие связи могут быть между словами, и потом проходят по этим связям и составляют новый текст. 

  • Для нашей работы алгоритму всегда нужен исходный текст (он же корпус) — глядя на этот текст, алгоритм поймёт, какие слова обычно идут друг за другом.

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

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Получилась модель N-gram, где N - варируется динамически в процессе тренировки. Возможно, знающие люди подскажут, где тут недостаток. Я помню лишь, что существует проблема smoothing - определения вероятности цепочки, которая не встречалась во время тренировки. Правильно выбраный smoothing значительно влияет на качество модели.

Я делал что-то подобное, но мой алгоритм анализировал целые слова и читабельный текст получался гораздо быстрее. Л

Например, у нас есть текст ABCABD. Из этого текста можно выделить следующие последовательности из двух символов: AB, BC, CA, AB, BD. Здесь видно что последовательность AB встречается два раза, а за этой последовательностью в каждом случае следуют разные символы. Такая ситуация считается конфликтом который необходимо разрешить. Для этого создаются новые последовательности символов: ABC и ABD.

Это Byte pair encoding :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории