当前位置:
首页 > temp > 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)
运行结果如下:
然而,从结果中可以看出,在第二句评论中,“一般”这个词应该定义为中性,而该模型将其定义为消极,说明该模型在一定程度上仍存在一些瑕疵,这也是后期需要改进的地方。
出 处:https://www.cnblogs.com/Ukiii/p/14580631.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数