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à
Trang 1Nguyễ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
Trang 2Giớ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
Trang 3Cá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
Trang 4Phâ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
Trang 5Phâ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
Trang 6Phâ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ư sau :
Trang 7Phâ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:
Trang 8function 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;
}
Trang 9Phâ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