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("Пожалуйста, заполните хотя бы одно поле.")
|