HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Ruby ile iki veri arasındaki benzerliğin hesaplanması


Bir RoR projesinde, iki farklı veritabanında bulunan ad-soyad ve kimlik numarası verilerinin birbirlerine ne kadar benzediğinin hesaplanması ve farklı veri setlerinin birbiriyle aynı olma olasılığının tespiti gibi bir ihtiyacım olmuştu.

Örneğin aşağıdaki iki veri birbirine ne kadar benziyor, bu kişiler gerçekten aynı kişiler olabilir mi bunu hesaplamam gerekiyordu:

"Ahmet Metin 123456789"
"Ahmet Makin 123123123"

Bu hesaplamayı yapabilmek için Elasticsearch ve Ruby'nin marifetleri yeterli oldu. Elasticsearch'ün Ruby için sağladığı records.each_with_hit metodu ile herhangi iki veri birbirlerine ne kadar benziyor (yakınsıyor) kontrol edebilir ve benzerlik oranını 0-2 aralığında matematiksel olarak alabilirsiniz.

Continue reading
Date: | Tags: ruby programlama, ruby dersleri, ruby örnekleri, ruby kodları | Categories: tech, ruby

Ruby günlüğü - gün 11


Ruby'de if, elsif, else, unless gibi pek çok kontrol yapısı bulunmaktadır. Bu yazıda kontrol yapılarına ilişkin bazı örnekler gösterceğim.

Ruby'de if ve unless koşulu

Tek satır için basit bir örnek:

yas = 23
puts "Yasiniz yeni yasalara gore alkol almak icin cok kucuk" if yas < 24

Multiple satır için basit bir örnek :

yas = 23
if yas < 23
  puts "Yasiniz yeni yasalara gore alkol almak icin cok kucuk"
end
Continue reading

Ruby günlüğü - gün 10


Ruby'de sözlükler (hash) oldukça geniş alanlarda kullanılabilirler. Bunu Python'da tecrübe etmiştim. Dizilerden bazı anlarda daha maharetli olacaklardır. Dizileri en basit anlamıyla, nesneler grubu olarak tanımlayabiliriz, sözlükler için de aslında bu tanım yanlış olmayacaktır. Diziler, nesnelerin tanımlanmış bir sırada ve biçimde toplu halde bulunmasıdır, hash yani sözlüklerde ise durum biraz daha farklı. Sözlükler dizilerden farklı olarak anahtar-değer mantığı ile çalışır.

sozluk = {'isim' => 'Mustafa Serhat', 'nick' => 'msdundar'}

Burada 2 adet sözlük öğemiz var. Bir tanesi isim diğeri ise nick. Bu öğeler (yani anahtarlar - key), karşılarında ki değere (value) sahip.

Continue reading

Ruby günlüğü - gün 9


Ruby'de basit bir dizi şöyle tanımlanır;

dizi = [1,2,3,4,5,6]

Dizinin elemanlarını, dizide ki yerine göre ekrana yazdırırız;

puts dizi[3]
> 4

Sonuç 4 olacaktır. Çünkü bir çok programlama dilinde karşılaşmış olacağınız üzere, programlama dillerinde sayım işlemine 0'dan başlanır.

Continue reading

Ruby günlüğü - gün 8


Regular Expressions konusu aslında oldukça detaylı bir konu, ama dilden dile çok fazla fark göstermiyor, örneğin PHP'de ilk iki karakteri kastetmek istediğimizde %.2a (a burada temsili ifade) kullanıyoruz. Ruby'de ise, ^.. kullanıyoruz. Ruby düzenli ifadeler kullanımı konusunda Perl'e çok benziyor ve NFA eşleştirmesini kullanıyor.

Bu düzenli ifadeler nerede işimize yarar, açıkcası bende bir proje üzerinde çalışırken önemini anlamıştım. Bir kullanıcı adı ve şifre girişi düşünün, kullanıcı adı olarak öğrenci numarası kullanılacak ve okulumun öğrenci numaraları 8 haneli. İlk 2 hane okula giriş yılını temsil ediyor, kullanıcı adında bunu kontrol ettirip, öğrenci olmayanların girmesine bir ölçüde engel olmalıyız.

Continue reading