Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import streamlit.components.v1 as stc | |
| import pandas as pd | |
| from sklearn.feature_extraction.text import CountVectorizer | |
| from sklearn.metrics.pairwise import cosine_similarity,linear_kernel | |
| import re | |
| import pandas as pd | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| import neattext.functions as nfx | |
| from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer | |
| from sklearn.metrics.pairwise import cosine_similarity | |
| import warnings | |
| st.set_page_config(layout="wide", initial_sidebar_state="expanded") | |
| warnings.filterwarnings("ignore") | |
| data= pd.read_csv("udemy_courses.csv") | |
| data["titre_OK"]= data.course_title.apply(nfx.remove_stopwords) | |
| data["titre_OK"]= data.course_title.apply(nfx.remove_special_characters) | |
| countVec= CountVectorizer() | |
| cv= countVec.fit_transform(data.titre_OK) | |
| df=data | |
| matrice_cosine= cosine_similarity(cv) | |
| def recommend_course2(title, numrec=10): | |
| try: | |
| pattern = re.compile(re.escape(title), re.IGNORECASE) | |
| matching_courses = df['course_title'].apply(lambda x: bool(pattern.search(x))) | |
| index = df[matching_courses].index[0] | |
| scores = list(enumerate(matrice_cosine[index])) | |
| sorted_scores = sorted(scores, key=lambda x: x[1], reverse=True) | |
| selected_course_index = [i[0] for i in sorted_scores[1:]] | |
| selected_course_score = [i[1] for i in sorted_scores[1:]] | |
| rec_df = df.iloc[selected_course_index] | |
| rec_df['Similarity_Score'] = selected_course_score | |
| final_recommended_courses = rec_df[["course_title","level", "subject","Similarity_Score"]] | |
| except: | |
| final_recommended_courses= pd.DataFrame({"data": "Aucune Recommendaion disponible!"},index=[0]) | |
| return final_recommended_courses.head(numrec) | |
| def main(): | |
| st.title("Système de Recommandation de Cours") | |
| menu = ["Accueil","Recommendations","A propos"] | |
| choice = st.sidebar.selectbox("Menu",menu) | |
| if choice == "Accueil": | |
| st.subheader("Accueil") | |
| st.dataframe(df.head(10)) | |
| elif choice == "Recommendations": | |
| st.subheader("Recommendations de formation") | |
| search_term = st.text_input("cours") | |
| num_of_rec = st.sidebar.number_input("Nombre de cours",4,30,7) | |
| if st.button("Recommendations"): | |
| if search_term: | |
| st.write(recommend_course2(search_term, num_of_rec)) | |
| else: | |
| st.subheader("A propos") | |
| st.text("Keyce @2024") | |
| if __name__ == '__main__': | |
| main() | |