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

Få populære ord i PHP+MySQL

Nogen har allerede gjort det.

Den magi, du leder efter, er en php-funktion kaldet str_word_count() .

I min eksempelkode nedenfor, hvis du får mange uvedkommende ord fra dette, skal du skrive tilpasset stripning for at fjerne dem. Derudover vil du også gerne fjerne alle html-tags fra ordene og andre tegn.

Jeg bruger noget lignende dette til søgeordsgenerering (naturligvis er den kode proprietær). Kort sagt, vi tager den medfølgende tekst, vi tjekker ordfrekvensen, og hvis ordene kommer op i rækkefølge, sorterer vi dem i et array baseret på prioritet. Så de mest hyppige ord vil være først i outputtet. Vi tæller ikke ord, der kun forekommer én gang.

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


  1. Tilknytning af en fremmednøgle med et brugerdefineret kolonnenavn

  2. Er det bedre at udføre mange sql-kommandoer med én forbindelse, eller oprette forbindelse igen hver gang?

  3. Kan ikke bruge en MySQL-forbindelse til entity framework 6

  4. Hurtig streng matchende MySQL-forespørgsel