TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT KHOA KỸ THUẬT CÔNG NGHỆ Tên đề tài: BIỂU DIỄN KẾT QUẢ THEO DÕI CÁC CHỦ ĐỀ TRÊN TẠP CHÍ ĐIỆN TỬ VỚI THUẬT TOÁN RÚT TRÍCH TỪ KHÓA VÀ CƠ SỞ DỮ LIỆU ĐỒ THỊ Mã s
Trang 1TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT
KHOA KỸ THUẬT CÔNG NGHỆ
Tên đề tài: BIỂU DIỄN KẾT QUẢ THEO DÕI CÁC CHỦ ĐỀ TRÊN TẠP CHÍ ĐIỆN TỬ VỚI THUẬT TOÁN RÚT TRÍCH TỪ KHÓA
VÀ CƠ SỞ DỮ LIỆU ĐỒ THỊ
Mã số:
Tên báo cáo chuyên đề:
XÂY DỰNG MÔ HÌNH HỆ THỐNG
Chủ nhiệm đề tài: ThS Võ Thị Hồng Thắm
Người chủ trì thực hiện chuyên đề: ThS Võ Thị Hồng Thắm
Bình Dương, 06/2019
Trang 21 HỆ THỐNG ĐỀ XUẤT
1.1 Giới thiệu ngữ cảnh
Hiện có hơn 20 tờ báo trực tuyến với rất nhiều bài báo được đăng hàng ngày tại Việt Nam thu hút một lượng lớn độc giả Yêu cầu quan trọng nhất của người đọc là tìm thông tin quan trọng có trong lượng dữ liệu khổng lồ này và tốn ít thời gian nhất có thể Độc giả cũng có nhu cầu theo dõi thời gian và sự tiến hóa của các chủ đề quan trọng Do đó, các bài viết được xuất bản liên tục này được mô hình hóa dưới dạng luồng văn bản Sau đó, bài toán được đặt ra ở chuyên đề này là làm sao thu thập các bài viết này để tạo, lưu trữ, trích xuất và hiển thị trực quan thông tin quan trọng bằng biểu đồ Để xây dựng hệ thống này, một số khái niệm, thuật toán và phương pháp đã
đề cập ở trên trong phần 2 được sử dụng, bao gồm: Thu thập dữ liệu, tách từ trong văn bản tiếng Việt, loại bỏ các từ dừng và thuật toán TF-IDF để phát hiện chủ đề (ở đây xem chủ đề quan trọng là tập từ khóa có tần số xuất hiện cao nhất), ứng dụng cơ sở dữ liệu đồ thị để hiện thị trực quan kết quả tìm kiếm Đây hiện là một hệ thống mới tại Việt Nam và có thể dễ dàng áp dụng cho các ngôn ngữ khác
1.2 Kiến trúc hệ thống
Hệ thống bao gồm ba mô-đun chính: Bộ thu thập dữ liệu, Bộ xử lý dữ liệu (với 2 bước chính: Tiền xử lý và Xử lý) và Bộ hiển thị dữ liệu Hình 1a cho thấy mối quan hệ của hệ thống và các công trình nghiên cứu khác
Hình 1a Hệ thống được đề xuất trong bối cảnh các công trình liên quan
Breadth first crawler
Incremental web crawler
Focused web crawler
Hidden web crawler
Parallel web crawler
Distributed web crawler
Natural Language Processing (NLP)
Information Retrieval (IR)
Topic Detection
Word Sense Disambiguation
Information Extraction
Social Network Analysis
Sentiment Analysis
VnCoreNLP
NNVLP
PYVI
VnTokenizer
VTools
RDRPOSTAGGER
VnTager
Vector Space Model
Classification
Clustering
Dex
Infinite Graph
Infogrid HyperGraphDB
Trinity and Titan Neo4j
BỘ THU THẬP DỮ LIỆU Tiền xử lý
Xử lý
BỘ HIỂN THỊ TRỰC QUAN
BỘ XƯ LÝ
Trang 3Có thể thấy một cách cụ thể hơn ở Hình 1b, đầu tiên dữ liệu được thu thập bởi bộ thu thập thông tin và được chuyển đến bộ xử lý Ở đây, dữ liệu được tổ chức theo cấu trúc cây Tiếp theo, bộ xử lý thực hiện hai nhóm thuật toán chính: nhóm đầu tiên bao gồm các thuật toán xử lý văn bản, bao gồm tách từ trong văn bản tiếng Việt, loại bỏ từ dừng và phát hiện chủ đề bằng cách sử dụng phương pháp trích xuất từ khóa, nghĩa là mỗi chủ đề được đại diện bởi một tập hợp từ khóa Nhóm thuật toán này chịu trách nhiệm xử lý, tính toán và lưu trữ kết quả Nhóm thứ hai bao gồm các thuật toán làm hết hạn dữ liệu đã lỗi thời, loại bỏ các từ dừng khỏi hệ thống, sử dụng cửa sổ trượt thời gian, bao gồm một số thuật toán như Wjoin, PWJoin, vv Cuối cùng, bộ hiển thị trực quan dữ liệu tương tác với người dùng thông qua giao diện trực quan và cho phép người dùng xem, sắp xếp và lưu dữ liệu kết quả theo yêu cầu của họ
Hình 1b Kiến trúc hệ thống
1.3 Thiết kế hệ thống
Hàng ngày, hệ thống thu thập, xử lý dữ liệu và sau đó lưu trữ dữ liệu được xử lý (xem Hình 3) Mỗi bài viết được xem là một đối tượng được gọi là bài báo (Tiêu đề, Tác giả, Mô tả, Nội dung) Các bài viết liên tục theo thời gian được đưa vào một luồng văn bản lớn Dựa trên đặc điểm của các bài viết, chúng được phân nhóm theo ngày, chuyên mục như trong hình 2: Mỗi ngày có n chuyên mục, mỗi chuyên mục có n bài báo
Tạp chí
BỘ THU
THẬP
THÔNG
TIN
BỘ HIỂN THỊ TRỰC QUAN
Lưu trữ
Cửa sổ trượt thời gian
VnTokenizer Keyword Extraction
Stop Word Removal
Dữ liệu nguồn
Dữ liệu kết quả
WJoin PWJoin
Các thuật toán cửa sổ thời gian
BỘ XỬ LÝ
Các thuật toán xử
lý văn bản
Trang 4Hình 2 Luồng văn bản đến liên tục theo thời gian
Hình 3 Cấu trúc lưu trữ dạng cây
Như thể hiện trong hình 3, dữ liệu thu được được lưu trữ trực tuyến (cũng lưu trữ ngoại tuyến nếu cần) và được chuyển đến cấu trúc lưu trữ của dạng cây Nút gốc (R)
có các nút con Di (i: 1n); nút ngày (Day) Di có các nút con Cj (j: 1m); Nút chuyên mục (Category) Cj có các nút con bài báo (Article) Ak (k: 1p); Mỗi nút Ak chỉ có một nút con chủ đề (Topic) Tk, là tập hợp các từ khóa (Keywords) quan trọng Kg(g: 1k)
R
Cm
Cj
Ap
Ak
Tp
Tk
T1
D1
D1
C1
C1
A1
A1
T1
T1
Article (Title, Author, Description, Content)
Bài báo (Tựa đề, Tác giả, Mô tả, Nội dung)
Thời gian
Day 3 Ngày 3
Day 2
Ngày 2
Day 1
Ngày 1
Day 4 Ngày 4
Day 5 Ngày 5
Trang 5Thu thập dữ liệu từ tạp chí Thêm dữ liệu vào CSDL đồ thị Tách từ bằng VnTokenizer Loại bỏ các từ dừng Tính tần suất dùng TF-IDF Lưu kết quả
Mô-đun 1: Thu thập dữ liệu
an Hiển thị trực quan kết quả truy vấn của người dùng
Hình 4 Sơ đồ trình tự xử lý của hệ thống
Hình 4 trình bày sơ đồ trình tự xử lý của hệ thống được đề xuất Mục tiêu chính của hệ thống là để phát hiện các chủ đề quan trọng cũng như hiển thị trực quan kết quả với đồ thị và mục tiêu này được làm rõ hơn trong Hình 5 với một ví dụ cụ thể Có năm bước xử lý chính trong sơ đồ luồng như Hình 5 mô tả
Hình 5 Một ví dụ về các bước xử lý
Đầu tiên, bộ thu thập thông tin thu thập các bài báo từ các tạp chí trực tuyến dưới dạng văn bản Tiếp theo, trong bước 2, các bài viết được xử lý bằng thuật toán tách từ tiếng Việt tên là Vntokenizer để tạo ra các từ kết nối có nhiều từ hơn một tiếng Vntokenizer được chứng minh có độ chính xác 96% đến 98% về việc nhận dạng từ
Trang 6dừng Những từ này là những từ ít có nghĩa trong ngữ cảnh đang xét được tính toán và rút trích từ một tập hợp lớn các văn bản sử dụng thuật toán TF-IDF Sau đó, trong bước 4, tần số từ được tính bằng cách sử dụng thuật toán TF-IDF để trích xuất từ khóa
và tập hợp các từ khóa quan trọng hàng đầu của mỗi bài viết được tìm ra từ đó rút trích được các chủ đề quan trọng
Sau khi các từ khóa hàng đầu của mỗi bài viết (như bước 4 trong hình 6 mô tả) được tìm thấy, chúng được sắp xếp thứ tự dựa theo giá trị tần số từ Bảng 1a cho thấy
5 từ khóa hàng đầu của 2 bài báo (bài 1 và bài 2) trong chuyên mục có tên là “Tin tức” vào ngày 01 tháng 4 năm 2018 Bảng này cũng cho biết tần số của từ tính theo TF_IDF ở bước trên và chỉ số xếp hạng dựa trên tần suât từ, có nghĩa là từ khóa có giá trị tần số từ cao nhất sẽ có chỉ số xếp hạng cao nhất, bước tăng/giảm của chỉ số xếp hạng là 1 Trường hợp ví dụ này lấy danh sách top 5, vì vậy giá trị trọng số cao nhất ở đây là 5
Bảng 1a Một ví dụ về tính toán chỉ số xếp hạng của từ
frequency
Frequency
Weight
nhà_thờ
(church)
(price)
Ngói
(tile)
(ticket)
trùng_tu
(renovate)
(construction)
0.132 3
đức_bà
(notre dame)
(service)
công_trình
(construction)
0.04 1 Phí
(fee)
Sau đó, tổng giá trị chỉ số xếp hạng cho mỗi từ khóa được tính bằng tổng tất cả các giá trị chỉ số xếp hạng của từ khóa (xem bảng 1b) Và sau đó, 5 từ khóa hàng đầu
mà tổng giá trị chỉ số xếp hạng cao nhất là những từ có ý nghĩa nhất trong toàn bộ 6 chuyên mục bài viết được thu thập được chọn ra Đó là 5 từ khóa đến từ chuyên mục
“Tin tức” bao gồm nhà_thờ, giá, ngói, vé và công_trình Tổng giá trị trọng số tương ứng của chúng là 5, 5, 4, 4; và 4
Bảng 1b Một ví dụ về tính tổng chỉ số xếp hạng của từ trong chuyên mục
nhà_thờ
(church)
(price)
5
ngói
(tile)
(ticket)
4
trùng_tu
(renovate)
3 công_trình
(construction)
4
đức_bà
(notre dame)
(service)
2
Trang 7công_trình
(construction)
(fee)
1
Và cuối cùng, trong bước năm (hình 5), hệ thống hỗ trợ người dùng hiển thị trực quan kết quả cũng như lưu kết quả họ cần Ngoài ra, hệ thống cũng cho phép người dùng theo dõi sự tiến hóa chủ đề thông qua các từ khóa quan trọng như hình 5 mô tả
1.4 Thuật toán
Nội dung trong phần này mô tả các thuật toán chính của hệ thống Một thuật toán chung được trình bày đầu tiên và tiếp theo là các thuật toán chi tiết Các thuật toán được trình bày cũng làm cho các thuật toán này đơn giản và dễ hiểu hơn
Thuật toán 1 Thuật toán tổng quát
1:Lặp
2: Đọc thông số từ tệp config.txt
3: Thu thập các bài báo (lưu trữ ngoại tuyến nếu cần)
4: Tạo cấu trúc cây dữ liệu
5: Tiền xử lý (tách từ:Vntokenizer) và loại từ dừng (stop words)
7: Cập nhật kết quả tính toán
9: Hiển thị trực quan kết quả (lưu kết quả nếu cần)
10: Nếu (quá thời gian)= True thì
11: Loại các bộ dữ liệu hết hạn
12: end if
13:End loop
Thuật toán 2 Thuật toán thu thập dữ liệu (bước 3&4 trong thuật toán 1)
1:Lặp
2: Nếu ( Được cho phép) thì
4: Rút trích tiêu đề, tóm tắt, nội dung, URL, tạo cấu trúc dữ liệu
5: ngược lại
8: kết thúc nếu
9:Kết thúc lặp
Ở bước 5 của thuật toán 1, sau khi thu thập dữ liệu, công cụ gọi là Vntokenizer [1] được dùng để tiền xử lý dữ liệu với việc tách từ trong tiếng Việt Tiếp theo, các từ dừng được loại bỏ Sau đó, hệ thống được lập trình các phần còn lại của các bước trên Thuật toán: 3.1, 3.2 và 3.3 được sử dụng để trích xuất từ khóa từ mỗi bài viết bằng
Trang 8khoảng thời gian mặc định trong một ngày Thuật toán 3.4 được sử dụng để xác định tập hợp các từ khóa quan trọng cho mỗi chuyên mục trong một khoảng thời gian mặc định là một ngày (như được giải thích ở trên trong bảng 1, phần 3.3) Nhìn chung, các thuật toán con cho bước 6 của thuật toán 1 bao gồm thuật toán 3.1, 3.2, 3.3 và 3.4 như
mô tả sau đây
Thuật toán 3.1 TermFrequency
Input: array docOfWords, string term
Output:double result
1:int occurrences
2:for each word in docOfWords
5: end if
6: end for
7: resultoccurrences / docOfWords.length
Thuật toán 3.2 InverseDocumentFrequency
Input: array listOfDocs, string term
Output:double result
1:int totalDoc
2:for eachdoc in listOfDocs
3: if(doc chứa term) then
5: end if
7: end for
7: resultMath.log(listOfDocs.length / totalDoc)
Algorithm 3.3 CalTermFrequency
Input: array docOfwords, array listOfDocs, string term
Output:double result
1:resultTermFrequency(docOfwords, term)*InverseDocumentFrequency
(listOfDocs, term)
Algorithm 3.4 ColumnKeywordExtraction
Input: Column
Output: List result
1: Lấy danh sách n từ khóa hàng đầu của mỗi bài báo
2: Gán thứ hạng cho các từ khóa trong từng danh sách từ 1 đến n theo tần số của mỗi
từ khóa
3: Tính chỉ số xếp hạng cho mỗi từ khóa (tổng chỉ số hạng)
4: result Danh sách n từ khóa có chỉ số xếp hạng lớn nhất
Trang 92 TÀI LIỆU THAM KHẢO
1 Le Hong Phuong, N.T.M., A.R Huyen, and H.T Vinh, A hybrid approach to
word segmentation of Vietnamese texts Language and Automata Theory and
Applications, 2008: p 240
Trang 103 XÁC NHẬN THỰC HIỆN CHUYÊN ĐỀ
Bình Dương, ngày 20 tháng 06 năm 2019
Người chủ trì thực hiện chuyên đề
Võ Thị Hồng Thắm