Xử lý ngôn ngữ tự nhiên
ĐỀ CƯƠNG MÔN HỌC
Mô tả môn học
Môn học này cung cấp các kiến thức cơ bản về xử lý ngôn ngữ tự nhiên thông qua máy tính và các kỹ năng xây dựng các ứng dụng xử lý ngôn ngữ tự nhiên. Các kiến thức cơ bản về xử lý ngôn ngữ sẽ được giới thiệu bao gồm phân tích hình thái từ, phân tích từ loại, phân tích cú pháp. Các cách tiếp cận trong việc xây dựng các ứng dụng của xử lý ngôn ngữ (như phân loại văn bản, dịch máy, các hệ thống hỏi đáp bằng ngôn ngữ tự nhiên, …) cũng được giới thiệu trong học phần.
Nội dung môn học
Học phần cung cấp các kiến thức về:
- Các khái niệm cơ bản về xử lý ngôn ngữ tự nhiên
- Các phương pháp phân tích từ, từ loại
- Một số cách tiếp cận cơ bản trong phân tích cú pháp
- Một số hướng nghiên cứu mới, tiêu biểu trong xử lý ngôn ngữ
Bài giảng
- Giới thiệu
- Gán nhãn từ loại
- Phân tích cú pháp
- Phân tích cú pháp sử dụng xác suất
- Các ứng dụng: Dịch máy
- Các ứng dụng: Phân loại văn bản
- Các ứng dụng: Trích rút thông tin
- Các ứng dụng: Tóm tắt văn bản
Bài tập lớn
Hãy chọn 1 trong các đề sau
-
Tìm hiểu cấu trúc hệ thống tìm kiếm thông tin Google hiện tại và các kỹ thuật xử lý trong tìm kiếm thông tin của Google
-
Khai phá dữ liệu văn bản: quyết định một trang web có phải là trang web cá nhân hay không.
-
Cải tiến phương pháp xác định biên giới câu.
-
Phân tích cú pháp thống kê.
-
Phân tích ngữ nghĩa: giải quyết vấn đề đồng tham chiếu trong các câu đã được PTCP
-
Xây dựng chương trình cho phép chuyển đổi các tài liệu dạng văn bản về một lĩnh vực nhất định sang CSDL với các trường dữ liệu đã được xác định sẵn (bởi người thiết kế CSDL). CSDL có thể bằng tiếng Việt hoặc tiếng Anh. Hãy tận dụng các công cụ có sẵn như Gate hay Lucence. Ví dụ: a. Thu thập các thông tin liên hệ của các tổ chức có thông tin trên mạng và lưu vào 1 file XML hoặc 1 CSDL gồm có: tên , địa chỉ, số điện thoại, số fax, email. Tiêu chí tìm tổ chức được nhập từ bàn phím, ví dụ, tìm các trường đại học và cao đẳng ở VN, hoặc tìm các công ty tin học ở Hà Nội. b. Thu thập thông tin về các cửa hàng bán điện thoại di động có thông tin trên mạng và lưu vào 1 file XML hoặc 1 CSDL gồm có: tên điện thoại, hãng, tính năng, giá tiền, nơi bán, điạ chỉ, điện thoại liên hệ, email liên hệ. c. Thu thập thông tin về các hội thảo công nghệ thông tin và lưu vào 1 file XML hoặc 1 CSDL gồm có: tên hội thảo, phạm vi hội thảo (trong nước, quốc tế, châu á,…), địa điểm, thời gian diễn ra hội thảo, địa chỉ trang Web, deadline abstract, deadline fullpaper, acceptation time. Tiêu chí tìm hội thảo được nhập từ bàn phím dưới dạng các từ khoá, ví dụ, call for papers, 2007, 2008, natural language processing. d. Trích rút tên riêng từ các bài báo tiếng Việt e. Nhận dạng tên thực thể
-
Tóm tắt đa văn bản
-
Phân nhóm văn bản
- Phân loại văn bản:
- phân loại thư, lọc thư rác
- phân loại trang web
-
Cài đặt một thuật toán đơn giản về dịch máy thống kê hướng miền ứng dụng cụ thể. Nguồn tài liệu: lấy từ các trang web song ngữ như http://www.britishcouncil.org/vietnam http://blogs.fco.gov.uk/roller/kent/ http://www.mofa.gov.vn
- Tìm kiếm thông tin:
- Đề xuất một số phương pháp cải tiến công cụ tìm kiếm kiểu so khớp và cài đặt
Yêu cầu: Mỗi nhóm có khoảng 2-4 người. Đề 1 là nghiên cứu lý thuyết. Các đề còn lại yêu cầu có cài đặt chương trình (có thể tận dụng các phần mềm có sẵn). Tất cả các nhóm đều phải báo cáo và demo chương trình (nếu có). Mọi người trong nhóm đều phải tham gia báo cáo phần kết quả của mình.
Về báo cáo:
- Báo cáo cần >= 8 trang
- Đối với đề liên quan đến cài đặt chương trình, báo cáo viết dưới dạng tài liệu kỹ thuật có phân tích đánh giá một số hướng tiếp cận liên quan, phân tích phần cài đặt chương trình (các cấu trúc dữ liệu, thuật toán), một số kết quả đạt được, đánh giá độ chính xác và định hướng phát triển.
- Tất cả các báo cáo đều phải chỉ rõ đóng góp của từng thành viên trong nhóm thực hiện đề tài. Báo cáo cần có phần tài liệu tham khảo.
Một số địa chỉ Web tham khảo: http://gate.ac.uk (General architecture for text engineering) http://opennlp.sourceforge.net http://lucene.apache.org/java/docs/index.html http://www.loria.fr/~lehong/tools/vnTokenizer.php (công cụ tách từ tiếng Việt)
Tham khảo:
- https://users.soict.hust.edu.vn/huonglt/NLP/index.htm
- https://users.soict.hust.edu.vn/huonglt/NLP/lecture%20notes.htm
- https://users.soict.hust.edu.vn/huonglt/NLP/assignment.htm
Tài liệu tham khảo về lý thuyết
- Christopher Manning and Hinrich Schütze. 1999. Foundations of Statistical Natural Language Processing. The MIT Press.
- Dan Jurafsky and James Martin. 2000. Speech and Language Processing. PrenticeHall.
- James Allen. 1994. Natural Language Understanding. The Benajmins/Cummings Publishing Company Inc.
- Barton, E., Berwick, R., & Ristad, E.. 1987. Computational Complexity and Natural Language. The MIT Press. ISBN 0-26-02266-4.
Tài liệu tham khảo hỗ trợ lập trình
- Grant Ingersoll, Thomas Morton, Drew Farris. Taming Text : cho người lập trình bắt đầu học NLP và Search. Mỗi chương đều có ví dụ sử dụng các mã nguồn mở.
- Steven Bird, Ewan Klein, and Edward Loper .Natural Language Processing with Python : hướng dẫn sử dụng NLTK qua các công việc như phân loại văn bản, trích rút thông tin, …
Một số mã nguồn mở về Xử lý ngôn ngữ tự nhiên:
- Stanford’s Core NLP Suite (viết bằng Java): http://stanfordnlp.github.io/CoreNLP/
- Natural Language Toolkit (viết bằng Python): http://www.nltk.org/
- Apache Lucene and Solr: http://lucene.apache.org/
- Apache OpenNLP (viết bằng Java): http://opennlp.apache.org/
- Apache UIMA: https://uima.apache.org/
- GATE (General architecture for text engineering, viết bằng Java): https://gate.ac.uk/