摘要:
随着自然语言处理(NLP)的关注度越来越高,很多学者都在研究这个领域,本次介绍的是百度NLP。
初识百度NLP
打开百度,搜索“百度NLP”,进入官网,找到控制台并登录,没有账号注册即可。在产品服务中,依次找到【产品服务】-【人工智能】-【自然语言处理】并进入,在这里根据需求创建好应用。点击已创建的应用,可查询各功能API对应的URL,详情如下:
使用百度NLP
调用接口一般有两种方法:
- 第一种,话不多说直接贴出网址:【https://ai.baidu.com/sdk#nlp】,里面有说明文档,很详细,而且涵盖java、php、python等多种语言。(一般情况下我们选择的SDK资源类型为“语言处理基础技术”)
- 第二种,代码直接实现,本人用的是python,所以直接贴出代码。(代码中的API Key和Secret Key需替换)
# -*- coding: utf-8 -*-
### 基于python3
### 思路很清晰:获得access token -> 接入接口 -> 送入数据调用接口 -> 返回数据
import urllib
import requests
import json
import time
import os
## 获得access token
## 注意:需要API Key和Secret Key
def get_access_token():
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【API Key】&client_secret=【Secret Key】'
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
content = response.read()
content=json.loads(content)
if content:
return content["access_token"]
## 接口接入
## 注意:返回的是json格式数据
def get_content(text):
access_token = get_access_token().strip()
url = "https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?access_token="+access_token #API
headers = {"Content-Type": "application/json"}
data={"text":text}
try:
data=json.dumps(data, ensure_ascii=False).encode('gbk')
r = requests.post(url, data=data, headers=headers)
return r.text
except Exception as e:
print ('a', str(e))
return 0
## 主函数调用接口
if __name__ == '__main__':
text = '今天是非常开心的一天,明天也要开心。' #送入的数据
contents = get_content(text) #接收返回的结果
#创建一个json文件,将结果放进文件
f = open('test.json','w')
f.write(contents)
打开 “test.json” 发现只有一行,不美观:
可在线进行 json格式化 ,某些软件会自带此功能,数据量过大时可考虑编码处理,格式化后的数据如下:
上述参数含义可参考:【http://ai.baidu.com/docs#/NLP-Python-SDK/top】
上述只是用词法分析接口做的简单示例,如果想使用句法分析、情感分析等接口,只需更改对应API的URL。
后话
小结:
如果对以上文章有疑问,欢迎在下方留言评论。或者添加QQ进行交流,需要备注自己的信息。(QQ:1329924827)