Natural Language Processing(NLP)
Nhóm kỹ thuật cho máy đọc và xử lý ngôn ngữ của người: phân loại, trích xuất thực thể, phân tích cảm xúc, tóm tắt. Với tiếng Việt, tách từ và chữ không dấu là hai chỗ hay vỡ nhất.
Định nghĩa
NLP là cái tên có trước làn LLM khá lâu. Nó gom mọi kỹ thuật giúp máy làm việc được với chữ nghĩa của người: tách câu, tách từ, nhận diện tên riêng, đo cảm xúc, phân loại chủ đề, tóm tắt, dịch. Ngày nay phần lớn các bài toán đó có thể ném cho một LLM, nhưng không phải lúc nào cũng nên.
Với BA, giá trị của việc biết NLP nằm ở chỗ gọi đúng tên bài toán. Gọi đúng tên thì team biết ngay cần dữ liệu gì và đo bằng thước nào.
Những bài toán hay gặp trong dự án
- Phân loại văn bản — ticket này thuộc nhóm nào, email này có phải khiếu nại không. Đo bằng precision và recall.
- Trích xuất thực thể (NER) — moi ra tên người, địa chỉ, số hợp đồng, ngày tháng từ một đoạn văn lộn xộn. Rất hợp với hồ sơ, chứng từ, tin nhắn đặt hàng.
- Tóm tắt — biên bản, hội thoại, tài liệu dài.
- So khớp ngữ nghĩa — tìm câu gần nghĩa, gom nhóm phản hồi. Chỗ này chạy bằng embedding.
Hai bài toán còn lại nằm ở hai đầu đối nghịch. Phân tích cảm xúc — tích cực, tiêu cực, trung tính — là thứ được đòi nhiều nhất trong buổi họp và mong manh nhất khi chạy thật. Còn chuẩn hoá dữ liệu, tức bỏ dấu, sửa chính tả, thống nhất định dạng số điện thoại và địa chỉ, thì chẳng ai đưa lên slide, nhưng nó thường quyết định tính năng có chạy được hay không.
Tiếng Việt khó ở chỗ nào
Chỗ này ít tài liệu nước ngoài nói giúp bạn, và nó là phần bạn phải tự mang vào dự án:
- Tách từ. Tiếng Việt viết rời từng âm tiết. "Học sinh" là một từ hay hai từ tuỳ ngữ cảnh, và máy phải đoán. Mô hình lớn ngày nay đỡ hơn nhiều nhưng vẫn lệch ở tên riêng và thuật ngữ ngành.
- Chữ không dấu. Người dùng gõ nhanh trên điện thoại thì "chuyen khoan bi loi" là chuyện thường. Một số câu bỏ dấu xong mang nhiều nghĩa, và không có ngữ cảnh thì đoán sai.
- Viết tắt và tiếng lóng theo ngành. Trong kho ticket của một sàn thương mại, "ck" là chuyển khoản, "sp" là sản phẩm, "ib" là nhắn tin riêng. Không đưa bảng viết tắt này vào thì mô hình lẫn lộn.
- Mỉa mai. "Giao nhanh ghê, có 12 ngày thôi" sẽ bị chấm là tích cực bởi khá nhiều mô hình phân tích cảm xúc.
- Xen tiếng Anh. Ticket nội bộ của dân IT trộn hai thứ tiếng trong cùng một câu, kiểu "cái flow duyệt bị stuck ở bước approve".
Ví dụ thực tế
Buổi làm rõ thứ hai, BA hỏi một câu và cả phòng im: "nếu dashboard hiện chỉ số cảm xúc giảm 8% tuần này, anh chị sẽ làm gì tiếp theo". Yêu cầu ban đầu từ phía kinh doanh của sàn hàng gia dụng đó gọn đúng một dòng — làm dashboard cảm xúc khách hàng theo ngành hàng — trên nền khoảng 3.100 đánh giá đổ về mỗi ngày.
Yêu cầu đó vỡ ra thành ba bài toán khác nhau, và thứ tự ưu tiên đảo ngược hoàn toàn so với lúc đặt đầu bài:
- Gán chủ đề cho từng đánh giá theo 8 nhóm. Đây mới là thứ đội vận hành dùng hằng ngày để biết hôm nay đội giao vận hay đội kho có vấn đề.
- Trích xuất tên sản phẩm được nhắc tới, vì khách hay nói tên gọi dân dã chứ không dùng tên trên sàn.
- Cảm xúc, để cuối. Vì đội vận hành đã có sẵn số sao, và số sao chính xác hơn mọi mô hình cảm xúc.
Quay lại câu hỏi làm cả phòng im ở trên: với dashboard cảm xúc thì không ai trả lời được sẽ làm gì tiếp. Còn với dashboard chủ đề, họ trả lời ngay là gọi cho kho nào.
Mẹo khi đi làm
Trước khi viết yêu cầu cho một tính năng NLP, xin bằng được 200 mẫu dữ liệu thật. Không phải mẫu đẹp do người ta chọn giúp, mà lấy ngẫu nhiên. Ngồi đọc hết. Nửa số câu hỏi trong đầu bạn sẽ tự có lời giải, và bạn sẽ phát hiện những thứ không ai nghĩ tới, kiểu 15% ticket thực chất là ảnh chụp màn hình không kèm chữ nào.
Và luôn hỏi câu hỏi hành động: kết quả của mô hình này sẽ khiến ai làm gì khác đi. Nếu không ai làm gì khác đi thì tính năng đó chưa đáng làm, dù chạy có hay tới đâu.
