Пособие по практике программирования

Алгоритм цепей Маркова


Элегантный способ выполнить подобную обработку - использовать технику, известную как алгоритм цепей Маркова. Ввод можно представить себе как последовательность перекрывающихся фраз; алгоритм разделяет каждую фразу на две части: префикс, состоящий из нескольких слов, и следующее за ним слово — суффикс (или окончание). Алгоритм цепей Маркова создает выходные фразы, выбирая случайным образом суффикс, следующий за префиксом; все это в соответствии со статистикой текста-оригинала (в нашем случае). Хорошо выглядят фразы из трех слов, когда префикс из двух слов используется для подбора слова-суффикса:

присвоить w, и w2 значения двух первых слов текста
печатать W-, и w2
цикл:
случайным образом выбрать w3 из слов,
следующих за префиксом w, w2 в тексте
печатать w3
заменить да/ и w2 на w2 и w-s
повторить цикл

Для иллюстрации сгенерируем случайный текст, основываясь на нескольких предложениях из эпиграфа к этой главе и используя префикс из двух слов:

Show your flowcharts and conceal your tables and I will be mystified. Show your tables and your flowcharts will be obvious, (end)


Вот несколько пар слов, взятых из этого отрывка, и слова, которые следуют за ними:



Содержание раздела