Chương 3 MỘT SỐ PHƯƠNG PHÁP TIẾP CẬN KHễNG Cể HƯỚNG DẪN CHO GÁN NHÃN TỪ LOẠI
3.3 Đề xuất phương pháp không hướng dẫn cho bài toán gán nhãn từ loại tiếng Việt
Như ta đã biết, gán nhãn từ loại bằng phương pháp có hướng dẫn đã có rất nhiều nghiên cứu, nhƣng phải sử dụng một kho ngữ liệu đã gán nhãn bằng tay trong khi đó các nhãn đƣợc sử dụng cho kho ngữ liệu chƣa đƣợc thống nhất giữa các nhà ngôn ngữ nên chƣa có một kho ngữ liệu chuẩn xây dựng kho ngữ liệu này rất tốn thời gian, tốn nhân lực và tiền của, vậy luận văn này
đề nhập nhằng tập nhãn tiếng Việt và tiết kiệm đƣợc thời gian cũng nhƣ tiền của để gán nhãn bằng tay kho ngữ liệu là sử dụng phương pháp không hướng dẫn.
Như đã trình bày ở trên, thì gán nhãn từ loại bằng phương pháp không hướng dẫn có 5 tiếp cận, nhưng trong 5 tiếp cận đó thì tiếp cận theo hướng sử dụng kỹ thuật phân cụm là không hướng dẫn hoàn toàn, ta có thể xây dựng các loại từ loại dựa vào kỹ thuật phân cụm và có thể tạo sự khởi đầu gán nhãn cho văn bản của những ngôn ngữ mới, và một ưu điểm nổi bật của phương pháp này là không yêu cầu bất kỳ một lƣợng văn bản đã gán nhãn nào. Vì vậy sẽ tốn ít thời gian hơn, và giải quyết đƣợc việc xây dựng các loại từ loại mà vẫn còn chưa thống nhất trong tiếng Việt, tất nhiên với phương pháp như vậy sẽ có nhƣợc điểm là sẽ khó khăn với dữ liệu thƣa và từ nhập nhằng, và cho độ chính xác chưa cao. Phương pháp gán nhãn từ loại này dựa trên các thuộc tính chung của văn bản và không có kiến thức tiên nghiệm về những phạm trù ngữ pháp có sẵn (một tình huống xuất hiện thường xuyên trên thực tế). Phương pháp này đƣa ra sự nhập nhằng từ loại phổ biến của các từ là vấn đề khó giải quyết.
Như trên đã nghiên cứu phương pháp cụm giải quyết bài toán gán nhãn từ loại và đã thực nghiệm cho tiếng Anh. Kết quả đạt đƣợc cho thấy rằng gán nhãn dựa trên véc tơ ngữ cảnh và từ loại có giới hạn ngữ cảnh là đạt độ chính xác cao nhất, nên trong đề xuất này ta sẽ tính toán độ tương tự của hai từ theo véc tơ ngữ cảnh có giới hạn ngữ cảnh tự nhiên vì không có phụ thuộc ngữ phỏp rừ giữa cỏc từ và dấu trong cõu nờn ta làm nhƣ sau:
Bước 1: loại bỏ các dấu trong câu cùng với các từ có tần suất xuất hiện thấp (dưới 10 lần)
Bước 2: tính véc tơ ngữ cảnh trải và phải của một từ như sau:
Tính véc tơ ngữ cảnh của một từ chứa số lần suất hiện của mỗi từ trong 250 từ xuất hiện nhiều nhất trong kho văn bản.
Ví dụ: a1, a2,...,a250 là 250 từ xuất hiện nhiều nhất trong kho văn bản Xét từ w:
a1: xuất hiện n1 lần bên phải a2: xuất hiện n2 lần bên phải ...
a250: xuất hiện n250 lần bên phải
(n1,n2,...n250) là véc tơ ngữ cảnh phải của từ Véc tơ ngữ cảnh trái tính tương tự.
Vì vai trò cú pháp của một từ dựa trên:
- Các thuộc tính cú pháp các láng giềng của từ đó - Các mối quan hệ cú pháp với các láng giềng này
Nên sau khi tính xong hai véc tơ ngữ cảnh trái và phải của một từ ta sẽ tính véc tơ ngữ cảnh của một từ w bằng cách ghép nối 4 véc tơ ngữ cảnh sau:
- Véc tơ ngữ cảnh phải của từ đứng trước - Véc tơ ngữ cảnh trái của từ w
- Véc tơ ngữ cảnh phải của từ w - Véc tơ ngữ cảnh trái của từ theo sau
Cuối cùng đo độ tương tự của hai từ ta sẽ sự dụng độ đo cosin để tính toán dựa vào các véc tơ ngữ cảnh đƣợc tính ở trên.
Bước 3: Sử dụng thuật toán phân cụm để phân thành các nhóm dựa vào các độ đo đƣợc tính ở trên.
Vậy thứ tự để thực hiện gán nhãn sẽ nhƣ sau:
1. Tính toán tần số xuất hiện của mỗi từ trong kho ngữ liệu. Loại ra các từ có tần suất xuất hiện quá nhiều. Tìm ra 250 từ xuất hiện nhiều nhất còn lại.
2. Tính toán các véc tơ ngữ cảnh trái và phải của một từ
3. Xây dựng một ma trận ngữ cảnh C nhƣ sau: Mỗi hàng của ma trận gồm véc tơ ngữ cảnh của một từ w đƣợc kết nối từ 4 véc tơ ngữ cảnh (véc tơ ngữ cảnh phải của từ đứng trước, véc tơ ngữ cảnh trái của từ w, véc tơ ngữ cảnh phải của từ w, véc tơ ngữ cảnh trái của từ theo sau)
4. Sử dụng giải pháp SVD để giảm số chiều ma trận C
5. Tính độ đo tương tự của các từ dựa trên ma trận C đã giảm số chiều sử dụng độ đo cosin
6. Phân cụm dựa vào độ đo đã tính ở trên sử dụng thuật toán phân cụm mờ
7. Sau khi thực hiện phân cụm ta đã xây dựng đƣợc tập nhãn. Sử dụng tập nhãn này để xây dựng một kho ngữ liệu gán nhãn bằng tay
8. Để thực hiện gán nhãn ta sẽ sử dụng mô hình Markov ẩn, và theo nghiên cứu ở trên gán nhãn sử dụng mô hình Markov đạt độ chính xác cao khi kho ngữ liệu gán nhãn bằng tay nhỏ thì sẽ sử dụng huấn luyện ML để thực hiện.
Phần cuối này trình bày chi tiết giải thuật bước 2
Giải thuật tính véc tơ ngữ cảnh trái (phải) của một từ:
Đầu vào: Các tệp văn bản đã được tách từ
Đầu ra: Véc tơ ngữ cảnh trái (phải) của các từ trong các tệp văn bản Bước 1: Lưu lại tất cả các từ xuất hiện trong toàn bộ các tệp văn bản và số lần xuất hiện tương ứng của mỗi từ.
Dùng 1 bảng băm(Hashing) để lưu trữ dữ liệu về các từ và số lần xuất hiện (tần suất) tương ứng của mỗi từ trong toàn bộ các tệp văn bản.
for mỗi tệp trong <tập hợp các tệp cần xử lý>
Mở tệp, chuyển con trỏ đọc tệp đến dòng đầu tiên
while (tệp đang còn dữ liệu)
đọc dòng văn bản tại vị trí con trỏ.
for mỗi từ trong <dòng văn bản đọc được>
if (từ tồn tại trong bảng băm) then
tăng giá trị lưu trữ tần suất của từ trong bảng băm lên 1 đơn vị else
khởi tạo giá trị lưu trữ tần suất của từ trong bảng băm là 1 end if
end for
chuyển con trỏ đọc tệp sang dòng tiếp theo.
end while end for
Bước 2. Tìm 250 từ có tần suất xuất hiện cao nhất:
Duyệt toàn bộ bảng băm và đưa dữ liệu vào 1 mảng.Mỗi phần tử của mảng chứa 2 thuộc tính: từ và tần suất xuất hiện của từ.
Sắp xếp mảng theo thứ tự giảm dần tần suất xuất hiện của từ. Loại đi các phần tử xuất hiện quá nhiều, lấy 250 phần tử đầu tiên của mảng còn lại, các từ trong 250 phần tử của mảng chính là 250 từ có tần suất xuất hiện nhiều nhất.
Đưa 250 từ này vào một tập hợp topset Bước 3. Xây dựng dữ liệu trung gian
Đưa ra thêm 2 đối tượng lưu trữ dữ liệu mới như sau:
- 1 bảng băm chứa tất cả các từ bên trái từ đó và tần suất xuất hiện tương ứng (tạm gọi là bảng băm láng giềng trái).
- 1 bảng băm phải chứa tất cả các từ bên phải từ đó và tần suất xuất hiện tương ứng (tạm gọi là bảng băm láng giềng phải).
Lưu 250 từ và 250 bảng băm láng giềng trái tương ứng vào một bảng băm (tạm gọi là Tâp hợp bảng băm láng giềng trái).
Lưu 250 từ và 250 bảng băm láng giềng phải tương ứng vào một bảng băm (tạm gọi là Tập hợp bảng băm láng giềng phải).
Sau đây là giải thuật xây dựng Tập hợp bảng băm láng giềng trái và Tập hợp bảng băm láng giềng phải ....
Bước 1: Khởi tạo Tập hợp bảng băm láng giềng trái và Tập hợp bảng băm láng giềng phải.
Mỗi tập hợp bảng băm gồm 250 khóa (là các từ trong topSet) và dữ liệu tương ứng của mỗi khóa là 1 bảng băm trống.(ta sẽ cập nhật dữ liệu cho các bảng băm trống này để nó trở thành bảng băm láng giềng trái, bảng băm láng giềng phải)
Bước 2: Xây dựng Tập hợp bảng băm láng giềng trái và Tập hợp bảng băm láng giềng phải
For mỗi tệp trong <Tập hợp tệp dữ liệu cần xử lý>
Mở tệp.
Đưa con trỏ đọc tệp vào dòng đầu tiên.
Đọc dòng đầu tiên
Tách các từ trong dòng văn bản thành tập hợp các từ riêng lẻ.
for mỗi từ (word) trong <tập hợp các từ được tách> (Thường được cấu trúc thành dạng mảng để dễ truy cập dc từ bên trái và bên phải của 1 từ)
if (word nằm trong tập hợp 250 từ có tần suất xuất hiện cao nhất) then
if (word có láng giềng trái) then
lấy bảng băm láng giềng trái của word
lấy từ bên trái của word trong dòng văn bản là wordl.
if (wordl đã tồn tại trong bảng băm láng giềng trái) then tăng giá trị tần suất xuất hiện của wordl trong bảng băm láng giềng trái lên 1.
else
thêm phần tử wordl vào bảng băm, với dữ liệu về tần suất xuất hiện là 1
end if end if
if (word có láng giềng phải) then
lấy bảng băm láng giềng phải của word
lấy từ bên phải của word trong dòng văn bản là wordr.
if (wordr đã tồn tại trong bảng băm láng giềng phải) then
tăng giá trị tần suất xuất hiện của wordr trong bảng băm láng giềng phải lên 1.
else
thêm phần tử wordr vào bảng băm, với dữ liệu về tần suất xuất hiện là 1
end if end if end if end for
Di chuyển con trỏ đọc tệp đến dòng kể tiếp.
End for
Bước 4: Tìm véc tơ ngữ cảnh trái của một từ (ngữ cảnh phải làm tương tự)
/*Bây giờ ta đã có 2 đối tƣợng dữ liệu cần thiết tập hợp bảng băm láng giềng trái và Tập hợp bảng băm láng giềng phải
Với mỗi từ bất kỳ, giả sử là word, thuật toán tìm láng giềng trái nhƣ sau (Tương tự đối với láng giềng phải) */
Khởi tạo dữ liệu ban đầu vector ngữ cảnh trái (là 1 vector 250 chiều có các phần tử đều là 0).
for mỗi từ (topWord) trong topSet
lấy bảng băm láng giềng phải của topWord trong Tập hợp bảng băm láng giềng phải.
lấy tần suất xuất hiện của word trong bảng băm láng giềng phải.
if (tồn tại giá trị tần suất xuất hiện của word trong bảng băm láng giếng phải) then
gán giá trị tần suất lấy được cho phần tử tương ứng với trong vector ngữ cảnh trái của từ word.
end if end for
Đối tượng lưu trữ dữ liệu ở đây là một bảng băm, kích thước của bảng băm sẽ tỉ lệ thuận với số lƣợng từ khác nhau trong toàn bộ các tệp văn bản.
Vì thuật toán xử lý các tệp tuần tự, kích thước tệp nhỏ và xử lý ngay khi đọc từng dòng trong mỗi tệp văn bản nên chương trình không đòi hỏi phải có không gian bộ nhớ lớn để xử lý các tệp (ngoại trừ đối tƣợng bảng băm).
Ở chương này luận văn đã đề xuất hướng giải quyết khó khăn trong vấn đề bộ từ loại cho bài toán gán nhãn từ loại tiếng Việt. Tiếp theo chúng ta sẽ tổng kết lại nội dung của toàn bộ luận văn và hướng phát triển của luận văn.