短文本相似度计算服务能够提供不同短文本之间相似度的计算,输出的相似度是一个介于0到1之间的实数值,越大则相似度越高。相似度数值建议在一组数据中进行整体比对选用,输出数值越大,则代表语义相似程度相对越高。
最近有一个项目,需要用到短文本相似度的比较,一时间没有头绪,不知从何弄起,只有百度了。百度了一下后恍然大悟,原来百度AI早已提供了接口,还有各种SDK,这下瞬间就解决了我的问题。这里叨叨几句,其实网上还有其他的文章都是讲算法的,说的也很复杂,但是我这是需要立即应用在项目中也没时间去研究那些算法,还是感觉百度AI的这个接口比较快,能迅速上手,看到效果。
先来说一下百度AI开放平台,我们要先从这里开始:
首先登录你的百度账号,登录进去后,你会看到很多的百度AI的东东,比如目前最流行的“语音技术”,“人脸识别”,“自然语言”等等,如下图:
但是这里我们还是根据自己的项目来。我这里进了“自然语言”的处理。点进去后,你会惊奇地发现:
对,你没看错,这些都是免费使用,我这个项目需要用到的就是下面的“短文本相似度”的API接口。然后我们只需要创建相应的应用即可。创建好后,即可获得应用的AppID,API Key,Secret Key。有了这几样,再看SDK文档,就可以开始用起来了,这个就不说了吧,看文档大家都会的。
完成项目后,我又做了个短文本相似度的在线查询:
输入两个短文本,即可比较短文本的相似度。
下面是一些参考的代码:
require_once 'AipNlp.php';
header("Content-Type: text/html;charset=utf-8");
// 你的 APPID AK SK,申请了应用后,这些都会有,依次填入即可;
const APP_ID = '';
const API_KEY = '';
const SECRET_KEY = '';
$text1 = trim($_POST['aitext1']);
$text2 = trim($_POST['aitext2']);
$client = new AipNlp(APP_ID, API_KEY, SECRET_KEY);
// 如果有可选参数
$options = array();
$options["model"] = "CNN";
// 带参数调用短文本相似度
$result = $client->simnet($text1, $text2, $options);
$successRate = floor($result['score']*10000)/10000*100;
//这里是相似度的百分百
echo "地址1与地址2的相似度为:".$successRate.'%';