LaraPr commited on
Commit
63c977a
·
verified ·
1 Parent(s): 08e68ba

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -46
app.py CHANGED
@@ -1,60 +1,54 @@
1
  import gradio as gr
2
 
3
  # Positive Wörter laden
4
- positive = {}
5
  with open("SentiWS_v2.0_Positive.txt", encoding="utf-8") as f:
6
- for line in f:
7
- parts = line.strip().split("\t")
8
- if len(parts) >= 2:
9
- wort = parts[0].split("\\")[0].lower()
10
- score = float(parts[1])
11
- positive[wort] = score
12
- # Flexionsformen hinzufügen
13
- if len(parts) > 2:
14
- for form in parts[2].split(","):
15
- positive[form.lower()] = score
16
 
17
  # Negative Wörter laden
18
- negative = {}
19
  with open("SentiWS_v2.0_Negative.txt", encoding="utf-8") as f:
20
- for line in f:
21
- parts = line.strip().split("\t")
22
- if len(parts) >= 2:
23
- wort = parts[0].split("\\")[0].lower()
24
- score = float(parts[1])
25
- negative[wort] = score
26
- if len(parts) > 2:
27
- for form in parts[2].split(","):
28
- negative[form.lower()] = score
29
- # Analysefunktion
30
- def analyze_sentiment(text):
31
- words = text.lower().split()
32
- pos_score = sum(positive.get(w, 0) for w in words)
33
- neg_score = sum(negative.get(w, 0) for w in words)
34
-
35
- if pos_score > abs(neg_score):
36
- label = "✅ Positiv"
37
- elif neg_score > abs(pos_score):
38
- label = "❌ Negativ"
 
39
  else:
40
- label = "➖ Neutral"
41
 
42
- return {
43
- "Ergebnis": label,
44
- "Positiv-Score": round(pos_score, 4),
45
- "Negativ-Score": round(neg_score, 4)
46
- }
47
-
48
- # Gradio-Interface
49
  with gr.Blocks() as demo:
50
- gr.Markdown("# Textklassifikation mit SentiWS")
51
- gr.Markdown("Gib einen Satz ein und erfahre, ob er positiv oder negativ klingt.")
52
 
53
- with gr.Row():
54
- inp = gr.Textbox(label="Dein Text", placeholder="Schreibe hier...")
55
- out = gr.Label(label="Analyse")
56
 
57
- btn = gr.Button("Analysieren")
58
- btn.click(analyze_sentiment, inputs=inp, outputs=out)
59
 
60
  demo.launch()
 
1
  import gradio as gr
2
 
3
  # Positive Wörter laden
4
+ positive_woerter = {}
5
  with open("SentiWS_v2.0_Positive.txt", encoding="utf-8") as f:
6
+ for zeile in f:
7
+ teile = zeile.strip().split("\t")
8
+ if len(teile) >= 2:
9
+ grundform = teile[0].split("\\")[0].lower() # Grundform des Wortes
10
+ wert = float(teile[1]) # Positiver Wert
11
+ positive_woerter[grundform] = wert
12
+ # Wenn es gebeugte Formen gibt, auch hinzufügen
13
+ if len(teile) > 2:
14
+ for form in teile[2].split(","):
15
+ positive_woerter[form.lower()] = wert
16
 
17
  # Negative Wörter laden
18
+ negative_woerter = {}
19
  with open("SentiWS_v2.0_Negative.txt", encoding="utf-8") as f:
20
+ for zeile in f:
21
+ teile = zeile.strip().split("\t")
22
+ if len(teile) >= 2:
23
+ grundform = teile[0].split("\\")[0].lower()
24
+ wert = float(teile[1])
25
+ negative_woerter[grundform] = wert
26
+ if len(teile) > 2:
27
+ for form in teile[2].split(","):
28
+ negative_woerter[form.lower()] = wert
29
+
30
+ # Funktion zur Analyse
31
+ def text_bewerten(text):
32
+ woerter = text.lower().split()
33
+ positiv_summe = sum(positive_woerter.get(w, 0) for w in woerter)
34
+ negativ_summe = sum(negative_woerter.get(w, 0) for w in woerter)
35
+
36
+ if positiv_summe > abs(negativ_summe):
37
+ return "✅ Positiv"
38
+ elif negativ_summe > abs(positiv_summe):
39
+ return "❌ Negativ"
40
  else:
41
+ return "➖ Neutral"
42
 
43
+ # Oberfläche mit Gradio
 
 
 
 
 
 
44
  with gr.Blocks() as demo:
45
+ gr.Markdown("# Textanalyse mit SentiWS")
46
+ gr.Markdown("Gib einen Satz ein und erfahre, ob er eher positiv, negativ oder neutral klingt.")
47
 
48
+ eingabe = gr.Textbox(label="Dein Text", placeholder="Schreibe hier...")
49
+ ausgabe = gr.Label(label="Ergebnis")
 
50
 
51
+ knopf = gr.Button("Analysieren")
52
+ knopf.click(text_bewerten, inputs=eingabe, outputs=ausgabe)
53
 
54
  demo.launch()