Đặ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
Trang 1TRƯỜ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
Hà Nội 2-05-2011
Trang 2Mục Lục
Đề tài : Sử dụng từ điển để tách từ trong câu tiếng Việt 1
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 12
3.1 Transforma Based Learning 12
3.2 Dynamic programming 13
3.3 Weighted Finin State Transducer( WFST) và mạng Neural 14
3.4 Sử dụng thống kê Internet vào tách từ 17
IV Xây dựng hệ thống, thực nghiệm 19
1 Cài đặt thuật toán 19
2 Cài đặt hệ thống 21
3 Chạy thử và thực nghiệm 21
4 Sử dụng một số tool được cung cấp 22
V Đánh giá và mở rộng báo cáo 26
VI Phân chia công việc 26
VII Kết luận 27
VIII Tài liệu tham khảo 28
Trang 3I 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úcphức tạp như Việt Nam, Trung Quốc, Nhật … Đối với con người, đây là 1 vấn đề đơngiả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ácphươ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
Trang 4II 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:
Trang 5Theo 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:
Trang 6Phươ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áp2.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ớ
Trang 72 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ớiphươ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
Đâ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
Trang 8+ …
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:
Trang 9 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
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ông
Trang 10- 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 đượcnhữ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
Trang 11triể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.
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ủaluậ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ậpngữ 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
Trang 12 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ậttươ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 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ándướ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ị theokiể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
Trang 13phầ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
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ó