sebtick's picture
Update app.py
e6455d3 verified
raw
history blame
2.76 kB
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
@st.cache_resource
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.")