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 from streamlit_extras.dataframe_explorer import dataframe_explorer ,generate_fake_dataframe warnings.filterwarnings("ignore") APP_TITLE="TO_ME_FOR_ME" APP_LOGO="requirement-confidential-develop-extend-proof.jpg" st.set_page_config(layout="wide", page_title=APP_TITLE, page_icon=APP_LOGO,initial_sidebar_state="expanded") @st.cache_data def loadDataframe(path): return pd.read_csv(path) data=loadDataframe("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) parameters = { "Personnalisation Précise": { "description": """ **Description:** Les systèmes de recommandation intelligents analysent vos compétences, vos intérêts, et vos objectifs professionnels pour offrir des suggestions de formation parfaitement adaptées. **Rôle:** Ce paramètre est crucial car il vous permet de recevoir des recommandations sur mesure, optimisant ainsi la pertinence des formations suggérées. """, "image": "standard-quality-control-concept-m (1).jpg" }, "Gain de Temps": { "description": """ **Description:** La recherche de la formation idéale peut être chronophage. Un système intelligent simplifie ce processus en vous orientant directement vers les programmes les plus appropriés. **Rôle:** Ce paramètre permet de réduire le temps passé à rechercher et à comparer les options de formation, vous permettant de vous concentrer sur l'apprentissage. """, "image": "standard-quality-control-concept-m (2).jpg" }, "Suivi et Adaptation Continue": { "description": """ **Description:** Les systèmes avancés suivent vos progrès, évaluent les résultats obtenus et ajustent les recommandations en fonction de votre évolution. **Rôle:** Ce paramètre permet d'ajuster les suggestions en temps réel, vous offrant un accompagnement continu et personnalisé tout au long de votre parcours de formation. """, "image": "programming-background-with-person-working-with-codes-computer.jpg" }, } params= { "Réponse aux Évolutions du Marché": { "description": """ **Description:** Les systèmes de recommandation intelligents ajustent leurs suggestions en fonction des tendances actuelles et des évolutions du secteur. **Rôle:** Ce paramètre garantit que vous restez à la pointe des compétences demandées, vous aidant ainsi à répondre aux exigences du marché du travail en constante évolution. """, "image": "standard-quality-control-concept-m.jpg" }, "Suivi et Adaptation Continue": { "description": """ **Description:** Les systèmes avancés suivent vos progrès, évaluent les résultats obtenus et ajustent les recommandations en fonction de votre évolution. **Rôle:** Ce paramètre permet d'ajuster les suggestions en temps réel, vous offrant un accompagnement continu et personnalisé tout au long de votre parcours de formation. """, "image": "programming-background-with-person-working-with-codes-computer.jpg" }, "Amélioration de la Pertinence": { "description": """ **Description:** En s'appuyant sur des données et des algorithmes sophistiqués, les systèmes réduisent les erreurs de jugement humaines et optimisent vos investissements en temps et en ressources. **Rôle:** Ce paramètre assure que les recommandations sont basées sur des analyses précises et pertinentes, maximisant ainsi l'efficacité de vos choix de formation. """, "image": "cloud-storage-background-remixed-from-public-domain-by-nasa.jpg" } } DESCRIPTION = """
Dans un monde où les opportunités d'apprentissage sont aussi vastes que variées, choisir la formation adéquate peut s'avérer un véritable défi. C’est là qu’un système de recommandation intelligent entre en jeu. En combinant technologie avancée et compréhension fine de vos besoins , il transforme le processus de sélection de formation en une expérience personnalisée et efficace.
Notre technologie avancée utilise des algorithmes intelligents pour analyser vos compétences actuelles, vos intérêts professionnels et vos aspirations futures. Grâce à ces informations, nous vous proposons des formations personnalisées qui maximisent votre potentiel de croissance et vous aident à rester compétitif dans un monde en constante évolution. L’intégration d’un système de recommandation intelligent dans votre processus de formation vous permet non seulement de gagner en efficacité, mais aussi d’accroître votre satisfaction et votre réussite. Il vous offre une voie claire vers l’acquisition des compétences dont vous avez besoin pour exceller dans votre carrière.
""" @st.cache_data 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) MenuNavigation = ["🏠Accueil", "🤺Simulation", "A propos"] st.sidebar.image(APP_LOGO, width=255) userChoice= st.sidebar.selectbox("Menu",MenuNavigation) if userChoice== MenuNavigation[0]: st.markdown("Pour une formation de Qualité
", unsafe_allow_html=True) st.markdown("