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 淘宝评论关键词提取的资料请关注其它相关文章!
上一篇: java爬虫爬取动态页面记录
下一篇: Flex 4 打印预览