利用艺术家的整数ID映射将标签转换为向量

<strong><span style="font-size:18px;">/***
 * @author YangXin
 * @info Mapper选择艺术家的整数特征ID然后建立单个特征的向量。这些一维的部分
 * 向量会传给Reducer,后者会将这些向量简单地进行联结,生成一个完整的向量。
 */
package unitTwelve;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.DefaultStringifier;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.util.GenericsUtil;
import org.apache.mahout.math.NamedVector;
import org.apache.mahout.math.SequentialAccessSparseVector;
import org.apache.mahout.math.VectorWritable;

public class VectorMapper extends Mapper<LongWritable, Text, Text, VectorWritable>{
	private Pattern splitter;
	private VectorWritable writer;
	private Map<String, Integer> dictionary = new HashMap<String, Integer>();

	@Override
	protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException{
		String[] fields = splitter.split(value.toString());
		if(fields.length < 4){
			context.getCounter("Map", "LinesWithErrors").increment(1);
			return;
		}
		String arrtist = fields[1];
		String tag = fields[2];
		double weight = Double.parseDouble(fields[3]);
		NamedVector vector = new NamedVector(new SequentialAccessSparseVector(dictionary.size()), tag);
		vector.set(dictionary.get(value), weight);
		writer.set(vector);
		context.write(new Text(tag), writer);
	}

	@Override
	protected void setup(Context context) throws IOException, InterruptedException{
		super.setup(context);
		Configuration conf = context.getConfiguration();
		DefaultStringifier<Map<String, Integer>> mapStringifier = new DefaultStringifier<Map<String, Integer>>(conf, GenericsUtil.getClass(dictionary));
		dictionary = mapStringifier.fromString(conf.get("dictionary"));
		splitter = Pattern.compile("<sep>");
		writer = new VectorWritable();
	}
}
</span></strong>

时间: 2024-10-21 06:21:33

利用艺术家的整数ID映射将标签转换为向量的相关文章

得到一个div下 特定ID的所有标签

比如说得到 <div id="showsp"> <div id="a"></div> <div id="a"></div> <div id="a"></div> <span id="a"></span> </div> 得到 <div id="showsp">

vbs脚本实现网盘映射及标签更改

vbs脚本实现网盘映射及标签更改,完全自主研发,绝无仅有,觉得有用的朋友点个攒: Set WshNetwork = CreateObject("WScript.Network")set wshshell = wscript.createObject("WScript.shell")dim mypathmypath = "\xxx.domain.com\" //共享文件路径if WshNetwork.UserName = "aaaa&qu

【js笔记】神奇的js将a标签转换为超强的submit按钮

标题可能说的有点浮夸了0.o 在以前做页面的时候,是将form表单中的提交按钮写成 <input type="submit" /> 但是,总是觉得没有a标签设置样式好用,所以写了这样一个js函数来实现将a标签转换为submit按钮. 先上码: js代码: // 将a标签可用于表单(form)的提交js函数 //适用于一个form中有多个submit情况 function tosubmit(action_str){ var myform=document.getElement

6.Mybatis 映射文件标签详解

编写的测试代码在下面,没有jar包(上传的大小限制啦) 1.1     Mybatis映射文件(核心) 1.1.1 输入映射 1.1.1.1  ParameterType 指定输入参数的java类型,可以使用别名或者类的全限定名.它可以接收简单类型.POJO.HashMap. 1.1.1.1.1      传递简单类型 参考需求:根据用户ID查询用户信息. 1.1.1.1.2      传递POJO对象 1.1.1.1.2.1     需求 根据用户性别和用户名称来查询用户信息 1.1.1.1.

MyBatis学习-映射文件标签篇

MyBatis 真正的核心在映射文件中.比直接使用 JDBC 节省95%的代码.而且将 SQL 语句独立在 Java 代码之外,可以进行更为细致的 SQL 优化. 一. 映射文件的顶级元素 resultMap:最复杂,最有力量的元素,用来描述如何从数据库结果集中加载你的对象 sql:可以重用的 sql 代码块 insert:映射插入语句 update:映射更新语句 delete:映射删除语句 select:映射查询语句 cache:配置给定命名空间的缓存 cache-ref:从其他命名空间引用缓

利用cookie实现浏览器中多个标签页之间的通信

原理: cookie是浏览器端的存储容器,而且它是多页面共享的,利用cookie多页面共享的特性,可以实现多个标签页的通信. 比如: 一个标签页发送消息(将发送的消息设置到cookie中),一个标签页接收消息(从cookie中获取消息) 例子:   01 发送消息的标签页(其实就是将要发送的消息设置到cookie中) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-

.NET中利用反射来实现自动映射两个对象中的数据成员

在以前的项目开发之中,经常会遇到这样一个问题:比如在外面项目的架构设计之中,我们采用MVC和EntityFramework来构建一个Web应用程序.比如我们采用常用的多层架构,例如有Presentation层.BusinessLogic层.DataAccess层等,各层之间是相对独立并且职责分明的.比如我们在Presentation层中会定义ViewModel,在DataAccess层中的DbContext部分又会由EntityFramework来自动生成StorageModel,或者叫做Dat

js如何获取某id的子标签

思路:根据id获取父对象,然后使用childNodes获取所有子对象数组,关键代码: document.getElementById(div_id).childNodes;   // 子对象数组 实例演示:点击按钮将为id为test的div标签的所有子标签添加red类,即字体显示为红色 1.HTML结构 <div id = "test"> <a href="#">我是超链接</a> <input type="tex

1059 C语言竞赛 (ID映射编号映射字符串)

C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份"神秘大奖"(比如很巨大的一本学生研究论文集--). 1.排名为素数的学生将赢得最好的奖品 -- 小黄人玩偶! 2.其他人将得到巧克力. 给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品. 输入格式: 输入第一行给出一个正整数 N(≤10e+4),是参赛者人数.随后 N 行给出最终排名,每行按排名顺序给出一位参赛者的 ID(4 位数字组