gpt4 book ai didi

python - 查找列表中标签关系的频率(成对相关?)

转载 作者:太空宇宙 更新时间:2023-11-03 14:41:59 25 4
gpt4 key购买 nike

我有一些图像标签列表。我想找出哪些标签似乎相关:

l1 = ["cat", "toe", "man"]
l2 = ["cat", "toe", "ice"]
l3 = ["cat", "hat", "bed"]

在这个(简单的)示例中,“猫”和“脚趾”显然是相关的,因为它们出现了两次(l1,l2)。

如何计算?结果如下:cat & toe: 2。我有一个线索,我要求“成对相关”,但这种分析的资源对我来说太复杂了。

最佳答案

您可以将 collections.defaultdictfrozensetitertools.combinations 一起使用以形成成对计数的字典。

变化是可能的。例如,您可以将 collections.Counter 与已排序的 tuple 一起使用,但基本相同。

from collections import defaultdict
from itertools import combinations

dd = defaultdict(int)

L1 = ["cat", "toe", "man"]
L2 = ["cat", "toe", "ice"]
L3 = ["cat", "hat", "bed"]

for L in [L1, L2, L3]:
for pair in map(frozenset, (combinations(L, 2))):
dd[pair] += 1

结果:

defaultdict(int,
{frozenset({'cat', 'toe'}): 2,
frozenset({'cat', 'man'}): 1,
frozenset({'man', 'toe'}): 1,
frozenset({'cat', 'ice'}): 1,
frozenset({'ice', 'toe'}): 1,
frozenset({'cat', 'hat'}): 1,
frozenset({'bed', 'cat'}): 1,
frozenset({'bed', 'hat'}): 1})

关于python - 查找列表中标签关系的频率(成对相关?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52520803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com