Để tổ chức dữ liệu được gọn nhẹ và hiệu quả hơn, chúng tôi tiến hành phân lớp tập các chuỗi ký tự thu được ở bước trước đó nhằm rút trích được các chuỗi có cùng sự tương đồng. Các chuỗi ký tự được gom nhóm bằng giải thuật gom nhóm phân cấp HAC. Độ đo dị biệt giữa các nhóm là khoảng cách Levenshtein giữa các chuỗi ký tự.
Giải thuật gom nhóm cây phân cấp (HAC)
Chúng tôi sử dụng giải thuật gom nhóm phân cấp HAC vì ưu điểm so với các thuật toán gom nhóm khác là: số lớp cơ sở không cần xác định trước vì vậy ta có thể phân lớp từ thô đến mịn. Cây gom nhóm phân cấp có thể được tạo hoặc từ đưới lên (bắt đầu với mỗi đối tượng là một nhóm và gom nhóm các đối tượng thành một nhóm) hoặc từ trên xuống (bắt đầu với tất cả các đối tượng thuộc cùng một nhóm, sau đó tiến hành chia thành các nhóm nhỏ hơn).
(i) Ban đầu mỗi đối tượng được phân thành một nhóm. Khởi tạo ma trận khoảng cách giữa các nhóm.
(ii) Xác định hai đối tượng có sự tương đồng cao nhất và gom thành một nhóm mới. Cập nhật ma trận khoảng cách giữa nhóm mới tạo và các nhóm cũ.
(iii) Lặp lại cho đến khi chỉ còn một nhóm lớn chứa tất cả các đối tượng.
Giải thuật gom nhóm phân cấp từ dưới lên được trình bày cụ thể trong Bảng 4.1.
Bảng 4.1 Giải thuật gom nhóm phân cấp từ dƣới lên Giải thuật gom nhóm phân cấp từ dƣới lên
Cho tập đối tượng X {x1 }xN Giai đoạn khởi tạo
Bước 1: Tạo phân cấp R0 { ,x ii 1,..., }N , với các lớp Ci { }xi
Bước 2: Đặt P0 P X( ), trong đó:
( )
P X là ma trận kích thước NxN, với P i j( , )d x x( , )i j
d là độ đo khác biệt giữa 2 đối tượng Bước 3: t=0
Giai đoạn phân lớp Bước 1: t=t+1
Bước 2: Chọn cặp C Ci, j sao cho:
( , ) min ( , ), ,i j r s 1,..., ,
d C C d C C r s N rs
Bước 3: Kết nạp C Ci, j vào lớp Cq để tạo phân cấp Rt
1 { , } { }
t t i j q
R R C C C
Bước 4: Cập nhật Pt từ Pt1 bằng 2 bước:
- Thêm dòng mới và cột mới chứa khoảng cách giữa lớp mới tạo với các lớp cũ
Bước 5: Lặp lại bước 1 cho đến khi nào các xi chưa thuộc cùng một lớp
Hình 4.2 Minh họa các bƣớc gom nhóm bằng thuật toán HAC