[Seri NLP] Giới thiệu về NLP - Cũ mà không cũ
Bài đăng này đã không được cập nhật trong 4 năm
Xin chào các ae thiện lành, Hiện tại mình đang làm cho 1 công ty startup về AI và cũng tham gia 1 số cuộc thi hackathon về AI. Hôm nay theo trend cuộc thi Viblo May Fest 2020 mình cũng chia sẻ 1 số kiến thức và kinh nghiệm của mình về lĩnh vực mình đang làm là NLP. Các chia sẻ của mình sẽ tương đối ngắn gọn hướng về dạng note cá nhân và bản tóm tắt. Hi vọng sẽ giúp ae tìm được định hướng và bắt đúng keyword trong khi tìm hiểu về NLP. Có vấn đề gì chưa rõ hoặc cần làm chi tiết hơn ae cứ "còm men" để ae cùng mổ xẻ và giải quyết vấn đề. Seri số 1 là giới thiệu tổng quan về NLP cho các ae mới tìm hiểu. Cũng có nhiều bài giới thiệu rồi nhưng hi vọng mỗi bài sẽ cung cấp 1 cái nhìn khác nhau để ae có nhiều góc nhìn hơn. Vào bài thôi nhỉ.
Giới thiệu - Introduction
1. Khái niệm
Khái niệm:
- Xử lý ngôn ngữ tự nhiên (NLP) là một nhánh của Trí tuệ nhân tạo.
- Tập trung vào việc nghiên cứu sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người.
Mục tiêu:
- Giúp máy tính hiểu và thực hiện hiệu quả những nhiệm vụ liên quan đến ngôn ngữ của con người như: tương tác giữa người và máy, cải thiện hiệu quả giao tiếp giữa con người với con người
- Nâng cao hiệu quả xử lý văn bản và lời nói.
2. Một số bài toán trong xử lý ngôn ngữ tự nhiên
- Text categorization
- Syntactic parsing
- Part-of-speech tagging (POS)
- Named Entity Recognition (NER)
- Coreference resolution
- Machine translation
- Relation extraction
- Summarization
- Sematic parsing
- Paraphrase and naatural language inference
- Question/Answering (QA)
- Sentiment analysis
- Dialogue agents
3. Học NLP nên bắt đầu từ đâu
3.1 Nền tảng
- Lập trình Python cơ bản:
- Sách lập trình Python rất là cơ bản Download
- Python tutorial trên W3Schools.com Link
- Học máy - Machine Learning
- Học sâu - Deep Learning
- Khóa học Deep Learning của Andrew Ng Link
Bạn vẫn có thể xây dựng ứng dụng NLP mà không cần phải chuẩn bị hết các nền tảng liệt kê ở trên. 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.
3.2 Các khóa học
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
- Khóa học thiên về lý thuyết:
- Deep Learning - Sequence models - Khóa học thứ 5 trong chuỗi khóa học Deep Learning của Andrew Ng.
- CS224n: Natural Language Processing with Deep Learning - Khóa học về NLP của trường Stanford, tập trung về các phương pháp xử lý ngôn ngữ dựa vào học sâu.
- Khóa học thiên về thực hành (lập trình):
3.3 Sách
- Speech and Language Processing (3rd ed. draft) - Dan Jurafsky and James H. Martin: Phiên bản 3 của quyển sách kinh điển Speech Language Processing. Cập nhật các phương pháp mới nhất trong xử lý ngôn ngữ tự nhiên.
- Natural Language Processing - Jacob Eisenstein.
3.4 Trang web hữu ích
Các trang web hữu ích
- Viblo - Blog kỹ thuật tổng hợp nhiều bài viết hướng dẫn về NLP
- Underthesear - Opensource NLP modules, datasets và các tutorial cho xử lý ngôn ngữ tự nhiên tiếng Việt
- Blog Ông Xuân Hồng - Blog chia sẻ kiến thức và thông tin về Machine Learing.
- Paperswithcode - Trang tổng hợp paper, đánh giá thuật toán và source code.
4. Công cụ
Danh sách sau tổng hợp các công cụ phổ biến:
- spaCy - 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) - 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 - 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.
- fastText - 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 - Công cụ chuyên về lĩnh vực Topic Modelling.
Cần gì ae cứ comment và gạch đá vô tư nhé. Có time mình sẽ support nhiệt tình
All rights reserved