1. Trang chủ
  2. » Luận Văn - Báo Cáo

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ị, xây dựng mô hình hệ thống

10 5 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 0,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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ố:

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 2

1 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 3

Có 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 4

Hì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: 1n); nút ngày (Day) Di có các nút con Cj (j: 1m); Nút chuyên mục (Category) Cj có các nút con bài báo (Article) Ak (k: 1p); 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: 1k)

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 5

Thu 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 6

dừ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 7

cô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 8

khoả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: resultoccurrences / 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: resultMath.log(listOfDocs.length / totalDoc)

Algorithm 3.3 CalTermFrequency

Input: array docOfwords, array listOfDocs, string term

Output:double result

1:resultTermFrequency(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 9

2 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 10

3 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

Ngày đăng: 20/07/2021, 08:19

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w