Comment extraire les mot clés d'un lien ?

Forum destiné à discuter des principes du référencement de sites web.

Modérateur: Modérateurs

Comment extraire les mot clés d'un lien ?

Messagede morphoSEO » Mar Mar 30, 2010 11:14 am

Salut,

quelqu'un connait un outil PHP ou une méthode qui permet d'extraire les mots clés pertinents d'un lien ?

par ex, un truc du genre :

--------
cette page Le Référencement

Forum(13): ce mot figure 13 fois
référencement(6) : ce mot figure 6 fois
--------

j'ai pensé un truc en php :

- prendre le contenu de la page (file_contents)
- explode par un espace et stocker tout les mots dans un tableau
- faire une boucle et sur ces mots pour compter combien de fois ils figurent ...

mais ce processus est très lourd, je me demande aussi si un outil n'est pas déjà existant, car c'est très demandé .... on m'a parlé de tree tagger, mais c'est en java !!

Merci :)
اذا أحس أحد انه لم يخطأ ابدا في حياته, فهذا يعني أنه لم يجرب أي جديد في حياته
Avatar de l’utilisateur
morphoSEO
PR1
PR1
 
Messages: 196
Inscription: Jeu Nov 02, 2006 7:58 am
Localisation: Casablanca, Maroc

Publicité

Re: Comment extraire les mot clés d'un lien ?

Messagede pat0042 » Mer Mar 31, 2010 4:22 pm

Il existe des sites qui font très bien le travail, par exemple http://www.webmaster-toolkit.com/keywor ... tool.shtml

C'est ce que tu recherche ?
Une location de rodeo mecanique est une bonne idée.
Un spectacle de magie avec un magicien pour enfants est envisageable. Il serait amusant et original de faire appel à un animateur et magicien pour une inauguration d'ensemble, n'importe le secteur d'activité, ma magie est agréable à voir.
pat0042
PR1
PR1
 
Messages: 117
Inscription: Jeu Oct 04, 2007 9:29 pm

Re: Comment extraire les mot clés d'un lien ?

Messagede dcz » Sam Avr 03, 2010 1:10 pm

Je dirais :
Code: Tout sélectionner
$html = file_get_contents('http://www.example.com/');
$wordstats = str_word_count(html_entity_decode(strip_tags($html), ENT_QUOTES));
$wordstats = array_count_values($wordstats);
arsort($wordstats);

$wordstats contient alors les mots en index et leur nombre d'occurrences respective en valeur, classé dans l'ordre décroissant.

Mais attention, str_word_count ne gère pas l'utf-8 correctement (tu as des solutions sur la page du manuel), et html_entity_decode ne le fait (il faut quand même le spécifier) qu'a partir de php5.
Il faut donc adapter au charset de la page lue.

Tu peux facilement filtrer les petit mots et être sensible ou pas à la casse.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21407
Inscription: Ven Avr 28, 2006 9:03 pm

Re: Comment extraire les mot clés d'un lien ?

Messagede morphoSEO » Mar Avr 06, 2010 8:31 pm

merci beaucoup pour votre aide

je vais coder un outil et je vais le partager dés que je finisse ^^

concernant les liens html ça fonctionne sans problème, par contre les pdf ça coince ... file_get_contents ne fonctionne pas avec les liens pdf ? y'a t'il un équivalent ? ou une fonction pdf to html ?
اذا أحس أحد انه لم يخطأ ابدا في حياته, فهذا يعني أنه لم يجرب أي جديد في حياته
Avatar de l’utilisateur
morphoSEO
PR1
PR1
 
Messages: 196
Inscription: Jeu Nov 02, 2006 7:58 am
Localisation: Casablanca, Maroc

Re: Comment extraire les mot clés d'un lien ?

Messagede morphoSEO » Mer Avr 07, 2010 5:14 pm

voila l'outil comme promis :

http://pfe.root-area.com/

il fonctionne avec tout type de liens (html, pdf, texte ...)

quoi que ça demande un temps fou le processus, je me demande si l'ajax ne lui ferais pas du bien :P

le script principal :

Code: Tout sélectionner
<?php

class Extraction 
{
    private $url; // le lien à inspecter
    private $ini_content; // le contenu de la page initiale (avec htmlspecialchars)
    private $content; // le contenu de la page
    private $common_words; // les mots à ignorer
    private $keywords; // le tableau des keywords
    private $min_letter; // les lettres min dans le mot
    private $min_frequence; // la frequence min du mot
    
    
// GET & SET URL
    public function getUrl()
    {
        return $this->url;
    }
    
    public function setUrl
($nurl)
    {
        $nurl = htmlspecialchars($nurl);
        
        if
(substr($nurl,0,7) !=    "http://")
            $nurl = "http://".$nurl;
            
        if 
(pathinfo($nurl, PATHINFO_EXTENSION) == 'pdf')
        {
            $nurl = str_replace('http://', '', $nurl);
            $nurl = str_replace('.pdf', '.html', $nurl);
            $nurl = 'http://www.pdf-search-engine.net/-html-' . $nurl;
        }
        $this->url = $nurl;
    }    
    
    
// GET & SET INITIAL CONTENT
    public function getIContent()
    {
        return $this->ini_content;
    }
    
    public function setIContent
()
    {
        $content = trim(htmlspecialchars(@file_get_contents($this->getUrl())));
        $this->ini_content = $content;
    }
    
    
// GET & SET CONTENT
    public function getContent()
    {
        return $this->content;
    }
    
    public function setContent
()
    {
        $content = @file_get_contents($this->getUrl());
        
        
// On supprime le code JAVASCRIPT et CSS
        $content = preg_replace('#<style type="text/css">(.+)</style>#isU',' ', $content);
        $content = preg_replace('#<script type="text/javascript">(.+)</script>#isU',' ',$content);

        // Fix pour les espaces entre les balises
        $content = preg_replace('#<.+>(.+)<.+>#isU', '<.+> $1 </.+>', $content);
        
        
// On supprime les balises HTML, et on force les miniscules - Compatibilité utf-8
        $content = strip_tags($content);
        $content = mb_convert_case($content, MB_CASE_LOWER, "UTF-8");
        
        $this
->content = $content;
    }
    
    
// GET & SET COMMON WORDS    
    public function getCW()
    {
        return $this->common_words;
    }

    public function setCW($cw)
    {
        $cw = htmlspecialchars($cw);
        $this->common_words = $cw;
    }
    
    
// GET & SET KEYWORDS
    public function getKeywords()
    {
        return $this->keywords;
    }

    public function setKeywords($kw)
    {
        $this->keywords = $kw;
    }
    
    
// GET & SET LETTERS
    public function getLetter()
    {
        return $this->min_letter;
    }

    public function setLetter($lt)
    {
        $this->min_letter = intval($lt);
    }
    
    
// GET & SET FREQUENCE
    public function getFreq()
    {
        return $this->min_frequence;
    }

    public function setFreq($freq)
    {
        $this->min_frequence = intval($freq);
    }
    
    
    public function __construct
($nurl, $cw, $lt, $freq)
    {
        $this->setUrl($nurl);    
        $this
->setContent();
        $this->setIContent();
        $this->setCW($cw);    
        $this
->setLetter($lt);    
        $this
->setFreq($freq);    
    
}
        
    public function ExtractKeywords
()
    {
        // on stocke les mots >=2 || !common_words dans un tableau
        define("WORD_COUNT_MASK", "/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u");

        preg_match_all(WORD_COUNT_MASK, $this->getContent(), $matches);
        $words_array = $matches[0];
        
        $i
=0;
        foreach($words_array as $word)
        {
            if(preg_match('#'. $word .'#isU', $this->getCW()) || strlen($word) <= $this->getLetter() )
                unset($words_array[$i]);
            $i++;
        }
            
        
// On regroupe les mots et on compte le total
        $this->setKeywords(array_count_values($words_array));
    }
    
    public function KeywordsList
()
    {
        // Triage : ordre ascendant
        arsort($this->keywords);

        // Affichage
        foreach($this->getKeywords() as $word => $freq)
        {
            if($freq==$this->getFreq())
                exit;
            echo $word . '('. $freq .') ';
        }
    }
}

?>


n'hésitez pas si vous avez des remarques pour améliorer/alléger le script :wink:
اذا أحس أحد انه لم يخطأ ابدا في حياته, فهذا يعني أنه لم يجرب أي جديد في حياته
Avatar de l’utilisateur
morphoSEO
PR1
PR1
 
Messages: 196
Inscription: Jeu Nov 02, 2006 7:58 am
Localisation: Casablanca, Maroc

Re: Comment extraire les mot clés d'un lien ?

Messagede abbylucy » Ven Juil 16, 2010 1:21 pm

.
abbylucy
 
Messages: 3
Inscription: Ven Juil 16, 2010 1:08 pm


Retourner vers Principes du Référencement

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités