nphne-ldsw76sh/ml
Техническое задание Проект: Классификатор приоритета входящих IT-тикетов 1. Введение и цель проекта Разработать учебную систему автоматической классификации текстовых обращений в службу технической поддержки по четырём уровням приоритета: Low, Medium, High, Urgent. Система анализирует текст тикета и присваивает ему категорию срочности без участия оператора. Проект выполняется в рамках учебной дисциплины «Машинное обучение» с фокусом на воспроизводимость, интерпретируемость и соответствие поставленной задаче. Сложность архитектуры ограничена требованиями учебного задания — допускается использование только классических методов машинного обучения без применения предобученных трансформеров или облачных сервисов. 2. Источник данных и структура признаков Используется датасет с платформы Hugging Face: Console-AI/IT-helpdesk-synthetic-tickets Структура одной записи датасета включает следующие поля: Поле subject — строка, заголовок тикета (например: «Fwd: URGENT — Server down») Поле description — строка, развёрнутое описание проблемы пользователя Поле category — строка, тематическая категория тикета (например: «Network», «Hardware») Поле priority — строка, целевая метка класса со значениями: «Low», «Medium», «High», «Urgent» Поле createdAt — строка, временная метка создания тикета в формате ISO 8601 Общий объём данных: 500 записей в сплите train. Язык текста: английский. Распределение классов ожидается несбалансированным с преобладанием классов Low и Medium. Для построения модели используются только следующие поля: Признаки для обучения: объединённый текст из полей subject и description Целевая переменная: поле priority Поля category и createdAt сохраняются в рабочем датафрейме для возможного анализа распределения приоритетов по категориям или временным периодам, но не участвуют в формировании признакового пространства модели. Это требование обусловлено учебной задачей — демонстрация способности модели выделять признаки срочности исключительно из текстового контента без опоры на структурированные метаданные. 3. Подготовка текстовых данных Текстовые поля subject и description объединяются в единый признак text по правилу: text = subject + " " + description Пример преобразования: Исходные поля: subject = «URGENT: Database failure» description = «Production database is down since 10 AM» Результат: text = «URGENT: Database failure Production database is down since 10 AM» Предобработка текста включает следующие операции: Приведение всех символов к нижнему регистру Сохранение пунктуации и цифр без дополнительной очистки (пунктуация может нести смысловую нагрузку, например восклицательные знаки в срочных тикетах) Удаление стоп-слов выполняется на этапе векторизации встроенным механизмом TF-IDF, а не предварительной обработкой Пропуски в полях subject или description отсутствуют согласно спецификации датасета. При их обнаружении применяется заполнение пустой строкой.
язык не указан · рейтинг 0 · 👍 0 · ❤️ 0 · 💎 0 · 0 форков · ссылка на SourceCraft
Дата анализа: 29.09.2026 22:57
Почему такой балл
Категории без данных не обнуляют итог: их вес перераспределяется между категориями, где балл есть.
Сильные и слабые стороны
Слабые: Документация: 29, Активность: 0, Issues: нет данных, Проект давно не проявлял активность, Не найдено тестов, Мало релизов за последние 30 дней, Мало merge requests за последние 30 дней, Отсутствует лицензия
Сводка YandexGPT
Находки и рекомендации
-
Проект давно не проявлял активность
Активность · критическая
+13 к Score
Последняя известная активность была около 236 дней назад (источник: repository.last_updated).
Проверьте актуальность проекта, backlog и владельцев активных направлений.
-
Не найдено тестов
Состояние кода · высокая
+12 к Score
В дереве репозитория не обнаружено ни каталогов tests/test/spec, ни файлов с типовыми именами тестов.
Добавьте тесты хотя бы для критичной части кодовой базы и подключите их к CI.
-
Мало релизов за последние 30 дней
Активность · высокая
+9 к Score
Подметрика «Релизы» — 0 из 100. Полный балл — от 3 релизов за 30 дней.
Выпустите релиз или опишите, почему проект их не использует — балл считает отсутствие релизов недобором.
-
Мало merge requests за последние 30 дней
Активность · высокая
+9 к Score
Подметрика «Merge requests» — 0 из 100. Полный балл — от 10 merge requests.
Проверьте, что изменения проходят через merge requests, а не только прямыми коммитами.
-
Нет конфигурации линтера/форматтера
Состояние кода · средняя
+7 к Score
В репозитории не найдено конфигов известных линтеров/форматтеров (ESLint, Ruff/Flake8, Prettier, rustfmt и т.п.).
Подключите линтер и форматтер под используемый стек и зафиксируйте правила в конфиге.
-
Отсутствует лицензия
Документация · высокая
+6 к Score
В корне репозитория нет файла LICENSE/COPYING. Без лицензии использование проекта юридически неясно.
Добавьте LICENSE с выбранной лицензией (MIT, Apache-2.0, GPL и т.п.).
-
Нет CONTRIBUTING и CODEOWNERS
Документация · средняя
+5 к Score
Не найдены файлы CONTRIBUTING и CODEOWNERS — внешним контрибьюторам неясен процесс.
Добавьте CONTRIBUTING.md с процессом PR и CODEOWNERS для автоназначения ревьюеров.
-
Нет CHANGELOG и каталога docs/
Документация · средняя
+5 к Score
Не найдены CHANGELOG и каталог docs/ — история изменений и подробная документация отсутствуют.
Заведите CHANGELOG.md и каталог docs/ для пользовательской и разработческой документации.
-
Нет инструкций по сборке и тестам
Документация · высокая
+3 к Score
В README не описано, как собрать проект и запустить тесты.
Добавьте разделы Build и Test с командами и необходимыми зависимостями.
-
Нет инструкции локального запуска
Документация · высокая
+3 к Score
В README нет явного блока про установку и запуск проекта локально.
Добавьте раздел Quick Start: зависимости, установка, запуск, типовые команды.
-
README неполный
Документация · средняя
README есть, но «README» — 98 из 100: не хватает объёма или раздела о структуре.
Допишите README: зачем проект и из чего состоит репозиторий.
История проверок
- 29.09.2026 22:57 — 28
Безопасность (AppSec) и CI/CD здесь не оцениваются: к ним есть доступ только по PAT владельца репозитория.