Professional Documents
Culture Documents
Xây Dựng Hệ Thống Tự Động Phân Loại Văn Bản Tiếng Lào 9897bf32
Xây Dựng Hệ Thống Tự Động Phân Loại Văn Bản Tiếng Lào 9897bf32
PHOMMASENG PHANAKHONE
PHOMMASENG PHANAKHONE
Phommaseng Phanakhone
i
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)
ii
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
iii
DANH MỤC CÁC BẢNG
Số hiệu Tên bảng Trang
bảng
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
Kết quả Phân loại văn bản Naive Bayes với phương pháp
3.6 tách từ không loại bỏ từ dừng 47
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ừ
3.7 dừng 48
Bảng so sánh mô hình phân loại văn bản tiếng Lào đề xuất
3.8 với các mô hình khác 49
iv
DANH MỤC CÁC HÌNH
Số hiệu Tên hình Trang
bảng
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
1.3 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.9 Thuật toán Naïve Bayes Multinominal: huấn luyện và kiểm thử 37
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
v
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.
1
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.
2
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
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.
4
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].
5
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.
6
Hình 1.1 Bảng mã Unicode tiếng Lào (U+0E80 - U+0EFF)
7
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:
8
- 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.
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
9
+1, 𝑑⃗𝑖 ⋅ 𝑤
⃗⃗⃗ + 𝑏 > 0
Đặt ℎ(𝑑⃗𝑖 ) = 𝑠𝑖𝑔𝑛(𝑑⃗𝑖 ⋅ 𝑤
⃗⃗⃗ + 𝑏) {
−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ó
1
nhất (vector hỗ trợ - support vector) mà có khoảng cách đến nó là: ‖𝑤
. 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.
10
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 {𝑃(𝐶𝑗|𝑑′} = 𝑎𝑟𝑔 max
1≤𝑘≤𝑁 1≤𝑘≤𝑁 𝑃(𝑑′ )
- 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:
11
‖𝐶𝑗 ‖ ‖𝐶𝑗 ‖
𝑃(𝐶𝑗 ) = =
‖𝐶 ‖ ∑𝐶 ′ ∈𝐶‖𝐶 ′ ‖
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 Đơn giản Phân loại Dễ cài đặt Kết quả tốt với đa
loại văn bản nhanh 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.
12
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.
Dữ liệu
huấn luyện Huấn luyện
Phân loại
Văn bản
tiếng Lào
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:
13
- 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.
14
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
15
- 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.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,
16
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ừ.
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ໍາ
17
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:
xະ xັກ xັງ xັຍ (ໄx) xັດ xັນ xັບ xັມ (xໍາ) xັວ (ເxົາ)
18
ເxັຍ xັຽກ xັຽງ - xັຽດ xັຽນ xັຽບ xັຽມ xັຽວ
19
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)
20
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.
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ụ:
21
ເນື່ອງຈາກ ທ້ອງຟ້າແຈ່ມໃສ ດັ່ງນັ້ນ ພວກເຮົາຈຶ່ງໄປຫຼິ້ນທະເລ.
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:
Văn bản
tiếng Lào Tách câu Khuôn mẫu câu
22
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.
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ự.
23
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.
. 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
24
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
\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
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à ສະບາ.
25
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
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.
26
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
v2 ຫ
v3 Phụ âm ກຂຄງຈສຊຍດຕຖທນບປ
(gồm phụ âm đơn, phụ âm ghép) ຜຝພຟມຢຣລສຫອຮໜໝ
ຼ
v4 ຣ
v5 Nguyên âm ົ ັ ຶ ື ໍ ຸ ູ
v6 Dấu thanh ່ ້ ໊ ໋
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ụ:
27
Bảng 2.7 Ví dụ cách tạo từ đơn tiếng Lào
Vector V Từ đơn
Nghĩa Tiếng Việt
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 tiếng Lào
ເ ຫ ງ ື ່ ອ ນ ໆ ເຫງື່ອນໆ dỡ
ຫ ລ າ ນ ຫລານ cháu
ເ ຫ ຼ ົ ້ າ ເຫຼົ້າ rượu
ຫ ຼ ຸ ດ ຫຼຸດ giảm
ໃ ຫ ຍ ່ ໃຫຍ່ to
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ư:
ກາ, ກ້າ, ກວາ, ກວ້າ, ຕຣາ, ຕາຣ໌, …. Tải bản FULL (file word 67 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
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.
28
- 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.
Tải bản FULL (file word 67 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
29
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
30