最近在研究NLP的相关知识,尤其是自然语言处理方面的,尝试了百度和腾讯的NLP之后,开始熟悉阿里的,但是全网都没有几篇相关博客(也可能是我搜索问题),幸好阿里的官方文档讲的够清楚,摸索着初步实现了,既然没有人写,那我就初步记录一下吧(PS:刚刚接触,比较浅显)
首先,就是登陆阿里云AI的网站注册一下,链接在这里https://ai.aliyun.com/,然后往下翻,找到语言技术,在NLP基础服务这里点查看详情,操作如下图
然后点击免费使用,开通即可
开通后要开启AccessKey,鼠标移动到右上角头像处,点击AccessKey管理,然后创建AccessKey就可以了,AccessKeyId和AccessKeySecret要记住,一会要用,当然记不住也没关系,再次进入AccessKey管理页面是可以查看的
鼓捣完这些,就可以正式写代码了,把我的代码贴到下面,具体的参数含义在代码下面,对照着看,可能更容易理解
import base64
import datetime
import hashlib
import hmac
import urllib
import uuid
import requests
AccessKeyId = "替换成自己的AccessKeyId"
AccessKeySecret = "替换成自己的AccessKeySecret"
url = "http://alinlp.cn-hangzhou.aliyuncs.com/"
# 自然语音分析
def nlpTest(text):
param = {
"Format": "json",
"Version": "2020-06-29",
"AccessKeyId": AccessKeyId,
"SignatureMethod": "HMAC-SHA1",
"Timestamp": (datetime.datetime.now() - datetime.timedelta(hours=8)).strftime("%Y-%m-%dT%H:%M:%SZ"),
"SignatureVersion": "1.0",
"SignatureNonce": uuid.uuid4().hex,
"Text": text,
"TokenizerId": "MAINSE",
"Action": "GetSaChGeneral",
"ServiceCode": "alinlp"
}
# 对参数按照key进行排序
param_list = sorted(param.items(), key=lambda x: x[0])
# 将key-value转化为url的形式
StringToSign = urllib.parse.urlencode(param_list)
# 做urlencode
StringToSign = urllib.parse.quote(StringToSign)
# 拼接头
StringToSign = "GET&%2F&" + StringToSign
# 拼接SHA1对应的key
secret = AccessKeySecret + "&"
# 计算SHA1值,并做base64
sig = base64.b64encode(hmac.new(secret.encode("utf-8"), StringToSign.encode("utf-8"), hashlib.sha1).digest())
# 将Signature添加到参数中
param["Signature"] = bytes.decode(sig)
# 发送http请求
reponse = requests.get(url, param)
return reponse.text
if __name__ == '__main__':
data = nlpTest("周杰伦唱歌真好听,哪怕不发专辑也喜欢他")
print(data)
参数含义如下
上面的为通用函数,下面是自然语言方面的,其中Action的GetSaChGeneral代表的是情感分析,如果需要其他模块,替换这个就可以,对应代码可以去官方文档找,这里不再赘述
这下面是返回数据
阿里云的官方文档写的挺清楚的,简单明了,更多教程可以去官方文档里学习
最后祝大家前程似锦食欲大开哟