Downloads · 30 days
25
5% of all-time downloads
GreenMap/xlm-roberta-large-xnli-ru-attribute-classifier
xlm-roberta-large-xnli-ru-attribute-classifier is a zero-shot classification model from GreenMap. Use it when you need labels you did not train the model on. The card lists the license as apache-2.0.
Модель для классификации типов характеристик товаров на русском языке.
Downloads · 30 days
25
5% of all-time downloads
All-time downloads
458
Public
Parameters
560M
4.5 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors2.2 GB · 99%
From the Hugging Face model README
Модель для классификации типов характеристик товаров на русском языке.
Основана на joeddav/xlm-roberta-large-xnli и дообучена в формате NLI для задачи определения типа характеристики.
Определение типа характеристики из текста.
Пример:
| Текст | Предсказание |
|---|---|
длина 10 мм | числовая характеристика |
цвет - красный | текстовая характеристика |
покраска есть | булевая характеристика |
температура не менее 10 гр | диапазонная характеристика |
гарантия до 20.01.2002 | характеристика с датой |
размер 10x20x30 мм | составная размерная характеристика |
Модель обучена как NLI-классификатор:
Тип этой характеристики — {label}Модель предсказывает:
entailment → класс подходитcontradiction → класс не подходитДля выбора класса используется вероятность entailment.
диапазонная характеристика
числовая характеристика
текстовая характеристика
булевая характеристика
характеристика с датой
составная размерная характеристика
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Тип этой характеристики — {label}
Унаследована от базовой модели.