这一篇博客主要记录自己的代码是如何对movielens数据集进行处理的,想要达到的目的很简单,就是得到一个txt文件,形式如下:第一列为user,第二列为item,第三列为rating。
形如:
要达到这样的目的该怎么处理呢,很简单。
- 到达movielens的下载官网,https://grouplens.org/datasets/movielens/,选择你要下载的数据集大小类型。
- 其中,有csv的,有dat的。怎么处理呢?由于我只需要用户项目和评分信息我只对ratings进行处理。
- 如果是csv,把代码文件与csv文件放在同一个目录下,代码如下:
-
import math import random from numpy import * import numpy as np import sys import os from pandas import Series,DataFrame import pandas as pd from sklearn.model_selection import train_test_split import csv ratings_list = csv.reader(open('ratings.csv','r')) rating_file = [] for item in ratings_list: rating_file.append(str(item[0])+' '+str(item[1])+' '+str(item[2])+'\n') filename = 'ratings.txt' with open(filename,'w') as f: for i in range(len(rating_file)): f.write(rating_file[i])
如果是dat,代码如下:
import math import random from numpy import * import numpy as np import sys import os from pandas import Series,DataFrame import pandas as pd from sklearn.model_selection import train_test_split ratings = pd.read_table('ratings.dat', sep='::', header=None, engine = 'python') data = ratings.filter(regex='user_id|movie_id|rating') ratings_array = np.array(ratings) ratings_list = ratings_array.tolist() rating_file = [] for item in ratings_list: rating_file.append(str(item[0])+' '+str(item[1])+' '+str(item[2])+'\n') filename = 'ratings.txt' with open(filename,'w') as f: for i in range(len(rating_file)): f.write(rating_file[i])
-
运行代码后,就可以得到我们需要的ratings数据集了~