Okapi BM25 är en rankningsfunktion som används av sökmotorer för att sortera dokument efter deras relevans för en given sökfråga. Den är baserad på en probabilistisk modell utvecklad på 1970- och 1980-talen av Stephen Robertson , Karen Spark Jones och andra.
Själva funktionen heter BM25 (BM från engelska best match ), men den kallas ofta "Okapi BM25" efter namnet på Okapi-sökmotorn, skapad vid City University London på 1980- och 1990-talen, där denna funktion först tillämpades .
BM25 och dess olika senare modifieringar (t.ex. BM25F) är moderna TF-IDF- liknande rankningsfunktioner som ofta används i praktiken i sökmotorer. I webbsökning ingår dessa rankningsfunktioner ofta som komponenter i en mer komplex, ofta maskininlärd rankningsfunktion.
BM25 är en sökfunktion på en oordnad uppsättning termer (" påse med ord ") och en uppsättning dokument, som den utvärderar baserat på förekomsten av frågeord i varje dokument, utan att ta hänsyn till förhållandet mellan dem (till exempel, anslutning). Det är inte en enda funktion, utan en familj av funktioner med olika komponenter och parametrar. En vanlig form av denna funktion beskrivs nedan.
Givet en fråga som innehåller orden ger BM25-funktionen följande bedömning av dokumentets relevans för frågan :
var är ordfrekvensen ( eng. term frequency, TF ) i dokumentet , är dokumentets längd (antalet ord i det) och är medellängden på dokumentet i samlingen. och är fria koefficienter, väljs de vanligtvis som och .
det finns en omvänd dokumentfrekvens ( eng. invers dokumentfrekvens, IDF ) ord . Det finns flera tolkningar av IDF och små variationer på dess formel. Klassiskt definieras det som:
var är det totala antalet dokument i samlingen och är antalet dokument som innehåller . Men oftare används "utjämnade" versioner av denna formel, till exempel:
Ovanstående IDF-formel har följande nackdel. För ord i mer än hälften av dokumenten i samlingen är IDF-värdet negativt. Således, i närvaro av två nästan identiska dokument, varav det ena har ett ord och det andra inte, kan det andra få en högre poäng.
Med andra ord kommer ofta förekommande ord att förstöra dokumentets slutresultat. Detta är oönskat, så i många applikationer kan formeln ovan justeras på följande sätt:
Antag att sökordet förekommer i dokument. Sedan innehåller ett slumpmässigt utvalt dokument ett ord med sannolikhet (var är kardinaliteten för uppsättningen dokument i samlingen). I det här fallet kommer informationsvärdet för frasen " innehåller " att vara följande:
Anta nu att det finns två sökord och . Om de anger dokumentet oberoende av varandra, är sannolikheten att hitta dem i ett slumpmässigt valt dokument som följer:
och innehållet i denna händelse
Detta är ungefär vad som uttrycks av IDF-komponenten i BM25.