được. Dưới đây là kết quả phân tích của chương trình với một số câu nhập vào khác nhau:
Để thử nghiệm chương trình phân tích cú pháp tiếng Việt, ta có thể nhập vào một số câu có cấu trúc khác nhau. Nếu dùng ký hiệu [w*] để chỉ từ w có thể xuất hiện hoặc khơng xuất hiện trong câu thì những câu có dạng:
1. Cơ [ấy*] [rất*] tốt [nết*]
2. Cô [ấy*] tốt [cực kỳ*]
đều được phân tích đúng. Để thử nghiệm danh ngữ làm chủ ngữ, ta có thể thay đại từ “cô” bằng các tổ hợp: mèo, mèo ấy, con mèo, con mèo ấy, những con mèo ấy và chọn tính ngữ làm vị ngữ cho phù hợp.
Có thể nhập vào một số câu như sau để thử nghiệm động ngữ làm vị ngữ:
Anh [này*] [đang*] ăn [cơm* | ngon*]
Tương tự, có thể thay đại từ “anh” bằng một danh ngữ. Để thử nghiệm từ quan hệ, ta có thể dùng một số câu như:
1. Tơi là sinh viên
2. Nó bằng nhơm
3. Anh ấy là sinh viên
4. Họ là các sinh viên
5.4. Đánh giá kết quả
Khoá luận trình bày việc vận dụng các mơ hình văn phạm phi ngữ cảnh và các mạng chuyển vào bài tốn phân tích cú pháp tiếng Anh và tiếng Việt. Trong phân tích cú pháp có những đặc điểm chính sau:
• Tách riêng việc giải quyết phân tách từ vựng và phân tích cú pháp cho tiếng Việt. Sử dụng kết quả phân tích cú pháp để hỗ trợ quyết định chọn phương án phân tách từ vựng của câu (Phần Phụ lục).
• Giải quyết được vấn đề độ dài từ ghép hoặc cụm từ cố định.
• Chương trình hiện tại chỉ xử lý những câu đơn hai thành phần đơn giản của tiếng Việt
• Với câu nhập nhằng thì đưa ra mọi phương án phân tích có thể.
• Chương trình cung cấp các giao diện nhập liệu và xử lý trong môi trường hệ điều hành Windows, thuận tiện cho việc sử dụng.
Mọi câu đưa vào đều được thực hiện theo hai bước, gồm tách từ vựng và phân tích cú pháp. Mặc dù em chưa đưa ra được những số liệu thống kê chính xác nhưng q trình thử nghiệm bước đầu cho thấy chương trình chạy khá nhanh và cho kết quả tương đối chính xác.
Phụ lục
Bài toán tách từ vựng tiếng Việt
Trước khi thực hiện phân tích cú pháp của một câu tiếng Việt, ta cần một bước tiền xử lý quan trọng, đó là tách câu thành các đơn vị từ vựng và gán cho chúng những nhãn từ loại tương ứng (chẳng hạn danh từ, động từ...).
1. Đặt bài toán
Nhập vào một câu tiếng Việt bất kỳ, hãy tách câu đó thành những đơn vị từ vựng (từ), hoặc chỉ ra những âm tiết nào khơng có trong từ điển (phát hiện đơn vị từ vựng mới).
Để giải quyết bài toán đặt ra, ta cần tập dữ liệu gồm từ điển âm tiết (khoảng 6700 âm tiết) và từ điển từ vựng tiếng Việt (khoảng 30.000 từ). Việc sử dụng hai bộ từ điển nêu trên trong phạm vi đề tài nghiên cứu đã được sự đồng ý của Trung tâm từ điển học. Các từ điển được lưu dưới dạng các tệp văn bản có định dạng mã TCVN hoặc Unicode (UTF-8).
2. Các bước giải quyết
1. Xây dựng ôtôtmát âm tiết đoán nhận tất cả các âm tiết tiếng Việt 2. Xây dựng ơtơtmát từ vựng đốn nhận tất cả các từ vựng tiếng Việt.
3. Dựa trên các ôtômát nêu trên, xây dựng đồ thị tương ứng với câu cần phân tích và sử dụng thuật tốn tìm kiếm trên đồ thị để liệt kê các cách phân tích có thể. Tư tưởng của phương pháp xây dựng các ôtômát là: xây dựng dần dần dựa trên
ôtômát đã có ở bước trước và âm tiết (hoặc từ vựng) mới đọc được từ tệp dữ liệu ở bước hiện tại.
Bảng chữ cái của ôtômát âm tiết là bảng chữ cái tiếng Việt, mỗi cung chuyển được ghi trên đó một ký tự, ban đầu ơtơmát âm tiết chỉ gồm một trạng thái khởi đầu được đánh số hiệu 0. Giả sử tại bước nào đó ta đọc được âm tiết a có độ dài n (tính bằng số ký tự) từ tệp dữ liệu. Xuất phát từ trạng thái khởi đầu p = q0 ta lấy ra từng ký tự ci của a và tìm xem từ p có cung chuyển đến trạng thái q nào đó mà trên đó ghi ký tự ci hay khơng. Nếu có trạng thái q như thế, ta chuyển p thành q và lặp lại bước trên với ký tự ci+1 tiếp theo. Nếu khơng có q nào như thế, ta ra khỏi vòng lặp và xây dựng mới các trạng thái và cung chuyển tương ứng trên đó ghi các ký tự ci, ci+1,..., cn-1 theo sơ đồ sau (ơ vng chỉ rằng đó là trạng thái kết).
Ví dụ, với ba âm tiết phương, pháp, trình ta sẽ có ơtơmát âm tiết như Hình 15.