`
jayghost
  • 浏览: 428479 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

【转】mahout应用kmeans进行文本聚类2之——实例分析

 
阅读更多

转:http://blog.csdn.net/aidayei/article/details/6674135

 

在Mahout_in_Action这本书中,给了一个文本的聚类实例,并提供了原始输入数据,下面结合例子说明

作为聚类算法的主要应用场景 - 文本分类,对文本信息的建模也是一个常见的问题。在信息检索研究领域已经有很好的建模方式,就是信息检索领域中最常用的向量空间模型

词频 - 逆向文本频率 (Term Frequency – Inverse Document Frequency, TF-IDF):它是对 TF 方法的一种加强,字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在所有文本中出现的频率成反比下降。举个例子,对于“高频无意义词汇”,因为它们大部分会出现在所有的文本中,所以它们的权重会大打折扣,这样就使得文本模型在描述文本特征上更加精确。在信息检索领域,TF-IDF 是对文本信息建模的最常用的方法。

对于文本信息的向量化,Mahout 已经提供了工具类,它基于 Lucene 给出了对文本信息进行分析,然后创建文本向量。下面给出了一个例子,分析的文本数据是路透提供的新闻数据。将数据集下载后,放在“src/test/input”目录下。数据集下载地址:http://www.daviddlewis.com/resources/testcollections/reuters21578/

1. 将路透的数据解压缩,Mahout 提供了专门的方法

File inputFolder = new File("src/test/input");   
File outputFolder = new File("src/test/input-extracted");   
ExtractReuters extractor = new ExtractReuters(inputFolder, outputFolder);   
extractor.extract(); 

 2. 将数据存储成 SequenceFile

mahout直接进供了seqdirectory方法来将字符文本转成SequenceFile,可以直接bin/mahout seqdirectory -h,查看一下这个命令的帮助,将输入和输出参数设好,这里的输入就直接用上一步提取出的文本,目录在"src/test/input-extracted"

3.将 SequenceFile 文件中的数据,基于 Lucene 的工具进行向量化

mahout直接提供了seq2sparse命令来转向量,可以直接bin/mahout seq2sparse -h,查看一下这个命令的帮助,输入为第二步的输出

生成的向量化文件的目录结构是这样的:

  • df-count 目录:保存着文本的频率信息
  • tf-vectors 目录:保存着以 TF 作为权值的文本向量
  • tfidf-vectors 目录:保存着以 TFIDF 作为权值的文本向量
  • tokenized-documents 目录:保存着分词过后的文本信息
  • wordcount 目录:保存着全局的词汇出现的次数
  • dictionary.file-0 目录:保存着这些文本的词汇表
  • frequcency-file-0 目录 : 保存着词汇表对应的频率信息。

再用mahout kmeans进行聚类,输入参数为tf-vectors 目录下的文件,如果整个过程没错,就可以看到输出结果目录clusters-N

最后可以用mahout提供的结果查看命令mahout clusterdump来分析聚类结果

 

分享到:
评论

相关推荐

    mahout聚类算法

    mahout聚类算法的介绍,例如:Canopy,KMeans,Fuzzy-KMeans,Spectral Clustering等参数介绍和适用场景介绍

    synthetic_control.data

    Mahout的kmeans聚类测试数据

    mahout所需jar包

    Mahout支持K-Means等聚类算法,在此zip包中已经有打好jar包的资源,不需要用户再打jar包,可以直接使用。

    maven_mahout_template-mahout-0.6

    kmeans聚类算法 基于划分的方法单机版基于学习

    基于Spark框架的聚类算法研究

    大数据的挖掘是当今的研究热点,也有着巨大的商业价值。新型框架Spark部署在...该文研究了Spark中的机器学习中的聚类算法KMeans,先分析了算法思想,再通过实验分析其应用的方法,然后通过实验结果分析其应用场景和不足。

    mahout学习

    mahout聚类算法学习必备,这只是一个最主要的kmeans算法,希望能帮到你们

    mahout安装图文版

    mahout分布式数据挖掘工具,实现了在hadoop分布式环境下的各种数据挖掘算法,比如kmeans,聚类等,本文档是mahout的详细安装步骤。

    mahout-demo:mahout 演示展示了它是如何工作的

    Mahout 演示欢迎来到驯象师演示。 开发这个项目是为了展示 mahout 是如何工作的。... 模糊 KMeans 聚类使用 Maven 构建mvn 全新安装执行java -jar mahout-demo-0.0.1-SNAPSHOT-jar-with-dependencies.jar

    开源力量——数据挖掘原理与实战

    整套大数据课程从hadoop入门开始,由浅入深,内置“hadoop源码解析与企业应用开发实战”,“Hive开发实战”,“Hbase开发实战”,“Spark,mahout,sqoop,storm诸模块开发实战”,“数据挖掘基础。这个系列课程有几...

    mahout-distribution-0.5-src.tar.gz )

    分布式数据挖掘工具,实现了在hadoop分布式环境下的各种数据挖掘算法,比如kmeans,聚类等

    mapreduce-kmeans:使用MapReduce的朴素K均值聚类

    mapreduce-kmeans 代码。 请注意,这只是一个示例,而不是可用于生产的代码。 如果您要进行正式生产和正常工作的群集,请使用Mahout,Hama或Spark。 建造 您将需要Java 8来构建该库。 您可以简单地使用以下命令...

    mahout 0.4版本

    Mahout 0.4机器学习开源项目从大 量原始数据中解析出相关信息的需求急剧增长,以致于聚类、协同过滤和分类等机器学习技术的需 求也是呈稳定增长势态。

Global site tag (gtag.js) - Google Analytics