Python人工智能(自学)应用一.自然语言处理(4)

API实现情感分析

目录

API实现情感分析

一.引入

二.步骤

(1)安装百度的Python SDK

(2)注册百度账号

(3)创建自然语言处理应用

(4)创建NLP客户端

(5)调用“情感倾向分析” 接口

(6)处理结果


一.引入

之前我们搭建了一个人工智能系统来判断评价的正负面性。
这也让我们意识到搭建并训练模型是很不容易的,每一个步骤都需要谨慎地反复调试才能研发成功。好在我们可以站在前人的肩膀上,借助 SDK(软件开发工具包),来实现一些人工智能应用。

SDK,即Software Development Kit,中文意思为软件开发工具包。
可以这么理解,辅助开发某一类软件或新功能的相关文档、代码范例和工具的集合都可以叫做SDK。

举个例子:

手机每天都会收到许多来自APP或系统的新闻推送、促销活动广告等等,它们大多都属于法规条文里规定的“第三方应用或服务”。
正是这些集成在APP里的第三方工具包,能够协助APP更加高效率、低成本地实现注入支付、广告等一系列功能。
SDK就是这个例子里说到的第三方应用或服务。

SDK的出现就是为了减少程序员的工作量。
但它作为一个全封闭的程序包,要与我们的程序进行联通,只能通过一个小小接口,也就是API。

API,即Application Programming Interface,中文意思为应用程序编程接口。
其实就是别人已经写好的、可以实现特定功能的函数。
我们无需访问源码,或理解其内部工作机制的细节。 

当我们想实现某个功能,但又不想耗费大量时间亲自研发,就可以选择SDK。
我们不需要知道SDK内部究竟是如何工作的,只需要清楚如何有效地调用对应的API接口,来实现不同的功能 

了解什么是SDK后,我们就可以寻找一个针对于Python开发者的SDK,来高效完成自然语言处理中的情感分析任务。
经过一番考虑,我们最终选择了百度AI开放平台

二.步骤

(1)安装百度的Python SDK

和使用第三方模块一样,在调用百度AI平台所提供的接口前,我们需要在终端里安装百度的Python SDK。只需在终端中通过代码 pip install baidu-aip 进行安装即可。
aip可以理解为AI Program,也就是人工智能程序,那么baidu-aip即是百度AI程序。

(2)注册百度账号

调用百度SDK,除开需要在终端里进行安装外,还得有一个百度账号。
一般百度账号都是通用的,如果没有可以在平台控制台里点击【立即注册】,根据提示填写相关信息完成注册。

(3)创建自然语言处理应用

平台控制台页面点击左上角的蓝色菜单按钮,我们可以在【产品服务】里找到【自然语言处理】板块,它提供了自然语言处理所需的各种接口。

 进入【自然语言处理】页面以后,点击【应用列表】,我们需要通过【创建应用】功能,创建一个私人使用的自然语言处理应用。

在【创建应用】页面,输入应用名称和应用描述,其他默认即可:
1. 为你的应用设定名称;
2. 对应用进行简短的描述;
3. 填写完毕后,选择【立即创建】完成操作。
 

 创建成功后:
通过【查看应用详情】可以看到AppID、API Key和Secret Key。
通过【查看文档】可以获得该接口的官方使用说明文档。

(4)创建NLP客户端

什么是自然语言处理客户端?

在调用相关接口前,我们需要创建一个自然语言处理的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 来调用各类自然语言处理的接口方法,实现相应的功能。
图中展示了官方文档里记录的一些接口方法,这里我们不做讨论

(5)调用“情感倾向分析” 接口

为什么选择「情感倾向分析」接口?

「情感倾向分析(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)

(6)处理结果

我们先来看一下输出的结果究竟是怎样的一个结构。
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里,并输出进行查看。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值