阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 29911阅读
  • 39回复

[免费公测]【阿里云产品公测】开放搜索服务之 智能聊天实现

级别: 研究猿
发帖
3357
云币
4596

需求:基本实现智能聊天! e_-7,5Co  
fs yVu|G  
+1I 7K|M  
最近在开发一款机器人,希望实现基本的聊天功能,词库是有的,但是如果是做完全匹配这个出来的效果很悲催, Y}xM&%  
Z t4q= Lr  
比如词库:你好,回答是:哈哈,很好啊.   {\`y)k 7  
如果问:你好?,这时候词库没有就无法回答。 ;jaugKf  
~Ad2L*5S  
]8R@2L3s  
一直在考虑怎么实现,当看到阿里的opensearch之后就感觉:这个就是我想要的 @-L\c>rqT  
FGPqF;  
w#hg_RK(Jr  
之前没有研究过,只听过搜索引擎,所以我是这块的小白。感觉很高大上,什么分词啊,匹配啊。。。专业名词我就不用了因为我不专业哈哈 J5{  
N p*T[J  
H)h^|A/vO  
按照惯例依然附上一张 实现效果图:
pacD7'1{  
oOc-1C y  
BeLqk3'/  
r`"T{o\e   
GLESngAl  
gG@4MXq.  
u  Fw1%  
%I9f_5BlT8  
~(^pGL3<  
T`pDjT  

$m~&| s  
准备工作 *5 9|  
"g)bNgGV}  
5!S#}=f=  
n_rpT .[  
1   既然是公测然的要申请公测资格这个就不多说了。现在申请还是比较容易的。 Cg?Mk6i  
SOX7  
oemN$g&7  
%WKBd \O  
2   然后就是去看看他的帮助文档了。opensearch的帮助文档相对其他产品的帮助文档要详细很多。包括快速入门,详细说明,相信小白跟着文档就可以慢慢弄明白。 A`JE(cIz3  
pZK 1G  
5M~+F"Hl  
LLT6*up$  
3    既然是java sdk 体验那么肯定就是下载 java sdk了。很简单在下载中心直接下载就可以了。(下载中心在控制台,这个貌似和别的公测产品不一样) ?%su?L  
V=5S=7 Z:  
这里就不贴好多图了。建议去看一下文档非常详细的。 iLJ@oM;2  
uYWgNNxdmo  
2}XRqa.|  
- AgD  

tFc<f7k  
GDC@s<[k  
1fsNQ!vQP  
开始体验 F .Zk};lb  
+jZa A/  
d/F^ez  
l'_]0%o]  
既然是要应用到我的应用,当然要在本地测试一下, _ q1\8y  
opensearch是对外网的,所以来说不止针对阿里云的用户可以使用,只要你有搜索的需求都可以使用 n"aF#HR?0d  
首先当然是新建一个项目,当然你也可以直接在你的项目中直接测试。 X<.l(9$  
然后将sdk导入项目。 ~XP|dn}  
(以上感觉都是都废话哈啊哈 <uS/8MP{  
pZeO dh  
J^CAQfcx  
在做下步之前最好吧这个文档看一下  点击这里   iX{2U lF7  
~Gmt,l! b  
.%7Le|Fb"  
我们会用到的几个类文件就在这里了, oy#(]K3`O  
IO9|o!&>  
CmbgEGIh[a  
其中包括几个主要操作 1goRO  
8<T~AU8'*  
l,]%D  
创建应用,设置应用 xRgdU+,Mj  
以上两个操作建议在控制台直接修改,这样更直观,包括设置主键,多表。搜索项等等。这里参考 官方文档吧。我没有使用sdk常见应用。(用最短的时间实现功能才是我的需求) q78OP}  
- EGZ  
e(a,nZF.  
上传数据,更新数据 w0Nm.=I-   
应用创建完毕肯定要上传数据的,这里阿里提供了一个很好的地方就是根据你设置的数据可是生成几个模板,你可以下载,然后看一下应该组装为什么样子的。 "0Z /|&  
我的数据格式很简单
[^ r8P:Ad  
搜索体验,简单就好!
只有一张主表,三个字段,id主键,wen:问话,用来搜索。 da:回答,用来回答的内容,不会建立索引。
x:~XZX\mwH  
Y DHP-0?  
,aUbB8  
  1. //看到实例化的方法有好几个,但是别的不知道怎么实现
  2.     //这里实例化的时候我使用的是这个方法,因为的是阿里云的账号,从控制台获取 key secret就可以了。剩下两个一个我填空,一个是固定值
  3.     CloudsearchClient cc = new CloudsearchClient(key, secret, null, KeyTypeEnum.ALIYUN);
  4.     
  5.     CloudsearchDoc cd=new CloudsearchDoc("test",cc);//这里两个参数一个是应用名,一个是客户端
  6.     Map fields=new HashMap<String, Object>();
  7.     fields.put("id", "1");
  8.     fields.put("wen", "你好么");
  9.     fields.put("da", "哈哈,很好");
  10.     //以上是按照自己的数据结构添加
  11.     
  12.     
  13.     cd.add(fields);//添加一条数据
  14.     
  15.     //这里需要说的是,可以添加多条,然后一起提交
  16.     
  17.     cd.push("main");//发送数据
D8u`6/^  
上传文档其实很简单,我使用了最简单的实现。 HBvyX`-  
w.aEc}@(^  
&PL=nI\)  
'"\n,3h  
;A@DE@^5w  
5EVypw?]x  
我上传了词库8000多条。 "5k 6FV  
3{~(_  
5NN;Fw+  
v!ai_d^  
ko[d axUB  
搜索 p&Qm[!  
然后就是搜索的实现了 oz.z>+Q  
  1. //看到实例化的方法有好几个,但是别的不知道怎么实现
  2.     //这里实例化的时候我使用的是这个方法,因为的是阿里云的账号,从控制台获取 key secret就可以了。剩下两个一个我填空,一个是固定值
  3.     CloudsearchClient cc = new CloudsearchClient(key, secret, null, KeyTypeEnum.ALIYUN);
  4.     
  5.     String resultJson = "";
  6.     String resultDa = "";
  7.     try {
  8.         CloudsearchSearch search = new CloudsearchSearch(cc);
  9.         List<String> indexList = new ArrayList<String>();
  10.         indexList.add("duihua");// 这里是简历应用的名字
  11.         search.addIndex(indexList);//将应用索引加入,这里是可以加入多个的
  12.         search.setQueryString("default:'你吃饭了么?'");//搜索制定的次
  13.         search.setFormat("json");//返回格式,我还是比较喜欢json
  14.         resultJson = search.search();
  15.     } catch (MalformedURLException e1) {
  16.         e1.printStackTrace();
  17.     } catch (IOException e1) {
  18.         e1.printStackTrace();
  19.     }
  20.     System.out.println(resultJson);
G8__6v~  
只有以上这几行就实现了搜索功能功能。 #"!ga)a%L  
这就基本实现了我的功能是不是好简单。几行代码实现了一个高大上的搜索引擎,以前是想都不敢想的。 7bO>[RQB  
:w5g!G?z  
体验总结 cMT:Ij];  
T}msF  
DjN1EP\Xx  
p.8  
\6/ Gy!0h-  
@J 5TDq @  
当然也是有些问题,就是目前搜索的召回是全匹配,感觉不太好,一下是图
tCO?<QBE  
>0ZG&W9  
'a JE+  
sUc[!S:/  
eHs38X  
+2eri_p  
bfncO[Q,?  
'/ \*l<  
d`flYNg4  
s#a`e]#?  
这里第三个搜索竟然是没有结果的,这这这!!怎么可以,这个问题在论坛已经提问了 连接 ,官方回答是马上就会上这个功能,表示很期待。
*My9r.F5o  
`@1e{ ?$  
_ {#K  
%B#T"=Cx  
Vq-Kl[-|  
弄到这里,难道我的聊天计划要泡汤了!!?》??怎么可以!! $,/E"G`  
(G./P@/[  
3o>JJJ=]  
nu1XT 1q1  
k= 9+"4:  
认真了的查看了一下文档,在群里询问了大拿,搜索语法支持或操作,default:'你吃饭'|'了么'  这种实现就可以实现或的召回!
acke q#  
%vZHHBylu  
/8l@n dZf  
.s4v*bng  
y5aPs z  
T!9AEG  
O9?.J,,mVh  
zvq}7,  
那么问题来了!!  这个分词怎么搞!!阿里云没有专门的分词接口啊!!!只能去去搜!! Vi^vG`L9  
z3L=K9)  
wY%t# [T3  
免费的分词api,百度第一条就是,很幸福的去测试了。可以用大家需要也可以试试 ?<N} Xh  
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 |X XO0  
^`SEmYb;  
SYsO>`/ )  
这个是在sae上部署的。(后来很悲催的发现,竟然有频率限制,稍微快一些就609.。。我去) 只好放弃。 XMZ$AeF@  
Qt>kythi  
J[Mj8ee#  
继续寻找百般努力之下终于又找到一个 Y-1K'VhT  
http://www.xunsearch.com/scws/api.php   Y7q Q` |  
}|;j2'(R  
d&|5Rk ~  
经过测试,这个可以用。。 F[jqJzCz  
`\"<%CCe  
}m^^6h  
然后就是集成到我的机器人了 VrfEa d  
1oiSmW\  
y1}2hT0,  
,ZY\})`p  
c C) <Y#1  
C}3a  ^j  
) ] Ro  
=a=:+q g  
效果你们也看到了机器人的集成就不贴了哈哈。反正是现在实现了功能。 HfH_jnR*  
~}ifwm'7 a  
ONpvx5'#  
F,VWi$Po\N  
pnx^a}|px  
另外在体验的过程中,感觉有个地方很是高大上,需要一定的基础才能搞定,那就是排序的算法问题, 8;<aco/62  
opensearch支持复杂的算法,实现你不同的排序需求,
"x;FE<I  
%1#|>^  
Uj 4HVd  
目前这块还没有搞定,感觉需要一个慢慢的了解过程,不过目前的默认模式已经基本满足我的需求。 m*iSW]&  
t(PA+~sIp  
*>[ q*SF  
0(u}z  
<Pe'&u  
ZR|s]'  
/>:$"+gKo  
#pW!(tfN^a  
建议&意见 RZq_}-P,.c  
FGc#_4SiL  
VE/m|3%t  
|cuKC \  
wKfq'W{  
@Ss W  
/GJL&RMx  
1,关于非全部匹配的召回,希望可以尽快上线。
2,是否可以开放分词接口,
3,排序算法上是否可以有更多的文档给予一定的讲解,很多人这方面还是比较弱的
4,文档的管理不知道是否可以做一个展示,比如我有8000调数据,是否可以有个地方让我看到都添加了什么数据。
5,opensearch 应该是支持外部网站使用的,但是在文档上没有体现,我在实例化的时候就出现了一些问题,建议这块做一些说明。
Ywt9^M|z;  
:TKx>~`  
A/lznBHR  
Q (gA:aQ  
*'M+oi  
ER&\2,fZ  
G i(  
A4d3hF~l`  
6q0)/|,@  
d0%Wz5Np  
[ 此帖被啊里新人在2014-10-22 12:24重新编辑 ]
本帖最近评分记录: 2 条评分 云币 +21
morenocjm 云币 +1 帮顶 2014-10-28
qiujin2012 云币 +20 聪明的小机器人,支持他,就给他投票 http://bbs.aliyun.com/read/178799.html 2014-10-21
级别: 研究猿
发帖
3357
云币
4596

只看该作者 沙发  发表于: 2014-10-21
Re:【阿里云产品公测】开放搜索服务 opensearch java jdk 另类体验之 机器人 ..
快来阿里云官方群体验小机器人吧 阿里云•云上梦工厂 99206500
[ 此帖被啊里新人在2014-10-21 18:48重新编辑 ]
级别: 研究猿
发帖
3357
云币
4596

只看该作者 板凳  发表于: 2014-10-21
Re:【阿里云产品公测】开放搜索服务 opensearch java jdk 另类体验之 机器人 ..
占楼补充
级别: 研究猿
发帖
3357
云币
4596

只看该作者 地板  发表于: 2014-10-21
Re:【阿里云产品公测】开放搜索服务 opensearch java jdk 应用体验之 机器人 ..
快上墙,快投票哈啊哈
发帖
994
云币
1363
只看该作者 4楼 发表于: 2014-10-21
Re:【阿里云产品公测】开放搜索服务 opensearch java jdk 应用体验之 机器人 ..
聪明的小机器人,支持他,就给他投票http://bbs.aliyun.com/read/178799.html
〉〉论坛经验-《阿里云服务器从入门到精通》精华汇总
http://bbs.aliyun.com/read/135619.html?amp;displayMode=1#tpc
发帖
337
云币
538
只看该作者 5楼 发表于: 2014-10-21
Re:【阿里云产品公测】开放搜索服务 opensearch java jdk 应用体验之 机器人 ..
1,关于非全部匹配的召回,希望可以尽快上线。 吧 %H=^U8WB  
---已经排期,预计12月左右上线。 \r- v]]_<d  
>,c'Z<TM  
2,是否可以开放分词接口; /7K7o8g  
---以后会考虑把分词结果返回给用户,这样应该可以实现你的功能吧。单独的api接口暂时没计划,这部分不是opensearch的方向; ]t_ Wl1*|  
e}2[g  
3,排序算法上是否可以有更多的文档给予一定的讲解,很多人这方面还是比较弱的 Fuo.8  
---目前的文档已经有详细的说明和各个feature的用户及适用场景,我理解你说的应该是怎么跟实际场景做对应吧,这部分我们会加强,你可以看下导入模板中是如何设计的,应该能明白。 a#+;BH 1  
fTd":F  
4,文档的管理不知道是否可以做一个展示,比如我有8000调数据,是否可以有个地方让我看到都添加了什么数据。 Dx.hM[  
---是说把目前所有的文档主键列出来吗?这个不是opensearch的重点呢,如果数据量非常大的话,这个功能是不太现实的。 j&`D{z-c~  
yUg'^SEbLk  
5,opensearch 应该是支持外部网站使用的,但是在文档上没有体现,我在实例化的时候就出现了一些问题,建议这块做一些说明。 ;tfGhHpQn  
---支持外部网站使用这个是什么意思呢?
本帖最近评分记录: 1 条评分 云币 +1
啊里新人 云币 +1 你是我偶像 2014-11-08
级别: 攻城狮
发帖
747
云币
666
只看该作者 6楼 发表于: 2014-10-21
Re:【阿里云产品公测】开放搜索服务 opensearch java jdk 应用体验之 机器人 ..
逐字逐句地看完这个帖子以后,我的心久久不能平静,震撼啊!为什么会有如此好的帖子!我纵横网络BBS多年,自以为再也不会有任何帖子能打动我,没想到今 天看到了如此精妙绝伦的这样一篇帖子!楼主,是你让我深深地理解了“人外有人,天外有天”这句话。谢谢侬!在看完这帖子以后,我没有立即回复,因为我生怕 我庸俗不堪的回复会玷污了这网上少有的帖子。但是我还是回复了,因为觉得如果不能在如此精彩的帖子后面留下自己的网名,那我死也不会瞑目的!能够在如此精 彩的帖子后面留下自己的网名是多么骄傲的一件事啊!楼主,请原谅我的自私!我知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪 的,所以我只想说一句:您的帖子太好看了!我愿意一辈子看下去!这篇帖子构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平 淡中显示出不凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。正所谓:“一马奔腾,射雕引弓,天地都在我心中!”楼主真不愧为无厘界新一 代的开山怪!本来我已经对这个社区失望了,觉得这个社区没有前途了,心里充满了悲哀。但是看了你的这个帖子,又让我对社区产生了希望。是你让我的心里重新 燃起希望之火,是你让我的心死灰复燃,是你拯救了我一颗拔凉拔凉的心!本来我决定不在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回 的!这是百年难得一见的好贴啊!苍天有眼啊,让我在有生之年得以观得如此精彩绝伦的帖子!最后我想说的是opensearch 真的是高大上啊 cd)}a_9  
级别: 研究猿
发帖
3357
云币
4596

只看该作者 7楼 发表于: 2014-10-22
回 5楼(zhengmay) 的帖子
感谢一一回答, T!gq Z  
0vdnM8N2  
如果是产品定位问题 那就没法了。 v$bR&bCT  
'2c4 4F)i  
&6@e9ff0  
最后那个,我在sdk源码中看到对client的实例化还有别的方式,不是使用key,secret 方式, }}~ t! /x  
R=s^bYdoy  
并且我实例化的时候最后还添加了一个阿里云的标志,固定的,既然添加这个,那么就是肯定还有别的参数。 那么不就是还有别的实例化方式么? =s[P =dU  
(1?k_!)T  
我的理解正确么
级别: 研究猿
发帖
3357
云币
4596

只看该作者 8楼 发表于: 2014-10-22
回 6楼(trcher) 的帖子
我是一字一句的看完了你的回复。。。。
发帖
994
云币
1363
只看该作者 9楼 发表于: 2014-10-22
已推广至阿里云微博 8x jJ  
互动地址:http://weibo.com/1644971875/BsMbsdqcc?from=page_1006061644971875_&type=comment
〉〉论坛经验-《阿里云服务器从入门到精通》精华汇总
http://bbs.aliyun.com/read/135619.html?amp;displayMode=1#tpc
级别: 新人
发帖
10
云币
27
只看该作者 10楼 发表于: 2014-10-24
Re【阿里云产品公测】开放搜索服务之智能聊天实现
如果说匹配不到的关键词,建议可以引用一些云词库,比如小I,小黄鸡之类,或者开启自动学习。学习可以自主学习 也可以自动收集词库,然后管理员来审核
级别: 研究猿
发帖
3357
云币
4596

只看该作者 11楼 发表于: 2014-10-25
回 10楼(邪少) 的帖子
同意,有时间搞一下~也欢迎你来群里体验
级别: 研究猿
发帖
3357
云币
4596

只看该作者 12楼 发表于: 2014-10-27
我是来赚云币的
级别: 架构狮
发帖
1438
云币
1888

只看该作者 13楼 发表于: 2014-10-27
    
本帖最近评分记录: 1 条评分 云币 +1
啊里新人 云币 +1 劫富济贫 2014-11-02
级别: 菜鸟
发帖
33
云币
7
只看该作者 14楼 发表于: 2014-10-27
Re【阿里云产品公测】开放搜索服务之智能聊天实现
支持支持!
本帖最近评分记录: 1 条评分 云币 +1
啊里新人 云币 +1 信章鱼 猛加分 2014-11-02
发表主题 回复主题
« 返回列表
«123»
共3页
上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)