在文本聚类之前,首先要做的是文本的向量化。该过程涉及到分词,特征抽取,权重计算等等。Mahout 提供了文本向量化工具。由于Mahout 向量化算法要处理的文件是Hadoop SequenceFile ,需要将普通的文本文件转成SequenceFile格式,然后在向量化。

一、序列化

API

SequenceFilesFromDirectory.main(args);

--input (-i)

文件存放路径

-output (-o)

输出文件路径

--overwrite (-ow)

是否清空输出目录

--charset (-c)

默认UTF-8

示例

String   [] arg ={"-i","forclusters","-o","se","-ow"};

SequenceFilesFromDirectory.main(arg);

二、向量化

API

SparseVectorsFromSequenceFiles.main(args);

--minSupport (-s)

词的最小支持度

--analyzerName (-a)

Lucene分词器类权限命名

--chunkSize (-chunk)

块大小

--output (-o)

输出目录

--input (-i)

输入目录

--minDF (-md)

文档的最小DF值

--maxDFPercent (-x)

最大DF频率

--weight (-wt)

权重,TFIDF,或TF

--minLLR (-ml) (Optional)

最小log-Likelihood

--numReducers (-nr)

reduce个数

--maxNGramSize (-ng)

最大n-gram数

--overwrite (-ow)

是否覆盖outPut下的文件

--sequentialAccessVector(-seq)        (Optional)

是否输出为sequentialAccessVector

--namedVector(-nv)                (Optional)

是否输出为namedVector

--logNormalize(-lnorm)                (Optional)

输出结果向量取log

--stopWordsFile (-sw)

停用词词典文件路径

示例   

String  [] args ={"-i",”/seq”,

"-o",”/vec”

"-a","org.apache.lucene.analysis.cn.smart

.SmartChineseAnalyzer",

"-md",4),

"-ow","-ng",4),

"-wt",”TFIDF”,

"-nr",4),

"-sw",”/stopwprds.txt”

};

SparseVectorsFromSequenceFiles.main(args);

输出结果

名称

Key类型

Value类型

说明

tokenized-documents

文档名(org.apache.hadoop.io.Text)

词数组(org.apache.mahout.

common.StringTuple)

分词后的的文本,每条记录代表一篇文档

dictionary.file-0

单词(org.apache.hadoop.io.Text)

单词id (org.apache.hadoop.

io.IntWritable)

文本集的特征词词典

wordcount

单词(org.apache.hadoop.io.Text)

词频

(org.apache.hadoop.

io.LongWritable)

特征词词频统计

tf-vectors

文档名(org.apache.hadoop.io.Text)

文档的tf向量(org.apache.mahout.

math.VectorWritable)

每篇文档的Tf向量

df-count

单词id (org.apache.hadoop.io.IntWritable)

单词的文档频率(org.apache.

hadoop.io.LongWritable)

每个单词的文档频率,即包含这个单词的文档个数

frequency.file-0

单词id (org.apache.hadoop.io.IntWritable)

单词的文档频率(org.apache.

hadoop.io.LongWritable)

仍是文档频率,只是对df-count中的文件进行分块

tfidf-vectors

文档名(org.apache.hadoop.io.Text)

文档的tfidf向量(org.apache.mahout.math.VectorWritable)

每篇文档的Tfidf向量

Mahout文本向量化的更多相关文章

  1. 自然语言处理--中文文本向量化counterVectorizer()

    1.载入文档 #!/usr/bin/python # -*- coding: utf-8 -*- import pandas as pd import re import jieba from skl ...

  2. 文本向量化及词袋模型 - NLP学习(3-1)

    分词(Tokenization) - NLP学习(1) N-grams模型.停顿词(stopwords)和标准化处理 - NLP学习(2)   之前我们都了解了如何对文本进行处理:(1)如用NLTK文 ...

  3. NLP 第7章 文本向量化

  4. 基于sklearn进行文本向量化

    sklearn中,计数向量化用CountVectorizer,tfidf向量化用TfidfVectorizer: import pickle from sklearn.feature_extracti ...

  5. Mahout canopy聚类

    Canopy 聚类 一.Canopy算法流程 Canopy 算法,流程简单,容易实现,一下是算法 (1)设样本集合为S,确定两个阈值t1和t2,且t1>t2. (2)任取一个样本点p,作为一个C ...

  6. Mahout 系列之--canopy 算法

    Canopy 算法,流程简单,容易实现,一下是算法 (1)设样本集合为S,确定两个阈值t1和t2,且t1>t2. (2)任取一个样本点p属于S,作为一个Canopy,记为C,从S中移除p. (3 ...

  7. 基于KNN的newsgroup 18828文本分类器的Python实现

    还是同前一篇作为学习入门. 1. KNN算法描述: step1: 文本向量化表示,计算特征词的TF-IDF值 step2: 新文本到达后,根据特征词确定文本的向量 step3 : 在训练文本集中选出与 ...

  8. LSTM实现中文文本情感分析

    1. 背景介绍 文本情感分析是在文本分析领域的典型任务,实用价值很高.本模型是第一个上手实现的深度学习模型,目的是对深度学习做一个初步的了解,并入门深度学习在文本分析领域的应用.在进行模型的上手实现之 ...

  9. 4. 文本相似度计算-CNN-DSSM算法

    1. 文本相似度计算-文本向量化 2. 文本相似度计算-距离的度量 3. 文本相似度计算-DSSM算法 4. 文本相似度计算-CNN-DSSM算法 1. 前言 之前介绍了DSSM算法,它主要是用了DN ...

随机推荐

  1. How to kill a particular user terminal on Linux

    Intro. Sometimes, the application we launched from command promp failed to exit. What we require is ...

  2. SQL Join各种内联外联说明

    Visual Representation of SQL Joins C.L. Moffatt, 3 Feb 2009 CPOL    4.96 (406 votes) Rate this: This ...

  3. [ExtJS5学习笔记]第三十三节 sencha extjs 5 grid表格导出excel

    使用extjs肯定少不了使用表格控件,用到表格,领导们(一般)还是惯于使用excel看数据,所以用到extjs表格的技术猿们肯定也会有导出表格excel这一个需求,本文主要针对如何在用extjs将gr ...

  4. mvn管理项目jar包

    Maven是一个采用纯Java编写的开 源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xm ...

  5. ROS探索总结(十六)——HRMRP机器人的设计

    1. HRMRP简介         HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台)机器人是我在校期间和实验室的其他小伙伴一起从零开 ...

  6. JavaScript与jQuery获取相邻控件

    原始代码如下,需求是onclick中的OpenIframe方法捕捉到input中的value值,由于某些限制无法使用正常的操作dom根据name值来取,所以决定通过相邻空间的方式获取 <div& ...

  7. Erlang edoc 多级目录出错

    Erlang edoc 多级目录出错使用rebar doc来生成项目文档.但是当erl源文件目录src下建立子目录,并新建erlang文件后,就无法生成文档. 例如,新建 src/tttt/, 并添加 ...

  8. TCP连接建立系列 — 客户端接收SYNACK和发送ACK

    主要内容:客户端接收SYNACK.发送ACK,完成连接的建立. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 接收入口 tcp_v4_rcv |--&g ...

  9. 06 intent flag三种属性

    flag属性可以看做和写在清单文件中的启动模式一样 但效果有一定差别 1,FLAG_ACTIVITY_SINGLE_TOP:启动模式里的SingleTop一致  如果X启动模式设置为FLAG_ACTI ...

  10. 2、Android构建本地单元测试

    如果你的单元测试在Android中没有依赖或者只有简单的以来,你可以在你的本地开发环境中运行你的测试.这种测试比较高效因为它能让你避免将整个app安装到物理设备或虚拟机中执行单元测试.最后,执行单元测 ...