Javaプログラミングは、統合データのインスタンス解析(データ前処理)と整合することによって行われます。

3608 ワード

本論文で研究したのは主にJavaプログラミングが統合データ(データ前処理)と整合することによって関連した内容であり、特に以下の通りである。
データの説明
以下の手順は、以下のフォーマットのデータを統合処理します。

この表の行はユーザーIDとユーザーの特徴を表しています。ここで、1つのユーザは1つの特徴ベクトルしかない。すなわち、第1の列は重複しない。

この表の第一列はユーザーの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:[email protected]
*/
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プログラミングについてですが、統合データのインスタンスにマッチして解析(データ前処理)した内容のすべてです。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。