在PHP + MySQL中获得热门词汇

Mat*_*ers 8 php mysql

如何从PHP/MySQL中的多个内容表中获取最流行的单词.

例如,我有一个论坛帖子的论坛_post; 这包含主题和内容.除了这些,我还有多个具有不同字段的其他表,这些表还可以包含要分析的内容.

我可能会自己去获取所有内容,条带(可能)html在空格上爆炸字符串.删除引号和逗号等,只需在运行所有单词时通过保存数组来计算不常见的单词.

我的主要问题是,如果有人知道一种可能更容易或更快的方法.

我似乎无法找到任何有用的答案,这可能是错误的搜索模式.

Abs*_*ERØ 4

有人已经做到了。

您正在寻找的魔法是一个名为str_word_count()的 php 函数。

在下面的示例代码中,如果您从中得到很多无关的单词,您将需要编写自定义剥离来删除它们。此外,您还需要从单词和其他字符中删除所有 html 标签。

我使用与此类似的东西来生成关键字(显然该代码是专有的)。简而言之,我们正在获取提供的文本,我们正在检查单词频率,如果单词按顺序出现,我们将根据优先级对它们进行排序。因此最常见的单词将出现在输出的第一个位置。我们不计算只出现一次的单词。

<?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;
?>
Run Code Online (Sandbox Code Playgroud)