mahout 将聚类结果展示在网页上

 

将聚类结果展示在网页上

分类: 机器学习与数据挖掘   282人阅读  评论(2)  收藏  举报

Nutch中自带对搜索结果的聚类,使用开源的Carrot2,以插件形式被调用,大概看了一下nutch关于clustering这一块的搜索源码,它会显示出URL和title,可是用mahout做文本聚类的话,最后的聚类结果中,只有向量, 当然自己可以将URL加进去,但如何显示标题呢?title不是存放在parse_text中的,标题是存放在parse_data中的,难不成再反过来根据URL去查parse_data,可以调nutch的命令根据URL查,返回来的估计是个String,这样还要在这个String里去匹配title字段,这个过程中是不是复杂了点呢?parse_data还存放每个URL解析出的外部连接和元数据Metadata

看了一下抓取网页和抓取pdf文件后生成的parse_data,抓取网页后的parse_data中有标题,即网页源码中的<title>标签包含的字段,而抓取pdf文件后生成的parse_data中,title字段为空,而在其对应的parse_text中,发现pdf文档的标题被当作正文放在parse_text中了

看nutch对搜索结果的聚类,每个簇都有个标签,一个簇下有属于这个簇的点,在对应簇下显示出相应点的标题及URL。如果是用mahout聚类后,取不到这个值,这个可以仔细看一下nutch搜索源码,看它是如何做到的,然后看能不能用mahout实现一下。同时建议看一下topic model,在机器学习和自然语言处理领域,topic model指一种统计模型,用来从一批文档的集合中发现抽象的主题/论题。

在nutch对结果搜索聚类中是用HitsCluster.getDescriptionLabels() 来获得聚类的标签的,文档标题是通过HitsCluster.getHits().getValue("title")来获得,这个只是粗浅的看,具体实现细节还不知道,还需要时间继续向下挖掘,看它是如何利用Carrot2来做搜索结果聚类的

好了,上述提的问题,等后面有时间再看,现在言归正传,如何将mahout的聚类结果通过网页来展示呢?如果能在eclipse将聚类结果成功打在控制台中,那么把它移到web容器中,如tomcat,这个就不是难事了

现假设调用mahout kmens命令生成的聚类结果在本地,那么问题就转化成如何读取这些聚类结果文件,前面文章里有对聚类结果文件介绍,有兴趣的可以去找找。读取聚类结果,大家可以参照mahout clusterdump这个命令的源文件是如何读取的,本人主要是在读取过程中遇到了少包的问题,现记录下来,以便后面查看

需要在tomcat的web项目下的WEB-INF/lib中,因为页面中引用了一些类,根据页面提示,导入hadoop-core-0.20.2.jar,mahout-core-0.4.jar,mahout-math-0.4.jar,mahout-utils-0.4.jar,此时页面没有错误提示,但一运行会报错,依次根据报的提示,导入commons-logging-1.1.1.jar,mahout-collections-1.0.jar,gson-1.3.jar,google-collections-1.0-rc2.jar,commons-cli-2.0-mahout.jar,slf4j-api-1.6.0.jar,slf-jcl-1.6.0.jar,完成后,终于在网页上看到了聚类结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值