Analisis Sentimen dengan Algoritma Levenshtein Distance
Daftar Isi
Perlu diketahui bahwa data yang dihimpun tidak selalu berbentuk data yang terstruktur rapi seperti dalam bentuk excel sheet atau bentuk laporan yang telah rapi. Namun, ada data yang dapat diambil dari konten sosial media dalam bentuk gambar, teks, audio maupun video. Pada kesempatan kali ini teknologi Machine Learning yang menjadi bagian dari kecerdasan buatan memiliki peran penting dalam meningkatkan kualitas data dengan melakukan analisis prediktif dari bentuk data teks yang sering disebut dengan analisis sentimen. Selain itu, perlu diketahui mengenai Natural Languange Processing (NLP). Natural Language Processing (NLP) adalah rangkaian dari teknik komputasi untuk menganalisis dan merepresentasikan teks yang terjadi secara alami pada satu atau lebih tingkat analisis linguistik untuk tujuan mencapai kemiripan manusia pemrosesan bahasa untuk berbagai tugas atau aplikasi. Natural Language Processing (NLP) merupakan cabang dari kecerdasan buatan untuk menganalisis teks tertulis secara otomatis agar mesin memahami bahasa manusia ontoh masalah yang dihadapi adalah mengolah kalimat atau teks yang lebih panjang seperti dalam peringkasan dokumen dan mesin terjemahan. NLP ini memliki irisan yang kuat dengan Data Science maupun teknologi Artificial Intelligence.
Algoritma yang digunakan biasanya adalah algoritma TF-IDF atau pembobotan kata untuk menghitung bobot setiap kata yang umum digunakan dan metode Levenshtein Distance yang berguna untuk mengklasifikasi suatu data penyakit mental berbentuk teks. Algoritma Levenshtein Distance bekerja dengan cara mencari jarak antara kata yang diinputkan oleh user dengan kata pada database lalu menghitung jumlah perbedaan antar kedua string dalam bentuk matriks.
Baca juga : Analisis Sentimen dengan Algoritma Linear Model
Algoritma TF-IDF
Algoritma TF-IDF merupakan metode untuk menghitung bobot setiap kata yang paling umum digunakan pada information retrieval. Algoritma ini menggabungkan 2 konsep untuk perhitungan pembobotan yaitu frekuensi kemunculan sebuah kata didalam sebuah dokumen dan inverse frekuensi sebuah dokumen yang mengandung kata tersebut.
Perhitungan Term Frequency (TF) menggunakan persamaan:
Dimana,
tf = Term Frequency
tf ij= banyaknya kemunculan term dalam dokumen.
Perhitungan Inverse Document Frequency (IDF) menggunakan persamaan:
Dimana,
idf fi= Inverse Document Frequency
N = jumlah dokumen yang terambil oleh sistem
df i= banyaknya dokumen dalam koleksi dimana term muncul didalamnya / kata yang dicari.
Perhitungan Term Frequency Inverse Document Frequency (TF-IDF) menggunakan persamaan :
Dimana,
W ij= bobot dokumen
tf ij= banyaknya kemunculan term
idf i= Inverse Document Frequency
Algoritma Levenshtein Distance
Algoritma Levenshtein Distance merupakan metrik string untuk mengukur perbedaan antara dua urutan. Pada algortima ini semakin kecil nilai skor yang dimiliki maka akan semakin tinggi nilai kemiripan yang dimiliki. Kata distance sendiri bermaksud jumlah modifikasi yang dibutuhkan untuk mengubah suatu bentuk string ke bentuk string lain, sebagai contohnya misal string kata “baru” dan “batu” memiliki distance 1 karena hanya perlu dilakukan satu operasi saja untuk mengubah string ke string lain. Nilai distance antara dua string tersebut juga ditentukan oleh jumlah minimum dari operasi-operasi perubahan yang diperlukan untuk melakukan perubahan dari string satu ke string lainnya. Dalam kasus dua string di atas, string “baru” dapat menjadi “batu” hanya dengan melakukan satu subtitusi karakter “r” menjadi “t”.
Operasi-operasi utama dalam algorima ini ada 3 yaitu sebagai berikut :
- Penyisipan atau insertion : menambahkan suatu karakter ke dalam string. Contohnya string “bapa” menjadi “bapak”.
- Penghapusan atau deletion : menghilangkan suatu karakter suatu string. Contohnya dari string “kasur” menjadi “kasu”.
- Penukaran atau subtition : operasi menukar sebuah karakter dengan karakter lain. Contohnya dari string “baru” menjadi “batu”.
Baca juga : Mengenal CNN pada Klasifikasi Citra
Contoh tabel dalam pengukuran dengan Levenshtein Distance :
Misal ada buah kata X=baru dan Y=batu
B | A | R | U | ||
0 | 1 | 2 | 3 | 4 | |
B | 1 | 0 | 1 | 2 | 3 |
A | 2 | 1 | 0 | 1 | 2 |
T | 3 | 2 | 1 | 1 | 2 |
U | 4 | 3 | 2 | 2 | 1 |
Berdasarkan tabel diatas maka dapat dilihat nilai distancenya adalah 1 yang terletak pada tabel sebelah kanan paling bawah. Lalu dilakukan pengukuran nilai similarity dengan rumus berikut :
Keterangan,
Sim : nilai kemiripan
Dis : jarak levenshtein
Max length : nilai string terpanjang
Jika nilai similarity nya adalah 1, maka kedua string yang dibandingkan itu sama. Di lain hal jika nilai similarity nya 0 maka kedua string yang dibandingkan itu tidak sama.
Semoga bermanfaat!!