当前位置: 首页 > 编程笔记 >

Java编程通过匹配合并数据实例解析(数据预处理)

上官培
2023-03-14
本文向大家介绍Java编程通过匹配合并数据实例解析(数据预处理),包括了Java编程通过匹配合并数据实例解析(数据预处理)的使用技巧和注意事项,需要的朋友参考一下

本文研究的主要是Java编程通过匹配合并数据(数据预处理)的相关内容,具体如下。

数据描述

以下程序是对如下格式的数据进行合并处理。

这个表的每一行表示用户id及用户的特征。其中,一个用户只有一个特征向量,即第一列不会重复。

这张表的第一列,表示用户的id,第二列表示用户所看的电影,第三列表示用户对电影的打分(1-13分),第四列表示用户对电影的打分,但分值范围是1-5分。

问题描述

在做数据预处理时,如何将第二张表添加上用户特征呢?其实,方法很简单,将第二张表的用户id与第一张表的用户id进行匹配就行。合并结果如下图所示。

数据处理程序

package deal;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/*
 * author:合肥工业大学 管院学院 钱洋 
 * email:1563178220@qq.com
*/
public class GetPUser {
	public static List<String> readDocs(String docsPath,String code) throws IOException{
		BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream( new File(docsPath)),code));
		String s=null;
		List<String> userproductscore=new ArrayList<String>();
		while ((s=reader.readLine())!=null) {
			userproductscore.add(s);
		}
		reader.close();
		return userproductscore;
	}
	public static HashMap<String, String> MAPread(String docsPath1,String code1) throws IOException{
		BufferedReader reader1 = new BufferedReader( new InputStreamReader( new FileInputStream( new File(docsPath1)),code1));
		String s1=null;
		HashMap<String,String> userfeaturemap=new HashMap<String,String>();
		while ((s1=reader1.readLine())!=null) {
			String arr[]=s1.split("\t");
			String feature="";
			for (int i = 1; i < arr.length; i++) {
				BigDecimal db = new BigDecimal(arr[i]);
				String ii = db.toPlainString();
				feature+=ii+" ";
			}
			userfeaturemap.put(s1.split("\t")[0], feature);
		}
		reader1.close();
		return userfeaturemap;
	}
	public static List<String> match(List<String> userproductscore,HashMap<String, String> userfeaturemap) throws IOException{
		List<String> userscoreandfeature=new ArrayList<>();
		for (int i = 0; i < userproductscore.size(); i++) {
			//获取用户id
			String user_id=userproductscore.get(i).split("\t")[0];
			//获取用户特征
			String userfeature = userfeaturemap.get(user_id);
			userscoreandfeature.add(userproductscore.get(i)+"\t"+userfeature);
			System.out.println(userproductscore.get(i)+"\t"+userfeature);
		}
		return userscoreandfeature;
	}
	public static void main(String[] args) throws IOException {
		//读取两个文本
		List<String> userproductscore=readDocs("data/train/ydata-ymovies-user-movie-ratings-train-v1_0.txt","gbk");
		HashMap<String, String> userfeaturemap=MAPread("data/fileofuser/yahoo.txt","utf-8");
		//匹配结果
		match(userproductscore,userfeaturemap);
	}
}

总结

以上就是本文关于Java编程通过匹配合并数据实例解析(数据预处理)的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

 类似资料:
  • 本文向大家介绍JavaScript处理解析JSON数据过程详解,包括了JavaScript处理解析JSON数据过程详解的使用技巧和注意事项,需要的朋友参考一下 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包

  • 本文向大家介绍Python----数据预处理代码实例,包括了Python----数据预处理代码实例的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python数据预处理的具体代码,供大家参考,具体内容如下 1.导入标准库 2.导入数据集 3.缺失数据 4.分类数据 5.将数据集分为训练集和测试集 6.特征缩放 7.数据预处理模板 (1)导入标准库 (2)导入数据集 (3)缺失和分类很

  • 本文向大家介绍springmvc处理模型数据Map过程解析,包括了springmvc处理模型数据Map过程解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了springmvc处理模型数据Map过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 SpringmvcTest.java Index.jsp success.jsp 启动

  • 本文向大家介绍通过实例解析PHP数据类型转换方法,包括了通过实例解析PHP数据类型转换方法的使用技巧和注意事项,需要的朋友参考一下 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: (int)、(integer):转换成整形 (float)、(double)、(real):转换成浮点型 (string):转换成字符串 (bool)、(boolean):转换成布尔类型 (array):

  • 本文向大家介绍ASP.net处理XML数据实例浅析,包括了ASP.net处理XML数据实例浅析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ASP.net处理XML数据的方法,分享给大家供大家参考。具体实现方法如下: XML是一种可扩展的标记语言,比之之前谈到的html有着很大的灵活性,虽然它只是与HTML仅有一个字母只差,但两者有很大的区别。 XML也是标记语言,所以它每个标签必须要闭

  • 本文向大家介绍SQL数据库存储过程示例解析,包括了SQL数据库存储过程示例解析的使用技巧和注意事项,需要的朋友参考一下 什么是存储过程:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。 存储过程的好处: 1.由于数据库执行动作时,是先编译后