Crawler là thành phần quan trọng của hệ thống, cĩ nhiệm vụ dị tìm Url và tải nội dung từ các Url. Hoạt động của hệ thống đƣợc mơ tả nhƣ sau:
- Bƣớc 1: Url-Queue sẽ chọ ra một tập các URL cần download, gửi cho Multi- threaded downloader.
- Bƣớc 2: Downloader tiến hành download các tài liệu này, phân tích chúng, trích ra các đƣờng link xuất hiện bên trong các tài liệu rồi gửi cho Url-Queue. Sau đĩ lặp lại bƣớc 1.
Xử lý văn bản:
- Tách văn bản thành các chuỗi - Loại bỏ từ dừng
- Sinh vector đặc trƣng trong tài liệu CRAWLER
EXTRACTOR
Tin tức từ các trang web
CSDL
Giao diện hiển thị thơng tin tổng hợp Web Pages
Web Pages
Phân loại văn bản
Cập nhập thơng tin văn bản đƣợc phân loại
Quá trình này dƣng lại khi thỏa mãn một số điều kiện dừng nào đĩ. Chẳng hạn nhƣ Queue rỗng, khơng tìm thêm link mới hoặc đạt một độ sâu nào đĩ. Sẽ khơng khả thi nếu download tồn bộ các tài liệu trên internet vì số trang là rất lớn, tăng theo thời gian và khơng thể lƣu trữ hết. Đối với hệ thống cần xây dựng thì chỉ giới hạn các tin tức về việc làm. Do đĩ hệ thống Crawler sẽ download dữ liệu từ Url (gọi là các kênh tin) do ngƣời dùng chỉ định.
2.4.3. Thành phần Extractor
Tài liệu trên World Wide Web là những văn bản đƣợc lƣu trữ trong các máy tính kết nối với Internet. Để xem các tài liệu này, ngƣời dùng dùng một trình duyệt Web (Web Browser) mở và hiển thị chúng. HTML (viết tắt HyperText Markup Language) tạm dịch là “Ngơn ngữ đánh dấu siêu văn bản” là một định dạng thơng dụng cho tài liệu Web định nghĩa cách thức trình bày, hiển thị nội dung nhƣ thế nào ở phía trình duyệt. HTML hiện tại đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì.
Mỗi yêu cầu đƣợc gửi từ trình duyệt tới máy chủ sẽ cĩ thể trả về một tài liệu đƣợc định dạng bằng HTML, chúng là tập hợp dữ liệu dùng các thẻ đƣợc định nghĩa trƣớc đĩ để quy ƣớc nội dung sẽ đƣợc bày bố, hiển thị nhƣ thế nào ở phía máy khách. Khi tài liệu này đƣợc trình duyệt nhận lại từ server, chúng sẽ chuyển sang một mơ hình dữ liệu dễ sử dụng hơn gọi HTML DOM. DOM là viết tắt của Document Object Model tạm dịch là “Mơ hình đối tƣợng tài liệu“ cĩ giao diện lập trình ứng dụng (API). Thơng thƣờng DOM cĩ cấu trúc dạng cây, rất dễ dàng để truy xuất các thành phần trong cây dữ liệu đĩ, DOM cĩ thể dùng để phân tích HTML, XML hay các định dạng tài liệu khác. Sau khi chuyển đổi tài liệu HTML sang DOM, trình duyệt dùng nĩ để hiển thị giao diện đồ họa tới ngƣời dùng.
Tài liệu HTML sau khi đƣợc chuyển đổi sang cây DOM (Tree DOM) sẽ dễ dàng truy xuất những thành phần nội dung cần quan tâm thơng qua việc truy xuất các nhánh của cây. Nhiều mơ hình bĩc tách đƣợc đề xuất dựa trên Tree DOM này, chẳng hạn dựa và kích thƣớc của các nhánh con (độ lớn về mặt nội dung chứa trong chúng), hoặc dựa vào các thuộc tính nhƣ màu sắc, font, ... định dạng cho đoạn văn bản chứa trong nhánh đĩ (Tree Item). Một giải pháp an tồn hơn cho việc nhận biết các nhánh cĩ chứa nội
dung mà ta đáng quan tâm đĩ là dựa vào tên nhánh và chỉ số nhánh để truy hồi đến đúng nhánh con cuối cùng cĩ chứa nội dung. Từ đĩ nội dung của tin đã đƣợc loại bỏ tất cả các thành phần khác đƣợc bố trí trên trang. Do đĩ, nếu truy xuất theo đƣờng dẫn trên cây HTML, chúng ta sẽ bĩc tách đƣợc nội dung cần thiết.
2.4.4. Xử lý tài liệu
Thơng thƣờng một tài liệu, trƣớc khi đƣợc lƣu trữ và phân loại, bao giờ cũng phải trải qua những bƣớc tiền xử lý. Mục đích là đƣa tài liệu về dạng mang nhiều thong tin và đơn giản hơn, thuận tiện cho quá trình xử lý sau này. Tài liệu ở đây là các tin tức đƣợc tải tự động từ các trang Web. Vì nội dung tin cĩ thể rất dài, chứa hàng trăm ngàn từ, do đĩ để giảm kích thƣớc xử lý, chúng ta chỉ xử lý đối với thành phần tĩm tắt của tin. Phần này thƣờng chỉ gồm 1-5 câu, khái quát đƣợc chủ đề của tin, do đĩ cĩ thể đại diện cho tin tức. Các bƣớc xử lý tài liệu nhƣ sau:
- Loại bỏ dấu câu: Loại bỏ các dấu câu: dấu chấm, dấu phẩy … các dấu câu này
thƣờng gắn liền với từ.
- Tách từ: Đƣa đoạn văn bản thành các chuỗi từ.
Trong việc xử lý văn bản tiếng Anh, đặc trƣng đƣợc sử dụng là những từ riêng lẻ (word). Do đặc điểm của tiếng Anh nên việc xác định từ trong câu rất đơn giản, mỗi từ đƣợc phân cách với từ khác bằng dấu cách hoặc các dấu trắng khác.
Đối với tiếng Việt, từ cĩ thể bao gồm nhiều tiếng, ví dụ từ “đặc trƣng” bao gồm hai tiếng “đặc” và “trƣng”. Trong khi cĩ thể tách từng tiếng một cách dễ dàng thì việc xác định từ hồn tồn khơng đơn giản. Ngồi, ra do từ bao gồm nhiều tiếng, việc sử dụng tần suất các đặc trƣng nhƣ trong phân loại Bayes cĩ thể bị ảnh hƣởng và cho kết quả khác với văn bản tiếng Anh và do vậy cần xác định thơng qua nghiên cứu thử nghiệm. Vấn đề tách từ cho văn bản tiếng Việt đã đƣợc trình bày trong nhiều kết quả nghiên cứu với những cách tiếp cận khác nhau nhƣ sử dụng từ vựng, sử dụng thống kê từ Internet, sử dụng mơ hình Markov ẩn, sử dụng giải thuật di truyền. Tuy nhiên, khi sử dụng để phân loại văn bản, các phƣơng pháp này đều địi hỏi một khối lƣợng tính tốn nhất định trƣớc khi tách đƣợc các từ. Đối với hệ thống phân loại văn bản với lƣu
lƣợng văn bản lớn, giai đoạn tách từ cĩ thể làm chậm tốc độ phân loại và ảnh hƣởng đáng kể tới tốc độ tồn hệ thống.
Để đảm bảo tốc độ phân loại văn bản đƣợc tốt, khơng nên sử dụng những giải pháp tách từ phức tạp mà coi mỗi đặc trƣng là một k-gram tức là mỗi đặc trƣng sẽ gồm
k tiếng đứng gần nhau và khơng bị phân tách bởi các dấu câu hoặc các từ dừng (stop
word). Vấn đề đặt ra là lựa chọn k bằng bao nhiêu thì hợp lý. Các thống kê trong từ
điển http://dict.vietfun.com cho thấy gần 90% từ tiếng Việt cĩ độ dài từ ba tiếng trở xuống.
- Loại bỏ từ dừng (Stopword)
Khi nghiên cứu ngơn ngữ, các nhà nghiên cứu để ý thấy cĩ những từ xuất hiện rất nhiều trong các tài liệu, nhƣng bản thân nĩ khơng mang nghĩa. Vì xuất hiện hầu hết trong mọi tài liệu nên nĩ khơng thể dùng để phân biệt tài liệu này với tài liệu khác, hơn nữa tần suất xuất hiện quá lớn trong các tài liệu của nĩ làm các q trình tính tốn liên quan trở nên cồng kềnh.
Vì vậy ngƣời ta nghĩ đến việc loại bỏ nĩ ra khỏi quá trình xử lý sau này . Các từ này đƣợc gọi là từ dừng (Stop word). Mỗi một ngơn ngữ cĩ một tập hợp các từ dừng khác nhau, ví dụ tiếng Anh là các từ “a”,”an”,”the”,” in”,”on” … Đối với tiếng Việt thì từ dừng là những từ đĩng vai trị liên kết trong văn bản nhƣ “và”, “thì”, “mà”, “nhƣng”, “song”.v.v. và khơng cĩ ảnh hƣởng tới ý nghĩa.
Nĩi chung trong quá trình xử lý ngơn ngữ việc loại bỏ các từ loại này là khá đơn giản, chƣơng trình chỉ cần căn cứ vào một tập các từ dừng đƣợc định nghĩa trƣớc và thực hiện một vịng lặp đi qua tất cả từ khố trong văn bản.
- Lựa chọn số lƣợng đặc trƣng:
Sau khi tách đƣợc các đặc trƣng dƣới dạng k-gram nhƣ trên, vấn đề tiếp theo là
quyết định số lƣợng đặc trƣng sẽ sử dụng. Nếu thống kê trong tồn bộ tập dữ liệu huấn luyện thì số lƣợng đặc trƣng cĩ thể lên tới vài chục nghìn và mỗi vectơ x
tƣơng ứng với một văn bản sẽ cĩ đa số giá trị xi = 0. Rất nhiều đặc trƣng - từ khơng liên quan tới việc phân loại văn bản. Việc sử dụng tất cả các đặc trƣng nhƣ vậy ngồi việc làm chậm tốc độ phân loại cịn cĩ thể làm giảm độ chính xác phân loại. Do đĩ, các nghiên cứu về
phân loại văn bản văn bản thƣờng loại bỏ những đặc trƣng khơng liên quan tới nhãn phân loại và chỉ giữ lại những đặc trƣng cĩ liên quan.
Các phƣơng pháp lựa chọn đặc trƣng liên quan:
+) Phƣơng pháp thứ nhất loại bỏ những đặc trƣng xuất hiện trong quá ít văn bản hoặc xuất hiện trong quá nhiều văn bản. Nếu đặc trƣng xuất hiện trong q ít văn bản thì đĩ là những đặc trƣng xuất hiện tình cờ và khơng phụ thuộc vào nhãn phân loại. Trong thực nghiệm, những đặc trƣng xuất hiện trong ít hơn 3 văn bản sẽ bị loại. Ngƣợc lại, nếu đặc trƣng xuất hiện trong hầu hết các văn bản thì đĩ là những đặc trƣng phổ biến trong bất kỳ văn bản nào và do vậy cũng khơng chứa thơng tin về phân loại của văn bản.
+) Phƣơng pháp thứ hai sử dụng độ đo thơng tin tương hỗ (mutual information –
MI) để lựa chọn đặc trƣng. MI là độ đo mức độ liên quan về thơng tin giữa hai biến
ngẫu nhiên, tức là khi biết giá trị biến này thì ta cĩ thể biết đƣợc gì về giá trị biến kia. Trong trƣờng hợp phân loại văn bản, hai biến ngẫu nhiên là giá trị đặc trƣng và nhãn phân loại. MI đƣợc tính nhƣ sau:
thuong} binh {rac, {0,1}, ( ) ( ) ) , ( log ) , ( ) , ( y x P X x PY y y Y x X P y Y x X P Y X MI
Các xác suất P(X,Y), P(X) và P(Y) đƣợc tính bằng tần suất xuất hiện của các sự
kiện tƣơng ứng trên dữ liệu huấn luyện. Sau khi đã tính MI cho tất cả các đặc trƣng k- gram, n đặc trƣng cĩ MI cao nhất sẽ đƣợc lựa chọn.
2.4.5. Phân loại văn bản tiếng Việt
Với mỗi văn bản d, sau khi sử dụng GA để loại bỏ dấu câu và stopword, ta thu
đƣợc d đƣợc tách thành nhiều ngữ g dƣới dạng sau d={g1,g2,…, gm}, với gi là tập hợp gồm n cách tách của một ngữ, gi = {ti1,ti2,…,tin} trong đĩ tij là một cách tách ngữ, tij = {w1,w2,…,wp}.
Ví dụ:
Việc phân loại sẽ gán một chủ đề ch C={c1,c2,…,cq} cho văn bản, mỗi chủ đề lại bao gồm nhiều từ khĩa (keyword) K={k1,…,kr}.
2.4.5.1. Cơng thức phân loại văn bản trong IGATEC
Sử dụng độ phụ thuộc của văn bản vào chủ đề. Độ phụ thuộc này đƣợc tính dựa vào xác suất đồng xuất hiện của các từ trong văn bản với một từ khĩa nhất định. Chi tiết cách tính này nhƣ sau:
Cho trƣớc một từ khĩa k, độ phụ thuộc của từ w vào k đƣợc tính nhƣ sau:
Trong đĩ:
- p(w) là xác suất xuất hiện của từ w trên Google đƣợc tính theo cơng thức.
- p(k & w) là xác suất xuất hiện đồng thời của chủ đề k và từ wi trên Google với:
Tiếp theo, độ liên quan (relative) của một cách tách ngữ t với từ khĩa k bằng tổng xác suất của tất cả các từ w xuất hiện đồng thời với từ khĩa k nhƣ sau:
Theo cơng thức trên, tác giả cho rằng văn bản cĩ độ hỗ trợ vào một chủ đề càng cao thì khả năng văn bản đĩ thuộc về chủ đề này càng lớn. Dựa vào các cơng thức, độ phụ thuộc của câu đƣợc xác định theo cơng thức:
Theo các cơng thức trên, văn bản d sẽ thuộc về chủ đề cĩ SP(d,c) lớn nhất.
2.4.5.2. Phương pháp Nạve Bayes trong phân loại văn bản
Phƣơng pháp Nạve Bayes tìm chủ đề của văn bản d bằng các xác định chủ đề cĩ xác suất P(Y= ci | X=d), xác suất để văn bản d nằm trong lớp ci, lớn nhất thơng qua việc sử dụng cơng thức xác suất đầy đủ Bayes:
Trong đĩ:
cj là chủ đề thứ j
d=(w1, w2, ..., wn) là văn bản cần phân loại.
P (Y=ci | X=d) gọi là xác suất xảy ra văn bản d thuộc về chủ đề ci
P(X=d | Y=ci) gọi là xác suất chủ đề ci cĩ chứa văn bản d trong tập huấn luyện. Một cách để xác định P(X|Y) là sử dụng tập huấn luyện để ƣớc lƣợng P(X|Y) và P(Y). Sau đĩ sử dụng cơng thức xác suất đầy đủ trên để xác định P (Y=ci | X=d) với d bất kỳ.
* Uớc lƣợng P(X|Y)
Giả sử với mỗi chủ đề, ta cĩ biến cố các từ phụ thuộc vào chủ đề là độc lập cĩ điều kiện (conditional independence) với nhau. Ta cĩ cơng thức của biểu diễn sự độc lập cĩ điều kiện của 2 biến cố X,Z vào Y nhƣ sau:
P(X | Y,Z) = p(X | Z) Sử dụng giả định trên ta tính đƣợc P(X = d | Y = ci)
Từ đĩ cơng thức xác suất đầy đủ Bayes đƣợc viết lại nhƣ sau:
Nhờ thống kê trên tập huấn luyện D, P( X | Y ) cĩ thể đƣợc ƣớc lƣợng theo:
Trong đĩ:
D{X = wj ∧ Y = ci}: số văn bản trong tập huấn luyện chứa đồng thời wj và ci. D{Y = ci}: số văn bản trong tập huấn luyện chứa ci.
Cơng thức ƣớc lƣợng trên sẽ cho kết quả P( X = wj | Y = ci ) = 0 khi khơng cĩ văn bản chứa đồng thời cả hai (wj và ci). Nhằm tránh trƣờng hợp này, ta nên sử dụng phép ƣớc lƣợng đã đƣợc làm mịn sau:
Với:
R : số lƣợng chủ đề.
l : quyết định độ mịn của phép ƣớc lƣợng.
* Ƣớc lƣợng P(Y)
Việc ƣớc lƣợng P(Y = ci ) đơn giản là tính phần trăm số văn bản trong tập huấn luyện cĩ chủ đề ci:
2.5. Tổng kết chƣơng 2
Chƣơng 2 trình bày các phƣơng pháp phân loại văn bản. Điều kiện tiên quyết để phân loại là phải tìm ra một phƣơng pháp tách từ tốt để thơng qua đĩ cải thiện hiệu quả của các thuật tốn phân loại. Do đĩ việc tách từ tiếng Việt phải đƣợc thực hiện trƣớc khi phân loại.
Chƣơng này cũng trình bày về yêu cầu, kiến trúc chung của hệ thống tự động tổng hợp, phân loại tin tức, từ đĩ đƣa ra cơ sở để thực hiện xây dựng hệ thống sẽ đƣợc trình bày trong chƣơng 3.
CHƢƠNG 3: XÂY DỰNG HỆ THỐNG TỔNG HỢP, PHÂN LOẠI THƠNG TIN VIỆC LÀM TỰ ĐỘNG
3.1. Mơ tả chức năng hệ thống
3.1.1. Chức năng thu thập và xử lý tin tức
Đây là phân hệ quan trọng của hệ thống cĩ chức năng tự động lấy tin tức từ các Website và lƣu vào cơ sở dữ liệu. Gồm các phân hệ con: Crawler, Extractor và xử lý dữ liệu.
Tin tức do phân hệ này sẽ cung cấp cho hệ thống để ngƣời quản trị cĩ thể duyệt/xuất bản tin.
3.1.2. Chức năng ngƣời dùng
- Xem tin: cho phép ngƣời dung xem danh sách tin, chi tiết một tin. Giao diện xem chi tiết một tin cũng cho phép liên kết đến những tin khác cĩ cùng chủ đề hoặc các tin đƣợc quan tâm.
- Tìm kiếm: cho phép ngƣời dung tìm kiếm tin bài một cách nhanh chĩng, thuận tiện. Các tiêu chí tìm kiếm là: theo từ khĩa, theo thể loại, theo ngày tháng.
3.1.3. Chức năng quản trị
- Quản trị chuyên mục tin: Chức năng này cho phép ngƣời quản trị tổ chức các tin thành các chuyên mục. Ngƣời quản trị cĩ thể thêm mới, sửa đổi hay xĩa một chuyên mục. Cũng trong chức năng này, ngƣời quản trị quyết định xem chuyên mục nào sẽ đƣợc xuất hiện trên trang chủ.
- Cập nhập tin tức: Ngƣời quản trị cĩ thể thêm mới, sửa hay xĩa một tin. Trong giao diện thêm mới (sửa đổi) một tin cĩ thể quyết định trạng thái chờ duyệt hay xuất bản tin.
3.2. Giải pháp và cơng nghệ sử dụng
3.2.1. Cơng cụ rút trích dữ liệu HtmlAgiliti Pack
Html Agility Pack (HAP) là một bộ thƣ viện mã nguồn mở miễn phí đƣợc thiết kế nhằm mục đích đơn giản hĩa việc đọc và ghi tài liệu HTML, nĩ phục vụ đắc lực cho việc rút trích dữ liệu trên bất kỳ một tài liệu HTML nào. Nĩ cĩ thể dùng nĩ để rút trích, sửa đổi dữ liệu trên một trang web cần lấy dữ liệu, từ đĩ cĩ thể lƣu trữ vào cơ sở dữ liệu. Tồn bộ quá trình sẽ đƣợc tự động hĩa hồn tồn.
Thƣ viện này cho phép duyệt qua nội dung HTML nhƣ là một tài liệu XML bằng