4. Kiến thức nền tảng
Các kiến thức cần nắm vững cho Track 2
🏥 Medical Named Entity Recognition (NER)
NER = trích xuất thực tử có ý nghĩa từ văn bản tự do.
Đặc thù y khoa:
- Thuật ngữ chuyên ngành, viết tắt
- Đồng nghĩa, đa nghĩa
- Lỗi chính tả
- Abbreviation không chuẩn
Kiến trúc phổ biến:
- PhoBERT (BERT for Vietnamese) — chuẩn cho NER tiếng Việt (135M params, chạy CPU được)
- BioBERT — pre-trained trên PubMed articles
- PubMedBERT — pre-trained từ đầu trên PubMed
📋 ICD-10 (International Classification of Diseases, 10th Revision)
- Chuẩn quốc tế về mã bệnh
- Cấu trúc:
[A-Z][0-9]{2}(.[0-9]{1,2})? - VD:
K21.0= Trào ngược thực quản có viêm,K21.9= Trào ngược thực quản không viêm - Nguồn dữ liệu:
- WHO: https://icd.who.int/browse10/
- Bộ Y tế Việt Nam: ICD-10 tiếng Việt
- UMLS Metathesaurus
Mapping strategy:
Entity text → Chuẩn hóa (lowercase, remove stopwords)
→ Fuzzy match ICD-10 description
→ Top-k candidates
→ Hoặc: embedding → cosine similarity
💊 RxNorm
- Chuẩn mã thuốc của Hoa Kỳ
- Mỗi concept có RxCUI (RxNorm Concept Unique Identifier)
- Các Term Type (TTY) quan trọng:
TTY Ý nghĩa Ví dụ IN Ingredient (hoạt chất) nystatin(7597)PIN Precise Ingredient SCD Semantic Clinical Drug nystatin 100000 UNT/ML Oral SuspensionSBD Semantic Branded Drug Mycostatin 100000 UNT/ML Oral SuspensionBN Brand Name Mycostatin
Các vấn đề khi mapping:
- Ingredient vs Clinical Drug — BTC output mẫu dùng IN (7597) thay vì SCD (373136) cho nystatin
- Range liều — 325-650 mg: chọn lower bound (325mg)
- Generic vs Brand — ưu tiên generic
- Multi-ingredient — thuốc phối hợp → cần làm rõ span và candidate
Nguồn dữ liệu:
- RxNorm full: https://lhncbc.nlm.nih.gov/RxNav/
- RxNorm API: https://rxnav.nlm.nih.gov/
- File download: https://www.nlm.nih.gov/research/umls/rxnorm/
🔗 Ontological Reasoning
Ontology = biểu diễn tri thức dưới dạng:
- Concepts (khái niệm)
- Relations (quan hệ)
- Properties (thuộc tính)
Trong bài toán này:
- Concept: disease, drug, symptom, lab test
- Relation:
Treats(thuốc → bệnh),HasSymptom(bệnh → triệu chứng) - Context:
isNegated,isFamily,isHistorical
🧪 Contextual Reasoning (Negation Detection)
Có thể implement bằng:
- Rule-based (dependency parsing):
(negation_word) + (entity) → isNegated - Model-based: Fine-tune NER model với BIO tags mở rộng
- LLM-based: Prompt LLM để xác định context
📊 Metrics (cần confirm từ BTC)
Các metric thường dùng cho bài toán này:
- Entity-level F1 — span + type accuracy
- Code mapping accuracy — ICD-10 / RxNorm match rate
- Assertion accuracy — F1 cho negation/family/history
- Levenshtein-based — cho span boundary
⏳ Cần chờ BTC công bố evaluation metric chính thức
🗂️ Public medical datasets (tham khảo)
| Dataset | Language | Task |
|---|---|---|
| i2b2 2010 | EN | Concept extraction + assertion |
| n2c2 | EN | Clinical NER + relation |
| MedMentions | EN | Biomedical NER |
| VNMedNER | VI | Vietnamese medical NER |
| PhoNER | VI | Vietnamese NER (general) |