/ Модель

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

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

portuguese_capitalization_punctuation_restoration_sanivert

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

Модель восстанавливает пунктуацию и заглавные буквы в португальском тексте.

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

Бенчмарки

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

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

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

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

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

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

Это уменьшенная версия модели для восстановления пунктуации и заглавных букв в португальском тексте, разработанная VÓCALI в рамках проекта SANIVERT. Модель основана на neuralmind/bert-base-portuguese-cased и дообучена для токенной классификации на корпусе из примерно 2,97 млн текстовых примеров и 49,7 млн токенов на португальском языке.

Модель предназначена для автоматической расстановки знаков препинания и восстановления регистра в текстах. Архитектура — BERT с классификационной головой для токенов, размер — 136,1 млн параметров, максимальный контекст — 512 токенов. Для оценки использовались Macro F1 и Weighted F1; численные результаты в карточке не приведены. Файлы модели опубликованы в формате safetensors. Условия лицензии в предоставленных источниках не описаны.

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

  • расстановка знаков препинания в португальских текстах без пунктуации
  • восстановление заглавных букв в португальских расшифровках
  • постобработка автоматических транскрипций на португальском языке

Ограничения

Контекст ограничен 512 токенами. В карточке не приведены численные результаты оценки и сведения о лицензии.

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

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

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

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

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

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

Открыть на Hugging Face

Portuguese punctuation and capitalisation restoration model

Details of the model

This is a reduced version of the Portuguese 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 neuralmind/bert-base-portuguese-cased model fine-tuned for punctuation restoration using the following data distribution.

LanguageNumber of text samplesNumber of tokens
Portuguese2,974,05849,720,263

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

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

from transformers import pipeline, AutoModelForTokenClassification, AutoTokenizer
import torch

def get_result_text_es_pt (list_entity, text, lang):
    result_words = []
    tmp_word = ""
    if lang == "es":
        punc_tags = ['¿', '?', '¡', '!', ',', '.', ':']
    else:
        punc_tags = ['?', '!', ',', '.', ':']
    
    for idx, entity in enumerate(list_entity): 
        tag = entity["entity"]
        word = entity["word"]
        start = entity["start"]
        end = entity["end"]
        
        # 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 = "pt"
model_path = "VOCALINLP/portuguese_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 = "é preciso fazer análises ao sangue à urina e aos ouvidos"
result = pipe(text)

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

Created by VOCALI SISSTEMAS INTELIGENTES S.L.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertForTokenClassification
Ревизия весов
7e3a2d9

0 моделей