Nằm trong chuỗi các bài dịch liên quan đến Xử lý ngôn ngữ tự nhiên của 200Lab
Natural language processing (NLP) is a subfield of linguistics, computer science, and artificial intelligence concerned with the interactions between computers and human language, in particular how to program computers to process and analyze large amounts of natural language data. The goal is a computer capable of "understanding" the contents of documents, including the contextual nuances of the language within them. The technology can then accurately extract information and insights contained in the documents as well as categorize and organize the documents themselves - Wikipedia
Natural Language Processing là gì
Natural Language Processing (NLP) là một nhánh của ngôn ngữ học, khoa học máy tính và trí tuệ nhân tạo 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 (Ví dụ: Tiếng Anh, Tiếng Việt,...), giọng nói hoặc văn bản.
Những thử thách trong lĩnh vực xử lý ngôn ngữ tự nhiên là: Nhận diện giọng nói, hiểu được ngôn ngữ tự nhiên của con người và mô phỏng lại ngôn ngữ tự nhiên.
Các ứng dụng của NLP
Các phần mềm có tích hợp Natural Language Processing (NLP) giúp đỡ chúng ta trong cuộc sống hằng ngày như:
- Personal Assistant (Trợ lý ảo cá nhân): Siri, Cortana, Google Assistant
- Auto-Complete (Tự động điền từ còn thiếu): Trong công cụ tiếm kiếm của Goolge khi bạn tìm kiếm một từ gì đấy
- Spell Checking - Kiểm tra lỗi chính tả: Hầu như ở khắp mọi nơi, Google Doc, Microsoft Word, ...
- Translation - Phiên Dịch: Google Translate
Bây giờ chúng ta sẽ cùng nhìn qua các ứng dụng của NLP trong lĩnh vực kinh doanh:
- Các chuỗi thức ăn nhanh phải tiếp nhận một lượng lớn các đơn đặt hàng và khiếu nại hằng ngày. Việc phải xử lý thủ công đôi khi sẽ dễ sai sót và nhàm chán vì chúng cứ lặp đi lặp lại, thêm vào đó bạn sẽ phải tốn nhiều chi phí để thuê thêm nhân công nếu số lượng đơn hàng tăng lên đột biến. Nhờ có sự ra đời của trợ lý ảo mà khối lượng công việc được giảm đi đáng kể, các Chat Bot sẽ giao tiếp với người dùng và tiếp nhận đơn hàng thay vì phải gọi điện như trước đây, ...
- Các nhãn hàng tung ra thị trường những sản phẩm mới của họ và tiếp thị chúng trên các nền tảng mạng xã hội, họ có thể đo lường độ thành công của chiến dịc (campaign) thông qua các chỉ số như: số lượt tiếp cận (reach, impression), số đơn đăt hàng, ... nhưng họ lại không biết được ý kiến của người tiêu dùng về sản phẩm của mình, bao nhiêu phân trăm người thích, không thích và trung lập. Với sự trợ giúp của NLP bạn hoàn toàn có thể làm được điều đó thông qua phân tích cảm xúc (Sentiment Analysis)
Phân loại NLP
NLP được chia thành 2 lĩnh vực chính: Ngôn ngữ học và Khoa học máy tính
Ngôn ngữ học chủ yếu tập trung vào việc hiểu được cấu trúc của ngôn ngữ, bao gồm:
- Ngữ âm (Phonetics) : Nghiên cứu âm thanh ngôn ngữ của con người
- Âm vị (Phonology) : Nghiên cứu hệ thống âm thanh trong ngôn ngữ của con người
- Cú pháp (Syntax) : Nghiên cứu sự hình thành và cấu trúc của một câu nói.
- Ngữ nghĩa (Semantics) : Nghiên cứu ý nghĩa của câu nói
- Ngữ dụng học (Pragmatics) : Nghiên cứu cách thức các câu nói với ý nghĩa của chúng (semantics) được sử dụng cho các mục đích giao tiếp cụ thể. Cụ thể nói nhiều như vậy thì tóm gọn lại người đối diện muốn biểu thị cái gì.
Trong khi đó Khoa học máy tính lại quan tâm đến việc chuyển đổi các kiến thức chuyên sâu về ngôn ngữ học thành những chương trình máy tính (Program, Application) với sự trợ giúp đắc lực của trí tuệ nhân tạo (AI) nhằm phục vụ con người.
Những tiến bộ về mặt kĩ thuật trong lĩnh vực NLP có thể được chia ra thành: Mô hình hệ thống dựa trên quy tắc (rule-based), mô hình máy học cổ điển và Deep Learning
- Mô hình hệ thống dựa trên các quy tắc (rule-based), nói nôm na là bạn sẽ định ra một số các quy tắc dựa trên hiểu biết nhất định về một ngành nghề nào đó, trong ngữ cảnh này là ngôn ngữ học. Ví dụ bạn định ra quy tắc sau nếu các chữ có chữ cái đầu viết hoa là tên người hay địa danh (Nguyễn Văn A, Bà Rịa - Vũng Tàu, ...). Tuy nhiên, so sự phức tạp của ngôn ngữ con người, phát triển nhanh chóng (teen code, cố tình sai chính tả, ...) hệ thống rule-based chứng tỏ sự cứng nhắc, do phải luôn có người liên tục thêm các rule vào, khó khăn để quản lý và có tính khái quát hóa thấp.
- Mô hình máy học cổ điển có thể giải nhiều bài toán thách thức hơn (VD: Phát hiện spam, ...) thông qua việc trích lọc các Features (các thuộc tính, VD: tên, họ, năm sinh, doanh thu, ...) bằng cách sử dụng những phương pháp như
Bag of Words
,Part of Speech
, sau đó xây dựng các mô hình máy học (Machine Learning Models) như Support Vector Machine, Naive Bayes, ... Các mô hình này sẽ khai thác những mẫu câu có ngữ nghĩa (semantics patterns) trong dữ liệu train (huấn luyện) để đưa ra các dự đoán trong tương lai. - Mô hình Deep Learning: đang là mô hình phổ biến nhất trong nghiên cứu và ứng dụng NLP, nó có tính khái quát hóa (generalization) tốt hơn mô hình máy học cổ điển, bạn có thể hiểu đơn giản khái quát hóa là khả năng tương thích với các dữ liệu mới, sẽ xuất hiện trong tương lai, khi Model của bạn chỉ cho kết quả tốt đối với mẫu thử hiện tại nhưng lại cho kết quả xấu với các mẫu thử trong tương lai thì nó có tính khái quát hóa thấp. Mô hình này không cần các thuộc tính xử lý thủ công bằng tay, vì nó sẽ tự làm điều đó cho bạn. Khả năng học hỏi của mô hình Deep learning mạnh mẽ hơn so với các mô hình cạn (shallow)/ mô hình cổ điển. Mở ra con đường giải quyết được các bài toán NLP phức tạp một cách triệt để.
Làm cách nào mà máy tính có thể hiểu được văn bản ?
Máy tính có thể hiểu được những con số, nhưng không thể nào hiểu được kí tự, từ ngữ hay câu nói, vì vậy cần một số các bước trung gian trước khi xây dựng mô hình NLP, gọi là biểu diễn văn bản (text representation). Mình sẽ tập trung giải thích biểu diễn từ (word), vì nó đơn giản và dễ hiểu nhất so với biểu diễn kí tự (character), một phần của từ (subword) - xóa đi một số kí tự của từ.
Trước khi Deep Learning ra đời, biểu diễn văn bản (cho máy hiểu) được triển khai bằng kĩ thuật khá đơn giản: one-hot encoder, như hình phía bên trên bạn sẽ thấy giả sử mình có 5 câu nói, được chuyển thành một mảng N*M:
- N là số lượng câu nói cần biểu diễn
- M là số lượng từ khác nhau tồn tại trong văn bản
Tương ứng với mỗi câu, từ nào có thì đánh số 1 từ nào không xuất hiện thì đánh số 0 thế là bạn đã có một vector (1,0,0,0) biểu diễn cho từ Cat. Cách tiếp cận này sẽ có một số những hạn chế:
- Vấn đề về bộ nhớ lưu trữ (RAM + Ổ cứng), như các bạn cũng thấy ở trên, vector bao gồm rất nhiều số 0 và rất ít số 1 (spare matrix), số 0 hầu như không dùng nhưng bạn vẫn phải lưu nó
- Thiếu sự hiểu biết về ngữ nghĩa của câu nói, vì vector ở trên không biểu thị được sự quan hệ giữa các từ với nhau, ví dụ hoa và ong có thể có mối liên hệ mật thiết với nhau
Vào năm 2013 Google đã giới thiệu một mô hình mới để biểu diễn văn bảng là word2vec [Mikolov et al., 2013], mô hình này có thể thể hiện văn bảng bằng dense vector (trái ngược với spare vector, hầu hết các giá trị đều khác 0), và nắm bắt được ngữ nghĩa của câu nói. Một số các nghiên cứu khác dựa trên word2vec như GloVe [Pennington et al., 2014] và fastText [Bojanowski et al., 2016].
Cuối năm 2018, các nhà nghiên cứu của Google lại đưa ra một mô hình khác (BERT), được cho là cơ sở cho các nghiên cứu và ứng dụng NLP tiên tiến nhất hiện nay.
BERT cũng chính là trọng tâm trong series NLP của 200Lab, với mong muốn mọi người có thể hiểu được nguyên lý hoạt động của mô hình này.
Nguồn: https://towardsdatascience.com/introduction-to-natural-language-processing-nlp-323cc007df3d
Bạn có thể nhấn vào link này để tham gia vào nhóm và nhận thêm nhiều tài liệu hữu ích khác về Data nhé!
Bài viết liên quan
Database (Cơ sở dữ liệu) là gì? Những loại Database phổ biến nhất hiện nay
Sep 01, 2024 • 11 min read
Python là gì? Những đặc điểm nổi bật và Ứng dụng của Python
Aug 28, 2024 • 14 min read
Ứng dụng Hypothesis Testing - Kiểm định giả thuyết trong Y học
Jul 18, 2024 • 8 min read
Google Colab là gì? Hướng dẫn sử dụng Google Colab cho người mới
Jul 02, 2024 • 10 min read
Hướng dẫn cách lấy dữ liệu Facebook Ads Tự động Mỗi ngày Miễn phí - Phần 2
Jun 24, 2024 • 6 min read
Hướng dẫn cách lấy dữ liệu Facebook Ads Tự động Mỗi ngày Miễn phí- Phần 1
Jun 24, 2024 • 11 min read