ĐẠ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
i
ĐẠ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
ii
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ý
iii
LỜ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
iv
LỜ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
v
MỤ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.
2.8.
Lấy dấu vân của shingle bằng dấu vân Simhash ..........................................................17
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
vi
4.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
vii
DANH SÁCH CÁC BẢNG
Bảng 1: Bảng các từ dừng .......................................................................................... 29
Bảng 2: Cấu hình phần cứng ...................................................................................... 31
Bảng 3: Công cụ phần mềm ....................................................................................... 31
viii
DANH 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
ix
DANH SÁCH CÁC TỪ VIẾT TẮT
Mô tả
Từ viết tắt
IR
Information Retrieval
NDD
Near Dupplicate Detection
IDF
Inverse Document Frequency
TF-IDF
Term Frequency- Inverse Document Frequency
LSH
Locality Sensitive Hashing
x
MỞ ĐẦ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.
1
Chƣơ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.
2
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
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.
3
1.2. Phát hiện sự trùng lặp
1.2.1. Động lực và mục đích
Do sự tăng trưởng nhanh chóng của các trang báo điện tử, nhiều bài báo cùng
đưa một thông tin như nhau, dẫn đến dư thừa thông tin. Một trong những lý do của vấn
đề này là các bài báo bị lặp, bị sao chép hay chỉnh sửa lại được tồn tại và đăng tại
nhiều vị trí khác nhau trên các trang Web khác nhau hoặc trên cùng một trang web. Số
lượng các cổng tin tức điện tử đã tăng lên song song với sự gia tăng của thông tin điện
tử. 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
4
và 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
in nghiêng,…), bố cục khác nhau, …
Các văn bản có cùng nội dung nhưng loại tập tin khác nhau - ví dụ,
Microsoft Word và PDF - các phiên bản của cùng một tập tin.
Tương tự, hai bản tin tức được coi là giống hoặc gần giống nhau về nội dung là
khi chúng có nội dung giống nhau hoàn toàn hoặc có nội dung tương tự nhau nhưng có
một số ít từ khác nhau, hoặc hai bản tin có cùng nội dung nhưng định dạng font chữ,
cấu trúc hiển thị khác nhau, …
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
5
text. 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.
6
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.
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 kgram) độ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-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
7
cá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 h1, … , hm đượ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) = { s1, s2, … , sn}. 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 hj.
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.
8
Đầ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.
9
2.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ỗ.
10
Ngoà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, wshingling đượ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:
Chọn w = 4
Một 4-shingle là một chuỗi con của 4 từ kề nhau, có trong D:
a, rose, is, a
rose, is, a, rose
is, a, rose, is
a, rose, is, a
rose, is, a, rose
11
Loạ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 SD, 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ừ đó, khi w cố định ta có một số định nghĩa[2]:
- Độ tương tự 𝑟(𝐴, 𝐵) của hai tài liệu 𝐴 và 𝐵:
|𝑆𝐴 ∩ 𝑆𝐵 |
𝑟(𝐴, 𝐵) =
|𝑆𝐴 ∪ 𝑆𝐵 |
Ở đó | 𝐴 | là độ lớn của tập 𝐴.
- Độ chứa của tập 𝐴 trong tập 𝐵:
|𝑆𝐴 ∩ 𝑆𝐵 |
𝑐(𝐴, 𝐵) =
|𝑆𝐴 |
Độ 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:
12
Hình 2: Độ tƣơng đồng của hai tài liệu D1 và D2
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.
13
Nhậ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
đồng (resemblance distance).
- Khoảng cách tương đồng 𝑑(𝐴, 𝐵) của hai tài liệu A và B:
𝑑 𝐴, 𝐵 = 1 − 𝑟(𝐴, 𝐵)
là một thước đo và nó tuân theo bất đẳng thức tam giác. Tức là:
𝑑 𝐴, 𝐵 < 𝑑 𝐴, 𝐵 + 𝑑(𝐴, 𝐵)
Quy trình w-shingling tài liệu D cũng có thể được thực hiện dựa trên định nghĩa
khác, định nghĩa w-shingling của D là một tập chứa cả trọng số của các shingle sinh ra
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]:
14
Cố định kích thước của một shingle là w
Cho U là tập tất cả các shingle có kích thước w. Không làm mất tính tổng
quát chúng ta coi U như một tập của các số.
Chỉnh tham số s
Cho một tập W ⊆ U định nghĩa MINs(W) là:
𝑇ậ𝑝 𝑔ồ𝑚 𝒔 𝑠ℎ𝑖𝑛𝑔𝑙𝑒𝑠 𝑛ℎỏ 𝑛ℎấ𝑡 𝑡𝑟𝑜𝑛𝑔 𝑊, 𝑛ế𝑢 𝑊 ≥ 𝒔;
𝑊
𝑛𝑔ượ𝑐 𝑙ạ𝑖.
“shingle nhỏ nhất” là nói đến tập các số trên U (khi coi U như một tập các
số).
MINs(W) =
MODm(W) = Tập các shingle x của W với x (mod m) = 0
Định lý: Cho 𝛱: U U là một hoán vị của U được chọn thống nhất ngẫu nhiên.
Cho F(A) = MINs(𝛱(SA)) và V(A) = MODm(𝛱(SA)). Định nghĩa F(B) và V(B)
tương tự.
Thì giá trị:
|𝑀𝐼𝑁𝑠 𝐹 𝐴 ∪ 𝐹 𝐵 ∩ 𝐹 𝐴 ∩ 𝐹(𝐵)|
|𝑀𝐼𝑁𝑠 (𝐹 𝐴 ∪ 𝐹 𝐵 )|
là giá trị tương đồng 𝑟(𝐴, 𝐵) của hai tài liệu A và B
giá trị :
|𝑉 𝐴 ∩ 𝑉(𝐵)|
|𝑉 𝐴 ∪ 𝑉(𝐵)|
Là giá trị tương đồng của hai tài liệu 𝐴 và 𝐵.
Giá trị :
|𝑉 𝐴 ∩ 𝑉(𝐵)|
|𝑉(𝐴)|
Là độ chứa 𝑐(𝐴, 𝐵) của 𝐴 trong 𝐵.
Chứng minh :
Dễ thấy được rằng :
MINs (𝐹 𝐴 ∪ 𝐹 𝐵 ) = MINs(𝛱(SA) ∪ 𝛱(SB)) = MINs(𝛱(SA) ∪ ( SB))
Cho α là thành phần nhỏ nhất trong 𝛱(SA ∪ SB).
15