Skip to content

enscogitans/telegram_text_generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Бот для Telegram

Что делает?
По запросу (/generate) генерирует текст на основе ваших предыдущих сообщений и отправляет его вам.

Как запустить?
Запустить файл telegram_bot.py с обязательным параметром --token (-t) и необязательным --proxy (-p).
-t <токен вашего бота>
-p <ваш прокси в формате http://127.0.0.1:80>

Каков принцип работы?
model_database.py:
Модуль для работы с базой данных. Использует библиотеку sqlalchemy.
Хранит данные о биграммах в чатах в виде chat_id--token_0--token_1--num. Где token_0, token_1 - первое и второе слово в биграмме соответственно, а num - количество таких биграмм в чате.
Умеет создавать базу, добавлять запись, изменять поле num, увеличивать его на число. Также умеет возвращать сумму всех num для токена из чата и словари {token_0 : [list of token_1]}, {token_0 : [list of nums]}.

train_model.py
Модуль для добавления в базу данных биграмм из сообщения.
Разбивает текст на биграммы, подсчитывает их количество и сохраняет в базу.

generate_text.py
Модуль для генерации текста для чата.
Достаёт из базы данных все биграммы с их количеством, случайно выбирает длину текста (от 5 до 15). На первой итерации выбирается случайное слово из всех. На кажлой последующей случайно выбирается слово Х из тех, которые стоят на второй позиции в биграмме: (прошлое_слово, Х), с учётом числа их повторений.

telegram_bot.py
Основная программа. Использует библиотеку telepot.
При запуске создаёт базу данных, если не существует, и запускает бесконечный цикл обработки сообщений. Сообщения обрабатывает функция handle. Если сообщение, которое она получила на вход, текстовое, то она передаёт его модулю train_model.py для сохранения в базу. Если же это был запрос на генерацию текста (/generate), то она запрашивает у модуля generate_text.py сгенерированное сообщение, а потом выводит его.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages