Tôi đang cố gắng phát hiện nếu một bài viết hoặc bài đăng trên diễn đàn là một mục trùng lặp trong cơ sở dữ liệu. Tôi đã suy nghĩ một chút, đi đến kết luận rằng ai đó sao chép nội dung sẽ làm như vậy bằng cách sử dụng một trong ba (khó giảm dần):
- sao chép đơn giản dán toàn bộ văn bản
- sao chép và dán các phần của văn bản hợp nhất nó với văn bản của riêng họ
- sao chép một bài báo từ một trang web bên ngoài và giả trang là của riêng họ
Văn bản chuẩn bị cho phân tích
Về cơ bản bất kỳ sự bất thường; mục tiêu là làm cho văn bản "thuần" nhất có thể. Để có kết quả chính xác hơn, văn bản được "chuẩn hóa" bởi:
- Tước các khoảng trắng trùng lặp và cắt tỉa hàng đầu và dấu.
- Các dòng mới được chuẩn hóa thành \ n.
- Các thẻ HTML được xóa.
- Sử dụng một RegEx được gọi là URL Fireball Daring bị tước.
- Tôi sử dụng mã BB trong ứng dụng của mình để đi đến đó.
- (ä) có nguồn gốc và nước ngoài (bên cạnh Extgish) được chuyển đổi thành dạng không phải nước ngoài.
Tôi lưu trữ thông tin về mỗi bài viết trong (1) bảng thống kê và trong (2) bảng từ khóa.
(1) Bảng thống kê Các thống kê sau được lưu trữ về nội dung văn bản (giống như bài đăng này)
- độ dài văn bản
- đếm thư
- số từ
- số câu
- từ trung bình mỗi câu
- chỉ số dễ đọc tự động
- điểm sương mù
Đối với các ngôn ngữ châu Âu, Coleman-Liau và Chỉ số dễ đọc tự động nên được sử dụng vì chúng không sử dụng cách đếm âm tiết, do đó sẽ tạo ra một số điểm chính xác hợp lý.
(2) Bảng từ khóa
Các từ khóa được tạo bằng cách loại trừ một danh sách lớn các từ dừng (từ thông dụng), ví dụ: 'the', 'a', 'of', 'to', v.v., v.v.
Dữ liệu mẫu
- văn bản_length, 3963
- thư_count, 3052
- word_count, 684
- câu_count, 33
- word_per_sentence, 21
- gunning_fog, 11,5
- auto_read_index, 9,9
- từ khóa 1, bị giết
- từ khóa 2, sĩ quan
- từ khóa 3, cảnh sát
Cần lưu ý rằng một khi một bài viết được cập nhật, tất cả các số liệu thống kê ở trên được tạo lại và có thể là các giá trị hoàn toàn khác nhau.
Làm cách nào tôi có thể sử dụng thông tin trên để phát hiện nếu một bài viết được xuất bản lần đầu tiên, đã tồn tại trong cơ sở dữ liệu chưa?
Tôi biết bất cứ điều gì tôi sẽ thiết kế sẽ không hoàn hảo, rủi ro lớn nhất là (1) Nội dung không trùng lặp sẽ được gắn cờ là trùng lặp (2) Hệ thống cho phép nội dung trùng lặp thông qua.
Vì vậy, thuật toán sẽ tạo ra một số đánh giá rủi ro từ 0 không có rủi ro trùng lặp 5 có thể trùng lặp và 10 là trùng lặp. Bất cứ điều gì trên 5 thì có khả năng là nội dung trùng lặp. Trong trường hợp này, nội dung có thể được gắn cờ và liên kết với các bài viết có thể trùng lặp và một con người có thể quyết định xóa hay cho phép.
Như tôi đã nói trước khi tôi lưu trữ từ khóa cho toàn bộ bài viết, tuy nhiên tôi tự hỏi liệu tôi có thể làm tương tự trên cơ sở đoạn văn không; điều này cũng có nghĩa là tiếp tục tách dữ liệu của tôi trong DB nhưng nó cũng giúp phát hiện (2) trong bài viết ban đầu của tôi dễ dàng hơn.
Tôi đang nghĩ trung bình có trọng số giữa các số liệu thống kê, nhưng theo thứ tự và hậu quả sẽ là gì ...