Mahout文本聚类实例
来源:互联网 发布:淘宝首页切图 编辑:程序博客网 时间:2024/05/30 04:25
1:下载路透社数据
数据集下载地址:http://www.daviddlewis.com/resources/testcollections/reuters21578/
2:提取文本内容
下载的文件数据格式是SGML格式,这种格式和XML格式很类似。我们需要将这种格式的数据转化为SequenceFile格式,首先就要提取出txt格式。使用的是Mahout中自带的工具类:org.apache.lucene.benchmark.utils.ExtractReuters。编写以下代码实现文本抽取:
import org.apache.lucene.benchmark.utils.ExtractReuters;public class TestExtractReuters {public static void main(String[] args) {// TODO Auto-generated method stubFile inputFolder = new File("/home/cdw/reuters");File outputFolder = new File("/home/cdw/extracted");ExtractReuters extractor = new ExtractReuters(inputFolder, outputFolder);extractor.extract();}}
程序运行后extracted目录下的文件格式为reut2-***.sgm-*txt格式3:将txt格式转化为sequenceFile
运行命令如下:
mahout seqdirectory -c UTF-8 -i extracted/ -o reuters-seqfiles
可以用seqdumper查看生成的内容
命令: mahout seqdumper -s reuters-seqfiles/chunk-0 -o txt.txt。生成的内容在txt.txt中。
4:将SequenceFile格式转化为向量格式
mahout seq2sparse -i reuters-seqfiles/ -o reuters-vectors -ow
在HDFS中生成reuters-vectors目录,该目录下文件结构如下:
- df-count 目录:保存着文本的频率信息
- tf-vectors 目录:保存着以 TF 作为权值的文本向量
- tfidf-vectors 目录:保存着以 TFIDF 作为权值的文本向量
- tokenized-documents 目录:保存着分词过后的文本信息
- wordcount 目录:保存着全局的词汇出现的次数
- dictionary.file-0 目录:保存着这些文本的词汇表
- frequcency-file-0 目录 : 保存着词汇表对应的频率信息。
命令如下:
mahout canopy -i reuters-vectors/tfidf-vectors -o reuters-canopy-centroids -dm org.apache.mahout.common.distance.EuclideanDistanceMeasure -t1 1500 -t2 2000
在HDFS中生成reuters-canopy-centroids目录
6:使用Kmeans聚类
命令如下:
mahout kmeans -i reuters-vectors/tfidf-vectors -o reuters-kmeans-clusters -dm org.apache.mahout.common.distance.TanimotoDistanceMeasure -c reuters-canopy-centroids/clusters-0 -cd 0.1 -ow -x 20 -cl
在HDFS中生成 reuters-kmeans-clusters目录
7:使用ClusterDumper工具查看聚类结果
命令如下:
mahout clusterdump -dt sequencefile -d reuters-vectors/dictionary.file-* -s reuters-kmeans-clusters-14 -b 10 -n 10
- Mahout文本聚类实例
- mahout 聚类实例
- mahout聚类实例
- mahout应用kmeans进行文本聚类2之——实例分析
- mahout应用kmeans进行文本聚类——实例分析
- Mahout文本聚类学习之DocumentProcessor类
- mahout 0.9 + hadoop 1.0.2 实现中文文本聚类
- 利用LDA进行文本聚类(hadoop, mahout)
- Mahout实例
- mahout应用kmeans进行文本聚类1之——输入输出分析
- Mahout 文本分类过程
- Mahout文本向量化
- mahout 聚类实战
- mahout 聚类大全
- Mahout机器学习平台之聚类算法详细剖析(含实例分析)
- mahout学习之二——mahout0.9kmeans聚类实例
- Mahout机器学习平台之聚类算法详细剖析(含实例分析)
- Mahout机器学习平台之聚类算法详细剖析(含实例分析)
- DDE前端(三):桌面item拖动详解
- C语言中简单的for循环和浮点型变量
- 【回忆数据结构】线性链表(C++描述)
- 二叉树遍历算法
- 关于嵌入式和安卓以及linux的区别
- Mahout文本聚类实例
- 【iOS开发】隐藏键盘
- 2013-08-02我会记住这个日子
- [HDU 2795] Billboard[线段树][单点增删]
- URAL 1010 - Discrete Function
- setBounds
- 全面认识Flex安全沙箱
- 【 转载】Linux系统移植
- apche的AB测试详解