Naive Bayes Sınıflandırması, makine öğrenimi alanında öğreticili öğrenme alt sınıfından bir yöntemdir. Bu yöntem oldukça basit ve bir o kadar da etkilidir. Temelde elde bulunan 2 farklı metin üzerinden gelen yeni metnin hangi metne daha yakın olduğunun tahmin edildiği bir yöntem olarak bilinebilir. Bu konu için bir örnek vermek gerekirse;
metin1 = Naive Bayes ile Metin Sınıflandırılması konusu, veri madenciliği alanında bilinmesi gereken önemli konulardandır.
metin2 = Naive Bayes methodu ile metin sınıflandırılması yapılabilir.
metin3 = metin sınıflandırılması
Burada metin3'te yer alan kelimelerin diğer metinlerde kaçar tane olduğunu bulduktan sonra toplam kelime sayısına oranlayabiliriz. Bu en temel halidir. Bunu n-gram yöntemi ile geliştirmek sizin elinizde.
Adımlar
1. metin1 ve metin2'yi boşluklardan ayırarak kelimelere ulaşılır.
2. Kelimelere ulaştıktan sonra metin3'te yer alan kelimeler ile karşılaştırırız.
3. Karşılaştırılan kelimelerden aynı olanların sayısını metindeki toplam kelime sayısına oranlarız. Bu bize metin3'ün diğerlerine benzerlik oranını verir.
PHP ile bu adımları uygulamamız gerekirse;
$metin1 = "Naive Bayes ile Metin Sınıflandırılması konusu, veri madenciliği alanında bilinmesi gereken önemli konulardandır.";
$metin2 = "Naive Bayes methodu ile metin sınıflandırılması yapılabilir.";
$metin3 = "metin sınıflandırılması";
$metin1_arr = explode(" ", $metin1);
$metin2_arr = explode(" ", $metin2);
$metin3_arr = explode(" ", $metin3);
$metin1_kontrol = 0;
$metin2_kontrol = 0;
for($j = 0; $j < count($metin3_arr); $j++) {
for($i = 0; $i < count($metin1_arr); $i++) {
if(strtolower($metin3_arr[$j]) == strtolower($metin1_arr[$i])) {
$metin1_kontrol++;
}
}
for($i = 0; $i < count($metin2_arr); $i++) {
if(strtolower($metin3_arr[$j]) == strtolower($metin2_arr[$i])) {
$metin2_kontrol++;
}
}
}
for($i = 0; $i < count($metin2_arr); $i++) {
$metinler[1][$i] = $metin2_arr[$i];
}
echo "Metin1: ".$metin1_kontrol/count($metin1_arr);
echo "<br>Metin2: ".$metin2_kontrol/count($metin2_arr);
Bize çıktı olarak şunu verecektir;
Metin1:0.15384615384615
Metin2:0.28571428571429
Bu durumda metin2'nin metin1'den daha benzer olduğunu savunabiliriz.