我试图在两个不同的集合上建立一个得分,包含三卦,使用它们的出现。数据看起来像这样。两者都是使用Counter来自集合创建的dicts。
cntTrigramsPos.most_common(3)
Out[125]:
[(('This', 'is', 'a'), 7),
(('I', 'love', 'this'), 6),
(('I', 'am', 'very'), 5)]
cntTrigramsNeg.most_common(3)
Out[150]:
[(('I', 'had', 'to'), 6),
(('work', 'with', 'my'), 4),
(('I', 'could', 'not'), 4)]
有了这两个词,我想以这种方式计算分数。 Nr是序列中出现的。
score = (nrPos - nrNeg) / (nrPos + nrNeg)
我把它们变成了集合。我可以通过这种方式找到两个集合的交集。
trigramsPosSet = set(cntTrigramsPos)
trigramsNegSet = set(cntTrigramsNeg)
for i in trigramsPosSet.intersection(trigramsNegSet):
print (i, cntTrigramsNeg[i])
像这样我只会知道原始的dictonaries中的交集而不是出现,我需要用它来计算得分。我要做的是比较两个dicts中的相同键并提取具有交集的出现(值)。上面你可以看到交叉点,但不能看到dicts中出现的情况。我可以通过哪种方式获得这些?我希望能够使用我的公式将交叉点与计算得分相关联。非常感谢。