3091?1442652665

【任务】 匹配算法改进策略


湛云添加于 2015-08-18 11:04

1.将项目去重时提取的项目别名加入匹配,尝试不对项目名分词,用项目名、项目别名全名匹配。

2.测试匹配结果方法:按照项目热度分阶段抽取n个项目,随机抽取n个项目中每个项目的100到200条数量的匹配结果,人为识别看匹配是否准确,即通过抽样计算准确率;可随机抽取n个帖子,先人为看这些帖子应该和哪些项目关联,然后看匹配结果是否存在这些匹配,即抽样计算召回率。

回复(4)
  • 11?1648889181
    王涛 9年前

    咱们算法匹配处理策略需要修改,必须进一步提高匹配处理的效率,保证匹配处理时间不超过半天的时间,同时不得影响后续数据的流动,尤其是前端展示。

  • 3091?1442652665
    湛云 9年前

    优先级正常 变更为

  • 3091?1442652665
    湛云 9年前

    还有一个问题是,像OSChina中的项目名,很多都是类似“Android开发工具包 Android SDK”这样的,按照上面的方法,这样的项目名我们只能依靠项目别名来匹配。但对于大多数项目都没有提取到项目别名,提取的项目别名中也会存在不少错误的。所以项目去重和别名提取直接影响着后面的匹配。

  • 3091?1442652665
    湛云 9年前

    首先一点,帖子的标题我们肯定是需要分词建索引的,那么如果帖子标题中存在“Android SDK”这样的项目名,分词建索引后是按照“Android”、“SDK”一个一个词存放的,所以用Lucene全文搜索“Android SDK”时没有返回结果。 这个问题的一个解决方案是我们在建索引之前将所有的项目全名加入IK分词器的扩展词典,那么分词时会将这些扩展词分成一个词,即如果如果帖子标题中存在“Android SDK”这样的项目名,分词时会分成“Android SDK”。这样便可以返回结果。但还有问题是,对于新进来的项目,我们没有该项目名的扩展词,那么已经建好的索引就可能是把该项目名分词存放的,那么该项目全名可能用Lucene搜索不到结果。扩展词更新之后只有重建索引才能有效果,如果每进来一个项目就重建一次索引代价太大。 因此考虑另外一个方案是,对项目名和项目别名都分词,但要求项目名分词后的所有词都必须在某个索引文档中全部命中才算匹配上,如“Android SDK”分词后要求“Android”、“SDK”两个词都在帖子标题中出现才视为与该帖子标题匹配。逆向匹配,即用帖子标题匹配项目名时,我正在寻找方法看能不能只留下那些项目名的分词都在帖子标题中出现的结果。但这个方法在用帖子标题匹配项目别名时还存在问题,因为项目别名这个字段可能存放着多个项目别名,对项目别名这个字段建索引后,如果要求某个帖子标题中包含所有项目别名的分词,这样会使得很多结果匹配不上。

0?1470885445
登录后可添加回复
  • 当前状态 新增
  • 选定优先级
  • 指派给 湛云
  • 里程碑 --
  • 开始日期 2015-08-18
  • 结束日期
  • 预计工时(H) 0.00 小时
  • 完成度 0%
  • 关联Commit

© Copyright 2007~2021 国防科技大学Trustie团队 & IntelliDE 湘ICP备 17009477号

问题和建议
还能输入50个字符 提交

加入QQ群

关注微信APP


×