`
robbin
  • 浏览: 4820539 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
377a9ecd-1ea1-34ac-9530-9daa53bb2a7b
robbin谈管理
浏览量:137001
社区版块
存档分类
最新评论

用全文检索来实现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垂直频道就做好了。







31
9
分享到:
评论
15 楼 beyondsanli 2008-06-24  
回:
用全文搜索的方式来确定分类不大准确吧。
用户在发布信息时,强制填上几个信息分类属性不就行了吗,根据这些属性产生多维甚至是自定义的信息聚合方式。

robbin 说是解决:增加发贴功能的复杂度
回:
自动分类 的想法挺不错的,但有时会分类到用户所不想发表的类别中,发表完毕最好能提示说要放到哪里,让用户确定...
这个我想robbin可以参考下,避免出现太多得到不是相关内容的问题!


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


我也是这样做的,只不过tf/idf是用来计算出向量在空间的位置,计算出位置后再使用vsm就可以得到类别和待分类数据的匹配度了
12 楼 linliangyi2007 2008-05-29  
关注javaeye垂直搜索
11 楼 ericxu131 2008-05-29  
javaeye的功能越来越好用了,通过javaeye上的文章和交流,我收获了很多有价值的东西,感谢robbin!希望javaeye能一直保持下去越开越好。
10 楼 JavaInActoin 2008-05-28  
用全文搜索的方式来确定分类不大准确吧。
用户在发布信息时,强制填上几个信息分类属性不就行了吗,根据这些属性产生多维甚至是自定义的信息聚合方式。
9 楼 wutao8818 2008-05-28  
全文检索出来的结果直接展示在页面上是有问题的。 java频道里的 Java 博客 栏目里竟然出现了 Asp.net中防止用户多次登录的方法 这样的文章
8 楼 kooen.chen 2008-05-28  
个人认为对与搜索的技术来说:如果是javaeye可以着重研究下中文分词和索引建立,
中文分词可以采用优化的双数组tire ,对应于索引可以查考下lucene 对于在内存和硬盘建立索引的比例可以参考下二八原理,估计性能会有很大的改善。

7 楼 kuqin 2008-05-28  
问答系统做的还太弱了,一大堆人下面说,跟论坛没有什么差别 
6 楼 comeon 2008-05-27  
挺好的. 不知道在oracle分类下面,  OTN 最新文章, 是怎么从ORACLE网站抽取过来的?
5 楼 isky 2008-05-27  
总体不错 
4 楼 zhanjia 2008-05-27  
自动分类 的想法挺不错的,但有时会分类到用户所不想发表的类别中,发表完毕最好能提示说要放到哪里,让用户确定...

请问JavaEye采用什么检索技术,Lucene吗? 结合Compass? Hibernate Search?...
3 楼 robbin 2008-05-27  
引用
最近JavaEye3上线的新功能不少,有wiki、问答。但是感觉都不是很火。现在出的垂直频道是第三个了。
给robbin的建议是,功能不要太多了,上一个新功能然后让大家真正接收需要一个过程的,最好有一些引导。


垂直频道并不是产生内容的频道,只是多了一个信息的输出形式,不需要推广;
知识库频道近阶段不打算推广,细水长流;
最近打算推广问答功能;

最近会不断更新一些功能,然后会专门下功夫推广的。
2 楼 woailuo 2008-05-27  
不错
1 楼 johnnyhg 2008-05-27  
最近JavaEye3上线的新功能不少,有wiki、问答。但是感觉都不是很火。现在出的垂直频道是第三个了。
给robbin的建议是,功能不要太多了,上一个新功能然后让大家真正接收需要一个过程的,最好有一些引导。

相关推荐

    javaeye被黑

    javaeye被黑 大家看看

    JavaEye3.0开发手记

    - **用途**:实现全文检索功能。 - **特点**:可根据具体需求调整和优化。 **3. Attachment_fu** - **用途**:处理附件存储,利用 ActiveRecord 的多态关联特性。 **4. Cache_fu** - **功能**:对象缓存和查询...

    javaeye热点阅读

    JavaEye热点阅读是JavaEye论坛推出的2009年2月特辑,旨在为Java学习者和开发者提供最新的知识及行业动态。这份资料包含了多个Java相关的主题,包括但不限于并发编程、开源项目、设计模式、框架应用以及软件开发实践...

    javaeye的信息提示框代码之js

    javaeye的信息提示框代码之css,application.js

    JavaEye+技术架构

    JavaEye+技术架构,讲述java框架的应用

    JavaEye Client SourceCode

    JavaEye客户端可能使用了各种视图组件(TextView、ImageView、Button等)和布局容器(LinearLayout、RelativeLayout、ConstraintLayout),并可能实现了自定义视图以满足特定需求。 5. **网络通信**:许多应用需要...

    javaeye代码高亮插件

    在现代浏览器中,由于Flash已逐渐被淘汰,可能需要使用其他技术(如clipboard API)来实现相同的功能。 要在WordPress中使用这些文件,你需要将它们上传到合适的目录,例如主题的`js`和`css`文件夹,并在主题的`...

    JavaEye的API使用帮助.rar

    JavaEye的API使用帮助是一个针对JavaEye开发框架的详细指南,旨在帮助开发者更好地理解和应用这个框架。这个压缩包包含了三个文件:一个PDF文档,一个TXT文本文件,以及一个URL链接。接下来,我们将深入探讨JavaEye ...

    JavaEye新闻月刊_-_2009年3月_-_总第13期

    JavaEye新闻月刊2009年3月第13期内容涉及了当时软件开发领域内的一系列重要话题,包括IBM拟收购Sun Microsystems公司的新闻报道、Java社区对此的看法以及各种编程语言、开发工具和技术的新动态。 首先,新闻月刊...

    httpClient调用javaeye API验证用户

    如果你使用的是Maven或Gradle,可以通过添加相应的依赖项来实现。 2. **创建HttpClient实例**:HttpClient是所有HTTP操作的基础,你可以通过`HttpClientBuilder`来构建一个HttpClient实例。例如: ```java ...

    javaEye客户端

    JavaEye客户端可能包含有关如何使用Java的Thread类或ExecutorService来执行并发请求的示例。 六、调试与日志记录 为了方便调试和问题排查,JavaEye客户端可能会集成Log4j或其他日志框架,以记录程序运行时的关键...

    javaeye 基于android客户端

    通过研究这个应用的源代码和资源,开发者可以了解到Android应用的基本结构,如何组织和使用资源,以及如何实现特定功能,如网络通信、用户交互等。 总结起来,JavaEye是一个适用于Android平台的应用,它提供了一个...

    javaeye论坛小测试答案

    javaeye 论坛小测试 javaeye论坛小测试答案 javaeye论坛测试答案 这下你们就省事了。

    测试JavaEye的PDF生成效果

    标题“测试JavaEye的PDF生成效果”提示我们关注的是一个使用JavaEye库生成PDF文档的实践过程。JavaEye可能是一个用于Java平台的开源库,它提供了将数据转换为PDF格式的功能,这对于创建报告、手册或其他需要打印或...

    好久没有来JavaEye了,再回来看看老朋友

    标题中的“好久没有来JavaEye了,再回来看看老朋友”可能是指作者很久没访问过JavaEye这个平台,现在回归并分享一些与Java相关的技术知识或经验。JavaEye是一个曾经非常活跃的Java开发者社区,这里汇聚了大量的Java...

    android javaeye客户端

    Android提供了Gson、Jackson等库进行数据解析,同时也可通过使用如Volley、Realm等库实现数据缓存,提高数据加载速度,减少网络请求。 五、UI设计与动画 Android JavaEye客户端的界面设计应遵循Material Design...

Global site tag (gtag.js) - Google Analytics