La investigación principal en este artículo es la programación de Java a través de la coincidencia y la combinación de datos (preprocesamiento de datos), de la siguiente manera.
Descripción de los datos
El siguiente programa combina datos en el siguiente formato.
Cada fila de esta tabla representa la ID de usuario y las características del usuario. Entre ellos, un usuario solo tiene un vector de características, es decir, la primera columna no se repetirá.
La primera columna de esta tabla representa la ID del usuario, la segunda columna representa la película que observa el usuario, la tercera columna representa la puntuación del usuario de la película (1-13 puntos), y la cuarta columna representa la puntuación del usuario de la película, pero el rango de puntaje es de 1 a 5 puntos.
Descripción del problema
Al preprocesar datos, ¿cómo agregar características del usuario a la segunda tabla? De hecho, el método es muy simple. Simplemente haga coincidir la ID de usuario de la segunda tabla con la ID de usuario de la primera tabla. El resultado de fusión se muestra en la figura a continuación.
Procesador de datos
paquete de ofertas; 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.araylist; import java.util.hashmap; import; java.util.list;/** Autor: Qian Yang, School of Management, Hefei University Technology* Correo electrónico: [email protected]*/public class getpuser {public static list <String> readdocs (string docspath, string código) arroja ioexception {bufferederader lector = nuevo lector buffeder (nuevo inputamreader (nuevo lectura (nuevo lectura (nuevo lectura (nuevo lectura (nuevo lectura de archivo (nuevo archivo (nuevo archivo (nuevo filtro (nuevo código) (string Code) lanza ioexception {Buffereder Reader = Nuevo BuffedReader (nuevo Input Brreader (New FileEnream (nuevo Reader (Nuevo Reader (Nuevo Artigo (nuevo FileMeam (String Code). Archivo (docspath)), código)); 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 FileInputStream (nuevo archivo (docspath1)), code1)); string s1 = null; hashmap <string, string> userFeateReMap = new Hashmap <String, String> () while ((s1 = Reader1.readline ())! = NULL) {String Arr [] = S1.Split ("/T"); 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> UserFeateReMap) lanza IOException {list <String> UserScoreAndFeature = new ArrayList <> (); user_id = userProductScore.get (i) .split ("/t") [0]; // Obtener una función de usuario String UserFeature = UserFeateReMap.get (user_id); usserScoreAndFeature.Add (userProductScore.get (i)+"/t"+userFeature); system.out.println (userProductScore.get (i)+"/t"+userFeature);} returnsCoreAndFeato;} public static void main (string [] string [] string [] string [] args iMeSe Ioxs); {// Leer dos Listas de texto <String> userProductScore = readdocs ("data/trenes/ydata -movies-user-movie-ratings-train-v1_0.txt", "gbk"); hashmap <string, string> userFeateReMap = mapread ("data/fileOfuser/yahoo.txt", "utf-8"); Match (UserProductScore, UserFeateReMap);}}
Resumir
Lo anterior se trata de la programación de Java a través de la coincidencia y la combinación del análisis de instancias de datos (preprocesamiento de datos). Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!