Tải bản đầy đủ (.pdf) (26 trang)

TfIt Cho Gom Cụm Văn Bản Dựa Trên Tập Phổ Biến (tt)

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 (428.18 KB, 26 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN ĐỨC CHUẨN

TF-IT CHO GOM CỤM VĂN BẢN DỰA TRÊN TẬP PHỔ BIẾN

Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ

HỒ CHÍ MINH – 2017


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: PGS. TS. Lê Hoài Bắc

Phản biện 1: ............................................................................................................
................................................................................................................................

Phản biện 2: ............................................................................................................
................................................................................................................................

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công
nghệ Bưu chính Viễn thông
Vào lúc: ....... giờ ....... ngày ....... tháng 7 năm 2017

Có thể tìm hiểu luận văn tại:




Thư viện của Học viện Công nghệ Bưu chính Viễn thông


1

MỞ ĐẦU
Gom cụm văn bản là một kỹ thuật khai thác dữ liệu mạnh mẽ để phát hiện ra chủ đề
của các tài liệu văn bản. Đó là tiến trình tổ chức các đối tượng dữ liệu thành một tập các lớp
tách rời được gọi là các cụm. Các đối tượng trong cùng một cụm thì tương tự nhau và khác
với các đối tượng thuộc các cụm khác. Gom cụm văn bản là công việc tự động tổ chức các
tài liệu văn bản vào các cụm hay các nhóm có ngữ nghĩa, nói cách khác, các tài liệu trong
cùng một cụm thuộc cùng một chủ đề, và các tài liệu trong các cụm khác nhau biểu diễn các
chủ đề khác nhau.
Gom cụm văn bản có phạm vi ứng dụng rộng rãi. Các ứng dụng chính của gom cụm
văn bản gồm: tự động tóm tắt dựa trên phương pháp gom cụm văn bản, tự động tổ chức tập
băn bản, và gom nhóm kết quả tìm kiếm. Vì là một bài toán học không giám sát, gom cụm
văn bản có thể được chia thành: các phương pháp phân hoạch, các phương pháp phân cấp,
các phương pháp dựa trên lưới, các phương pháp dựa trên mô hình, các phương pháp dựa
trên mật độ,…
Xu hướng gần đây của gom cụm văn bản là sử dụng tập phổ biến. Phương pháp này
xử lý số chiều lớn của dữ liệu bằng cách chỉ xem xét các phần tử phổ biến cho việc gom
cụm. Một tập các phần tử phổ biến là một tập các từ xuất hiện thường xuyên cùng với nhau
và là những ứng viên cho việc gom cụm.Nội dung của luận văn được trình bày theo bố cục
sau:
Chương 1: Giới thiệu tổng quan về khai thác tập phổ biến và gom cụm văn bản.
Chương 2: Trình bày Cơ sở lý luận cho việc gom cụm dựa trên tập phổ biến. Trình
bày một số thuật toán liên quan đến tìm tập phổ biến có trọng sô và một số thuật toán gom
cụm văn bản.

Chương 3: Xây dựng thuật toán gom cụm văn bản có xem xét đến trọng số. Cho ví
dụ minh họa và nhận xét.
Chương 4: Cài đặt chương trình thực nghiệm, chạy trên các bộ dữ liệu mẫu và so
sánh đánh giá.


2

CHƯƠNG 1 - TỔNG QUAN
1.1. Tầm quan trọng
 Gom cụm văn bản là một trong những chức năng cơ bản trong khai thác dữ liệu văn
bản. Gom cụm văn bản là gom một tập hợp văn bản vào các nhóm loại khác nhau
để các tài liệu trong cùng nhóm mô tả thông tin cùng một chủ đề. Việc gom cụm
nhanh và chính xác đóng vai trò quan trọng trong lĩnh vực khai thác dữ liệu văn bản
và các hệ thống truy tìm thông tin tự động.
 Gom cụm văn bản là một công cụ hiệu quả để quản lý thông tin trùng lặp. Bằng
cách gom các tài liệu tương tự lại với nhau, một tập hợp lớn các tài liệu có thể
nhanh chóng được duyệt qua để dễ dàng nắm bắt các chủ đề khác nhau và chúng có
thể được truy vấn hiệu quả qua nhiều ứng dụng khác nhau. Vì vậy, nó được nghiên
cứu rộng rãi. Gom cụm các tài liệu văn bản đóng vai trò quan trọng về tính hiệu quả
trong tổ chức tài liệu, tóm tắt tài liệu, rút trích chủ đề và truy tìm thông tin.
 Cho đến nay, đã có rất nhiều thuật toán gom cụm văn bản đã được giới thiệu và
cùng với đó là có nhiều cách phân loại chúng. Cách phân loại phổ biến nhất là chia
thành 3 loại: phương pháp phân hoạch, phương pháp phân cấp và phương pháp sử
dụng tập phổ biến. Trong đó, phương pháp sử dụng tập phổ biến là phương pháp
được nghiên cứu gần đây và đã chỉ ra là phương pháp hiệu quả cho việc gom cụm
văn bản. Bởi vì, theo phương pháp này mỗi từ trong văn bản chỉ được xét khi nó
xuất hiện phổ biến. Do đó, kích thước của tập dữ liệu sẽ được giảm một cách tự
nhiên. Theo xu hướng này, W. Zhang và đồng sự [9] đã giới thiệu thuật toán MC.
Thuật toán MC đã cho kết quả gom cụm tốt hơn những thuật toán đã được giới thiệu

trước đó.
 Phân tích thuật toán MC, chúng tôi nhận thấy độ phức tạp của thuật toán là O(N ).
Với độ phức tạp này thuật toán sẽ không hiệu quả với những tập ngữ liệu có số văn
bản lớn. Từ đó, luận văn tập trung nghiên cứu cải thiện độ chính xác và thời gian
thực thi của thuật toán.

1.2. Khai thác tập phổ biến
 Khai thác tập phổ biến là việc tìm ra sự kết hợp và mối liên hệ giữa các item trên
những tập dữ liệu lớn của các giao dịch hay quan hệ. Với kích thước dữ liệu khổng


3

lồ được thu thập và lưu trữ, nhiều công ty đã ứng dụng khai thác tập mẫu trên dữ
liệu của họ. Việc khám phá những mối liên hệ thú vị dựa trên các dòng dữ liệu
khổng lồ giúp đưa ra những chiến lược trong kinh doanh, hỗ trợ trong việc thiết kế
các catalog, marketing, phân tích thói quen mua sắm của khách hàng.
 Một ứng dụng thường thấy trong khai thác tập item phổ biến là phân tích giỏ hàng.
Quá trình này sẽ phân tích thói quen mua hàng và tìm thấy các mối kết hợp giữa các
item mà khách hàng chọn mua. Việc khám phá quan hệ kết hợp này giúp cho những
người bán lẻ phát triển chiến lược marketing dựa trên những sản phẩm thường được
người dùng mua chung, từ đó nâng cao hiệu quả kinh doanh.
 Việc khai thác dữ liệu rút ra các luật kết hợp trong mua bán hàng trực tuyến cũng
giúp cho ngành thương mại điện tử phát triển, đáp ứng nhu cầu mua hàng ngày càng
tăng với tốc độ nhanh chóng và tiện lợi
 Khai thác tập phổ biến là một trong những công trình quan trọng và mất nhiều thời
gian trong quá trình khai thác luật kết hợp. Trong hầu hết các thuật toán khai thác
luật kết hợp, các tác giả đặc biệt chú ý đến vấn đề làm thể nào để khai thác nhanh
tập phổ biến. Chính vì vậy, đã có rất nhiều công trình nghiên cứu các tác giả chỉ tập
trung vào việc nghiên cứu nhằm tìm ra thuật toán hiệu quả cho bài toán khai thác

tập phổ biến (FI). Một số thuật toán tiêu biểu cho việc giải quyết bài toán này như:
thuật toán Apriori, Eclat, FP-growth, IT-Tree, … Trong đó phương phương pháp
FP-growth được cải tiến hơn với việc khai thác các FI dựa trên cây chỉ qua duyệt
CSDL hai lần.

1.3. Gom cụm dữ liệu
 Gom cụm văn bản là một hướng nghiên cứu của bài toán gom cụm dữ liệu nói
chung. Gom cụm văn bản là tiến trình gom nhóm các tài liệu hoặc chủ đề có nội
dung tương tự nhau vào cùng một cụm. Các tài liệu hoặc chủ đề trong cùng một
cụm thì có nội dung tương tự nhau và khác với những tài liệu hoặc chủ đề trong
những cụm khác.


4

Hình 1.1 Ví dụ về tập dữ liệu được gom cụm
Một số yêu cầu cho bài toán gom cụm văn bản [6]:
 Số chiều lớn: Số lượng từ (thuật ngữ) trong tập tài liệu có thể là hàng ngàn hoặc
chục ngàn. Mỗi từ (thuật ngữ) này là một chiều trong véc tơ tài liệu.
 Khả năng mở rộng: Tập dữ liệu trong thực tế có thể là hàng trăm hoặc hàng ngàn
văn bản. Nhiều thuật toán gom cụm làm việc tốt trong tập văn bản nhỏ, nhưng lại
gặp lỗi với tập văn bản lớn.
 Độ chính xác: Một giải pháp gom cụm tốt khi các văn bản trong cùng cụm phải có
độ tương tự nhau cao và không tương đồng với các văn bản trong các cụm khác.
 Tham số đầu vào: Nhiều thuật toán gom cụm yêu cầu người dùng xác định một số
tham số đầu vào, ví dụ, số lượng cụm. Tuy nhiên, người dùng thường không biết
trước tri thức này. Độ chính xác gom cụm có thể giảm đáng kể nếu một thuật toán
quá nhạy cảm với các tham số đầu vào này.

1.4. Mục đích và cấu trúc của luận văn

 Với luận văn này tác giả mong muốn cải thiện được tính chính xác và hiệu quả cho
bài toán gom cụm văn bản. Trong quá trình nghiên cứu, tác giả nhận thấy các công
trình đã giới thiệu đều áp dụng phương pháp Apriori để tìm tập phổ biến. Đã có rất
nhiều công trình nghiên cứu chỉ ra rằng Apriori không hiệu quả với những cơ sở dữ
liệu có kích thước lớn. Điều đó đã tạo động lực cho tác giả tập trung nghiên cứu và
thực hiện luận văn này. Đồng thời, tác giả mạnh dạn đề xuất một thuật toán mới vào
bài toán gom cụm văn bản. Luận văn đề xuất áp dụng giải thuật WIT-Tree do Bay


5

Vo và đồng sự [3] giới thiệu vào bài toán gom cụm văn bản, với mục tiêu cải tiến
độ chính xác và thời gian thực thi của bài toán gom cụm.

CHƯƠNG 2 - CƠ SỞ LÝ LUẬN
2.1. Các khái niệm cơ bản
2.1.1. Cơ sở dữ liệu giao dịch
Cơ sở dữ liệu D gồm một bộ {I, T}, trong đó I= {I1, I2,…, In} là tập n phần tử (item)
được xét, T = {t1, t2, … , tm} là tập hợp m giao dịch được xét.

2.1.2. Độ phổ biến
Cho I = {I1, I2,….,In} là một tập các items. Cho D là bộ dữ liệu có liên quan đến bài
toán, và là một tập trong CSDL giao dịch. Mỗi giao dịch T là một tập các items và T  I.
Mỗi giao dịch có một định danh, được gọi là TID. Cho A là tập các items. Một giao dịch T
được gọi là chứa A khi và chỉ khi A  T.
Cho cơ sở dữ liệu D và tập dữ liệu X  I. Độ phổ biến của X trong D, ký hiệu (X),
được định nghĩa là số giao dịch mà X xuất hiện trong D.

2.1.3. Tập phổ biến
Tập X  I được gọi là phổ biến nếu (X) ≥ minSup (với minSup là giá trị do người

dùng chỉ định)

2.2. Một số phương pháp khai thác tập phổ biến
2.2.1. Thuật toán Apriori
Thuật toán Apriori [8] được Agrawal giới thiệu vào năm 1994 để giải quyết bài toán
tìm tập các phần tử phổ biến trong một cơ sở dữ liệu giao dịch.

2.2.1.1. Thuật toán
Thuật toán được thực hiện như sau:


6

Đầu vào: CSDL giao dịch D và ngưỡng phổ
biến minSup
Đầu ra: FIs chứa tất cả các tập phổ biến
của D
Thuật toán:
Gọi Ck: Tập các ứng viên có kích thước k
Lk: Các tập phổ biến có kích thước k
L1 = {i  I: (i) ≥ minSup}
for(k = 2; Lk-1  Ø; k++)
Ck = {các ứng viên được tạo từ Lk-1}
For each t  D do
For each c ∈ Ck
if c  t then
c.count++
Lk = {c | c.count ≥ minSup}
FIs = kLk
Hình 2.1: Thuật toán Apriori


2.2.1.2. Tính chất của Apriori:
Trong khai thác tập phổ biến, chúng ta đề cập đến một tính chất quan trọng về độ phổ
biến của các itemset. Mọi tập con của tập phổ biến đều phổ biến, nghĩa là X  Y, Nếu σ
(Y) ≥ minSup thì σ (X) ≥ minSup. Mọi tập cha của tập không phổ biến đều không phổ biến,
nghĩa là Y  X, nếu σ (X) < minSup thì σ (Y) < minSup. [2]
Tính chất này được áp dụng rất nhiều trong các bài toán khai thác tập phổ biến. Nó
giúp phát sinh các ứng viên hiệu quả, tăng tốc độ khai thác.

2.2.1.3. Ví dụ minh họa
2.2.1.4. Nhận xét
-

Tập C được tạo ra bằng cách kết hợp những tập phổ biến với những phần tử trong
giao tác, do đó phát sinh quá nhiều tập ứng viên không cần thiết.


7
-

Với mỗi tập ứng viên C, thuật toán phải duyệt lại toàn bộ cơ sở dữ liệu để tính độ hỗ
trợ, điều này làm tăng quá nhiều thời gian xử lý. Vì vậy, thuật toán không đạt hiệu
quả tốt đối với các cơ sở dữ liệu lớn.

2.2.2. Phương pháp IT-Tree
2.2.2.1. Kết nối Galois
Cho quan hệ hai ngôi δ ⊆I x T chứa CSDL cần khai thác, trong đó I là tập các từ và T
là tập các văn bản. Đặt X⊆I và Y ⊆ T . Ta định nghĩa hai ánh xạ giữa P(I) và P(T) như
sau:
a) t : P(I)P(T), t(X) = {y  T | x  X, x  y }

b) i : P(T) P(I), i(Y) = {x  I | y  Y, x  y}
Ánh xạ t(X) là tập các văn bản trong cơ sở dữ liệu có chứa X, và ánh xạ i(Y) là tập các
từ có trong tất cả các văn bản Y.
Cho X, X1, X2  P(I) và Y, Y1, Y2  P(T). Kết nối Galois thỏa mãn tính chất sau:
a) X1  X2  t(X1)  t(X2)
b) Y1  Y2  i(Y1)  i(Y2)
c) X  i(t(X)) và Y  t(i(Y))

2.2.2.2. Lớp tương đương
Cho I là tập các phần tử và X  I, p(X,k) là tiền tố có chiều dài k của X. Một quan hệ
tương đương dựa trên tiền tố θk trên tập phần tử được định nghĩa như sau:

X, Y  I, X ≡θkY  p(X, k) = p(Y, k)
Tập tất cả các phần tử có cùng tiền tố X được gọi là lớp tương đương, ký hiệu của lớp
tương đương có tiền tố X là [X].

2.2.2.3. Cấu trúc IT – tree
Mỗi nút trên IT – tree gồm 2 thành phần Itemset – Tidset: Xt(X) được gọi là IT-pair,
với X: tập các phần tử, t(X): tập các giao dịch chứa X. Các nút con của X thuộc về lớp
tương đương của X vì chúng chia sẻ chung tiền tố X.
Thuật toán khai thác tập phổ biến trên cây IT-tree được Zaki và đồng sự [10] giới thiệu
vào năm 1997, với tên gọi là thuật toán Eclat. Thuật toán được mô tả chi tiết như hình 2.2


8

Đầu vào: Cơ sở dữ liệu D và độ hỗ trợ phổ biến
minSup
Đầu ra: Cây IT – tree
ECLAT()

[Ø] = {i  I | (i) ≥ minSup}
ENUMERATE_FREQUENT([Ø])
ENUMERATE_FREQUENT([P])
For all li  [P] do
[Pi] = Ø
For all lj  [P] with j > i do
X = l i  lj
T = t(li)  t(lj)
If |T| ≥ minSup then
[Pi] = [Pi]  {XT}
ENUMERATE_FREQUENT([Pi])

Hình 2.2: Thuật toán ECLAT

2.2.2.4. Ví dụ minh họa
2.2.2.5. Nhận xét
-

Thuật toán dựa vào phần giao giữa các Tidset để tính nhanh độ phổ biến nên chỉ quét
cơ sở dữ liệu một lần.

-

Do thuật toán không sinh ứng viên nên hiệu quả khai thác thường cao hơn so với các
họ thuật toán sinh ứng viên.

2.2.3. Phương pháp FP-Tree
Phương pháp FP-tree được chia thành 2 giai đoạn: giai đoạn xây dựng cây FP và giai
đoạn khai thác tập phổ biến từ cây FP.


2.2.3.1. Xây dựng cây FP
Giai đoạn xây dựng cây FP được thực hiện như sau:


9

Đầu vào: Cơ sở dữ liệu D
Đầu ra: Cây Fp
Thuật toán:
Bước 1: Duyệt CSDL lấy ra tập các phẩn tử F, tính
độ phổ biến của các phần tử. Sắp xếp các phần tử
trong F theo thứ tự giảm dần của độ phổ biến, ta
được tập kết quả L.
Bước 2: Tạo nút gốc cho cây FP, tên nút gốc này sẽ
là NULL. Sau đó duyệt lại CSDL lần thứ hai. Ứng với
mỗi giao tác trong CSDL thực hiện hai công việc
sau:
Chọn các phần tử phổ biến trong các giao tác và sắp
xếp chúng theo thứ tự giảm dần của độ phổ biến
trong tập L.
Gọi hàm Insert_Tree([p|P],FP) để đưa các phần tử
vào cây FP
Hình 2.3: Thuật toán xây dựng cây FP

2.2.3.2. Khai thác tập phổ biến từ cây FP
Giai đoạn khai thác tập phổ biến là giai đoạn rút trích ra tất cả các tập phổ biến trong
cơ sở dữ liệu từ cây FP. Để khai thác tập phổ biến ta dùng thuật toán FP-growth. Thuật toán
FP-growth được thực hiện như sau:
Procedure FP-growth(Tree, α)
{

(1) Nếu Tree có chứa một đường đi đơn P
(2) Thì với mỗi cách kết hợp  của các nút trong đường
đi P thực hiện
(3) phát sinh tập mẫu Uα, support = min(support của
các nút trong );
(4) ngược lại ứng với mỗi ai trong thành phần của Tree
thực hiện {
(5) phát sinh tập mẫu β=aiUα với độ phổ biến
support = ai.support;
(6) xây dựng cơ sở điều kiện cho β và sau đó xây dựng
cây FP Treeβ
theo điều kiện của β;
(7) Nếu Treeβ ≠ 
(8) thì gọi lại hàm FP-growth(Treeβ, β)
}

Hình 2.4: Thuật toán FP-growth


10

2.2.3.3. Ví dụ minh họa
2.2.3.4. Nhận xét
-

FP-tree duyệt CSDL 2 lần, sau đó dùng phép chiếu để tạo ra CSDL cục bộ của từng
item đơn, sau đó tạo cây FP cục bộ và khai thác trên cây cục bộ một cách đệ qui.

-


Sử dụng phương pháp chia để trị để khai thác tập phổ biến.

-

Là phương pháp không sinh ứng viên.

-

Thường hiệu quả trên các CSDL có mật độ trùng lắp dữ liệu cao.

2.2.4. Thuật toán MWIT-FWUI
2.2.4.1. Cấu trúc cây MWIT
Cấu trúc cây MWIT bao gồm các đỉnh và các cạnh.
Đỉnh: bao gồm 3 thành phần
-

X: một tập các từ

-

T(X): Tập các văn bản chứa X

-

wus: giá trị trọng số của tập các từ X có liên quan tới giá trị trọng số hữu ích của tất
cả các văn bản.
( ) =






( )=

( )
( )

∈ ( )

∈ (

)

|S( )|

Trong đó:
là số lượng của từ
từ khác 0 trong văn bản

trong văn bản



là giá trị trọng số của từ . |S( )| là số

.

Cạnh: Kết nối đỉnh tại mức k (gọi là X) với mức K+1 (gọi là Y)

2.2.4.2. Thuật toán MWIT-FWUI

Chi tiết thuật toán được thể hiện trong hình như sau:


11

Đầu vào: tập các văn bản (D) và ngưỡng minwus
Đầu ra: FWUI là tập tất cả các từ phổ biến thỏa mãn
minwus của D
Phương pháp:
MWIT-FWUI()
[Ø] = {j  I: wus(j) ≥ minwus}
FWUI = Ø
FWUI_EXTEND([Ø])
FWUI_EXTEND([P])
Với mọi li  [P] thực hiện
Thêm li vào FWUI
[Pi] = Ø
Với mọi lj  [P], với j > i làm
X = l i  lj
Y = t(li) ∩ t(lj)
wus(X) = COMPUTE_WUS(Y)
Nếu wus(X) ≥ minwus thì
[Pi] = [Pi] {X x Y}
FWUI_EXTEND([Pi])
Hình 2.5: Thuật toán MWIT-FWUI

2.2.4.3. Ví dụ minh họa
2.3. Một số phương pháp gom cụm văn bản
2.3.1. Phương pháp gom cụm phân cấp
Các thuật toán theo phương pháp này tạo ra lớp các cụm theo dạng cấu trúc cây. Các

thuật toán đi theo hướng này có thể được chia vào 2 loại: loại thứ nhất, các phương pháp
gộp. loại thứ hai, các phương pháp chia.
Phương pháp gộp ban đầu xem mỗi văn bản là một cụm riêng biệt. Sau đó, hai văn bản
có sự tương đồng nhau nhiều nhất sẽ được gộp lại thành một cụm mới, tiến trình này được
thực hiện cho đến khi các văn bản được gom vào các cụm tương ứng hoặc đạt được số cụm
xác định trước.
Độ phức tạp về thời gian của phương pháp gộp ít nhất là O(n2) vì chúng cần phải tính
toán độ tương tự giữa tất cả các đối tượng để tìm ra cặp đối tượng có độ tương tự nhau nhất.


12

1. Xây dựng một cụm cho mỗi đối tượng
2. Gộp t cụm giống nhau nhất thành cụm mới
3. Lặp lại bước 2 cho đến khi điều kiện dừng thỏa

Hình 2.6: Phương pháp gom cụm gộp
Phương pháp chia ban đầu xem tất cả các văn bản là một cụm duy nhất. Sau đó, chia
cụm này thành hai cụm con và tiếp tục cho đến khi thỏa điều kiện so khớp hoặc đạt được số
cụm được xác định trước.
1. Đưa tất cả các văn bản vào cùng một cụm
2. Tách một cụm thành t cụm mới
3. Lặp lại bước 2 cho đến khi thỏa điều kiện dừng
Hình 2.7: Phương pháp gom cụm chia
Trong phương pháp chia, mọi thuật toán gom cụm đều có thể dùng để tách cụm (bước
2). Thuật toán Bisecting K-means là thuật toán chia dùng thuật toán K-means để tách các
cụm tồi nhất thành 2 cụm. Độ phức tạp về thời gian của thuật toán Bisecting K-means là
O(nIlogk). Độ phức tạp này thấp hơn thuật toán K-means vì nó không xét tất cả các đối
tượng với tất cả các trọng tâm cụm.


2.3.2. Phương pháp gom cụm phân hoạch
Thuật toán phổ biến nhất theo phương pháp này là thuật toán K-means. Các thuật toán
khác theo phương pháp này đều là các biến thể của K-means. Thuật toán K-means được
thực hiện như sau:


13

Đầu vào: Tập văn bản D và K cụm
Đầu ra: Tập K cụm: C1, C2, …, Ck
Phương pháp:
For i = 1 to k
{
Chọn ngẫu nhiên ri  D là trọng tâm
của Ci
}
While có thay đổi trong các nhóm Ci
{
Foreach x  D
{
Tính d(x, ri), i = 1…k
Đưa x vào nhóm Cj nếu d(x, ri), i
 j, i =1…k
}
For i = 1 to k
{
Tính lại các trọng tâm của ri
}
}


Hình 2.8: Phương pháp gom cụm phân hoạch
Điều kiện dừng cơ bản là khi không có sự thay đổi các đối tượng trong các cụm, hoặc
khi các cụm thay đổi rất ít giữa các lần lặp. Một khả năng khác là sau khi thực hiện một số
lần lặp được định nghĩa trước.
Độ phức tạp về thời gian của thuật toán K-means là O(knI), với k là số cụm, n là số đối
tượng, I là số lần lặp.

2.3.3. Phương pháp phân cụm sử dụng tập phổ biến
Wang và đồng sự (1999) đã giới thiệu một tiêu chuẩn mới cho việc gom cụm các giao
tác sử dụng tập phổ biến. Ý tưởng chính của tiêu chuẩn này là các tập phổ biến nên thuộc về
cùng một cụm trong khi các cụm khác có các tập phổ biến khác. Bởi việc xem các văn bản


14

là các giao tác và các từ (thuật ngữ) là các phần tử, phương pháp này có thể được áp dụng
để gom cụm văn bản. Các thuật toán đi theo phương pháp này có tiến trình xử lý như sau:
Đầu vào: Tập hợp các văn bản D = {d1, … , dn}
Đầu ra: Tập các cụm kết quả
Phương pháp:
1. Áp dụng các phương pháp tiền xử lý trên D
2. Tạo một cơ sở dữ liệu nhị phân B
3. Dùng thuật toán Apriori khai thác tập phổ
biến trên B
4. Gom cụm các văn bản theo các phân hoạch
Hình 2.9: Phương pháp gom cụm dùng tập phổ biến
Ý tưởng chính của MC là một cặp văn bản có tương đồng lớn nhất so với tất cả các
cặp văn bản còn lại, thì hai văn bản này nên được gom vào một cụm. Ví dụ, nếu di và dj
thuộc cùng một cụm, và ta tìm thấy một văn bản khác dk có độ tương đồng lớn nhất so với
dj, thì di, dj, và dk nên được đưa vào cùng một cụm. Mô hình xử lý của MC được thực hiện

như sau:
Đầu vào: Cơ sở dữ liệu D và minSup
Đầu ra: Cụm các văn bản
1. Tiền xử lý văn bản
2. Áp dụng Apriori để tìm tập phổ biến
3. Dùng thuật toán MC để gom cụm các văn bản
Hình 2.10: Phương pháp MC
Thuật toán MC được mô tả chi tiết trong hình 2.14


15

Bước 1: Xây dựng ma trận tương đồng A
Bước 2: Tìm giá trị nhỏ nhất khác 0 trong A
Bước 3: Tìm giá trị lớn nhất trong A, và sau đó tìm tất
cả các cặp văn bản chưa được gom cụm trong A có giá trị
tương đồng bằng giá trị lớn nhất vừa tìm được.
Bước 4:
-

Nếu giá trị lớn nhất tìm được ở bước 3 bằng với giá
trị nhỏ nhất tìm được trong bước 2, thì tất cả các
cặp văn bản tương ứng chưa được gom cụm sẽ được
dùng để tạo cụm mới.

-

Nếu giá trị lớn nhất tìm được ở bước 3 không bằng
giá trị nhỏ nhất tìm được trong bước 2, với tất cả
các cặp văn bản ứng với giá trị lớn nhất được xử lý

như sau:
o Đầu tiên, với mỗi cặp văn bản, nếu hai văn bản
chưa thuộc về bất kỳ cụm nào, thì hai văn bản
này được nhóm lại với nhau để tạo thành cụm
mới.
o Tiếp theo, với mỗi cặp văn bản, nếu một trong
hai văn bản đã thuộc về một cụm nào đó, thì
văn bản còn lại chưa gom cụm sẽ được đưa vào
cụm này.
o Cuối cùng, gán lại giá trị tương đương cho các
cặp văn bản bằng 0. Quay lại bước 3.

Bước 5: Nếu có văn bản nào chưa được gom cụm, thì mỗi
văn bản này sẽ được dùng để tạo cụm mới.
Hình 2.11: Thuật toán MC

CHƯƠNG 3 - TF-IT CHO GOM CỤM VĂN BẢN
3.1. Bài toán gom cụm văn bản


16

Gom cụm văn bản là tiến trình gom nhóm các tài liệu hoặc chủ đề có nội dung tương
tự nhau vào cùng một cụm. Các tài liệu hoặc chủ đề trong cùng một cụm thì có nội dung
tương tự nhau và khác với những tài liệu hoặc chủ đề trong những cụm khác.

3.2. Mô hình giải quyết bài toán gom cụm theo tf-it
Trong phần này, luận văn giới thiệu phương pháp gom cụm văn bản mới do luận văn
đề xuất. Luận văn gọi thuật toán đề xuất này là thuật toán TF-IT. Thuật toán TF-IT là thuật
toán gom cụm văn bản có xét trọng số của các từ trong văn bản.


Hình 3.1: Mô hình giải quyết bài toán gom cụm văn bản theo tf-it

3.2.1. Tiền xử lý văn bản
Ta xem nội dung văn bản gồm nhiều câu. Các câu được ngăn cách nhau bởi dấu kết
thúc câu (là dấu “.”, “?” hoặc “!”) hoặc ký tự xuống hàng (“\n”). Chúng ta cũng xem các
tiêu đề như là một câu. Mỗi câu bao gồm nhiều thuật ngữ. Bài toán tiền xử lý văn bản được
tiến hành gồm các bước sau:

3.2.1.1. Loại bỏ các hư từ
Sau khi tách văn bản thành danh sách các từ, ta tiến hành loại bỏ các hư từ (stopword),
là các từ không có ý nghĩa gì đặc biệt (ví dụ: you, are, a, this, that, there,…) trong văn bản.
Để loại bỏ các hư từ, luận văn sử dụng một từ điển các hư từ được cung cấp bởi bộ ngữ liệu
Reuters 21578.
Thuật toán loại bỏ các hư từ được thực hiện như sau:


17

Đầu vào: Tập các văn bản D = {d1, d2, …, dn} và từ
điển các hư từ S
Đầu ra: Tập các văn bản đã loại bỏ hư từ D’ = {d1’,
d2’, … , dn’}
Phương pháp:
For di  D thực hiện
While(!endoffile(di))
di’ = {wk  di | wk  wj  S}
Hình 3.2: Thuật toán loại bỏ hư từ

3.2.1.2. Đánh trọng số theo TF-IDF

TF-IDF là kết hợp của tần số từ khóa (TF: Term Frequency) và nghịch đảo số văn bản
chứa từ khóa (IDF: Inverted Document Frequency).
Tần số từ khóa (TF: Term Frequency) là tần suất xuất hiện của từ khóa đó trong tài
liệu. Một cách trực quan thì một từ là quan trọng cho một tài liệu nếu từ đó xuất hiện nhiều
lần trong tài liệu đó.
(
Trong đó

,

,

) =

là số lần xuất hiện của từ

,





,

trong tài liệu

.

Nghịch đảo số văn bản (IDF: Inverted Document Frequency): IDF là nghịch đảo số
văn bản chứa từ khóa. Không phải tất cả các từ khóa có độ quan trọng như nhau và vì vậy

giá trị trọng số tương ứng với các từ không quan trọng phải nhỏ. Ví dụ, tần số của các từ
chức năng như “và”, “hoặc”, “cũng” thường rất lớn và sẽ gây nhiễu đến nội dung của tài
liệu. IDF tìm cách co lại trọng số tương ứng với các từ khóa xuất hiện trong nhiều văn bản.
=
Trong đó: N là tổng số văn bản,

là số văn bản chứa từ t.
=



3.2.2. Tìm tập phổ biến
3.2.2.1. Cây WIT-tree
 Nút: là một itemset gồm 3 thành phần Itemset – Tidset - Weight: X×t(X)


18

 Cạnh: đường nối giữa hai nút.
 Đặc điểm của cây WIT-tree là nút cha chính là phần tiền tố của nút con và nút con

được tạo từ hai nút là nút cha nó kết hợp với một nút có cùng cha với nút cha và nằm
bên phải của nút cha.

3.2.2.2. Thuật toán khai thác tập phổ biến có trọng số từ cây WIT-tree
Tập dữ liệu đầu vào được lưu trữ dưới dạng các tập tin văn bản. Mỗi tập tin được xem
như một giao tác. Mỗi từ trong các tập tin được xem là một item.
Thuật toán đề nghị sử dụng cách lưu trữ dữ liệu như sau:
Bảng 3.1: Biểu diễn dữ liệu
Danh sách các tập tin


Danh sách các từ

d1

w1, w2, w4,…

d2

w1, w3, w5,…





dm

w3, w5, w7, …

3.2.2.3. Thuật toán khai thác tập phổ biến
Luận văn sử dụng thuật toán MWIT-FWUI được giới thiệu trong [3] để khai thác tập
phổ biến. Thuật toán được mô tả chi tiết trong hình 3.3


19

Đầu vào: tập các văn bản (D) và ngưỡng minwus
Đầu ra: FWUI là tập tất cả các từ phổ biến thỏa
mãn minwus của D
Phương pháp:

MWIT-FWUI()
[Ø] = {j  I: wus(j) ≥ minwus}
FWUI = Ø
FWUI_EXTEND([Ø])
FWUI_EXTEND([P])
Với mọi li  [P] thực hiện
Thêm li vào FWUI
[Pi] = Ø
Với mọi lj  [P], với j > i làm
X = l i  lj
Y = t(li) ∩ t(lj)
wus(X) = COMPUTE_WUS(Y)
Nếu wus(X) ≥ minwus thì
[Pi] = [Pi] {X x Y}
FWUI_EXTEND([Pi])
Hình 3.3: Thuật toán MWIT-FWUI

3.2.3. Gom cụm văn bản
Với thuật toán MC ta thấy rằng, việc duyệt ma trận tương đồng A nhiều lần sẽ làm cho
chi phí thuật toán tăng cao. Với cơ sở dữ liệu có kích thước n chi phí tìm kiếm sẽ là O(n3).
Do đó, thuật toán sẽ kém hiệu quả với bài toán gom cụm văn bản. Vì vậy, luận văn đề xuất
cải tiến thuật toán gom cụm nhằm cải tiến thời gian thực thi. Ý tưởng cải tiến như sau: thay
vì, ta tìm giá trị lớn nhất trên ma trận tương đồng A, ta sẽ chuyển ma trận A sang mảng một
chiều và ghi nhận lại chỉ số vị trí cho các tài liệu tương ứng. Sau đó sắp xếp mảng một chiều
giảm dần. Tiếp theo, tiến hành gom cụm theo giá trị giảm dần của ma trận. Chi tiết thuật
toán được trình bày trong hình 3.4:


20


Đầu vào: Cơ sở dữ liệu D và tập phổ biến FI
Đầu ra: Danh sách các cụm C
Bước 1: Xây dựng ma trận tương đồng A
Bước 2: Chuyển ma trận A sang mảng một chiều B, đồng
thời ghi nhận chỉ số cặp tài liệu tương ứng vào mảng
Index.
Bước 3: Sắp xếp mảng B theo thứ tự giảm dần, ghi nhận
thay đổi chỉ số cặp tài liệu tương ứng trong ma trận
Index.
Bước 4: Tìm giá trị nhỏ nhất Min khác 0 trong B theo
phương pháp tìm nhị phân
Bước 5:
Trong khi còn văn bản chưa được gom cụm, thực hiện:
- Với mọi B[i] > Min, với tất cả các cặp văn bản
ứng với giá trị B[i] được xử lý như sau:
o Đầu tiên, với mỗi cặp văn bản, nếu hai văn
bản chưa thuộc về bất kỳ cụm nào, thì hai văn
bản này được nhóm lại với nhau để tạo thành
cụm mới.
o Tiếp theo, với mỗi cặp văn bản, nếu một trong
hai văn bản đã thuộc về một cụm nào đó, thì
văn bản còn lại chưa gom cụm sẽ được đưa vào
cụm này.
-

Với mọi B[i] == Min, với tất cả các cặp văn bản
ứng với giá trị B[i] được xử lý như sau:
o Tất cả các cặp văn bản tương ứng chưa được
gom cụm sẽ được dùng để tạo cụm mới.


-

Với mọi B[i] = 0, nếu có văn bản nào chưa được
gom cụm, thì mỗi văn bản này sẽ được dùng để tạo
cụm mới.

Hình 3.4: Thuật toán TF-IT

CHƯƠNG 4 - THỰC NGHIỆM VÀ ĐÁNH GIÁ
4.1. Chuẩn bị dữ liệu
Bộ ngữ liệu luận văn sử dụng để đánh giá là bộ ngữ được trích xuất từ bộ dữ liệu
Reuters-21578. Từ bộ ngữ liệu gốc chúng tôi trích xuất ra 3 bộ ngữ liệu để đánh giá kết quả


21

thực nghiệm. Thông tin các bộ ngữ liệu được trích xuất như sau: bộ ngữ liệu 1 gồm 92 văn
bản thuộc về 6 chủ đề, bộ ngữ liệu 2 gồm 314 văn bản thuộc 6 chủ đề. Thông tin chi tiết của
các bộ ngữ liệu được trình bày trong các bảng sau:
Bảng 4.1: Bộ ngữ liệu 1
Chủ đề

Số văn bản

Coffee

22

Fuel


7

Gold

20

Livestock

6

Reserve

12

Sugar

25

Tổng

92
Bảng 4.2: Bộ ngữ liệu 2

Chủ đề

Số văn bản

Coffee

90


Fuel

4

Gold

70

Livestock

16

Reserve

37

Sugar

97

Tổng

314

4.2. Phương pháp đánh giá
Để đánh giá tính hiệu quả của thuật toán gom cụm dùng tập phổ biến, các công trình
nghiên cứu đều sử dụng độ đo F (F-measure). Công thức độ đo F được tính như sau:
F(i, j) =
=


2 × P(i, j) × R(i, j)
P(i, j) + R(i, j)


(, )

Với F(i,j) là độ đo F của cụm j trong lớp i. P(i,j) là độ rõ (precision) của cụm j trong
lớp i. R(i,j) là độ bao phủ (Recall) của lớp i trong cụm j. Tổng quát, độ đo F lớn hơn sẽ cho
kết quả gom cụm tốt hơn.


22

Độ rõ

(, )=

Độ bao phủ

( , ) =

Với ni số lượng văn bản của lớp i, nj số lượng văn bản của cụm j, nij số lượng văn bản
của lớp i trong cụm j.

4.3. Đánh giá kết quả
Để đánh giá kết quả đạt được, luận văn so sánh kết quả của mình với kết quả của thuật
toán MC [9], trên tiêu chí: độ đo F.
Các thuật toán được cài đặt trên nền .NET Framework 4.5, sử dụng Visual Studio
2010, với cấu hình máy như sau: Intel Corei5, 4GB RAM, Hệ điều hành Window 7.


4.3.1. Bộ ngữ liệu 1
Kết quả chạy thực nghiệm của bộ ngữ liệu 1 với các ngưỡng khác nhau như sau:
0,7
0,6
0,5
0,4
TF-IT
0,3

MC

0,2
0,1
0
0,09

0,092

0,1

0,15

Hình 4.1: Kết quả trên bộ ngữ liệu 1

4.3.2. Bộ ngữ liệu 2
Kết quả chạy thực nghiệm của bộ ngữ liệu 2 với các ngưỡng khác nhau như sau:


23

0,8
0,7
0,6
0,5
TF-IT

0,4

MC

0,3
0,2
0,1
0
0,1

0,15

0,17

0,2

Hình 4.2: Kết quả trên bộ ngữ liệu 2

4.4. Nhận xét và đánh giá
Với những bộ dữ liệu nhỏ và số lượng văn bản trong mỗi chủ đề cách nhau không lớn,
thuật toán TF-IT đạt kết quả tốt hơn thuật toán MC. Nhưng với những bộ dữ liệu có số
lượng văn bản trong mỗi chủ đề cách nhau lớn TF-IT có độ chính xác không tốt bằng thuật
toán MC.
Qua kết quả thực nghiệm ta thấy, với mỗi ngưỡng khác nhau sẽ cho kết quả khác

nhau. Do đó, việc xác định ngưỡng phù hợp cho bài toán vẫn là một thách thức với bài toán
tìm tập phổ biến nói chung và bài toán gom cụm văn bản sử dụng tập phổ biến nói riêng.


×