Nguyễn Đức Long-20071778
Nguyễn Văn Khải-20071562
Sử dụng từ điển để tách từ trong câu
Tiếng Việt
Giới thiệu đề tài
Khái niệm từ trong tiếng việt: 1 từ được cấu
trúc bởi nhiều tiếng, có thể có từ đơn( gồm 1
tiếng) hoặc từ phức( nhiều tiếng)
Tách từ trong câu: tách 1 câu cho trước
thành các từ có nghĩa
Các phương pháp chính:
Tiếp cận dựa trên từ:
Tiếp cận dựa trên ký tự: chia văn bản thành
các kí tự rồi sử dụng thuật toán như quy hoạch
động,di truyền hay thống kê để phân chia
Các hướng tiếp cận dựa trên từ
Dựa vào từ điển: dựa vào từ điển sẵn có rồi
dùng so khớp để tách các từ,cụm từ. Các
phương pháp thường gặp gồm có:
Longest matching
Shortest matching
Hybrid
Dựa trên thống kê: dựa vào tần số xuất hiện
trong tập huấn luyện hoặc thống kê Internet
Phương pháp kết hợp: tận dụng ưu điểm cả 2
phương pháp trên
Phân tích giải quyết
So khớp dài nhất:
Duyệt câu từ trái qua phải, lấy chuỗi dài nhất có
trong từ điển
Ưu điểm:
Giải quyết nhập nhằng đơn
Tách từ nhanh và đơn giản
Nhược điểm :
Phụ thuộc hoàn toàn vào từ điển
Không giải quyết được nhập nhằng. VD:
Trước bàn là một chiếc cốc=> trước|bàn là|một|chiếc|cốc
Phân tích giải quyết
Mô tả:
Cải tiến phương pháp longest matching để đưa ra
tất cả các cấu hình phù hợp
Cách thực hiện:
Lưu trữ các tiếng trong câu vào cấu trúc cây,mỗi
nút gồm có id của nút, parent_id của nút liền trước
và value chứa giá trị của tiếng
Với mỗi nhập nhằng sẽ sinh ra 1 nhánh mới của cây
Duyệt ngược từ các nút lá lên nút gốc để lấy ra 1
cấu hình thỏa mãn
Phân tích giải quyết
Với câu ‘ông quan tài giỏi’ ta sẽ tách ra được
thành các từ ông,quan,quan tài,tài giỏi….
tương ứng với cây được xây dựng như sauj:
Phân tích giải quyết
Chuỗi cấu hình sau khi lấy ra sẽ được tính
độ dài và độ phù hợp dựa trên chỉ số
mutual information được lấy từ thống kê
internet dựa các trên công thức:
function MI_calculate($array){
$MI=0;
foreach ($array as $val) {
echo $val["value"];
if(substr_count($val["value"]," ")==0)$MI++;
else{
$MI_cal= array();
$MI_cal=explode(" ",$val["value"]);
$long=count($MI_cal);
$n=0;
for($n=0;$n<$long;$n++){
$MI+=get_number($MI_cal[$n]);
}
}
}
return $MI;
}
Phân tích giải quyết
Ưu điểm:
Đưa ra tất cả các nhập nhằng
Đánh giá được độ phù hợp
Nhược điểm:
Thời gian lấy chỉ số lâu
Chưa xử lý được từ chưa có trong từ điển
Thuật toán chưa hoàn chỉnh và chưa được
test nhiều nên có khả năng xảy ra lỗi