Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Tự động tạo nhãn dữ liệu từ văn bản bằng spaCy
Hướng Dẫn Đồ ÁnLập Trình AI

Tự động tạo nhãn dữ liệu từ văn bản bằng spaCy

Chia sẻ
Chia sẻ

Trong các bài toán học máy liên quan đến xử lý ngôn ngữ tự nhiên (NLP), dữ liệu được gán nhãn đóng vai trò cực kỳ quan trọng. Tuy nhiên, quá trình gán nhãn thủ công cho văn bản thường tốn thời gian và chi phí. Đây là lúc các công cụ như spaCy phát huy sức mạnh: giúp bạn tự động gán nhãn từ dữ liệu thô, rút ngắn quá trình chuẩn bị tập huấn luyện.

Nếu bạn từng đọc qua bài Hướng dẫn dùng LabelImg để gán nhãn dữ liệu ảnh thì việc gán nhãn dữ liệu văn bản bằng spaCy cũng là một bước không thể thiếu trong pipeline NLP. Bên cạnh đó, bài Phân tích cảm xúc Facebook bằng PythonTạo pipeline học máy đầy đủ từ raw data đến model sẽ giúp bạn hiểu rõ cách kết nối dữ liệu gán nhãn vào huấn luyện mô hình thực tế.

Bài viết này sẽ hướng dẫn bạn sử dụng spaCy để tự động gán nhãn cho văn bản, bao gồm Named Entity Recognition (NER), tokenization, và chuyển đổi sang định dạng có thể dùng để huấn luyện mô hình.

Giới thiệu về spaCy và NER

spaCy là thư viện NLP mạnh mẽ và nhanh gọn, hỗ trợ nhiều ngôn ngữ và đi kèm với các mô hình được huấn luyện sẵn. Một trong những tính năng nổi bật nhất của spaCy là nhận dạng thực thể có tên (NER).

NER là kỹ thuật phân tích văn bản để nhận diện và phân loại các thực thể như:

  • Tên người (PERSON)
  • Tổ chức (ORG)
  • Địa điểm (GPE)
  • Ngày tháng (DATE),…

Thay vì bạn phải ngồi gán nhãn từng đoạn văn bản, mô hình có sẵn trong spaCy sẽ hỗ trợ tự động nhận diện và phân loại nhanh chóng.

Cài đặt spaCy và mô hình

Trước tiên, bạn cần cài spaCy và tải mô hình tiếng Anh hoặc tiếng Việt nếu có hỗ trợ.

pip install spacy
python -m spacy download en_core_web_sm

Nếu bạn muốn áp dụng cho tiếng Việt, có thể dùng mô hình do cộng đồng huấn luyện như vi_spacy_model, hoặc kết hợp thêm underthesea, pyvi để xử lý sơ bộ.

Tự động gán nhãn NER cho văn bản

Sau khi đã cài đặt xong, chúng ta thử dùng mô hình tiếng Anh mặc định để gán nhãn cho một đoạn văn bản.

import spacy

nlp = spacy.load("en_core_web_sm")
text = "Apple is looking at buying U.K. startup for $1 billion"
doc = nlp(text)

for ent in doc.ents:
    print(ent.text, ent.label_)

Đoạn code trên sẽ tự động trích xuất các thực thể như “Apple” (ORG), “U.K.” (GPE), và “$1 billion” (MONEY).

Chuyển dữ liệu đã gán nhãn sang định dạng huấn luyện

Để huấn luyện mô hình NER tuỳ chỉnh, bạn cần có dữ liệu ở định dạng TRAIN_DATA, gồm cặp (văn bản, từ điển các thực thể).

spaCy cho phép bạn chuyển đổi dữ liệu đã phân tích sang định dạng này.

TRAIN_DATA = []

for ent in doc.ents:
    TRAIN_DATA.append((ent.start_char, ent.end_char, ent.label_))

example = (text, {"entities": TRAIN_DATA})
print(example)

Bạn có thể lặp qua nhiều văn bản và gom lại thành tập dữ liệu để fine-tune mô hình của riêng mình.

Tự động gán nhãn nhiều dòng văn bản

Nếu bạn có danh sách văn bản (từ file CSV, JSON, hoặc crawl web), có thể áp dụng pipeline spaCy để xử lý hàng loạt.

texts = [
    "Facebook acquired WhatsApp in 2014",
    "Barack Obama was born in Hawaii",
    "Amazon plans to open a new warehouse in Texas"
]

data = []
for t in texts:
    doc = nlp(t)
    entities = [(ent.start_char, ent.end_char, ent.label_) for ent in doc.ents]
    data.append((t, {"entities": entities}))

print(data)

Sau bước này, bạn có thể lưu data vào file JSON hoặc .spacy để dùng trong huấn luyện.

Kết luận

Tự động gán nhãn văn bản là bước giúp tăng tốc phát triển hệ thống NLP. Với sự hỗ trợ từ spaCy, bạn có thể dễ dàng chuyển từ dữ liệu thô sang tập huấn luyện chuẩn hóa để fine-tune mô hình hoặc phục vụ phân tích thực thể.

spaCy không chỉ hỗ trợ NER mà còn hỗ trợ POS tagging, Dependency Parsing và nhiều công cụ mạnh khác. Bạn có thể kết hợp spaCy với các thư viện như Hugging Face, hoặc dùng các mô hình tiếng Việt để mở rộng hệ thống xử lý ngôn ngữ tiếng Việt tự động và thông minh hơn.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!