文档简介:
下面让我们一起来和小王看一下如何接入百度自然语言处理服务吧
实现步骤
只需三步,即可完成接口的调用。
Step1:成为百度AI开放平台的开发者
要调用百度AI开放平台的能力先要成为百度AI开放平台的开发者,首先让我们来注册百度AI开放平台的开发者,并新建一个自然语言处理应用。
- 点击百度AI开放平台导航右侧的控制台,选择需要使用的AI服务项。若为未登录状态,将跳转至登录界面,请您使用百度账号登录。如还未持有百度账户,可以点击此处注册百度账户。
- 首次使用,登录后将会进入开发者认证页面,请填写相关信息完成开发者认证。注:(如您之前已经是百度云用户或百度开发者中心用户,此步可略过。)
- 通过控制台左侧导航,选择产品服务-人工智能,进入具体AI服务项的控制面板(自然语言处理),进行相关业务操作。
我们有账号之后登录,并且点击此处创建一个应用,如下图
然后就能看到创建完的应用和 API KEY 以及 Secret KEY了
Step2:准备数据
我们在某电商上针对某一款电商产品(例如:XX手机)随机抽取了几条商品评论进行典型意见分析。
评论1
手机已经收到,非常完美超出自己的想象,外观惊艳 黑色高端加外形时尚融为一体比较喜欢的类型。
系统流畅优化的很好,操作界面简洁大方好上手。
电池用量很满意,快充很不错。相机拍人拍物都美。
总而言之一句话很喜欢的宝贝。
评论2
外观精美大小正合适,做工精细,线条流畅,拍照完美,吃鸡最高画质无压力。
连续玩了三个小时掉电百分之二十,电池强劲持久,无明显发热,操作流畅,准备再买一台给老婆生日礼物!
评论3
大家千万不要在上当了,耗电特别快,手机激活后不支持7天无理由退货,请大家小心购买
Step3: 编写一个示例程序
有第一步的API KEY 以及 Secret KEY,以及第二步的数据,我们就可以写一个示例代码调用百度AI开放平台的评论观点抽取能力
准备开发环境
我们选择用python来快速搭建一个原型,关于如何安装python。可以参考下表列出的不同操作系统的安装方法进行安装。
Python的官方下载地址:下载python
Windows 快速测试包
windows平台的用户如果对上述的python安装感到困难,可以下载我们的一键测试包,下载地址:windows测试包。
解压zip文件后,双击run.bat即可测试。
编写代码
新建一个 main.py
粘贴以下内容,不要忘记替换你的 API_KEY 以及 SECRET_KEY:
# coding=utf-8 import sys import json import base64 import time # make it work in both python2 both python3 IS_PY3 = sys.version_info.major == 3 if IS_PY3: from urllib.request import urlopen from urllib.request import Request from urllib.error import URLError from urllib.parse import urlencode from urllib.parse import quote_plus else: import urllib2 from urllib import quote_plus from urllib2 import urlopen from urllib2 import Request from urllib2 import URLError from urllib import urlencode # skip https auth import ssl ssl._create_default_https_context = ssl._create_unverified_context API_KEY = 'jhDFBkvSQGtS9WPGZaE9IbcS' SECRET_KEY = 'e5OXupgG11ovUFkA2zhqPD4HsLO35bqd' COMMENT_TAG_URL = "https://aip.baidubce.com/rpc/2.0/nlp/v2/comment_tag" """ TOKEN start """ TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token' """ get token """ def fetch_token(): params = {'grant_type': 'client_credentials', 'client_id': API_KEY, 'client_secret': SECRET_KEY} post_data = urlencode(params) if (IS_PY3): post_data = post_data.encode('utf-8') req = Request(TOKEN_URL, post_data) try: f = urlopen(req, timeout=5) result_str = f.read() except URLError as err: print(err) if (IS_PY3): result_str = result_str.decode() result = json.loads(result_str) if ('access_token' in result.keys() and 'scope' in result.keys()): if not 'brain_all_scope' in result['scope'].split(' '): print ('please ensure has check the ability') exit() return result['access_token'] else: print ('please overwrite the correct API_KEY and SECRET_KEY') exit() """ call remote http server """ def make_request(url, comment): print("---------------------------------------------------") print("评论文本:") print(" " + comment) print("\n评论观点:") response = request(url, json.dumps( { "text": comment, # 13为3C手机类型评论,其他类别评论请参考 https://ai.baidu.com/docs#/NLP-Apply-API/09fc895f "type": 13 })) data = json.loads(response) if "error_code" not in data or data["error_code"] == 0: for item in data["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"]) else: # print error response print(response) # 防止qps超限 time.sleep(0.5) """ call remote http server """ def request(url, data): req = Request(url, data.encode('utf-8')) has_error = False try: f = urlopen(req) result_str = f.read() if (IS_PY3): result_str = result_str.decode() return result_str except URLError as err: print(err) if __name__ == '__main__': comment1 = "手机已经收到,非常完美超出自己的想象,外观惊艳 黑色高端加外形时尚融为一体比较喜欢的类型。
系统流畅优化的很好,操作界面简洁大方好上手。电池用量很满意,快充很不错。相机拍人拍物都美。总而言之一句话很喜欢的宝贝。" comment2 = "外观精美大小正合适,做工精细,线条流畅,拍照完美,吃鸡最高画质无压力。连续玩了三个小时掉电百分之二十,
电池强劲持久,无明显发热,操作流畅,准备再买一台给老婆生日礼物!" comment3 = "大家千万不要在上当了,耗电特别快,手机激活后不支持7天无理由退货,请大家小心购买" # get access token token = fetch_token() # concat url url = COMMENT_TAG_URL + "?charset=UTF-8&access_token=" + token make_request(url, comment1) make_request(url, comment2) make_request(url, comment3)
运行代码
在命令行中运行python main.py
结果
若代码正确运行,命令行界面上会显示出运行结果:
--------------------------------------------------- 评论文本: 手机已经收到,非常完美超出自己的想象,外观惊艳 黑色高端加外形时尚融为一体比较喜欢的类型。系统流畅优化的很好,
操作界面简洁大方好上手。电池用量很满意,快充很不错。相机拍人拍物都美。总而言之一句话很喜欢的宝贝。 评论观点: 积极的评论观点: 外观惊艳 积极的评论观点: 系统流畅 积极的评论观点: 优化好 积极的评论观点: 界面简洁 积极的评论观点: 电池不错 积极的评论观点: 相机不错 --------------------------------------------------- 评论文本: 外观精美大小正合适,做工精细,线条流畅,拍照完美,吃鸡最高画质无压力。
连续玩了三个小时掉电百分之二十,电池强劲持久,无明显发热,操作流畅,准备再买一台给老婆生日礼物! 评论观点: 积极的评论观点: 大小合适 积极的评论观点: 外观精美 积极的评论观点: 做工精细 积极的评论观点: 线条流畅 积极的评论观点: 拍照不错 积极的评论观点: 电池持久 积极的评论观点: 发热明显 积极的评论观点: 操作流畅 --------------------------------------------------- 评论文本: 大家千万不要在上当了,耗电特别快,手机激活后不支持7天无理由退货,请大家小心购买 评论观点: 消极的评论观点: 耗电快 消极的评论观点: 手机一般
结果中还会返回情感搭配在句子中的起止位置,以及对应于该情感搭配的短句摘要,更多返回字段的解释您可以参照文档自然语言处理应用技术REST API文档 。
总结
通过评论观点抽取了解用户对商品的核心关注点,通过情感倾向分析了解用户对商品的喜好程度,通过聚类/分类能力进行系统化的观点标签总结,可以帮助商家更快速更全面的了解用户直观且典型的评价,来分析该款电商产品在用户心中的优缺点和用户满意度,生产商可根据客户评论制定新的策略。