Hate Speech Span Detection
Collection
4 items
•
Updated
Fine-tuned from vinai/phobert-base
on visolex/ViHOS for token-level hate/offensive span detection.
vinai/phobert-base
16
5e-5
100
128
5
from transformers import AutoTokenizer, AutoModelForTokenClassification
tokenizer = AutoTokenizer.from_pretrained("visolex/phobert-hsd-span")
model = AutoModelForTokenClassification.from_pretrained("visolex/phobert-hsd-span")
text = "Nói cái lol . t thấy thô tục vl"
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits # [batch, seq_len, num_labels]
# For binary: use sigmoid, for multi-class: use softmax+argmax
probs = torch.sigmoid(logits)
preds = (probs > 0.5).long().squeeze().tolist() # [seq_len]
tokens = tokenizer.convert_ids_to_tokens(inputs['input_ids'][0])
span_labels = [p[0] for p in preds]
span_tokens = [token for token, label in zip(tokens, span_labels) if label == 1 and token not in ['<s>', '</s>']]
print("Span tokens:", span_tokens)
print("Span text:", tokenizer.convert_tokens_to_string(span_tokens))
Base model
vinai/phobert-base