Факты о твиттер-ботах.
Всё лежит на github:
- Прослойка для взаимодействия с твиттером - кстати, мой первый Open Source проект.
- Оркестровка для ботов
Оркестровка
Оркестровкой занялся потому что перестало хватать бесплатных часов в Heroku. Она позволяет наклепать бота вообще без кода, достаточно указать в конфигурации:
- Id базы в redis.
- Шаблон фразы для твитов бота.
- Морфологический фильтр слов, пригодных для подстановки.
Есть два вида ботов:
- Reader пишет всю свою ленту в базу Redis. Reader был один - мой личный аккаунт.
- Writer’ы из неё читают и делают у себя пометку до куда дочитали.
Reader подчищает свою базу, удаляя прочитанные всеми Writer’ами твиты. Ферма живёт автономно, поскольку источник слов - самовосстанавливающийся (лента твиттера вечно какую-то дичь несёт). Чем-то мне это напоминает автоматизированные текстовые рисовач-треды с 0chan.
Технологии: python 2.7, Redis, OpenVZ, Dictator
Не представляю сколько места и памяти все эти боты жрали, если бы я пытался запихать их в docker. Сейчас: ≈2гб, все базы - 11мб.
Боты
Ныне все не работают.
- Первый бот. Я беспокоился, что он кого-нибудь обидит.
- Это когда в жопу …. Автор идеи - @hpstrsx.
- Программировать надо. Сделан на другом движке на Golang, больше клиент твиттера, чем бот. У него есть бэкенд и фронтенд. У него есть чёрный список паттернов, потому что люди годами пишут одно и то же в твиттер, но этого недостаточно, требуется ручная модерация. Если постить абсолютно всё - выйдет Coding Tips System.
- Гарри Поттер и Случайные Твиты выискивает в твитах паттерн из двух слов. На выходе получается что-то похожее на названия книг про Гарри Поттера.
- Скучный секизм - получилось однообразно и не смешно.
- Бот, отслеживающий воровство твитов - я его натравил на лепразориум, они быстро забанили и бота и мой основной аккаунт до кучи.
- Скрипт для удаления всех своих твитов. С помощью API Вы можете скачать только последние 3200 твитов, поэтому удалить все свои твиты не получится. С помощью сторонних сервисов вы раздадите им доступы к вашему аккаунту, что тоже не очень хорошо. В настройках учётной записи можно скачать архив со всеми данными по ней, а этот скрипт, использует этот архив для удаления твитов. Занимает обычно пару дней.
- Названия для твиттера - Генерация и Слабоумие. В словаре, используемом этим ботом было много ГлавПромСнабРыбы.
Морфология
- Всё началось с того, что я кормил цепям маркова различные куски текста, перемешивая их с твиттером. Саша Лавкрафт Конь, Феминистки и Погром. Но боты, использующие цепи Маркова создают ≈5% забавных текстов, поэтому никому не интересны.
- Я стесняюсь написать NLP в резюме, хотя это интересная для меня тема.
- Для работы с склонением слов я использую pymorphy2. Лучшая библиотека для русского языка.
- Датасеты NLTK много весят, поэтому я его не использовал.
Твиттер
- У твиттера удобный API.
- У твиттера удобная регистрация аккаунтов. Она позволяет обойтись пин-кодом из браузера для подписывания пользователя на приложение, можно не разворачивать сервис для авторизации пользователей.
- В документации твиттера было сказано, что они приветствуют ботов, если это полезно или нравится людям. А теперь они не дают зарегистрировать аккаунт разработчика.
Сборище фактов
- Монетизация everyword-ботов маловероятна, аудитория растёт медленно. Пустому аккаунту нечем зацепить читателя, поэтому перед тем публикацией нужно нагенерить хотя бы 100-200 твитов. 5-6 ретвитов тысячников в первую неделю существования бота решают его дальнейшую судьбу. Если за первую неделю бот не набрал сотню читателей, то так в её пределах крутиться и будет.
- Как-то раз я изменил источник на слова песен гражданской обороны, но это всем быстро надоело.
- Вообще интерес к ботам возник из-за работы, где некоторые действия я автоматизировал с помощью xdotool и из World of Warcraft на пиратском сервере, где я сделал себе кликер.
- Периодически люди думают, что бот - реальный человек который сутками написывает и написывает.
- Лебедев начал постить однообразную шаблонную херню без смысла раньше.
- Каждый ≈700й твит написан ручками под настроение.
- Один из самых важных твитов