Pengenalan persamaan jaro–winkler (definisi dan contoh)
Dalam statistik, kesamaan Jaro-Winkler adalah cara untuk mengukur kesamaan antara dua string.
Kesamaan Jaro (sim j ) antara dua string didefinisikan sebagai:
sim j = 1/3 * ( m /|s 1 | + m/|s 2 | + (mt)/m )
Emas:
- m : Jumlah karakter yang cocok
- Dua karakter s 1 dan s 2 dianggap cocok jika sama dan berjarak kurang dari [max(|s 1 |, |s 2 |) / 2] – berjarak 1 karakter.
- |s 1 | , |s 2 | : Panjang senar pertama dan kedua
- t : Jumlah transposisi
- Dihitung sebagai jumlah karakter yang cocok (tetapi dalam urutan yang berbeda) dibagi 2.
Kesamaan Jaro-Winkler (sim w ) didefinisikan sebagai:
sim w = sim j + lp(1 – sim j )
Emas:
- sim j : Kesamaan Jaro antara dua string, s 1 dan s 2
- l : Panjang awalan umum di awal string (maks 4 karakter)
- p : Faktor penskalaan yang menunjukkan seberapa besar skor disesuaikan ke atas agar memiliki awalan yang sama. Biasanya ini didefinisikan sebagai p = 0,1 dan tidak boleh melebihi p = 0,25.
Kesamaan Jaro-Winkler antara dua string selalu antara 0 dan 1 dimana:
- 0 menunjukkan tidak ada kesamaan antar string
- 1 menunjukkan bahwa stringnya sama persis
Catatan : Jarak Jaro-Winkler akan didefinisikan sebagai 1 – sim w .
Contoh berikut menunjukkan cara menghitung kesamaan Jaro-Winkler antara dua string dalam praktiknya.
Contoh: menghitung kemiripan Jaro-Winkler antara dua string
Misalkan kita mempunyai dua string berikut:
- Saluran 1 (s 1 ): mouse
- Saluran 2 (s 2 ): bisu
Pertama, mari kita hitung kemiripan Jaro antara kedua string ini:
sim j = 1/3 * ( m /|s 1 | + m/|s 2 | + (mt)/m )
Emas:
- m : Jumlah karakter yang cocok
- Dua karakter s 1 dan s 2 dianggap cocok jika sama dan berjarak kurang dari [max(|s 1 |, |s 2 |) / 2] – berjarak 1 karakter.
Dalam hal ini, [maks(|s 1 |, |s 2 |) / 2] – 1 dihitung sebagai 5/2 – 1 = 1,5. Kami akan mendefinisikan tiga huruf yang sesuai: m, u, e. Jadi, m = 3 .
- |s 1 | , |s 2 | : Panjang senar pertama dan kedua
Dalam hal ini, |s 1 | = 5 dan |s 1 | = 4 .
- t : Jumlah transposisi
- Dihitung sebagai jumlah karakter yang cocok (tetapi dalam urutan yang berbeda) dibagi 2.
Dalam hal ini terdapat tiga karakter yang cocok tetapi urutannya sudah sama, jadi t = 0 .
Jadi, kita akan menghitung kemiripan Jaro sebagai berikut:
sim j = 1/3 * (3/5 + 3/4 + (3-0)/3) = 0,78333.
Selanjutnya mari kita hitung kemiripan Jaro-Winkler (sim w ) sebagai berikut:
sim w = sim j + lp(1 – sim j )
Dalam hal ini, kami akan menghitung:
sim w = 0,78333 + (1)*(0,1)(1 – 0,78333) = 0,805.
Kemiripan Jaro-Winkler antara kedua rantai tersebut adalah 0,805 .
Karena nilai ini mendekati 1, ini memberitahu kita bahwa kedua string tersebut sangat mirip.
Kita dapat mengkonfirmasi kebenarannya dengan menghitung kesamaan Jaro-Winkler antara dua string di R:
library (stringdist) #calculate Jaro-Winkler similarity between 'mouse' and 'mute' 1 - stringdist("mouse", "mute", method = "jw", p= 0.1 ) [1] 0.805
Ini sesuai dengan nilai yang kami hitung secara manual.
Sumber daya tambahan
Tutorial berikut menjelaskan cara menghitung metrik kesamaan lainnya:
Pengantar ketidaksamaan Bray-Curtis
Pengantar indeks kesamaan Jaccard