Créer un nuage de tags

  • Auteur de la discussion Auteur de la discussion yann214
  • Date de début Date de début
WRInaute occasionnel
Je souhaiterais savoir comment fonctionne généralement un nuage de tags.
Pas comment s'en servir mais comment en créer un.

Je sais qu'il faut le générer à partir de mots clés, mais comment cela se présente-t-il concrètement ?

Faut-il une table mysql de mots clés ?
 
WRInaute passionné
J'ai posté un topic y'a peu de temps là dessus.

En gros oui tu auras forcément une table de mot clés associé à un "objet" (ce que tu veux, une photo, un groupe de zic, un site, une actu, ...).
Ensuite tu sélectionne les tags (postés par tes utilisateurs) avec un count si tu pondères et tu affiche tes tags selon leur "poids" (plus gros pour un poids fort, plus petit sinon).
 
WRInaute occasionnel
Alors si j'ai bien compris on ajoute des colonnes pour les tags dans la table sur laquelle on travaille, par exemple la table POSTS :

TABLE POSTS

POST_ID
TEXT
...
TAG3
TAG2
TAG3
TAG4

Ensuite lorsqu'on affiche un post contenant par exemple le tag "football", on fait la requête suivante pour construire le nuage :

SELECT * from POSTS
WHERE TAG1 like 'football'
OR TAG2 like 'football'
OR TAG2 like 'football'
OR TAG2 like 'football'

Il reste alors à regarder tous les autres tags retournés par cette requête, les compter ce qui va donner le nombre de chacun pour ensuite déterminer la taille de la police et les afficher par l'ordre qu'on veut.

Dites moi si je suis dans le juste, et si vous avez un petit script pour trier et compter chaque tag un fois la requête retournée, je suis preneur !!!

Merci !!!
 
WRInaute occasionnel
j'ai lu ces 2 posts et c'est une petite synthèse que je présente ci-dessus.
j'ai juste besoin de savoir si j'ai bien compris, parce que mon cerveau n'est pas tt le temps aussi alerte que je le voudrais :)
 
WRInaute passionné
Perso je ne ferais pas comme ça.
Exemple avec des tags sur des articles :

Une table article :
ID, article

Une table avec tes utilisateurs :
ID, nom

Une table pour tes tags :
Tag, ID_art, ID_util

Tes utilisateurs peuvent tagger comme ils veulent tes articles, ensuite toi tu affiches les 20 premiers tags par exemple.

Du genre :
Select Tag, count(*)
from tag
where ID_art = 'tonid'
group by tag
order by 2
limit 0,20

('tention j'ai pas testé la requête mais ça doit ressembler à ça)*

Après y'a moyen de combiner tes infos pour récupérer tes tags qui ont été associé aux mêmes articles & cie.
La méthode avec des champs tag dans la table me semble trop rigide.
 
WRInaute discret
Est-ce qu'il est possible de générer un nuage de tags sans mots clé. Je m'explique : un moteur qui scanne les pages du site et trouve lui même les mots les plus représentatifs pour en faire un nuage de tags dynamique.
Cela serait le bonheur ! :lol:
 
WRInaute occasionnel
econo-ecolo a dit:
Est-ce qu'il est possible de générer un nuage de tags sans mots clé. Je m'explique : un moteur qui scanne les pages du site et trouve lui même les mots les plus représentatifs pour en faire un nuage de tags dynamique.
Cela serait le bonheur ! :lol:

Bien sûr que c'est possible ! A grands coups de file_get_contents(), explode(), array_count_values et compagnie... Le plus simple étant de le ratacher au moteur de recherche de ton site ; Encore faut-il qu'il soit régulièrement utilisé...
 
WRInaute discret
Et comment dois-je mettre des grands coups file_get_contents(), explode(), array_count_values.... est-ce déjà packagé dans un programme ? est-ce accessible à un novice ?
Le moteur de recherche de mon site est Google.
 
WRInaute discret
Le problème est qu'il faut lui donner les mots et lui donner la fréquence de ces mots... et je souhaiterais qu'il les trouvent tout seul ! Je sais, je suis un petit peu exigent... :cry:
Mais si cela n'existe pas, c'est tant pis :?
 
Discussions similaires
Haut