sql >> Base de Datos >  >> RDS >> Mysql

Obtener palabras populares en PHP+MySQL

Alguien ya lo ha hecho.

La magia que estás buscando es una función php llamada str_word_count() .

En mi código de ejemplo a continuación, si obtiene muchas palabras extrañas de esto, deberá escribir una eliminación personalizada para eliminarlas. Además, también querrá eliminar todas las etiquetas html de las palabras y otros caracteres.

Uso algo similar a esto para la generación de palabras clave (obviamente, ese código es propietario). En resumen, tomamos el texto proporcionado, verificamos la frecuencia de las palabras y, si las palabras aparecen en orden, las clasificamos en una matriz según la prioridad. Entonces, las palabras más frecuentes serán las primeras en la salida. No estamos contando palabras que solo ocurren una vez.

<?php
$text = "your text.";

//Setup the array for storing word counts
$freqData = array();
foreach( str_word_count( $text, 1 ) as $words ){
// For each word found in the frequency table, increment its value by one
array_key_exists( $words, $freqData ) ? $freqData[ $words ]++ : $freqData[ $words ] = 1;
}

$list = '';
arsort($freqData);
foreach ($freqData as $word=>$count){
    if ($count > 2){
        $list .= "$word ";
    }
}
if (empty($list)){
    $list = "Not enough duplicate words for popularity contest.";   
}
echo $list;
?>