Spaces:
Running
Running
Upload app.py
Browse files
app.py
CHANGED
|
@@ -63,7 +63,7 @@ iface1 = gr.Interface(
|
|
| 63 |
|
| 64 |
This app has two analysis modules summarised below:
|
| 65 |
- Single-Text-Prediction - Analyses text pasted in a text box and return IEQ prediction.
|
| 66 |
-
- Multi-Text-Prediction - Analyses multiple rows of texts in an uploaded CSV file and returns a downloadable CSV file with IEQ prediction for each row of text.
|
| 67 |
|
| 68 |
This app runs on a free server and may therefore not be suitable for analysing large CSV files.
|
| 69 |
If you need assistance with analysing large CSV, do get in touch using the contact information in the Contact section.
|
|
@@ -72,7 +72,7 @@ iface1 = gr.Interface(
|
|
| 72 |
<p>We would be happy to receive your feedback regarding this app. If you would also like to collaborate with us to explore some use cases for the model
|
| 73 |
powering this app, we are happy to hear from you.</p>
|
| 74 |
|
| 75 |
-
Dr Abdul-Manan Sadick - s.sadick@deakin.edu.au
|
| 76 |
Dr Giorgia Chinazzo - giorgia.chinazzo@northwestern.edu
|
| 77 |
''')
|
| 78 |
|
|
@@ -189,8 +189,13 @@ def predict_from_csv(file, column_name, progress=gr.Progress()):
|
|
| 189 |
fig (plotly.graph_objs.Figure): A histogram showing the frequency of each IEQ label.
|
| 190 |
output_csv (gr.File): A downloadable CSV file containing the predictions.
|
| 191 |
"""
|
| 192 |
-
# Read the CSV file
|
| 193 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 194 |
|
| 195 |
# Check if the specified column exists
|
| 196 |
if column_name not in df_docs.columns:
|
|
@@ -349,7 +354,7 @@ def predict_from_csv(file, column_name, progress=gr.Progress()):
|
|
| 349 |
|
| 350 |
|
| 351 |
# Define the input component
|
| 352 |
-
file_input = gr.File(label="Upload CSV file here", show_label=True, file_types=[".csv"])
|
| 353 |
column_name_input = gr.Textbox(label="Enter the column name containing the text to be analyzed", show_label=True)
|
| 354 |
|
| 355 |
# Create the Gradio interface
|
|
@@ -357,12 +362,12 @@ iface3 = gr.Interface(fn=predict_from_csv,
|
|
| 357 |
inputs=[file_input, column_name_input],
|
| 358 |
outputs=[gr.Plot(label='Frequency of IEQs', show_label=True),
|
| 359 |
gr.File(label='Download output CSV', show_label=True)],
|
| 360 |
-
title="Multi-text Prediction
|
| 361 |
description='**NOTE:** Please enter the column name containing the text to be analyzed.')
|
| 362 |
|
| 363 |
# Create a tabbed interface
|
| 364 |
demo = gr.TabbedInterface(interface_list=[iface1, iface2, iface3],
|
| 365 |
-
tab_names=["General-App-Info", "Single-Text-Prediction", "Multi-Text-Prediction
|
| 366 |
title="Indoor Environmetal Quality (IEQ) Text Classifier App",
|
| 367 |
theme='soft'
|
| 368 |
)
|
|
|
|
| 63 |
|
| 64 |
This app has two analysis modules summarised below:
|
| 65 |
- Single-Text-Prediction - Analyses text pasted in a text box and return IEQ prediction.
|
| 66 |
+
- Multi-Text-Prediction - Analyses multiple rows of texts in an uploaded CSV or Excell file and returns a downloadable CSV file with IEQ prediction for each row of text.
|
| 67 |
|
| 68 |
This app runs on a free server and may therefore not be suitable for analysing large CSV files.
|
| 69 |
If you need assistance with analysing large CSV, do get in touch using the contact information in the Contact section.
|
|
|
|
| 72 |
<p>We would be happy to receive your feedback regarding this app. If you would also like to collaborate with us to explore some use cases for the model
|
| 73 |
powering this app, we are happy to hear from you.</p>
|
| 74 |
|
| 75 |
+
Dr Abdul-Manan Sadick - s.sadick@deakin.edu.au\n
|
| 76 |
Dr Giorgia Chinazzo - giorgia.chinazzo@northwestern.edu
|
| 77 |
''')
|
| 78 |
|
|
|
|
| 189 |
fig (plotly.graph_objs.Figure): A histogram showing the frequency of each IEQ label.
|
| 190 |
output_csv (gr.File): A downloadable CSV file containing the predictions.
|
| 191 |
"""
|
| 192 |
+
# Read the CSV or Excel file
|
| 193 |
+
if file.endswith('.csv'):
|
| 194 |
+
df_docs = pd.read_csv(file)
|
| 195 |
+
elif file.endswith('.xls') or file.endswith('.xlsx'):
|
| 196 |
+
df_docs = pd.read_excel(file)
|
| 197 |
+
else:
|
| 198 |
+
raise gr.Error("Invalid file type. Please upload a CSV or Excel file.")
|
| 199 |
|
| 200 |
# Check if the specified column exists
|
| 201 |
if column_name not in df_docs.columns:
|
|
|
|
| 354 |
|
| 355 |
|
| 356 |
# Define the input component
|
| 357 |
+
file_input = gr.File(label="Upload CSV or Excel file here", show_label=True, file_types=[".csv", ".xls", ".xlsx"])
|
| 358 |
column_name_input = gr.Textbox(label="Enter the column name containing the text to be analyzed", show_label=True)
|
| 359 |
|
| 360 |
# Create the Gradio interface
|
|
|
|
| 362 |
inputs=[file_input, column_name_input],
|
| 363 |
outputs=[gr.Plot(label='Frequency of IEQs', show_label=True),
|
| 364 |
gr.File(label='Download output CSV', show_label=True)],
|
| 365 |
+
title="Multi-text Prediction",
|
| 366 |
description='**NOTE:** Please enter the column name containing the text to be analyzed.')
|
| 367 |
|
| 368 |
# Create a tabbed interface
|
| 369 |
demo = gr.TabbedInterface(interface_list=[iface1, iface2, iface3],
|
| 370 |
+
tab_names=["General-App-Info", "Single-Text-Prediction", "Multi-Text-Prediction"],
|
| 371 |
title="Indoor Environmetal Quality (IEQ) Text Classifier App",
|
| 372 |
theme='soft'
|
| 373 |
)
|