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

mysql - index de texte intégral - qu'est-ce que le mode de langage naturel

Les recherches en texte intégral en langage naturel de MySQL visent à faire correspondre les requêtes de recherche à un corpus pour trouver les correspondances les plus pertinentes. Supposons donc que nous ayons un article contenant "I love pie" et que nous ayons les documents d1, d2, d3 (la base de données dans votre cas). Les documents 1 et 2 traitent respectivement du sport et de la religion, et le document 3 concerne la nourriture. Votre requête,

Renverra d3, puis d2, d1 (ordre aléatoire de d2, d1 selon ce qui est le plus égal à l'article) car d3 correspond le mieux à l'article.

L'algorithme sous-jacent utilisé par MYSQL est probablement l'algorithme tf-idf, où tf représente la fréquence des termes et idf la fréquence inverse des documents. tf est comme il est dit, juste le nombre de fois qu'un mot w dans article apparaît dans un document. idf est basé sur le nombre de documents dans lesquels le mot apparaît. Ainsi, les mots qui apparaissent dans de nombreux documents ne contribuent pas à décider du document le plus représentatif. Le produit de tf*idf donne un score, plus le mot est élevé, mieux le mot représente un document. Donc 'pie' n'apparaîtra que dans le document d3 et aura donc un tf élevé et un idf élevé (puisque c'est l'inverse). Alors que 'the' aura un tf élevé mais un idf bas qui fera sortir le tf et donnera un score bas.

Le mode de langage naturel MYSQL est également livré avec un ensemble de mots vides (le, un, certains, etc.) et supprime les mots de moins de 4 lettres. Ce qui peut être vu dans le lien que vous avez fourni.