Anda di halaman 1dari 21

Edit Distance atau

Levenshtein
Distance
Natural Language Processing
Pertemuan 6
1
Pengertian Levenshtein
Distance
Natural Language Processing

2
Definisi

Algoritma Levenshtein Distance, atau sering disebut dengan Edit


Distance merupakan algoritma untuk mencari jumlah perbedaan
antara dua buah string.
Algoritma ini ditemukan pada tahun 1965 oleh seorang ilmuwan
Rusia bernama Vladimir Levenshtein.

3
Definisi

Algoritma Levenshtein Distance pada dasarnya akan menghitung


jumlah minimum dari upaya transformasi suatu string menjadi string
lain. Transformasi ini meliputi penggantian, penghapusan, dan
penyisipan.
Algoritma ini digunakan untuk mengoptimalkan pencarian string
karena apabila dilakukan pencarian setiap kombinasi operasi-operasi
string tersebut maka akan membutuhkan sumber daya yang besar dan
tidak efektif.
4
Definisi

Algoritma ini menggunakan matriks dua dimensi dalam perhitungan


nilai jarak edit (edit distance).
Matriks tersebut akan berisi nilai berupa jumlah operasi
penghapusan, penyisipan dan penukaran yang dibutuhkan dalam
mengubah string sumber ke string target.

5
Definisi

Levenshtein distance digunakan untuk mengukur nilai kesamaan atau


kemiripan antara dua buah kata (string). Jarak Levenshtein diperoleh
dengan mencari cara termudah untuk mengubah suatu string. Secara
umum, operasi mengubah yang diperbolehkan untuk keperluan ini
adalah:
▰ memasukkan karakter ke dalam string,
▰ menghapus sebuah karakter dari suatu string,
▰ mengganti karakter string dengan karakter lain.
6
2
Operasi-Operasi pada
Levenshtein Distance
Natural Language Processing

7
1. Operasi Penyisipan Karakter (Insertion)

Operasi penyisipan karakter ialah menambahkan karakter ke dalam


suatu string.
Contohnya string ‘tdk’ menjadi string ‘tidak’, dilakukan penyisipan
karakter ‘i’ dan 'a' di antara karakter akhir dan awal. Penyisipan tidak
hanya bisa dilakukan di tengah string, namun bisa juga disisipkan di
awal maupun disisipkan di akhir string.

8
2. Operasi Penghapusan Karakter (Deletion)

Operasi penghapusan karakter ialah proses menghapus karakter dari


suatu string.
Contohnya string ‘ashar’ karakter tengah dihilangkan sehingga
menjadi string ‘asar’. Pada operasi ini dilakukan penghapusan
karakter ‘h'.

9
3. Operasi Penukaran Karakter (Subtitution)

Operasi penukaran karakter merupakan operasi mengganti sebuah


karakter dengan karakter lain.
Contohnya penulis menuliskan string ‘kempes’ menjadi ‘kempis’.
Dalam kasus ini karakter ‘e’ yang terdapat pada string d diubah
dengan huruf ‘i’.

10
3
Langkah-Langkah Algoritma
Levenshtein Distance
Natural Language Processing

11
Langkah-Langkah Algoritma Levenshtein
Distance

Rumus operasi
penghapusan,
penyisipan, dan
penukaran karakter yang
digunakan untuk
mengisi nilai matriks
pada Levenshtein
Distance dapat dilihat
pada gambar di bawah:

12
Langkah-Langkah Algoritma Levenshtein
Distance

Adapun langkah-langkah algoritma Levenshtein distance dalam


mendapatkan nilai edit distance adalah sebagai berikut:
Misalkan S = String sumber, dan T = String target

13
Langkah-Langkah Algoritma Levenshtein
Distance

Langkah 1: Inisialisasi
a) Hitung panjang S dan T, misalkan m dan n
b) Buat matriks berukuran 0...m baris dan 0...n kolom

c) Inisialisasi baris pertama dengan 0...n


d) Inisialisasi kolom pertama dengan 0...m

14
Langkah-Langkah Algoritma Levenshtein
Distance

Langkah 2: Proses
a) Periksa S[i] untuk 1 < i < n
b) Periksa T[j] untuk 1 < j < m

c) Jika S[i] = T[j], maka entrinya adalah nilai yang terletak pada tepat
didiagonal atas sebelah kiri, yaitu d[i,j] = d[i-1,j-1]
d) Jika S[i] ≠ T[j], maka entrinya adalah d[i,j] minimum dari:

15
Langkah-Langkah Algoritma Levenshtein
Distance

Nilai yang terletak tepat diatasnya, ditambah satu, yaitu d[i,j-1]+1


Nilai yang terletak tepat dikirinya, ditambah satu, yaitu d[i-1,j]+1

terletak pada tepat didiagonal atas sebelah kirinya, ditambah satu,


yaitu d[i-1,j-1]+1

16
Langkah-Langkah Algoritma Levenshtein
Distance

Langkah 3: Hasil entri matriks pada baris ke-i dan kolom ke j, yaitu
d[i,j]
Langkah 2 diulang hingga entri d[m,n] ditemukan.

17
Contoh 1

▰ Sebagai contoh, jarak Levenshtein antara kata "kartun" dan kata


"gantung" adalah 3, karena tiga pengeditan berikut mengubah
satu kata ke kata yang lain, dan tidak ada cara untuk
melakukannya dengan kurang dari tiga pengeditan:
▰ kartun → gartun (substitusi "k" menjadi "g")
▰ gartun → gantun (substitusi "r" menjadi "n")
▰ gantun → gantung (penyisipan "g" di akhir).

18
Contoh 2

Dua buah string yang akan digunakan


sebagai contoh adalah RONALDINHO
dengan ROLANDO. Jika dilihat sekilas,
kedua string tersebut memiliki jarak 6.
Berarti untuk mengubah string
RONALDINHO menjadi ROLANDO
diperlukan 6 operasi, yaitu:

19
Contoh 2

Mensubtitusikan N dengan L ( RONALDINHO ->


ROLALDINHO )
Mensubtitusikan L dengan N ( ROLALDINHO -> ROLANDINHO )
Mensubtitusikan I dengan O ( ROLANDINHO ->
ROLANDONHO )
Menghapus O ( ROLANDONHO -> ROLANDONH )
Menghapus H ( ROLANDONH -> ROLANDON )
20
THANKS!
Any questions?
You can contact me at
ana.tsalits@trunojoyo.ac.id

21

Anda mungkin juga menyukai