最近在研究NLP的相关知识,尤其是自然语言处理方面的,尝试了百度和腾讯的NLP之后,开始熟悉阿里的,但是全网都没有几篇相关博客(也可能是我搜索问题),幸好阿里的官方文档讲的够清楚,摸索着初步实现了,既然没有人写,那我就初步记录一下吧(PS:刚刚接触,比较浅显)

首先,就是登陆阿里云AI的网站注册一下,链接在这里https://ai.aliyun.com/,然后往下翻,找到语言技术,在NLP基础服务这里点查看详情,操作如下图

NLP系统功能模块 nlp功能需要打开吗_自然语言处理


然后点击免费使用,开通即可

NLP系统功能模块 nlp功能需要打开吗_nlp_02


开通后要开启AccessKey,鼠标移动到右上角头像处,点击AccessKey管理,然后创建AccessKey就可以了,AccessKeyId和AccessKeySecret要记住,一会要用,当然记不住也没关系,再次进入AccessKey管理页面是可以查看的

NLP系统功能模块 nlp功能需要打开吗_自然语言处理_03


鼓捣完这些,就可以正式写代码了,把我的代码贴到下面,具体的参数含义在代码下面,对照着看,可能更容易理解

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)

参数含义如下

NLP系统功能模块 nlp功能需要打开吗_阿里云_04


上面的为通用函数,下面是自然语言方面的,其中Action的GetSaChGeneral代表的是情感分析,如果需要其他模块,替换这个就可以,对应代码可以去官方文档找,这里不再赘述

NLP系统功能模块 nlp功能需要打开吗_阿里云_05


这下面是返回数据

NLP系统功能模块 nlp功能需要打开吗_NLP系统功能模块_06


阿里云的官方文档写的挺清楚的,简单明了,更多教程可以去官方文档里学习

最后祝大家前程似锦食欲大开哟