Tải bản đầy đủ (.doc) (26 trang)

báo cáo đề tài sử dụng từ điển để tách từ trong câu tiếng việt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (819.38 KB, 26 trang )

TRƯỜNG ĐẠI BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
====o0o====
BÀI TẬP LỚN
XỬ LÝ NGÔN NGỮ TỰ NHIÊN
Đề tài : Sử dụng từ điển để tách từ trong câu tiếng Việt.
GV hướng dẫn : TS Lê Thanh Hương
SV thực hiện : Nguyễn Đức Long 20071697
Nguyễn Văn Khải 20071562
Lớp : HTTT K52
Hà Nội. 2-05-2011
1
Mục Lục
Đề tài : Sử dụng từ điển để tách từ trong câu tiếng Việt 1
Mục Lục 2
I.Giới thiệu đề tài 3
1.Đặt vấn đề 3
II.Cách tiếp cận bài toán 4
1.Khái niệm từ trong Tiếng Việt 4
2.Các hướng tiếp cận hiện nay 5
2.1 Phương pháp tiếp cận dựa trên từ 6
2. 2 Phương pháp tiếp cận dựa trên ký tự (tiếng) 7
III.Phân tích 1 số phương pháp giải quyết bài toán 7
1.So khớp dài nhất (Longest matching) 7
2.Phương pháp lai kết hợp Longest Maching và ứng dụng cây 9
3.Một số phương pháp khác 10
3.1 Transforma Based Learning 10
3.2 Dynamic programming 11
3.3 Weighted Finin State Transducer( WFST) và mạng Neural 13
3.4 Sử dụng thống kê Internet vào tách từ 15
IV.Xây dựng hệ thống, thực nghiệm 17


1.Cài đặt thuật toán 17
2.Cài đặt hệ thống 18
3.Chạy thử và thực nghiệm 19
4.Sử dụng một số tool được cung cấp 20
V.Đánh giá và mở rộng báo cáo 23
VI.Phân chia công việc 24
VII.Kết luận 24
VIII.Tài liệu tham khảo 25
2
I. Giới thiệu đề tài
1. Đặt vấn đề
Tách từ là 1 vấn đề cơ bản trong xử lý ngôn ngữ tự nhiên (XLNNNT) Nó là tiền
đề, bước cơ bản đầu tiên để tiến hành tiếp các phép xử phức tạp lý khác như xác định
từ loại, phân tích cấu trúc ngữ pháp cho câu, xử lý văn bản …
Với các yếu tố như thế, tách từ được coi là một vấn đề quan trọng trong
XLNNTN, đặc biệt là với các nước Đông Á, nơi mà có các loại ngôn ngữ với cấu trúc
phức tạp như Việt Nam, Trung Quốc, Nhật … Đối với con người, đây là 1 vấn đề đơn
giản nhưng làm thế nào để máy tính có thể hiểu và thực hiện được lại là một vấn đề
đầy khó khăn và thú vị.
Hiện tại đã có rất nhiều công trình nghiên cứu để giải quyết vấn đề này và có độ
chính xác khá cao (>95%) Trong khuôn khổ bài tập lớn, nhóm em xin trình bày về các
phương pháp tách từ trong câu tiếng Việt và cài đặt một số phương pháp giải quyết.
Em xin chân thành cám ơn cô Lê Thanh Hương đã hướng dẫn và giảng dạy cho
em nhiều kiến thức bổ ích về vấn đề này.
3
II. Cách tiếp cận bài toán
1. Khái niệm từ trong Tiếng Việt
Trong các ngôn ngữ phương Tây, từ là đơn vị nhỏ nhất trong câu. Nó là một khái
niệm khá đơn giản, được định nghĩa là một nhóm kí tự có nghĩa, được phân cách với
nhau bởi kí tự khoảng trắng (space) hoặc các dấu câu  Tách từ trong câu của các

ngôn ngữ này khá đơn giản.
Trong tiếng Việt, khái niệm từ lại là một khái niệm phức tạp và khó xác định hơn
rất nhiều. Từ không phải là đơn vị nhỏ nhất trong câu mà là tiếng. Một từ được cấu trúc
từ các tiếng, có thể từ một tiếng (từ đơn) hoặc bao gồm nhiều tiếng (từ phức) bao gồm
cả từ láy và từ ghép  rất khó có thể áp dụng các kỹ thuật và hướng tiếp cận đã được
nghiên cứu và thử nghiệm thành công trên các ngôn ngữ Ấn Âu cho tiếng Việt.
Một số thống kê về từ vựng tiếng Việt:
4
Theo 1 nghiên cứu khác, đã thống kê những điểm khác biệt chính giữa tiếng Việt
và tiếng Anh. Chính các đặc điểm này đã làm cho việc tách từ trong tiếng Việt khó
khăn hơn nhiều:
2. Các hướng tiếp cận hiện nay
Hiện nay, đã có khá nhiều nghiên cứu về giải quyết vấn đề tách từ trong tiếng
Việt. Dựa trên cơ sở thống kê các phương pháp tách từ trên tiếng Hoa, bối cảnh các
phương pháp tách từ trên tiếng Việt như sau:
5
2.1 Phương pháp tiếp cận dựa trên từ
Phương pháp này được chia thành 3 nhóm chính:
- Dựa vào từ điển
- Dựa vào thống kê
- Kết hợp 2 phương pháp trên để tận dụng ưu điểm của từng phương pháp
2.1.1 Phương pháp dựa vào từ điển
Đây là phương pháp điển hình nhất hiện nay, độ chính xác cũng khá cao. Ý
tưởng của phương pháp này là dựa vào 1 từ điển từ có sẵn rồi dùng các biện pháp so
khớp để tách ra các từ, cụm từ trong văn bản mà có trong từ điển. Các hướng tiếp cận
khác nhau sẽ sử dụng các loại từ điển khác nhau: full-word/pharse sẽ sử dụng 1 bộ từ
điển hoàn chỉnh, trong khi đó component lại sử dụng các bộ từ điển thành phần.
Phương pháp này cũng được chia làm nhiều loại dựa theo cách so khớp với từ điển,
chẳng hạn như so khớp dài nhất (longest matching) hay so khớp ngắn nhất (shortest
matching). Ngoài ra còn phương pháp kết hợp (hybird) kết hợp cả hai phương pháp

này. Hiện nay thì phương pháp so khớp dài nhất được xem là phương pháp hiệu quả
nhất trong hướng tiếp cận này.
Hạn chế của phương pháp này là kết quả phụ thuộc hoàn toàn vào độ chính
xác và đầy đủ của bộ từ điển. Việc xây dựng 1 bộ từ điển hoàn chỉnh là vấn đề cốt lõi
cuả phương pháp này, hiện nay với sự nỗ lực của nhiều người, bộ từ điển đã tương đối
đầy đủ đem lại kết quả khá khả quan cho phương pháp này với độ chính xác cao
(95%) trong việc tách từ.
2.1.2 Phương pháp dựa trên thống kê
Ý tưởng của phương pháp là dựa vào các thông tin như tần số xuất hiện trong
tập dữ liệu huấn luyện ban đầu, dựa vào các giải thuật học máy sẽ đưa ra một tập các
từ được gán trọng số. Dựa trên các trọng số này, khi phân tách câu sẽ quyết định một
cụm các tiếng có phải là một từ hay không.
Phương pháp này tỏ ra linh hoạt hơn so với phương pháp dựa trên từ điển, tuy nhiên
nó lại phụ thuộc vào dữ liệu học ban đầu và cần có thời gian để tích luỹ.
Hiện nay đã có 1 phương pháp mới là dựa vào thống kê Internet, phương pháp này sử
dụng các search engine hiện có như google, bing … Dựa vào kết quả tìm kiếm, thuật
toán sẽ đánh giá mức độ liên kết giữa các từ (Mutual information - MI) và sử dụng nó
để quyết định có phải là từ hay không. Đây là phương pháp hứa hẹn nhiều triển vọng.
2.1.3 Phương pháp kết hợp
Phương pháp này kết hợp sử dụng cả từ điển và thống kê để tận dụng ưu điểm
của cả hai phương pháp. Tuy có ưu điểm về độ chính xác nhưng nó lại gặp phải các
vấn đề phức tạp khác, đòi hỏi nhiều hơn về thời gian cũng như bộ nhớ.
6
2. 2 Phương pháp tiếp cận dựa trên ký tự (tiếng)
Phương pháp này có thể được chia làm 2 nhóm nhỏ: uni-gram và n-gram.
Hướng tiếp cận dựa trên một ký tự (uni-gram) chia văn bản ra các ký tự đơn lẻ để
thực hiện việc tách từ. Còn hướng tiếp cận dựa trên nhiều ký tự (n-gram) chia văn bản
ra thành nhiều chuỗi, mỗi chuỗi gồm hai, ba ký tự trở lên. So với hướng tiếp cận dựa
trên một ký tự, hướng tiếp cận này cho nhiều kết quả ổn định hơn (trong tiếng Hoa)
Khái niệm ký tự ở đây được tương đương với tiếng trong tiếng Việt. Phương

pháp này chia 1 câu ra thành các tiếng phân cách nhau bởi các dấu cách hay các dấu
câu, sau đó dựa vào các giải thuật như quy hoạch động, giải thuật di truyền hay thống
kê để tìm ra cách phân chia mà có tổng xác suất các phân đoạn là tối ưu nhất.
Phương pháp này tỏ ra đơn giản, linh hoạt hơn do không phải dựa vào 1 bộ từ
điển cố định. Cách tiếp cận này có tính khả quan, hứa hẹn nhiều triển vọng hơn so với
phương pháp dựa trên từ điển.
III. Phân tích 1 số phương pháp giải quyết bài toán
Ở đây em xinh trình bãy kỹ về 2 phương pháp: So khớp dài nhất (Longest matching)
và phương pháp tiếp cận lai (kết hợp Longest matching và phân tích automat hữu
hạn)
Ngoài ra, em cũng trình bày thêm một vài phương pháp khác mang tính chất để tham
khảo và so sánh.
1. So khớp dài nhất (Longest matching)
- Mô tả phương pháp
Phương pháp này sẽ duyệt câu từ trái qua phải, lần lượt duyệt chuỗi các tiếng
kiểm tra xem nó có phải là từ hay không. Chuỗi dài nhất được xác định là từ
sẽ được chọn ra, tiếp tục làm như thế với chuỗi còn lại của câu cho đến khi hết
câu.
Đây là dạng đơn giản của phương pháp Maximum matching, dạng phức tạp sẽ
là tìm chuỗi phân đoạn dài nhất của 3 từ liền nhau. Dạng phức tạp này sẽ
không được trình bày ở đây.
- Cách thực hiện và ví dụ
o Phân tách câu ban đầu thành một chuỗi các tiếng, chẳng hạn với câu C
ta phân tích được chuỗi các tiếng là: C1 C2 C3 C4 …
o Sử dụng vòng lặp để xác định chuỗi dài nhất được xác định là từ bằng
cách so khớp với từ điển lexicon có sẵn.
Ví dụ:
+ Xác định C1 có là từ hay không
+ Xác định C1C2 có phải là từ không
+ Xác định C1C2C3

+ …
7
 Chuỗi dài nhất được xác định là từ sẽ được chọn
o Xét chuỗi các tiếng còn lại, lặp lại vòng lặp từ bước 2
+ Ví dụ với câu: Học sinh học sinh học
• Ta xác định được các tiếng: học, sinh, học, sinh, học
• Lần lượt xét các chuỗi: học, học sinh, học sinh học, học sinh học sinh

• So khớp với từ điển, ta xác định được “học sinh” là từ chuỗi dài nhất
thoả mãn  từ đầu tiên được xác định là: học sinh
• Xét chuỗi các tiếng còn lại – “học sinh học” lặp lại các bước như trên ta
sẽ thu được kết quả:
o Học sinh | học sinh | học
- Ưu điểm
o Phương pháp này giải quyết được nhập nhằng đơn
o Cách tách từ đơn giản, nhanh chóng và dễ thực hiện, chỉ cần dựa vào
từ điển
o Dễ dàng tách được các câu đơn giản như: thành lập | nước | Việt Nam
| dân chủ | cộng hoà hay: cộng hoà | xã hội chủ nghĩa | Việt Nam
- Nhược điểm
o Phương pháp này phụ thuộc hoàn toàn vào độ chính xác và đầy đủ của
từ điển  xây dựng được bộ từ điển đầy đủ là vấn đề cốt lõi. Mục tiêu
này khá khó khăn do kho từ vựng dân gian là vô cùng lớn.
o Không giải quyết được nhập nhằng, chẳng hạn như câu học sinh học
sinh học sẽ được phân tích thành:
 Học sinh | học sinh | học
8
Kết quả đúng phải là :
 Học sinh | học | sinh học
2. Phương pháp lai kết hợp Longest Maching và ứng dụng cây

- Mô tả
• Mục đích của phương pháp này nhằm xử lý các nhập nhằng trong câu và đưa
ra tất cả các khả năng tối ưu có thể tách được trong câu.
• Tư tưởng của phương pháp này là bằng cách kết hợp với từ điển để xác định
các từ, ta xây dựng một cấu trúc dữ liệu dạng cây miêu tả mối quan hệ giữa
các tiếng trong câu theo thứ tự từ trái qua phải.
Thông qua cấu trúc cây này, ta xác định được tất cả các đường đi từ
nút gốc đến nút lá. Với các trường hợp nhập nhằng, kết quả sẽ trả lại hơn 1
đáp án bằng cách liệt kê tất cả các đường đi ngắn nhất.
- Cách thực hiện và ví dụ
Các bước thực hiện :
• Với câu nhận được, ta phân tách chúng thành 1 tổ hợp các tiếng. Giả sử
với câu C ta phân tách được tổ hợp tiếng là C1 C2 C3 C4 C5 …
• Với mỗi tiếng ta đưa vào 1 cấu trúc dữ liệu array gồm có id của
nút,parent_id là id của nút đứng liền trước và value là giá trị của tiếng
đó
• Với mỗi nhập nhằng sẽ sinh ra 1 đường đi riêng để đến nút lá
• Duyệt ngược cây từ nút lá đến nút gốc để lấy ra tất cả các cấu hình có
thể
Ví dụ : Với câu ‘ông quan tài giỏi’ ta sẽ tách ra được thành các từ ông,quan,quan tài,tài
giỏi…. tương ứng với cây được xây dựng như sau :
id
9
ông
quan
tài Tài
giỏi
giỏi
Quan tài
Giỏi

- Thứ tự các nút được đưa vào trong queue như sau : ông-quan-quan tài-tài-tài
giỏi-giỏi-giỏi.Sau đó duyệt ngược từ nút cuối để tìm ra các đường đi
- Ưu điểm
o Đưa ra được tất cả các phương pháp tách từ hợp lý
o Tính được cả các trường hợp nhập nhằng
- Nhược điểm
o Phụ thuộc vào sự đầy đủ và chính xác của từ điển
o Chưa đưa ra được phương pháp tối ưu, như ví dụ trên cần có phương
pháp để đưa ra được phương án chính xác nhất là đáp án số 2
o Với các câu dài sẽ mất thời gian xử lý
3. Một số phương pháp khác
3.1 Transforma Based Learning
3.1.1 Giới thiệu về giải thuật học cải biến (Transforma based learning)
Giải thuật học cải biến (TBL) là một phương pháp máy học dạng thống kê
được phát triển trong những năm gần đây bởi tiến sĩ Eric Brill. Phương pháp này đã
và đang đạt được nhiều thành công trong các ứng dụng của lĩnh vực xử lý ngôn ngữ tự
nhiên.
Phương pháp học cải biến TBL sử dụng một ngữ liệu lớn đã được xác định
thông tin đầy đủ bằng tay và một tập hợp mẫu luật chuyển đổi trạng thái, từ đó học và
sinh ra bộ luật nhằm giải quyết vấn đề đặt ra. Phương pháp học này đã đạt được
những kết quả đáng kinh ngạc khi giải các bài toán trong lĩnh vực xử lý ngôn ngữ
như: tách từ, đánh nhãn từ loại, xác định vị trí bổ nghĩa của ngữ giới từ, bắt lỗi chính
tả,khữ nhập nhằng ngữ nghĩa. Hiện nay, các ứng dụng của TBL vẫn đang được phát
triển cũng phương pháp học này cũng nhận được nhiều nghiên cứu cải tiến đáng kể
như: Fast TBL, μ TBL, Lazy TBL.
10
3.1.2 fnTBL( Fast Transformation-based learning)
Trong ứng dụng tách từ, phương pháp học cải biến huấn luyện cho máy tính
biết cách nhận diện ranh giới từ tiếng Việt, ta có thể cho máy học trên ngữ liệu hàng
vạn câu tiếng Việt đã được đánh dấu ranh giới từ đúng. Sau khi học xong, máy sẽ xác

định được các tham số(các xác suất) cần thiết cho mô hình nhận diện từ.
- Hệ thống fnTBL(Fast Transformation-based learning) gồm hai tập tin chính:
• Tập tin dữ liệu học(training): tập tin dữ liệu học được làm thủ công, đòi
hỏi độ chính xác. Mỗi mẫu(template) được đặt trên một dòng riêng biệt.
• Tập tin chứa các mẫu luật(rule – template ): mỗi luật được đặt trên một
dòng, hệ thống fnTBL sẽ dựa vào các mẫu luật để áp dụng vào tập tin dữ
liệu học.
- Quá trình học gồm 3 bước:
• Bước 1: từ tập dữ liệu học đã có sẵn, sử dụng phương pháp thống kê ta sẽ
có từ điển các tiếng(Lexicon).
• Bước 2: từ tập dữ liệu học, tạo ra tập dữ liệu mới dựa vào từ điển.
• Bước 3: so sánh tập dữ liệu học với tập dữ liệu đang xét, dựa vào các mẫu
luật đã cho, kết quả sẽ rút ra tập luật được chọn.
- Ưu điểm
• Đặc điểm của phương pháp là khả năng tự rút ra quy luật của ngôn ngữ.
• Tạo ra bộ luật dễ hiểu vì dựa trên các luật đã có sẵn.
• Các luật được thử nghiệm tại chỗ để đánh giá độ chính xác và hiệu quả của
luật( dựa trên ngữ liệu huấn luyện).
• Thời gian học cũng như thực hiện là tuyến tính.
• Có khả năng giải quyết được một số nhập nhằng, những tình huống có xác
suất thấp hoăc chưa gặp trong quá trình học.
- Hạn chế:
• Phương pháp này học dựa trên tập ngữ liệu tự động, việc xây dựng một tập
ngữ liệu trong tiếng Việt là điều rất khó, tốn kém nhiều về mặt thời gian và
công sức.
• Hệ thống trải qua một thời gian huấn luyện khá lâu để có thể rút ra các luật
tương đối đầy đủ.
• Cài đặt phức tạp.
3.2 Dynamic programming
- Phương pháp quy hoạch động(Dynamic programming)

Phương pháp quy hoạch động được nhà toán học Richard Bellman phát minh
năm 1953, được xem như một chủ đề về kỹ nghệ và phân tích hệ thống. Phương pháp
11
này giải bài toán bằng cách kết hợp các lời giải của các bài toán con, các bài toán con
không độc lập với nhau, chúng có chung các bài toán con nhỏ hơn. Việc giải các bài
toán con chỉ một lần và ghi nhớ lời giải đó trong một bảng để truy cập đến khi cần.
Phương pháp này là cách tính ngược của đệ quy, thay vì tính toán theo mô hình từ
trên xuống(Top – down) đã tính theo mô hình từ dưới lên (Bottom – up) . Vì vậy quy
hoạch động làm giảm thời gian chạy của lời giải bài toán. Phương pháp quy hoạch
động giải các bài toán theo phương án tối ưu, tức là đưa bài toán về tìm phương án tối
ưu của một số hữu hạn các bài toán con.
Nguyên lý tối ưu của Bellman: trong một dãy tối ưu của các lựa chọn thì một
dãy con của nó cũng là tối ưu.
Một giải thuật quy hoạch động được xây dựng qua 4 bước:
• Xác định cấu trúc của một lời giải tối ưu: phân tích bài toán, biểu diễn bài toán
dưới dạng một bài toán nhiều mức.
• Định nghĩa đệ quy cho giá trị của một lời giải tối ưu: xây dựng giải pháp đệ
quy, lập công thức truy hồi.
• Tính giá trị của một lời giải tối ưu từ dưới lên: lập bảng để tính các giá trị theo
kiểu dưới lên.
• Xây dựng lời giải tối ưu từ các thông tin đã tính: tổng hợp kết quả.
Giải quyết bài toán tách từ, phương pháp quy hoạch động chỉ sử dụng tập ngữ liệu
để lấy thông tin về tần số thống kê của từ, làm tăng độ tin cậy khi tính toán. Việc tính
toán sẽ được bắt đầu với những đơn vị như câu được phân cách bởi dấu câu, vì thành
phần này không có tính nhập nhằng trong phân tách đối với bất kỳ văn bản nào. Cách
tách cuối cùng là tìm ra các tổ hợp từ sao cho xác suất của nó là tối đa nhất.
- Ưu điểm:
• Không cần sử dụng tập ngữ liệu đã được đánh dấu chính xác.
• Giải quyết được vấn đề trùng lặp khi phải tính lại các xác suất cực đại của
mỗi tổ hợp từ nhỏ hơn.

- Hạn chế:
• Tập ngữ liệu đầu vào cần phải lớn để có thể lấy được xác suất từ chính
xác.
• Theo thống kê: xác suất từ đúng là 51%, xác suất từ chấp nhận được là
65%, thấp hơn so với các phương pháp khác.
12
3.3 Weighted Finin State Transducer( WFST) và mạng Neural
- Mô hình mạng chuyển dịch trạng thái hữu hạn có trọng số(WFST)
Mô hình WFST của Richard W.Sproat được áp dụng trong tách từ từ năm
1996. Ý tưởng cơ bản là áp dụng WFST với trọng số là xác suất xuất hiện của mỗi từ
trong kho ngữ liệu. Dùng WFST để duyệt qua các câu cần xét, khi đó từ có trọng số
lớn nhất là từ được chọn để tách.
- Mô hình tách từ bằng WFST và mạng Neural
Khi áp dụng WFST sẽ đưa ra kết quả tách từ với xác suất kèm theo, nếu
phương pháp cho nhiều đáp án có xác suất xấp xỉ như nhau, việc chọn lời giải tối ưu
gặp khó khăn. Để khắc phục khuyết điểm này cần sử dụng thêm mạng Neural để khử
nhập nhằng trong kết quả.
Do đó hệ thống tách từ tiếng Việt này sẽ gồm 2 tầng:
• Tầng 1: WFST sẽ giải quyết việc tách từ và một số vấn đề của tiếng Việt như
từ láy, tên riêng, …
• Tầng 2: mạng Neural dùng để khử nhập nhằng nếu có.
Mô hình WFST và mạng Neural.
Tầng WFST
Gồm có 3 bước :
13
+ Xây dựng từ điển trọng số:
Theo mô hình WFST, việc tách từ được xem như là một sự chuyển dịch trạng thái
có xác suất. Từ điển D là một đồ thị biến đổi trạng thái hữu hạn có trọng số. Giả
sử:
- H: là tập các từ chính của tiếng.

- P: là từ loại của từ.
Mỗi cung của D có thể là :
- Từ một phần tử của H đến một phần tử của H
- Từ (ký hiệu kết thúc từ) đến một phần tử của P.
Các nhãn trong D biểu thị một chi phí ước lượng(estimated cost) bằng công thức:
Cost = -log(f/N)
- Với f: tần số của từ, N: kích thước tập mẫu.
Với từ mới, áp dụng xác suất có điều kiện Goog – Turning(Baayen) để tính trọng số.
+ Xây dựng dãy các khả năng tách từ:
Vấn đề ở đây là giảm bùng nổ tổ hợp khi sinh ra các dãy các từ có thể từ một dãy
các tiếng có trong câu. Giả sử 1 câu gồm n âm tiết, mà trong tiếng Việt nột từ gồm
tối đa 4 âm tiết tức là sẽ có tối đa cách tách từ khác nhau. Một câu tiếng Việt
có 24 âm tiết thì luc đó sẽ phải giải quyết 8000000 trường hợp tách từ có thể trong
câu.
Với việc sử dụng từ điển đã hạn chế được sự bùng nổ này. Khi thấy từ nào đó
không có trong từ điển sẽ loại bỏ nhánh tách xuất phát từ đó.
+ Lựa chọn khả năng tách từ tối ưu:
Sau khi có được danh sách các cách tách từ đã có của câu sẽ chọn trường hợp
tách có tổng trọng số bé nhất.
Tầng mạng Neural:
Sau khi câu được tách từ qua mô hình WFST. Để xác định kết quả tách từ trên
có thực sự hợp lệ không cần định ra một ngưỡng giá trị với ý nghĩa: nếu sự chênh
lệnh về trọng số( giữa các cách tách từ khác nhau với cách tách có trọng số nhỏ nhất)
lớn hơn thì kết quả tách từ với trọng số nhỏ nhất đó là đúng và được chấp nhận. còn
14
nếu ngược lại thì kết quả tách với trọng số nhỏ nhất chưa được xem là cách tách đúng
của câu.
Lúc này đưa những cách tách từ của câu này qua mô hình mạng Neural để xử lý tiếp.
Ví dụ: sau khi qua phần xử lý WFST ta được 3 cách tách có trọng số nhỏ nhất nhưng
sự chênh lệch trọng số không lớn hơn :

1.học sinh/N học/V sinh học/N
2.học sinh/N học sinh/N học/V
3.học/V sinh học/N sinh học/N
Trong thực tế tiếng Việt có những dãy từ loại không thể tuần tự đứng cạnh
nhau theo luật ngữ pháp tiếng Việt. khi dùng mô hình mạng Neural sẽ ước lượng giá 3
dãy từ loại: NNV, NVN, VNN. Lúc này tác giả sẽ tách từ bằng tay và đưa vào máy
học để giải quyết nhập nhằng. Để kiểm tra từ loại của một dãy các từ loại trong câu có
hợp lệ hay không có thể dùng hàm truyền sigmoid, đây là một hàm thông dụng trong
các mạng Neural. Câu được chọn là câu có trọng số lớn nhât.
- Ưu điểm:
• Độ chính xác của phương pháp này rất cao ( trên 97%)
• Kết quả tách từ có độ tin cậy kèm theo
• Khi WFST có nhiều kết quả sẽ dùng Neural để khử nhập nhằng.
• Kết quả trong phương pháp này thường được dùng cho dịch máy vì độ chính
xác cao.
- Hạn chế:
• Sự phong phú của từ điển là điều kiện quyết định kết quả của phương pháp. Vì
vậy việc xây dựng tập từ điển rất khó khăn.
3.4 Sử dụng thống kê Internet vào tách từ
Đây là phương pháp mới dựa vào Internet thông qua các cỗ máy tìm kiếm
(search engine) tiêu biểu là google, bing, yahoo…
Bằng cách trích rút các thông tin thống kê về tần số xuất hiện tài liệu
(document frequency-df), số lượng các tài liệu đã được đánh dấu …
15
Một ví dụ về tìm kiếm với google
Từ các thống kê này, ta xây dựng được một hệ thống thu thập và đánh giá mức độ
liên kết giữa các từ.
Do một từ trong tiếng Việt có thể bao gồm nhiều tiếng, có một đại lượng đặc
trưng cho mức độ liên kết giữa các tiếng Mutual information – MI. Đây là một khái
niệm quan trọng trong lý thuyết thông tin, được dùng trong xử lý ngôn ngữ tự nhiên

để thể hiện quan hệ giữa giữa các tiếng trong một từ.
Mức độ liên kết thông tin được giữa 2 tiếng x,y cho trước được tính :
MI
xy
= p
xy
/ (p
x
*p
y
)
Trong đó:
p
x
,p
y
là tần số tài liệu của 2 tiếng x,y
p
xy
là tần số tài liệu của 2 tiếng x,y
Một cách tương tự, với n tiếng liên tiếp:
MI(cw) = p(cw) / ( p(lw) + p(rw)-p(cw) )
16
Thông thường thì MI của 1 từ thường cao hơn hẳn MI của cụm các tiếng không
phải là từ. Phương pháp này cũng tương tự như thống kê dựa vào học máy nhưng có
điểm vượt trội hơn do tận dụng được thế mạnh của Internet
- Ưu điểm
o Linh hoạt, đạt kết quả khả quan
o Không cần dựa vào từ điển
o Tận dụng được kết quả của search engine để xây dựng MI thay cho quá

trình học máy thống kê tần suất dữ liệu từ nguồn dữ liệu ban đầu
o Một ưu điểm nổi bật là có thể nhận biết được tên riêng, địa danh … là
các từ thường không có trong từ điển
o Khả năng đoán nhận được các từ mới cao
- Nhược điểm
o Kết qủa phụ thuộc vào search engine nên đôi khi có thể không chính
xác
o Nếu không có xử lý thêm thì các trường hợp nhập nhằng vẫn chưa
được giải quyết.
o Phải thường xuyên request ra internet nên để tích luỹ được một tập học
đáng kể lưu trữ MI cũng mất khá nhiều thời gian
IV. Xây dựng hệ thống, thực nghiệm
1. Cài đặt thuật toán
Bao gồm 2 thuật toán chính đó là longest matching và sử dụng cấu trúc cây
- Longest matching:
o Sử dụng 2 vòng lặp để quét tất cả các trường hợp các tổ hợp tiếng bắt
đầu từ tiếng thứ nhất đến kết thúc câu
o Để cải thiện tốc độ, theo thống kê về từ loại tiếng Việt chỉ có 1% từ có
5 tiếng, không có từ 6 tiếng nên ta cân nhắc chỉ duyệt các từ dài nhất là
tổ hợp của 4 tiếng. Do đó vòng lặp thứ 2 chỉ từ 0  3
o Độ phức tạp là Ɵ(n*4) ~ Ɵ(n)
o Trong file xlnntn2.php thuật toán có cải tiến để kết hợp với việc tạo
cấu trúc cây để duyệt câu
- Sử dụng cấu trúc dữ iệu dạng cây:
o Lưu trữ các tiếng trong câu dưới dạng cấu trúc gồm có id của nút,
parent_id là id của nút đứng trước nó và value là tiếng được lưu trữ
o Sử dụng thuật toán duyệt cây
foreach ($word_list as $word){
$res= array();
$j=0;

$k=0;
$hit=1;
array_push($res,$word);
$cur=1+substr_count($word["value"],' ');
while($cur<$len){
17
$tempo=$arr[$cur];
for($j=0;$j<=3;$j++){
if(checkWord($tempo)){
$leng=count($res);
$loop=0;
for($k=0;$k<=3;$k++){
if(isset($res[$leng-$k-1])){
if(preg_match("/".$arr[$cur-1]."$/i",$res[$leng-1-$k]["value"])){
$get= array('id'=>$leng+
$loop+1,'value'=>$tempo,'parent_id'=>$res[$leng-1-$k]["id"]);
array_push($res,$get);
$loop++;
}
}
}
}
if(isset($arr[$cur+$j+1])){
$tempo.=" ".$arr[$cur+$j+1];
}
}
$cur++;
}
$length=count($res);
for($k=0;$k<=4;$k++){

$cal= array();
if(isset($res[$leng-$k-1])){
if(preg_match("/".$arr[$len-1]."$/i",$res[$length-1-$k]["value"])){
echo '<br>';
$temp1=$res[$length-1-$k];
while($temp1["id"]!=0){
array_push($cal,$temp1);
$temp1=search_id($res,$temp1["parent_id"]);
}
$cal=array_reverse($cal);
foreach ($cal as $val) {
echo $val["value"]."-";
}
- Bên cạnh đó là 1 số hàm tiện ích khác như để chuẩn hoá câu (xoá các khoảng
trắng thừa, lần vết trên đồ thị, chuyển hoá từ câu về mảng và từ mảng vể câu
ban đầu…)
- Hàm để tính độ phù hợp của kết quả dựa trên thống kê internet và công thức
tính mutual information MI_calculate
2. Cài đặt hệ thống
- Hệ thông được xây dựng dưới mô hình web application, ngôn ngữ sử dụng là
PHP, khuyến khích sử dụng WampServer (download tại địa chỉ
/>- Cài đặt WampServer bản mới nhất 2.1 cho Windown 32bit
18
- Copy thư mục XLNTNT vào folder root của WamServer (Nếu cài ở chế độ
măc định sẽ là C:\wamp\www\) Tương tự với các webserver khác.
- Gồm 4 files chính:
* lexicon.xml (file từ điển tiếng Việt)
* xlnntn1.php (phương pháp Longest Matching)
* xlnntn2.php (phương pháp lai kết hợp Longest Matching và xây dựng
cây)

* process.php (chứa các hàm tiện ích)
3. Chạy thử và thực nghiệm
Giao diện chính của chương trình:
Giao diện tách từ:
19
Nhập đoạn văn bản cần tách từ vào ô trống, bấm nút “Tách từ” để thực hiện.
Hệ thống sẽ xử lý và đưa ra kết quả. Kết quả ở đây bao gồm các cách tách từ
(trong các trường hợp nhập nhằng sẽ có nhiều hơn 1 đáp án) và các xử lý lỗi (tức là
các từ không nhận biết được trong từ điển).
4. Sử dụng một số tool được cung cấp
Phần này em xin trình bày về tool VnToolkit (có thể download tại
– đây là một tool khá đầy đủ, đã tích
hợp cả gán nhãn từ loại và tách từ
Giao diện chương trình:
Cách sử dụng khá đơn giản, nhấn vào menu File để chọn file có sẵn hoặc tạo file
mới.
Bôi đen đoạn văn bản cần xử lý và chọn Tokenization  Tokenize để tách từ hoặc
chọn Tagging  Tagger để gán nhãn từ loại:
20
*** Đánh giá
- Tool làm việc hiệu quả, theo đánh giá là > 95%
- Nhận biết được các tên riêng, địa danh.
21
Tuy nhiên em nhận thấy thuật toán nhận biết tên riêng, địa danh khá đơn giản
và không chính xác cao: Đó là xét các tiếng liền nhau có chữ cái đầu mỗi tiếng
được viết hoa
Chẳng hạn:
- Đưa ra gợi ý phân giải nhập nhằng không thật sự chính xác
22
Hay

V. Đánh giá và mở rộng báo cáo
- Ưu điểm
o Hệ thống phân tích tốt phần lớn các câu thường gặp (chiếm 70-80%)
o Đánh giá được mức độ phù hợp của kết quả dựa vào thống kê internet
và chỉ số mutual information
o Đưa ra được hết các kết quả nhập nhằng
o Xử lý được đoạn văn bao gồm nhiều câu được phân cách với nhau bởi
các dấu chấm
- Nhược điểm
o Chưa xử lý các dấu câu đặc biệt như: dấu ba chấm, gạch ngang, chấm
than, chấm hỏi … Biện pháp hiện thời là xoá các dấu này trong câu
o Chưa xử lý được các dạng số, tên viết tắt, email …
o Thường thì tên riêng và địa danh không được đưa vào từ điển dẫn đến
việc không nhận biết được.
o Chưa đưa ra được phương pháp tối ưu, gợi ý cho người dung cách tách
câu khả quan nhất trong các trường hợp nhập nhằng  đây là 1 hướng
cần mở rộng trong tương lai.
- Mở rộng
23
o Cải tiến thuật toán để phân tách được các câu không bình thường
o Kết hợp với mô hình học máy và mạng neural (như đã trình bày ở phần
trên) ta có thể tận dụng ưu điểm của cả 2 phương pháp
VI. Phân chia công việc
Công việc của các thành viên trong nhóm em được phân chia như sau:
- Em – Nguyễn Đức Long – nhóm trưởng: phụ trách cài đặt 2 thuật toán
Longest matching và phương pháp sử dụng cây
- Nguyễn Văn Khải: nghiên cứu các phương pháp khác, so sánh và đánh giá kết
quả, đưa ra các phương pháp giải quyết lỗi,sử dụng một số tool trên trang web
của thầy Lê Hồng Phương, nhận xét và đánh giá,test chương trình, nhận xét
VII. Kết luận

Báo cáo đã đưa ra một cách tổng quát các cách tiếp cận và phương pháp sử
dụng để tách từ. Mỗi phương pháp đều có ưu nhược điểm riêng vì thế tuỳ theo
trường hợp sử dụng mà ta nên sử dụng các phương pháp khác nhau.
Trong báo cáo cũng đã trình bày hai phương pháp đơn giản mà nhóm em cài
đặt để tách từ, kết quả đạt được khá khả quan và cần phát triển thêm.
Mặc dù đã có rất nhiều nghiên cứu về vấn đề này, nhưng thực sự chưa có một
giải pháp nào tối ưu để tách từ một cách chính xác nhất. Vì thế đây vẫn là một đề
tài thú vị có tính thách thức cao.
Cuối cùng, em xin gửi lời cảm ơn đến cô Lê Thanh Hương về những lý thuyết
rất hay và bổ ích về vấn đề này.
Sinh viên thực hiện
Nhóm 31
Nguyễn Đức Long
24
Nguyễn Văn Khải
VIII. Tài liệu tham khảo
1. Slide bài giảng môn Xử lý ngôn ngữ tự nhiên của cô Lê Thanh Hương
2. Trang web của thầy Lê Hồng Phương với các tool về xử lý tiếng Việt
/>3. Các trang web ;
:8080/demo/
4. Báo cáo “TÌM HIỂU CÁC HƯỚNG TIẾP CẬN BÀI TOÁN PHÂN LOẠI VĂN
BẢN VÀ XÂY DỰNG PHẦN MỀM PHÂN LOẠI TIN TỨC BÁO ĐIỆN TỬ
KHÓA LUẬN CỬ NHÂN TIN HỌC”
NGUYỄN TRẦN THIÊN THANH & TRẦN KHẢI HOÀNG
5. Báo cáo “Hướng tiếp cận mới trong việc tách từ để phân loại văn bản Tiếng
Việt sử dụng giải thuật di truyền và thống kê internet” - (A nolvel Approach
in Word segmentation to classify Vietnamese Documents Using GA and
Internet-Based Statistics)
Nguyễn Thanh Hùng, Đại học QG HCM, 2006
6. SỬ DỤNG BỘ GÁN NHÃN TỪ LOẠI XÁC SUẤT QTAG CHO VĂN BẢN

TIẾNG VIỆT - A case study of the probabilistic tagger QTAG for Tagging
Vietnamese Texts
Nguyễn Thị Minh Huyền, Vũ Xuân Lương, Lê Hồng Phương
7. Và một số trang web khác theo google.com.vn
25

×