sql >> Database >  >> RDS >> Mysql

Krijg populaire woorden in PHP+MySQL

Iemand heeft het al gedaan.

De magie die je zoekt is een php-functie genaamd str_word_count() .

In mijn voorbeeldcode hieronder, als je hier veel vreemde woorden van krijgt, moet je aangepaste stripping schrijven om ze te verwijderen. Daarnaast wil je ook alle html-tags van de woorden en andere tekens verwijderen.

Ik gebruik iets soortgelijks als dit voor het genereren van trefwoorden (uiteraard is die code eigendom). Kortom, we nemen de verstrekte tekst, we controleren de woordfrequentie en als de woorden in de juiste volgorde verschijnen, sorteren we ze in een array op basis van prioriteit. De meest voorkomende woorden komen dus als eerste in de uitvoer. We tellen geen woorden die maar één keer voorkomen.

<?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. MySQL platte tekst extraheren uit html-gegevens of PHP?

  2. LINQ naar SQL meerdere tabellen left outer join

  3. Gegevens invoegen en externe sleutels instellen met Postgres

  4. Query maken om tabellen te maken