Để tiến hành phân cụm, trước hết ta cần xây dựng chủđềNn. Dữ liệu toàn thể sau khi được tiền xử lý, được sử dụng như file đầu vào cho JGibbsLDA, đầu ra cho ta mô hình chủ đề Nn bao gồm nhiều tập các từ thể hiện chủ đề Nn, mỗi tập tương ứng với một chủđềNn.
Sau đó, để phân cụm các trang web mới, ta biểu diễn mỗi trang web dưới dạng vector k chiều với k là số chủ đề Nn đã được tạo ra. Bằng việc so sánh các từ trong trang web với những từ trong mỗi chủ đề Nn, ta có thể xây dựng nên vector biểu diễn trang web như trên. Chú ý rằng những từ trong chủ đề Nn đã được tiền xử lý, do đó trang web mới trước khi phân cụm cũng cần được tiền xử lý. Để loại bỏ nhiễu, ta có thểđặt một giá trị ngưỡng nào đó để loại bỏ hẳn ảnh hưởng của một chủđề ít liên quan
đến trang web mới. Vector sau đó được chuNn hóa trước khi được dùng trong tính toán.
Sau khi biểu diễn được các tài liệu cần phân cụm dưới dạng vector, ta sử dụng thuật toán K-means để phân cụm chúng. Khóa luận dùng độ đo cosin trong quá trình quyết định ghép các trang web vào một cụm hay không. Độ đo cosin được xác định như sau:
Giả sử có hai tài liệu là và , được biểu diễn bởi:
QQQQR = I, , … , L
QQQQR = I, , … , L
Khi đó khoảng cách (hay độ tương tự) giữa hai tài liệu và là:
, = ∑ / ∗ ∑
/ ∗ ∑ /
23
Thuật toán có ưu điểm là dễ triển khai, không quá phức tạp và ta có thể xác định trước số cụm cần phân, điều này thuận lợi cho việc đánh giá kết quả. Chi tiết về đánh giá kết quả phân cụm được trình bày ở phần sau.