Saya mencoba mendeteksi apakah artikel atau posting forum adalah entri duplikat dalam database. Saya telah memikirkan hal ini, sampai pada kesimpulan bahwa seseorang yang menduplikasi konten akan melakukannya menggunakan salah satu dari ketiganya (dalam penurunan yang sulit dideteksi):
- salin sederhana tempelkan seluruh teks
- salin dan tempel bagian-bagian teks yang digabungkan dengan miliknya
- menyalin artikel dari situs eksternal dan menyamar sebagai milik mereka
Mempersiapkan Teks Untuk Analisis
Pada dasarnya ada anomali; tujuannya adalah membuat teks semurni mungkin. Untuk hasil yang lebih akurat, teks "standar" oleh:
- Stripping duplikat spasi putih dan pemangkasan depan dan belakang.
- Baris baru distandarisasi untuk \ n.
- Tag HTML dihapus.
- Menggunakan RegEx yang disebut Daring Fireball URL dilucuti.
- Saya menggunakan kode BB dalam aplikasi saya sehingga masuk ke.
- (ä) ccented dan asing (selain Enlgish) dikonversi ke bentuk non asing.
Saya menyimpan informasi tentang setiap artikel di (1) tabel statistik dan di (2) tabel kata kunci.
(1) Tabel Statistik Statistik berikut disimpan tentang konten tekstual (seperti posting ini)
- panjang teks
- jumlah surat
- jumlah kata
- jumlah kalimat
- kata rata-rata per kalimat
- indeks keterbacaan otomatis
- skor kabut gunning
Untuk bahasa Eropa, Coleman-Liau dan Automated Readability Index harus digunakan karena mereka tidak menggunakan penghitungan suku kata, sehingga harus menghasilkan skor yang cukup akurat.
(2) Tabel Kata Kunci
Kata kunci dihasilkan dengan mengecualikan daftar besar kata-kata berhenti (kata-kata umum), misalnya, 'the', 'a', 'of', 'to', dll, dll.
Contoh data
- text_length, 3963
- letter_count, 3052
- word_count, 684
- kalimat_kount, 33
- word_per_sentence, 21
- gunning_fog, 11.5
- auto_read_index, 9.9
- kata kunci 1, terbunuh
- kata kunci 2, petugas
- kata kunci 3, polisi
Perlu dicatat bahwa sekali artikel diperbarui, semua statistik di atas dibuat ulang dan bisa menjadi nilai yang sama sekali berbeda.
Bagaimana saya bisa menggunakan informasi di atas untuk mendeteksi jika artikel yang pertama kali diterbitkan, sudah ada dalam database?
Saya tahu apa pun yang saya desain tidak akan sempurna, risiko terbesar adalah (1) Konten yang bukan duplikat akan ditandai sebagai duplikat (2) Sistem memungkinkan konten duplikat masuk.
Jadi algoritma harus menghasilkan angka penilaian risiko dari 0 menjadi duplikat risiko 5 menjadi duplikat mungkin dan 10 menjadi duplikat. Apa pun di atas 5 maka ada kemungkinan bagus bahwa konten tersebut duplikat. Dalam hal ini, konten dapat ditandai dan ditautkan ke artikel yang merupakan duplikat yang mungkin dan manusia dapat memutuskan apakah akan menghapus atau mengizinkan.
Seperti yang saya katakan sebelumnya saya menyimpan kata kunci untuk seluruh artikel, namun saya bertanya-tanya apakah saya dapat melakukan hal yang sama berdasarkan paragraf; ini juga akan berarti lebih jauh memisahkan data saya di DB tetapi juga akan membuatnya lebih mudah untuk mendeteksi (2) di posting awal saya.
Saya sedang berpikir rata-rata tertimbang antara statistik, tetapi dalam urutan apa dan apa yang akan menjadi konsekuensi ...