百度AI开放平台- API实战调用
一、前言
首先说一下项目需求。
两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-100条左右,不会更多,只会更少。最终的需求是:从这些匹配结果中找到相似度较高的那些条目。
自己编写算法来实现是一个很大的工程,涉及到自然语言处理的一些方面,比较复杂。于是上网搜了搜,发现百度开放平台的自然语言处理可以免费调用,而且每天有10W的调用次数,对我的小项目来说正好满足。但是,在往下翻的时候,发现百度给了提示,不保证并发,也就是说,在我调用的时候很容易出现返回错误结果的情况,这部分需要进行适当的处理。
既然是实战,我们从头开始说。
二、准备工作
从哪里开始说呢,从在百度开放平台创建一个应用说起。创建应用之后(下面的开发环境是PHP,所以在选择应用使用类型的时候填写HTML),会有应用的ID,key,secret。后两个参数接下来会有用。
我使用的是短文本相似度API,其他类型的功能与此基本一模一样(不接受抬杠)。先去看开发文档http://ai.baidu.com/docs#/NLP-API/top可以看到提供了两种调用方式,这里我们以调用方式一为例-向API服务地址使用POST发送请求,这种方式来实现上述功能。看描述,需要一个参数叫做access_token,原文也提供了其获取方式。以获取短文本相似度的access_token为例子:
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=MzRN******Txgske3QRf5Yj69&client_secret=a30CAbc*****bDuuGLdHLeyRaZk1tq5&
其中一共涉及三个参数,第一个固定为client_credentials不要改变。
第二第三个分别为前面获取到的key,secret。
把这一串地址放在地址栏中,回车即可返回json格式的字符串,找到access_token复制存在一个文件中,留着备用。
注意:复制地址的时候,中间可能会带有空格,一定要删去。特别是复制开发文档中的那段代码的时候,带有空格,是得不到返