【人人都是深度學(xué)習(xí)師】10行代碼實(shí)現(xiàn)一個基于深度學(xué)習(xí)遷移學(xué)習(xí)的正負(fù)面情感分析功能
基礎(chǔ)環(huán)境
基礎(chǔ)環(huán)境安裝見:PaddleHub安裝教程
代碼
senta_predict.py
import paddlehub as hub # 引入hub庫
from typing import List
model_zoo_names = ["senta_lstm", "senta_gru", "senta_cnn", "senta_bow", "senta_bilstm", "ernie_skep_sentiment_Analysis", "emotion_detection_textcnn"] # 以指定模型名字的方式調(diào)用不同的情感分析模型 https://www.paddlepaddle.org.cn/hublist?filter=en_category&value=SentimentAnalysis
predict_ret_dict_list = []
def senta_predict(name : str = "senta_lstm", test_text : List[str] = ["這家餐廳很好吃", "這部電影真的很差勁"]) -> List[dict]:
? ? senta = hub.Module(name=name)
? ? if name == "ernie_skep_sentiment_Analysis":
? ? ? ? return senta.predict_sentiment(texts=test_text, use_gpu=False)
? ? elif name == "emotion_detection_textcnn":
? ? ? ? return senta.emotion_classify(texts=test_text)
? ? else:
? ? ? ? return senta.sentiment_classify(texts=test_text) # 返回字典數(shù)組 [{'text': '這家餐廳很好吃', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9407, 'negative_probs': 0.0593}]
text = "這家餐廳很好吃" # 想進(jìn)行情感識別的文本內(nèi)容 "這家餐廳很好吃", "這部電影真的很差勁"
for name in model_zoo_names:
? ? print(f"model name:{name} ", senta_predict(name, [text])[0])
運(yùn)行結(jié)果:
綜合7個模型的結(jié)果代碼:
import numpy as np
positive_negative_probs_pair_list = [ (ret_dict["positive_probs"], ret_dict["negative_probs"]) for ret_dict in [(senta_predict(name, [text])[0]) for name in model_zoo_names]]
positive_probs_means = np.array([probs[0] for probs in positive_negative_probs_pair_list]).mean()
negative_probs_means = np.array([probs[1] for probs in positive_negative_probs_pair_list]).mean()
print(f"{text} 正面概率:{positive_probs_means} 負(fù)面概率:{negative_probs_means}")
執(zhí)行結(jié)果:
這家餐廳很好吃 正面概率:0.8524851250239781 負(fù)面概率:0.06541486792457955
這里最終的結(jié)果有些問題,最后一個模型最終輸出正負(fù)面的float值不是概率值,可能是沒有做softmax,實(shí)際使用時需要相應(yīng)處理下 。
分析
在調(diào)用這7個模型的地方 senta = hub.Module(name=name) 會自動下載相應(yīng)的壓縮包文件并解壓,存放目錄為:/root/.paddlehub/modules/ 大概一共有5GB多
執(zhí)行過程截圖
?
參考
https://www.paddlepaddle.org.cn/hublist?filter=en_category&value=SentimentAnalysis
————————————————
版權(quán)聲明:本文為CSDN博主「機(jī)器愛智能」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/jrckkyy/article/details/114597346