File size: 1,494 Bytes
62d7d53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# transformersとtorch、Gradioをインポート
from transformers import AutoTokenizer, AutoModel
import torch
import numpy as np
import gradio as gr

# トークナイザーとモデルをロードする
tokenizer = AutoTokenizer.from_pretrained("studio-ousia/luke-japanese-base-lite")
model = AutoModel.from_pretrained("TomokiFujihara/luke-japanese-base-lite-offensiveness-estimation")

# txt入力を受け取り、それを使用して新しいtxtを生成する関数
def generate(text):
    # 入力テキストをトークナイズ
    inputs = tokenizer.encode_plus(text, return_tensors='pt')
    # トークナイズされたテキストを使用して攻撃性を推定
    outputs = np.array(model(**inputs)[:3])
    # スコアを算出
    min = min(outputs)
    if min < 0:
        outputs = outputs - min
    score = outputs / np.sum(outputs)
    prediction = f'Not Offensive: {outputs[0]}, Gray-area: {outputs[1]}, Offensive: {outputs[1]}'
    # デコードされたテキストを関数から返す
    return prediction

# Gradio UIを作成
iface = gr.Interface(
    # 上記で定義したテキスト生成関数を使用
    generate, 
    # 入力としてテキストボックスを使用
    inputs = gr.Textbox(label = "Input a text", default = "攻撃性を評価したいコメントを入力してください."), 
    # 出力はテキスト形式
    outputs="text", 
    # UIのタイトル設定
    title = "Mr Bot🤖")

# Gradio UIを起動
iface.launch()