Başlangıç > Kodlar > Java ile Türkçe hecelemek

Java ile Türkçe hecelemek

Canım sıkıldı gece gece biraz kod yazayım dedim. Ali Nesin'in bir makalesinden yararlanarak yazdım bu kodu. 

Trabzonspor, Fotostar, şokokrem gibi son 4 hafri ayrıca bir kelime olan ya da en azından 4 harfli bir hece olan kelimeleri doğru heceleyemiyor.

Ama dedikleri gibi "There is always one more bug!"  :)

 

/**
* @author Crimin@l
*/
public class Hece
{
public static String[] heceleme(String s)
{
String[] arr = new String[0];
int j=s.length();
for(int i=s.length();i>0;i--)
{
if(seslimi(s.substring(i-1,i)))
{
if(i-2!=-1)
{
if(seslimi(s.substring(i-2,i-1)))
{
arr = extendArray(arr,s.substring(i-1,j));
j=i-1;
}
else
{
if(i==3)
{
if(seslimi(s.substring(0,1)))
{
arr = extendArray(arr,s.substring(i-2,j));
j=i-2;
arr = extendArray(arr,s.substring(0,1));
i=0;
}
else
{
arr = extendArray(arr,s.substring(i-3,j));
j=i-2;
i=0;
}
}
else
{
arr = extendArray(arr,s.substring(i-2,j));
j=i-2;
}
}
}
else
{
arr = extendArray(arr,s.substring(i-1,j));
}
}
}
return arr;
}
public static boolean seslimi(String s)
{
if(s.compareTo("a")==0 || s.compareTo("e")==0|| s.compareTo("ı")==0 || s.compareTo("i")==0|| s.compareTo("o")==0 || s.compareTo("ö")==0 || s.compareTo("u")==0|| s.compareTo("ü")==0)
return true;
else
return false;
}
public static String[] extendArray(String[] arr, String s)
{
String[] arr2=new String[arr.length+1];
arr2[0]=s;
for(int i=0; i<arr.length;i++)
arr2[i+1]=arr;
return arr2;
}
public static String toString(String[] arr)
{
if(arr.length==0)
return "İşlem yürütülemedi. Heceleme yapılamadı, lütfen girdinizi kontrol ediniz.";
String s="";
for(int i=0;i<arr.length-1;i++)
s+=arr + " - ";
s+=arr[arr.length-1];
return s;
}

public static void main(String[] args)
{
System.out.println(toString(heceleme("heceleme")));

}

}

 

Reklamlar
Kategoriler:Kodlar Etiketler:, , ,
  1. 07/09/2016, 00:57

    bu kodlar visual basic application da nasıl yazılabilir aynı mıdır?bir program var corel diye grafik tasarım programı onda visual basic application diye kod sistemi ile çalışan bir bölüm var makro’lar yazabiliyoruz makrolar bizim işlerimizi kolaylaştıran küçük programcıklar olarak değerlendirilebilir türkçe heceleme ya da tireleme dediğimiz özellik corel de yok ve genelde gazete mizanpajı yaparken ya da kitap dergi için corelde çalışırken tirelemeyi elle yapmak durumunda kalıyoruz,bunun aşılabilmesi için ben de kendimce araştırıp bir makro yazabilir miyim diye düşünüyorum, kodlar konusunda bilgim yok ama deneme yanılma ile bir kaç makro yazdım oldukça işime yaradı halen kullanıyorum…bir arkadaşımız güzel bir makro yapmış bu konuda ama bende araştırıyorum kendim yapabilirsem diye corel’in visual basic application bölümünde corele ait komutlarda var ya da buna powerclip gibi tam da bildiğim söylenemez.. elbette ama genel itibarıyle visual basic kullanılıyor anladığım kadarıyla sizin bu heceleme kodlarınız kullanılabilir mi corel içinde yani wordde türkçe tireleme yapıldığı gibi kelime sonlarını ayıracak türkçeye göre tireleyecek, bu yazdığınız kodların corel’de açtığımız bir text alanına boyutları farklı olacaktır bu text alanlarının uygulanması mümkün olabilir mi?

    http://www.btd.gazi.edu.tr/article/viewFile/1041000147/pdf bu adreste bir anlatım var sözünü ettiğiniz sorunu aşmaya yardımcı olur mu bilemiyorum tabi,çalışmalarınızda başarılar kolaylıklar diliyorum

    Beğen

  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: