Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtenir des mots populaires en PHP+MySQL

Quelqu'un l'a déjà fait.

La magie que vous recherchez est une fonction php appelée str_word_count() .

Dans mon exemple de code ci-dessous, si vous obtenez beaucoup de mots superflus, vous devrez écrire une suppression personnalisée pour les supprimer. De plus, vous voudrez également supprimer toutes les balises html des mots et autres caractères.

J'utilise quelque chose de similaire pour la génération de mots clés (évidemment, ce code est propriétaire). En bref, nous prenons le texte fourni, nous vérifions la fréquence des mots et si les mots apparaissent dans l'ordre, nous les trions dans un tableau en fonction de la priorité. Ainsi, les mots les plus fréquents seront les premiers dans la sortie. Nous ne comptons pas les mots qui n'apparaissent qu'une seule fois.

<?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;
?>