sql >> Databasteknik >  >> RDS >> Mysql

Få populära ord i PHP+MySQL

Någon har redan gjort det.

Magin du letar efter är en php-funktion som heter str_word_count() .

I min exempelkod nedan, om du får många ovidkommande ord från detta måste du skriva anpassad strippning för att ta bort dem. Dessutom vill du ta bort alla html-taggar från orden och andra tecken också.

Jag använder något liknande detta för nyckelordsgenerering (uppenbarligen är den koden proprietär). Kort sagt tar vi tillhandahållen text, vi kontrollerar ordfrekvensen och om orden kommer upp i ordning sorterar vi dem i en array baserat på prioritet. Så de vanligaste orden kommer först i utgången. Vi räknar inte ord som bara förekommer en gång.

<?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. Bästa metoder för skalning av databaser:Del 1

  2. Vad är skillnaden mellan <> och !=operatorer i MySQL?

  3. Kommaseparerade värden

  4. MySQL:timeout för låsväntetid har överskridits