/ Модель

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

Контекст
512 токенов
Параметры
136 млн
Лицензия
Своя лицензия
Архитектура
bert · dense
Базовая модель
bert-base-portuguese-cased
Библиотека
transformers
Опубликована
25 июн 2026

CitiLink-SpanBERT-Coreference-pt

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

Модель связывает упоминания одних и тех же сущностей в португальских муниципальных протоколах для последовательной псевдонимизации данных.

41скачиваний за 30 дней0лайковвеса обновлены3 июл 2026

Бенчмарки

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

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

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

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

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

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

SpanBERT-PT-Coreference — модель разрешения кореференции, разработанная для португальских протоколов заседаний муниципальных советов. Она использует архитектуру ранжирования упоминаний поверх BERT-энкодера и связывает упоминания одной сущности в кластеры, чтобы обеспечить последовательную псевдонимизацию персональных и административных данных в документе. В README указано 110 млн параметров энкодера и около 25 млн параметров голов кореференции; метаданные каталога указывают 135,5 млн параметров.

Модель дообучена на португальских административных протоколах и поддерживает окно 512 токенов с перекрытием 128 токенов; длинные документы обрабатываются скользящими окнами. По карточке, модель специализируется на европейском португальском и 17 категориях сущностей. Для работы ей нужны spans сущностей от отдельной NER-модели; сама она их не обнаруживает. Модель рассчитана на административные протоколы, а качество на других типах документов может варьироваться. Лицензия указана как other, конкретные условия в предоставленных данных не раскрыты.

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

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

Ограничения

Модель требует готовых spans сущностей от внешней NER-модели и связывает только упоминания одного класса. Она специализирована на европейском португальском и протоколах заседаний; далёкие кореферентные упоминания и другие предметные области могут обрабатываться хуже.

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

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

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

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

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

Открыть на Hugging Face

SpanBERT-Coreference: Coreference Resolution for Portuguese Municipal Meeting Minutes

This model consists of a fine-tuned SpanBERT for coreference resolution in minutes of Portuguese municipal meetings, identifying when different expressions in a document refer to the same real-world entity.

Model Description

The SpanBERT-PT-Coreference uses a mention-ranking architecture (Lee et al., 2017) on top of a SpanBERT encoder pre-trained in Portuguese, specifically optimized for the linguistic and formal structure of administrative minutes in Portugal. The model detects coreferent mention clusters across 17 entity categories, enabling consistent pseudonymization of sensitive personal data throughout long documents.

Key Features

  • 🏛️ Specialized for Municipal Minutes: Fine-tuned on authentic Portuguese council meeting minutes
  • 🔗 Coreference-Aware Pseudonymization: Links multiple mentions of the same entity, ensuring consistent ID assignment across the document
  • 📄 Long Document Support: Handles documents of up to ~28,000 tokens via sliding window encoding with stride overlap
  • ⚙️ Mention-Ranking Architecture: Scores all antecedent candidates for each mention span and clusters them via Union-Find

Model Details

  • Base Model: SpanBERT (Portuguese continued pre-training)
  • Architecture: Mention-ranking coreference (Lee et al., 2017)
  • Parameters: ~110M (encoder) + ~25M (coreference heads)
  • Max Window Size: 512 tokens (stride: 128)
  • Fine-tuning Dataset: 120 Portuguese meeting minutes (6 municipalities, ~1.3M tokens)
  • Evaluation Metrics: MUC, B³, CEAF-e, CoNLL F1, LEA
  • Training Framework: PyTorch + Transformers

Entity Types

The model resolves coreference across 17 entity categories:

Entity TypeDescriptionExample
PERSONAL-NAMEProper names of individualsJoão Silva → João → ele
PERSONAL-ADMINAdministrative identifiers and process numbers5597/2023 → o processo
PERSONAL-POSITIONProfessional roles and political positionsPresidente da Câmara → o Presidente
PERSONAL-ADDRESSAddresses and street namesRua das Flores n.º 10 → Rua das Flores
PERSONAL-LOCATIONCities, parishes, or geographic locationsPorto → o concelho
PERSONAL-DATEDates of events or decisions20/05/2023
PERSONAL-COMPANYCompanies or private legal entitiesConstruções & Filho, Lda
PERSONAL-INFOBiographical or sensitive personal dataNIF, número de contribuinte
PERSONAL-DEGREEAcademic titles or professional degreesLicenciatura de Psicologia
PERSONAL-TIMEReferences to specific times14:30h
PERSONAL-LICENSELicense plates or registration numbers48-RF-99
PERSONAL-JOBPerson's profession or occupationProfessor
PERSONAL-VEHICLEVehicle identification and modelsMercedes-Benz Classe S
PERSONAL-FACULTYHigher education institutionsFaculdade de Economia
PERSONAL-FAMILYKinship or family relationshipsMarido
PERSONAL-ARTISTICArtistic names or pseudonymsPintura
PERSONAL-OTHERMiscellaneous personal informationDados diversos

Cluster Distribution (Training Set)

Entity ClassNumber of Clusters
PERSONAL-ADMIN273
PERSONAL-NAME259
PERSONAL-POSITION174
PERSONAL-ADDRESS115
PERSONAL-LOCATION64
PERSONAL-DATE49
PERSONAL-OTHER16
PERSONAL-INFO12
PERSONAL-COMPANY10
PERSONAL-DEGREE6
PERSONAL-LICENSE6
PERSONAL-VEHICLE4
PERSONAL-JOB4
PERSONAL-TIME3
PERSONAL-FAMILY2
PERSONAL-ARTISTIC1
Total998

How It Works

The model uses a two-stage pipeline. First, entity spans are identified by a NER model (liaad/CitiLink-XLMR-Anonymization-pt). Then, the coreference model groups spans that refer to the same entity, assigning consistent IDs throughout the document.

INPUT:

João Paulo Rosinha Daniel apresentou o requerimento n.º 2683/20020627.
O pedido de João Paulo, referente ao processo 2683/20020627, foi aprovado.

OUTPUT:

<NAME-1> apresentou o requerimento n.º <ADMIN-1>.
O pedido de <NAME-1>, referente ao processo <ADMIN-1>, foi aprovado.

Architecture Details

The mention-ranking model represents each span as:

span_repr = [h_start ; h_end ; head_attn ; width_emb]
           = [768 ; 768 ; 768 ; 20] = 2324 dims

Antecedent scoring uses:

score(i,j) = mention_score(i) + mention_score(j) + antecedent_score([vi; vj; vi*vj; dist_emb])

Clusters are built via Union-Find, restricted to spans of the same NER class and scores above threshold.

Results

Overall Performance (Test Set)

MetricPrecision (%)Recall (%)F1 Score (%)
MUC90.2092.8091.50
B³86.7092.5089.50
CEAF-e89.2074.4081.20
CoNLL F1——87.40
LEA64.8088.2074.80

Usage

Quick Start

The simplest way to use the model:

import torch
import json
from transformers import AutoTokenizer, AutoModel
from huggingface_hub import hf_hub_download

model_id = "inesctec/CitiLink-SpanBERT-Coreference-pt"

# Load tokenizer and encoder
tokenizer = AutoTokenizer.from_pretrained(model_id)
encoder   = AutoModel.from_pretrained(model_id)

# Load coreference heads and config
cabecas_path   = hf_hub_download(repo_id=model_id, filename="cabecas_coref.pt")
coref_cfg_path = hf_hub_download(repo_id=model_id, filename="coref_config.json")

with open(coref_cfg_path) as f:
    coref_cfg = json.load(f)

cabecas = torch.load(cabecas_path, map_location="cpu", weights_only=False)

# Input text (already tokenized by whitespace)
tokens = [
    "João", "Paulo", "Rosinha", "Daniel", "apresentou", "o",
    "requerimento", "n.º", "2683/20020627", ".",
    "O", "pedido", "de", "João", "Paulo", "foi", "aprovado",
    "ao", "abrigo", "do", "processo", "2683/20020627", "."
]

# NER spans already extracted by a NER model — (start, end, class)
ner_spans = [
    (0,  3,  "NAME"),   # "João Paulo Rosinha Daniel"
    (8,  8,  "ADMIN"),  # "2683/20020627"
    (13, 14, "NAME"),   # "João Paulo"
    (21, 21, "ADMIN"),  # "2683/20020627" (segunda ocorrência)
]

# Tokenize for encoder
inputs = tokenizer(tokens, is_split_into_words=True, return_tensors="pt")

# Run encoder
with torch.no_grad():
    outputs = encoder(**inputs)

print("Coreference model loaded successfully.")
print(f"Hidden states shape: {outputs.last_hidden_state.shape}")

Limitations

  • Domain Specificity: Best performance on administrative/governmental meeting minutes
  • Language: Trained exclusively on European Portuguese (PT-PT)
  • Window Size: Processes documents via 512-token sliding windows; very long-range coreference (>5,000 tokens apart) may be missed
  • NER Dependency: Requires entity spans from a NER model as input — does not perform span detection independently
  • Same-class Restriction: Only links mentions of the same NER entity class (e.g., NAME to NAME, never NAME to POSITION)
  • Dataset Size: Fine-tuned on 61 training documents; performance on highly specific sub-domains may vary

Version: 1.0
Last Updated: 2026-06-25


License

This project uses a custom dual-license based on AGPL v3.

See the full license terms here: LICENSE

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
8825aa7

0 моделей