Spaces:
Running
Running
import streamlit as st | |
from transformers import pipeline | |
from langdetect import detect | |
import pandas as pd | |
# Configuration de la page | |
st.set_page_config( | |
page_title="🌍 Analyse de Sentiment Multilingue V2", | |
page_icon="🔎", | |
layout="centered", | |
) | |
# CSS personnalisé pour rendre l'app plus douce visuellement | |
st.markdown( | |
""" | |
<style> | |
.stApp { | |
background-color: #f0f2f6; | |
} | |
.big-font { | |
font-size:20px !important; | |
} | |
</style> | |
""", | |
unsafe_allow_html=True | |
) | |
# Titre principal | |
st.title("🔎 Analyseur de Sentiment Multilingue") | |
st.write("**Bienvenue !** Cette application détecte automatiquement la langue et analyse les sentiments de vos textes. 📖") | |
# Sidebar d'information | |
with st.sidebar: | |
st.header("📚 À propos de l'application") | |
st.write(""" | |
- Modèle IA : tabularisai/multilingual-sentiment-analysis | |
- Analyse de texte rapide | |
- Détection de la langue | |
""") | |
st.markdown("---") | |
st.write("Réalisé avec ❤️ en Python et Streamlit") | |
# Charger le modèle | |
def load_model(): | |
return pipeline("text-classification", model="tabularisai/multilingual-sentiment-analysis") | |
classifier = load_model() | |
# Entrée utilisateur | |
st.subheader("✍️ Entrez vos phrases :") | |
user_input = st.text_area("Entrez plusieurs phrases séparées par un point-virgule ';'", height=150) | |
# Bouton | |
if st.button("🔍 Lancer l'analyse"): | |
if not user_input.strip(): | |
st.warning("⚠️ Merci d'entrer au moins une phrase.") | |
else: | |
phrases = [phrase.strip() for phrase in user_input.split(';') if phrase.strip()] | |
st.info(f"Nombre de phrases détectées : {len(phrases)}") | |
results = [] | |
with st.spinner("Analyse en cours... ⏳"): | |
for phrase in phrases: | |
try: | |
lang = detect(phrase) | |
except: | |
lang = "indéterminée" | |
analysis = classifier(phrase)[0] | |
results.append({ | |
"Texte": phrase, | |
"Langue": lang, | |
"Sentiment": analysis["label"], | |
"Score": round(analysis["score"], 2) | |
}) | |
# Affichage sous forme de tableau | |
df_results = pd.DataFrame(results) | |
st.dataframe(df_results) | |
# Résultats graphiques | |
st.subheader("📊 Visualisation des scores de confiance") | |
st.bar_chart(df_results.set_index("Texte")["Score"]) | |
st.success("✅ Analyse terminée avec succès !") | |
# Footer | |
st.markdown("---") | |
st.markdown("🔗 [Voir le modèle Hugging Face](https://huggingface.co/tabularisai/multilingual-sentiment-analysis) | Projet open-source disponible sur demande.") | |