Python: Kümeler için Jaccard Benzerliği

Sıddık Açıl
Dec 13, 2017

--

Bu yazımızda Python dilinde Class Extension konusuna değineceğiz. Bu konuya örnek olması açısından kümeler arasındaki uzaklık ölçütlerinden biri olan Jaccard Benzerliği kavramını ele alacağız.

Class Extension Kavramı

Built-in yapılara(str, set, list…) ekstra fonksiyonelite ekleme işlemine Class Extension denir. Bu kavram C# dilinde sıkça kullanılır. Python dilinde benzeri bir davranışı elde etmek için Inheritance kullanılır.

Jaccard Benzerliği Ölçütü

İki kümenin birbirine ne kadar benzediğinin ölçütüdür. Aşağıdaki şekilde formülize edilebilir.

Basit bir Türkçe ile anlatmak gerekirse, Jaccard Benzerliği iki kümenin kesişiminin eleman sayısının birleşiminin eleman sayısına bölümüdür.

Gerçekleme

İlk olarak built-in set yapısından türetilmiş bir sınıf oluşturduk ve altına yeni metodumuzu ekledik. Sonrasında sınıf metodumuzu kullanabilmek adına yeni oluşturduğumuz sınıftan iki obje oluşturduk. Burada dikkat edilmesi gereken nokta Python’ın set yapısına bir değişiklik yapmadığımız, o set yapısından türetilmiş kendi oluşturduğumuz yapıya ekleme yaptığımızdır.

Bir sonraki yazıda görüşmek üzere.

--

--