当尝试计算内容字符串中单个关键字的关键字密度时,公式非常简单:kwd =(关键字数/总字数)* 100
但是,当我们寻找关键字词组的关键字密度时,该公式应该是什么?
例如,您将如何计算以下字符串中“blue widgets”短语的关键字密度?
$myContent = "Blue widgets in a field
of widgets blue makes for lots of widgets, true. But
if a widget is blue, is it still a
\"blue widget\" or just a lone widget in a sea
of blue?";
这是我当前的功能
function my_keyword_density($post)
{
$word_count = my_word_count($post);
$keyword_count = my_keyword_count($post);
$density = ($keyword_count / $word_count) * 100;
$density = number_format($density, 1);
return $density;
}
如何计算关键字词组中的字数?
答案 0 :(得分:1)
$tot_words = str_word_count($myContent);
$keyword_count = preg_match_all("/\bblue widgets\b/msiU", $myContent, $res);
$kwd = ($keyword_count / $tot_words) * 100;
如果您需要自定义“单词”,您可以在str_word_count函数see the manual page中添加参数。只需添加错误检查需要的地方,它应该工作。 关于公式,我会使用这样的东西:
$search_words = str_word_count("blue widgets");
$kwd = ($keyword_count / ($tot_words - (($keyword_count -1) * $search_words));
通过这种方式,您可以处理所有多字关键短语,就好像它是单一的。希望它有所帮助
答案 1 :(得分:1)
您的示例似乎暗示您要考虑每个关键字以及关键字词组。在这种情况下,您可以使用加权公式:
kwd = α*kwd("blue widgets") + (1-α)*(kwd("blue")+kwd("widgets"))
α=1
给出了最保守的措施(只有“蓝色小部件”这个词是相关的),
α=0
给出了最自由的度量(文本中任何地方的“蓝色”和“小部件”都是相关的)。
答案 2 :(得分:0)
也许
kwd =(总字数/ num关键短语出现次数)/关键短语中的num字数