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


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

    标签(空格分隔): 一找


    任务描述

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

    目前优先百度答案,但某些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为搜索关键词,具体流程可以参照上述的实现方案

  • 相关阅读:
    10 个超棒的 JavaScript 简写技巧
    不掌握这些坑,你敢用BigDecimal吗?
    Java 8之Lambda表达式的写法套路
    设计好接口的36个锦囊
    喜提JDK的BUG一枚!多线程的情况下请谨慎使用这个类的stream遍历。
    Java 设计模式
    浅谈 ThreadLocal 的实际运用
    JavaScript设计模式es6(23种)
    JAVA中简单的for循环竟有这么多坑,但愿你没踩过
    2.24 Go之信息管理系统
  • 原文地址:https://www.cnblogs.com/wacc/p/5038949.html
Copyright © 2020-2023  润新知