воскресенье, 10 мая 2009 г.

Генератор текста на основе цепей Маркова

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

Где-то прочитал о том, что наверное если бы Марков узнал как применяется его метод, именно для генерации текста он бы очень удивился. Определение можно почитать здесь. Если вы хорошо владеете высшей математикой то это может вам помочь.

Принцип генерации текста на основе цепей Маркова довольно не сложный метод, как может показаться в начале. На примере данного текста постараюсь пояснить.
Привет всем, кто хочет делать дорвеи, хочет генерировать текст
Вот такое простенькое предложение поможет сейчас нам:) Вначале по какому-то принципу выбирается начальное слово. Это может быть как случайное слово из всего текста, так и специально заданное - зависит от алгоритма. Далее проверяется весь текст на наличие этого слова.

Вот допустим у нас слово выберется случайным образом и это будет кто. Так как построение предложений в русском языке ведутся по определенным правилам, то некоторые слова могут идти после других, а некоторые нет. Проще сказать, что после слова делать может идти слово дорвеи, сайт, интернет проект но не как не программировать, кодить. Правила русского языка - раздел морфология (нет конечно в отдельных ситуациях может и такое использоваться).

Вот по этому методу и берется слово которое находится после нужного. Это не плохой вариант построение правильный с точки зрения морфологии предложений, но текст будет конечно бредовый и бессмысленный.

Вернемся назад, как помните было выбрано слово кто. Таким образом находим все слова которые идут за ним, в нашем случае после слова
кто
идет хочет. В итоге будет напечатано:
кто хочет
Идем далее, теперь мы уже ориентируемся на слово хочет и ищем его наличие в тексте. После того как нашли все эти слова в тексте, а у нас их два. Запоминается по слову после, это делать и генерировать. Далее выбираем случайным образом или по алгоритму одно слово. Допустим генерировать и вписываем его в предложение. Получаем:
кто хочет генерировать
Теперь мы ориентируемся на слово генерировать и ищем его в тексте И так далее пока допустим не наберем нужное количество слов или не выполнится какое-то условие.

Вот был объяснен принцип генерации текста. Надеюсь, что все предельно ясно изложил :)

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

Недостатки большая нагрузка на процессор, долгое время генерации страницы. Так как по методу приходиться каждый раз искать слово в тексте и сверять его. Нужны также ресурсы памяти что бы хранить слова (особенно если первоначальный текст очень большой). Малая уникальность генерированного текста при большом количестве уникальных слов, и малом объеме первоначального текста.

Мною был разработан скрипт на php - генерации текста. Писал ради спортивного интереса, для опыта кодинга на php и что бы выложить на блоге.

Вот примерный результат работы. Допустим возьмем текст предоставленный wikipedia
Дорвей (англ. doorway) — в SEO, сайт или веб-страница, ориентированные на конкретный поисковый запрос (либо группу запросов) и созданные с целью занять высокое место среди результатов выдачи (SERP), генерируемых поисковыми системами по данным запросам, за счет повышенной плотности содержания ключевых слов и правильного использования важных для ранжирования факторов.

и сгенерируем что нибудь на 200 слов :)
doorway — в seo сайт или веб страница ориентированные на. Конкретный поисковый запрос либо группу запросов и созданные с целью. Занять высокое место среди результатов выдачи serp генерируемых поисковыми системами. По данным запросам за счет повышенной плотности содержания ключевых слов. И созданные с целью занять высокое место среди результатов выдачи. Serp генерируемых поисковыми системами по данным запросам за счет повышенной. Плотности содержания ключевых слов и созданные с целью занять высокое. Место среди результатов выдачи serp генерируемых поисковыми системами по данным. Запросам за счет повышенной плотности содержания ключевых слов и созданные. С целью занять высокое место среди результатов выдачи serp генерируемых. Поисковыми системами по данным запросам за счет повышенной плотности содержания. Ключевых слов и правильного использования важных для ранжирования факторов дорвей. Англ doorway — в seo сайт или веб страница ориентированные. На конкретный поисковый запрос либо группу запросов и созданные с. Целью занять высокое место среди результатов выдачи serp генерируемых поисковыми. Системами по данным запросам за счет повышенной плотности содержания ключевых. Слов и созданные с целью занять высокое место среди результатов. Выдачи serp генерируемых поисковыми системами по данным запросам за счет. Повышенной плотности содержания ключевых слов и правильного использования важных для. Ранжирования факторов дорвей англ doorway — в seo сайт


Как видим текст немного похож. Это связано с тем, что начальный текст не сильно большой и в нем много уникальных слов. Для большей уникальности нужно, больший объем слов.
Скрипт разбивает текст на предложения по 10 слов. Новое предложение пишит с большой буквы. Можно задать нужное количество слов.
Скрипт тут

3 комментария:

Madness_Lvov комментирует...

За генератор спасибо.
Но нафига кодировать было? )

Zaporozhskiy_student комментирует...

Так раскодируйте... :)

Анонимный комментирует...

Это просто мега приват такой закодированый :)) Респект за скрипт - пойдет в мой дорген.