Chương 3 : Mơ hình hệ thống phân biệt nhập nhằng tên người
3.2. Cơ sở lý thuyết
3.2.1. Mơ hình khơng gian vector
Mơ hình biểu diễn vector [1] là một mơ hình truyền thống cho việc đo độ tương đồng giữa hai văn bản. Theo mơ hình này, mỗi văn bản được biểu diễn bởi một khơng gian nhiều chiều, trong đó mỗi chiều tương ứng với một từ trong văn bản. Một từ với độ quan trọng được xác định bằng một phương pháp đánh chỉ số trong văn bản, và giá trị được chuẩn khóa trong khoảng [0,1].
Ví dụ hình mơ tả hai văn bản d1 và d2 được biểu diễn bởi các vector v1 và v2 gồm ba chiều T1, T2, T3
25
Một số phương pháp đánh trọng số cho từ trong văn bản:
- Phương pháp dựa trên tần số từ khóa
Giá trị của một từ khóa được tính dựa trên số lần xuất hiện của từ khóa (TF –
Term Frequency) trong văn bản. Gọi tfijlà tần số xuất hiện của từ khóa ti trong văn
bản dj khi đó có thể tính trọng số wij theo một trong các công thức dưới đây: wij = tfij (3.1)
wij= 1 + log(tfij) (3.2) wij= tfij (3.3)
- Phương pháp dựa trên nghịch đảo tần số văn bản (IDF – Inverse Document
Frequency )
Gọi dfi là số lượng văn bản có chứa từ khóa ti trong tập m văn bản đang xét, thì giá trị của tần số từ được tính bởi cơng thức:
wij = log (
i
df
m ) = log(m) – log(dfi) (3.4)
Phương pháp này được giải thích dựa trên lập luận rằng một từ xuất hiện trong nhiều văn bản thuộc tập văn bản D thì khơng quan trọng bằng một từ xuất hiện trong ít văn bản thuộc tập D, nghĩa là một từ q thơng dụng sẽ có độ quan trọng kém hơn một từ chỉ xuất hiện trong một văn bản hoặc một tập nhỏ các văn bản.
- Phương pháp TFIDF T2 T3 T1 v1 v2 θ
26
Phương pháp này là tổng hợp của hai phương pháp TF và IDF, giá trị của ma trận trọng số được tính như sau:
(3.5)
3.2.2. Thuật tốn phân cụm HAC
Khái niệm về bài toán phân cụm: Phân cụm dữ liệu là một kỹ thuật trong khai
phá dữ liệu, nhằm đưa ra các cụm mà các phần tử trong cùng một cụm có độ tương đồng cao và các phần tử thuộc các cụm khác nhau lại có độ tương đồng thấp.
Bài tốn phân cụm thường được thực hiện khi chúng ta không biết được nội dung thông tin của các thành phần thuộc cụm để định nghĩa trước các lớp. Vì lý do này mà cơng việc phân cụm thường được truyền thống nhìn nhận dưới con mắt của học máy không giám sát, phương pháp học mà khi ta cho trước một mẫu chỉ gồm các đối tượng cần tìm một cấu trúc đáng quan tâm của dữ liệu và nhóm lại các dữ liệu giống nhau.
.
Hình 13 - Quy trình phân cụm
Một số phương pháp phân cụm cơ bản:
• Phân cụm phân hoạch (phân cụm phẳng):
Phương pháp này chia tập gồm n phần tử thành tập k tập con rời nhau, trong đó k cho trước. Với phương pháp này, ban đầu người ta khởi tạo một phân hoạch ban đầu cho tập dữ liệu theo một phép gán ngẫu nhiên hoặc dựa trên một phương pháp kinh nghiệm (hueristic), sau đó tinh chỉnh lại các cụm cho đến khi thu được một phân hoạch mong muốn thỏa mãn một ràng buộc cho trước . Tại mỗi bước thuật toán phân cụm cố
wij = [1 + log(tfij)] log( ij tf m ) nếu tf ij > 0 0 nếu tfij = 0
27
gắng cải tiến chất lượng phân cụm bằng cách tính độ đo tương tự giữa các đối tượng dữ liệu và sắp xếp các giá trị này, sau đó thuật tốn lựa chọn một giá trị trong dãy sắp xếp sao cho hàm tiêu chuẩn đạt giá trị tối thiểu. Thuật toán tiêu biểu cho phương pháp này là K-Means. Ví dụ về thuật tốn K-means:
Hình 14 - Ví dụ về thuật tốn K-means • Phân cụm dữ liệu dựa trên mật độ:
Phương pháp này dựa vào mật độ của các đối tượng để xác định các cụm dữ liệu và có thể tìm ra các cụm dữ liệu với hình thù bất kỳ. Trong phương pháp phân cụm này, khi một cụm dữ liệu đã được xác định thì nó tiếp tục phát triển thêm các đối tượng mới miễn là các đối tượng lân cận của đối tượng này phải lớn hơn một ngưỡng về mật độ cho trước. Tuy nhiên việc xác định trước các tham số mật độ của thuật tốn là rất khó khăn, trong khi các tham số này có ảnh hưởng quan trọng đến chất lượng phân cụm. Thuật toán tiêu biểu cho phương pháp phân cụm này là DB-Scan. Hình dưới đây là một số hình ảnh ví dụ về phân cụm dựa trên mật độ.
Hình 15 - Hình vẽ minh họa cho phân cụm dữ liệu dựa trên mật độ. • Phân cụm phân cấp
Phương pháp phân cụm cây phân cấp xây dựng một cấu trúc cây phân cấp cho các tài liệu, và có hai phương pháp chính là xây dựng cây theo hướng từ trên xuống (top-down) và xây dựng theo hướng từ dưới lên (bottom-up). Với phương pháp
28
bottom-up, đầu tiên mỗi phần tử được coi như một cụm phân biệt và sau đó tiến hành ghép lần lượt 2 cụm giống nhau nhiều nhất hay khác nhau ít nhất làm một đến khi tất cả các cụm được ghép vào một cụm duy nhất chứa tất cả các phần tử. Phân cụm phân cấp bottom-up được gọi là hierachical agglomerative clustering (HAC).
Hình vẽ minh họa cho thuật tốn HAC:
Hình 16 - Sơ đồ các phân tử trước khi phân cụm
Hình 17 - Sơ đồ các phần tử sau khi phân cụm phân cấp
Còn với phân cụm phân cấp top-down, trạng thái ban đầu là tất cả các đối tượng thuộc vào cùng một cụm. Tại mỗi vịng lặp thành cơng, một cụm được tách thành các cụm nhỏ hơn theo giá trị của một phép đo độ tương tự nào đó cho đến khi mỗi đối tượng là một cụm, hoặc cho đến khi điều kiện dừng thỏa mãn. Cách tiếp cận này sử dụng chiến lược chia để trị trong quá trình phân cụm.
Chi tiết về HAC
Thuật toán HAC cho phân cụm Web[2] Tham số:
29 G là tập hợp các cụm.
S là tập các phân hợp các trang Web cần phân cụm.
k là tham số để dừng thuật tóan khi số lượng cụm mong muốn đã được tạo ra. q là tham số ngưỡng dừng thuật toán khi độ tương tự giữa 2 cụm nhỏ hơn một ngưỡng nào đó.
1. G <- {{d} | d thuộc S } (Khởi tạo G là tập các cụm chỉ gồm một trang Web trong tập S)
2. Nếu |G| < k thì dừng thuật toán ( Đã được số lượng cụm mong muốn ).
3. Tìm 2 cụm Si và Sj thuộc G sao cho (i,j) = arg max(i,j) sim (Si,Sj) ( Tìm 2 cụm có độ tương tự lớn nhất ).
4. Nếu sim(Si,Sj) < q thì dừng thuật tóan ( độ tương tự của 2 cụm nhở hơn ngưỡng cho phép )
5. Loại bỏ Si,Sj khỏi G
6. G = G hợp { Si , Sj } (ghép 2 cụm Si,Sj và đưa vào trong tập G ) 7. Nhảy đến bước 2
Một số độ đo khoảng cách trong thuật toán HAC: - Single link hay Single-linkage:
Với phương pháp này, khoảng cách giữa các cụm được định nghĩa là khoảng cách giữa những đối tượng giống nhau nhất giữa 2 cụm:
D(r,s) = min(d(i,j)) (3.6)
Trong đó: r,s là 2 cụm.
i,j là 2 đối tượng bất kỳ thuộc 2 cụm r,s.
Với 2 cụm, ta tính tất cả các khoảng cách giữa 2 phần tử bất kỳ thuộc 2 cụm đó và khoảng cách nhỏ nhất tìm được chính là khoảng cách giữa 2 cụm đó. Tại mỗi bước, 2 cụm gần nhau nhất sẽ được chọn để ghép lại với nhau.
30
Hình 18 - Phân cụm với Single-linkage - Complete-link:
Với 2 cụm, ta tính tất cả các khoảng cách giữa 2 phần tử bất kỳ thuộc 2 cụm đó và khoảng cách lớn nhất tìm được chính là khoảng cách giữa 2 cụm đó. Tại mỗi bước, 2 cụm gần nhau nhất sẽ được chọn để ghép lại với nhau.
D(r,s) = max(d(i,j)) (3.7)
Trong đó: r,s là 2 cụm.
i,j là 2 đối tượng bất kỳ thuộc 2 cụm r,s.
Hình 19 - Phân cụm với Complete-linkage - Group average agglomerative
Phương pháp phân cụm GAAC tính độ tương tự trung bình SIM-GA của tất cả các cặp văn bản khi ghép tất cả các văn bản của hai cụm vào làm một, trong đó bao gồm cả những cặp thuộc cùng một cụm.
31
Hình 20 - Trung bình các khoảng cách trong GAAC
(3.8) Trong đó Ni là số văn bản của cụm ωi , Nj là số văn bản của cụm ωj, ⎯⎯→d là vector đã được chuẩn hóa của văn bản d.
3.3. Mơ hình hệ thống phân biệt nhập nhằng tên người trên tập văn bản
Đầu vào: Tập các tên người.
Đầu ra: Tập các trang Web tin tức chứa tên người đó được phân cụm, sao cho những
trang Web thuộc cùng một cụm cùng đề cập tới một người, và các trang Web thuộc các cụm khác nhau đề cập tới những người khác nhau.
Phương pháp giải quyết và mơ hình
`
Hình 3.12 –
Bước 1 : Thu thập dữ liệu
Tên người Thu thập dữ liệu
Tập các trang Web
chứa tên người Tiền xử lý Văn bản qua xử lý Trích chọn đặc trưng Ngữ cảnh cho tên người Tính độ tương đồng ngữ cảnh Ma trận tương đồng Phân cụm ngữ cảnh Tập các văn bản phân cụm theo người
32
Với mỗi tên người, chúng tôi thu thập các trang tin tức chứa chúng từ ba Website tin tức: vnexpress.net, dantri.com.vn và vietnamnet.vn thơng qua máy tìm kiếm Google. Truy vấn “tên người”+site:domain được đưa vào máy tìm kiếm Google để lấy ra các kết quả phù hợp cho mỗi domain.
Ví dụ:
Thu thập các bài báo liên quan tới tên “Nguyễn Hữu Đức” trong website vnexpress.net ta sử dụng truy vấn “Nguyễn Hữu Đức” + site:vnexpress.net Với các kết quả có được, chúng tơi lọc lấy những trang văn bản dạng html, bỏ qua các văn bản đính kèm đi .doc hay .xls.
Bước 2: Tiền xử lý
• Loại bỏ thẻ HMTL, lấy nội dung chính của từng trang Web. • Tách câu, tách từ trên dữ liệu thu được.
Bước 3: Trích chọn đặc trưng
• Chọn lấy những câu chứa tên người đó trong văn bản.
• Trích ra đặc trưng mạng xã hội: Xác định các thực thể tên người khác cũng xuất hiện trong văn bản đó.
Bước 4:Tính độ tương đồng ngữ cảnh
Thử nghiệm 2 phương pháp:
Phương pháp 1:
Coi toàn bộ các câu chứa tên người là một văn bản, loại bỏ từ dừng và biểu diễn dưới dạng mơ hình vector. Với một tên người, để thu được các câu chứa tên người đó, ta biến đổi tên bằng cách loại bỏ các từ trong tên từ trái sang phải và tìm các câu chứa các tên đã bị cắt.
Ví dụ với tên “Nguyễn Ngọc Minh” , ta sẽ tìm những câu chứa các từ “Nguyễn Ngọc Minh”, “Ngọc Minh” và “Minh”.
Độ tương đồng ngữ cảnh được tính bằng độ đo cosin giữa 2 vector, đánh trọng số của từ theo phương pháp tf.
Phương pháp 2:
Với mỗi sự xuất hiện của các tên riêng, chúng tôi lấy độ rộng xung quanh cửa sổ là 10 làm ngữ cảnh cho tên, gọi là một đoạn, chỉ lấy những đoạn chứa đầy đủ tên.
Thực hiện so khớp từng đoạn chứa tên người của văn bản này với các đoạn chứa tên người của văn bản kia để tìm ra các từ, cụm từ chung. Hai đoạn của hai văn bản có nhiều cụm từ chung nhất được đại diện cho tên người đó trong mỗi văn bản, và các cụm từ chung trong 2 đoạn đó được tính điểm như sau:
33
Với mỗi từ đơn chung đứng riêng ta tính 1 điểm cho độ tương đồng, nếu có một cụm n từ đơn liên tiếp nhau thì độ tương đồng tính bằng cơng thức
Point( n-word ) = n + log2(n)/2 (3.9)
Trong đó n-word là một cụm gồm n từ liên tiếp.
Trong cả 2 phương pháp ta đều bổ sung thêm đặc trưng mạng xã hội có từ việc xác định các thực thể tên người trong văn bản ở bước trên như sau:
• Nếu 2 văn bản có từ 2 thực thể người chung trở lên thì ta coi chúng là tương đồng hồn tồn.
• Nếu 2 văn bản có 1 thực thể người chung, ở phương pháp 1 ta nhân độ tương đồng với hệ số k = 1.5, ở phương pháp 2 ta coi tên đó cũng là 1 từ chung bình thường và tính điểm tương tự như các từ chung khác.
Đầu ra của bước này chính là ma trận độ tương đồng [wij] trong đó wij là độ tương đồng của văn bản i với văn bản j.
Bước 5: Phân cụm ngữ cảnh
• Sử dụng thuật tốn phân cụm HAC với khoảng cách single-linkage dựa trên ma trận độ tương đồng ngữ cảnh.
• Sử dụng ngưỡng α để cắt cây phân cấp HAC tìm ra được số cụm, tương ứng là số người phân biệt có cùng tên.
3.4. Áp dụng bài toán phân biệt nhập nhằng tên người trong hệ thống tìm kiếm thực thể người kiếm thực thể người
Tập tên người
Module thu thập văn bản và phân biệt nhập nhằng tên
người trên tập văn bản
Tập trang Web ứng với từng
người
Trích xuất các đặc trưng cho mỗi
người
CSDL về người
34 Hệ thống gồm 2 bước chính:
Bước 1: Tập tên người sẽ được cho qua “Module thu thập văn bản và phân biệt
nhập nhằng tên người trên tập văn bản” để thu được một tập trang Web tương ứng với từng người riêng biệt. Bước này đã được trình bày chi tiết ở hệ thống phân biệt nhập nhằng tên người trên tập văn bản ở phần trước.
Bước 2: Trích xuất đặc trưng cho mỗi người.
Trong bước 1, với mỗi tên người và tập các trang Web tương ứng với người đó khóa luận đã trích xuất đặc trưng là tập các thực thể người có liên quan đến người đó và các cụm từ chung đại diện cho người. Các đặc trưng này sẽ được lưu vào trong cơ sở dữ liệu để phục vụ cho quá trình tìm kiếm sau này.
Tóm tắt chương ba
Trong chương ba, khố luận đã giới thiệu các đặc trưng của miền dữ liệu báo điện tử để từ đó đề xuất ra mơ hình giải quyết bài toán nhập nhằng tên người trên tập văn bản và ứng dụng bài tốn đó trong việc đề xuất mơ hình hệ thống tìm kiếm thực thể người. Trong chương tiếp theo, khóa luận tiến hành thực nghiệm trên mơ hình đã xây dựng và đánh giá những kết quả đạt được của mơ hình đề xuất.
35
Chương 4. Thực nghiệm và đánh giá
Dựa vào cơ sở lý thuyết và mơ hình đề xuất ở chương 3, khóa luận tiến thành thực nghiệm việc phân biệt nhập nhằng tên người trên miền dữ liệu báo điện tử.
4.1 . Môi trường và các công cụ sử dụng thực nghiệm. Cấu hình phần cứng Cấu hình phần cứng
Thành phần Chỉ số
CPU 2.2 GHz Core Duo Intel
RAM 2 GB
OS WindowsXP Service Pack 2
Bộ nhớ ngoài 160GB Các phần mềm sử dụng STT Tên phần mềm Tác giả Nguồn 1 Eclipse-SDK- 3.4.1-win32 http://www.eclipse.org/downl oads
2 vnTokenzier Lê Hồng Phương, Nguyễn Thị Minh Huyền
http://www.loria.fr/~lehong/to ols/vnTokenizer.php
Ngồi ra các cơng cụ trên, chúng tôi tiến hành cài đặt các module xử lý dựa trên ngôn ngữ Java, bao gồm các package chính như sau:
Thuật tốn phân cụm HAC:
Chỉnh sửa và tùy biến một số chức năng trong chương trình của tác giả Roberto Perdisci [19] (chương trình thực hiện thuật toán HAC với các khoảng cách single-link
36
và complete-link cho phần mềm Weka3). Chương trình ban đầu của Perdisi có đầu vào là một tập văn bản biểu diễn dưới dạng vector, sau khi chỉnh sửa chương trình thao tác trên ma trận tương đồng ngữ cảnh. Chương trình gồm các package:
Cluster.alogrithm : Cài đặt thuật tốn HAC cho các khoảng cách “single-link”
và “complete-link”
Cluster.data: Bao gồm các cấu trúc dữ liệu tạo thuận lợi cho việc cài đặt thuật
toán HAC (DistanceMatrix.java, Hcluster.java, IndexPair.java, Dendrogram.java, ClusterIndexPair.java )
4.2. Xây dựng tập dữ liệu
Do chưa có một bộ dữ liệu test chuẩn cho bài tốn này, nên chúng tôi đã đưa ra