ĐẠ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Ể
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
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
Nhận dạng thực thể trong văn bản Tiếng Việt Nguyễn Bá Đạt iii Mục lục
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
Nhận dạng thực thể trong văn bản Tiếng Việt Nguyễn Bá Đạt
Chương 1. Giới thiệu bài toán nhận dạng thực thể Nguyễn Bá Đạt
1 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ú ý
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:
Chương 1. Giới thiệu bài toán nhận dạng thực thể Nguyễn Bá Đạt
3 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.
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 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ể
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ự
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
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.
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 7 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.
2
-measure trung bình khoảng 80 ~ 81%.
2
- website chính thức của công cụ FlexCRFs.
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 9 0
20
40
60
80
100
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
nó sẽ là hướng quan trọng trong tương lai.
Chương 3. Giới thiệu GATE Nguyễn Bá Đạt 11 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).
Chương 3. Giới thiệu GATE Nguyễn Bá Đạt
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.
Chươ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.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”}
Chương 3. Giới thiệu GATE Nguyễn Bá Đạt 16 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
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 == "."})?
)