Mysql
 sql >> Database >  >> RDS >> Mysql

Ottieni parole popolari in PHP+MySQL

Qualcuno l'ha già fatto.

La magia che stai cercando è una funzione php chiamata str_word_count() .

Nel mio codice di esempio qui sotto, se ottieni molte parole estranee da questo, dovrai scrivere uno stripping personalizzato per rimuoverle. Inoltre ti consigliamo di rimuovere tutti i tag html dalle parole e anche da altri caratteri.

Uso qualcosa di simile a questo per la generazione di parole chiave (ovviamente quel codice è proprietario). In breve, prendiamo il testo fornito, stiamo controllando la frequenza delle parole e se le parole escono in ordine le stiamo ordinando in un array in base alla priorità. Quindi le parole più frequenti saranno le prime nell'output. Non contiamo parole che ricorrono una sola volta.

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