欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用全文检索来实现JavaEye的垂直频道

程序员文章站 2022-03-09 10:59:06
...
JavaEye网站给大家提供了多种多样的交流方式:新闻、论坛、博客、问答和知识库等等,但是如果你只对Java感兴趣,或者只对Python感兴趣的话,却找不到相应的Java专区或者Python专区,不得不自己浏览网站的每个频道去寻找相关内容。这说明:除了用交流形式来横向组织网站内容以外,JavaEye还应该提供一种按照技术门类纵向组织内容的方式:这就是JavaEye的垂直频道。

目前,JavaEye的垂直频道beta版本已经上线公测了,大家有兴趣的话可以访问:

http://java.iteye.com

现在我们只是提供了Java、Ruby、AJAX和Agile等几个垂直频道,这些垂直频道的内容都是从网站各个频道自动提取出来的。也许大家会问,JavaEye的垂直频道是怎么实现的呢?答案就是全文检索

全文检索在web2.0网站中起到的作用非常大,除了大家都知道的全站搜索功能之外,全文检索在很多方面都可以发挥巨大的作用:

一、全文检索可以用来实现相关文章推荐

比方说JavaEye新闻就有相关文章推荐,JavaEye论坛帖子也有相关文章推荐,此外JavaEye问答频道问题也有相关问题,也许你提问一个问题以后,并不需要别人回答,已经从相关文章当中获得了想要的答案了。

二、全文检索可以用来实现内容自动分类

比方说JavaEye博客频道首页的的内容分类,如果要求用户发表博客文章的时候手工指定自己文章的分类固然可以,但是会增加发贴功能的复杂度,让用户选择一大堆框框才能发贴实在不是很好的用户体验。利用技术手段来改善用户体验正是优秀程序员的价值体现,于是我们就是用全文检索来实现内容的自动分类。而这一点也被用在我们即将推出的JavaEye垂直频道上。

三、全文检索可以用来实现寻找好友功能

JavaEye上面的每个会员都会留下自己的轨迹:发贴,写博客,评论,对不同新闻和博客的投票,所有这些行为都可以用全文检索来建立相关度,从而系统可以得知哪些JavaEye用户可能和你有相似的行为,而这正是SNS的基础功能之一。

JavaEye的垂直频道正是利用全文检索来内容自动分类的。具体做法如下:

我们可以根据一篇文章当中的索引词汇通过TF/IDF算法,查找这篇文章相关性最高的其他文章,这就是相关文章推荐的实现方式。基于TF/IDF算法我们可以更进一步,用已知分类的文章作为语料库进行训练,提取该分类当中最重要的关键词汇,并且给每个词汇标记不同的权重。建立这个关键词汇分类表以后,我们就可以用它来作为内容自动分类的标准,从而让程序可以自动挑选不同分类的文章,就这样,JavaEye垂直频道就做好了。