Việc làm sạch dữ liệu trước khi đưa vào huấn luyện mô hình ngôn ngữ là một bước quan trọng để cải thiện chất lượng mô hình. Dưới đây là một số phương án phổ biến để làm sạch dữ liệu mà chúng ta có thể cân nhắc sử dụng đối với dữ liệu hiện có:
Một số công việc làm sạch
Loại bỏ ký tự đặc biệt và khoảng trắng dư thừa: Xóa các ký tự không cần thiết, khoảng trắng dư thừa ở đầu và cuối văn bản.
Kiểm tra và sửa lỗi chính tả, ngữ pháp: Sử dụng các công cụ kiểm tra chính tả và ngữ pháp tự động hoặc tự kiểm tra để đảm bảo chất lượng của dữ liệu.
Loại bỏ dữ liệu trùng lặp: Kiểm tra và loại bỏ các mẫu dữ liệu giống nhau hoặc rất tương tự nhau trong tập dữ liệu để tránh gây ra overfitting.
Loại bỏ nhiễu, nội dung không hợp lệ hoặc không liên quan: Xóa bỏ các phần tử không liên quan hoặc gây nhiễu trong dữ liệu, ví dụ như mã HTML, URL, hoặc mã nguồn.
Chuẩn hóa văn bản, ngôn ngữ: Đưa tất cả các ký tự về cùng một dạng, ví dụ chuyển đổi tất cả chữ cái thành chữ thường, chuẩn hóa các ký tự đặc biệt như dấu câu, số, địa chỉ web, email, etc. Sử dụng công cụ chuyển đổi chữ viết tắt, teen-code, hoặc slang về dạng chuẩn của ngôn ngữ.
Loại bỏ hoặc thay thế ký tự không hợp lệ: Loại bỏ hoặc thay thế các ký tự không hợp lệ, ví dụ như các ký tự không thuộc bảng mã Unicode, hoặc các ký tự gây lỗi khi đọc dữ liệu.
Chuyển đổi các đơn vị đo lường, tiền tệ: Chuyển đổi các đơn vị đo lường, tiền tệ sang định dạng chuẩn hoặc đồng nhất, ví dụ chuyển đổi tất cả các giá trị tiền tệ sang USD.
Tách từ và gán nhãn từ loại (POS tagging): Tách từ trong văn bản và gán nhãn từ loại (POS tagging) để phân biệt giữa danh từ, động từ, tính từ, etc.
Xử lý ngôn ngữ tự nhiên (NLP): Sử dụng các kỹ thuật NLP để phân tích cú pháp, ngữ nghĩa và ngữ cảnh của văn bản. Điều này sẽ giúp mô hình học cấu trúc ngữ pháp và ngữ nghĩa tốt hơn.
Loại bỏ hoặc thay thế giá trị ngoại lai: Xác định và loại bỏ hoặc thay thế các giá trị ngoại lai trong dữ liệu, ví dụ như các giá trị bất thường hoặc lỗi nhập liệu.
Phân chia dữ liệu: Chia dữ liệu thành các tập huấn luyện, xác thực và kiểm tra để đánh giá hiệu suất của mô hình và tránh overfitting.
Tái cân bằng dữ liệu: Nếu dữ liệu của bạn bị mất cân bằng giữa các lớp, bạn có thể áp dụng các kỹ thuật tái cân bằng như over-sampling, under-sampling.
Loại bỏ stop words: Loại bỏ các từ thông dụng nhưng ít mang thông tin, ví dụ “và”, “là”, “của”…
Stemming và Lemmatization: Đưa các từ về dạng gốc của chúng (stem) hoặc dạng từ điển (lemma) để giảm kích thước không gian đặc trưng và giúp mô hình học nhanh hơn.
Loại bỏ hoặc thay thế tên riêng: Loại bỏ hoặc thay thế tên riêng bằng các từ đại diện, ví dụ thay thế tên người bằng “[PERSON]”.
Xử lý dữ liệu bị thiếu: Xử lý các giá trị bị thiếu trong dữ liệu bằng cách bỏ qua chúng, thay thế bằng giá trị trung bình, hoặc sử dụng các kỹ thuật nâng cao hơn như dự đoán giá trị thiếu bằng các thuật toán học máy.
Kết luận
Các phương án trên chỉ là ví dụ về một số việc cần làm để đảm bảo rằng dữ liệu trước khi đưa vào training chứa đựng đúng nhất ngữ nghĩa mà nó truyền tải cũng như không bị ảnh hưởng bởi các yếu tối bên ngoài không mong muốn. Trong quá trình thực hiện, chúng ta có thể phát hiện ra nhiều phương pháp hoặc các hành động khác cần thực hiện nữa để đảm bảo việc này.
Lưu ý, đây là một quá trình tốn công sức, kết hợp cả người và máy cùng các phầm mềm riêng biệt chúng ta có thể sẽ phải lập trình thêm giúp cho việc xử lý tốt hơn.
Quá trình đào tạo máy cũng giống như đào tạo một con người, nếu ta không kiểm soát chặt chẽ hoặc có thiếu sót trong quá trình huấn luyện sẽ dẫn đến hiểu sai, học sai và kết quả nhận được có thể sai sót không như mong muốn.
Mặc dù chúng ta thực hiện nhiều biện pháp tuy nhiên đây là tập mang tính ngữ nghĩa và hiểu mờ, có nhiều vùng chồng lấn cũng như lỗi kiểm soát (bản chất là không thể tránh khỏi) vì vậy sẽ không có kết luận chắc chắn rằng chúng sẽ cho kết quả đầu ra hoàn hảo 100% như chúng ta tưởng tượng. Sẽ có sác xuất nhất định ở mức độ chúng ta chấp nhận được mà thôi.