Yazan : Şadi Evren ŞEKER
Bu yazının amacı, metinler arasındaki ilişkinin ölçülmesi amacıyla geliştirilen ölçülerde (metrics) birisi olan Jaccard indeksini açıklamaktır (jaccard index). Indeks basitçe iki metin üzerinden özellik çıkarımı (feature extraction) yapıldıktan sonra ortak olan özelliklerin sayısının, iki metindeki toplam özellik sayısına bölünmesi ile elde edilir. Bu durum aşağıdaki şekilde formüle edilebilir.
[latex]J(A,B)=frac {left| A cap B right|} {left| A cup B right|} [/latex]
Yukarıdaki formülün çalışmasını iki örnek dizgi (string) üzerinden gösterelim.
Dizgi 1 = “bilgi”
Dizgi 2 = “bilim”
Bu iki dizgi üzerinde, öncelikle özellik çıkarımı (feature extraction) yapıyoruz. Örneğin her harf bir özellik olabilir veya bi-gram kullanabiliriz. Diyelim ki bi-gram kullanmak istedik bu durumda iki dizginin bi-gram değerleri aşağıdaki şekilde olacaktır:
Bi-Gram(Dizgi 1)= {bi,il,lg,gi}
Bi-Gram(Dzigi 2)= {bi,il,li,im}
İki kümenin kesişimi = {bi,il}
İki kümenin birleşimi = {bi, il , lg, li , im , gi}
Formülde yerine koyacak olursak
[latex] J(“bilgi”,”bilim”) = frac 2 6 = frac 1 3 [/latex]
Jaccard indeksinin değerinin yüksek çıkması iki dizginin birbirine daha çok benzediği anlamına gelir. İki dizgi birbirine tamamen eşitse Jaccard indeksi 1 olarak bulunur. İki dizginin hiç ortak özelliği yoksa da değer 0 olarak bulunacaktır. Jaccard indeksi 0 ile 1 arasında değişen bir değer alabilir.
Jaccard Mesafesi (Jaccard Distance)
Jaccard indeksi kullanılarak hesaplanabilen diğer bir değer de Jaccard mesafesidir. Literatürde mesafe (distance) kavramı, yunan alfabesindeki delta sembolü ile gösterildiği için indis olarak delta almış J harfi ile ifade edilir. Bu değer basitçe Jaccard Indeks’inin 1’den çıkarılması ile elde edilir. Buradaki amaç, mesafe değeri olarak benzerlik değerinin tersi değer elde etmektir. Yani birbirine yakın olan dizgilerde, benzerliğin artması ancak mesafenin azalması gerekir. Bu anlamda mesafe, benzerliğin tam tersidir ve Jaccard mesafesi de bu yaklaşıma göre, Jaccard indeksinin tersini alır. Aşağıdaki şekilde hesaplanabilir:
[latex]J_delta(A,B)=1-J(A,B) = 1 – frac {left| A cap B right|} {left| A cup B right|} = frac {left| A cup B right| – left| A cap B right|} {left| A cup B right|}[/latex]
Buna göre, yukarıda verilen örnek dizgiler arasındaki mesafe
olarak bulunacaktır. Jaccard indeksinde olduğu gibi 0 ile 1 arasında bir değer olup, Jaccard Indeksinin tam tersi şekilde, birbirinin aynı olan dizgiler için mesafe 0 ve birbiri ile hiç ortak özelliği bulunmayan dizgiler için mesafe değeri 1 çıkacaktır.
Jaccard Benzerlik Katsayısı (Jaccard Similartiy Coefficient)
Sembol olarak J harfi ile gösterilen değerdir. Jaccard indeksi ve mesafesinin metin madenciliği (text mining) gibi ortamlarda kullanılması sırasında, çok sayıda metinin bulunacağı gerçeğinden yola çıkarak geliştirilmiştir. Bu değerin hesaplanması için 4 farklı değerin hesaplanması gerekir.
Yukarıdaki şekilde gösterildiği gibi 2 farklı küme olduğunu kabul edelim. Bu kümelerin ikisinde de olan elemanların sayısı M11, birisinde olup diğerinde olmayan elemanların sayısı M01 veya M10 ve ikisinde de olmayan değerlerin sayısı M00 olarak gösterilecektir.
İkisinde de olmayan eleman, şayet sadece iki metin ile çalışıyorsak, karşılaşılacak bir durum değildir, çünkü bir özelliğin var olması için iki kümeden birisinde olması gerekir. Ancak derlemimizde (corpus) ikiden fazla metin varsa, örneğin 3. Metinde olup mevcut iki metinde bulunmayan özellikler olacaktır. İşte bu özelliklerin sayısı M00 değerini oluşturur.
Buna göre Jaccard benzerlik katsayısı ve Jaccard mesafe katsayısı aşağıdaki şekilde hesaplanabilir:
[latex] J = frac { M11 } { M00 + M10 + M01 }[/latex]
Jaccard mesafe katsayısı (jaccard distance coefficient) ise aşağıdaki şekilde hesaplanabilir:
[latex] J’ = frac { M10 + M01 } { M11 + M10 + M01 }[/latex]
Daha önce anlatıldığı gibi J + J’ = 1 olacaktır.