/ Модель

Характеристики

Контекст
514 токенов
Параметры
152 млн
Лицензия
MIT
Архитектура
roberta · dense
Базовая модель
slovakbert
Опубликована
2 мар 2022

slovakbert-ner

Разметка токеновТекст → label6 профессий

Модель на основе SlovakBERT извлекает из словацкого текста имена людей, организации и географические объекты.

900скачиваний за 30 дней2лайкавеса обновлены12 сен 2023

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

crabz/slovakbert-ner — словацкая модель распознавания именованных сущностей, разработанная дообучением gerulata/slovakbert на наборе WikiANN. Она использует архитектуру RoBERTa и содержит около 151,8 млн параметров; максимальная длина контекста — 514 токенов.

Модель размечает в словацком тексте имена людей, названия организаций и географические объекты. Её можно применять для извлечения сущностей из новостей и других текстов на словацком языке; в README приведены примеры использования через Transformers pipeline. На оценочном наборе указаны F1 0,9398 и точность 0,9785.

Модель принимает текст и выдаёт метки токенов. Она обучена на WikiANN, поэтому качество на других жанрах и текстах может отличаться от приведённых оценок. Лицензия — MIT.

Сценарии применения

  • извлечение имён людей из словацких новостей
  • поиск организаций в словацких документах
  • распознавание географических названий в словацком тексте

Ограничения

Модель размечает только сущности трёх типов: PERSON, ORGANIZATION и LOCATION. Оценки получены на WikiANN и не гарантируют такое же качество на текстах других жанров.

Для каких профессий подходит6

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Named Entity Recognition based on SlovakBERT

This model is a fine-tuned version of gerulata/slovakbert on the Slovak wikiann dataset. It achieves the following results on the evaluation set:

  • Loss: 0.1600
  • Precision: 0.9327
  • Recall: 0.9470
  • F1: 0.9398
  • Accuracy: 0.9785

Intended uses & limitations

Supported classes: LOCATION, PERSON, ORGANIZATION

from transformers import pipeline


ner_pipeline = pipeline(task='ner', model='crabz/slovakbert-ner')
input_sentence = "Minister financií a líder mandátovo najsilnejšieho hnutia OĽaNO Igor Matovič upozorňuje, že následky tretej vlny budú na Slovensku veľmi veľké."
classifications = ner_pipeline(input_sentence)

with displaCy:

import spacy
from spacy import displacy


ner_map = {0: '0', 1: 'B-OSOBA', 2: 'I-OSOBA', 3: 'B-ORGANIZÁCIA', 4: 'I-ORGANIZÁCIA', 5: 'B-LOKALITA', 6: 'I-LOKALITA'}

entities = []
for i in range(len(classifications)):
    if classifications[i]['entity'] != 0:
        if ner_map[classifications[i]['entity']][0] == 'B':
            j = i + 1
            while j < len(classifications) and ner_map[classifications[j]['entity']][0] == 'I':
                j += 1
            entities.append((ner_map[classifications[i]['entity']].split('-')[1], classifications[i]['start'],
                             classifications[j - 1]['end']))

nlp = spacy.blank("en")  # it should work with any language

doc = nlp(input_sentence)

ents = []
for ee in entities:
    ents.append(doc.char_span(ee[1], ee[2], ee[0]))

doc.ents = ents

options = {"ents": ["OSOBA", "ORGANIZÁCIA", "LOKALITA"],
           "colors": {"OSOBA": "lightblue", "ORGANIZÁCIA": "lightcoral", "LOKALITA": "lightgreen"}}
displacy_html = displacy.render(doc, style="ent", options=options)

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 5e-05
  • train_batch_size: 32
  • eval_batch_size: 8
  • seed: 42
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • num_epochs: 15.0

Training results

Training LossEpochStepValidation LossPrecisionRecallF1Accuracy
0.23421.06250.12330.88910.90760.89820.9667
0.11142.012500.10790.91180.92690.91930.9725
0.08173.018750.10930.91730.93150.92430.9747
0.04384.025000.10760.91880.93530.92700.9743
0.0285.031250.12300.91430.93870.92640.9744
0.02566.037500.12040.92460.94230.93340.9765
0.0187.043750.13320.92920.94160.93530.9770
0.01078.050000.13390.92800.94270.93530.9769
0.00799.056250.13680.93260.94420.93830.9785
0.006510.062500.14900.92840.94450.93640.9772
0.006111.068750.15660.93280.94330.93800.9778
0.003112.075000.15550.93390.94730.94060.9787
0.002413.081250.15480.93490.94620.94050.9787
0.001514.087500.15620.93300.94690.93990.9788
0.001315.093750.16000.93270.94700.93980.9785

Framework versions

  • Transformers 4.13.0.dev0
  • Pytorch 1.10.0+cu113
  • Datasets 1.15.1
  • Tokenizers 0.10.3

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · token-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
RobertaForTokenClassification
Ревизия весов
5cc4f86

0 моделей