Hoe de resultaten van zoekmachines testen?

Ik had een interviewvraag:

U werd verteld dat een zoekmachine resultaat per doelquery voldoet niet aan een vereiste door zijn positie. Hoe zou je het testen?

Hoe zou je het testen?

Ik had echter een paar gedachten:

  • U heeft een lijst met ingevoerde zoekopdrachten nodig.
  • U heeft een doelpositie nodig voor elke zoekopdracht
  • U koppelt elke doelpositie aan de werkelijke positie

Maar het was niet genoeg.

Reacties

  • Ik zou je gewoon toevoegen ‘ het opnieuw testen van het zoek- / rangschikkingsalgoritme, niet de manier waarop resultaatfragmenten worden gepresenteerd of de manier waarop het automatisch aanvullen van zoekopdrachten werkt. Ze kunnen allebei de uiteindelijke effectiviteit van het ophalen beïnvloeden.

Antwoord

Ik ben geen expert in zoekmachines, maar er zijn veel factoren die bijdragen aan de manier waarop zoekresultaten worden weergegeven. De query is in wezen het startpunt, en hoe de engine de query parseert, is belangrijk. Ook zullen sommige zoekmachines de zoekopdracht “refactoren” op basis van natuurlijke taalalgoritmen. De volgorde van de geretourneerde resultaten is vaak afhankelijk van verschillende statistieken, zoals populariteit, # overeenkomende woorden, trefwoorden, tags, enz. Ook krijgen sommige van deze metingen meer gewicht dan andere.

Dus, deze vraag biedt u op zichzelf niet echt voldoende context, of misschien was het doel van deze vraag om u vragen te laten stellen om meer context af te leiden. Soms zullen interviewers vage vragen stellen om te zien of de geïnterviewde zal gaan steken in het donker “zonder voldoende context te krijgen (bijv. begin met problemen te bonzen en hoop op een oplossing te struikelen, of denk na over het probleem en overweeg mogelijke oplossingen met voorkennis).

Antwoord

Eigenlijk maakt de vraag hoe zoekmachines moeten worden getest deel uit van het informatie-ophalen (IR) probleem. Ik zal slechts een enkele benaderingen hoe ze kunnen worden geëvalueerd / getest.

Traditionele IR-benadering

Een manier in traditionele IR is om de testopstelling voor te bereiden, waaronder:

  • Kandidaatvragen
  • Dataset van geïndexeerde paginas
  • Verwachte resultatenset (inclusief verwachte positie) voor elke zoekopdracht

Vervolgens verkrijgt u daadwerkelijke resultaten door uw zoekmachine over kandidaatvragen te laten lopen en de werkelijke resultaten te vergelijken met de verwachte resultaten met behulp van een van de metrische gegevens voor het ophalen van informatie , bijv precisie / recall of nDCG . Dat zou u een kwantitatief antwoord geven hoe slecht of goed uw zoekmachine is met betrekking tot de verwachte resultatenset (vereiste).

Uiteraard zal het antwoord contextspecifiek zijn. Het zal vooral afhangen van de keuze van de kandidaatvragen, hun intentie en formulering, de dataset van geïndexeerde paginas en de manier waarop de verwachte resultaten werden beoordeeld. Dus wat was de context?

Doelgestuurde / interactieve IR-benadering

Een andere benadering, misschien meer praktisch zou zijn om potentiële gebruikers te betrekken en hen de kwaliteit van de resultaten voor een bepaalde zoekopdracht te laten beoordelen. Ze kunnen hun eigen vragen stellen of u kunt vragen voor hen definiëren. Dat kunnen een paar mensen zijn of een hele gemeenschap, van wie u meer impliciete feedback kunt krijgen over de kwaliteit van de resultaten (bijv. Resultaten waarop wordt geklikt, zijn verwachte resultaten).

Probleemisolatie

Ten slotte is het probleem misschien niet om de algehele kwaliteit van de zoekmachine te evalueren, maar alleen de reden voor een lage ranking te beperken van dit specifieke zoekresultaat. Dus ik zou het probleem volgen dat u kreeg:

U werd verteld dat een zoekmachine resultaat op doelquery niet voldoet aan een vereiste op basis van zijn positie.

en vroeg me af:

  • Wat waren de andere resultaten die hoger scoorden?
  • Waarom waren ze hoger gerangschikt? Kan ik dit zien aan de hand van resultaatfragmenten? Misschien komen ze overeen met zoektermen, maar met een andere betekenis? Dus misschien is de formulering onjuist? Zou een andere formulering van de intentie van de zoekopdracht het resultaat verbeteren?
  • Dezelfde vraag kan anders zijn geformuleerd, en dezelfde bewoordingen kunnen een andere vraagintentie achter zich hebben. Weet ik echt wat de bedoeling was van een zoeker achter deze zoekopdracht?
  • Wat is precies de vereiste? Om meer gesponsorde paginas te stimuleren? Of hogere paginas rangschikken die overeenkomen met de intentie van de zoekopdracht?

Deze kunnen u helpen het probleem te reproduceren voor andere vergelijkbare zoekopdrachten.

Antwoord

Ik werkte in 2004 voor een SEO-bedrijf.Ons doel was om natuurlijke / organische zoekresultaten op de eerste of tweede pagina van Google te krijgen voor de gerichte sleutelzinnen (natuurlijke / organische zoekresultaten zijn de reguliere zoekresultaten, niet de zoekresultaten die worden gesponsord door Google Ad Words). Het bedrijf was een start-up en besloot zich alleen op Google te concentreren omdat het op dat moment meer dan 80% van de zoekmachinemarkt in handen had en uit onderzoek bleek dat gebruikers zelden langs de eerste twee paginas van Google keken naar een overeenkomst met zoekresultaten.

De manier waarop we de resultaten hebben getest, was door de gerichte sleutelzinnen (combinatie van trefwoorden) in Google in te typen en te kijken of de vermelding op de eerste of tweede pagina van Google verscheen, zo ja, dan werd er rekening mee gehouden een succes, zo niet, dan werd het als een mislukking beschouwd.

Tegenwoordig zijn er dingen veranderd met de gerichte advertenties van Google, zodat mensen mogelijk verschillende resultaten van verschillende computers ontvangen en als ze zijn ingelogd bij Google Plus, kan dit van invloed zijn op de resultaten ook, dus ik weet niet of het zelfs nog mogelijk is om dit te testen.

Reacties

  • Dus Google-resultaten werden gewoon als referentie behandeld == verwachte resultaten?

Antwoord

Omdat de vraag vermeldt “zoekres ult door de zoekopdracht voldoet niet aan de vereiste per positie “, het lijkt erop dat het testdoel is om ervoor te zorgen dat de juiste rangschikking / relevantie gebaseerde sortering aanwezig is op het zoekalgoritme. Om dit verder te debuggen / analyseren, zou ik meer details over de zoekopdracht kunnen vragen – was het slechts een eenvoudige tekstzoekopdracht in een enkel veld of betrof het een combinatie van velden, waren er niet-Engelse tekens (diakritische tekens enz.) Soms kan de reden waarom een resultaat lager wordt gerangschikt, zijn dat sommige speciale tekens worden weggelaten bij het zoeken of dat sommige specifieke velden niet worden geïndexeerd, waardoor de zoekopdracht die velden weglaat.

We zouden kunnen testen door

  • Gebruik dezelfde term / query met een extra combinatie van velden
  • Kijk of de hitmap goed werkt – dat wil zeggen doet de eerste document in de zoekresultaten hebben echt meer “aantal zoektermen” dan andere documenten in het gezochte veld – het openen van het document en tellen zou dit beoordelen.
  • Elimineer één teken tegelijk of één veld (voor meerdere zoekveld) en controleer vervolgens of de resultaten relevant zijn
  • gebruik een synoniem van de term (voor het zoeken naar termen) en kijk of het dat document weergeeft en hoger scoort
  • Verfijn de zoekopdracht door date of een ander veld en kijk of een gereduceerde resultatenset het hoger scoort

Een andere methode zou zijn om gewoon de zoek-API aan te roepen met een tool zoals fiddler of Postman en vervolgens de geretourneerde rang te vergelijken met de rangorde in de gebruikersinterface. Soms kan tijdens het parseren en laden van de pagina aan de clientzijde, vanwege enkele cacheproblemen, het sorteren in de war raken.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *