如何从
PHP / MysqL中的多个内容表中获取最流行的单词.
例如,我有一个论坛帖子的论坛_post;这包含主题和内容.
除了这些之外,我还有多个具有不同字段的其他表,这些表还可以包含要分析的内容.
我可能会自己去获取所有内容,条带(可能)html在空格上爆炸字符串.删除引号和逗号等,只需在运行所有单词时通过保存数组来计算不常见的单词.
我的主要问题是,如果有人知道一种可能更容易或更快的方法.
有人已经做到了.
你正在寻找的魔法是一个名为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; ?>