Đóng góp · #pandavicuocsongtothon

Đóng góp cho VMAD.

Chào mừng bạn đến với cộng đồng phát triển VMAD! Bạn có thể đóng góp bằng cách bổ sung nguồn crawler mới, cải tiến bộ nhận diện ẩn danh hóa tiếng Việt (Presidio recognizers), hoặc tối ưu công cụ kiểm định chất lượng.

Yêu cầu môi trường

Trước khi bắt đầu.

  • Python 3.10+ (khuyến nghị dùng virtual environment `venv` hoặc `conda`).
  • Microsoft Presidio (`presidio-analyzer`, `presidio-anonymizer`).
  • spaCy Multilingual Model (`xx_ent_wiki_sm`).
  • Git, tài khoản GitHub và khóa SSH.
Quy trình làm việc

5 Bước tạo Pull Request.

01Bước

Clone repository

Fork repository trên GitHub, sau đó clone bản fork về máy tính của bạn:

git clone https://github.com/<your-username>/VMAD.git
cd VMAD
git remote add upstream https://github.com/Panda-Lab-VN/VMAD.git
02Bước

Cài đặt dependencies & Model

Khởi tạo môi trường ảo và cài đặt package cùng mô hình spacy:

# Tạo & kích hoạt virtualenv
python -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate   # Windows

# Cài đặt gói mở rộng đầy đủ
pip install -e ".[all]"
python -m spacy download xx_ent_wiki_sm
03Bước

Thu thập dữ liệu mẫu (Crawlers)

Chạy các crawler trong thư mục src/crawlers/ để kiểm tra:

# Crawl PubMed articles
python -m src.crawlers.pubmed_crawler --max 50 --output data/raw/pubmed_articles.jsonl

# (Optional) Tải mẫu từ VinBigData
python -m src.crawlers.vinbigdata_loader --sample 50 --output data/raw/vinbigdata_sample.jsonl
04Bước

Chạy Pipeline & Ẩn danh hóa

Thực thi quy trình chuẩn hóa dữ liệu và ẩn danh PHI:

python -c "
from src.data_loader import VMADDataLoader
from src.preprocessing import run_pipeline

loader = VMADDataLoader()
df = loader.load_all()
df_std = VMADDataLoader.standardize(df)
VMADDataLoader.save_standardized(df_std, 'data/processed/standardized.jsonl')

run_pipeline('data/processed/standardized.jsonl', 'data/processed/final_dataset.jsonl', run_anonymization=True)
"
05Bước

Chạy Test suite & Tạo PR

Đảm bảo toàn bộ unit test chạy thành công trước khi gửi Pull Request:

# Chạy toàn bộ unit test
pytest tests/ -v

# Tạo nhánh tính năng & commit
git checkout -b feature/add-new-recognizer
git commit -m "feat(anonymization): add custom vietnamese hospital recognizer"
git push origin feature/add-new-recognizer
06Bước

Review & Merge

Đội ngũ nòng cốt tại Panda Lab sẽ review PR của bạn, chạy kiểm tra CI tự động và merge vào nhánh chính.

Quy tắc Đóng góp

Lưu ý quan trọng.

  • Mọi bộ nhận diện PHI mới phải đi kèm unit test trong tests/.
  • Tuyệt đối không commit dữ liệu cá nhân thô (PHI) chưa qua ẩn danh lên repository.
  • Tuân thủ giấy phép nguồn mở Apache 2.0 đối với tất cả nguồn dữ liệu mới.