API

手把手帶你使用 baidu-aip 的情緒分析服務

串 API 輕鬆進行情緒分析

楊竑昕
人生比寫 Code 難一點點

--

Google 的自然語言處理雖然非常的強大,但是中文的情緒分析並非他的強項,目前中文的自然語言處理研究出處非常多是出於中國大陸,所以當需要用到中文的情緒分析時,百度 AI 開放平台就成為我們的首選啦。

平台目前的收費非常的便宜,例如本次介紹的情感傾向分析接口,提供了 5QPS免費額度,每秒免費請求 5 次超佛心的啊!根本就相當於不用錢。

注意!要註冊百度帳號必須要有 +86開頭的中國手機門號喔。

使用百度 AI 開放平台的情緒分析服務很簡單,步驟就 4 個。

  1. 註冊帳號
  2. 創建自然語言處理應用
  3. 獲取 access_token
  4. 使用情感傾向分析接口

註冊帳號

需要中國手機 +86 門號作認證

百度 AI 開放平台登入畫面

註冊成功後完成信箱驗證,即可開始使用百度 AI 開放平台的服務啦。

創建自然語言處理應用

百度 AI 開放平台的導覽列

從左邊的導覽列選擇,產品服務 > 人工智能 > 自然語言處理,就能來到自然語言處理應用程式的管理介面。

百度 AI 開放平台管理介面

點選創建應用

勾選想使用的服務,填入應用程式的描述。

待會會使用到 API KeySecret Key,把它記起來並小心保管,這就相當是使用此服務的帳號密碼囉。

獲取 access_token

access_token有效期為 1 個月,過期就得再次索取。

POSThttps://aip.baidubce.com/oauth/2.0/token

  • grant_type 值填 grant_type
  • client_id 值填你的 api_key
  • client_secret 值填你的 secret_key

以 curl 為例

curl -i -X POST "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=your_api_key&client_secret=your_secret_key"

索取 access_token 成功會得到回應:

{
"refresh_token": "25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074",
"expires_in": 2592000,
"scope": "public wise_adapt",
"session_key": "9mzdDZXu3dENdFZQurfg0Vz8slgSgvvOAUebNFzyzcpQ5EnbxbF+hfG9DQkpUVQdh4p6HbQcAiz5RmuBAja1JJGgIdJI",
"access_token": "24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-8574074",
"session_secret": "dfac94a3489fe9fca7c3221cbf7525ff"
}

錯誤會看見這個:

{
"error": "invalid_client",
"error_description": "unknown client id"
}

參考 http://ai.baidu.com/docs#/Auth/top

使用情感傾向分析接口

POSThttps://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify

  • HTTP header Content-Typeapplication/json
  • access_token 填入你的 access_token
  • charset 填入 UTF-8
  • HTTP body 帶一個 json:
{
"text": "你想要分析的文字,最多能帶2048個字元"
}

以 curl 為例

curl -i -X POST -H "Content-Type: application/json" -d '{"text" : "剛剛那家餐廳蠻好吃的,我們下次再約個時間來吃第二次吧!"}' "https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token=your_access_token"

就能收到情緒分析啦

{
"log_id": 4703034185884062249,
"text": "剛剛那家餐廳蠻好吃的,我們下次再約個時間來吃第二次吧!",
"items": [
{
"positive_prob": 0.566052, // 為正面的機率,值介於 0~1
"confidence": 0.0356713, // 信心程度,值介於 0~1
"negative_prob": 0.433948, // 為負面的機率,值介於 0~1
"sentiment": 2 // 0 負面,1 中性,2 正面
}
]
}

參考 https://ai.baidu.com/docs#/NLP-Apply-API/955c17f6

--

--