Language modeling với in-domain text hạn chế?

  1. Lê Hồng Phương

Thưa thầy em có một vài câu hỏi về language model cho bài nhận dạng tiếng nói (văn phong nói chuyện như đời thực) mong được thầy giúp đỡ ạ (Em có khá nhiều câu hỏi nên sẽ chia ra nhiều câu hỏi khác nhau ạ)

Hiện tại bọn em chỉ có khá ít dữ liệu in-domain. Em đã thử dùng cách làm giàu dữ liệu bằng Xen-C với text báo rồi build lại language model nhưng kết quả gần như không cải thiện, có lẽ do văn phong khác nhau quá nhiều. Em nghĩ là text từ các diễn đàn sẽ gần với thực tế hơn nhưng những text này khá lộn xộn, có bình luận hoàn toàn đúng chính tả, có bình luận vừa gõ có dấu vừa gõ không dấu, gõ nhầm, có câu hoàn toàn không dấu....

Em muốn hỏi thầy:

- Có cách nào để mình gom được dữ liệu phù hợp cho language model hơn không?

- Có cách nào để mình thu được các câu bình luận đúng chính tả nhất có thể không?

- Nếu chấp nhận các sai sót (vì không có đủ nguồn lực để có text chất lượng cao) trong text mà mình thu được thì đối với các phương pháp smoothing mình nên thay đổi tham số như thế nào (giả sử text đúng chính tả, ngữ pháp nhiều hơn nhiều các câu sai)

Em cảm ơn ạ.

Từ khóa: 

giảng viên đại học quốc gia hà nội

Chào em,

Hai câu hỏi đầu tiên của em liên quan tới việc thu thập, làm sạch dữ liệu. Đây là vấn đề khó giải quyết hoàn toàn được và cũng tương đối mất thời gian.

Như em nói văn bản em thu thập được có tính chất lộn xộn, có cả hiện tượng mất dấu, sai chính tả hay gõ nhầm.

Cách tiếp cận đầu tiên có thể nghĩ tới là khôi phục dấu của những câu không dấu: ví dụ, chuyển từ "troi khong mua" thành "trời không mưa". Bài toán này có thể giải được với độ chính xác tương đối cao (cỡ 97%).

Với những câu sai chính tả thì hoặc chọn cách bỏ qua (lọc chỉ lấy các chuỗi có số lần xuất hiện lớn hơn ngưỡng nào đó chẳng hạn, với giả định rằng những từ sai chính tả thường có số lần xuất hiện ít); hoặc tìm cách khôi phục chính tả cho đúng. Cách khôi phục chính tả bản thân nó đã là một bài toán khó rồi.

Để thu được các câu đúng chính tả thì có lẽ cần phải thu thập từ những nguồn tin cậy hoặc cần hiệu chỉnh dữ liệu bằng sức người thôi. Mình cũng không biết có cách nào khác.

Câu hỏi thứ 3 của em chắc có ý là nên làm trơn mô hình ngôn ngữ như thế nào để các câu sai chính tả có ít ảnh hưởng tới các câu đúng? Mình chưa rõ ý hỏi này của em lắm vì chưa rõ mục tiêu là gì.

Mục tiêu của mô hình ngôn ngữ và các kĩ thuật làm trơn đi kèm là để ước lượng xác suất P(s) với s là một câu bất kì trong ngôn ngữ. Bối cảnh ở đây là s có thể là câu đúng hoặc câu sai, hoặc trộn lẫn cả hai. Về căn bản thì khi "troi mua" hay "trời mua" có trong tập huấn luyện thì nó cũng không khác gì chuỗi "trời mưa", chỉ có điều tần số xuất hiện ít hơn. Và các phương pháp làm trơn đã trực tiếp xem xét tần số của các lần xuất hiện rồi. Vì vậy, mình chưa rõ ý hỏi của em "nên thay đổi tham số như thế nào?" cụ thể là gì.



Trả lời

Chào em,

Hai câu hỏi đầu tiên của em liên quan tới việc thu thập, làm sạch dữ liệu. Đây là vấn đề khó giải quyết hoàn toàn được và cũng tương đối mất thời gian.

Như em nói văn bản em thu thập được có tính chất lộn xộn, có cả hiện tượng mất dấu, sai chính tả hay gõ nhầm.

Cách tiếp cận đầu tiên có thể nghĩ tới là khôi phục dấu của những câu không dấu: ví dụ, chuyển từ "troi khong mua" thành "trời không mưa". Bài toán này có thể giải được với độ chính xác tương đối cao (cỡ 97%).

Với những câu sai chính tả thì hoặc chọn cách bỏ qua (lọc chỉ lấy các chuỗi có số lần xuất hiện lớn hơn ngưỡng nào đó chẳng hạn, với giả định rằng những từ sai chính tả thường có số lần xuất hiện ít); hoặc tìm cách khôi phục chính tả cho đúng. Cách khôi phục chính tả bản thân nó đã là một bài toán khó rồi.

Để thu được các câu đúng chính tả thì có lẽ cần phải thu thập từ những nguồn tin cậy hoặc cần hiệu chỉnh dữ liệu bằng sức người thôi. Mình cũng không biết có cách nào khác.

Câu hỏi thứ 3 của em chắc có ý là nên làm trơn mô hình ngôn ngữ như thế nào để các câu sai chính tả có ít ảnh hưởng tới các câu đúng? Mình chưa rõ ý hỏi này của em lắm vì chưa rõ mục tiêu là gì.

Mục tiêu của mô hình ngôn ngữ và các kĩ thuật làm trơn đi kèm là để ước lượng xác suất P(s) với s là một câu bất kì trong ngôn ngữ. Bối cảnh ở đây là s có thể là câu đúng hoặc câu sai, hoặc trộn lẫn cả hai. Về căn bản thì khi "troi mua" hay "trời mua" có trong tập huấn luyện thì nó cũng không khác gì chuỗi "trời mưa", chỉ có điều tần số xuất hiện ít hơn. Và các phương pháp làm trơn đã trực tiếp xem xét tần số của các lần xuất hiện rồi. Vì vậy, mình chưa rõ ý hỏi của em "nên thay đổi tham số như thế nào?" cụ thể là gì.