两个字符词典的最大相似度?

2024-05-29 06:34:06 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个python字典:

d = {"a":1, "b":2}

这表示一个字符在字符串中出现的次数。所以上面的字典可以生成一个字符串“abb”、“bab”或“bba”。在

两个字典之间的最大相似度是一个比率>;=0和<;=1,它描述了两个最相似的生成字符串的相似程度。在

例如

^{pr2}$

如何通过查看每个字符的出现次数来生成任意两个字典(相同长度)的最大相似度?i、 简单地分析字典,而不是实际生成字符串,并检查每对的相似度。在

注意:我在字典上使用的是max_sim,而不是字符串,因为我已经循环使用了两个字符串来收集它们的字典数据(除了一些其他东西)。如果我在两个字符串上使用max_sim(不管是原始字符串还是将字典转换回字符串),我想我只是在进行冗余计算。所以如果答案是用两本字典作为输入,我会很感激的。在


Tags: 数据字符串ltgt字典sim字符次数
1条回答
网友
1楼 · 发布于 2024-05-29 06:34:06

这个呢:

def max_sim(d1, d2):
    # assume that's the same for both dicts
    length = sum(d1.values())
    matches = 0
    for letter in set(d1.keys() + d2.keys()):
        matches += min(d1.get(letter, 0), d2.get(letter, 0))
    return matches / float(length)

结果:

^{pr2}$

相关问题 更多 >

    热门问题