一、背景
Hi,大家!我是 @馬哥python說 ,一名10年程式猿。
今天我來演示一下:透過百度AI開放平臺,利用python呼叫百度介面進行中文情感傾向分析,並得出情感極性分為積極、消極還是中性以及置信度結果。
二、操作步驟
首先,開啟百度AI首頁:百度AI開放平臺-全球領先的人工智慧服務平臺
在頂部選單,依次選擇:開放能力->語言與知識->語言理解->情感傾向分析,如圖所示:
在服務列表中,選擇"情感傾向分析",點選開通(我的已經開通了):
透過檢視技術文件(https://ai.baidu.com/ai-doc/NLP/zk6z52hds)得知,請求服務需要用access_token,而想到得到access_token,又得需要API Key和Secret Key,想到得到Key就得建立應用,因此,梳理思路如下:
建立應用,得到API Key和Secret Key
利用Key,得到access_token
有了access_token,向情感分析介面傳送請求,得到返回結果
2.1 建立應用
開啟應用列表(百度智慧雲-登入),點選建立應用:
選擇"自然語言處理",點選建立:
建立成功之後,會得到 AppID、API Key、Secret Key三個關鍵資訊:
2.2 獲取token
開啟鑑權認證頁面,我們直接用python程式碼獲取token:
client_id代入API Key,client_secret代入Secret Key,程式碼執行結果:
返回結果中的access_token就是了。
2.3 情感傾向分析
獲取到token之後,呼叫情感傾向分析介面,程式碼如下:
輸入文字:我今天太傷心了,因為我摔了一跤,嗚嗚嗚
輸出結果:置信度0.831307,消極機率0.924088,積極機率0.0759116,因此判定結果為消極。
再測試一個:
輸入文字:我可太喜歡看《狂飆》這部電視劇了,演技全員線上!!
輸出結果:置信度0.999714,消極機率0.00012881,積極機率0.999871,因此判定結果為積極。
下面,我們們測試一個較長的輸入文字:
輸入文字:很多人是不能理解那些上有老下有小的人的,特別是家裡有嚴重基礎疾病的至親。我不怕我自己面對新冠,但是我媽媽去年確診肺癌,切了大半個肺,現在正在治療中,一點感冒就讓她無比痛苦,我怎麼敢讓她去面對新冠病毒?那些自己得了新冠又不戴口罩在公共場合瀟灑快樂的人,請多去為那些弱勢群體想想吧,因為總有一天你也極有可能成為他們中的一員,你才能明白那種生命不能承受之重。
輸出結果:置信度0.814589,消極機率0.916565,積極機率0.0834351,因此判定結果為消極。
三、其他情感分析
其他python中文情感分析庫,比如snownlp應用我之前寫的比較多,準確率有待考證。
如果你覺得準確率低,百度還提供了自訓練模型的EasyDL平臺供使用,無程式碼開發經驗也可訓練模型,很方便。
另外,阿里、騰訊、華為等AI開放平臺也有對標的介面服務,大家可以試試看。
四、講解影片
同步講解影片:【NLP教程】python呼叫百度API介面實現情感傾向分析