Thứ Sáu, 28 tháng 2, 2014

Lý thuyết xác suất và ngôn ngữ học tính toán

Ứng dụng lý thuyết xác suất vào ngôn ngữ học dựa trên một quan sát hết sức đơn giản:  "Cho một câu, hoặc một cụm từ, làm thế nào để biết đó là một câu hoặc cụm từ sai hay đúng".

Để làm điều đó, hãy quan sát người đánh giá. Đa phần là đọc đi đọc lại câu hoặc cụm từ đó. Nếu cảm thấy "quen quen" thì nhiều khả năng là đúng, nếu nghe "lạ tai" thì nhiều khả năng là sai. Nếu toàn bộ xã hội thấy "lạ tai" thì chắc chắn là sai. Tất nhiên còn một khả năng nữa là phân tích ngữ pháp. Tuy nhiên, một câu kiểu như "cối đá chạy băng băng bằng hai chân và há mồm nuốt chửng tòa nhà" có thể đúng về ngữ pháp nhưng không có ý nghĩa gì.

Để lượng hóa tính chất "quen quen" hay "lạ tai" người ta có thể dùng lý thuyết xác suất. Cho hai câu gần giống nhau S1 và S2, người ta có thể phân định, câu S1 đúng hơn S2, nếu tần suất xuất hiện của S1 nhiều hơn S2. Cố nhiên giả thiết này có thể tranh biện, nhưng trong thực tế cách phân định này vẫn được áp dụng theo nguyên tắc "phổ thông đầu phiếu". Điều đó có nghĩa là ba anh thợ giày vẫn thắng một anh bác học hay chữ. Như vậy "soi mói" hoặc "thăm quan" có thể coi là những từ đúng chính tả, theo cùng một lý luận. Theo cách "phổ thông đầu phiếu" như vậy có thể dùng phương pháp "hỏi cụ Google" và đếm tần suất xuất hiện của S1 và S2 trên Google. Nếu giả thiết Google có thể coi như là xấp xỉ tốt của việc sử dụng ngôn ngữ trong thực tế (do mẫu đủ lớn và đủ ngẫu nhiên), thì hoàn toàn có thể viết một phần mềm "hỏi Google". Trong thực tế, nếu bạn viết một câu hoặc cụm từ (tiếng Anh, Việt hay bất cứ ngoại ngữ nào) mà bạn không dám chắc có đúng không, tôi khuyên bạn nên search trên Google (nhớ để cả câu trong ngoặc kép). Nếu các nguồn đáng tin cậy đều xuất hiện các câu hoặc cụm câu như thế, bạn có thể gần như chắc chắn là câu đó có thể dùng được. Trong trường hợp câu đó sai, bạn có thể có excuse là "cả làng đều mắt toét".

Vấn đề tiếp theo đặt ra là nếu cả S1 và S2 đều chưa xuất hiện lần nào (ít ra trong kho tri thức cá nhân của tôi) thì làm thế nào để đánh giá được S1 và S2. Không cần lý thuyết cao siêu, chỉ dùng lương năng, chúng ta có thể "sáng tác" ra ngay được một phương pháp: tách S1 và S2 thành các thành phần đã xuất hiện trong kinh nghiệm ( nghe "quen quen"). Câu nào có nhiều thành phần "quen quen" hơn có thể sẽ có khả năng đúng nhiều hơn. Tuy nhiên, ở đây có vấn đề là việc gắn kết các thành phần "quen quen" lại với nhau sẽ đánh giá như thế nào. Để làm điều đó, chúng ta có thể dùng khái niệm covering sets (phương pháp ưa thích của các nhà topo học). Chúng ta sẽ phủ các câu bằng các đoạn. Sau đó chúng ta có thể tính giá trị "quen quen" của câu dựa trên giá trị "quen quen" của mỗi đoạn đó bằng một công thức nào đó.

Trong thực tế, các nhà xử lý ngôn ngữ thường dùng mô hình n-gram, sử dụng xác suất để một từ thứ n là w(n) đứng sau dãy w1....w(n-1). Xác suất này thực ra là xác suất của sự kiện dùng w1... w(n) trong đời sống. Như vậy xác suất này được tính thế nào? Người ta dùng một phương pháp được gọi là mô hình ngôn ngữ (language model) hoặc khối liệu văn bản (text corpus), trong đó tích lũy tất cả các câu có thể tìm thấy (chẳng hạn bằng cách lấy trên Web về). Sau đó đếm các n-gram, tức là chuỗi gồm n từ (hoặc âm vị) bắt đầu bằng w1... w(n-1). Nếu tổng số của các n-gram này là N và số n-gram w1... w(n-1) x là N(x), thì xác suất của n-gram w1...w(n-1) x sẽ là N(x)/N. Mô hình giản đơn nhất là mô hình 2-gram. Như vậy xác suất của một câu w1... w(M) sẽ là P(w1).P(w1w2).P(w2.w3)....P(w(M-1)w(M)). Tương tự, ta có các mô hình 3, 4,..., n-gram. Như vậy, câu nào có xác suất cao hơn ắt hẳn sẽ "đúng" hơn.

Mô hình n-gram dù sao cũng đưa ra được một cách tính nhất quán. Cũng như việc đánh giá thi đua, tính lương, cho điểm, bầu cử, trao bằng cấp, chia chác quyền lợi cũng đều có tính tương đối, nhưng quan trọng nhất là luôn luôn thực hiện được và nhất quán. Tuy nhiên, mô hình n-gram dựa trên quá nhiều giả thiết hidden, mà mỗi giả thiết như vậy cần phải làm rõ giới hạn. Thứ nhất, là nếu một câu dù ít được dùng vì một lý do nào đó, chẳng hạn quá cao siêu về ý nghĩa, nhưng nếu đã được chấp nhận thì nó vẫn đúng 100% cho dù tính kiểu nào. Lấy ví dụ câu thành ngữ "anh em kiến giả nhất phận" thường được dùng sai thành "anh em kiến giải nhất phận". Nếu áp dụng mô hình 2-gram, rõ ràng xác suất dùng "kiến giải" lớn hơn xác suất "kiến giả" trong thực tế. Nếu theo công thức xác suất 2-gram, câu sai sẽ có xác suất lớn hơn. Trong khi đó nếu dùng Google sẽ thấy câu đúng xuất hiện nhiều hơn câu sai.

Như vậy, việc ứng dụng Toán học cũng phải có tiêu chí thực nghiệm như trong vật lý. Dường như mô hình n-gram vẫn chưa lột tả hết được ý tưởng covering set đơn sơ ban đầu.

Không có nhận xét nào:

Đăng nhận xét