Кейс Аметист Кэпитал "Приведение номенклатуры участников рынка кофициальному Классификатору Строительных Ресурсов"
- Первые две колонки - неправильные названия. Правильная только из разметки. По 2 примера запроса на один код
- Главная цель - найти код (длинный, на короткий забить). В тесте будет ~ 300 строк
- В данных есть опечатки и в тесте они будут. Наша задача решить их
- В тесте будет то, чего ваще нет в разметке. Мусор. Мы должны выдавать ответ типа нан или придумать комментарии почему не найдено
- Будет плюс если мы будем выдавать вероятность уверенности в ответе
- Нужен апи обязательно. Интерфейс только для демо, главное апи
- Единицы измерения -- доп задача. За них баллы в тех часть (75% оценки) не идут
- Единицы измерения надо правильно распрасить из запроса, в отдельной колонке их не будет. В трейне выделено в последний колонке
- По единицам измерения -- надо выдавать коэффициент, на который надо умножить число из запроса, чтобы получить формат из разметки
- Зарубежные ллм можно только локально. За яндекс гпт и гигачат будут резать балл жюри (много вопросов про это было, видимо куча команд хочет так делать)
- Может быть одино и то же название, но разные коды. При этом у них будут разные единицы измерения, надо это обрабатывать
- Если и единицы измерения одинаковые, то можно любой код выдавать
- В тесте не будет ни одного кода из трейна
В контрольном тесте будут очепятки
В контрольном тесте будут коды\названия, которые не встречаются в train. (Номенклатур из трейна не будет в тесте совсем, похоже)
? Валидатор смотрит именно на код, а не название номенклатуры
В файле classification.xlsx если чо 2 таблицы и их обе нужно использовать КСР меняется и будет меняться, могут добавлятся новые или менятся старые, это нужно учитывать при разработке (обновление/обучение/дообучение)
Требования к машине дописать
- Файл classification.xlsx - официальный классификатор КСР. Обращаем внимание, что некоторым наименованиям может соответствовать сразу два кода - необходимо выбрать тот, что длиннее.
- Файл train.xlsx - датасет с примерами (record_name, record_name_2) некорректного наименования ресурсов и правильными наименованиями, кодом и единицами измерения (ref_code, ref_name, ref_unit).
Вашей задачей будет разработка модели определения правильного написания ресурса.
На основе имеющихся данных и разметки необходимо разработать модель, которая предсказывает то, какие код КСР, название КСР и единицы измерения должны быть у приходящего на вход написания. При разработке решения не забывайте про отраслевые критерии.
Проверка будет осуществляться на тестовом датасете с помощью метрики "Доля совпавших кодов". Вам будет необходимо для предложенной таблицы с неправильными написаниями заполнить соответствующие столбцы - код КСР, название КСР и коэффициент пересчета (коэффициент, на который нужно домножить единицы измерения в наименовании так, чтобы получить правильный масштаб единиц измерения согласно КСР). При загрузке на платформу решения, в случае корректного формата, вы получите ответ в виде соответствующего значения.
ВАЖНО!!! Учитываться будет лучшее решение, загруженное на платформу.
ВАЖНО!!! Решение должно соответствовать формату файла data_to_fill.csv. Проверьте заголовки, разделители, число строк и столбцов. Файл будет доступен с тестом, обладать 6-ью столбцами: id в виде хэша, неправильное наименование, длина наименования и пустые столбцы код КСР, название КСР и коэффициент пересчета.
КСР состоит из книг, каждая из которых подразделяется на части разделы и группы.
Для материалов, изделий, конструкций и оборудования:
XX - книга
XX.X - чать
XX.X.XX - раздел
XX.X.XX.XX - группа
XX.X.XX.XX-XXXX - позиция строительного ресурса
XX.X.XX.XX-XXXX-XXX - позиция классификатора строительных ресурсов
Для машин и механизмов:
XX - книга
XX.XX - раздел
XX.XX.XX - группа
XX.X.XX.XX-XXXX - позиция строительного ресурса
XX.XX.XX-XXX-XXX - позиция классификатора строительных ресурсов
Первые 9 цифр позиции:
XX.XX.XX.XXX ОКПД 2 (КПЕС 2008)
X - символ, обозначающий раздел цифровой части кода
│ .gitignore
│ README.md
│
├───data
│ └───train_Ametist
│ case_README.md
│ classification.xlsx
│ train.xlsx
│
├───Docker
│ compose.yaml
│ Dockerfile
│ requirements.txt
│
├───eda
│ exp1.ipynb
│
└───src
├───api
│ data_models.py
│ exceptions.py
│ main.py
│ requirements_api.txt
│
└───streamlit
│ requirements_streamlit.txt
│
├───.streamlit
│ config.toml
│
├───components
├───main.py
└───pages