File size: 2,762 Bytes
546c04a
 
e6455d3
 
546c04a
8085a83
 
e6455d3
 
8085a83
 
546c04a
e6455d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8085a83
e6455d3
 
8085a83
e6455d3
8085a83
e6455d3
 
 
 
 
 
8085a83
e6455d3
8085a83
e6455d3
546c04a
 
 
 
 
 
e6455d3
 
 
546c04a
e6455d3
 
 
 
546c04a
e6455d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
546c04a
 
 
e6455d3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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.")