PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁOPhạm Thị Hồng Khóa QH-2009-I/CQ, ngành hệ thống thông tin Tóm tắt Khóa luận tốt nghiệp: Hiện nay sự phát triển nhanh chóng của báo Điện
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Thị Hồng
PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁO
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI – 2013
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Thị Hồng
PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁO
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS Phan Xuân Hiếu
Cán bộ đồng hướng dẫn: ThS Trần Mai Vũ
HÀ NỘI – 2013
Trang 3
PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁO
Phạm Thị Hồng
Khóa QH-2009-I/CQ, ngành hệ thống thông tin
Tóm tắt Khóa luận tốt nghiệp:
Hiện nay sự phát triển nhanh chóng của báo Điện tử đã dẫn đến một loạt các bài báo có nội dung giống nhau xuất hiện ở nhiều trang web Do đó bài toán phát hiện sự trùng lặp của các bài báo là bài toán thời sự, có ý nghĩa, đặc biệt trong các hệ thống tìm kiếm
Bản sao của các bài báo trên Web là khá nhiều Các bài báo là bản sao của nhau
có sự khác nhau trong phần quảng cáo, font chữ, cỡ chữ, nhãn thời gian… sự khác biệt như vậy là không thích hợp đối với các trang tìm kiếm Trên cơ sở phân tích và tìm hiểu một số hướng tiếp cận bài toán về so sánh hai tài liệu, khóa luận áp dụng phương pháp lấy dấu vân của tài liệu và so sánh dấu vân để phát hiện sự giống nhau Dữ liệu được thu thập từ web được lưu trữ trong các file text và tiến hành quá trình xử lý dữ liệu, từ đó làm dữ liệu đầu vào cho mô hình học dữ liệu để tìm ra dấu vân đặc trưng cho từng bài báo Khóa luận đưa ra mô hình thử nghiệm dựa trên mô hình lấy dấu vân simhash, tìm ra được tập đặc trưng và trọng số của chúng của mỗi bài báo Kết quả bước đầu cho thấy, mô hình là khả quan và có thể tiếp tục thực nghiệm các pha xử lý tiếp theo
Từ khóa: Trùnglặp, đạo văn, sao chép, phát hiện, Simhash, Rabin, dấu vân, chữ
ký
Trang 4LỜI CAM ĐOAN
Em xin cam đoan đây là phần nghiên cứu và thực hiện khóa luận của riêng em, dưới sự hướng dẫn của PTS.TS Hà Quang Thụy và TS Phan Xuân Hiếu cùng ThS Trần Mai Vũ, không sao chép từ các công trình nghiên cứu khác Em đã trích dẫn đầy
đủ các tài liệu tham khảo, các công trình nghiên cứu liên quan ở trong nước và quốc tế Nếu sai em xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của ĐHQH Hà Nội và Nhà trường
Hà Nội, ngày 19 tháng 5 năm 2013
Sinh viên
Phạm Thị Hồng
Trang 5LỜI CẢM ƠN
Trước tiên, em muốn gửi lời cảm ơn sâu sắc nhất đến các thầy giáo PGS.TS Hà
Quang Thụy và TS.Phan Xuân Hiếu cùng ThS.Trần Mai Vũ những người đã tận tình
hướng dẫn em suốt quá trình nghiên cứu khoa học và thực hiện khóa luận tốt nghiệp
Em xin chân thành cảm ơn các thầy, cô giáo đã giảng dạy em trong bốn năm học
qua, những kiến thức mà em nhận được trên giảng đường đại học sẽ là hành trang giúp
em vững bước trong tương lai
Em cũng xin gửi lời cảm ơn tới các anh chị, các bạn sinh viên tại phòng thí
nghiệm KT-Sislab đã cho em những lời khuyên bổ ích về chuyên môn trong quá trình
nghiên cứu
Em xin gửi lời cảm ơn tới các bạn trong lớp K54CD đã ủng hộ khuyến khích em
trong suốt quá trình học tập tại trường
Cuối cùng, em muốn được gửi lời cảm ơn sâu sắcđến tất cả bạn bè, và đặc biệt là
ba mẹ và các chị - những người thân yêu luôn kịp thời động viện và giúp đỡ em vượt
qua những khó khăn trong học tập cũng như trong cuộc sống
Hà Nội, ngày 19 tháng 05 năm 2013
Sinh viên
Phạm Thị Hồng
Trang 6MỤC LỤC
Tóm tắt Khóa luận tốt nghiệp iii
LỜI CAM ĐOAN iv
DANH SÁCH CÁC BẢNG viii
DANH SÁCH CÁC HÌNH VẼ ix
DANH SÁCH CÁC TỪ VIẾT TẮT x
MỞ ĐẦU 1
Chương 1 Sự phát hiện các bài báo là bản sao hoặc gần như bản sao của nhau 3
1.1 Sự phát triển của các trang web hiện nay 3
1.2 Phát hiện sự trùng lặp 4
1.2.1 Động lực và mục đích 4
1.2.2 Các văn bản trùng lặp và gần trùng lặp nhau 5
1.2.3 Phát biểu bài toán phát hiện sự trùng lặp nội dung của các bài báo 5
Chương 2 Một số hướng tiếp cận bài toán, các khái niệm và công việc liên quan 7
2.1 Shingling 7
2.2 I-Match 8
2.3 Phép chiếu ngẫu nhiên 10
2.4 SpotSigs 10
2.5 Sự tương đồng (resemblance) giữa hai tài liệu .11
2.6 Ước tính sự tương đồng (resemblance) 14
2.7 Lấy dấu vân các shingle 17
2.7.1 Lấy dấu vân của shingle bằng dấu vân Simhash 17
2.8 Nén dấu vân 26
Chương 3 Mô hình thực nghiệm 28
3.1 Loại bỏ từ dừng 29
3.2 Quá trình shingling tài liệu 29
3.3 Lấy dấu vân tài liệu bằng simhash 30
3.4 So sánh các dấu vân 30
Chương 4 Thực nghiệm và đánh giá kết quả 31
4.1 Môi trường thực nghiệm 31
4.1.1 Cấu hình phần cứng 31
4.1.2 Công cụ phần mềm 31
4.2 Dữ liệu thực nghiệm 32
Trang 74.3 Thực nghiệm 33
4.4 Kết quả thực nghiệm 35
4.5 Nhận xét 36
Kết Luận 37
Tài liệu tham khảo 38
Trang 8DANH SÁCH CÁC BẢNG
Bảng 1: Bảng các từ dừng 29Bảng 2: Cấu hình phần cứng 31Bảng 3: Công cụ phần mềm 31
Trang 9DANH SÁCH CÁC HÌNH VẼ
Hình 1:Ảnh chụp từ 2 bài báo của 2 trang web khác nhau 3
Hình 2: Độ tương đồng của hai tài liệu D1 và D2 13
Hình 3:Minh họa lấy dấu vân bằng simhash [5] 18
Hình 4: Độ chính xác và độ hồi tưởng với giá trị khác nhau của k [5] 21
Hình 5: Sự phân bố của các 1-bit hàng đầu [5] 22
Hình 6: Bucketization của các dấu vân [5] 23
Hình 7: File dữ liệu thực nghiệm 32
Hình 8: Nội dung của một bài báo 32
Hình 9: Nội dung một bài báo đã được loại bỏ các thẻ html 33
Hình 10: Kết quả sử dụng JvnTextPro cho một bài báo 34
Hình 11: Kết quả 4-shingling cho một bài báo 34
Hình 12: Kết quả lấy dấu vân của 2000 bài báo 35
Hình 13: Kết quả thực nghiệm 36
Trang 10DANH SÁCH CÁC TỪ VIẾT TẮT
Trang 11MỞ ĐẦU
Sự phát triển mạnh mẽ của Internet và các trang báo mạng ngày nay dẫn đến sự bùng nổ về thông tin, và trình thu thập thông tin trên Web là một phần không thể tách rời của cơ sở hạ tầng các công cụ tìm kiếm Đối với trình thu thập thông tin Web, vấn
đề lọc các trang web có nội dung gần như trùng lặp trong thu thập dữ liệu nói chung vẫn chưa được chú ý
Các bài báo là bản sao chính xác của nhau thì dễ dàng được phát hiện Một vấn
đề khó khăn hơn là việc phải xác định các bài báo mà chúng chỉ gần giống nhau (không phải giống nhau hoàn toàn) Hai bài báo như vậy là giống nhau về nội dung, nhưng khác nhau ở bố cục và câu từ đã bị đổi
Loại bỏ các bản sao tiết kiệm băng thông mạng, giảm tri phí lưu trữ và cải thiện chất lượng tìm kiếm, mang lại lợi ích cho người dùng web khi họ muốn tìm kiếm Nó cũng giúp giảm tải trên máy chủ từ xa đang phục vụ các trang web như vậy
Hệ thống phát hiện các bài báo có nội dung gần trùng lặp phải đối mặt với một số thách thức Đầu tiên là vấn đề về quy mô: Công cụ tìm kiếm trên hàng tỷ trang web Thứ hai, công cụ tìm kiếm thông tin có thể phải thu thập hàng tỷ trang web mỗi ngày
Vì vậy việc đánh dấu và loại bỏ một trang mới thu thập là bản sao của một trang web khác nên được thực hiện nhanh để người sử dụng thấy thoải mái nhất khi tìm kiếm, đồng thời phát triển trình thu thập, cập nhật thông tin và hệ thống đánh giá trang tin tức web
Bài toán được đặt ra là phát hiện các trang báo điện tử có nội dung giống/gần giống với nhau để phục vụ các công cụ tìm kiếm tin tức gom nhóm được các bài báo cùng nội dung, sau đó loại bỏ nó trong sự tìm kiếm của người dùng
Để giải quyết vấn đề, chúng tôi đã tìm hiểu nhiều phương pháp tiếp cận cho bài toán “phát hiện sự trùng lặp nội dung của các bài báo”, chủ yếu dựa trên các phương
pháp giải quyết bài toán phát hiện sự trùng lặp của các tài liệu, mà Broder và cộng sự
đã trình bày một kỹ thuật shingling tài liệu [4] để giải quyết vấn đề này
Chúng tôi thử nghiệm phát hiện trên các báo điện tử viết bằng Tiếng Việt dựa trên các kỹ thuật shingling của Broder và lấy dấu vân simhash
Nội dung của khóa luận được bố cục gồm 4 chương:
Chương 1: Giới thiệu khái quát về bài toán phát hiện sự trùng lặp nội dung của
các bài báo
Trang 12Chương 2: Giới thiệu các hướng tiếp cận giải quyết bài toán phát hiện sự trùng
lặp nội dung của các bài báo Chương này tập trung vào việc giới thiệu các phương pháp mà nhiều tác giả đề xuất Đây là cơ sở phương pháp luận quan trọng để khóa luận đưa ra mô hình thực nghiệm một phần mô hình hệ thống được các tác giả xây dựng
Chương 3: Khóa luận xây dựng mô hình thực nghiệm, xác định sự trùng lặp dựa
vào nghiên cứu của Border và cộng sự Chúng tôi sẽ tiến hành xây dựng mô hình thực nghiệm dựa trên phương pháp lấy dấu vân Simhash – được hướng dẫn bởi các tác giả
Chương 4: Tiến hành thực nghiệm một phần của mô hình Đánh giá kết quả Phần kết luận và định hướng phát triển khóa luận: Tóm tắt những nội dung
chính đạt được của khóa luận đồng thời chỉ ra những điểm cần khắc phục và đưa ra những định hướng nghiên cứu trong thời gian sắp tới
Trang 13Chương 1 Sự phát hiện các bài báo là bản sao hoặc gần như bản sao
của nhau
1.1 Sự phát triển của các trang web hiện nay
Sự phát triển mạnh mẽ của Internet và các mạng tin tức ngày nay dẫn đến sự bùng nổ về thông tin, kèm theo đó là sự tràn ngập lượng lớn các trang web tin tức trong kết quả tìm kiếm làm chúng vô ích cho người sử dụng do đó tạo ra một vấn đề nghiêm trọng đối với các công cụ tìm kiếm Internet Kết quả của sự phát triển không ngừng của Web và thương mại điện tử đã dẫn đến sự gia tăng nhu cầu của những trang web mới và các ứng dụng Web Trang web nhân bản mà bao gồm cấu trúc giống hệt nhau nhưng dữ liệu khác nhau có thể được coi là bắt chước Việc xác định các cặp tương tự hoặc gần như trùng lặp trong một bộ sưu tập lớn là một vấn đề quan trọng với các ứng dụng rộng rãi Vấn đề đã được tính toán cho các loại dữ liệu khác nhau (ví dụ như tài liệu văn bản, các điểm không gian và các bản ghi liên quan) trong các thiết lập khác nhau Một cụ thể hóa hiện thời khác của vấn đề là việc xác định hiệu quả các trang web gần như trùng lặp Điều này chắc chắn là thách thức đối với các trang web chứa các dữ liệu đồ sộ và số chiều lớn
Hình 1:Ảnh chụp từ 2 bài báo của 2 trang web khác nhau
Hình trên minh họa sự trùng lặp nội dung của cùng 1 bài báo trên hai trang web khác nhau
Trang 14tử Trong cổng thông tin, tin tức từ các nguồn khác nhau được biểu thị tới người dùng trong một cách đã được phân loại Trong quá trình này việc tạo ra một phần hoặc hoàn toàn các nội dung của bản tin giống hệt nhau là không thể tránh khỏi, bởi vì các trang báo điện tử thường xuất bản tin tức lấy từ các hãng thông tấn rồi thay đổi chút ít hoặc giữ nguyên nó như vậy
Để sử dụng các thông tin có sẵn trên các trang web rất nhiều công nghệ đã xuất hiện, và hệ thống tìm kiếm thông tin là một trong số đó Nhưng sự tồn tại của các bài báo điện tử trùng lặp làm giảm cả tính hữu dụng và sự hiệu quả của các công cụ tìm kiếm Bởi vì các kết quả trùng lặp cho các truy vấn của người sử dụng sẽ làm giảm số lượng các kết quả hợp lệ của các truy vấn và điều này cũng làm giảm hiệu quả của hệ thống Xử lý các kết quả trùng lặp rất tốn thời gian và cũng không thêm bất kỳ giá trị nào về thông tin cung cấp cho người dùng Vì vậy, các bài báo là bản sao nội dung của các bài báo khác làm giảm hiệu quả của một công cụ tìm kiếm, không đánh giá chính xác chất lượng cung cấp tin của các trang báo điện tử Trong khi đó, người sử dụng muốn có được thông tin gốc, còn người cung cấp tin muốn khẳng định chất lượng cung cấp tin của mình Vì vậy, việc phát hiện các bài báo có cùng nội dung là thực sự cần thiết cho trình thu thập thông tin, đảm bảo thông tin cung cấp tới người dùng đúng
và đủ
Việc phát hiện sự trùng lặp của các tài liệu đã trở thành một lĩnh vực nghiên cứu Trong khóa luận này, chúng tôi tập trung tìm cách nhận dạng một bài báo điện tử có nội dung giống hoặc gần giống với các bài báo điện tử đã có sẵn trong kho lưu trữ hay không Mục đích chính là để phát hiện và gom nhóm các bài báo dư thừa, tăng chất lượng tìm kiếm và quá trình lưu trữ của công cụ tìm kiếm được hiệu quả Ví dụ, Google không hiển thị các kết quả tìm kiếm bản sao của một truy vấn Google News một lần nữa loại bỏ tin tức trùng lặp ở bước đầu tiên Phát hiện các bài báo có nội dung trùng lặp một cách nhanh chóng có tầm quan trọng rất lớn cho người sử dụng, bởi vì người dùng không muốn chờ đợi trong quá trình này Họ muốn tiếp cận thông tin nhanh nhất có thể và nếu phát hiện trùng lặp bắt đầu làm chậm truy cập vào các thông tin, sau đó họ có thể chọn để lấy thông tin trùng lặp Cổng thông tin cung cấp loại bỏ nhanh các bản sao bằng cách phát hiện thông tin trùng lặp trong giai đoạn lập chỉ mục
Trang 15và thực hiện trùng lặp loại bỏ trong quá trình tìm kiếm thông tin Một tùy chọn khác để truy cập vào các văn bản tin tức là sử dụng công cụ siêu tìm kiếm tin tức [LIU2007] Các công cụ tìm kiếm đó không tạo chỉ mục tài liệu như trong trường hợp của cỗ máy tìm kiếm dựa trên crawler, thay vào đó chúng sử dụng một số công cụ tìm kiếm khác hoặc các cơ sở dữ liệu của các trang tin tức Kể từ khi các văn bản tin tức được đưa ra tại thời điểm người sử dụng yêu cầu, thì việc loại bỏ trùng lặp nên được thực hiện ở giai đoạn này Loại bỏ các văn bản web gần như trùng lặp làm tăng sự đa dạng của kết quả tìm kiếm vì mỗi nhóm trùng lặp chỉ được hiển thị một văn bản, do đó mà hiển thị được nhiều bài báo cho sự tìm kiếm của người dùng hơn
Các tài liệu là bản sao chính xác của nhau (do phản chiếu và đạo văn) là dễ dàng
để xác định bằng các kỹ thuật kiểm tra tiêu chuẩn tổng hợp Một vấn đề khó khăn hơn
là việc xác định các tài liệu gần như trùng lặp
1.2.2 Các văn bản trùng lặp và gần trùng lặp nhau
Khi hai tài liệu có nội dung giống hệt nhau thì chúng được coi là bản sao của
nhau, hay còn gọi là các văn bản trùng lặp Các tập tin giống nhau nhiều mà không
được xác định là bản sao chính xác của nhau, nhưng chúng lại giống nhau đến một
mức độ đáng chú ý thì được gọi là gần trùng lặp Sau đây là một số ví dụ về các tài liệu gần trùng lặp:
- Các văn bản có vài từ khác nhau - hình thức phổ biến nhất của gần trùng
lặp
- Các văn bản có cùng nội dung nhưng định dạng khác nhau - ví dụ, các
tài liệu có thể chứa cùng một văn bản, nhưng phông chữ không giống nhau (đậm hoặc
1.2.3 Phát biểu bài toán phát hiện sự trùng lặp nội dung của các bài báo
Bài toán phát hiện sự trùng lặp nội dung của các bài báo thực chất là bài toán tìm
sự tương đồng giữa hai tài liệu
Các bài báo trên Web sẽ được thu thập và lưu trữ, sau đó được xử lý loại bỏ các thẻ định dạng, các quảng cáo, chỉ lấy nội dung … và sau đó được coi như một văn bản
Trang 16text Từ đó ta áp dụng các phương pháp như đối với các tài liệu dạng văn bản Kể từ
đây sẽ coi nội dung của một bài báo điện tử như là một tài liệu D (khi đã được loại bỏ
nhiễu ở trang web)
Phát biểu bài toán:
Input:
- Tập các bài báo được thu thập trên web
- Bài báo mới được thu thập, cần kiểm tra sự trùng lặp
Output:
- Các bài báo giống hoặc gần giống với bài báo được đưa vào kiểm tra
Tóm tắt chương 1
Trong chương này, khóa luận đã giới thiệu khái quát một số nội dung liên quan
và trình bày về động cơ và mục đích của bài toán phát hiện sự trùng lặp của các bài báo Trong chương tiếp theo, khóa luận sẽ tập trung làm rõ một số hướng tiếp cận về bài toán phát hiện sự trùng lặp giữa các bài báo
Trang 17Chương 2 Một số hướng tiếp cận bài toán, các khái niệm và công việc
liên quan
Vì đã xử lý loại bỏ các định dạng không cần thiết, và coi mỗi bài báo được thu thập về như một tài liệu dạng văn bản nên chúng tôi đã tìm hiểu một số phương pháp tiếp cận của bài toán “Phát hiện sự trùng lặp của các tài liệu” như các phần dưới đây Gọi là các phương pháp NDD (Near Duplicate Detection)
2.1 Shingling
Là một trong những phương pháp NDD sớm nhất, một kỹ thuật để ước lượng độ tương tự giữa các cặp tài liệu, được trình bày vào năm 1997 bởi Broder và cộng sự Thuật toán Shingling không dựa trên bất kỳ tri thức ngôn ngữ nào khác ngoài khả năng
tokenize các tài liệu vào một chuỗi các token ( thẻ) Trong shingling, tất cả các chuỗi
con từ của các từ liền kề sẽ được trích xuất Qua đó, mỗi tài liệu D lấy được một tập
SD Đó là việc mã hóa một tài liệu thành một tập hợp của các shingle (có thể là các gram) độc nhất (tức là các chuỗi con kề nhau của k tokens) Đễ dễ xử lý hơn nữa, mỗi
k-k-gram lại được mã hóa bởi một dấu vân Rabin 64-bit và được gọi là một shingle Sự
giống nhau giữa hai tài liệu được đo bằng cách sử dụng hệ số Jaccard giữa các vectơ
shingle Các tài liệu có độ tương đồng cao được coi là gần như trùng lặp
Xem xét trình tự của các từ trong một tài liệu Một shingle là một giá trị băm của một k-gram (k –gram là một dãy gồm k từ kế tiếp nhau) Tập hợp các shingle cấu thành tập các đặc trưng của một tài liệu Lựa chọn giá trị cho k là rất quan trọng, nó ảnh hưởng tới kích thước của shingle
- Kích thước shingle dài: Những thay đổi ngẫu nhiên nhỏ của tài liệu gây ảnh hưởng lớn
- Kích thước shingle ngắn: Các tài liệu không liên quan có thể có quá nhiều sự tương đồng
Kích thước tốt là từ 3-10
Giá trị băm của k-gram có thể được tính rất hiệu quả bằng cách sử dụng kỹ thuật dấu vân của Rabin [6] Vì lý do được giải thích trong [7], đặc biệt thuận lợi để sử dụng dấu vân Rabin, có một phần mềm rất tốt đã thực hiện [8]
Có thể chọn cách tạo các shingles khác nhau Manber [9] đã tạo các shingle trên
ký tự Hệ thống COPS được Brin và cộng sự dựng [10] lại dùng các câu để tạo ra các shingle Broder và cộng sự [11, 12] đã tạo các shingle trên các từ (word) Tổng số các shingle của mỗi tài liệu là lớn Do vậy một chữ ký có kích thước nhỏ tính toán trên tập
Trang 18các shingle nên được tạo ra để giảm không gian lưu trữ Tính toán khoảng cách q –gram với khoảng cách edit [13]
Một vấn đề khi áp dụng trực tiếp độ tương tự Jaccard là khả năng thay đổi kích thước khác nhau của các tập shingle, chúng tăng tuyến tính theo số lượng của các
token trong tài liệu
Bên cạnh việc lấy dấu vân cho các shingle, thành phần thiết yếu được Border và
cộng sự giới thiệu là hoán vị min-wise independent để giải quyết vấn đề trên, bằng cách ánh xạ mỗi tập các shingle vào một vector m chiều, với m thường nhỏ hơn số lượng ban đầu của các token trong tài liệu Trong quá trình này, các hàm băm m khác nhau h 1 , … , h m được tạo và áp dụng cho tất cả các shingle Cho tập các shingle của tài liệu D là S(D) = { s 1 , s 2 , … , s n } Thành phần thứ j trong vector cuối cùng được xác
định như giá trị băm nhỏ nhất của h j
Mỗi vector m chiều có thể được ánh xạ tiếp vào một tập nhỏ hơn của các siêu shingles (super shingles) bằng cách: Đầu tiên chia các phần tử vào trong m’ tập con rời
nhau có kích thước bằng nhau và sau đó lấy dấu vân mỗi tập con của các phần tử bằng cách sử dụng một hàm băm khác Quá trình này một cách hiệu quả làm giảm hiệu quả
số chiều của mỗi vector từ m về m’, và do đó việc lưu trữ tốt hơn và tốc độ cũng nhanh
hơn
Chú ý rằng trong phương thức shingling chuẩn, việc xây dựng các vector chữ ký của tài liệu thì hoàn toàn thuộc về cú pháp – tất cả k-grams trong tài liệu được đối xử
như nhau
Ngoài ra, Hoad và Zobe đã thử nghiệm với chiến lược lựa chọn k-grams khác khi
lập mã các shingles, chẳng hạn dựa trên các điểm TF-IDF của họ Những từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bản này, và xuất hiện ít trong các văn bản khác Việc này giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ khoá của văn bản đó)
2.2 I-Match
Không giống như Shingling là tạo một chuỗi các giá trị băm dựa trên một mẫu
ngẫu nhiên của k-grams của tài liệu gốc, I-Match ánh xạ mỗi tài liệu riêng vào trong
một giá trị băm shingle sử dụng giải thuật băm SHA1 Hai tài liệu được coi là gần như bản sao nếu và chỉ nếu các giá trị băm tương ứng của chúng là đồng nhất
Quá trình tạo chữ ký của I-Match coi một tài liệu như một túi của các từ Ngoài
ra, chỉ những thuật ngữ quan trọng mới được giữ ở trong túi
Trang 19Đầu tiên định nghĩa một từ điển I-Match L dựa trên sự thống kê bộ thuật ngữ, sử
dụng một bộ lớn các tài liệu Một lựa chọn thường được sử dụng là tài liệu nghịch đảo
tần số (IDF), với L chỉ bao gồm các thuật ngữ có giá trị IDF tầm trung Đối với mỗi tài liệu D mà gồm tập các thuật ngữ độc nhất U, sự giao nhau S = L∩U được dùng như tập thuật ngữ biểu diễn D để tạo chữ ký
Một vấn đề ẩn chứa với I-Match xảy ra khi túi các từ được giữ S là nhỏ ( tức là
|S| << |U|) Bởi vì các tài liệu được đại diện một cách hiệu quả chỉ sử dụng một số ít các thuật ngữ, các tài liệu khác nhau có thể bị dự đoán nhầm thành gần như bản sao dễ dàng Để đối phó với trường hợp này, một ràng buộc được đặt đối với chiều dài tối thiểu của một tài liệu sao cho một chữ ký hợp lệ có thể được sinh ra Để tạo I-Match hiệu quả hơn với các lỗi false-positive như vậy, Kolcz và cộng sự đã đề xuất sử dụng
m từ điển được lấy ngẫu nhiên, đồng thời theo sau là quá trình sinh chữ ký I-Match
tương tự Kết quả là, một vector m chiều được sử dụng để biểu diễn một tài liệu Hai
tài liệu được coi là gần bản sao chỉ nếu chúng có đủ số các chữ ký khớp nhau
Bước 1: Lấy tài liệu
Bước 2: Phân tách tài liệu D vào một chuỗi các token, xóa bỏ các thẻ định dạng Bước 3: Sử dụng “ngưỡng” (IDF), chỉ giữ lại các token quan trọng
Bước 4: Chèn các token thích hợp vào cây Unicode sắp xếp của các token
Bước 5: Duyệt cây và thêm mỗi token duy nhất cho SHA1 băm Trên mỗi vòng lặp của cây, xác định một bộ (doc_id, SHA1 Digest)
Bước 6: Các bộ (doc_id, SHA1 Digest) được chèn vào cấu trúc dữ liệu lưu trữ dựa trên khóa SHA1 Digest
Bước 7: Nếu có một sự va chạm của các giá trị digest thì tài liệu là tương tự
Thuật toán I-Match[16]
Thời gian chạy của I-Match là O(d log d) trong trường hợp xấu nhất khi tất cả các tài liệu là trùng nhau với mỗi tài liệu khác, và O(d) trong trường hợp khác
Có 2 cách tính giá trị IDF Cách thứ nhất là dùng một tập chung và sử dụng các giá trị IDF cho tập phát hiện trùng lặp Cách thứ hai là tính IDF cho mỗi bộ sưu tập
Trang 202.3 Phép chiếu ngẫu nhiên
Như đã chỉ ra bởi Charikar, phương pháp hoán vị min-wise independent được sử
dụng trong Shingling là một trường hợp cụ thể thực tế của một sơ đồ băm LSH (Locality Sensitive Hashing) được giới thiệu bởi Dyk và Motwani Xác suất mà hai giá
trị băm khớp với nhau cũng giống như sự tương đồng Jaccard của hai vectơ k-gram
Ngược lại, cách tiếp cận dựa trên phép chiếu ngẫu nhiên được đề xuất bởi Charikar và sau đó áp dụng cho miền tài liệu web của Henzinger là một mô hình LSH đặc biệt cho
độ tương đồng cosin dựa trên các vector thuật ngữ Theo thực hiện được mô tả trong
[10], thuật toán này tạo ra một vector nhị phân với f bit để đại diện cho các tài liệu
bằng cách sử dụng các bước sau đây:
Đầu tiên, mỗi thuật ngữ duy nhất trong tài liệu đích được chiếu vào trong một
vector có giá trị thực ngẫu nhiên f chiều, mỗi thành phần là ngẫu nhiên được chọn
trong khoảng [-1, 1] Tất cả các vector ngẫu nhiên được sinh ra từ các thuật ngữ (term)
trong tài liệu này sau đó được thêm vào với nhau Vector nhị phân f chiều biểu diễn
cho tài liệu này được suy ra từ cách thiết lập mỗi phần tử trong vector là 1 nếu giá trị thực tương ứng là dương và là 0 nếu ngược lại
Nhận thấy rằng các phương pháp Shingling thường tạo ra các trường hợp dương tính giả nhiều hơn, Henzinger phát minh ra một phương pháp tiếp cận lai áp dụng phương pháp chiếu ngẫu nhiên Charikar để tiềm năng các cặp gần như trùng lặp được phát hiện bởi Shingling [10] Kết quả là, độ chính xác được cải thiện đáng kể mà không bị mất quá nhiều độ hồi tưởng
2.4 SpotSigs
Việc xác định các k-gram trong một tài liệu nên được sử dụng để tạo các chữ ký,
phương pháp SpotSigs của Theobald và cộng sự rất sáng tạo và thú vị [20] Khi phát triển các phương pháp phát hiện sự trùng lặp cho phân nhóm các bài báo hiển thị trên các trang web khác nhau, họ quan sát thấy các từ dừng lại hiếm khi xảy ra trong các khối mẫu không quan trọng như điều hướng bên hoặc các liên kết thể hiện ở dưới cùng của trang Dựa trên quan sát này, đầu tiên họ quét tài liệu để tìm các từ dừng bên trong
nó như các điểm neo k tokens ngay sau khi một điểm neo ngoại trừ các từ dừng thì được nhóm lại như một k-gram đặc biệt, hay còn gọi là một "chữ ký điểm" trong thuật
ngữ của họ Đại diện thô của từng tài liệu đích là một tập hợp các chữ ký điểm Việc xây dựng các chữ ký điểm có thể được xem như là một phỏng đoán đơn giản và hiệu
quả để lọc các thuật ngữ trong các khối mẫu sao cho các k-gram chỉ được trích xuất từ
các khối nội dung chính Một khi các chữ ký điểm được trích ra, các kỹ thuật tương tự
sử dụng hàm băm như đã thấy trong các phương pháp NDD khác có thể được áp dụng trực tiếp để giảm độ dài của các vectơ chữ ký ngay tại chỗ
Trang 21Ngoài ra, Theobaldet và cộng sự đề xuất một thuật toán hiệu quả để tính toán trực tiếp độ đo tương đồng Jaccard trên các vectơ chữ ký điểm thô, với sự giúp đỡ của một chỉ số đảo ngược cấu trúc dữ liệu đã tỉa
2.5 Sự tương đồng (resemblance) giữa hai tài liệu
Sự tương đồng giữa hai tài liệu là sự giống nhau về nội dung giữa hai tài liệu đó
Do đó, hai tài liệu là bản sao hoặc gần bản sao của nhau thì sẽ có nội dung giống nhau nhiều, hay “độ tương đồng” giữa hai tài liệu là cao Độ tương đồng nằm trong khoảng [0, 1], như vậy độ tương đồng càng gần 1 thì khả năng các tài liệu là bản sao hoặc gần sao của nhau là cao, và ngược lại
Do đó, để xét xem các tài liệu có phải là bản sao hoặc gần sao của nhau hay không ta phải đi tính độ tương đồng giữa chúng
Để tính toán độ tương đồng giữa hai tài liệu, ta làm như sau:
Chúng ta coi mỗi tài liệu như một chuỗi các token Chúng ta có thể lấy các token
là các chữ cái, từ, hoặc cả dòng Chúng tôi dùng một chương trình phân tích cú pháp
cho một tài liệu bất kỳ và rút gọn nó thành một chuỗi con đúng quy tắc của các token Một chuỗi con kề nhau của w tokens chứa trong tài liệu D được gọi là một
shingle Một shingle độ dài k cũng được biết đến như một k-gram (khi các token được
chọn là các chữ cái Alphabet mà không phải là câu hay từ) Cho một tài liệu D,
w-shingling được định nghĩa như tập của tất cả các shingle có kích thước là w đã có trong
D
Ví dụ, tài liệu D khi đã được rút gọn thành một chuỗi các token theo[1] :
(a, rose, is, a, rose, is, a, rose)
Quá trình xác định w-shingling của tài liệu D:
Trang 22Loại bỏ tất cả các 4-shingle bị trùng thì ta được tập SD là một tập các 4-shingle
duy nhất
{ (a, rose, is, a, rose), (rose, is, a, rose), (is, a, rose, is)}
Thực hiện lấy dấu vân của các shingle
Liên kết tới mỗi tài liệu D một tập S D, là kết quả lấy dấu vân của các Shingle
trong D Coi Shingle là một chuỗi liền của các token
Độ tương tự r (resemblance) là một số nằm trong khoảng [0, 1], và ta luôn luôn
có 𝑟 𝐴, 𝐵 = 1, tức là một tài liệu 𝐴 thì tương đồng với chính nó 100% Như hình minh họa dưới đây:
Trang 23Hình 2: Độ tương đồng của hai tài liệu D 1 và D 2
Tương tự, độ chứa c (containment) cũng là một số nằm trong khoảng [0, 1] và
nếu 𝐴 ⊆ 𝐵 thì 𝑐 𝐴, 𝐵 = 1
Ta có một ví dụ, nếu :
𝐴 =(a, rose, is, a, rose, is, a, rose)
Và 𝐵 = (a, rose, is, a, flower, which, is, a, rose)
Độ tương tự về kích thước shingle 1 là 70%, 50% kích thước shingle 2, 30% kích thước shingle 3
Tuy nhiên nhận thấy rằng ngay cả dưới tùy chọn shingling tài liệu như trên, nếu
𝐴 giống 𝐵 100% khi kích thước shingle là 1 thì nó chỉ có nghĩa 𝐵 là một hoán vị tùy ý của 𝐴, đối với kích thước lớn hơn của single, nếu 𝐴 lại tương đồng với 𝐵 100% cũng
có những trường hợp 𝐵 có thể là một hoán vị của 𝐴 nhưng chỉ hoán vị nào mà: ví dụ (a, c, a, b, a) giống (a, b, a, c, a) 100% với kích thước shingle là 2 Để làm cho độ tương tự nhạy cảm hơn với những thay đổi hoán vị chúng tôi phải có một kích thước lớn hơn, mặt khác có kích thước lớn có thể là quá nhạy cảm với những thay đổi nhỏ kể
từ khi thay đổi một mã thông báo một token ảnh hưởng đến 𝑤 shingle
Trang 24Nhận thấy rằng tính giống nhau (resemblance) của các tài liệu không bắc cầu Sự giống nhau giữa các phiên bản liên tiếp của cùng một tài liệu là lớn, nhưng phiên bản thứ 100 có thể sẽ rất khác với phiên bản thứ nhất Vì thế ta có thêm khoảng cách tương
từ D, ví dụ, cũng với tài liệu D trên:
D: a rose is a rose is a rose
{(a, rose, is, a, 1), (rose, is, a, rose, 1), (is, a, rose, is, 1),
(a, rose, is, a, 2), (rose, is, a, rose, 2)}
Sau đó thay vì làm việc trực tiếp với các shingle để đo độ tương tự giữa hai tài liệu, mà lấy dấu vân của các shingle (để giảm kích thước lưu trữ), như phần trình bày tiếp theo
2.6 Ước tính sự tương đồng (resemblance)
Phương pháp tiếp cận của Broder trong [1] liên quan tới quá trình lấy mẫu được phát triển độc lập bởi Heintze[14], dù có định nghĩa khác nhau về các độ đo được sử dụng Liên quan tới cơ chế lấy mẫu để xác định độ tương tự cũng được phát triển bởi Manber [9] và trong dự án Stanford SCAM [10][17][18]
Để tính sự tương đồng của hai tài liệu [1], cố định một sketch Các sketch đó có thể được tính rất nhanh (tuyến tính với kích thước của các tài liệu), và cho hai sketch,
sự tương đồng của hai tài liệu tương ứng được tính trong thời gian tuyến tính với kích
thước của các sketch
Giả sử rằng, đối với tất cả các tài liệu được xét SD ⊆ {0, … , n – 1} = [n] (trong thực tế n = 264
)
Theo [2][7]: