Okapi BM25 er en rangeringsfunktion , der bruges af søgemaskiner til at sortere dokumenter efter deres relevans for en given søgeforespørgsel. Den er baseret på en probabilistisk model udviklet i 1970'erne og 1980'erne af Stephen Robertson , Karen Spark Jones og andre.
Selve funktionen kaldes BM25 (BM fra engelsk best match ), men den kaldes ofte "Okapi BM25" efter navnet på Okapi-søgemaskinen, skabt på City University London i 1980'erne og 1990'erne, hvor denne funktion først blev anvendt .
BM25 og dens forskellige senere modifikationer (f.eks. BM25F) er moderne TF-IDF- lignende rangeringsfunktioner, der er meget udbredt i praksis i søgemaskiner. I websøgning er disse rangeringsfunktioner ofte inkluderet som komponenter i en mere kompleks, ofte maskinlært , rangeringsfunktion.
BM25 er en søgefunktion på et uordnet sæt af termer (" pose ord ") og et sæt dokumenter, som det evaluerer baseret på forekomsten af søgeord i hvert dokument uden at tage hensyn til forholdet mellem dem (f.eks. nærhed). Det er ikke en enkelt funktion, men en familie af funktioner med forskellige komponenter og parametre. En almindelig form for denne funktion er beskrevet nedenfor.
Givet en forespørgsel , der indeholder ordene , giver BM25-funktionen følgende vurdering af dokumentets relevans for forespørgslen :
hvor er ordfrekvensen ( eng. term frequency, TF ) i dokumentet , er længden af dokumentet (antallet af ord i det), og er gennemsnitslængden af dokumentet i samlingen. og er frie koefficienter, vælges de normalt som og .
der er en omvendt dokumentfrekvens ( eng. invers dokumentfrekvens, IDF ) ord . Der er flere fortolkninger af IDF og små variationer på dens formel. Klassisk er det defineret som:
hvor er det samlede antal dokumenter i samlingen og er antallet af dokumenter, der indeholder . Men oftere bruges "udjævnede" versioner af denne formel, for eksempel:
Ovenstående IDF-formel har følgende ulempe. For ord i mere end halvdelen af dokumenterne i samlingen er IDF-værdien negativ. I nærvær af to næsten identiske dokumenter, hvoraf det ene har et ord, og det andet ikke har, kan det andet således få en højere score.
Med andre ord vil ofte forekommende ord ødelægge dokumentets endelige resultat. Dette er uønsket, så i mange applikationer kan ovenstående formel justeres på følgende måder:
Antag, at søgeordet forekommer i dokumenter. Så indeholder et tilfældigt udvalgt dokument et ord med sandsynlighed (hvor er kardinaliteten af sættet af dokumenter i samlingen). I dette tilfælde vil informationsværdien af sætningen " indeholder " være som følger:
Antag nu, at der er to søgeord og . Hvis de indtaster dokumentet uafhængigt af hinanden, så er sandsynligheden for at finde dem i et tilfældigt udvalgt dokument som følger:
og indholdet af denne begivenhed
Det er nogenlunde det, der udtrykkes af IDF-komponenten i BM25.