`
小网客
  • 浏览: 1216428 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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实现类.

1
6
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics