/ Модель

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

Контекст
514 токенов
Параметры
153 млн
Архитектура
roberta · dense
Опубликована
2 мар 2024

catalan_capitalization_punctuation_restoration_sanivert

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

Модель VÓCALI на базе RoBERTa восстанавливает заглавные буквы и пунктуацию в каталонских текстах.

90скачиваний за 30 дней0лайковвеса обновлены4 мар 2024

Бенчмарки

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

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

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

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

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

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

Это уменьшенная модель для восстановления заглавных букв и пунктуации в текстах на каталонском языке. Её разработала компания VÓCALI в рамках проекта SANIVERT; модель основана на PlanTL-GOB-ES/roberta-base-ca и дообучена на 57 543 примерах, содержащих около 2,3 млн токенов. Архитектура — RoBERTa для классификации токенов, размер — 153,2 млн параметров, максимальная длина контекста — 514 токенов.

Модель предназначена для автоматической коррекции каталонских транскрипций и других текстов: она расставляет знаки препинания и восстанавливает регистр букв. В карточке указано, что это уменьшенная версия модели; качество оценивалось по Macro F1 и Weighted F1, но численные результаты не приведены. Лицензия в предоставленных данных не указана.

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

  • расстановка пунктуации в каталонских транскрипциях
  • восстановление заглавных букв в тексте без регистра
  • коррекция пунктуации в каталонских документах

Ограничения

Модель рассчитана на каталонский язык и принимает контекст длиной до 514 токенов. Она описана как уменьшенная версия; численные метрики качества в карточке не приведены.

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

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

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

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

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

Открыть на Hugging Face

Catalan punctuation and capitalisation restoration model

Details of the model

This is a reduced version of the Catalan capitalisation and punctuation restoration model developed by VÓCALI as part of the SANIVERT project.

You can try the model in the following SPACE

Details of the dataset

This is a PlanTL-GOB-ES/roberta-base-ca model fine-tuned for punctuation restoration using the following data distribution.

LanguageNumber of text samplesNumber of tokens
Catalan57,5432,299,616

Evaluation Metrics

The metrics used to the evaluation of the model are the Macro and the Weighted F1 scores.

Funding

This work was funded by the Spanish Government, the Spanish Ministry of Economy and Digital Transformation through the Digital Transformation through the "Recovery, Transformation and Resilience Plan" and also funded by the European Union NextGenerationEU/PRTR through the research project 2021/C005/0015007

How to use the model

from transformers import pipeline, AutoModelForTokenClassification, AutoTokenizer
import torch

def get_result_text_ca (list_entity, text):
    result_words = []
    punc_tags = ['?', '!', ',', '.', ':']
    tmp_word = ""
    for idx, entity in enumerate(list_entity): 
        start = entity["start"]
        end = entity["end"]
        tag = entity["entity"]
        word = entity["word"]
        
        # check punctuation
        punc_in = next((p for p in punc_tags if p in tag), "")
                
        subword = False
        # check subwords
        if word[0] != "Ġ": 
            subword = True
            if tmp_word == "":
                p_s = list_entity[idx-1]["start"]
                p_e = list_entity[idx-1]["end"]
                tmp_word = text[p_s:p_e] + text[start:end]
            else: 
                tmp_word = tmp_word + text[start:end]
            word = tmp_word
        else:
            tmp_word = ""
            word = text[start:end]
        
        if tag == "l": 
            word = word 
        elif tag == "u":
            word = word.capitalize()
        # case with punctuation
        else:
            if tag[-1] == "l":
                word = (punc_in + word) if punc_in in ["¿", "¡"] else (word + punc_in)
            elif tag[-1] == "u":
                word = (punc_in + word.capitalize()) if punc_in in ["¿", "¡"] else (word.capitalize() + punc_in)     
			
        if subword == True: 
            result_words[-1] = word
        else:
            result_words.append(word)

    return " ".join(result_words)


lang = "ca"
model_path = "VOCALINLP/catalan_capitalization_punctuation_restoration_sanivert"

model = AutoModelForTokenClassification.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)

pipe = pipeline("token-classification", model=model, tokenizer=tokenizer)

text = "el pacient presenta els símptomes següents febre dispnea nàusees i vòmits"
result = pipe(text)

print("Source text: "+ text)
result_text = get_result_text_ca(result, text)
print("Restored text: " +result_text)

Created by VOCALI SISSTEMAS INTELIGENTES S.L.

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей