我想创建一个结合两种方法对结果进行排名的函数。第一个基于位置,第二个基于BM25F。
在whoosh文档中,我发现可以将scoring.FunctionWeighting(custom_function)
作为关键字参数传递给搜索者。我的自定义函数是:
def position_weight(searcher, fieldname, text, matcher):
poses = matcher.value_as("positions")
w1 = 1.0 / (poses[0] + 1)
# w2 = BM25F(matcher) ? This is what I don't know how to do.
return 0.25 * w1 + 0.75 * w2
我从文档中获得了此功能,所以我不理解该功能的参数。