Your question is Custom Similarity Metric Coding. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
TELUS Digital AI Community uses vector representations when evaluating semantic similarity. Implement a custom weighted cosine similarity metric that gives each vector dimension a configurable importance.
Write weighted_similarity(a, b, weights) to accept three lists of equal length containing real numbers. For each dimension i, weights[i] must be nonnegative. Compute:
similarity = Σ(weights[i] * a[i] * b[i]) / (sqrt(Σ(weights[i] * a[i]^2)) * sqrt(Σ(weights[i] * b[i]^2)))
Return a Python float. Dimensions with weight 0 must not affect the result. If either weighted vector has zero magnitude, return 0.0 instead of raising an error. The result should be in [-1.0, 1.0] for valid inputs.
def weighted_similarity(a, b, weights):