Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Custom Similarity Metric Coding

EasyPython00:00
Practice interviewer
In session
5 left
00:00

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.

You need to log in / sign up to run or submit.

Problem

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.

Formal Specification

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.

Constraints

  • 1 <= len(a) = len(b) = len(weights) <= 10^5
  • -10^6 <= a[i], b[i] <= 10^6
  • 0 <= weights[i] <= 10^6
  • At least one weight is positive
  • Inputs contain finite numeric values

Function Signature

def weighted_similarity(a, b, weights):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output