Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -5,6 +5,29 @@ import streamlit as st
|
|
5 |
import os
|
6 |
import numpy as np
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
KOTE_LABELS = [
|
9 |
'λΆν/λΆλ§', 'νμ/νΈμ', 'κ°λ/κ°ν', 'μ§κΈμ§κΈ', 'κ³ λ§μ', 'μ¬ν', 'νλ¨/λΆλ
Έ', 'μ‘΄κ²½',
|
10 |
'κΈ°λκ°', 'μ°μλ/무μν¨', 'μνκΉμ/μ€λ§', 'λΉμ₯ν¨', 'μμ¬/λΆμ ', 'λΏλ―ν¨', 'νΈμ/μΎμ ',
|
@@ -59,67 +82,86 @@ tabs = st.tabs(["κ°μ λΆμ 체ν", "AIλ μ΄λ»κ² κ°μ μ μ΄ν΄ν κΉ?
|
|
59 |
|
60 |
|
61 |
with tabs[0]:
|
62 |
-
st.markdown("""
|
63 |
-
<style>
|
64 |
-
.big-title { font-size: 1.5em; font-weight: 800; margin-bottom: 0.2em; }
|
65 |
-
.sub-info { font-size: 1.1em; color: #666; margin-bottom: 1em; }
|
66 |
-
.card { background-color: #f9f9f9; padding: 1.2em; border-radius: 10px; border: 1px solid #eee; }
|
67 |
-
</style>
|
68 |
-
""", unsafe_allow_html=True)
|
69 |
-
|
70 |
st.markdown('<div class="big-title">π νκ΅μ΄ κ°μ λΆμ AI 체ν</div>', unsafe_allow_html=True)
|
71 |
st.markdown('<div class="sub-info">2025λ
1νκΈ° λμ§νΈ μΈλ¬Έν μ
λ¬Έ (SLA23501) Β· <b>Team μλ¬λλ³Ό</b><br>κ°μν Β· κΉλμ° Β· μ μμ Β· μ νμ± Β· μ΅μ’
μ€</div>', unsafe_allow_html=True)
|
72 |
|
73 |
-
st.markdown(
|
|
|
|
|
|
|
|
|
|
|
74 |
|
75 |
if "example_text" not in st.session_state:
|
76 |
st.session_state.example_text = ""
|
77 |
|
78 |
-
if st.button("π μμ λ¬Έμ₯ λΆλ¬μ€κΈ°"):
|
79 |
-
st.session_state.example_text = "μ΄ μν μ λ§ κ°λμ μ΄μμ΄μ. λλ¬Όμ΄ λ¬μ΅λλ€."
|
80 |
-
|
81 |
text = st.text_area("βοΈ λ¬Έμ₯μ μ
λ ₯νμΈμ:", value=st.session_state.example_text, height=120, placeholder="μ: μ€λ ν루 μ λ§ ν볡νμ΄μ.")
|
82 |
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
st.
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
|
94 |
|
95 |
with tabs[1]:
|
96 |
-
st.
|
97 |
st.markdown("""
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
|
|
|
|
|
|
|
|
104 |
|
105 |
with tabs[2]:
|
106 |
-
st.
|
107 |
st.markdown("""
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
μ΄
|
114 |
-
|
|
|
115 |
|
116 |
with tabs[3]:
|
117 |
-
st.
|
|
|
118 |
st.markdown("""
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
import os
|
6 |
import numpy as np
|
7 |
|
8 |
+
st.markdown("""
|
9 |
+
<style>
|
10 |
+
.big-title {
|
11 |
+
font-size: 2.4em;
|
12 |
+
font-weight: 800;
|
13 |
+
margin-bottom: 0.2em;
|
14 |
+
}
|
15 |
+
.sub-info {
|
16 |
+
font-size: 1.1em;
|
17 |
+
color: #666;
|
18 |
+
margin-bottom: 1.2em;
|
19 |
+
}
|
20 |
+
.card {
|
21 |
+
background-color: #f1f3f6;
|
22 |
+
padding: 1.2em;
|
23 |
+
border-left: 5px solid #3366cc;
|
24 |
+
border-radius: 6px;
|
25 |
+
margin-bottom: 1em;
|
26 |
+
}
|
27 |
+
</style>
|
28 |
+
""", unsafe_allow_html=True)
|
29 |
+
|
30 |
+
|
31 |
KOTE_LABELS = [
|
32 |
'λΆν/λΆλ§', 'νμ/νΈμ', 'κ°λ/κ°ν', 'μ§κΈμ§κΈ', 'κ³ λ§μ', 'μ¬ν', 'νλ¨/λΆλ
Έ', 'μ‘΄κ²½',
|
33 |
'κΈ°λκ°', 'μ°μλ/무μν¨', 'μνκΉμ/μ€λ§', 'λΉμ₯ν¨', 'μμ¬/λΆμ ', 'λΏλ―ν¨', 'νΈμ/μΎμ ',
|
|
|
82 |
|
83 |
|
84 |
with tabs[0]:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
st.markdown('<div class="big-title">π νκ΅μ΄ κ°μ λΆμ AI 체ν</div>', unsafe_allow_html=True)
|
86 |
st.markdown('<div class="sub-info">2025λ
1νκΈ° λμ§νΈ μΈλ¬Έν μ
λ¬Έ (SLA23501) Β· <b>Team μλ¬λλ³Ό</b><br>κ°μν Β· κΉλμ° Β· μ μμ Β· μ νμ± Β· μ΅μ’
μ€</div>', unsafe_allow_html=True)
|
87 |
|
88 |
+
st.markdown("""
|
89 |
+
<div class="card">
|
90 |
+
μΈκ³΅μ§λ₯μ μ
λ ₯λ λ¬Έμ₯μ λΆμν΄ κ°μ μ΄ μ΄λ»κ² ννλμλμ§λ₯Ό μμΈ‘ν©λλ€.<br>
|
91 |
+
μλμ λ¬Έμ₯μ μ
λ ₯νκ±°λ μμ λ¬Έμ₯μ λΆλ¬μ¨ ν, κ°μ μμΈ‘ λ²νΌμ λλ¬ μ²΄νν΄λ³΄μΈμ.
|
92 |
+
</div>
|
93 |
+
""", unsafe_allow_html=True)
|
94 |
|
95 |
if "example_text" not in st.session_state:
|
96 |
st.session_state.example_text = ""
|
97 |
|
|
|
|
|
|
|
98 |
text = st.text_area("βοΈ λ¬Έμ₯μ μ
λ ₯νμΈμ:", value=st.session_state.example_text, height=120, placeholder="μ: μ€λ ν루 μ λ§ ν볡νμ΄μ.")
|
99 |
|
100 |
+
col1, col2 = st.columns([1, 1])
|
101 |
+
with col1:
|
102 |
+
if st.button("π μμ λ¬Έμ₯ λΆλ¬μ€κΈ°"):
|
103 |
+
st.session_state.example_text = "μ΄ μν μ λ§ κ°λμ μ΄μμ΄μ. λλ¬Όμ΄ λ¬μ΅λλ€."
|
104 |
+
st.experimental_rerun()
|
105 |
+
|
106 |
+
with col2:
|
107 |
+
if st.button("π κ°μ μμΈ‘νκΈ°"):
|
108 |
+
if text.strip():
|
109 |
+
results, full_probs = predict_emotion(text)
|
110 |
+
st.subheader("π μμ κ°μ κ²°κ³Ό")
|
111 |
+
for label, prob in results:
|
112 |
+
st.markdown(f"- **{label}**: `{prob:.3f}`")
|
113 |
+
st.subheader("π νλ₯ λΆν¬ (Top 5)")
|
114 |
+
st.bar_chart({label: prob for label, prob in results})
|
115 |
+
else:
|
116 |
+
st.warning("λ¬Έμ₯μ λ¨Όμ μ
λ ₯ν΄μ£ΌμΈμ.")
|
117 |
+
|
118 |
+
|
119 |
|
120 |
|
121 |
with tabs[1]:
|
122 |
+
st.markdown('<div class="big-title">π€ μΈκ³΅μ§λ₯μ κ°μ μ μ΄λ»κ² μ΄ν΄ν κΉμ?</div>', unsafe_allow_html=True)
|
123 |
st.markdown("""
|
124 |
+
<div class="card">
|
125 |
+
μΈκ³΅μ§λ₯μ λ¬Έμ₯μ 'μ«μμ 벑ν°'λ‘ λ°κΎΈμ΄ μ΄ν΄ν©λλ€.<br><br>
|
126 |
+
μ΄ κ³Όμ μ λ€μκ³Ό κ°μ λ¨κ³λ‘ μ΄λ£¨μ΄μ§λλ€:
|
127 |
+
<ol>
|
128 |
+
<li><b>μ¬μ νμ΅ μΈμ΄ λͺ¨λΈ</b>(KLUE-RoBERTa)μ΄ λ¬Έμ₯μ μ½κ³ ν΅μ¬ μλ―Έλ₯Ό μΆμΆν©λλ€.</li>
|
129 |
+
<li>μ΄ κ²°κ³Όλ₯Ό λ°νμΌλ‘ <b>κ°μ λΆλ₯κΈ°</b>(MLP)κ° κ°μ μ μμΈ‘ν©λλ€.</li>
|
130 |
+
<li>κ° κ°μ μ λν κ°λ₯μ±μ <b>νλ₯ λ‘</b> 보μ¬μ€λλ€.</li>
|
131 |
+
</ol>
|
132 |
+
</div>
|
133 |
+
""", unsafe_allow_html=True)
|
134 |
|
135 |
with tabs[2]:
|
136 |
+
st.markdown('<div class="big-title">π§ Few-shot Fine-tuningμ΄λ?</div>', unsafe_allow_html=True)
|
137 |
st.markdown("""
|
138 |
+
<div class="card">
|
139 |
+
μ°λ¦¬κ° μ¬μ©νλ KLUE-RoBERTa λͺ¨λΈμ μ΄λ―Έ μλ§μ λ¬Έμ₯μ νμ΅ν κ±°λν μΈμ΄ λͺ¨λΈμ
λλ€.<br><br>
|
140 |
+
νμ§λ§ κ°μ λΆμμ΄λΌλ νΉμ ν μμ
μ λ§κ² μ‘°κΈ λ νμ΅μν€λ κ³Όμ μ΄ νμν©λλ€.<br><br>
|
141 |
+
μ΄λ μ 체 λͺ¨λΈμ λ€μ νμ΅νμ§ μκ³ , λ§μ§λ§ λΆλ₯κΈ°(MLP)λ§ νμ΅νλ λ°©μμ΄ λ°λ‘
|
142 |
+
<b>Few-shot Fine-tuning</b>μ
λλ€.<br><br>
|
143 |
+
μ΄ λ°©λ²μ ν΅ν΄ μ μ μμ κ°μ λ°μ΄ν°λ§μΌλ‘λ λμ μ±λ₯μ λ¬μ±ν μ μμ΅λλ€.
|
144 |
+
</div>
|
145 |
+
""", unsafe_allow_html=True)
|
146 |
|
147 |
with tabs[3]:
|
148 |
+
st.markdown('<div class="big-title">π μ΄ κΈ°μ μ μ΄λμ μ°μΌ μ μμκΉμ?</div>', unsafe_allow_html=True)
|
149 |
+
|
150 |
st.markdown("""
|
151 |
+
<div class="card">
|
152 |
+
μ΄ κ°μ λΆμ κΈ°μ μ λ¨μν λ¬Έμ₯μ κ°μ μ λΆλ₯νλ λ° κ·ΈμΉμ§ μκ³ ,
|
153 |
+
<b>λμ§νΈ μ¬νμμμ κ°μ νλ¦</b>κ³Ό <b>κ³΅λ‘ μ₯μ μ μμ ꡬ쑰</b>λ₯Ό μ΄ν΄νλ λ°κΉμ§ νμ₯λ μ μμ΅λλ€.<br><br>
|
154 |
+
|
155 |
+
νΉν λ€μκ³Ό κ°μ λΆμΌμ νμ©λ μ μμ΅λλ€:
|
156 |
+
<ul>
|
157 |
+
<li>π‘ <b>μ
μ± λκΈ νμ§</b>: μ ν΄ νν, νμ€ ννμ μ‘°κΈ°μ κ°μ§νκ³ νν°λ§</li>
|
158 |
+
<li>π <b>λκΈ κ°μ νλ¦ μκ°ν</b>: μ νλΈλ λ΄μ€ λκΈμμ κ°μ μ ν ꡬ쑰 λΆμ</li>
|
159 |
+
<li>π° <b>μ¬ν μ΄μ 곡κ°/νμ€ λ°μ μΆμ </b>: νΉμ μ¬κ±΄μ λν κ°μ λ°μ λͺ¨λν°λ§</li>
|
160 |
+
<li>π¬ <b>μ¨λΌμΈ κ³΅λ‘ μ₯ κ°μ μ μΌ μ°κ΅¬</b>: κ°μ μ΄ λκΈ-λλκΈλ‘ μ΄λ»κ² νμ°λλμ§ μ λμ λΆμ</li>
|
161 |
+
</ul>
|
162 |
+
|
163 |
+
λμκ° μ΄ κΈ°μ μ <b>λμ§νΈ μΈλ¬Ένμ μλ‘μ΄ λΆμ λꡬ</b>λ‘ νμ©λμ΄,
|
164 |
+
ν
μ€νΈ κΈ°λ° μ¬λ‘ μ μ μμ ꡬ쑰λ₯Ό λ³΄λ€ κΉμ΄ μκ² μ΄ν΄νλ κΈ°λ°μ΄ λ μ μμ΅λλ€.
|
165 |
+
</div>
|
166 |
+
""", unsafe_allow_html=True)
|
167 |
+
|