Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2011, 14:08
Avatar de jotaincubus
jotaincubus
 
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
[APORTE] Función extraer etiquetas cadena de texto usando artículos y preposiciones

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
  1. <?php
  2. function conseguirEtiquetas($texto){
  3.  
  4.     //separamos la cadena de texto por espacios
  5.     $separarTexto = explode(" ", $texto);
  6.  
  7.     /* con este foreach lo que hago es que quito las palabras que sean
  8.     de menos de 3 caracteres como lo son las, los, un, una y todas esas */
  9.     foreach($separarTexto as $valor){
  10.         $caracteres = strlen($valor); // cuento el numero de caracteres
  11.         if($caracteres > '3'){ // verifico que sea mayo que 3
  12.             $etiquetas[] = $valor; // agrego la palabra al array etiquetas si es mayor que 3
  13.         }  
  14.     }
  15. // pasamos todos las palabras que existan dentro del array a minusculas
  16. $etiquetas = unserialize(strtolower(serialize($etiquetas)));
  17.  
  18. /* defino los arrays para las palabras que no deben estar dentro
  19. de las etiquetas utilice articulos y preposiciones del idioma español
  20. pueden colocar mas palabras o lo que quieran dentro de los arrays para
  21. que las palabras sean eliminadas del resultado final */
  22. $articulosPreposiciones = array(
  23.     "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'),
  24.     "preposiciones" => array('ante', 'bajo', 'cabe', 'desde', 'contra', 'entre', 'hacia', 'hasta', 'para', 'según', 'segun', 'sobre', 'tras')
  25. );
  26.  
  27. /*- utilizo la funcion de PHP array_dif para que me compare las palabras
  28. con las preposiciones y los articulos y me devuelva solo lo que en
  29. realidad necesitamos, osea las palabras que merecen ser etiquetas */
  30. $resultado = array_diff($etiquetas, $articulosPreposiciones['articulos'], $articulosPreposiciones['preposiciones']);
  31.  
  32. // retorno el resultado
  33. return $resultado;
  34. }
  35.  
  36. /* UTILIZANDO LA FUNCION */
  37.  
  38. $probando = "Este es un texto muy largo que quiero ver si funciona";
  39. $etiquetas = conseguirEtiquetas($probando);
  40. print_r($etiquetas); // imprime Array ( [1] => texto [2] => largo [3] => quiero [4] => funciona )
  41. ?>

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
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???