Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment créer un moteur de "questions connexes" ?

Si vous vouliez construire quelque chose comme ça vous-même à partir de zéro, vous utiliseriez quelque chose appelé TF/IDF :Term Frequency / Inverse document frequency. Cela signifie que, pour simplifier énormément, vous trouvez des mots dans la requête qui sont rares dans l'ensemble du corpus et trouvez des documents qui contiennent ces mots.

En d'autres termes, si quelqu'un saisit une requête contenant les mots "Je veux acheter un éléphant", alors parmi les mots de la requête, le mot "éléphant" est probablement le mot le moins courant dans votre corpus. "Acheter" est probablement le suivant. Ainsi, vous classez les documents (dans votre cas, les requêtes précédentes) en fonction de la quantité qu'ils contiennent du mot "éléphant", puis de la quantité qu'ils contiennent du mot "acheter". Les mots "je", "à" et "une" sont probablement dans une liste d'arrêt, vous les ignorez donc complètement. Vous classez chaque document (requête précédente, dans votre cas) en fonction du nombre de mots correspondants (pondération en fonction de la fréquence inverse des documents, c'est-à-dire un poids élevé pour les mots peu courants) et affichez les premiers.

J'ai trop simplifié, et vous auriez besoin de lire cela pour bien faire les choses, mais ce n'est vraiment pas très compliqué à mettre en œuvre de manière simple. La page Wikipédia pourrait être un bon point de départ :

http://en.wikipedia.org/wiki/Tf%E2%80 %93idf