Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| from transformers import AutoModelForSequenceClassification | |
| from transformers import AutoTokenizer | |
| from transformers import pipeline | |
| model_path = "trnt/twitter_emotions" | |
| is_gpu = False | |
| device = torch.device('cuda') if is_gpu else torch.device('cpu') | |
| print(device) | |
| model = AutoModelForSequenceClassification.from_pretrained(model_path) | |
| tokenizer = AutoTokenizer.from_pretrained(model_path) | |
| model.to(device) | |
| model.eval() | |
| print("Model was loaded") | |
| classifier = pipeline("text-classification", model=model, tokenizer=tokenizer, device=is_gpu-1) | |
| emotions = {'LABEL_0': 'sadness', 'LABEL_1': 'joy', 'LABEL_2': 'love', 'LABEL_3': 'anger', 'LABEL_4': 'fear', | |
| 'LABEL_5': 'surprise'} | |
| examples = ["I love you!", "I hate you!"] | |
| def predict(twitter): | |
| pred = classifier(twitter, return_all_scores=True)[0] | |
| res = {"Sadness": pred[0]["score"], | |
| "Joy": pred[1]["score"], | |
| "Love": pred[2]["score"], | |
| "Anger": pred[3]["score"], | |
| "Fear": pred[4]["score"], | |
| "Surprise": pred[5]["score"]} | |
| # "This tweet is %s with probability=%.2f" % (emotions[pred['label']], 100 * pred['score']) + "%" | |
| return res | |
| if __name__ == '__main__': | |
| interFace = gr.Interface(fn=predict, | |
| inputs=gr.inputs.Textbox(placeholder="Enter a tweet here", label="Tweet content", lines=5), | |
| outputs=gr.outputs.Label(num_top_classes=6, label="Emotions of this tweet is "), | |
| verbose=True, | |
| examples=examples, | |
| title="Emotions of English tweet", | |
| description="", | |
| theme="grass") | |
| interFace.launch() | |