El array de palabras no-repetidas es $palabras_no_rep
Logro determinar el peso de cada palabra pero luego no puedo ordenar la matriz $palabras_no_rep por pesos. Se entiende ?
Les dejo el codigo para ver que se puede hacer (gracias desde ya!)
Código PHP:
<?php
$str = "La casa es blanca en casi todos lados. Mi casa es verde porque asi me gusta a mi. Hi!, como va la hipoteca de tu casa?";
// unifico
$str = strtolower($str);
// Limipio de caracteres indeseables
$nostr = array(".",",",";","!","?");
For ($i=0;$i<count($nostr);++$i){
$str = str_replace ($nostr[$i]," ",$str);
}
////////////////////////////////
$palabras = array();
$palabras = explode (" ",$str); // puede haber repetidas
/// elimino (casi todos) los elementos vacios del array
For ($i=0;$i<count($palabras);++$i){
If ( strlen($palabras[$i])==0)
array_splice ($palabras,$i,1); // elimino elemento del array
}
$palabras_no_rep = array();
$pesos = array();
For ($i=0;$i<count($palabras);++$i){
If ( !in_array($palabras[$i],$palabras_no_rep)){
$palabras_no_rep[count($palabras_no_rep)]= $palabras[$i];
$pesos[$palabras[$i]]=1;
}else{
++$pesos[$palabras[$i]];
}
}
echo "$str <p/>";
For ($i=0;$i<count($palabras_no_rep);++$i){
If ( strlen($palabras_no_rep[$i])>0 )
echo "La palabra: <b>".$palabras_no_rep[$i]."</b> tiene un peso de ".$pesos[$palabras_no_rep[$i]]." y una longitud de".strlen($palabras_no_rep[$i])."<br/>";
}
?>