Views
No views yet
pip install gensim numpy1from gensim.models import Word2Vec
2import numpy as np
3from scipy.spatial.distance import cosine
4
5def load_model(model_path):
6 return Word2Vec.load(model_path)1def sentence_to_vector(sentence, model):
2 words = [word for word in sentence.split() if word in model.wv]
3 if not words:
4 return np.zeros(model.vector_size)
5 return np.mean([model.wv[word] for word in words], axis=0)
6
7def compute_similarity(sentence1, sentence2, model):
8 vec1 = sentence_to_vector(sentence1, model)
9 vec2 = sentence_to_vector(sentence2, model)
10 return 1 - cosine(vec1, vec2)
11
12# 👉 Test Example
13
14sentence1 = "What is your name"
15sentence2 = "My name is john"
16
17vec1 = get_sentence_embedding(sentence1, word2vec_model)
18vec2 = get_sentence_embedding(sentence2, word2vec_model)
19
20cosine_similarity = np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))
21print(f"Cosine similarity between sentences: {cosine_similarity:.4f}")
22| Similarity Score | Interpretation |
|---|---|
| 0.8 - 1.0 | Strong semantic similarity |
| 0.6 - 0.8 | Moderate similarity |
| 0.4 - 0.6 | Weak similarity |
| Below 0.4 | Unrelated sentences |