Hướng dẫn Chi Tiết về Thư Viện NLP: Từ Cơ Bản Đến Thực Tập

Thư viện NLP này được thiết kế để hỗ trợ người mới bắt đầu và nhà phát triển thực tế, bao gồm các nhiệm vụ NLP cơ bản như tăng cường văn bản, chatbot, phân loại văn bản, nhận diện thực thể tên, và cung cấp một lộ trình học tập toàn diện từ lý thuyết đến triển khai mã.

Tổng Quan Về Các Chức Năng Chính Của Thư Viện

NLP được tổ chức dưới dạng cấu trúc mô-đun với sáu chức năng chính:

1. Tăng cường Văn Bản (TextEnhancer)

Cung cấp các kỹ thuật tăng cường dữ liệu để giải quyết vấn đề thiếu hụt dữ liệu trong các nhiệm vụ NLP:

  • Định hướng lại: Sử dụng dịch thuật để tạo ra câu đồng nghĩa (hiệu quả nhất).
  • EDA: Thay thế từ đồng nghĩa, chèn ngẫu nhiên, hoán đổi và xóa bỏ (hiệu quả ổn định).
  • Tăng cường ngữ pháp: Thay đổi cấu trúc câu dựa trên phân tích ngữ pháp phụ thuộc (phù hợp cho câu đơn giản).
  • Tạo câu bằng Seq2Seq: Sử dụng học sâu để tạo câu đồng nghĩa (cần tối ưu thêm).

Mã nguồn liên quan nằm ở: TextEnhancer/

2. Chatbot

Triển khai hệ thống đối thoại dựa trên tìm kiếm, hỗ trợ nhiều chiến lược phù hợp:

  • Phù hợp mờ: Phù hợp dựa trên độ tương tự chuỗi (chatbot_fuzzy.py).
  • Tìm kiếm vector câu: Sử dụng vector từ hoặc ký tự để thực hiện phù hợp ngữ nghĩa.
    • Phiên bản vector từ: chatbot_sentence_vec_by_word.py.
    • Phiên bản vector ký tự: chatbot_sentence_vec_by_char.py.

3. Phân loại Văn Bản (TextClassifier)

Xây dựng các kiến trúc phân loại văn bản dựa trên BERT, đạt độ chính xác 0.78~0.79% trong cuộc thi của Trí tuệ nhân tạo Ngân hàng WeBank:

  • BERT+Bi-LSTM.
  • BERT+Text-CNN.
  • BERT+R-CNN.
  • BERT+AVT-CNN.

Mã nguồn: TextClassifier/bert/

4. Nhận diện Thực Thể Tên (NamedEntityRecognizer)

Hệ thống trích xuất thực thể tên dựa trên kiến trúc BERT+BiLSTM+CRF:

  • Hỗ trợ các loại thực thể tùy chỉnh.
  • Cung cấp quy trình huấn luyện, đánh giá và dự đoán đầy đủ.
  • Triển khai chính: keras_bert_ner_bi_lstm.py.

5. Dự án Đặc trưng (FeatureEngineering)

Cung cấp các công cụ trích xuất đặc trưng văn bản và tính toán độ tương tự:

  • Đặc trưng từ mô hình tiền huấn luyện: Vector câu BERT (extract_keras_bert_feature.py), XLNet.
  • Đặc trưng văn bản truyền thống: TF-IDF, khoảng cách vector từ, tương tự TS-SS.
  • Công cụ chuẩn hóa: Chuẩn hóa 0-1, chuẩn hóa trung bình, chuẩn hóa Sigmoid.

6. Tập Dữ Liệu (Dataset)

Gồm nhiều tập dữ liệu đã xử lý và mô hình tiền huấn luyện:

  • Mô hình tiền huấn luyện BERT tiếng Trung (chinese_L-12_H-768_A-12/).
  • Mô hình tiền huấn luyện XLNet tiếng Trung (chinese_xlnet_mid_L-24_H-768_A-12/).
  • Văn bản NER Báo Nhân Dân, dữ liệu cuộc thi độ tương tự văn bản WeBank, văn bản trò chuyện Xiao Huang Ji.

Hướng Dẫn Nhanh Để Bắt Đầu

Chuẩn bị Môi Trường

  1. Clone kho chứa:
  2. git clone https://gitcode.com/gh_mirrors/nl/nlp_xiaojiang
    cd nlp_xiaojiang
  3. Cài đặt các thư viện phụ thuộc:
  4. pip install -r requirements.txt

    Lưu ý: Một số thư viện cần tải thủ công như python_Levenshtein và JPype1 (xem thông tin chi tiết trong file requirements.txt).

  5. Tải mô hình tiền huấn luyện:
    • Mô hình BERT và XLNet cần tải từ liên kết Baidu Cloud được chỉ định trong dự án.
    • Tệp vector từ cần thay thế bằng phiên bản đầy đủ để đạt hiệu quả tốt nhất.

Thử Dùng Các Chức Năng Cơ Bản

1. Tính Độ Tương Tự Văn Bản

# 1. Xử lý tiền và tạo tệp TF-IDF
python FeatureEngineering/cut_tf_idf.py

# 2. Tính độ tương tự câu (hỗ trợ nhập tùy chỉnh)
python FeatureEngineering/sentence_sim_feature.py

2. Thử Chatbot

# Phiên bản phù hợp mờ
python Chatbot/chatbot_search/chatbot_fuzzy.py

# Phiên bản tìm kiếm vector từ
python Chatbot/chatbot_search/chatbot_sentence_vec_by_word.py

3. Tăng cường Văn Bản

# Tăng cường EDA
python TextEnhancer/augment_eda/enhance_eda.py

# Tăng cường định hướng lại
python TextEnhancer/augment_translate/translate_tools/translate_translate.py

Chi Tiết Mô-đun Và Các Trường Hợp Áp Dụng

Kiểm Tra Chi Tiết Mô-đun Tăng cường Văn Bản

Tăng cường dữ liệu là phương pháp hiệu quả để giải quyết thiếu hụt dữ liệu trong các nhiệm vụ NLP. Thư viện NLP cung cấp nhiều chiến lược tăng cường, phù hợp với các trường hợp sử dụng khác nhau:

  • Nghiên cứu học thuật: Đề xuất sử dụng định hướng lại và tăng cường ngữ pháp, giữ nguyên độ chính xác ngữ nghĩa.
  • Áp dụng công nghiệp: Ưu tiên phương pháp EDA, chi phí tính toán thấp và hiệu quả ổn định.
  • Tiếng ít tài nguyên: Có thể thử kết hợp tăng cường Seq2Seq với kiểm duyệt nhỏ lượng.

Thực hiện chính tham khảo: TextEnhancer/augment_eda/ và TextEnhancer/augment_translate/

Ứng Dụng Thực Chiến Của BERT

Ứng dụng mô hình BERT trải dài qua nhiều mô-đun, bao gồm phân loại văn bản, nhận diện thực thể tên và trích xuất đặc trưng:

  1. Quy trình phân loại văn bản:
    • Xử lý dữ liệu: TextClassifier/bert/.
    • Huấn luyện mô hình: Hỗ trợ nhiều tổ hợp kiến trúc mạng.
    • Chỉ số đánh giá: Độ chính xác đạt 0.78~0.79% (dữ liệu cuộc thi WeBank).
  2. Trích xuất đặc trưng:
    • Tạo vector câu: extract_keras_bert_feature.py.
    • Tính toán độ tương tự: tet_bert_keras_sim.py.

Kỹ Năng Thực Hiện Và Lưu Ý

  1. Sơ chế dữ liệu:
    • Mô hình tiền huấn luyện và vector từ đầy đủ cần tải riêng (liên kết Baidu Cloud được cung cấp trong dự án).
    • Tập ngữ liệu cần giải nén vào thư mục Data/corpus/.
  2. Tối ưu hóa hiệu suất:
    • Tính toán vector câu khuyến nghị sử dụng GPU.
    • Xử lý dữ liệu lớn có thể thực hiện từng phần.
  3. Nâng mở phát triển:
    • Những mô hình mới có thể kế thừa kiến trúc hiện tại.
    • Tập dữ liệu tùy chỉnh cần tuân theo định dạng dữ liệu hiện tại.

Thẻ: NLP BERT chatbot feature-extraction entity-recognition

Đăng vào ngày 24 tháng 5 lúc 17:39