Tải bản đầy đủ (.doc) (72 trang)

ĐỒ án tốt NGHIỆP đại học xây DỰNG hệ THỐNG TRÍCH CHỌN THÔNG TIN tự ĐỘNG từ các WEBSITE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 72 trang )

MỤC LỤC
Hình 1.1: Thu hồi thông tin bằng công cụ Google 12
Hình 1.2: Trích rút thông tin tỷ số bóng đá từ LivesCore 13
Hình 2.1:Thuật toán tìm thông tin dạng bảng 22
Hình 2. 3: Thủ tục trích rút thông tin từ bảng 25
Hình 2.4: Ví dụ về cây DOM 27
Hình 2.5: Các cây DOM và cây đặc trưng ST 29
Hình 2.6:Ví dụ về SST 32
Hình 2.7: Thuật toán đánh dấu các vùng nhiễu 36
Hình 2.8:Một SST đã được đơn giản 38
Hình 2.9: Thủ tục MapSST 39
Hình 2.10: Thủ tục SSTWebSite 40
Hình 2.11: Một minh họa cho các đỉnh gộp và các vùng dữ liệu 43
Hình 2.12: Thuật toán đối sánh cây đơn giản 44
Hình 2.13: Cây thẻ HTML cho các data record 46
Hình 2.14: Thực hiện hợp đỉnh và so sánh 47
Hình 2.15: Thuật toán so sánh đỉnh của cây dựa trên khoảng cách soạn thảo 48
Hình 2.16: Thủ tục so sánh gộp của các đỉnh 49
Hình 2.17: Mô tả một vùng dữ liệu 50
Hình 2.18: Thuật toán tìm tất cả các vùng dữ liệu trong một cây thẻ HTML 53
Hình 2.19: Thủ tục xác định các vùng dữ liệu có thể có của đỉnh 54
Hình 2.20: Thủ tục kiểm tra vùng dữ liệu con có nằm trong vùng mức cha 55
Hình 2.21: Thủ tục tạo cây mẫu biểu diễn thông tin các bản ghi dữ liệu 56
Hình 2.22 Chèn cây khi hai đỉnh kề có đối sánh 58
Hình 2.24: Không thể thực hiện chèn 59
Hình 2.25: Cây thẻ html cần tách thông tin 60
Hình 2.26: Cây mẫu biểu diễn thông tin trong một vùng 61
Hình 2.27: Tách các trường thông tin từ cây mẫu 62
1
Hình 3.1: Giao diện chính của hệ thống 63
Hình 3.2: Giao diện tách thông tin dạng bảng 64


Hình 3.5: Trang web tỷ giá ngoại tệ của ngân hàng Vietcombank 67
Hình 3.7: Biểu đồ tỷ giá ngoại tệ 69
2
DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Thu hồi thông tin bằng công cụ Google 12
Hình 1.2: Trích rút thông tin tỷ số bóng đá từ LivesCore 13
Hình 2.1:Thuật toán tìm thông tin dạng bảng 22
Hình 2. 3: Thủ tục trích rút thông tin từ bảng 25
Hình 2.4: Ví dụ về cây DOM 27
Hình 2.5: Các cây DOM và cây đặc trưng ST 29
Hình 2.6:Ví dụ về SST 32
Hình 2.7: Thuật toán đánh dấu các vùng nhiễu 36
Hình 2.8:Một SST đã được đơn giản 38
Hình 2.9: Thủ tục MapSST 39
Hình 2.10: Thủ tục SSTWebSite 40
Hình 2.11: Một minh họa cho các đỉnh gộp và các vùng dữ liệu 43
Hình 2.12: Thuật toán đối sánh cây đơn giản 44
Hình 2.13: Cây thẻ HTML cho các data record 46
Hình 2.14: Thực hiện hợp đỉnh và so sánh 47
Hình 2.15: Thuật toán so sánh đỉnh của cây dựa trên khoảng cách soạn thảo 48
Hình 2.16: Thủ tục so sánh gộp của các đỉnh 49
Hình 2.17: Mô tả một vùng dữ liệu 50
Hình 2.18: Thuật toán tìm tất cả các vùng dữ liệu trong một cây thẻ HTML 53
Hình 2.19: Thủ tục xác định các vùng dữ liệu có thể có của đỉnh 54
Hình 2.20: Thủ tục kiểm tra vùng dữ liệu con có nằm trong vùng mức cha 55
Hình 2.21: Thủ tục tạo cây mẫu biểu diễn thông tin các bản ghi dữ liệu 56
Hình 2.22 Chèn cây khi hai đỉnh kề có đối sánh 58
Hình 2.24: Không thể thực hiện chèn 59
Hình 2.25: Cây thẻ html cần tách thông tin 60
Hình 2.26: Cây mẫu biểu diễn thông tin trong một vùng 61

Hình 2.27: Tách các trường thông tin từ cây mẫu 62
3
Hình 3.1: Giao diện chính của hệ thống 63
Hình 3.2: Giao diện tách thông tin dạng bảng 64
Hình 3.5: Trang web tỷ giá ngoại tệ của ngân hàng Vietcombank 67
Hình 3.7: Biểu đồ tỷ giá ngoại tệ 69
4
LỜI NÓI ĐẦU
Với tốc độ phát triển nhanh chóng, Internet và World Wide Web
(WWW ) ngày càng ảnh hưởng sâu rộng đến mọi mặt của đời sống, khoa
học, kinh tế, chính trị, văn hóa, xã hội,…Theo số liệu thống kê năm 1995,
số người truy cập Internet thường xuyên chỉ đạt khoảng 33 triệu người, đến
năm 2000 thì con số này là 150 triệu người, đến năm 2005 số người thường
xuyên truy cập Internet lên đến 850 triệu người và đến năm 2007 thì con số
này là xấp xỉ 1.2 tỷ người. Hơn nữa, với doanh số tối thiểu giao dịch hàng
năm đạt 1.5 ngàn tỷ USD, Internet đã thực sự trở thành một phần thiết yếu
của cuộc sống hiện đại.
Trong đó, việc tận dụng các nguồn thông tin từ Internet là một điều
hết sức quan trọng, bởi vì với thời đại công nghệ thông tin hiện nay, ai nắm
bắt được thông tin thì người đó có cơ hội thành công rất lớn. Phương pháp
lấy thông tin trên mạng thông dụng nhất hiện nay là tìm kiếm theo từ khóa
được cung cấp bởi Google, Yahoo,…Tuy nhiên, việc trả về quá nhiều địa
chỉ làm cho quá trình lựa chọn những thông tin cần thiết trở nên vô cùng
khó khăn và tốn nhiều thời gian. Đối với người dùng, việc có được nhiều
thông tin không phải là điều quan trọng nhất, mà tính kịp thời, đầy đủ và
chính xác của thông tin mới là yếu tố quyết định.
Internet, với hàng tỉ trang web, hàng triệu cơ sở dữ liệu thông tin về
nhiều lĩnh vực: khoa học, kinh tế, chính trị, xã hội , được coi là “mỏ thông
tin” vĩ đại nhất trong lịch sử loài người. Tuy nhiên, những thông tin này lại
nằm rải rác ở nhiều nơi, khiến việc thu thập, lưu trữ để rồi sau đó tiến hành

các phân tích tỉ mỉ như so sánh, đánh giá, tổng quát hoá trở nên cực kì
khó khăn và tốn nhiều thời gian.
5
Sử dụng công nghệ tách-trích rút thông tin là phương pháp hữu hiệu
nhất để giải quyết những khó khăn này. Các chương trình “trích rút thông
tin” sẽ thực hiện tách dữ liệu từ nhiều nguồn tin (trang web) trên mạng rồi
tổ chức lưu trữ (thường là dạng cơ sở dữ liệu) trên hệ thống cục bộ. Sau đó,
tuỳ theo nhu cầu cụ thể, các chương trình/công cụ sẵn có sẽ được sử dụng
để phân tích, tìm hiểu, chắt lọc thông tin từ nguồn cơ sở dữ liệu này.
Thu thập thông tin về các chỉ số chứng khoán hàng ngày vào cơ sở
dữ liệu, ta có thể vẽ đồ thị và phân tích tình hình tăng giảm của từng chỉ số.
Thu thập các mẩu tin rao vặt về điện thoại di động vào cơ sở dữ liệu, rồi áp
dụng một vài lệnh thống kê đơn giản, ta có thể thu được nhiều thông tin
quý giá, chẳng hạn như chủng loại điện thoại nào hiện đang được nhiều
người tìm mua: Nokia, Siemen hay Sony Ericsson, loại điện thoại nào được
nhiều người rao bán Công nghệ tách thông tin tạo ra cơ hội để biến những
thông tin quanh ta thành cơ sở dữ liệu, thành tri thức, thành các quyết định
kinh doanh một cách nhanh chóng. Cùng với sự trưởng thành của công
nghệ tách thông tin, hàng loạt công nghệ tri thức mới sẽ ra đời như công
nghệ về tích hợp thông tin, tóm tắt thông tin, tổng quát hoá thông tin
Đó là lý do mà trích rút- phân tách thông tin trên mạng đang trở
thành mối quan tâm của rất nhiều các nhà nghiên cứu trong thời gian gần
đây. Đã có nhiều cách tiếp cận khác nhau trong việc trích rút thông tin như:
Trích rút thông tin dựa trên bao đóng (Wrapper); trích rút thông tin dựa trên
cây thẻ (DOM Tree); trích rút thông tin dựa trên việc nhận dạng cấu trúc
ngữ pháp (Grammar Induction); trích rút thông tin dựa trên mô hình
Markov ẩn (Hidden Markov Model),….Ưu điểm của các hệ này là chúng
có thể tìm được rất nhiều thông tin quan trọng trong thời gian ngắn. Tuy
nhiên, một số hệ thống đòi hỏi người dùng phải có kiến thức chuyên môn
nhất định về tách-trích rút thông tin để huấn luyện cho hệ thống trích rút

6
thông tin trong các lĩnh vực thông tin mới nên các hệ thống này vẫn còn ít
được sử dụng rộng rãi.
Mục đích của đề tài là nghiên cứu các kỹ thuật trích rút thông tin để
từ đó xây dựng một hệ thống tự động trích chọn thông tin dạng bảng từ các
Web site. Dữ liệu được ghi ra file dạng HTML, từ dạng dữ liệu này ta hoàn
toàn có thể sử dụng các công cụ sẵn có để chuyển đổi tiếp sang dạng dữ
liệu nào đó phù hợp với nhu cầu sử dụng, chẳng hạn dạng bảng tính của
Excel, dạng cơ sở dữ liệu của SQL, dạng DOC,…
Xây dựng ứng dụng trích chọn thông tin tỷ giá ngoại tệ trên web site
của ngân hàng Vietcombank, dữ liệu được lưu trữ trong cơ sở dữ liệu SQL,
từ đó người dùng có thể vẽ biểu đồ biến động giá cả của từng loại ngoại tệ
theo từng tháng để có thể hỗ trợ cho việc phân tích, đánh giá và đầu tư
thích đáng.
Đồ án được chia thành 3 chương với nội dung như sau:
Chương 1: Tổng quan về trích rút thông tin
Chương 2: Các kỹ thuật trích rút thông tin
Chương 3: Cài đặt thuật toán, thiết kế, xây dựng chương trình.
Em xin chân thành cảm ơn thầy giáo đã hướng dẫn, giúp đỡ em trong
quá trình làm đồ án!
7
CHƯƠNG 1: TỔNG QUAN VỀ TRÍCH RÚT THÔNG TIN


• Khái niệm khai phá dữ liệu
• Khái niệm trích rút thông tin
• Các hệ trích rút-tách thông tin
• Kết luận
Chương này sẽ đưa ra những khái niệm cơ bản liên quan đến trích rút
thông tin, đồng thời tìm hiểu khả năng ứng dụng trích rút thông tin trong

thực tế.
Phần 1.1: trình bày về khai phá dữ liệu.
Phần 1.2: trình bày một cách khái quát về trích rút thông tin.
Phần 1.3: tìm hiểu kỹ thuật trích rút thông tin của một số hệ thống đã
được thử nghiệm.
Phần cuối: tổng hợp, đánh giá về trích rút thông tin và ứng dụng trích
rút thông tin trong thực tế.
8
1.1 KHAI PHÁ DỮ LIỆU
Khái niệm khai phá dữ liệu (data mining):
Khai phá dữ liệu là quá trình khai thác (rút trích) những thông tin
tiềm ẩn có tính dự đoán, những thông tin có nhiều ý nghĩa, hữu ích từ
những cơ sở dữ liệu lớn, nó được coi như là một bước trong quá trình khám
phá tri thức (Knowledge Discovery in Databases – KDD). Khai phá dữ liệu
là giai đoạn quan trọng nhất trong tiến trình khám phá tri thức từ cơ sở dữ
liệu, các tri thức này có rất nhiều ý nghĩa, là cơ sở hỗ trợ trong việc ra
quyết định trong khoa học và kinh doanh.
Khai phá dữ liệu là giai đoạn thiết yếu, đây là bước quan trọng và tốn
nhiều thời gian nhất của toàn bộ quá trình khám phá tri thức, đây là bước
áp dụng những kỹ thuật khai phá để khai thác, trích xuất thông tin có ích,
những mẫu điển hình, những mối liên hệ đặc biệt có nhiều giá trị, mang
nhiều ý nghĩa từ dữ liệu.
Các kỹ thuật khai phá dữ liệu được chia làm 2 nhóm chính:
• Kỹ thuật khai phá dữ liệu mô tả: mô tả về các tính chất hoặc các
đặc tính chung của dữ liệu trong CSDL, các kỹ thuật này gồm có:
phân cụm (clustering), tóm tắt (sumerization), trực quan hoá
(visualization), phân tích sự phát triển và độ lệch (Evolution and
deviation analyst), phân tích luật kết hợp (association rules),…
• Kỹ thuật khai phá dữ liệu dự đoán: đưa ra các dự đoán dựa vào
các suy diễn trên dữ liệu hiện thời, các kỹ thuật này gồm có: phân

lớp (classification), hồi quy (regression),…
9
Những ứng dụng điển hình của khai phá dữ liệu:
• Tài chính và thị trường chứng khoán (finance & stock market): phân
tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị
trường chứng khoán,…
• Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis and decision
support)
• Text mining & Webmining: khai thác văn bản và các trang Web,
tóm tắt văn bản, tìm kiếm thông tin,…
• Tin – sinh: tìm kiếm, đối sánh các quan hệ gen và thông tin di
truyền, mối liên hệ giữa một số hệ gen và một số bệnh di truyền,…
• Điều trị y học (medical treatment): mối liên hệ giữa triệu chứng,
chẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc men,
…)
1.2 KHÁI NIỆM TRÍCH RÚT THÔNG TIN
Cho đến nay chưa có một định nghĩa chuẩn nào về trích rút thông tin,
tuy nhiên đối với nhiều nhóm nghiên cứu về trích rút thông tin họ đã đưa ra
khái niệm ban đầu về trích rút thông tin theo các hướng tiếp cận riêng của
họ. Nhìn một cách tổng quát, các khái niệm này đều có một số điểm giống
nhau thể hiện nét đặc trưng riêng của trích rút thông tin so với các ngành
khoa học khác. Ta có thể hiểu khái niệm về trích rút thông tin như sau:
Trích rút thông tin (Information Extraction-IE) là một quá trình
nhằm xác định và trích rút ra các thông tin cần thiết trên các văn bản tài
liệu cho trước.
Ta cần phân biệt sự khác biệt giữa hai kỹ thuật: kỹ thuật trích rút
thông tin IE và kỹ thuật thu hồi thông tin (Information Retrieval-IR) ví dụ
10
như các chương trình tìm kiếm thông tin trên Internet như là Google,
Yahoo,…

- Kỹ thuật thu hồi thông tin sẽ tìm kiếm những tài liệu có
chứa các thông tin liên quan dựa theo một số đặc điểm
nhận biết và trả về toàn bộ tài liệu đó. Các tài liệu được
trả về có thể kèm theo rất nhiều loại thông tin khác
không cần thiết, thậm chí chúng có thể không phải là
loại thông tin cần lấy (mặc dù tài liệu này có đề cập đến
những đặc điểm nhận biết thông tin do người dùng định
nghĩa).
- Kỹ thuật trích rút thông tin không những tìm kiếm các
tài liệu có chứa thông tin liên quan mà chúng còn phân
tích các tài liệu này để trích rút và trả về những thông
tin đặc trưng riêng mà người dùng quan tâm. Với cách
tiếp cận này sẽ cho phép người dùng sử dụng thông tin
hiệu quả hơn và tiết kiệm thời gian hơn.
11
Hình 1.1: Thu hồi thông tin bằng công cụ Google
12
Các địa chỉ

web có chứa
từ khóa
Hình 1.2: Trích rút thông tin tỷ số bóng đá từ LivesCore
13
1.3 CÁC HỆ TRÍCH RÚT THÔNG TIN
Có rất nhiều hướng tiếp cận khác nhau, sử dụng các kỹ thuật khác
nhau nhằm mục đích trích rút được thông tin chính xác và đầy đủ nhất.
Chúng ta có thể tìm hiểu một số kỹ thuật trích rút thông tin của những hệ
ứng dụng phổ biến sau:
1.3.1 Hidden Markov Model (HMM) [7]
HMM là một máy tự động trạng thái hữu hạn dựa trên xác suất dùng

để mô hình các dữ liệu tuần tự. Mỗi trạng thái bỏ qua một số dấu hiệu
(token) tùy theo một số phân bố cố định. Sự chuyển đổi giữa các trạng thái
cũng tuân theo một số phân bố cố định. Khi sử dụng HMM cho trích rút
thông tin (IE), các trạng thái chính là các trường cần trích rút. Ví dụ có các
trạng thái khởi đầu và kết thúc cho mỗi trường và một trạng thái cho trường
hợp không có trường nào (trạng thái nền). Có các thuật toán hiệu quả cho
việc sinh ra dãy trạng thái liên tiếp cho một tài liệu cho trước. HMM có thể
được sử dụng trong IE bằng cách xác định một chuỗi trạng thái phù hợp
nhất cho việc xác định cấu trúc toàn bộ tài liệu cho trước, và sau đó tách
các biểu tượng (Symbol) tương ứng với các trường mà chúng ta muốn tách.
HMM mô hình một quá trình sinh các dãy biểu tượng từ một số trạng
thái ban đầu, việc sinh các biểu tượng được chỉ định bởi trạng thái đó và
việc chuyển đổi sang trạng thái kế tiếp. Quá trìnhh cứ tiếp tục cho đến khi
đạt tới trạng thái kết thúc. Tương ứng với mỗi tập trạng thái là một phân bố
xác suất thông qua một tập các chuyển đổi tới trạng thái kế tiếp. Các xác
suất này được học trong giai đoạn huấn luyện. Thuật toán lập trình động
Viterbi được sử dụng để tìm ra chuỗi trạng thái phù hợp nhất từ một HMM
cho trước và một chuỗi các biểu tượng. Mỗi trường khác nhau sử dụng một
HMM riêng.
14
Mỗi mô hình có 2 trạng thái, trạng thái nền và trạng thái đích. Trạng
thái đích sinh ra các trường mà ta cần trích rút.
Một trong những nhược điểm của việc sử dụng HMM cho IE là nó
khó mô hình cho một token có nhiều tính chất hoặc ý nghĩa khác nhau.
1.3.2 Rapier [11]
Rapier dựa trên việc học quy nạp từ các luật chi tiết đến các luật tổng
quát để xây dựng tập các luật dùng để trích rút các trường trong các tài liệu
đầu vào.
Rapier không dùng các thẻ đầu và cuối để xác định vị trí các trường
cần trích rút mà sử dụng việc học đối với các chuỗi ký tự chứa trường cần

trích rút, chuỗi ký tự ngay trước và chuỗi ký tự ngay sau trường cần trích
rút. Mỗi chuỗi ký tự là một tập hợp gồm các từ tượng trưng (các từ viết
hoa, các từ viết thường, các số, chuỗi các chữ cái và số,…) và chúng có thể
được thay thế bằng các từ khác tổng quát hơn (ví dụ như string, *,…).
Ban đầu, Rapier liệt kê tất cả các luật riêng cho từng mẫu, sau đó
thay thế dần bởi các luật tổng quát hơn. Từng cặp luật sẽ được đem so sánh
và kết hợp thành một số luật tổng quát hơn. Sau đó chúng sẽ chọn luật tổng
quát nào ít tổng quát nhất trong số các luật tổng quát cho một cặp luật. Các
quy trình tổng quát hóa này được thực hiện riêng biệt cho từng loại trường
và từng loại chuỗi ký tự.
Một vùng luật bao gồm k luật tốt nhất sẽ được lưu giữ lại. Mỗi khi
một luật tổng quát hơn mang lại kết quả tách tốt hơn thì nó sẽ được thêm
vào vùng luật để thay thế cho một luật kém hiệu quả nhất dựa trên việc đo
độ dư thừa thông tin.
15
Giới hạn của Rapier là không cho phép các câu hoặc từ đa nghĩa và
không thể phân biệt các hình thức khác nhau của một trường. Nhưng có thể
áp dụng cho một số thông tin dạng ngôn ngữ tự nhiên.
1.3.3 Boosted Wrapper Induction [5]
Boosted Wrapper Induction (BWI) học các mẫu bao đóng đơn giản,
và kết hợp chúng bằng cách sử dụng độ gia tăng. Nó cũng thuộc kiểu đi từ
chi tiết đến tổng quát.
BWI học các mô hình riêng biệt để xác định các thẻ đầu và cuối và
sau đó sử dụng danh sách độ dài các đoạn huấn luyện để ước lượng độ
chính xác của việc nhóm cặp một thẻ đầu và thẻ cuối.
BWI khi học sử dụng các token hiện tại, được bổ sung bằng một số
phép chiếu trực giao tổng quát hóa (bảng chữ cái, từ viết hoa, ký tự số, viết
thường, số, phép kết thúc câu), cũng như là một số lượng vừa phải tri thức
về từ vựng (một danh sách các họ và tên).
BWI xây dựng từ tất cả các luật cụ thể cho mỗi mẫu nên các thông

tin trả về khá đầy đủ nhưng độ chính xác không cao vì có thêm các thông
tin dư thừa. Sau đó thuật toán được cải tiến nhờ sử dụng độ gia tăng. Nó lặp
lại việc áp dụng cho tập huấn luyện và với mỗi lần trọng số tương ứng với
mỗi mẫu thay đổi để nhấn mạnh các mẫu mà trên đó bộ học đã thực hiện
kém chất lượng ở lần học trước.
1.3.4 (LP)
2
[3]
(LP)
2
học các quy tắc tượng trưng cho việc xác định các thẻ đầu và
cuối. Giống như BWI, nó xác định các thẻ đầu và cuối của các trường một
cách riêng biệt. Các thẻ đầu cuối này không gồm N thẻ phía trước và N thẻ
phía ngay sau thông tin cần tách tạo ra khung chữ nhật bề rộng 2*N (Một
thẻ trong (LP)
2
có thể là một thẻ HTML, cũng có thể là một ký hiệu cách
16
dòng, một từ, một số, một chuỗi ký tự, một từ viết hoa, một từ viết thường,
… )
(LP)
2
cũng dựa trên việc quy nạp từ các luật chi tiết đến các luật
tổng quát sao cho các luật tổng quát bao phủ càng nhiều mẫu càng tốt.
Giống như Rapier, (LP)
2
duy trì một vùng luật gồm k luật tốt nhất.
Các luật được tổng quát hóa trong các vòng lặp sau sẽ được thay thế các
luật tồi nhất trong vùng k luật nếu như luật tổng quát hóa này cho phép bao
phủ nhiều mẫu hơn.

Quá trình của (LP)
2
bao gồm 2 giai đoạn. Giai đoạn đầu là thuật toán
từ dưới lên để tổng quát các luật xác định thẻ. Giai đoạn sau nó học một tập
luật điều chỉnh để sửa lại các lỗi gây ra bởi các luật xác định thẻ.
(LP)
2
là một luật khá đơn giản cho việc cài đặt. Lợi thế của nó là cho
phép áp dụng trên một số văn bản ngôn ngữ tự nhiên và cơ chế sửa lỗi sai.
1.3.5 SNoW-IE [8]
SnoW là một thuật toán học quan hệ và thích hợp cho IE. Chúng xác
định các phân mảnh chứa toàn bộ trường cần trích rút sử dụng token, các
đặc trưng ngữ nghĩa,…
SNoW-IE là một hệ thống IE dựa trên SNoW. SNoW học theo 2
bước. Bước 1 là bước lọc. Xác định tập các phân mảnh sau khi lọc bỏ bớt
các phân mảnh chứa các thông tin không chính xác. Nó loại bỏ mảnh dựa
trên 2 điều kiện:
• Nó không chứa các đặc trưng thông dụng trong các mẫu.
• Độ tin cậy của phân mảnh thấp hơn một ngưỡng cho phép.
Điều kiện 1 cho ra độ recall cao, trong khi điều kiện 2 cho độ
precision cao.
17
SNoW-IE tách các phân mảnh chứa toàn bộ trường bằng cách xác
định tất cả các phân mảnh ứng cử trong toàn bộ tài liệu. Mỗi phân mảnh
được mô tả nhờ tập các đặc trưng đã được định nghĩa trước. Các đặc trưng
được tách ra từ 3 vùng: phân mảnh ứng cử, đoạn văn bản ngay trước và
ngay sau phân mảnh ứng cử.
Bước 2 thu thập các phân mảnh đúng từ các phân mảnh còn lại.
1.4 KẾT LUẬN
Ở trên chúng ta vừa tìm hiểu một số hệ ứng dụng trích rút thông tin

đã được triển khai thử nghiệm trong thực tế. Mỗi hệ ứng dụng đều có đặc
trưng riêng cho phép trích rút thông tin khá hiệu quả trên một số lĩnh vực
cụ thể mà hệ áp dụng. Tuy nhiên khi áp dụng cho các thông tin gồm nhiều
dạng khác nhau: dạng cấu trúc, dạng bán cấu trúc và dạng ngôn ngữ tự
nhiên thì các hệ thống này còn chưa hiệu quả. Một số hệ yêu cầu người
dùng phải có hiểu biết khá sâu sắc về trích rút thông tin thì mới có thể khai
thác tốt hệ thống bởi vì họ phải đưa ra những mẫu huấn luyện chính xác
cho hệ thống, khi mà trên thực tế nhiều người dùng không biết, hoặc không
muốn hiểu sâu về hệ thống, họ mong muốn có một giao diện đơn giản, dễ
sử dụng và kết quả thu về nhanh chóng và chính xác.
18
CHƯƠNG 2: CÁC KỸ THUẬT TRÍCH RÚT THÔNG TIN

• Thuật toán trích rút thông tin tự động từ các bảng và danh sách
của nhóm K.Lerman
• Kỹ thuật loại bỏ nhiễu sử dụng cây SST (Site Style Tree) của
nhóm Lan Yi.
• Kỹ thuật trích rút thông tin dựa trên so sánh cây của nhóm Bing
Liu.
• Kết luận
19
2.1 THUẬT TOÁN TRÍCH RÚT THÔNG TIN TỰ ĐỘNG TỪ CÁC
BẢNG VÀ DANH SÁCH CỦA NHÓM K.LERMAN
2.1.1 Một số khái niệm cơ bản
a. Khái niệm phần phân tách (separator)
Phần phân tách (separator) là các ký hiệu dùng để phân cách trang
Web thành các vùng dữ liệu riêng biệt.
Separator được định nghĩa là một hoặc nhiều thẻ HTML liên tục
hoặc bất kỳ một ký tự kết thúc câu nào ngoại trừ tập “,.(-)’%” và dấu cách
“SPACE”. Tập này được chọn theo kinh nghiệm. Đôi khi một dấu gạch

ngang “-” lại là một separator rất tốt, nhưng đối với nhiều kiểu dữ liệu xuất
hiện thường xuyên như số điện thoại, chỉ số bưu điện, thì dấu gạch ngang
lại là một phần của dữ liệu và nó không phải là separator. Hay như một ví
dụ khác 10.000 VNĐ ta không thể phân tách thành 10 và 000, do đó dấu “.”
không được xem như là separator. Tương tự như vậy, một chuỗi các từ mà
được hiển thị trên trang web ví dụ như là “3009 NO HIGHWAY,
Waverley, NS” không thể tách rời được nên dấu phẩy “,” và dấu cách
“SPACE” đều không được coi là separator.
b. Khái niệm dấu hiệu (token)
Một dấu hiệu (token) là một chuỗi các ký tự giữa các separator trong
trang web.
Mỗi dấu hiệu được gán một chỉ số trong trang web bắt đầu từ 0.
Ví dụ 1: Một chuỗi các ký tự :
< b > INN ON THE LAKE < /b >< /a >< /td >< td align = right >
Có 6 token như sau:
0: < b >
20
1: INN ON THE LAKE
2: < /b >
3: < /a >
4: < /td >
5: < td align = right >
c. Khái niệm chuỗi dấu hiệu (token sequence)
Một chuỗi dấu hiệu là một dãy các dấu hiệu liên tiếp trong trang
Web. Độ dài của một chuỗi dấu hiệu là số lượng dấu hiệu chứa trong nó.
Trong ví dụ 1, “< b > INN ON THE LAKE < /b >< /a >< /td >< td
align = right >” là một chuỗi dấu hiệu
2.1.2 Một số nhận xét
- Các web site thường là các web site động, tức là nó tự động
tạo ra một trang từ một trang web mẫu và lấp đầy chúng với

các dữ liệu trả về từ các truy vấn cơ sở dữ liệu. Thuật toán ta
xây dựng cần tìm trang web mẫu để loại bỏ nó trong các trang
web thông tin, điều này sẽ giúp giảm phạm vi tìm kiếm thông
tin của thuật toán. Như vậy sẽ giảm được đáng kể thời gian
tìm kiếm.
- Các vùng thông tin thường chứa trong các bảng nằm trong
cùng nhất, nghĩa là trong nó không còn chứa bảng con nào
khác. (các bảng này thường có số hàng và số cột lớn hơn 2)
- Các vùng thông tin không thể trùng nhau trong các trang web
khác nhau.
21
2.1.3 Trình bày thuật toán
Có thể thấy hầu hết các Website hiện nay đều có cấu trúc dạng bảng
để phân chia trang Web thành các vùng khác nhau như : vùng quảng cáo,
vùng tiêu đề, vùng thông tin,…Nhiệm vụ của chúng ta là cần tách ra vùng
thông tin.
Thuật toán trích rút thông tin dạng bảng như sau:
Hình 2.1:Thuật toán tìm thông tin dạng bảng
Dòng 1: Tải các file về từ những địa chỉ liên kết do người dùng chọn
hoặc nhập vào.
Dòng 2: Tìm và loại bỏ các trang web mẫu.
Dòng 3: Tìm kiếm các bảng trong cùng.
Dòng 4: Trích rút thông tin trong các bảng trả về từ hàm
FindDeepestTable();
22
Procedure FindDataTable(urls)
1. pages ← LoadFile(urls);
2. pages ← TemplateReplace(pages);
3. tables ← FindDeepestTable(pages);
4. ExtractDataTable(tables);

End FindDataTable
Thuật toán tìm kiếm và loại bỏ trang web mẫu như sau:
Hình 2.2: Thủ tục tìm và loại bỏ trang mẫu
23
Procedure TemplateReplace(pages)
1 page ← minimum(pages);
2 templatePage = null;
3 s = null;
4 for t = firsttoken(page) to lasttoken(page)
5
'
s
= concat(s, t);
6 if ( s

appears on every page in Pages )
7 s = s

;
8 continue
9 else
10

=
=
N
page
pagescountn
1
),(

11 if ( n = N AND length(s) >= 3 )
12 add(s, templatePage)
13 end if
14 s = null;
15 end if
16 end for
17 foreach Page in pages
18 Page ← DeleteTemplate(Page, templatePage);
End TemplateReplace
Dòng 1: Trang web mẫu phải có kích thước nhỏ hơn hoặc bằng kích
thước của tất cả các trang đầu vào. Vì vậy ta chọn trang web có kích thước
nhỏ nhất để tìm kiếm trang web mẫu.
Dòng 3: Khai báo một chuỗi ký tự, nếu nó xuất hiện trong tất cả các
trang thì chuỗi đó thuộc trang web mẫu.
Dòng 4: tìm lần lượt từng token trong page.
Dòng 5, 6, 7 và 8: thực hiện nối các token thành chuỗi chừng nào
chúng còn thỏa mãn điều kiện cùng xuất hiện trong tất cả các trang, chuỗi
(dãy) token này chắc chắn được sinh ra từ trang web mẫu.
Dòng 10: đếm số lần xuất hiện của s trong tất cả các trang (N là số
lượng trang Web).
Dòng 11 và 12: Nếu s chứa ít nhất 3 token và s xuất hiện trong tất cả
các trang thì thêm s vào trang web mẫu (điều kiện 3 token dựa trên kết quả
thực nghiệm của nhóm K.Lerman).
Dòng 14: trả s lại null cho lần tìm tiếp theo.
Dòng 17 và 18: Xóa phần trùng lặp (do trang web mẫu sinh ra) trong
tất cả các trang web đầu vào.
24
Thuật toán trích rút dữ liệu trong các bảng ExtractDataTable() sẽ
trích rút các thông tin cần thiết từ các bảng trong cùng. Thuật toán được mô
tả như sau:

Hình 2. 3: Thủ tục trích rút thông tin từ bảng
Việc nhận dạng các hàng và cột dựa trên các separator.
Với thuật toán trích rút thông tin dạng bảng sẽ xử lý rất nhanh chóng,
tốn ít thời gian. Tuy nhiên có nhiều thông tin tồn tại ở dạng ngôn ngữ tự
nhiên hoặc bán cấu trúc, vì vậy cần có một thuật toán khác nhằm xác định
và trích rút các bản ghi này.
25
Procedure ExtractDataTable(tables)
1 rows = null;
2 columns = null;
3 data = null;
4 foreach table in tables
5 rows ← IdentifyRow(dataZone);
6 if (rows.count >= 2)
7 foreach row in rows
8 columns ← IdentifyColumn(row);
9 if (columns.count >= 2)
10 C ← Cluster(columns);
11 data.add(C.get);
12 return data
End ExtractDataTable

×