sql >> Databasteknik >  >> RDS >> Mysql

Hur bygger man en motor för "relaterade frågor"?

Om du ville bygga något sånt här själv från grunden, skulle du använda något som heter TF/IDF:Term Frequency / Inverse document frequency. Det betyder, för att förenkla det enormt, att du hittar ord i frågan som är ovanliga i korpusen som helhet och hittar dokument som har dessa ord.

Med andra ord, om någon skriver in en fråga med orden "Jag vill köpa en elefant" i, så är ordet "elefant" förmodligen det minst vanliga ordet i din korpus av orden i frågan. "Köp" är förmodligen nästa. Så du rangordnar dokument (i ditt fall tidigare frågor) efter hur mycket de innehåller ordet "elefant" och sedan hur mycket de innehåller ordet "köp". Orden "jag", "till" och "an" finns förmodligen i en stopplista, så du ignorerar dem helt och hållet. Du rangordnar varje dokument (föregående fråga, i ditt fall) efter hur många matchande ord det finns (viktning enligt omvänd dokumentfrekvens -- dvs hög vikt för ovanliga ord) och visar de översta.

Jag har förenklat, och du skulle behöva läsa på det här för att få det rätt, men det är verkligen inte särskilt komplicerat att implementera på ett enkelt sätt. Wikipedia-sidan kan vara ett bra ställe att börja:

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



  1. Behövs det att undvika användarinmatning från databasen?

  2. Lär dig hur man skapar formulär i minnet (Ja, du hörde rätt)

  3. Spring Boot JPA:Skickar flera värden för samma parameter (JPQL)

  4. sätta upp en databas för att spåra vilka användare som har klickat på vilka länkar?