k-nn algoritması etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
k-nn algoritması etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27.2.11

Konulu Hadis Projesi ve Metin Madenciliği

Metin madenciliği tekniklerinin kullanılabileceği ve daha önce hiçbir araştırmacının üzerinde çalıştığını görmediğim bir alandan bahsetmek istiyorum.

Metin madenciliği algoritmaları hadislerin ve dini metinlerin üzerinde kullanılabilir. Araştırmacılara duyurulur..

(Not: Bu yazıyı Veri Madenciliği dersinden 4 üzerinde 2 almış bir öğrenci yazıyor, bilgilerinize. :) )

Diyanet işleri başkanlığının "Konulu Hadis Projesi" adı altında bir projesi var, bu proje yıllardan beri devam eden bir proje. 2011 Ramazan'ına yetiştirilmeye çalışılıyor diye biliyorum. Bu proje kapsamında yanlış bilmiyorsam 203000' e yakın hadis elektronik ortama aktarılıp sınıflandırılıyor ve hocalar tarafından açıklamaları yapılıyor. Bu hadisler konularına göre tasnif ediliyorlar. 105 kişilik bir çalışma grubu ile belirlenen 371 konu başlığı altında hadisler toplanıyor.

Bu proje içindeki dini metinler ve veritabanı veri madenciliği uygulamaları için son derece elverişli. Buradan bir değil, bir kaç bilimsel araştırma ve makale rahatlıkla çıkar. Neler yapılabilir diyecek olursak aklıma gelenleri kısaca yazayım:

1-) Hadisler sınıflandırma algoritmaları kullanılarak önceden belirlenen konulara göre sınıflandırılabilirler(di). Örneğin sınıflandırılmış 10-15 bin hadis bizim için öğrenme dökümanı(kümesi) olurdu, bu öğrenme kümesi kullanılarak geri kalan 190 bin civarında hadis bilgisayar yardımıyla konularına göre ayrılabilirdi. Elbette daha sonra, yapılan bu sınıflandırma işlemi yetkili ve yeterli kişiler tarafından gözden geçirilebilir, bu sayede son derece hassas bir konuda her şey bilgisayara bırakılmamış olur, öte yandan sınıflandırma işleminde zaman kazanılır.

2-) Hadislerin konuları belirlenirken veri madenciliğinin demetleme algoritmaları kullanılabilir. Bu demetleme algoritmaları ile hadisler tamamen kendi yapıları nasıl demetlenmeleri gerekiyorsa o şekilde demetlenebilirlerdi. Örneğin demetleme algoritmalarında kullanılacak çeşitli katsayılar değiştirilerek hadisler ister 10 ayrı demete, isterse 400 ayrı demete bölünebilir. Bu şekilde hadislerin konularına göre ayrılması işlemi yine hadislerin içindeki geçen kelimelerin sıklığı ve dağılımına göre bilgisayar tarafından otomatik olarak yapılabilir. Bu çalışma sonucunda ortaya çıkacak sonuç da ilim adamları için aydınlatıcı olabilir. Örneğin günün ihtiyaçlarına göre konu başlıkları belirlenirken bu çalışmanın sonuçlarından faydalanılabilir.

3-) Yine hadislerin demetleme algoritmalarına sokulmasının ardından sapan veriler(outliers) rahatlıkla tespit edilebilir. Bu sapan veriler diğer demetlenen hadislere oranla daha farklı hadisler olacaklardır ve aynı zamanda herhangi bir gruba yakınlık bakımından diğer hadislere göre daha zayıf hadisler olacaktır. İşte bu ulaşılan sonuç da din alimlerine hadislerin sıhhati ve sahihliğinin tespiti noktasında farklı bir bakış açısı getirebilir.

4-) Yaygın öğe setlerinin bulunduğu algoritmalar da yine bu alanda kullanılabilir. Bazı hadisler birden fazla muhaddisin kitabında yer alabilmektedir. Hadisler veri tabanından, birden fazla muhaddisin kitabında bulunan hadislerin hangi kitaplarda bulunduğu bilgileri alınır ve bunlarla yaygın öğe setleri bulunur. Bulunan bu yaygın öğe setleri üzerine uygulanacak ilişkilendirme algoritmaları ile aralarındaki ilişki ortaya konulur. Sonuç olarak A,B,C,D muhaddisler olsun, A>B,C ya da C,B>D gibi sonuçlar elde edilecektir. Burada A>B,C sonucunun anlamı bizim için; "bir hadis A kitabında geçiyorsa büyük ihtimalle B ve C kitaplarında da geçiyordur" demek olacak. Aynı şekilde C,B>D sonucunun anlamı da bizim için; bir hadis C ve B kitaplarında birlikte geçiyorsa büyük ihtimalle D kitabında da geçiyordur olacak. Şöyle bir sonuca da ulaşılabilirdi: F>G, yani "bir hadis F kitabında geçiyorsa G kitabında da büyük ihtimalle geçiyordur". Eğer F ve G kitaplarının yazarları aynı zamanda ve aynı yerde yaşamışlarsa bu sonuç çok da şaşırtıcı olmaz. Ancak bizim için asıl kıymetli olan F ve G yazarlarının aynı zamanda ve aynı yerde yaşamadıkları halde aynı hadisin kitaplarında geçmesi olacaktır. Bu durumun, hadisin doğruluk oranının belirlenmesi noktasında son derece önemli olduğunu düşünüyorum. 

Bu çalışmanın bir başka faydası da şu yönde olacaktır. Örneğin hadisler üzerine çalışan bir bilim adamı A ve B kitapları üzerinde çalışmışsa ve üzerinde çalışacağı bir sonraki hadis kitabının ne olacağı üzerinde düşünüyorsa yukarıda anlattığım çalışma ile çıkartılacak kurallar hocanın işine yarayabilir. Örneğin A,B>C şeklinde bir kuralımız varsa hocamız buna bakarak C kitabı üzerinde çalışma yapmaktan (daha önce üzerinde çalıştığı kitaplarda benzer hadisler olduğundan) vazgeçebilir ve başka bir alternatife yönelebilir. 

Dini metinler üzerinde metin madenciliği konusunun araştırmaya açık bir alan olduğunu düşünüyorum. Bir bilgisayarcı ile bir ilahiyatçı ortak çalışırsa son derece güzel sonuçlara ulaşılabilir...


6.12.10

K-NN Algoritması

Arkadaşlar bitirme projesinde bu algoritmayı kullandık, aşağıdaki yazı da bitirme projemin ara raporunda kullandığım, son raporda da kullanacağım bir yazıdır, Oktay Hoca'dan proje alan arkadaşların yazıyı raporlarında kullanmamasını rica ediyorum. 

Bu algoritmayı C#'da kodladık, ileride kısaca kodları da paylaşmak istiyorum. Umarım faydalı olur..
K-NN (En Yakın Komşuluk) Algoritması

KNN, eğitimli öğrenme algoritmasıdır ve amacı, yeni bir örnek geldiğinde varolan öğrenme verisi üzerinde sınıflandırma yapmaktır. Algoritma, yeni bir örnek geldiğinde, onun en yakın K komşusuna bakarak örneğin sınıfına karar verir. [1]

Bu algoritma ile yeni bir vektörü sınıflandırabilmek için doküman vektörü ve eğitim dokümanları vektörleri kullanılır. Tüm eğitim dökümanları ve kategorisi belirlenecek olan doküman vektörel olarak ifade edildikten sonra bu vektörler K-NN algoritması ile karşılaştırılırlar. 

Kategorisi belirlenmek istenen metnin vektörü, öğrenme kümesindeki metinlerin vektörleri ile karşılaştırılır. 

K-NN algoritmasında terim ağırlıklandırma için 3 çeşit yöntem kullanılabilir.
1-Bit ağırlıklandırma yöntemi,
2-Frekans ağırlıklandırma yöntemi,
3-Tf-IDF ağırlıklandırma yöntemi.

Algoritma En yakın komşuluk prensibine dayanır. Tüm dokümanlar vektörel olarak temsil edilir. Sorgu dokümanı ile diğer dokümanlar arasındaki cosinüs benzerliği hesaplanır. Benzerlik oranı 1’e en yakın olan n tane vektörün kategorisinden çok olanı dokümana atanır.
Uygulamada K-NN algoritmasının kullanılmasındaki nedenler aşağıdaki gibi sıralanabilir:
Uygulanabilirliği basit bir algoritma olması.
Gürültülü eğitim dokümanlarına karşı dirençli olması.
Eğitim dokümanları sayısı fazla ise etkili olması
Bu metot ölçeklendirilebilir bir metottur ve çok geniş veritabanları üzerinde de uygulanabilir.[4]

Her bir kelime vektörel uzayda bir boyuta karşılık gelmektedir. Her bir metin bu sayede vektörel uzayda ifade edilebilmektedir. K-NN algoritması ile vektörel uzayda bu metinlerin birbirlerine ne kadar benzedikleri tespit edilebilir. Bir başka ifadeyle birbirine en yakın metinler bulunabilir.

 Şekil 1  İki Boyutlu Vektör Uzayı

Yukarıdaki şekilde iki kelimeden oluşan bir ortak sözlüğe sahip dört metnin vektörel uzayda ifadesi gösterilmiştir. Eğer sözlük üç kelimeden oluşsaydı grafiğimiz de üç boyutlu olacaktı. Burada d1, d2 ve d3 eğitim dokümanlarımızdan oluşan vektörler, q ise sınıfını bulmak istediğimiz dökümanın vektörüdür.

Q dökümanının d1, d2 ve d3 eğitim dokümanlarından hangisine daha fazla benzediğini bulmak için aralarındaki açının cosinüs değerine bakılır. Aralarındaki açı ne kadar küçükse elde edilen cos(açı) değeri o kadar 1’e yakın olacaktır. Elde edilen değerin 1’e yakın olması, iki dökümanın birbirine ne kadar benzediğini ifade eder. 

Örneğin yukarıdaki örnekte q ile d2 arasındaki açı en küçüktür. Bu nedenle de q dökümanının en yakın olduğu doküman d2 dökümanıdır. Aralarındaki açının cosinüs degeri de 1’e yakın bir değer olarak karşımıza çıkmaktadır.

K-NN algoritmasında temel olarak aşağıdaki adımlar gerçekleştirilir:
1. K değerinin belirlenmesi.
2. Tüm öğrenme örnekleri ile olan uzaklığının hesaplanması.
3. Minimum uzaklıkğa göre sıralama işleminin yapılması.
4. Ait oldukları sınıf değerlerinin bulunması.
5. Değeri baskın olan sınıfın seçilmesi.

Burada k değerinin belirlenmesi, bize en yakın kaç vektöre bakılması gerektiğini ifade etmektedir. Örneğin k değerimiz 3 olsun. Bu durumda öğrenme kümesindeki dökümanlardan en yakın 3 tanesi alınarak dökümanın hangi sınıfa ait olduğuna karar verilir. Örneğin aşağıdaki gibi iki boyutlu kordinat sistemine yerleştirilmiş örneklerimiz olsun.

 
Şekil 2 Örnekler[2]

Yukarıdaki örneklerden maviye mi yoksa kırmızıya mı benzediğini tespit etmemiz gereken bir de yeşil örneğimiz olsun.

 
Şekil 3 Örnekler ve Sınıflandırılacak Veri[2]

K değerimizi 3 aldığımızdan yeşil örneğe en yakın olan 3 örneğe bakarız. K değeri 4 olsaydı en yakın 4 örneğe bakacaktık.

 
Şekil 4 En Yakın Üç Komşu[2]

En yakın 3 örnekten 2 tanesi kırmızı olduğundan yeşil örnek için de kırmızı sınıfına aittir diyebiliriz.

K-NN algoritmasında benzerlik hesabı aşağıdaki formülden yararlanılarak yapılabilir.

Denklem 1: K-NN Denklemi[4]
 

Yukarıdaki formülde: Wij terimin doküman içerisindeki ağırlığı, di eğitim dokümanı vektörüdür. q ise kategorisi bulunması istenen vektördür.

Kaynaklar

1.     http://ab.org.tr/ab08/bildiri/71.pdf (Erişim Tarihi: Kasım 2010)
3.     P. Hall; B. U. Park; R. J. Samworth (2008). "Choice of neighbor order in nearest-neighbor classification".
4.   http://www.metinmadenciligi.com/kaynaklar/mm1.pdf (Erişim Tarihi: Kasım 2010)


Related Posts Plugin for WordPress, Blogger...