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向量 |
Mahout文本向量化的更多相关文章
- 自然语言处理--中文文本向量化counterVectorizer()
1.载入文档 #!/usr/bin/python # -*- coding: utf-8 -*- import pandas as pd import re import jieba from skl ...
- 文本向量化及词袋模型 - NLP学习(3-1)
分词(Tokenization) - NLP学习(1) N-grams模型.停顿词(stopwords)和标准化处理 - NLP学习(2) 之前我们都了解了如何对文本进行处理:(1)如用NLTK文 ...
- NLP 第7章 文本向量化
- 基于sklearn进行文本向量化
sklearn中,计数向量化用CountVectorizer,tfidf向量化用TfidfVectorizer: import pickle from sklearn.feature_extracti ...
- Mahout canopy聚类
Canopy 聚类 一.Canopy算法流程 Canopy 算法,流程简单,容易实现,一下是算法 (1)设样本集合为S,确定两个阈值t1和t2,且t1>t2. (2)任取一个样本点p,作为一个C ...
- Mahout 系列之--canopy 算法
Canopy 算法,流程简单,容易实现,一下是算法 (1)设样本集合为S,确定两个阈值t1和t2,且t1>t2. (2)任取一个样本点p属于S,作为一个Canopy,记为C,从S中移除p. (3 ...
- 基于KNN的newsgroup 18828文本分类器的Python实现
还是同前一篇作为学习入门. 1. KNN算法描述: step1: 文本向量化表示,计算特征词的TF-IDF值 step2: 新文本到达后,根据特征词确定文本的向量 step3 : 在训练文本集中选出与 ...
- LSTM实现中文文本情感分析
1. 背景介绍 文本情感分析是在文本分析领域的典型任务,实用价值很高.本模型是第一个上手实现的深度学习模型,目的是对深度学习做一个初步的了解,并入门深度学习在文本分析领域的应用.在进行模型的上手实现之 ...
- 4. 文本相似度计算-CNN-DSSM算法
1. 文本相似度计算-文本向量化 2. 文本相似度计算-距离的度量 3. 文本相似度计算-DSSM算法 4. 文本相似度计算-CNN-DSSM算法 1. 前言 之前介绍了DSSM算法,它主要是用了DN ...
随机推荐
- 这是最好的时光,这是最坏的时光 SNAPSHOT
好久没动笔了,上次憋了好几天码出的文字扔出去,石沉大海,没惊起半点涟漪.这次真不知道能憋出个什么鬼,索性就让思绪飞扬,飞到哪是哪! --题记 此处应有BGM: 少年锦时 赵雷 1.以后真没有暑假喽 2 ...
- ML学习分享系列(1)_计算广告小窥[上]
原作:面包包包包包包 修改:寒小阳 && 龙心尘 时间:2016年1月 出处: http://blog.csdn.net/breada/article/details/50572914 ...
- Gradle 1.12用户指南翻译——第五十一章. 发布构件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...
- 优化Javascript数据遍历
问题 M是一个对象的集合,没个对象拥有唯一的字符串类型的Id N是Id的集合. 从M中过滤掉Id不在N中的对象. 假如M有50w个数据,N中可能是0~50w任意的数据. 方案1 使用数组保存Id的集合 ...
- CRM 2013 Script Loading Deep Dive
关于CRM中脚本的加载次序梳理的很不错,可以看看 https://community.dynamics.com/crm/b/develop1/archive/2013/11/02/crm-2013-s ...
- RxJava(六) retryWhen操作符实现错误重试机制
欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/51539708 本文出自:[余志强的博客] 业务需求 当我们在app里 ...
- PGM:概率论基础知识
http://blog.csdn.net/pipisorry/article/details/52459847 概率图模型PGM:概率论基础知识 独立性与条件独立性 独立性 条件独立性 也就是表示给定 ...
- Oracle 大数据集成实施
Oracle 大数据实施架构 Oracle为广大客户提供了一个预装的用于测试和学习目的的免费大数据环境.你可以在这个环境中对Oracle大数据一体机(Big Data Appliance)上的可选软件 ...
- iOS9 中关闭ATS的方法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) iOS9中增加了系统的安全性,你会发现默认情况下打开非http ...
- 剑指Offer——全排列递归思路
剑指Offer--全排列递归思路 前言 全排列,full permutation, 可以利用二叉树的遍历实现.二叉树的递归遍历,前中后都简洁的难以置信,但是都有一个共同特点,那就是一个函数里包含两次自 ...