xlm-roberta-large-xnli-product-attribute-classifier
Модель для классификации типов характеристик товаров на русском языке.
Основана на joeddav/xlm-roberta-large-xnli и дообучена в формате NLI для задачи определения типа характеристики.
📌 Задача
Определение типа характеристики из текста.
Пример:
| Текст | Предсказание |
|---|---|
длина 10 мм |
числовая характеристика |
цвет - красный |
текстовая характеристика |
покраска есть |
булевая характеристика |
температура не менее 10 гр |
диапазонная характеристика |
гарантия до 20.01.2002 |
характеристика с датой |
размер 10x20x30 мм |
составная размерная характеристика |
🧠 Подход
Модель обучена как NLI-классификатор:
- premise: исходный текст
- hypothesis:
Тип этой характеристики — {label}
Модель предсказывает:
entailment→ класс подходитcontradiction→ класс не подходит
Для выбора класса используется вероятность entailment.
🏷 Классы
диапазонная характеристика
числовая характеристика
текстовая характеристика
булевая характеристика
характеристика с датой
составная размерная характеристика
🚀 Использование
Через transformers
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
MODEL_NAME = "GreenMap/xlm-roberta-large-xnli-ru-attribute-classifier"
CANDIDATE_LABELS = [
"диапазонная характеристика",
"числовая характеристика",
"текстовая характеристика",
"булевая характеристика",
"характеристика с датой",
"составная размерная характеристика"
]
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME)
classifier = pipeline(
task="zero-shot-classification",
model=model,
tokenizer=tokenizer
)
def get_characteristic_type(text):
prefix = "Тип этой характеристики — {}"
result = classifier(
text,
CANDIDATE_LABELS,
hypothesis_template=prefix,
multi_label=False
)
return result["labels"][0], result["scores"][0]
# Рекомендуется подавать характеристику в виде {"name"} : {"characteristic"}
# Пример: Длина : не более 80 мм
# Но не обязательно
label, score = get_characteristic_type("длина не более 80 мм")
print(label, score) # диапазонная характеристика
📊 Обучение
- Базовая модель:
joeddav/xlm-roberta-large-xnli - Формат: NLI (entailment / contradiction)
- Шаблон:
Тип этой характеристики — {label}
📄 Лицензия
Унаследована от базовой модели.
- Downloads last month
- 170
Model tree for GreenMap/xlm-roberta-large-xnli-ru-attribute-classifier
Base model
joeddav/xlm-roberta-large-xnli