-
- Tổng tiền thanh toán:
Xử lý ngôn ngữ tự nhiên (NLP) là gì? 10 thuật toán NLP bạn cần biết
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) có lẽ hiện là lĩnh vực được nhắc đến nhiều nhất trong khoa học dữ liệu. Sau khi ChatGPT ra đời, NLP càng nhận được sự chú ý của cả giới nghiên cứu lẫn đại chúng. Công nghệ này đứng đằng sau hàng loạt ứng dụng mà chúng ta đang sử dụng mỗi ngày, chẳng hạn như Google search, trình lọc email rác, Trợ lý ảo, Chatbot,… Trong tương lai, NLP sẽ tiếp tục là lĩnh vực tiềm năng để các doanh nghiệp tập trung đầu tư và đội ngũ nhân sự trẻ phát triển năng lực chuyên môn. Với những ai muốn nghiêm túc theo đuổi sự nghiệp nghiên cứu và lập trình ứng dụng NLP, giờ là lúc để bạn bắt đầu trau dồi những kiến thức cơ bản đầu tiên. Hôm nay, chúng tôi sẽ tìm hiểu về NLP và tổng hợp 10 thuật toán NLP mà mọi nhà khoa học dữ liệu cần biết. Hãy nhanh tay lưu lại và chia sẻ cùng anh em trong ngành nhé!
Xử lý ngôn ngữ tự nhiên (NLP) là gì?
Xử lý ngôn ngữ tự nhiên (NLP) là một nhánh của trí tuệ nhân tạo được phát triển nhằm xây dựng các chương trình giúp máy tính phân tích, xử lý và hiểu ngôn ngữ của con người dưới dạng tiếng nói (speech) hoặc văn bản (text).
Xử lý ngôn ngữ tự nhiên không còn là một chủ đề mới, nhưng hiện tại nó đang có xu hướng phát triển một cách nhanh chóng nhờ mối quan tâm ngày càng tăng trong việc giao tiếp giữa con người và máy móc. Mục tiêu của NLP là giúp máy tính hiểu và thực hiện những nhiệm vụ như: tương tác giữa người và máy tính, cải thiện hiệu quả giao tiếp giữa con người với con người, hoặc đơn giản là nâng cao hiệu quả xử lý văn bản và lời nói.
Các ví dụ về xử lý ngôn ngữ tự nhiên có thể kể đến: kiểm tra chính tả, tự động hoàn thành câu chữ, nhắn tin bằng văn bản thoại, bộ lọc thư rác, từ khóa trên công cụ tìm kiếm, các trợ lý ảo Siri, Alexa, Google Assistant, ...
Ngôn ngữ của con người về bản chất là rất phức tạp. Xử lý ngôn ngữ tự nhiên không chỉ phải nắm bắt các quy tắc ngữ pháp, ý nghĩa và ngữ cảnh mà còn cả các từ thông tục, tiếng lóng và từ viết tắt được sử dụng trong một ngôn ngữ để diễn giải lời nói của con người. Đó chính là lý do các thuật toán xử lý ngôn ngữ tự nhiên được ra đời nhằm hỗ trợ máy tính hiểu được ngôn ngữ giao tiếp của con người.
Dưới đây liệt kê những thuật toán về Xử lý ngôn ngữ tự nhiên (NLP) phổ biến nhất.
Top 10 thuật toán NLP mà bạn cần biết
1. Lemmatization và Stemming
Stemming (Nguồn gốc) là kỹ thuật dùng để biến đổi một từ về dạng gốc (được gọi là stem hoặc root form) bằng cách cực kỳ đơn giản là loại bỏ một số ký tự nằm ở cuối từ mà nó nghĩ rằng là biến thể của từ. Có thể lấy ví dụ đơn giản như các từ worked, working, works chỉ khác nhau ở những ký tự cuối cùng, bằng cách bỏ đi các hậu tố -ed, -ing, -s, chúng ta đều được từ nguyên gốc là work. Bởi vì nguyên tắc hoạt động của Stemming rất đơn giản nên tốc độ xử lý của nó rất nhanh và kết quả stem đôi khi cho ra những kết quả không như mong muốn. Một ví dụ khác như từ goes sẽ được stem thành từ goe (bỏ chữ s cuối từ) trong khi đó stem của từ go vẫn là go, kết quả là 2 từ goes và go sau khi được stem thì vẫn không giống nhau. Một nhược điểm khác là nếu các từ dạng bất quy tắt như went hay spoke thì kỹ thuật Stemming sẽ không thể đưa các từ này về dạng gốc là go hay speak. Tuy có các nhược điểm như trên nhưng trong thực tế Stemming vẫn được sử dụng khá phổ biến trong NLP vì nó có tốc độ xử lý nhanh và kết quả cuối cùng nhìn chung không hề tệ khi so với Lemmatization.
Lemmatization (Bổ đề ngôn ngữ) khác với Stemming – xử lý bằng cách loại bỏ các ký tự cuối từ một cách rất “máy móc”, Lemmatization sẽ xử lý thông minh hơn bằng một bộ từ điển hoặc một bộ ontology nào đó. Điều này sẽ đảm bảo rằng các từ như goes, went và go sẽ chắc chắn có kết quả trả về là như nhau. Kể cả các từ danh từ như mouse, mice cũng đều được đưa về cùng một dạng như nhau. Người ta gọi bộ xử lý Lemmatization là Lemmatizer.
Phân biệt Stemming và Lemmatization.
Nhược điểm của lemmatization là tốc độ xử lý khá chậm vì phải thực hiện tra cứu từ trong cơ sở dữ liệu. Trong các ứng dụng Xử lý ngôn ngữ tự nhiên mà cần độ chính xác cao hơn và thời gian không quan trọng, người ta có thể sử dụng Lemmatization.
2. Mô hình chủ đề (Topic Modelling)
Bạn có thể sử dụng các kỹ thuật trích xuất từ khóa để tóm tắt nội dung đã cho thành một số từ khóa và ý tưởng chính, từ đó rút ra được chủ đề của văn bản. Một kỹ thuật khác nâng cao hơn để xác định chủ đề của văn bản là Topic Modelling. Đây là mô hình hàng đầu được xây dựng dựa trên học máy không giám sát, không yêu cầu dữ liệu được gán nhãn để đào tạo. Có nhiều thuật toán hỗ trợ mô hình hóa một chủ đề của văn bản, chẳng hạn như Correlated Topic Model, Latent Dirichlet Allocation, Latent Sentiment Analysis. Phương pháp được sử dụng phổ biến nhất là Latent Dirichlet. Cách tiếp cận này phân tích văn bản, chia nhỏ văn bản thành các từ và câu, sau đó trích xuất các chủ đề khác nhau từ những từ và câu này.
Ví dụ về mô hình hóa chủ đề.
3. Trích xuất từ khóa (Keyword Extraction)
Trích xuất từ khóa (Keywords extraction) – đôi khi được gọi là phát hiện từ khóa hoặc phân tích từ khóa – là một kỹ thuật NLP được sử dụng để phân tích văn bản. Mục đích chính của kỹ thuật này là tự động trích xuất các từ và cách diễn đạt thông dụng nhất từ nội dung văn bản. Nó thường được sử dụng như một bước để tóm tắt ý chính của văn bản. Keywords extraction giúp trích xuất và đơn giản hóa một văn bản nhất định để máy tính có thể hiểu được. Thuật toán có thể được điều chỉnh và áp dụng cho bất kỳ loại ngữ cảnh nào, từ văn bản học thuật đến văn bản thông dụng trong các bài đăng trên mạng xã hội.
Có nhiều loại thuật toán trích xuất từ khóa khác nhau, một số thuật toán chỉ trích xuất từ và một số thuật toán khác lại có thể trích xuất cả từ và cụm từ, ngoài ra còn có các thuật toán trích xuất từ khóa dựa trên nội dung của văn bản.
Dưới đây liệt kê một số thuật toán trích xuất từ khóa nổi bật:
- TextRank: thuật toán này hoạt động tương tự như việc Xếp hạng trang (PageRank). Google sử dụng thuật toán này để xếp hạng các trang web trên internet.
- Term Frequency: Thuật toán này sẽ xác định rõ tầm quan trọng của một thuật ngữ trong tài liệu.
- RAKE: Là viết tắt của Rapid Automatic Keyword Extraction – Trích xuất từ khóa tự động. Thuật toán này có thể trích xuất các từ khóa và cụm từ khóa từ nội dung của một tài liệu mà không cần tính đến các tài liệu khác trong cùng một bộ sưu tập.
4. Sơ đồ tri thức (Knowledge Graphs)
Sơ đồ tri thức là một tập hợp của ba mục: chủ đề, vị ngữ và thực thể – một phương pháp lưu trữ thông tin.
Sơ đồ tri thức đang trở nên ngày càng phổ biến, đặc biệt là khi nó được sử dụng bởi nhiều công ty lớn (chẳng hạn như Biểu đồ thông tin của Google) cho các hàng hóa và dịch vụ khác nhau.
Việc xây dựng một sơ đồ tri thức đòi hỏi nhiều kỹ thuật Xử lý ngôn ngữ khác nhau và việc sử dụng nhiều hơn các cách tiếp cận này sẽ tạo ra một sơ đồ tri thức hiệu quả và kỹ lưỡng hơn.
5. Word Cloud
Word Cloud hay Đám mây từ, đôi khi được gọi là đám mây thẻ, là một cách tiếp cận trực quan hóa dữ liệu. Các từ của một văn bản được hiển thị trong một bảng, với các thuật ngữ quan trọng nhất được in bằng các chữ cái lớn hơn và các từ ít quan trọng hơn được mô tả ở kích thước nhỏ hơn hoặc hoàn toàn không hiển thị.
6. Named Entity Recognition
Giống như stemming và lemmatization, nhận dạng thực thể được đặt tên (NER) là kỹ thuật cơ bản và cốt lõi của NLP. NER được sử dụng để trích xuất các thực thể từ phần nội dung của văn bản, chẳng hạn như tên người, địa điểm, ngày tháng, v.v. Thuật toán NER chủ yếu có hai bước. Đầu tiên, nó phát hiện một thực thể trong văn bản và sau đó phân loại chúng vào danh mục đã đặt. Hiệu suất của NER phụ thuộc rất nhiều vào dữ liệu đào tạo. Dữ liệu đào tạo càng phù hợp với dữ liệu thực tế thì kết quả sẽ càng chính xác. Ngoài ra, một yếu tố khác góp phần vào độ chính xác của mô hình NER là kiến thức ngôn ngữ được sử dụng khi xây dựng mô hình. Ứng dụng của NER có thể tìm thấy trong nhiều lĩnh vực khác nhau, ví dụ: xây dựng hệ thống khuyến nghị trong chăm sóc sức khỏe để cung cấp dịch vụ tốt hơn cho bệnh nhân hay giúp sinh viên tìm kiếm tài liệu liên quan đến phạm vi nghiên cứu.
7. Sentiment Analysis
Sentiment Analysis là kỹ thuật NLP nổi tiếng và được sử dụng nhiều nhất. Chức năng cốt lõi của kỹ thuật này là trích xuất thái độ, quan điểm đằng sau nội dung văn bản. Kết quả đơn giản nhất mà mô hình Sentiment Analysis trả ra là thang đo có 3 cực: tiêu cực, tích cực và trung lập. Thuật toán có thể phức tạp và nâng cao hơn; tuy nhiên, kết quả sẽ được thể hiện dưới dạng điểm số trong trường hợp này. Nếu kết quả là một số âm, thì cảm xúc đằng sau văn bản có xu hướng tiêu cực, và ngược lại. Sentiment Analysis là một trong những bài toán phổ biến của học máy. Nó có thể được thực hiện bằng cách sử dụng các kỹ thuật có giám sát hoặc không giám sát. Kỹ thuật có giám sát phổ biến nhất giúp phân tích quan điểm là thuật toán Naive Bayes. Các thuật toán học máy có giám sát khác có thể được sử dụng là gradient boosting và random forest.
8. Tóm tắt văn bản (Text Summarization)
Một trong những ứng dụng đầy hứa hẹn của NLP là tóm tắt văn bản. Kỹ thuật Text Summarization thường được sử dụng trong các bài báo dài, nhằm tóm tắt các tài liệu nghiên cứu. Summarization là một kỹ thuật nâng cao, áp dụng đồng thời topic modeling và keyword extraction. Summarization thực hiện hai bước, một là trích xuất (nội dung chính) và sau đó tổng hợp lại. Trong giai đoạn trích xuất, thuật toán trích xuất các phần quan trọng của văn bản dựa trên tần suất xuất hiện của chúng. Sau đó, nó tạo ra một văn bản hoàn toàn mới truyền tải thông điệp giống như văn bản gốc. Có nhiều thuật toán tóm tắt văn bản, ví dụ: LexRank và TextRank. Trong LexRank, thuật toán phân loại các câu trong văn bản bằng mô hình xếp hạng. Thứ bậc được xác định dựa trên sự tương đồng giữa các câu; một câu càng giống với phần còn lại của văn bản thì nó sẽ được xếp hạng càng cao.
9. Mô hình túi từ (Bag of Words)
Mô hình này thể hiện một văn bản giống như một túi (nhiều tập hợp) từ, không bao gồm ngữ pháp và trật tự từ trong khi vẫn giữ được tính đa dạng. Về bản chất, mô hình túi từ tạo ra một ma trận tỷ lệ. Các tần số hoặc trường hợp từ này sau đó được sử dụng như các tính năng trong việc đào tạo bộ phân loại (Classifier).
10. Tách từ (Tokenization)
Tách từ (Tokenization) là một trong những bước quan trọng nhất trong quá trình tiền xử lý văn bản. Cho dù bạn đang làm việc với các kỹ thuật NLP truyền thống hay sử dụng các kỹ thuật học sâu nâng cao thì vẫn không thể bỏ qua bước này. Nói một cách đơn giản, tokenization là quá trình tách một cụm từ, câu, đoạn văn, một hoặc nhiều tài liệu văn bản thành các đơn vị nhỏ hơn. Mỗi đơn vị nhỏ hơn này được gọi là Tokens.
Tổng kết
Trên đây là những thông tin bạn đọc cần biết về Xử lý ngôn ngữ tự nhiên (NLP) và 10 thuật toán NLP bạn cần biết, hi vọng rằng sẽ hỗ trợ bạn trong việc tìm hiểu và nâng cao kiến thức về NLP. Đừng quên theo dõi những bài viết mới nhất của chúng tôi trong thời gian sắp tới nhé.