Downloads · 30 days
0
saidylive/newsintel-ner
newsintel-ner is a token classification model from saidylive. Use it when you need labels on individual words, such as names. It is set up for onnxruntime. The card lists the license as cc-by-nc-4.0.
Multilingual NER for public-safety reporting (person, org, location, vehicle, crime/disaster type, …).
Downloads · 30 days
0
Access
Public
Updated Aug 1, 2026
Repo size
1.4 GB
Likes
0
Public
Click a slice to open those files.
.onnx1.4 GB · 99%
From the Hugging Face model README
Multilingual NER for public-safety reporting (person, org, location, vehicle, crime/disaster type, …).
Part of NewsIntel AI — a CPU-deployable, LLM-free pipeline that extracts structured public-safety events (accidents, disasters, crimes) from Bangladeshi news in Bengali and English. This model is stage 4 · entities (11 types) of that chain:
document → relevance gate → event-type router → evidence selection
→ NER → relation extraction → knowledge graph → structured event JSON
| Base model | xlm-roberta-base |
| Task | ner |
| Input | tokens |
| Max length | 256 |
| Format | ONNX INT8 (dynamic quantization), ~279 MB |
| Version | c2d3e275106dc |
| Languages | Bengali (primary, ~96% of training corpus), English |
OB-PERSONI-PERSONB-ORGI-ORGB-LOCATIONI-LOCATIONB-DATEI-DATEB-NUMBERI-NUMBERB-QUANTITYI-QUANTITYB-VEHICLEI-VEHICLEB-CROPI-CROPB-DISASTER_TYPEI-DISASTER_TYPEB-CRIME_TYPEI-CRIME_TYPEB-FACILITYI-FACILITYNone — this model emits raw scores; the caller ranks or thresholds.
argmax per token; aggregation_strategy='first'; BIO from id2label
These values also ship machine-readable in model_manifest.json, so a serving process can
consume the model without hardcoding anything.
| Metric | Value |
|---|---|
| seqeval F1 | 0.8407 |
| Precision | 0.826 |
| Recall | 0.856 |
# Torch-free: INT8 ONNX + the fast tokenizer's offset mapping.
from huggingface_hub import snapshot_download
import onnxruntime as ort, numpy as np
from transformers import AutoTokenizer
d = snapshot_download("saidylive/newsintel-ner", revision="c2d3e275106dc",
allow_patterns=["model_int8.onnx", "*.json", "*.model"])
tok = AutoTokenizer.from_pretrained(d, use_fast=True)
sess = ort.InferenceSession(f"{d}/model_int8.onnx", providers=["CPUExecutionProvider"])
enc = tok("সাভারে বাস-ট্রাকের সংঘর্ষে নিহত ২", return_offsets_mapping=True)
logits = sess.run(None, {"input_ids": np.array([enc["input_ids"]], dtype=np.int64),
"attention_mask": np.array([enc["attention_mask"]], dtype=np.int64)})[0][0]
# Aggregate sub-tokens into WORDS, each taking its FIRST sub-token's label
# (HF aggregation_strategy="first") — otherwise Bengali spans get truncated.
Or use the maintained implementation, which handles aggregation for you:
from newsintel_serving import ServingPipeline # pip install onnxruntime
Trained on the bd_eng_news_daily Kaggle corpus of Bangladeshi news (~713k articles,
~96% Bengali by character ratio). Labels are silver, not human-annotated: a teacher LLM
produced structured event annotations, which were distilled into these small models. No
manual annotation was performed at any stage.
This matters for how you read the metrics: they measure agreement with LLM-generated labels, not with human ground truth. There is no human-labelled evaluation set.
Released under cc-by-nc-4.0 — free to share and adapt for non-commercial purposes with attribution. Note that the training corpus consists of copyrighted news articles and the labels were LLM-distilled; downstream users are responsible for their own compliance.
@software{newsintel_ai,
title = {NewsIntel AI: distilled multilingual event extraction for Bangladeshi news},
author = {Md. Sheikh Saidy},
year = {2026},
url = {https://huggingface.co/saidylive/newsintel-ner}
}