Views
No views yet
1# Load model and tokenizer
2from scipy.spatial.distance import cosine
3from sentence_transformers import SentenceTransformer
4modelname = "algolia/algolia-large-multilang-generic-v2410"
5model = SentenceTransformer(modelname)
6
7# Define embedding and compute_similarity
8def get_embedding(text):
9 embedding = model.encode([text])
10 return embedding[0]
11def compute_similarity(query, documents):
12 query_emb = get_embedding(query)
13 doc_embeddings = [get_embedding(doc) for doc in documents]
14 # Calculate cosine similarity
15 similarities = [1 - cosine(query_emb, doc_emb) for doc_emb in doc_embeddings]
16 ranked_docs = sorted(zip(documents, similarities), key=lambda x: x[1], reverse=True)
17 # Format output
18 return [{"document": doc, "similarity_score": round(sim, 4)} for doc, sim in ranked_docs]
19
20# Define inputs
21query = "query: "+"running shoes"
22documents = ["adidas sneakers, great for outdoor running",
23 "nike soccer boots indoor, it can be used on turf",
24 "new balance light weight, good for jogging",
25 "hiking boots, good for bushwalking"
26 ]
27
28# Output the results
29result_df = pd.DataFrame(compute_similarity(query,documents))
30print(query)
31result_df.head()