Xử lý ngôn ngữ tự nhiên: Bài toán & công cụ bạn nên biết

Xử lý ngôn ngữ tự nhiên: Bài toán & công cụ bạn nên biết

(Nguồn: https://vinbigdata.com)

Xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) là một nhánh cực kỳ quan trọng của Trí tuệ nhân tạo (AI), là giao điểm của Ngôn ngữ học, Khoa học Máy tính và AI. Ứng dụng của NLP chủ yếu được thúc đẩy bởi sự phổ biến của giao tiếp người và máy, sự phát triển nhanh chóng của các thiết bị thông minh, cũng như các giải pháp đám mây. NLP làm nhiệm vụ xử lý và phân tích một lượng lớn dữ liệu ngôn ngữ tự nhiên để bắt chước các tương tác giữa con người theo cách giống con người. Một hệ thống NLP tốt có thể hiểu được nội dung của văn bản, bao gồm cả sắc thái trong đó.

Vậy NLP bao gồm những bài toán nào? Công cụ nào sẽ hỗ trợ bạn giải những bài toán đó? Đừng bỏ lỡ bài viết dưới đây.

Các bài toán cơ bản trong NLP

  • Mô hình hóa ngôn ngữ (Language modelling)

Mô hình hóa ngôn ngữ (LM) gán một xác suất cho bất kỳ chuỗi từ nào. Về cơ bản, trongbài toán này, ta cần dự đoán từ tiếp theo xuất hiện theo trình tự, dựa trên lịch sử của các từ đã xuất hiện trước đó. LM rất quan trọng trong các ứng dụng khác nhau của NLP, và là lý do tại sao máy móc có thể hiểu được thông tin định tính. Một số ứng dụng của Mô hình hóa ngôn ngữ bao gồm: nhận dạng giọng nói, nhận dạng ký tự quang học, nhận dạng chữ viết tay, dịch máy và sửa lỗi chính tả.

  • Phân loại văn bản (Text classification)

Phân loại văn bản gán các danh mục được xác định trước cho văn bản dựa trên nội dung của nó. Cho đến nay, phân loại văn bản là ứng dụng phổ biến nhất của NLP, được sử dụng để xây dựng các công cụ khác nhau như trình phát hiện thư rác và chương trình phân tích cảm xúc.

  • Trích xuất thông tin (Information extraction)

Trích xuất thông tin (IE) tự động trích xuất thông tin có liên quan từ các tài liệu văn bản không có cấu trúc và / hoặc bán cấu trúc. Ví dụ về các loại tài liệu này bao gồm lịch sự kiện từ email hoặc tên của những người được đề cập trong một bài đăng trên mạng xã hội.

  • Truy xuất thông tin (Information retrieval)

Google là một loại hệ thống Truy xuất Thông tin (IR) phổ biến nhất mà chúng ta thường sử dụng. IR làm nhiệm vụ tìm kiếm các tài liệu có liên quan từ một bộ dữ liệu lớn các tài liệu liên quan đến truy vấn do người dùng thực hiện.

  • Tác tử phần mềm hội thoại (Conversational agent)

 Tác tử phần mềm hội thoại thuộc AI hội thoại, liên quan đến việc xây dựng các hệ thống đối thoại mô phỏng các tương tác của con người. Các ví dụ phổ biến về AI hội thoại bao gồm Alexa, Siri, Google Home, Cortana, hay trợ lý ảo ViVi. Các công nghệ như chatbot cũng được hỗ trợ bởi  tác tử phần mềm hội thoại và ngày càng phổ biến trong các doanh nghiệp.

  • Tóm tắt văn bản (Text summarization)

Tự động tóm tắt là quá trình rút ngắn một tập hợp dữ liệu để tạo một tập hợp con đại diện cho thông tin quan trọng nhất hoặc có liên quan trong nội dung gốc

  • Hỏi đáp (Question answering)

Hỏi đáp là bài toán xây dựng các hệ thống có thể tự động trả lời cho các câu hỏi do con người đặt ra bằng ngôn ngữ tự nhiên.

  • Dịch máy (Machine translation)

Dịch máy (MT) là một nhánh con của ngôn ngữ học tính toán liên quan đến việc chuyển đổi một đoạn văn bản từ ngôn ngữ này sang ngôn ngữ khác. Một ứng dụng phổ biến của loại này là Google Dịch.

  • Mô hình hóa chủ đề (Topic modelling)

Mô hình hóa chủ đề là một kỹ thuật Học máy không giám sát giúp khám phá cấu trúc chủ đề của một bộ tài liệu lớn. Ứng dụng NLP này là một công cụ khá phổ biến, được sử dụng trên nhiều lĩnh vực khác nhau – như Văn học, và Tin sinh học.

Công cụ giải quyết các bài toán NLP

  1. NLTK

Natural Language ToolKit (NLTK) là một trong những nền tảng hàng đầu để xây dựng các chương trình Python xử lý và phân tích dữ liệu ngôn ngữ của con người. NLTK cung cấp giao diện dễ sử dụng cho hơn 50 tài nguyên ngữ liệu và từ vựng như mạng từ, cùng với một bộ thư viện xử lý văn bản để phân loại, mã hóa, tạo gốc, gắn thẻ, phân tích cú pháp và lập luận ngữ nghĩa.

Để thành thạo về NLTK, bạn có thể tham khảo cuốn “Natural Language Processing with Python”, được viết bởi chính những người tạo ra NLTK. Cuốn sách mang đến một cách tiếp cận rất thực tế để lập trình cho các tác vụ Xử lý ngôn ngữ tự nhiên.

  1. SpaCy

Bản phát hành đầu tiên của SpaCy là vào tháng 2 năm 2015, khiến nó trở thành một trong những framework nguồn mở gần đây dành cho các ứng dụng Xử lý ngôn ngữ tự nhiên Python. So với NLTK được tạo ra vào năm 2001, những người sáng tạo SpaCy có đủ thời gian để tìm hiểu NLTK và xem nó còn thiếu ở đâu. Một trong những cải tiến dễ nhận biết nhất so với NTLK bao gồm các cải tiến về hiệu suất, vì SpaCy sử dụng một số thuật toán mới nhất và tốt nhất.

Ngoài ra, SpaCy được ghi chép rất đầy đủ và được thiết kế để hỗ trợ khối lượng lớn dữ liệu. Nó cũng bao gồm một loạt các mô hình Xử lý ngôn ngữ tự nhiên được đào tạo trước, giúp việc học, giảng dạy và thực hành Xử lý ngôn ngữ tự nhiên với SpaCy trở nên dễ tiếp cận hơn.

  1. Stanford CoreNLP

CoreNLP là một thư viện cực kỳ phổ biến cho các tác vụ Xử lý Ngôn ngữ tự nhiên, được xây dựng bởi cộng đồng NLP Stanford. Ngược lại với NLTK và SpaCy, được viết bằng Python hoặc Cython tương ứng, CoreNLP bằng Java – có nghĩa là máy tính của bạn sẽ cần phải có JDK (nhưng nó có API cho hầu hết các ngôn ngữ lập trình).

Trên trang chủ CoreNLP, các nhà phát triển mô tả CoreNLP là “nơi duy nhất để xử lý ngôn ngữ tự nhiên trong Java! CoreNLP cho phép người dùng lấy các chú thích ngôn ngữ cho văn bản, bao gồm mã thông báo và ranh giới câu, các phần của giọng nói, các thực thể được đặt tên, giá trị số và thời gian, trình phân tích cú pháp phụ thuộc và ý kiến ​​chính, tình cảm, phân bổ trích dẫn và quan hệ. CoreNLP hiện hỗ trợ 6 ngôn ngữ: Ả Rập, Trung Quốc, Anh, Pháp, Đức và Tây Ban Nha.

Một trong những ưu điểm chính của CoreNLP là nó có khả năng mở rộng rất cao, trở thành lựa chọn phù hợp cho các tác vụ phức tạp. Một yếu tố khác là CoreNLP được xây dựng chú trọng đến tốc độ – nó được tối ưu hóa để vận hành cực kỳ nhanh.

  1. Gensim

Gensim là một framework Python mã nguồn mở chuyên dụng, được sử dụng để biểu diễn tài liệu dưới dạng vectơ ngữ nghĩa theo những cách hiệu quả nhất và dễ dàng nhất có thể. Các tác giả đã thiết kế Gensim để xử lý văn bản thô, không có cấu trúc bằng cách sử dụng nhiều thuật toán học máy – vì vậy sử dụng Gensim để tiếp cận các tác vụ như Lập mô hình chủ đề là một ý tưởng tốt. Thêm vào đó, Gensim làm rất tốt việc xác định các điểm tương đồng trong văn bản, lập chỉ mục văn bản và điều hướng các tài liệu khác nhau.

Nhóm tác giả cho biết Gensim được xây dựng vì 3 lý do:

  • Tính thực tiễn – tập trung vào các thuật toán đã được chứng minh, đã được kiểm chứng để giải quyết các vấn đề thực tế của ngành. Gensim tập trung nhiều hơn vào kỹ thuật, ít hơn về học thuật.
  • Độc lập đối với bộ nhớ – không cần toàn bộ kho dữ liệu đào tạo phải nằm hoàn toàn trong RAM cùng một lúc. Nó có thể xử lý kho dữ liệu lớn, quy mô web bằng cách sử dụng luồng dữ liệu.
  • Hiệu suất – triển khai tối ưu hóa cao các thuật toán không gian vectơ phổ biến sử dụng C, BLAS và ánh xạ bộ nhớ
  1. TensorFlow & PyTorch

Tensorflow là phiên bản cũ hơn và được phát triển bởi nhóm Brain của Google. Mặt khác, Pytorch là một thư viện mã nguồn mở dựa trên thư viện Torch và được phát triển chủ yếu bởi phòng thí nghiệm Nghiên cứu AI (FAIR) của Facebook.

  1. Hugging Face

Mô hình transformer đã nâng cao NLP đáng kể trong những năm gần đây. Về cơ bản, đây là một kiến ​​trúc mới có tính đến sự phụ thuộc lâu dài khi giải quyết các nhiệm vụ theo trình tự. Phần lớn, các mô hình NLP khá lớn và đòi hỏi khá nhiều tính toán để có được một mô hình hoạt động tốt. Hugging Face Python cung cấp quyền truy cập vào một số mô hình được đào tạo trước cho nhiều tác vụ NLP khác nhau. Ngay cả những công ty như Amazon, Google AI và Facebook AI cũng tận dụng gói này.

Kết lại, có rất nhiều công cụ tuyệt vời mà các Nhà khoa học dữ liệu, nhóm AI và doanh nghiệp có thể sử dụng để thực hiện các dự án NLP dễ dàng hơn. Điều quan trọng là bạn tìm thấy công cụ phù hợp nhất với nhu cầu của mình và có các tích hợp bạn cần để đưa dự án của mình về đích.

Bình luận về bài viết này