Quelles sont les méthodes standard de calcul de la distance entre les requêtes de recherche individuelles?

8

J'ai posé une question similaire concernant la distance entre les "documents" (articles Wikipedia, actualités, etc.). J'ai fait de cette question une question distincte car les requêtes de recherche sont considérablement plus petites que les documents et sont considérablement plus bruyantes. Je ne sais donc pas (et je doute) si les mêmes mesures de distance seraient utilisées ici.

Soit les métriques de distance lexicale vanille, soit les métriques de distance sémantiques de pointe sont préférées, avec une préférence plus forte pour ces dernières.

Mat
la source
2
Les requêtes de recherche ne sont pas plus bruyantes (il y a très peu de mots dans une requête qui ne sont pas réellement liés à la recherche), mais peuvent contenir des fautes d'orthographe, d'ambiguïté, d'argot et d'autres éléments que vous devez traiter séparément. Au-delà de ces problèmes, les requêtes et les documents peuvent être traités à peu près de la même manière.
ffriend
peut-être que vous pouvez extraire des vecteurs de mots clés à partir de requêtes, puis calculer la distance entre ces vecteurs, et comment la similitude est définie, je pense que c'est toujours une question ouverte :)
crazyminer
1
Vos deux questions sont larges, subjectives et nécessiteront un entretien important pour éviter de devenir obsolètes. Étant donné que la communauté apprécie ce genre de question, conserver l'un d'eux pourrait être raisonnable - mais certainement pas les deux, lorsque cette discussion est un sous-ensemble approprié de l'autre. Veuillez consulter Quels types de questions devrais-je éviter de poser?
Air
Merci, AirThomas! Le message de ffriend semble certainement indiquer qu'il s'agit clairement d'un doublon. Je verrai ce que je peux faire à ce sujet.
Matt

Réponses:

4

D'après mon expérience, seules certaines classes de requêtes peuvent être classées selon les caractéristiques lexicales (en raison de l'ambiguïté du langage naturel). Au lieu de cela, vous pouvez essayer d'utiliser des résultats de recherche booléens (sites ou segments de sites, pas des documents, sans classement) comme fonctionnalités de classification (à la place des mots). Cette approche fonctionne bien dans les classes où il y a une grande ambiguïté lexicale dans une requête mais il existe de nombreux bons sites pertinents pour la requête (par exemple films, musique, requêtes commerciales et ainsi de suite).

En outre, pour la classification hors ligne, vous pouvez faire LSI sur la matrice du site de requête. Voir le livre "Introduction à la recherche d'informations" pour plus de détails.

Alx49
la source
Sur une note connexe, j'ai trouvé ce document pertinent .
Matt
4

La métrique de similitude cosinus fait un bon travail (sinon parfait) de contrôle de la longueur du document, donc la comparaison de la similitude de 2 documents ou 2 requêtes en utilisant la métrique cosinus et les poids tf idf pour les mots devrait bien fonctionner dans les deux cas. Je recommanderais également de faire LSA d'abord sur les poids tf idf, puis de calculer la distance cosinus \ similitudes.

Si vous essayez de construire un moteur de recherche, je recommanderais d'utiliser un moteur de recherche open source gratuit comme solr ou recherche élastique, ou tout simplement les bibliothèques lucene brutes, car elles font la plupart du travail pour vous, et ont de bonnes méthodes intégrées pour gérer la requête pour documenter le problème de similitude.

Simon
la source