Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/03/2009, 14:16
AngelFelix
 
Fecha de Ingreso: diciembre-2002
Ubicación: Toledo
Mensajes: 27
Antigüedad: 21 años, 4 meses
Puntos: 0
Densidad de palabras de un texto

Tengo creado un código para saber la densidad de palabras frecuentes de un texto.
Partiendo de un texto cualquiera, asignado a una variable, el código crea un listado con las palabras más frecuentes.
¿Qué necesito? .- Sacar el listado de las palabras frecuentes separadas por comas fuera del foreach para añadir dicho listado a un campo MySQL
¿Alguna idea?

Código PHP:
<?php

   $texto 
"Cuando se reconosció el armada del Turco, en la dicha batalla naval, el dicho Miguel de Cervantes
estaba malo y con calentura, y el dicho capitán... y otros muchos amigos suyos le dijeron que, pues estaba enfermo
y con calentura, que estuviese quedo abajo en la cámara de la galera; y el dicho Miguel de Cervantes respondió que
qué dirían dél, y que no hacía lo que debía, y que más quería morir peleando por Dios y por su rey, que no meterse
so cubierta, y que con su salud... Y peleó como valente soldado con los dichos turcos en la dicha batalla en el lugar
del esquife, como su capitán lo mandó y le dio orden, con otros soldados. Y acabada la batalla, como el señor don Juan
supo y entendió cuán bien lo había hecho y peleado el dicho Miguel de Cervantes, le acrescentó y le dio cuatro ducados
más de su paga... De la dicha batalla naval salió herido de dos arcabuzazos en el pecho y en una mano, de que quedó
estropeado de la dicha mano."
;


    
// str_word_count 0 - cuenta la cantidad de palabras de la cadena
    
$cuenta_palabras=str_word_count($texto);

    
// str_word_count 1- formar un array con las palabras
    
$array_palabras=array($texto);

    
// strlen — Obtiene la longitud de la cadena
    
$v=strlen($texto);


    
$frecuencia array_count_valuesstr_word_count$texto1) );
    
arsort ($frecuencia);

    foreach( 
$frecuencia as $F => $value ) {

    
// Creo que es la formula para la densidad de palabras...¿ :) ?
    
$densidad round( ($value 100) / ($cuenta_palabras) );

    
// trim — Elimina espacios en blanco (u otros caracteres) del principio y final de una cadena
    
$palabra_frecuente=trim($F);

    
//  Excluir palabras poco frecuentes, en este caso inferiores a 2
    
if($value >=2){

    
// Obtener la longitud de la cadena de frecuencia
    
$long=strlen($F);

    
//  Excluir palabras con longitud de frecuencia inferior a 5
    
if($long >= 5){

    
// Resaltar
    
$texto str_replace"$palabra_frecuente""<span style='background-color: #FF9933'>$palabra_frecuente</span>" $texto);


    echo
"<ul><li><strong><span style='background-color: #FFFF00'>".$palabra_frecuente."</span></strong> - Frecuencia: ".$value." - Densidad: ".$densidad."% </li></ul> \n";



}
}
}

#### Necesito listar las palabras frecuentes  ($palabra_frecuente) separadas por comas fuera de foreach
#### Con el proposito de alamcenar dicho listado en un campo de una tabla MySQL

        
print "<p>".$texto."</p>" ;
?>