Skip to content

Simple framework for telegram messages classification

Notifications You must be signed in to change notification settings

juks/setfit-telegram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Что это такое?

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

Возможности:

  • Получение образцов текста для разметки из dump-файла telegram методом кластеризации.
  • Few-shot обучение модели с использованием библиотеки Setfit.
  • Тест модели на образцах из текстового файла.
  • Тест модели на dump-файле телеграм-чата.
  • Веб сервер, выполняющий классификацию передаваемых строк и отвечающий на них.

От состояния «я полный ноль» до работающей модели

1. Установка необходимого:

pip install pipenv 
pipenv install

2. Кластеризация из dump-файла в формате json в набор образцов (результаты в ./samples_clustered)

pipenv run python main.py -m cluster -tf test_dump.json -v

3. Подготовка нужных категорий в директории ./samles (удаление стоп-слов, мусорных строк, удаление, объединение файлов).

4. Обучение модели:

pipenv run python main.py -m train -s ./samples -f model.joblib -v

5. Тест на образцах для каждой категории:

pipenv run python main.py -m test -s ./samples -f model.joblib -v

6. Тест на дампе телеграма:

pipenv run python main.py -m history -f model.joblib -dl 01-01-2023 -tf test_dump.json

7. Запуск-веб сервера:

pipenv run python main.py -m serve -f model.joblib -v

8. Проверка веб-сервера:

curl -X POST "http://localhost:8080/cats" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"text\": [\"курьер не может запустить приложение\", \"приложение зависло\", \"смена не открывается\", \"какая-то ерунда\"]}"

Результат: {"category": ["courier_app_problem", "courier_app_problem", "open_shift", "other"]}

About

Simple framework for telegram messages classification

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages