Buen dia,
Pues, yo se que debe haber una forma mas sencilla de lograrlo, o talvez esta no sea la mejor manera y todas esas cosas.
Quiero compartirles algo que hice para extraer las palabras realmente importantes para crear etiquetas o keywords ya sea para un campo en la base de datos para hacer un buscador, o para lo que pueda servir.
este es el código:
Código PHP:
Ver original<?php
function conseguirEtiquetas($texto){
//separamos la cadena de texto por espacios
$separarTexto = explode(" ", $texto);
/* con este foreach lo que hago es que quito las palabras que sean
de menos de 3 caracteres como lo son las, los, un, una y todas esas */
foreach($separarTexto as $valor){
$caracteres = strlen($valor); // cuento el numero de caracteres if($caracteres > '3'){ // verifico que sea mayo que 3
$etiquetas[] = $valor; // agrego la palabra al array etiquetas si es mayor que 3
}
}
// pasamos todos las palabras que existan dentro del array a minusculas
/* defino los arrays para las palabras que no deben estar dentro
de las etiquetas utilice articulos y preposiciones del idioma español
pueden colocar mas palabras o lo que quieran dentro de los arrays para
que las palabras sean eliminadas del resultado final */
$articulosPreposiciones = array( "articulos" => array('unos', 'unas', 'este','estos', 'esos', 'aquel', 'aquellos', 'esta', 'estas', 'esas', 'aquella', 'aquellas', 'éste', 'éstos', 'ésos', 'aquél', 'aquéllos', 'ésta', 'éstas', 'ésas', 'aquélla', 'aquéllas'), "preposiciones" => array('ante', 'bajo', 'cabe', 'desde', 'contra', 'entre', 'hacia', 'hasta', 'para', 'según', 'segun', 'sobre', 'tras') );
/*- utilizo la funcion de PHP array_dif para que me compare las palabras
con las preposiciones y los articulos y me devuelva solo lo que en
realidad necesitamos, osea las palabras que merecen ser etiquetas */
$resultado = array_diff($etiquetas, $articulosPreposiciones['articulos'], $articulosPreposiciones['preposiciones']);
// retorno el resultado
return $resultado;
}
/* UTILIZANDO LA FUNCION */
$probando = "Este es un texto muy largo que quiero ver si funciona";
$etiquetas = conseguirEtiquetas($probando);
print_r($etiquetas); // imprime Array ( [1] => texto [2] => largo [3] => quiero [4] => funciona ) ?>
Si alguien quiere meterle la mano, o quiere por ejemplo hacer algun comentario o arreglo pues BIENVENIDO SEA...
Espero que les ayude en sus desarrollos.
ATT: Juan Esteban