26-04-2016, Saat: 17:08
Mesela Google'da bir kelime search ediyoruz ona yakın bir kelime varsa bunu mu demek istediniz diyor. Bunu yapan yapı ise kelimeler arası benzerlik oranıyla alakalı.
Kod:
package benzerlik;
import java.util.Scanner;
public class Benzerlik {
public static void main(String[] args) {
Scanner klavye = new Scanner (System.in);
int sayac=0;
double benzerlik;
System.out.println("1.Stringi giriniz:");
String s1=klavye.nextLine();
if(s1.equals("cık")){
System.out.println("program sonlandı");
System.exit(sayac);
}
System.out.println("2.Stringi giriniz:");
String s2=klavye.nextLine();
if(s2.equals("cık")){
System.out.println("program sonlandı");
System.exit(sayac);
}
System.out.println("k değerini giriniz:");
int k=klavye.nextInt();
int z=k;
String sk1[]=new String [s1.length()-(k-1)];
String sk2[]=new String [s2.length()-(k-1)];
for (int i = 0; i < s1.length()-1; i++,k++) {
if(k<=s1.length())
sk1=s1.substring(i, k);
for (int j = 0; j <s2.length()-1; j++,z++)
if(z<=s2.length())
sk2[j]=s2.substring(j, z);
}
for (int i = 0; i <= sk1.length-1; i++) {
for (int j = 0; j <=sk2.length-1; j++) {
if(sk1.equals(sk2[j]))
sayac++;
else
continue;
}
}
benzerlik=sayac/((Math.sqrt(sk1.length))*(Math.sqrt(sk2.length)));
System.out.println("Benzerlik:"+benzerlik);
}
}