我正在编写一个关键字密度工具,但我在查找存在多个单词的关键字时遇到了一些问题。
我在Stack Overflow上使用了this主题的一些代码,但它并没有完全奏效。
例如,当我从网页上抓取一个非常大的文本时,它找不到多个关键字。例如:
如果我有文字“你好,这就是我。你好,这就是他。你好,这就是她。”而且我的关键字是“Hello this”,它不会多次计算“你好这个”。但是有3个'你好这个'的例子。
我的代码:
// Count words in the text
$word_count = explode(' ', $text);
$word_count = count($word_count);
// Count matches with the keyword
$keyword_count = preg_match_all("#{$searchterm}#si", $text, $matches);
$keyword_count = count($matches);
// Calculate density
$density = $keyword_count / $word_count * 100;
如何让我的代码解决此问题?
答案 0 :(得分:0)
$keyword_count = count($matches);
您应该计算计数匹配,这是$matches[0]
。见var_dump($matches);
// Count matches with the keyword
preg_match_all("#({$searchterm})#si", $text, $matches);
$keyword_count = count($matches[0]); // or use $matches[1], in this case same
答案 1 :(得分:0)
试试这个
$returnValue = preg_match_all('/Hello this/', 'Hello this is me. Hello this is him. Hello this is her.', $matches);
echo $returnValue; // output = 3