Services : Actualité Emploi Blog Forum Flux
Formation Trafic : Référencement Liens sponsorisés Affiliation Ecommerce Nom de domaine E-réputation Marketing Mobile Black Hat
Formation Technique : Performance Web Html Css Sql Curl Asp Dotnet Php Ajax Wordpress Twitter Google Analytics

Forum Oseox
Oseox

Script php articles, pages et billets similaires

Forum Référencement et Trafic
Nous sommes le Dim 22 Oct 2017 07:35

Heures au format UTC [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet
Auteur Message
MessagePosté: Lun 1 Déc 2008 18:38 
Administrateur
Avatar de l’utilisateur
Je souhaite proposer pour le service actualité une fonctionnalité supplémentaire.

L'idée est pour chaque actualité, par exemple celle-ci : Google Adwords : des publicités pour le terrorisme de proposer des articles complémentaires.

Comme je suis faignant, je n'ai pas envie de fonctionner par un système de tag. Cela serait simple à développer mais il faudrait taguer chaque actu chaque jour.

Mon idée est de scanner le titre et de trouver des titres similaires. Est ce que quelques pourrait m'orienter pour le principe de l'algo à coder ?

Merci.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 1 Déc 2008 20:57 
Je ne comprends pas trop ce dont tu as besoin !?


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 1 Déc 2008 21:33 
Administrateur
Avatar de l’utilisateur
Je vais essayer d'être plus clair.

En gros j'ai dans des variables le titre et le contenu d'une actualité.

Par exemple "Google Adwords : des publicités pour le terrorisme".

L'idée serait d'interroger la bdd des actualités pour obtenir en sortie tous les articles similaires. Par exemple tous ceux ayant dans le titre "Google, Adwords, publicité" etc. Ainsi je pourrai ajouter :

"Articles similaires : "
    Lien vers actu 1
    Lien vers actu 2
    Etc

Je ne vois pas comment le traduire en sql de manière dynamique et générique. Une piste ?


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 1 Déc 2008 23:24 
Un élément de réponse:
http://weblogtoolscollection.com/b2-img ... nction.txt

C'est la fonction utilisé pour les related post dans WP.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Mar 2 Déc 2008 02:58 
Avatar de l’utilisateur
+1 avec Billyboy le "Yet Another Related Post" de Wp se base sur les titres d'articles ...


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Mar 2 Déc 2008 09:16 
Professionnel
Professionnel
Avatar de l’utilisateur
C'est sûr que Wordpress c'est autre chose que Dotclear... :twisted:


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Mar 2 Déc 2008 11:20 
Administrateur
Avatar de l’utilisateur
Merci pour le code Billyboylindien.

Je ne connaissais pas l'opérateur AGAINST. En faisant un peu de recherche, j'ai lu qu'il fallait mes champs en Full Text.

Kiemtso m'a donné une autre piste basée sur du like%% et une boucle judicieuse.

Je mets cela en place et livre le code ici après.

@Julien : Je ne parle pas de blog ici mais de dev from scratch :)


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Mer 3 Déc 2008 13:45 
Administrateur
Avatar de l’utilisateur
Voila c'est développé, testé et en ligne :)

Voici comment cela fonctionne

A partir du titre de l'article en cours, recherche les articles ayant en commun au moins 2 mots de plus de 5 lettres sachant que (là cela se complique :mrgreen: ) :

- Le premier mot de plus de 5 lettres trouvé dans le titre initial doit obligatoirement être dans le titre des autres articles.
- Il doit y avoir au moins 1 des autres mots de 5 lettres détectés

Le code maintenant (attention les yeux, je bricole php le dimanche)

Code:
$titre_keyword  = explode(" ",$_TITRE); //$_TITRE est le titre de l'article en cours
               
                $cpt=0;
                foreach($titre_keyword as $k => $v ) {
                  if (strlen($v)>5) { // On n'utilise que les mots de plus de 5 lettres
                    if ($cpt !=0) {
                      if($cpt ==1) { $q .=" AND ("; }else{ $q .=" OR "; } //Le premier mot sera obligatoire le reste facultatif)
                    }
                  $q .= "post_titre LIKE '%".$v."%' " ;
                  $cpt++;
                  }
                }
                if((ereg("OR",$q)) OR (ereg("AND",$q))) $q .=")"; // Fermeture de la parenthèse si on a trouvé au moins un mot de plus de 5 lettres)
               
                $sql = "SELECT DISTINCT post_titre_url, post_titre, cat_id FROM content_post WHERE cat_id='6' AND post_lang='$_LANG' AND post_selected = '0' AND post_pub='1' AND post_titre_url != $_URL_ARTICLE AND ( $q ) ORDER BY post_id DESC LIMIT 0, 10 ";


Pour l'instant, il n'y a pas beaucoup d'articles similaires car la bdd est petite mais cela fonctionne.

Merci pour votre aide et spécialement à Kiemtso ;)


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Mer 3 Déc 2008 19:58 
Avatar de l’utilisateur
J'ai hâte de savoir développer ce genre de choses.

En tout cas, cela me donne bien envie de maitriser mieux php.


Haut
 Profil Envoyer un e-mail  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 

Heures au format UTC [ Heure d’été ]


Qui est en ligne

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


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Abonnez-vous au flux RSS

Blog

Forum

Offres d'emploi

Copyright : Moteur, traduction et optimisation
Merci de votre visite sur le forum Oseox