Mahout之文本向量化

背景:

进行文本挖掘的时候,无论是聚类还是相似计算首先需要向量化。

思路:

对于某一文本计算完其tf(tf-idf)之后生成word->tf(tf-idf)的对应表,那么构造成向量记做:

v=(a1,a2,…,an) 此为为n维向量。a1...an为tf(tf-idf),同时我们把word转换成int来作为下标。

实现:

	/**
	 * vector转换
	 * 
	 * @param map 单词和词频map
	 * @param otherInfo 用于保存的其他信息
	 * @return Vector
	 */
	public static Vector vector(Map<String, Double> map, String otherInfo) {
		Vector vector = new RandomAccessSparseVector(Integer.MAX_VALUE);
		NamedVector nv = new NamedVector(vector, otherInfo);
		Iterator<Entry<String, Double>> iterator = map.entrySet().iterator();
		while (iterator.hasNext()) {
			Entry<String, Double> entry = iterator.next();
			nv.setQuick(entry.getKey().hashCode(), entry.getValue());
		}
		return vector;
	}

PS:可以根据自己的需要选择相应的Vector实现类.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值