【问题标题】:how to add matrices as values in a dictionary?如何将矩阵作为值添加到字典中?
【发布时间】:2017-01-18 10:48:22
【问题描述】:

我有一个字典,它的值是矩阵,它的键是火车文件中最常见的词。我有一个测试文件,我必须查看每行中的单词是否在字典中,它会获取它们的值,这些值是矩阵并添加矩阵,然后将它们除以单词数。答案应该是一个矩阵。我尝试了“sum(val)”,但它没有将它们加在一起。我该怎么做? (该文件包含一个波斯语句子、一个制表符和一个英文单词)。字典的输出如下:

keys = [p[0] for p in freq.most_common(4)]            
array = numpy.array([[wordVector[0,:]] , [wordVector[1,:]],    [wordVector[2,:]], [wordVector[3,:]]])
dic = dict(zip(keys, zip(array)))
#print (dic)

# test part
with open ("test2.txt", encoding = "utf-8") as f2:
    for line in f2:
        line = line.split("\t")
        lin = line[0].split()
        for i in lin:
            for key, val in dic.items():
                if i == key:
                    print ((sum(val))/

【问题讨论】:

    标签: python python-3.x dictionary matrix nlp


    【解决方案1】:

    valnumpy.array,您可以使用 sum() 函数:val.sum()

    【讨论】:

    • 出现这个错误:AttributeError: 'tuple' object has no attribute 'sum'
    • 好的,我看到这些值是包含一个元素的元组。然后是val[0].sum()。但是为什么在创建字典时有一个 zip(array) 呢?我觉得dict(zip(keys, array)) 就够了。
    • 感谢您的回答,但它返回 -1.37638192047 -1.05146222424 这不是正确的添加数字。正确答案应该是 [-2.2269 , -0.2008]。我怎样才能访问它?
    • 应该加上 [-0.8505, -0.5257] + [-1.3764, 0.3249]
    • 如果你想按列求和,你使用:numpy.sum(val[0], axis=0) 和按行求和:numpy.sum(val[0], axis=1)
    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    相关资源
    最近更新 更多