如何计算测试文档和培训文档之间的相似度

时间:2019-12-12 09:14:09

标签: vector text-classification cosine-similarity

我正在尝试计算测试文档和培训文档之间的相似度并标记它们。这是代码,但是不起作用。如果有人可以解释这个想法,我也将不胜感激。

def calculate_similarities(self, vecTestDoc, vectorsOfTrainDocs):
    list_of_similarities = []
    for vector in vectorsOfTrainDocs:
        label = vectorsOfTrainDocs.key()
        list_of_similarities += [(self.calculate_similarities(vector, vecTestDoc), label)]
    return list_of_similarities

这是错误:

File "..\classification.py", line 98, in calculate_similarities
label = vectorsOfTrainDocs.key()
AttributeError: 'list' object has no attribute 'key'

编辑:我已经定义了两个以上的函数,并且正在开发其他解决方案。他们是这些人

def cosine_similarity(self, weightedA, weightedB):
    dotAB = dot(weightedA, weightedB)
    normA = math.sqrt(dot(weightedA, weightedA))
    normB = math.sqrt(dot(weightedB, weightedB))
    return dotAB / (normA * normB)

def fit(self, doc_collection):
    self.doc_collection = doc_collection
    self.vectorsOfDoc_collection = [(doc, self.doc_collection.tfidf(doc.token_counts))
                                    for doc in self.doc_collection.docid_to_doc.values()]

我相信类似的方法会起作用,但是仍然存在错误消息...我应该更改什么?

return [self.doc_collection.cosine_similarity(vecTestDoc) in vectorsOfTrainDocs]

0 个答案:

没有答案