Plagiat
Supported from ^0.0.4
Library untuk memeriksa tingkat Plagiarisme atau Similarity menggunakan Bahasa Python. Secara default library ini akan menggunakan Algoritma Rabin Karp sebagai perhitungan utamanya. Pustaka ini dibuat hanya sebagai penunjang untuk membantu saya menguji-coba dan memahami semua konsep algoritma untuk menghitung similaritas. Modul ini merupakan hasil penggabungan dari library saya yang lain yaitu Plagiat. Dimana, melalui adanya fitur modul ini di Frasa, maka library terkait tidak akan dikembangkan lagi.
Import
from frasa.deteksi import plagiat
Metode
1. Rabin Karp
plagiat.rabin_karp(dokumen_1, dokumen_2)
2. Cosine Simmlarity
plagiat.cosine(dokumen_1, dokumen_2)
3. Jaccard
plagiat.jaccard(dokumen_1, dokumen_2)
Format
1. Menggunakan Text
Untuk melakukan perhitungan similariti sederhana menggunakan string.
string_1 = "Aku sedang belajar kecerdasan buatan"string_2 = "Mahasiswa yang cerdas selalu siap menerima tantangan" plagiat.rabin_karp(string_1, string_2)plagiat.cosine(string_1, string_2)plagiat.jaccard(string_1, string_2)
2. Menggunakan File .txt
Cukup tambahkan atribut format='File' dalam fungsinya.
file_1 = '/content/kalimat-1.txt'file_2 = '/content/kalimat-2.txt' plagiat.rabin_karp(file_1, file_2, format='File')plagiat.cosine(file_1, file_2, format='File')plagiat.jaccard(file_1, file_2, format='File')
3. Menggunakan URL
Cukup tambahkan atribut format='URL' dalam fungsinya.
url_1 = 'https://raw.githubusercontent.com/novay/amikom/main/datasets/text/kalimat-1.txt'url_2 = 'https://raw.githubusercontent.com/novay/amikom/main/datasets/text/kalimat-1.txt' plagiat.rabin_karp(url_1, url_2, format='URL')plagiat.cosine(url_1, url_2, format='URL')plagiat.jaccard(url_1, url_2, format='URL')
4. Opsional Parameter
plagiat.method(teks_1, teks_2, format, bahasa)
Penjelasan:
-
format=''digunakan untuk menuntukan format dokumen. Default: Text Available: URL, File, Text -
bahasa=''menentukan bahasa dalam proses stopwords. Default: indonesian.
Saat ini proses preprocessing masih menggunakan library dari NLTK, sehingga support bahasa yang didukung oleh NLTK bisa digunakan, seperti english dan lainnya.
Referensi
Rabin Karp
- Ranti Eka Putri, Andysah Putera Utama Siahaan https://www.researchgate.net/publication/319272358_Examination_of_Document_Similarity_Using_Rabin-Karp_Algorithm
- Andysah Putera Utama Siahaan, Mesran, Robbi Rahim, Dodi Siregar https://www.ijstr.org/final-print/july2017/K-gram-As-A-Determinant-Of-Plagiarism-Level-In-Rabin-karp-Algorithm.pdf
Jaccard Similarity
Cosine Similarity
- Jiapeng Wang, Yihong Dong https://www.researchgate.net/publication/344010599_Measurement_of_Text_Similarity_A_Survey
Disclaimer
Library ini di buat hanya untuk keperluan pembuatan tugas Data Science. Output mungkin saja bisa berbeda dengan pustaka lain khususnya perhitungan Cosine, karena dalam implementasinya ada variasi dalam cara perhitungan vektor TF-IDF, tokenisasi kata, dan faktor-faktor lainnya. Agar hasil lebih maksimal, lebih baik handle dulu masalah stop word, n-gram, dan normalisasi secara mandiri karena perhitungan yang dilakukan dalam pustaka ini hanya melakukan normalisasi sederhana sebelum dieksekusi.
Credit
- Paper Ranti Eka Putri, Andysah Putera Utama Siahaan, Mesran, Robbi Rahim & Dodi Siregar
- NLTK - corpus, tokenize, stem
- Numpy
- TheDhejavu - Rabin Karp Module
- Jiapeng Wang, Yihong Dong (Cosine Similarity)