06 AĞUSTOS 2017
PERŞEMBE
17.00
PHP ile Cümle Karşılaştırma Uygulaması

Girilen iki cümle arasında benzerlik hesabını kısmende olsa nasıl gerçekleştirileceğini anlatmak istiyorum.

 

Elimide bulunan iki cümleyi birbiri ile karşılaştıracağımız mini bir fonksiyon oluşturdum.

Fonksiyonumuzu inceleyelim;

function cumleKarsilastirma($cumle, $cumle2, $ayriTut = array())
{
	$final = array();
	$cumleParcala = explode(" ", $cumle);
	$cumleParcala2 = explode(" ", $cumle2);
	for ($m=0; $m < count($cumleParcala); $m++) { 
		for ($s=0; $s < count($cumleParcala2); $s++) { 
			if (strtolower($cumleParcala[$m]) == strtolower($cumleParcala2[$s])) {
				$uyari = 0;
				for ($n=0; $n < count($ayriTut); $n++) {
					for ($b=0; $b < count($cumleParcala[$b]); $b++) { 
						if(strtolower($ayriTut[$n]) == strtolower($cumleParcala[$m])) {$uyari = 1;}
					}
				}
				if($uyari == 0) {
					$final[$m] = 1; break;
				}
			}
			else {$final[$m] = 0;}
		}
	}
	$olasilikHesaplama = array_count_values($final);

	if (isset($olasilikHesaplama[1])) {
		$olasilik = $olasilikHesaplama[1]/count($final)*100;
	} else {
		$olasilik = 0;
	}

	echo "<b>Cümle 1: </b>".$cumle."<br/>";
	echo "<b>Cümle 2: </b>".$cumle2."<br/><br/>-> ";
	if($olasilik <= 50) {
		echo "Bu iki cümlenin benzer olma ihtimali düşüktür. <b>(%".$olasilik.")</b>";
	} elseif($olasilik == 100) {
		echo "<b>Bu iki cümle aynı kelimelerden oluşmaktadır.</b>";
	} else {
		echo "Toplamda ".count($final)." kelimeden <b>".$olasilikHesaplama[1]." adet kelime birebir kullanılmıştır. (%".$olasilik.")</b>";
	}

}

Fonksiyon nasıl çalışıyor?

Fonksiyona 3 adet veri gönderebiliyoruz. İlk 2 parametremiz zaten cümlelerimizden oluşuyor. Birinci ve İkinci cümleyi giriyoruz. Arından 3. parametremize eğer istersek karşılaştırmada ayrı tutulacak kelimeleri giriyoruz. Aşağıdaki görseli inceleyersek olayı anlayabiliriz. Ben görsel olması açısından bir form hazırladım ve forma girilen 2 cümlede karşılaştırma fonksiyonumu kullandım.

Görüldüğü üzere fonksiyonumuz bu işe yaramaktadır. Geliştirilebilir, değiştirilebilir ve güncellenebilir. Hatta kelime kök karşılaştırılması yapılabilir (zamandan kayıp olsa da)... Nasıl bir alanda kullanacağınıza bağlı olarak geliştirebilirsiniz.

Uygulama Demosu Uygulamanın Dökümanlarını İndir

İyi çalışmalar

YORUMLAR 0
Bu konuya henüz kimse yorum yapmadı.
İlk yorumu sen yapmak ister misin?
YORUM BIRAK
Şuanda bu yoruma cevap yazıyorsunuz:
İptal Et