alxvlsv commited on
Commit
b540feb
·
1 Parent(s): 41b7dcf

simple version test interface

Browse files
Files changed (2) hide show
  1. app.py +63 -2
  2. requirements.txt +2 -0
app.py CHANGED
@@ -1,4 +1,65 @@
 
 
1
  import streamlit as st
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
- x = st.slider('Select a value')
4
- st.write(x, 'squared is', x * x)
 
 
 
 
 
 
 
 
1
+ # app.py
2
+
3
  import streamlit as st
4
+ from transformers import pipeline
5
+ import pandas as pd
6
+
7
+
8
+ @st.cache(allow_output_mutation=True)
9
+ def load_model():
10
+ return pipeline(model="seara/rubert-tiny2-ru-go-emotions")
11
+
12
+ model = load_model()
13
+
14
+ emotion_labels = {
15
+ "admiration": ("восхищение", "🌟"),
16
+ "amusement": ("веселье", "😄"),
17
+ "anger": ("злость", "😡"),
18
+ "annoyance": ("раздражение", "😠"),
19
+ "approval": ("одобрение", "👍"),
20
+ "caring": ("забота", "🤗"),
21
+ "confusion": ("непонимание", "😕"),
22
+ "curiosity": ("любопытство", "🧐"),
23
+ "desire": ("желание", "🔥"),
24
+ "disappointment": ("разочарование", "😞"),
25
+ "disapproval": ("неодобрение", "👎"),
26
+ "disgust": ("отвращение", "🤢"),
27
+ "embarrassment": ("смущение", "😳"),
28
+ "excitement": ("возбуждение", "🤩"),
29
+ "fear": ("страх", "😱"),
30
+ "gratitude": ("признательность", "🙏"),
31
+ "grief": ("горе", "😭"),
32
+ "joy": ("радость", "😊"),
33
+ "love": ("любовь", "❤️"),
34
+ "nervousness": ("нервозность", "😬"),
35
+ "optimism": ("оптимизм", "🌈"),
36
+ "pride": ("гордость", "🏅"),
37
+ "realization": ("осознание", "💡"),
38
+ "relief": ("облегчение", "😌"),
39
+ "remorse": ("раскаяние", "😔"),
40
+ "sadness": ("грусть", "😢"),
41
+ "surprise": ("удивление", "😲"),
42
+ "neutral": ("нейтральность", "😐")
43
+ }
44
+
45
+ st.title("🎭 Эмоциональный анализ текста")
46
+ st.write("Введите текст на русском, и мы покажем, какие эмоции в нём распознаны.")
47
+
48
+ text_input = st.text_area("Введите текст здесь:")
49
+
50
+ if text_input:
51
+ results = model(text_input)
52
+
53
+ threshold = 0.1
54
+ filtered = [r for r in results if r["score"] >= threshold]
55
+ filtered.sort(key=lambda x: x["score"], reverse=True)
56
 
57
+ if filtered:
58
+ st.subheader("Распознанные эмоции:")
59
+ for item in filtered:
60
+ label = item["label"]
61
+ score = item["score"]
62
+ ru_label, emoji = emotion_labels.get(label, (label, "❓"))
63
+ st.markdown(f"**{ru_label.capitalize()}** {emoji} — {score:.2%}")
64
+ else:
65
+ st.info("Эмоции не распознаны с достаточной уверенностью.")
requirements.txt CHANGED
@@ -0,0 +1,2 @@
 
 
 
1
+ transformers
2
+ torch