import numpy as np dot=lambda a,b: sum(a[i]*b[i] for i in range(len(a))) norm=lambda a: sum(n**2 for n in a)**(1/2) cosine=lambda a,b: dot(a,b)/(norm(a)*norm(b)) with open('vettori/model10000.txt', errors="ignore") as file: lines=file.readlines() vectors={} for line in lines: line=line.split() term=line.pop(0) # term=v[0]; v=v[1:] vector=[] for number in line: vector.append(float(number)) vectors.update({term:np.array(vector)}) print("COSENO TRA 'ragazza' E 'donna':") print(cosine(vectors['ragazza'],vectors['donna'])) print("COSENO TRA 'ragazza' E 'ragazzo'") print(cosine(vectors['ragazza'],vectors['ragazzo'])) print("COSENO TRA 'ragazza' E 'ragazzo'+'donna':") print(cosine(vectors['ragazza'],vectors['ragazzo']+vectors['donna'])) print("COSENO TRA 'ragazza' E 'ragazzo'−'uomo'+'donna':") print(cosine(vectors['ragazza'],vectors['ragazzo']-vectors['uomo']+vectors['donna'])) print() print("COSENO TRA 'regina' E 'donna':") print(cosine(vectors['regina'],vectors['donna'])) print("COSENO TRA 'regina' E 're'") print(cosine(vectors['regina'],vectors['re'])) print("COSENO TRA 'regina' E 're'+'donna':") print(cosine(vectors['regina'],vectors['re']+vectors['donna'])) print("COSENO TRA 'regina' E 're'−'uomo'+'donna':") print(cosine(vectors['regina'],vectors['re']-vectors['uomo']+vectors['donna']))