• 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向量

  • 相关阅读:
    高斯消元算法
    Fermat小定理的证明
    Pollard Rho 算法简介
    做一些无聊的题
    永远不要相信自己的傲慢
    笔记-数据结构进阶
    笔记-区间问题
    线段树板子
    [DarkBZOJ3694] 最短路
    [CF321D] Ciel and Flipboard
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205094.html
Copyright © 2020-2023  润新知