الگوریتم BM25 یکی از الگوریتمهای محاسبه امتیاز ارتباط (relevance score) است که در زمینهی جستجو و تحلیل دادههای متنی مورد استفاده قرار میگیرد. نام این الگوریتم مخفف عبارت Best Match 25 است که عدد 25 نشاندهندهی بیست و پنجمین دورهی تلاش برای بهبود و بهینهسازی الگوریتمهای محاسبه امتیاز ارتباط میباشد.
این الگوریتم امتیاز میزان ارتباط یک term (T) در یک document (D) را طبق فرمول زیر محاسبه میکند:
score(D, T) = IDF(T) * ((k + 1) * TF(D, T)) / (k * (1.0 - b + b * (|d|/avgDl)) + TF(D, T))
در این فرمول فاکتورهای زیر موثر است:
IDF(T): این فانکشن از الگوریتم TF-IDF گرفته شده است و بیانگر معکوس تعداد تکرار term در کل document ها است.
k: ضریب تاثیر چگالی term در یک document
TF(D, T): این فانکشن از الگوریتم TF-IDF گرفته شده است و بیانگر تعداد تکرار term در یک document است.
b: ضریب تاثیر طول متن document ها
|d|: طول متن document مورد نظر
avgDl: میانگین طول متن تمامی document ها در مجموعهی مورد جستجو
همانطور که از فرمول بالا مشخص است، علاوه بر تعداد تکرار term در document (TF)، چگالی آن در document نیز در اثرگذاری این فاکتور اهمیت دارد. به عبارتی با هرچه تکرار بیشتر term در document ، طبق پارامتر k از شدت اثرگذاری عامل TF کاسته میشود.
همچنین طول متن document (|d|) نسبت به میانگین طول متن همهی document های مجموعهی مورد جستجو (avgDl)، مقایسه شده و متناسب با ضریب b، در صورت بیشتر بودن طول آن نسبت به میانگین اثر منفی و در صورت کوتاهتر بودن آن نسبت به میانگین، اثر مثبت خواهد داشت.
از جمله مزایای این الگوریتم نسبت به TF-IDF میتوان به موارد زیر اشاره کرد:
_ تاثیر چگالی تکرار یک term در document: در این الگوریتم شیب بالا رفتن اهمیت term در اثر تکرار آن در document دارای شیب نزولی است و به عبارتی تا یک محدودهای (بستگی به پارامتر k) اثرگذاری ملموس خواهد داشت.
_ تاثیر طول متن document: در این الگوریتم document های دارای متن به نسبت طولانیتر در مقایسه با میانگین document های دیگر، به طور ضمنی تاثیر کمتری در میزان اهمیت خواهند داشت. به عبارتی زمانی اهمیت term چشمگیر خواهد بود که در متن کوتاهتری ظاهر شده باشد.