sql >> Databáze >  >> RDS >> Mysql

Získejte oblíbená slova v PHP+MySQL

Už to někdo udělal.

Kouzlo, které hledáte, je funkce php s názvem str_word_count() .

V mém příkladu kódu níže, pokud z toho získáte mnoho nadbytečných slov, budete muset napsat vlastní stripování, abyste je odstranili. Kromě toho budete chtít odstranit všechny html značky ze slov a dalších znaků.

Používám něco podobného pro generování klíčových slov (ten kód je samozřejmě proprietární). Stručně řečeno, bereme poskytnutý text, kontrolujeme frekvenci slov a pokud slova přijdou v pořadí, seřadíme je do pole podle priority. Takže nejčastější slova budou ve výstupu první. Nepočítáme slova, která se vyskytují pouze jednou.

<?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. Chyba serveru SQL 206:Kolize typu operandu

  2. Proč je STAV SHOW TABLE STATUS innodb tak nespolehlivý?

  3. SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo se nezdařilo:Název nebo služba nejsou známy

  4. Jak upgradovat MariaDB 5.5 na MariaDB 10.1 na systémech CentOS/RHEL 7 a Debian