Q7: Cosine Similarity Solution
Find the most similar pair of phrases using cosine similarity
1
How to Submit Your Answer
  1. Copy the code below using the copy button
  2. Paste it into the answer box
  3. Click the check button to verify your answer
2
Solution Code
import numpy as np
from itertools import combinations

def cosine_similarity(vec1, vec2):
    vec1 = np.array(vec1)
    vec2 = np.array(vec2)
    return np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))

def most_similar(embeddings):
    max_similarity = -1  # Initialize with lowest possible similarity
    most_similar_pair = (None, None)
    
    # Generate all unique pairs of phrases
    for phrase1, phrase2 in combinations(embeddings.keys(), 2):
        sim = cosine_similarity(embeddings[phrase1], embeddings[phrase2])
        if sim > max_similarity:
            max_similarity = sim
            most_similar_pair = (phrase1, phrase2)
    
    return most_similar_pair