赞
踩
目录
之前我们搭建了一个人工智能系统来判断评价的正负面性。
这也让我们意识到搭建并训练模型是很不容易的,每一个步骤都需要谨慎地反复调试才能研发成功。好在我们可以站在前人的肩膀上,借助 SDK(软件开发工具包),来实现一些人工智能应用。
SDK,即Software Development Kit,中文意思为软件开发工具包。
可以这么理解,辅助开发某一类软件或新功能的相关文档、代码范例和工具的集合都可以叫做SDK。
举个例子:
手机每天都会收到许多来自APP或系统的新闻推送、促销活动广告等等,它们大多都属于法规条文里规定的“第三方应用或服务”。
正是这些集成在APP里的第三方工具包,能够协助APP更加高效率、低成本地实现注入支付、广告等一系列功能。
SDK就是这个例子里说到的第三方应用或服务。SDK的出现就是为了减少程序员的工作量。
但它作为一个全封闭的程序包,要与我们的程序进行联通,只能通过一个小小接口,也就是API。
API,即Application Programming Interface,中文意思为应用程序编程接口。
其实就是别人已经写好的、可以实现特定功能的函数。
我们无需访问源码,或理解其内部工作机制的细节。
当我们想实现某个功能,但又不想耗费大量时间亲自研发,就可以选择SDK。
我们不需要知道SDK内部究竟是如何工作的,只需要清楚如何有效地调用对应的API接口,来实现不同的功能了解什么是SDK后,我们就可以寻找一个针对于Python开发者的SDK,来高效完成自然语言处理中的情感分析任务。
经过一番考虑,我们最终选择了百度AI开放平台。
和使用第三方模块一样,在调用百度AI平台所提供的接口前,我们需要在终端里安装百度的Python SDK。只需在终端中通过代码 pip install baidu-aip 进行安装即可。
aip可以理解为AI Program,也就是人工智能程序,那么baidu-aip即是百度AI程序。
调用百度SDK,除开需要在终端里进行安装外,还得有一个百度账号。
一般百度账号都是通用的,如果没有可以在平台控制台里点击【立即注册】,根据提示填写相关信息完成注册。
在平台控制台页面点击左上角的蓝色菜单按钮,我们可以在【产品服务】里找到【自然语言处理】板块,它提供了自然语言处理所需的各种接口。
进入【自然语言处理】页面以后,点击【应用列表】,我们需要通过【创建应用】功能,创建一个私人使用的自然语言处理应用。
在【创建应用】页面,输入应用名称和应用描述,其他默认即可:
1. 为你的应用设定名称;
2. 对应用进行简短的描述;
3. 填写完毕后,选择【立即创建】完成操作。
创建成功后:
通过【查看应用详情】可以看到AppID、API Key和Secret Key。
通过【查看文档】可以获得该接口的官方使用说明文档。
什么是自然语言处理客户端?
在调用相关接口前,我们需要创建一个自然语言处理的Python SDK客户端,也就是AipNlp。
它为使用自然语言处理的开发人员提供了一系列的交互方法。
这些方法包括但不限于评论观点抽取、情感倾向分析等功能,只要安装了baidu-aip,即可使用。
# 从aip中导入AipNlp from aip import AipNlp """ 你的 APPID AK SK """ APP_ID = "248002" API_KEY = "K9fmfNl0qFs4n7ME" SECRET_KEY = "iBlCDWhsOoeDUAhTqe" # 将密钥信息传递给AipNlp生成客户端,并将结果存储在client中 client = AipNlp(APP_ID, API_KEY, SECRET_KEY) # 输出client进行查看 print(client)创建好NLP客户端后,就可以通过 AipNlp 来调用各类自然语言处理的接口方法,实现相应的功能。
图中展示了官方文档里记录的一些接口方法,这里我们不做讨论
为什么选择「情感倾向分析」接口?
「情感倾向分析(sentimentClassify)」接口会判断文本信息的情感极性类别(积极、消极、中性),并给出对应的可信度。
请求sentimentClassify接口只需一个参数:text,字符串格式的文本内容。下面是一个简单的示例:
对一条电视机评价"电视的音质很差,声音很小"调用sentimentClassify接口。
会返回一个字典,其中主要记录了【调用接口信息】与【情感分析结果】。我们关注的主要是【情感分析结果】,也就是该评价:
属于积极类别的概率(positive_prob),约0.02%
分类结果的可信度(confidence),约99.95%
属于消极类别的概率(negative_prob),约99.98%
情感分类的结果(sentiment),0表示负向,1表示中性,2表示正向
# 将评论存储在变量text中 text = "电视的音质很差,声音很小" # 调用情感倾向分析sentimentClassify接口 result = client.sentimentClassify(text) # 输出结果 print(result)
我们先来看一下输出的结果究竟是怎样的一个结构。
result这个字典一共有三个键,分别是:log_id、text和items。
log_id的值是在请求接口时返回的标识码。
text是我们输入的评价内容。
items存储的是情感分析结果,是我们最感兴趣的部分。
要访问我们最感兴趣的情感分析结果,可以先通过result["items"]来访问items这个键所对应的值。
返回的是一个列表,该列表中仅有一个元素,是一个字典。我们继续通过列表的索引,也就是[0],就能访问到存储了情感分析结果的字典。
# 将result["items"][0]存储在变量ret中 ret = result["items"][0] # 输出ret print(ret)
为了方便调用,我们将result["items"][0]存储在了变量ret里,并输出进行查看。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。