ruBERT для детекции адъективной неопределённости в русских юридических текстах

Описание модели

Это дообученная версия модели DeepPavlov/rubert-base-cased для автоматической детекции адъективной неопределённости в русскоязычных юридических текстах.

Адъективная неопределённость — это тип лингвистической неопределённости, связанный с использованием оценочных прилагательных, наречий и модификаторов степени (разумный срок, существенное нарушение, незамедлительно, крайне необходимый), которые вносят неопределенность в предложение.

Задача

Бинарная классификация предложений из нормативно-правовых актов РФ:

  • Класс 0: предложение не содержит адъективной неопределённости
  • Класс 1: предложение содержит адъективную неопределённость

Метрики качества

Metric Type Value
F1 Score f1 0.89
Accuracy accuracy 0.894
Precision precision 0.898
Recall recall 0.884

Авторы

Проект выполнен при поддержке проекта СПбГУ (шифр проекта: 123042000068-8)


Ограничения использования

Модель НЕ предназначена для:

  • Замены неопределенных выражений на определенные
  • Работы с неюридическими текстами (модель обучена на нормативно-правовых актах РФ)
  • Детекции других типов неопределённости

Обучающие данные

Корпус CorCodex

  • Источник: 282 нормативно-правовых акта РФ (федеральные законы, кодексы, постановления Правительства)
  • Объём корпуса: 3 227 000 токенов

Пример использования

{
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# Загрузка модели и токенизатора
model_name = "yourusername/rubert-legal-vagueness-detector"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# Пример предложения из юридического текста
text = "Концедент вправе потребовать возмещения убытков, если нарушение не было устранено в разумный срок."

# Токенизация
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=380, padding=True)

# Предсказание
with torch.no_grad():
    outputs = model(**inputs)
    logits = outputs.logits
    predicted_class = torch.argmax(logits, dim=1).item()
    probabilities = torch.softmax(logits, dim=1)[0]

# Вывод результата
labels = {0: "Нет неопределённости", 1: "Есть неопределённость"}
print(f"Предсказание: {labels[predicted_class]}")
print(f"Вероятности: Класс 0 = {probabilities[0]:.3f}, Класс 1 = {probabilities[1]:.3f}")
}
Downloads last month
3
Safetensors
Model size
0.2B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Evaluation results