1.7 BM25 tính bằng tay
Có {d1, d2} rồi, giờ phải xếp thứ tự. BM25 là công thức làm việc đó. Ta tính thật.
N = 3 tài liệu avgdl = (7+8+5)/3 = 6.6667 k1 = 1.2 b = 0.75Bước 1 — tính idf cho từng từ trong truy vấn. df = số tài liệu chứa từ đó.
Từ càng ít tài liệu chứa thì càng đáng giá.
idf(t) = ln( 1 + (N − df + 0.5)/(df + 0.5) )
quên : df=1 -> ln(1 + 2.5/1.5) = 0.9808 <- hiếm, đáng giá nhấtmật : df=2 -> ln(1 + 1.5/2.5) = 0.4700khẩu : df=2 -> ln(1 + 1.5/2.5) = 0.4700Bước 2 — tính điểm từng tài liệu.
norm(d) = 1 − b + b·(dl/avgdl)d1: 1 − 0.75 + 0.75·(7/6.6667) = 1.0375d2: 1 − 0.75 + 0.75·(8/6.6667) = 1.1500
đóng góp = idf · tf·(k1+1) / ( tf + k1·norm )
d1: mật (tf=1): 0.4700 · 2.2/(1 + 1.2·1.0375) = 0.4606 khẩu(tf=1): 0.4606 ------------------------------------------------ tổng = 0.9212
d2: quên(tf=1): 0.9808 · 2.2/(1 + 1.2·1.1500) = 0.9066 mật (tf=2): 0.4700 · 4.4/(2 + 1.38) = 0.6118 khẩu(tf=2): 0.6118 ------------------------------------------------ tổng = 2.1303Kết quả: d2 (2.130) > d1 (0.921) > d3 (0). Đúng như trực giác — d2 là tài liệu duy nhất nói về việc quên.
Ba điều cần đọc ra từ phép tính này:
- Từ hiếm thắng.
quênmột mình đóng góp 0.91, nhiều hơn cảmật+khẩucộng lại. - Nhắc 2 lần không gấp đôi.
mậtvới tf=2 được 0.6118, không phải 2×0.4606=0.92. Đó là bão hoà tần suất, dok1điều khiển. - Tài liệu dài bị chiết khấu. d2 dài hơn nên
normlớn hơn, mẫu số lớn hơn, mỗi từ đóng góp ít hơn. Đó làb.
Muốn hiểu sâu hơn hai tham số này: Tầng 0. Muốn biết công thức này từ đâu ra —
vì sao phần tf có tiệm cận, vì sao idf lại có số 0.5, và vì sao nó có thể âm:
3.4b.