Hiroki

大部分笔记已经转移到 https://github.com/hschen0712/machine_learning_notes ,QQ:357033150, 欢迎交流

任务五 通用类问题相关度计算实现

任务五 通用类问题相关度计算实现

标签(空格分隔): 一找


任务描述

在百度答案、经验、知道、百科中选择最相关内容

目前优先百度答案,但某些query使用百度答案并非为最相关内容(二胎政策)

实现方案

1.用查询词和标题取交集(都放到一个HashSet里去重过),除以标题和查询词中最短者的长度

2.各类别权重 :答案 1.1,经验 0.7,知道 0.5,百科 0.4
百度图片 0.5(如果查询含有关键词“图片”), -0.5(查询不含关键词“图片”)
百度最新消息 -1.0
3.加上百度的排序信息

score[i] += (10-i)/20.0;

score[i]为第i个url的得分,排在越前分数越高

4.如果url里不含“baidu”,则将标题相似度缩放为原来的0.8,以进一步提高百度页面的权重

5.两个分数加起来,10个网页取分数最大的那个,效果还可以

具体过程

1.在GeneralService加入了searchBaiduAnswer接口
2.在GeneralServiceImpl类中实现了GeneralServiceImpl接口
3.在GeneralServiceClient中替换了searchBaidu方法的逻辑,注释掉了searchBaidu方法,用searchBaiduAnswer替换

	public String searchBaidu(String word) throws Exception {
		GeneralService service = getRandService();
		return service == null ? null : service.searchBaiduAnswer(word);
//		return service == null ? null : service.searchBaidu(word);
	}

4.在svn上提交修改的代码,在xshell登录dev3平台,将项目check out到本地
5.执行mvn clean package,接着会在当前目录生成target目录
6.进入target目录,执行sh stop-general.sh先把RPC服务停掉
7.过大约30秒,执行sh start-general.sh将RPC服务开启
8.输入jps命令查看服务是否正确启动,如果看到GeneralServiceRPCServer了,就说明服务启动完成了

代码

位于com.yeezhao.dolphin.crawler.general下的GeneralServiceImpl.java中的searchBaiduAnswer方法
参数word为搜索关键词,具体流程可以参照上述的实现方案

posted on 2015-12-11 14:34  Hiroki  阅读(236)  评论(0编辑  收藏  举报

导航