Nếu bạn muốn tìm hiểu về Xử lý ngôn ngữ tự nhiên, hãy cùng dành thời gian tìm hiểu 10 thuật ngữ phổ biến trong NLP nhé. Việc biết các thuật ngữ là điều cần thiết để hiểu bất kì một hướng dẫn nào. Khi các Lập trình viên và các Nhà khoa học dữ liệu viết hướng dẫn trực tuyến hoặc tạo video về một chủ đề cụ thể, thì họ luôn mặc định rằng khi bạn đã ở đây – xem hướng dẫn hoặc video này – tức là bạn đã có khái niệm về những gì bạn đang xem. Vì vậy, họ sẽ sử dụng những thuật ngữ chuyên ngành với những giả định rằng người đọc và người xem hiểu ý nghĩa của những từ đó là gì.
№1: Corpus
Xử lý ngôn ngữ tự nhiên là một lĩnh vực duy nhất kết hợp khoa học máy tính, khoa học dữ liệu và ngôn ngữ học với nhau, cho phép máy tính hiểu và sử dụng ngôn ngữ của con người. Thuật ngữ NLP đầu tiên, corpus – tiếng Latinh có nghĩa là phần thân – là một thuật ngữ dùng để chỉ phần nội dung của văn bản. Hình thức số nhiều của từ là corpora.
Nó có thể có một hoặc nhiều ngôn ngữ và có thể ở dạng ngôn ngữ nói hoặc ngôn ngữ viết. Corpora có thể có một chủ đề cụ thể hoặc có thể là văn bản khái quát. Dù ở dạng nào thì Corpora được sử dụng cho việc phân tích ngôn ngữ thống khê và ngôn ngữ tính toán.
Nếu bạn đang sử dụng Python để xây dựng dự án của mình thì gói Gensim có thể giúp bạn xây dụng corpora từ Wiki hoặc những bài viết dựa trên Wiki.
№2: Stemming
Trong Xử lý ngôn ngữ tự nhiên trên một số ngôn ngữ như tiếng Anh, stemming là một kỹ thuật được sử dụng để tìm ra từ gốc bằng cách loại bỏ tất cả những tiền tố, phụ tố và hậu tố. Mục đích chính của stemming là để tạo cho thuật toán khả năng tìm kiếm và trích xuất những thông tin hữu ích từ một nguồn khổng lồ như internet hoặc dữ liệu lớn.
Các thuật toán khác nhau được sử dụng để thực hiện stemming bao gồm:
- Bảng tra cứu. Một biểu mẫu có tất cả các biến thể có thể có của tất cả các từ (tương tự như từ điển).
- Loại bỏ các hậu tố. Loại bỏ các hậu tố khỏi từ để xây dựng dạng gốc của từ.
- Mô hình ngẫu nhiên. Một loại thuật toán duy nhất hiểu các quy tắc ngữ pháp của hậu tố và sử dụng quy tắc đó để trích xuất nguồn gốc của một từ mới.
Bạn có thể thực hiện stemming trong Python bằng cách sử dụng các phương thức được xác định trước trong gói NLTK.
№3: Lemmatization
Mặc dù stemming là một giải pháp tốt cho việc trích xuất nguồn gốc từ, đôi lúc việc loại bỏ các yếu tố của từ không đủ để có được chính xác nguồn gốc của từ. Ví dụ, nếu tôi sử dụng stemming để có được từ gốc của từ paid, thì kết quả trả về sẽ là pai, một kết quả không hề chính xác.
Nhược điểm của stemming thường xuất hiện khi gặp những từ bất quy tắc, không theo bất kỳ một quy tắc ngữ pháp chuẩn nào. Đây là lúc cần đến lemmatization. Cụ thể, chúng ta đưa từ về thể từ điển, còn gọi là, lemma hay morphology. Với lemmatization ta có thể chuyển từ paid thành từ pay là dạng nguyên thể của nó.
NLTK cũng cung cấp các phương pháp có thể được sử dụng để trích xuất lemma của một từ.
№4: Tokenization
Thuật ngữ NLP quan trọng tiếp theo, tokenization là một quá trình chia nhỏ một câu thành các từ hoặc thành các token. Trong quá trình hình thành các token, dấu chấm câu hoặc những ký tự đặc biệt thường được loại bỏ.
Các token được xây dựng từ một phần văn bản cụ thể được sử dụng để phân tích và xử lý thống kê.
Điều đáng nói là một token không nhất thiết phải là một từ; ví dụ, “rock ‘n’ roll,” “3-D printer” đều là những token. Và chúng được xây dựng từ nhiều từ. Ngoài ra token có thể là ký tự hoặc subword.
Nói một cách đơn giản, tokenization là một kỹ thuật được sử dụng để đơn giản hóa một kho ngữ liệu để chuẩn bị cho các giai đoạn xử lý tiếp theo.
Trong Python, gói NLTK cung cấp các phương thức để thực hiện tokenization, chẳng hạn như sent_tokenize và word_tokenize. Ngoài ra, NLTK còn cung cấp các ngôn ngữ khác ngoài tiếng Anh.
№5: Lexicon
Khi đã nói đến nhiệm vụ Xử lý ngôn ngữ tự nhiên, chúng ta cần xem xét nhiều thứ hơn ngoài ngôn ngữ. Chúng ta phải xét xem những thuật ngữ này có thể được sử dụng trong một ngữ cảnh cụ thể để có nghĩa cụ thể. Ví dụ những từ như “chân sút”, “việt vị” là những thuật ngữ được dùng để miêu tả những khía cạnh khác nhau của bóng đá. Lexicon là tập hợp các từ của một ngôn ngữ hay của một nhánh tri thức.
Để có được kết quả chính xác hơn từ các mô hình Xử lý ngôn ngữ tự nhiên thì Lexicon là rất cần thiết. Ví dụ, khi bạn tiến hành phân tích cảm xúc của một số tweet, và muốn tìm hiểu những chủ đề xung quanh các tweet, thì một phương thức chung để biểu diễn câu từ là yếu tố bắt buộc.
№6: Word Embeddings
Máy tính không hiểu từ ngữ, vì vậy nếu chúng ta muốn chúng phân tích và sử dụng ngôn ngữ của chúng ta một cách chính xác, chúng ta phải trình bày những ngôn ngữ đó để máy tính có thể hiểu được. Ngoài ra, việc phân tích văn bản có thể trở thành một khó khăn và việc sử dụng các con số có thể dễ dàng hơn cho thuật toán và máy tính.
Trong Xử lý ngôn ngữ tự nhiên, nhúng từ là một kỹ thuật được sử dụng để chuyển các từ thành vectơ số thực cho mục đích phân tích. Khi những vectơ này được hình thành, chúng có thể được sử dụng để huấn luyện các mô hình, xây dựng mạng nơ-ron cũng như các kỹ thuật machine learning khác. Bạn có thể đọc thêm thuật ngữ NLP này tại đây.
№7: N-gram
Trong công việc phân tích văn bản N-gram hàm ý việc chuyển ngữ liệu thành các khối n từ. Các khối này thường được xây dựng bằng cách di chuyển từng từ một. Khi n=1, chúng ta sử dụng thuật ngữ unigram thay vì 1-gram. Trong trường hợp n = 2, chúng ta gọi nó là bigram và khi n = 3 thì sẽ được gọi là trigram.
Trong Python, việc viết một hàm tạo n-gram cho một câu tương đối dễ dàng. Tuy nhiên, nếu bạn không muốn tự thực hiện, các gói NTLK và textblob sẽ cung cấp các phương thức có thể giúp bạn tạo n-gram tự động.
№8: Normalization
Khi chúng ta muốn phân tích văn bản cho bất kỳ mục đích nào, quá trình phân tích có thể chính xác hơn nhiều nếu văn bản chúng ta đang sử dụng có định dạng chuẩn. Việc đặt văn bản ở định dạng chuẩn được gọi là chuẩn hóa. Ví dụ: nếu chúng ta thực hiện việc tìm kiếm trong văn bản, thì việc toàn bộ văn bản được viết hoa hoặc viết thường sẽ tốt hơn.
Quá trình chuẩn hóa thường được tiến hành sau khi mã hóa một đoạn văn và một truy vấn. Tiếp theo, chúng ta có thể sẽ có hai cụm từ tương tự nhưng không giống nhau 100% ví dụ như USA và U.S.A. Nhưng, bạn muốn mô hình của mình khớp hai thuật ngữ này với nhau dù có bất kì sự khác biệt nào.
Chuẩn hóa một văn bản có thể có cả tác động tốt và không tốt đến mô hình Xử lý ngôn ngữ tự nhiên của bạn. Một mặt, việc chuẩn hóa có thể tạo sự kết hợp tốt hơn trong các tác vụ tìm kiếm. Mặt khác, việc chuyển đổi mọi thứ thành chữ thường hoặc chữ hoa có thể ảnh hưởng đến độ tin cậy của ứng dụng tổng thể.
№9: Named Entity (NER)
Trong bất kỳ tác vụ NLP nào, chúng ta thường được yêu cầu đọc, làm sạch và phân tích một kho ngữ liệu khổng lồ. Đó là lý do tại sao hầu hết các thuật ngữ trong danh sách này là các kỹ thuật có thể giúp phân tích dễ dàng và hiệu quả hơn.
NER là một kỹ thuật NLP khác giúp trích xuất thêm thông tin về một số văn bản bằng cách gắn nhãn các từ khác nhau thành các danh mục được xác định trước như: người, địa điểm, thời gian, email,…
Việc thực hiện NER có thể giúp phân tích phân tích văn bản chính xác hơn. Bạn có thể thực hiện NER trong Python bằng cách sử dụng các gói như Spacy và NLTK.
№10: Parts-of-speech (POS) Tagging
Thuật ngữ NLP cuối cùng là POS Tagging, một kỹ thuật phân tích hữu ích khác là xác định từ loại của các thành phần trong một văn bản hoặc một câu cụ thể. Việc gắn thẻ POS giúp tạo ra một danh sách các từ và thẻ từ loại của nó (danh từ, động từ, tính từ…).
Trong hầu hết các ứng dụng, ban đầu chúng ta thường sử dụng một trình POS Tag cơ bản và sau đó có thể nâng cao lên. Gói NLTK cung cấp một trình gắn thẻ mặc định, cho phép bạn gắn thẻ cho bất kì văn bản nào.
Tổng kết
Bài viết này đã đưa ra cho bạn các thuật ngữ cơ bản về NLP mà bạn có thể sẽ tìm thấy hầu hết trong các bài báo cũng như video hướng dẫn. Hy vọng rằng, việc nắm rõ ý nghĩa của những thuật ngữ này sẽ giúp bạn dễ dàng thâm nhập được các nguồn tài nguyên, xây dựng được nhiều dự án, thăng tiến trong hành trình học tập và đạt được thành công trong sự nghiệp mơ ước của mình.
Bạn thấy bài viết hữu ích, hãy chia sẻ với những ai đang cần nó. Và đừng quên, nếu như bạn có những kiến thức, kỹ năng, câu chuyện liên quan đến lĩnh vực, hãy tham gia Cộng đồng Trí tuệ nhân tạo và cùng chia sẻ câu chuyện của bạn với mọi người.