D· AI-utvecklareLaboration· ca 40 min· wasm
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.
Lär ut: vektorer · Kräver: python-listor-och-loopar
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
- dot, norm — Implementera `dot(u, v)` och `norm(u)` med vanliga listor (ingen NumPy).
- cosinus — Implementera `cosinus(u, v)`.
- mest_lik — `mest_lik(q, ordvektorer)` returnerar nyckeln i dicten vars vektor har högst cosinuslikhet med q.
Logga in för att köra laborationen.
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
zipstannar vid kortaste listan — kontrollera lika längd.- Division med noll för nollvektorn i cosinus.
- Använder
max()på dict utankey=och får nyckeln i bokstavsordning.