|
|
import gradio as gr |
|
|
|
|
|
|
|
|
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() |
|
|
wert = float(teile[1]) |
|
|
positive_woerter[grundform] = wert |
|
|
|
|
|
if len(teile) > 2: |
|
|
for form in teile[2].split(","): |
|
|
positive_woerter[form.lower()] = wert |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
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" |
|
|
|
|
|
|
|
|
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() |