Данный репозиторий - учебный проект в рамках прохождения ml стажировки.
Проект Суммаризатор встреч был разделён на несколько модулей:
- Транскрибация аудио.
- Абстрактная суммаризация.
- Экстрактная суммаризация.
Моя задача: экстрактная суммаризация.
- Поиск датасетов для валидации моделей/алгоритмов. Перевод текстов через api google translator для последующей оценки работы моделей на русском языке.
- Изучение методов экстрактной суммаризации текстов. Ручная реализация простейших из них.
- Сравнение моделей из библиотеки
sumyи дообученной на задачу суммаризации моделиBERTиз библиотекиbert-extractive-summarizer. - Дообучение модели BERT на русских текстах.
- Выбор наилучшей модели по совокупности метрик.
- Написание FastAPI приложения.
materials- jupyter ноутбуки для решения этапов 2-5:- Custom-Algs: реализация двух простейших способов получения экстрактной суммаризации
- Model-Selection: валидация моделей
- Fine-Tune-Bert: дообучение модели rubert и окончательный выбор лучшей модели
data- переведённые на русский язык части датасета для оценки экстрактной суммаризации текстов. Оригинал: https://huggingface.co/datasets/eReverter/cnn_dailymail_extractiveextrarizer- FastAPI приложение
Проект предоставляет API, построенный на FastAPI, для получения экстрактной суммаризации текста при помощи библиотеки bert-extractive-summarizer
и предобученной модели rubert. Приложение содержит два эндпойнта для генерации суммаризации по тексту и по текстовому файлу. На выходе JSON-файл:
{
"status": 200,
"summary": "Суммаризация"
}Для сборки образа приложения перейдите в папку extrarizer и выполните команду:
$ docker build -t extrarizer .
Запуск контейнера осуществляется следующей командой: $ docker run -p 8000:8000 extrarizer
Ознакомиться с методами API можно по адресу: http://localhost:8000/docs
Endpoints:
POST /extract/text/
Параметры:
- text - Текст, заданный как строка.
- ratio - Степень сжатия суммаризации(0 <= ratio <= 1)
- many_speakers - Текст представляет собой разговор нескольких людей(True/False). Если True,
то в начале каждого предложения будет указан его автор.
POST /extract/file/
Параметры:
- file - Текстовый файл в кодировке utf-8.
- ratio - Степень сжатия суммаризации(0 <= ratio <= 1)
- many_speakers - Текст представляет собой разговор нескольких людей(True/False). Если True,
то в начале каждого предложения будет указан его автор.