首页 新闻 赞助 找找看

百度知道是怎么实现“其他类似问题”这个功能的?

0
悬赏园豆:100 [已解决问题] 解决于 2013-12-28 17:17

现在要做的项目里也会有问答模块,所以参考了一下百度知道,发现它有个“

其他类似问题”,不明白百度是通过什么算法来找出类似问题的,求思路……

枫叶飘零黄昏血的主页 枫叶飘零黄昏血 | 初学一级 | 园豆:11
提问于:2013-12-27 18:25
< >
分享
最佳答案
0

接楼上 提取关键字 可以用盘古分词 使用也比较简单 园里有好多关于Lucene.Net和盘古分词的文章

收获园豆:50
秋壶冰月 | 大侠五级 |园豆:5903 | 2013-12-27 21:47
其他回答(6)
0

百度是通过什么算法实现的,这个估计得问百度的人了。如果你做的不是很大型公共问答系统,无非就是让提问者对自己的问题选择分类以及确定不同关键词。然后你要找出类似的问题,当然就在同样分类下有类似关键字的问题中模糊查询。如果要做到更细腻。那还得有正则或者其他什么算法,筛选出问题文本内容匹配程度较高的问题。一层一层下来降低搜索范围。最后确定一些类似问题。当然这个没法完全准确的。你看百度知道也没做到完全准确的,有时候出来的类似的问题基本和提问者的问题没关系。

这只是个狠狠简单的思路罢了,很多细节做起来也不是那么容易。仅供参考

收获园豆:5
大芝麻 | 园豆:4 (初学一级) | 2013-12-27 18:39
0

一楼说得对。其实还是根据你的问题,判断问题的分类。搜索该分类下的与你提问的关键字吻合的问题。

具体的,百度工程师吧

我经常问问题,回答问题。

对于百度的这个查看其他类似问题这个功能,和你输入标题后自动分类的功能我觉得做的挺好的

有时候我输入的问题很是模糊,也没有什么技术名词。但是百度就是能给我分到软件下,虽然语言不会对。但是就这点就觉得很厉害。

收获园豆:5
share/java | 园豆:191 (初学一级) | 2013-12-27 18:45
0

说下我的思路吧 

1 提问通常都是会分类,所以第一次就可以大致确定,所提出的问题属于哪一类,

2 提取问题关键字 比如 "C#如何使用反射" 通过算法去除不相关字段“如何” "使用",最后只留下 "C# 反射" 再根据这个关键词去已有题库中去匹配这样得到的结果都是与提出的问题相关的贴子了。 这里有难度的就是提取关键字的算法了。

收获园豆:25
Zery | 园豆:6151 (大侠五级) | 2013-12-27 21:24
0

分词工具,然后通过这些工具计算出命中率。。

收获园豆:5
angelshelter | 园豆:9887 (大侠五级) | 2013-12-27 22:03
0

对的 使用分词,搜索引擎

收获园豆:5
贺臣 | 园豆:307 (菜鸟二级) | 2013-12-27 22:23
0

分词后,对问题库中的问题进行匹配度分析,找出最高的几条匹配度数据进行展示~

收获园豆:5
幻天芒 | 园豆:37175 (高人七级) | 2013-12-28 10:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册