Как создать бот-гороскоп в Telegram своими руками?
Бот-гороскоп — неплохой способ аккумулировать траф под последующий залив на амулеты, гадалок и прочую эзотерику. А бесплатный бот для гороскопов — лучшее решение. Даже если лить напрямую не получится — вы соберете базу пользователей, интересующихся мистикой. А это уже неплохо.
В сегодняшнем материале мы создадим бота с гороскопами для Telegram, научим его генерировать «предсказания» на основе фраз-шаблонов. Все это делается для того, чтобы время от времени подкидывать пользователям офферы с амулетами, гадалками и т.п. Подробнее про способы залива на эзотерику вы можете прочитать в материале.
*Спойлер: в самом конце расположен текстовик с исходным кодом.
С точки зрения алгоритмизации бот довольно простой — но ведь создание контента для гороскопов никогда и не было сложным делом. Итак, наш бот должен:
- Здороваться по имени (если указано).
- Анализировать сообщения от пользователя.
- Предлагать выбрать знак зодиака.
- Генерировать «предсказания» случайным образом на основе фраз-шаблонов из текстовиков (вместо баз данных мы возьмем именно текстовики — чтобы все было максимально простым в реализации).
- Реагировать на неизвестные команды просьбой написать /help.
- Выводить инструкцию при вводе команды /help.
Выглядит объемно, но на практике ничего сложного. Ниже мы рассмотрим каждый шаг алгоритма, чтобы все было максимально понятно. Если лень разбираться, можете просто скопировать код и шаблоны с фразами — бот будет работать.
Для лучшего понимания сути распишем то, как будет генерироваться «астрологический прогноз».Он будет состоять из 4 частей:
- Первая часть — предложение, задающее тон прогноза.
- Вторая часть — условие для потенциально возможной ситуации.
- Третья часть — решение возможной ситуации.
- Четвертая часть — предложение с еще одной ситуацией и ее решением.
Все эти части в случайном порядке перемешиваются между собой в полноценное «астрологическое повествование». В примере использовано по 5 вариантов фраз-шаблонов, но вы всегда сможете добавить в текстовики столько шаблонов, сколько вам будет нужно. Чем их больше — тем ниже вероятность, что один и тот же прогноз продублируется.
Теперь, когда мы поняли принцип работы алгоритма бота-гороскопа — перейдем к его созданию.
Начнем с настройки сервера, создания бот-аккаунта в Telegram и присвоения боту токента для доступа. Для этого:
1. Создаем аккаунт на платформеpythonanywhere.
2. Инициируем Bash-консоль, ждем пока сервер завершит автонастройку.
3. Подгружаем pyTelegramBotAPI — необходимый для подключения к API Telegram модуль. Для этого:
pip3.9 install —user pyTelegramBotAPI
*3.9 — поточная версия Python к моменту публикации материала. Учтите, что она может измениться к моменту, когда вы будете читать статью.
4. Стучим в личку бота @BotFather— делаем все по инструкции. Получаем токен доступа. Сохраняем его отдельно.
5. В любом текстовом редакторе пишем следующий код:
Подключаем модуль случайных чисел
import random#
Подключаем модуль для Телеграма
import telebot
# Указываем токенbot = telebot.TeleBot(ТОКЕН СЮДА’)
# Импортируем типы из модуля, чтобы создавать кнопки
from telebot import types
# Заготовки для трёх предложений
with open(«first.txt», «r») as f1:
first = f1.readlines()
with open(«second.txt», «r») as f2:
second = f2.readlines()
with open(«second_add.txt», «r») as f2_add:
second_add = f2_add.readlines()
with open(«third.txt», «r») as f3:
third = f3.readlines()
# Метод, который получает сообщения и обрабатывает их
@bot.message_handler(content_types=[‘text’])
def get_text_messages(message):
# Если написали «Привет»
if message.text == «Привет»:
# Пишем приветствие
bot.send_message(message.from_user.id, «Привет, <0.first_name>! \n Cейчас я расскажу тебе гороскоп на сегодня.».format(message.from_user))
# Готовим кнопки
keyboard = types.InlineKeyboardMarkup()
# По очереди готовим текст и обработчик для каждого знака зодиака
key_oven = types.InlineKeyboardButton(text=’♈ Овен ♈’, callback_data=’zodiac’)
# И добавляем кнопку на экран
keyboard.add(key_oven)
key_telec = types.InlineKeyboardButton(text=’♉ Телец ♉’, callback_data=’zodiac’)
keyboard.add(key_telec)
key_bliznecy = types.InlineKeyboardButton(text=’♊ Близнецы ♊’, callback_data=’zodiac’)
keyboard.add(key_bliznecy)
key_rak = types.InlineKeyboardButton(text=’♋ Рак ♋’, callback_data=’zodiac’)
keyboard.add(key_rak)
key_lev = types.InlineKeyboardButton(text=’♌ Лев ♌’, callback_data=’zodiac’)
keyboard.add(key_lev)
key_deva = types.InlineKeyboardButton(text=’♍ Дева ♍’, callback_data=’zodiac’)
keyboard.add(key_deva)
key_vesy = types.InlineKeyboardButton(text=’♎ Весы ♎’, callback_data=’zodiac’)
keyboard.add(key_vesy)
key_scorpion = types.InlineKeyboardButton(text=’♏ Скорпион ♏’, callback_data=’zodiac’)
keyboard.add(key_scorpion)key_strelec = types.InlineKeyboardButton(text=’♐ Стрелец ♐’, callback_data=’zodiac’)
keyboard.add(key_strelec)
key_kozerog = types.InlineKeyboardButton(text=’♑ Козерог ♑’, callback_data=’zodiac’)
keyboard.add(key_kozerog)
key_vodoley = types.InlineKeyboardButton(text=’♒ Водолей ♒’, callback_data=’zodiac’)
keyboard.add(key_vodoley)
key_ryby = types.InlineKeyboardButton(text=’♓ Рыбы ♓’, callback_data=’zodiac’)
keyboard.add(key_ryby)
# Показываем все кнопки сразу и пишем сообщение о выбореbot.send_message(message.from_user.id, text=’Выбери свой знак зодиака’, reply_markup=keyboard)
elif message.text == «/help»:
bot.send_message(message.from_user.id, «Напиши Привет»)
else:
bot.send_message(message.from_user.id, «Я тебя не понимаю. Напиши /help.»)
# Обработчик нажатий на кнопки
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
# Если нажали на одну из 12 кнопок — выводим гороскоп
if call.data == «zodiac»:
# Формируем гороскоп
msg = random.choice(first) + ‘ ‘ + random.choice(second) + ‘ ‘ + random.choice(second_add) + ‘ ‘ + random.choice(third)msg = msg.replace(«\n»,»»)
# Отправляем текст в Телеграм
bot.send_message(call.message.chat.id, msg)
# Запускаем постоянный опрос бота в Телеграмеbot.polling(none_stop=True, interval=0)
Через поиск (ctrl+F) по файлу, находим фрагментbot = telebot.TeleBot(ТОКЕН СЮДА’)— вставляем токен полученный в @BotFather.
Сохраняем текстовик как «bott.py».
6. Кладем скрипт в корень сервера.
9. Создаем файлы фразами-шаблонами. Для этого в любом текстовом редакторе пишем фразы-шаблоны по инструкции из раздела выше. Каждую фразу — с новой строки. И сохраняем 4 файла как:
- first.txt
- second.txt
- second_add.txt
- third.txt
Примеры файлов с фразами-шаблонами можно взять в конце статьи.
10. Загружаем файлы с фразами-шаблонами на сервер также, как файл python-скрипта из пункта 6.
6 no-code платформ машинного обучения
Построить алгоритм за минуту, перетаскивая объекты по экрану или быстро запрограммировать робота — все это возможно с помощью платформ для создания алгоритмов без кода.
По данным IDC, из-за сложности разработки машинное обучение внедрили только около 28% бизнесов в мире. 50% компаний тратят до 90 дней на создание одной модели. Для организаций и простых пользователей есть МL-платформы «без кода» с доступным интерфейсом.
Рассказываем о шести таких платформах.
#1. Google ML Kit
ML Kit — простая в управлении лаборатория SDK, которая позволяет внедрять МL на Android и iOS, независимо от опыта разработчиков в машинном обучении.
В марте 2021 года Google объявили, что платформа ML Kit стала общедоступной (до этого инструменты были на стадии бета-тестирования).
API-интерфейсы позволяют использовать модели TensorFlow Lite и Mobile Vision на смартфоне или планшете. API на устройстве обрабатывают датасеты быстро и будут доступны без интернета, облачные API работают на Google Cloud Platform. Google стремится постоянно пополнять список API.
ML Kit помогает внедрить в мобильные приложения обнаружение лиц, распознавание текста и речи, определение животных, растений, продуктов, отделение фона на фото, сканирование штрихкодов.
Одна из последних функций — возможность отделения фона на видео. API сегментации видео принимает входное изображение и создает маску вывода — слой поверх видео, который позволяет отделить людей/объекты от фона. Каждому пикселю маски назначается число с плавающей запятой в диапазоне [0,0, 1,0]. Чем ближе число к 1,0, тем выше вероятность, что пиксель представляет человека, и наоборот.
При помощи ML Kit были созданы приложения VSCO, PicsArt, EyeEm, Fishbrain. Один из первых пользователей внедрил несколько ML-функций в приложение для подсчета калорий. Оно собирает информацию с этикеток продуктов.
Стоимость: бесплатно.
#2. Fritz AI
Fritz AI — end-to-end-решение для создания и обучения моделей, а также генерирования наборов данных без кода. Оно доступно на Windows, Linux, MacOS, а также мобильных ОС.
В 2020 году компания привлекла на разработку $5 млн. У нее есть два продукта: Fritz AI for SnapML и Fritz AI for mobile. Первый — набор инструментов для создания моделей в Snapchat. Их используют креативные агентства, дизайнеры, художники.
Второй продукт — SDK для развертывания и обучения моделей на мобильных платформах, а также улучшения UX-приложений на основе реальных данных. Fritz AI for mobile позволяет создавать датасеты и тренировать модели. Есть возможность загрузки и аннотирования изображений, а также готовые к работе модели мобильного машинного обучения на основе наборов данных. Можно конвертировать модели для разных мобильных систем. Среди готовых систем — сегментация изображений, обнаружение объекта, маркировка изображений, наложение стилей, определение поз и положения объектов.
Доступны видеоуроки от самой платформы. Компания бесплатно выложила на сайте списки книг, статей и видео по работе с ML.
Стоимость: от $179 до $849 в месяц.
#3. DataRobot
Основатели компании ранее занимались исследованиями и моделированием вероятностей в страховании. Сначала наработки стартапа применялись, чтобы предсказать, кому достанется следующая награда «Грэмми» и кто умрет в «Игре престолов». Сейчас ПО устанавливают банки для определения кредитных рисков и борьбы с отмыванием денег, а больницы — для расчета вместимости при повторной госпитализации. Среди клиентов: Humana, Lenovo, Red Cross Blood Service, Мичиганский университет.
Компания создала несколько инструментов для корпоративных и частных нужд. Например, управляемый, гибридный и автоматизированный облачные сервисы. Можно выбрать готовые предобученные модели. Они разделены на 15+ сфер, включая банкинг, финтех, страхование и медицину, маркетинг, телекоммуникации, логистику.
Создатели подчеркивают, что инструменты на платформе доступны и разработчикам, и тем, кто далек от ML. Чтобы обучить модель, нужно выбрать цель, нажать большую кнопку «Пуск» и ждать, пока результат не появится в таблице. На это требуется от нескольких часов до месяца, в зависимости от задачи. В таблице доступна аналитика по обученным моделям, их эффективность и перечень возможных ошибок. Можно сравнить модели между собой.
Стоимость рассчитывается индивидуально. При регистрации сайт дарит $500 на расходы внутри платформы.
#4. What-If tool
Это небольшой, но занимательный проект от PAIR (People + AI Research). WIT или What-If Tool — алгоритм в виде плагина для работы с регрессионными ML-моделями. Можно делать предсказания и логические выводы на больших наборах данных, визуализируя результаты. Есть инструменты для повторного анализа, проверки производительности и «честности» алгоритма.
Основная цель WIT — обучение. С плагином можно работать через TensorBoard или в Jupyter Notebook и Colab. Чтобы использовать WIT в TensorBoard, нужны:
- модели с использованием API классификации, регрессии или прогнозирования.
- набор данных, который будет обрабатываться моделями. Он должен находиться в файле TFRecord, доступном веб-серверу TensorBoard.
Используя WIT, можно тестировать производительность, анализировать важность разных функций данных и визуализировать поведение модели в нескольких подмножествах входных данных. Интерфейс состоит из трех вкладок, которые можно переключать. Это редактор датасетов, регрессионные модели и модели бинарной классификации. На сайте есть пошаговая инструкция настройки датасетов и их анализа.
Стоимость: бесплатно.
#5. Teachable Machine
Бесплатный инструмент от Google, запущенный в 2017 году. Он позволяет создавать ML-модели в браузере за пару минут. Teachable Machine показывает ключевые аспекты ML: входные данные, точки данных, кластеризацию, алгоритмы в виде деревьев, процесс обучения.
Пользователи могут вводить примеры в разные категории для обучения алгоритма. После ввода данных они распределяются на категории изображения, звука и положения тела в пространстве. Можно использовать алгоритм только на устройстве, чтобы данные веб-камеры или микрофона не покидали компьютер.
Распознавание изображений и поз человеческого тела происходит в режиме реального времени, инструмент считывает данные с веб-камеры. Аудио принимается в форматах WAV и MP3.
На сайте доступны пошаговые уроки: как определить испорченный банан при помощи нейросетей или как распознать свист и хлопки в ладоши. Пользователи создали при помощи инструмента забавные мини-проекты. Например, Винс Мингпу превратил кусочек бумаги в контроллер для управления нарисованной змеей.
С помощью Teachable Machine создаются модели TensorFlow.js. Они совместимы со всеми платформами, где запущен javascript, поэтому работают с Glitch, P5.js, Node.js. Доступен экспорт моделей в разные форматы. Это открывает простор для экспериментов. При помощи Arduino и Teachable Machine можно создать даже обучаемого робота.
Стоимость: бесплатно.
#6. RapidMiner
Проект разделен на три части: веб-инструмент RapidMiner Go, программа для ПК RapidMiner Studio и образовательная грантовая программа RapidMiner Academy, которая сотрудничает с университетами.
Интерфейс простой — доступны функции перетаскивания, быстрое подключение к базам данных, корпоративному хранилищу и социальным сетям; модели визуализированы. Разработчики заверяют, что создать алгоритм можно в 5 кликов. Есть два режима — для продвинутых специалистов и тех, кто не знаком с разработкой. В библиотеке RapidMiner — более чем 1,5 тыс. предобученных алгоритмов. На сайте можно выбрать инструменты из 15+ категорий — страхование, IT, маркетинг, финтех, тяжелая промышленность и других.
Одна из целей компании — обучение. Для студентов и преподавателей аккредитованного университета бесплатно доступна образовательная лицензия RapidMiner Studio и RapidMiner AI Hub на один год. Эту лицензию нельзя использовать в коммерческих целях. Для ее получения достаточно заполнить форму на сайте.
Стоимость: месячная подписка на веб-инструмент RapidMiner — $10. За RapidMiner Studio — от $39 в месяц, но есть 30 бесплатных дней.
Как сделать робота своими руками в домашних условиях?
Компания Google осуществила детскую мечту многих людей и создала конструктор, из которого можно самостоятельно собрать робота. Причем речь идет не о безделушке с мотором и парой лампочек, потому что при должном старании конструктор будет обладать чем-то вроде искусственного интеллекта. Корпус робота можно сделать из бумаги, причем схема доступна бесплатно и ее нужно просто распечатать, вырезать и собрать. На начальном этапе программировать тоже не нужно, потому что исходный код тоже можно скачать. Правда для робота нужно будет купить «мозг» и специальное устройство, чтобы он мог обучаться новым командам. Выглядит так, что сборка робота займет много времени, но компания позиционирует свой конструктор как нечто простое и быстрое в освоении. Давайте изучим новую идею Google и выясним, насколько это правда?
Робот ALTO, которого можно собрать самому
Робот с искусственным интеллектом своими руками
Конструктор был представлен подразделением Google Creative Lab. Робот называется ALTO, что является сокращением от «A Little Teachable Object» (маленький обучаемый объект). Проект создан для того, чтобы люди смогли собрать робота на дому и получили базовые знания о машинном обучении. Машинным обучением называется умение искусственного интеллекта самостоятельно вырабатывать навыки выполнения новых задач. В ходе сборки робота ALTO, люди должны понять, как научить робота самостоятельно понимать и выполнять задачи. По крайней мере, компания Google на это надеется.
Интересный факт: ученые уверены, что в будущем большую часть ручного труда будут выполнять роботы. Чтобы не остаться без работы, людям необходимо уже сейчас изучать программирование, ведь роботами должен кто-то управлять. Так что знать, что такое машинное обучение и как оно работает, важно всем. И робот ALTO, возможно, сможет быстро ознакомить людей с этой темой.
Схема для создания корпуса робота из бумаги и исходный код программы для его работы можно найти на сайте Experiments with Google (кнопка Get the code). Но это еще не все, потому что для создания робота нужна электроника, которую нужно купить:
- Coral USB Accelerator — это устройство, которое включает в себя процессор Edge TPU. Он нужен для того, чтобы робот обладал способностью к машинному обучению. Его можно купить на Aliexpress;
- Raspberry Pi 4 — небольшой компьютер размером с банковскую карту. К нему можно будет подключить камеру, динамики и прочее оборудование, нужное для робота. Он тоже есть на Aliexpress.
Coral USB Accelerator и Raspberry Pi 4
Знаете ли вы, что роботов можно создавать даже изо льда? Посмотреть на такого робота можно по этой ссылке.
Программирование робота
Для обучения робота нужно будет использовать платформу TensorFlow, которая включает в себя инструменты для тренировки нейронных сетей (можно сказать, для создания искусственного интеллекта). Звучит сложно, да и цена устройства Coral USB Accelerator и компьютера Raspberry Pi 4 может озадачить. Но ведь речь идет о достаточно серьезном устройстве, в ходе создания которого человек получает навыки, которые могут пригодиться ему в высокотехнологичном будущем. Знание английского тоже обязательно, потому что инструкция по сборке робота ALTO и его настройке выложены на GitHub и не переведены на русский.
Робот ALTO может распознавать предметы и многое другое — главное, научить его этому
Представители Google считают, что робота можно научить выполнению самых разных задач. Самая простая из них — распознавание предметов. Если перед камерой робота поставить яблоко, он может поднять левую руку. А если поставить банан — правую. Это только самые банальные примеры, а на деле, полученные в ходе сборки робота знания, должны помочь в создании более навороченных устройств. Глядишь, кто-нибудь сможет даже разработать собственный робот-пылесос или создать охранную систему с распознаванием лиц.
Если вам интересны новости науки и технологий, подпишитесь на наш канал в Яндекс.Дзен. Там вы найдете материалы, которые не были опубликованы на сайте!
Многие люди ассоциируют будущее именно с роботами. Считается, что когда-нибудь они смогут ходить по улицам наравне с людьми и это будет вполне привычным явлением. На данный момент на улицах можно встретить разве что роботов-курьеров, и то редко. Одного из самых интересных роботов для доставки посылок недавно представила компания Hyundai. Он стал очень обсуждаемым — в чем заключается его главная особенность, можно почитать в этом материале.
Пишем Твиттер-бота, который предсказывает курс биткойна
Программист Огњен Гатало, автор статьи, перевод который мы публикуем сегодня, уже некоторое время интересуется криптовалютами. Особенно его занимает прогнозирование курса на ближайшие несколько дней. Он говорит, что испробовал некоторые алгоритмы, но в итоге у него сложилось ощущение, что ни один из подходов не позволяет с уверенностью давать краткосрочные прогнозы. Тогда он, сосредоточившись на лидере рынка — биткойне, решил поработать над собственным методом предсказания курсов. Предлагаемый им алгоритм, равно как и его реализация в виде твиттер-бота, конечно, с некоторыми изменениями, подходят и для работы с другими цифровыми валютами.
Общий обзор алгоритма и его реализации
Твиттер кажется мне удобной платформой для реализации проектов в сфере криптовалют, подобных моему. Тут можно, в частности, организовать удобное взаимодействие пользователей и программ, для которых открыты собственные учётные записи. Именно поэтому я решил оформить мою разработку в виде бота для Твиттера. В частности, мой бот должен был, каждые 2 часа, твитить прогноз стоимости биткойна на следующие N дней. N — это период в днях, прогноз на который интересует больше всего людей, запросивших у бота соответствующую информацию. Так, например, если 3 человека сделали запрос на 5-дневный прогноз, а 7 человек интересует прогноз на 2 дня, бот твитнет прогноз на 2 дня.
Бот реализован на Node.js, разработал я его довольно быстро. Некоторое время занял поиск источников исторических и текущих данных по ценам и подбор способов работы с ними. Главный вопрос заключался в алгоритме. В итоге я решил, что будут использовать метод K ближайших соседей в комбинации с ещё некоторыми вещами.
Рассматриваемый метод прогнозирования цены включает в себя следующую последовательность действий:
- Сбор запросов пользователей на очередной прогноз.
- Нахождение длительности прогноза, за которой обращаются чаще всего.
- Получение текущей стоимости биткойна.
- Нахождение K(10) ближайших дат в последние 2 месяца, в которых цена биткойна была наиболее сильно похожа на его текущую цену.
- Для цены на каждую из найденных дат ( PAST_DATE ), нахождение цены BTC через N дней после неё ( N_DAYS_AFTER_PAST_DATE ).
- Для каждой даты вычисление разницы между значениями цен N_DAYS_AFTER_PAST_DATE и PAST_DATE .
- Сложение всех найденных разниц и деление того, что получилось, на K .
- Получение результата в видео среднего изменения курса биткойна между всеми группами значений PAST_DATE и N_DAYS_AFTER_PAST_DATE . Этот результат используется при формировании твита.
Шаг 1. Сбор запросов пользователей
На этом шаге, с помощью модуля twit и API Twitter, выполняется поиск твитов, которые содержат следующую конструкцию: @coin_instinct Predict for <number> days . Затем из найденных твитов извлекаются числа, символизирующие число дней, на которое пользователи хотят получить прогноз, и создаётся массив данных чисел.
Шаг 2. Нахождение длительности прогноза, которая интересует больше всего пользователей
Когда бот, раз в 2 часа, твитит прогноз, число дней, которое использовалось в этом прогнозе, сохраняется в чёрном списке, представленном массивом. Этот массив содержит длительности прогнозов для 4-х последних твитов. Такой подход позволяет избежать частого появления похожих твитов и выдачи тех же прогнозов, которые уже были твитнуты в последние 8 часов.
Представленная здесь функция очень проста. Она выбирает наиболее часто запрашиваемые длительности прогнозов из массива чисел. Если найденное число уже есть в blackListArr , функция возвращает второй наиболее запрашиваемый прогноз, и так далее. Если все запрошенные длительности прогнозов уже есть в чёрном списке — тогда бот выдаёт предсказание на случайно выбранный период.
Шаг 3. Получение текущей стоимости биткойна
Узнать текущую стоимость биткойна можно с использованием API blockchain.info. Полученное значение сохраняется в переменной.
Эта функция запускается через 2 минуты после начала работы алгоритма.
Шаг 4. Поиск K ближайших соседей
Тут я не привожу описание всех используемых на данном шаге функций, таких, как выполнение запроса к API Coindesk для загрузки данных, необходимых для показателей PAST_DATE и N_DAYS_AFTER_PAST_DATE . Здесь показан поиск ближайших соседей, основанный на том, насколько они похожи на текущее значение цены. Полный код проекта можно найти в моём GitHub-репозитории.
Так как мы вычислили разницы между всем ценами на биткойн в последние 2 месяца и его текущей стоимостью, нам нужно найти те даты, в которых эти значения ближе всего к 0. Поэтому мы сначала вызываем Math.abs для всех свойств similatityScore объектов, которые входят в массив, а затем сортируем массив в нисходящем порядке, опираясь на эти свойства.
На данном этапе можно найти первые 10 дат, в которых цена биткойна была ближе всего к его текущей цене.
Шаг 5. Формирование массива результатов
На данном шаге мы получим массив объектов, каждый из которых содержит свойства start и end . Свойство start представляет цену биткойна на некую из предыдущих дат, свойство end используется для хранения цены через N дней после этого дня. Основываясь на этих данных, мы можем сформировать прогноз, сделать вывод о том, вырастет цена или упадёт.
Тут мы проходим по всем элементам из kNearest и получаем данные для конкретных дат, после чего сохраняем полученные результаты в массиве finalResults и возвращаем его.
Шаг 6. Прогнозирование
Теперь осталось лишь сформировать прогноз. Делается это с помощью следующей функции.
Вот и всё, прогноз сформирован, осталось лишь его твитнуть, соответствующим образом оформив.
Итоги
Если вы хотите познакомиться с моим ботом поближе — предлагаю заглянуть в вышеупомянутый репозиторий, в котором хранится полный код проекта. Кроме того, мне хотелось бы отметить, что в данном материале описан мой подход к предсказанию цены биткойна на ближайшие несколько дней, он всё ещё в разработке, поэтому если вам есть что сказать по поводу предложенного алгоритма — дайте мне знать. Прогнозы, которые делает бот, не всегда точны, однако я заметил, что в большинстве случаев предсказанное значение отличается от реального лишь на 100-200$. Так что, видимо, можно сказать, что бот обычно ошибается не так уж и сильно, особенно учитывая то, как безумно ведут себя курсы криптовалют.
Основная проблема описанного алгоритма заключается в том, что он анализирует только исторические данные по биткойну и делает прогнозы на их основе. Здесь пока нет механизма предсказания, например, резких падений цены. Я работаю над тем, чтобы учесть в прогнозе, скажем так, «человеческий фактор». Реализовать это планируется путём сбора, например, статей с веб-сайтов, проанализировав которые можно найти намёк на возможность резких изменений курса и добавить эти данные в уравнение.
Кстати, всё это время я рассказывал о боте, но так и не представил его вам. Для него открыт специальный аккаунт, coin_instinct. Можете твитнуть ему запрос на прогноз.
Уважаемые читатели! Занимаетесь ли вы разработкой ботов для твиттера или прогнозированием курсов криптовалют? Если да — просим поделиться опытом.