一种是基于线性空间最长公共子序列短文本相似性的算法,自然语言的表达的顺序对计算结果影响有时会比较大,甚至一个天下一个地下;
一种是基于简易分词的余弦相似性算法,自然表达的顺序对计算结果无影响;
一种是基于百度自然语言接口的短文本相似性算法,自然表达的顺序对计算结果有影响,但基本偏差不大。
直接上图,说明下,第一个数字为线性空间最长公共子序列的算法结果,第二个结果为余弦相似性算法结果,第三个是百度接口的算法结果。
”一车装多少棵树“与“多少棵树装一车”这样的表述表达的意思应该一样,但基于最长公共子序列的算法偏差相当大,百度与余弦定理在这个案例中胜出,高于余弦10个百分点。
将线性最长公共子序列算法、余弦定理相似度用于公众号关键词的回复查询,截图如下,(因受token跨域限制,加上本人技术太菜,暂没实现百度自然语言接口用到公众号中,群聊关键字已对接)
上述这个问题的三种算法取值结果如图
到这里看,各有优劣,但好像百度更胜在短文本的相似性判断上,更加稳定准确,接下来再看关于发票的这个
差一个字的情况,余弦的结果是百分之八十,而百度自然语言才百分之七十七,现在我也不敢断言到底是哪个好了
牛B一下,群聊关键字使用百度自然语言短文本相似度的接口算法,实现了设置匹配区间值后,随机推送符合区间值的3条 答案,只是换行\n,在群聊窗口未起效果,所以一行展示了
补记:早在一个月前发布的这个 https://x1.php168.com/bbs/show-25687.html ,就是基于线性空间最长公共子序列的短文本相似性算法,后来在实际训练过程中,发现匹配度不灵活,才有了后来的百度自然语言相似度使用研究,百度自然语言短文本相似度成功后,发现用到公众号里不行,百度技术给出可能是跨域限制,因为百度token不接受跨域调用,最后还没结果
等不起百度啦,自己搞余弦相似度判断使用吧,
一句话,如果不使用百度的接口,或者使用也不算的,实现这个不需要依赖第三方,