做者:阿里云用户啊里新人php
需求:基本实现智能聊天! html
最近在开发一款机器人,但愿实现基本的聊天功能,词库是有的,可是若是是作彻底匹配这个出来的效果很悲催, java
好比词库:你好,回答是:哈哈,很好啊. 算法
若是问:你好?,这时候词库没有就没法回答。 json
一直在考虑怎么实现,当看到阿里的opensearch以后就感受:这个就是我想要的 api
以前没有研究过,只听过搜索引擎,因此我是这块的小白。感受很高大上,什么分词啊,匹配啊。。。专业名词我就不用了由于我不专业哈哈 数据结构
按照惯例依然附上一张 实现效果图:app
准备工做 测试
1 既然是公测天然的要申请公测资格这个就很少说了。如今申请仍是比较容易的。 ui
2 而后就是去看看他的帮助文档了。opensearch的帮助文档相对其余产品的帮助文档要详细不少。包括快速入门,详细说明,相信小白跟着文档就能够慢慢弄明白。
3 既然是java sdk 体验那么确定就是下载 java sdk了。很简单在下载中心直接下载就能够了。(下载中心在控制台,这个貌似和别的公测产品不同)
这里就不贴好多图了。建议去看一下文档很是详细的。
开始体验
既然是要应用到个人应用,固然要在本地测试一下,
opensearch是对外网的,因此来讲不止针对阿里云的用户可使用,只要你有搜索的需求均可以使用
首先固然是新建一个项目,固然你也能够直接在你的项目中直接测试。
而后将sdk导入项目。
(以上感受都是都废话哈啊哈)
在作下步以前最好吧这个文档看一下 点击这里
咱们会用到的几个类文件就在这里了,
其中包括几个主要操做,
建立应用,设置应用
以上两个操做建议在控制台直接修改,这样更直观,包括设置主键,多表。搜索项等等。这里参考 官方文档吧。我没有使用sdk常见应用。(用最短的时间实现功能才是个人需求)
上传数据,更新数据
应用建立完毕确定要上传数据的,这里阿里提供了一个很好的地方就是根据你设置的数据但是生成几个模板,你能够下载,而后看一下应该组装为何样子的。
个人数据格式很简单
搜索体验,简单就好!
只有一张主表,三个字段,id主键,wen:问话,用来搜索。 da:回答,用来回答的内容,不会创建索引。
上传文档其实很简单,我使用了最简单的实现。
我上传了词库8000多条。
搜索
而后就是搜索的实现了
只有以上这几行就实现了搜索功能功能。
这就基本实现了个人功能是否是好简单。几行代码实现了一个高大上的搜索引擎,之前是想都不敢想的。
体验总结
固然也是有些问题,就是目前搜索的召回是全匹配,感受不太好,一下是图
这里第三个搜索居然是没有结果的,这这这!!怎么能够,这个问题在论坛已经提问了 链接 ,官方回答是立刻就会上这个功能,表示很期待。
弄到这里,难道个人聊天计划要泡汤了!!?》??怎么能够!!
认真了的查看了一下文档,在群里询问了大拿,搜索语法支持或操做,default:'你吃饭'|'了么' 这种实现就能够实现或的召回!
那么问题来了!! 这个分词怎么搞!!阿里云没有专门的分词接口啊!!!只能去去搜!!
免费的分词api,百度第一条就是,很幸福的去测试了。能够用你们须要也能够试试
http://5.tbip.sinaapp.com/api.php?str=%E6%98%8E%E5%A4%A9%E6%98%9F%E6%9C%9F%E5%A4%A9&type=str
这个是在sae上部署的。(后来很悲催的发现,居然有频率限制,稍微快一些就609.。。我去) 只好放弃。
继续寻找百般努力之下终于又找到一个
http://www.xunsearch.com/scws/api.php
通过测试,这个能够用。。
而后就是集成到个人机器人了
效果大家也看到了机器人的集成就不贴了哈哈。反正是如今实现了功能。
另外在体验的过程当中,感受有个地方非常高大上,须要必定的基础才能搞定,那就是排序的算法问题,
opensearch支持复杂的算法,实现你不一样的排序需求,
目前这块尚未搞定,感受须要一个慢慢的了解过程,不过目前的默认模式已经基本知足个人需求。
建议&意见
1,关于非所有匹配的召回,但愿能够尽快上线。
---已经排期,预计12月左右上线。
2,是否能够开放分词接口,
---之后会考虑把分词结果返回给用户,这样应该能够实现你的功能吧。
3,排序算法上是否能够有更多的文档给予必定的讲解,不少人这方面仍是比较弱的
---目前的文档已经有详细的说明和各个feature的用户及适用场景,我理解你说的应该是怎么跟实际场景作对应吧,这部分咱们会增强,你能够看下导入模板中是如何设计的,应该能明白。
原文地址:http://bbs.aliyun.com/read/179921.html
参加活动:http://promotion.aliyun.com/act/aliyun/freebeta/