Named Entity Recognition
NER - Nhận dạng thực thể có tên
Đọc tin: "Nguyễn Quang Hải ghi bàn cho CLB Hà Nội tại sân Mỹ Đình". Có bao nhiêu THỰC THỂ (tên riêng)?
Chọn ví dụ bên dưới để xem NER tự động nhận dạng thực thể trong tin tức tiếng Việt. Mỗi màu = 1 loại thực thể!
Hình minh họa
VinAI[Tổ chức] công bố PhoBERT[Tổ chức] tại hội nghị ACL 2020[Thời gian] ở Seattle[Địa điểm]
Thực thể được trích xuất (4)
NER tự động "gạch chân" và phân loại tên người, địa điểm, tổ chức trong văn bản — giống biên tập viên báo chí đánh dấu bằng bút highlight!
Ứng dụng: xây dựng knowledge graph, hỗ trợ tìm kiếm, tự động phân loại tin tức, chatbot hiểu tên sản phẩm trên Shopee.
"Vinamilk công bố doanh thu tại Hà Nội" — IOB tagging cho "Vinamilk" và "Hà Nội" là gì?
IOB (Inside-Outside-Beginning) giải quyết thực thể nhiều từ. Mỗi token nhận 1 nhãn:
Giải thích
Named Entity Recognition (NER) là tác vụ gán nhãn thực thể cho từng token trong văn bản. Nền tảng cho trích xuất thông tin, xây dựng knowledge graph, và chatbot.
BERT: Mã hóa ngữ cảnh hai chiều → vector cho mỗi token.
CRF (Conditional Random Field): Đảm bảo nhãn hợp lệ (I-PER không xuất hiện sau B-LOC).
Trong đó s = emission score (BERT), T = transition score (CRF). CRF học rằng I-PER chỉ hợp lệ sau B-PER hoặc I-PER.
from transformers import pipeline
# NER tiếng Việt với PhoBERT
ner = pipeline("token-classification",
model="NlpHUST/ner-vietnamese-electra-base",
aggregation_strategy="simple")
text = "Nguyễn Quang Hải ghi bàn cho CLB Hà Nội tại Mỹ Đình"
entities = ner(text)
for ent in entities:
print(f" {ent['word']:>20} → {ent['entity_group']} "
f"({ent['score']:.2%})")
# Nguyễn Quang Hải → PER (98.5%)
# CLB Hà Nội → ORG (96.2%)
# Mỹ Đình → LOC (97.8%)
# Ứng dụng: tự động trích xuất từ tin tức VnExpress
# → Xây knowledge graph: Quang Hải --chơi cho--> CLB Hà Nội
# CLB Hà Nội --sân nhà--> Mỹ ĐìnhThách thức: tên người Việt 2-4 từ ("Nguyễn Quang Hải"), địa danh ghép ("Thành phố Hồ Chí Minh"). Dùng PhoBERT hoặc VnCoreNLP cho kết quả tốt nhất. Dataset: PhoNER (VinAI) — 15K câu tiếng Việt đã gán nhãn.
- NER nhận dạng và phân loại thực thể: PER (người), LOC (nơi), ORG (tổ chức), DATE (thời gian).
- IOB tagging: B = bắt đầu, I = bên trong, O = ngoài thực thể — xử lý thực thể nhiều từ.
- Kiến trúc hiện đại: BERT (hiểu ngữ cảnh) + CRF (đảm bảo nhãn hợp lệ).
- PhoBERT + CRF đạt F1 > 90% cho NER tiếng Việt.
- Ứng dụng: knowledge graph, tìm kiếm, chatbot, phân tích tin tức tự động.
Kiểm tra hiểu biết
Từ 'Apple' có thể là tổ chức (Apple Inc.) hoặc trái cây. NER xử lý thế nào?