HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --- HOÀNG THỊ VÂN ANH TRÍCH RÚT THỰC THỂ TÊN TỪ CÁC VĂN BẢN TIẾNG VIỆT TRÊN INTERNET LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI – 2012... Hệ thống đã h
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
HOÀNG THỊ VÂN ANH
TRÍCH RÚT THỰC THỂ TÊN TỪ CÁC VĂN BẢN
TIẾNG VIỆT TRÊN INTERNET
LUẬN VĂN THẠC SĨ KỸ THUẬT
HÀ NỘI – 2012
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS Nguyễn Phương Thái
Phản biện 1: ………
Phản biện 2: ………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3với đặc thù riêng của bài toán trích rút thực thể tên tiếng
Việt Hệ thống đã hoạt động và trích rút các thực thể tên từ
các văn bản tiếng Việt
Quá trình xây dựng hệ thống còn gặp một số khó
khăn như: Thuật toán DIPRE chỉ thường áp dụng cho các
bài toán trích rút cặp quan hệ Vì vậy, khi trích rút thực thể
đơn sẽ gặp khó chọn lọc được Pattern mẫu trong quá trình
xây dựng Pattern và sinh Pattern mới Mặt khác, thực thể
tên có nhiều cách biểu diễn khác nhau nên rất khó để tìm
ra mối liên hệ khi xây dựng mẫu hoặc có thể xảy ra nhập
nhằng
Trong tương lai, tôi sẽ tiếp tục nghiên cứu về trích
rút thông tin và phát triển hệ thống, bổ sung chức năng tìm
kiếm, nhận diện thực thể tên ở những trường hợp đặc biệt
và nâng cao chất lượng trích rút Tôi dự định sẽ tìm hiểu
sâu hơn về kỹ thuật xây dựng Pattern để có những Pattern
hợp lý hơn Ngoài ra, tôi sẽ tiến hành phân tích thêm về
xâu ký tự đứng trước Pattern để hạn chế nhập nhằng và
trích rút được thực thể tên ở một số dạng đặc biệt
MỞ ĐẦU
Thông tin trên các trang web thường thể hiện dưới dạng ngôn ngữ tự nhiên và được định dạng theo HTML Hạn chế của HTML là thiếu khả năng diễn đạt ngữ nghĩa
về các đối tượng xuất hiện trong trang web nên phần lớn nội dung thông tin trên các trang web chỉ phù hợp cho người đọc hiểu Hầu hết các công cụ tìm kiếm tài liệu trên web được coi là tìm kiếm hiệu quả cũng chủ yếu tìm kiếm được trên bề nổi của web
Để khai thác hiệu quả nguồn thông tin trên các trang web, chúng ta cần nghiên cứu các ứng dụng tự động
xử lý văn bản Trước hết, chúng ta cần xây dựng hệ thống
tự động trích rút các thực thể, các khái niệm xuất hiện dựa vào một nguồn tri thức về các thực thể và các khái niệm phổ biến trong thế giới thực Từ đó, chúng ta có thể xây dựng các hệ thống khai thác dữ liệu để khai phá các lớp tri thức nhằm hiểu đầy đủ ngữ nghĩa của văn bản Tiếng Việt
có nhiều cách viết, cách thể hiện nội dung nên quá trình trích rút thông tin từ các văn bản tiếng Việt gặp nhiều khó khăn hơn trong các văn bản tiếng Anh Trong luận văn, tôi
Trang 4tiến hành nghiên cứu và xây dựng hệ thống tự động trích
rút thực thể tên từ các văn bản tiếng Việt trên Internet
CHƯƠNG I: TỔNG QUAN
1.1 Bài toán trích rút thực thể tên
1.1.1 Phát biểu bài toán trích rút thực thể tên
Theo Baumgarter, hệ thống trích rút thông tin là
một hệ thống phần mềm tự động và liên tục trích rút dữ
liệu các trang web có nội dung thay đổi và phân phối dữ
liệu trích rút vào cơ sở dữ liệu hoặc các ứng dụng khác
Hình 1.1 Mô hình hệ thống trích rút thông tin trên web
Hệ thống trích rút thông tin thường đưa ra kết quả
là các mẫu (template) chứa một số lượng xác định các
trường (slots) đã được điền thông tin Bài toán trích rút
KẾT LUẬN
Luận văn đã hệ thống hóa một số lý thuyết về trích chọn thông tin, trình bày, phân tích, đánh giá các phương pháp đó Sau đây là một số nét chính mà luận văn đã tập trung giải quyết
Chương I trình bày và nêu ý nghĩa của bài toán trích rút thực thể tên Trong chương I, phần đặc điểm tiếng Việt được để có thể làm căn cứ cho quá trình tìm kiếm và trích rút thực thể tên Ngoài ra, chương I còn trình bày một
số hướng tiếp cận để giải quyết bài toán trên là: Giải thuật DIPRE, phương pháp Snowball, phương pháp KnowItAll Sau đó, luận văn phân tích ưu nhược điểm của từng phương pháp để đề xuất một phương pháp có hiệu quả hơn trong trích rút thực thể tên Ở đây, luận văn sử dụng giải thuật DIPRE kết hợp Snowball để xây dựng hệ thống trích rút thực thể tên
Chương II đưa ra mô hình khái quát, mô hình chi tiết, ý tưởng và cách giải quyết bài toán trích rút thực thể tên từ các văn bản tiếng Việt
Chương III xây dựng hệ thống thử nghiệm dựa theo
ý tưởng của thuật toán DIPRE và có cải tiến để phù hợp
Trang 5Bảng 3.4 Bảng kết quả thực nghiệm
File
name correct incorrect Missing Spurious Pre Rec F
Trung bình: 81,90 77,80 79,71
0,00
50,00
100,00
Pr e
Hình 3.5 Giá trị ba độ đo Precision, Recall, F-measure
Kết quả cho thấy, hệ thống trích rút thực thể tên hoạt động
rất tốt ở những văn bản viết đúng, đầy đủ các tiền tố và
quy tắc trình bày của thực thể tên
thực thể tên trong các văn bản tiếng Việt còn gặp nhiều khó khăn hơn so với bài toán trong các văn bản tiếng Anh
vì một số nguyên nhân như: Thiếu dữ liệu huấn luyện và các ngồn tài nguyên có thể tra cứu như WordNet trong tiếng Anh, tồn tại rất nhiều vấn đề nhập nhằng làm cho việc trích rút gặp nhiều khó khăn
1.1.2 Ý nghĩa của bài toán trích rút thực thể tên
- Hỗ trợ xây dựng Sementic Web
- Xây dựng các máy tìm kiếm hướng thực thể
- Hỗ trợ hệ thống tự động tóm tắt văn bản
1.2 Đặc điểm tiếng Việt
Phần lớn vốn từ vựng của tiếng Việt là các từ đa âm tiết Cùng một sự vật, hiện tượng, một hoạt động hay một đặc trưng có thể được biểu thị bởi nhiều từ ngữ khác nhau gây khó khăn khi xây dựng hệ thống trích rút thực thể tên Thực tế đã có rất nhiều nghiên cứu và hệ thống xử lí, phân đoạn từ Trong hệ thống trích rút xây dựng ở phần demo,
hệ thống sẽ sử dụng các văn bản đã được chạy qua hệ thống phân đoạn từ nên hệ thống bỏ qua bước phân đoạn
từ
1.3 Một số nghiên cứu liên quan
Trang 61.3.1 Giải thuật Dual Iterative Pattern Relation
Expansion (DIPRE)
Giải thuật DIPRE (Dual Iterative Pattern Relation
Expansion) dùng để trích rút mẫu quan hệ ngữ nghĩa
“author – book” với tập dữ liệu ban đầu khảng 5 ví dụ cho
mối quan hệ này Hệ thống DIPRE mở rộng tập ban đầu
thành một danh sách khoảng 15.000 cuốn sách
Tóm tắt giải thuật DIPRE như sau:
Đầu vào: Tập các quan hệ mẫu S={Ai ,Bi}
Ví dụ: trong trường hợp trên, tập quan hệ mẫu là S
= {<authori , booki} Tập này được gọi là tập hạt giống
Đầu ra: Tập các quan hệ R trích chọn được
Xử lý:
- Tập quan hệ đích R được khởi tạo từ tập hạt giống
(seed) S Ký hiệu tập seed ban đầu là <A, B>
- Tìm tất cả các câu có chứa đủ các thành phần của
tập seed ban đầu
- Dựa vào tập câu đã tìm được, tiến hành tìm các
mẫu quan hệ giữa các thành phần của seed ban đầu Mẫu
quan hệ được biểu diễn dưới dạng sau:
[order, author, book, prefix, suffix, middle]
Hình 3.1 Giao diện hệ thống
Hệ thống có 3 Module:
- Module Trích rút: dùng để trích rút thực thể tên
từ bài báo đã chọn Kết quả sau khi trích rút hiển thị trong phần KẾT QUẢ
- Module Huấn luyện: lấy kết quả trích rút từ bài
báo và làm giàu cơ sở dữ liệu để phục vụ cho quá trình trích rút thực thể tên từ các bài báo khác
- Module Thống kê: Thống kê số thực thể tên theo
nhóm đã chọn trích rút được
3.3 Đánh giá kết quả của hệ thống
Hệ thống đã thực hiện thực nghiệm nhiều lần với nhiều văn bản khác nhau
Hệ thống đã thực hiện thực nghiệm nhiều lần với nhiều văn bản khác nhau được kết quả như bảng 3.4
Trang 7CHƯƠNG III: THỰC NGHIỆM
3.1 Môi trường và dữ liệu thực nghiệm
3.1.1 Phần cứng
3.1.2 Phần mềm
3.1.3 Dữ liệu thực nghiệm
Dữ liệu thực nghiệm là các bài báo từ Internet đã
qua bộ tiền xử lý phân đoạn từ
3.1.4 Thiết kế cơ sở dữ liệu
* Bảng tblPattern: Chứa dữ liệu là tiền tố và tên
nhóm thực thể tên tương ứng cần trích rút
* Bảng tblNotPattern: Chứa dữ liệu là các mẫu
phạm quy và tên nhóm thực thể tên tương ứng
* Bảng tblOccurrences: chứa dữ liệu là các tiền tố,
thực thể tên và tên nhóm thực thể tên tương ứng
3.2 Giới thiệu hệ thống trích rút tự động thực thể
tên từ các văn bản tiếng Việt trên Internet
Hệ thống được thiết kế bằng ngôn ngữ lập trình C#
trên nền tảng Net Framework của Microsoft Visual Studio
2008 và sử dụng dữ liệu lưu trữ trong phần mềm quản trị
dữ liệu SQL Server 2005
Hệ thống có giao diện như sau:
Từ những mẫu chưa được gán nhãn, ta thu được một tập seed <A’, B’> mới; thêm seed mới này vào tập seed cho quan hệ đó
- Quay lại bước 2 để tìm ra những hạt giống và mẫu mới
* Thuật toán GenOnePattern(O) sinh một Pattern
1) Điều kiện: order và middle của tất cả sự xuất hiện (occurrences) phải giống nhau
Nếu điều kiện trên không thỏa mãn thì không thể sinh
ra được pattern khớp với tất cả occurrences
Đặt outpattern.order và outpattern.middle tương ứng với order và middle
2) Tìm đoạn prefix giống nhau dài nhất của các urls Đặt outpattern.urlprefix = prefix
3) Đặt outpattern.prefix là xâu giống nhau dài nhất của các prefixs tính từ cuối (suffix) của các tiền tố (prefixs)
4) Đặt outpattern.suffix là xâu giống nhau dài nhất của các suffix tính từ đầu (prefix) của các hậu tố (suffixs)
đó
Kết quả thu được một pattern
Trang 8* Thuật toán GenPatterns(O) sinh tập Patterns
Thuật toán cho GenPatterns(O) dựa vào thuật toán
GenOnePattern(O) ở trên :
1) Nhóm tất cả sự xuất hiện o (occurrences) trong
O theo order và middle thành nhóm O1 , …, O k.
2) Với mỗi O i , p GenOnePattern( O i ) Nếu p
thoả mãn điều kiện về độ “riêng biệt” thì nhận p
đưa ra ngoài Nếu không:
- Nếu tất cả o trong O i có chung url thì bỏ O i.
- Ngược lại: Tách các o trong O i thành những
nhóm con dựa vào đặc điểm urls của chúng qua
p.urlprefix Lặp lại bước 2
1.3.2 Phương pháp Snowball
Snowball là hệ thống trích rút mối quan hệ “tổ
chức – địa điểm” mà tập mẫu và tập seed mới được sinh ra
được đánh giá chất lượng trong quá trình xử lý
Hình 1.3 Kiến trúc của hệ thống Snowball
thức chính quy CandidateRegularExpression nên cần phải
cắt tỉa và chuẩn hóa để thu được tên chính xác
Cách viết của tiếng Việt trong các văn bản tiếng Việt trên Internet rất đa dạng và phong phú Vì vậy, đôi khi thông tin viết trong các văn bản tiếng Việt trên Internet không thật sự theo chuẩn – chuẩn ngữ pháp, chuẩn chữ hoa chữ thường… khiến cho việc việc cắt tỉa gặp nhiều khó khăn Tuy nhiên, các văn bản tiếng Việt đưa vào hệ thống là các văn bản đã qua khâu tách từ và viết chuẩn chữ hoa chữ thường Vì vậy, đây là mặt thuận lợi để kiểm tra
xem xâu con của xâu kỳ vọng CandidateString có phải là
xâu thực thể tên cần trích rút hay không
2.4 Tổng kết chương
Chương 2 đã trình bày toàn bộ ý tưởng và các thuật toán để giải quyết bài toán trích rút thực thể tên Tận dụng
ưu điểm của các văn bản đã qua khâu phân đoạn từ, việc xây dựng hệ thống trích rút thực thể tên đỡ phức tạp hơn rất nhiều Hệ thống trích rút thực thể tên sẽ tập trung vào khâu nhận biết thực thể qua các tiền tố và tiến hành trích rút
Trang 9Bước 2: Kiểm tra ký tự đầu tiên của xâu ký tự được
kỳ vọng là thực thể tên có phải là chữ hoa hay không
Bước 3: Kiểm tra xâu ký tự tìm được có trùng với
các xâu ký tự trong bảng tblNotPattern hay không
Bước 4: Kiểm tra xâu ký tự so khớp tìm được đã có
trùng với kết quả ở các bước lặp trước hay không
Bước 5: Tách xâu ký tự so khớp tìm kiếm được thành
hai xâu con (PrefixPattern, tên thực thể) và kiểm tra sự
xuất hiện của Pattern này
Bước 6: Lấy từng tên thực thể thu được so khớp với
toàn bộ văn bản để tìm ra các PrefixPattern mới
Hệ thống cứ tìm kiếm, trích rút thực thể tên liên tục
cho đến khi số lượng PrefixPattern bẳng 0 hoặc số lượng
xâu ký tự so khớp tìm được sau bước 5 của vòng lặp tìm
sự xuất hiện bị loại nhiều
OutPut: Các thực thể tên có trong văn bản
2.3 Quy tắt tách tên thực thể từ xâu kỳ vọng
CandidateString
Xâu CandidateString là xâu được “kỳ vọng” là có
chứa tên thực thể thuộc nhóm thực thể tên cần trích rút
Ban đầu nó chỉ là một xâu bất kỳ được đoán nhận bởi biểu
* Hệ thống Snowball bao gồm các bước sau:
Bước 1: Học bán tự động để trích rút mẫu
Snowball bắt đầu thực hiện với tập seed ban đầu mô tả về một mối quan hệ và một tập văn bản (tập huấn luyện)
Các mẫu sau khi tìm thấy sẽ được đối chiếu lại với kho dữ liệu ban đầu để kiểm tra xem chúng có tìm ra được các bộ dữ liệu seed mới <A’, B’> nào không Seed mới
<A’, B’> sẽ nằm một trong các trường hợp sau:
- Positive: <A’, B’> đã nằm trong danh sách seed
- Negative: chỉ có đúng một trong hai (A’ hoặc B’)
xuất hiện trong danh sách seed
- Unknown: cả A’, B’ đều không xuất hiện trong
danh sách seed Tập Unknown được xem là tập các seed mới cho vòng lặp sau
Snowball sẽ tính độ chính xác của từng mẫu dựa trên số Positive và Negative của nó và chọn ra top N mẫu
có điểm số cao nhất
Bước 2: Tìm các seed mới cho vòng lặp tiếp theo
Với mỗi mẫu trong danh sách top N được chọn sẽ
là các cặp trong tập seed mới được đưa vào vòng lặp mới
Trang 10Hệ thống sẽ chọn ra được m cặp được đánh giá tốt
nhất dùng làm seed cho quá trình rút mẫu kế tiếp
Hệ thống tiếp tục quay lại bước một Quá trình trên
lặp cho đến khi hệ thống không tìm được cặp mới hoặc lặp
theo số lần mà ta xác định trước
1.3.3 Phương pháp KnowItAll
Phương pháp KnowItAll tiến hành trích rút ra
những sự vật, khái niệm và các mẫu quan hệ từ các trang
web KnowItAll được mở rộng từ một ontology và dựa
vào một tập các luật để từ đó trích rút ra các luật cho mỗi
lớp và các quan hệ trong ontology [4]
Đầu vào của KnowItAll là một tập các lớp thực thể
được trích xuất, kết quả là một danh sách các thực thể
được trích xuất từ các trang web Các mẫu sử dụng đã
được gán nhãn bằng tay, những mẫu này được xây dựng
dựa vào việc tách cụm danh từ (Noun Phrase chunker)
1.4 Tổng kết chương
Phương pháp KnowItAll sử dụng các kĩ thuật xử lý
ngôn ngữ (phân tích cú pháp, tách cụm danh từ) nên khó
áp dụng cho tài liệu tiếng Việt vì đối với ngôn ngữ tiếng
Việt, các kĩ thuật xử lý ngôn ngữ, tài nguyên ngôn ngữ học
Quá trình trên được lặp lại nhiều lần cho đến khi không sinh ra được pattern mới hoặc độ chính xác của các thực thể rút trích được thấp…
2.2 Biểu diễn xâu tiền tố PrefixString của tên thực thể và thuật toán sinh PrefixPattern
2.2.1 Biểu diễn PrefixString
Ánh xạ ngược mỗi thực thể vào tập dữ liệu ta thu được tập các PrefixString được biểu diễn như sau:
< “S”, “N” , “C” >
S : Xâu nội dung của PrefixString (xâu tiền tố) N: Tên thực thể
C: Count – Số lần S là “tiền tố” của N
Mỗi PrefixString có “độ ưu tiên” khác nhau trong việc lựa chọn tham gia sinh pattern Độ ưu tiên đó dựa theo số lượng thực thể nhận nó làm tiền tố
2.2.2 Thuật toán sinh PrefixPattern
Input: Tập PrefixPattern mẫu, văn bản đã phân đoạn
từ Bước 1: Lấy từng PrefixPattern mẫu trong tblPattern đem so khớp với văn bản để tìm ra xâu ký tự có chứa PrefixPattern và xâu ký tự được kỳ vọng là tên thực thể