来自一组文档的输入查询的最佳匹配

时间:2017-03-21 08:27:54

标签: python tf-idf

我有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()

1 个答案:

答案 0 :(得分:0)

使用tf-idf将输入转换为TfidfVectorizer格式。然后,您可以使用距离度量(余弦,欧几里德,曼哈顿,...)来计算最接近您输入的文档。

每个文档都应使用相同的词汇表。我假设您的8个文档向量具有相同的长度?您创建的sklearn_tfidf对象具有属性vocabulary_,其中包含向量中使用的所有单词。您的输入查询应缩减为仅包含这些单词。

示例

Document1: dogs are cute
Document2: cats are awful

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