Latest v0.1.58

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

Jaccard Similarity

Cosine Similarity

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)