Lựa chọn thuộc tính
Việc lựa chọn thuộc tính đóng vai trò rất quan trọng vì nó ảnh hưởng trực tiếp tới độ chính xác của phương pháp. Các thuộc tính được chọn càng tinh tế, có ý nghĩa thì độ chính xác của hệ thống càng cao. Đặc biệt, cấu trúc cụm danh từ tiếng Việt khá phức tạp; Việc xác định các cụm từ phụ thuộc rất nhiều vào ngữ cảnh xuất hiện của từ đang xét. Vì vậy, Tôi lựa chọn thuộc tính liên quan đến từ vựng, nhãn từ loại và nhãn IOB của từ.
Tập dữ liệu học và dữ liệu kiểm tra được lựa chọn ngẫu nhiên theo tỉ lệ 2:1 – phương pháp phân hoạch phổ biến trong các tập dữ liệu lớn. Bảng 7 thống kê chi tiết về tập dữ liệu sử dụng trong thực nghiệm này.
Bảng 7: Một vài thống kê về tập dữ liệu
Số câu Số cụm danh từ Số từ
Tập dữ liệu huấn luyện 3552 78751 18165
Tập dữ liệu kiểm tra 1777 39005 9136
Total 5329 117756 27301
Gọi w0 và p0 là từ và nhãn từ loại của từ tại vị trí từ đang xét; wn và pn là từ và nhãn từ loại của tại vị trí n trong đó n là kích thước cửa sổ trượt.
Xem xét ví dụ “những bông hoa mặt_trời xinh_đẹp ngả bóng xuống…”, giả sử từ đang xét là “mặt_trời”, ta có:
w0 : “mặt_trời” p0 : N w1 : “xinh_đẹp” p1 : A-H w-1 : “hoa” p-1 : N Tập thuộc tính được chia thành các nhóm sau:
- Các thuộc tính liên quan đến từ vựng, ví dụ w0, w1, w2, w-1, w-2. - Các thuộc tính liên quan nhãn từ loại, ví dụ p0, p1, p2, p-1, p-2.
- Các thuộc tính kết hợp từ vựng và nhãn từ loại, ví dụ w0p0p-1, w0p0p1, w-
Việc lựa chọn thuộc tính phải được thử nghiệm một cách tỉ mỉ, cẩn thận. Nếu quá ít thuộc tính thì thời gian huấn luyện và kiểm tra mô hình nhanh sẽ nhưng kết quả thu được thấp. Nếu quá nhiều thuộc tính sẽ làm cho việc huấn luyện và kiểm tra mô hình kém hiệu quả, có khi kết quả thu được không cao.
Với CRF++, tập thuộc tính được sinh ra một cách tự động từ tệp mẫu thuộc tính do người dùng cung cấp như tham số đầu vào. Tệp mẫu bao gồm nhiều mẫu thuộc tính, mỗi mẫu được biểu diễn trên một dòng. Trong đó, mỗi mẫu có dạng %x[hàng, cột] sẽ được sử dụng để xác định một từ trong chuỗi dữ liệu đầu vào. “Hàng” chỉ quan hệ về vị trí với từ hiện tại đang xét và “cột” chỉ vị trí tuyệt đối của cột.
Ví dụ một câu đầu vào như sau:
Ngày N-H B thứ N-H I Ba M I Từ đang xem xét phúc thẩm V-H O vụ án N-H B Lã Thị Kim Oanh Np-H I Một số mẫu thuộc tính là: Bảng 8: Một số ví dụ về mẫu thuộc tính
Mẫu thuộc tính Thuộc tính được
mở rộng
Mô tả
%x[0,0] Ba Từ ở vị trí hiện tại
%x[0,1] M Nhãn từ loại của từ hiện tại
%x[-1,0] thứ Từ ở trước từ hiện tại 1 vị trí
%x[2,1] N-H Nhãn từ loại của từ sau 2 vị trí
%x[0,0]/%x[0,1] ba/M
ABC%x[-2,0]123 ABCNgày123
… …
Có hai loại mẫu thuộc tính, được phân biệt bằng kí tự đầu tiên của tên mẫu:
- Loại 1(mẫu unigram): xác định bởi kí tự đầu tiên là „U‟. Đây là mẫu mô tả các thuộc tính unigram, là các thuộc tính kết hợp mẫu và nhãn của từ đang xem xét.
Xét mẫu U01:%x[0,1], CRF++ sẽ tự động sinh ra tập các hàm thuộc tính (func1, …. funcN) có dạng sau:
func1 = If (nhãn = B và thuộc tính = “U01:M”) return 1 else return 0 func2 = If (nhãn = I và thuộc tính = “U01:M”) return 1 else return 0 func3 = If (nhãn = O và thuộc tính = “U01:M”) return 1 else return 0 …
Như vậy, với một mẫu thuộc tính, số hàm thuộc tính được sinh ra bởi mẫu thuộc tính đó là (L*N), trong đó L là số các lớp nhãn (với bài toán phân tách cụm từ, L = 3) và N là số chuỗi duy nhất được mở rộng từ mẫu đã cho.
- Loại 2 (mẫu bigram), xác định bởi kí tự đầu tiên là „B‟. Đây là mẫu mô tả các thuộc tính bigram, là các thuộc tính kết hợp mẫu và nhãn của từ đang xem xét và nhãn của từ liền trước nó. Loại mẫu này sẽ sinh ra một cách tự động các liên kết giữa nhãn hiện tại và nhãn của từ liền trước nó. Như vậy sẽ tạo ra (L*L*N) hàm thuộc tính. Khi số lượng các lớp lớn, loại mẫu này sẽ sinh ra hàng tỉ thuộc tính khác nhau, và rất có thể ảnh hưởng tới sự hiệu quả trong khi huấn luyện và sử dụng mô hình.
Hình 17: Sự tác động của tập thuộc tính đến độ chính xác của mô hình phân cụm
- Ba thực nghiệm đầu chỉ sử dụng thông tin về nhãn từ loại của từ với kích thước cửa sổ lần lượt là 0, 1, 2.
- Ba thực nghiệm tiếp theo tôi thêm thông tin về từ vựng của từ cũng với kích thước cửa sổ là 0, 1, 2. Các thuộc tính liên kết giữa từ vựng và nhãn từ loại cũng được sử dụng trong những thí nghiệm này.
- Thực nghiệm 7 áp dụng việc chọn lựa thuộc tính. Kết quả thu được như hình 17. Kết quả thu được cho thấy, thông tin từ vựng và từ loại với kích thước cửa sổ trượt bằng 1 ảnh hưởng nhiều tới độ chính xác của hệ thống. Nếu chỉ sử dụng thông tin về từ loại, thí nghiệm Pos2 cho kết quả thấp hơn Pos1 một chút. Tuy nhiên, nếu thêm thông tin từ vựng thì kết quả lại cao hơn. Độ đo F1 ở thực nghiệm 5 cao hơn 3.29% so với thực nghiệm 2. Mở rộng kích thước cửa sổ trượt thêm 1 cho cả từ vựng và từ loại thu được kết quả cao hơn 9.13% so với chỉ sử dụng thông tin từ vựng và từ loại của từ đang xem xét. Kết quả tốt nhất thu được ở thực nghiệm 7 với F1 = 82.59% khi áp dụng lựa chọn thuộc tính. Tập thuộc tính sử dụng trong thực nghiệm 7 được mô tả chi tiết trong bảng 9.
Bảng 9: Chi tiết tập thuộc tính của thí nghiệm 7 Mẫu thuộc tính unigram
Từ vựng W-2, W-1, W0, W1, W2, W-2W-1, W-1W0, W0W1, W1W2 Từ loại P-3, P-2, P-1, P0, P1, P2, P3, P-2P-1, P-1P0, P0P1, P1P2, P-2P-1P0, P-1P0P1, P0P1P2 Kết hợp W-2P-2, W-1P-1, W0P0, W1P1, W2P2, P0P1W0, P-1P0W0
Mẫu thuộc tính bigram
Từ vựng W0, W-1, W-1W0
Từ loại P-2, P-1, P0, P1, P0P1, P-1P0
Kết hợp W-1P-1, W0P0
Sử dụng tập thuộc tính này, tôi tiến hành 5 lần lựa chọn ngẫu nhiên tập dữ liệu học và dữ liệu kiểm tra. Kết quả thu được trong bảng 10. Thí nghiệm lần 4 đạt kết quả cao nhất, tuy nhiên chênh lệch giữa các lần thí nghiệm là không đáng kể. Độ đo F1 trung bình của 5 lần thực nghiệm là 82.67%.
Bảng 10: Kết quả của bộ phân tách cụm danh từ tiếng Việt STT Số cụm danh từ Độ chính xác (Accuracy) Độ chính xác (Precision) Độ hồi tưởng (Recall) F1 1 9136 94.08 82.90 82.28 82.59 2 9113 93.77 82.28 82.21 82.24 3 9130 93.88 82.53 82.50 82.52 4 8949 94.30 83.27 83.28 83.28 5 9173 94.15 82.64 82.85 82.74 Trung bình 9100 94.04 82.72 82.62 82.67