Strumenti Utente

Strumenti Sito


rappresentazioni_vettoriali

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
rappresentazioni_vettoriali [2026/04/24 06:44]
admin
rappresentazioni_vettoriali [2026/04/28 13:38] (versione attuale)
admin
Linea 40: Linea 40:
 <code python w2vita.py> <code python w2vita.py>
 import numpy as np import numpy as np
 +
 +def dot(a,b):
 +    return sum(a[i]*b[i] for i in range(len(a)))
 +
 +def norm(a):
 +    return sum(n**2 for n in a)**(1/2)
 +    
 +def cosine(a,b):
 +    return dot(a,b)/(norm(a)*norm(b))
 +
 +'''
 dot=lambda a,b: sum(a[i]*b[i] for i in range(len(a))) 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) norm=lambda a: sum(n**2 for n in a)**(1/2)
 cosine=lambda a,b: dot(a,b)/(norm(a)*norm(b)) cosine=lambda a,b: dot(a,b)/(norm(a)*norm(b))
- +''' 
-with open('vettori/model10000.txt', errors="ignore") as file:+with open('vettori/model10000.txt', errors="ignore") as file: #attenzione se il file non si trova in una sottocartella denominata vettori eliminare la sottostringa "vettori/"
     lines=file.readlines()     lines=file.readlines()
 vectors={} vectors={}
Linea 54: Linea 65:
         vector.append(float(number))         vector.append(float(number))
     vectors.update({term:np.array(vector)})     vectors.update({term:np.array(vector)})
-    + 
 +confronti = { 
 +    "ragazza vs donna": (vectors['ragazza'], vectors['donna']), 
 +    "ragazza vs ragazzo": (vectors['ragazza'], vectors['ragazzo']), 
 +    "ragazza vs (ragazzo + donna)": (vectors['ragazza'], vectors['ragazzo'] + vectors['donna']), 
 +    "ragazza vs (ragazzo - uomo + donna)": (vectors['ragazza'], vectors['ragazzo'] - vectors['uomo'] + vectors['donna']) 
 +
 + 
 +for etichetta, (vec_a, vec_b) in confronti.items(): 
 +    print(f"COSENO {etichetta.upper()}:"
 +    print(f"{cosine(vec_a, vec_b)}\n"
 +'''
 print("COSENO TRA 'ragazza' E 'donna':") print("COSENO TRA 'ragazza' E 'donna':")
 print(cosine(vectors['ragazza'],vectors['donna'])) print(cosine(vectors['ragazza'],vectors['donna']))
Linea 72: Linea 94:
 print("COSENO TRA 'regina' E 're'−'uomo'+'donna':") print("COSENO TRA 'regina' E 're'−'uomo'+'donna':")
 print(cosine(vectors['regina'],vectors['re']-vectors['uomo']+vectors['donna'])) print(cosine(vectors['regina'],vectors['re']-vectors['uomo']+vectors['donna']))
 +'''
 </code> </code>
 Alternativa senza l’impiego della libreria numpy: Alternativa senza l’impiego della libreria numpy:
Linea 101: Linea 124:
         vector.append(float(number))         vector.append(float(number))
     vectors.update({term:tuple(vector)})     vectors.update({term:tuple(vector)})
-    + 
 +'''    
 print("COSENO TRA 'ragazza' E 'donna':") print("COSENO TRA 'ragazza' E 'donna':")
 print(cosine(vectors['ragazza'],vectors['donna'])) print(cosine(vectors['ragazza'],vectors['donna']))
Linea 119: Linea 143:
 print("COSENO TRA 'regina' E 're'−'uomo'+'donna':") print("COSENO TRA 'regina' E 're'−'uomo'+'donna':")
 print(cosine(vectors['regina'],v_sum(v_subtr(vectors['re'],vectors['uomo']),vectors['donna']))) print(cosine(vectors['regina'],v_sum(v_subtr(vectors['re'],vectors['uomo']),vectors['donna'])))
 +'''
 </code> </code>
  
rappresentazioni_vettoriali.1777013073.txt.gz · Ultima modifica: 2026/04/24 06:44 da admin