jingwora's picture
Update app.py
f77676e
import gradio as gr
import numpy as np
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
labels = ['ๅ–œใณ', 'ๆ‚ฒใ—ใฟ', 'ๆœŸๅพ…', '้ฉšใ', 'ๆ€’ใ‚Š', 'ไฟก้ ผ', 'ๆ‚ฒใ—ใฟ', 'ๅซŒๆ‚ช']
def np_softmax(x):
x_exp = torch.exp(torch.tensor(x) - torch.max(torch.tensor(x)))
f_x = x_exp / x_exp.sum()
return f_x
def emotion_clf(text):
model.eval()
tokens = tokenizer(text, truncation=True, return_tensors="pt")
tokens.to(model.device)
preds = model(**tokens)
prob = np_softmax(preds.logits.cpu().detach().numpy()[0])
out_dict = {n: p.item() for n, p in zip(labels, prob)}
return out_dict
tokenizer = AutoTokenizer.from_pretrained("cl-tohoku/bert-base-japanese-whole-word-masking")
model = AutoModelForSequenceClassification.from_pretrained("jingwora/language-emotion-classification-ja", num_labels=8)
title = "Emotion Classification"
description = "Enter Japanese text and get the emotion probabilities."
text = gr.Textbox(placeholder="Enter japanese text", label="text", lines=3)
label = gr.Label(num_top_classes=8)
examples = [
["ๅคงๅˆ‡ใชๅ‹ไบบใŒ็ตๅฉšใ‚’็™บ่กจใ—ใŸใจใใ€ๅฟƒใŒๆบ€ใก่ถณใ‚ŠใŸๅนธใ›ใ‚’ๆ„Ÿใ˜ใพใ—ใŸใ€‚"],
["ๆ„›ใ™ใ‚‹็ฅ–ๆฏใŒไบกใใชใฃใŸใจใใ€่ƒธใซๆทฑใ„ๆ‚ฒใ—ใฟใŒๅบƒใŒใ‚Šใพใ—ใŸใ€‚"],
["ๆ–ฐใ—ใ„ไป•ไบ‹ใ‚’ๅง‹ใ‚ใ‚‹ๅ‰ๅคœใ€ๆ˜Žๆ—ฅใ‹ใ‚‰ใฎๆœช็Ÿฅใฎไธ–็•Œใซ่ƒธใŒ้ซ˜้ณดใ‚Šใพใ—ใŸใ€‚"],
["ๅฑฑ้“ใ‚’ๆญฉใ„ใฆใ„ใŸใ‚‰ใ€็พŽใ—ใ„ๆปใŒ็พใ‚Œใ€ๆ€ใ‚ใšๆฏใ‚’้ฃฒใ‚€้ฉšใใ‚’ๆ„Ÿใ˜ใพใ—ใŸใ€‚"],
["ๅ…ฌๅนณใ•ใ‚’ๆฌ ใ„ใŸๆฑบๅฎšใ‚’ๅ—ใ‘ใŸใจใใ€ๆ†คใ‚Šใ‚’ๆŠฑใˆใฆๆ€’ใ‚ŠใŒๆนงใไธŠใŒใ‚Šใพใ—ใŸใ€‚"],
["้›ฃใ—ใ„ๅฑ€้ขใงไปฒ้–“ใŒใ—ใฃใ‹ใ‚Šใจๆ”ฏใˆใฆใใ‚Œใฆใ€ๅฟƒใ‹ใ‚‰ใฎไฟก้ ผใ‚’ๆ„Ÿใ˜ใพใ—ใŸใ€‚"],
["ๅคฑๆ‹ใ—ใŸใจใใ€ๅฟƒใซ้‡ใ„ๆ‚ฒใ—ใฟใŒๅบƒใŒใ‚Šใ€ไฝ•ใ‚‚ๆ‰‹ใซใคใ‹ใชใ„็Šถๆณใงใ—ใŸใ€‚"],
["ๆฑšใ‚ŒใŸๅ ดๆ‰€ใง้•ทๆ™‚้–“้Žใ”ใ—ใŸใจใใ€ไธๅฟซๆ„ŸใจๅซŒๆ‚ชๆ„ŸใŒๅ‹Ÿใ‚Šใพใ—ใŸใ€‚"],
]
demo = gr.Interface(
fn=emotion_clf,
inputs=text,
outputs=label,
title=title,
description=description,
examples=examples,
interpretation="default",
theme="freddyaboulton/dracula_revamped",
)
demo.launch()