Tính độ tương đồng dựa trên “ký tự”
Rất khó tính độ tương đồng ngữ nghĩa
Những văn bản cùng nội dung nhưng được diễn đạt
khác nhau không phải trùng lặp.
Sử dụng ngưỡng θ để kết luận “trùng lặp”.
Ví dụ, Coi hai tài liệu là trùng lặp gần nếu độ tương
đồng > 80%
22 trang |
Chia sẻ: Mr Hưng | Lượt xem: 918 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Tìm kiếm và trình diễn thông tin - Phát hiện trùng lặp gần, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
(IT4853) Tìm kiếm và trình diễn thông tin
Phát hiện trùng lặp gần
Giảng viên
TS. Nguyễn Bá Ngọc
Địa chỉ: Viện CNTT & TT/BM HTTT/B1-603
Email: ngocnb@soict.hust.edu.vn
Website:
2
3Phát hiện trùng lặp
Trùng lặp tuyệt đối
Dễ dàng loại bỏ, v.d., bằng tổng đại diện.
Trùng lặp gần
Khó phát hiện
Người dùng không mong muốn những kết quả
trùng lặp.
Có thể coi một tài liệu vốn phù hợp là không phù hợp
nếu lặp lại ngay trong danh sách kết quả.
Cần loại bỏ những tài liệu trùng lặp!
4Trùng lặp gần
5Phát hiện trùng lặp gần
Tính độ tương đồng dựa trên “ký tự”
Rất khó tính độ tương đồng ngữ nghĩa
Những văn bản cùng nội dung nhưng được diễn đạt
khác nhau không phải trùng lặp.
Sử dụng ngưỡng θ để kết luận “trùng lặp”.
Ví dụ, Coi hai tài liệu là trùng lặp gần nếu độ tương
đồng > 80%.
6Mô hình tập shingles
Shingle là một n-gram trên từ (bộ n-từ).
Ví dụ, với n = 3, “a rose is a rose is a rose” có
mô hình tập shingles như sau:
{ a-rose-is, rose-is-a, is-a-rose }
Tính tổng đại diện cho các shingles
Tổng đại diện là các giá trị số trong khoảng 1..2m.
Ký hiệu sk là tổng đại diện của shingle k.
Xác định độ tương đồng của hai tài liệu bằng hệ số Jaccard
7Hệ số Jaccard
Cho hai tập đặc trưng A và B
Vớ𝑖 𝐴 ≠ ∅ ℎ𝑜ặ𝑐 𝐵 ≠ ∅,
𝐽𝑎𝑐𝑐𝑎𝑟𝑑 𝐴, 𝐵 =
𝐴 ∩ 𝐵
𝐴 ∪ 𝐵
Jaccard(A,A) = 1
Jaccard(A,B) = 0 nếu A ∩ B = 0
Miền giá trị là khoảng [0, 1]
8Ví dụ tính hệ số Jaccard
Cho ba tài liệu:
d1: “Jack London traveled to Oakland”
d2: “Jack London traveled to the city of Oakland”
d3: “Jack traveled from Oakland to London”
Hãy tính hệ số Jaccard J(d1, d2) và J(d1, d3) sử dụng
các bộ 2-từ (shingle với kích thước bằng 2)?
9Ví dụ tính hệ số Jaccard
Cho ba tài liệu:
d1: “Jack London traveled to Oakland”
d2: “Jack London traveled to the city of Oakland”
d3: “Jack traveled from Oakland to London”
Hãy tính hệ số Jaccard J(d1, d2) và J(d1, d3) sử dụng
các bộ 2-từ (shingle với kích thước bằng 2)?
J(d1, d2) = 3/8 = 0.375; J(d1, d3) = 0
Hệ số Jaccard rất nhạy cảm với trật tự từ
10
Biểu diễn khung của văn bản
Biểu diễn khung (sketch) – là tập con kích thước
cố định của tập shingles với, v.d., n = 200.
Được xác định dựa trên một tập hợp các thao
tác trộn π1 . . . π200.
Sketch của d được định nghĩa là:
11
Phép trộn và giá trị cực tiểu
tài liệu 1: {sk} tài liệu 2: {sk}
Sử dụng mins∈d1 π(s) = mins∈d2 π(s) như phép thử tính trùng lặp
của d1 và d2 .
Trong trường hợp này phép trộn π khẳng định: d1 ≈ d2
12
Hệ số Jaccard trên biểu diễn khung
Sketches
Mỗi tài liệu là một vec-tơ với n = 200 số.
Dễ xử lý hơn so với tập shingles
Chúng ta tính hệ số Jaccard bằng cách nào?
13
Hệ số Jaccard trên biểu diễn khung
Đặt U là hợp các shingles của d1 và d2, còn I là giao
Có |U|! phép trộn trên U
Với s′ ∈ I , có bao nhiêu phép trộn π để
argmins∈d1 π(s) = s′ = argmins∈d2 π(s)?
Trả lời: (|U| − 1)!
Có (|U| − 1)! phép trộn cho mỗi s trong I
⇒ |I |(|U| − 1)! phép trộn thỏa mãn
argmins∈d1 π(s) = argmins∈d2 π(s)
Như vậy, tỉ lệ phép trộn thỏa mãn
mins∈d1 π(s) = mins∈d2 π(s) là:
14
Ước lượng hệ số Jaccard
Hệ số Jaccard bằng tỉ lệ phép trộn thành công.
Phép trộn π là thành công nếu
mins ∈d1 π(s) = mins ∈d2 π(s)
Ước lượng xác suất trộn thành công
Sử dụng n phép chộn, v.d., n = 200
Đếm số lượng k phép trộn thành công
k/n được coi như J(d1, d2).
15
Cài đặt
Sử dụng hàm băm như phép trộn:
hi : {1..2
m} → {1..2m}
Với n = 200, cần n hàm băm
Với mỗi hi cần xác định các giá trị cực tiểu
Đếm số phép trộn thành công k
Giá trị gần đúng của độ tương đồng là k/n.
16
Ví dụ
Kết quả trộn Cực tiểu
17
Bài tập
Cho mô hình tập shingle của văn bản
Hãy ước lượng hệ số Jaccard:
J(d1, d2), J(d1, d3), J(d2, d3)
18
Đáp án
Các biểu diễn khung
h(x) = 5x + 5 mod 4
g(x) = (3x + 1) mod 4
19
Đáp án
20
Tổng kết
Đầu vào: N tài liệu
Lựa chọn kích thước bộ n-từ, ví dụ, n = 5
Sử dụng 200 phép trộn ngẫu nhiên (200 hàm băm)
Tính N biểu diễn khung
Tính
𝑁 𝑁−1
2
độ phù hợp theo cặp
Kết luận trùng lăp gần với độ tương đồng > θ
Bỏ qua các trùng lặp khi đánh chỉ mục
21
Phương pháp hiệu quả phát hiện
trùng lặp gần
Cần phải ước lượng O(N2) hệ số với N là số trang web.
Các giải pháp cải thiện hiệu năng:
Giải pháp 1: hàm băm cục bộ (LSH)
Andoni, Alexandr, Mayur Datar, Nicole Immorlica, Piotr Indyk, and
Vahab Mirrokni. 2006. Locality-sensitive hashing using stable
distributions. In Nearest Neighbor Methods in Learning and
Vision: Theory and Practice. MIT Press. 314, 519, 522, 524,527
Giải pháp khác: sắp xếp (Henzinger 2006)
Henzinger, Monika R., Allan Heydon, Michael Mitzenmacher, and
Marc Najork. 2000. On near-uniform URL sampling. In Proc.
WWW, pp. 295–308. North-Holland. DOI:
dx.doi.org/10.1016/S1389-1286(00)00055-4. 442, 524, 527, 528
22
Các file đính kèm theo tài liệu này:
- bai_17_phat_hien_trung_lap_gan_8824.pdf