-NLP小技巧-
00
前言
看过美剧《别对我说谎》的小伙伴,一定对主角通过辨别人脸、声音及体貌特征来发现真相的能力十分羡慕。
实际上,自然语言处理(NLP)技术也可以通过字里行间的蛛丝马迹判断文本的情感。今天老哥从百度智能云入手,带你调用情感分析API。不会写代码的小伙伴,参见老哥的另一篇文章,软件下载|一款高颜值的NLP神器,可以实现一部分自然语言处理功能。
01
百度智能云
之前老哥写过一篇史上最详细的百度POI抓取教程,里面用到了百度地图开发平台。本次我们使用的则是百度的另一利器——百度智能云,完整代码在公众号后台回复情感分析即可获得。
百度智能云网址:https://cloud.baidu.com/
02
控制台
点击网页右上角的管理控制台,进入控制台面板。在已开通服务处,点击自然语言处理。
在管理应用中我们可以看到已创建的应用。也可以点击蓝色创建应用按钮创建新的应用。
创建成功之后,你会获得一个API Key,和一个Secret Key。在调用API时会用到这两个参数。
03
支持功能
自然语言处理的说明文档网址:
https://cloud.baidu.com/doc/NLP/s/ak3pmn40n
百度智能云API分为语言处理基础技术,应用技术和智能创作平台,相关功能如下:
基础技术 | 应用技术 | 智能创作 |
词法分析 | 文章标签 | 结构化数据写作 |
依存句法分析 | 文章分类 | 热点发现 |
词向量表示 | 新闻摘要 | 事件脉络 |
DNN语言模型 | 观点抽取 | 智能春联 |
词义相似度 | 情感倾向分析 | 智能写诗 |
短文本相似度 | 地址识别 | 图文生成视频 |
04
情感倾向分析
本次教程老哥以情感倾向接口示例。
情感倾向分析接口,对只包含单一主体主观信息的文本,进行自动情感倾向性判断(积极、消极、中性),并给出相应的置信度。
百度智能云API的调用分两步,首先通过API Key和Secret Key获取的access_token,然后利用access_token调用API。
from requests_html import HTMLSessionimport jsondef get_access_token(): client_id='你的API Key' client_secret='你的Secret Key' url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+client_id+'&client_secret='+client_secret headers={'Content-Type':'application/json; charset=UTF-8'} session=HTMLSession() req = session.post(url=url,headers=headers) content = req.html.text token = json.loads(content)['access_token'] print(token)get_access_token()
获取access_token的方法就是一个小爬虫。本教程中老哥使用了requests-html库,通过API Key和Secret Key构造请求网址,向服务器发送POST请求,从网址返回的JSON格式的内容中提取access_token,即可获得相应的一串数字。
事实上并不复杂,你只需要复制上述代码,将里面的API Key和Secret Key参数替换成你自己的即可。
import pandas as pdfrom requests_html import HTMLSessionimport jsonimport timedef sentiment_classify(text, ilt): raw = {"text": "内容"} raw['text'] = text data = json.dumps(raw).encode('utf-8') AT = '你的access_token' url= 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token=' + AT headers={'Content-Type':'application/json'} session=HTMLSession() req = session.post(url=url, headers=headers,data=data) content = req.html.html rdata = json.loads(content) print(rdata)
调用情感倾向API的代码如上图所示。
在POST请求中共需要传入3个值,分别是url,headers和data。接下来老哥一一解析这三个值。
data:构造一个字典,将待判断情感的句子传入。
url:基础url是"https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?charset=UTF-8&access_token=",后面需要传入刚才你得到的access_token值。
headers:headers是一个字典,键为Content-Type,值为application/json 。
利用构造好的3个参数进行POST请求,得到json格式的返回值,最后用json.loads()解析即可。得到的情感值如下:
这时我们已经初步得到情感值了,返回的参数中有价值的如下:
参数 | 描述 |
log_id | 请求唯一标识码 |
text | 输入的文本 |
sentiment | 情感极性分类结果,0:负向,1:中性,2:正向 |
confidence | 分类的置信度,取值范围[0,1] |
positive_prob | 属于积极类别的概率 ,取值范围[0,1] |
negative_prob | 属于消极类别的概率,取值范围[0,1] |
现在得到的返回值不够美观,我们希望将其结构化输出。结构化输出很简单,老哥就不赘述了,完整代码请在公众号后台回复情感分析。
以上就是本次的“百度智能云”相关推送,我们下期再见,peace~
- END -
关注老哥,一起充电!
机房老哥
欢迎扫码关注!