Что умеет Telegram bot

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

В данной статье я расскажу, как можно создать такого небольшого чат-бота в Telegram. Он сможет говорить на общие темы: погода, досуг и т.д. В статье будет много ссылок на дополнительные материалы, они позволят более глубоко погрузиться в тему NLP и создания ботов в Telegram. Также в конце я оставлю предложения по усовершенствованию разработанного чат-бота.

Весь код написан на языке Python.

Для того, чтобы создать бота в Telegram необходимо написать боту по имени BotFather.

ModuleBot – телеграм-бот для салонов красоты. Что он умеет и как с ним работать? Руководство

С помощью BotFather можно создавать новых ботов в Telegram и изменять настройки существующих. Например, добавить описание, установить аватарку для бота.

После создания чат-бота в BotFather вы получите уникальный токен. Токен нужен для идентификации вашего бота. Не сообщайте его никому.

2. Написание кода бота

Для создания чат-ботов в Telegram можете использовать библиотеки python-telegram-bot или pyTelegramBotAPI

from telegram import Update from telegram.ext import Updater, CommandHandler # Обработка команды start def send_start(update: Update): update.message.reply_text(“Hey, what’s up?”) updater = Updater(“YOUR_BOT_TOKEN”) # Добавление обработчика updater.dispatcher.add_handler(CommandHandler(‘hello’, send_start)) # Запуск бота updater.start_polling() updater.idle()

Использование библиотеки pyTelegramBotAPI

Принципиально эти библиотеки ничем друг от друга не отличаются. Отличие связано с синтаксисом.

В данной статье я использовал библиотеку python-telegram-bot.

Если речь идёт о чат-боте для сотен людей, то лучше использовать библиотеку aiogram. В отличие от двух предыдущих библиотек aiogram поддерживает ассинхронность. Это позволит обрабатывать сообщения нескольких людей одновременно.

3. Создание искусственного интеллекта

NLP (Natural Language Processing) – тема объёмная, тема для ряда статей. В этой статье я расскажу, что использовал и оставлю ссылки на ресурсы с более подробным обзором данной темы.

a. Набор датасета

Датасет я составлял вручную. Структура датасета представлена ниже на изображении.

Еще по теме:  Почему в Телеграмме не получается подписаться на частный канал

Что может Telegram bot? ОШИБКИ, НЮАНСЫ, СОВЕТЫ при разработке телеграм ботов!

Интенты – намерения пользователей. Интент включает в себя примеры вопросов, которые задают пользователи. Например, интент Спортивные мероприятия содержит все вопросы (строго говоря, это могут быть и утверждения), связанные со спортивными мероприятиями. Также интент включает в себя ответы чат-бота. Интент может включать один или несколько ответов.

Если ответов несколько, то ответ бота выбирается случайным образом.

В Python структура датасета следующая:

Если знаете, как это сделать проще или где можно найти готовые датасеты, пишите в комментариях.

b. Предобработка текста

Были использованы три метода: удаление символов пунктуации, приведение слов к нижнему регистру и лемматизация.

Для удаления символов пунктуации использовался модуль string.

import string # Удаление символов пунктуации def remove_punctuation(text): translator = str.maketrans(», », string.punctuation) return text.translate(translator)

Лемматизация – это процесс приведения слова к нормальной (словарной) форме.

Лемматизация нужна для того, чтобы слова, имеющие одинаковое значение, но написанные в разной временной форме, не воспринимались ботом как совершенно разные слова и относились к одному интенту.

Библиотека pymystem3 — это морфологический анализатор русского текста от компании Яндекс. Он приводит слова к начальной форме и нижнему регистру.

Ссылка на статью с рассмотрением различных способов предобработки текста.

В качестве векторизатора был использован TF-IDF векторизатор.

Его название — это сокращение от Term frequency-inverse document frequency (частота слова — обратная частота документа).

Частота слова (Term Frequency) — определяет, как часто выбранное слово появляется в документе (в данном случае, это запросы пользователей).

Обратная частота документа (Inverse Document Frequency) — снижает веса слов, которые часто встречаются в документах.

from sklearn.feature_extraction.text import TfidVectorizer vectorizer = TfidVectorizer(analyzer=’char_wb’, ngram_range=(2,3), max_df=0.8) vector = vectorizer.fit_transform(text)

  • analyzer=’char_wb’ – создание n-грамм символов только из текста внутри границ слов;
  • ngram_range=(2,3) – нижняя и верхняя границы диапазона значений для n-грамм;
  • max_df=0.8 — игнорирование терминов, частота которых в запросе строго превышает заданный порог.

from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, stratify=y)

Данные делились на обучающую и тестовую выборки. Треть данных отводилась на тесты, остальные часть данных на обучение.

Параметр stratify задаёт использование стратификации по интентам, это позволяет повысить точность классификации для классов с неравным количеством примеров запросов в датасете.

Еще по теме:  Как изменить Телеграмм на Айфоне

Для классификации был использован алгоритм LinearSVC. Метод опорных векторов хорошо показывает себя в многоклассовой классификации.

from sklearn.svm import LinearSVC # Классификация clf = LinearSVC() clf.fit(X_train, y_train) clf.predict(vector)[0]

Если ваша модель плохо обучена и часто ошибается в классификации, то можно дополнительно реализовать один из алгоритмов нечёткого поиска. Например, расстояние Левенштейна.

Также мой совет – добавлять заглушки в бота. Заглушки – это такие фразы как «Извините, не понял вас», «Перефразируйте, пожалуйста.».

Модель машинного обучения, имеющая по всем метрикам единицы, это утопия. К тому же язык – это динамическая система и ваш датасет не вечен. Его нужно будет изменять и дополнять. С заглушками пользователь не будет думать, что чат-бот завис или не работает, человек всегда получит ответ.

e. Запуск чат-бота

Можно запускать бота и тестировать его.

Небольшой чат-бот, который сможет поддержать разговор на общие темы, готов.

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

Логирование – это запись действий программы в отдельном файле. Например, запуск бота, обработка запроса пользователя. Логирование позволяет быстрее находить и исправлять баги в программе.

  • Обработка голосовых сообщений

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

  • Выгрузка бота на сервер

Чтобы ваш бот отвечал круглосуточно необходимо его запустить на сервере. Для запуска небольшого личного бота отлично подойдёт облачная платформа PythonAnywhere. Бесплатного тарифа будет достаточно.

Это всё, что я хотел рассказать в данной статье. Надеюсь, вы не зря потратили время. Дерзайте и всё получится!

Источник: newtechaudit.ru

15 Telegram-ботов, которых вы полюбите

Blank

Боты в Телеграме не новинка, сегодня их уже более 100 000. Все уже поняли, что с ними наша жизнь не будет прежней. Но зачем они нужны и как выбрать из этого многообразия действительно полезные? Сейчас расскажем!

Кто такие боты?

Это созданные программистами аккаунты в Telegram, которые могут автоматически обрабатывать и отправлять сообщения.

Что они умеют?

Все! Писать комментарии, отправлять уведомления, играть в шахматы, переводить, находить собеседников и картинки по твоим запросам… По сути боты – это новый способ коммуникации с компьютерами и сетью.

Еще по теме:  Не будет гг Телеграмм

Откуда они берутся?

А вот самые полезные, или просто интересные боты, на наш взгляд:

Генератор релевантных тегов. Просто отправляешь боту картинку и получаешь список подходящих тегов. Полезно для использования в соцсетях и фотостоках. Удобно, что список можно скопировать целиком или частично уже со значком хэштэга.

Бот, который проверяет грамотность текста. Его можно добавить в групповой чат, тогда он будет поправлять каждого, кто опечатался или неправильно написал слово.

Нужно принять непростое решение? Просто подбрось монетку прямо в Telegram. Здесь же можно узнать актуальный курс валют.

Поисковой помощник Клара найдет в интернете все, что ты пожелаешь – музыку, фильмы, анекдоты. Но самое классное, запрос можно можно вводить не только текстом, но голосом или картинкой!

Переводит сообщения на любой язык. Работает как в личных чатах, так и в групповых.

Бот для поиска и скачивания художественных книг.

Не знаешь какой бы фильм посмотреть? Попроси помощи уэтого бота. Кроме премьер и новинок на торренте, здесь есть поиск по жанрам, цитаты из фильмов, ТОПы 250 разных стран.

Самые популярные песни дня.

Нужно сохранить картинку или видео из Инстаграма? Даже тут бот поможет.

Подбирает рейсы на самолет. Невероятно просто и удобно!

Поиск кафе и ресторанов поблизости. Отправляешь боту свой локейшн и получаешь в ответ список мест, где можно поесть.

Поиск картинок прямо в чате. Ты даже можешь посмотреть похожие картинки или попросить бота качество получше!

Хочешь подтянуть свой английский? Общение с ботом Andy отличный вариант!

Увлекательный текстовый квест в режиме реального времени. Тебе надо будет помочь главному герою выбраться живым из океанской бездны

Старая, добрая “Виселица”. Хочешь играть с друзьями? Добавь бот к групповому чату.

ИЩЕТЕ РАБОТУ?

Каждый день на сайте появляются новые вакансии — не забывайте внимательно пролистывать все страницы и откликаться на интересные объявления! Регистрируйся по ссылке http://grintern.ru/users/sign_up?user_type=jobseeker

ИЩЕТЕ СОТРУДНИКА?
Самое время опубликовать вакансию! Просто нажмите на ссылку http://www.grintern.ru/internships/new

Узнать больше о том, как правильно размещать вакансии, можно в материалах нашего блога:

    Поделиться записью:

Источник: grintern.ru

Рейтинг
( Пока оценок нет )
Загрузка ...