Khóa luận Nhận dạng thực thể trong văn bản tiếng Việt

ĐẠ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  
Ngành: Công Nghệ Thông Tin  
Hà Nội – 2009  
ĐẠ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  
Ngành:  
Công Nghệ Thông Tin  
GV hướng dẫn: TS. Phạm Bảo Sơn  
Hà Nội – 2009  
Nhận dạng thực thể trong văn bản Tiếng Việt  
Nguyễn Bá Đạt  
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.  
i
 
Nhận dạng thực thể trong văn bản Tiếng Việt  
Nguyễn Bá Đạt  
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  
em có những vấn đề vướng mắc.  
Em xin bày tỏ lời cảm ơn sâu sắc đến các thầy cô giáo trong Trường Đại Học  
Công Nghệ đã tận tình dạy dỗ em suốt bốn năm học qua.  
Tôi xin chân thành cảm ơn đề tài “Nghiên cứu phát triển một số sản phẩm thiết  
yếu về xử lý tiếng nói và văn bản tiếng Việt”, mã số KC01.01/06-10 đã hỗ trợ kinh phí  
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  
ii  
 
Nhận dạng thực thể trong văn bản Tiếng Việt  
Nguyễn Bá Đạt  
Mục lục  
iii  
 
Nhận dạng thực thể trong văn bản Tiếng Việt  
Nguyễn Bá Đạt  
3.7.2 Công cụ đánh giá chất lượng của hệ thống (Corpus Benchmark tool) ..........................................26  
iv  
Nhận dạng thực thể trong văn bản Tiếng Việt  
Nguyễn Bá Đạt  
Danh sách hình vẽ  
v
 
Chương 1. Giới thiệu bài toán nhận dạng thực thể  
Nguyễn Bá Đạt  
Chương 1  
Giới thiệu  
Với sự bùng nổ của nguồn dữ liệu trên Internet, những bài toán về xử lý thông tin như:  
trích chọn thông tin, tóm tắt nội dung văn bản v.v… ra đời như một nhu cầu tất yếu.  
Bài toán nhận dạng thực thể là một bài toán khá cơ bản trong nhóm các bài toán trích  
chọn thông tin. Nó có nhiệm vụ tìm kiếm và rút ra những thông tin liên quan đến thực  
thể (một đối tượng hoặc một tập hợp đối tượng của thế giới tự nhiên) trong văn bản,  
thông thường là loại thực thể. Có thể tùy theo từng bài toán, từng lĩnh vực cụ thể,  
người ta đưa ra danh sách những loại thực thể được nhận dạng khác nhau. Các hệ  
thống nhận dạng thực thể trong văn bản (Cao 2007, Mansouri 2008) thường nhận một  
số loại thực thể:  
Thực thể chỉ người (Person).  
Thực thể chỉ tổ chức (Organization).  
Thực thể chỉ địa điểm (Location).  
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).  
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ú ý  
1
 
Chương 1. Giới thiệu bài toán nhận dạng thực thể  
Nguyễn Bá Đạt  
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  
2
Chương 1. Giới thiệu bài toán nhận dạng thực thể  
Nguyễn Bá Đạt  
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.  
3
Chươ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  
Chương 2  
Các hướng tiếp cận cho  
bài toán nhận dạng thực thể  
Cũng như các bài toán khác trong lĩnh vực xử lý ngôn ngữ tự nhiên như: bài toán phân  
loại văn bản, bài toán dịch máy v.v… Bài toán nhận dạng thực thể trong văn bản cũng  
được phát triển theo các hướng truyền thống đó là:  
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.  
Precision = (N1 / N2) x 100%  
Recall = (N1 / N3) x 100%  
F-measure = 2 x (Precision x Recall ) / (Precision + Recall) x 100%  
Trong đó:  
N1: Số thực thể được nhận dạng chính xác.  
N2: Tổng số thực thể được nhận ra.  
N3: Số thực thể thực tế.  
4
 
Chươ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  
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ự  
5
 
Chươ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  
động, sau đó được kiểm tra và chuẩn hóa bằng tay. Quá trình kiểm tra mang lại những  
kinh nghiệm để chúng tôi có thể cải tiến bộ luật hoàn thiện hơn.  
Tuy nhiên việc xây dựng một hệ thống luật đạt kết quả cao thường rất khó  
khăn, mất nhiều thời gian và công sức, đặc biệt khi xây dựng hệ thống từ đầu. Trên thế  
giới đã có khá nhiều hệ thống nhận dạng thực thể đạt hiệu quả cao, nhưng hầu hết  
chúng không được xây dựng trên nền nguồn mở, và rất khó khăn để tiếp cận được với  
những hệ thống này. Chính vì vậy, phải mãi đến khi GATE – một hệ thống được xây  
dựng trên nguồn mở với bộ luật JAPE ra đời như một khung nền, các nghiên cứu về  
hướng tiếp cận sử dụng hệ luật với bài toán nhận dạng thực thể trong văn bản mới thực  
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.  
6
Chươ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  
Nhận dạng các thực thể và xử lý các trường hợp nhập nhằng.  
Với tập dữ liệu thu thập từ các báo điện tử phổ biến như: Tuổi trẻ, Người lao động,  
Vnexpress v.v… VN-KIM IE đưa ra kết quả khá khả quan, F-measure đạt được trên  
80% với các loại nhãn: organization, location, person, date, time, money, percent  
expression.  
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ể  
Các phương pháp học máy như: máy vector hỗ trợ (SVM), cây quyết định, mô hình  
markov ẩn, CRF v.v… thường xuyên được áp dụng và thu được kết quả khá cao trong  
các bài toán về xử lý ngôn ngữ tự nhiên. Với hệ thống nhận dạng thực thể trong văn  
bản sử dụng các phương pháp học máy, vấn đề nhận dạng thực thể (NER – Named  
Entities Recognition) được chuyển đối thành bài toán phân loại. Đầu tiên sử dụng mô  
hình IOB (Krishnan 2005) để gán nhãn (label) cho các từ theo tiêu chí:  
I: 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).  
7
 
Chươ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ệ thống sử dụng phương pháp học có giám sát được sử dụng khá phổ biến  
trong bài toán nhận dạng thực thể: Bikel giới thiệu hệ thống sử dụng Mô hình Markov  
ẩn (Bikel - 1998), Borthwick giới thiệu hệ thống sử dụng Maximum Entropy  
(Borthwick 1998), và Wu đưa ra hệ thống sử dụng phương pháp SVM cho bài toán  
nhận dạng thực thể (Wu 2006). Mansouri có đưa ra một mô hình hệ thống khá mới: kết  
hợp giữa hệ mờ (Fuzzy) và máy vector hỗ trợ (SVM). Thực thể được chia thành các  
loại: ENAMEX (organization, person, location), TIMEX (date, time), NUMEX  
(money, percent). Kết quả thu được cũng khá cao với F-measure khoảng 93%  
(Mansouri 2008).  
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.  
8
Chươ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  
100  
80  
60  
40  
20  
0
1
2
3
4
5
6
7
8
9
10  
Precision Recall F-measure  
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)  
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ệ  
9
 
Chươ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  
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.  
10  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
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ỉ:  
3.1 Tổng quan về GATE  
Mô hình kiến trúc tổng quát của GATE được mô tả trong hình 3.1  
Trong đó:  
Tầng hiển thị (IDE GUI Layer): có nhiệm vụ hiển thị giao diện trực quan tương  
tác với người dùng.  
Tầng ứng dụng (Application Layer): gồm các ứng dụng khác nhau như bộ  
ANNIE (có sẵn trong GATE) hay các thành phần tích hợp (Plugin) mới v.v…  
Tầng xử lý định dạng văn bản (Document Format layer): có nhiệm vụ xử lý cho  
từng định dạng văn bản khác nhau.  
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).  
11  
   
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
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…  
12  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
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.  
13  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
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…  
14  
   
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
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”}  
15  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
Khi một luật JAPE thực thi thì các luật nhỏ trong nó được thi hành một cách tuần tự,  
từ trên xuống.  
Mệnh đề trái (LHS) là các biểu thức chính quy trên nhãn (annotation). Trong  
khi đó mệnh đề phải thể hiện hành động cần được thực thi khi mệnh đề trái được thỏa  
mãn (so khớp).  
3.4.1 Mệnh đề trái (LHS)  
Mệnh đề trái (LHS) là một biểu thức của các mẫu (annotation pattern) và các phép  
toán như “ *, ?, +, | ”  
Các phép toán sử dụng trong mệnh đề trái  
| : phép hoặc  
*: phép lặp (không hoặc nhiều lần)  
?: phép lặp không hoặc một lần  
+: phép lặp một hoặc nhiều lần  
Ví dụ cho một mệnh đề trái:  
({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ụ:  
16  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
(
(
({Lookup.majorType == “jobtitle”}):job  
)
{Person}  
):person  
Trong ví dụ trên một mệnh đề trái nhận ra hai mẫu (pattern): job và person, trong đó  
mẫu job nằm trong mẫu person.  
Các mẫu được gán trong mệnh đề trái sẽ được sử dụng trong mệnh đề phải (RHS).  
3.4.2 Thành phần thay thế (Macros)  
Thành phần thay thế (Macros) thường xuyên được sử dụng trong các mệnh đề trái. Nó  
thay thế cho một tập các lệnh, giúp cho bộ luật đơn giản và rõ ràng hơn. Một thành  
phần thay thế (Macros) có thể gọi một thành phần thay thế khác bên trong nó. Ngoài  
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  
Macro: NEWTITLE  
(
{Title}  
({Word.string == "."})?  
({Title})?  
({Word.string == "."})?  
)
17  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
Sử dụng NEWTITLE trong mệnh đề trái của luật TitlePerson.  
Rule: TitlePerson  
(
(NEWTITLE)  
({Upper})  
):name  
-->  
...  
3.4.3 Mệnh đề phải (RHS)  
Mệnh đề phải sử dụng các mẫu (pattern) được cung cấp bởi mệnh đề trái để thực thi  
một mệnh lệnh nào đó, thông thường là tạo ra các nhãn (annotation) mới.  
Ví dụ:  
Rule: City  
(
{Lookup.majorType == “name_city”}  
):name  
: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”.  
18  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
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  
19  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
: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  
20  
 
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
o “appelt”: chỉ một luật (rule) thỏa mãn quá trình so khớp và có độ thực thi  
cao nhất được thực hiện. Độ thực thi của các luật được tính như sau:  
. Tất cả các luật cùng thỏa mãn so khớp từ vị trí X thì luật nào so  
khớp được dài nhất (longest matching) sẽ có độ thực thi cao nhất.  
. Nếu có nhiều hơn một luật so khớp cùng một đoạn trong văn bản  
thì luật nào được định nghĩa độ ưu tiên cao hơn sẽ có độ thực thi  
cao hơn và được thi hành.  
. 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  
Rule: Location  
Priority: 25  
(
({Lookup.majorType == “pre_loc”}  
{SpaceToken})?  
{Lookup.majorType == location}  
21  
Chương 3. Giới thiệu GATE  
Nguyễn Bá Đạt  
):locName  
-->  
:locName.Location = {kind = "location", rule = "pre_loc + location"}  
Rule: SearchGazetteers  
Priority: 20  
(
({Lookup.majorType == location}):loc  
)
-->  
:loc.Name = {kind = "location", rule=GazLocation}  
Ví dụ trên đã sử dụng:  
Tập các nhãn đầu vào gồm các nhãn có kiểu (Type): “Token”, “SpaceToken”,  
“Lookup”.  
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.  
22  
 

Tải về để xem bản đầy đủ

pdf 73 trang yennguyen 23/04/2025 80
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Nhận dạng thực thể trong văn bản tiếng Việt", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_nhan_dang_thuc_the_trong_van_ban_tieng_viet.pdf