torileatherman's picture
Update app.py
ab2c9b6
raw
history blame
2.5 kB
import gradio as gr
import hopsworks
from datasets import load_dataset
import pandas as pd
project = hopsworks.login()
fs = project.get_feature_store()
dataset_api = project.get_dataset_api()
dataset = load_dataset("torileatherman/sentiment_analysis_batch_predictions", split='train')
predictions_df = pd.DataFrame(dataset)
grouped_predictions = predictions_df.groupby(predictions_df.Sentiment)
positive_preds = grouped_predictions.get_group(2)
neutral_preds = grouped_predictions.get_group(1)
negative_preds = grouped_predictions.get_group(0)
def article_selection(sentiment):
if sentiment == "Positive":
predictions = positive_preds
predictions_urls = predictions['Url'][0:3]
return predictions_urls
elif sentiment == "Negative":
predictions = negative_preds
predictions_urls = predictions['Url'][0:3]
return predictions_urls
else:
predictions = neutral_preds
predictions_urls = predictions['Url'][0:3]
return predictions_urls
def thanks(url, sentiment):
thanks_text = "Thank you for making our model better!"
return thanks_text
description1 = '''
This application recommends news articles depending on the sentiment of the headline.
Enter your preference of what type of news articles you would like recommended to you today: Positive, Negative, or Neutral.
'''
description2 = '''
This application recommends news articles depending on the sentiment of the headline.
Enter a news article url and its sentiment to help us improve our model.
The more data we have, the better news articles we can recommend to you!
'''
suggestion_demo = gr.Interface(
fn=article_selection,
title = 'Recommending News Articles',
inputs = gr.Dropdown(["Positive","Negative","Neutral"], label="What type of news articles would you like recommended?"),
outputs = gr.Textbox(label="Recommended News Articles", lines=3),
description = description1
)
manual_label_demo = gr.Interface(
fn=thanks,
title="Manually Label a News Article",
inputs=[gr.Textbox(label = "Paste in URL of news article here."),
gr.Dropdown(["Positive","Negative","Neutral"], label="Select the sentiment of the news article.")],
outputs = gr.Textbox(label="Output"),
description = description2
)
demo = gr.TabbedInterface([suggestion_demo, manual_label_demo], ["Get recommended news articles", "Help improve our model"])
demo.launch()