TechNeur/course_search
0
1import gradio as gr2import pickle3import pandas as pd4from sentence_transformers import SentenceTransformer5from sklearn.metrics.pairwise import cosine_similarity6 7with open("course_emb.pkl", "rb") as f:8 course_emb = pickle.load(f)9 10df = pd.read_excel("analytics_vidhya_courses_Final.xlsx")11 12model = SentenceTransformer('all-MiniLM-L6-v2')13 14def search_courses(query, top_n=5):15 query_embedding = model.encode([query])16 17 similarities = cosine_similarity(query_embedding, course_emb)18 19 top_n_idx = similarities[0].argsort()[-top_n:][::-1]20 21 return df.iloc[top_n_idx][["Course Title", "Course Description"]]22 23def gradio_interface(query):24 top_courses = search_courses(query)25 results = []26 for idx, row in top_courses.iterrows():27 results.append(f"Title: {row['Course Title']}\nDescription: {row['Course Description']}\n")28 return "\n".join(results)29iface = gr.Interface(fn=gradio_interface, inputs=gr.Textbox(label="Enter your search query"), outputs="text")30 31iface.launch(share=True)32 