Skip to content

Telegram bot for creating non-existent russian words. Телеграм-бот для генерации несуществующих русских слов.

License

Notifications You must be signed in to change notification settings

weiss-d/slovodel-bot

Repository files navigation

'Slovodel' Telegram Bot

Making non-existent Russian words using Markov chains. Бот, который придумывает несуществующие русские слова.

ПОСМОТРЕТЬ В ДЕЙСТВИИ / TRY IT OUT↗️ RIP free Heroku

Велимир Хлебников на Украине. Портрет с корзинами. Автор неизвестен.

Посвящается Велимиру Хлебникову.

Фармакология

Генерация псевдослов с помощью цепей Маркова на основе корпуса, полученного алгоритмическим делением на слоги слов из русского частотного словаря.

Показания к применению

  • Экстремальный нейминг
  • Острый переизбыток семантики
  • Развлекательная недостаточность

Ещё одна цель проекта - реализовать на практике:

  • паттерн MVC на Python
  • современный целостный подход к разработке на Python, описанный в этой серии статей↗️
  • лучшие практики для работы с конфигурацией в Python, предложенные здесь↗️ Не надо так, делайте всё через Pydantic :)

Поэтому его структура немного сложнее обычного.

Способ применения и дозы

Установка и запуск

$ git clone https://github.com/weiss-d/slovodel-bot.git
$ cd slovodel-bot
$ pip install -r requirements.txt

# настроить конфигурацию как описано ниже
$ nano bot_config.toml

# загрузить словари в базу данных Redis
# если есть пароль, дописываем его в конце каждой команды
$ python slovodel_bot/utils/redis_upload_dict.py ../resources/dictionaries/nouns.txt SLOVODEL_DICT 127.0.0.1 6379 0
$ python slovodel_bot/utils/redis_upload_dict.py ../resources/dictionaries/adjectives.txt SLOVODEL_DICT 127.0.0.1 6379 0
$ python slovodel_bot/utils/redis_upload_dict.py ../resources/dictionaries/verbs.txt SLOVODEL_DICT 127.0.0.1 6379 0

# можно запускать!
$ python -m slovodel_bot

Настройка

Дефолтный конфиг bot_config.toml лежит в корне репозитория. В нём нужно прописать токен, полученный от Bot Father, а так же координаты Redis, если база запущена не локально - это делается в самой нижней секции конфига. Так же при желании изменить приветсвтенное сообщение можно отредактировать файл slovodel_bot/resources/welcome_message.md.

Heroku

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

$ heroku config:set HEROKU_APP_NAME=имя_вашего_приложения

Файлы Procfile, requirements.txt и runtime.txt содержат все необходимые инструкции и готовы к запуску. Если хотите сделать для Heroku отдельный файл конфигурации, то путь к нему нужно прописать в Procfile в качестве аргумента к heroku.py.

TODO

  • Добавить логи
  • Добавить обработку исключений python-telegram-bot

Вопросы / Предложения

По всем вопросам и предложениям не стесняясь открывайте issue.

Состав

  • markovify - основа модели, отвечающая за формирование слов.
  • python-telegram-bot - самая популярная обёртка Telegram Bot API из кожи питона.
  • click - библиотека для лёгкого и безболезненного создания CLI-интерфейсов в Python.
  • dacite - библиотека для преобразования словарей в dataclass'ы.
  • rusyll - моя библиотека для алгоритмического деления русских слов на слоги.

About

Telegram bot for creating non-existent russian words. Телеграм-бот для генерации несуществующих русских слов.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published