我正在构建一个应用程序,该应用程序可以在线方式对先前给定查询的文档进行排名。为了简单起见,让我们考虑一下我已经拥有给定查询的所有文档。
执行诸如标记化和提取命名实体之类的预处理步骤之后,每个文档(包括查询)都是标记数组。
为了使用TfIdfVectorizer
,我将每个文档转换为字符串,只是要清楚一点:
# corpus include the query and doc is an array of tokens
vectorizer_input = [' '.join(doc) for doc in corpus]
然后,为了计算排名本身,我计算了一些指标,例如查询的余弦相似度和每个人的规范。将来我可能会添加更多指标,但仅此而已。
那么,我该如何利用倒排索引?我意识到使用位置倒排索引可以为计算依赖于词项距离的度量带来好处。除此之外,TfIdfVectorizer
已经完成了倒排索引的大部分工作。
我想念什么吗?与TfidfVectorizer
相比,使用倒排索引有什么优势吗?