TomokiFujihara's picture
Update app.py
d457f06
raw
history blame
1.64 kB
# 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", trust_remote_code=True, token='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')
# txt入力を受け取り、それを使用して新しいtxtを生成する関数
def generate(text):
# 入力テキストをトークナイズ
inputs = tokenizer.encode_plus(text, return_tensors='pt')
# トークナイズされたテキストを使用して攻撃性を推定
outputs = np.array(model(inputs['input_ids'], inputs['attention_mask'])[: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", value = "攻撃性を評価したいコメントを入力してください."),
# 出力はテキスト形式
outputs="text",
# UIのタイトル設定
title = "日本語のSNSコメントの攻撃性推定")
# Gradio UIを起動
iface.launch()