--- license: apache-2.0 language: - ja pipeline_tag: text-classification --- # モデル概要 このモデルは、 sonoisa/sentence-luke-japanese-base-lite をSNS上のコメントに人手で攻撃性評価を行ったデータセットでFine-tuningすることで作成しました。 学習に使用したデータセットを参照したい方は、記載の連絡先へ別途ご連絡ください。 本モデルは、NLP2024にて下記の発表で公開します。 - NLP2024 原稿: [P2-10 ソーシャルメディア上の発話の攻撃性推定と会話補助](https://www.anlp.jp/proceedings/annual_meeting/2024/pdf_dir/P2-10.pdf) - その他、詳細情報: [Github](https://github.com/flatton/Japanese_Offensiveness_Estimation/blob/main/README.md) # Fine-tuning条件 - エポック数: 27エポック - バッチサイズ: 16 - 最大トークン長: 256 - 学習率スケジューラ: transformers.get_linear_schedule_with_warmup - ピーク学習率: 2e-5 - 最適化手法: Adam - Dropout率: 0.1 - 損失関数: MSE Loss - Re-initialize: 出力層から近い Transformer Encoder 1層 # 分類性能 - 2024/3/24: 記載に誤りがあったため修正いたしました。 **Summary** | 評価指標 | スコア | | ----- | ----- | | F値_NOT | 71.3 % | | F値_GRY | 55.5 % | | F値_OFF | 61.8 % | | マクロ平均F値 | 62.9 % | | 正解率 | 63.8 % | **Confusion matrix** | 正解ラベル \ 予測結果 | Not Offensive | Gray-area | Offensive | | ----- | ----- | ----- | ----- | | Not Offensive | 260 | 80 | 4 | | Gray-area | 110 | 169 | 41 | | Offensive | 15 | 40 | 81 | # 使い方 ```python from transformers import AutoTokenizer, AutoModelForSequenceClassification import numpy as np 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) 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) print(f'攻撃的でない発言: {score[0]:.1%},\nグレーゾーンの発言: {score[1]:.1%},\n攻撃的な発言: {score[2]:.1%}') ``` # 連絡先 E-mail: tomoki.fujihara.p3@dc.tohoku.ac.jp # 引用 ```bibtex @inproceedings{fujihara2024offensiveness, title={ソーシャルメディア上の発話の攻撃性推定と会話補助}, author={藤原 知樹 and 伊藤 彰則 and 能勢隆}, booktitle={言語処理学会第30回年次大会発表論文集}, year={2024} } ```