jingwora commited on
Commit
126108c
ยท
1 Parent(s): b1bbc7a

Add application file

Browse files
Files changed (2) hide show
  1. app.py +51 -0
  2. requirements.txt +3 -0
app.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import gradio as gr
3
+ import numpy as np
4
+ import torch
5
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
6
+
7
+ labels = ['ๅ–œใณ', 'ๆ‚ฒใ—ใฟ', 'ๆœŸๅพ…', '้ฉšใ', 'ๆ€’ใ‚Š', 'ไฟก้ ผ', 'ๆ‚ฒใ—ใฟ', 'ๅซŒๆ‚ช']
8
+
9
+ def np_softmax(x):
10
+ x_exp = torch.exp(torch.tensor(x) - torch.max(torch.tensor(x)))
11
+ f_x = x_exp / x_exp.sum()
12
+ return f_x
13
+
14
+ def emotion_clf(text):
15
+ model.eval()
16
+ tokens = tokenizer(text, truncation=True, return_tensors="pt")
17
+ tokens.to(model.device)
18
+ preds = model(**tokens)
19
+ prob = np_softmax(preds.logits.cpu().detach().numpy()[0])
20
+ out_dict = {n: p.item() for n, p in zip(labels, prob)}
21
+ return out_dict
22
+
23
+ tokenizer = AutoTokenizer.from_pretrained("cl-tohoku/bert-base-japanese-whole-word-masking")
24
+ model = AutoModelForSequenceClassification.from_pretrained("jingwora/language-emotion-classification-ja", num_labels=8)
25
+
26
+ title = "Emotion Classification"
27
+ description = "Enter Japanese text and get the emotion probabilities."
28
+ text = gr.Textbox(placeholder="Enter japanese text", label="text", lines=3)
29
+ label = gr.Label(num_top_classes=8)
30
+ examples = [
31
+ ["ๅคงๅˆ‡ใชๅ‹ไบบใŒ็ตๅฉšใ‚’็™บ่กจใ—ใŸใจใใ€ๅฟƒใŒๆบ€ใก่ถณใ‚ŠใŸๅนธใ›ใ‚’ๆ„Ÿใ˜ใพใ—ใŸใ€‚"],
32
+ ["ๆ„›ใ™ใ‚‹็ฅ–ๆฏใŒไบกใใชใฃใŸใจใใ€่ƒธใซๆทฑใ„ๆ‚ฒใ—ใฟใŒๅบƒใŒใ‚Šใพใ—ใŸใ€‚"],
33
+ ["ๆ–ฐใ—ใ„ไป•ไบ‹ใ‚’ๅง‹ใ‚ใ‚‹ๅ‰ๅคœใ€ๆ˜Žๆ—ฅใ‹ใ‚‰ใฎๆœช็Ÿฅใฎไธ–็•Œใซ่ƒธใŒ้ซ˜้ณดใ‚Šใพใ—ใŸใ€‚"],
34
+ ["ๅฑฑ้“ใ‚’ๆญฉใ„ใฆใ„ใŸใ‚‰ใ€็พŽใ—ใ„ๆปใŒ็พใ‚Œใ€ๆ€ใ‚ใšๆฏใ‚’้ฃฒใ‚€้ฉšใใ‚’ๆ„Ÿใ˜ใพใ—ใŸใ€‚"],
35
+ ["ๅ…ฌๅนณใ•ใ‚’ๆฌ ใ„ใŸๆฑบๅฎšใ‚’ๅ—ใ‘ใŸใจใใ€ๆ†คใ‚Šใ‚’ๆŠฑใˆใฆๆ€’ใ‚ŠใŒๆนงใไธŠใŒใ‚Šใพใ—ใŸใ€‚"],
36
+ ["้›ฃใ—ใ„ๅฑ€้ขใงไปฒ้–“ใŒใ—ใฃใ‹ใ‚Šใจๆ”ฏใˆใฆใใ‚Œใฆใ€ๅฟƒใ‹ใ‚‰ใฎไฟก้ ผใ‚’ๆ„Ÿใ˜ใพใ—ใŸใ€‚"],
37
+ ["ๅคฑๆ‹ใ—ใŸใจใใ€ๅฟƒใซ้‡ใ„ๆ‚ฒใ—ใฟใŒๅบƒใŒใ‚Šใ€ไฝ•ใ‚‚ๆ‰‹ใซใคใ‹ใชใ„็Šถๆณใงใ—ใŸใ€‚"],
38
+ ["ๆฑšใ‚ŒใŸๅ ดๆ‰€ใง้•ทๆ™‚้–“้Žใ”ใ—ใŸใจใใ€ไธๅฟซๆ„ŸใจๅซŒๆ‚ชๆ„ŸใŒๅ‹Ÿใ‚Šใพใ—ใŸใ€‚"],
39
+ ]
40
+
41
+ demo = gr.Interface(
42
+ fn=emotion_clf,
43
+ inputs=text,
44
+ outputs=label,
45
+ title=title,
46
+ description=description,
47
+ examples=examples,
48
+ theme="freddyaboulton/dracula_revamped",
49
+ )
50
+
51
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ gradio==3.36.1
2
+ transformers==4.30.2
3
+ torch==2.0.1