Update app.py
Browse files
app.py
CHANGED
@@ -1,12 +1,6 @@
|
|
1 |
import streamlit as st
|
2 |
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
|
3 |
|
4 |
-
# Initialize session state
|
5 |
-
if 'show_all' not in st.session_state:
|
6 |
-
st.session_state.show_all = False
|
7 |
-
if 'results' not in st.session_state:
|
8 |
-
st.session_state.results = []
|
9 |
-
|
10 |
id_to_cat = {0: 'Performance',
|
11 |
1: 'Molecular Networks',
|
12 |
2: 'Operating Systems',
|
@@ -197,6 +191,7 @@ st.title("Классификация статей 1")
|
|
197 |
# Ввод данных
|
198 |
title = st.text_input("Заголовок статьи")
|
199 |
description = st.text_area("Краткое описание статьи", height=150)
|
|
|
200 |
|
201 |
# Кнопка "Классифицировать"
|
202 |
if st.button("Классифицировать"):
|
@@ -204,28 +199,28 @@ if st.button("Классифицировать"):
|
|
204 |
st.warning("Пожалуйста, заполните хотя бы одно поле.")
|
205 |
else:
|
206 |
with st.spinner("Идет классификация..."): # Индикатор загрузки
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
|
230 |
-
elif title or description:
|
231 |
-
st.warning("Пожалуйста,
|
|
|
1 |
import streamlit as st
|
2 |
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
id_to_cat = {0: 'Performance',
|
5 |
1: 'Molecular Networks',
|
6 |
2: 'Operating Systems',
|
|
|
191 |
# Ввод данных
|
192 |
title = st.text_input("Заголовок статьи")
|
193 |
description = st.text_area("Краткое описание статьи", height=150)
|
194 |
+
top = st.text_input("Top x%")
|
195 |
|
196 |
# Кнопка "Классифицировать"
|
197 |
if st.button("Классифицировать"):
|
|
|
199 |
st.warning("Пожалуйста, заполните хотя бы одно поле.")
|
200 |
else:
|
201 |
with st.spinner("Идет классификация..."): # Индикатор загрузки
|
202 |
+
results = classify_text(title, description)
|
203 |
+
if results:
|
204 |
+
|
205 |
+
cumulative_prob = 0
|
206 |
+
t = 0.95
|
207 |
+
t_str
|
208 |
+
if top:
|
209 |
+
if (top >= 0) and (top =< 1):
|
210 |
+
t = top
|
211 |
+
t_str = str(top * 100)
|
212 |
+
elif (top > 1) and (top =< 100):
|
213 |
+
t = top / 100
|
214 |
+
t_str = str(top)
|
215 |
+
|
216 |
+
st.subheader(f'Результаты классификации (top {t * 100}%):')
|
217 |
+
for label, score in results:
|
218 |
+
st.write(f"- **{label}**: {score:.4f}")
|
219 |
+
cumulative_prob += score
|
220 |
+
if cumulative_prob >= t:
|
221 |
+
break
|
222 |
+
else:
|
223 |
+
st.info("Не удалось получить результаты классификации.")
|
224 |
|
225 |
+
elif title or description: #небольшой костыль, чтобы при старте не было предупреждения
|
226 |
+
st.warning("Пожалуйста, заполните хотя бы одно поле.")
|