TFIDF sklearn 中的排名函数

Ranking functions in TFIDF sklearn

我使用 sklearn TFIDFVectorizer 从一组给定的文档构建了一个权重矩阵。我想使用基于查询术语的排名函数执行查询,它可以是一个简单的函数,例如查询中术语权重的总和。

有没有什么方法可以在 sklearn 中进行此类查询(最好以有效的方式)?或者 python 框架来处理此类工作。

到目前为止我得到的是以下内容:

items.sort(key= lambda x : -sum(tfidf_matrix[x, term_id]) for term_id in query_terms)) 

所以我根据查询中的术语对项目进行排序。但我想知道是否有一种内置的方法可以做到这一点,当然,效率更高。因为对每个查询进行排序不是一个有大量请求的选项。

这个问题可能太宽泛了,我最终使用了像 lucene 这样的框架,它以非常有效的方式处理文档搜索和索引,而不是通过计算 tf-idf 矩阵的天真方法。