SlideShare a Scribd company logo
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
------------------------------------
PHOMMASENG PHANAKHONE
XÂY DỰNG HỆ THỐNG TỰ ĐỘNG
PHÂN LOẠI VĂN BẢN TIẾNG LÀO
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Đà Nẵng, Năm 2018
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
------------------------------------
PHOMMASENG PHANAKHONE
XÂY DỰNG HỆ THỐNG TỰ ĐỘNG
PHÂN LOẠI VĂN BẢN TIẾNG LÀO
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ
Người hướng dẫn khoa học: TS. ĐẶNG HOÀI PHƯƠNG
Đà Nẵng, Năm 2018
i
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu khoa học của cá nhân tôi dưới sự
hướng dẫn trực tiếp của TS. Đặng Hoài Phương, Trường Đại học Bách Khoa-Đại học
Đà Nẵng.
Các dữ liệu, ví dụ và trích dẫn tham khảo trong luận án đảm bảo độ tin cậy, chuẩn
xác và trung thực.
Những kết quả đóng góp về mặt lý thuyết và ứng dụng của luận án chưa từng
được ai công bố trong bất kỳ công trình nào khác cho đến nay.
Tác giả luận án,
Phommaseng Phanakhone
ii
MỤC LỤC
MỞ ĐẦU .........................................................................................................................1
CHƯƠNG 1 TỔNG QUAN PHÂN LOẠI VĂN BẢN ..................................................5
1.1. Phân loại văn bản..................................................................................................5
1.2. Khái niệm văn bản................................................................................................5
1.3. Các phương pháp phân loại văn bản ....................................................................7
1.3.1. K-Nearest Neighbor (KNN) ..........................................................................7
1.3.2. Support Vector Machine (SVM) ...................................................................9
1.3.3. Naïve Bayes (NB)........................................................................................11
1.4. Kết luận...............................................................................................................12
CHƯƠNG 2 MÔ HÌNH PHÂN LOẠI VĂN BẢN TIẾNG LÀO ...............................13
2.1. Mô hình phân loại văn bản tiếng Lào.................................................................13
2.2. Biểu diễn văn bản tiếng Lào...............................................................................14
2.3. Tách từ tiếng Lào................................................................................................15
2.3.1. Đặc trưng tiếng Lào.....................................................................................16
2.3.2. Phương pháp tách từ tiếng Lào sử dụng Regular Expression .....................22
2.4. Trích chọn đặc trưng...........................................................................................34
2.5. Phân loại văn bản tiếng Lào sử dụng Naive Bayes ............................................34
2.6. Kết Luận .............................................................................................................40
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG TỰ ĐỘNG PHÂN LOẠI VĂN BẢN TIẾNG
LÀO...............................................................................................................................41
3.1. Mô hình hệ thống................................................................................................41
3.2. Cơ sở dữ liệu.......................................................................................................42
3.3. Triển khai và đánh giá kết quả ...........................................................................43
3.3.1. Các độ đo đánh giá kết quả phân loại văn bản ............................................44
3.3.2. Thử nghiệm phương pháp tách từ trong câu tiếng Lào...............................45
3.3.3. Thực nghiệm Hệ thống phân loại văn bản tiếng Lào ..................................46
3.4. Kết luận...............................................................................................................50
KẾT LUẬN ...................................................................................................................51
TÀI LIỆU THAM KHẢO.............................................................................................52
PHỤ LỤC
QUYẾT ĐỊNH GIAO ĐỀ TÀI (BẢN SAO)
iii
DANH MỤC CHỮ VIẾT TẮT
1. Tiếng Anh
STT Chữ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt
1 CRF Conditional Random Field Xác suất có điều kiện
2 DFD Data Flow Diagram Sơ đồ luồng dữ liệu
3 IDF Inverse document frequency Nghịch đảo tần số văn
bản
4 KNN K Nearest Neighbor K láng giềng gần nhất
5 MAP Maximum A Posterior class Phương pháp MAP
6 NB Naive Bayes Phương pháp Naive
Bayes
7 RBF Radial Basis Functions network Mạng hàm bán kính
xuyên tâm cơ sở
8 SVM Support Vector Machine Máy vec tơ hỗ trợ
9 TF Term frequency Tần số xuất hiện của 1
từ trong văn bản
iv
DANH MỤC CÁC BẢNG
Số hiệu
bảng
Tên bảng Trang
1.1 Bảng so sánh các phương pháp phân loại văn bản 12
2.1 Ví dụ biểu diễn văn bản trên mô hình không gian vector 15
2.2 Nguyên âm ghép lại với phụ âm cuối vần 18
2.3 Một số cú pháp thường dùng của Regular Expression 24
2.4 Một số chức năng của Regular Expression 25
2.5 Vector từ đơn tiếng Lào 26
2.6 Các thành phần của Vector từ 27
2.7 Ví dụ cách tạo từ đơn tiếng Lào 28
2.8 Dữ liệu huấn luyện và kiểm thử 39
3.1 CSDL bảng documents 41
3.2 CSDL bảng TrainData 42
3.3 CSDL bảng vocabulary 42
3.4 Kết quả phương pháp tách từ đơn 46
3.5 Kết quả phương pháp tách từ 46
3.6
Kết quả Phân loại văn bản Naive Bayes với phương pháp
tách từ không loại bỏ từ dừng 47
3.7
So sánh thời gian phân loại văn bản tiếng Lào kết hợp
phương pháp tách từ loại bỏ từ dừng và không loại bỏ từ
dừng 48
3.8
Bảng so sánh mô hình phân loại văn bản tiếng Lào đề xuất
với các mô hình khác 49
v
DANH MỤC CÁC HÌNH
Số hiệu
bảng
Tên hình Trang
1.1 Bảng mã Unicode tiếng Lào (U+0E80 - U+0EFF) 7
1.2 Thuật toán k láng giềng gần nhất 8
1.3
Siêu mặt phẳng h phân chia dữ liệu huấn huyện thành 2 lớp +
và - với khoảng cách biên lớn nhất. Các điểm gần h nhất (được
khoanh tròn) là các vector hỗ trợ - Support Vector 9
2.1 Mô hình tổng quan phân loại văn bản tiếng Lào 13
2.2 Mô hình tách từ tiếng Lào 22
2.3 Một số cấu trúc câu tiếng Lào 26
2.4 Sơ đồ khối hàm word_split 29
2.5 Sơ đồ khối hàm find_first_word 31
2.6 Sơ đồ khối hàm select_best_word 32
2.7 Sơ đồ khối hàm is_next_word 33
2.8 Likelihoods của từng chủ đề với Naïve Bayes. 35
2.9 Thuật toán Naïve Bayes Multinominal: huấn luyện và kiểm thử 37
2.10 Thuật toán hàm TRAINMULTINOMINALNB 38
2.11 Thuật toán hàm APPLYMULTINOMINALNB 43
3.1 Sơ đồ phân rã chức năng 43
3.2 Biểu đồ lớp 43
3.3 Cơ sở dữ liệu 43
3.4 Kết quả phân loại văn bản tiếng Lào kết hợp tách từ 49
1
MỞ ĐẦU
Internet hiện nay ngày càng phát triển với số lượng người dùng không ngừng
tăng lên, do đó Internet đóng vai trò quan trọng trong cuộc sống và xã hội đối với giao
tiếp và chia sẻ thông tin.
Trước đây, người Lào sử dụng tiếng nước ngoài để nhận biết và trao đổi thông
tin lẫn nhau ví dụ: tiếng Anh, tiếng Việt, tiếng Thái Lan, … Ngoài ra, người Lào sử dụng
chữ tiếng Anh ghép vào nhau để trở thành từ mà phát âm giống tiếng Lào thay vì viết
bằng tiếng Lào vì hầu hết thiết bị truy cập được Internet chưa hỗ trợ tiếng Lào.
Với sự phát triển của công nghệ thông tin, người dân Lào có điều kiện truy cập
Internet với chi phí và tốc độ hợp lý; các thiết bị như smart phone, máy vi tính có bàn
phím tiếng Lào và hiển thị được ngôn ngữ tiếng Lào, do đó tiếng Lào trở thành ngôn
ngữ chính thức mà người Lào sử dụng để chia sẻ thông tin trên Internet. Vấn đề đặt ra
ở đây là làm cách nào tìm kiếm thông tin một cách chính xác và có hiệu quả nhất với
văn bản tiếng Lào, và một trong những giải pháp là áp dụng các phương pháp phân loại
văn bản tiếng Lào. Trong thực tế, việc phân loại văn bản bằng phương pháp thủ công là
rất khó khăn vì lượng dữ liệu thông tin rất lớn. Vì vậy, việc phân nhóm văn bản, sẽ tốn
nhiều thời gian và công sức nhưng hiệu quả phân loại không cao.
Đối với công trình nghiên cứu phân loại văn bản tiếng Lào còn hạn chế, chủ yếu
dựa trên máy vector hỗ trợ và mạng hàm bán kính xuyên tâm cơ sở. Cũng với phương
pháp tách từ, trong những năm gần đây có một số công trình nghiên cứu về phân loại
văn bản tiếng Lào, tuy nhiên đa số vẫn tồn tại vấn đề về việc xử lý nhập nhằng trong
tiếng Lào. Vì tiếng Lào có nhiều cách viết, cách nói và sử dụng từ không thống nhất, do
đó việc tách từ tiếng Lào sẽ rất khó khăn.
Để khắc phục những hạn chế nêu trên, tác giả đề xuất đề tài luận văn cao học:
“Xây dựng hệ thống tự động phân loại văn bản tiếng Lào” bằng cách biểu diễn văn bản
thành vector các từ khóa, áp dụng Regular Expression kết hợp với khuôn mẫu từ đơn để
tách từ đơn, ghép lại những từ đơn thành từ phức dựa trên tập từ phức, đồng thời sử
dụng phương pháp Naïve Bayes để phân loại văn bản tiếng Lào.
2
1. Mục đích, đối tượng và phạm vi nghiên cứu
Mục đích của đề tài:
Nghiên cứu, phân tích cấu trúc từ và câu trong văn bản tiếng Lào; đề xuất phương
pháp tách từ tiếng Lào dựa trên Regular Expression với khuôn mẫu biểu thức chính quy.
Sử dụng phương pháp Naive Bayes để xây dựng mô hình phân loại văn bản tiếng Lào,
hiệu thức hoá hệ thống tự động phân loại văn bản tiếng Lào trên cơ sở mô hình đề xuất.
Ý nghĩa khoa học:
Đề xuất phương pháp tách từ đối với văn bản tiếng Lào sử dụng Regular
Expression và cải tiến với khuôn mẫu biểu thức chính quy của từ đơn Lào.
Xây dựng mô hình phân loại văn bản tiếng Lào dựa trên cơ sở phương pháp tách
từ đề xuất và Naive Bayes;
Ý nghĩa thực tiễn:
Hiệu thức hoá hệ thống tự động phân loại văn bản tiếng Lào trên cơ sở mô hình
đề xuất.
Đối tượng nghiên cứu:
Trong khuôn khổ của luận văn thuộc loại xây dựng hệ thống, tác giả chỉ giới hạn
nghiên cứu các vấn đề sau:
- Các cấu trúc từ và câu trong văn bản tiếng Lào;
- Phương pháp tách từ tiếng Lào dựa trên biểu thức chính quy (Regular Expression)
kết hợp với khuôn mẫu từ đơn và ghép lại những từ đơn thành từ phức dựa trên
tập từ phức;
- Phương pháp phân loại văn bản Naive Bayes.
2. Mục tiêu và nhiệm vụ
Mục tiêu:
Mục tiêu chính của đề tài là nghiên cứu về cấu trúc từ tiếng Lào, đề xuất phương
pháp tách từ sử dụng biểu thức chính quy (Regular Expression) và xây dựng hệ thống
tự động phân loại văn bản tiếng Lào dựa trên phương pháp Naive Bayes. Để thỏa mãn
mục tiêu này thì cần đạt được những mục tiêu cụ thể sau:
- Nghiên cứu cấu trúc và phương pháp tách từ trong văn bản tiếng Lào;
- Nghiên cứu sử dụng Naive Bayes phân loại văn bản tiếng Lào;
- Xây dựng được hệ thống phân loại văn bản tiếng Lào và áp dụng vào thực tế.
3
Nhiệm vụ:
Để đạt được những mục tiêu trên thì nhiệm vụ đạt ra của đề tài là:
- Phân tích cấu trúc từ và câu trong văn bản tiếng Lào;
- Phân tích phương pháp tách từ tiếng Lào;
- Phân tích các mô hình và phương pháp phân loại văn bản, đưa ra bài toán cần
giải quyết;
- Phân tích và đề xuất mô hình giải quyết bài toán;
- Hiện thực hóa hệ thống nêu trên, đánh giá kết quả đạt được trong thực tế.
3. Phương pháp nghiên cứu
Phương pháp lý thuyết:
Tiến hành thu thập và phân tích các tài liệu có liên quan đến đề tài, nghiên cứu
phương pháp tách từ và phương pháp phân loại văn bản;
Phương pháp thực nghiệm:
- Xây dựng cơ sở dữ liệu văn bản tiếng Lào;
- Xây dựng hệ thống tự động phân loại văn bản tiếng Lào;
- Cài đặt hệ thống và triển khai thực tế, nhận xét và đánh giá kết quả đạt được.
Phương tiện, công cụ triển khai:
- Ngôn ngữ lập trình Python 3;
- Môi trường phát triển tích hợp (IDE) PyCharm CE 2017.3.3;
- Hệ quản trị cơ sở dữ liệu MongoDB
4. Đóng góp chính của luận án
1. Xây dựng kho ngữ vựng từ phức tiếng Lào phục vụ cho phương pháp tách từ
tiếng Lào.
2. Đề xuất giải pháp tách từ sử dụng biểu thức chính quy (Regular expression) kết
hợp với khuôn mẫu các từ đơn và ghép lại từng từ đơn thành từ phức có âm tiết
dài nhất trong từ điển từ phức.
3. Ứng dụng Naive Bayes xây dựng mô hình phân loại văn bản tiếng Lào.
4. Triển khai hệ thống trong thực tế và đánh giá hiệu quả của mô hình.
4
5. Cấu trúc của luận án
Sau phần mở đầu, nội dung của luận án gồm ba chương như sau:
Chương 1, Giới thiệu tổng quan phân loại văn bản, các khái niệm, bài toán phân
loại văn bản tiếng Lào.
Chương 2, Trình bày mô hình phân loại văn bản tiếng Lào gồm mô hình tổng
quan, mô hình tách từ và mô hình phân loại văn bản tiếng Lào.
Chương 3, Xây dựng Hệ thống tự động phân loại văn bản tiếng Lào.
Sau 3 chương trên là phần kết luận và hướng phát triển của đề tài. Phần cuối luận
án là danh mục các tài liệu tham khảo và các phụ lục liên quan.
5
CHƯƠNG 1
TỔNG QUAN PHÂN LOẠI VĂN BẢN
1.1. Phân loại văn bản
Phân loại văn bản (Document Classification/Categorization) đóng một vai trò
quan trọng trong bối cảnh phát triển nhanh chóng của công nghệ thông tin với sự bùng
nổ số lượng dữ liệu ngày càng lớn lên. Phân loại văn bản giúp người dùng xử lý văn bản
đúng mục đích và đáp ứng yêu cầu của mình. Về nội dung, hình thức xuất hiện của mỗi
văn bản thường khác nhau nên việc lựa chọn phương pháp phân loại văn bản cho thích
hợp là một vấn đề khó khăn.
Theo sự phát triển công nghệ thông tin, dữ liệu văn bản tiếng Lào ngày càng
nhiều. Theo cách truyền thống, phân loại văn bản đúng nhóm có thể thực hiện một cách
thủ công, là đọc nội dung văn bản và gán nó vào nhóm phù hợp, trong trường hợp số
lượng văn bản lớn, sẽ mất rất nhiều thời gian công sức và chi phí. Do đó, cần phải xây
dựng các công cụ phân loại văn bản một cách tự động.
Đối với tiếng Lào thì các công trình nghiên cứu về phân loại văn bản còn hạn
chế, chủ yếu sử dụng mạng nơ ron RBF, máy vector hỗ trợ (SVM) [1].
1.2. Khái niệm văn bản
Có nhiều quan niệm khác nhau về văn bản (hay văn kiện, tài liệu, tư liệu, thuật
ngữ tiếng Anh gọi là Document), tùy theo hướng tiếp cận. Tuy nhiên có thể hiểu một
cách đơn giản, văn bản là một phương tiện dùng để ghi nhận, lưu giữ và truyền đạt các
thông tin, từ chủ thể này sang chủ thể khác bằng các ký hiệu hay ngôn ngữ nhất định
nào đó. Văn bản là dạng sản phẩm của hoạt động giao tiếp bằng ngôn ngữ, được hình
thành một cách thủ công hay sử dụng công cụ, được thể hiện ở dạng chữ viết, trên một
chất liệu nào đó (giấy tờ, bia đá...), gồm tập hợp các câu có tính trọn vẹn về nội dung,
hoàn chỉnh về hình thức, có tính liên kết chặt chẽ và hướng tới một mục tiêu giao tiếp
nhất định [1].
Mỗi văn bản nhìn chung gồm hai thành phần chính là phần nội dung và phần hình
thức trình bày. Phần nội dung tập hợp bởi các câu có tính trọn vẹn về ngữ nghĩa và phần
hình thực thể hiện tính liên kết chặt chẽ với nội dung và hướng tới một mục tiêu giao
tiếp nhất định. Về nội dung, người ta hay phân loại văn bản theo nhiều tiêu chí khác
nhau tùy theo mục đích sử dụng. Ngoài ra người ta thường phân loại văn bản theo hình
6
thức biểu đạt như miêu tả, biểu cảm, hay theo phong cách chức năng ngôn ngữ như: giao
tiếp, báo chí, khoa học.
Hình thức trình bày của văn bản có thể phân biệt theo nhiều cách tiếp cận: như
văn bản thuần túy (Pure Text) chỉ chứa chữ hay ký tự, hoặc văn bản không thuần túy
ngoài chữ thì chứa các thành phần đồ họa, hình ảnh, hoạt hình, bảng biểu hình vẽ, chiếu
phim, ca nhạc như trên các trang web… Văn bản có thể gồm một ngôn ngữ
(Monolingual) hay đa ngôn ngữ (Multilingual), văn bản thuần nhất (Plain text) chỉ sử
dụng một bộ mã như Unicode.
Văn bản là một tập hợp các ký tự và được tổ chức thành từ, dòng, đoạn và trang,
được mã hóa, lưu trữ trên các thiết bị nhớ khác nhau dưới dạng một tệp văn bản. Thông
thường, trong ngôn ngữ như tiếng Anh, người ta trình bày mỗi từ là một chuỗi ký tự có
khoảng trống phân cách giữa các từ, nhưng trong tiếng Lào không dùng khoảng trống
để phân cách mỗi từ mà là viết các từ vựng ghép sát nhau thành một nhóm từ cho đến
đũ nghĩa của nhóm từ đó. Ví dụ như sau:
- Tiếng Anh: I play table tennis every Friday.
- Tiếng Việt: Tôi chơi bóng bàn mỗi thứ sáu.
- Tiếng Lào: ຂ້ອຍຫຼິ້ນປິ່ງປ່ອງທຸກໆວັນສຸກ.
Văn bản được chia ra thành hai loại là phi cấu trúc (Unstructure Document)
thường được lưu dưới dạng tệp (*.txt) và văn bản có cấu trúc (Structure Document) là
loại văn bản được phân cấp các thành phần khác nhau như phần đầu, phần cuối, chương,
mục, giới thiệu, tham khảo, minh họa… Mỗi thành phần có cách trình bày vật lý khác
nhau với những ký tự điểu khiển mà không nhìn thấy được phía người dùng, các văn
bản có cấu trúc thường được lưu trữ trên tệp (*.html, *.php, *.xml, *.docx, ...).
Trong luận văn, tác giả sẽ tập trung sử dụng ba loại file văn bản phổ biến là html,
docx và txt. Dữ liệu huấn luyện và thử nghiệm sẽ được rút ra trên các web site tiếng Lào
và xử lý lưu trữ dưới dạng tệp văn bản thuần nhất (Plain text, .txt) sử dụng mã hóa
Unicode.
7
Hình 1.1 Bảng mã Unicode tiếng Lào (U+0E80 - U+0EFF)
1.3. Các phương pháp phân loại văn bản
Hiện nay, có nhiều phương pháp phân loại văn bản đã được nghiên cứu đặc biệt
là với văn bản tiếng Anh như: Naive Bayes [8] [14] [15], Support Vector Machines [23],
K-Nearest Neighbor [17], ...
Nghiên cứu phân loại văn bản tiếng Lào chủ yếu sử dụng phương pháp so khớp
tối đa kết hợp với kho từ đơn được xây dựng từ máy suy diễn, sau đó xử lý nhập nhằng
của từ dựa trên tiêu chuẩn xác suất thống kê và áp dụng thuật toán máy vector hỗ trợ
(Support Vector Machine) dựa trên cơ sở RBF để phân loại văn bản [1].
1.3.1. K-Nearest Neighbor (KNN)
K-Nearest Neighbor (KNN hay K-láng giềng gần nhất) là phương pháp truyền
thống khá nổi tiếng theo hướng tiếp cận thống kê đã được nghiên cứu trong nhiều năm
qua [17]. K-Nearest Neighbor được đánh giá là một trong những phương pháp tốt nhất
được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản.
Ý tưởng của phương pháp này là khi cần phân loại một văn bản mới, thuật toán
sẽ tính khoảng cách (có thể áp dụng các công thức về khoảng cách như Euclide, Cosine,
Manhattan, …) của tất cả các văn bản trong tập huấn luyện đến văn bản này để tìm ra k
văn bản có khoảng cách gần nhất, gọi là K-Nearest Neighbor (K-láng giềng gần nhất),
sau đó dùng các khoảng cách vừa tính được này đánh trọng số cho tất cả các chủ đề đã
có. Khi đó, trọng số của một chủ đề sẽ được tính bằng tổng các khoảng cánh từ văn bản
cần phân loại đến các văn bản trong k láng giềng mà có cùng chủ đề đó. Những chủ đề
không xuất hiện trong tập k văn bản sẽ có trọng số bằng 0. Các chủ đề được sắp xếp
theo độ giảm dần của các trọng số và chủ đề nào có trọng số cao sẽ là chủ đề cho văn
bản cần phân loại.
8
Hình 1.2 Thuật toán k láng giềng gần nhất
Trọng số của chủ đề cj đối với văn bản x được tính như sau:
𝑊(𝑥
⃗, 𝑐𝑗) = ∑ 𝑠𝑖𝑚(𝑥
⃗, 𝑑𝑖
⃗⃗⃗⃗). 𝑦(𝑑𝑖
⃗⃗⃗⃗, 𝑐𝑗) − 𝑏𝑗
𝑑𝑖
⃗⃗⃗⃗⃗∈𝐾𝑁𝑁
Trong đó:
- 𝑦(𝑑𝑖
⃗⃗⃗⃗, 𝑐𝑗) ∈ {0,1} với: y=0 văn bản di không thuộc về chủ đề cj, với y=1 văn bản
di thuộc về chủ đề 𝑐𝑗;
- 𝑠𝑖𝑚(𝑥
⃗, 𝑑𝑖
⃗⃗⃗⃗): độ giống nhau giữa văn bản cần phân loại x và văn bản 𝑑𝑖
⃗⃗⃗⃗. sử dụng
độ đo cosine để tính 𝑠𝑖𝑚(𝑥
⃗, 𝑑𝑖
⃗⃗⃗⃗):
𝑠𝑖𝑚(𝑥
⃗, 𝑑𝑖
⃗⃗⃗⃗) = 𝑐𝑜𝑠(𝑥
⃗, 𝑑𝑖
⃗⃗⃗⃗) =
𝑥
⃗. 𝑑𝑖
⃗⃗⃗⃗
‖𝑥
⃗‖. ‖𝑑𝑖
⃗⃗⃗⃗‖
- bj: là ngưỡng phân loại của chủ đề cj được tự động học sử dụng một tập văn bản
hợp lệ được chọn ra từ tập huấn luyện.
- Để chọn được tham số k tốt nhất cho thao tác phân loại, thuật toán cần được chạy
thử nghiệm trên nhiều giá trị k khác nhau, giá trị k càng lớn thì thuật toán càng
ổn định và sai sót càng thấp.
Ưu điểm của KNN
- Độ phức tạp tính toán của quá trình huấn luyện là bằng 0;
9
- Việc dự đoán kết quả của dữ liệu mới rất đơn giản;
- Không cần giả sử gì về phân phối của các lớp.
Nhược điểm của KNN
- KNN rất nhạy cảm với nhiễu khi 𝑘 nhỏ;
- KNN là một thuật toán mà mọi tính toán đều nằm ở khâu huấn luyện. Trong đó
việc tính khoảng cách tới từng điểm dữ liệu trong dữ liệu huấn luyện sẽ tốn rất
nhiều thời gian, đặc biệt là với các cơ sở dữ liệu có số chiều lớn và có nhiều điểm
dữ liệu. Với 𝑘 càng lớn thì độ phức tạp cũng sẽ tăng lên. Ngoài ra, việc lưu toàn
bộ dữ liệu trong bộ nhớ cũng ảnh hưởng tới hiệu năng của KNN.
1.3.2. Support Vector Machine (SVM)
Máy sử dụng vector hỗ trợ (SVM) được Cortess và Vapnik giới thiệu năm 1995,
là phương pháp tiếp cận phân loại hiệu quả để giải quyết vấn đề nhận dạng mẫu 2 lớp
sử dụng nguyên lý Cực tiểu hóa Rủi ro có Cấu trúc (Structural Risk Minimization) [23].
Trong không gian vector cho trước một tập huấn luyện được biểu diễn trong đó
mỗi tài liệu là một điểm, thuật toán SVM sẽ tìm ra một siêu mặt phẳng h quyết định tốt
nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng lớp (+)
và lớp (–). Chất lượng của siêu mặt phẳng phân cách này được quyết định bởi khoảng
cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng
cách biên càng lớn thì mặt phẳng quyết định càng tốt và việc phân loại càng chính xác.
Mục đích thuật toán SVM là tìm được khoảng cách biên lớn nhất (Hình 1.3).
Hình 1.3 Siêu mặt phẳng h phân chia dữ liệu huấn huyện thành 2 lớp + và - với khoảng
cách biên lớn nhất. Các điểm gần h nhất (được khoanh tròn) là các vector hỗ trợ -
Support Vector
Phương trình siêu mặt phẳng chứa vector di trong không gian:
𝑑
⃗𝑖 ⋅ 𝑤
⃗⃗⃗ + 𝑏 = 0
10
Đặt ℎ(𝑑
⃗𝑖) = 𝑠𝑖𝑔𝑛(𝑑
⃗𝑖 ⋅ 𝑤
⃗⃗⃗ + 𝑏) {
+1, 𝑑
⃗𝑖 ⋅ 𝑤
⃗⃗⃗ + 𝑏 > 0
−1, 𝑑
⃗𝑖 ⋅ 𝑤
⃗⃗⃗ + 𝑏 < 0
Từ đó, ℎ(𝑑
⃗𝑖) biểu diễn sự phân loại của 𝑑
⃗𝑖 vào hai lớp nói trên.
Có 𝑦𝑖 = {±1} thì với𝑦𝑖 = +1, văn bản 𝑑
⃗𝑖𝜖 lớp “-”. Lúc này muốn có siêu mặt
phẳng h, ta sẽ giải bài toán sau:
Tìm min ‖𝑤
⃗⃗⃗‖, trong đó 𝑤
⃗⃗⃗ và b thỏa mãn điều kiện:
∀𝑖 ∈ 1, 𝑛
̅̅̅̅̅: 𝑦𝑖 (𝑠𝑖𝑔𝑛(𝑑
⃗𝑖 ⋅ 𝑤
⃗⃗⃗ + 𝑏)) ≥ 1
Khi đó ta có thể sử dụng toán tử Lagrange biến đổi thành dạng thức để giải bài
toán.
Ở phương pháp SVM, mặt phẳng quyết định chỉ phụ thuộc vào các điểm gần nó
nhất (vector hỗ trợ - support vector) mà có khoảng cách đến nó là:
1
‖𝑤
⃗⃗⃗‖
. Khi các điểm
khác bị xóa đi thì vẫn không ảnh hưởng đến kết quả ban đầu.
Ưu điểm:
- Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệu quả trong
không gian chiều cao, trong đó đặc biệt áp dụng cho các bài toán phân loại văn
bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn;
- Tiết kiệm bộ nhớ: do chỉ có một tập hợp con của các điểm được sử dụng trong
quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ
có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết dịnh;
- Tính linh hoạt: phân lớp thường là phi tuyến tính. Khả năng áp dụng Kernel mới
cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ đó khiến
cho hiệu suất phân loại lớn hơn.
Nhược điểm:
- Bài toán số chiều cao: trong trường hợp số lượng thuộc tính (p) của tập dữ liệu
lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá tồi;
- Chưa thể hiện rõ tính xác suất: việc phân lớp của SVM chỉ là việc cố gắng tách
các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM. Điều này chưa
giải thích được xác suất xuất hiện của một thành viên trong một nhóm là như thế
nào. Tuy nhiên hiệu quả của việc phân lớp có thể được xác định dựa vào khái
niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp mà chúng ta đã bàn
luận ở trên.
11
1.3.3. Naïve Bayes (NB)
Phương pháp Naive Bayes là sử dụng xác suất có điều kiện giữa từ và chủ đề để
dự đoán xác suất chủ đề của một văn bản cần phân loại. Điểm quan trọng của phương
pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều
độc lập với nhau. Giả định đó làm cho việc tính toán Naive Bayes hiệu quả và nhanh
chóng hơn các phương pháp khác vì không sử dụng việc kết hợp các từ để đưa ra phán
đoán chủ đề [8][9][14][15].
Nếu tập dữ liệu huấn luyện nghèo nàn và các tham số dự đoán (như không gian
đặc trưng) có chất lượng kém thì sẽ dẫn đến kết quả tồi. Tuy nhiên, nó được đánh giá là
một thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề với
một số ưu điểm: cài đặt đơn giản, tốc độ nhanh, dễ dàng cập nhật dữ liệu huấn luyện
mới và có tính độc lập cao với tập huấn luyện, có thể sử dụng kết hợp nhiều tập huấn
luyện khác nhau. Thông thường, người ta còn đặt thêm một ngưỡng tối ưu để cho kết
quả phân loại khả quan.
Mục đích chính là tính được xác suất P(𝐶𝑗| 𝑑′), xác suất để văn bản d′ nằm trong
loại văn bản Cj. Theo Bayes, văn bản d’ sẽ được gán cho loại văn bản nào có xác suất
hậu nghiệm cao nhất nên được biểu diễn bằng công thức:
Loại văn bản của d’ = arg max
1≤𝑘≤𝑁
{𝑃(𝐶𝑗|𝑑′} = 𝑎𝑟𝑔 max
1≤𝑘≤𝑁
𝑃(𝐶𝑗)∗𝑃(𝑑′
|𝐶𝑗)
𝑃(𝑑′)
trong đó N là tổng số tài liệu
Công thức sau dùng để tính P(𝐶𝑗| 𝑑′):
P(𝐶𝑗| 𝑑′) = 𝑃(𝐶𝑗) ∗
𝑃(𝑑′|𝐶𝑗)
𝑃(𝑑′)
Trong đó:
- 𝑃(𝐶𝑗| 𝑑′) là xác suất mà văn bản d′ có khả năng thuộc vào lớp Cj
- d′ là tài liệu cần phân loại
- Cj là một tài liệu bất kì
- 𝑃(𝑑′
|𝐶𝑗) được tính toán từ tần suất xuất hiện của các từ (𝑤𝑗) trong tài liệu d’:
𝑃(𝑑′|𝐶𝑗) = ∏ 𝑃(𝑤𝑗|𝐶𝑗)
𝑖<𝑗<𝑙
trong đó l là tổng số từ w trong tài liệu D
- P(𝐶𝑗) là tỷ lệ phần trăm của số văn bản mỗi lớp tương ứng trong tập dữ liệu
luyện:
12
𝑃(𝐶𝑗) =
‖𝐶𝑗‖
‖𝐶‖
=
‖𝐶𝑗‖
∑ ‖𝐶′‖
𝐶′∈𝐶
P(wi|Cj) sử dụng phép ước lượng Laplace:
𝑃(𝑤𝑖|𝐶𝑗) =
1 + 𝑇𝐹(𝑤𝑖, 𝐶𝑗)
|𝐹| + ∑ 𝑇𝐹(𝑤′, 𝐶𝑗)
𝑤∈|𝐹|
Naive Bayes là một phương pháp rất hiệu quả trong một số trường hợp. Nếu tập
dữ liệu huấn luyện nghèo nàn và các tham số dự đoán (như không gian đặc trưng) có
chất lượng kém thì sẽ dẫn đến kết quả tồi. Tuy nhiên, nó được đánh giá là một thuật toán
phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề với một số ưu điểm:
cài đặt đơn giản, tốc độ nhanh, dễ dàng cập nhật dữ liệu huấn luyện mới và có tính độc
lập cao với tập huấn luyện, có thể sử dụng kết hợp nhiều tập huấn luyện khác nhau.
Thông thường, người ta còn đặt thêm một ngưỡng tối ưu để cho kết quả phân loại khả
quan.
Phân tích các phương pháp phân loại văn bản trên, có thể so sánh như bảng 1.1:
Bảng 1.1 Bảng so sánh các phương pháp phân loại văn bản
Phương pháp phân
loại văn bản
Đơn giản Phân loại
nhanh
Dễ cài đặt Kết quả tốt với đa
nhãn lớp
K-Nearest Neighbor 
Support Vector
Machine

Naïve Bayes    
Bảng so sánh phương pháp phân loại văn bản nêu trên cho thấy rằng phương pháp
phân loại văn bản Naïve Bayes đáp ứng yêu cầu nhiều hơn đối với vấn đề đặt ra trên.
1.4. Kết luận
Chương 1 tác giả đã trình bày tổng quan về công trình phân loại văn bản, bài toán
phân loại văn bản tiếng Lào, cho biết các phương pháp phân loại văn bản như K-Nearest
Neighbor, Suport Vector Machine, Naive Bayes và lựa chọn phương pháp Naive Bayes
để xây dựng hệ thống tự động phân loại văn bản tiếng Lào.
13
CHƯƠNG 2
MÔ HÌNH PHÂN LOẠI VĂN BẢN
TIẾNG LÀO
Trong chương này sẽ trình bày về mô hình tổng quan phân loại văn bản tiếng
Lào, những đặc trưng của tiếng Lào, mô hình tách từ áp dụng Regular Expression và mô
hình phân loại văn bản tiếng Lào dựa trên phương pháp Naive Bayes.
2.1. Mô hình phân loại văn bản tiếng Lào
Vấn đề phân loại văn bản tiếng Lào dựa trên kiểu học có giám sát được đặc tả
bao gồm 2 giai đoạn: giai đoạn huấn luyện và giai đoạn phân loại.
Một cách tổng quát, giải quyết bài toán phân loại văn bản gồm các bước (Hình
2.1):
- Tiền xử lý văn bản đầu vào và biểu diễn văn bản theo mô hình vector từ khóa,
mỗi văn bản được biểu diễn bằng một vector của các từ khóa;
- Trích chọn đặc trưng, loại bỏ từ dừng;
- Huấn luyện;
- Phân loại văn bản.
Hình 2.1 Mô hình tổng quan phân loại văn bản tiếng Lào
Giai đoạn huấn luyện có các bước:
Naïve Bayes
Giai đoạn huấn luyện
Giai đoạn phân loại
Văn bản
tiếng Lào
Tiền xử lý
Trích chọn đặc
trưng
Huấn luyện
Phân loại
Dữ liệu
huấn luyện
Loại văn bản
14
- Dữ liệu huấn luyện: dữ liệu huấn luyện thu thập từ các trang web tiếng Lào, lưu
trữ dưới dạng văn bản thuần nhất với mã hóa Unicode và nhãn lớp xác định;
- Tiền xử lý: Biểu diễn các dữ liệu văn bản tiếng Lào thành một vector từ khóa, áp
dụng biểu thức chính quy kết hợp với khuôn mẫu từ đơn để tách ra từ đơn và
ghép lại từ đơn thành từ phức dựa trên từ điển từ phức;
- Trích chọn đặc trưng: loại bỏ những từ dừng (stop-words) không mang thông tin,
thường thì không có ích gì trong việc phân biệt nội dung của các tài liệu, nhằm
nâng cao hiệu suất phân loại và giảm độ phức tạp của thuật toán huấn luyện.
Ví dụ, từ chỉ dùng để phục vụ cho biểu diễn cấu trúc chứ không biểu đạt
nội dung của nó như là “ໃນ” (giới từ), “ແຕ່” (liên từ), động từ phổ biến có dạng
“ແມ່ນ”, “ໄດ້”, và một số trạng từ và tính từ đặc biệt cũng được xem là những từ
dừng (stop-words). Vì đặc điểm của từ dừng nên chúng được loại bỏ mà không
ảnh hưởng đến các công việc biểu diễn văn bản.
- Huấn luyện: hay thuật toán huấn luyện thủ tục huấn luyện bộ phân loại để tìm ra
họ các tham số tối ưu dựa trên phương pháp Naive Bayes sử dụng xác suất có
điều kiện giữa từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân
loại.
Giai đoạn phân loại có các bước:
- Văn bản tiếng Lào: đưa vào bất kỳ văn bản tiếng Lào với mã hóa Unicode;
- Tiền xử lý: Thực hiện như giai đoạn huấn luyện, biểu diễn văn bản theo mô hình
vector từ khóa;
- Trích chọn đặc trưng: Thực hiện như giai đoạn huấn luyện nêu trên;
- Phân loại văn bản: Sau khi biểu diễn văn bản tiếng Lào thành một vector từ khóa
và trích trọn đặc trưng, sẽ tính xác suất của Vector từ của văn bản đang xét với
xác suất của mỗi nhóm trên bộ huấn luyện từ giai đoạn huấn luyện và chọn nhóm
có số cao nhất là loại của văn bản.
2.2. Biểu diễn văn bản tiếng Lào
Trong luận văn này, mỗi văn bản đưa vào hệ thống tự động phân loại văn bản
tiếng Lào dựa trên phương pháp Naive Bayes được biểu diễn trên mô hình vector, các
văn bản được thể hiện trong một không gian có số chiều lớn, trong đó mỗi chiều của
không gian tương ứng với một từ trong văn bản. Mỗi văn bản D được biểu diễn dưới
dạng 𝑥
⃗. Trong đó 𝑥
⃗ = (𝑥1, 𝑥2, … , 𝑥𝑛), và n là số lượng đặc trưng hay số chiều của vector
văn bản, 𝑥𝑛 là trọng số của đặc trưng thứ i (với 𝑖 ≤ 𝑖 ≤ 𝑛).
15
Ví dụ:
VB1: ຂ້ອຍມັກອ່ານປຶ້ມ ແລະ ຂຽນປຶ້ມ (tôi đọc sách), được tách từ ຂ້ອຍ|ມັກ|ອ່ານ|ປຶ້ມ|ແລະ|ຂຽນ|ປຶ້ມ
VB2: ຂ້ອຍຂຽນໜັງສື (tôi viết bài), được tách từ ຂ້ອຍ|ຂຽນ|ໜັງສື
Với 2 văn bản trên, áp dụng mô hình vector ta có biểu diễn như sau:
Bảng 2.1 Ví dụ biểu diễn văn bản trên mô hình vector từ khóa
Từ Vector_VB1 Vector_VB2
ຂ້ອຍ 1 1
ອ່ານ 1 0
ຂຽນ 1 1
ໜັງສື 1 1
ມັກ 1 0
ປຶ້ມ 2 0
2.3. Tách từ tiếng Lào
Trong quá trình xử lý bài toán phân loại văn bản, trước hết văn bản phải được xử
lý và rút ra những thuộc tính cần thiết cho việc phân loại văn bản đó là những từ xuất
hiện trong văn bản, rồi biểu diễn từng văn bản theo một mô hình như: mô hình phân tích
cú pháp, mô hình vector, mô hình boolean, mô hình tần suất… cho phù hợp với yêu cầu
của mỗi phương pháp phân loại văn bản. Để có thể lấy được những từ trong văn bản
phải qua bước tiền xử lý cơ bản như tách từ.
Bài toán tách từ (Word Segmentation) hay cũng gọi là tách các thuật ngữ
(Tokenizer), là một quá trình xử lý nằm ranh giới các từ trong câu. Về mặt ngôn ngữ là
sẽ xác định từ đơn, từ ghép có mặt trong câu. Trong lĩnh vực xử lý ngôn ngữ tự nhiên
bài toán tách từ có vai trò quan trong nhất trong việc xác định cấu trúc ngữ pháp trong
câu.
Tách từ quen thuộc, đơn giản với con người do tính trực quan, nhưng trong xử lý
ngôn ngữ tự nhiên sẽ gặp rất nhiều khó khăn đối với ngôn ngữ nằm ở vùng Đông Á như
tiếng Thái, tiếng Nhật, tiếng Trung Quốc, tiếng Kmer kể cả tiếng Lào.
Đến hiện nay, đối với phương pháp tách từ của tiếng Anh, tiếng Trung, tiếng
Nhật, tiếng Việt… đã có nhiều công trình nghiên cứu và cải tiến với hướng tiếp cận khác
nhau, đạt được kết quả khả quan. Đối với tiếng Lào đến hiện nay, Vẫn chưa có một
phương pháp tiếp cận nào có kết quả khả quan, một số phương pháp tách từ tiếng Lào
đã được nghiên cứu, có như sau:
16
- Tách từ tiếng Lào sử dụng trường xác suất có điều kiện CRF (Conditional
Random Field) [11];
- Tách từ dựa trên so khớp tối đa của âm tiết [4];
- Hỗn hợp tiếp cận tách từ sử dụng phương pháp so khớp tối đa cấp độ âm
tiết với sự công nhận của các đặt tên [10];
- Phân âm tiếng Lào cho tách dòng [23];
- Tách từ tiếng Lào dựa trên phương pháp so khớp tối đa với kho từ vựng
(gồm có từ đơn đã nhận từ máy suy diễn kết hợp với cơ sở luật, từ ghép
và cụm từ) và xử lý khứ bỏ nhập nhằng [1].
Do đó, tác giả đề xuất mô hình tách từ tiếng Lào dựa trên cơ sở Regular
Expression kết hợp với khuôn mẫu cấu trúc câu, cấu trúc từ đơn.
2.3.1. Đặc trưng tiếng Lào
Lào là một đất nước có ngôn ngữ và chữ viết riêng của mình có tên gọi là ngôn
ngữ Lào và chữ Lào. Đối với tiếng lào nó sinh ra và hình thành song song cùng với sự
xuất hiện của đất nước Lào là một trong những ngôn ngữ đã từng có từ lâu đời trong
Châu Á.
Ngữ pháp Lào được chỉnh sửa nhiều lần cho đến thời kỳ giải phóng đất nước và
xây dựng Cộng hòa Dân chủ Nhân dân Lào như hiện nay được sử dụng phương pháp
tiếng Lào theo ngữ pháp do Ông Phoumy Vongvichith là Bộ Giáo dục công nhận sử
dụng hiện nay, cũng có thể vì đã có nhiều lần chỉnh sửa phương pháp tiếng Lào mà làm
cho cách viết, cách nói tiếng Lào của người Lào khác nhau không có sự hòa hợp nhau
cho lắm nhất là những từ câu hình thành ra từ câu ngôn ngữ Bali Sansakit hay là các từ
câu hình thành từ câu ngoại ngữ, hay câu của Lào.
2.3.1.1. Tổng quan về đặc trưng của văn bản tiếng Lào
Cấu trúc một văn bản tiếng Lào thường gồm một Chủ đề, các mục (có chữ số ở
phía trước tuân theo với ký tự dấu chấm) và nội dung. Nội dung là tập hợp của nhiều
đoạn, một đoạn là tập hợp của nhiều câu, một câu là tập hợp của một cụm/nhóm từ, một
cụm từ là tập hợp của hai từ đơn trở lên ghép sát nhau (không có rảnh giới giữa các từ)
và một từ đơn gồm hai ký tự trở lên.
Đặc trưng của cách viết một đoạn và câu tiếng Lào không khác với hệ chuẩn của
tiếng Anh như khi kết thúc câu phải có các ký tự dấu chấm câu (dấu chấm, dấu hai chấm,
17
dấu phẩy, dấu than, ...), khi bắt đầu một đoạn phải có thụt lề hay ký tự đặc biệt (t) và
khi kết thúc đoạn phải xuống bắt đầu dòng mới hoặc ký tự (n).
Về đặc trưng của từ đơn trong tiếng Lào là một tập hợp các ký tự tiếng Lào (gồm
có phụ âm, nguyên âm và dấu thanh), một từ đơn ít nhất phải có 2 ký tự gồm 1 ký tự
phụ âm và 1 ký tự nguyên âm. Trong hệ viết từ tiếng Lào không có chữ hoa.
Trong hệ viết tiếng Lào, ký tự khoảng trống sử dụng để tách ra hai câu hoặc cụm
từ có đủ ý nghĩa của từng câu cho dễ dàng đọc và tránh biến nghĩa của câu. Khoảng
trống thường dùng để tách ra tên riêng (tên người, tên công ty, tên quốc gia, chữ viết tắt)
và chữ số (số ngày, số năm, số tiền, …) ra khỏi câu/cụm từ.
2.3.1.2. Cấu trúc từ tiếng Lào
Ngôn ngữ tiếng lào có ký tự viết và đọc tương tự với ngôn ngữ trong quốc gia
khác. Bảng chữ cái tiếng Lào gồm 3 nhóm: phụ âm, nguyên âm và dấu thanh.
Cách tạo một từ tiếng Lào phải dùng ít nhất 2 ký tự gồm ít nhất 1 phụ âm và 1
nguyên âm ghép lại với nhau, các ký tự đó phải nằm đúng vị trí theo ngữ pháp tạo từ
của tiếng Lào thì mới phát âm được và có nghĩa trong tiếng Lào.
2.3.1.3. Bảng chữ cái tiếng Lào
Chữ cái tiếng Lào mà sử dụng trong giao tiếp là có nguồn gốc từ tiếng Sanskrit
(Bắc Phạn) và chữ cái sử dụng trong phật giáo là có nguồn gốc từ tiếng Pali (Nam Phạn).
Bảng chữ cái tiếng Lào gồm 3 nhóm: phụ âm, nguyên âm và dấu thanh. Tiếng
Lào cũng có chữ số Lào nhưng ít sử dụng hiện nay.
Phụ âm
Có 33 phụ âm được chia ra 2 loại: phụ âm đơn (trung tâm) và phụ âm ghép.
Các 27 phụ âm đơn:
ກ ຂ ຄ ງ ຈ ສ ຊ ຍ ດ ຕ ຖ ທ ນ ບ ປ ຜ ຝ ພ ຟ ມ ຢ ຣ ລ ສ ຫ ອ ຮ
Các 6 phụ âm ghép:
ຫງ ຫຍ ຫນ(ໜ) ຫມ(ໝ) ຫລ(ຫຼ) ຫວ
Nguyên âm
Có 28 nguyên âm trong đó gồm nguyên âm dài, nguyên âm ngắn, nguyên âm đặc
biệt (không thể ghép với phụ âm cuối vần), có như sau:
- Nguyên âm dài: xະ xີ xຶ xຸ ເxະ ແxະ ໂxະ ເxາະ ເxິ ເxັຍ xົວະ ເxຶອ
- Nguyên âm ngắn: xາ xີ xື xູ ເx ແx ໂx xໍ ເxີ ເxຍ xົວ ເxືອ
- Nguyên âm đặc biệt: ໄx ໃx ເxົາ xໍາ
18
Trong các 24 nguyên âm (trừ nguyên âm đặc biệt) nó có thể ghép với phụ âm
cuối từ để trở thành nguyên âm với phụ cuối vần. Phụ âm cuối từ hoặc phụ âm cuối vần
là phụ âm đơn vừa làm phụ âm đầu vần vừa làm phụ âm cuối vần gồm có 8 phụ âm (ກ ງ
ຍ ດ ນ ບ ມ ວ) cần đặt sau các 24 nguyên âm và không thể xếp sau các nguyên âm đặc biệt.
Có một số nguyên âm sau khi ghép lại với phụ âm cuối vần sẽ thay đổi dạng. Sau đây là
bảng nguyên âm ghép với 8 phụ âm cuối vần:
Bảng 2.2 Nguyên âm ghép lại với phụ âm cuối vần
Nguyên
âm
Phụ âm cuối vần
ກ ງ ຍ ດ ນ ບ ມ ວ
xະ xັກ xັງ xັຍ (ໄx) xັດ xັນ xັບ xັມ (xໍາ) xັວ (ເxົາ)
xາ xາກ xາງ xາຍ xາດ xານ xາບ xາມ xາວ
xິ xິກ xິງ - xິດ xິນ xິບ xິມ xິວ
xີ xີກ xີງ - xີດ xີນ xີບ xີມ xີວ
xຶ xຶກ xຶງ xຶຍ xຶດ xຶນ xຶບ xຶມ xຶວ
xື xືກ xືງ xືຍ xືດ xືນ xືບ xືມ xືວ
xຸ xຸກ xຸງ xຸຍ xຸດ xຸນ xຸບ xຸມ -
xູ xູກ xູງ xູຍ xູດ xູນ xູບ xູມ -
ເxະ ເxັກ ເxັງ - ເxັດ ເxັນ ເxັບ ເxັມ ເxັວ
ເx ເxກ ເxງ - ເxດ ເxນ ເxບ ເxມ ເxວ
ແxະ ແxັກ ແxັງ - ແxັດ ແxັນ ແxັບ ແxັມ ແxັວ
ແx ແxກ ແxງ - ແxດ ແxນ ແxບ ແxມ ແxວ
ໂxະ xົກ xົງ xົຍ xົດ xົນ xົບ xົມ -
ໂx ໂxກ ໂxງ ໂxຍ ໂxດ ໂxນ ໂxບ ໂxມ ໂxວ
ເxາະ xັອກ xັອງ xັອຍ xັອດ xັອນ xັອບ xັອມ -
xໍ xອກ xອງ xອຍ xອດ xອນ xອບ xອມ -
ເxິ ເxິກ ເxິງ ເxິຍ ເxິດ ເxິນ ເxິບ ເxິມ ເxິວ
ເxີ ເxີກ ເxີງ ເxີຍ ເxີດ ເxີນ ເxີບ ເxີມ ເxີວ
19
ເxັຍ xັຽກ xັຽງ - xັຽດ xັຽນ xັຽບ xັຽມ xັຽວ
ເxຍ xຽກ xຽງ xຽຍ xຽດ xຽນ xຽບ xຽມ xຽວ
xົວະ xັວກ xັວງ xັວຍ xັວດ xັວນ xັວບ xັວມ -
xົວ xົວກ xົວງ xົວຍ xົວດ xົວນ xົວບ xົວມ -
ເxຶອ ເxຶອກ ເxຶອງ ເxຶອຍ ເxຶອດ ເxຶອນ ເxຶອບ ເxຶອມ -
ເxືອ ເxືອກ ເxືອງ ເxືອຍ ເxືອດ ເxືອນ ເxືອບ ເxືອມ -
2.3.1.4. Dấu thanh
Dấu thanh trong tiếng Lào sử dụng để biến phát âm của nguyên âm cho nó thành
cao, thấp, ngắn, dài. Từ trong tiếng Lào nếu thay đổi dấu thanh của một từ thì nghĩa của
từ đó cũng thay đổi.
Tiếng Lào có 4 dấu thanh: x່, x້, x໋, x໊
Ví dụ: ປາ / pa, ປ່າ / pà, ປ້າ / pá, ປ໋າ / pạ, ປ໊າ / pã
2.3.1.5. Chữ số
Có 10 chữ số tương ứng với các số từ 0 đến 9. Cách viết số Lào tuân theo hệ
thống số chuẩn thông thường như: ໐ ໑ ໒ ໓ ໔ ໕ ໖ ໗ ໘ ໙
Ví dụ: 2017 = ໒໐໑໗, 1991 = ໑໙໙໑, -20.17 = -໒໐,໑໗
2.3.1.6. Ký tự đặc biệt
Có 3 ký tự: ໆ, ຯ và x໌
- Ký tự ໆ sử dụng để lặp lại từ ở phía trước. Ví dụ: ຫຼາຍໆ = ຫຼາຍຫຼາຍ (nhiều nhiều)
- Ký tự ຯ đặt vào phía trước và sau phụ âm ລ trở thành ຯລຯ màng nghĩa trong tiếng
Việt là “vân vân”.
- Ký tự x໌ đặt vào phía trên của một phụ âm mà phụ âm đó nằm ở cuối của một từ
khi viết từ của từ tiếng nước ngoài để làm cho từ đó phát âm theo dòng nói theo
tiếng đó. Ví dụ viết tiếng Anh sang tiếng Lào: Star = ສະຕາຣ໌
20
2.3.1.7. Hệ thống từ vựng tiếng lào
Tiếng Lào là ngôn ngữ đơn âm một từ có một âm tiết. Cách tạo từ cũng tương tự
với tiếng Thái và tiếng Việt, mỗi từ được tổ hợp từ các chữ cái phụ âm, nguyên âm và
dấu thanh.
Ví dụ:
- Từ có 1 phụ âm ປ và 1 nguyên âm xາ: ປາ / pa / cá
- Từ có 1 phụ âm ອ, 1 nguyên âm xາຍ và dấu thanh x້: ອ້າຍ / ái / anh trai
Từ vững tiếng Lào có hai loại là từ đơn (giản) và từ phức (hợp). Từ phức hợp
gồm từ ghép và từ láy).
Từ đơn
Một từ đơn có một âm tiết ít nhất phải có 2 ký tự gồm có một phụ âm và một
nguyên âm. Ví dụ phụ âm ດ ghép với nguyên âm xີ: ດີ / đi / tốt.
Âm tiết dài nhất của từ đơn có thể tạo được là 7 ký tự gồm phụ âm (ghép), nguyên
âm và dấu thanh. Ví dụ phụ âm ghép ຫງ ghép với nguyên âm ເxືອ ghép với phụ âm cuối
vần ນ và dấu thanh x່: ເຫງື່ອນ / ngườn / dỡ
Từ ghép
Từ ghép được tạo từ 2 từ đơn trở lên, mang một nghĩa đó xác định. Gồm có dạng
ghép: ghép hai từ đơn có nghĩa khác nhau, ghép nhiều từ đơn có nghĩa tương đương,
ghép hai từ đơn có nghĩa giống nhau, ghép nhiều từ đơn (cụm/nhóm), ghép các từ của
tiếng Pali và Sanskrit.
Ví dụ:
- Từ ghép hai từ đơn có nghĩa khác nhau (2 âm tiết):
ໄຟຟ້າ (điện) / fai fá / ໄຟ (lửa) + ຟ້າ (trời)
- Từ ghép (3 âm tiết):
ຄອມພິວເຕີ (máy vi tính) / ຄອມ + ພິວ + ເຕີ
- Từ ghép (4 âm tiết):
ວິທະຍາໄລ (trường cao đẳng) / ວິ + ທະ + ຍາ + ໄລ
- Từ ghép hai cụm từ (6 âm tiết):
ມະຫາວິທະຍາໄລ (trường đại học) / ມະຫາ (đại) + ວິທະຍາໄລ (trường cao đẳng)
21
Từ theo phát âm tiếng nước ngoài
Để viết từ cho đúng phát âm của tiếng nước ngoài đặc biệt là Tiếng Anh thường
có âm cuối mà trong tiếng Lào không có âm cuối, âm cuối này gồm hai ký tự (phụ âm
theo âm cuối của từ và ký tự đặc biết ີ). Ví dụ như: Stars (ສະຕາສ໌), Paster (ປາສ໌ເຕີຣ໌)…
Những từ này viết theo phát âm của từ tiếng đó, cách viết này chưa có chuẩn
thống nhất mà trong thực tế như trên bài báo hay tạp chí người ta thường viết theo cách
này.
2.3.1.8. Cấu trúc câu tiếng Lào
Tiếng Lào có hai loại câu: câu đơn và câu ghép
Câu đơn
Tương tự quan điểm ngữ pháp tiếng Việt, trong ngữ pháp tiếng Lào, câu đơn gồm
ba phần: chủ ngữ (danh từ hay đại từ), vị ngữ (động từ) và bổ ngữ.
Ví dụ câu đơn:
ຂ້ອຍກໍາລັງສຶກສາຢູ່ ມະຫາວິທະຍາໄລຊັບພະວິຊາ ທີ່ ນະຄອນ ດານັງ.
Tôi đang học ở Trường Đại Học Bách Khoa tại thành phố Đà Nẵng.
Câu ghép
Câu ghép được tạo ra với nhiều câu ghép lại với nhau để mở rộng ý nghĩa của
câu. Về câu trong câu ghép thường có cấu tạo giống câu đơn (là cụm chủ ngữ - vị ngữ).
Giữa các câu trong câu ghép có những quan hệ nhất định để nối với nhau. Tương tự với
tiếng Việt, có ba cách nối:
- Nối bằng từ ngữ có tác dụng nối ແລະ, ví dụ:
ມື້ວານນີ້ໄປຕະຫຼາດ, ຂ້ອຍໄດ້ຊື້ເສື້ອໃໝ່ ແລະ ນ້ອງຂ້ອຍຊື້ໝາກບານໜຶ່ງໜ່ວຍ.
Hôm qua đi chợ, tôi đã mua áo mới và em trai tôi đã mua một quả bóng đá.
- Nối trực tiếp, không dùng từ ngữ có tác dụng nối, giữa các vế câu phải dùng dấu
phẩy, dấu chấm phẩy hoặc dấu hai chấm, ví dụ:
ມີສາມຄົນຢູ່ໃນຫ້ອງ, ຄົນໜຶ່ງເບິ່ງໂທລະພາບ, ຄົນໜຶ່ງຫຼິ້ນໂທລະສັບ ແລະ ຄົນໜຶ່ງນັ່ງໄຫ້.
Có ba người trong phòng, một người xem ti vi, một người chơi điện thoại, một
người ngồi khóc lóc.
- Nối bằng quan hệ từ (Vì … nên …; Do … nên ...), ví dụ:
22
ເນື່ອງຈາກ ທ້ອງຟ້າແຈ່ມໃສ ດັ່ງນັ້ນ ພວກເຮົາຈຶ່ງໄປຫຼິ້ນທະເລ.
Vì trời đẹp nên chúng ta đi chơi biển.
2.3.2. Phương pháp tách từ tiếng Lào sử dụng Regular Expression
Với những đặc trưng và nguyên tắc trên, cho phép tác giả xây dựng được tập
khuôn mẫu biểu thức chính quy (Regular Expression) biểu diễn cho các cấu trúc câu,
cấu trúc từ đơn dựa trên đặc trưng hệ viết tiếng Lào phục vụ cho quá trình tách từ trong
văn bản tiếng Lào.
Áp dụng so khớp của Regular Expression kết hợp với khuôn mẫu đã xây dựng
tách ra câu và tách ra từ đơn trong câu theo hướng trái qua phải. Sau lấy được tất cả từ
đơn trong một văn bản tiếng Lào dưới dạng mảng vector từ đơn, sẽ ghép từng phân tử
duyệt trái qua phải của mảng tìm và so sánh với từ điển từ phức tiếng Lào cho lấy được
từ trong từ điển có âm tiết dài nhất, có mô hình như sau:
Hình 2.2 Mô hình tách từ tiếng Lào
Quá trình này cho phép tách ra nhiều từ tiếng Lào có thể nhất mà không cần quan
tâm đến ngữ nghĩa của từ. Và sắp xếp lại vị trí của từ trong văn bản theo thứ tự ban đầu
dưới dạng một vector.
Ví dụ:
Đầu vào cụm từ c: c = ‘ຂ້ອຍກໍາລັງໄປໂຮງຮຽນ’
Văn bản
tiếng Lào Tách câu
Tách cụm từ
Tách từ đơn
Ghép từ đơn
S = [s1, s2, ..., sn]
C = [c1, c2, ..., cn]
T = [t1, t2, ..., tn]
V = [w1, w2, ..., wn]
Từ điển từ phức
Xử lý từ chứa phụ âm ghép
Tập khuôn mẫu từ
đơn
Khuôn mẫu câu
Khuôn mẫu cụm từ
23
Tách được từ đơn: Vtừ đơn = [‘ຂ້ອຍ’, ‘ກໍາ’, ‘ລັງ’, ‘ໄປ’, ‘ໂຮງ’, ‘ຮຽນ’]
Ghép lại từ đơn dựa trên từ điển từ ghép: Vtừ = ['ຂ້ອຍ', 'ກໍາລັງ', 'ໄປ', 'ໂຮງຮຽນ']
Một vấn đề thường gặp trong quá trình phân loại văn bản, khi tách từ sẽ lấy được
nhiều từ thừa đó là những từ mà chứa phụ âm ghép (ຫນ, ຫມ và ຫລ tương đương với ໜ, ໝ
và ຫຼ lần lượt), đặc điểm của nó là có hai dạng viết mà cùng một nghĩa, đối với máy tính
nó hiểu là cặp từ đó là hai từ khác nhau thì nên xử lý những từ đó để giảm chiều dài của
vector từ đặc trưng khi phân loại văn bản.
Ví dụ: ຫລານ = ຫຼານ, ຫມາ = ໝາ, ຫນຶ່ງ = ໜຶ່ງ…
Theo mô hình (hình 2.2), tác giả sẽ cung cấp module tách từ tiếng Lào dựa trên
biểu thức chính quy (Regular Expression) trên ngôn ngữ Python 3 phục vụ cho phương
pháp phân loại văn bản Naive Bayes. Riêng module biểu thức chính quy không thể áp
dụng trực tiếp được và không đủ chức năng để tách ra từ trong văn bản tiếng Lào cho
chính xác và hiệu quả, nên phải xây dựng khuôn mẫu từ đơn đơn tiếng Lào, cải tiến chức
năng là kiểm tra từ mới tách được có nằm ở giửa từ tiếp theo hay không, sau đó ghép lại
những từ đơn đã tách được thành từ phức dựa trên phương pháp ghép và so sánh tìm
kiếm trong từ điển từ phức.
Ưu điểm của module tách từ đề xuất là:
- Tốc độ tách từ nhanh vì không quan tâm đến ngữ nghĩa của từ;
- Có thể tách được tất cả từ đơn theo tập khuôn mẫu từ đơn đã xây dựng và
tách được con số, ký tự đặc biệt như dấu chấm, dấu thăng, dấu ngoặc, …;
- Xử lý được những từ có hai cách viết nhưng nghĩa giống nhau, là những
từ chứa phụ âm ghép như ຫລ, ຫມ, ຫນ sửa thành ຫຼ, ໝ, ໜ lần lượt, để giảm
độ phức tạp và số lượng từ đặc trưng;
- Tách được từ trong văn bản thỏa mãn cho phương pháp phân loại văn bản
Naive Bayes.
Nhược điểm:
- Ghép từ đơn thành từ phức còn có hạn chế dựa trên số lượng của từ vững
trong từ điển từ phức;
- Nếu gặp từ viết sai chính tả đặc biệt là không viết theo thứ tự thì sẽ tách
ra thành ký tự.
2.3.2.1. Regular Expression
Trước đây việc xử lý chuỗi trong mọi ngôn ngữ lập trình rất là khó khăn bởi vì
hàm xử lý chuỗi không cung cấp nhiều lắm và những hàm đó không có một chuẩn chung
để kiểm tra định dạng của chuỗi. Sau khi nó ra đời việc xử lý chuỗi trở thành dể dàng
24
hơn. Regular Expression được sử dụng phổ biến trong thế giới UNIX và hiện nay nó
được hỗ trợ bởi hầu hết các ngôn ngữ lập trình như Perl, Java, Javascript, C#, C/C++,
PHP, Python, …
Regular Expression (hay còn gọi là biểu thức chính quy, RegEx, RegExp, ...) là
một chuỗi miêu tả một bộ các chuỗi khác theo những quy tắc cứ pháp nhất định, nó được
dùng để tìm kiếm, so sánh, cắt ghép, hoặc là xử lý chuỗi nâng cao thông qua biểu thức
riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và phải tuân theo nguyên
tắc đó thì biểu thức mới hoạt động được. Nguyên tắc hoạt động của biểu thức chính quy
(Regular Expression) là so khớp dựa vào khuôn mẫu (pattern), khuôn mẫu được xây
dựng từ các quy tắc căn bản của biểu thức chính quy.
Cứ pháp của Regular Expression
Về cơ bản, biểu thức chính quy (Regular Expression) chia ra 2 phần gồm:
- Literal character (ký tự thường) là một biểu thức chứa một hoặc nhiều ký tự từ a
đến z dùng để làm mẫu và so sánh với một chuỗi nào đó. Ví dụ nếu có RegEx
pattern là ‘eph’ và một chuỗi là ‘elephant’, nó sẽ tìm kiếm và so sánh trùng khớp
chữ eph trong chuỗi elephant.;
- Meta character (siêu ký tự) là những ký tự đặc biệt có ý nghĩa như một mệnh lệnh
nhất định.
Dưới đây là một số Meta character thường dùng:
Bảng 2.3 Một số cú pháp thường dùng của Regular Expression
Pattern Miêu tả
^ kết nối vần phần đầu của dòng
$ kết nối vần phần cuối của dòng
. kết nối bất kỳ ký tự nào ngoại trừ newline
[...] kết nối với một ký tự trong [] (dấu … thay thế cho những ký tự nào đó.
ví dụ [êc] sẽ trùng khớp một ký tự ê hoặc c)
[^...] Kết nối với bất kỳ ký tự đơn nào không ở trong []
re{n,m} Kết nối với ít nhất n và nhiều nhất m sự xuất hiện của biểu thức đặt
trước
(re) Nhóm các Regular Expression và ghi nhớ text đã kết nối
25
re* Kết nối với 0 hoặc nhiều sự xuất hiện của biểu thức đặt trước
re+ Kết nối với 1 hoặc nhiều sự xuất hiện của biểu thức đặt trước
re? Kết nối với 0 hoặc 1 sự xuất hiện của biểu thức đặt trước
w Kết nối các ký tự từ
s Kết nối với whitespace. Tương đương với [tnrf]
d Kết nối với các chữ số. Tương đương với [0-9]
Các hàm thường dùng gồm có hàm so khớp re.match(), hàm tìm kiếm
re.search(), hàm tìm và thay thế re.sub(), hàm tìm và tách ra re.split()… Được mô tả
như sau:
Bảng 2.4 Một số chức năng của Regular Expression
Module Miêu tả
re.match(pattern, text) chỉ so khớp pattern với text ở vị trí ký tự thứ nhất của
text nếu thành công trả về đối tượng match và None nếu
thất bại
re.search(pattern, text) cố so khớp pattern với text bắt đầu từ đầu đến cuối
re.sub(pattern, repl, string) thay thế tất cả sự xuất hiện pattern trong string với repl
re.split(pattern, string) tách ra string thành một mảng với tất cả sự xuất hiện
pattern trong string
Ví dụ cho một chuỗi khuôn mẫu (pattern) là “ສະ.(າ|ະ)” và cụm từ (string) là
“ສະບາຍດີ” vào hàm re.match(pattern, string) hàm này sẽ so khớp pattern với string bắt đầu
từ ký tự thứ nhất của string và đưa ra kết quả thành công là ສະບາ.
2.3.2.2. Mô hình hóa câu tiếng Lào
Theo những đặc trưng của câu tiếng Lào đã trình bày trên cho phép tác giả mô
hình hóa được cấu trúc câu tiếng Lào.
Sau đây là một ví dụ câu trong tiếng Lào gồm 3 cụm từ (clause), từng cụm từ
được tách ra bằng khoảng trống và dấu phẩy, và câu kết thúc với dấu chấm và ký tự
newline (n) hay khoảng trống.
26
Hình 2.3 Một số cấu trúc câu tiếng Lào
Trong đó:
- Clause1-3 là cụm từ;
- Space là khoảng chống;
- n | space là xuống dòng hoặc khoảng chống.
Trong văn bản tiếng Lào (text) các câu được tách ra với một chuỗi khuôn mẫu
biểu thức chính quy (pattern) và lưu trữ kết quả trong một vector.
Chuỗi khuôn mẫu sử dụng để tách ra câu trong văn bản có như sau:
pattern=‘(?<!s[ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝໜ].)(?<!^[ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝ
ໜ].)(?<!s[ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝໜ][ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝໜ].)(?<!s[A-
Z].)(?<!s[a-z].)(?<!s[A-Z][a-z].)(?<!s[A-z][a-z][a-z].)(?<!w.w.)(?<=[.!?;])s+’
Trong đó:
- (?<=[.!?;])s+ : có nghĩa là nếu thấy một trong những ký tự trong dấu ngoặc đi
theo với s+ (là những ký tự đặc biệt như n r t và khoản trống) thì tách ra câu ở
chỗ đó;
- (?<!...) : nếu gặp những pattern ở trong dấu ngoặc này sẽ không tách;
- [ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝໜ]: so khớp một ký tự phụ âm
2.3.2.3. Mô hình hóa từ đơn tiếng Lào
Phân tích các đặc trưng trong hệ viết chữ Lào, sử dụng bảng chữ cái, các phụ âm
đơn và ghép, các nguyên âm đơn và ghép và các dấu thanh, đã cho phép tác giả xây
dựng một mô hình cấu trúc từ đơn của tiếng Lào như sau:
Bảng 2.5 Vector từ đơn tiếng Lào
Vector V từ đơn tiếng Lào
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
Có thể viết là: V = [v1, v2, v3, v4, v5, v6, v7, v8, v9, v10]
Trong mô hình cấu trúc từ đơn này, các ký tự được đánh số theo cách viết truyền
thống hay thứ tự gõ vào từ bản phím của chữ viết tiếng Lào, thứ tự được viết theo hướng
từ trái qua phải.
27
Vai trò chức năng của các thành phần của Vector từ V được trình bày trong bảng
2.7 như sau:
Bảng 2.6 Các thành phần của Vector từ
Thành phần Vai trò chức năng Chữ cái Lào tương ứng
v1 Nguyên âm đứng trước ເ ແ ໄ ໃ ໂ
v2
Phụ âm
(gồm phụ âm đơn, phụ âm ghép)
ຫ
v3 ກ ຂ ຄ ງ ຈ ສ ຊ ຍ ດ ຕ ຖ ທ ນ ບ ປ
ຜ ຝ ພ ຟ ມ ຢ ຣ ລ ສ ຫ ອ ຮ ໜ ໝ
ຼ
v4 ຣ
v5 Nguyên âm ົ ັ ຶ ື ໍ ຸ ູ
v6 Dấu thanh ່ ້ ໊ ໋
v7 Nguyên âm đạt ở phía sau phụ âm ະ າ ຽ ອ ຍ
v8 Phụ âm cuối vần ກ ງ ຍ ດ ນ ມ ບ ວ
v9 phụ âm viết theo phát âm của tiếng
nước ngoài thường đi cùng với ີ (v10)
ກ ນ ທ ຣ ຈ ສ ຊ ພ ຟ ລ
v10 Dấu đặc biệt thường đặt ở cuối cùng ໆ ຯ ໌
Từ đơn tiếng Lào được xem là một vector từ với những ký tự chữ cái Lào đúng
vị trí. Ví dụ:
28
Bảng 2.7 Ví dụ cách tạo từ đơn tiếng Lào
Vector V Từ đơn
tiếng Lào
Nghĩa Tiếng Việt
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
ເ ຫ ງ ື ່ ອ ນ ໆ ເຫງື່ອນໆ dỡ
ຫ ລ າ ນ ຫລານ cháu
ເ ຫ ຼ ົ ້ າ ເຫຼົ້າ rượu
ເ ຫ ມ ັ ້ ນ ເຫມັ້ນ con nhím
ຝ ຣ ັ ່ ງ ຝຣັ່ງ nước Pháp
ຫ ຼ ຸ ດ ຫຼຸດ giảm
ໃ ຫ ຍ ່ ໃຫຍ່ to
ຮ າ ວ ສ ໌ ຮາວສ໌ house (nghôi nhà)
Dựa trên bảng 2.3 và bảng 2.10, cho phép xây dựng tập chuỗi khuôn mẫu biểu
thức chính quy của từ đơn (tập nguyên tác xây dựng một từ theo hệ viết từ tiếng Lào)
gồm tất cả 215 khuôn mẫu của từ đơn.
Ví dụ khuôn mẫu biểu thức chính quy của một từ đơn của nguyên âm xາ:
Chuỗi khuôn mẫu từ đơn này có thể so khớp được tất cả từ đơn chứa các ký tự
phụ âm đơn và ghép, nguyên âm xາ, dấu thanh và phụ âm đặt ở cuối (phụ âm viết theo
phát âm tiếng nước ngoài) lần lượt.
Với một chuỗi khuôn mẫu này so khớp được 3510 dạng viết từ đơn, ví dụ như:
ກາ, ກ້າ, ກວາ, ກວ້າ, ຕຣາ, ຕາຣ໌, ….
2.3.2.4. Phương pháp tách từ tiếng Lào
Trong phương pháp tách từ có đầu vào là một cụm từ và đầu ra là một mảng từ tiếng
Lào, được chia thành hai bước chính:
- Tách từ đơn dựa trên phương pháp so khớp tối đa với tập khuôn mẫu biểu thức
chính quy của từ đơn.
Tải bản FULL (file word 67 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
29
- Ghép lại từ đơn thành từ phức dựa trên từ điển từ phức.
Phương pháp tách từ đơn gồm các hàm sau:
Hàm chính:
- words_split(c)
Hàm con:
- find_first_word(c);
- is_next_is_word(word, c);
- select_best_word(first_word_list).
Trong đó:
- c là cụm từ tiếng Lào;
- word là từ đơn tiếng Lào;
- first_word_list là mảng từ đơn tìm được nhiều nhất có thể từ hàm find_first_word.
Hình 2.4 Sơ đồ khối hàm word_split
Tải bản FULL (file word 67 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
30
Hàm word_split là một chức năng tách ra các từ đơn trong cụm từ tiếng Lào và
trả lại array từ đơn, gồm các bước như sau:
Bước 1: Cho đầu vào là một cụm từ hay là chuỗi không có khoảng trống
Bước 2: Khai bảo biến array words trống để giữ các từ đơn mà tách được, khai
bảo string word trống.
Bước 3: Kiểm tra đầu vào c là tiếng Lào hay không (tất cả các ký tự trong c có
số Unicode trong khoảng cách từ U+0E80 đến U+0EFF hay không), nếu
có thì qua Bước 4, ngược lại đầu ra là c dưới dạng từ thường
Bước 4: Kiểm tra chiều dài của chuỗi c nếu lớn hơn 0 thì qua Bước 5, ngược lại
qua Bước 9.
Bước 5: Khai bảo biến array first_word_list để giữ những từ đơn mà so khớp
được từ hàm find_first_word
Bước 6: Lựa chọn từ đơn tốt nhất có thể trong biến first_word_list bằng hàm
select_best_word và đặt vào biến word.
Bước 7: Xử lý từ đơn đã đạt được nếu thấy phụ âm ghép ຫລ, ຫນ, ຫມ thì thay thế
băng ຫຼ, ໜ, ໝ lần lượt và đặt lại vào biến word.
Bước 8: thêm giá trị word vào array words, súa bỏ từ đầu (trái qua phải) của
chuỗi c bằng từ word, quay lại Bước 4
Bước 9: Trả lại Vector từ đơn và kết thúc
9897bf32

More Related Content

More from nataliej4

Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279
nataliej4
 
Từ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc giaTừ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc gia
nataliej4
 
Công tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vươngCông tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vương
nataliej4
 
Bài giảng nghề giám đốc
Bài giảng nghề giám đốcBài giảng nghề giám đốc
Bài giảng nghề giám đốc
nataliej4
 
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán   tin họcđề Cương chương trình đào tạo trình độ trung cấp kế toán   tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
nataliej4
 
Giáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao độngGiáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao động
nataliej4
 
Lựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắnLựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắn
nataliej4
 
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
nataliej4
 
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
Sổ tay hướng dẫn khách thuê   tòa nhà ree towerSổ tay hướng dẫn khách thuê   tòa nhà ree tower
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
nataliej4
 
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
nataliej4
 
Bài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tậtBài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tật
nataliej4
 
đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864
nataliej4
 
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
nataliej4
 
Bài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùngBài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùng
nataliej4
 
Bài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanhBài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanh
nataliej4
 
Giới thiệu học máy – mô hình naïve bayes learning intro
Giới thiệu học máy – mô hình naïve bayes   learning introGiới thiệu học máy – mô hình naïve bayes   learning intro
Giới thiệu học máy – mô hình naïve bayes learning intro
nataliej4
 
Lý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắcLý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắc
nataliej4
 
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
nataliej4
 
Bài giảng bình đơn thuốc bệnh viện nhiệt đới
Bài giảng bình đơn thuốc bệnh viện nhiệt đớiBài giảng bình đơn thuốc bệnh viện nhiệt đới
Bài giảng bình đơn thuốc bệnh viện nhiệt đới
nataliej4
 
Bài giảng cảnh giác dược (pharmacovigilance)
Bài giảng cảnh giác dược (pharmacovigilance)Bài giảng cảnh giác dược (pharmacovigilance)
Bài giảng cảnh giác dược (pharmacovigilance)
nataliej4
 

More from nataliej4 (20)

Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279
 
Từ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc giaTừ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc gia
 
Công tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vươngCông tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vương
 
Bài giảng nghề giám đốc
Bài giảng nghề giám đốcBài giảng nghề giám đốc
Bài giảng nghề giám đốc
 
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán   tin họcđề Cương chương trình đào tạo trình độ trung cấp kế toán   tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
 
Giáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao độngGiáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao động
 
Lựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắnLựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắn
 
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
 
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
Sổ tay hướng dẫn khách thuê   tòa nhà ree towerSổ tay hướng dẫn khách thuê   tòa nhà ree tower
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
 
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
 
Bài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tậtBài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tật
 
đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864
 
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
 
Bài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùngBài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùng
 
Bài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanhBài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanh
 
Giới thiệu học máy – mô hình naïve bayes learning intro
Giới thiệu học máy – mô hình naïve bayes   learning introGiới thiệu học máy – mô hình naïve bayes   learning intro
Giới thiệu học máy – mô hình naïve bayes learning intro
 
Lý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắcLý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắc
 
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
 
Bài giảng bình đơn thuốc bệnh viện nhiệt đới
Bài giảng bình đơn thuốc bệnh viện nhiệt đớiBài giảng bình đơn thuốc bệnh viện nhiệt đới
Bài giảng bình đơn thuốc bệnh viện nhiệt đới
 
Bài giảng cảnh giác dược (pharmacovigilance)
Bài giảng cảnh giác dược (pharmacovigilance)Bài giảng cảnh giác dược (pharmacovigilance)
Bài giảng cảnh giác dược (pharmacovigilance)
 

Recently uploaded

The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
RitikBhardwaj56
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
RAHUL
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
How to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 InventoryHow to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 Inventory
Celine George
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
TechSoup
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
heathfieldcps1
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
paigestewart1632
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
IreneSebastianRueco1
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 

Recently uploaded (20)

The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
How to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 InventoryHow to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 Inventory
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 

XÂY DỰNG HỆ THỐNG TỰ ĐỘNG PHÂN LOẠI VĂN BẢN TIẾNG LÀO 9897bf32

  • 1. ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ------------------------------------ PHOMMASENG PHANAKHONE XÂY DỰNG HỆ THỐNG TỰ ĐỘNG PHÂN LOẠI VĂN BẢN TIẾNG LÀO LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng, Năm 2018
  • 2. ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ------------------------------------ PHOMMASENG PHANAKHONE XÂY DỰNG HỆ THỐNG TỰ ĐỘNG PHÂN LOẠI VĂN BẢN TIẾNG LÀO Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01 LUẬN VĂN THẠC SĨ Người hướng dẫn khoa học: TS. ĐẶNG HOÀI PHƯƠNG Đà Nẵng, Năm 2018
  • 3. i LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu khoa học của cá nhân tôi dưới sự hướng dẫn trực tiếp của TS. Đặng Hoài Phương, Trường Đại học Bách Khoa-Đại học Đà Nẵng. Các dữ liệu, ví dụ và trích dẫn tham khảo trong luận án đảm bảo độ tin cậy, chuẩn xác và trung thực. Những kết quả đóng góp về mặt lý thuyết và ứng dụng của luận án chưa từng được ai công bố trong bất kỳ công trình nào khác cho đến nay. Tác giả luận án, Phommaseng Phanakhone
  • 4. ii MỤC LỤC MỞ ĐẦU .........................................................................................................................1 CHƯƠNG 1 TỔNG QUAN PHÂN LOẠI VĂN BẢN ..................................................5 1.1. Phân loại văn bản..................................................................................................5 1.2. Khái niệm văn bản................................................................................................5 1.3. Các phương pháp phân loại văn bản ....................................................................7 1.3.1. K-Nearest Neighbor (KNN) ..........................................................................7 1.3.2. Support Vector Machine (SVM) ...................................................................9 1.3.3. Naïve Bayes (NB)........................................................................................11 1.4. Kết luận...............................................................................................................12 CHƯƠNG 2 MÔ HÌNH PHÂN LOẠI VĂN BẢN TIẾNG LÀO ...............................13 2.1. Mô hình phân loại văn bản tiếng Lào.................................................................13 2.2. Biểu diễn văn bản tiếng Lào...............................................................................14 2.3. Tách từ tiếng Lào................................................................................................15 2.3.1. Đặc trưng tiếng Lào.....................................................................................16 2.3.2. Phương pháp tách từ tiếng Lào sử dụng Regular Expression .....................22 2.4. Trích chọn đặc trưng...........................................................................................34 2.5. Phân loại văn bản tiếng Lào sử dụng Naive Bayes ............................................34 2.6. Kết Luận .............................................................................................................40 CHƯƠNG 3 XÂY DỰNG HỆ THỐNG TỰ ĐỘNG PHÂN LOẠI VĂN BẢN TIẾNG LÀO...............................................................................................................................41 3.1. Mô hình hệ thống................................................................................................41 3.2. Cơ sở dữ liệu.......................................................................................................42 3.3. Triển khai và đánh giá kết quả ...........................................................................43 3.3.1. Các độ đo đánh giá kết quả phân loại văn bản ............................................44 3.3.2. Thử nghiệm phương pháp tách từ trong câu tiếng Lào...............................45 3.3.3. Thực nghiệm Hệ thống phân loại văn bản tiếng Lào ..................................46 3.4. Kết luận...............................................................................................................50 KẾT LUẬN ...................................................................................................................51 TÀI LIỆU THAM KHẢO.............................................................................................52 PHỤ LỤC QUYẾT ĐỊNH GIAO ĐỀ TÀI (BẢN SAO)
  • 5. iii DANH MỤC CHỮ VIẾT TẮT 1. Tiếng Anh STT Chữ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt 1 CRF Conditional Random Field Xác suất có điều kiện 2 DFD Data Flow Diagram Sơ đồ luồng dữ liệu 3 IDF Inverse document frequency Nghịch đảo tần số văn bản 4 KNN K Nearest Neighbor K láng giềng gần nhất 5 MAP Maximum A Posterior class Phương pháp MAP 6 NB Naive Bayes Phương pháp Naive Bayes 7 RBF Radial Basis Functions network Mạng hàm bán kính xuyên tâm cơ sở 8 SVM Support Vector Machine Máy vec tơ hỗ trợ 9 TF Term frequency Tần số xuất hiện của 1 từ trong văn bản
  • 6. iv DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Trang 1.1 Bảng so sánh các phương pháp phân loại văn bản 12 2.1 Ví dụ biểu diễn văn bản trên mô hình không gian vector 15 2.2 Nguyên âm ghép lại với phụ âm cuối vần 18 2.3 Một số cú pháp thường dùng của Regular Expression 24 2.4 Một số chức năng của Regular Expression 25 2.5 Vector từ đơn tiếng Lào 26 2.6 Các thành phần của Vector từ 27 2.7 Ví dụ cách tạo từ đơn tiếng Lào 28 2.8 Dữ liệu huấn luyện và kiểm thử 39 3.1 CSDL bảng documents 41 3.2 CSDL bảng TrainData 42 3.3 CSDL bảng vocabulary 42 3.4 Kết quả phương pháp tách từ đơn 46 3.5 Kết quả phương pháp tách từ 46 3.6 Kết quả Phân loại văn bản Naive Bayes với phương pháp tách từ không loại bỏ từ dừng 47 3.7 So sánh thời gian phân loại văn bản tiếng Lào kết hợp phương pháp tách từ loại bỏ từ dừng và không loại bỏ từ dừng 48 3.8 Bảng so sánh mô hình phân loại văn bản tiếng Lào đề xuất với các mô hình khác 49
  • 7. v DANH MỤC CÁC HÌNH Số hiệu bảng Tên hình Trang 1.1 Bảng mã Unicode tiếng Lào (U+0E80 - U+0EFF) 7 1.2 Thuật toán k láng giềng gần nhất 8 1.3 Siêu mặt phẳng h phân chia dữ liệu huấn huyện thành 2 lớp + và - với khoảng cách biên lớn nhất. Các điểm gần h nhất (được khoanh tròn) là các vector hỗ trợ - Support Vector 9 2.1 Mô hình tổng quan phân loại văn bản tiếng Lào 13 2.2 Mô hình tách từ tiếng Lào 22 2.3 Một số cấu trúc câu tiếng Lào 26 2.4 Sơ đồ khối hàm word_split 29 2.5 Sơ đồ khối hàm find_first_word 31 2.6 Sơ đồ khối hàm select_best_word 32 2.7 Sơ đồ khối hàm is_next_word 33 2.8 Likelihoods của từng chủ đề với Naïve Bayes. 35 2.9 Thuật toán Naïve Bayes Multinominal: huấn luyện và kiểm thử 37 2.10 Thuật toán hàm TRAINMULTINOMINALNB 38 2.11 Thuật toán hàm APPLYMULTINOMINALNB 43 3.1 Sơ đồ phân rã chức năng 43 3.2 Biểu đồ lớp 43 3.3 Cơ sở dữ liệu 43 3.4 Kết quả phân loại văn bản tiếng Lào kết hợp tách từ 49
  • 8. 1 MỞ ĐẦU Internet hiện nay ngày càng phát triển với số lượng người dùng không ngừng tăng lên, do đó Internet đóng vai trò quan trọng trong cuộc sống và xã hội đối với giao tiếp và chia sẻ thông tin. Trước đây, người Lào sử dụng tiếng nước ngoài để nhận biết và trao đổi thông tin lẫn nhau ví dụ: tiếng Anh, tiếng Việt, tiếng Thái Lan, … Ngoài ra, người Lào sử dụng chữ tiếng Anh ghép vào nhau để trở thành từ mà phát âm giống tiếng Lào thay vì viết bằng tiếng Lào vì hầu hết thiết bị truy cập được Internet chưa hỗ trợ tiếng Lào. Với sự phát triển của công nghệ thông tin, người dân Lào có điều kiện truy cập Internet với chi phí và tốc độ hợp lý; các thiết bị như smart phone, máy vi tính có bàn phím tiếng Lào và hiển thị được ngôn ngữ tiếng Lào, do đó tiếng Lào trở thành ngôn ngữ chính thức mà người Lào sử dụng để chia sẻ thông tin trên Internet. Vấn đề đặt ra ở đây là làm cách nào tìm kiếm thông tin một cách chính xác và có hiệu quả nhất với văn bản tiếng Lào, và một trong những giải pháp là áp dụng các phương pháp phân loại văn bản tiếng Lào. Trong thực tế, việc phân loại văn bản bằng phương pháp thủ công là rất khó khăn vì lượng dữ liệu thông tin rất lớn. Vì vậy, việc phân nhóm văn bản, sẽ tốn nhiều thời gian và công sức nhưng hiệu quả phân loại không cao. Đối với công trình nghiên cứu phân loại văn bản tiếng Lào còn hạn chế, chủ yếu dựa trên máy vector hỗ trợ và mạng hàm bán kính xuyên tâm cơ sở. Cũng với phương pháp tách từ, trong những năm gần đây có một số công trình nghiên cứu về phân loại văn bản tiếng Lào, tuy nhiên đa số vẫn tồn tại vấn đề về việc xử lý nhập nhằng trong tiếng Lào. Vì tiếng Lào có nhiều cách viết, cách nói và sử dụng từ không thống nhất, do đó việc tách từ tiếng Lào sẽ rất khó khăn. Để khắc phục những hạn chế nêu trên, tác giả đề xuất đề tài luận văn cao học: “Xây dựng hệ thống tự động phân loại văn bản tiếng Lào” bằng cách biểu diễn văn bản thành vector các từ khóa, áp dụng Regular Expression kết hợp với khuôn mẫu từ đơn để tách từ đơn, ghép lại những từ đơn thành từ phức dựa trên tập từ phức, đồng thời sử dụng phương pháp Naïve Bayes để phân loại văn bản tiếng Lào.
  • 9. 2 1. Mục đích, đối tượng và phạm vi nghiên cứu Mục đích của đề tài: Nghiên cứu, phân tích cấu trúc từ và câu trong văn bản tiếng Lào; đề xuất phương pháp tách từ tiếng Lào dựa trên Regular Expression với khuôn mẫu biểu thức chính quy. Sử dụng phương pháp Naive Bayes để xây dựng mô hình phân loại văn bản tiếng Lào, hiệu thức hoá hệ thống tự động phân loại văn bản tiếng Lào trên cơ sở mô hình đề xuất. Ý nghĩa khoa học: Đề xuất phương pháp tách từ đối với văn bản tiếng Lào sử dụng Regular Expression và cải tiến với khuôn mẫu biểu thức chính quy của từ đơn Lào. Xây dựng mô hình phân loại văn bản tiếng Lào dựa trên cơ sở phương pháp tách từ đề xuất và Naive Bayes; Ý nghĩa thực tiễn: Hiệu thức hoá hệ thống tự động phân loại văn bản tiếng Lào trên cơ sở mô hình đề xuất. Đối tượng nghiên cứu: Trong khuôn khổ của luận văn thuộc loại xây dựng hệ thống, tác giả chỉ giới hạn nghiên cứu các vấn đề sau: - Các cấu trúc từ và câu trong văn bản tiếng Lào; - Phương pháp tách từ tiếng Lào dựa trên biểu thức chính quy (Regular Expression) kết hợp với khuôn mẫu từ đơn và ghép lại những từ đơn thành từ phức dựa trên tập từ phức; - Phương pháp phân loại văn bản Naive Bayes. 2. Mục tiêu và nhiệm vụ Mục tiêu: Mục tiêu chính của đề tài là nghiên cứu về cấu trúc từ tiếng Lào, đề xuất phương pháp tách từ sử dụng biểu thức chính quy (Regular Expression) và xây dựng hệ thống tự động phân loại văn bản tiếng Lào dựa trên phương pháp Naive Bayes. Để thỏa mãn mục tiêu này thì cần đạt được những mục tiêu cụ thể sau: - Nghiên cứu cấu trúc và phương pháp tách từ trong văn bản tiếng Lào; - Nghiên cứu sử dụng Naive Bayes phân loại văn bản tiếng Lào; - Xây dựng được hệ thống phân loại văn bản tiếng Lào và áp dụng vào thực tế.
  • 10. 3 Nhiệm vụ: Để đạt được những mục tiêu trên thì nhiệm vụ đạt ra của đề tài là: - Phân tích cấu trúc từ và câu trong văn bản tiếng Lào; - Phân tích phương pháp tách từ tiếng Lào; - Phân tích các mô hình và phương pháp phân loại văn bản, đưa ra bài toán cần giải quyết; - Phân tích và đề xuất mô hình giải quyết bài toán; - Hiện thực hóa hệ thống nêu trên, đánh giá kết quả đạt được trong thực tế. 3. Phương pháp nghiên cứu Phương pháp lý thuyết: Tiến hành thu thập và phân tích các tài liệu có liên quan đến đề tài, nghiên cứu phương pháp tách từ và phương pháp phân loại văn bản; Phương pháp thực nghiệm: - Xây dựng cơ sở dữ liệu văn bản tiếng Lào; - Xây dựng hệ thống tự động phân loại văn bản tiếng Lào; - Cài đặt hệ thống và triển khai thực tế, nhận xét và đánh giá kết quả đạt được. Phương tiện, công cụ triển khai: - Ngôn ngữ lập trình Python 3; - Môi trường phát triển tích hợp (IDE) PyCharm CE 2017.3.3; - Hệ quản trị cơ sở dữ liệu MongoDB 4. Đóng góp chính của luận án 1. Xây dựng kho ngữ vựng từ phức tiếng Lào phục vụ cho phương pháp tách từ tiếng Lào. 2. Đề xuất giải pháp tách từ sử dụng biểu thức chính quy (Regular expression) kết hợp với khuôn mẫu các từ đơn và ghép lại từng từ đơn thành từ phức có âm tiết dài nhất trong từ điển từ phức. 3. Ứng dụng Naive Bayes xây dựng mô hình phân loại văn bản tiếng Lào. 4. Triển khai hệ thống trong thực tế và đánh giá hiệu quả của mô hình.
  • 11. 4 5. Cấu trúc của luận án Sau phần mở đầu, nội dung của luận án gồm ba chương như sau: Chương 1, Giới thiệu tổng quan phân loại văn bản, các khái niệm, bài toán phân loại văn bản tiếng Lào. Chương 2, Trình bày mô hình phân loại văn bản tiếng Lào gồm mô hình tổng quan, mô hình tách từ và mô hình phân loại văn bản tiếng Lào. Chương 3, Xây dựng Hệ thống tự động phân loại văn bản tiếng Lào. Sau 3 chương trên là phần kết luận và hướng phát triển của đề tài. Phần cuối luận án là danh mục các tài liệu tham khảo và các phụ lục liên quan.
  • 12. 5 CHƯƠNG 1 TỔNG QUAN PHÂN LOẠI VĂN BẢN 1.1. Phân loại văn bản Phân loại văn bản (Document Classification/Categorization) đóng một vai trò quan trọng trong bối cảnh phát triển nhanh chóng của công nghệ thông tin với sự bùng nổ số lượng dữ liệu ngày càng lớn lên. Phân loại văn bản giúp người dùng xử lý văn bản đúng mục đích và đáp ứng yêu cầu của mình. Về nội dung, hình thức xuất hiện của mỗi văn bản thường khác nhau nên việc lựa chọn phương pháp phân loại văn bản cho thích hợp là một vấn đề khó khăn. Theo sự phát triển công nghệ thông tin, dữ liệu văn bản tiếng Lào ngày càng nhiều. Theo cách truyền thống, phân loại văn bản đúng nhóm có thể thực hiện một cách thủ công, là đọc nội dung văn bản và gán nó vào nhóm phù hợp, trong trường hợp số lượng văn bản lớn, sẽ mất rất nhiều thời gian công sức và chi phí. Do đó, cần phải xây dựng các công cụ phân loại văn bản một cách tự động. Đối với tiếng Lào thì các công trình nghiên cứu về phân loại văn bản còn hạn chế, chủ yếu sử dụng mạng nơ ron RBF, máy vector hỗ trợ (SVM) [1]. 1.2. Khái niệm văn bản Có nhiều quan niệm khác nhau về văn bản (hay văn kiện, tài liệu, tư liệu, thuật ngữ tiếng Anh gọi là Document), tùy theo hướng tiếp cận. Tuy nhiên có thể hiểu một cách đơn giản, văn bản là một phương tiện dùng để ghi nhận, lưu giữ và truyền đạt các thông tin, từ chủ thể này sang chủ thể khác bằng các ký hiệu hay ngôn ngữ nhất định nào đó. Văn bản là dạng sản phẩm của hoạt động giao tiếp bằng ngôn ngữ, được hình thành một cách thủ công hay sử dụng công cụ, được thể hiện ở dạng chữ viết, trên một chất liệu nào đó (giấy tờ, bia đá...), gồm tập hợp các câu có tính trọn vẹn về nội dung, hoàn chỉnh về hình thức, có tính liên kết chặt chẽ và hướng tới một mục tiêu giao tiếp nhất định [1]. Mỗi văn bản nhìn chung gồm hai thành phần chính là phần nội dung và phần hình thức trình bày. Phần nội dung tập hợp bởi các câu có tính trọn vẹn về ngữ nghĩa và phần hình thực thể hiện tính liên kết chặt chẽ với nội dung và hướng tới một mục tiêu giao tiếp nhất định. Về nội dung, người ta hay phân loại văn bản theo nhiều tiêu chí khác nhau tùy theo mục đích sử dụng. Ngoài ra người ta thường phân loại văn bản theo hình
  • 13. 6 thức biểu đạt như miêu tả, biểu cảm, hay theo phong cách chức năng ngôn ngữ như: giao tiếp, báo chí, khoa học. Hình thức trình bày của văn bản có thể phân biệt theo nhiều cách tiếp cận: như văn bản thuần túy (Pure Text) chỉ chứa chữ hay ký tự, hoặc văn bản không thuần túy ngoài chữ thì chứa các thành phần đồ họa, hình ảnh, hoạt hình, bảng biểu hình vẽ, chiếu phim, ca nhạc như trên các trang web… Văn bản có thể gồm một ngôn ngữ (Monolingual) hay đa ngôn ngữ (Multilingual), văn bản thuần nhất (Plain text) chỉ sử dụng một bộ mã như Unicode. Văn bản là một tập hợp các ký tự và được tổ chức thành từ, dòng, đoạn và trang, được mã hóa, lưu trữ trên các thiết bị nhớ khác nhau dưới dạng một tệp văn bản. Thông thường, trong ngôn ngữ như tiếng Anh, người ta trình bày mỗi từ là một chuỗi ký tự có khoảng trống phân cách giữa các từ, nhưng trong tiếng Lào không dùng khoảng trống để phân cách mỗi từ mà là viết các từ vựng ghép sát nhau thành một nhóm từ cho đến đũ nghĩa của nhóm từ đó. Ví dụ như sau: - Tiếng Anh: I play table tennis every Friday. - Tiếng Việt: Tôi chơi bóng bàn mỗi thứ sáu. - Tiếng Lào: ຂ້ອຍຫຼິ້ນປິ່ງປ່ອງທຸກໆວັນສຸກ. Văn bản được chia ra thành hai loại là phi cấu trúc (Unstructure Document) thường được lưu dưới dạng tệp (*.txt) và văn bản có cấu trúc (Structure Document) là loại văn bản được phân cấp các thành phần khác nhau như phần đầu, phần cuối, chương, mục, giới thiệu, tham khảo, minh họa… Mỗi thành phần có cách trình bày vật lý khác nhau với những ký tự điểu khiển mà không nhìn thấy được phía người dùng, các văn bản có cấu trúc thường được lưu trữ trên tệp (*.html, *.php, *.xml, *.docx, ...). Trong luận văn, tác giả sẽ tập trung sử dụng ba loại file văn bản phổ biến là html, docx và txt. Dữ liệu huấn luyện và thử nghiệm sẽ được rút ra trên các web site tiếng Lào và xử lý lưu trữ dưới dạng tệp văn bản thuần nhất (Plain text, .txt) sử dụng mã hóa Unicode.
  • 14. 7 Hình 1.1 Bảng mã Unicode tiếng Lào (U+0E80 - U+0EFF) 1.3. Các phương pháp phân loại văn bản Hiện nay, có nhiều phương pháp phân loại văn bản đã được nghiên cứu đặc biệt là với văn bản tiếng Anh như: Naive Bayes [8] [14] [15], Support Vector Machines [23], K-Nearest Neighbor [17], ... Nghiên cứu phân loại văn bản tiếng Lào chủ yếu sử dụng phương pháp so khớp tối đa kết hợp với kho từ đơn được xây dựng từ máy suy diễn, sau đó xử lý nhập nhằng của từ dựa trên tiêu chuẩn xác suất thống kê và áp dụng thuật toán máy vector hỗ trợ (Support Vector Machine) dựa trên cơ sở RBF để phân loại văn bản [1]. 1.3.1. K-Nearest Neighbor (KNN) K-Nearest Neighbor (KNN hay K-láng giềng gần nhất) là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận thống kê đã được nghiên cứu trong nhiều năm qua [17]. K-Nearest Neighbor được đánh giá là một trong những phương pháp tốt nhất được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản. Ý tưởng của phương pháp này là khi cần phân loại một văn bản mới, thuật toán sẽ tính khoảng cách (có thể áp dụng các công thức về khoảng cách như Euclide, Cosine, Manhattan, …) của tất cả các văn bản trong tập huấn luyện đến văn bản này để tìm ra k văn bản có khoảng cách gần nhất, gọi là K-Nearest Neighbor (K-láng giềng gần nhất), sau đó dùng các khoảng cách vừa tính được này đánh trọng số cho tất cả các chủ đề đã có. Khi đó, trọng số của một chủ đề sẽ được tính bằng tổng các khoảng cánh từ văn bản cần phân loại đến các văn bản trong k láng giềng mà có cùng chủ đề đó. Những chủ đề không xuất hiện trong tập k văn bản sẽ có trọng số bằng 0. Các chủ đề được sắp xếp theo độ giảm dần của các trọng số và chủ đề nào có trọng số cao sẽ là chủ đề cho văn bản cần phân loại.
  • 15. 8 Hình 1.2 Thuật toán k láng giềng gần nhất Trọng số của chủ đề cj đối với văn bản x được tính như sau: 𝑊(𝑥 ⃗, 𝑐𝑗) = ∑ 𝑠𝑖𝑚(𝑥 ⃗, 𝑑𝑖 ⃗⃗⃗⃗). 𝑦(𝑑𝑖 ⃗⃗⃗⃗, 𝑐𝑗) − 𝑏𝑗 𝑑𝑖 ⃗⃗⃗⃗⃗∈𝐾𝑁𝑁 Trong đó: - 𝑦(𝑑𝑖 ⃗⃗⃗⃗, 𝑐𝑗) ∈ {0,1} với: y=0 văn bản di không thuộc về chủ đề cj, với y=1 văn bản di thuộc về chủ đề 𝑐𝑗; - 𝑠𝑖𝑚(𝑥 ⃗, 𝑑𝑖 ⃗⃗⃗⃗): độ giống nhau giữa văn bản cần phân loại x và văn bản 𝑑𝑖 ⃗⃗⃗⃗. sử dụng độ đo cosine để tính 𝑠𝑖𝑚(𝑥 ⃗, 𝑑𝑖 ⃗⃗⃗⃗): 𝑠𝑖𝑚(𝑥 ⃗, 𝑑𝑖 ⃗⃗⃗⃗) = 𝑐𝑜𝑠(𝑥 ⃗, 𝑑𝑖 ⃗⃗⃗⃗) = 𝑥 ⃗. 𝑑𝑖 ⃗⃗⃗⃗ ‖𝑥 ⃗‖. ‖𝑑𝑖 ⃗⃗⃗⃗‖ - bj: là ngưỡng phân loại của chủ đề cj được tự động học sử dụng một tập văn bản hợp lệ được chọn ra từ tập huấn luyện. - Để chọn được tham số k tốt nhất cho thao tác phân loại, thuật toán cần được chạy thử nghiệm trên nhiều giá trị k khác nhau, giá trị k càng lớn thì thuật toán càng ổn định và sai sót càng thấp. Ưu điểm của KNN - Độ phức tạp tính toán của quá trình huấn luyện là bằng 0;
  • 16. 9 - Việc dự đoán kết quả của dữ liệu mới rất đơn giản; - Không cần giả sử gì về phân phối của các lớp. Nhược điểm của KNN - KNN rất nhạy cảm với nhiễu khi 𝑘 nhỏ; - KNN là một thuật toán mà mọi tính toán đều nằm ở khâu huấn luyện. Trong đó việc tính khoảng cách tới từng điểm dữ liệu trong dữ liệu huấn luyện sẽ tốn rất nhiều thời gian, đặc biệt là với các cơ sở dữ liệu có số chiều lớn và có nhiều điểm dữ liệu. Với 𝑘 càng lớn thì độ phức tạp cũng sẽ tăng lên. Ngoài ra, việc lưu toàn bộ dữ liệu trong bộ nhớ cũng ảnh hưởng tới hiệu năng của KNN. 1.3.2. Support Vector Machine (SVM) Máy sử dụng vector hỗ trợ (SVM) được Cortess và Vapnik giới thiệu năm 1995, là phương pháp tiếp cận phân loại hiệu quả để giải quyết vấn đề nhận dạng mẫu 2 lớp sử dụng nguyên lý Cực tiểu hóa Rủi ro có Cấu trúc (Structural Risk Minimization) [23]. Trong không gian vector cho trước một tập huấn luyện được biểu diễn trong đó mỗi tài liệu là một điểm, thuật toán SVM sẽ tìm ra một siêu mặt phẳng h quyết định tốt nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng lớp (+) và lớp (–). Chất lượng của siêu mặt phẳng phân cách này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt và việc phân loại càng chính xác. Mục đích thuật toán SVM là tìm được khoảng cách biên lớn nhất (Hình 1.3). Hình 1.3 Siêu mặt phẳng h phân chia dữ liệu huấn huyện thành 2 lớp + và - với khoảng cách biên lớn nhất. Các điểm gần h nhất (được khoanh tròn) là các vector hỗ trợ - Support Vector Phương trình siêu mặt phẳng chứa vector di trong không gian: 𝑑 ⃗𝑖 ⋅ 𝑤 ⃗⃗⃗ + 𝑏 = 0
  • 17. 10 Đặt ℎ(𝑑 ⃗𝑖) = 𝑠𝑖𝑔𝑛(𝑑 ⃗𝑖 ⋅ 𝑤 ⃗⃗⃗ + 𝑏) { +1, 𝑑 ⃗𝑖 ⋅ 𝑤 ⃗⃗⃗ + 𝑏 > 0 −1, 𝑑 ⃗𝑖 ⋅ 𝑤 ⃗⃗⃗ + 𝑏 < 0 Từ đó, ℎ(𝑑 ⃗𝑖) biểu diễn sự phân loại của 𝑑 ⃗𝑖 vào hai lớp nói trên. Có 𝑦𝑖 = {±1} thì với𝑦𝑖 = +1, văn bản 𝑑 ⃗𝑖𝜖 lớp “-”. Lúc này muốn có siêu mặt phẳng h, ta sẽ giải bài toán sau: Tìm min ‖𝑤 ⃗⃗⃗‖, trong đó 𝑤 ⃗⃗⃗ và b thỏa mãn điều kiện: ∀𝑖 ∈ 1, 𝑛 ̅̅̅̅̅: 𝑦𝑖 (𝑠𝑖𝑔𝑛(𝑑 ⃗𝑖 ⋅ 𝑤 ⃗⃗⃗ + 𝑏)) ≥ 1 Khi đó ta có thể sử dụng toán tử Lagrange biến đổi thành dạng thức để giải bài toán. Ở phương pháp SVM, mặt phẳng quyết định chỉ phụ thuộc vào các điểm gần nó nhất (vector hỗ trợ - support vector) mà có khoảng cách đến nó là: 1 ‖𝑤 ⃗⃗⃗‖ . Khi các điểm khác bị xóa đi thì vẫn không ảnh hưởng đến kết quả ban đầu. Ưu điểm: - Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệu quả trong không gian chiều cao, trong đó đặc biệt áp dụng cho các bài toán phân loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn; - Tiết kiệm bộ nhớ: do chỉ có một tập hợp con của các điểm được sử dụng trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết dịnh; - Tính linh hoạt: phân lớp thường là phi tuyến tính. Khả năng áp dụng Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ đó khiến cho hiệu suất phân loại lớn hơn. Nhược điểm: - Bài toán số chiều cao: trong trường hợp số lượng thuộc tính (p) của tập dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá tồi; - Chưa thể hiện rõ tính xác suất: việc phân lớp của SVM chỉ là việc cố gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM. Điều này chưa giải thích được xác suất xuất hiện của một thành viên trong một nhóm là như thế nào. Tuy nhiên hiệu quả của việc phân lớp có thể được xác định dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp mà chúng ta đã bàn luận ở trên.
  • 18. 11 1.3.3. Naïve Bayes (NB) Phương pháp Naive Bayes là sử dụng xác suất có điều kiện giữa từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân loại. Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau. Giả định đó làm cho việc tính toán Naive Bayes hiệu quả và nhanh chóng hơn các phương pháp khác vì không sử dụng việc kết hợp các từ để đưa ra phán đoán chủ đề [8][9][14][15]. Nếu tập dữ liệu huấn luyện nghèo nàn và các tham số dự đoán (như không gian đặc trưng) có chất lượng kém thì sẽ dẫn đến kết quả tồi. Tuy nhiên, nó được đánh giá là một thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề với một số ưu điểm: cài đặt đơn giản, tốc độ nhanh, dễ dàng cập nhật dữ liệu huấn luyện mới và có tính độc lập cao với tập huấn luyện, có thể sử dụng kết hợp nhiều tập huấn luyện khác nhau. Thông thường, người ta còn đặt thêm một ngưỡng tối ưu để cho kết quả phân loại khả quan. Mục đích chính là tính được xác suất P(𝐶𝑗| 𝑑′), xác suất để văn bản d′ nằm trong loại văn bản Cj. Theo Bayes, văn bản d’ sẽ được gán cho loại văn bản nào có xác suất hậu nghiệm cao nhất nên được biểu diễn bằng công thức: Loại văn bản của d’ = arg max 1≤𝑘≤𝑁 {𝑃(𝐶𝑗|𝑑′} = 𝑎𝑟𝑔 max 1≤𝑘≤𝑁 𝑃(𝐶𝑗)∗𝑃(𝑑′ |𝐶𝑗) 𝑃(𝑑′) trong đó N là tổng số tài liệu Công thức sau dùng để tính P(𝐶𝑗| 𝑑′): P(𝐶𝑗| 𝑑′) = 𝑃(𝐶𝑗) ∗ 𝑃(𝑑′|𝐶𝑗) 𝑃(𝑑′) Trong đó: - 𝑃(𝐶𝑗| 𝑑′) là xác suất mà văn bản d′ có khả năng thuộc vào lớp Cj - d′ là tài liệu cần phân loại - Cj là một tài liệu bất kì - 𝑃(𝑑′ |𝐶𝑗) được tính toán từ tần suất xuất hiện của các từ (𝑤𝑗) trong tài liệu d’: 𝑃(𝑑′|𝐶𝑗) = ∏ 𝑃(𝑤𝑗|𝐶𝑗) 𝑖<𝑗<𝑙 trong đó l là tổng số từ w trong tài liệu D - P(𝐶𝑗) là tỷ lệ phần trăm của số văn bản mỗi lớp tương ứng trong tập dữ liệu luyện:
  • 19. 12 𝑃(𝐶𝑗) = ‖𝐶𝑗‖ ‖𝐶‖ = ‖𝐶𝑗‖ ∑ ‖𝐶′‖ 𝐶′∈𝐶 P(wi|Cj) sử dụng phép ước lượng Laplace: 𝑃(𝑤𝑖|𝐶𝑗) = 1 + 𝑇𝐹(𝑤𝑖, 𝐶𝑗) |𝐹| + ∑ 𝑇𝐹(𝑤′, 𝐶𝑗) 𝑤∈|𝐹| Naive Bayes là một phương pháp rất hiệu quả trong một số trường hợp. Nếu tập dữ liệu huấn luyện nghèo nàn và các tham số dự đoán (như không gian đặc trưng) có chất lượng kém thì sẽ dẫn đến kết quả tồi. Tuy nhiên, nó được đánh giá là một thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề với một số ưu điểm: cài đặt đơn giản, tốc độ nhanh, dễ dàng cập nhật dữ liệu huấn luyện mới và có tính độc lập cao với tập huấn luyện, có thể sử dụng kết hợp nhiều tập huấn luyện khác nhau. Thông thường, người ta còn đặt thêm một ngưỡng tối ưu để cho kết quả phân loại khả quan. Phân tích các phương pháp phân loại văn bản trên, có thể so sánh như bảng 1.1: Bảng 1.1 Bảng so sánh các phương pháp phân loại văn bản Phương pháp phân loại văn bản Đơn giản Phân loại nhanh Dễ cài đặt Kết quả tốt với đa nhãn lớp K-Nearest Neighbor  Support Vector Machine  Naïve Bayes     Bảng so sánh phương pháp phân loại văn bản nêu trên cho thấy rằng phương pháp phân loại văn bản Naïve Bayes đáp ứng yêu cầu nhiều hơn đối với vấn đề đặt ra trên. 1.4. Kết luận Chương 1 tác giả đã trình bày tổng quan về công trình phân loại văn bản, bài toán phân loại văn bản tiếng Lào, cho biết các phương pháp phân loại văn bản như K-Nearest Neighbor, Suport Vector Machine, Naive Bayes và lựa chọn phương pháp Naive Bayes để xây dựng hệ thống tự động phân loại văn bản tiếng Lào.
  • 20. 13 CHƯƠNG 2 MÔ HÌNH PHÂN LOẠI VĂN BẢN TIẾNG LÀO Trong chương này sẽ trình bày về mô hình tổng quan phân loại văn bản tiếng Lào, những đặc trưng của tiếng Lào, mô hình tách từ áp dụng Regular Expression và mô hình phân loại văn bản tiếng Lào dựa trên phương pháp Naive Bayes. 2.1. Mô hình phân loại văn bản tiếng Lào Vấn đề phân loại văn bản tiếng Lào dựa trên kiểu học có giám sát được đặc tả bao gồm 2 giai đoạn: giai đoạn huấn luyện và giai đoạn phân loại. Một cách tổng quát, giải quyết bài toán phân loại văn bản gồm các bước (Hình 2.1): - Tiền xử lý văn bản đầu vào và biểu diễn văn bản theo mô hình vector từ khóa, mỗi văn bản được biểu diễn bằng một vector của các từ khóa; - Trích chọn đặc trưng, loại bỏ từ dừng; - Huấn luyện; - Phân loại văn bản. Hình 2.1 Mô hình tổng quan phân loại văn bản tiếng Lào Giai đoạn huấn luyện có các bước: Naïve Bayes Giai đoạn huấn luyện Giai đoạn phân loại Văn bản tiếng Lào Tiền xử lý Trích chọn đặc trưng Huấn luyện Phân loại Dữ liệu huấn luyện Loại văn bản
  • 21. 14 - Dữ liệu huấn luyện: dữ liệu huấn luyện thu thập từ các trang web tiếng Lào, lưu trữ dưới dạng văn bản thuần nhất với mã hóa Unicode và nhãn lớp xác định; - Tiền xử lý: Biểu diễn các dữ liệu văn bản tiếng Lào thành một vector từ khóa, áp dụng biểu thức chính quy kết hợp với khuôn mẫu từ đơn để tách ra từ đơn và ghép lại từ đơn thành từ phức dựa trên từ điển từ phức; - Trích chọn đặc trưng: loại bỏ những từ dừng (stop-words) không mang thông tin, thường thì không có ích gì trong việc phân biệt nội dung của các tài liệu, nhằm nâng cao hiệu suất phân loại và giảm độ phức tạp của thuật toán huấn luyện. Ví dụ, từ chỉ dùng để phục vụ cho biểu diễn cấu trúc chứ không biểu đạt nội dung của nó như là “ໃນ” (giới từ), “ແຕ່” (liên từ), động từ phổ biến có dạng “ແມ່ນ”, “ໄດ້”, và một số trạng từ và tính từ đặc biệt cũng được xem là những từ dừng (stop-words). Vì đặc điểm của từ dừng nên chúng được loại bỏ mà không ảnh hưởng đến các công việc biểu diễn văn bản. - Huấn luyện: hay thuật toán huấn luyện thủ tục huấn luyện bộ phân loại để tìm ra họ các tham số tối ưu dựa trên phương pháp Naive Bayes sử dụng xác suất có điều kiện giữa từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân loại. Giai đoạn phân loại có các bước: - Văn bản tiếng Lào: đưa vào bất kỳ văn bản tiếng Lào với mã hóa Unicode; - Tiền xử lý: Thực hiện như giai đoạn huấn luyện, biểu diễn văn bản theo mô hình vector từ khóa; - Trích chọn đặc trưng: Thực hiện như giai đoạn huấn luyện nêu trên; - Phân loại văn bản: Sau khi biểu diễn văn bản tiếng Lào thành một vector từ khóa và trích trọn đặc trưng, sẽ tính xác suất của Vector từ của văn bản đang xét với xác suất của mỗi nhóm trên bộ huấn luyện từ giai đoạn huấn luyện và chọn nhóm có số cao nhất là loại của văn bản. 2.2. Biểu diễn văn bản tiếng Lào Trong luận văn này, mỗi văn bản đưa vào hệ thống tự động phân loại văn bản tiếng Lào dựa trên phương pháp Naive Bayes được biểu diễn trên mô hình vector, các văn bản được thể hiện trong một không gian có số chiều lớn, trong đó mỗi chiều của không gian tương ứng với một từ trong văn bản. Mỗi văn bản D được biểu diễn dưới dạng 𝑥 ⃗. Trong đó 𝑥 ⃗ = (𝑥1, 𝑥2, … , 𝑥𝑛), và n là số lượng đặc trưng hay số chiều của vector văn bản, 𝑥𝑛 là trọng số của đặc trưng thứ i (với 𝑖 ≤ 𝑖 ≤ 𝑛).
  • 22. 15 Ví dụ: VB1: ຂ້ອຍມັກອ່ານປຶ້ມ ແລະ ຂຽນປຶ້ມ (tôi đọc sách), được tách từ ຂ້ອຍ|ມັກ|ອ່ານ|ປຶ້ມ|ແລະ|ຂຽນ|ປຶ້ມ VB2: ຂ້ອຍຂຽນໜັງສື (tôi viết bài), được tách từ ຂ້ອຍ|ຂຽນ|ໜັງສື Với 2 văn bản trên, áp dụng mô hình vector ta có biểu diễn như sau: Bảng 2.1 Ví dụ biểu diễn văn bản trên mô hình vector từ khóa Từ Vector_VB1 Vector_VB2 ຂ້ອຍ 1 1 ອ່ານ 1 0 ຂຽນ 1 1 ໜັງສື 1 1 ມັກ 1 0 ປຶ້ມ 2 0 2.3. Tách từ tiếng Lào Trong quá trình xử lý bài toán phân loại văn bản, trước hết văn bản phải được xử lý và rút ra những thuộc tính cần thiết cho việc phân loại văn bản đó là những từ xuất hiện trong văn bản, rồi biểu diễn từng văn bản theo một mô hình như: mô hình phân tích cú pháp, mô hình vector, mô hình boolean, mô hình tần suất… cho phù hợp với yêu cầu của mỗi phương pháp phân loại văn bản. Để có thể lấy được những từ trong văn bản phải qua bước tiền xử lý cơ bản như tách từ. Bài toán tách từ (Word Segmentation) hay cũng gọi là tách các thuật ngữ (Tokenizer), là một quá trình xử lý nằm ranh giới các từ trong câu. Về mặt ngôn ngữ là sẽ xác định từ đơn, từ ghép có mặt trong câu. Trong lĩnh vực xử lý ngôn ngữ tự nhiên bài toán tách từ có vai trò quan trong nhất trong việc xác định cấu trúc ngữ pháp trong câu. Tách từ quen thuộc, đơn giản với con người do tính trực quan, nhưng trong xử lý ngôn ngữ tự nhiên sẽ gặp rất nhiều khó khăn đối với ngôn ngữ nằm ở vùng Đông Á như tiếng Thái, tiếng Nhật, tiếng Trung Quốc, tiếng Kmer kể cả tiếng Lào. Đến hiện nay, đối với phương pháp tách từ của tiếng Anh, tiếng Trung, tiếng Nhật, tiếng Việt… đã có nhiều công trình nghiên cứu và cải tiến với hướng tiếp cận khác nhau, đạt được kết quả khả quan. Đối với tiếng Lào đến hiện nay, Vẫn chưa có một phương pháp tiếp cận nào có kết quả khả quan, một số phương pháp tách từ tiếng Lào đã được nghiên cứu, có như sau:
  • 23. 16 - Tách từ tiếng Lào sử dụng trường xác suất có điều kiện CRF (Conditional Random Field) [11]; - Tách từ dựa trên so khớp tối đa của âm tiết [4]; - Hỗn hợp tiếp cận tách từ sử dụng phương pháp so khớp tối đa cấp độ âm tiết với sự công nhận của các đặt tên [10]; - Phân âm tiếng Lào cho tách dòng [23]; - Tách từ tiếng Lào dựa trên phương pháp so khớp tối đa với kho từ vựng (gồm có từ đơn đã nhận từ máy suy diễn kết hợp với cơ sở luật, từ ghép và cụm từ) và xử lý khứ bỏ nhập nhằng [1]. Do đó, tác giả đề xuất mô hình tách từ tiếng Lào dựa trên cơ sở Regular Expression kết hợp với khuôn mẫu cấu trúc câu, cấu trúc từ đơn. 2.3.1. Đặc trưng tiếng Lào Lào là một đất nước có ngôn ngữ và chữ viết riêng của mình có tên gọi là ngôn ngữ Lào và chữ Lào. Đối với tiếng lào nó sinh ra và hình thành song song cùng với sự xuất hiện của đất nước Lào là một trong những ngôn ngữ đã từng có từ lâu đời trong Châu Á. Ngữ pháp Lào được chỉnh sửa nhiều lần cho đến thời kỳ giải phóng đất nước và xây dựng Cộng hòa Dân chủ Nhân dân Lào như hiện nay được sử dụng phương pháp tiếng Lào theo ngữ pháp do Ông Phoumy Vongvichith là Bộ Giáo dục công nhận sử dụng hiện nay, cũng có thể vì đã có nhiều lần chỉnh sửa phương pháp tiếng Lào mà làm cho cách viết, cách nói tiếng Lào của người Lào khác nhau không có sự hòa hợp nhau cho lắm nhất là những từ câu hình thành ra từ câu ngôn ngữ Bali Sansakit hay là các từ câu hình thành từ câu ngoại ngữ, hay câu của Lào. 2.3.1.1. Tổng quan về đặc trưng của văn bản tiếng Lào Cấu trúc một văn bản tiếng Lào thường gồm một Chủ đề, các mục (có chữ số ở phía trước tuân theo với ký tự dấu chấm) và nội dung. Nội dung là tập hợp của nhiều đoạn, một đoạn là tập hợp của nhiều câu, một câu là tập hợp của một cụm/nhóm từ, một cụm từ là tập hợp của hai từ đơn trở lên ghép sát nhau (không có rảnh giới giữa các từ) và một từ đơn gồm hai ký tự trở lên. Đặc trưng của cách viết một đoạn và câu tiếng Lào không khác với hệ chuẩn của tiếng Anh như khi kết thúc câu phải có các ký tự dấu chấm câu (dấu chấm, dấu hai chấm,
  • 24. 17 dấu phẩy, dấu than, ...), khi bắt đầu một đoạn phải có thụt lề hay ký tự đặc biệt (t) và khi kết thúc đoạn phải xuống bắt đầu dòng mới hoặc ký tự (n). Về đặc trưng của từ đơn trong tiếng Lào là một tập hợp các ký tự tiếng Lào (gồm có phụ âm, nguyên âm và dấu thanh), một từ đơn ít nhất phải có 2 ký tự gồm 1 ký tự phụ âm và 1 ký tự nguyên âm. Trong hệ viết từ tiếng Lào không có chữ hoa. Trong hệ viết tiếng Lào, ký tự khoảng trống sử dụng để tách ra hai câu hoặc cụm từ có đủ ý nghĩa của từng câu cho dễ dàng đọc và tránh biến nghĩa của câu. Khoảng trống thường dùng để tách ra tên riêng (tên người, tên công ty, tên quốc gia, chữ viết tắt) và chữ số (số ngày, số năm, số tiền, …) ra khỏi câu/cụm từ. 2.3.1.2. Cấu trúc từ tiếng Lào Ngôn ngữ tiếng lào có ký tự viết và đọc tương tự với ngôn ngữ trong quốc gia khác. Bảng chữ cái tiếng Lào gồm 3 nhóm: phụ âm, nguyên âm và dấu thanh. Cách tạo một từ tiếng Lào phải dùng ít nhất 2 ký tự gồm ít nhất 1 phụ âm và 1 nguyên âm ghép lại với nhau, các ký tự đó phải nằm đúng vị trí theo ngữ pháp tạo từ của tiếng Lào thì mới phát âm được và có nghĩa trong tiếng Lào. 2.3.1.3. Bảng chữ cái tiếng Lào Chữ cái tiếng Lào mà sử dụng trong giao tiếp là có nguồn gốc từ tiếng Sanskrit (Bắc Phạn) và chữ cái sử dụng trong phật giáo là có nguồn gốc từ tiếng Pali (Nam Phạn). Bảng chữ cái tiếng Lào gồm 3 nhóm: phụ âm, nguyên âm và dấu thanh. Tiếng Lào cũng có chữ số Lào nhưng ít sử dụng hiện nay. Phụ âm Có 33 phụ âm được chia ra 2 loại: phụ âm đơn (trung tâm) và phụ âm ghép. Các 27 phụ âm đơn: ກ ຂ ຄ ງ ຈ ສ ຊ ຍ ດ ຕ ຖ ທ ນ ບ ປ ຜ ຝ ພ ຟ ມ ຢ ຣ ລ ສ ຫ ອ ຮ Các 6 phụ âm ghép: ຫງ ຫຍ ຫນ(ໜ) ຫມ(ໝ) ຫລ(ຫຼ) ຫວ Nguyên âm Có 28 nguyên âm trong đó gồm nguyên âm dài, nguyên âm ngắn, nguyên âm đặc biệt (không thể ghép với phụ âm cuối vần), có như sau: - Nguyên âm dài: xະ xີ xຶ xຸ ເxະ ແxະ ໂxະ ເxາະ ເxິ ເxັຍ xົວະ ເxຶອ - Nguyên âm ngắn: xາ xີ xື xູ ເx ແx ໂx xໍ ເxີ ເxຍ xົວ ເxືອ - Nguyên âm đặc biệt: ໄx ໃx ເxົາ xໍາ
  • 25. 18 Trong các 24 nguyên âm (trừ nguyên âm đặc biệt) nó có thể ghép với phụ âm cuối từ để trở thành nguyên âm với phụ cuối vần. Phụ âm cuối từ hoặc phụ âm cuối vần là phụ âm đơn vừa làm phụ âm đầu vần vừa làm phụ âm cuối vần gồm có 8 phụ âm (ກ ງ ຍ ດ ນ ບ ມ ວ) cần đặt sau các 24 nguyên âm và không thể xếp sau các nguyên âm đặc biệt. Có một số nguyên âm sau khi ghép lại với phụ âm cuối vần sẽ thay đổi dạng. Sau đây là bảng nguyên âm ghép với 8 phụ âm cuối vần: Bảng 2.2 Nguyên âm ghép lại với phụ âm cuối vần Nguyên âm Phụ âm cuối vần ກ ງ ຍ ດ ນ ບ ມ ວ xະ xັກ xັງ xັຍ (ໄx) xັດ xັນ xັບ xັມ (xໍາ) xັວ (ເxົາ) xາ xາກ xາງ xາຍ xາດ xານ xາບ xາມ xາວ xິ xິກ xິງ - xິດ xິນ xິບ xິມ xິວ xີ xີກ xີງ - xີດ xີນ xີບ xີມ xີວ xຶ xຶກ xຶງ xຶຍ xຶດ xຶນ xຶບ xຶມ xຶວ xື xືກ xືງ xືຍ xືດ xືນ xືບ xືມ xືວ xຸ xຸກ xຸງ xຸຍ xຸດ xຸນ xຸບ xຸມ - xູ xູກ xູງ xູຍ xູດ xູນ xູບ xູມ - ເxະ ເxັກ ເxັງ - ເxັດ ເxັນ ເxັບ ເxັມ ເxັວ ເx ເxກ ເxງ - ເxດ ເxນ ເxບ ເxມ ເxວ ແxະ ແxັກ ແxັງ - ແxັດ ແxັນ ແxັບ ແxັມ ແxັວ ແx ແxກ ແxງ - ແxດ ແxນ ແxບ ແxມ ແxວ ໂxະ xົກ xົງ xົຍ xົດ xົນ xົບ xົມ - ໂx ໂxກ ໂxງ ໂxຍ ໂxດ ໂxນ ໂxບ ໂxມ ໂxວ ເxາະ xັອກ xັອງ xັອຍ xັອດ xັອນ xັອບ xັອມ - xໍ xອກ xອງ xອຍ xອດ xອນ xອບ xອມ - ເxິ ເxິກ ເxິງ ເxິຍ ເxິດ ເxິນ ເxິບ ເxິມ ເxິວ ເxີ ເxີກ ເxີງ ເxີຍ ເxີດ ເxີນ ເxີບ ເxີມ ເxີວ
  • 26. 19 ເxັຍ xັຽກ xັຽງ - xັຽດ xັຽນ xັຽບ xັຽມ xັຽວ ເxຍ xຽກ xຽງ xຽຍ xຽດ xຽນ xຽບ xຽມ xຽວ xົວະ xັວກ xັວງ xັວຍ xັວດ xັວນ xັວບ xັວມ - xົວ xົວກ xົວງ xົວຍ xົວດ xົວນ xົວບ xົວມ - ເxຶອ ເxຶອກ ເxຶອງ ເxຶອຍ ເxຶອດ ເxຶອນ ເxຶອບ ເxຶອມ - ເxືອ ເxືອກ ເxືອງ ເxືອຍ ເxືອດ ເxືອນ ເxືອບ ເxືອມ - 2.3.1.4. Dấu thanh Dấu thanh trong tiếng Lào sử dụng để biến phát âm của nguyên âm cho nó thành cao, thấp, ngắn, dài. Từ trong tiếng Lào nếu thay đổi dấu thanh của một từ thì nghĩa của từ đó cũng thay đổi. Tiếng Lào có 4 dấu thanh: x່, x້, x໋, x໊ Ví dụ: ປາ / pa, ປ່າ / pà, ປ້າ / pá, ປ໋າ / pạ, ປ໊າ / pã 2.3.1.5. Chữ số Có 10 chữ số tương ứng với các số từ 0 đến 9. Cách viết số Lào tuân theo hệ thống số chuẩn thông thường như: ໐ ໑ ໒ ໓ ໔ ໕ ໖ ໗ ໘ ໙ Ví dụ: 2017 = ໒໐໑໗, 1991 = ໑໙໙໑, -20.17 = -໒໐,໑໗ 2.3.1.6. Ký tự đặc biệt Có 3 ký tự: ໆ, ຯ và x໌ - Ký tự ໆ sử dụng để lặp lại từ ở phía trước. Ví dụ: ຫຼາຍໆ = ຫຼາຍຫຼາຍ (nhiều nhiều) - Ký tự ຯ đặt vào phía trước và sau phụ âm ລ trở thành ຯລຯ màng nghĩa trong tiếng Việt là “vân vân”. - Ký tự x໌ đặt vào phía trên của một phụ âm mà phụ âm đó nằm ở cuối của một từ khi viết từ của từ tiếng nước ngoài để làm cho từ đó phát âm theo dòng nói theo tiếng đó. Ví dụ viết tiếng Anh sang tiếng Lào: Star = ສະຕາຣ໌
  • 27. 20 2.3.1.7. Hệ thống từ vựng tiếng lào Tiếng Lào là ngôn ngữ đơn âm một từ có một âm tiết. Cách tạo từ cũng tương tự với tiếng Thái và tiếng Việt, mỗi từ được tổ hợp từ các chữ cái phụ âm, nguyên âm và dấu thanh. Ví dụ: - Từ có 1 phụ âm ປ và 1 nguyên âm xາ: ປາ / pa / cá - Từ có 1 phụ âm ອ, 1 nguyên âm xາຍ và dấu thanh x້: ອ້າຍ / ái / anh trai Từ vững tiếng Lào có hai loại là từ đơn (giản) và từ phức (hợp). Từ phức hợp gồm từ ghép và từ láy). Từ đơn Một từ đơn có một âm tiết ít nhất phải có 2 ký tự gồm có một phụ âm và một nguyên âm. Ví dụ phụ âm ດ ghép với nguyên âm xີ: ດີ / đi / tốt. Âm tiết dài nhất của từ đơn có thể tạo được là 7 ký tự gồm phụ âm (ghép), nguyên âm và dấu thanh. Ví dụ phụ âm ghép ຫງ ghép với nguyên âm ເxືອ ghép với phụ âm cuối vần ນ và dấu thanh x່: ເຫງື່ອນ / ngườn / dỡ Từ ghép Từ ghép được tạo từ 2 từ đơn trở lên, mang một nghĩa đó xác định. Gồm có dạng ghép: ghép hai từ đơn có nghĩa khác nhau, ghép nhiều từ đơn có nghĩa tương đương, ghép hai từ đơn có nghĩa giống nhau, ghép nhiều từ đơn (cụm/nhóm), ghép các từ của tiếng Pali và Sanskrit. Ví dụ: - Từ ghép hai từ đơn có nghĩa khác nhau (2 âm tiết): ໄຟຟ້າ (điện) / fai fá / ໄຟ (lửa) + ຟ້າ (trời) - Từ ghép (3 âm tiết): ຄອມພິວເຕີ (máy vi tính) / ຄອມ + ພິວ + ເຕີ - Từ ghép (4 âm tiết): ວິທະຍາໄລ (trường cao đẳng) / ວິ + ທະ + ຍາ + ໄລ - Từ ghép hai cụm từ (6 âm tiết): ມະຫາວິທະຍາໄລ (trường đại học) / ມະຫາ (đại) + ວິທະຍາໄລ (trường cao đẳng)
  • 28. 21 Từ theo phát âm tiếng nước ngoài Để viết từ cho đúng phát âm của tiếng nước ngoài đặc biệt là Tiếng Anh thường có âm cuối mà trong tiếng Lào không có âm cuối, âm cuối này gồm hai ký tự (phụ âm theo âm cuối của từ và ký tự đặc biết ີ). Ví dụ như: Stars (ສະຕາສ໌), Paster (ປາສ໌ເຕີຣ໌)… Những từ này viết theo phát âm của từ tiếng đó, cách viết này chưa có chuẩn thống nhất mà trong thực tế như trên bài báo hay tạp chí người ta thường viết theo cách này. 2.3.1.8. Cấu trúc câu tiếng Lào Tiếng Lào có hai loại câu: câu đơn và câu ghép Câu đơn Tương tự quan điểm ngữ pháp tiếng Việt, trong ngữ pháp tiếng Lào, câu đơn gồm ba phần: chủ ngữ (danh từ hay đại từ), vị ngữ (động từ) và bổ ngữ. Ví dụ câu đơn: ຂ້ອຍກໍາລັງສຶກສາຢູ່ ມະຫາວິທະຍາໄລຊັບພະວິຊາ ທີ່ ນະຄອນ ດານັງ. Tôi đang học ở Trường Đại Học Bách Khoa tại thành phố Đà Nẵng. Câu ghép Câu ghép được tạo ra với nhiều câu ghép lại với nhau để mở rộng ý nghĩa của câu. Về câu trong câu ghép thường có cấu tạo giống câu đơn (là cụm chủ ngữ - vị ngữ). Giữa các câu trong câu ghép có những quan hệ nhất định để nối với nhau. Tương tự với tiếng Việt, có ba cách nối: - Nối bằng từ ngữ có tác dụng nối ແລະ, ví dụ: ມື້ວານນີ້ໄປຕະຫຼາດ, ຂ້ອຍໄດ້ຊື້ເສື້ອໃໝ່ ແລະ ນ້ອງຂ້ອຍຊື້ໝາກບານໜຶ່ງໜ່ວຍ. Hôm qua đi chợ, tôi đã mua áo mới và em trai tôi đã mua một quả bóng đá. - Nối trực tiếp, không dùng từ ngữ có tác dụng nối, giữa các vế câu phải dùng dấu phẩy, dấu chấm phẩy hoặc dấu hai chấm, ví dụ: ມີສາມຄົນຢູ່ໃນຫ້ອງ, ຄົນໜຶ່ງເບິ່ງໂທລະພາບ, ຄົນໜຶ່ງຫຼິ້ນໂທລະສັບ ແລະ ຄົນໜຶ່ງນັ່ງໄຫ້. Có ba người trong phòng, một người xem ti vi, một người chơi điện thoại, một người ngồi khóc lóc. - Nối bằng quan hệ từ (Vì … nên …; Do … nên ...), ví dụ:
  • 29. 22 ເນື່ອງຈາກ ທ້ອງຟ້າແຈ່ມໃສ ດັ່ງນັ້ນ ພວກເຮົາຈຶ່ງໄປຫຼິ້ນທະເລ. Vì trời đẹp nên chúng ta đi chơi biển. 2.3.2. Phương pháp tách từ tiếng Lào sử dụng Regular Expression Với những đặc trưng và nguyên tắc trên, cho phép tác giả xây dựng được tập khuôn mẫu biểu thức chính quy (Regular Expression) biểu diễn cho các cấu trúc câu, cấu trúc từ đơn dựa trên đặc trưng hệ viết tiếng Lào phục vụ cho quá trình tách từ trong văn bản tiếng Lào. Áp dụng so khớp của Regular Expression kết hợp với khuôn mẫu đã xây dựng tách ra câu và tách ra từ đơn trong câu theo hướng trái qua phải. Sau lấy được tất cả từ đơn trong một văn bản tiếng Lào dưới dạng mảng vector từ đơn, sẽ ghép từng phân tử duyệt trái qua phải của mảng tìm và so sánh với từ điển từ phức tiếng Lào cho lấy được từ trong từ điển có âm tiết dài nhất, có mô hình như sau: Hình 2.2 Mô hình tách từ tiếng Lào Quá trình này cho phép tách ra nhiều từ tiếng Lào có thể nhất mà không cần quan tâm đến ngữ nghĩa của từ. Và sắp xếp lại vị trí của từ trong văn bản theo thứ tự ban đầu dưới dạng một vector. Ví dụ: Đầu vào cụm từ c: c = ‘ຂ້ອຍກໍາລັງໄປໂຮງຮຽນ’ Văn bản tiếng Lào Tách câu Tách cụm từ Tách từ đơn Ghép từ đơn S = [s1, s2, ..., sn] C = [c1, c2, ..., cn] T = [t1, t2, ..., tn] V = [w1, w2, ..., wn] Từ điển từ phức Xử lý từ chứa phụ âm ghép Tập khuôn mẫu từ đơn Khuôn mẫu câu Khuôn mẫu cụm từ
  • 30. 23 Tách được từ đơn: Vtừ đơn = [‘ຂ້ອຍ’, ‘ກໍາ’, ‘ລັງ’, ‘ໄປ’, ‘ໂຮງ’, ‘ຮຽນ’] Ghép lại từ đơn dựa trên từ điển từ ghép: Vtừ = ['ຂ້ອຍ', 'ກໍາລັງ', 'ໄປ', 'ໂຮງຮຽນ'] Một vấn đề thường gặp trong quá trình phân loại văn bản, khi tách từ sẽ lấy được nhiều từ thừa đó là những từ mà chứa phụ âm ghép (ຫນ, ຫມ và ຫລ tương đương với ໜ, ໝ và ຫຼ lần lượt), đặc điểm của nó là có hai dạng viết mà cùng một nghĩa, đối với máy tính nó hiểu là cặp từ đó là hai từ khác nhau thì nên xử lý những từ đó để giảm chiều dài của vector từ đặc trưng khi phân loại văn bản. Ví dụ: ຫລານ = ຫຼານ, ຫມາ = ໝາ, ຫນຶ່ງ = ໜຶ່ງ… Theo mô hình (hình 2.2), tác giả sẽ cung cấp module tách từ tiếng Lào dựa trên biểu thức chính quy (Regular Expression) trên ngôn ngữ Python 3 phục vụ cho phương pháp phân loại văn bản Naive Bayes. Riêng module biểu thức chính quy không thể áp dụng trực tiếp được và không đủ chức năng để tách ra từ trong văn bản tiếng Lào cho chính xác và hiệu quả, nên phải xây dựng khuôn mẫu từ đơn đơn tiếng Lào, cải tiến chức năng là kiểm tra từ mới tách được có nằm ở giửa từ tiếp theo hay không, sau đó ghép lại những từ đơn đã tách được thành từ phức dựa trên phương pháp ghép và so sánh tìm kiếm trong từ điển từ phức. Ưu điểm của module tách từ đề xuất là: - Tốc độ tách từ nhanh vì không quan tâm đến ngữ nghĩa của từ; - Có thể tách được tất cả từ đơn theo tập khuôn mẫu từ đơn đã xây dựng và tách được con số, ký tự đặc biệt như dấu chấm, dấu thăng, dấu ngoặc, …; - Xử lý được những từ có hai cách viết nhưng nghĩa giống nhau, là những từ chứa phụ âm ghép như ຫລ, ຫມ, ຫນ sửa thành ຫຼ, ໝ, ໜ lần lượt, để giảm độ phức tạp và số lượng từ đặc trưng; - Tách được từ trong văn bản thỏa mãn cho phương pháp phân loại văn bản Naive Bayes. Nhược điểm: - Ghép từ đơn thành từ phức còn có hạn chế dựa trên số lượng của từ vững trong từ điển từ phức; - Nếu gặp từ viết sai chính tả đặc biệt là không viết theo thứ tự thì sẽ tách ra thành ký tự. 2.3.2.1. Regular Expression Trước đây việc xử lý chuỗi trong mọi ngôn ngữ lập trình rất là khó khăn bởi vì hàm xử lý chuỗi không cung cấp nhiều lắm và những hàm đó không có một chuẩn chung để kiểm tra định dạng của chuỗi. Sau khi nó ra đời việc xử lý chuỗi trở thành dể dàng
  • 31. 24 hơn. Regular Expression được sử dụng phổ biến trong thế giới UNIX và hiện nay nó được hỗ trợ bởi hầu hết các ngôn ngữ lập trình như Perl, Java, Javascript, C#, C/C++, PHP, Python, … Regular Expression (hay còn gọi là biểu thức chính quy, RegEx, RegExp, ...) là một chuỗi miêu tả một bộ các chuỗi khác theo những quy tắc cứ pháp nhất định, nó được dùng để tìm kiếm, so sánh, cắt ghép, hoặc là xử lý chuỗi nâng cao thông qua biểu thức riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và phải tuân theo nguyên tắc đó thì biểu thức mới hoạt động được. Nguyên tắc hoạt động của biểu thức chính quy (Regular Expression) là so khớp dựa vào khuôn mẫu (pattern), khuôn mẫu được xây dựng từ các quy tắc căn bản của biểu thức chính quy. Cứ pháp của Regular Expression Về cơ bản, biểu thức chính quy (Regular Expression) chia ra 2 phần gồm: - Literal character (ký tự thường) là một biểu thức chứa một hoặc nhiều ký tự từ a đến z dùng để làm mẫu và so sánh với một chuỗi nào đó. Ví dụ nếu có RegEx pattern là ‘eph’ và một chuỗi là ‘elephant’, nó sẽ tìm kiếm và so sánh trùng khớp chữ eph trong chuỗi elephant.; - Meta character (siêu ký tự) là những ký tự đặc biệt có ý nghĩa như một mệnh lệnh nhất định. Dưới đây là một số Meta character thường dùng: Bảng 2.3 Một số cú pháp thường dùng của Regular Expression Pattern Miêu tả ^ kết nối vần phần đầu của dòng $ kết nối vần phần cuối của dòng . kết nối bất kỳ ký tự nào ngoại trừ newline [...] kết nối với một ký tự trong [] (dấu … thay thế cho những ký tự nào đó. ví dụ [êc] sẽ trùng khớp một ký tự ê hoặc c) [^...] Kết nối với bất kỳ ký tự đơn nào không ở trong [] re{n,m} Kết nối với ít nhất n và nhiều nhất m sự xuất hiện của biểu thức đặt trước (re) Nhóm các Regular Expression và ghi nhớ text đã kết nối
  • 32. 25 re* Kết nối với 0 hoặc nhiều sự xuất hiện của biểu thức đặt trước re+ Kết nối với 1 hoặc nhiều sự xuất hiện của biểu thức đặt trước re? Kết nối với 0 hoặc 1 sự xuất hiện của biểu thức đặt trước w Kết nối các ký tự từ s Kết nối với whitespace. Tương đương với [tnrf] d Kết nối với các chữ số. Tương đương với [0-9] Các hàm thường dùng gồm có hàm so khớp re.match(), hàm tìm kiếm re.search(), hàm tìm và thay thế re.sub(), hàm tìm và tách ra re.split()… Được mô tả như sau: Bảng 2.4 Một số chức năng của Regular Expression Module Miêu tả re.match(pattern, text) chỉ so khớp pattern với text ở vị trí ký tự thứ nhất của text nếu thành công trả về đối tượng match và None nếu thất bại re.search(pattern, text) cố so khớp pattern với text bắt đầu từ đầu đến cuối re.sub(pattern, repl, string) thay thế tất cả sự xuất hiện pattern trong string với repl re.split(pattern, string) tách ra string thành một mảng với tất cả sự xuất hiện pattern trong string Ví dụ cho một chuỗi khuôn mẫu (pattern) là “ສະ.(າ|ະ)” và cụm từ (string) là “ສະບາຍດີ” vào hàm re.match(pattern, string) hàm này sẽ so khớp pattern với string bắt đầu từ ký tự thứ nhất của string và đưa ra kết quả thành công là ສະບາ. 2.3.2.2. Mô hình hóa câu tiếng Lào Theo những đặc trưng của câu tiếng Lào đã trình bày trên cho phép tác giả mô hình hóa được cấu trúc câu tiếng Lào. Sau đây là một ví dụ câu trong tiếng Lào gồm 3 cụm từ (clause), từng cụm từ được tách ra bằng khoảng trống và dấu phẩy, và câu kết thúc với dấu chấm và ký tự newline (n) hay khoảng trống.
  • 33. 26 Hình 2.3 Một số cấu trúc câu tiếng Lào Trong đó: - Clause1-3 là cụm từ; - Space là khoảng chống; - n | space là xuống dòng hoặc khoảng chống. Trong văn bản tiếng Lào (text) các câu được tách ra với một chuỗi khuôn mẫu biểu thức chính quy (pattern) và lưu trữ kết quả trong một vector. Chuỗi khuôn mẫu sử dụng để tách ra câu trong văn bản có như sau: pattern=‘(?<!s[ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝໜ].)(?<!^[ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝ ໜ].)(?<!s[ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝໜ][ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝໜ].)(?<!s[A- Z].)(?<!s[a-z].)(?<!s[A-Z][a-z].)(?<!s[A-z][a-z][a-z].)(?<!w.w.)(?<=[.!?;])s+’ Trong đó: - (?<=[.!?;])s+ : có nghĩa là nếu thấy một trong những ký tự trong dấu ngoặc đi theo với s+ (là những ký tự đặc biệt như n r t và khoản trống) thì tách ra câu ở chỗ đó; - (?<!...) : nếu gặp những pattern ở trong dấu ngoặc này sẽ không tách; - [ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢລຣວຫອຮໝໜ]: so khớp một ký tự phụ âm 2.3.2.3. Mô hình hóa từ đơn tiếng Lào Phân tích các đặc trưng trong hệ viết chữ Lào, sử dụng bảng chữ cái, các phụ âm đơn và ghép, các nguyên âm đơn và ghép và các dấu thanh, đã cho phép tác giả xây dựng một mô hình cấu trúc từ đơn của tiếng Lào như sau: Bảng 2.5 Vector từ đơn tiếng Lào Vector V từ đơn tiếng Lào v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 Có thể viết là: V = [v1, v2, v3, v4, v5, v6, v7, v8, v9, v10] Trong mô hình cấu trúc từ đơn này, các ký tự được đánh số theo cách viết truyền thống hay thứ tự gõ vào từ bản phím của chữ viết tiếng Lào, thứ tự được viết theo hướng từ trái qua phải.
  • 34. 27 Vai trò chức năng của các thành phần của Vector từ V được trình bày trong bảng 2.7 như sau: Bảng 2.6 Các thành phần của Vector từ Thành phần Vai trò chức năng Chữ cái Lào tương ứng v1 Nguyên âm đứng trước ເ ແ ໄ ໃ ໂ v2 Phụ âm (gồm phụ âm đơn, phụ âm ghép) ຫ v3 ກ ຂ ຄ ງ ຈ ສ ຊ ຍ ດ ຕ ຖ ທ ນ ບ ປ ຜ ຝ ພ ຟ ມ ຢ ຣ ລ ສ ຫ ອ ຮ ໜ ໝ ຼ v4 ຣ v5 Nguyên âm ົ ັ ຶ ື ໍ ຸ ູ v6 Dấu thanh ່ ້ ໊ ໋ v7 Nguyên âm đạt ở phía sau phụ âm ະ າ ຽ ອ ຍ v8 Phụ âm cuối vần ກ ງ ຍ ດ ນ ມ ບ ວ v9 phụ âm viết theo phát âm của tiếng nước ngoài thường đi cùng với ີ (v10) ກ ນ ທ ຣ ຈ ສ ຊ ພ ຟ ລ v10 Dấu đặc biệt thường đặt ở cuối cùng ໆ ຯ ໌ Từ đơn tiếng Lào được xem là một vector từ với những ký tự chữ cái Lào đúng vị trí. Ví dụ:
  • 35. 28 Bảng 2.7 Ví dụ cách tạo từ đơn tiếng Lào Vector V Từ đơn tiếng Lào Nghĩa Tiếng Việt v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 ເ ຫ ງ ື ່ ອ ນ ໆ ເຫງື່ອນໆ dỡ ຫ ລ າ ນ ຫລານ cháu ເ ຫ ຼ ົ ້ າ ເຫຼົ້າ rượu ເ ຫ ມ ັ ້ ນ ເຫມັ້ນ con nhím ຝ ຣ ັ ່ ງ ຝຣັ່ງ nước Pháp ຫ ຼ ຸ ດ ຫຼຸດ giảm ໃ ຫ ຍ ່ ໃຫຍ່ to ຮ າ ວ ສ ໌ ຮາວສ໌ house (nghôi nhà) Dựa trên bảng 2.3 và bảng 2.10, cho phép xây dựng tập chuỗi khuôn mẫu biểu thức chính quy của từ đơn (tập nguyên tác xây dựng một từ theo hệ viết từ tiếng Lào) gồm tất cả 215 khuôn mẫu của từ đơn. Ví dụ khuôn mẫu biểu thức chính quy của một từ đơn của nguyên âm xາ: Chuỗi khuôn mẫu từ đơn này có thể so khớp được tất cả từ đơn chứa các ký tự phụ âm đơn và ghép, nguyên âm xາ, dấu thanh và phụ âm đặt ở cuối (phụ âm viết theo phát âm tiếng nước ngoài) lần lượt. Với một chuỗi khuôn mẫu này so khớp được 3510 dạng viết từ đơn, ví dụ như: ກາ, ກ້າ, ກວາ, ກວ້າ, ຕຣາ, ຕາຣ໌, …. 2.3.2.4. Phương pháp tách từ tiếng Lào Trong phương pháp tách từ có đầu vào là một cụm từ và đầu ra là một mảng từ tiếng Lào, được chia thành hai bước chính: - Tách từ đơn dựa trên phương pháp so khớp tối đa với tập khuôn mẫu biểu thức chính quy của từ đơn. Tải bản FULL (file word 67 trang): bit.ly/2Ywib4t Dự phòng: fb.com/KhoTaiLieuAZ
  • 36. 29 - Ghép lại từ đơn thành từ phức dựa trên từ điển từ phức. Phương pháp tách từ đơn gồm các hàm sau: Hàm chính: - words_split(c) Hàm con: - find_first_word(c); - is_next_is_word(word, c); - select_best_word(first_word_list). Trong đó: - c là cụm từ tiếng Lào; - word là từ đơn tiếng Lào; - first_word_list là mảng từ đơn tìm được nhiều nhất có thể từ hàm find_first_word. Hình 2.4 Sơ đồ khối hàm word_split Tải bản FULL (file word 67 trang): bit.ly/2Ywib4t Dự phòng: fb.com/KhoTaiLieuAZ
  • 37. 30 Hàm word_split là một chức năng tách ra các từ đơn trong cụm từ tiếng Lào và trả lại array từ đơn, gồm các bước như sau: Bước 1: Cho đầu vào là một cụm từ hay là chuỗi không có khoảng trống Bước 2: Khai bảo biến array words trống để giữ các từ đơn mà tách được, khai bảo string word trống. Bước 3: Kiểm tra đầu vào c là tiếng Lào hay không (tất cả các ký tự trong c có số Unicode trong khoảng cách từ U+0E80 đến U+0EFF hay không), nếu có thì qua Bước 4, ngược lại đầu ra là c dưới dạng từ thường Bước 4: Kiểm tra chiều dài của chuỗi c nếu lớn hơn 0 thì qua Bước 5, ngược lại qua Bước 9. Bước 5: Khai bảo biến array first_word_list để giữ những từ đơn mà so khớp được từ hàm find_first_word Bước 6: Lựa chọn từ đơn tốt nhất có thể trong biến first_word_list bằng hàm select_best_word và đặt vào biến word. Bước 7: Xử lý từ đơn đã đạt được nếu thấy phụ âm ghép ຫລ, ຫນ, ຫມ thì thay thế băng ຫຼ, ໜ, ໝ lần lượt và đặt lại vào biến word. Bước 8: thêm giá trị word vào array words, súa bỏ từ đầu (trái qua phải) của chuỗi c bằng từ word, quay lại Bước 4 Bước 9: Trả lại Vector từ đơn và kết thúc 9897bf32