PDA

View Full Version : Tìm tên miền tiếng Việt đẹp


tv20b68
18-07-2012, 11:24 AM
Tìm tên miền tiếng Việt đẹp<br>
<br>
Tên miền (domain) là một phần quan trọng cấu thành thương hiệu của doanh nghiệp. Nó đặc biệt quan trọng đối với những doanh nghiệp kinh doanh trên môi trường mạng toàn cầu (Internet). Do chủ quan, nhiều doanh nghiệp đã đánh mất tên miền mang thương hiệu của mình, sau đó những vấn đề phát sinh quanh tên miền đã gây ảnh hưởng thường là không tốt đến hình ảnh của doanh nghiệp. Một số doanh nghiệp tìm nhiều cách để lấy lại tên miền đã mất, việc này khá tốn thời gian và tiền bạc.<br>
Có hay không phương thức tự động tìm kiếm các tên miền thương hiệu cho doanh nghiệp? Bài toán đặt ra là làm thế nào để có thể nhận dạng được những tên miền có ý nghĩa (tiếng Việt) trong danh sách các tên miền quốc tế với hơn 160 quốc gia trên toàn thế giới. Đây là vấn đề không đơn giản.<br>
<br>
Bài viết sẽ trình bày sơ lược cấu trúc dữ liệu, thuật toán giải quyết bài toán trên. Kết quả đánh giá, và sử dụng hệ thống thật có thể xem thêm tại website <a href="http://www.fiboweb.com" target="_blank">www.fiboweb.com</a>.<br>
<br>
1. Sơ lược về cấu trúc tiếng Việt<br>
<br>
Đã có nhiều bài viết về cấu trúc tiếng Việt, do đó bài viết này chỉ nếu lên một số cách tiếp cận ứng dụng công nghệ tri thức để giải bài toán: "tự động nhận dạng các tên miền tiếng Việt".<br>
<br>
Phương pháp này sẽ xoay quanh thành phần nhỏ nhất của tiếng Việt: Từ.<br>
<br>
Danh sách âm tiết tiếng Việt<br>
<br>
Đơn âm:<br>
<br>
• a ă â b c d đ e ê g h i k l m n o ô ơ p q r s t u ư v x y<br>
<br>
• a á à ả ã ạ<br>
<br>
• e é è ẻ ẽ ẹ<br>
<br>
• ê ế ề ể ễ ệ<br>
<br>
• i í ì ỉ ĩ ị<br>
<br>
• ó ò ỏ õ ọ<br>
<br>
• ô ố ồ ổ ỗ ộ<br>
<br>
• ơ ớ ờ ở ỡ ợ<br>
<br>
• u ú ù ủ ũ ụ<br>
<br>
• ư ứ ừ ử ữ ự<br>
<br>
• y ý ỳ ỷ ỹ ỵ<br>
Phụ âm đầu:<br>
<br>
• tr ch ng ngh nh gh gi qu ph kh th<br>
<br>
• b c d g h k l m n p q r s t v x<br>
Phụ âm cuối:<br>
<br>
• ác ạc ách ạch ai ái ài ải ãi ại am ám àm ảm ãm ạm an án àn ản ãn ạn ang áng àng ãng ảng ạng anh ánh ...<br>
<br>
• ắc ặc ăm ắm ằm ẳm ẵm ặm ăn ắn ằn ẳn ặn ăng ắng ằng ẳng ẵng ặng ắp ặp…<br>
<br>
• ấc ậc ất ật âm ấm ầm ẩm ẫm ậm ân ấn ần ẩn ận uấng ầng ẩng ấp ập ây ấy ầy ẩy ẫy ậy âu ấu ầu ẩu ẫu ậu ...<br>
<br>
• eo èo éo ẻo ẽo ẹo éc ét ẹt em ...<br>
<br>
• êm ếm ềm ểm ễm ệm ên ến ền ển ện ệnh ...<br>
<br>
• ia ía ìa ỉa ĩa ịa in ín ìn ỉn ĩn ịn im ím ìm ỉm ĩm ịm íc ịc ích ịch iên iến iền iển iễn iện iêng iếng iềng iểng iệng iêm iếm iềm iểm iễm iệm ...<br>
<br>
• oa óa òa ỏa õa ọa oác oạc oách oạch oát oạt oắt oặt oắc oặc oam oạm oan oán oàn oản oãn oạn oang oáng oàng oảng oạng oắm oăn oắn oằn óc ọc óch oi ói òi ỏi õi ọi om óm ...<br>
<br>
• ốc ộc ôi ối ồi ổi ỗi ội ôm ốm ồm ổm ỗm ộm ôn ốn ồn ổn ỗn ộn ông ống ồng ...<br>
<br>
• ơi ới ời ởi ỡi ợi ơm ớm ờm ởm ợm ơn ớn ờn ởn ỡn ợn ớp ợp ớt ợt ... <br>
<br>
• ua úa ùa ủa ụa úc ục uê uế uề uệ ui úi ùi ủi ũi ụi um úm ùm ủm ũm ụm un ún ùn ủn ũn ụn ung úng ùng ủng ũng ụng úp ụp út ụt uy úy ùy ủy ũy ụy uyên ...<br>
<br>
• ưa ứa ừa ửa ữa ựa ức ực ưi ửi ừm ưng ứng ừng ửng ững ựng ướu ượu ươi ưới ười ưởi ưỡi ượi ươn ướn ườn ưởn ượn ...<br>
<br>
• yêu yếu yểu yên yến yết yểm yếm ...<br>
Một từ đơn tiếng Việt được kết hợp trong 02 trường hợp sau:<br>
<br>
- Nguyên âm: các từ có các chữ sau đứng trước: a,i,e,u,o<br>
<br>
* Ví dụ: ang, anh, ình, em, ùng, ủa, ôm, ồn<br>
<br>
- Kết hợp: phụ âm đầu + phụ âm cuối<br>
<br>
* Ví dụ: Tr + các từ có chữ A đứng đầu<br>
<br>
§ trác trạc trách trạch trai trái trài trải trãi trại tram trám tràm trảm trãm trạm tran trán tràn trản trãn trạn trang tráng tràng trãng trảng trạng tranh tránh trành trảnh trãnh trạnh trát trạt trau tráu tràu trạu tray tráy trày trảy trãy trạy tráp trạp trao trào tráo trảo trão trạo <br>
<br>
* Ví dụ: Th + các từ có chữ U đứng đầu<br>
<br>
§ thua thúa thùa thủa thụa thúc thục thuê thuế thuề thuệ thui thúi thùi thủi thũi thụi thum thúm thùm thủm thũm thụm thun thún thùn thủn thũn thụn thung thúng thùng thủng thũng thụng thúp thụp thút thụt thuy thúy thùy thủy thũy thụy thuyên thuyến thuyền thuyển thuyện thuyết thuyệt thuốc thuộc thuốt thuột thuếch thuệch thuông thuống thuồng thuộng thuếnh thuôi thuối thuồi thuỗi thuội thuốm thuộm <br>
<br>
Sự tổ hợp này tạo nên một số lượng đồ sộ các từ tiếng Việt.<br>
<br>
Có thể tham khảo thêm các tài liệu về cấu trúc tiếng Việt và các phương pháp ứng dụng tại thư viện các trường đại học ở Việt Nam.<br>
2. Phương pháp tách lọc domain tiếng Việt<br>
<br>
Ta sẽ tập trung vào cấu trúc "từ" của tiếng Việt để giải quyết bài toán đặt ra phía trên.<br>
<br>
Nếu 1 domain có chứa một vài từ tiếng Việt, có thể suy diễn domain này là domain "chứa tiếng Việt" và tách ra (dĩ nhiên sẽ có các biện pháp hạn chế suy diễn sai, hoặc nâng cao quá trình tự học thông qua cơ chế suy diễn heuristic).<br>
Ví dụ: nhìn vào danh sách dưới đây, với cách diễn đạt trên, hệ thống có thể tự nhận ra các domain "có chứa tiếng Việt":<br>
<br>
- Nguyenhoanginformatics.com<br>
- Thanhspa.net<br>
- Trungleon.net<br>
- tinhoc-giaitri.biz<br>
- phongcach9x<br>
- vuoncanh.com<br>
- khangthinhhotel.com<br>
- linhkienvitinh.net<br>
- sieuthicanho.com<br>
- thitruongvang.com<br>
Trước tiên, ta xét 1 trường hợp cụ thể: domain dongau.com<br>
<br>
Nếu phân tích tự động, có thể ra: Do Ngau, Dong Au, Don Gau, Do Nga U<br>
<br>
Tiêu chí tách domain: tính điểm dựa theo chiều dài, từ càng dài điểm càng cao: <br>
* Từ có 1 chữ: 0 điểm<br>
* Từ có 2 chữ: 0,5 điểm<br>
* Từ có 3 chữ: 1 điểm<br>
* Từ có 4 chữ: 2 điểm <br>
* Từ có 5 chữ: 3 điểm <br>
* Từ có 6 chữ: 4 điểm <br>
Ví dụ: <br>
<br>
§ Dongau.com có thể tách ra thành nhiều từ <br>
• do ngau: 0,5+2=2,5<br>
• dong au: 2 + 0,5 =2,5<br>
• don gau: 1+1=2<br>
• do nga u: 0,5+1+0=1,5<br>
<br>
§ Khangthinhhotel.com <br>
• Khang + thinh + ho + te = 3 + 3 + 0,5 + 0,5 = 9 điểm<br>
Như vậy các domain càng có nhiều từ tiếng Việt, có nhiều từ dài trong tiếng Việt sẽ được ưu tiên đưa lên trên cùng.<br>
<br>
* vuotlenchinhminh.com (có > 4 từ tiếng Việt)<br>
* chauphong.com (có > 2 từ tiếng Việt)<br>
* vietnamdatnuocconnguoi.com (có > 6 từ tiếng Việt)<br>
3. Cấu trúc dữ liệu<br>
<br>
Do đã xác định mục tiêu, nên cách tiếp cận và giải quyết vấn đề được phân tích ra thành 2 công việc chính như sau:<br>
<br>
1. Tách domain thành nhiều từ, ưu tiên phân tích từ càng dài càng tốt<br>
2. Đánh giá và tính điểm về độ dài của domain<br>
<br>
Ta sẽ tiếp cận theo phương án CÂY phân rã như sau:<br>
Việc cài đặt lập trình theo cấu trúc CÂY, xin xem thêm sách Cấu Trúc Dữ Liệu và Giải Thuật (đây là môn học bắt buộc của mọi sinh Viên theo ngành Công Nghệ Thông Tin).<br>
4. Nhận xét<br>
Bài viết chỉ giới thiệu sơ lược về cách tiếp cận theo cấu trúc CÂY để giải quyết vấn đề đặt ra, để nâng cao tính chính xác và làm cho hệ thống thông minh hơn cần áp dụng các giải thuật mang tính heuristic, tự động nhận dạng theo ngữ nghĩa, theo cấu trúc, theo vần...<br>
<br>
<br>
Lưu Trường Phan<br>
Emai: <a href="mailto:phan.luu@fibovietnam.com">phan.luu@fibovietnam.com</a><br>
Phòng kỹ thuật, công ty Fibo