1. Trang chủ
  2. » Luận Văn - Báo Cáo

PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁO

49 460 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 1,66 MB

Nội dung

PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁOPhạm Thị Hồng Khóa QH-2009-I/CQ, ngành hệ thống thông tin Tóm tắt Khóa luận tốt nghiệp: Hiện nay sự phát triển nhanh chóng của báo Điện

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Phạm Thị Hồng

PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁO

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

HÀ NỘI – 2013

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Phạm Thị Hồng

PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁO

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

Cán bộ hướng dẫn: TS Phan Xuân Hiếu

Cán bộ đồng hướng dẫn: ThS Trần Mai Vũ

HÀ NỘI – 2013

Trang 3

PHÁT HIỆN SỰ TRÙNG LẶP NỘI DUNG CỦA CÁC BÀI BÁO

Phạm Thị Hồng

Khóa QH-2009-I/CQ, ngành hệ thống thông tin

Tóm tắt Khóa luận tốt nghiệp:

Hiện nay sự phát triển nhanh chóng của báo Điện tử đã dẫn đến một loạt các bài báo có nội dung giống nhau xuất hiện ở nhiều trang web Do đó bài toán phát hiện sự trùng lặp của các bài báo là bài toán thời sự, có ý nghĩa, đặc biệt trong các hệ thống tìm kiếm

Bản sao của các bài báo trên Web là khá nhiều Các bài báo là bản sao của nhau

có sự khác nhau trong phần quảng cáo, font chữ, cỡ chữ, nhãn thời gian… sự khác biệt như vậy là không thích hợp đối với các trang tìm kiếm Trên cơ sở phân tích và tìm hiểu một số hướng tiếp cận bài toán về so sánh hai tài liệu, khóa luận áp dụng phương pháp lấy dấu vân của tài liệu và so sánh dấu vân để phát hiện sự giống nhau Dữ liệu được thu thập từ web được lưu trữ trong các file text và tiến hành quá trình xử lý dữ liệu, từ đó làm dữ liệu đầu vào cho mô hình học dữ liệu để tìm ra dấu vân đặc trưng cho từng bài báo Khóa luận đưa ra mô hình thử nghiệm dựa trên mô hình lấy dấu vân simhash, tìm ra được tập đặc trưng và trọng số của chúng của mỗi bài báo Kết quả bước đầu cho thấy, mô hình là khả quan và có thể tiếp tục thực nghiệm các pha xử lý tiếp theo

Từ khóa: Trùnglặp, đạo văn, sao chép, phát hiện, Simhash, Rabin, dấu vân, chữ

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

DANH SÁCH CÁC BẢNG

Bảng 1: Bảng các từ dừng 29Bảng 2: Cấu hình phần cứng 31Bảng 3: Công cụ phần mềm 31

Trang 9

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

Trang 10

DANH SÁCH CÁC TỪ VIẾT TẮT

Trang 11

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

Trang 12

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

Trang 13

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

Trang 14

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

Trang 15

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

1.2.3 Phát biểu bài toán phát hiện sự trùng lặp nội dung của các bài báo

Bài toán phát hiện sự trùng lặp nội dung của các bài báo thực chất là bài toán tìm

sự tương đồng giữa hai tài liệu

Các bài báo trên Web sẽ được thu thập và lưu trữ, sau đó được xử lý loại bỏ các thẻ định dạng, các quảng cáo, chỉ lấy nội dung … và sau đó được coi như một văn bản

Trang 16

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

Trang 17

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 gram) độc nhất (tức là các chuỗi con kề nhau của k tokens) Đễ dễ xử lý hơn nữa, mỗi

k-k-gram lại được mã hóa bởi một dấu vân Rabin 64-bit và được gọi là một shingle Sự

giống nhau giữa hai tài liệu được đo bằng cách sử dụng hệ số Jaccard giữa các vectơ

shingle Các tài liệu có độ tương đồng cao được coi là gần như trùng lặp

Xem xét trình tự của các từ trong một tài liệu Một shingle là một giá trị băm của một k-gram (k –gram là một dãy gồm k từ kế tiếp nhau) Tập hợp các shingle cấu thành tập các đặc trưng của một tài liệu Lựa chọn giá trị cho k là rất quan trọng, nó ảnh hưởng tới kích thước của shingle

- Kích thước shingle dài: Những thay đổi ngẫu nhiên nhỏ của tài liệu gây ảnh hưởng lớn

- Kích thước shingle ngắn: Các tài liệu không liên quan có thể có quá nhiều sự tương đồng

Kích thước tốt là từ 3-10

Giá trị băm của k-gram có thể được tính rất hiệu quả bằng cách sử dụng kỹ thuật dấu vân của Rabin [6] Vì lý do được giải thích trong [7], đặc biệt thuận lợi để sử dụng dấu vân Rabin, có một phần mềm rất tốt đã thực hiện [8]

Có thể chọn cách tạo các shingles khác nhau Manber [9] đã tạo các shingle trên

ký tự Hệ thống COPS được Brin và cộng sự dựng [10] lại dùng các câu để tạo ra các shingle Broder và cộng sự [11, 12] đã tạo các shingle trên các từ (word) Tổng số các shingle của mỗi tài liệu là lớn Do vậy một chữ ký có kích thước nhỏ tính toán trên tập

Trang 18

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 h 1 , … , h m được tạo và áp dụng cho tất cả các shingle Cho tập các shingle của tài liệu D là S(D) = { s 1 , s 2 , … , s n } Thành phần thứ j trong vector cuối cùng được xác

định như giá trị băm nhỏ nhất của h j

Mỗi vector m chiều có thể được ánh xạ tiếp vào một tập nhỏ hơn của các siêu shingles (super shingles) bằng cách: Đầu tiên chia các phần tử vào trong m’ tập con rời

nhau có kích thước bằng nhau và sau đó lấy dấu vân mỗi tập con của các phần tử bằng cách sử dụng một hàm băm khác Quá trình này một cách hiệu quả làm giảm hiệu quả

số chiều của mỗi vector từ m về m’, và do đó việc lưu trữ tốt hơn và tốc độ cũng nhanh

hơn

Chú ý rằng trong phương thức shingling chuẩn, việc xây dựng các vector chữ ký của tài liệu thì hoàn toàn thuộc về cú pháp – tất cả k-grams trong tài liệu được đối xử

như nhau

Ngoài ra, Hoad và Zobe đã thử nghiệm với chiến lược lựa chọn k-grams khác khi

lập mã các shingles, chẳng hạn dựa trên các điểm TF-IDF của họ Những từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bản này, và xuất hiện ít trong các văn bản khác Việc này giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ khoá của văn bản đó)

2.2 I-Match

Không giống như Shingling là tạo một chuỗi các giá trị băm dựa trên một mẫu

ngẫu nhiên của k-grams của tài liệu gốc, I-Match ánh xạ mỗi tài liệu riêng vào trong

một giá trị băm shingle sử dụng giải thuật băm SHA1 Hai tài liệu được coi là gần như bản sao nếu và chỉ nếu các giá trị băm tương ứng của chúng là đồng nhất

Quá trình tạo chữ ký của I-Match coi một tài liệu như một túi của các từ Ngoài

ra, chỉ những thuật ngữ quan trọng mới được giữ ở trong túi

Trang 19

Đầu tiên định nghĩa một từ điển I-Match L dựa trên sự thống kê bộ thuật ngữ, sử

dụng một bộ lớn các tài liệu Một lựa chọn thường được sử dụng là tài liệu nghịch đảo

tần số (IDF), với L chỉ bao gồm các thuật ngữ có giá trị IDF tầm trung Đối với mỗi tài liệu D mà gồm tập các thuật ngữ độc nhất U, sự giao nhau S = L∩U được dùng như tập thuật ngữ biểu diễn D để tạo chữ ký

Một vấn đề ẩn chứa với I-Match xảy ra khi túi các từ được giữ S là nhỏ ( tức là

|S| << |U|) Bởi vì các tài liệu được đại diện một cách hiệu quả chỉ sử dụng một số ít các thuật ngữ, các tài liệu khác nhau có thể bị dự đoán nhầm thành gần như bản sao dễ dàng Để đối phó với trường hợp này, một ràng buộc được đặt đối với chiều dài tối thiểu của một tài liệu sao cho một chữ ký hợp lệ có thể được sinh ra Để tạo I-Match hiệu quả hơn với các lỗi false-positive như vậy, Kolcz và cộng sự đã đề xuất sử dụng

m từ điển được lấy ngẫu nhiên, đồng thời theo sau là quá trình sinh chữ ký I-Match

tương tự Kết quả là, một vector m chiều được sử dụng để biểu diễn một tài liệu Hai

tài liệu được coi là gần bản sao chỉ nếu chúng có đủ số các chữ ký khớp nhau

Bước 1: Lấy tài liệu

Bước 2: Phân tách tài liệu D vào một chuỗi các token, xóa bỏ các thẻ định dạng Bước 3: Sử dụng “ngưỡng” (IDF), chỉ giữ lại các token quan trọng

Bước 4: Chèn các token thích hợp vào cây Unicode sắp xếp của các token

Bước 5: Duyệt cây và thêm mỗi token duy nhất cho SHA1 băm Trên mỗi vòng lặp của cây, xác định một bộ (doc_id, SHA1 Digest)

Bước 6: Các bộ (doc_id, SHA1 Digest) được chèn vào cấu trúc dữ liệu lưu trữ dựa trên khóa SHA1 Digest

Bước 7: Nếu có một sự va chạm của các giá trị digest thì tài liệu là tương tự

Thuật toán I-Match[16]

Thời gian chạy của I-Match là O(d log d) trong trường hợp xấu nhất khi tất cả các tài liệu là trùng nhau với mỗi tài liệu khác, và O(d) trong trường hợp khác

Có 2 cách tính giá trị IDF Cách thứ nhất là dùng một tập chung và sử dụng các giá trị IDF cho tập phát hiện trùng lặp Cách thứ hai là tính IDF cho mỗi bộ sưu tập

Trang 20

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ỗ

Trang 21

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:

Trang 22

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 S D, là kết quả lấy dấu vân của các Shingle

trong D Coi Shingle là một chuỗi liền của các token

Độ tương tự r (resemblance) là một số nằm trong khoảng [0, 1], và ta luôn luôn

có 𝑟 𝐴, 𝐵 = 1, tức là một tài liệu 𝐴 thì tương đồng với chính nó 100% Như hình minh họa dưới đây:

Trang 23

Hình 2: Độ tương đồng của hai tài liệu D 1 và D 2

Tương tự, độ chứa c (containment) cũng là một số nằm trong khoảng [0, 1] và

nếu 𝐴 ⊆ 𝐵 thì 𝑐 𝐴, 𝐵 = 1

Ta có một ví dụ, nếu :

𝐴 =(a, rose, is, a, rose, is, a, rose)

Và 𝐵 = (a, rose, is, a, flower, which, is, a, rose)

Độ tương tự về kích thước shingle 1 là 70%, 50% kích thước shingle 2, 30% kích thước shingle 3

Tuy nhiên nhận thấy rằng ngay cả dưới tùy chọn shingling tài liệu như trên, nếu

𝐴 giống 𝐵 100% khi kích thước shingle là 1 thì nó chỉ có nghĩa 𝐵 là một hoán vị tùy ý của 𝐴, đối với kích thước lớn hơn của single, nếu 𝐴 lại tương đồng với 𝐵 100% cũng

có những trường hợp 𝐵 có thể là một hoán vị của 𝐴 nhưng chỉ hoán vị nào mà: ví dụ (a, c, a, b, a) giống (a, b, a, c, a) 100% với kích thước shingle là 2 Để làm cho độ tương tự nhạy cảm hơn với những thay đổi hoán vị chúng tôi phải có một kích thước lớn hơn, mặt khác có kích thước lớn có thể là quá nhạy cảm với những thay đổi nhỏ kể

từ khi thay đổi một mã thông báo một token ảnh hưởng đến 𝑤 shingle

Trang 24

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

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]:

Ngày đăng: 08/04/2016, 16:24

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] A. Z. Broder. Identifying and Filtering Near-Duplicate Documents. Combinatorial Pattern Matching. Spinger, 2000 Sách, tạp chí
Tiêu đề: Combinatorial Pattern Matching
[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 Sách, tạp chí
Tiêu đề: Computer Networks
[3] M. Charikar. Similarity estimation techniques from rounding algorithms. In Proc. 34 th Annual Symposium on Theory of Computing(STOC2002), pages 380-388, 2002 Sách, tạp chí
Tiêu đề: Proc. "34"th" Annual Symposium on Theory of Computing(STOC2002)
[4] G.S Manku, A. Jain, A. D. Sarma. Detecting Near-Duplicates for Web Crawling 2007. Conference on World Wide Web, 2007 Sách, tạp chí
Tiêu đề: Conference on World Wide Web
[5] M. R. Henzinger. Finding near-duplicate web pages: a large-scale evaluation of algorithms. In SIGIR 2006, pages 284-291, 2006 Sách, tạp chí
Tiêu đề: SIGIR 2006
[6] M. O. Rabin. Fingerprinting byrandom polynomials. Technical Report Report TR- 15-81, Center for Research in Computing Techonlogy, Harvard University, 1981 Sách, tạp chí
Tiêu đề: Technical Report Report TR
[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 Sách, tạp chí
Tiêu đề: Proceedings of Compression and Complexity of Sequences 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 Sách, tạp chí
Tiêu đề: Sequences II: Methods in Communications, Security, and Computer Science
[9] U. Manber. Finding similar files in a large file system. In Proc. 1994 USENIX Conference, pages 1-10, Jan. 1994 Sách, tạp chí
Tiêu đề: Proc. 1994 USENIX Conference
[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 Sách, tạp chí
Tiêu đề: Proc. ACM SIGMOD Annual Conference
[11] A. Broder. On the resemblance and containment of documents. In Compression and Complexity of Sequences, 1998 Sách, tạp chí
Tiêu đề: Compression and Complexity of Sequences
[12] A. Broder, S. C. Glassman, M. Manasse, and G. Zweig. Syntactic clustering of the web. Computer Networks, 29(8-13):1157-1166, 1997 Sách, tạp chí
Tiêu đề: Computer Networks
[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 Sách, tạp chí
Tiêu đề: Sequences II: Methods in Communications, Security, and Computer Science
[14] N. Heintze. Scalable Document Fingerprinting. Proceedings of the Second USENIX Workshop on Electronic Commerce, pages 191-200, 1996 Sách, tạp chí
Tiêu đề: Proceedings of the Second USENIX Workshop on Electronic Commerce
[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 Sách, tạp chí
Tiêu đề: Proceedings of the 3nd International Conference on Theory and Practice of Digital Libraries
[16] E. Uyar Near-duplicate news detection using name entities, 2009 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w