python 利用百度API進行淘寶評論關鍵詞提取

利用百度API自然語言處理技術中的評論觀點抽取方面,對淘寶購物的評論進行分析,把關鍵詞進行提取,方便買傢快速瞭解該商品的相關特點,具體實現過程如下:

1、創建相關新應用

首先,需要登錄百度AI平臺,創建一個關於自然語言處理技術的應用(領取免費額度),獲得AppID、API Key和Secret Key如下:

然後下載Python的SDK,然後可以通過閱讀API的使用手冊和自然語言處理技術的觀點抽取相關案例:

2、獲取Access Token

使用百度API時需要先獲取Access Token,並且需要用到上一步獲取的參數API Key和Secret Key,在百度給出的使用說明中,建議用POST的方式對URL進行請求來獲取access_token,同時可以加入Header,該方式支持UTF-8編碼,具體實現代碼如下:

import json
import time
import requests
from urllib.request import urlopen

#定義獲取token函數
def get_token():
  req = Request(Token_url)
  req.add_header('Content-Type', 'application/json; charset=UTF-8')
  try:
    f = urlopen(req,timeout=5)
    result_str = f.read().decode('utf-8')
  except URLError as err:
    print(err)
  result = json.loads(result_str)
  #返回Access Token字符串
  return result['access_token']

3、分析評論並進行觀點抽取

在獲取Access Token後就可以使用百度API對評論進行分析並抽取關鍵詞。在使用說明中,調用API時需要輸入參數text和type,其中text為需要分析的文本,而type分成瞭13各類別,具體取值說明如下:

因為本文分析的是淘寶購物評論文本數據,所以該參數取值選擇瞭12。其次,返回格式需要指定輸入為UTF-8編碼,對於調用後返回的參數,本文用到瞭prop、adj和sentiment三個參數,解釋如下:

具體實現代碼如下:

def analysis_comment(host,comment):
  #定義分析類別(購物)
  data = json.dumps(
    {
      "text":comment,
      "type":12
    })
    
  request = Request(url=host,data=data.encode('utf-8'))
  request.add_header('Content-Type', 'application/json; charset=UTF-8')
  response = urlopen(request)
  content = response.read().decode('utf-8')
  rdata = json.loads(content)

  print("--------------------------------------------------------------")
  print("評論:")
  print("  " + comment)
  print("\n評論關鍵字:")
  #把積極、中性、消極關鍵詞分類出來並打印
  for item in rdata['items']:
    if item['sentiment'] == 2:
      print(u"  積極的評論關鍵詞:" + item['prop'] + item['adj'])
    if item['sentiment'] == 1:
      print(u"  中性的評論關鍵詞:" + item['prop'] + item['adj'])
    if item['sentiment'] == 0:
      print(u"  消極的評論關鍵詞:" + item['prop'] + item['adj'])

4、運行結果

在對上述函數進行定義後,運行改代碼,調用函數:

if __name__ == '__main__':
  #定義訪問url(API Key和Secret Key換成自己的)
  Comment_url = "https://aip.baidubce.com/rpc/2.0/nlp/v2/comment_tag"
  Token_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=your_API_Key&client_secret=your_Secret_Key"

  A_t = get_token()
  host = Comment_url + "?charset=UTF-8&access_token="+A_t
  
  comment1 = {"text":"版型不錯,顏色很好看,面料非常舒服而且厚度適中"}
  comment2 = {"text":"上身效果一般,做工也一般,會有點起球,沒有想象中好"}
  comment3 = {"text":"設計做工一點都不好,袖子特別長,衣服比例設計非常差,性價比不高"}
  comment1 = comment1["text"]
  comment2 = comment2["text"]
  comment3 = comment3["text"]
  
  analysis_comment(host,comment1)
  analysis_comment(host,comment2)
  analysis_comment(host,comment3)

運行結果如下:

然而,從結果中可以看出,在第二句評論中,“一般”這個詞應該定義為中性,而該模型將其定義為消極,說明該模型在一定程度上仍存在一些瑕疵,這也是後期需要改進的地方。

以上就是python 利用百度API進行淘寶評論關鍵詞提取的詳細內容,更多關於python 淘寶評論關鍵詞提取的資料請關註WalkonNet其它相關文章!

推薦閱讀: