与一组文档中的输入查询最匹配



我有 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_,其中包含向量中使用的所有单词。输入查询应减少为仅包含这些单词。

Document1: dogs are cute
Document2: cats are awful

导致词汇[dogs, cats, are, cute, awful]。不能使用包含这 5 个以外的其他单词的查询。例如,如果您的查询是cute animals ,则animals没有任何意义,因为它无法在其中某个文档中找到。因此,查询简化为以下向量:[0,0,0,1,0]因为cute是文档中唯一可以找到的单词。

最新更新