用全文检索回实现JavaEye的垂直频道
用全文检索来实现JavaEye的垂直频道
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垂直频道就做好了。
垂直频道并不是产生内容的频道,只是多了一个信息的输出形式,不需要推广;
知识库频道近阶段不打算推广,细水长流;
最近打算推广问答功能;
最近会不断更新一些功能,然后会专门下功夫推广的。
我也是这样做的,只不过tf/idf是用来计算出向量在空间的位置,计算出位置后再使用vsm就可以得到类别和待分类数据的匹配度了
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垂直频道就做好了。
1 楼
johnnyhg
2008-05-27
最近JavaEye3上线的新功能不少,有wiki、问答。但是感觉都不是很火。现在出的垂直频道是第三个了。
给robbin的建议是,功能不要太多了,上一个新功能然后让大家真正接收需要一个过程的,最好有一些引导。
给robbin的建议是,功能不要太多了,上一个新功能然后让大家真正接收需要一个过程的,最好有一些引导。
2 楼
woailuo
2008-05-27
不错
3 楼
robbin
2008-05-27
引用
最近JavaEye3上线的新功能不少,有wiki、问答。但是感觉都不是很火。现在出的垂直频道是第三个了。
给robbin的建议是,功能不要太多了,上一个新功能然后让大家真正接收需要一个过程的,最好有一些引导。
给robbin的建议是,功能不要太多了,上一个新功能然后让大家真正接收需要一个过程的,最好有一些引导。
垂直频道并不是产生内容的频道,只是多了一个信息的输出形式,不需要推广;
知识库频道近阶段不打算推广,细水长流;
最近打算推广问答功能;
最近会不断更新一些功能,然后会专门下功夫推广的。
4 楼
zhanjia
2008-05-27
自动分类 的想法挺不错的,但有时会分类到用户所不想发表的类别中,发表完毕最好能提示说要放到哪里,让用户确定...
请问JavaEye采用什么检索技术,Lucene吗? 结合Compass? Hibernate Search?...
请问JavaEye采用什么检索技术,Lucene吗? 结合Compass? Hibernate Search?...
5 楼
isky
2008-05-27
总体不错
6 楼
comeon
2008-05-27
挺好的. 不知道在oracle分类下面, OTN 最新文章, 是怎么从ORACLE网站抽取过来的?
7 楼
kuqin
2008-05-28
问答系统做的还太弱了,一大堆人下面说,跟论坛没有什么差别
8 楼
kooen.chen
2008-05-28
个人认为对与搜索的技术来说:如果是javaeye可以着重研究下中文分词和索引建立,
中文分词可以采用优化的双数组tire ,对应于索引可以查考下lucene 对于在内存和硬盘建立索引的比例可以参考下二八原理,估计性能会有很大的改善。
中文分词可以采用优化的双数组tire ,对应于索引可以查考下lucene 对于在内存和硬盘建立索引的比例可以参考下二八原理,估计性能会有很大的改善。
9 楼
wutao8818
2008-05-28
全文检索出来的结果直接展示在页面上是有问题的。 java频道里的 Java 博客 栏目里竟然出现了 Asp.net中防止用户多次登录的方法 这样的文章
10 楼
JavaInActoin
2008-05-28
用全文搜索的方式来确定分类不大准确吧。
用户在发布信息时,强制填上几个信息分类属性不就行了吗,根据这些属性产生多维甚至是自定义的信息聚合方式。
用户在发布信息时,强制填上几个信息分类属性不就行了吗,根据这些属性产生多维甚至是自定义的信息聚合方式。
11 楼
ericxu131
2008-05-29
javaeye的功能越来越好用了,通过javaeye上的文章和交流,我收获了很多有价值的东西,感谢robbin!希望javaeye能一直保持下去越开越好。
12 楼
linliangyi2007
2008-05-29
关注javaeye垂直搜索
13 楼
ahuaxuan
2008-05-30
引用
我们可以根据一篇文章当中的索引词汇通过TF/IDF算法,查找这篇文章相关性最高的其他文章,这就是相关文章推荐的实现方式。基于TF/IDF算法我们可以更进一步,用已知分类的文章作为语料库进行训练,提取该分类当中最重要的关键词汇,并且给每个词汇标记不同的权重。建立这个关键词汇分类表以后,我们就可以用它来作为内容自动分类的标准,从而让程序可以自动挑选不同分类的文章,就这样,JavaEye垂直频道就做好了。
我也是这样做的,只不过tf/idf是用来计算出向量在空间的位置,计算出位置后再使用vsm就可以得到类别和待分类数据的匹配度了
14 楼
ahuaxuan
2008-05-30
我很想问一下robbin大哥,你是用ruby来做这个分类的吗
15 楼
beyondsanli
2008-06-24
回:
用全文搜索的方式来确定分类不大准确吧。
用户在发布信息时,强制填上几个信息分类属性不就行了吗,根据这些属性产生多维甚至是自定义的信息聚合方式。
robbin 说是解决:增加发贴功能的复杂度
回:
自动分类 的想法挺不错的,但有时会分类到用户所不想发表的类别中,发表完毕最好能提示说要放到哪里,让用户确定...
这个我想robbin可以参考下,避免出现太多得到不是相关内容的问题!
用全文搜索的方式来确定分类不大准确吧。
用户在发布信息时,强制填上几个信息分类属性不就行了吗,根据这些属性产生多维甚至是自定义的信息聚合方式。
robbin 说是解决:增加发贴功能的复杂度
回:
自动分类 的想法挺不错的,但有时会分类到用户所不想发表的类别中,发表完毕最好能提示说要放到哪里,让用户确定...
这个我想robbin可以参考下,避免出现太多得到不是相关内容的问题!