sql >> Database teknologi >  >> RDS >> Mysql

mysql - fuldtekstindeks - hvad er naturlig sprogtilstand

MySQL's Natural Language Full-Text-søgninger har til formål at matche søgeforespørgsler mod et korpus for at finde de mest relevante matches. Så antag, at vi har en artikel, der indeholder "I love pie", og vi har dokumenterne d1, d2, d3 (databasen i dit tilfælde). Dokument 1 og 2 handler om henholdsvis sport og religion, og dokument 3 handler om mad. Din forespørgsel,

Vil returnere d3, og derefter d2, d1 (tilfældig rækkefølge af d2,d1 afhængig af hvilken der er mere lig med artiklen), fordi d3 matcher artiklen bedst.

Den underliggende algoritme, som MYSQL bruger, er sandsynligvis tf-idf-algoritmen, hvor tf står for term frekvens og idf for invers dokumentfrekvens. tf er, som der står, bare det antal gange, et ord w i artiklen forekommer i et dokument. idf er baseret på hvor mange dokumenter ordet forekommer. Så ord, der forekommer i mange dokumenter, bidrager ikke til at afgøre det mest repræsentative dokument. Produktet af tf*idf producerer en score, jo højere, jo bedre repræsenterer ordet et dokument. Så 'kage' vil kun forekomme i dokument d3 og vil således have en høj tf og en høj idf (da det er det omvendte). Hvorimod 'den' vil have en høj tf, men en lav idf, som vil hæmme tf'en og give en lav score.

MYSQL Natural Language Mode kommer også med et sæt stopord (the, a, some etc) og fjerner ord, der er mindre end 4 bogstaver. Hvilket kan ses på det link, du angav.




  1. Kontroller, om værdien eksisterer, før du indsætter i MySQL DB i et PHP-script

  2. Partitionering af mySQL-tabeller, der har fremmednøgler?

  3. hvordan kan vi ændre værdien ved at bruge radioknapper

  4. Implementering af ASP.NET-websted på Linux-server