Vina Blockchain
Vina Blockchain
Dang Van
Episode 330 – Xử lý ngôn ngữ tự nhiên với Python và NLTK - June 29 – 2019 Do Lê Quang Văn thực hiện
21 minutes Posted Jun 29, 2019 at 1:08 am.
0:00
21:12
Download MP3
Show notes
Xử lý ngôn ngữ tự nhiên (NLP)
Ngôn ngữ tự nhiên là gì?
● Là con người, chúng ta thể hiện suy nghĩ hoặc cảm xúc của mình thông qua ngôn ngữ
● Bất cứ điều gì bạn nói, đọc, viết hoặc nghe hầu hết đều ở dạng ngôn ngữ tự nhiên, vì vậy nó thường được thể hiện dưới dạng ngôn ngữ tự nhiên
Ví dụ:
● Nội dung của Tập tin này là một nguồn ngôn ngữ tự nhiên
● Bất cứ điều gì bạn nói, nghe và viết trong cuộc sống hàng ngày của bạn cũng ở dạng ngôn ngữ tự nhiên
● Các hội thoại trong phim là một nguồn ngôn ngữ tự nhiên
● Cuộc hội thoại WhatsApp của bạn cũng được xem như là một dạng ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên là gì?
● Bạn đã hiểu ngôn ngữ tự nhiên là gì. NLP là một nhánh phụ của AI. Hãy xem một ví dụ và hiểu khái niệm về NLP. Giả sử bạn muốn chế tạo một cỗ máy tương tác với con người dưới dạng ngôn ngữ tự nhiên. Loại hệ thống thông minh này cần các công nghệ tính toán và ngôn ngữ học tính toán để xây dựng nó và hệ thống xử lý ngôn ngữ tự nhiên như con người.
● Bạn có thể liên kết khái niệm NLP đã nói ở trên với các sản phẩm NLP hiện có từ các công ty công nghệ hàng đầu thế giới, như Google Assistant từ Google, Siri hỗ trợ phát biểu từ Apple, v.v.
● Bây giờ bạn có thể hiểu các định nghĩa về NLP, như sau:
● Xử lý ngôn ngữ tự nhiên là khả năng của các công nghệ tính toán và / hoặc ngôn ngữ học tính toán để xử lý ngôn ngữ tự nhiên của con người
● Xử lý ngôn ngữ tự nhiên là một lĩnh vực của khoa học máy tính, trí tuệ nhân tạo và ngôn ngữ học tính toán liên quan đến sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người.
● Xử lý ngôn ngữ tự nhiên có thể được định nghĩa là xử lý tự động (hoặc bán tự động) của ngôn ngữ tự nhiên của con người
Hiểu các ứng dụng cơ bản
NLP là một nhánh phụ của AI. Các khái niệm từ NLP được sử dụng trong các hệ thống chuyên gia sau:
● Hệ thống nhận dạng giọng nói
● Hệ thống trả lời câu hỏi
● Dịch từ một ngôn ngữ cụ thể sang ngôn ngữ cụ thể khác
● Tóm tắt văn bản
● Phân tích tình cảm
● Chatbots dựa trên mẫu
● Phân loại văn bản
● Phân khúc chủ đề
Chúng ta sẽ tìm hiểu hầu hết các khái niệm NLP được sử dụng trong các ứng dụng.
Hiểu các ứng dụng nâng cao
Các ứng dụng nâng cao bao gồm:
● Robot hiểu lệnh của con người qua ngôn ngữ tự nhiên và tương tác với con người bằng ngôn ngữ tự nhiên.
● Xây dựng hệ thống dịch máy phổ quát là mục tiêu lâu dài trong lãnh vực NLP vì bạn có thể dễ dàng xây dựng một hệ thống dịch máy có thể chuyển đổi một ngôn ngữ cụ thể sang ngôn ngữ cụ thể khác, nhưng hệ thống đó có thể không giúp bạn dịch các ngôn ngữ khác. Với sự giúp đỡ của việc học sâu, chúng ta có thể phát triển một hệ thống dịch máy phổ quát và Google gần đây đã thông báo rằng họ gần đạt được mục tiêu này. Chúng ta sẽ xây dựng hệ thống dịch máy của riêng mình bằng Học sâu.
● Hệ thống NLP, tạo ra tiêu đề logic cho tài liệu đã cho là một trong những ứng dụng nâng cao. Ngoài ra, với sự giúp đỡ của việc học sâu, bạn có thể tạo tiêu đề của tài liệu và thực hiện tóm tắt trên đó.
● Hệ thống NLP, tạo văn bản cho các chủ đề cụ thể hoặc cho một hình ảnh cũng được coi là một ứng dụng NLP nâng cao.
● Các chatbot nâng cao, tạo ra văn bản cá nhân hóa cho con người và bỏ qua những sai lầm trong văn bản của con người cũng là một mục tiêu chúng ta đang cố gắng đạt được.
Ưu điểm của sự kết hợp - NLP và Python
Các điểm sau đây minh họa tại sao Python là một trong những lựa chọn tốt nhất để xây dựng hệ thống chuyên gia dựa trên NLP:
● Phát triển các nguyên mẫu cho hệ thống chuyên gia dựa trên NLP bằng Python rất dễ dàng và hiệu quả
● Rất nhiều thư viện NLP nguồn mở có sẵn cho các lập trình viên Python
● Hỗ trợ cộng đồng rất mạnh và rất nhanh
● Dễ sử dụng và ít phức tạp cho người mới bắt đầu
● Phát triển nhanh chóng: kiểm tra và đánh giá rất dễ dàng và ít phức tạp
● Nhiều khung công tác mới, như Apache Spark, Apache Flink, TensorFlow, v.v., cung cấp API cho Python
● Tối ưu hóa hệ thống dựa trên NLP ít phức tạp hơn so với các mô hình lập trình khác
Thiết lập môi trường cho NLTK - Natural Language Toolkit
Bộ công cụ ngôn ngữ tự nhiên, hay