Tự động trích xuất tên, công ty và ngày tháng từ văn bản
NER giải quyết những gì mà regex không làm được
Regex rất tốt cho các mẫu cố định: mã bưu chính luôn có đúng số chữ số, email luôn có @. Nhưng tên người, tên công ty và ngày tháng lại không có mẫu cố định:
- "Nguyễn Văn An", "Trần Thị Bích Ngọc", "Tiến sĩ Minh" — đều là tên người
- "Vinamilk", "Ngân hàng Vietcombank", "Tập đoàn FPT", "Tiệm Bác Tư" — đều là công ty
- "ngày 5 tháng 1", "05/01/2026", "thứ Sáu tuần trước", "tháng tới" — đều là ngày tháng
NER sử dụng mô hình ngôn ngữ học được cách hiểu ngữ cảnh: "công ty Vietcombank" so với "đường Vietcombank". Regex không thể phân biệt được điều này; NER làm được trong hơn 95% trường hợp.

Thực thể chuẩn và thực thể tùy chỉnh
Các mô hình NER công khai (spaCy, HuggingFace) nhận diện được:
- PER (Người): Nguyễn Văn An, Tiến sĩ Minh
- ORG (Tổ chức): Vinamilk, Google
- LOC (Địa điểm): Hà Nội, Việt Nam
- DATE: ngày 5 tháng 1, 2026
- MONEY: 1.500.000 VNĐ, USD 200
- TIME: 15h30, lúc 9 giờ sáng
- PERCENT: 20%, 0.5
Đối với các lĩnh vực chuyên biệt, bạn có thể huấn luyện mô hình tùy chỉnh. Ví dụ:
- Pháp lý: luật (Luật 13.709), số vụ án, tòa án
- Y tế: thuốc, bệnh (ICD-10), thủ thuật
- Tài chính: mã cổ phiếu, chi nhánh, tài khoản
Brainiall cung cấp mô hình tùy chỉnh theo yêu cầu trong gói Business.
Cách hoạt động bên trong (trong 30 giây)
1. Tokenization: văn bản được tách thành từ và dấu câu
2. POS tagging: mỗi từ được gán một loại từ (danh từ, động từ...)
3. Ngữ cảnh hóa: mỗi từ được chuyển thành vector 768+ chiều có tính đến các từ lân cận
4. Phân loại BIO: mỗi token được đánh dấu là Begin-entity, Inside-entity hoặc Outside. Ví dụ: "Nguyễn" (B-PER) "Văn An" (I-PER) "làm việc" (O) "tại" (O) "Vinamilk" (B-ORG)
5. Tổng hợp: các token B+I liên tiếp được gộp thành một thực thể duy nhất
Các mô hình hiện đại (mBERT, XLM-R, multilingual DeBERTa) chạy pipeline này trong khoảng 10–50ms cho một đoạn văn.
Các trường hợp sử dụng thực tế
- Làm giàu CRM: trích xuất công ty và liên hệ từ email để cập nhật cơ sở dữ liệu
- Phân tích tin tức: theo dõi các đề cập đến thương hiệu, đối thủ cạnh tranh, lãnh đạo trên truyền thông
- Tuân thủ pháp lý: tìm tên cá nhân trong tài liệu để kiểm toán bảo mật dữ liệu
- Nghiên cứu: trích xuất tác giả, trích dẫn, ngày tháng từ các bài báo học thuật ở quy mô lớn
- Phân tích pháp lý: xác định các bên trong vụ kiện, luật được trích dẫn, ngày xét xử
Hạn chế đặc thù với tiếng Việt
- Tên ghép có dấu thanh và âm tiết: "Nguyễn Thị Bích Ngọc" — một số mô hình có thể tách nhầm thành nhiều thực thể riêng lẻ
- Tên doanh nghiệp không chính thức: "Tiệm Bác Tư" có thể bị nhận nhầm là mô tả thông thường, không phải thực thể
- Biệt danh: "Bác Hồ" là người hay danh xưng — độ nhạy cảm ngữ cảnh thay đổi tùy mô hình
- Địa chỉ Việt Nam: Số nhà + Đường + Phường + Quận — phân đoạn có thể bị sai
- Từ viết tắt: "ĐHQG" là thực thể hay chỉ là từ viết tắt thông thường?
Mẹo: với các trường hợp khó phân loại, hãy luôn xem xét thủ công ít nhất 100 ví dụ trước khi đưa vào môi trường sản xuất.
Tích hợp qua API
Endpoint duy nhất trả về mảng các thực thể:
`python
import httpx
r = httpx.post(
"https://api.brainiall.com/api/nlp/ner",
json={"text": "Pedro Silva, da Petrobras, anunciou em 5 de janeiro."},
headers={"Authorization": "Bearer brnl-xxx"}
)
# [{"text": "Pedro Silva", "type": "PER", "start": 0, "end": 11},
# {"text": "Petrobras", "type": "ORG", "start": 16, "end": 25},
# {"text": "5 de janeiro", "type": "DATE", "start": 40, "end": 52}]`
Dùng thử ngay bây giờ
Nhập "trích xuất người, công ty và ngày tháng từ đoạn văn này: [dán vào]" trong chat Brainiall. Hoặc gọi trực tiếp qua API /api/nlp/ner. Gói Pro có 10k requests/tháng; gói Business cung cấp xử lý batch và mô hình tùy chỉnh.