8
回答
查询与一篇文章相关的其他文章,这一功能的实现原理。
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
比如,像OSC查看新闻时,会有的相关资讯,或者查看一个开源软件,旁边也会显示相关的其他开源软件,这种功能,是怎么实现的呢?
<无标签>
举报
Genus
发帖于6年前 8回/317阅
共有8个答案 最后回答: 6年前

另: 关于你说的自动提取关键字,其实就是分词. Lucene已经标配了SmartChinese分词器.

一般的应用都够了. 还有更好的比如:IK Analyzer. Paoding Analysis(好象不怎么更新了.目前还不支持Lucene 3.x版本)

--- 共有 3 条评论 ---
Andre.Z回复 @Grrrr : 就像我前面说的,关键字一样,顺序也一样,但是连起来就不一样的,可以完全是2个title,这种怎么换算法也没那么准确的。还是自己指定tag的准确啊。OSC右边的类似话题应该是lucene做的,开源软件页面那个,应该是自定义tag关联。看看区别就知道了。 6年前 回复
Grrrr回复 @Andre.Z : 所以说Lucene提供好了接口, 不喜欢原装的自己可以改造. 话说回来, Lucene好象是在3版本后提供的这个功能.还不完善,所以本人觉得是个鸡肋.... 就像Mybatis标配了一个Cache框架.....真是汗~~~~ 6年前 回复
Andre.ZLucene的这种匹配,有的结果会很让人吐血的,我做过,分词后的组合情况会有很多种,同样的关键词,顺序不一样,东西就完全不一样,会导致根本不相关的东西出现。两个title,出现一样的关键字,但是是完全不一样的东西。 6年前 回复

引用来自“鉴客”的答案

之前有osc介绍过,根据新闻关联的软件或者是标题中提取关键字,然后进行搜索得来的
如何实现自动提取关键字呢?

用Lucene吧. 你说的这功能已经完全实现好了.我不知道OSchina也是否这么做的.

一般一篇文章把title提取出来.做分词,并将boost值设置的比较高. 并将这些词保存在Lucene的index文件里面. Lucene会自动完成相似性的匹配工作. 来推荐出其他的文章.

你可以看这篇文章右面的"类似的话题". 基本都有相同的关键字"文章","一篇","查询".而出现次数最多的会放在前面.

Lucene的相似算法是 余弦相似度 Cosine-based Similarity.

当然你可以自己去设计自己的相似算法.太多了. 推荐给你2个文章:

http://blog.csdn.net/v_july_v/article/details/7184318 推荐引擎算法

http://www.cnblogs.com/jianjunyue/archive/2011/04/26/2029454.html lucene计算文本相似度算法

引用来自“Grrrr”的答案

另: 关于你说的自动提取关键字,其实就是分词. Lucene已经标配了SmartChinese分词器.

一般的应用都够了. 还有更好的比如:IK Analyzer. Paoding Analysis(好象不怎么更新了.目前还不支持Lucene 3.x版本)

谢谢,看来得好好学学lucene。

 

顶部