Introduction
Semantic similarity helps us find how close two pieces of text are in meaning, even if they use different words.
Jump into concepts and practice - no test required
embedding1 = model.encode(text1) embedding2 = model.encode(text2) similarity = cosine_similarity([embedding1], [embedding2])[0][0]
embedding1 = model.encode('I love apples') embedding2 = model.encode('I like oranges') similarity = cosine_similarity([embedding1], [embedding2])[0][0]
embedding1 = model.encode('The cat sits on the mat') embedding2 = model.encode('A dog lies on the rug') similarity = cosine_similarity([embedding1], [embedding2])[0][0]
from sentence_transformers import SentenceTransformer from sklearn.metrics.pairwise import cosine_similarity # Load a small pre-trained model model = SentenceTransformer('all-MiniLM-L6-v2') # Two example sentences text1 = 'I enjoy reading books about history.' text2 = 'Books on historical topics are my favorite.' # Get embeddings embedding1 = model.encode(text1) embedding2 = model.encode(text2) # Compute cosine similarity similarity = cosine_similarity([embedding1], [embedding2])[0][0] print(f'Semantic similarity: {similarity:.4f}')
from sklearn.metrics.pairwise import cosine_similarity import numpy as np emb1 = np.array([[1, 0, 0]]) emb2 = np.array([[0, 1, 0]]) sim = cosine_similarity(emb1, emb2) print(sim[0][0])
from sklearn.metrics.pairwise import cosine_similarity emb1 = [0.1, 0.2, 0.3] emb2 = [0.1, 0.2, 0.3] sim = cosine_similarity(emb1, emb2) print(sim)