Named Entity Recognition (NER)
Nhận dạng thực thể có tên (NER) tìm tên người, tổ chức, địa điểm, ngày tháng và số tiền trong văn bản, rồi gán nhãn loại thực thể cho từng mục.
Nhận dạng thực thể có tên (NER) là một tác vụ xử lý ngôn ngữ tự nhiên (NLP) nhằm tìm các đoạn văn bản gọi tên sự vật trong thế giới thực và gán cho mỗi đoạn một loại như người, tổ chức, địa điểm, ngày tháng hoặc số tiền. Trong câu "Marie Curie taught at the University of Paris from 1906," một model NER đánh dấu "Marie Curie" là người, "University of Paris" là tổ chức và "1906" là ngày tháng. Nhờ đó, email, báo cáo, hợp đồng và bản ghi lời thoại được chuyển thành hồ sơ có cấu trúc mà công cụ tìm kiếm, đồ thị tri thức, công cụ phân tích và công cụ bảo mật có thể sử dụng. Các hội nghị Message Understanding Conferences vào thập niên 1990 đã đưa NER trở thành một tác vụ đánh giá tiêu chuẩn, còn tác vụ dùng chung CoNLL-2003 xác định bốn loại vẫn được dùng làm chuẩn: người, địa điểm, tổ chức và loại khác. Các hệ phân loại lớn hơn như OntoNotes 5.0 định nghĩa 18 loại, bao gồm ngày tháng, số lượng, sản phẩm và sự kiện.
Cách NER hoạt động#
NER thường được xem là bài toán gán nhãn chuỗi. Một bộ tách từ chia văn bản thành các token, rồi model gán cho mỗi token một nhãn theo lược đồ BIO: B- đánh dấu điểm bắt đầu của một thực thể, I- đánh dấu token nằm bên trong thực thể và O đánh dấu token nằm ngoài mọi thực thể, nhờ đó các tên nhiều từ như "University of Paris" được giữ liền mạch. Đoạn code này chuyển các nhãn do model dự đoán thành các đoạn thực thể:
# Token-level BIO tags, as predicted by an NER model for one sentence
tokens = ["Marie", "Curie", "taught", "at", "the", "University", "of", "Paris", "from", "1906", "."]
tags = ["B-PER", "I-PER", "O", "O", "O", "B-ORG", "I-ORG", "I-ORG", "O", "B-DATE", "O"]
# Merge each B- tag with the I- tags that follow it into one entity span
entities = []
for token, tag in zip(tokens, tags):
if tag.startswith("B-"):
entities.append([token, tag[2:]])
elif tag.startswith("I-") and entities and entities[-1][1] == tag[2:]:
entities[-1][0] += f" {token}"
print(entities)Kết quả in ra là [['Marie Curie', 'PER'], ['University of Paris', 'ORG'], ['1906', 'DATE']], đầu ra có cấu trúc mà các hệ thống phía sau lưu trữ và truy vấn.
Các model dự đoán nhãn đã thay đổi trong suốt ba thập kỷ. Các hệ thống ban đầu sử dụng quy tắc viết thủ công và danh sách thực thể có tên đã biết. Các model gán nhãn thống kê như mô hình Markov ẩn và trường ngẫu nhiên có điều kiện học từ văn bản đã gán nhãn bằng các đặc trưng được thiết kế thủ công, chẳng hạn như cách viết hoa và hậu tố từ. Năm 2016, mạng LSTM hai chiều với lớp đầu ra CRF tự học các đặc trưng đó, sau đó là các Transformer được tinh chỉnh: BERT đạt điểm F1 là 92.8 trên tập kiểm tra CoNLL-2003. Self-attention cho phép các model này sử dụng toàn bộ câu làm ngữ cảnh, vì vậy "Apple" được gán nhãn là tổ chức trong câu "Apple released a new phone" và không được gán nhãn trong câu "I ate an apple." Các hệ thống được chấm điểm bằng độ chính xác, độ bao phủ và điểm F1 ở cấp thực thể; một dự đoán chỉ được tính nếu cả đoạn văn bản và loại đều khớp chính xác với dữ liệu tham chiếu.
Các model mới hơn loại bỏ tập nhãn cố định. GLiNER, một Transformer hai chiều gọn nhẹ, nhận tên loại thực thể làm đầu vào và tìm các đoạn khớp với những loại chưa từng thấy trong quá trình huấn luyện; mô hình ngôn ngữ lớn cũng trích xuất thực thể khi được nhắc bằng lược đồ và yêu cầu tạo đầu ra có cấu trúc.
NER và các tác vụ liên quan#
- Liên kết thực thể: Kết nối mỗi lượt nhắc đến được nhận diện với một mục cụ thể trong cơ sở tri thức như Wikidata, để "Paris" được xác định là thành phố hoặc Paris Hilton.
- Trích xuất quan hệ: Tìm cách các thực thể kết nối với nhau, chẳng hạn người nào làm việc cho tổ chức nào; tác vụ này thường sử dụng đầu ra NER.
- Phân tích cảm xúc: Đo lường quan điểm được thể hiện trong văn bản. NER xác định nội dung mà một bài đánh giá đề cập đến, còn phân tích cảm xúc đo lường cảm nhận của người viết về nội dung đó.
- Phát hiện đối tượng: Tác vụ tương ứng với NER trong lĩnh vực hình ảnh, xác định vị trí các vùng trong ảnh và gán nhãn lớp cho từng vùng.
Ý tưởng nhãn mở của GLiNER có phiên bản tương ứng trực tiếp trong thị giác máy tính: YOLOE-26, phiên bản từ vựng mở của Ultralytics YOLO26, nhận tên lớp dưới dạng prompt văn bản tại thời điểm suy luận, sau đó phát hiện và phân đoạn các đối tượng thuộc những lớp đó, kể cả các lớp nằm ngoài danh mục huấn luyện.
Ứng dụng thực tế#
Xử lý tài liệu kết hợp NER với nhận dạng ký tự quang học (OCR): hóa đơn, hợp đồng và biểu mẫu được quét, OCR đọc văn bản, còn NER trích xuất các trường như nhà cung cấp, ngày tháng và tổng số tiền để đưa vào hệ thống kế toán và tuân thủ. Pipeline production chuyển các dự đoán không chắc chắn cho con người và học từ những chỉnh sửa của họ:
- Ẩn thông tin định danh cá nhân (PII): Các công cụ bảo mật như Presidio mã nguồn mở của Microsoft sử dụng NER cùng với quy tắc mẫu để tìm và che tên, địa chỉ và số tài khoản trước khi chia sẻ văn bản hoặc dùng văn bản để huấn luyện.
- Khai thác văn bản lâm sàng: NER lâm sàng trích xuất thuốc, liều lượng, triệu chứng và chẩn đoán từ ghi chú của bác sĩ, giúp bệnh viện và nhà nghiên cứu tìm kiếm, phân tích hồ sơ trên quy mô lớn.
- Tìm kiếm và đề xuất: Các trang tin tức và nền tảng nội dung gắn thẻ bài viết bằng tên người, công ty và địa điểm được đề cập, qua đó hỗ trợ tìm kiếm thực thể và đề xuất tin liên quan.










