Расчет плотности ключевых слов по ключевой фразе? - PullRequest
1 голос
/ 13 февраля 2011

При попытке вычислить плотность ключевых слов для одного ключевого слова в строке содержания, формула довольно проста: kwd = (количество ключевых слов / общее количество слов) * 100

Однако, что следует по формулебыть, когда мы ищем плотность ключевых слов ключевой фразы?

Например, как бы вы рассчитали плотность ключевых слов фразы "голубые виджеты" в следующей строке?

$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;
}

Как узнать количество слов в ключевой фразе?

Ответы [ 3 ]

1 голос
/ 13 февраля 2011

вы можете попробовать что-то вроде этого:

$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, см. Страницу руководства . Просто добавьте проверку ошибок, где это необходимо, и она должна работать. Что касается формулы, я бы использовал что-то вроде этого:

    $search_words = str_word_count("blue widgets");
    $kwd = ($keyword_count / ($tot_words - (($keyword_count -1) * $search_words));

Таким образом, вы будете обрабатывать все ключевые слова из нескольких слов, как если бы они были односложными. Надеюсь, это поможет

1 голос
/ 13 февраля 2011

Ваш пример подразумевает, что вы хотите учесть каждое ключевое слово, а также ключевую фразу.В этом случае вы можете использовать взвешенную формулу:

kwd = α*kwd("blue widgets") + (1-α)*(kwd("blue")+kwd("widgets"))

α=1 дает наиболее консервативный показатель (релевантна только фраза "синие виджеты"),
α=0 дает наиболее либеральныймера (оба «синий» и «виджеты» в любом месте текста имеют значение).

0 голосов
/ 13 февраля 2011

Возможно

kwd = (общее количество слов / num ключевых фраз вхождения) / num слов в ключевой фразе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...