1NEYRON1 commited on
Commit
c3b06d1
·
1 Parent(s): c4aa0f7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -30
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
- st.session_state.results = classify_text(title, description)
208
- st.session_state.show_all = False # Reset to show only top 95%
209
-
210
- # Display results if available
211
- if st.session_state.results:
212
- if st.session_state.show_all:
213
- st.subheader("Полные результаты классификации:")
214
- for label, score in st.session_state.results:
215
- st.write(f"- **{label}**: {score:.4f}")
216
- else:
217
- st.subheader("Результаты классификации (top 95%):")
218
- cumulative_prob = 0
219
- for label, score in st.session_state.results:
220
- st.write(f"- **{label}**: {score:.4f}")
221
- cumulative_prob += score
222
- if cumulative_prob >= 0.95:
223
- break
224
-
225
- # Renamed button that refreshes the page
226
- if st.button("Покажи все"):
227
- st.session_state.show_all = True
228
- st.experimental_rerun() # Refresh the page
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("Пожалуйста, заполните хотя бы одно поле.")