Skip to content

HalamBalam/medsi_email_classifier

Repository files navigation

Python 'Black'

telebot sqlite3 BERT Binary Classifier BERT Multiclass Classifier datetime

Модель предсказания услуг "Медси" для страховых писем

Содержание
  1. Подготовка датасета для обучения
  2. Обучение моделей
  3. Использование моделей
  4. BioMind bot

Подготовка датасета для обучения

В первую очередь требуется подгтотовить датасет для обучения моделей. Исходный датасет содержит очень мало данных, поэтому нужно применить методы аугментации текста, чтобы получить подходящее количество данных. Ноутбук Preprocessing_datasets.ipynb содержит код преобразования исходного датасета в требуемый.

Обучение моделей

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

Код для обучения бинарной модели представлен в ноутбуке train_binary_model.ipynb. Для обучения использовался аугментированный датасет final_aug_df.csv.

Код для обучения мультиклассовой модели можно посмотреть в ноутбуке train_multiclass_model.ipynb. Для обучения использовался аугментированный датасет multiclass_df.csv.

Предобученные сохраненные модели можно найти в каталоге models.

Использование моделей

Для удобства использования бинарной модели был написан класс BertBinaryClassifier, который загружает предобученную модель и имеет метод predict, получающий на вход текстовую строку и возвращающий метку класса - 0 или 1:

from bert_binary_classifier import BertBinaryClassifier

binary_classifier = BertBinaryClassifier()
prediction = binary_classifier.predict('Some text')

Для работы с мультиклассовой моделью требуется 2 класса: DistilBERTClass (базовый класс, наследуется из PyTorch) и BertMulticlassClassifier, который имеет метод predict, возвращающий массив из 75 элементов, в которых позиция числа 1 соответствует коду (от 0 до 74) оказываемой услуги:

from distilbert_class import DistilBERTClass
from bert_multiclass_classifier import BertMulticlassClassifier

multiclass_classifier = BertMulticlassClassifier()
predictions = multiclass_classifier.predict('Some text')

BioMind bot

BioMind Bot - это чат-бот для Telegram, разработанный для больничной сети "Медси" с целью автоматизации процесса обработки гарантийных писем от страховых компаний. Применяемая нейросеть способна анализировать текстовые документы, выявлять ключевую информацию о медицинских услугах.

Чатбот позволяет вести беседы примерно такого вида:

диалог с чатботом в телеграмме

Запуск чатбота в Telegram

По ссылке можно получить доступ к чатботу : @biomind_bot

Введите команду /hello, чтобы начать диалог с ботом.

Основные команды чатбота

  • /help - описание проекта, ссылка на github, выход в главное меню;
  • /reset - удаляет все записи в базе данных пользователя и завершает работу;
  • /start - выводит кнопки для пользователя (TXT, PDF, DOCX), чтобы пользователь выбрал формат файла, который он хочет обработать.
  • /output - выводит всю информацию по обработанным письмам для пользователя. (максимум 3 записи, самая старая запись удаляется)

About

A model classifying emails by service codes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •