2017-01-18 2 views
0

Ich habe ein Wörterbuch, dessen Werte Matrizen sind, und seine Schlüssel sind die häufigsten Wörter in der Zugdatei. Ich habe eine Testdatei, ich muss sehen, ob die Wörter in jeder Zeile davon im Wörterbuch sind, sie erhalten ihre Werte, die Matrizen sind und addieren die Matrizen und teilen sie dann auf die Anzahl der Wörter. Die Antwort sollte eine Matrix sein. Ich habe versucht "sum (val)", aber es fügt sie nicht zusammen. Wie kann ich es tun? (Die Datei enthält einen persischen Satz, eine Registerkarte und dann ein englisches Wort). Die Ausgabe des Wörterbuchs ist so ähnlich wie unten:Wie man Matrizen als Werte in einem Wörterbuch hinzufügt?

enter image description here

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))/ 

Antwort

0

Die val ist ein numpy.array und man kann die Summe() Funktion: val.sum()

+0

gibt es diesen Fehler: Attribute: ' Tupel 'Objekt hat kein Attribut' Summe ' – sara

+0

ok, ich sehe die Werte sind Tupel mit einem Element. Dann ist es 'val [0] .sum()'. Aber warum haben Sie eine Zip (Array) in der Erstellung Ihres Wörterbuchs? Ich denke 'dict (zip (keys, array))' ist genug. –

+0

danke für deine Antwort, aber es gibt -1.37638192047 -1.05146222424 zurück, was nicht die richtige addierende Nummer ist. Die richtige Antwort sollte [-2.2269, -0.2008] sein. Wie kann ich darauf zugreifen? – sara

Verwandte Themen