Tăng cường dữ liệu văn bản trong NLP

Tăng cường dữ liệu (data augmentation) là kỹ thuật giúp tăng kích thước của tập dữ liệu huấn luyện bằng cách tạo ra các phiên bản khác nhau của bộ dữ liệu thực mà không cần thiết phải thu thập thêm dữ liệu.

Kỹ thuật này được sử dụng trong Xử lý ngôn ngữ tự nhiên và thị giác máy tính nhằm giải quyết tình trạng khan hiếm dữ liệu và không đủ đa dạng dữ liệu. Đối với thị giác máy tính, sẽ  tương đối dễ dàng để tạo ra các hình ảnh tăng cường, nhưng điều tương tự không xảy ra với xử lý ngôn ngữ tự nhiên do tính phức tạp vốn có trong ngôn ngữ. 

Vậy làm thế nào để tăng cường dữ liệu văn bản trong NLP?

FriData tuần này sẽ gợi mở các kỹ thuật giúp bạn tạo ra dữ liệu văn bản tăng cường, từ đó cải thiện hiệu suất của mô hình. Chú ý, các kỹ thuật tăng cường dữ liệu được áp dụng theo bốn cấp độ: ký tự, từ, cụm từ, tài liệu.

Các kỹ thuật tăng cường dữ liệu văn bản. Nguồn ảnh: analyticsvidhya.

Easy Data Augmentation (EDA)

Trong kỹ thuật này, một từ được chọn ngẫu nhiên và được thay thế bằng từ đồng nghĩa hoặc hai từ được chọn hoán đổi vị trí cho nhau. Các kỹ thuật EDA bao gồm:

  • Thay thế từ đồng nghĩa (Synonym replacement)
  • Thay thế dựa trên embedding của từ (Word Embedding based Replacement): Có thể sử dụng mô hình nhúng từ được huấn luyện trước như GloVe, Word2Vec, fastText để tìm các vectơ gần nhất với vectơ biểu diễn của từ cần thay thế trên không gian ngữ nghĩa (semantic space). Các từ có véc-tơ biểu diễn càng gần nhau thì có độ tương đồng về mặt ngữ pháp trong câu nói càng lớn. Chúng ta có thể tận dụng đặc điểm này để thay thế một số từ hoặc cụm từ ở câu gốc.
  • Thay thế dựa trên từ vựng: Wordnet là một cơ sở dữ liệu từ vựng cho tiếng Anh bao gồm nghĩa của từ, từ trái nghĩa, các quan hệ ngữ nghĩa khác, v.v. Wordnet có thể được sử dụng để tìm từ đồng nghĩa cho token/từ mong muốn từ câu gốc cần được thay thế. NLTK, Spacy là các thư viện NLP viết bằng python có thể được sử dụng để tìm và thay thế các từ đồng nghĩa từ câu gốc.

Backtranslation

Backtranslation là kỹ thuật ở đó một câu được dịch sang ngôn ngữ khác và sau đó tiếp tục dịch câu mới về ngôn ngữ gốc. Vì vậy, các câu khác nhau sẽ được tạo ra.

Nguồn ảnh: Amit Chaudhary “Back Translation for Text Augmentation with Google Sheets”

Generative Models

Mô hình sinh GAN là một kiến trúc học sâu bao gồm hai mạng nơ-ron cạnh tranh với nhau để sinh ra các ví dụ mới giống với dữ liệu thật. Một mạng được gọi là bộ sinh (generator), nhận đầu vào là các câu văn ngẫu nhiên và tạo ra dữ liệu giả. Mạng kia được gọi là bộ phân biệt (discriminator), nhận đầu vào là dữ liệu thật hoặc giả và cố gắng phân biệt chúng.

Để sinh các câu văn có tính tương đồng với tập dữ liệu tham chiếu bạn cần xây dựng và huấn luyện hai mạng nơ-ron để chúng có thể học được phân phối của tập dữ liệu và tạo ra các văn bản mới.

Thực hành tăng cường dữ liệu văn bản với TextAttack

TextAttack là một Python framework được sử dụng cho adversarial attacks (tấn công học máy đối nghịch), adversarial training (đào tạo mạng đối nghịch) và tăng cường dữ liệu trong NLP. Trong bài viết này, ta sẽ chỉ tập trung vào tăng cường dữ liệu văn bản.

Lớp textattack.Augmenter trong texattack cung cấp sáu phương thức khác nhau để tăng cường dữ liệu.

1) WordNetAugmenter

WordNetAugmenter tăng cường văn bản bằng cách thay thế các từ bằng từ đồng nghĩa do WordNet  cung cấp.

Ví dụ: 

Đầu ra: [‘start each day with positive thoughts and induce your day’]

2) EmbeddingAugmenter

EmbeddingAugmenter tăng cường văn bản theo cách thay thế các từ bằng neighbors trong không gian counter-fitted embedding, với một ràng buộc để đảm bảo độ tương tự cosin của chúng ít nhất là 0,8.

Ví dụ:

 

Đầu ra: [‘start each day with positive idea and make your day’]

3) CharSwapAugmenter

CharSwapAugmenter tăng cường văn bản bằng cách thay thế, xóa, chèn và hoán đổi các ký tự liền kề

Ví dụ: 

 

Đầu ra: [‘start each day with positive thoughts and amke your day’]

4) EasyDataAugmenter

EDA tăng cường văn bản bằng cách kết hợp chèn, thay thế và xóa từ

Ví dụ:

 

Đầu ra: [‘start each day with positive thoughts make your day’,

‘start each day with positive thoughts and form your day’,

‘start each day with positive thoughts and make your daytime day’,

‘start make day with positive thoughts and each your day’‘]

5) CheckListAugmenter

CheckListAugmenter tăng cường văn bản bằng cách thu gọn/mở rộng và thay thế tên, vị trí và số.

Ví dụ:

Đầu ra: [‘start each day with positive thoughts and make your day’]

6) CLAREAugmenter

CLAREAugmenter tăng cường văn bản bằng cách thay thế, chèn và hợp nhất với masked language model được đào tạo trước.

Ví dụ:

Đầu ra: [‘start each day with positive thoughts and make your finest day’]

Kết luận

Tăng cường dữ liệu mang lại nhiều lợi ích như sau:

  • Giảm chi phí thu thập và gán nhãn dữ liệu
  • Cải thiện độ chính xác dự đoán của mô hình bằng cách
    • Tăng kích thước dữ liệu đào tạo 
    • Giải quyết tình trạng khan hiếm dữ liệu cho các mô hình
    • Giảm data overfitting và tạo ra sự phong phú trong dữ liệu
    • Tăng khả năng khái quát hóa của các mô hình
    • Giải quyết vấn đề mất cân bằng dữ liệu trong tác vụ phân loại

Bài viết cũng đã cung cấp kiến thức tổng quan về cách hoạt động của các kỹ thuật Tăng cường dữ liệu khác nhau và 6 công thức TextAttack cùng với ví dụ minh họa. Hãy lưu lại và thử nghiệm nhé!

Bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu

Bài viết liên quan

    Cảm ơn bạn đã quan tâm và ủng hộ.

    File hiện tại không thể tải xuống
    Vui lòng liên hệ hỗ trợ.

    VinOCR eKYC
    Chọn ảnh từ máy của bạn

    Chọn ảnh demo dưới đây hoặc tải ảnh lên từ máy của bạn

    Tải lên ảnh CMND/CCCD/Hộ chiếu,...

    your image
    Chọn ảnh khác
    Tiến hành xử lý
    Thông tin đã được xử lý
    Mức độ tin cậy: 0%
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    Xác thực thông tin thẻ CMND/CCCD

    Vui lòng sử dụng giấy tờ thật. Hãy đảm bảo ảnh chụp không bị mờ hoặc bóng, thông tin hiển thị rõ ràng, dễ đọc.

    your image
    Chọn ảnh khác

    Ảnh mặt trước CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh mặt sau CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh chân dung

    This site is registered on wpml.org as a development site.