[Seri NLP] Giới thiệu về NLP - Cũ mà không cũ

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:
  • Học máy - Machine Learning
    • Blog machinelearningcoban Link
    • Khóa học Machine Learning của Andrew Ng Link
  • 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

3.3 Sách

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