← Lesson
Embeddings
Joeven
Run
Reset
Python loads on first run
import math E = { "cat": [0.9, 0.1, 0.0], "kitten": [0.8, 0.2, 0.0], "dog": [0.7, 0.2, 0.1], "invoice": [0.0, 0.1, 0.9], "refund": [0.0, 0.2, 0.8], "sql": [0.1, 0.0, 0.7], } def dot(a, b): return sum(x * y for x, y in zip(a, b)) def norm(a): return math.sqrt(sum(x * x for x in a)) def cosine(a, b): d = norm(a) * norm(b) return dot(a, b) / d if d else 0.0 def nearest(query, k=3): q = E[query] scored = [(cosine(q, v), name) for name, v in E.items() if name != query] scored.sort(reverse=True) return scored[:k] for q in ("cat", "invoice"): print("query", q) for sim, name in nearest(q): print(" ", name, round(sim, 3))
Run to execute this in your browser. Nothing is sent to a server.