我有8个文档,我在它上面运行TF-IDF
来获得一个数组。我不明白如何找到与给定输入查询最匹配的文档?在
all_documents = [doc1, doc2, ...., doc7]
sklearn_tfidf = TfidfVectorizer(norm='l2',min_df=0, use_idf=True, smooth_idf=False, sublinear_tf=True, tokenizer=tokenize)
sklearn_representation = sklearn_tfidf.fit_transform(all_documents).toarray()
使用
TfidfVectorizer
将输入转换为tf-idf
格式。然后可以使用距离度量(余弦、欧几里得、曼哈顿等)来计算最接近输入的文档。在每个文档都应该使用相同的词汇表。我假设你的8个文档向量长度相同?您创建的
sklearn_tfidf
对象有一个属性vocabulary_
,它包含向量中使用的所有单词。您的输入查询应该减少到只包含这些单词。在示例
引出}就没有意义了,因为在其中一个文档中找不到它。因此,查询可以简化为以下向量:
[dogs, cats, are, cute, awful]
的词汇表。不能使用包含这5个词以外的其他词的查询。例如,如果您的查询是cute animals
,那么{[0,0,0,1,0]
,因为cute
是文档中唯一可以找到的单词。在相关问题 更多 >
编程相关推荐