BlockList

Monday, September 3, 2018

Vietnamese Natural Language Processing



  • Tên dự án: Xử lý ngôn ngữ tiếng Việt
  • Tài trợ: MOCGIATRANG.NET
  • Kinh phí: 5.000.000 VNĐ
  • Thực hiện dự án: Huỳnh Bá Phúc
  • Thời gian thực hiện: 09/2012 - 08/2018



Xây dựng hệ thống xử lý ngôn ngữ tiếng Việt với các nhiệm vụ sau:

  • Xây dựng bộ từ điển tiếng Việt cơ bản.
  • Xây dựng cơ sở dữ liệu các văn bản tiếng Việt có phân loại nội dung và ngữ cảnh.
  • Xây dựng cơ sở dữ liệu câu đàm thoại thông dụng.
  • Xây dựng trình phân tích cú pháp trong câu.
  • Xây dựng cơ chế liên kết các câu theo ngữ cảnh.
  • Tạo các ứng dụng thực tế sử dụng cơ sở dữ liệu đã có.




Đây là dự án được thực hiện bởi một người với nguồn kinh phí rất hạn chế và được bắt đầu từ số không đúng nghĩa. Sự khó khăn lớn nhất trong nghiên cứu xử lý ngôn ngữ tự nhiên là xây dựng cơ sở dữ liệu ngôn ngữ như từ điển, từ vựng, câu mẫu, văn bản mẫu,... Nếu dùng giải pháp nhập liệu thủ công thì thời gian thực hiện rất lâu, đặc biệt là chỉ bởi một người. Chẳng hạn, để xây dựng bộ từ điển tiếng Việt với hàng chục ngàn đầu từ cơ bản, nếu nhập từng từ và các loại nghĩa khác nhau cho nó thì một người cần vài năm để nhập. Việc này gần như không khả thi. Vì vậy, việc viết ra các công cụ máy tính để thực hiện tự động là điều tối cần thiết. Trong thời gian thực hiện dự án, các công cụ sau đã được tạo ra và sử dụng:

  • Vinabot VNCollector 1.0: ứng dụng được viết bằng Lazarus, chạy trên máy chủ CentOS. Ứng dụng chạy liên tục 24/7. Chức năng chính là tự động truy cập các trang tin tức tiếng Việt để đọc các bài viết mới, thu thập văn bản, phân loại theo lĩnh vực, ngữ cảnh,... Ứng dụng này tạo ra cơ sở dữ liệu thô đồ sộ, làm nền tảng cho nghiên cứu sau này. Trên thực tế, sau khi được hoàn thành, chỉ mất 3 ngày khởi chạy đã thu thập được số lượng văn bản thô đủ để làm nghiên cứu. Tuy nhiên, nó vẫn tiếp tục vận hành trong nhiều năm sau này để tạo nên một cơ sở dữ liệu đầy đủ hơn.
  • Vinabot VNDicBuilder 1.0: ứng dụng được viết bằng Delphi, chạy trên máy chủ Windows XP. Chức năng chính là tự động học từ tiếng Việt để xây dựng nên bộ từ điển tiếng Việt cơ bản. Cơ chế học đơn giản bằng cách ghép vần thành từ, hợp từ thành cụm từ. Sau đó sẽ truy cập các trang web hỗ trợ để tra nghĩa từ (cụm từ) đó. Nếu tồn tại và có nghĩa thì ghi nhận tất cả các loại nghĩa và ví dụ mẫu theo từ loại. Ứng dụng này được viết ra chỉ dùng một lần duy nhất trong quá trình nghiên cứu. Thời gian chạy mất 3 ngày 16 giờ. Bộ từ điển xây dựng được gồm khoảng 40 ngàn đầu từ cơ bản và 200 ngàn đầu từ mở rộng. Do thực hiện tự động nên trong kết quả vẫn còn tồn tại một số lỗi thô và nhầm lẫn. Những lỗi này dần được khắc phục sau này dựa vào cơ chế phân tích ngữ cảnh và điều chỉnh ngược. Đây là bộ từ điển rất quan trọng cho xử lý ngôn ngữ về sau. Một trong số đó là sử dụng cho ứng dụng Máy Kiểm Thơ Đường Luật trên trang Xướng Họa của Mộc Gia Trang.
  • Vinabot VNSen 1.0: ứng dụng được viết bằng Lazarus, chạy trên máy chủ CentOS. Ứng dụng chạy liên tục 24/7. Chức năng chính là truy cập cơ sở dữ liệu thô tạo ra bởi Vinabot VNCollector 1.0 để xây dựng các câu mẫu có phân loại và dán nhãn theo lĩnh vực, ngữ cảnh. Các câu có liên kết lẫn nhau theo ngữ cảnh văn bản.
  • Vinabot VNSyn 1.0: ứng dụng được viết bằng Lazarus, chạy trên máy chủ CentOS. Ứng dụng chạy liên tục 24/7. Chức năng chính là phân tích ngữ pháp các câu trong cơ sở dữ liệu tạo ra bởi Vinabot VNSen 1.0. Ứng dụng sẽ cố gắng phân tích tất cả các cách kết hợp cụm từ có thể để tạo ra nhiều nghĩa khác nhau nếu có. Kết quả từ ứng dụng này chưa phải tối ưu vì có thể chứa lỗi kết hợp vô nghĩa.
  • Vinabot VNP 1.0: ứng dụng được viết bằng Lazarus, chạy trên máy chủ CentOS. Ứng dụng chạy liên tục 24/7. Chức năng chính là xử lý sâu kết quả tạo ra từ Vinabot VNSyn 1.0. Cơ chế hoạt động là sử dụng cơ sở dữ liệu thô từ Vinabot VNCollector 1.0 để làm nền tảng cho máy học, đối chiếu các kết quả phân loại từ Vinabot VNSyn 1.0 để loại bỏ các trường hợp không có nghĩa hoặc có thể hiểu sai. Vinabot VNP 1.0 được thiết kế giải thuật tư duy ngữ cảnh 3D để học nghĩa khả thi của các câu đàm thoại.
Do không có nguồn tài trợ và gặp nhiều khó khăn tài chính nên dự án đã chính thức dừng lại vào tháng 08 năm 2018. Bốn ứng dụng đầu tiên đã hoàn thành tốt vai trò của nó. Chỉ có Vinabot VNP 1.0, sự kỳ vọng chính của dự án, là còn dang dở, chưa đạt mục đích cao nhất là hiểu được nghĩa chính của một đoạn văn bản bất kỳ dựa trên tư duy ngữ cảnh 3D. Nhưng tôi tin rằng nếu được đầu tư đầy đủ, công cụ này sẽ đạt được bước tiến tốt hơn.




Một số sản phẩm sử dụng một phần kết quả đạt được từ dự án:

  • Máy Kiểm thơ Đường luật: sản phẩm hoàn chỉnh được cung cấp miễn phí trên trang Xướng Họa của Mộc Gia Trang. Chức năng chính là tự động phân tích, phát hiện lỗi trong bài thơ Đường luật, hỗ trợ người làm thơ hoàn thành tác phẩm của mình nhanh hơn và đơn giản hơn. Nó là công cụ hỗ trợ chứ không thay thế khả năng làm thơ của con người. Công cụ này viết bằng ngôn ngữ PHP, chạy trên máy chủ web Linux. Ứng dụng chạy trên nền web với hai phiên bản dùng trên máy tính bàn và thiết bị di động.
  • Trợ lý nhà thơ: sản phẩm hoàn chỉnh được cung cấp miễn phí trên trang Xướng Họa của Mộc Gia Trang. Chức năng chính là hỗ trợ người làm thơ hoàn thành tác phẩm của mình nhanh hơn và đơn giản hơn. Nó là công cụ hỗ trợ chứ không thay thế khả năng làm thơ của con người. Công cụ này viết bằng ngôn ngữ PHP, chạy trên máy chủ web Linux. Hiện tại, ứng dụng này chỉ có khi người dùng truy cập trang bằng thiết bị di động.
  • Hệ thống tư duy ngôn ngữ dựa trên ngữ cảnh 3D: sản phẩm chưa hoàn thành và đã dừng lại. Mục đích chính của công cụ này là hiểu được nghĩa chính của một đoạn ngôn ngữ tiếng Việt. Từ đó có thể dịch sang ngôn ngữ khác theo kiểu lấy ý chứ không tra từ điển và dịch từng từ hoặc câu. Dựa trên việc hiểu ý chính, nó có thể dùng để ra lệnh điều khiển cho các robot, máy móc khác.
  • Robot sáng tác thơ Đường luật: sản phẩm chưa hoàn thành và đã dừng lại. Mục đích chính của công cụ này là đọc hiểu được nghĩa chính của một đoạn ngôn ngữ tiếng Việt mô tả một chủ đề nào đó. Sau đó, ứng dụng sẽ tự xây dựng bài thơ Đường luật thể thất ngôn bát cú có nội dung chính như mô tả.