0 基础也可以玩转的人工智能

引言

一说到人工智能,可能很多人都会想到「终结者」系列中的经典 T-800 型号。

当然,这种级别的人工智能距离我们还有段距离,不过「波士顿动力」开发研制的「机器狗」可以了解下。

实际上,这种机器狗已经被运用在我们人类的实际的生产过程中。

它的第一个商业订单被一家来自德国的 HoloBuilder 公司签下,在旧金山国际机场(SFO)维米尔克1号航站楼的施工项目中,进行勘测,360度全景捕捉图像数据。

如果说上面这个不够炫酷那么「波士顿动力」还有另一款人形机器人「Atlas」,它可以完整流畅地展示了一套体操动作,包括倒立、空中旋转、空中一字马等,甚至还有结束时高举双手的动作。

人工智能是一个非常广泛的学科,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。

当然,我今天要介绍的内容肯定没有造机器人这么高端,这些内容对我来讲也是有点超纲的。

百度 AI 开放平台使用

我今天要介绍的是一个普通人也能玩转的人工智能,那就是「百度 AI 开放平台」,虽然没有上面「波士顿动力」的机器人炫酷,但是它可以让没有任何基础的小白体验到人工智能的魅力所在。

百度 AI 开放平台地址: http://ai.baidu.com/

没有账号的同学需要先注册一个账号才能使用,这上面提供了非常多的功能供我们使用,主要包含了语音技术、图像技术、文字识别、人体与人脸识别、视频技术、AR 与 VR、自然语言处理、知识图谱等功能。

前面的文章我们有抓取到 B 站「后浪」的弹幕,这里我就使用这个弹幕信息,做一个简单的情感倾向分析。

首先我们登录百度 AI 开放平台,进入控制台,选择自然语言处理模块,由于是第一次使用,我们需要先创建一个应用。

这里的内容我就简单的填写了一下,接口的选择是可以多选的,这个看情况勾选,如果不知道勾选啥,也可以全都勾选上。

创建完应用以后选择左边栏的情感倾向分析定制:

在使用之前我们需要先创建一个情感倾向分析定制的模型:

可以看到,我们在创建模型的时候需要我们上传两个语料库,一个是正向的一个是负向的,我这里偷个懒,直接使用示例数据进行训练。

点击立即创建以后,就可以看到我们刚才创建的模型了,不过现在的状态是未开始训练,我们点击查看详情,选择立即训练,开始训练我们这个刚才创建的模型。

模型的训练时间有点长,可以坐下来喝杯茶,慢慢等这个模型训练完了,大约要在 15 ~ 20 分钟左右。

这里有一点需要注意,就是语料的选择,因为我们后面的情感倾向分析都是要基于这个我们刚才上传的正负向的语料的训练,所以不同的内容的语料会对我们后面的情感分析产生比较大的影响,比如我用一个电商网站的语料去做「后浪」弹幕的分析,这个结果肯定准确度不会高。

训练完成后,我们可以看到一个模型准确率,这时我们点击一下立即生效,这个模型就可以使用了。

API 调用

到这里,我们的准备工作就完成,接下来,我们通过「百度 AI 开放平台」开放的 API 来继续完成我们的自然语言处理的情感倾向分析。

文档地址: https://ai.baidu.com/ai-doc/NLP/Tk6z52d7c

首先第一步,我们需要先获取一个 access_token ,具体是使用我们刚才创建应用的 client_id 和 client_secret 来获取。

就这两个值,我直接写代码吧还是:

import requests

grant_type = 'client_credentials'
client_id = '你的 client_id'
client_secret = '你的 client_secret'

access_token_url = f'https://aip.baidubce.com/oauth/2.0/token?grant_type={grant_type}&client_id={client_id}&client_secret={client_secret}&'

res = requests.post(access_token_url)

access_token = res.json()['access_token']

这样,我们就拿到了这个 access_token ,接下来,我们就能调用情感分析的接口了。

文档地址:https://ai.baidu.com/ai-doc/NLP/rk6z52hlz

请求的 URL 格式如下:

https://aip.baidubce.com/rpc/2.0/nlp/v1/emotion?charset=UTF-8&access_token={access_token}

这里的 access_token 就是我们刚才获得 access_token ,并且这个请求我们声明了编码格式使用 UFT-8 的模式。

请求的类型是 POST 类型的,入参格式如下:

{
    "scene":"talk",
    "text": "测试的文本数据"
}

这里的 scene 是由几种可选值的:

  • default:默认项-不区分场景
  • talk:闲聊对话-如度秘聊天等
  • task:任务型对话-如导航对话等
  • customer_service:客服对话-如电信/银行客服等

大家使用的时候可以根据自己的需要设定对应的类型。

我这里随便抽一条 B 站的弹幕测试下这个接口,代码接着往下写:

emotion_url = f'https://aip.baidubce.com/rpc/2.0/nlp/v1/emotion?charset=UTF-8&access_token={access_token}'

req_data = {
    'text': 'bilibili乾杯 []~( ̄▽ ̄)~*',
    'scene': 'talk'
}

r = requests.post(emotion_url, json = req_data)
print(r.json())

结果:

{
	'log_id': 7774053733710125290,
	'text': 'bilibili乾杯 []~( ̄▽ ̄)~*',
	'items': [{
		'subitems': [],
		'replies': [],
		'prob': 0.994847,
		'label': 'neutral'
	}, {
		'subitems': [],
		'replies': [],
		'prob': 0.0040755,
		'label': 'optimistic'
	}, {
		'subitems': [],
		'replies': [],
		'prob': 0.00107774,
		'label': 'pessimistic'
	}]
}

回参的含义如下:

接下来,我们只需要把代码补充一下,就可以对「后浪」的弹幕进行情感倾向分析了。

代码有点多,我就不贴出来了,需要源码的同学可以在公众号后台回复「后浪」获取源码。

最后我用 pyecharts 画了一个饼图:

从图中可以看到,中性情感占据了绝大多数,这是因为我们的训练使用的语料库并不适合用来做 B 站弹幕的语料库,很多我们认为是正向情感的弹幕被评定成为了中性情感导致的。

本文到这里就结束了,对人工智能或者自然语言处理感兴趣的同学可以亲自动手试试看,如果能帮我点个再看和转发,那就再好不过了。

您的扫码关注,是对小编坚持原创的最大鼓励:)

猜你喜欢

转载自blog.csdn.net/meteor_93/article/details/106034950