Gán Nhãn Từ Loại (Part-of-Speech Tagging POS) - Ông Xuân Hồng
Trong nhiều tác vụ của Xử lý ngôn ngữ tự nhiên (XLNNTN), ta mong muốn xây dựng được một mô hình mà chuỗi các quan sát đầu vào (từ, ngữ, câu,…) đi kèm với chuỗi các nhãn đầu ra (từ loại, ranh giới ngữ, tên thực thể,…) gọi là pairs of sequences.
Gán nhãn từ loại (Part-of-speech tagging – POS) có lẽ là bài toán sớm nhất được nghiên cứu và được mọi người biết đến khi nhập môn chuyên ngành XLNNTN. Trong bài viết này, ta sẽ tìm hiểu về bài toán gán nhãn từ loại, các hướng tiếp cận và thuật toán cơ bản để giải quyết vấn đề này.
Giới thiệu
Trong gán nhãn từ loại, mục tiêu của chúng ta khi đưa chuỗi đầu vào là một câu ví dụ như “con ruồi đậu mâm xôi đậu”
thì chuỗi đầu ra sẽ là nhãn (tag sequence) được giống hàng tương ứng
Ở đây, D: determinator (định từ), N: noun (danh từ), V: verb (động từ). Khi đó, ta có chuỗi các cặp từ và từ loại tương ứng như sau
Gán nhãn (sequence labeling problem, tagging problem) có các bài toán thường gặp
- POS tagging (gán nhãn từ loại). Là cơ sở phục vụ cho các bài toán về ngữ nghĩa cao hơn.
- Named-Entity recognition (gán nhãn tên thực thể). Ví dụ: bà ba [CON NGUOI] bán bánh mì [THUC PHAM] ở phường mười ba [DIA DIEM]. Có giá trị về mặt ngữ nghĩa ở mức trung bình, thường được dùng để phân lớp văn bản.
- Machine translation (dịch máy). Đầu vào là một câu của ngôn ngữ A, đầu ra là câu của ngôn ngữ B tương ứng. Bài toán này từng rất cấp thiết trong chiến tranh thế giới thứ 2, khi mà thông tin tình báo của địch cần được dịch trong thời gian ngắn nhất, giúp cho các lãnh đạo có thể đưa ra những chiến lược cấp thiết.
- Speech recognition (nhận diện tiếng nói). Đầu vào là âm thanh tiếng nói, đầu ra là câu dạng văn bản. Ngày nay, theo thống kê của Apple, người dùng thích sử dụng tiếng nói của mình để nhập văn bản hơn là cách nhập dữ liệu bằng bàn phím như truyền thống, đồng thời tương tác giữa người và máy theo cách này có tốc độ nhập liệu nhanh hơn.
Khi làm việc với bài toán này ta sẽ đối mặt với hai thách thức chính
- Nhập nhằng (ambiguity): một từ có thể có nhiều từ loại, hay một từ có thể có nhiều nghĩa, Ví dụ “con ruồi đậu mâm xôi đậu“, từ “đậu” có lúc là động từ (hành động đậu lên một vật thể) hoặc có lúc là danh từ (tên của một loài thực vật).
- Trong thực tế, có nhiều từ không xuất hiện trong ngữ liệu huấn luyện (training corpus) nên khi xây dựng mô hình gán nhãn sẽ gặp nhiều khó khăn.
Độ chính xác của mô hình gán nhãn phụ thuộc vào hai yếu tố
- Bản thân từ đó sẽ có xu hướng (xác suất lớn) về từ loại nào. Ví dụ từ “đậu” có xu hướng là động từ nhiều hơn là danh từ (phụ thuộc vào ngữ liệu đang xét).
- Ngữ cảnh trong câu. Ví dụ “con ruồi đậu mâm xôi đậu“. Từ “đậu” có xu hướng là động từ khi theo sau từ “ruồi” và từ “đậu” có xu hướng là danh từ khi theo sau từ “xôi”.
Generative Models, và The Noisy Channel Model
Để gán nhãn từ loại, ta sử dụng phương pháp học có giám sát (supervised learning), cụ thể là xác suất liên hợp thường gọi là mô hình sinh mẫu (Generative model). Hidden Markov Model là một trong những mô hình thuộc phân nhóm này.
Supervised learning được định nghĩa như sau
Cho tập huấn luyện , trong đó đầu vào gồm là mẫu quan sát, là nhãn gán cho mẫu quan sát. Ta đặt là tập dữ liệu đầu vào, là tập dữ liệu đầu ra. Nhiệm vụ của chúng ta là xây dựng được hàm ánh xạ vào không gian .
Để tính hàm ta có thể sử dụng mô hình điều kiện conditional model. Đây là mô hình thường dùng trong tác vụ phân lớp. Ví dụ, cho vào một bức ảnh , xác định xem đây là ảnh con mèo hay con chó bằng nhãn
Sau khi huấn luyện các tham số của mô hình. Ta cho dữ liệu đầu vào là , dữ liệu đầu ra sẽ được tính dựa theo công thức
.
Một hướng tiếp cận khác là generative model, thay vì tính trực tiếp hàm ta tính xác suất hợp (joint probability)
.
Hàm này được phân tích thành
.
Trong đó
- là phân bố xác suất tiền nghiệm (prior probability distribution) của nhãn .
- là khả năng phát sinh khi cho trước nhãn .
và thường được gọi là noisy-channel. là một “channel”
Khi cho dữ liệu test đầu vào , ta sẽ dự đoán nhãn như sau
Quá trình phân tích ra từ dữ liệu đầu vào được gọi là decoding problem. Tiếp theo, ta sẽ áp dụng generative model vào bài toán gán nhãn gọi tên là Generative Tagging Model.
Generative Tagging Model
Định nghĩa: giả sử ta có tập từ vựng và tập nhãn . là tập tất cả các cặp sequence/tag-sequence sao cho và . Khi đó generative tagging model là một hàm sao cho
- Với mọi
- Và
Ta xây dựng ánh xạ từ câu vào chuỗi nhãn (tag sequences) . Với mọi , ta sẽ chọn ra chuỗi nhãn nào có giá trị xác suất cao nhất.
Để xây dựng được hàm này ta cần trả lời các câu hỏi sau:
- Làm sao tính được ?
- Ước lượng tham số cho mô hình như thế nào từ ngữ liệu huấn luyện?
- Làm sao tính được xác suất cực đại
Trigram Hidden Markov Models (Trigram HMMs)
Ở câu hỏi đầu tiên, ta sẽ dùng trigram hidden Markov model. Mô hình này có hai tham số quan trọng là và . Khi cho trước tập hữu hạn từ vựng và nhãn . Ta có:
- Với mọi trigram , ta có , và . là khả năng nhìn thấy nhãn ngay sau bigram nhãn .
- Với mọi . là khả năng của quan sát (observation/từ trong câu) đi với nhãn (state).
Với là tập tất cả các cặp chuỗi quan sát/nhãn (sequence/tag-sequence pairs) . Khi đó, xác suất cặp chuỗi quan sát/nhãn được xác định như sau
Lưu ý, ta đặt
Ví dụ câu “em ăn cơm”
Đây là một ví dụ cho mô hình noisy-channel với
là xác suất tiền nghiệm nhìn thấy chuỗi nhãn . Ở đây, ta áp dụng mô hình Markov bậc hai hay mô hình trigram vào trong câu. Và
là xác suất có điều kiện của . Ta có thể thấy, đây chính là xác suất có điều kiện , trong đó là câu và là chuỗi nhãn
Ước lượng tham số cho mô hình Trigram HMM
Trả lời cho câu hỏi thứ hai, ta sẽ ước lượng tham số của mô hình bằng phương pháp maximum-likelihood cho hai tham số và như sau
Trong đó
- là số lần xuất hiện trigram trong ngữ liệu huấn luyện.
- là số lần xuất hiện bigram trong ngữ liệu huấn luyện.
Ví dụ ta ước lượng
Trong trường hợp ta muốn “làm trơn” tham số để giải quyết vấn đề xuất hiện từ hiếm gặp, ta có thể thêm vào các thông số như bên dưới
.
Trong đó, là xác suất tính được dựa vào maximum-likelihood, là thông số làm trơn thoả và
Decoding HMMs bằng thuật toán Viterbi
Giả sử ta có câu đầu vào là
em ăn cơm
với tập các từ loại , ta có thể phát sinh các chuỗi nhãn như bên dưới
N N N STOP N N V STOP N V V STOP V V V STOP …
Như vậy, đối với câu gồm 3 từ, ta sẽ có tất cả các khả năng. Con số này sẽ bùng nổ khi số từ vựng và chuỗi từ ngày càng tăng.
Ý tưởng thuật toán Viterbi
Thay vì tính toán hết các trường hợp, ta có thể áp dụng phương pháp quy hoạch động (dynamic programming) như thuật toán Viterbi với
Đầu vào:
Đầu ra: . Trong đó, và
Xác suất có điều kiện của nhãn đầu tiên là
Như vậy công thức ban đầu sẽ thành
Đặt là các giá trị có thể có của nhãn tại vị trí thứ . Trong đó, và .
Tiếp theo, với mọi , với mọi , ta định nghĩa là tập các chuỗi sao cho và . Nói cách khác, là tập tất cả chuỗi các nhãn có độ dài , kết thúc là bigram . Ta đi xây dựng công thức sau
.
Trong đó, là xác suất cực đại mà ta thu được với chuỗi có độ dài kết thúc là bigram . Để tính hàm này, ta định nghĩa đệ quy với
Phần cơ sở
Phần đệ quy
Với mọi , với mọi , ta định nghĩa hàm đệ quy
Như vậy, ta đã trả lời được câu hỏi thứ ba
Độ phức tạp tính toán của thuật toán này là , tuyến tính theo độ dài của chuỗi và bằng lập phương số lượng nhãn. Nếu số lượng nhãn không quá lớn, thuật toán này có thể đạt được độ phức tạp tuyến tính.
Tiếp theo, ta sẽ mô tả bằng ngôn ngữ mã giả bằng hai thuật toán: thuật toán đệ quy cơ bản và thuật toán đệ quy có con trỏ lần ngược (để xác định chuỗi nhãn đang xét có xác suất là bao nhiêu).
Thuật toán đệ quy cơ bản
Input: a sentence , parameters and .
Definitions: Define to be the set of possible tags. Define , and for .
Initialization: Set .
Algorithm:
- For ,
- For ,
- For ,
- Return
Thuật toán đệ quy có backward pointer
Input: a sentence , parameters and .
Definitions: Define to be the set of possible tags. Define , and for .
Initialization: Set .
Algorithm:
- For ,
- For ,
- For ,
- Set
- For ,
- Return the tag sequence
Kết
Như vậy, ta đã tìm hiểu được thế nào là bài toán gán nhãn từ loại, các hướng tiếp cận và thuật toán để giải quyết vấn đề này. Một số điểm cần nhớ
- Trigram HMM có hai tham số quan trọng là và để định nghĩa lên mô hình cho chuỗi đầu vào là và chuỗi nhãn tương ứng là , với .
- Khi cho trước ngữ liệu huấn luyện, ta có thể ước lượng maximum-likelihood cho hai tham số trên
- Khi cho một câu test đầu vào và tham số được ước lượng trong quá trình huấn luyện, ta có thể xác định được xác suất cực đại của chuỗi nhãn thông qua thuật toán Viterbi.
Nguồn tham khảo
- Tagging Problems, and Hidden Markov Models
- Gán nhãn từ loại tiếng Việt dựa trên các phương pháp học máy thống kê
- JVnTagger: Công cụ gán nhãn từ loại tiếng Việt dựa trên Conditional Random Fields và Maximum Entropy
- Gán nhãn từ loạI cho tiếng việt dựa trên văn phong và tính toán xác suất
- Gán nhãn từ loạI tiếng việt sử dụng mô hình markov ẩn
- Sử dụng bộ gán nhãn từ loạI xác suất qtag cho văn bản tiếng việt
Có liên quan
Từ khóa » Gán Nhãn Từ Loại Tiếng Việt
-
[PDF] Gán Nhãn Từ Loại Tiếng Việt Dựa Trên
-
[PDF] Gán Nhãn Từ Loại
-
[PDF] Nghiên Cứu Gán Nhãn Từ Loại Cho Văn Bản Tiếng Việt Bằng Phương ...
-
Gán Nhãn Từ Loại – Wikipedia Tiếng Việt
-
[PDF] VẤN ĐỀ GÁN NHÃN TỪ LOẠI CHO VĂN BẢN TIẾNG VIỆT - Vietlex
-
[PDF] Gán Nhãn Từ Loại Tiếng Việt Sử Dụng Mô Hình Markov ẩn
-
[PDF] GÁN NHÃN TỪ LOẠI CHO TIẾNG VIỆT DỰA TRÊN VĂN PHONG ...
-
Gán Nhãn Từ Loại Cho Tiếng Việt Dựa Trên Văn Phong Và Tính Toán Xác ...
-
Gán Nhãn Từ Loại Tiếng Việt Dựa Trên Các Phương Pháp Học Máy ...
-
GÁN NHÃN TỪ LOẠI - MP.BPO Hàng đầu Tại Việt Nam
-
Gán Nhãn Từ Loại Tiếng Việt Dựa Trên Các Phương Pháp Học ... - 123doc
-
Nghiên Cứu Gán Nhãn Từ Loại Cho Văn Bản Tiếng Việt Bằng Phương ...
-
Luận Văn:Mô Tả Tách Từ, Gán Nhãn Từ Loại Và Hướng Tiếp Cận Tích Hợp ...
-
API NLP – Part-of-Speech Tagging (Gán Nhãn Từ Loại) - Viettel AI