Views
No views yet
pip install transformers torch1from transformers import AutoTokenizer, AutoModelForSequenceClassification
2import torch
3
4# 添加設備設定
5device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
6
7# 標籤映射字典
8label_mapping = {
9 0: "平淡語氣",
10 1: "關切語調",
11 2: "開心語調",
12 3: "憤怒語調",
13 4: "悲傷語調",
14 5: "疑問語調",
15 6: "驚奇語調",
16 7: "厭惡語調"
17}
18
19def predict_emotion(text, model_path="Johnson8187/Chinese-Emotion"):
20 # 載入模型和分詞器
21 tokenizer = AutoTokenizer.from_pretrained(model_path)
22 model = AutoModelForSequenceClassification.from_pretrained(model_path).to(device) # 移動模型到設備
23
24 # 將文本轉換為模型輸入格式
25 inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True).to(device) # 移動輸入到設備
26
27 # 進行預測
28 with torch.no_grad():
29 outputs = model(**inputs)
30
31 # 取得預測結果
32 predicted_class = torch.argmax(outputs.logits).item()
33 predicted_emotion = label_mapping[predicted_class]
34
35 return predicted_emotion
36
37if __name__ == "__main__":
38 # 使用範例
39 test_texts = [
40 "雖然我努力了很久,但似乎總是做不到,我感到自己一無是處。",
41 "你說的那些話真的讓我很困惑,完全不知道該怎麼反應。",
42 "這世界真的是無情,為什麼每次都要給我這樣的考驗?",
43 "有時候,我只希望能有一點安靜,不要再聽到這些無聊的話題。",
44 "每次想起那段過去,我的心還是會痛,真的無法釋懷。",
45 "我從來沒有想過會有這麼大的改變,現在我覺得自己完全失控了。",
46 "我完全沒想到你會這麼做,這讓我驚訝到無法言喻。",
47 "我知道我應該更堅強,但有些時候,這種情緒真的讓我快要崩潰了。"
48 ]
49
50 for text in test_texts:
51 emotion = predict_emotion(text)
52 print(f"文本: {text}")
53 print(f"預測情緒: {emotion}\n")
54pip install transformers torch1from transformers import AutoTokenizer, AutoModelForSequenceClassification
2import torch
3
4# 添加設備設定
5device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
6
7# 標籤映射字典
8label_mapping = {
9 0: "平淡語氣",
10 1: "關切語調",
11 2: "開心語調",
12 3: "憤怒語調",
13 4: "悲傷語調",
14 5: "疑問語調",
15 6: "驚奇語調",
16 7: "厭惡語調"
17}
18
19def predict_emotion(text, model_path="Johnson8187/Chinese-Emotion"):
20 # 載入模型和分詞器
21 tokenizer = AutoTokenizer.from_pretrained(model_path)
22 model = AutoModelForSequenceClassification.from_pretrained(model_path).to(device) # 移動模型到設備
23
24 # 將文本轉換為模型輸入格式
25 inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True).to(device) # 移動輸入到設備
26
27 # 進行預測
28 with torch.no_grad():
29 outputs = model(**inputs)
30
31 # 取得預測結果
32 predicted_class = torch.argmax(outputs.logits).item()
33 predicted_emotion = label_mapping[predicted_class]
34
35 return predicted_emotion
36
37if __name__ == "__main__":
38 # 使用範例
39 test_texts = [
40 "雖然我努力了很久,但似乎總是做不到,我感到自己一無是處。",
41 "你說的那些話真的讓我很困惑,完全不知道該怎麼反應。",
42 "這世界真的是無情,為什麼每次都要給我這樣的考驗?",
43 "有時候,我只希望能有一點安靜,不要再聽到這些無聊的話題。",
44 "每次想起那段過去,我的心還是會痛,真的無法釋懷。",
45 "我從來沒有想過會有這麼大的改變,現在我覺得自己完全失控了。",
46 "我完全沒想到你會這麼做,這讓我驚訝到無法言喻。",
47 "我知道我應該更堅強,但有些時候,這種情緒真的讓我快要崩潰了。"
48 ]
49
50 for text in test_texts:
51 emotion = predict_emotion(text)
52 print(f"文本: {text}")
53 print(f"預測情緒: {emotion}\n")
54fable8043@gmail.com