lancewilhelm commited on
Commit
a5f80bf
1 Parent(s): e52acb8

Updated to include a tone suggestion

Browse files
Files changed (1) hide show
  1. app.py +13 -9
app.py CHANGED
@@ -12,16 +12,19 @@ def load_csv(file):
12
  global current_row
13
  # import the csv and set the data types to be int, string, string, string, string, string, string
14
  df = pd.read_csv(file.name, dtype={'id':int, 'hs': str, 'cs': str, 'topic': str, 'tone': str, 'isCSContextuallyRelevant': str, 'isToneMatch': str})
 
 
15
  current_row = 0
16
  row_dict = df.iloc[current_row].to_dict()
17
- return row_dict['id'], row_dict['hs'], row_dict['cs'], row_dict['topic'], row_dict['tone'], row_dict['isCSContextuallyRelevant'], row_dict['isToneMatch']
18
 
19
- def annotate_row(isCSContextuallyRelevant, isToneMatch):
20
  global df
21
  global current_row
22
 
23
  df.at[current_row, 'isCSContextuallyRelevant'] = isCSContextuallyRelevant
24
  df.at[current_row, 'isToneMatch'] = isToneMatch
 
25
 
26
  if current_row < len(df) - 1:
27
  current_row += 1
@@ -30,7 +33,7 @@ def annotate_row(isCSContextuallyRelevant, isToneMatch):
30
  df.to_csv('annotated_data.csv', index=False)
31
 
32
  row_dict = df.iloc[current_row].to_dict()
33
- return row_dict['id'], row_dict['hs'], row_dict['cs'], row_dict['topic'], row_dict['tone'], row_dict['isCSContextuallyRelevant'], row_dict['isToneMatch'], 'annotated_data.csv'
34
 
35
  def navigate(direction):
36
  global current_row
@@ -44,7 +47,7 @@ def navigate(direction):
44
  current_row = int(unlabeled_row)
45
 
46
  row_dict = df.iloc[current_row].to_dict()
47
- return row_dict['id'], row_dict['hs'], row_dict['cs'], row_dict['topic'], row_dict['tone'], row_dict['isCSContextuallyRelevant'], row_dict['isToneMatch']
48
 
49
  with gr.Blocks(theme=gr.themes.Soft()) as annotator:
50
  gr.Markdown("## Data Annotation")
@@ -68,6 +71,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as annotator:
68
  with gr.Row():
69
  isCSContextuallyRelevant = gr.Radio(["1", "0"], label="Contextually Relevant?")
70
  isToneMatch = gr.Radio(["1", "0"], label="Tone Match?")
 
71
  btn_annotate = gr.Button("Annotate")
72
 
73
  with gr.Row():
@@ -79,10 +83,10 @@ with gr.Blocks(theme=gr.themes.Soft()) as annotator:
79
  gr.Markdown("### Annotated Data File Download")
80
  file_download = gr.File()
81
 
82
- btn_load.click(load_csv, inputs=[file_upload], outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch])
83
- btn_annotate.click(annotate_row, inputs=[isCSContextuallyRelevant, isToneMatch], outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch, file_download])
84
- btn_previous.click(navigate, inputs=gr.Textbox("Previous", visible=False), outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch])
85
- btn_next.click(navigate, inputs=gr.Textbox("Next", visible=False), outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch])
86
- btn_first_unlabeled.click(navigate, inputs=gr.Textbox("First Unlabeled", visible=False), outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch])
87
 
88
  annotator.launch()
 
12
  global current_row
13
  # import the csv and set the data types to be int, string, string, string, string, string, string
14
  df = pd.read_csv(file.name, dtype={'id':int, 'hs': str, 'cs': str, 'topic': str, 'tone': str, 'isCSContextuallyRelevant': str, 'isToneMatch': str})
15
+ if 'suggestedTone' not in df.columns:
16
+ df['suggestedTone'] = None
17
  current_row = 0
18
  row_dict = df.iloc[current_row].to_dict()
19
+ return row_dict['id'], row_dict['hs'], row_dict['cs'], row_dict['topic'], row_dict['tone'], row_dict['isCSContextuallyRelevant'], row_dict['isToneMatch'], row_dict['suggestedTone']
20
 
21
+ def annotate_row(isCSContextuallyRelevant, isToneMatch, suggestedTone):
22
  global df
23
  global current_row
24
 
25
  df.at[current_row, 'isCSContextuallyRelevant'] = isCSContextuallyRelevant
26
  df.at[current_row, 'isToneMatch'] = isToneMatch
27
+ df.at[current_row, 'suggestedTone'] = suggestedTone
28
 
29
  if current_row < len(df) - 1:
30
  current_row += 1
 
33
  df.to_csv('annotated_data.csv', index=False)
34
 
35
  row_dict = df.iloc[current_row].to_dict()
36
+ return row_dict['id'], row_dict['hs'], row_dict['cs'], row_dict['topic'], row_dict['tone'], row_dict['isCSContextuallyRelevant'], row_dict['isToneMatch'], row_dict['suggestedTone'], 'annotated_data.csv'
37
 
38
  def navigate(direction):
39
  global current_row
 
47
  current_row = int(unlabeled_row)
48
 
49
  row_dict = df.iloc[current_row].to_dict()
50
+ return row_dict['id'], row_dict['hs'], row_dict['cs'], row_dict['topic'], row_dict['tone'], row_dict['isCSContextuallyRelevant'], row_dict['isToneMatch'], row_dict['suggestedTone']
51
 
52
  with gr.Blocks(theme=gr.themes.Soft()) as annotator:
53
  gr.Markdown("## Data Annotation")
 
71
  with gr.Row():
72
  isCSContextuallyRelevant = gr.Radio(["1", "0"], label="Contextually Relevant?")
73
  isToneMatch = gr.Radio(["1", "0"], label="Tone Match?")
74
+ suggestedTone = gr.Textbox(label='Suggested Tone', interactive=True)
75
  btn_annotate = gr.Button("Annotate")
76
 
77
  with gr.Row():
 
83
  gr.Markdown("### Annotated Data File Download")
84
  file_download = gr.File()
85
 
86
+ btn_load.click(load_csv, inputs=[file_upload], outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch, suggestedTone])
87
+ btn_annotate.click(annotate_row, inputs=[isCSContextuallyRelevant, isToneMatch, suggestedTone], outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch, suggestedTone, file_download])
88
+ btn_previous.click(navigate, inputs=gr.Textbox("Previous", visible=False), outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch, suggestedTone])
89
+ btn_next.click(navigate, inputs=gr.Textbox("Next", visible=False), outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch, suggestedTone])
90
+ btn_first_unlabeled.click(navigate, inputs=gr.Textbox("First Unlabeled", visible=False), outputs=[idx, hs, cs, topic, tone, isCSContextuallyRelevant, isToneMatch, suggestedTone])
91
 
92
  annotator.launch()