Hoppa till innehållet
AI-grafen
DAI-utvecklareLaboration· ca 40 min· i webbläsaren

Labb: skalärprodukt, norm och cosinuslikhet

Implementera vektoroperationerna för hand med listor, verifiera mot NumPy, och använda cosinuslikhet för att hitta det mest lika ordet.

Teori

u·v = Σ uᵢvᵢ. ‖u‖ = √(u·u). cos(u,v) = u·v / (‖u‖‖v‖). Skalärprodukten är stor när vektorerna pekar åt samma håll — det är hela idén bakom embeddings.

Deluppgifter

  1. dot, norm — Implementera dot(u, v) och norm(u) med vanliga listor (ingen NumPy).
  2. cosinus — Implementera cosinus(u, v).
  3. mest_lik — mest_lik(q, ordvektorer) returnerar nyckeln i dicten vars vektor har högst cosinuslikhet med q.

Startkoden

körs i din webbläsare
import math


def dot(u, v):
    # TODO
    ...


def norm(u):
    # TODO: math.sqrt(dot(u, u))
    ...


def cosinus(u, v):
    # TODO
    ...


def mest_lik(q, ordvektorer):
    # TODO: nyckeln med högst cosinus(q, vektor)
    ...

Du skriver koden, tester du inte ser avgör om den håller. Skapa ett gratis konto för att köra labben.

Prova diagnosenSkapa konto gratis

Förväntade resultat

dot([1,2,3],[4,-1,2]) = 8; norm([6,8]) = 10; cosinus([1,0],[1,1]) ≈ 0,707; mest_lik(kung, {...}) = 'drottning'.

Vanliga fel

  • zip stannar vid kortaste listan — kontrollera lika längd.
  • Division med noll för nollvektorn i cosinus.
  • Använder max() på dict utan key= och får nyckeln i bokstavsordning.