Skip to content

Lecture des données de la base ml-1m #2

@Guepardow

Description

@Guepardow

Dans le but de tester la scabilité du problème (changement d'échelle), il est nécessaire d'utiliser les données de la base ml-1m.
On n'y retrouve les trois bases, mais :

  1. les trois bases ont des séparateurs en "::" ;
  2. la base data.Movies ne contient pas les variables booléennes pour les genres mais indique les genres directement sous format texte

Pour le problème 1, j'ai trouvé une solution : il faut créer des fichiers avec des séparateurs ";" [On ne peut ni utiliser "," ni ":" comme séparateur car ils sont utilisés dans les titres des films. C'est pour cela qu'on ne peut pas faire une lecture astucieuse comme pour data.Ratings pour la base data;Movies.]

Voici la partie du code pour résoudre le problème n°1 :

## Lecture du fichier des notes

data.Ratings = read.table(file=".../ratings.dat",header=F,sep = ":", colClasses = c(V2 = "NULL",V4 = "NULL",V6 = "NULL",V7 = "NULL"))
colnames(data.Ratings) = c("userID", "movieID", "rating")

## Lecture du fichier des films

#Changement des :: en ;
lines = readLines(".../movies.dat")
lines = gsub("::", ";", lines)
writeLines(lines, ".../movies_simpleSep.csv")

#Correction manuelle pour "Dieu Crea la Femme"
#TODO : il faut rajouter une ligne de code pour la faire 

#Enregistrement
data.Movies = read.csv2(file=".../movies_simpleSep.csv",header=F,sep=';')
colnames(data.Movies) = c("movieID", "title", "genres")

## Lecture du fichier des utilisateurs

#Changement des :: en ;
lines = readLines(".../users.dat")
lines = gsub("::", ";", lines)
writeLines(lines, ".../users_simpleSep.dat")

#Enregistrement
data.Users = read.table(file=".../users_simpleSep.dat",header=F,sep=';')
colnames(data.Users) = c("userID", "sex", "age", "occupation", "zip.code")

A FAIRE : trouver une solution pour le problème n°2

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions