Spaces:
Runtime error
Runtime error
# transformersとtorch、Gradioをインポート | |
from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
import torch | |
import numpy as np | |
import gradio as gr | |
import os | |
SECRET_TOKEN = os.getenv("TOKEN_OFFENSIVENESS_ESTIMATION") | |
# トークナイザーとモデルをロードする | |
tokenizer = AutoTokenizer.from_pretrained("studio-ousia/luke-japanese-base-lite") | |
model = AutoModelForSequenceClassification.from_pretrained("TomokiFujihara/luke-japanese-base-lite-offensiveness-estimation", trust_remote_code=True, use_auth_token=SECRET_TOKEN) | |
# txt入力を受け取り、それを使用して新しいtxtを生成する関数 | |
def generate(text): | |
# 入力テキストをトークナイズ | |
inputs = tokenizer.encode_plus(text, return_tensors='pt') | |
# トークナイズされたテキストを使用して攻撃性を推定 | |
outputs = model(inputs['input_ids'], inputs['attention_mask']).detach().numpy()[0][:3] | |
# スコアを算出 | |
minimum = np.min(outputs) | |
if minimum < 0: | |
outputs = outputs - minimum | |
score = outputs / np.sum(outputs) | |
prediction = f'攻撃的でない発言: {score[0]:.1%},\nグレーゾーンの発言: {score[1]:.1%},\n攻撃的な発言: {score[2]:.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(share=True) |