Spaces:
Sleeping
Sleeping
Update predictor.py
Browse files- predictor.py +11 -17
predictor.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
import pandas as pd
|
| 3 |
-
import re
|
| 4 |
from utilities import predict
|
| 5 |
|
| 6 |
st.set_page_config(layout="wide")
|
|
@@ -67,39 +67,33 @@ def create_expander_with_check_button(label, title, context, predict_func):
|
|
| 67 |
st.warning(f"The predicted probability for label '{label}' is too high or the predicted label is different. Please modify the claim.")
|
| 68 |
else:
|
| 69 |
st.warning("Please enter a claim.")
|
| 70 |
-
|
| 71 |
-
|
| 72 |
if 'annotated_data' not in st.session_state:
|
| 73 |
-
st.session_state['annotated_data'] = pd.DataFrame(columns=['Context
|
| 74 |
|
| 75 |
annotated_data = st.session_state['annotated_data']
|
| 76 |
|
| 77 |
-
def save_data(context, default_title, default_link
|
| 78 |
annotated_data = st.session_state['annotated_data']
|
| 79 |
error = 'success'
|
| 80 |
|
| 81 |
-
for label
|
| 82 |
claim_key = f"{label}_input"
|
| 83 |
evidence_key = f"{label}_evidence_selected"
|
| 84 |
|
| 85 |
if st.session_state.get(claim_key, ''):
|
| 86 |
claim = st.session_state[claim_key]
|
| 87 |
evidence = st.session_state.get(evidence_key, [])
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
if not annotated_data[((annotated_data['Label'] == label) & (annotated_data['Title'] == default_title))].empty:
|
| 93 |
error = 'duplicate'
|
| 94 |
else:
|
| 95 |
-
|
| 96 |
-
claim_id = f"{context_id}_{label_index}_{evidence_length}"
|
| 97 |
-
# Save the data including the context_id
|
| 98 |
-
annotated_data.loc[len(annotated_data)] = [context_id, context, claim, label, evidence, default_title, default_link, claim_id]
|
| 99 |
|
| 100 |
st.session_state['annotated_data'] = annotated_data
|
| 101 |
return error
|
| 102 |
-
|
| 103 |
def enough_claims_entered(title):
|
| 104 |
annotated_data = st.session_state['annotated_data']
|
| 105 |
nei_claims = annotated_data[(annotated_data['Label'] == 'NEI') & (annotated_data['Title'] == title)].shape[0]
|
|
@@ -232,7 +226,7 @@ def predictor_app():
|
|
| 232 |
save_button = st.button("Save")
|
| 233 |
if save_button:
|
| 234 |
if all_claims_entered and all_evidence_selected:
|
| 235 |
-
error = save_data(default_context, default_title, default_link
|
| 236 |
else:
|
| 237 |
error = 'save_fail'
|
| 238 |
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
import pandas as pd
|
| 3 |
+
import re
|
| 4 |
from utilities import predict
|
| 5 |
|
| 6 |
st.set_page_config(layout="wide")
|
|
|
|
| 67 |
st.warning(f"The predicted probability for label '{label}' is too high or the predicted label is different. Please modify the claim.")
|
| 68 |
else:
|
| 69 |
st.warning("Please enter a claim.")
|
| 70 |
+
|
|
|
|
| 71 |
if 'annotated_data' not in st.session_state:
|
| 72 |
+
st.session_state['annotated_data'] = pd.DataFrame(columns=['Context', 'Claim', 'Label', 'Evidence', 'Title', 'Link'])
|
| 73 |
|
| 74 |
annotated_data = st.session_state['annotated_data']
|
| 75 |
|
| 76 |
+
def save_data(context, default_title, default_link):
|
| 77 |
annotated_data = st.session_state['annotated_data']
|
| 78 |
error = 'success'
|
| 79 |
|
| 80 |
+
for label in ['NEI', 'REFUTED', 'SUPPORTED']:
|
| 81 |
claim_key = f"{label}_input"
|
| 82 |
evidence_key = f"{label}_evidence_selected"
|
| 83 |
|
| 84 |
if st.session_state.get(claim_key, ''):
|
| 85 |
claim = st.session_state[claim_key]
|
| 86 |
evidence = st.session_state.get(evidence_key, [])
|
| 87 |
+
if label == 'NEI':
|
| 88 |
+
evidence = [] # No evidence required for NEI
|
| 89 |
+
if not annotated_data[((annotated_data['Claim'] == claim) & (annotated_data['Label'] == label) & (annotated_data['Title'] == default_title))].empty:
|
|
|
|
|
|
|
| 90 |
error = 'duplicate'
|
| 91 |
else:
|
| 92 |
+
annotated_data.loc[len(annotated_data)] = [context, claim, label, evidence, default_title, default_link]
|
|
|
|
|
|
|
|
|
|
| 93 |
|
| 94 |
st.session_state['annotated_data'] = annotated_data
|
| 95 |
return error
|
| 96 |
+
|
| 97 |
def enough_claims_entered(title):
|
| 98 |
annotated_data = st.session_state['annotated_data']
|
| 99 |
nei_claims = annotated_data[(annotated_data['Label'] == 'NEI') & (annotated_data['Title'] == title)].shape[0]
|
|
|
|
| 226 |
save_button = st.button("Save")
|
| 227 |
if save_button:
|
| 228 |
if all_claims_entered and all_evidence_selected:
|
| 229 |
+
error = save_data(default_context, default_title, default_link)
|
| 230 |
else:
|
| 231 |
error = 'save_fail'
|
| 232 |
|