Cognitive Text Analysis

Обработка сообщений, поступающих на горячую линию университета

Задача: на языке Python реализовать чат-бота, который будет распределять пришедшие на горячую линию университета сообщения (письма, обращения) по соответствующим отделам/сотрудникам ПетрГУ или будет сам отвечать на данные сообщения

Файлы train.xlsx и test.xlsx будут выкладываться тут:

https://drive.google.com/drive/folders/1efoHasyZzU8UsrKzqCAVKHK3XuH7udrd

 

В файле train.xlsx предоставлена информация о входящих обращениях (письмах):

Описание данных:

  • Id = уникальный id сообщения
  • Name = имя человека, который задает вопрос
  • Town = из какого города человек, задающий вопрос
  • Country = страна
  • Content = непосредственно вопрос
  • DateCreate = дата поступления вопроса
  • type_hotline = тип горячей линии (1 - горячая линия для абитуриентов, 2  - виртуальная приемная, 3 - для иностранных абитуриентов, 4 - обращения в Совет ветеранов, 41 для поступающих в аспирантуру)
  • сlass = результат классификации

Задача 1. Основная задача (обязательная для решения). Разработать программу для классификации обращений (писем)

Письма следует разделить на 6 классов писем:

1. Вопросы, связанные с процедурой поступления и зачисления на бюджетные места бакалавриата, специалитета, магистратуры.

2. Письма, которые невозможно однозначно отнести к одной из остальных указанных групп (1, 3, 4, 5, 6).

3. Платное и заочное обучение.

4. Перевод (между учебными специальностями, ВУЗ-ми, …).

5. Общежитие.

6. Аспирантура.

Необходимо разработать алгоритм и программу, которая позволит по имеющимся в train.xlsx остальным данным (кроме столбца class) производить классификацию писем по указанным 6 классам. Результаты работы программы должны максимально совпадать со значениями в столбце class.

Для решения задачи можно использовать любые алгоритмы, в том числе использующие (*) методы машинного и глубокого (нейронные сети) обучения или не использующие их (**).

По завершению проекта (в субботу) будет участникам будет передана тестовая выборка test.xlsx (набор аналогичный train.xlsx). Участники применяют к этому набору разработанный алгоритм и пересылают результаты классификации модератору в виде файла .xlsx с двумя столбцами: id, class, где id задан, class – результат классификации. Участники пересылают модератору также свой проект (код) в виде .zip архива.

Метрика для оценки результата: отношение количества верно классифицированных писем из тестовой выборки к общему количеству писем в тестовой выборке (% верно классифицированных писем из всех классифицированных). На защите проекта необходимо предоставить описание, алгоритмы, результаты работы выбранных методов Преимущество у алгоритмов (*), использующих методы машинного и глубокого (нейронные сети) обучения. При этом наиболее важно, чтобы предложенный метод верно решал поставленную задачу классификации.

За задачу предполагается 0–12 баллов

  

Задача 2. Дополнительная задача (ускоряет задачу 1) Предобработка текста писем: удаление из текста лишней информации (которая не нужна для получения основной мысли сообщения и классификации его), лемматизация, ... .

Что следует сделать: разработать рекомендации о преобразовании текстов писем и применить их к данному набору писем.

За задачу предполагается 0–4 баллов

   

Задача 3. Дополнительная задача. Попробовать натренировать чат-бот отвечать на некоторые типы писем, например, про стоимость обучения и прочие. Цифры в ответах брать любые, но конкретные, т.е. год обучения на специальности № 1 стоит N рублей, где N – любое, но конкретное (одинаковое для всех вопросов о стоимости образования по этой специальности № 1). Про стоимость обучения письма присутствуют в разных строках файла train.xlsx и порядка 15 таких писем в конце файла.

За задачу предполагается 0–4 баллов

  

Задача 4. Разработать веб-сервер для чат-бота или найти готовый (который сможете использовать) и обеспечить возможность применения ваших алгоритмов для решения задачи 1 в нем.

Наибольший балл будет получен в случае написания своего сервера.

За задачу предполагается 0–4 баллов


Модератор: Смирнов Николай Васильевич, к.т.н., доцент кафедры теории вероятностей и анализа данных ПетрГУ

Задание #1