论坛首页 Java企业应用论坛

关于javaeye2.5的相关文章功能

浏览 2801 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-14  
正好我们最近也在做相同的功能,这里说一下我们的算法,
希望在不影响javaeye保密政策的情况下能够得到robbin大哥或者那位javaeye仁兄的指点。

首先我们自己维护一个行业相关的关键词库

对每一篇文章,我们会把这篇文章和我们的关键词库进行匹配,得到的将是:
哪些关键词出现过,出现过多少次。

每篇文章都有了这样的信息,那么在给定一篇文章的情况下,就可以根据关键词的出现和频率,计算出文章的相关联性了。

这就是我们现在能想到的方法,和lucene道理一致,有一点区别就是不能用lucene默认的分词方法或者一些通用得分词库,必须要用行业相关的,相对关键词比较少的词库,这样的到的相关性才会好!

   发表时间:2008-01-14  
可以用TF/IDF算法,我们就是用这种算法:

http://www.googlechinablog.com/2006/06/blog-post_27.html

这是Google关于TF/IDF算法的介绍

0 请登录后投票
   发表时间:2008-01-14  
算法robbin有说明过:
http://www.iteye.com/post/440835

如果你们用lucene的话,它有自带的api, MoreLikeThis:
http://lucene.apache.org/java/1_9_1/api/org/apache/lucene/search/similar/MoreLikeThis.html

就是基于这个算法实现的,对于你说的行业相关问题,自己写一个分析器配合专业词库进行拆分即可。
0 请登录后投票
   发表时间:2008-01-14  
清楚了,从一个文章里面提取出几个用于查询的关键字,一般都能提取出好多,如何选择几个作为查询相关文章的条件呢?原来TF*IDF就可以了,长见识了。

不过也验证了我们现在的做法也有一定的正确性,因为相关关键词库里面的词的idf都是极高的!

收获最大的是这篇文章给出了权重的算法:

IDF = log(D/Dw)其中D是全部网页数

这个不错!值得借鉴!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics