Inicio PHP Mis Funciones Contar palabras repetidas

Contar palabras repetidas

Jueves, 30-12-2010 23:03 - Leer comentarios - Comentar

Funciones para un mejor SEO en PHP, me di cuenta de que las palabras clave no son tan buenas.
Me explico: Las palabras clave deben ser las palabras que son más relevantes en el texto, pero en la función no funciona así.
Una idea puede contar las palabras y apoderarse de las 25 mejores.
Para ello podemos utilizar esta función :
php
  
function countWords($text){//desde el texto
$text = strip_tags($text);//borrarlas etiquetasHTML
$text = strtolower($text);//todoaminúsculas
$text = str_replace (array('\\r\\n', '\\n', '+'), ',', $text);//sustituir alos posibles saltos de linea
$text = str_replace (array('–','(',')',':','.','?','!','_','*','-'), '', $text);//reemplazar el carácterno es válido
$text = str_replace (array(' ','.'), ',', $text);//sustituir por comas
$wordCounter=array();//array paramantenerla palabra->númeroderepeticiones
$arrText=explode(",",$text);//Crear un array con las palabras
unset($text);
foreach ($arrText as $value) {
$value=trim($value);//quitar espacios
if ( strlen($value)>0 ) {//mayor que 0
php
  if (array_key_exists($value,$wordCounter)){//si la clave existe
else $wordCounter[$value]=1;//creando clave
}
}
unset($arrText);
uasort($wordCounter,"cmp");//short from bigger to smaller
$keywords="";
foreach($wordCounter as $key=>$value){
$keywords.="".$key." => ".$value."";
}
$keywords.="";
unset($wordCounter);
return $keywords;
}
function cmp($a, $b) {//Ordenar los numeros descendientemente
if ($a == $b) return 0;
return ($a < $b) ? 1 : -1;
}

Esta función devuelve una lista ordenada con las palabras.
También tengo que decir que funciona muy rápido.

Comentarios

Hely Rojas - Martes, 06-05-2014 05:27

//recibe un texto, lo limpia de caracteres raros
//luego cuenta y ordena las palabras repetidas de menor a mayor

$texto="ola boba ola leo lina fea lina";
$rta=tagme($text);
print_r($rta);

function tagme($txt){
$txt = preg_replace("/[^a-z A-Z0-9_\-]/","",trim(strtolower($txt)));
$txt = preg_replace("/(\s){2,}/",'$1',$txt);
$txt=str_replace(" ", ",", $txt);
$txt=explode(',', $txt);
$txt=array_count_values($txt);
arsort($txt);
return $txt;
}


Mateen - Martes, 08-11-2011 21:39

I really wish there were more artclies like this on the web.


No se permiten comentarios en este momento.