Skip to content

Học NLP nên bắt đầu từ đâu?

Vu Anh edited this page Nov 6, 2018 · 5 revisions

Trang này tổng hợp các tài liệu và giáo trình hữu ích cho việc tìm hiểu về xử lý ngôn ngữ tự nhiên. Rất hi vọng những thông tin này sẽ hữu ích cho bạn.

Mục lục

Nền tảng

Đầu tiên, hãy trang bị cho mình một nền tảng thật tốt.

Đừng choáng ngợp bởi danh sách này! Bạn vẫn có thể xây dựng ứng dụng NLP mà không cần phải là một siêu nhân về toán học hay lập trình. Nhưng hãy dành thời gian tích lũy dần dần các kiến thức này theo năm tháng, chúng sẽ hữu ích cho quá trình phát triển của bạn sau này.

Gợi ý 1: Nếu bạn thấy phần toán quá rộng, cần một "phương pháp" học nhanh, thì có thể đọc luôn phần 1 "Toán ứng dụng và học máy cơ bản" trong quyển Deep Learning Book

Gợi ý 2: Bạn có thể tạm thời bỏ qua phần này nếu lựa chọn một trong những khóa học về NLP ở dưới. Hầu hết các khóa học về NLP đều có những nội dung giới thiệu tổng quan về các kiến thức cơ bản kể trên.

Gợi ý 3: CS41CS106A cũng là hai nguồn hữu ích cho những bạn muốn lập trình Python và Java

Các khóa học

Tiếp theo, hãy chọn cho mình một khóa học phù hợp với trình độ và nhu cầu của bản thân

Sách giáo khoa

Nếu bạn quan tâm đến việc nghiên cứu xử lý ngôn ngữ tự nhiên, hãy trang bị cho mình các kiến thức cơ bản và nâng cao trong hai quyển sách kinh điển sau:

  • Speech and Language Processing 2nd edition - Phiên bản 2 của quyển sách kinh điển Speech Language Processing được xuất bản năm 2008 bởi Daniel Jurafsky và James H. Martin. Chứa các kiến thức cơ bản và nền tảng trong gần như mọi vấn đề của xử lý ngôn ngữ tự nhiên. Từ cơ bản như phân tích cú pháp, phân tích phụ thuộc đến các ứng dụng như trích rút thông tin, tổng hợp và nhận dạng tiếng nói tự động, dịch máy, chatbot.
  • Speech and Language Processing 3rd edition - Phiên bản 3 của quyển sách kinh điển Speech Language Processing (đang tiến hành). Cập nhật các phương pháp mới nhất trong xử lý ngôn ngữ tự nhiên.

Các trang web hữu ích

Bước tiếp theo là việc cập nhật kiến thức mới từ các trang web hữu ích và các hội nghị hàng đầu

Các hội nghị hàng đầu về lĩnh vực xử lý ngôn ngữ tự nhiên

  • ACL - Hội nghị hàng đầu về xử lý ngôn ngữ tự nhiên, được bắt đầu từ năm 1962!
  • EMNLP - Hội nghị hàng đầu về xử lý ngôn ngữ tự nhiên, bắt đầu từ năm 1996
  • NAACL - Hội nghị về xử lý ngôn ngữ tự nhiên ở Bắc Mỹ

Phần mềm

Nếu các bạn quan tâm đến việc xây dựng các ứng dụng liên quan đến xử lý ngôn ngữ tự nhiên. Danh sách sau tổng hợp các phần mềm và công cụ phổ biến nhất

  • spaCy (website, blog) Phần mềm nguồn mở về xử lý ngôn ngữ tự nhiên, được viết bằng ngôn ngữ Python. Được sử dụng nhiều trong các ứng dụng công nghiệp với độ chính xác và tốc độ cao.
  • Natural Language Toolkit (NLTK) (website, book) - Phần mềm về xử lý ngôn ngữ, được viết bằng Python. Thường được sử dụng cho mục đích giảng dạy.
  • Stanford CoreNLP (website) - Công cụ xử lý ngôn ngữ chất lượng cao, được phát triển bởi nhóm xử lý ngôn ngữ tự nhiên từ trường Stanford.
  • AllenNLP (website) - Công cụ xử lý ngôn ngữ tự nhiên với bằng Pytorch, tập trung vào các bài toán mức cao như máy đọc, gán vai nghĩa, phân giải đồng tham chiếu, suy diễn văn bản
  • fastText (website) - Công cụ xử lý ngôn ngữ tự nhiên tiện dụng, tốc độ cao, thích hợp cho bài toán phân loại, được phát triển bởi Facebook
  • gensim (website) - Công cụ chuyên về lĩnh vực Topic Modelling

Thông tin xử lý tiếng Việt

Dưới đây là các liên kết hữu ích dành cho các bạn quan tâm đến bài toán xử lý tiếng Việt

Thực hành với các dự án của underthesea

Chú ý: Phần này dành riêng cho các underthesea fan :D

Khi đã tích lũy các kiến thức cơ bản, là lúc tiến vào giai đoạn thực hành. Các dự án của underthesea đều open source, các bạn có thể học bằng cách tìm hiểu source code từ các dự án này, sau đó tự mình thu thập dữ liệu, tùy biến mô hình trên dữ liệu của các bạn hay cải tiến các mô hình sẵn có được đề xuất bởi underthesea.

Hiện nay, underthesea đã open source các dự án

Việc tìm hiểu, tùy biến và cải tiến những phần mềm mã nguồn mở có sẵn sẽ giúp bạn đưa những kiến thức của mình vào thực tế, vừa giúp bạn nâng cao trình độ của mình, vừa đóng góp cho cộng đồng.

Gợi ý: Nếu các bạn quan tâm đến các công cụ xử lý tiếng Việt ngoài underthesea, hãy tham khảo trong dự án NLP-Vietnamese-progress đã được giới thiệu ở trên. Rất nhiều công cụ được tổng hợp trong dự án NLP-Vietnamese-progress cũng là những sản phẩm open source.

Chúc các bạn học thật vui. Rất hi vọng được thấy sản phẩm về NLP của các bạn trong tương lai.

Phụ lục A - Các tài liệu tiếng Việt

Ở phần nền tảng, các khóa học và phần mềm, mình đã trình bày các tài liệu tiếng Anh cho việc tìm hiểu và nghiên cứu xử lý ngôn ngữ tự nhiên. Ở phần này, mình tổng hợp thêm các tài liệu tiếng Việt cho các bạn chưa thành thạo tiếng Anh.