Nó có nhiệm vụ tìm kiếm và phân loại các thực thể như: thực thể chỉ người, thực thể chỉ tổ chức, thực thể chỉ địa điểm v.v… Trong khóa luận này, chúng tôi giới thiệu một hệ thống nhận dạ
Trang 1
Nguyễn Bá Đạt
NHẬN DẠNG THỰC THỂ
TRONG VĂN BẢN TIẾNG VIỆT
KHÓA LUẬN TỐT NGHIỆP HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Hà Nội – 2009
Trang 2ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI
Nguyễn Bá Đạt
NHẬN DẠNG THỰC THỂ TRONG VĂN BẢN TIẾNG VIỆT
KHÓA LUẬN TỐT NGHIỆP HỆ CHÍNH QUY
GV hướng dẫn: TS Phạm Bảo Sơn
Hà Nội – 2009
Trang 3i
Lời mở đầu
Bài toán nhận dạng thực thể trong văn bản là bài toán khá cơ bản và quan trọng trong nhóm các bài toán rút trích thông tin Nó có nhiệm vụ tìm kiếm và phân loại các thực thể như: thực thể chỉ người, thực thể chỉ tổ chức, thực thể chỉ địa điểm v.v… Trong khóa luận này, chúng tôi giới thiệu một hệ thống nhận dạng thực thể trong văn bản tiếng Việt được phát triển trên nguồn mở GATE (General Architecture for Text Engineering), với kết quả khá khả quan: F-measure – 82.03% Toàn bộ hệ thống và những tài liệu liên quan gồm: định nghĩa thực thể, cách phân loại thực thể và một tập
dữ liệu được gán nhãn chuẩn sẽ được mở cho cộng động sử dụng và phát triển
Trang 4Nhận dạng thực thể trong văn bản Tiếng Việt Nguyễn Bá Đạt
ii
Lời cảm ơn
Trước tiên, em xin gửi lời cảm ơn sâu sắc nhất đến thầy TS Phạm Bảo Sơn, người đã không quản vất vả hướng dẫn em trong suốt thời gian làm khóa luận tốt nghiệp vừa qua Em cũng xin chân thành cảm ơn thầy TS Bùi Thế Duy đã luôn chỉ bảo mỗi khi
và dữ liệu để tôi có thể hoàn thành khóa luận này
Con xin cảm ơn bố, mẹ và gia đình đã luôn bên con, cho con động lực để làm việc tốt hơn Cảm ơn bé Ngân đã luôn ở bên và động viên tớ Cảm ơn tất cả bạn bè đã luôn sát cánh cùng tôi
Hà Nội, ngày 20 tháng 5 năm 2009
Nguyễn Bá Đạt
Trang 5iii
Mục lục
Lời mở đầu i
Lời cảm ơn ii
Mục lục iii
Danh sách hình vẽ v
Danh sách bảng vi
Chương 1 Giới thiệu 1
Chương 2 Các hướng tiếp cận cho bài toán nhận dạng thực thể 4
2.1 Hướng tiếp cận sử dụng hệ luật cho bài toán nhận dạng thực thể 5
2.2 Hướng tiếp cận sử dụng các phương pháp học máy cho bài toán nhận dạng thực thể 7
2.3 Hướng tiếp cận lai 10
Chương 3 Giới thiệu GATE 11
3.1 Tổng quan về GATE 11
3.2 Những khái niệm trong khung làm việc GATE 13
3.3 Bộ từ điển (Gazetteers) 14
3.4 Bộ luật JAPE 15
3.4.1 Mệnh đề trái (LHS) 16
3.4.2 Thành phần thay thế (Macros) 17
3.4.3 Mệnh đề phải (RHS) 18
3.4.4 Sử dụng đoạn mã Java trong JAPE 19
3.4.5 Một vài lựa chọn khi viết luật 20
3.5 Tạo thêm thành phần tích hợp trên khung làm việc GATE 22
3.6 Tạo ứng dụng trên GATE 25
3.7 Các công cụ quản lý chất lượng 25
3.7.1 Công cụ đánh giá độ tương đồng khi gán nhãn hai văn bản (Annotation Diff) 26
Trang 6Nhận dạng thực thể trong văn bản Tiếng Việt Nguyễn Bá Đạt
iv
3.7.2 Công cụ đánh giá chất lượng của hệ thống (Corpus Benchmark tool) 26
Chương 4 Nhận dạng thực thể trong văn bản tiếng Việt 28
4.1 Định nghĩa thực thể, các loại thực thể và cách phân biệt các loại thực thể 29
4.1.1 Các khái niệm cơ bản 29
4.1.1.1 Định nghĩa thực thể và tên thực thể 29
4.1.1.2 Các loại thực thể được nhận dạng 29
4.1.2 Quy tắc nhận dạng thực thể 30
4.2 Chuẩn bị tập dữ liệu 30
4.3 Xây dựng hệ thống nhận dạng thực thể trong văn bản tiếng Việt 32
4.3.1 Bộ tách từ và bộ gán nhãn từ loại 33
4.3.2 Bộ từ điển 35
4.3.3 Bộ luật 37
4.3.3.1 Chuẩn hóa tập nhãn Lookup 38
4.3.3.2 Tạo nhãn “NamePhrase” 38
4.3.3.3 Nhận dạng thực thể chỉ công trình <Facility> 39
4.3.3.4 Nhận dạng thực thể chỉ địa điểm <Location> và thực thể thuộc về quốc gia <Nationality> 39 4.3.3.5 Nhận dạng thực thể chỉ tổ chức <Organization> 41
4.3.3.6 Nhận dạng thực thể chỉ các tổ chức tôn giáo <Religion> 41
4.3.3.7 Nhận dạng các thực thể chỉ người <Person > 42
4.3.3.8 Sử dụng văn cảnh và quá trình nhận dạng thông minh 42
Chương 5 Kết quả thực nghiệm và phân tích lỗi 48
5.1 Các bước tiến hành thực nghiệm 48
5.2 Kết quả thực nghiệm 48
5.3 Phân tích lỗi 51
Chương 6 Tổng kết và hướng phát triển 54
Tài liệu tham khảo 55
Phụ lục A Annotation Guideline 58
Phụ lục B Bảng nhãn từ loại tiếng Việt 63
Trang 7v
Danh sách hình vẽ
Hình 2.1 - Kết quả cho 10 lần thực nghiệm của Nguyễn Cẩm Tú (Nguyễn 2005) 9
Hình 3.1 - Kiến trúc tổng quát của GATE 12
Hình 3.2 - Giao diện thêm một thành phần tích hợp vào GATE 24
Hình 3.3 - Chọn các thành phần cho ứng dụng GATE 25
Hình 3.4 - Giao diện của Annotation Diff 27
Hình 3.5 - Giao diện của Corpus Benchmark tool 27
Hình 4.1 - Mô hình các bước phát triển của hệ thống 31
Hình 4.2 - Mô tả chi tiết hệ thống nhận dạng thực thể trong văn bản tiếng Việt 32
Hình 4.3 - Mô tả kết quả nhận dạng của một trường hợp nhập nhằng giữa Person và Nationality 43
Hình 4.4 – Một ví dụ cho quá trình nhận dạng thông minh 45
Hình 4.5 - Trường hợp hệ thống nhận dạng một dãy các thực thể cạnh nhau 46
Trang 8Nhận dạng thực thể trong văn bản Tiếng Việt Nguyễn Bá Đạt
vi
Danh sách bảng
Bảng 3.1 – Minh họa về nhãn (annotation) 14
Bảng 5.1 – Kết quả nhận dạng trên tập huấn luyện 49
Bảng 5.2 – Bảng kết quả nhận dạng trên tập kiểm tra 49
Bảng 5.3 – Kết quả nhận dạng trên tập kiểm tra với tiêu chí “lỏng” ( lenient evaluation) 50
Bảng 5.4 – Kết quả thực nghiệm của một số hệ thống nhận dạng thực thể trong văn bản tiếng Việt 51
Trang 9Thực thể chỉ thời gian (Time)
Thực thể chỉ các đơn vị tiền tệ (Money)
Thực thể chỉ phần trăm (Percent)
Trong đó, loại thực thể chỉ ngày (Date), thực thể chỉ thời gian (Time), thực thể chỉ các đơn vị tiền tệ (Money), thực thể chỉ phần trăm (Percent) thường ít mang tính nhập nhằng, không khó để nhận dạng Ngoài ra tùy từng lĩnh vực, người ta có thể chú ý
Trang 10Chương 1 Giới thiệu bài toán nhận dạng thực thể Nguyễn Bá Đạt
2
thêm vào những loại thực thể khác đặc thù Ví dụ hệ thống nhận dạng thực thể trong văn bản với lĩnh vực y tế (Phạm 2007) sẽ nhận những thực thể chỉ tên thuốc, hoặc các loại bệnh v.v… như những loại thực thể chính
Có ba hướng tiếp cận chính cho bài toán nhận dạng thực thể trong văn bản: hướng tiếp cận sử dụng hệ luật được xây dựng bởi chuyên gia (Maynard 2001, Cao 2007), hướng tiếp cận sử dụng các phương pháp học máy (Mansouri 2008) và hướng tiếp cận lai (Fang 2002) Tuy mang tính tự động cao, nhưng các hướng tiếp cận sử dụng các phương pháp học máy và hướng tiếp cận lai đòi hỏi cần phải có một tập dữ liệu đã được gán nhãn (annotated corpus) đủ lớn cho quá trình huấn luyện Trong khi
đó, hướng tiếp cận sử dụng hệ luật được xây dựng bởi chuyên gia lại không yêu cầu điều này, hệ thống có thể hoạt động ngay khi hệ luật được hình thành
Là một bài toán khá quan trọng và cơ bản nhưng hiện nay vẫn chưa có nhiều nghiên cứu về bài toán nhận dạng thực thể trong văn bản đối với tiếng Việt Hơn nữa những hệ thống hiện thời không phải là nguồn mở nên rất khó để tiếp cận sử dụng và phát triển (Nguyễn 2005, Cao 2007) Chính vì vậy chúng tôi quyết định xây dựng một
hệ thống nhận dạng thực thể sử dụng hệ luật cho văn bản tiếng Việt trên nguồn mở của khung làm việc GATE (General Architecture for Text Engineering)1
Toàn bộ hệ thống sẽ được mở cho cộng đồng sử dụng và phát triển Song song với việc phát triển
hệ thống, chúng tôi cũng xây dựng một bộ tài liệu bao gồm: định nghĩa các thực thể, các loại thực thể, cùng với một tập dữ liệu được gán nhãn chuẩn (corpus) cho bài toán nhận dạng thực thể trong văn bản tiếng Việt
1
Website chính thức của GATE: http://gate.ac.uk/download/index.html
Trang 113
Phần còn lại của khóa luận được chia thành 5 chương:
Chương 2: Chúng tôi giới thiệu về những hướng tiếp cận cho bài toán nhận dạng thực thể trên thế giới, cũng như những công trình nghiên cứu đối với tiếng Việt
Chương 3: Chúng tôi giới thiệu một cách tổng quan về khung làm việc GATE,
và cách xây dựng một hệ thống tích hợp (Plugin) trong GATE
Chương 4: Chúng tôi mô tả chi tiết hệ thống nhận dạng thực thể trong văn bản tiếng Việt được xây dựng trên khung làm việc GATE
Chương 5: Chúng tôi đưa ra những kết quả thực nghiệm và phân tích những lỗi vẫn còn tồn tại
Chương 6: Chúng tôi đưa ra những kết luận về hệ thống và hướng phát triển hệ thống trong tương lai
Trang 12Chương 2 Các hướng tiếp cận cho bài toán nhận dạng thực thể Nguyễn Bá Đạt
Hướng tiếp cận sử dụng hệ luật được xây dựng bởi chuyên gia (rule based) (để
thuận tiện, chúng tôi sẽ sử dụng cụm từ viết tắt “hướng tiếp cận sử dụng hệ luật”)
Hướng tiếp cận sử dụng các phương pháp học máy (machine learning)
Hướng tiếp cận lai (hybrid system) giữa hai hướng tiếp cận trên
Trong chương này, chúng tôi giới thiệu tổng quan về các hướng nghiên cứu cùng những kết quả đã đạt được cho bài toán nhận dạng thực thể trong văn bản Để thống nhất, các hệ thống trong khuôn khổ của khóa luận được đánh giá sử dụng độ đo: Precision, Recall và F-measure
Trang 135
2.1 Hướng tiếp cận sử dụng hệ luật cho bài toán nhận dạng thực thể
Sử dụng chuyên gia xây dựng hệ luật là phương pháp truyền thống, có thể nói là được
áp dụng sớm nhất trong các bài toán xử lý ngôn ngữ tự nhiên nói chung và bài toán nhận dạng thực thể trong văn bản nói riêng Hệ luật là một tập hợp các luật do con người đặt ra nhằm những mục đích nhất định, ở đây là việc nhận dạng các thực thể trong văn bản Một hệ thống nhận dạng thực thể sử dụng hệ luật thông thường sẽ có các các thành phần chính như: từ loại (danh từ, động từ v.v…), ngữ cảnh (từ đứng trước, từ đứng sau v.v…) và một số thuộc tính (viết hoa, viết thường v.v…) kết hợp với một bộ từ điển để viết thành các luật (Budi 2003) Ví dụ với câu sau đây:
“President Bush said Monday‟s talks will include discussion on security, a timetable for U.S forces to leave Iraq.”
Trong ví dụ này từ “Bush” đứng sau từ “President” sẽ được nhận là một tên người (Person), “Iraq” đứng sau động từ “leave” sẽ được nhận là tên chỉ địa điểm (Location) Với ý tưởng tương tự, Iwanska sử dụng các kiểu từ điển chuyên biệt (gazetteers) (Iwanska 1995), Morgan sử dụng một bộ phân tích ngôn ngữ ở mức độ cao (kết hợp giữa sự phân tích cú pháp, phân tích từ loại và ngữ cảnh) nhằm tăng hiệu quả cho hệ thống nhận dạng thực thể (Morgan 1995)
Có lẽ một trong những ưu điểm lớn nhất của hướng tiếp cận sử dụng hệ luật so với hướng tiếp cận sử dụng các phương pháp học máy là hướng tiếp cận sử dụng hệ luật không cần một tập dữ liệu đã được gán nhãn Tức là hệ thống có thể hoạt động và thu được kết quả ngay khi hình thành các luật Với một luật đơn giản:
Mr + <Person> - trong tiếng anh
hay: “ông” + tên người (Person) – trong tiếng Việt
cũng có thể nhận ra một số lượng lớn các thực thể trong văn bản Bởi vậy ngay từ giai đoạn đầu xây dựng tập dữ liệu được gán nhãn cho bài toán nhận dạng thực thể trong văn bản tiếng Việt, chúng tôi đã tiến hành song song việc phát triển hệ thống luật và gán nhãn cho tập dữ liệu Hệ thống sử dụng hệ luật chạy và nhận dạng thực thể tự
Trang 14Chương 2 Các hướng tiếp cận cho bài toán nhận dạng thực thể Nguyễn Bá Đạt
sự phát triển và thu được những kết quả khá khả quan Maynard giới thiệu hệ thống MUSE (Multi source entity finder) được phát triển trên GATE có độ thích ứng cao, dễ dàng thay đổi khi chuyển sang một lĩnh vực mới Người dùng có thể chọn bộ luật (grammar) cũng như bộ từ điển (gazetter) cho những lĩnh vực khác nhau (Maynard 2001) Kết quả thu được khá khả quan – F-measure khoảng 93 ~ 94 % với các loại tên:
“Entity (organization, person, location), Time(date, time), Number (money, percent), Address (email, url, telephone, ip) và Identifier” Tạm thời việc chọn hay chuyển đổi các phần của hệ thống được thực hiện bằng tay, tuy nhiên bài báo cũng đưa ra ý tưởng phát triển hệ thống để có thể tự động chọn các bộ luật và bộ từ điển tương ứng với từng lĩnh vực
Một số nghiên cứu khác tái sử dụng các luật Jape, thay đổi và chỉnh sửa để tạo
ra những mô hình khác nhau cho bài toán nhận dạng thực thể trong văn bản với nhiều ngôn ngữ và lĩnh vực (Pastra 2002, Maynard 2003) đã chứng minh tính hiệu dụng của GATE và hệ thống luật JAPE
Đối với tiếng Việt, có thể nói hệ thống VN-KIM IE là hệ thống đầu tiên có sử dụng bộ luật JAPE trong khung làm việc GATE(Cao 2007) Chức năng chính của bộ VN-KIM IE là nhận biết và chú thích tự động cho các thực thể có tên trong trang web tiếng Việt Quá trình rút trích thông tin của VN-KIM IE được thực hiện qua các bước:
Quy chuẩn các văn bản trên web về một loại mã tiếng Việt
Trích ra các khối văn bản mang thông tin chính
Gán nhãn từ loại cho văn bản
Trang 15I: nếu từ nằm trong cụm thực thể đang xét
O: nếu từ nằm ngoài cụm thực thể đang xét
B: nếu từ là vị trí bắt đầu cụm thực thể đang xét
Sau đó dựa trên những thông tin về nhãn của từ thu được qua mô hình IOB, cùng với
từ loại và loại thực thể (named entity) v.v… để trích chọn đặc trưng làm đầu vào cho các mô hình phân loại sử dụng các phương pháp học máy
Thông thường có ba kiểu hệ thống sử dụng các phương pháp học máy là hệ thống học có giám sát (Supervised), học không giám sát (Unsupervised) và học nửa giám sát (Semisupervised) Tuy nhiên hệ thống sử dụng phương pháp học không giám sát và học nửa giám sát ít được áp dụng cho bài toán nhận dạng thực thể, trên thế giới cũng chỉ có một vài nghiên cứu về các hệ thống này, tiêu biểu như Collins giới thiệu
hệ thống sử dụng dữ liệu không gán nhãn (Collins 1999), Kim đưa ra hệ thống sử dụng một từ điển tên riêng và tập dữ liệu không gán nhãn (Kim 2002)
Trang 16Chương 2 Các hướng tiếp cận cho bài toán nhận dạng thực thể Nguyễn Bá Đạt
Tuy bài toán nhận dạng thực thể là một bài toán khá cơ bản trong trích chọn thông tin và xử lý ngôn ngữ tự nhiên nhưng chưa có nhiều nghiên cứu về bài toán này đối với tiếng Việt Một trong những nghiên cứu đầu tiên là của tác giả Nguyễn với hệ thống nhận dạng thực thể trong văn bản dựa trên mô hình Conditional Random Fields (CRF) để xác định 8 loại thực thể: thực thể chỉ người (Person), thực thể chỉ địa danh (Location), thực thể chỉ tổ chức (Organization), phần trăm, thời gian (Time), số (Number), tiền tệ (Money) (Nguyễn 2005) Tác giả tiến hành thực nghiệm sử dụng công cụ FlexCRFs2
-measure trung bình khoảng 80 ~ 81%
2
http://flexcrfs.sourceforge.net/ - website chính thức của công cụ FlexCRFs
Trang 17Hình 2.1 - Kết quả cho 10 lần thực nghiệm của Nguyễn Cẩm Tú (Nguyễn 2005)
Trong khi đó Phạm giới thiệu hệ thống nhận dạng thực thể trong văn bản tiếng Việt sử dụng phương pháp máy vector hỗ trợ (SVM) (Phạm 2007) Tác giả mô tả khá
kỹ quá trình xây dựng hệ thống song song với quá trình xây dựng tập dữ liệu bởi ở Việt Nam hiện nay vẫn chưa có một tập dữ liệu chuẩn cho bài toán nhận dạng thực thể Tác giả chọn phương pháp xây dựng hệ thống bán tự động Một trăm văn bản đầu tiên được gán nhãn thực thể bằng tay, sau đó sử dụng dữ liệu này làm tập huấn luyện cho thuật toán SVM tạo nên một hệ thống nhận dạng thực thể Dùng hệ thống này để gán nhãn tự động cho thực thể trong một trăm văn bản tiếp theo, sau đó chỉnh sửa lại bằng tay và tiếp tục huấn luyện lại để tạo ra một hệ thống tốt hơn Quá trình này được lặp đi lặp lại nhiều lần cho đến khi thu được một tập dữ liệu được gán nhãn đủ lớn Thực tế quá trình nửa tự động ở đây không có ý nghĩa về mặt cải thiện kết quả cuối cùng của
hệ thống, mà nó chỉ có ý nghĩa giúp giảm công sức của việc gán nhãn bằng tay cho một dữ liệu khổng lồ Kết quả của hệ thống thu được F-measure khoảng 83.56% Trong đó tác giả cũng nhấn mạnh đến tầm quan trọng của một bộ tách từ tốt trong hệ
Trang 18Chương 2 Các hướng tiếp cận cho bài toán nhận dạng thực thể Nguyễn Bá Đạt
10
thống nhận dạng thực thể với văn bản tiếng Việt (điều này sẽ được chúng tôi phân tích
rõ hơn trong chương 4)
Hệ thống sử dụng các phương pháp học máy luôn có tính tự động hóa cao, tuy nhiên một yêu cầu không thể thiếu để mô hình hoạt động hiệu quả là một tập dữ liệu lớn đã được gán nhãn chuẩn Điều này đòi hỏi một quá trình chuẩn bị dữ liệu khá công phu và mất thời gian khi bắt đầu làm trên một ngôn ngữ mới hoặc một lĩnh vực mới
2.3 Hướng tiếp cận lai
“Hệ thống lai” là hệ thống kết hợp giữa hai hướng tiếp cận truyền thống, là sử dụng hệ luật và các phương pháp học máy, nhằm sử dụng được ưu điểm của cả hai hướng tiếp cận này Tuy chưa có một nghiên cứu nào về hướng tiếp cận này đối với tiếng Việt, nhưng cũng đã có một vài nghiên cứu đạt kết quả khá khả quan với tiếng Trung Quốc được xem là khá gần gũi với tiếng Việt Sirhari và X Fang cùng đưa ra những hệ thống lai kết hợp giữa các phương pháp học máy và hệ luật (Sirhari 2000, Fang 2002) Đặc biệt hệ thống của X Fang đã thu được những kết quả khá cao cho văn bản tiếng Trung Tuy chưa có nhiều nghiên cứu về hướng tiếp cận này cho bài toán nhận dạng thực thể trong văn bản tiếng Việt, nhưng với những kết quả khả quan như vậy có thể
nó sẽ là hướng quan trọng trong tương lai
Trang 1911
Chương 3
Giới thiệu GATE
GATE là một khung làm việc mã nguồn mở cho các bài toán xử lý văn bản do nhóm giáo sư Cunningham thuộc trường đại học Sheffield – Anh phát triển (H Cunningham – 2002) Có thể download phiên bản mới nhất của GATE miễn phí tại địa chỉ:
Tầng dữ liệu (Corpus Layer): Kho tài liệu gồm nhiều thành phần khác nhau như: tập dữ liệu (Corpus) chứa các văn bản (Document), nội dung văn bản (Document Content) gồm các bộ nhãn (Annotation Set), nhãn (Annotation) gồm các đặc trưng (Feature Map) (các khái niệm sẽ được giải thích rõ trong mục 3.2)
Trang 20Chương 3 Giới thiệu GATE Nguyễn Bá Đạt
12
Tầng xử lý (Processing Layer): Gồm các thành phần xử lý khác nhau như: tách
từ (word segmentation), gán nhãn từ loại (POS), nhận dạng thực thể (NE) v.v… Tầng nguồn ngôn ngữ (Language Resource Layer): gồm các kho dữ liệu khác nhau như: tập từ điển (gazetteers), tập từ vựng (lexicon) v.v…
Tầng lưu trữ (DataStore Layer): Lưu trữ dữ liệu ở các dạng khác nhau
Hình 3.1 - Kiến trúc tổng quát của GATE
Sở dĩ nói GATE như một khung làm việc chuẩn bởi nó có khá nhiều ưu điểm như:
Tính linh động: GATE có thể xử lý nhiều định dạng văn bản như: xml, pdf, text v.v…
Trang 2113
Tính đầy đủ: GATE cung cấp đầy đủ các thành phần cơ bản
o Thành phần ngôn ngữ (Language Resources): có thể là kho dữ liệu (corpus) hoặc các tài nguyên khác như: tập từ điển (gazetteers), tập từ vựng (lexicons) hay một cấu trúc (ontology)
o Thành phần xử lý (Processing Resource): là một chương trình được cài đặt thuật toán xử lý trên các thành phần ngôn ngữ
o Thành phần thể hiện (Visual Resource): là chương trình phân tích các văn bản đã được xử lý và thể hiện chúng lên giao diện tương tác với người dùng
Tính khả dụng: GATE cung cấp một thư viện API khá linh hoạt và đầy đủ cho người lập trình Java Ngoài ra ta có thể rất dễ dàng thêm vào những thành phần tích hợp (Plugin) mới, bởi cơ chế dễ dàng “thêm và tích hợp” của GATE
Tính dễ dùng: GATE cũng cung cấp một giao diện đồ họa (GUI) cho phép người dùng có thể thao tác một cách dễ dàng và trực quan
Tuy vẫn còn một vài hạn chế về giao diện chưa ổn định, quản lý lưu trữ chưa thực sự tốt v.v… nhưng với những ưu điểm nổi bật kể trên, GATE đã trở thành một khung làm việc khá hiệu quả trong lĩnh vực xử lý văn bản
3.2 Những khái niệm trong khung làm việc GATE
Trước khi tìm hiểu sâu hơn về GATE, chúng tôi sẽ giới thiệu một vài khái niệm được
sử dụng trong khung làm việc GATE
Tập dữ liệu (Corpora): là một tập hợp các văn bản (Document)
Văn bản (Document): gồm nội dung văn bản, nhãn (annotations) và đặc trưng (features)
Nhãn (Annotation): là một cấu trúc gồm điểm đầu (startNode), điểm cuối (endNode), khóa (Id), kiểu (Type) và một tập các đặc trưng (FeatureMap) Ví
dụ về nhãn được minh họa trong bảng 3.1
Trang 22Chương 3 Giới thiệu GATE Nguyễn Bá Đạt
14
Tập đặc trưng (FeatureMap): là kiểu tập hợp (kiểu Map trong java) của các đặc trưng
Đặc trưng (Features): là cặp tên (kiểu String) và giá trị (kiểu Object)
Bảng 3.1 – Minh họa về nhãn (annotation)
3.3 Bộ từ điển (Gazetteers)
Bộ từ điển (gazetteers) gồm một tập hợp các từ điển nhỏ chứa các từ cùng loại theo một nghĩa nào đó
Ví dụ:
Theo tiêu chí loại tên ta có thể có các từ điển:
o từ điển tên người: Peter, Ronaldo, Jackson v.v…
o từ điển tên nước: England, American, Mexico v.v…
o từ điển tên thành phố: New York, LonDon, Paris v.v…
Theo tiêu chí vị trí của từ ta có thể có các từ điển:
o từ điển các thành phần đứng trước tên người: Mr, Mrs, Miss, Sir v.v…
o từ điển các thành phần đứng trước địa điểm: leave, live in v.v…
Trang 2315
Mỗi một từ điển trong bộ từ điển được khai báo trong file list.def với bộ giá trị: tên file chứa từ điển, giá trị đặc trưng thứ nhất (majorType), giá trị đặc trưng thứ hai (minorType – có thể có hoặc không) Ví dụ: person.lst:name_person:person – khai báo một từ điển trong file person.lst với hai đặc trưng majorType = “name_person” và minorType = “person”
Khi bộ từ điển hoạt động trên văn bản, các nhãn (annotations) kiểu Lookup (một kiểu nhãn mặc định trong GATE) được tạo ra bằng cách so khớp các từ trong bộ
từ điển với các xâu trong văn bản Ví dụ: trong văn bản xuất hiện từ Peter có trong từ điển person.lst như khai báo ở trên Thì tại xâu “Peter” trong văn bản sẽ xuất hiện một nhãn (annotation) mới kiểu Lookup với hai đặc trưng: majorType = “name_person” và minorType = “person” Các nhãn (annotation) Lookup này sẽ được sử dụng trong khi viết các luật JAPE
GATE cũng hỗ trợ một công cụ tạo, chỉnh sửa và quan sát gazetteer đó là Gaze
3.4 Bộ luật JAPE
Bộ luật JAPE là thành phần cơ bản trong khung làm việc của GATE, cho phép người dùng viết biểu thức chính quy trên nhãn (annotation) và tạo ra các nhãn mới trong văn bản Một bộ luật JAPE có thể bao gồm nhiều luật nhỏ (phases) Mỗi luật nhỏ (phase) gồm các mẫu (pattern) và cách thực thi (action) khác nhau có dạng: LHS (left-hand-side) RHS (right-hand-side)
Ví dụ:
Rule: Person2
(
{Lookup.majorType == person } ):person
:person.Person = {kind = “Person”, rule = “Person gazetteer”}
Trang 24Chương 3 Giới thiệu GATE Nguyễn Bá Đạt
({Person} | {Location}) : name
Trong ví dụ này cứ nhãn (annotation) có kiểu (Type) là Person hoặc Location sẽ được được gán là một mẫu (pattern) “name” Vậy mẫu là gì? Ta có thể đưa ra khái niệm về mẫu như sau: một mẫu (pattern) gồm một hoặc nhiều nhãn (annotation) thỏa mãn các lựa chọn (có thể về kiểu nhãn (annotation Type), có thể về các đặc trưng (features) v.v…)
Trong một mệnh đề trái, ta có thể nhận nhiều mẫu, các mẫu có thể bao hàm lẫn nhau Ví dụ:
Trang 2517
(
( ({Lookup.majorType == “jobtitle”}):job
ra, khi một thành phần thay thế đã được khai báo thì mọi luật trong bộ luật đều có thể
sử dụng nó mà không cần phải khai báo lại
Ví dụ về thành thần thay thế (Macros) - khai báo thành phần thay thế NEWTITLE
Trang 26Chương 3 Giới thiệu GATE Nguyễn Bá Đạt
:name.Location = {kind="city", rule=„„Search in gazetters‟‟
Trong ví dụ trên, mệnh đề trái cung cấp cho mệnh đề phải các mẫu (pattern) là tên các thành phố (tìm trong từ điển có majorType =“name_city”) Mệnh đề phải tạo ra các nhãn mới (annotations) tương ứng với các mẫu (pattern) nhận được Nhãn (annotation) mới được tạo ra có kiểu là “Location” và hai đặc trưng (feature) là kind = “city” và rule = “Search in gazetters”
Trang 2719
3.4.4 Sử dụng đoạn mã Java trong JAPE
Để tăng tính linh động và hiệu quả, bộ luật JAPE hỗ trợ chèn những đoạn mã JAVA vào trong mệnh đề phải Nhờ đó ngoài việc tạo ra các nhãn (annotations) mới, mệnh đề phải còn có thể làm rất nhiều việc khác như: chèn thêm các đặc trưng (features), thay đổi kiểu nhãn (Type) hay xóa các nhãn đã tồn tại v.v…
Ví dụ:
Rule: Person1
(
{Lookup.majorType == person } ):person
{
gate.AnnotationSet person = gate.AnnotationSet)bindings.get("person"); gate.Annotation personAnn = (gate.Annotation)person.iterator().next(); gate.FeatureMap features = Factory.newFeatureMap();
features.put("gender", personAnn.getFeatures().get("minorType")); features.put("rule", "Person gazetteer");
outputAS.add(person.firstNode(), person.lastNode(), "Person",features); }
Rule: Person2
(
{Lookup.majorType == person } ):person
Trang 28Chương 3 Giới thiệu GATE Nguyễn Bá Đạt
20
:person.Person = {kind = “Person”, rule = “Person gazetteer”}
Để thấy định tính hiệu quả của các đoạn mã JAVA trong mệnh đề phải, ta so sánh hai luật Person1 và Person2 Cả hai luật đều nhận từ mệnh đề trái các mẫu (pattern) thỏa mãn nằm trong từ điển có “majorType = person” Ở luật Person2 (không dùng mã JAVA) người viết luật không thể sử dụng bất kỳ thông tin nào khác, vì thế việc tạo ra các nhãn mới (annotations) không mang đầy đủ thông tin cần thiết Trong khi đó luật Person1 có thể sử dụng thêm nhiều thông tin khác như: các đặc trưng còn lại của mẫu
do vế trái cung cấp (ví dụ: “personAnn.getFeatures().get("minorType")”) và sử dụng
nó để tạo nên các nhãn mới mang nhiều thông tin hơn
3.4.5 Một vài lựa chọn khi viết luật
Thành phần đầu tiên của mỗi luật (phase) JAPE luôn là các lựa chọn như:
Kiểu điều khiển (Control) để quản lý cách so khớp mẫu Có 5 lựa chọn cho kiểu điều khiển là “brill”, “all”, “first”, “once” và “appelt”
o “brill”: khi có nhiều hơn một luật cùng thỏa mãn cho một đoạn của văn bản, thì tất cả các luật này đều được thực thi Sau khi quá trình so khớp (matching) diễn ra ở tất cả các luật thì điểm bắt đầu quá trình so khớp tiếp theo sẽ là điểm kết thúc của luật được so khớp dài nhất trong quá trình trước (longest matching)
o “all”: cũng giống như “brill” nó cho phép thực hiện nhiều luật trên cùng một đoạn văn bản Tuy nhiên có điểm khác biệt với “brill” đó là: điểm bắt đầu quá trình so khớp tiếp theo là điểm bắt đầu của nhãn (annotation) gần nhất sau nó
o “first”: luật được thực hiện ngay khi quá trình so khớp đầu tiên được thỏa mãn Bởi vậy nó không thích hợp cho các luật sử dụng “*”, “+”,
“?”
o “once”: chỉ có luật đầu tiên thỏa mãn quá trình so khớp được thực hiện
Trang 29 Nếu có hai hay nhiều luật so khớp cùng một đoạn trong văn bản
và có độ ưu tiên như nhau thì luật nào được định nghĩa sớm nhất
sẽ có độ thực thi cao nhất và được thi hành
Kiểu gỡ rối (Debug): Khi kiểu gỡ rối được bật, kiểu điều khiển là “appelt” và
có nhiều hơn hai sự so khớp có thể xảy ra, sự xung đột sẽ được hiển thị cho người dùng qua dòng thông báo trên màn hình
Tập các nhãn đầu vào (Input Annotations): các nhãn (annotations) có kiểu (Type) thuộc tập các nhãn đầu vào sẽ được sử dụng như là đầu vào cho các mệnh đề trái (quá trình so khớp)
Ví dụ minh họa cho một luật JAPE:
Phase: Location
Input: Token SpaceToken Lookup
Options: control = appelt
Trang 30Chương 3 Giới thiệu GATE Nguyễn Bá Đạt
Kiểu điều khiển: “appelt”
Luật (phase) gồm hai luật nhỏ (rule) đó là: Location với độ ưu tiên là 25 và SearchGazetteers với độ ưu tiên là 20
3.5 Tạo thêm thành phần tích hợp trên khung làm việc GATE
Một thành phần tích hợp (Plugin) có thể gồm ba loại: thành phần ngôn ngữ (Language Resources), thành phần xử lý (processing Resource), thành phần thể hiện (Visual Resource) (tham khảo khái niệm ở mục 3.1) Thành phần tích hợp được sử dụng để tạo nên các ứng dụng trong GATE (mục 3.6) Ví dụ: hệ thống nhận dạng thực thể trong văn bản tiếng Việt của chúng tôi gồm 3 thành phần tích hợp (mục 4.3):
Bộ tách từ và gán nhãn từ loại – Coltech.NLP.tokenizer
Trang 31Việc tạo ra một thành phần xử lý rất đơn giản, được thực hiện qua các bước:
Tạo lớp Plugin (tên thành phần xử lý) kế thừa (extends) lớp AbstractProcessingResource và thể hiện (implements) lớp ProcessingResource Tạo file creole.xml khai báo thành phần xử lý mới Ví dụ:
java.lang.String
</PARAMETER>
</RESOURCE>
</CREOLE>
Trang 32Chương 3 Giới thiệu GATE Nguyễn Bá Đạt
%GATE-Cách 2: Chọn File -> Manage CREOLE plugins -> Add new CREOLE repository -> Select a directory và chọn thư mục chứa thành phần tích hợp mới tạo (hình 3.2)
Như vậy, ta đã có một thành phần tích hợp mới sẵn sàng hoạt động trên khung làm việc GATE
Hình 3.2 - Giao diện thêm một thành phần tích hợp vào GATE
Trang 3325
Hình 3.3 - Chọn các thành phần cho ứng dụng GATE
3.6 Tạo ứng dụng trên GATE
Một ứng dụng (Application) trên GATE bao gồm một tập các thành phần tích hợp (Plugin) Ta có thể chọn các thành phần phù hợp, hoặc loại bỏ những thành phần tích hợp không cần thiết cho ứng dụng (hình 3.3) Chính nhờ cơ chế này, chúng tôi có thể
dễ dàng kết hợp sử dụng các thành phần tích hợp đã được xây dựng sẵn trong GATE cùng với những thành phần tích hợp mới do chúng tôi xây dựng để tiết kiệm chi phí và đạt hiệu quả cao hơn
3.7 Các công cụ quản lý chất lượng
Khi phát triển một hệ thống, các công cụ quản lý chất lượng là rất cần thiết Việc luôn luôn có sự đánh giá chất lượng ngay từ giai đoạn xây dựng tập dữ liệu cho đến những
Trang 34Chương 3 Giới thiệu GATE Nguyễn Bá Đạt
so sánh những phần làm việc chung, để đi đến thống nhất tạo ra một tập dữ liệu chuẩn Trong ví dụ ở hình 3.4 là giao diện của “Annotation Diff” khi so sánh hai văn bản doctest (Key Document) và doc (Respone Document) với kiểu nhãn (Annotation Type) “Location” Khi so sánh hai văn bản, những nhãn (annotation) giống nhau sẽ được bỏ qua, những nhãn khác nhau sẽ được hiển thị lên giao diện đồ họa để người dùng có thể dễ dàng quan sát được Ngoài ra “Annotation Diff” cũng cung cấp ba thông số đo độ chính xác cơ bản là “Recall, Precision và F-Measure”
Tuy nhiên điểm hạn chế của “Annotation Diff” là chỉ so sánh được từng cặp văn bản, và từng kiểu nhãn khác nhau
3.7.2 Công cụ đánh giá chất lượng của hệ thống (Corpus Benchmark tool)
Đây là công cụ cho phép người sử dụng đánh giá độ tương đồng của các tập dữ liệu khác nhau như: tập dữ liệu được gán nhãn (annotated corpus) bằng tay, tập dữ liệu được xử lý bởi hệ thống hiện hành, hay tập dữ liệu được xử lý bởi một hệ thống được lưu trữ Corpus Benchmark tool hoạt động cũng hoạt động tương tự như Annotation Diff, nhưng là trên một tập văn bản và tất cả các nhãn Giao diện của Corpus Benchmark tool như hình 3.5
Trang 3527
Hình 3.4 - Giao diện của Annotation Diff
Hình 3.5 - Giao diện của Corpus Benchmark tool
Trang 36Chương 4 Nhận dạng thực thể trong văn bản tiếng Việt Nguyễn Bá Đạt
28
Chương 4
Nhận dạng thực thể trong văn bản tiếng Việt
Cùng với sự phát triển của lĩnh vực xử lý ngôn ngữ tự nhiên cho tiếng Việt, bài toán nhận dạng thực thể trong văn bản tiếng Việt đã hình thành và bắt đầu thu được những kết quả khả quan Một số hệ thống tiêu biểu như: hệ thống nhận dạng thực thể trong văn bản dựa trên mô hình Conditional Random Fields (CRF) (Nguyễn 2005), hệ thống nhận dạng thực thể sử dụng phương pháp máy vector hỗ trợ (SVM) (Phạm 2007), hệ thống VN-KIM NE, nhận biết và chú thích tự động cho các thực thể (Cao 2007)
Tuy nhiên cho đến thời điểm này vẫn chưa có những quy chuẩn cho bài toán nhận dạng thực thể trong văn bản tiếng Việt, ví dụ như:
Chưa có tập các loại nhãn chuẩn cho thực thể: Nguyễn đưa ra 8 loại nhãn cho thực thể (Nguyễn 2005), Phạm đưa ra 22 loại nhãn (Phạm 2007), trong khi Cao nhận diện 7 loại thực thể (Cao 2007)
Chưa có một khung làm việc chuẩn Các hệ thống nhận dạng thực thể hiện nay
ở Việt Nam xây dựng trên nền mã nguồn đóng, và rất khó để cộng đồng có thể tiếp cận sử dụng và phát triển
Bởi vậy, chúng tôi quyết định xây dựng một hệ thống nhận dạng thực thể trong văn bản tiếng Việt bắt đầu từ việc định nghĩa các thực thể, các loại thực thể cho đến một khung làm việc và tập dữ liệu được gán nhãn chuẩn Hệ thống sẽ được xây dựng trên khung làm việc GATE và được mở cho cộng đồng có thể sử dụng và phát triển