Spaces:
Sleeping
Sleeping
import gradio as gr | |
import nltk | |
from nltk.sentiment.vader import SentimentIntensityAnalyzer | |
from transformers import pipeline | |
def greet(name): | |
return "Hello " + name + "!!" | |
def classify(text): | |
return {"cat": 0.3, "dog": 0.7} | |
def predict_sentiment(text, model): | |
if model == "finiteautomata/bertweet-base-sentiment-analysis": | |
pipe = pipeline("text-classification", model="finiteautomata/bertweet-base-sentiment-analysis") | |
out = pipe(text, return_all_scores=True) | |
return {pred["label"]: pred["score"] for pred in out[0]} | |
elif model == "vader": | |
nltk.download('vader_lexicon') | |
sia = SentimentIntensityAnalyzer() | |
return sia.polarity_scores(text) | |
demo = gr.Blocks() | |
with demo: | |
gr.Markdown("A bunch of different Gradio demos in tabs.\n\nNote that generally, the code that is in each tab could be its own Gradio application!") | |
with gr.Tabs(): | |
with gr.TabItem("Basic Hello"): | |
gr.Markdown('The most basic "Hello World"-type demo you can write') | |
interface = gr.Interface(fn=greet, inputs="text", outputs="text") | |
with gr.TabItem("Label Output"): | |
gr.Markdown("An example of a basic interface with a classification label as output") | |
interface = gr.Interface(fn=classify, inputs="text", outputs="label") | |
with gr.TabItem("Multiple Inputs"): | |
gr.Markdown("A more complex interface for sentiment analysis with multiple inputs, including a dropdown, and some examples") | |
interface = gr.Interface( | |
predict_sentiment, | |
[ | |
gr.Textbox(placeholder="Your text input"), | |
gr.Dropdown( | |
["finiteautomata/bertweet-base-sentiment-analysis", "vader"], label="Model" | |
), | |
], | |
"label", | |
examples=[ | |
["Happy smile", "vader"], | |
["Happy smile", "finiteautomata/bertweet-base-sentiment-analysis"], | |
["Sad frown", "vader"], | |
["Sad frown", "finiteautomata/bertweet-base-sentiment-analysis"], | |
] | |
) | |
demo.launch() | |