将线变成字典Python

对于我的项目,我必须使用两个字典作为输入进行余弦相似度计算,其构建如下:

table1 = { "<he": 2, "het": 1 }
table2 = { "<he": 2, "hem": 1 }

返回两个字典之间的余弦相似度。上面给定示例的结果应等于0.8。作为提示,我们收到以下提示:我们的计算仅需考虑出现在表之一中的三字组:点积(分子)是两边都存在的三字组的和(因为其他乘积为零),并且每个向量(分母)的大小均由其自身的三元组计算得出。 例:

{'<hi': 2, 'hie': 2, 'iep': 2, 'ep>': 2, '<ho': 1, 'hoe': 1, 'oer': 1, 'era': 1, 'ra>': 1}

我已经编写了一些代码,但是我找不到要使其正常工作要添加的内容。这是我当前的代码:

import math
import numpy as np
def cosine_similarity(known, unknown):
    i = 0
    j = 0
    waardesknown = list(known.values())
    waardesunknown = list(unknown.values())
    itemsknown =list(known.items())
    itemsunknown = list(unknown.items())

    for j in range(j < len(itemsunknown)):
        for i in range(i < len(itemsknown)):
            if (itemsunknown[i] == itemsknown[j]):
                i = i+1




    dotproduct = np.dot(waardesknown,waardesunknown)
    normknown = np.linalg.norm(waardesknown)
    normunknown = np.linalg.norm(waardesunknown)
    return dotproduct/(normknown*normunknown)






table1 = { "<he": 2, "het": 1 }
table2 = { "<he": 2, "hem": 1 }

cosine_similarity(table1,table2)

任何帮助,将不胜感激