Question

J'ai consulté quelques sites répertoriant les recherches associées lorsque vous effectuez une recherche, notamment ceux qui suggèrent d'autres recherches susceptibles de vous intéresser.

Je me demande quel est le meilleur moyen de modéliser cela dans un site de taille moyenne (pas assez de trafic pour s'appuyer sur les statistiques des visiteurs pour déduire des relations). Ma pensée initiale est de stocker les 10 meilleurs résultats pour chaque requête unique, puis, lorsqu'une nouvelle recherche est effectuée, de rechercher toutes les recherches historiques correspondant à une partie des 10 meilleurs résultats, mais idéalement, ne correspondant pas à toutes les requêtes (les faire correspondre à toutes suggérer une recherche équivalente et donc pas utile en tant que suggestion).

J'imagine que certaines personnes ont déjà utilisé cette fonctionnalité et pourraient peut-être donner quelques idées sur les différentes manières de le faire. Je ne cherche pas nécessairement une idée gagnante, car la solution variera sans doute considérablement en fonction de la taille et de la nature du site.

Était-ce utile?

La solution

avez-vous envisagé une matrice comportant des mots clés sur 1 axe et des documents sur un autre axe Une fois que vous avez trouvé l'ensemble des vetors représentant les mots-clés, recherchez des ensembles de mots-clés trouvés dans votre jeu de résultats initial, puis trouvez un moyen de classer les autres mots-clés en fonction du nombre de documents qu'ils référencent ou du nombre de fois où ils entrecoupent l'ensemble de résultats initial. .

Autres conseils

J'ai essayé différentes approches, avec différents degrés de succès. En fin de compte, je pense que la meilleure approche dépend fortement du domaine / des sujets faisant l'objet de la recherche et de la manière dont les utilisateurs formulent des requêtes.

Votre idée de stocker les recherches précédentes me semble raisonnable. Je serais curieux de voir comment cela fonctionne dans la pratique (je veux dire de la manière la plus sincère - il existe de nombreuses nuances qui peuvent faire échouer ces techniques dans le "monde réel", en particulier lorsque les données sont rares).

Voici quelques techniques que j'ai utilisées dans le passé et que j'ai vues dans la littérature:

  1. Approches basées sur les thésaurus: indexez dans un thésaurus chaque terme utilisé par l'utilisateur, puis utilisez une méthode heuristique pour filtrer les synonymes et afficher l'utilisateur en tant que termes de recherche possibles.
  2. Rechercher et rechercher dessus: déterminez les termes de recherche (par exemple, avec le algorithme de stimulation de Porter et ensuite utiliser les termes dérivés au lieu des requêtes initialement fournies et donner à l'utilisateur la possibilité de rechercher exactement les termes spécifiés (ou faire le contraire, rechercher les termes exacts en premier, puis utiliser stemming rechercher les termes qui proviennent de la même racine. Cette seconde approche prend évidemment un certain pré-traitement d’un dictionnaire connu, ou vous pouvez collecter des termes au fur et à mesure que votre terme d’indexation les trouve.)
  3. Chaînage: analyser les résultats trouvés par la requête de l'utilisateur et extraire les termes clés des N premiers résultats ( KEA est une bibliothèque / un algorithme que vous pouvez consulter pour les techniques d’extraction de mots clés.)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top