Keyword Density is simply the frequency at which a word occurs as a percentage of the total number of words. The following PHP code will print the density of each word in a string, $str . It shows that keyword density is not a complicated calculation, it can be done in a few lines of PHP:
<?php $str = "I am working on a project where I have to find out the keyword density of the page on the basis of URL of that page. But I am not aware actually what \"keyword Density of a page\" actually means? and also please tell me how can we create a PHP which will fetch the keyword density of a web page."; // str_word_count($str,1) - returns an array containing all the words found inside the string $words = str_word_count(strtolower($str),1); $numWords = count($words); // array_count_values() returns an array using the values of the input array as keys and their frequency in input as values. $word_count = (array_count_values($words)); arsort($word_count); foreach ($word_count as $key=>$val) { echo "$key = $val. Density: ".number_format(($val/$numWords)*100)."%<br/>\n"; } ?>
Output Example:
of = 5. Density: 8% a = 4. Density: 7% density = 3. Density: 5% page = 3. Density: 5% ...
To get the contents of a webpage, you can use file_get_contents (or cURL ). For example, the following PHP code lists all keywords above 1% density on this web page:
<?php $str = strip_tags(file_get_contents("http://stackoverflow.com/questions/819166")); $words = str_word_count(strtolower($str),1); $word_count = array_count_values($words); foreach ($word_count as $key=>$val) { $density = ($val/count($words))*100; if ($density > 1) echo "$key - COUNT: $val, DENSITY: ".number_format($density,2)."%<br/>\n"; } ?>
Hope this helps.
Tom
source share