2009-05-04 3 views
6

Je travaille sur un projet où je dois trouver la densité de mot-clé de la page sur la base de l'URL de cette page. Je googlé beaucoup mais aucune aide et scripts ont été trouvés, j'ai trouvé un outil payant http://www.selfseo.com/store/_catalog/php_scripts/_keyword_density_checker_php_scriptQu'est-ce que Keyword Density et comment créer un script en PHP?

Mais je ne suis pas au courant de ce que signifie réellement la "densité de mot-clé d'une page"? et aussi s'il vous plaît dites-moi comment pouvons-nous créer un script PHP qui va chercher la densité de mots clés d'une page Web.

Merci

Répondre

23

« densité de mots-clés » est tout simplement la fréquence que le mot se produit donné (nombre total d'autres mots-clés.) en pourcentage du nombre total de mots. Le code PHP suivant affichera la densité de chaque mot dans une chaîne, $str. Il démontre que la densité de mots clés est pas un calcul complexe, il peut être fait en quelques lignes de 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 script 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"; 
} 
?> 

sortie Exemple:

of = 5. Density: 8% 
a = 4. Density: 7% 
density = 3. Density: 5% 
page = 3. Density: 5% 
... 

Pour récupérer le contenu d'une page Web, vous pouvez utiliser file_get_contents (ou cURL). À titre d'exemple, le code PHP ci-dessous répertorie tous les mots clés ci-dessus densité de 1% sur cette 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"; 
} 
?> 

J'espère que cela aide.

+0

merci Tom! Cela a bien fonctionné - en utilisant strip_tags pourrait être remplacé par quelque chose d'autre (lire les commentaires sur http://php.net/manual/fr/function.strip-tags.php) mais cela fonctionne! – IEnumerator

+0

C'est génial, mais comment pourrais-je le faire fonctionner pour faire correspondre des phrases de 2 et 3 mots? – chovy

1

densité de mots-clés signifie simplement le pourcentage que les mots clés apparaissent dans le contenu versus le reste du texte. En général, c'est aussi une métrique assez inutile pour le référencement. Je ne voudrais pas construire un script car il vaut mieux se concentrer sur d'autres métriques. Vous pourriez trouver ce reference utile.

0

Si le mot-clé donné est «marche d'éléphant», la densité de mot-clé correspondrait à la fréquence à laquelle le terme «marche d'éléphant» apparaît sur une page Web donnée par rapport à un autre texte. Comme l'a dit VirtuosiMedia, il s'agit (largement) d'informations inutiles.

Pour le mesurer, vous devez enlever toutes les marques du texte, compter les mots tout en gardant une trace de la fréquence d'apparition des mots-clés. À ce stade, vous savez, xx.xx% de tous les mots de ce texte sont des mots-clés.

xx.xx% du temps, le ou les mots clés sont utilisés côte à côte, donc la densité de mes mots clés pour "promenades d'éléphants" est xx

Encore une fois, la seule raison pour laquelle cela est utile est de démontrer l'appariement de motifs et fonctions de chaîne en php.

1

densité de mot clé est à peu près:

(pas de temps mot-clé est apparu sur la page.)/

5

Ou vous pouvez essayer ceci: http://code.eyecatch-up.de/?p=155
Mise à jour: relocalisé la classe à http://code.google.com/p/php-class-keyword-density-check/

<?php 
include 'class/class.keywordDensity.php';    // Include class 

$obj = new KD();          // New instance 
$obj->domain = 'http://code.eyecatch-up.de';   // Define Domain 
print_r ($obj->result()); 
?> 

ci-dessus code retourne:

Array 
(
    [0] => Array 
     (
      [total words] => 231 
     ) 

    [1] => Array 
     (
      [keyword] => display 
      [count] => 14 
      [percent] => 6.06 
     ) 
and so on... 

fonctionne avec les fichiers locaux et distants.

Questions connexes