Thiết kế các Chức năng của Hệ thống

Một phần của tài liệu Đề tài: ”Phát triển một Hệ thống S.E Hỗ trợ Tìm kiếm Thông tin, thuộc lãnh vực CNTT trên Internet qua từ khóa bằng tiếng Việt” docx (Trang 74 - 84)

3 PHẦN III:

3.1.2Thiết kế các Chức năng của Hệ thống

3.1.2.1 Module Web Robot. Gồm các thành phần sau:

3.1.2.1.1 CollectEngine.

Đây là thành phần điều khiển quá trình thu thập thơng tin từ Internet. Nĩ sẽ tạo ra các DomainCollector và quản lý việc download. Khi CollectEngine hồn tất cơng việc cũng là lúc module này kết thúc. Sơ đồ hoạt động của hệ

Khởi động CollectEngine

Kết thúc.

Xác lập DomainList = Empty

Đọc từ cơ sở dữ liệu những Domain nào cần được download về mà chưa được download, đưa những Domain này vào DommainList

Ngược lại

Tạo ra các Domain Collector (robot con), và cho các robot này hoat động

Đợi cho tất cả các Domain Collector hoạt động xong.

Sau khi hoạt động xong, các robot con này sẽ được

hủy đi.

Mơ tả cơng việc đọc DomainList từ cơ sở dữ liệu (từ sơđồ trên): 3.1.2.1.2 DomainCollector.

Cĩ nhiệm vụ thu thập tất cả các trang thơng tin bên trong một domain về.

Đầu vào : tên domain mà hệ thống cần thu thập về.

Hoạt động : DomainCollector lấy danh sách tất cả các trang web đã được

đánh dấu thuộc về domain nhưng chưa lấy về. Kế tiếp, DomainCollector sẽ

tạo ra các DataCollector và cho các DataCollector này thực hiện việc lấy các trang WEB về.

Đầu ra : domain được tải về.

Ngồi ra, DomainCollector cịn lưu trữ một Collect Engine (là robot cha của nĩ) để thực hiện việc giao tiếp.

Mơ tả cơng việc tải tồn bộ domain cĩ tên DomainName về.

Bắt đầu thực hiện.

Đọc từ cơ sở dữ liệu tất cả những địa chỉ web thuộc DomainName cần được download về nhưng chưa down load. Đưa tất cả những địa chỉ này vào AddressList

Kiểm tra xem Address List có rỗng hay không ?

Nếu rỗng.

Cập nhật thông tin của Domain này vào cơ sở dữ liệu

Kết thúc hoạt động

Nếu không rỗng. Tạo ra các DataCollector (robot con của Domain Collector) và cho các robot con này hoạt động.

Đợi cho các robot con này thực hiện xong.

Sau khi thực hiện xong, các robot con sẽ được xóa.

Mơ tả cơng việc đọc AddressList từ cơ sở dữ liệu : (adsbygoogle = window.adsbygoogle || []).push({});

3.1.2.1.3 DataCollector.

Bộ thu thập thơng tin (các trang WEB).Mục tiêu của DataCollector là thu nhận thơng tin từ Internet về, sau đĩ sẽ lưu trữ chúng xuống cơ sở dữ liệu,

đồng thời cũng ghi những dữ liệu này xuống hệ thống file.

Đầu vào : địa chỉ trang WEB cần thu thập.

Hoạt động : Đầu tiên, DataCollector sẽ tạo một kết nối đến domain của trang WEB, sau đĩ kiểm tra tình trạng của kết nối này. Nếu kết nối ở tình trạng tốt, DataCollector sẽ lấy các thơng số về trang web như : ContentLength, LastModified và ContentType. Nếu ContentType thuộc một trong các loại sau: application/pdf,application/vnd.ms- excel,application/msword, application/msexcel, application/ms-powerpoint, application/postscript, text/rtf, text/html thì mới lấy về. Sau khi lấy về , thì ghi trang web này xuống hệ thống Tập tin.

Đầu ra : Trang WEB được lấy về. DataCollector bao gồm các thành phần sau:

URL : địa chỉ trang web mà DataCollector cần lấy về.

DataBuffer : là vùng đệm chứa nội dung của trang web khi được download về.

ContentLength : độ lớn của trang web.

LastModified : ngày cập nhật cuối cùng của trang web.

Location : vị trí trên file system mà nội dung trang web sẽđược ghi xuống. Tạo một bộ đọc

DBReader.

DBReader sẽ lấy trong bảng

DownloadedData

những URL nào có

Status = 0 (tức là đã tìm thấy địa chỉ này

Đưa những địa chỉ này vào Address List và hủy

DomainCollector : là robot cha của nĩ, dùng để thực hiện việc giao tiếp trong khi hoạt động.

Sơ đồ hoạt động của DataCollector:

Khởi động Data

Nếu rỗng Nếu không

Kiểm tra AddressList trong DomainCollector (cha của nó)

ã

Kết thúc hoạt động của Data

Lấy phần tử đầu tiên trong AddressList và xóa phần tử này khỏi

Đưa phần tử này vào URL

Thực hiện việc tải trang tài liệu có địa chỉ URL về.

Mô tả công việc tải trang tài liệu về.

Bắt đầu hoạt động

Thực hiện việc kết nối tới trang web. (adsbygoogle = window.adsbygoogle || []).push({});

Nếu kết nối không thành

Xoá trang web khỏi cơ sở dữ liệu.

Kết thúc hoạt động.

Nếu kết nối thành Lấy các thông tin như ContentLength, LastModified,

Kiểm tra Content Type có thuộc các dạng file : text/html, word, rtf,

Nếu

Nếu đúng. Lấy nội dung trang web về và ghi xuống file.

Tạo một HtmlParser. Rồi gọi parser này phân tích nội dung trang web. Kết quả trả về của parser này là một danh sách

Cập nhật nội dung trang web trong cơ sở dữ liệu.

Gọi Domain Collector (robot cha của nó) thực hiện việc cộng danh sách liên kết này vào cơ

Mô tả việc Cập nhật nội dung trang web :

Tạo một bộ ghi DBWriter.

DBWriter sẽ cập nhật những thông tin về Location, … của trang web xuống bảng

DownloadedData. Đồng thời cập nhật tình trạng

Status của trang web thành 1 (nghĩa là trang web đã được tải về một cách hoàn tất).

Mô tả công việc Domain Collector cộng danh sách các liên kết vào cơ sở dữ liệu:

Bắt đầu hoạt động. Kiểm tra xem

Nếu Kết thúc.

Nếu không rỗng.

Lấy liên kết đầu tiên và xoá nó

Kiểm tra xem liên kết này có thuộc domain hiện tại mà Domain Collect đang xử lýhay không ?

Ghi liên kết này vào cơ sở dữ liệu. Nếu rỗng

Nếu phải Lấy Domain mà liên kết này thuộc về.

Kiểm tra xem trang domain này đã có trong cơ sở dữ liệu chưa ?(tức là có trong bảng Domain chưa )

Nếu có rồi

Nếu chưa có

Ghi Domain này vào bảng Domain và cho tình trạng của nó Status = 0. (chức là chưa download). Đồng thời , ghi liên kết này vào bảng DownloadedData

và cho nó thuộc Domain vừa rồi và Status của nó cũng bằng 0. (tức là chưa được download).

3.1.2.2 Module ConvertFile

Tồn bộ cơng việc của module này được mơ tả qua sơđồ sau: (adsbygoogle = window.adsbygoogle || []).push({});

Cơng đoạn chuyển định dạng.

Dữ liệu lấy về cĩ thể ở nhiều định dạng, điều này cĩ thể gây khĩ khăn trong việc index và chuyển mã. Do đĩ, mục đích của cơng đoạn này là chuyển tất cả các định dạng về dạng HTML. Sử dụng cơng nghệ “INSO filter” để lọc tài liệu.

Cơng đoạn chuyển mã.

Vấn đề ngơn ngữ luơn là vấn đề khĩ khăn trong việc phát triển các ứng dụng. Riêng đối với tiếng Việt điều này lại càng phức tạp. Tính cho đến nay, tiếng Việt cĩ khoảng 9 bảng mã, bao gồm : TCVN3, VIQR, VNI Windows, VISCII, VPS, BK HMC1, BK HCM2, VietwareX, Vietware F. Cho đến khi Unicode ra đời, thống nhất bảng mã của các ngơn ngữ. Tuy vậy, các tài liệu hiện nay lại ở rất nhiều bảng mã khác nhau. Điều này gây ra rất nhiều khĩ khăn trong việc index tài liệu. Chính vì vậy, trước khi index, các tài liệu phải được chuyển về một bảng mã chung để cĩ thể index được. Do Oracle hỗ trợ Unicode tổ hợp, và bản thân unicode tổ hợp cĩ rất nhiều lợi điểm như dễ dàng xử lý, kích thước lưu trữ tài liệu nhỏ... nên chúng tơi quyết định sử dụng unicode tổ

hợp trong việc lưu trữ và xử lý ngơn ngữ.

Input:DL a WebRobot

Chuyển định

dạng Chuymã ển bảng Ltin vào CSDL ưu các thơng

Lưu nội dung vào đĩa cứng INSO Filter Technology Vietnamse Converter Output: Oracle Text

Khĩ khăn lớn nhất trong vấn đề chuyển bảng mã chính là làm sao nhận

được bảng mã của tài liệu. Một tài liệu được lưu trữ dưới dạng VNI cĩ thể rất giống với VietwareX, hay một tài liệu lưu trữ dưới dạng TCVN3 lại rất giống với VPS. Một vấn đề kế tiếp chính là chuyển bảng mã sang Windows-1258. Sau khi thu thập các bảng mã và khảo sát để tìm ra những điểm khác biệt, chúng tơi đề ra một thuật giải Heuristic để giải quyết vấn đề này. Theo thống kê của chúng tơi, thuật giải này chỉ đúng với khoảng trên 95% trong việc chuyển đổi, tuy nhiên theo chúng tơi, sai số 5% cĩ thể chấp nhận được.

Một phần của tài liệu Đề tài: ”Phát triển một Hệ thống S.E Hỗ trợ Tìm kiếm Thông tin, thuộc lãnh vực CNTT trên Internet qua từ khóa bằng tiếng Việt” docx (Trang 74 - 84)