Mahout文本向量化

        在文本聚类之前,首先要做的是文本的向量化。该过程涉及到分词,特征抽取,权重计算等等。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向量

猜你喜欢

转载自blog.csdn.net/yueyedeai/article/details/26565917