1 of 14

Weeek

Авоська и Небоська

2 of 14

КОМАНДА

Граур

Андрей Константинович

ML Ops

Коряковцева

Алёна

Андреевна

Data Analyst

Кудрявцева Полина Дмитриевна

Data Analyst

Кайгородов

Глеб

Борисович

Data Scientist

2

Ли

Диана Александровна

Product manager

3 of 14

Проблема

Люди, не знакомые с системами типа Jira, затрудняются заводить задачи самостоятельно.

Цель проекта - упростить для них этот процесс (достаточно короткого текстового сообщения).

3

4 of 14

Практическая ценность

Цель проекта Weeek

Cоздать удобную и простую платформу для командной работы над задачами и проектами.

Основные задачи проекта

1. Упрощение процесса постановки задач. В настоящий момент этот процесс требует нескольких шагов, таких как набор текста, указание проекта и назначение исполнителя. Цель: создать возможность постановки задачи быстро и просто, подобно отправке аудиосообщения.

2. Разработка системы разметки текста из различных источников. Это позволит автоматически определить событие или действие, которое необходимо выполнить. А также назначить исполнителя, дату и другие детали задачи.

4

5 of 14

План и ход работ

5

План работ

1) Сформировать вопросы заказчику

2) Получить датасет

3) Провести исследование на тему существующих решений и подходов для решения задачи

4) Создание подкоманд для оптимизации процесса реализации решений

5) Распределение подзадач для каждой подкоманды

6) Создание визуализации полученных результатов (опционально)

6 of 14

Наборы данных

Датасет заказчика

2775 фраз, размеченных под задачу классификации

  • 2 439 фразы - advice
  • 336 фразы - task_create

Как создать новую задачу в WEEEK? => advice

Провести обучение персонала заказчика по управлению сайтом. => task_create

Наш датасет под NER

487 фраз, приведенных к инфинитиву, с размеченными: типом задания, исполнителем и временем.

Создай B-TASK

задачу I-TASK

: O

Подготовить O

отчет O

к O

15 B-TIME

: O

00 B-TIME

завтра I-TIME

на O

Анну B-PERSON

6

7 of 14

Наборы данных: разметка датасета для NER

7

8 of 14

Решение с нуля: классификация

LSTM по набору данных заказчика

"Как настроить автоматическое назначение задач на основе приоритета?"

=> advice

"Александр Логинов, спланируйте создание контент-плана на месяц вперед к 25 ноября".

=> task_create

  • 10 фраз каждого типа - в тест
  • 15 эпох
  • Accuracy on Test: 100.0%
  • Accuracy on Train: 100.0%

"Кто такие Авоська и Небоська?"

=> KeyError: 'такие' (слова “такие” не было в датасете)

8

Проблема: очень ограниченный словарь

9 of 14

Решение с нуля: NER

LSTM по нашей разметке

9

Проблема: очень ограниченный словарь

"Создай задачу : Олеся должна предоставить эскиз нового карнавального костюма завтра к 11 : 00"

=> KeyError: 'карнавальный' (слова “карнавальный” не было в датасете)

Создай задачу : Сергей должен предоставить 3 варианта дизайна упаковки до конца этой недели.

Создай задачу : Попросить Никиту разработать фирменный стиль для ресторана к 1 апреля.

TASK: Создай задачу

PERSON: Сергей

TIME: до конца этой недели

TASK: Создай задачу

PERSON: Никиту

TIME: 1 апреля

Метрики

  • 20% фраз - в тест
  • 100 эпох
  • Precision: 0.83
  • Recall: 0.74
  • F1-score: 0.78

10 of 14

Решение с дообучением:

NER spaCy

10

Пример получения разметки фразы

F1 score = 0.9

Выделяются основные сущности: тип задачи(task_type), время(time) и на кого поставлена задача(person)

Текст самой задачи определяется: фраза - task_type - time - person

11 of 14

Решение с дообучением:

NER DeepPavlov

DeepPavlov, дообученный на нашей разметке

11

Создай

задачу

:

Олеся

должна

предоставить

эскизы

сувенирной

продукции

завтра

к

11

:

00

B-LAW

I-LAW

O

B-PER

O

O

O

O

O

B-TIME

O

B-TIME

O

B-TIME

Метрики

  • 10% фраз - в test
  • 10% фраз - в valid
  • модель: ner_rus_bert
  • 30 эпох
  • Precision: 0.95
  • Recall: 0.898
  • F1-score: 0.92

12 of 14

Демо

12

Стэк:

  1. Python 3.9
  2. spaCy
  3. Gradio
  4. HuggingFace

https://huggingface.co/spaces/ru4rg/weeek-mipt

13 of 14

Рекомендации

13

  1. Тщательнее проработать ТЗ: с какими вводными должна работать система (что она должна делать с советами, что считать за постановку задачи и т.д.)

  • Доработать датасет для обучения (учесть по максимуму все кейсы, с которыми должна справляться система)

  • Так как нет 100% понимания, что должна уметь система, и возможности набрать существенный по объёму набор данных, имеет смысл брать и дообучать на своём датасете готовую большую языковую модель.

14 of 14

Спасибо за внимание!

14

https://github.com/pluie-d-automne/weeek-hackathon