gpt4 book ai didi

python - 计算多个词典之间的相似度 "score"

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

我有一个引用字典“dictA”,我需要将它(计算键和 vules 之间的相似度)与当场生成的 n 个字典进行比较。每个字典的长度相同。假设为了便于讨论,要与之比较的词典数量为 3:dictB、dictC、dictD。

这是 dictA 的样子:

dictA={'1':"U", '2':"D", '3':"D", '4':"U", '5':"U",'6':"U"}

这是 dictB、dictC 和 dictD 的样子:

dictB={'1':"U", '2':"U", '3':"D", '4':"D", '5':"U",'6':"D"}
dictC={'1':"U", '2':"U", '3':"U", '4':"D", '5':"U",'6':"D"}
dictD={'1':"D", '2':"U", '3':"U", '4':"U", '5':"D",'6':"D"}

我有一个解决方案,但只是针对两个词典的选择:

sharedValue = set(dictA.items()) & set(dictD.items())
dictLength = len(dictA)
scoreOfSimilarity = len(sharedValue)
similarity = scoreOfSimilarity/dictLength

我的问题是:我如何遍历 n 数量的词典,其中 dictA 是我与其他词典进行比较的主要词典。目标是为我要针对主词典迭代的每个词典获得“相似性”值。

感谢您的帮助。

最佳答案

这是一个通用结构——假设您可以单独生成字典,在生成下一个之前使用每个字典。这听起来像你可能想要的。 calculate_similarity 将是一个包含上面“我有一个解决方案”代码的函数。

reference = {'1':"U", '2':"D", '3':"D", '4':"U", '5':"U",'6':"U"}
while True:
on_the_spot = generate_dictionary()
if on_the_spot is None:
break
calculate_similarity(reference, on_the_spot)

如果您需要遍历已生成的字典,则必须将它们放在可迭代的 Python 结构中。在生成它们时,创建一个字典列表:

victim_list = [
{'1':"U", '2':"U", '3':"D", '4':"D", '5':"U",'6':"D"},
{'1':"U", '2':"U", '3':"U", '4':"D", '5':"U",'6':"D"},
{'1':"D", '2':"U", '3':"U", '4':"U", '5':"D",'6':"D"}
]
for on_the_spot in victim_list:
# Proceed as above

您熟悉 Python 构造生成器吗?它就像一个以yield 而非return 返回其值的函数。如果是这样,请使用它代替上面的列表。

关于python - 计算多个词典之间的相似度 "score",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39987596/

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