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
366
Safetensors
Model size
0.6B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for GreenMap/xlm-roberta-large-xnli-ru-attribute-classifier

Finetuned
(16)
this model