Tải bản đầy đủ (.docx) (55 trang)

XÂY DỰNG hệ THỐNG TRÍCH rút THÔNG TIN NHÀ đất

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 (3.93 MB, 55 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG HỆ THỐNG TRÍCH RÚT
THÔNG TIN NHÀ ĐẤT

Sinh viên thực hiện : Nguyễn Thành Duy
Lớp: VN – IS1 – K55
Giáo viên hướng dẫn: PGS.TS. Lê Thanh Hương

HÀ NỘI 7-2015


PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Nguyễn Thành Duy
Điện thoại liên lạc: 0961084066
Email:
Lớp: Việt Nhật IS1
Hệ đào tạo: Đại Học
Đồ án tốt nghiệp được thực hiện tại: Đại Học Bách Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày 21 / 2 /2015 đến 24 / 07 /2015
2. Mục đích nội dung của ĐATN
Xây dựng hệ thống rút trích thông tin từ các website quảng cáo nhà đất. Hệ thống
bao gồm việc lấy thu thập các tin quảng cáo nhà đất từ các website quảng cáo và


tách lấy những thông tin cần thiết từ quảng cáo giúp người xem có thể nhanh chóng
tìm được những thông tin cần thiết từ các quảng cáo mà không cần thiết phải đọc cả
một đoạn văn bản quảng cáo dài.
3. Các nhiệm vụ cụ thể của ĐATN
- Tổng hợp các quảng cáo nhà đất từ các website quảng cáo nhà đất để thu được tập
dữ liệu cần thiết.
- Thiết lập hệ thống phân tích từ để lấy được các trường thông tin hữu ích .
- Xây dựng chương trình demo đơn giản.
- Xây dựng website quảng cáo nhà đất với những trường thông tin thu thập được
4. Lời cam đoan của sinh viên:
Tôi –Nguyễn Thành Duy- cam kết ĐATN là công trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của PGS.TS.Lê Thanh Hương.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất
kỳ công trình nào khác.
Hà Nội, ngày tháng năm
Nguyễn Thành Duy
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép
bảo vệ:

Hà Nội, ngày tháng năm
Giáo viên hướng dẫn

Học hàm học vị+điền tên giáo viên
hướng dẫn


TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Hiện nay, hầu hết mọi người đều dựa vào internet để tìm kiếm nhu cầu của
mình. Vì thế, quảng cáo trực tuyến sẽ làm tăng đáng kể khả năng tiếp cận của bất
động sản đến với khách hàng. Một ưu điểm tuyệt vời nhất của quảng cáo online là

sự tiện dụng và nhanh chóng.
Tuy nhiên không phải ai cũng có nhiều thời gian để tìm kiếm, đọc một văn
bản quảng cáo nhà đất khá dài để cân nhắc với nhu cầu của mình. Nắm bắt các xu
hướng đó, trong đồ án của em, em cũng đề xuất phát triển một hệ thống tổng hợp và
trích rút các thông tin trong các văn bản quảng cáo nhà đất trực tuyến thành các
trường mà người đọc cần quan tâm, giúp người đọc giảm thiểu được tối đa thời gian
đọc các bản tin quảng cáo nhà đất mà vẫn hiểu được toàn bộ nội dung quảng cáo.
Cấu trúc đồ án của em gồm có các chương sau :
Chương 1 : Định hướng vấn đề và giải pháp
Chương 2 : Cơ sở lí thuyết
Chương 3 : Quá trình thu thập tập dữ liệu
Chương 4 : Quá trình xử lý dữ liệu
Chương 5 : Kết quả đạt được


MỞ ĐẦU
Sự phong phú và tăng trưởng không ngừng của các nguồn dữ liệu trên mạng
Internet mang lại cho con người lượng thông tin khổng lồ, nhưng cũng đặt ra các
vấn đề về tìm kiếm và chọn lọc thông tin. Đối với mọi cá nhân, tổ chức, việc cập
nhật thường xuyên các nguồn thông tin trên mạng Internet là rất quan trọng, quyết
định đến hiệu quả, thành công trong lĩnh vực hoạt động của mình. Tuy nhiên, việc
tìm kiếm được các thông tin phù hợp và có giá trị đối với người truy cập mạng
Internet sẽ tốn kém thời gian do dữ liệu nằm phân tán trên mạng và không được sắp
xếp, phân loại như mong muốn. Do đó, việc tìm kiếm, rút trích các thông tin có ý
nghĩa từ Internet là một bài toán cần được giải quyết.
Vấn đề rút trích tự động các thông tin phù hợp và có giá trị đối với người
truy cập mạng Internet cũng nhận được nhiều sự quan tâm của các nhà công nghệ
thông tin trên thế giới.
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ỉ địa điểm v.v… Trong đồ án
này, em 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ậy nên, trong đồ án ra trường của em. Em đã đưa ra ý tưởng đó là xây dựng
một hệ thống rút trích thông tin từ các website quảng cáo nhà đất dựa trên 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.
Hệ thống bao gồm việc lấy thu thập các tin quảng cáo nhà đất từ các website quảng
cáo và tách lấy những thông tin cần thiết từ quảng cáo giúp người xem có thể nhanh
chóng tìm được những thông tin cần thiết từ các quảng cáo mà không cần thiết phải
đọc cả một đoạn văn bản quảng cáo dài.


LỜI CÁM ƠN
Trước hết, em xin gửi lời cảm ơn chân thành tới PGS.TS. Lê Thanh Hương, người
đã tận tình dạy dỗ và hướng dẫn em trong quá trình hoàn thành đồ án cũng như
trong học tập. Đồng thời, em xin bày tỏ lòng biết ơn đến các thầy cô giáo trong Viện
Công nghệ thông tin và Truyền thông – trường Đại học Bách Khoa Hà Nội, những
người đã tận tâm giảng dạy, truyền đạt cho chúng em những kiến thức cơ bản làm
nền tảng cho việc thực hiện đồ án cũng như trong quá trình công tác sau này.
Em cũng xin gửi lời cảm ơn tới các anh chị tại trường Đại học Bách Khoa Hà Nội,
các bạn, các em trong nhóm sinh viên nghiên cứu, những người luôn ở bên cạnh
giúp đỡ, động viên em trong quá trình hoàn thành đồ án.
Cuối cùng, với tất cả sự kính trọng, con xin bày tỏ lòng biết ơn sâu sắc tới bố mẹ và
anh chị em trong gia đình đã luôn là chỗ dựa tinh thần vững chắc và tạo mọi điều
kiện cho con ăn học nên người.

Hà Nội, ngày 24 tháng 7 năm 2015

Nguyễn Thành Duy


Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

5


Mục lục

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

6


DANH MỤC HÌNH
Hình 1 : Kiến trúc hệ thống ………………………………………….……..12
Hình 2 : ANNIE - kiến trúc hệ thống rút trích thông tin của GATE……….13
Hình 3: Kiến trúc hệ thống (bộ trích rút thông tin GATE-ANNIE Hình 2)
……………………………………………………...…………………….....30
Hình 4 : Kiến trúc xử lý dữ liệu XML…………….…………………….…..37
Hình 5 : Cơ sở dữ liệu………………………………..…………….………..40
Hình 6: Sơ đồ phân cấp chức năng website…………..…………..…………41
Hình 7: Cài đặt wp-pipes trên wordpress……………………………...……42
Hình 8 : Các bước lấy thông tin trên web bằng wp-pipes…………………..43
Hình 9: Nội dung lưu trong cơ sở dữ liệu…………………………………...44
Hình 10: Nội dung bài viết đã được tách ra……………………………..…..45
Hình 11 : file lưu source nguồn Html của tập dữ liệu………………..……..46
Hình 12: Giao diện làm việc với GATE…………………………..……..….46
Hình 13 :Chọn folder chứa các tập tin HTML trong tập dữ liệu.……….….48
Hình 14 :Load các tập tin HTML………………………….………………..48
Hình 15 :Bắt đầu chạy các luật đễác định các thực thể cần thiết trong các tập tin
HTML ……………………………………………….………………......….49

Hình 16 : Các thực thể đã được xác định………….……………………...…49
Hình 17 : Lưu kết quả sang các file XML………….………………………..50
Hình 18 :Các tập tin XML được lưu lại trong folder data…….…………….50
Hình 19 :Đọc các file XML và lưu lại trong CSDL và hiển thị kết quả lên
Web……………………………………………………………………….…51
Hình 20 :Giao diện bản tin ………………………………...……...….……..52
Hình 21 : Nội dung bản tin gốc……………………………..…….…………53

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

7


DANH MỤC BẢNG
Bảng 1: Phương pháp tiếp cận đề tài…………………………………..…………..15
Bảng 2: các file JAPE và chức năng xử lý………………………………...……….47
Bảng 3 : kết quả thực nghiệm ……………………………………………………..54

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

8


DANH MỤC CÁC TỪ VIẾT TẮT
Chữ viết tắt

Viết đầy đủ

GATE


General Architecture for Text Engineering

ANNIE

A Nearly-New Information Extraction System

IE

Information Extraction

JAPE

Java Annotation Patterns Engine

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

9


PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
1. Chương 1 : Định hướng vấn đề và giải pháp
1. Định hướng vấn đề
Nhà đất luôn là vấn đề quan trọng hàng đầu trong các thành phố lớn, với nhu
cầu về nhà ở rất cao của sinh viên và những người đi làm cần được đáp ứng . Với sự
phát triển mạnh mẽ của CNTT hiện nay ta có thể dễ dàng tìm kiếm thông tin nhà đất
trên internet và các phương tiện truyền thông nhưng chúng vẫn chưa thực sự đáp
ứng nhu cầu của người dùng. Thường những bản tin quảng cáo nhà đất được viết
dưới dạng text khá dài, không định rõ ra các trường thông tin quan trọng như giá
nhà, địa chỉ, đường, Quận, Huyện … Vì vậy mà những website như vậy không có
khả năng tìm kiếm theo giá, theo Quận Huyện, theo diện tích …

Hơn nữa không phải ai cũng biết đến và đăng bài quảng cáo ở tất cả các
website cũng như tìm kiếm bất động sản ở nhiều website. Điều đó gây khá nhiều bất
tiện cho những khách hàng có nhu cầu tìm kiếm bất động sản.
Vì vậy trong đồ án của em, em đã xây dựng một hệ thống tổng hợp và xử lý
các bản tin quảng cáo từ các website khác để trích rút những trường thông tin hữu
ích cho website của em. Website sẽ khắc phục được những nhược điểm còn thiếu từ
các website quảng cáo bất động sản khác.
Hệ thống sẽ lấy dữ liệu từ các trang mạng rao vặt như rongbay.com (Hình 1),
lamchame.com/forum/ (Hình 2), enbac.com , batdongsan.com.vn, …
Đầu vào là những bản tin phi cấu trúc (unstructured) , tức là văn bản không
có thẻ HTML cũng như những manh mối để nhận dạng thực thể. Và những bản tin
bán cấu trúc (semistructrured data), tức là chúng không hoàn toàn phi cấu trúc
nhưng cũng không hoàn toàn có cấu trúc. Ví dụ, một tài liệu có thể chứa một vài
trường có cấu trúc chẳng hạn như tiêu đề, họ tên, địa chỉ , số điện thoại…nhưng
cũng có thể chứa một lượng lớn những thành phần văn bản phi cấu trúc chẳng hạn
như phần miêu tả , tóm tắt…
Website :

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

10


Hình 1 : bản tin quảng cáo trên trang rongbay.com
Đoạn source nguồn của bản tin trong trang như sau :

<a style="color:inherit !important;font-size:inherit !important;" href=" title="Cho thuê căn hộ">Cho thuê căn hộ</a> độc lập 3 tr-50m2 nằm trong toà nhà style="color:inherit !important;font-size:inherit !important;" href=" title="chung cư">chung cư</a> mới xây gần ngã tư sở dành riêng
cho viên chức cao cấp ( không cho sinh viên thuê), có chỗ để xe rộng, có công tơ điện lực giá mua điện trực
tiếp giá nhà nước cho hộ gia đình (đơn giá 1400đ/số), nguồn nước sạch Sông đà cấp ổn định, có phòng phơi
đồ riêng không bị mưa ướt, có phòng đa năng có thể đọc sách, vào mạng, thư giãn.



1 phòng bếp đã trang bị đầy đủ tủ bếp, máy hút mùi, chậu rửa vòi nóng lạnh


1 phòng vệ sinh nóng lạnh khép kín, vòi tắm sen, thiết bị dồng bộ, cao cấp


1 phòng ngủ đẹp, đã trang bị nội thất, nhiều cửa sổ, thoáng mát. Căn
hộ</a> đã có sẵn đầu chờ lắp điều hoà và máy giặt. Có kho đựng đồ.


Toà nhà phục vụ miễn phí nhiều tiện ích như: Lau vệ sinh và đổ rác, bơm nước và chiếu sáng
chung, bảo dưỡng thiết bị, bảo vệ và gửi xe, Internet VNPT Cab Quang tốc độ cao (Wifi). Truyền hình Trung
ương VTVCab.


Với mục tiêu AN TOÀN, SẠCH SẼ, YÊN TĨNH , CHẤT LƯỢNG, THUẬN TIỆN, THOẢI MÁI . Toà
chung cư toàn viên chức cao cấp, không cho sinh viên thuê, phục vụ tốt, sạch sẽ tạo nên sự khác biệt hơn hẳn
các chung cư khác, môi trường yên tĩnh, văn minh, không gian riêng biệt như sống trong ngôi nhà biệt lập,
không bị nhìn bởi các gia đình xung quanh, Căn hộ cực kỳ lý tưởng cho các bạn trẻ viên chức chuẩn bị kết
hôn. liên hệ chính chủ anh Tùng 0966555839 địa chỉ nhà chung cư số 64 ngõ 358/55/20 ( vào ngõ 358, nghách 55, hẻm 20, nhà 64) bùi xương trạch</span>, thanh
xuân, hà nội ( gần ngã tư sở-ô tô chở đồ vào tận nhà ). Hoặc đi vào từ địa chỉ 223 Khương hạ ( Đường bờ sông ) đi 150m rẽ phải vào ngh ách 55.</span>



Còn đây là website

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

11


Hình 2 : bản tin quảng cáo trên forum lamchame.com
Đoạn source nguồn của bản tin trong trang như sau :
<blockquote class="messageText SelectQuoteContainer ugc baseHtml">
Cho thuê Chung cư mi ni thuộc tòa nhà hiện đại với đầy đủ trang thiết bị , rất tiện nghi của 01 căn họ mi ni,
có điều hoà,có tủ gỗ ga gối đệm,có ,ti vi xem cáp miễn phí, nóng lạnh, quạt thông gió, bộ bàn ghế, rèm cửa
sổ thoáng, đặc biệt có thang máy, cầu thang Hành lang rộng rãi,có kệ bếp nấu ăn và bồn rửa bát, có mạng cáp

quang tốc độ cao. Không gian nhà thoáng mát được vệ sinh sạch sẽ. Chỗ đ 28m2, có cửa sổ thoáng, giá từ 2,8
triệu

Phòng 25m2, có cửa sổ thoáng, giá từ 2,6 triệu,

Vị trí : nằm cạnh Bich C, là khu vực trung tâm nhất hà Nôi gần các khu văn phòng, nhiều công ty,
TRung tâm Hội Nghị Quốc Gia và các trường đại học Luât, Hành chính, Ngoại giao,giao thông ,lao Động xã
Hội. Nhà cách mặt đường Trần Duy Hưng 20m

Địa chỉ : nhà số 6a, ngo 180 trần Duy Hưng. Quí khách có nhu cầu thuê phòng xin vui lòng liên hệ
trước 30p: chính chủ 0989661218
<div class="messageTextEndMarker"> </div>
</blockquote>

Dựa trên nhu cầu quan tâm của người xem, em xác định hệ thống sẽ trích
chọn những thông tin cần thiết như sau:
Template của hệ thống

• Tiêu đề :





Cần mua
Cần bán
Cho thuê
Cần thuê

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1


12


• Loại nhà
 Chung cư mini
 Nhà riêng (chung chủ / riêng chủ)
 Nhà trọ
• Đối tượng






Không
Nam
Nữ
Người đi làm
Sinh viên , học sinh

• Diện tích
(m2)
• Khép kín
có / không
• Giá tiền
(vnd)
 Gía nhà
vnd
 Phương thức thanh toán


tháng một/ 3 tháng một / 6 tháng

một …

• Địa chỉ
• Ngày đăng
• Liên hệ
 Tên liên hệ
 Điện thoại
 Email

address

name
number
email

2. Định hướng giải pháp
Trên thực tế, vấn đề nêu trên cũng được nhắc đến khá nhiều trong các hệ thống
xử lý ngôn ngữ. Và từ đó cũng có khá nhiều giải pháp được đề xuất ra cho từng vấn
đề cụ thể.
2.1 Phương pháp rút trích thông tin
Theo các phương pháp trích xuất hiện nay có thể chia thành hai cách tiếp cận
chính: tiếp cận công nghê tri thức (Knowledge Engineering) và tiếp cận học máy tự
động (Automatic Training)
Tiếp cận tri thức
Dựa trên luật, mẫu được xây dựng thủ công.
Được phát triển bởi những chuyên gia ngôn ngữ,


Tiếp cận học tự động
Dựa trên học máy thông kê.
Người phát triển không cần thành thạo ngôn ngữ,

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

13


chuyên gia lĩnh vực có kinh nghiệm.
Dựa vào trực giác, quan sát. Hiệu quả đạt được tốt
hơn. Việc phát triển có thể sẽ tốn nhiều thời gian
Khó điều chỉnh khi có sự thay đổi

lĩnh vực.
Cần một lượng lớn dữ liệu học được gán nhãn tốt.
Khi có sự thay đổi  có thể cần phải gán nhãn lại
cho cả tập dữ liệu học.

Bảng 1: Phương pháp tiếp cận đề tài
Dựa vào đặc thù của đồ án em quyết định chọn phương pháp tiếp cận tri thức cho
đồ án của mình.
Sau một thời gian dài tìm hiểu, em nhận thấy có một hệ thống được sử dụng rộng
rãi trên thế giới bởi cộng đồng các nhà nghiên cứu thuộc nhiều lĩnh vực của xử lý
ngôn ngữ, đặc biệt là rút trích thông tin. Nó được sử dụng cho nhiều dự án rút trích
thông tin của nhiều ngôn ngữ, đó là GATE. GẢE hỗ trợ phát triển phần mềm theo
ba khía cạnh:

• Kiến trúc phần mềm (Software Architecture)
• Khung làm việc (Framework) – Giúp xây dựng hoàn chỉnh các tài nguyên


trong một ứng dụng về xử lý ngôn ngữ tự nhiên
• Môi trường phát triển (Development Environment)
GATE còn cung cấp văn phạm JAPE (Java Annotation Patterns Engine) là một
ngôn ngữ tổng quát dùng đặc tả các mẫu nhận dạng để rút trích thông tin, qua đó
người dung có thể sử dụng JAPE để lập trình cho vấn đề nghiên cứu của mình.
Ngoài ra hệ thống con ANNIE (A Nearly – New Information Extraction) của GATE
gồm các công cụ xử lý chuyên sâu về xử lý ngôn ngữ tự nhiên như Unicode
Tokeniser , FS Gazetteer Loopup, Sentence Tagger, Name Matcher …
Vì vậy em đã sử dụng GATE (cụ thể là GATE developer) cho hệ thống trích rút
thông tin nhà đất của mình.

Kiến trúc hệ thống

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

14


Hình 1 : Kiến trúc hệ thống
2.2 Tập dữ liệu sử dụng
2.2.1 Tập dữ liệu - thu thập thông tin trên web ( crawler)

a. Giới thiệu tổng quan về thu thập thông tin trên web
Thu thập thông tin (Information Retrieval - IR) trên web tập trung vào việc
khám phá một cách tự động nguồn thông tin có giá trị trực tuyến. Nội dung web có
thể được tiếp cận theo 2 cách khác nhau: Tìm kiếm thông tin và khai phá dữ liệu
trong cơ sở dữ liệu lớn. Khai phá dữ liệu đa phương tiện là một phần của khai phá
nội dung Web, nó hứa hẹn việc khai thác được các thông tin và tri thức ở mức cao
từ nguồn đa phương tiện trực tuyến rộng lớn.

Khai phá văn bản Web là việc sử dụng kỹ thuật khai phá dữ liệu đối với các
tập văn bản để tìm ra tri thức có ý nghĩa tiềm ẩm trong nó. Dữ liệu của nó có là dữ
liệu có cấu trúc hoặc không cấu trúc. Kết quả khai phá không chỉ là trạng thái chung
của mỗi tài liệu văn bản mà còn là sự phân loại, phân cụm các tập văn bản phục vụ
cho mục đích nào đó
Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

15


b. Quá trình thu thập thông tin trên web
Nắm bắt những đặc tính của người dùng Web là việc rất quan trọng đối với
người thiết kế Website. Thông qua việc khai phá lịch sử các mẫu truy xuất của
người dùng Web, không chỉ thông tin về Web được sử dụng như thế nào mà còn
nhiều đặc tính khác như các hành vi của người dùng có thể được xác định. Sự điều
hướng đường dẫn người dùng Web mang lại giá trị thông tin về mức độ quan tâm
của người dùng đến các Website đó. Khai phá Web theo sử dụng Web là khai phá
truy cập Web để khám phá các mẫu người dùng truy cập vào Website.

c. Các kỹ thuật crawling và indexing
Một Web thu thập thông tin (Web Crawler) là một chương trình máy tính có
thể “duyệt web” một cách tự động và theo một phương thức nào đó được xác định
trước. Vì là một chương trình nên quá trình “duyệt web” của các web crawler không
hoàn toàn giống với quá trình duyệt web của con người (web crawler phải sử dụng
các phương thức dựa trên HTTP trực tiếp chứ không thông qua web browser như
con người). Các web crawler thường bắt đầu với một danh sách URL của các web
page để ghé thăm đầu tiên. Khi ghé thăm một URL, crawler sẽ đọc nội dung web
page, tìm tất cả các hyperlink có trong web page đó và đưa các URL được trỏ tới
bới các hyperlink đó vào danh sách URL. Dựa vào danh sách URL này, Crawler lại
tiếp tục quá trình duyệt đệ quy để ghé thăm tất cả các URL chưa được duyệt đến.

Quá trình này được gọi là web crawling hoặc là web spidering, các web crawler còn
được gọi là các robot (bot) hoặc nhện web (web spider). Về bản chất, web crawling
chính là quá trình duyệt đệ quy một đồ thị cây có các node là các web
2.2.2 KHẢO SÁT MỘT SỐ PHẦN MỀM TỔNG HỢP TIN

a. Google Reader (đã đóng cửa)
Google Reader là cơng cụ tổng hợp tin hữu ích của Google. Việc dùng
Google Reader khá đơn giản, chỉ cần thêm địa chỉ URL của feed/rss của nguồn tin
muốn theo dõi, mỗi khi nguồn tin có thay đổi, Google Reader sẽ lấy tin về tự động.
Google Reader còn có nhiều tiện ích như: - Chia sẻ trực tiếp các tin đọc trong
Google Reader cho bạn bè (bấm vào nút Share), thông tin này sẽ được hiển thị trên
Google Buzz hoặc dùng nút Send To để gửi đến các dịch vụ khác như Twitter,
Facebook, Blogger. Chia sẻ các danh sách nguồn tin mà bạn thấy hữu ích cho bạn
bè. - Kiểm tra sự cập nhật của các trang web, không nhất thiết ở dưới định dạng
feed bằng cách thêm URL của trang web cần lấy vào Google Reader.

b. iGoogle (đã đóng cửa)
Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

16


iGoogle là dịch vụ trang chủ tìm kiếm cá nhân hố (Personalized Homepage)
với các tính năng mới như "Gadget Maker" và khả năng hiển thị kết quả tìm kiếm
dựa trên từng vùng. iGoogle cho phép người dùng có thể tạo lập một trang chủ tìm
kiếm hồn tồn theo ý thích. Tại trang chủ này, người dùng có thể đặt các "gadget"
(tiện ích nhỏ) chứa các thông tin quan tâm như thời tiết, chứng khốn, tin tức, và
thậm chí là cả ngày tháng hiện tại. Ngồi ra iGoogle cung cấp nhiều tiện ích khác
như: xem RSS tin tức từ các site khác, To do list, đếm ngược thời gian, khung tìm
kiếm của Wikipedia …


c. Yahoo pipes
Yahoo hiện đang thử nghiệm dịch vụ tổng hợp thông tin tự động tại địa chỉ.
Yahoo!Pipes ( Đây là cơng cụ tương tác qua web hỗ trợ xử lý và tổng hợp các
nguồn tin từ internet cho phép người dùng thu thập thông tin từ các nguồn khác
nhau, lọc và xem tin tùy theo lĩnh vực quan tâm. Yahoo Pipe hỗ trợ nhiều nguồn tin
khác nhau như Data, Page, Url, Rss, yahoo Search, … và nhiều cơng cụ cho phép
người dùng xác định từ khĩa tin cần lấy.
WP – Pipes
WP – Pipes là một Plugins cho phép lấy dữ liệu theo nguồn dữ liệu có sẵn
trên tất cả các website và tùy chỉnh nguồn dữ liệu có sẵn xuất dữ liệu ra theo cách
của bạn và hoàn toàn tự động. Với khả năng hỗ trợ mạnh mẽ trên nền tảng cms
WordPress Wp – Pipes chắc chắn sẽ làm hài lòng người sử dụng bởi khả năng tùy
biến cao kết hợp cùng nhiều Add on hấp dẫn cho phép thêm nhiều tùy chọn trong
quá trình xuất dữ liệu ra website đích.
Không giống như những Plugins cho phép tùy chỉnh dữ liệu khác Wp –
Pipes cho phép tùy chỉnh dữ liệu đầu vào hay xuất dữ liệu đầu ra theo cách riêng
của bạn.
Với một pugin lấy tin tự động thông thường bạn chỉ có thể leck trọn vẹn tin
đó về website của mình mà không thể can thiệp và tin leck về trong quá trình leck
hoặc phải chờ tin thực hiện xong mới có thể thực hiện việc này. Trái hẳn với các
Plugins thông thường khác Wp – Pipes cho phép bạn xử lý dữ liệu ngay trong khi
chương trình xử lý (Processors).
Kết hợp với Wp – Pipes là các Addons cho phép tùy chỉnh nhiều hơn trong
quá trình xử lý như:

• TextSpinner thay đổi các từ ngữ trong bài thành từ ngữ mới do bạn

chỉ định (Spin content)
• Phiên bản hiện tại đang hỗ trợ tiếng Anh và tiếng Pháp. Tiếng Việt và

sẽ được tiếp tục cập nhật.
Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

17


• Meta Data processor tự động tạo ra các thẻ meta keywords cũng như

thẻ meta description một cách tự động khi leck bài từ nguồn khác về.
• Email source: Lọc email từ hỗ trợ IMAP và POP giúp bạn có bộ sưu
tập email khách hàng.
Chính vì sự tiện lợi đó em đã chọn web-pipes cho việc tổng hợp tin tức cho tập dữ
liệu của mình
2.3 GATE: Kiến trúc chung cho kỹ thuật xử lý văn bản
GATE là viết tắt của General Architecture for Text Engineering, GATE không
phải là một phần mềm ứng dụng cụ thể, mà là một cơ sở hạ tầng phần mềm để xây
dựng và phát triển các ứng dụng xử lý ngôn ngữ tự nhiên, đặc biệt là để rút trích
thông tin. GATE được phát triển bởi một nhóm nghiên cứu của Trường Đại học
Sheffield, Anh Quốc từ năm 1995. Từ đó đến nay, đã có nhiều phiên bản của GATE
được giới thiệu. Hiện nay, GATE đang được sử dụng rộng rãi trong các dự án
nghiên cứu và phát triển trong lĩnh vực rút trích thông tin trên nhiều ngôn ngữ như
tiếng Anh, Hy Lạp, Tây Ban Nha, Thụy Điển, Đức, Ý, Pháp,... GATE cũng hỗ trợ
rất mạnh cho việc phát triển Web có ngữ nghĩa.
GATE hỗ trợ các nhà nghiên cứu và phát triển phần mềm theo ba khía cạnh:
• Kiến trúc phần mềm (Software Architecture)
• Khung làm việc (Framework)
• Môi trường phát triển (Development Environment)
Là một kiến trúc phần mềm, GATE cũng được chia thành nhiều thành phần khác
nhau, mỗi thành phần được gọi là một tài nguyên (Resource). Mỗi tài nguyên thực
hiện một chức năng riêng biệt và có khả năng tương tác, hỗ trợ hoạt động với nhau.

Trong GATE có ba loại tài nguyên là:
• Tài nguyên ngôn ngữ (Language Resource - LR)
• Tài nguyên xử lý (Processing Resource - PR)
• Tài nguyên hiển thị (Visual Resource - VR)
Tài nguyên ngôn ngữ tương ứng với phần dữ liệu; tài nguyên xử lý tương ứng
với các giải thuật; và tài nguyên hiển thị hỗ trợ cho phần giao diện với người dùng.
Ba loại tài nguyên này được gọi chung là CREOLE (Collection of REusable Object
for Language Engineering).
GATE được sử dụng rộng rãi trên thế giới bởi cộng đồng các nhà nghiên cứu
thuộc nhiều lĩnh vực của xử lý ngôn ngữ, đặc biệt là rút trích thông tin. Nó được sử
dụng cho nhiều dự án rút trích thông tin của nhiều ngôn ngữ và miền vấn đề. Một ví
Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

18


dụ điển hình của hệ thống rút trích thông tin là ANNIE (A Nearly-New Information
Extraction System).

2.3.1 ANNIE – Hệ thống rút trích thông tin trong GATE
Hệ thống GATE-ANNIE : là một hệ thống con của GATE Framework (General
Architecture of Text Engineering) một trong các dự án lớn nhất thuộc khoa Khoa
học Máy tính, Đại học Sheffield của Anh. Đây là hệ thống dựa trên các từ điển,
Ontology và việc xây dựng luật để đánh dấu (annotation) các thành tố trong văn
bản. Việc xác định các thực thể có tên trong văn bản thực hiện trong quá trình đánh
dấu văn bản.
GATE-ANNIE gồm tập các module: tokenizer, gazetteer, POS tagger… GATE
có thể xử lý input với nhiều định dạng khác nhau như TXT, HTML, XML… Ngoài
ra, nó còn sử dụng JAPE (Java Annotation Patterns Engine) để xây dưng các bộ luật
cho việc gán nhãn văn bản. Nó được đóng gói như một plugin trong GATE.

GATE là một bộ công cụ Java và nó cũng là một phần mềm nguồn mở dưới giấy
phép GNU. Người dùng nhận sự hỗ trợ miền phí từ cộng đồng người dùng và các
nhà phát triển qua website chính thức của GATE.
Mô hình kiến trúc để thực hiện trích rút thông tin của GATE :

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

19


Hình 2 : ANNIE - kiến trúc hệ thống rút trích thông tin của GATE.
Tuy nhiên, GATE chưa hỗ trợ cho tiếng Việt, và văn phạm JAPE mà GATE cung
cấp để rút trích thông tin chỉ là một ngôn ngữ tổng quát để đặc tả các mẫu nhận
dạng. Người phát triển ứng dụng có thể sử dụng JAPE để lập trình cho miền và cơ
sở tri thức cụ thể của mình.
GATE chứa một hệ thống chiết xuất thông tin hoàn chỉnh có thể được sử
dụng tuỳ ý, đó là ANNIE (a Nearly-New Information Extraction System: Hệ
thống trích rút thông tin tương đối mới). Rất nhiều người sử dụng nhận thấy
rằng đây là điểm xuất phát lý tưởng cho ứng dụng của họ, và do đó ta cũng sẽ
tìm hiểu về hệ thống này.

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

20


2. Chương 2 : Cơ sở lí thuyết
1. Giới thiệu về ANNIE
ANNIE ( A Nearly – New Information Extraction System) là hệ thống rút
trích thông tin bao gồm tập hợp các tài nguyên xử lý. ANNIE dựa trên giải thuật

trạng thái hữu hạn và ngôn ngữ JAPE.
2.4 Các thành phần trong ANNIE
2.4.1 Modul tách từ : Tokeniser
Tokeniser chia văn bản thành các thành phần đơn giản, được gọi là TOKENS,
với nhiều loại khác nhau như là: từ, số, dấu chấm câu, các ký tự đặt biệt ($, £, &, #
…) và khoảng trắng.
Tokeniser Rules: một luật gồm có LHS (Left Hand Side) và RHS (Right Hand
Side). LHS và RHS cách nhau bởi dấu ‘>’.
Toán tử của LHS:
• | : hay
• : xuất hiện 0 lần hoặc nhiều lần hơn .
• ? : xuất hiện 0 lần hoặc 1 lần.
• + : xuất hiện 1 lần hoặc nhiều lần hơn.
Toán tử của RHS:
Sử dụng dấu “;” làm dấu phân cách, theo định dạng sau: {LHS} > {annotation
type} ; {attribute 1}={value1};…; {attribute N}={value N}

2.4.2 Modul từ điển : Gazetteer
Danh sách Gazetteer là những tập tin văn bản đơn giản, với mỗi dòng là một
thực thể. Mỗi danh sách biểu hiện cho một tập các cái tên, như là tên thành phố, tên
các tổ chức, tên các ngày trong tuần …
Ví dụ: danh sách về thành phố :
• Hà Nội
• Hải Phòng
• Thái Bình
• Bắc Ninh
• …
Để truy cập đến các danh sách trong Gazetteer ta dùng một tập tin chỉ mục
“list.def”. Cấu trúc của tập tin chỉ mục “list.def” gồm có: nhiều hàng, mỗi hàng mô
Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1


21


tả một danh sách gồm có tên của danh sách đó (list name), kiểu chính (major type),
kiểu phụ (minor type) của những từ được liệt kê trong danh sách, những thông tin
này được phân biệt bởi dấu hai chấm “:”. Trong đó kiểu chính là bắt buộc phải có,
còn kiểu phụ có thể có hoặc không.
Ví dụ: thucthekhongten.lst:UE
Các danh sách Gazetteer của tập tin chỉ mục “list.def” phải cùng nằm chung
cùng một thư mục.
Cách tạo một danh sách Gazetteer, ta có thể dùng một chương trình soạn
thảo văn bản nào bất kỳ để tạo. Ở đây ta dùng Notepad, tập tin sẽ gồm nhiều dòng,
tại mỗi dòng là một tên của thực thể, có thể là một từ hoặc một cụm từ, chấp nhận
có khoảng trắng. Và lưu lại với đuôi mở rộng là “.lst”. Sau đó ta mở tập tin chỉ mục
“list.def” để thêm danh sách mới tạo vào, với cú pháp như đã nêu ở phần trên.
Danh sách Gazetteer là những tập tin văn bản đơn giản, với mỗi dòng là một
thực thể. Mỗi danh sách biểu hiện cho một tập các cái tên, như là tên thành phố, tên
các tổ chức, tên các ngày trong tuần …

 Thêm tên các thực thể mới vào Gazetter
Mặc định thì GATE chỉ sẽ tìm thấy tên những thực thể mà GATE lưu trữ
trong các file *.lst trong plugins\ANNIE\resources\gazetteer
vd : muốn nhận dạng thực thể “Nguyễn Văn A” ta thêm “Nguyễn Văn A” vào
plugins\ANNIE\resources\gazetteer\person_full.lst

2.4.3 Modul tách câu : Sentence Splitter
Là quá trình phân chia văn bản thành các câu, công việc này là cần thiết cho
quá trình tagger. Việc phân chia này chủ yếu dựa vào dấu câu như dấu chấm hay
dấu xuống dòng. Mỗi một câu sẽ được gán kiểu là “Sentence”. Mỗi một câu break

cũng được gán kiểu là “Slipt”.

2.4.4 Modul xác định quan hệ : Semantic Tagger
ANNIE’s semantic tagger dựa trên ngôn ngữ JAPE. Nó chứa những luật tác
động tới những chú thích được chỉ định ở các giai đoạn trước để tạo ra các thực thể
được chú thích ngữ nghĩa.

2.4.5 Modul xác định quan hệ đồng tham chiếu : Orthographic
Coreference (OrthoMatcher)
Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

22


Tên cũ là ‘NameMatcher’. OrthoMatcher thêm những mối quan hệ nhận
dạng giữa các thực thể có tên được tìm thấy bởi Semantic Tagger, để thực thi phần
Coreference.
Tuy nhiên, nếu nó không tìm thấy những thực thể có tên nào mới, thay vì nó
có thể chỉ định kiểu là unclassified, thì nó dùng kiểu matching name.
Những luật ánh xạ chỉ được gọi nếu những cái tên đang được so sách với cả
hai cùng loại , hay là nếu một trong chúng được phân loại là unknown.

3. Bộ luật : JAPE
3.1 Giới thiệu về JAPE
JAPE – Java Annotation Patterns Engine là một thành phần của GATE, dùng
để nhận biết các thực thể bằng luật được định nghĩa trước. Và là ngôn ngữ dùng để
viết biểu thức đặc tả (RE – Regular expression) thông qua chú thích.

3.2 Văn phạm JAPE : JAPE Grammar
JAPE Grammar gồm một tập hợp nhiều phần (phase), mỗi phần chứa một

tập các luật được định nghĩa thành từng pattern. JAPE Grammar gồm có hai phần là
vế trái (LHS) và vế phải (RHS) , hai vế được phân biệt bởi ký hiệu “-->”. Có cú
pháp sau: LHS --> RHS
Vế trái chứa phần mô tả về những pattern chú thích, trong đó có thể chứa các
toán sau:
• | : hay
• : xuất hiện 0 lần hoặc nhiều lần hơn .
• ? : xuất hiện 0 lần hoặc 1 lần.
• + : xuất hiện 1 lần hoặc nhiều lần hơn.
Vế phải bao gồm các chú thích do ta tự định nghĩa, chúng chứa thông tin về
tên nhãn. Ngoài ra vế phải có thể chứa mã code Java để tạo hoặc chỉnh sửa các chú
thích.
Mỗi pattern mô tả chú thích bên vế trái có thể được tham chiếu tới vế phải
bằng tên nhãn được gắn vào mỗi pattern. Tên nhãn này được đặt sau dấu “:”.

3.3 Văn phạm các luật JAPE : JAPE Grammar Rules
Luật Grammar về cơ bản có hai loại:
• Dựa vào Gazetteer List.
Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

23


• Dựa vào Tokeniser.
• Dựa vào các module khác (các loại luật Grammar khác).

3.3.1 Loại đơn giản :
Không dựa vào Gazetteer List, có thể được định nghĩa bằng cách dùng một tập
các định dạng để nhận biết một thực thể.
Ví dụ: Chỉ cần một luật đơn giản để định nghĩa một địa chỉ IP, bởi ví nó có định

dạng đơn giản bao gồm một dãy số kết hợp với dấu chấm.
Rule : IPAddress
(
{Token.kind == number}
{Token.string == “.“}
{Token.kind == number}
{Token.string == “.“}
{Token.kind == number}
{Token.string == “.“}
{Token.kind == number}
):ipAddress
-->
:ipAddress.Address = {kind=“ipAddress“}

3.3.2 Loại phức tạp:
Dựa nhiều vào Gazetteer List, phải định nghĩa bằng nhiều cách để nhận biết
được một thực thể.
Ví dụ: Để nhận biết một thực thể là tên người thì ta phải định nghĩa nhiều cách
để có thể nhận biết chính xác được, bởi vì việc nhận dạng tên người được xác định
theo khá nhiều cách:
• Mr Huy
• anh Huy
• Nguyễn Văn Huy
• …v…v…

Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

24



3.4 JAPE sử dụng ngữ cảnh
Trong JAPE Grammar tồn tại một cách để nhận biết được thực thể thông qua
context (ngữ cảnh), có nghĩa là luật nhận biết thực thể cần có một số dấu hiệu nào
đó để nhận biết được thực thể.
Ví dụ: Một dãy số được coi chắc chắn là giá điện nước nếu nó nằm sau “giá
điện” hoặc là “giá nước”…
Phase: Water_Coin
Input: Token Lookup SpaceToken
Options: control = appelt
Rule:Water_coin
Priority: 10
(
({Lookup.majorType==water_coin_prifix})
({SpaceToken.kind==space})*
(
({Token.string==":"})|
({Token.string==";"})
)?
({SpaceToken.kind==space})*
)
(
(
({Token.kind==number})
(
({Token.string=="."})|
({Token.string==","})
)?
({Token.kind==number})*
({SpaceToken.kind==space})*
({Lookup.majorType==after_water_coin})

)|
(
({Lookup.majorType==water_and_water_coin})
)
)
:water_coin -->
:water_coin.Water_Coin = {kind="water_coin", rule="Water_coin"}
Trong ví dụ trên có sử dụng tập các gazetter chứa các Context để xác định con
số đứng sau nó có phải là giá điện, nước hay không và phần context phía sau con số
chứa các đơn vị giá điện nước vd : /khối (3.000/khối). đ/kw (2.000đ/kw) khẳng định
chắc chắn đó là giá điện , nước .
Sinh viên thực hiện: Nguyễn Thành Duy 20101250 Khóa: K55 Lớp: Việt Nhật – IS1

25


×