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

mộ số vấn đề chọn lọc của công nghệ thông tin và truyền thông

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 (8.49 MB, 222 trang )

Một số vần đề chọn ỉọc cùa Công nghệ thông tỉn và truvền thông, Hưng Yên, ĩ 9-20 tháng 08 năm 20ĩ 0
MỘT PHƯƠNG PHÁP XỬ LÝ
KÉT QUẢ TÌM KIẾM TRÊN WEB
Trần Ngọc Hà *, Hoàng Xuân Huấn Nguyễn Phương Chi^
(1) Khoa Toán, Đại học Sư phạm, Đại học Thái Nguyên
(2) Khoa Công nghệ thông tin, Đại học Công nghệ, Đại học Quốc Gia Hà Nội
(3)Khoa Cơ bản, Đại học Ngoại thương
Khí sử dụng các công cụ tìm kiếm thông dụng hiện nay, kết quả tìm idem
thicờng là rất nhiều tài liệu và các kết quả được đảnh giá là cỏ liên quan tời từ
khỏa nhiều nhất sẽ được iru tiên hiển thị trước. Phương pháp này nhiều khi
không tiện lợi cho người dùng, thậm chí người dùng có thể bỏ qua các kết quả
cần tìm vì chủng không cỏ thứ hạng cao trong tập kết quả tìm kiếm. Để giải
quyết vẩn đề này, báo cáo đề xuất hiển thị kết quả tìm kiếm web theo chủ đề.
Để xác định chủ đề cho tài liệu, tnrởc hết sử dụng mô hĩnh tập thô dung sai để
tăng chất lượng việc biểu diễn các tài liệu và các cụm từ nhằm tăng hiệu qitả
phân cụm; sau đó sử dụng phương pháp phân cụm bán giảm sát Seeded -
KMeans vào việc phân cụm và xác định chủ đề tài liệu. Nhờ cách xử lý này,
người dùng dựa trên từ khỏa cỏ thể tìm tài liệu theo chủ đề.
Từ khóa: tập thô dung sai, đồng xuất hiện, phân cụm bán giám sát, Seeded -
KMeans, tìm kiếm web
1. Giới thiệu
Cùng với sự phát triển rộng rãi của Internet, các máy tìm kiếm hiệu quả trên web
đang được nhiều người quan tâm nghiên cứu (xem [2],[3],[8]).
Mỗi khi cần tìm kiếm một thông tin nào đó, người dùng sẽ cung cấp cho máy tìm
kiếm một số từ khóa, các máy tìm kiếm sẽ trả về cho người dùng các tài liệu có chứa từ
khóa này. Thường thì có hàng trăm hoặc hàng ngàn tài liệu như vậy, điều này gây khó
khăn cho người dùng trong việc tìm đúng tài liệu cần tìm. Thực tể cho thấy nếu các kết quả
tìm kiếm được chia thành các chủ đề sẽ giúp người dùng dễ xác định được tài liệu mình
cần tìm hơn. Điều này gợi ra cách tiếp cận mới là phân cụm kết quả tìm kiểm theo chủ đề
và hiển thị kết quả dựa trên chủ đề theo lựa chọn của người dùng.
Việc phân cụm kết quả tim kiếm web gặp phải một số khó khăn sau:


• Không thể xác định trước được số cụm để gán chủ đề.
• Sau khi phân cụm, chọn nhãn nào cho từng cụm để phù hợp cho
người dùng?
181
Một số vẩn đề chọn lọc cùa Câng nghệ thông tin và truyền thông, Hung Yén, 19-20 tháng 08 năm 2010
• Vì thực hiện trực tuyến nên yêu cầu phải có tốc độ xử lý nhanh.
Để giải quyết được các khó khăn trên, trong báo cáo này chúng tôi sử dụng mô hình
tập thô dung sai (xem [2], [3], [5]) vào việc biểu diễn tài liệu làm tăng chất lượng biểu diễn
tài liệu. Để tạo ra được nhãn cho các cụm kết quả tìm kiếm và tăng chất lượng của việc
phân cụm, chúng tôi sử dụng thuật toán phân cụm bán giám sát Seeded - KMeans vào việc
phân cụm, trong đó nhân của cụm sẽ dựa vào nhãn của tài liệu ở tập giống (seed) trong các
trang web được chọn trước.
Phần còn lại của báo cáo bao gồm các nội dung sau: mục 2 trình bày về máy tìm
kiếm web, mục 3 giới thiệu bài toán phân cụm kết quả tìm kiếm web và mô hình tập thô
dung sai, mục 4 trình bày thuật toán phân cụm bán giám sát dựa trên mô hình tập thô dung
sai, mục 5 trình bày thử nghiệm của chúng tôi, và cuối cùng là kết luận.
2. M áy tìm kiếm web
Máy tìm kiếm Web là một công cụ giúp người sử dụng tìm kiếm thông tin trên
mạng một cách nhanh chóng và đầy đủ.
Cấu trúc của một máy tìm kiếm web gồm các thành phần sau (xem [3], [8]):
Trình thu thập web (Web Crawler) hay còn được gọi là Web Spider là một trong
hai thành phần tương tác trực tiếp với World Wide Web (WWW). Web crawler CÓ nhiệm
vụ phát hiện các trang mới trên WWW bằng cách thu thập các siêu liên kết từ các trang tài
liệu. Quá trình này được thực hiện đệ qui để thăm dò hầu hết các trang web trên Internet.
Web crawler sẽ phải sử dụng một số kỹ thuật để tránh không bị lấy thông tin trùng lặp; nó
vừa thu thập các trang web mới nhưng cũng đồng thời kiểm tra lại những siêu liên kết đã
không còn tồn tại trên WWW để loại chúng khỏi các kết quả tìm kiếm.
Chỉ mục tài liệu (Document Index): Thành phần lập chỉ mục tài liệu thực hiện
chức năng xây dựng bảng chỉ số tài liệu hỗ trợ công việc tìm kiếm. Thông thường, các hộ
thống tìm kiếm thông tin thực hiện việc tìm kiếm các tài liệu hoặc dựa trên phương pháp

lựa chọn tài liệu có chứa các từ trong câu hỏi tray vấn, hoặc dựa trên phương pháp xếp
hạng tài liệu (Document Ranking) liên quan đến câu hỏi truy vấn. Do đó hầu hết các máy
tìm kiếm đều sử dụng biến dữ liệu có cấu trúc chỉ mục ngược (inverted index) để hỗ trợ
thực hiện công việc này.
Lưu trữ tài liệu (Document Cache): Hiện nay có nhiều máy tìm kiếm vừa lưu trữ
bảng chỉ số tài liệu như ở phần trên, vừa lưu trữ tài liệu gốc.
Tính hạng tài liệu (Document Ranking) World Wide Web càng ngày càng phát
triển do vậy lượng thông tin ngày càng lớn, số kết quả tìm kiếm với một từ khóa bất kỳ đều
rất lớn, ngay cả với những câu hỏi truy vấn hoàn thiện và chính xác, số kết quả tìm kiếm
vẫn có thể lên đến hàng ngàn hoặc hàng triệu. Chính vì vậy cần có module tính hạne; tài
182
Một sẩ vấn đề chọn lọc cùa Công nghệ thông tin và truyền thông, Hưng Yên, 19-20 tháng 08 năm 2010
liệu để xác định được tài liệu nào có độ liên quan đến các từ khóa mà người dùng tìm
kiểm nhất.
Xử lí truy vấn là thành phần có nhiệm vụ phân tích cú pháp tìm kiếm của người
dùng thông qua các toán tử và cú pháp được định nghĩa, sau đó bộ xử lí truy vấn kết hợp
với bảng chỉ số tài liệu, các tài liệu được lưu trừ, và thành phần tính hạng tài liệu để đưa ra
tập kết quả tìm kiếm thỏa mãn cú pháp tìm kiếm của người dùng.
Giao diện biểu diễn kết quả là thành phần quan trọng trong máy tìm kiếm và trực
tiếp tương tác với người sử dụng. Do vậy giao diện biểu diễn kết quả tìm kiếm là yểu tố
đầu tiên được xem xét khi đánh giá chất lượng của một chương trình tìm kiếm, nó có vai
trò vô cùng quan trọng và có ảnh hưởng rất lớn đến toàn bộ chất lượng của máy tìm kiểm.
3. Phân cụm kết quả tìm kiếm web và mô hình tập thô dung sai.
Trong mục này chúng tôi giới thiệu tóm tắt bài toán phân cụm kết quả tìm kiếm
trên web, phương pháp phân cụm bán giám sát Seeded-Kmeans và mô hình tập thô dung
sai (chi tiết hơn xem [1], [4], [5], [6])
3.1. Bài toán phân cụm kết quả tìm kiếm web
Phân cụm dữ liệu là bài toán học không giám sát được phát biểu như sau:
Giả sử ta có tập các đối tượng D={dl,d2, )dn} và ô(di; dj) là độ tương tự giữa hai
đối tượng di và dj. Phân cụm là chia tập đối tượng D thành K cụm C={cl,c2, ,ck} sao

cho mỗi đối tượng đều thuộc về một cụm, các đối tượng trong cùng một cụm thì tương tự
nhau hơn các phần tà thuộc các cụm khác nhau (số lượng cụm k có thể được xác định
trước hoặc xác định nhờ phương pháp phân cụm).
Nhược điểm của các phương pháp phân cụm hiên thời là kết quả phân cụm khó phù
hợp với các yêu cầu của người dùng. Vì vậy, một hướng tiếp cận mới giúp tăng hiệu quả
cho các thuật toán phân cụm là sử dụng các thông tin hỗ trợ từ người dùng và được gọi là
phân cụm bán giám sát (semi supervised clustering [1]). Các thông tin bổ trợ có thể được
cho dưới dạng tập các cặp ràng buộc hoặc một tập nhỏ một số dữ liệu được gán nhẵn.
Trong phân cụm, việc đánh giá độ tương tự giữa các đối tượng dựa trên các tiêu chí
khác nhau ví dụ như khoảng cách giữa các đối tượng hoặc dựa trên khái niệm, .Phân cụm
tài liệu là phương pháp phân cụm dựa trên khái niệm, khi đó các tài liệu trong cùng một
cụm đều liên quan đến khái niệm chung của cụm. Hay nói cách khác, các đối tượng được
nhóm lại theo nội dung chúng diễn tả, không đơn giản là chỉ dựa theo độ đo khoảng cách
hình học.
Các phương pháp phân cụm kết quả tìm kiểm web cũng xuất phát từ phân cụm tài
liệu, tuy nhiên chúng lại khác so với các thuật toán phân cụm trước đó về nhiều mặt. Đáng
chú ý nhất, các thuật toán phân cụm tài liệu làm việc trên tập dữ liệu văn bản dài (hay các
văn bản tóm tắt) với sổ lượng lớn. Ngược lại, các thuật toán phân cụm kết quả tìm kiểm
183
Một sổ vấn đề chọn lọc của Công nghệ thông tin và truyền thông, Hưng Yên, ¡9-20 tháng 08 năm 2010
web làm việc trên các tập tài liệu có độ dài trung bình (khoảng vài trăm phần tử với độ dài
từ 10-20 từ). Trong phân cụm tài liệu, yểu tố quan trọng là chất lượng của các cụm và khả
năng mở rộng với độ lớn của số lượng tài liệu vì nó thường sử dụng để phân cụm toàn bộ
tập tài liệu.
Đối với phân cụm kết quả tìm kiếm web, ngoài việc cung cấp các cụm chất lượng
tốt, nó còn cần tạo ra các mô tả ngắn gọn xúc tích và có ý nghĩa cho nhóm. Ngoài ra, các
thuật toán phài nhanh, cho kết quả ngay lập tức (vì phải xử lý các kết quả tìm kiếm ngay
trước khi hiển thị đến người sử dụng) và phải mở rộng được qui mô với sự gia tăng yêu
cầu của người sử dụng.
Có nhiều phương pháp phân cụm khác nhau như phân hoạch, phân cấp, chia lưới,

dựa trên mật độ, Đối với bài toán phân cụm tài liệu, phương pháp phân cụm phân hoạch
thường được lựa chọn. Trong báo cáo này chúng tôi cũng sử dụng phương pháp phân cụm
phân hoạch cho việc phân cụm kết quả tìm kiếm web.
3.2. Thuật toán phân cụm bán giám sát Seeded - Kmeans
Đối với phương pháp phân cụm nửa giám sát dựa trên tập dữ liệu được gán nhãn,
để hình thành nên các cụm giống nhằm khởi tạo cho một thuật toán phân cụm hoặc để sinh
ra các ràng buộc dẫn dắt quá trình phân cụm, người ta sẽ sử dụng tập dữ liệu được
gán nhãn.
Seeded-KMeans là thuật toán phân cụm bán giám sát điển hình dựa trên tập dữ liệu
đã được người dùng gán nhãn được Basu đề xuất năm 2002 (xem [1]). Thuật toán này sử
dụng tập con ^ được gọi là tập giống gồm các đối tượng đã được gán nhãn để khởi
tạo cho thuật toán KMeans. Trên thực tế tập giống s thường chỉ chiếm một phần nhỏ trong
tập đối tượng X. Do vậy khi tập giống không đầy đủ thì các cụm còn lại được khởi tạo
ngẫu nhiên trên phần bù của s trong X. Dưới đây là thể hiện chi tiết của thuật toán Seeded
- KMeans.
Thuật toán Seeded-KMeans
Input; - Tập các đối tượng dừ liệu X = e
Số lượng cụm: K
- Tập giống S = [Jt\Sh
Output: K phân hoạch tách rời: của X sao cho hàm mục tiêu được tối ưu.
Thuật toán:
Bưó'c 1: Khởi tạo các cụm: ^ JC , với h = t«-0.
Bước 2: Gán cum; Gán mỗi đối tương dữ liêu X vào cum h' (tức là tâp ) với /i* = argmin
* l /j J /l=l
184
Một sổ vẩn đề chọn lọc của Công nghệ thông tin và truyền thông, Hưng Yên, 19‘20 tháng 08 năm 20ì 0
Bước 3: ước lượng tâm:
*
Bước 4: t <-t+l
Bước 5: Dừng nếu hội tụ hoặc quay lại bước 2.

Bảng 1 - Thuật toán Seeded - KMeans
3.3. Mô hình tập thô dung sai (Tolerance Rough Set Model - TRSM)
Lý thuyết tập thô (rough set theory) lần đầu tiên được đề xuất bởi z. Pawlak vào
đầu những năm 1980 và nhanh chóng được xem như một công cụ xử lý các thông tin mơ
hồ và không chắc chắn trong việc phân tích và phân lớp dữ liệu.
Trong lý thuyết tập thô, mỗi tập con X trong tập vũ trụ u có thể được xấp xi bởi
xấp xỉ trên và xấp xỉ dưới của nỏ trong không gian xấp xi 9Ĩ=(Ư,R) trong đó R c UxU là
một quan hệ tương đương (quan hệ tương đương là quan hệ có các tính chất phản xạ, đối
xứng và bắc cầu). Hai đổi tượng x,y C u được nói là bất khả phân biệt theo quan hệ R nếu
xRy. Xấp xỉ dưới và xấp xỉ trên của bất cứ tập X c u trong 9Ĩ ký hiệu là LR(X) và UR(X)
được định nghĩa là:
• LR(X)={xeU |[x]RcX } (1)
• UR(X)={ xeU | [x]Rn X ?i0} (2)
Trong đó [x]R là lớp tương đưofng của các đối tượng bất khả phân biệt với X theo
quan hệ tương đương R.
Mô hình tập thô dựa trên quan hệ tương đương luôn giả sử rằng tập T của các tò chi
mục có thể chia thành các lớp tưoTig đưcmg tách rời nhau dựa trên quan hệ tương đương.
Tuy nhiên trong vấn đề xử lý ngôn ngữ tự nhiên và tìm kiếm thông tin, người ta nhận thấy
trong ba tính chất của quan hệ tương đương thì quan hệ bắc cầu không thực sự phù hợp bởi
vì với mỗi từ đều có một lớp các từ có nghĩa tuơng tự. Các lớp này không rời rạc (lớp
tương đương) mà chúng phủ nhau, nghĩa của các từ không có tính chất bắc cầu.
Quan hệ dung sai (tolerance relation) là quan hệ chỉ thỏa mãn hai tính chất là tính
chất phản xạ và tính chất đối xứng. Các lớp phủ nhau có thể được sinh ra bởi các quan hệ
dung sai. Mô hình xấp xỉ chung sử dụng quan hệ dung sai được giới thiệu trong đó không
gian chung được gọi là không gian dung sai (tolerance space) có chứa các lớp phủ nhau
của các đối tượng trong vũ trụ (các lớp dung sai).
Không gian dung sai được định nghĩa gồm 4 phần 9ĩ= (U, I, V, p) trong đó u là tập
vũ trụ các đối tượng, 1:U->2U là một hàm không chắc chắn, v: 2U X 2U -> [0,1] là một
hàm tính độ mập mờ, P: I(U) -> {0; 1} là hàm cấu trúc.
185

Một số vẩn đề chọn lọc cùa Công nghệ thống tin và truyền thông, Hưng Yên, 19-20 thảng 08 năm 2010
Giả s ử mỗi đối tượng X có thể hiểu được bởi các thông tin Inf(x) về nó. Hàm không
chắc chắn I xác định một lớp dung sai I(x) của các đối tượng được coi là có thông tin
tương tự với X. Hàm này có thể là một hàm bất kỳ thỏa mãn 2 điều kiện xe I(x) và xe I(y)
<=> ye I(x) V x,ye u. Dễ thấy I(x) là lớp dung sai của X bởi vi quan hệ xRy<=^ yG I(x) là một
quan hệ dung sai.
Hàm tính độ mập mờ V được dùng để xác định mức độ bao phủ giữa các tập hợp. V
có thể là bất cứ hàm đơn điệu đối với 2 tham sổ của nó v(X,Y) < v(X,Z) V X,Y,ZeU và
YcZ.
Hàm cấu trúc p phân lóp I(x) với mỗi xe ư thành 2 lớp là các tập con có cấu trúc
(P(I(x))=l) và các tập con không có cấu trúc (P(I(x))=0). xấp xỉ trên và xấp xỉ dưới của
mọi đối tượng xeU trong được định nghĩa là:
• LR(X) = {XG U| P(I(x))= 1 & v(I(x),X)= 1} {f)
• UR(X)={ xe UI P(I(x))=l& v(I(x),X)>0} (4)
Vấn đề cơ bản của việc sử dụng không gian dung sai là làm thế nào để xác định
được I, V và p cho phù hợp.
4. Thuật toán phân cụm bán giám sát dựa trên TRSM
Trước khi trình bày thuật toán, chúng tôi giới thiệu tóm tắt về không gian dung sai
(chi tiết xem [4],[6])
4.1. Không gian dung sai
Giả sử D = {dl, d2, dn} là tập các tài liệu và T={tl, là tập các từ chỉ
mục của tập tài liệu D. Trong TRSM, không gian dung sai được ký hiệu qua một vũ trụ của
tất cả các từ chỉ mục
U = (5)
Đe xác định được mối quan hệ giữa các từ chỉ mục trong các lớp, quan hệ dung sai
R được xác định là sự xuất hiện đồng thời của các từ trong tất cả các tài liệu từ tập D. Quan
hệ đồng xuất hiện của các từ chỉ mục giúp xác định mối quan hệ ngữ nghĩa và làm sáng tỏ
ý nghĩa thực sự của các từ trong ngữ cảnh của các tài liệu và việc tính toán trở lên đơn giản
và hiệu quả.
Giả sử fD(ti, tj) là số lượng các tài liệu trong D xuất hiện cả hai từ ti và tj. Hàm

không chắc chắn I phụ thuộc vào ngưỡng 0 được định nghĩa là
I0 (ti)= {tj|fD (ti,tj)> 0} U{ti} ^ (6)
Rõ ràng hàm trên thỏa mãn các tính chất phản xạ và đối xứng với mọi ti và tj s T.
Vì vậy quan hệ dung sai I cTxT có thể định nghĩa qua hàm I:
e i0 (ti) (7)
186
Một sô vấn để chọn lọc của Công nghệ thông tin và truvền thông, Hưng Yên, 19-20 tháng 08 năm 2010
Trong đó 10 (ti) là lớp dung sai của từ chỉ mục ti
Để đánh giá mức độ bao hàm của một tập trong tập khác, hàm bao phủ không chắc
chắn được định nghĩa là:
X n Y
v{X,Y) =
X
(8)
Hàm tính độ phụ thuộc của từ khoá ti e T, X C T:
ịu {t,,x) = v ự , ụ , ) , x ) J - ^ ^ ụ p ^
leih)
( 9 )
Từ những giả sử trên ta có thể coi tất cả các lớp dung sai của mỗi ti đều là các tập
con có cấu trúc, nghĩa là P(I9(ti)) =1 với V ti e T
Các xấp xỉ trên và dưới của tập X C T trong không gian vừa xác định được:
LR (X) = {tieT: v(I0(ti),X) =1} (10)
U R (X )-{ tie T ; v(I0(ti),X)>O} (11)
Trong mô hình không gian vector chuẩn, một tài liệu được xem như một nhóm của
các từ, những từ xuất hiện trong tài liệu sẽ được gán các giá trị trọng số khác 0 trong vector
biểu diễn tài liệu. Với TRSM, để tăng chất lượng biểu diễn tài liệu, ta không chỉ sử dụng
các từ xuất hiện trực tiếp trong tài liệu mà còn cả các từ có liên quan về mặt ý nghĩa với
các từ đó. Một cách biểu diễn tài liệu chất lượng hơn có thể coi là sự biểu diễn tài liệu bởi
tập các lớp dung sai của các từ mà nó chứa. Ta có thể đơn giản hóa việc biểu diễn tài liệu
với các xấp xỉ trên của nó. Giả sử di = {til, ti2, ,tik } là 1 tài liệu trong D và til, ti2, ,,tik

là các từ chi mục của di:
ư.(rf,) = {í,E r|v(/,(/,,),rf,)> 0)
Để có cái nhìn trực quan hơn về lớp dung sai của các từ chỉ mục và xấp xỉ trên của
tài liệu ta đi xét 1 ví dụ gồm 10 tài liệu được biểu diễn bời các tà chỉ mục như trong bảng
2. Với ngưỡng đồng xuất hiện 0=2, sử dụng công thức (6) ta tính được lớp dung sai của các
từ chỉ mục là: I2(tl)={tl, t2, t5, tl6}, I2(t2)={tl, t2, t4, t5, t26}, I2(t4)={ t2, t4}, I2(t5)={
tl, t2, t5}, I2(t6)={ t6, t7 }, I2(t7)={t6,t7}, I2(tl6)={ tl, tl6}, I2(t26)={t2, t26}, với các từ
còn lại thì lớp dung sai chỉ gồm 1 phần tử là chính nó.
Tài liêu
Từ khóa Xâp xỉ trên
d,
Uĩ hĩ t3, Í4,
th hĩ ^3) U, U. t[6, Í26
d2
1?3 h, tg
Uĩ t?, tg,
- d3
th tsí ^10» t||, Ì2
t|» Í2, Í4, ts, t|0, tii, t|6, Í26
¿4
hi ^7» tl2j tl3> ti4
tóí t?) ti2, t|3, ti4
ds
hĩ t|5> U
tl) Í2, t4,ts, ÍỊ5, Í26
d6 t|í tl6) t|7í tig, t|9, Í20
tl, Í2, ts, t|6, t]7, t|8, ti9, Ì2Ồ
187
Một số vấn đề chọn lọc của Cổng nghệ thông tin và truyền thông, Hưng Yên, ¡9-20 tháng 08 năm 2010
d y

t 2 t í Í22, t2 3 , t24 ,
^25 ^2U
t22» t23 , t2 4 ,
h s
d «
t2> t i 2 , t2 6 , Í27
t l , t2 , Í 4 ,t 5 , t i 2 , Í26, t27
d ọ
t2 6 ) t 2 , t2 8
t l , t2 , t4 ,Í 5 , Ỉ26, t28
d io
ti 6 i t 2 l , Ỉ29, t3 0
tl> t2 , t s , t |6 , t 2 |, Í29, Í30
Bảng 2 - Ví dụ về xấp xỉ trên của tài liệu vói ngưỡng đồng xuất hiện là 2
Lược đồ TF*IDF được sử dụng để gán trọng số cho vector tài liệu. Đe tận dụng các
xấp xỉ của tài liệu, lược đồ được mở rộng để giải quyết truờng hợp các từ chỉ có trong xấp
xi trên của tài liệu nhưng không xuất hiện trong chính tài liệu (hoặc các từ xuất hiện trong
tài liệu nhưng lại không nằm trong xấp xỉ dưới của tài liệu.
N
Nếu t - £ d;
0
f „ ,) /( l + lo g ( 7 ^ » N ế u tj£ U ,( d ,) -d ,
Nếut.ỂUR(di)
(13)
Trong đó wij là trọng sổ của từ.tj trong tài liệu di. Sự mở rộng này đảm bảo rằng
các từ chỉ xuất hiện trong xấp xi trên của di mà không xuất hiện trong di phải có trọng số
nhỏ hơn bất cứ từ nào xuất hiện trong di. Sự tiêu chuẩn hóa bằng độ dài vector được áp
dụng cho tất cả các xấp xi trên của tài liệu.
4.2. Thuật toán phân cụm bán giám sát dựa trên TRSM
Thuật toán phân cụm TRS-SK (Tolerance Rough Set Seeded KMeans) cơ bản dựa

trên thuật toán Seeded - KMeans được giới thiệu ở trên; do vậy thuật toán đảm bảo hoạt
động tương đối nhanh (phù hợp với phân cụm kết quả online) trong khi vẫn đảm bảo được
chất lượng của các cụm. Việc sừ dụng không gian dung sai và xấp xỉ trên để tăng mối quan
hệ giữa các tài liệu và giữa tài liệu với cụm cho phép thuật toán phát hiện ra sự tương tự
khó phát hiện mà các thuật toán khác không làm được. Trong phân cụm kết quả tìm kiếm,
việc gán nhãn tốt cũng quan trọng như chất lượng nội dung cụm. Chúng tôi đã sử dụng các
chủ đề của tập dữ liệu giống để làm nhãn cho các cụm dữ liệu.
Thuật toán TRS-SK gồm 5 bước: Tiền xử lý tài liệu, xây dựng cách biểu diễn tài
liệu, tạo ra các lớp dung sai, phân CVUII, gán nhãn cho cụm. Dưới đây là các bước chính của
thuật toán.
4.2.1. Tiền x ử lý
Tiền xử lý dữ liệu văn bản trước khi đưa vào các thuật toán phân cụm là rất cần
thiết và có thể làm tăng hiệu xuất của thuật toán. Đầu tiên ta loại bỏ khỏi kết quả tìm kiếm
những ký tự không phải là chữ cái (ví dụ: $,@,.• •)> các thẻ HTML và các mã ký tự đặc biệt
188
Một so vấn đề chọn lọc của Công nghệ thông tin và truvền thông, Hưng Yên, Ĩ9-20 tháng 08 năm 2ỒỈỒ
như &amp, &quot, .Sau bước này ta sử dụng các thuật toán tách từ tiếng Việt để tách tài
liệu thu được thành các từ có nghĩa. Bước tiếp theo là loại bỏ các từ dừng (stop words là
những từ xuất hiện nhiều nhưng ko có giá trị trong việc phân cụm)
4.2.2. Xãy dự ng ma trận từ - tài liệu
Thuật toán TRSM sử dụng mô hình không gian vector để xây dựng ma trận từ - tài
liệu biểu diễn các tài liệu
Bảng đồng xuất hiện được xây dựng sau khi tập tài liệu đã qua pha tiền xử lí và nó
được trích chọn theo quy luật sau:
• Bỏ qua số, các từ có ít hơn hai kí tự và các từ xuất hiện trong câu hỏi truy
vấn vì chúng xuất hiện hầu hết trong các kết quả.
• Sử dụng bộ lọc để loại bỏ các từ có tần xuất thấp (nhỏ hơn 1 ngưỡng nào đó
cho trước) vì những từ này sẽ làm tăng số đặc tính của tài liệu.
Sau khi trích chọn ta xây dựng ma trận tò - tài liệu theo luợc đồ trọng sổ TF*IDF
(xem [6])

4.2.3.Tạo lớp dung s a i[6]
Mục đích của việc tạo lớp dxmg sai là để xác định tập các tò có liên quan đến mỗi
từ với quan hệ dung sai là quan hệ đồng xuất hiện; tập hợp tà đó được gọi là lớp dung sai.
Ta định nghĩa ma trận đồng xuất hiện của từ như sau:
Trong đó tcx,y là tần số đồng xuất hiện của hai từ x,y-nghĩa là số tài liệu có chứa
đồng thời cả hai từ X và y. Quan hệ dung sai R giữa các từ được định nghĩa là:
xRy«=>tcx,y > 9
Trong đó 0 được gọi là ngưỡng đồng xuất hiện. Độ phức tạp tính toán của bước 1 là
0(NxM), bước 2 và bước 3 đều là 0(M2). Như vậy độ phức tạp của toàn bộ thuật toán là
0(NxM2). Chi tiết về thuật toán có thể xem [6]
4.2.4. Thuật toản ph ân cụm TRS-SK cải tiến
TRS-SK là sự cải tiến của thuật toán Seeded - KMeans để tạo các nhóm tài liệu
tương tự. Các bước chính của thuật toán được mô tả như sau:
Thuật toán TRS-SK
Input: Tập các kêt quả tìm kiêm D, sô lượng cụm K, tập các kêt quả đã được gán nhãn s (Tập dữ
liệu giống) và ngưỡng tương tự s
Output: K cụm phủ nhau từ tập các kết quả tỉm kiếm D với các giá trị thành viên thích hợp
Thuật toán:
1. Lấy tất cả các kết quả đã được gán nhãn thuộc tập dữ liệu giống s để khởi tạo cho K cụm Ci,
C2, ■ ■ ■, Ck- Đặc trưng của các cụm dược thể hiện bởi các tập Rị , R2, ■. ■, Rk
_______________
189
Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông, Hưng Yên, ỉ 9-20 tháng 08 năm 2010
2. Repeat
Forcach dieD{
Poreach Ck(k=l, , K) {
Tính toán độ tương tự giữa xấp xi trên của tài với các đặc trưng của cụm S(ưr(di),
Rk)
If(S(U,(di), R 0>5) then{
Gán di vào cụm Cỵ với mức độ thành viên được tính là: m(di, Ck)- S(Ur(di), Rk)

}
foreach(Ck){
Tính lại biểu diễn cụm Ri(
Until thỏa mãn điều kiện dửng
______
Bảng 3 - Thuật toán TRS-SK
Trong bước phân cụm này, với mỗi cụm CK ta xây dựng được biểu diễn cụm RK
theo qui tắc sau:
1. Khởi tạo RK=(Ị).
2. Các từ xuất hiện trong các tài liệu trong cụm với tần số cho phép (được điều
khiển bởi ngưỡng ơ) được thêm vào RX.
3. Chọn các từ có trọng số cao nhất từ các tài liệu trong cụm mà chưa có từ nào
được thêm vào RK để thêm vào cách biểu diễn cụm RK.
Trọng số của các từ ti trong Rk được tính là giá trị trung bình các trọng số của tất cả
Ằ Á .1* A . / •»
các lân xuât hiện trong các tài liệu của Ck:
(14)
Độ tương tự giữa các tài liệu và giữa các tài liệu với các cụm được tính theo độ
đo cosin
5 (^ ,y )=
J t -ỉ + í //
V - (15)
Việc áp dụng TRSM vào thuật toán phân cụm sẽ có 2 ưu điểm chính là:
1. Làm giảm các hệ số có giá trị bằng 0 khi ta biểu diễn các tài liệu bời các từ liên
quan đến nó trong các lớp dung sai.
2. Có khả năng phát hiện ra các tài liệu mà có ít từ chung (hoặc thâm chí ko có) với
tập các từ phổ biến.
190
Một sô vân đê chọn lọc cùa Công nghệ thông tin và truvên thông, Hưng Yên, ¡9-20 thảng 08 năm 2010
Thuật toán phân cụm mà chúng tôi áp dụng là thuật toán phân cụm bán giám sát

Seeded - KMeans. Đây là một cách tiếp cận mới trong phân cụm kết quả tim kiểm web mà
trước đây chưa được nhóm tác giả nào sử dụng. Chúng tôi lựa chọn sử dụng thuật toán
phân cụm này vì những ưu điểm sau;
1. Việc tạo nhãn cho các cụm chính xác hơn so với các phương pháp phân cụm
khác vì nhãn tạo ra dựa trên tập dừ liệu giống đã được người dùng gán nhãn.
Điều này giữ vai trò rất quan trọng, đặc biệt là với tính chất phức tạp của ngữ
pháp tiếng Việt thi việc gán nhãn cho các cụm sao cho ý nghĩa và chính xác là
một vấn đề khó.
2. Tốc độ thực hiện nhanh.
5. Thử nghiệm
Để đánh giá phương pháp mà chúng tôi đã đề xuất, chúng tôi đã cài đặt thử nghiệm
một hệ thống tổng hợp tin và tìm kiếm web tiếng Việt. Chúng tôi đã sử dụng các kỹ thuật
crawler theo chủ đề để tổng hợp tin tức từ các trang báo điện tử phổ thông của người Việt
như , , , Đe thu thập được
hơn 3000 trang web tiếng Việt thuộc 26 chủ đề được xác định dựa trên các chủ đề của các
trang web trên. Khi tìm kiếm, các kết quả thuộc tập các trang web này được sử dụng làm
tập dữ liệu giống cho thuật toán Seeded - KMeans.
Chúng tôi đã sử dụng thuật toán TRS-SK vào phân cụm kết quả tìm kiếm web khi
thực hiện việc tìm kiếm trên ứng dụng thử nghiệm. Sau khi phân cụm, chúng tôi sử dụng
chính các chủ đề của các bài viết được sừ dụng làm tập giống để tạo thành nhãn cho các
cụm, vì vậy nhãn của các cụm thường bao quát được hết nội dung của các kết quả nằm
trong cụm đó.
Sử dụng mô hình tập thô dung sai và ngưỡng tương tự giữa các tài liệu và các cụm
để phân cụm giúp chúng tôi tạo nên các cụm kết quả phủ nhau, điều này phản ánh đúng
thirc tế là một bài viết thì có thể thuộc vào nhiều chủ đề khác nhau.
Ví dii, khi chúng tôi tìm kiếm với từ khóa “tin học” trên tập dữ liệu thử nghiệm của
chúng tôi thì kết quả tìm kiếm trả về thuộc chủ đề “Người Việt trẻ” và “Vi tính” là nhiều
nhất, nhưng bên cạnh đó ta còn có thể tìm kiếm được cả các bài viêt thuộc các chủ đề khác
như; “Điện thoại”, “Môi trường”,
Hay khi tìm kiếm với từ khóa “nghiên cứu” chúng tôi thực hiện việc phân cụm trên

200 kết quả trả về thì các kết quả đó được phân vào 18 cụm trong đó nhiều nhất là các bài
viết thuộc chủ đề “Tư vấn sức khỏe”, tiếp theo là các chủ đề như “kiến thức giới tính”, “vi
tính”, “điện thoại”, “Người Việt trẻ”, Chúng tôi đã so sánh các kết quả đó với các
website gốc chứa các bài viết đó thì thấy việc phân cụm kết quả này đạt độ chính xác khá
cao so với các chủ đề của chúng trên các website gốc.
191
Một số vẩn đề chọn lọc cùa Công nghệ thông tin và truvền thông, Hung Yên, 19-20 tháng 08 năm 2010
Qua nhiều lần thử nghiệm chúng tôi thấy việc lựa chọn ngưỡng đồng xuất hiện của
các từ trong ứng dụng bằng 3 và ngưỡng tương tự giữa các tài liệu với các biểu diễn cụm
bằng 0.2 sẽ cho kết quả tốt nhất.
Phương pháp tiếp cận của chúng tôi phù hợp với xu hướng xây dựng các máy tìm
kiếm hay các trang web tổng hợp tin hiện nay vì chúng đều có các trang tin tổng hợp để
làm tập dữ liệu giống cho việc phân cụm kết quả tìm kiếm.
Kết luân

Báo cáo của chúng tôi đề xuất phương pháp áp dụng mô hình tập thô dung sai vào
thuật toán phân cụm bán giám sát Seeded-KMeans để phân cụm kết quả tìm kiếm web
tiếng Việt. Việc áp dụng mô hình tập thô dung sai với quan hệ dung sai là quan hệ đồng
xuất hiện của các từ trong tài liệu giúp phát hiện ra mối quan hệ giữa các từ trong tập kết
quả tìm kiếm làm tăng chất lượng phân cụm. Thuật toán Seeded-KMeans được sử dụng để
phân cụm kết quả với tập dừ liệu giống được thu thập tà các website tiếng Việt phổ dụng
kết hợp sử dụng phương pháp tách từ tiếng Việt để tách từ đã làm tăng chất lượng phân
cụm và sinh ra nhãn của các cụm kết quả chính xác hơn so với các phương pháp khác.
Chúng tôi dự định phát triển hoàn thiện ứng dụng của mình để sử dụng trong thực
tế, so sánh cách tiếp cận của chúng tôi với các phương pháp phân cụm khác trên tiếng Anh
đồng thời thử nghiệm với các tập dữ liệu lớn hơn để cải tiến thuật toán phân cụm sao cho
hiệu quả. Đó sẽ là cơ sở để hình thành một hệ thống tìm kiểm web theo nội dung.
Tài ỉiệu tham khảo
1] s. Basu, A. Banerjee and R. J. Mooney, (2002). Semi-supervised clustering by
seeding. In Proceedings of 19th International Conference on Machine Learning

(ICML-2002), pp. 19-26.
[2] c. Carpineto, s. Osinski, G. Romano and D. Weiss, A survey of Web
clustering engines, ACM Computing Surveys (CSUR) archive, Volume 41 ,
Issue 3 , Article No. 17 (July 2009)
[3] S.Chakxabarti (2003), Mining the Web. Morgan Kaufmann
[4] T. B. Ho and N. B. Nguyen (2002) Nonhierarchical document clustering based
on a tolerance rough set model. International Journal of Intelligent Systems,
VOL. 17, 199-212(2002)
[5] J. Komorowski, L. Polkowski, A. Skowron, Rough sets: A Tutorial.
[6] Ngo Chi Lang (2003), A tolerance rough set approach to clustering web search
results, Master's thesis.
[7] z. Pawlak (1991), Rough sets: Theoretical aspects of reasoning about data.
Kluwer Dordrecht.
[8] A. Scime, Web Mining: Applications and Technics, Idea Group Inc., 2005
[9] Y.Zhao, and G.Karypis (2001), Criterion functions for document clustering:
Experiments and analysis.
192
Một số vẩn để chọn Ịọc của Công nghệ thông tỉn và truyền thông, Hưng Yên, ĩ 9-20 tháng 08 ỉĩẵm 20ỉ 0
MỘT SỐ CẢI TIÉN NÂNG CAO T ố c Đ ộ x ử LÝ CỦA
PHƯƠNG PHÁP MÃ HÓA s ố HỌC
ĐỖ Văn Tuấn', Trần Đăng Hiên^, Nguyễn Thanh Bình^, Phạm Văn Át'*
(1) Trường Cao đẳng Thương mại và Du lịch Hà Nội
(2) Trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội
(3) Trường Đại học Mỏ- Địa chất Hà Nội
(4) Trường Đại học Giao thông Vận tải
Trong lĩnh vực bảo mật dừ liệu, phương pháp mã hỏa sổ học được xem là một
trong những phương pháp hay. Tuy nhiên, việc ứng dụng phương pháp này vào
thực tể gặp phải những khó khăn nhất định, bởi tốc độ thực hiện của thuật toán
mã hỏa và giải mã chậm vì phải thực hiện các phép toán nhân, chia trên các sổ
nguyên lớn với hàng trăm chừ số. Trong bài báo này đề xuất một số cải tiến

nhằm tăng tốc độ thực hiện của thuật toán bằng việc thay thế các phép nhân,
chia bởi các phép dịch chuyển bít. Bên cạnh đó, bài bảo cũng trình bcty cơ sở
tocin học cho phương pháp mã hóa số học giúp cho việc tìm hiểu, nghiên cứu
phương pháp này trở nên dễ dcing. Phần tiếp theo của bài báo được trình bciy
như sau: mục 1 trình bảy một số định nghĩa và khái niệm, mục 2 nội dung thuật
íoán mã hỏa số học gốc, mục 3 thuật toán mã hóa sổ học cải tiến, mục 4 kết
qiủĩ thực nghiệm và mục 5 là kết luận.
1. Một số định nghĩa và khái niệm
Trong suốt bài báo này ta xem đoạn [0,D] là miền không gian và mọi điểm, mọi
đoạn thẳng đều nằm trong miền này.
1.1. Phép chiếu một điểm lên đoạn thẳng
1.1.1. Phép chiếu thu nhỏ đồng dạng
Hình chiếu y của X lên [a,b] (xem hình vẽ) được xác định theo công thức:
y -a - b-a n X D
x-0 D-O
hay
y = (1.1) a —
D y
Ta gọi y là ảnh của X lên [a,b] và ký hiệu:
y = [ a ,b ] ^ x (1.2)
193
Một sổ vấn đề chọn lọc của Công nghệ thông tin
V’ c)
truyền thông, Hưng Yên, 19-20 ihcing 08 nàm 2010
1.1.2. Phép biến đỏi ngirực
Khi biết hình chiếu y, thì X được xác định theo công thức:
b-a
và X eọỉ là nghịch ảnh của y theo [a,b] và ký hiệu;
X = [a,b]-> y (1.4)
1.2. Phép chiếu một đoạn thẳng lên một đoạn thẳng

1.2.1. Phép chiếu thu nhỏ đòng dạng
Hình chiếu [yi,y2] của [xi,X2] lên [a,b] (xem hình vỗ) được xác định theo
công thức: Q X , X2 D
yi = [a,b] ^ Xi
y2 = [a,b] ^ X2
và ký hiệu:
[yi.y2] = [a,b] ^ [X1,X2] (1.5) ^
yi
Y2
Nhận xét: [yiy2] chính là phép chiếu thu nhỏ đồng dạng của [X1,X2] từ [0,D] lên
,a,b].
1.2.2. Phép biến đỗi ngirợc
Tương tự nếu X) = [a,b] ^ yi và X
2
= [a,b] Ỵ2 thì ta nói:
X |,X 2 ] là nghịch ảnh của [yi,y2] theo [a,b] và ký hiệu:
X1,X2] = [a ,b]^ [yi,y2] (1.6)
Nhận xét: Trong mục 2 dưới đây sẽ dùng phép chiếu thu nhỏ đồng dạng để diễn đạt
thuật toán mã hóa và phép biến đổi ngược để trình bày thuật toán giải mã.
1.3. Một số tính chất
Sử dụng các công thức (1.1)-(1.6) có thể chứng minh các tính chất sau đây đối với
phép chiếu thu nhỏ đồng dạng và phép biến đổi ngược. Các tính chất này được sử dụng để
chứng minh tính đúng đan của thuật toán giải mã trong mục 2.
1.3.1. Tỉnh chất kết hợp
Đổi với 2 phép chiếu ta có:
(C < -B ) = C ^ ( B ^ A ) (1.7)
Đối với n phép chiếu (n>2) ta có:
((A , < - A 2 ) ^ An.,)4-An = A , ^ ( A 2 ^ (A n -i^ A n)) (1.8)
1.3.2. Tỉnh chẩt chửa trong
Ảnh của [xi,X

2
] lên [a,b] luôn luôn thuộc [a,b] hay nói cách khác:
Ncu: [yi,y2] = [a,b] [X1,X2] thì [yi,y2] c [a,b] (1.9)
194
Một sô vân đê chọn lọc của Công nghệ thông tin và tniỵén thông, Hưng Yên, 19-20 tháng os năm 2010
1.3.3. Tỉnh chất chửa trong của phép biến đổi ngược
Néu
y eY
X = B ^ Y (X là nghịch ảnh của Y theo B)
thì
B-^y e X (nghịch ảnh của y theo B thuộc X)
2. Thuật toán mã hóa số học gốc
Trong mục này sẽ dùng phép chiếu thu nhỏ đồng dạng để mô tả thuật toán mã hóa
số học, dùng phép biến đổi ngược để diễn đạt thuật toán giải mã và sử dụng các tính chất
của phép chiếu để chứng minh tính đúng đắn của thuật toán giải mã. So với cách trình bày
về mã hóa số học gốc trong các tài liệu trước đây (ví dụ như [2] và [7]), cách trình bày và
cách chứng minh trong bài báo này ngắn gọn và dễ hiểu hơn.
2.1. T huật toán mã hóa
Để thực hiện thuật toán mã hóa số học, trước tiên cần xác định miền phân bố của
tập ký tự khác nhau của bản rõ.
2.1.1. Thống kê tần suất và xác định miền phân bố của các kỷ tự trong bân rõ
Vấn đề này được trình bày thông qua một ví dụ. Giả sử bản rõ là một chuỗi ký tự:
"CABAB" thì kết quả thống kê tần suất như sau:
STT
Ký tự
Tân suât
1
A 2
2
B 2

3
C 1
E
ảng /- Bảng tần suất
Gọi m là số ký tự trong bảng tần suất (ở ví dụ này m = 3). Ký hiệu:
ch[i] là ký tự thứ i trong bảng tần suất (ở ví dụ trên: ch[l] = ‘A’, ch[3] = ‘C’)
P(ch[i]) = [ỉow_range(ch[i]), hi_range(ch[i])) là miền phân bố của ký tự ch[i'
Để xác định miền phân bố, đầu tiên chọn đoạn cơ sở [0,D]. Sau đó chia [0,D] thành
m đoạn con dựa theo tần suất của các ký tự. Với bản rõ như trên và D =1000 thì miền phân
bố của các ký tự như sau:
STT
Ký tự Miên phân bô
low_range hi_range
1
A
[0 - 400)
0 400
2 B
[400 - 800) 400 800
3
C [800- 1000)
800 1000
Bảng 2- Bảng phân bô vói
[) = 1000 và dựa t
ICO tân suât
195
Một 50 vấn đề chọn lọc của Công nghệ thông tin và truvền thông, Hưng Yên, 19-20 tháng 08 ncim 2010
Nhận xét: các miền phân bố không nhất thiết phải tính theo tần suất mà chi cần xác
định sao cho không giao nhau và thuộc [0,D]. Trong mục 3 sẽ đề xuất các cách chọn miền
phân bố hợp lý để cải tiến thuật toán mã hóa số học nhằm nâng cao tốc độ tính toán.

2.1.2. Ỷ tưởng của thuậ t toán mã hóa
Xem bản rõ là một chuỗi gồm n ký tự. Gọi kt[i] là ký tự thứ i của bản rõ tính từ trái
qua phải, i = l,2, ,n (trong ví dụ trên: kt[l] = ‘C’, kt[3] = ‘B’). Gọi Sk (k = 1,2, ,n) là
chuỗi con gồm k ký tự đầu tiên, tức Sk gồm các ký tự kt[l], kt[2], kt[k]. Với bản rõ như
trên thì các chuồi con là:
s, = "C" ; S2 = "CA" ;S3 = "CAB"; S4 = "CABA" ; S s = "CABAB"
Mỗi chuỗi con sẽ có miền mã là một đoạn thẳng (kín đầu trái, hở đầu phải) nằm
trong đoạn [0, D]. G ọi;
Ti = [low_code[i], hi_code[i]) là miền mã của chuỗi con Si
Các đoạn Ti được xác định như sau :
Với i= l, chuỗi s 1 gồm một ký tự, thì T1 chính là miền phân bố của ký tự này:
T, =P(kt[l])
low_code[l] = low_range[kt[l]] (2.1)
hi_code[l] = hi_range[kt[l]] (2.2)
Với i=2, ,n thì Ti được xác định theo công thức lặp:
T, = Ti., ^ P(kt[i]) (2.3)
(Ti là hình chiếu của P(kt[i]) lên Ti-i)
2.1.3. T huật toán mã hóa
Input:
n: độ dài theo ký tự của bản rõ
dãy ký tự của bản rõ kt[i] (i=l,2 ,n)
m: số ký tự của bảng phân bổ
low_range(ch[i]), hi_range(ch[i]) ứng với mỗi ký tự ch[i] trong bảng phân bố
(i=l, m)
Output:
- code; mã của bản rõ
Thuật toán:
low_code[l] = low_range[kt[l]];
hi_code[l] = hi_range[kt[l]];
for(i = 2; i < n; i++)

//tương đương (2.1)
//tương đương (2.2)
{
low_code[i] = low_code[i-l]+
(low_range[kt[i]]x(hi_code[i-l]-low_code[i-l]))/D (2.4)
196
MỘI sổ vấn đề chọn lọc của Cóng nghệ thông tin và íruvền thông, Hưng Yên, 19-20 thúng 08 năm 2010
hi_code[i] = low_code[ị-I]+
(hi_range[kt[i]] x(hi_code[i-1 ]-low_code[i-1 ]))/D (2 .5 )
}
(Các công thức (2.4) và (2.5) được xác định từ ( 1.1 ),( 1.5) và (2.3))
Mã số của bản rõ: Có thể chọn một giá trị bất kỳ của miền mã Tn làm mã số cho
bản rõ. Gọi code là mã số của bản rõ thì code thỏa mãn điều kiện:
code e Tn = [ low_code[n], hi_code[n]) (2.6)
Nhận xét; Thực chất thuật toán mã hoá là xác định đoạn mã cho các chuỗi con Sk
của bản rõ băng cách áp dụng liên tiếp phép thu nhỏ đồng dạng. Các đoạn này bị thu nhỏ
rất nhanh và khi một đoạn có độ dài bàng 1 thì thuật toán không thể tiếp tục được. Vì vậy
để cài đặt trên máy tính cần sử dụng các kiểu số nguyên lớn từ vài chục đến vài trăm byte,
ngoài ra phải chia bản rõ thành các khối và thực hiện mã hoá theo từng khối (xem mục 4).
2.2. Thuật toán giải mã
2.2.1. H àm g(x) trên ỊO,D)
Để tìm các ký tự của bản rõ theo giá trị mã, cần sử dụng hàm g(x). Hàm này xác
định với mồi xe [0,D) theo công thức: g(x) = chỊj] nếu X thuộc miền P(ch[j])
Ví dụ với miền phân bố trong bảng 2 thì:
• Với X = 400, g(x) = ‘B ’
• Với x = 399, g(x) = ‘A’
2.2.2. Ý íirở/ìg của thu ật toán giải mã
Từ mã số code của bản rõ cần khôi phục các ký tự z[i] (i=l, ,n) của bản rõ. Ý
tưởng của thuật toán như sau:
Với i = 1 thi

code[l] = code (2.7)
z[l] =g(code[l]) (2.8)
Với i=2, ,n thì
code[i] = P(z[i-1]) -> code[i-l] (2,9)
(code[i] là nghịch ảnh của code[i-l] theo [Iow_range(z[i-l]), hi_range(z[i-l])] )
z[i] = g(code[i]) (2.10)
2.2.3. Thuật toán giải mã
Input:
code: là mã của bản rõ
n; số ký tự của bản rõ
bảng phân bố của các ký tự khác nhau trong bản rõ (bảng 2)
Output:
z[i] với i=l,2,.,.,n
197
Một số vấn để chọn lọc cúa Công nghệ thông tin VCI truyền thông, Hưng Yên, J9'20 thảng 08 năm 2010
Thuật toán:
code[l] = code //theo (2.7)
z[ 1 ] = g(code[ 1 ]) //theo (2.8)
for(i=2; i < n; i++)
{
, {cocíe[i-\]-low_rang^z[i-\]])*D
hi_rang(ịz[i-l]]-low_rang^z[i-\]]
(2.11)
z[i] = g(code[i]) // xác định các ký tự tiếp theo
}
(Công thức (2.11) được xác định dựa vào (1.3), (1.6) và (2.9))
Nhận xét: Trong các công thức của thuật toán mã hóa và giải mã chứa giá trị cận
trôn và cận dưới của miền phân bố. Vì vậy bằng cách chọn các giá trị này một cách hợp lý
có thể làm giảm khối lượng tính toán của các thuật toán. Ý tưởng này sẽ được thực hiện
trong mục 3.

2.3. Chứng minh tính đúng đắn của thuật toán
Điều cần chứng minh:
z[i] = kt[i] hay kt[i] = g(code[i]) (2.12)
nói cách khác:
code[i] 6 P(kt[i]), với i = 1 , n (2.13)
Đe dễ theo dõi ta xét n=4, khi đó thuật toán mã hóa (2.1)-(2.3) được biếu diễn
như sau:
T3
(2.14)
/, T. \
T , = C ( í( k t [ 1]) ^ P ( k t[ 2 ; ) ^ P ( k t[ 3 ] ) ^ P (k t [ 4 ] )
Ti
Theo tính chất kết hợp (mục 1.3.1), từ (2.14) ta có:
T4 = P(kt[l]) ^ (P(kt[2] (P(kt[3] ^ P(kt[4]))) (2.15)
nên theo tính chất chứa trong (mục 1.3.2) suy ra: T4 c P(kt[l])
Măt khác theo (2,6)-(2.7) ta có: code[l] = code G T4
Nên: code[l] 6 P(kt[l]). Như vậy (2.13) đúng với i=l, có nghĩa z[l] = kt[l].
Tiếp tục xét (2.13) với i = 2. Theo (2.9) và do z[l] = kt[l] ta có:
codc[2] = P(kt[l]) —> cocic[l
mà codc[l] e T4
Nên theo tính chất chứa trong của phép biến đổi ngược suy ra:
codc[2]G P(kt[l]HT4
Mặt khác theo (2.15) thì :
198
KíỘ! só vân Jê chọn lọc cùa Công nghệ thông tin VCI truyền thông. Hưng Yên, ¡9-20 thcìng 08
năm 2010
P(kt[l])^T4 = (P(kt[2]) (P(kt[3]) ^ P(kt[4])))
Ntỉoài ra theo tính chất chứa trong thì;(P(kt[2])f-(P(kt[3])<—P(kt[4])))e P(kt[2])
nôn: code[2] e P(kt[2]). Vậy (2.13) đúng với i=2, nghĩa là z[2] = kt[2]. Bằng cách lập luận
tươnỵ tự sẽ suy ra z[i] = kt[i] (i=3,4, ,n). Đó là điều cần chứng minh.

3. Thuât toán mã hóa số hoc cải tiến
• •
Trong các công thức (2.4) và (2.5) của thuật toán mã hóa và công thức (2.11) của
thuật toán giải mã phải thực hiện các phép nhân, chia trên các số lớn làm tốc độ tính toán
chậm, hạn chế khả năng ứng dụng của thuật toán này. Để giảm khối lượng tính toán, chúng
tôi đề xuất giải pháp thay các phép nhân, chia bàng các phép dịch bit. Điều này có thể thực
hiện được bằng cách chọn các miền phân bố một cách hợp lý.
3.1 T huật toán m ã hóa cải tiến
Chọn D và xác định bảng phân bố (bảng 2) như sau;
- D = 2* (3.1)
- low_range(ch[i]) = (i=l, ,m) (3.2)
- hi_range(ch[i]) - low_range(ch[i]) = (i=l, ,m) (3.3)
Trong đó s, h[i], k[i] cần thỏa mãn điều kiện:
2h[m]__^ < 2^
Với cách chọn trên thì:
hi_range(ch[i]) = (3.4)
Nhận xét: Với mỗi ký tự kt[i] của bàn rõ (1 < i < n), luôn tồn tại chỉ số duy nhất f(i)
trong khoảng từ 1 đến m sao cho:
kt[i] = ch[f(i)] ^ (3.5)
Sử diing hàm f(i), từ (3.2)-(3.4) có thể xác định miền phân bố của ký tự kt[i] bất kỳ
của bản rõ như sau:
low_range(kt[i]) = (i=l, ,n) (3.6)
hi_range(kt[i]) = (3.7)
Với cách chọn miền phân bố như các công thức (3.1), (3.2), (3.4) và dựa vào (3.6),
(3.7) thi (2.4)-(2.5) trong thuật toán mã hoá số học gốc được cải tiến như sau:
low_code[l] = Iow_range[kt[l]
hi_codc[l] = hi_rangc[kt[l]] ;
for(i=2; i<n; i++)
low_codc[i]=low_code[i-1 ]+(hi_codc[i-1 ]-low_code[i- l])»(s-h[f(i)])
hi_code[i]=low_code[i]+(hi_code[i-l]-low_code[i-l])»(s-h[f(i)])

(3.8)
(3.9)
199
Một sô vấn để chọn lọc cùa Công nghệ thông tin và truvền thông, Hưng Yên, ỉ 9-20 tháng 08 nam 2010
+(hi_code[i-1 ]-low_code[i-1 ])»(s-k[f(i)])
}
3.2 Thuật toán giải mã cải tiến
Bang cách lập luận tương tự, từ (3.6), (3.7) và để ý thêm rằng z[i] = kt[i], Vi (công
thức 2.12) thuật toán giải mã (2.11) được cải tiến như sau:
code[ 1 ] = code
z[l] = g(code[l]); //xác định được ký tự đầu tiên của bản rõ
for(i=2; i < n; i++)
{
code[i]=(code[i-l]«(s-k[f(i-l)]))-(2«(s+h[f(i-l)]-k[f(i-l)]))
z[i] = g(code[i])// xác định các ký tự tiếp theo
}
(3.10)
Nhận xét: các công thức (3.8), (3.9) và (3.10) trong thuật toán mã hoá và giải mã
cải tiến chỉ chứa các phép cộng, trừ và dịch bit nên chẳng những có tốc độ thực hiện nhanh
mà còn cho kết quả chính xác.
3.3. So sánh độ phức tạp
Để so sánh độ phức tạp của thuật toán mã hóa số học gốc so với thuật toán cải tiến
ta đánh giá số phép toán mà mỗi thuật toán cần thực hiện. Giả sử cả các thuật toán được
thực hiện trên các số nguyên lớn có độ dài size byte (Sxsize bit).
3.3.1. Thuật toán mã hỏa số học gốc
a. Thuật toán mã hóa
Theo (2.4) và (2.5) trong mỗi bước lặp cùa thuật toán mã hóa cần thực hiện 2 phép
nhân và 2 phép chia trên các số nguyên có độ dài 8xsize bit (chưa kể các phép cộng và trừ)
vì vậy số phép toán cần thực hiện là:
4x (8xsize)^ = 256xsize^ phép nhân bit

Vậy tổng số phép toán cần thực hiện là:
256x size^xn phép nhân bit (3.11)
b. Thuật toán giải mã
Bằng cách phân tích tương tự ta suy ra tổng số phép toán cần thực hiện:
128x size ^Xn phép nhân bit (3.12)
3.3.2. Thuật toán m ã hóa số học cải tiến
a. Thuật toán mã hóa
Theo (3.8) và (3.9) trong mỗi bước lặp của thuật toán mã hóa cần thực hiện 3 phép
dịch bit trên các số nguyên có độ dài size byte. Mỗi phép dịch bit yêu cầu tối đa 8x size
phép gán bit. Vì vậy số phép toán cần thực hiện của n phép lặp là:
3x8x size xn = 24xsizexn phép gán bit (3,13)
200
Một số vấn để chọn lọc của Công nghệ thông tin và truyền thông, Hưng Yên, 19-20 tháng 08 năm 2010
b. Thuật toán giải mã
Bang cách phân tích tương tự ta suy ra tổng số phép toán cần thực hiện là:
16x sizexn phép gán bit (3.14)
3.2.3 So sánh độ p hứ c tạp của 2 phươ ng pháp
Troníỉ phương pháp mã hóa số học gốc chọn phép toán nhân bit làm phép toán cơ
sở, trong khi đó phương pháp mã hóa số học cải tiến chọn phép gán bit làm phép toán cơ
sở. Thực tế phép gán bit thực hiện nhanh hơn phép nhân bit. Trong trường hợp này để tiện
so sánh ta giả sử 2 phép toán này là tương đương về độ phức tạp. Khi đó từ các công thức
(3.11) và (3.13) thi tốc độ tính toán giữa 2 phương pháp có thể được so sánh qua phép
tính sau:
Sô phép tinh cùa thuật toán ni<5 hóa gỏc 256 X size^ X n
- 7

— ^ ^

— = 10.7 X siz e
Sỏ phép tính cùa thuật toán tìiâ hóa cài tiên 24 X size X n

Như vậy tốc độ của thuật toán mã hóa cài tiến nhanh gấp 10.7xsize lần so với thuật
toán mã hóa gốc. Neu sử dụng số nguyên lớn với độ dài 25 byte (size=25 - như trong phần
cài đặt chương trình) thì thuật toán mã hóa cải tiến ít nhất nhanh gấp 267 lần so với thuật
toán mã hóa gốc. Bằng cách lập luận tương tự suy ra thuật toán giải mã cải tiến ít nhất
nhanh gấp 16xsize so với thuật toán giải mã gốc. Nhưng qua thử nghiệm chương trinh thỉ
thấy tổc độ cùa thuật toán cải tiến còn nhanh hơn nhiều (xem mục 4).
3.4. Thuật toán chia đều miền phân bố
3.4.1. X ác ítịnh m iền phân bổ
Có thể nhận được một phương án cải tiến đơn giản bằng cách chia đều miền phân
bố cho các ký tự. Khi đó miền phân bổ được xác định như sau:
D = 2^ (3.15)
low_range(ch[i]) = (i-l)x2'’ (3.16)
hi_range(ch[i]) = ÍX2'’ (3.17)
Trong đó h và s cần thỏa mã điều kiện:
mx2'’ <2*và nxh>(n-l)xs (3.18)
3.4.2. Thuật toán mã hóa cải tiến
Với cách chọn miền phân bố theo (3.15)-(3.17) và để ý thêm rằng kt[i] = ch[f(iX
(công thức (3.5)) thì công thức (2.4), (2,5) có dạng:
low_code[i]=low_code[i-1 ]+(f(i)-1 )) (hi_code[i-1 ]-low_code[i-1 ])»(s-h) (3 19)
hi_code[i]=low_code[i-l] + f(i)x(hi_code[i-l]- low_code[i-l]) » (s-h) Nấu đặt
A[i] = hi_code[i] - low_code[i] thì từ (2.1), (2.2), (3.16), (3.17) suy ra: (3.20)
201
Một sơ vấn đề chọn lọc của Cóng nghệ thông tin và truvền thông. Hưng Yên. 19-20 thảng 08 năm 2010
= t (3.21)
Ngoài ra theo (3.19), (3.20) ta có:
A[i] = A[i-1] (i=2, ,n) (3.22)
Do đó từ (2.1), (2.2) và bàng cách kết hợp (3.19), (3.20) với (3.22) ta nhận được
thuật toán mã hóa cài tiến như sau:
low_code[l] = low_range[kt[l]];
hi_code[l] = hi_range[kt[l]];

A[l] = hi_code[l] - iow_code[l];
u[l] = h;
for(i=2; i< n; ++i)
{
A[i] = A[i-1] » (s-h);
u[i] = u[i-l] - (s-h);
low_code[i] = low_code[i-l] + (f(i)-l) « u[i];
hi_code[i] = low_code[i] + A[i];
}
Nhận xét: Điều kiện (3.18) chẳng những đảm bảo miền phân bố của các ký tự thuộc
0,D] mà còn cho phép các phép dịch chuyển trong thuật toán luôn thực hiện được (u[i]>0).
3.4.3. Thuật toán giải mã cải tiến
Với cách chọn miền phân bố theo (3.15)-(3.17) và để ý thêm rằng kt[i] = ch[f(i)] thì
thuật toán giải mã tại mục 2.2.3 được cải tiến như sau:
code[l] = code
z[ 1 ] = g(code[ 1 ]); //xác định được ký tự đầu tiên của bản rõ
for(i=2; i < n; i++)
{
code[i] = (code[i-1 ]«(s-h)) - (f(i)-1 ) « s
z[i] = g(code[i]) // xác định các ký tự tiếp theo
}
Nhận xét; Tại mồi bước trong thuật toán mã hóa 3.4.2 chứa 2 phép dịch bit vì vậy
tốc độ của thuật toán này nhanh hơn tốc độ của thuật toán mã hóa cải tiến tại mục 3.1.
4. Kết quả thử nghiệm trên máy
Đc cài đặt các thuật toán chúng tôi đã sử dụng kiểu nguyên lớn size byte (size<200)
từ [1], với size được chọn linh hoạt bời người sử dụng (ở đây chọn size = 25). Bản rõ được
chia thành các khối với độ dài 25-30 ký tự (ứng với size =25). Viộc mã hóa được tiến hành
202
Một sổ vấn dề chọn lọc cùa Công nghệ thông tin vc) truyền thông, Hưng Yên, 19-20 tháng 08 năm 2010
theo từng khối. Chương trình được viết bàng ntỊÔn ngữ VC++ 6.0, được cài đặt cho thuật

toán gốc và thuật toán cải tiến 3.4. Ket quả thử nghiệm dưới đây cho thấy thuật toán cải
tiến nhanh hơn khoảng 1000 lần so với thuật toán gốc.
Phép
so
sánh
Độ dài
bản rõ
(ký tự)
Số ký
tự
khác
nhau
Thời gian mã hóa
(Đơn vị tính toán 0.001 giây)
Thời gian giải mã
(Đơn vị tính toán 0.001 ciây)
Phương pháp
gốc
Phương pháp
cài tiến 3.4.1
Phương pháp
gốc
Phương pháp
cải tiến 3.4.1
1
1018
102
300000,78 0.003 300000,20
0,2
2 1304

128 680000,83 0.003 680000,56 0,028
3 4418 136 1700000,23 0,017
1700000,03 2000
4
8856 136
-
0,027
-
2000,13
5
22240 144
-
0,061
-
2400,29
6 32233 144
-
0,081
-
2700,15
7
232409 256
-
7000,579
-
8000,266
Trong các kết quà trên bản rõ trong dòng thứ 7 là Đe thi tuyển sinh đại học năm
2010 môn Hóa học. Các ô để trống trong các dòng từ 4 đến 7 không có kết quả do thời
gian chạy máy quá lâu.
Kết luận


Bài báo đã trình bày cơ sở toán học cho phương pháp mã hóa số học bằng việc định
nghĩa phép chiếu thu nhỏ đồng dạng và phép biến đổi ngược. Qua đó, quá trình mã hóa
được mô tả bằng các phép chiếu thu nhỏ đồng dạng, quá trình giải mã được diễn tả bằng
các phép biến đổi ngược. Thông qua hai phép chiểu, việc chứng minh tính đúng đắn của
thuật toán cũng được trình bày chặt chẽ, giúp cho việc tìm hiểu, nghiên cứu thuật toán trở
nên dễ dàng hơn. Mặc dù phương pháp này đơn giản về mặt toán học nhưng đòi hỏi phải
thirc hiện các phép nhân, chia với số nguyên lớn làm tốc độ tính toán chậm nên khó áp
dụng vào thực tế. Bài báo đã đề xuất cách chọn giá trị cho miền cơ sở [0,D] và các miền
phân bố có dạng 2^ để thay thế các phép nhân, chia trong thuật toán gốc bằng các phép
dịch trái, dịch phải nhằm nâng cao tốc độ tính toán. Từ đó làm cho phương pháp mã hóa và
giải mã thực hiện nhanh hơn, giúp cho việc ứng dụng phương pháp này vào thực tế trở nên
khả thi hơn.
Có thể nhận thấy tốc độ mã hoá và độ dài bản mã phụ thuộc vào 3 yếu tố: miền
phân bố, độ dài số nguyên sử dụng trong mã hóa và kích thước các khối. Việc nghiên cứu
203
Một số vấn đề chọn lọc cùa Công nghệ thông tin và truyền thông, Hưng Yên, ¡9-20 tháng 08 ncim 2010
đế xác định các giá trị hợp lý cho 3 yếu tố trên nhằm tăng tốc độ mã hoá hoặc giảm độ dài
bản mã hiện đang được nhiều người quan tâm.
Tài liệu tham khảo
1] Phạm Vãn Ất, Nguyễn Hiếu Cường, Nguyễn Văn Long, Đỗ Văn Tuấn, Cao Thị
Luyên, Trần Đăng Hiên, Đề xuất thuật toán xử lý số nguyên lớn và ứng dụng
trong các hệ mật mã khóa cóng khai, Kỷ yểu hội thảo Quốc gia "Một số vấn đề
chọn lọc của công nghệ thông tin và truyền thông", Biên Hòa, 05-06 tháng 8
năm 2009, Nhà XB Khoa học và Kỳ thuật, Hà Nội -2010, 107-118.
[2] Howard, P.G and Jeffrey Scott Vitter, Practical Implementations of Arithmetic
Coding, International Conference on Advances in Communication and Control
(Comcon 3), Victoria, British Columbia, Canada, October 16-18, 1991.
[3] Howard, P.G and Jeffrey Scott Vitter, Arithmetic coding for data compression,
IEEE 1992

[4] Hai Mei, Zhang Jian-jun, NI Xing-fang, An improved Arithmetic Coding
Algorithm Journal of Shanhai University, 2004.
[5] Rissanen J.J, Generalized kraft inequality and arithmetic coding, IBM J. Res.
Develop, 1976.
[6] Rissanen JJ, Arithmetic codings as number representations, Acta Polytech.
Scand. Math, 1979.
[7] Rissanen J J and Langdon G.G, Arithmetic coding, IBM J. Res. Dev, 1979.
[8] Witten I.H, Radford M. Neal, and John G. Cleary, Arithmetic coding for data
compression. Communications of the ACM, No.6, Vol.30, June 1987
204
Một số vắn để chọn Ịọc của Công nghệ thông tin và truvền thông, Hưng Yên, 19-20 thảng 08 năm 2010
MỘT SỐ CẢI TIẾN THUẬT TOÁN SONG SONG PHÂN
CỤM DỮ LIỆU LỚN, NHIÈƯ CHIÈU DựA TRÊN LƯỚI
THÍCH NGHI PMAFIA
Nguyễn Mạnh Hùng, Phạm Thị Bích Vân, Đỗ Thị Mai Hường
Khoa Công nghệ thông tin, Học viện Kỹ thuật Quân sự
Phân cụm dữ liệu trong không gian dữ liệu lớn, nhiều chiều và không đầy đủ là
một trong những bài toán rất quan trọng của lĩnh vực khai phả dữ liệu. Đã có
nhiều nhà nghiên cínt quan tâm và để xuất các thuật toán giải quyết vấn đề này
như: CLIQUE, MAFIA, pMAFIA, Trong bài báo này, chúng tôi đề xuất
thuật toán pMAIFA-TID trên cơ sở cải tiến thuật toán song song phân cụm dựa
trên hỉới thích nghi pMAFIA. Thuật toán pMAFIA-TID tăng tốc độ thực hiện
so với thuật toán pMAFIA trên cơ sở bổ sung một sổ điểm sau đây:
- Không duyệt qua dữ liệu nhiều lần để đếm các bản ghi thỏa mãn khối mật độ
cao dự kiến (CDU- candỉdate dense unit) CDUij.
- Đem các bản ghi thỏa mãn CDUij thông qua sổ bản ghi thỏa mãn khối mật
độ cao (Dư - dense unit) DUi và cũng thỏa mãn DUj.
- Trên mỗi bộ xử lý sau khỉ xây dựng được một CDU s ẽ tiến hành loại lặp cục
bộ luôn, sau đó mới tổng hợp và loại lặp toàn cục.
Kết quả thử nghiệm trên bộ dữ liệu về bệnh xơ vữa động mạch STULONG cho

thấy pMAFỈA-TID có tốc độ thực hiện tốt hơn nhiều so với thuật toán pMAFIA.
Từ khóa: Phân cụm, khai phá dữ liệu, tính toán song song, lưới thích nghi, CLIQUE,
MAFIA, pMAFIA, STULONG.
l.G ió i thiệu
Sự phát triển như vũ bão của công nghệ thông tin trong những năm qua dẫn đến
lượng dữ liệu được thu thập và lưu trữ ngày cảng lớn. Tuy nhiên, do tính chất của môi
trường cạnh tranh, nhu cầu có thông tin một cách nhanh chóng tò những kho dữ liệu khổng
lồ để giúp cho việc ra quyết định ngày càng cao. Các phương pháp quản trị và khai thác cơ
sở dữ liệu truyền thống ngày càng không đáp ứng được yêu cầu này. Do vậy thực tế đã
phát triển một khuynh hướng mới đó là kỹ thuật phát hiện tri thức và khai phá dữ liệu.
Có rất nhiều phương pháp khai phá dữ liệu như: phân lớp, hồi qui, phân cụm
Mỗi phương pháp có những ưu, nhược được điểm riêng đối với từng loại ứng dụng nhưng
không phải phương pháp nào cũng cho kết quả tổt đối với tập dữ liệu lớn, nhiều chiều như
205

×