在原始集合/字典中查找两个集合/字典的交集及其各自的出现

时间:2015-11-17 11:45:46

标签: python dictionary set intersection

我试图在两个不同的集合上建立一个得分,包含三卦,使用它们的出现。数据看起来像这样。两者都是使用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中出现的情况。我可以通过哪种方式获得这些?我希望能够使用我的公式将交叉点与计算得分相关联。非常感谢。

0 个答案:

没有答案