Upload
lamkiet
View
216
Download
0
Embed Size (px)
Citation preview
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
HÀ NỘI – 2013
ii
ĐẠ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
iii
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ý
iv
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
v
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
vi
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. 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
vii
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
viii
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
ix
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
x
DANH SÁCH CÁC TỪ VIẾT TẮT
Từ viết tắt Mô tả
IR Information Retrieval
NDD Near Dupplicate Detection
IDF Inverse Document Frequency
TF-IDF Term Frequency- Inverse Document Frequency
LSH Locality Sensitive Hashing
1
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.
2
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.
3
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.
Hinh 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.
4
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
5
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
6
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.
7
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 k-
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-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
8
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.
9
Đầ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.
10
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ỗ.
11
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, 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:
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
12
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:
13
Hinh 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.
14
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]:
15
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à:
MINs(W) = 𝑇ậ𝑝 𝑔ồ𝑚 𝒔 𝑠ℎ𝑖𝑛𝑔𝑙𝑒𝑠 𝑛ℎỏ 𝑛ℎấ𝑡 𝑡𝑟𝑜𝑛𝑔 𝑊, 𝑛ế𝑢 𝑊 ≥ 𝒔;𝑊 𝑛𝑔ượ𝑐 𝑙ạ𝑖.
“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ố).
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).
16
Khi đó 𝑚𝑖𝑛{𝛱(SA)} = 𝑚𝑖𝑛{𝛱(SA)} nếu và chỉ nếu α là ảnh của một thành phần
trong 𝑆𝐴 ∩ 𝑆𝐵 . Do đó,
Pr(min{𝛱(SA)} = min{𝛱(SB)}) = Pr(𝛱−1 α ∈ SA ∩ SB)
= |𝑆𝐴 ∩ 𝑆𝐵 |
|𝑆𝐴 ∪ 𝑆𝐵 | = 𝑟(𝐴, 𝐵) (*)
Chứng minh: 𝛱 được chọn thống nhất ngẫu nhiên, đối với bất kỳ tập X ⊆ [𝑛] và
bất kỳ x ∈ X, chúng ta có
Pr(min{𝛱 𝑋 } = 𝛱(𝑥))) = 𝛱 𝑥 = 1
|𝑋| (**)
Theo trên, chúng ta có thể chọn một hoán vị ngẫu nhiên và sau đó giữ mỗi tài
liệu một bản phác thảo (sketch) chỉ gồm các tập F(D) và/hoặc V(D). Các bản phác
thảo này đủ để tính độ tương đồng hoặc độ chứa của bất kỳ cặp tài liệu nào mà không
cần bất cứ file nguồn.
Nhận xét : Tập F(D) có lợi là nó có kích thước cố định, nhưng nó chỉ cho phép
tính độ tương đồng. Còn kích thước của tập V(D) thì tăng khi D tăng, nhưng nó cho
phép tính được cả độ tương đồng lẫn độ chứa của các cặp tài liệu.
Để hạn chế kích thước của V(D) chúng ta có thể làm như sau[2]:
Đối với các tài liệu có kích thước giữa 100*2i và 100*2
i+1, chúng ta lưu
trữ tập Vi(D) = MOD2i(𝛱(SD)).
Kích thước được kỳ vọng của Vi(D) luôn luôn nằm giữa 50 và 100. Mặt
khác, chúng ta có thể dễ dàng tính Vi+1(D) từ Vi(D). (chỉ giữ duy nhất các
thành phần chia hết cho 2i+1
).
Vì vậy, nếu chúng ta được cho hai tài liệu A và B, và 2i được sử dụng bởi
các tài liệu dài hơn, chúng ta sử dụng Vi(A) và Vi(B) để tính toán.
Điểm không thuận lợi của cách tiếp cận này là việc tính độ chứa của các
tài liệu rất ngắn bên trong một tài liệu lớn hơn, nó rất dễ lỗi, đưa ra kết quả
không chính xác.
Từ đây, chúng ta có thể chọn, một lần cho tất cả, một tập t hoán vị độc lập ngẫu
nhiên π1, π1, …, πt .(ví dụ có thể lấy t = 100). Đối với mỗi tài liệu D, chúng ta lưu trữ
một sketch là danh sách
𝑆𝐴 = (min{π1(SA)}, min{π2(SA)},…, min{πt(SA)}).
17
Sau đó có thể tính sự tương đồng của A và B bằng cách tính xem có bao nhiêu
thành phần tương ứng trong 𝑆𝐴 và 𝑆𝐵 có giá trị bằng nhau. (Ở [11] cho thấy trong
thực tế chúng ta có thể sử dụng một hoán vị ngẫu nhiên duy nhất, lưu t thành phần nhỏ
nhất của ảnh của nó, và sau đó sắp xếp các sketch).
Trong thực tế, chúng ta phải đối mặt với việc không thể chọn và biểu diễn π thống nhất một cách ngẫu nhiên trong Sn đối với n lớn. Chúng ta xem xét các họ hoán
vị nhỏ hơn mà vẫn đảm bảo điều kiện min-wise independence cho bởi phương trình
(**).
2.7. Lấy dấu vân các shingle
2.7.1. Lấy dấu vân của shingle bằng dấu vân Simhash
Simhash của Charikar’s [3] [4] là một kỹ thuật giảm chiều. Nó ánh xạ các vector
nhiều chiều vào các dấu vân có kích thước nhỏ. Được áp dụng cho các trang web như
sau: Đầu tiên chuyển đổi một trang web vào một tập các đặc trưng, mỗi đặc trưng
được gắn trọng số. Các đặc trưng được tính sử dụng chuẩn công nghệ IR như
tokenization, trường hợp gấp, loại từ dừng, … . Một tập các đặc trưng được gán trọng
số cấu thành một vector nhiều chiều, với mỗi chiều cho một đặc trưng duy nhất trong
tài liệu. Với simhash, chúng ta có thể chuyển một vector nhiều chiều như vậy vào
trong một dấu vân f-bit với f nhỏ.
Sự tính toán:
Cho một tập các đặc trưng được trích chọn từ một tài liệu và các trọng số tương
ứng của chúng, chúng ta sử dụng simhash để sinh ra một dấu vân f-bit như sau:
Chúng ta duy trì một vector V có f chiều, mỗi chiều được khởi tạo giá trị
là 0.
Một đặc trưng được băm vào một giá trị băm f-bit.
f bits này tăng/giảm giá trị bằng cách: Nếu bit thứ i của giá trị băm là 1,
thành phần thứ i của V được cộng với trọng số của đặc trưng đó. Nếu bit thứ i
của giá trị băm là 0, thành phần thứ i của V bị trừ đi giá trị trọng số của đặc trưng
đó.
Khi tất cả các đặc trưng được làm như trên, ta sẽ thu được vector V với
các giá trị của mỗi chiều của nó là dương hoặc âm. Dựa vào dấu của các giá trị
đó ta xác định được các bit tương ứng trong dấu vân cuối cùng (dấm âm thì giá
trị bit tương ứng là 0, dương thì giá trị bit tương ứng là 1)
18
Như hình minh họa dưới đây:
Hinh 3:Minh họa lấy dấu vân bằng simhash [5]
Ví dụ:
Tropical fish include fish found in tropical environments around the world,
including both freshwater and salt water species.
(a) Văn bản gốc
Tropical 2 fish 2 include 1 found 1 environments 1 around 1 world 1 including 1
both 1 freshwater 1 salt 1 water 1 species 1
(b) Các từ với trọng số của nó
19
Tropical 2x 01100001 fish 2x10101011 include 11100110
Found 00011110 environments 00101101 around 10001011
World 00101010 including 11000000 both 10101110
Freshwater 00111111 salt 10110101 water 00100101
Species 11101110
(c) Các giá trị băm 8 bits cho mỗi từ
1 -5 9 -9 3 1 3 3
(d) Vector V khi cộng các trọng số
Ở trên, thành phần thứ 2 của vector V được tính như sau:
v2 = 2 – 2 + 1 – 1 – 1 – 1 – 1 + 1 – 1 – 1 – 1 – 1 + 1 = -5
Tương tự ta tính được các thành phần của vector V như (d)
Dựa vào vector V, ta ánh xạ về dấu vân 8-bit, nếu thành phần thứ i của V là nhỏ
hơn hoặc bằng 0 thì bit thứ i của dấu vân được sinh ra sẽ có giá trị là 0, và ngược
lại, thành phần thứ i của V dương thì giá trị bit thứ i sẽ là 1.
Từ đó dấu vân được sinh ra từ V là:
1 0 1 0 1 1 1 1
(e) dấu vân 8-bit của V
20
Các thuộc tính của simhash:
Simhash có hai thuộc tính trái ngược nhau:
Dấu vân của một tài liệu là một giá trị băm của các đặc trưng của nó
Các tài liệu giống nhau có giá trị băm giống nhau.
Thuộc tính thứ hai là một đặc thù của các hàm băm. Để minh họa, xem hai tài
liệu khác nhau chỉ 1 byte đơn. Các hàm băm mật mã (để tạo chữ ký) giống như SHA-1
hoặc MD5 sẽ băm hai tài liệu đó thành các giá trị băm khác nhau hoàn toàn (khoảng
cách hamming giữa các giá trị băm lớn). Tuy nhiên, simhash lại băm chúng thành các
giá trị băm tương tự nhau (khoảng cách hamming nhỏ).
Chọn các tham số:
Một số phương pháp lấy dấu vân cho tài liệu cần nhiều byte, khi dùng simhash
với 8 tỷ tài liệu ta chỉ cần dùng 64 bit, điều đó được chứng tỏ trong [4]:
Họ thử với 234
= 8 tỷ các dấu vân simhash. Họ thay đổi giá trị của k từ 1 tới 10.
Với mỗi k, lấy mẫu ngẫu nhiên số lượng như nhau của các cặp dấu vân mà khoảng
cách hamming giữa chúng chính xác bằng k. Gán bằng tay mỗi cặp bằng một trong 3
giá trị: dương thật; dương giả, không xác định. Họ đã sử dụng nguyên tắc từ [5] để xác
định chọn giá trị trong 3 giá trị trên cho một cặp:
Các cặp khác nhau hoàn toàn là dương tính giả;
Các trang hơi khác nhau, chỉ về số đếm, … là dương tính thật;
Và các trang không được tính toán (ví dụ là các trang không có nội dung
bằng Tiếng Anh, phải login hay truy cập, …) được đánh dấu là không xác
định.
Hình 4 [5] là đồ thị họ thu được cho độ chính xác và độ hồi tưởng với các giá trị
k khác nhau tương ứng. Độ chính xác (Precision) được định nghĩa như một phần của
các tài liệu gần trùng lặp được trả về (có khoảng cách hamming nhiều nhất là k) là
dương tính thật. Độ hồi tưởng (Recall) là phần trong tổng số các cặp tài liệu gần trùng
lặp (trong mẫu của họ) mà được xác định có khoảng cách Hamming nhiều nhất là k.
Hình 2 cho thấy rõ sự cân bằng của các giá trị k khác nhau: Một giá trị quá thấp
sẽ bỏ qua nhiều tài liệu gần trùng lặp (dương tính giả), một giá trị quá cao sẽ đánh dấu
không chính xác các cặp gần như trùng lặp (dương tính giả).
21
Hinh 4: Độ chính xác và độ hồi tƣởng với giá trị khác nhau của k [5]
Với các giá trị k thay đổi trong khoảng 1 tới 10.
Chọn k = 3 là hợp lý bởi vì cả độ chính xác và độ hồi tưởng là gần 0.75. Vì vậy,
đối với các dấu vân 64-bit, việc xác định hai tài liệu là gần trùng, gần giống nhau khi
các dấu vân khác nhau nhiều nhất ở 3 bits là đạt được độ chính xác khá cao.
Sự phân bố của các dấu vân:
22
Hinh 5: Sự phân bố của các 1-bit hàng đầu [5]
Ở hình trên, minh họa sự phân bố của các vị trí bit của 1-bit đứng đầu trong phép
XOR của các dấu vân kề nhau. Nếu các dấu vân đó thực sự ngẫu nhiên, thì có một sự
phân bố đối xứng phân rã theo cấp số nhân (giá trị y sẽ giảm một nửa đối với sự
tăng/giảm giá trị x). Chú ý rằng nửa bên phải của sự phân bố cho thấy rõ trạng thái
này. Tuy nhiên, nửa bên trái của phân bố không được dốc rõ ràng; Đây rõ ràng là do
phân nhóm của các tài liệu; có các cặp tài liệu mà giá trị simhash của chúng khác vừa
phải số lượng bit bởi vì chúng có nội dung tương tự.
23
Hinh 6: Bucketization của các dấu vân [5]
Hình 4 mô tả sự phân bố của các dấu vân trong 128 buckets; các đường bao của
bucket được xác định bằng cách chia không gian của 2f dấu vân vào trong 128 khoảng
liên tiếp kích thước bằng nhau. Các dấu vân có khoảng cách như nhau. Có một vài
điểm nhọn. Điều đó xảy ra do các nguyên nhân khác nhau, ví dụ:
- Vài trang web bị trống; tất cả những trang này có giá trị simhash
của 0.
- Có vài trường hợp không tìm thấy trang.
- Nhiều trang web sử dụng bảng để đưa tin.
Sau khi chuyển các tài liệu vào các dấu vân simhash, một vấn đề gặp phải là phải
tìm ra cách nhanh nhất để xác định một dấu vân 64-bit của nội dung một trang web
vừa được thu thập có khác nhiều nhất k vị trí bit hay không. Đây là bài toán khoảng
cách Hamming.
Khoảng cách Hamming
Trong lý thuyết thông tin, khoảng cách Hamming giữa hai dãy ký tự (strings) có
chiều dài bằng nhau là số các ký tự ở vị trí tương đương có giá trị khác nhau. Nói một
24
cách khác, khoảng cách Hamming đo số lượng cần thay thế phải có để đổi giá trị của
một dãy ký tự sang một dãy ký tự khác.
Ví dụ:
Khoảng cách Hamming giữa 1011101 và 1001001 là 2.
Khoảng cách Hamming giữa 2143896 và 2233796 là 3.
Khoảng cách Hamming giữa “toned” và “roses” là 3.
Đối với hai dãy ký tự nhị phân (binary strings) a và b, phép toán này tương đương với
phép toán a XOR b. Ví dụ (1011101) XOR (1001001) = 2
Bài toán khoảng cách Hamming
Định nghĩa: Cho một tập các dấu vân f-bit và một dấu vân truy vấn F, đánh dấu
một dấu vân đã tồn tại khác với F nhiều nhất ở k bits hoặc không.
Cụ thể, xét một tập 8 tỷ dấu vân 64-bit [4], khoảng 64GB. Đối với một dấu vân F
truy vấn, phải xác định trong một vài mili giây xem liệu có bất kỳ một dấu vân nào
trong 8 tỷ dấu vân đã tồn tại mà khác với F nhiều nhất 3 bits. Xem xét hai phương
pháp tiếp cận đơn giản:
Xây dựng một bảng các dấu vân đã tồn tại, được sắp xếp. Cho F, thăm dò
mỗi bảng với mỗi F’ có khoảng cách Hamming với F nhiều nhất là k. Tổng
số đầu dò là rất lớn: với các dấu vân 64-bit và k = 3, cần 643 = 41664 đầu
dò.
Tính trước tất cả các F’ mà những dấu vân đã tồn tại có khoảng cách
Hamming với F’ lớn nhất là k. Việc này cũng rất vất vả vì số dấu vân được
tính trước có thể gấp nhiều lần 41664.
Vấn đề đặt ra là phải giải quyết bài toán với số đầu dò nhỏ.
Theo [4], họ xây dựng t bảng: T1, T2, … Tt. Liên kết với bảng Ti là 2 đại lượng :
Một số nguyên pi và một hoán vị πi trên f vị trí bit. Bảng Ti được xây dựng bằng cách
áp dụng hoán vị πi cho mỗi dấu vân tay đang tồn tại; Tập hợp kết quả của hoán vị dấu
vân f-bit đều được sắp xếp. Cho trước dấu vân tay F và k là một số nguyên, thăm dò
các bảng một cách song song:
Bƣớc 1: Xác định tất cả các dấu vân tay hoán vị trong Ti có top pi các vị trí bit phù
hợp với top pi các vị trí bit của πi (F).
25
Bƣớc 2: Đối với mỗi hoán vị của các dấu vân tay được xác định ở bước 1, kiểm tra
xem nó có khác với πi (F) ở hầu hết k vị trí bit hay không.
Trong Bước 1, xác định dấu vân tay đầu tiên trong bảng Ti có top pi-bit các vị trí phù
hợp với pi top-bit vị trí của πi (F) có thể được thực hiện trong O (pi) các bước tìm
kiếm nhị phân.
Thăm dò các thông số thiết kế :
Ví dụ[4]: Xét f = 64 (các dấu vân tay 64-bit), và k = 3 do đó, các dấu vân gần như
trùng lặp khác nhau trong tối đa 3 vị trí bit. Giả sử chúng ta có 8B = 234
các dấu vân
đang có, tức là d = 34. Dưới đây là bốn mẫu thiết kế khác nhau, mỗi mẫu thiết kế có
một tập khác nhau của các hoán vị và các giá trị pi.
20 bảng:
Chia 64 bit thành 6 khối có 11, 11, 11, 11, 10 và 10 bit tương ứng. Có 63 = 20 cách
chọn 3 khối trong 6 khối này. Đối với mỗi sự lựa chọn như vậy, hoán vị π tương ứng
để tạo các bit nằm trong các bit khối lựa chọn hàng đầu bit (có một số là hoán vị như
vậy; chọn một trong số chúng thống nhất một cách ngẫu nhiên). Giá trị của pi là tổng
số bit trong các khối đã chọn.Vì vậy pi = 31, 32 hoặc 33. Trung bình, một thăm dò lấy
nhiều nhất là 234-31
= 8 (hoán vị) các dấu vân.
16 bảng:
Chia 64 bit thành 4 khối, mỗi khối có 16 bit. Có 41 = 4 cách lựa chọn 1 khối trong 4
khối này. Đối với mỗi sự lựa chọn như vậy, chia 48 bit còn lại vào bốn khối, mỗi khối
có 12 bit. Có 41 = 4 cách lựa chọn 1 trong 4 khối này. Hoán vị cho một bảng tương
ứng với cách đặt các bit vào các khối đã chọn ở các vị trí hàng đầu (leading). Giá trị
của pi là 28 tất cả các khối. Trung bình, một thăm dò lấy 234-28
= 64 (hoán vị) các dấu
vân.
10 bảng:
Chia 64 bit thành 5 khối có 13,13,13,13 và 12 bit tương ứng. Có Có 52 = 10 cách
chọn 2 khối trong 5 khối này. Đối với mỗi sự lựa chọn như vậy, hoán vị π Tương ứng
để tạo các bit nằm trong các khối lựa chọn hàng đầu bit. Giá trị của pi là tổng số bit
trong các khối đã chọn. Vì vậy pi = 25 hoặc 26. Trung bình, một thăm dò lấy nhiều
nhất là 234-25
= 512 (hoán vị) các dấu vân.
26
4 bảng:
Chia 64 bit thành 4 khối, có 16 bit. Có 41 = 4 cách lựa chọn 1 khối trong 4 khối
này. Đối với mỗi sự lựa chọn như vậy, hoán vị π Tương ứng để làm cho các bit nằm
trong các khối lựa chọn hàng đầu bit. Giá trị của pi là tổng số bit trong các khối đã
chọn.Vì vậy pi = 16. Trung bình, một thăm dò lấy nhiều nhất là 234-16
= 256 K (hoán
vị) các dấu vân.
Ví dụ trên cho thấy có thể có nhiều lựa chọn thiết kế khác nhau đối với một sự lựa
chọn cố định của f và k. Tăng số lượng các bảng sẽ tăng pi do đó làm giảm thời gian
truy vấn. Giảm số lượng các bảng làm giảm các yêu cầu lưu trữ, nhưng giảm pi dẫn
đến làm tăng thời gian truy vấn
2.8. Nén dấu vân
Nén dấu vân có thể giảm bớt kích thước của các bảng lưu trữ dấu vân. Ví dụ,
kích thước bảng cho 8 tỷ tài liệu và các dấu vân 64-bit có thể được giảm còn xấp xỉ
một nửa kích thước của chúng.
Cái nhìn sâu sắc chính là các dấu vân tay lần lượt chia sẻ các d bit hàng đầu trong
kỳ vọng[4]. Để h biểu thị vị trí của 1 bit có ý nghĩa nhất trong XOR của hai dấu vân
tay liên tiếp. Như vậy h lấy các giá trị giữa 0 và f - 1. Đối với một bảng được đưa ra,
đầu tiên tính toán sự phân bố của các giá trị h và sau đó tính toán một mã Huffiman
trên [0; f - 1] cho phân phối này. Tiếp theo, chọn một tham số B biểu thị kích thước
block. Một giá trị tiêu biểu cho B sẽ là 1024 bytes. Một block với B bytes sẽ có 8B
bits. Quét các chuỗi được sắp xếp của các dấu vân ở bảng và trình tự sắp xếp (hoán vị)
dấu vân tay trong một bảng và ở các khối liên tiếp như sau:
Bƣớc 1: Các dấu vân tay đầu tiên trong block được ghi nhớ hoàn toàn. Việc này
tốn 8f bit. Sau đó, Bước 2 được lặp đi lặp lại cho dấu vân tay kế tiếp cho đến khi một
block đầy, tức là, không thể thực hiện Bước 2 mà không cần 8B + 1 bit hoặc hơn.
Bƣớc 2: Tính toán XOR của dấu vân tay hiện tại với dấu vân tay trước. Tìm vị trí
của 1 bit có ý nghĩa nhất. Gắn thêm mã Huffman cho vị trí bit này đến block. Sau đó,
(gắn) thêm các bit vào bên phải của 1-bit có ý nghĩa nhất khối đến block.
key liên quan đến một block là vân cuối cùng đã được ghi nhớ trong khối đó. Khi một
dấu vân (hoán vị), một tìm kiếm nội suy trên các key giúp tìm ra khối để giải nén. Tùy
thuộc vào giá trị của số pi và d, và sự phân bố các dấu vân tay (simhash có xu hướng
nhóm các tài liệu tương tự với nhau).
27
Tóm tắt chƣơng 2
Giới thiệu một số nghiên cứu và hướng tiếp cận giải quyết bài toán phát hiện sự
trùng lặp cho các bài báo. Chương này tập trung vào việc nêu ra đặc trưng của các
hướng tiếp cận, và trình bày chi tiết thực hiện một số kỹ thuật cơ bản, đâ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 dựa trên mô
hình hệ thống được các tác giả xây dựng.
28
Chƣơng 3. Mô hinh thực nghiệm
Trên cơ sở đã phân tích các hướng tiếp cận giải quyết phát hiện sự trùng lặp các
bài báo, khóa luận đã lựa chọn cách giải quyết bài toán này là xác định mỗi bài báo
một dấu vân dựa trên simhash. Sau đó so sánh các dấu vân với nhau, hai tài liệu khác
nhau ở nhiều nhất k vị trí bit của dấu vân sẽ được đánh giá là có nội dung giống/gần
giống nhau (với giá trị k nhỏ).
Chương trình thực nghiệm của tôi thực hiện kiểm tra một bài báo điện tử được
thu thập về xem có giống/gần giống với các bài đã được thu thập trước đó hay không,
lấy các bài báo điện tử được viết bằng Tiếng Việt.
Bƣớc 1: Thu thập các bài báo điện tử
Bƣớc 2: Lấy nội dung của các bài báo đã được thu thập và loại bỏ nhiễu (loại bỏ
các thẻ, định dạng, quảng cáo, nhãn thời gian, … có trong bài báo để
29
lấy nội dung sau đó loại bỏ sơ một số từ có tần số xuất hiện cao mà
không có nhiều ý nghĩa. Ở đây chúng tôi thực hiện loại bỏ từ dừng như
các chữ số, từ phủ định, …).
Bƣớc 3: Thực hiện shingling cho mỗi tài liệu.
Bƣớc 4: Lấy dấu vân cho mỗi tài liệu.
Bƣớc 5: So sánh và cho ra kết quả
3.1. Loại bỏ từ dừng
Một số từ có tần số xuất hiện cao trong các tài liệu mà không mang nhiều ý
nghĩa, nó có thể bị thay thế ở các tài liệu khác, chỉnh sửa nội dung để biến thành bài
viết của họ. Đó gọi là đạo văn. Chúng tôi loại bỏ nó để giảm số lượng shingle của mỗi
tài liệu, do đó giảm không gian lưu trữ và công việc cần làm cũng nhẹ nhàng hơn, mà
lại không quá ảnh hưởng tới chất lượng phát hiện sự trùng lặp bởi các từ đó không
mang nhiều ý nghĩa.
Danh sách các từ dừng được tạo bằng tay, dựa trên bảng thống kê sau:
Bảng 1: Bảng các từ dừng
Loại từ Ví dụ
Từ đếm Một, hai, ba, …
Số đếm 1, 2, 3, …
Từ phủ định Không, ngược lại, …
Từ nối Và, nhưng, tuy nhiên, vì thế, vì vậy, …
Giới từ Ở, trong, trên, …
Từ chỉ định Ấy, đó, nhỉ, …
3.2. Quá trinh shingling tài liệu
Chúng tôi chọn cách tạo ra các shingle của mỗi tài liệu dựa trên các từ, mà không
phải là dựa trên các chữ cái như q-gram.
30
Coi nội dung của các bài báo điện tử thu thập được là một tài liệu D (sau khi đã
thực hiện bước loại bỏ nhiễu ở 3.1).
Để sinh ra tập w-shingling của mỗi tài liệu D, chọn w = 4, chương trình sẽ tự
động nhóm 4 tiếng cạnh nhau trong ở tài liệu D và ghi vào file .txt
3.3. Lấy dấu vân tài liệu bằng simhash
Thực hiện lấy dấu vân đặc trưng cho mỗi tài liệu D như mô tả ở phần trên, chọn
các token là các từ.
Mỗi từ trong Tiếng Việt có thể chứa nhiều tiếng, ví dụ quyển_sách, hình_ảnh,
điện_thoại,… chỉ là một từ.
Mỗi shingle gồm 4 từ, và được băm vào một hàm băm 64bit. Sau đó tính giá trị
vecto 64 chiều, và lấy được dấu vân cuối cùng theo 2.7.1
3.4. So sánh các dấu vân
Sau khi lấy được dấu vân cho mỗi tài liệu trong bộ sưu tập, ta lưu vào cơ sở dữ
liệu mã tài liệu và dấu vân tương ứng.
Mỗi khi thu thập được một trang web mới, lại thực hiện lấy dấu vân của trang
web đó và so sánh với các dấu vân đã có trong tài liệu bằng cách tìm khoảng cách
Hamming.
Xác định ngưỡng k cho khoảng cách Hamming, nếu khoảng cách Hamming giữa
hai bài báo nhỏ hơn hoặc bằng k thì kết luận chúng là trùng lặp với nhau.
Tóm tắt chƣơng 3
Trên cơ sở phân tích và dựa vào miền dữ liệu, khóa luận đã lựa chọn và xây dựng
mô hình thực nghiệm, phát hiện trùng lặp nội dung bài báo dựa vào kỹ thuật shingling
của Broder và cộng sự, đồng thời sử dụng simhash để lấy dấu vân cho tài liệu phục vụ
cho quá trình so sánh và phát hiện sự trùng lặp.
Do hạn chế về mặt thời gian và kiến thức chúng tôi tiến hành thực nghiệm một
phần mô hình đề xuất. Quá trình thực nghiệm và kết quả thực nghiệm một phần của
mô hình chúng tôi sẽ trình bày ở chương tiếp theo sau đây.
31
Chƣơng 4. Thực nghiệm và đánh giá kết quả
4.1. Môi trƣờng thực nghiệm
Chúng tôi tiến hành thực nghiệm trên máy tính có cấu hình ổn định. Với CPU có
nhân Intel Core i3 2.27GHz, Ram 2G, dung lượng ổ cứng 500G, cài hệ điều hành
Window 7 Ultimate 32bit.
Cùng với đó là các công cụ phần mềm có sẵn, phục vụ cho quá trình thực hiện
thực nghiệm.
4.1.1. Cấu hinh phần cứng
Bảng 2: Cấu hinh phần cứng
Thành phần Chỉ số
CPU Intel Core i3 2.27Ghz
RAM 2G
HDD 500G
OS Window 7 Ultimate 32 bit
4.1.2. Công cụ phần mềm
Bảng 3: Công cụ phần mềm
STT Tên phần mềm Tác giả Nguồn
1 Crawler http://code.google.com/p/crawler4j/
2 Eclipse SDK 4.2.0 http://www.eclipse.org/dowloads
3 SQL Server 2008 Microsoft http://www.microsoft.com/
4 JVnTextPro-v.2.0 Phan Xuân Hiếu,
Nguyễn Cẩm Tú
http://sourceforge.net/projects/jvntex
tpro/files/v2.0/
32
4.2. Dữ liệu thực nghiệm
Dữ liệu được lấy từ 5.000 bài báo trên khoảng 30 trang báo điện tử uy tín của
Việt Nam, Sau quá trình phân tích và tiến hành loại bỏ parser các dữ liệu nhiễu, không
phải nội dung của bài báo ta thu được các bài báo “sạch” ở dạng .txt được lưu trong
file News.
Hinh 7: File dữ liệu thực nghiệm
Hinh 8: Nội dung của một bài báo
Tiêu đề
Nội
dung
33
4.3. Thực nghiệm
Thực nghiệm được tiến hành qua các bước như mô tả dưới đây:
Bước 1: Sử dụng công cụ Crawler để lấy dữ liệu từ các trang báo điện tử từ trang
Baomoi.com
Bước 2: Lọc lần 1: bỏ thẻ HTML lấy nội dung của từng bài báo.
Hinh 9: Nội dung một bài báo đã đƣợc loại bỏ các thẻ html
Hình 9 minh họa cho kết quả thu được khi thực hiện bước 2. Nội dung của mỗi bài báo
được lấy, đã không còn thẻ html
Bước 3: Lọc lần 2:
- Sử dụng bộ công cụ JvnTextPro của tác giả Phan Xuân Hiếu và
Nguyễn Cẩm Tú để tách câu, tách từ.
- Sử dụng StopWord để loại bỏ từ dừng và các ký tự đặc biệt.
Bước 4: Shingling tài liệu, sử dụng chương trình 4Words cho dữ liệu thu được ở
bước 3.
Bước 5: Lấy dấu vân cho từng bài báo, sử dụng chương trình fingerprint cho dữ
liệu thu được ở bước 4.
Bước 6: So sánh và đưa ra kết quả.
35
Hinh 12: Kết quả lấy dấu vân của 2000 bài báo
4.4. Kết quả thực nghiệm
Độ chính xác, độ hồi tưởng và độ đo F1 đo được với các giá trị k khác nhau như
hình 13.
Với k nhỏ, độ chính xác cao, nhưng độ hồi tưởng thấp, giá trị của k càng lớn thì
độ chính xác càng thấp, độ hồi tưởng càng cao. Theo thực nghiệm cho bộ test, giá trị k
= 2 là hợp lý, cho độ đo F1 lớn nhất.
Với các giá trị k khác nhau, ta có thể áp dụng như nhau cho bài toán sao chép và
bài toán trùng lặp.
36
Hinh 13: Kết quả thực nghiệm
4.5. Nhận xét
Bước đầu thực nghiệm đã xử lý được dữ liệu để phục vụ cho quá trình shingling
và lấy dấu vân cho từng bài báo. Qua mô hình chúng tôi đã lấy được dấu vân đặc trưng
cho từng tài liệu là 64bit. Dấu vân đó là đặc trưng cho mỗi tài liệu. Sử dụng chương
trình tính khoảng cách Hamming cho các cặp dấu vân đã phát hiện được sự trùng lặp
của nội dung các bài báo. Bên cạnh đó vẫn còn trường hợp các từ bị phân tách không
đúng, dẫn đến file shingle chưa được đảm bảo cho dữ liệu đầu vào và do số lượng dữ
liệu rất lớn nên sử dụng kỹ thuật loại từ dừng, từ nhiễu chưa được như ý. Chưa thử
nghiệm được trên toàn bộ tập dữ liệu test, do đó chưa đánh giá được độ chính xác và
hồi tưởng của chương trình.
37
Kết Luận
Từ việc nghiên cứu bài toán phát hiện sự trùng lặp của các tài liệu, các kỹ thuật
đưa ra bởi Broder và cộng sự [1, 2, 8, 11], khóa luận đã đưa ra mô hình phát hiện sự
trùng lặp nội dung của các bài báo, phục vụ cho việc tìm kiếm, đánh giá chất lượng
các trang tin tức điện tử và ngăn chặn sự đạo tin, cung cấp cho người dùng những bản
tin thiết thực và đáng tin cậy nhất.
Khóa luận đã đạt được những kết quả sau:
Giới thiệ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 điện tử,
động lực và mục đích nghiên cứu của khóa luận.
Tìm hiểu và trình bày một số phương pháp để tiếp cận bài toán xác định
sự trùng lặp dựa trên nhiều kỹ thuật của nhiều tác giả khác nhau. Chủ yếu
là 3 kỹ thuật chính: Độ tương đồng, shingling, lấy dấu vân.
Thực hiện thu thập nội dung của các bài báo, loại bỏ được nhiễu và chỉ lấy
duy nhất nội dung.
Dựa vào đặc trưng của Tiếng Việt, thực hiện loại bỏ từ có ý nghĩa thấp đối
với nội dung của bài báo, phục vụ cho việc phát hiện trùng lặp trên dữ liệu
là các bài báo viết Tiếng Việt.
Khóa luận đã thực hiện cài đặt thực nghiệm theo các bước của mô hình và
thu được dấu vân của mỗi tài liệu.
Dữ liệu sau khi xử lý được lưu trữ trong cơ sở dữ liệu để làm đầu vào cho
các pha xử lý tiếp theo.
Do hạn chế về mặt thời gian và kiến thức, khóa luận còn một số khiếm khuyết:
Mới chỉ tiến hành thực nghiệm được một phần của mô hình đề xuất
Lấy được dấu vân đặc trưng cho mỗi tài liệu mà chưa thử nghiệm với
nhiều giá trị tham số khác nhau, do đó chưa đánh giá đúng đắn chất lượng
của mô hình.
Hướng phát triển:
Thực nghiệm của khóa luận mới chỉ dừng ở mức lấy dấu vân bằng simhash mà
chưa tiến hành thực nghiệm với các phương pháp khác, do đó chúng tôi xác định các
công việc cho thời gian sắp tới là tiến hành thực nghiệm bằng nhiều phương pháp khác
nhau để tìm ra phương pháp tối ưu giải quyết bài toán đã đặt ra. Có thể áp dụng vào
cài đặt tìm kiếm online trên các trang web tin tức cho mục đích sử dụng.
38
Tài liệu tham khảo
[1] A. Z. Broder. Identifying and Filtering Near-Duplicate Documents. Combinatorial
Pattern Matching. Spinger, 2000
[2] A. Z. Broder, S. C. Glassman, M. S. Manasse, G. Zweig. Syntactic Clustering of
the Web. Computer Networks, 29(8-13):1157-1166, 1997
[3] M. Charikar. Similarity estimation techniques from rounding algorithms. In Proc.
34th
Annual Symposium on Theory of Computing(STOC2002), pages 380-388, 2002.
[4] G.S Manku, A. Jain, A. D. Sarma. Detecting Near-Duplicates for Web Crawling
2007. Conference on World Wide Web, 2007
[5] M. R. Henzinger. Finding near-duplicate web pages: a large-scale evaluation of
algorithms. In SIGIR 2006, pages 284-291, 2006
[6] M. O. Rabin. Fingerprinting byrandom polynomials. Technical Report Report TR-
15-81, Center for Research in Computing Techonlogy, Harvard University, 1981.
[7] A. Z. Broder. On the resemblance and containment of documents. In Proceedings
of Compression and Complexity of Sequences 1997, pages 21-29. IEEE Computer
Society, 1997.
[8] A. Z. Broder. Some applications of Rabin's fingerprinting method. In R. Capocelli,
A. De Santis, and U. Vaccaro, editors, Sequences II: Methods in Communications,
Security, and Computer Science, pages 143-152. Springer-Verlag, 1993.
[9] U. Manber. Finding similar files in a large file system. In Proc. 1994 USENIX
Conference, pages 1-10, Jan. 1994.
[10] S. Brin, J. Davis, and H. Garcia-Molina. Copy detection mechanisms for digital
documents. In Proc. ACM SIGMOD Annual Conference, pages 398-409, May1995.
[11] A. Broder. On the resemblance and containment of documents. In Compression
and Complexity of Sequences, 1998.
[12] A. Broder, S. C. Glassman, M. Manasse, and G. Zweig. Syntactic clustering of
the web. Computer Networks, 29(8-13):1157-1166, 1997.
[13] E. Ukkonen. Approximate string-matching distance and the q -gram distance. In
R. Capocelli, A. De Santis, and U. Vaccaro, editors, Sequences II: Methods in
Communications, Security, and Computer Science, pages 300-312. Springer-Verlag,
1993.
39
[14] N. Heintze. Scalable Document Fingerprinting. Proceedings of the Second
USENIX Workshop on Electronic Commerce, pages 191-200, 1996.
[15] N. Shivakumar and H. Garía-Molina. Building a Scalable and Accurate Copy
Detection Mechanism. Proceedings of the 3nd International Conference on Theory
and Practice of Digital Libraries , 1996.
[16] E. Uyar Near-duplicate news detection using name entities, 2009