|
PHP ile Türkçe Heceleme Fonksiyonu - PHP Webmaster bilgi bankası, knowledge base Webmaster Araçları
AnaSayfa > PHP > PHP ile Türkçe Heceleme Fonksiyonu |
| Kategori | : PHP | Gönderen | : Admin | Tarih | : 2009-02-13 | Puan | : 6 | Katılımcı : 2 | Okunma | : 4382 | | | |
| | <?
// hececi
// Bir Metni Türkçe Hece Kurallarına Göre Hecelerine Ayırır.
class hececi{
var $kelimeDizisi=array();
var $heceDizisi=array();
var
$sesliler=array('a','e','ı','i','o','u','ö','ü','A','E','I','İ','O','Ö','U','Ü');
function hececi()
{
}
function hecelereAyir($text){
$a=explode(" ",$text);
foreach($a as $i=>$k){
$this->kelimeDizisi[]=trim($k);
}
foreach($this->kelimeDizisi as $i=>$kelime){
$this->_hecele($kelime,$i);
}
}
function heceliYazdir(){
$sonuc ="";
foreach($this->heceDizisi as $i=>$kd){
$kachece=count($kd);
$kelime="";
for($x=$kachece-1; $x>=0; $x--){
$kelime .= $kd[$x]."-";
}
$sonuc .= substr($kelime,0,-1)." ";
}
return $sonuc;
}
function _hecele($sozcuk,$sira){
/*sözcükte hiç sesli yoksa ya da sözcükte hiçbisey yoksa son olusturulan heceye ekle ve islemi durdur.*/
if(!$this->_sesliVarmi($sozcuk)){
if(isset($this->heceDizisi[$sira]) && ($sayi=count($this->heceDizisi[$sira]))>0)
$this->heceDizisi[$sira][$sayi-1]=$sozcuk.$this->heceDizisi[$sira][$sayi-1];
else
$this->heceDizisi[$sira] [0]=$sozcuk;
return;
}
$enSagdakiSesliKonumu=$this->_enSagdakiniBul($sozcuk,$this->sesliler);/** en sagdaki sesli harfin solundaki harf sesli ise o zaman
bu en sagdaki sesliden heceyi ayir */
if( $enSagdakiSesliKonumu == 0 || $this->_seslimi($sozcuk{$enSagdakiSesliKonumu-1})){
$hece=substr($sozcuk,$enSagdakiSesliKonumu);
}
/** en sagdaki seslinin solundaki harf sessiz ise o zaman heceyi bu sessizden ayir*/
else{
$hece=substr($sozcuk,$enSagdakiSesliKonumu-1);
}
$k=strlen($hece);
$yeniSozcuk=substr($sozcuk,0,-$k);
$this->heceDizisi[$sira][]=$hece;
/** olusan heceyi attiktan sonra kalan kelimeyle basa dön*/
return $this->_hecele($yeniSozcuk,$sira);
}
function _enSagdakiniBul($kelime,$arananlar){
$u=strlen($kelime);
for($i=$u-1;$i>=0;$i--){
if(in_array($kelime{$i},$arananlar))
return $i;
}
return null;
}
function _seslimi($harf){
return in_array($harf,$this->sesliler);
}
function _sesliVarmi($kelime){
$u=strlen($kelime);
for($i=0;$i<$u;$i++){
if($this->_seslimi($kelime{$i}))
return true;
}
return false;
}
}
//KULLANIMI :
$metin="PHP İçin En Yararlı Türkçe Kaynak";
$h=new hececi();
$h->hecelereAyir($metin);
echo $h->heceliYazdir();
?>
|
Yorumlar | Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin! | Yorum Ekleme Aparatı | Yorum Eklemek için lütfen sol menuden giris yapınız.. | Toplam 0 yorum listelendi. |
|