import gradio as gr # Positive Wörter laden positive_woerter = {} with open("SentiWS_v2.0_Positive.txt", encoding="utf-8") as f: for zeile in f: teile = zeile.strip().split("\t") if len(teile) >= 2: grundform = teile[0].split("\\")[0].lower() # Grundform des Wortes wert = float(teile[1]) # Positiver Wert positive_woerter[grundform] = wert # Wenn es gebeugte Formen gibt, auch hinzufügen if len(teile) > 2: for form in teile[2].split(","): positive_woerter[form.lower()] = wert # Negative Wörter laden negative_woerter = {} with open("SentiWS_v2.0_Negative.txt", encoding="utf-8") as f: for zeile in f: teile = zeile.strip().split("\t") if len(teile) >= 2: grundform = teile[0].split("\\")[0].lower() wert = float(teile[1]) negative_woerter[grundform] = wert if len(teile) > 2: for form in teile[2].split(","): negative_woerter[form.lower()] = wert # Funktion zur Analyse def text_bewerten(text): woerter = text.lower().split() positiv_summe = sum(positive_woerter.get(w, 0) for w in woerter) negativ_summe = sum(negative_woerter.get(w, 0) for w in woerter) if positiv_summe > abs(negativ_summe): return "✅ Positiv" elif negativ_summe > abs(positiv_summe): return "❌ Negativ" else: return "➖ Neutral" # Oberfläche mit Gradio with gr.Blocks() as demo: gr.Markdown("# Textanalyse mit SentiWS") gr.Markdown("Gib einen Satz ein und erfahre, ob er eher positiv, negativ oder neutral klingt.") eingabe = gr.Textbox(label="Dein Text", placeholder="Schreibe hier...") ausgabe = gr.Label(label="Ergebnis") knopf = gr.Button("Analysieren") knopf.click(text_bewerten, inputs=eingabe, outputs=ausgabe) demo.launch()