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

    etcd 是 CoreOS 团队发起的一个管理配置信息和服务发现(service discovery)的项目,在这一章里面,我们将介绍该项目的目标,安装和使用,以及实现的技术. Docker的etcd ...

  2. Python3 编程第一步

    现在,我们能使用Python完成比 2+2 更复杂的工作.在下例里,我们能写出一个初步的斐波纳契数列如下: >>> # Fibonacci series: 斐波纳契数列 ... # ...

  3. RX系列一 | ReactiveX根源 | 观察者模式分析

    RX系列一 | ReactiveX根源 | 观察者模式分析 Rx的响应式编程算是很火了,对吧,但是我的工作基本上就不会接触,所以学习的比较晚,到现在才分享给大家,我们一点点的去学,当你看完这整个系列的 ...

  4. Android监听手机网络变化

    Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...

  5. IntelliJ IDEA在Local模式下Spark程序消除日志中INFO输出

    在使用Intellij IDEA,local模式下运行Spark程序时,会在Run窗口打印出很多INFO信息,辅助信息太多可能会将有用的信息掩盖掉.如下所示 要解决这个问题,主要是要正确设置好log4 ...

  6. KVO and Swift

    不像Objective-c中的类,Swift类对于KVO并没有原生的支持,不过你可以在类型安全的前提下使用属性观察者轻松的完成相同的目标. 不管如何,从NSObject类派生出的类是支持KVO的,如果 ...

  7. springMVC源码分析--HandlerMethod

    在之前的博客中我们已经接触过HandlerMethod,接下来我们简单介绍一下HandlerMethod,简单来说HandlerMethod包含的信息包括类.方法和参数的一个信息类,通过其两个构造函数 ...

  8. npm管理工具介绍

    概述 Npm是NodeJS包管理工具,在最新版本中Nodejs集成了npm,可以通过输入 "npm -v" 来测试是否成功安装.如果你安装的是旧版本的 npm,可以通过 npm 命 ...

  9. 【IOS 开发】Objective - C 面向对象高级特性 - 包装类 | 类处理 | 类别 | 扩展 | 协议 | 委托 | 异常处理 | 反射

    一. Objective-C 对象简单处理 1. 包装类 (1) 包装类简介 NSValue 和 NSNumber : -- 通用包装类 NSValue : NSValue 包装单个 short, i ...

  10. 服务端技术进阶(八)GitHub入门篇

    服务端技术进阶(八)GitHub入门篇 前言 在投递简历的过程中,发现有的公司会要求填写自己的GitHub地址,而自己却还没有GitHub帐号,准确点说是自己还不太会使用GitHub.(貌似开源社区中 ...