🚀 中国語テキスト感情分類器
このモデルは別のベースモデルを基に微調整されたもので、パラメータサイズが小さいという特徴があります。推論速度が必要なユーザーには、このモデルは適した選択肢です。実際の性能テスト結果も大きな差はありません。
モデル:Chinese-Emotion-Small
🚀 クイックスタート
依存関係のインストール
Hugging FaceのTransformersライブラリとPyTorchがインストールされていることを確認してください。
pip install transformers torch
モデルのロード
以下のコードを使用して、モデルとトークナイザーをロードし、感情分類を行います。
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
label_mapping = {
0: "平淡語氣",
1: "關切語調",
2: "開心語調",
3: "憤怒語調",
4: "悲傷語調",
5: "疑問語調",
6: "驚奇語調",
7: "厭惡語調"
}
def predict_emotion(text, model_path="Johnson8187/Chinese-Emotion"):
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForSequenceClassification.from_pretrained(model_path).to(device)
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True).to(device)
with torch.no_grad():
outputs = model(**inputs)
predicted_class = torch.argmax(outputs.logits).item()
predicted_emotion = label_mapping[predicted_class]
return predicted_emotion
if __name__ == "__main__":
test_texts = [
"雖然我努力了很久,但似乎總是做不到,我感到自己一無是處。",
"你說的那些話真的讓我很困惑,完全不知道該怎麼反應。",
"這世界真的是無情,為什麼每次都要給我這樣的考驗?",
"有時候,我只希望能有一點安靜,不要再聽到這些無聊的話題。",
"每次想起那段過去,我的心還是會痛,真的無法釋懷。",
"我從來沒有想過會有這麼大的改變,現在我覺得自己完全失控了。",
"我完全沒想到你會這麼做,這讓我驚訝到無法言喻。",
"我知道我應該更堅強,但有些時候,這種情緒真的讓我快要崩潰了。"
]
for text in test_texts:
emotion = predict_emotion(text)
print(f"文本: {text}")
print(f"預測情緒: {emotion}\n")
✨ 主な機能
このモデルは、joeddav/xlm-roberta-large-xnli モデルを基に微調整され、中国語文の感情分析に特化しています。
微調整により、モデルは以下の8種類の感情ラベルを識別できます。
- 平淡語氣(無感情の語調)
- 關切語調(懸念の語調)
- 開心語調(喜びの語調)
- 憤怒語調(怒りの語調)
- 悲傷語調(悲しみの語調)
- 疑問語調(疑問の語調)
- 驚奇語調(驚きの語調)
- 厭惡語調(嫌悪の語調)
このモデルは、カスタマーサービスの感情監視、ソーシャルメディア分析、ユーザーフィードバック分類など、さまざまなシナリオに適用できます。
📦 インストール
このモデルを使用するには、Hugging FaceのTransformersライブラリとPyTorchをインストールする必要があります。以下のコマンドを実行してください。
pip install transformers torch
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
label_mapping = {
0: "平淡語氣",
1: "關切語調",
2: "開心語調",
3: "憤怒語調",
4: "悲傷語調",
5: "疑問語調",
6: "驚奇語調",
7: "厭惡語調"
}
def predict_emotion(text, model_path="Johnson8187/Chinese-Emotion"):
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForSequenceClassification.from_pretrained(model_path).to(device)
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True).to(device)
with torch.no_grad():
outputs = model(**inputs)
predicted_class = torch.argmax(outputs.logits).item()
predicted_emotion = label_mapping[predicted_class]
return predicted_emotion
if __name__ == "__main__":
test_texts = [
"雖然我努力了很久,但似乎總是做不到,我感到自己一無是處。",
"你說的那些話真的讓我很困惑,完全不知道該怎麼反應。",
"這世界真的是無情,為什麼每次都要給我這樣的考驗?",
"有時候,我只希望能有一點安靜,不要再聽到這些無聊的話題。",
"每次想起那段過去,我的心還是會痛,真的無法釋懷。",
"我從來沒有想過會有這麼大的改變,現在我覺得自己完全失控了。",
"我完全沒想到你會這麼做,這讓我驚訝到無法言喻。",
"我知道我應該更堅強,但有些時候,這種情緒真的讓我快要崩潰了。"
]
for text in test_texts:
emotion = predict_emotion(text)
print(f"文本: {text}")
print(f"預測情緒: {emotion}\n")
📚 ドキュメント
データセット
連絡とフィードバック
このモデルを使用中に何か問題が発生した場合は、以下の方法で連絡してください。
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。