Abhay Mishra
add initial implementation
8cca354
raw
history blame
960 Bytes
from sentence_transformers import SentenceTransformer
import pickle
import numpy as np
import torch
import gradio as gr
model = SentenceTransformer('paraphrase-MiniLM-L6-v2')
with open("dep_course_title_to_content_embed.pickle", "rb") as handle:
loaded_map = pickle.load(handle)
dep_name_course_name = list(loaded_map.keys())
dep_name = [x for (x,y) in dep_name_course_name]
course_titles = [y for (x,y) in dep_name_course_name]
course_content_embeddings = np.array(list(loaded_map.values()), dtype=np.float32)
cos = torch.nn.CosineSimilarity(dim=1, eps=1e-6)
def give_best_match(query):
embed = model.encode(query)
result = cos(torch.from_numpy(course_content_embeddings),torch.from_numpy(embed))
indices = reversed(np.argsort(result))
predictions = {course_titles[i] : float(result[i]) for i in indices}
return predictions
demo = gr.Interface(fn = give_best_match, inputs="text",outputs=gr.Label(num_top_classes=5))
demo.launch()