这是我的代码
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
"this is first document ","this is second document","this is third","which document is first", ]
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
X.toarray()
现在 这就是我想要做的吗?
当我搜索document
时,应该给我[1,2,4]个文档(句子)
当我搜索first document
时,它应该给我[1]个文档(句子)
当我搜索second
时,它应该给我[2]个文档(句子)
我想使用TfIdf进行此操作(我无法进行常规搜索)
我该怎么做?
答案 0 :(得分:-1)
首先,您必须问自己一个问题:TfidfVectorizer会做什么?答案是:它将文档转换为向量。您如何进一步进行?一种解决方案是通过使用矢量化程序将您的查询也转换为矢量。然后,您可以比较转换后的查询向量和数据库中文档的每个向量之间的余弦相似度。与查询向量的余弦相似度最高的文档是最相关的文档(至少根据向量空间模型而言)。 这里的https://towardsdatascience.com/tf-idf-for-document-ranking-from-scratch-in-python-on-real-world-dataset-796d339a4089是示例实现。