Напиши свой генератор текстов!
На страницу 1, 2, 3, 4  След.
Новая тема Написать ответ
# Ср Ноя 07, 2007 10:52 amВацлав Зарег.: 21.02.2006 ; Сообщ.: 4965Ответить с цитатой
Обычно я стараюсь писать только о том, на чем действительно "собаку съел". Так и на сей раз, я расскажу вам, как написать собственный генератор текстов, качественно превосходящий все имющиеся на рынке по скорости генерации, качеству генерации и грамматической верности
полученных текстов. Нет, я не буду спорить, многие публичные и даже бесплатные генераторы будут превосходить полученный вами скрипт по
наличию всяких мулечек, функций и прибамбасиков, но зато вы получите собственный генератор с открытым кодом и спокойно сможете дописать любые нужные вам функции.

Что вообще такое генератор текстов и зачем он нужен? Программное обеспечение, называемое "генератором текстов" служит для засирания
интернета, в общем-то. Но если мы отбросим идеологическую подоплеку, то нам он будет служить для создание неограниченного количества бредового, но релевантного текста, насыщенного кейвордами. И честно говоря, нет никаких законов или правил, запрещающих нам создавать и размещать безсмысленные страницы. Правда, и поисковым системам никто и ничто не может запретить забанить абсолютно любые страницы.

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

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

Таким образом, любой маломальски грамотный программист, знающий основы грамматики может написать алгоритм по 99% отсечению дорвеев построенных на "мешанине кейвордов", а действительно грамотный специалист или команда таковых, легко может вычислить и 90% реализаций более сложных текстов, построенных на алгоритме цепей Маркова, которые все же нарушают некоторые правила языка. А значит чем больше размер текста (или количество страниц), тем легче поймать "Марковку" за ботву. Еще раз повторюсь. Многие сеошники часто критикуют меня за излишнюю страсть к внутренним факторам и качеству контента, убеждая меня и себя, что "рулят ссылки и другие внутренние факторы". Да, это справедливая критика. Но мне просто нравится быть чуть на шаг впереди и не предполагать того, что инженеры Google глупее меня. Если понимаю я, как реализовать отсев доров на базе анализа контента, то почему это не понимают в гугле? Понимают, но пока что выгоднее и проще вести отсечение по внешним признакам (линк-спам, например). Но с темпами роста мощностей гугла и повышения скорости индексации и обнаружения уже сейчас дублей текста (ухудшающего судьбу агрегационных сплогов, например) стоит ожидать и возможности обнаружения "хренового контента" и на этапе индексации страницы.

Ладно, уйдем от совсем общей теории к более алгоритмической, до того, как перейдем к практике.

Итак, из чего состоит текст на английском языке (начнем мы именно с него, как с существенно лучше алгоритмизируемого, чем русский)? Из
предложений, вот удивительно! Из набора предложений, ведущих повествование на заданную тему. Из чего состоят предложения? Как и во многих языках из существительных, прилагательных, глаголов и наречий. В таком случае, задача по генерации текстов состоит из составления текста из набора предложений, в которых грамматически верно и логично увязаны части речи. Для понятия следующих моментов, примем терминологию:

Noun - имя существительное, ед. число
Nouns - имя существительное, мн. число
(тут поблагодарим бога за то, что в английском языке слова не изменяются по падежам)
Adj - имя прилагательное
Verb - глагол. С глаголами придется разобраться детальнее, как с ними приходится много маятья и при изучении английского языка. В английском языке существует пять форм глаголов. Да я знаю, что их всего три, но для нашей задачи их придется брать как пять. И учесть
еще и неправильные глаголы (ну с этим проще - скачайте где угодно таблицы Irregular verbs). Итак:

Verb1 - словарная или первая форма глагола [fuck]
Verb2, verb3 - вторая и третья формы глаголов. Обычно формируются по некоторым правилам с добавлением к первой формы окончания -ed. [fucked]
Verb4 - "инговая форма глагола" - формируется по набору правил, с добавлением окончания -ing [fucking]
Verb5 - форма глагола при которой по набору правил добавляется окончание -s [fucks]

Я сейчас не буду объяснять именно грамматического смысла всех этих форм глаголов и окончаний, поскольку нас в данной статье не
интересует изучение языка вообще, а только его "алгоритмизация на пальцах".

Теперь, поговорим немного о релевантности или тематичности текстов. То есть о нужном насыщении ключевыми словами и их формами. Опять
таки оговорюсь - плотность ключевой фразы в тексте практически не имеет значения, хотя желательно, чтобы она не переступала некий порог.

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

Все. Теория на этом закончена, переходим к практике, на примере создания адалтного генератора.

Нам понадобится:
1. Большой набор предложений из любого английского (лучше американского) текста, в котором мы заменим ВСЕ значимые слова на ТЭГИ частей речи:
Я вот просто для примера взял надпись на дне ноутбука: To reduce the risk of electric shock, do not remove cover (or back). Приводим эту фразу к виду:

To <verb1> the <noun> of <adj> <noun>, do not <verb1> <noun> (or <noun>). Возьмите вот еще что на заметку! Подавляющее число поисковых запросов серферов строится из конструкции ADJ + NOUN, т.е. прилагательное и существительное. Например, "Голые девки", "Большие черные сиськи" и так далее. Зачем нам это нужно? А вот зачем. В грамматике английского языка, почти перед каждым существительным может стоять описательное (или уточняющее) прилагательное. Как этим воспользоваться? Очень просто. Там где это возможно, убираем тэги <noun> и <nouns> и заменяем их на <adjnoun> и <adjnouns>. Так же поступаем и с последовательностями тэгов <adj> <noun> и <adj> <nouns>

2. Теперь нам понадобятся словарные базы "частей речи". Их нам понадобится две. Одна, нам будет нужна всегда и мы назовем ее "common" - база общеупотребимых в любом тексте существительных, прилагательных и глаголов во всех их формах. Не пугайтесь. Это только кажется задача сложной, но забить такую базу до приемлимого размера можно менее чем за сутки. Вторая база, которая нам понадобится - это база слов, принятых в данной тематике. В нашем примере, это база слов, которые часто встречаются в десках и иных околоэротических текстах. "Сиськи, письки, рты и прочие члены". Тут уж постарайтесь забить базу не только избитыми словами, но и поищите редко встречаемые синонимы из сленгов разных этнических и социальных групп - на такие низкочастотники можно будет поймать хороший урожай.

3. А теперь нам понадобится простейший скрипт, на любом языке, который наберет из первой базы случайную последовательность
предложений-конструкций (их называют граммары или лексемы) и ... тупо проведет замену тэгов на соответствующие им части речи. Все! По
сути, отличный генератор готов. Генератор, который будет порождать из конструкций типа:
To <verb1> the <adjnoun> of <adjnoun>, do not <verb1> <adjnoun> (or <adjnoun>) - следующие варианты:
To fuck the big amazing tits of hot blonde, do not suck wet pant (or fat stretched pussy)

Как вы понимаете, я перечислил лишь самые основы, из которых вы можете подчерпнуть массу идей, по созданию еще лучших алгоритмов.
Некоторые маленькие хитрости я опустил, но не из вредного желания сохранить секреты (мои новые генераторы построены на крайне сложных алгоритмах с привлечением и нейросетей и основ ИИ), а для того, чтобы еще раз пробудить ваше воображение.

Желаю удачи!
# Ср Ноя 07, 2007 12:41 pmdocker Зарег.: 20.05.2007 ; Сообщ.: 756Ответить с цитатой
Ааааа !!! Вацлав наконец выложил свой секрет, который его уже годами пытают Smile
Готовое ТЗ для доргена, который Вацлав мягко именует просто генератором Wink
А вообще ДМИ работает примерно по такому же принципу. Отличная статья!
# Ср Ноя 07, 2007 12:43 pmCabal Зарег.: 20.10.2007 ; Сообщ.: 1360Ответить с цитатой
Хотел написать много букф про то что это не програмное решение, а в осном гуманитарно-лингвистическое, что не каждый технически подкованный, но юзающий только базовый-школьнопозабытый английкий человек, справится с задачами о реализации которых ты решил скромно умолчать(написал просто "собираем" добавляем" и тд и тп), но подумал что всё это будет нудёж. Скажу просто - респегт и уважуха тебе мен. Обогатил ты меня не слабо.


Последний раз редактировалось: Cabal (Ср Ноя 07, 2007 2:31 pm), всего редактировалось 1 раз
# Ср Ноя 07, 2007 12:46 pmВацлав Зарег.: 21.02.2006 ; Сообщ.: 4965Ответить с цитатой
Докер, это вовсе не секрет о котором меня пытают Smile Эту инфу можно было нарыть еще четыре года назад, что я и сделал в свое время, а сейчас просто систематизированно попытался выдать всем желающим.

Кабал, да совершенно верно. И более сложные генераторы (которыми я пользуюсь и которые уже разрабатываю много лет) строятся больше не на технических знаниях, а на лингвистике (вне зависимости от языка - хоть английский, хоть итальянский Smile )

Когда я разгребу свои архивы и найду свои словарные базы от этого старого, но хорошего генератора, я их выложу в Open Source Smile И пусть все продавцы генераторов на меня злятся Smile
# Ср Ноя 07, 2007 12:53 pmВацлав Зарег.: 21.02.2006 ; Сообщ.: 4965Ответить с цитатой
В догонку:
Если найдутся адалтные партнерки, которые меня чем-то заинтересуют, я отдам им (для бесплатной раздачи адвертам) отличные рабочие версии доргенов Smile
# Ср Ноя 07, 2007 2:24 pmdocker Зарег.: 20.05.2007 ; Сообщ.: 756Ответить с цитатой
Просто я помню длинные ветки на мастере кажется, где тебя все упрашивали поделится твоим алго генерации текстов Smile
И я был бы совсем не против поюзать твои доргены Smile
# Ср Ноя 07, 2007 2:27 pmLi-Hua Зарег.: 25.12.2005 ; Сообщ.: 11544Ответить с цитатой
Спасибо за полезную статью, дает пищи к размышлениям.
# Чт Ноя 08, 2007 9:48 pmFlover Зарег.: 27.10.2007 ; Сообщ.: 57Ответить с цитатой
Отличная статья. Но как быть с русским языком? Ведь у нас от 12 словоформ у существительного и до 80-100 у глаголов.
# Пт Ноя 09, 2007 12:17 amuser00 Зарег.: 24.07.2006 ; Сообщ.: 717Ответить с цитатой
Интересный метод, спасибо Вацлаву.
Пусть это будет банально, но я пока не встречал более эффективного метода генерации текста, чем всем известные цепи Маркова.
# Пт Ноя 09, 2007 12:30 amMr Frod Зарег.: 06.03.2007 ; Сообщ.: 1275Ответить с цитатой
Вацлав, спасибо за интересную информацию.

user00, зачем тему спалил? Smile
# Пт Ноя 09, 2007 1:34 amChin Зарег.: 29.01.2007 ; Сообщ.: 2890Ответить с цитатой
Вацлав, примерно похожий алгоритм я объяснял одному своему толковому рефу (девушке), и даже озадачивал ее поисками баз слов (нашли совместно несколько баз, в т.ч. которая засветилась по дорвейным форумам - на едушном домене универ выложил)
И кстати неоднократно рекомендовал в т.ч. на паблик форумах делать тексты МЕНЬШЕЙ длины, т.к. их засечь труднее.
Эт я к чему - я с тобой согласен по всем пунктам Smile
Кстати на серче недавно пытались обсуждать генерацию по бинарным деревьям гилберта.
# Пт Ноя 09, 2007 5:31 amgenerator2003 Зарег.: 13.10.2007 ; Сообщ.: 21Ответить с цитатой
Вацлав, Скинь плз где можно поподробнее почитать по данной теме.
А какой механизм используется при синонимайзинге?
При тупо замене текст получится нечитаемым опиши плз примерный алгоритм

PS Пост отличный
# Пт Ноя 09, 2007 4:12 pmsevian Зарег.: 20.08.2007 ; Сообщ.: 40Ответить с цитатой
Цитата:
Потому что я верю, что рано или поздно Google научится определять сначала и грамматическую правильность текстов, а впоследствии и смысловую тоже. Грамматику умеет проверять примитивный Word, так кто сказал, что гугл не сможет того же? Помимо этого, грамматически правильные тексты труднее поддаются статистическому анализу.


Я думаю если сравнить грамматическую правильность текстов людей и "генераторов", то в общей массе выиграют "генераторы".
# Пт Ноя 09, 2007 4:58 pmBrokenBrake Зарег.: 16.02.2007 ; Сообщ.: 3432Ответить с цитатой
sevian, кстати, да Smile запросто.
# Пт Ноя 09, 2007 9:28 pmChin Зарег.: 29.01.2007 ; Сообщ.: 2890Ответить с цитатой
sevian, для серьезных сайтов с серьезным бизнес-трафиком тексты пишут специальные люди Wink
Новая тема Написать ответ    ГЛАВНАЯ ~ ПОЛЕЗНЫЕ СТАТЬИ
 На страницу 1, 2, 3, 4  След.
Любое использование материалов, размещенных на ArmadaBoard.com, без разрешения владельцев ArmadaBoard.com запрещено.