SonFox2920 commited on
Commit
6ef7ade
1 Parent(s): e8ff799

Update predictor.py

Browse files
Files changed (1) hide show
  1. 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 ID', 'Context', 'Claim', 'Label', 'Evidence', 'Title', 'Link', 'Claim ID'])
74
 
75
  annotated_data = st.session_state['annotated_data']
76
 
77
- def save_data(context, default_title, default_link, context_id):
78
  annotated_data = st.session_state['annotated_data']
79
  error = 'success'
80
 
81
- for label, label_index in [('SUPPORTED', 0), ('REFUTED', 1), ('NEI', 2)]:
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
- # Calculate the length of evidence
90
- evidence_length = len(evidence) if label != 'NEI' else 0
91
-
92
- if not annotated_data[((annotated_data['Label'] == label) & (annotated_data['Title'] == default_title))].empty:
93
  error = 'duplicate'
94
  else:
95
- # Create a unique claim ID using context ID, label index, and evidence length
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, default_ID)
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