程世东老师TensorFlow实战——个性化推荐,代码学习笔记之①数据导入&数据预处理(上)

本文是程世东老师TensorFlow实战系列的一部分,主要关注个性化推荐系统的数据导入和预处理阶段。通过链接可以访问到完整的代码和知乎上的详细讨论。下一篇文章将涉及数据的可视化分析。
摘要由CSDN通过智能技术生成

代码来自于知乎:https://zhuanlan.zhihu.com/p/32078473

/代码地址https://github.com/chengstone/movie_recommender/blob/master/movie_recommender.ipynb

下一篇有一些数据的可视化,帮助理解

#运行下面代码把数据下载下来
import pandas as pd   
from sklearn.model_selection import train_test_split #数据集划分训练集和测试集
import numpy as np
from collections import Counter #counter用于统计字符出现的次数
import tensorflow as tf

import os  #os 模块提供了非常丰富的方法用来处理文件和目录
import pickle #提供保存数据在本地的方法
import re #正则表达式
from tensorflow.python.ops import math_ops
from urllib.request import urlretrieve #将URL表示的网络对象复制到本地文件
from os.path import isfile, isdir #判断是否存在文件file,文件夹dir
from tqdm import tqdm #Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)
import zipfile #用来做zip格式编码的压缩和解压缩的
import hashlib #用来进行hash 或者md5 加密

def _unzip(save_path, _, database_name, data_path):
    """
    Unzip wrapper with the same interface as _ungzip使用与_ungzip相同的接口解压缩包装器
    :param save_path: gzip文件的路径
    :param database_name:数据库的名称
    :param data_path: 提取路径
    :param _: HACK - Used to have to same interface as _ungzip 用于与_ungzip具有相同的接口??解压后的文件路径
    """
    print('Extracting {}...'.format(database_name))#.format通过 {} 来代替字符串database_name
    with zipfile.ZipFile(save_path) as zf: #ZipFile是zipfile包中的一个类,用来创建和读取zip文件
        zf.extractall(data_path) #类函数zipfile.extractall([path[, member[, password]]]) 
                                 #path解压缩目录,没什么可说的 
                                 # member需要解压缩的文件名列表 
                                 # password当zip文件有密码时需要该选项 

def download_extract(database_name, data_path):
    """
    下载并提取数据库
    :param database_name: Database name
    data_path 这里为./表示当前目录
    save_path 下载后数据的保存路径即压缩文件的路径
    extract_path 解压后的文件路径
    """
    DATASET_ML1M = 'ml-1m'

    if database_name == DATASET_ML1M:
        url = 'http://files.grouplens.org/datasets/movielens/ml-1m.zip'
        hash_code = 'c4d9eecfca2ab87c1945afe126590906'
        extract_path = os.path.join(data_path, 'ml-1m')#os.path.join将多个路径组合后返回,提取数据的路径
        save_path = os.path.join(data_path, 'ml-1m.zip')#要保存的路径
        extract_fn = _unzip 

    if os.path.exists(extract_path):  #指定路径(文件或者目录)是否存在
        print('Found {} Data'.format(database_name))
        return

    if not os.path.exists(data_path):  #指定路径(文件或者目录)不存在,则递归创建目录data_path
        os.makedirs(data_path) 

    if not os.path.exists(save_path): #指定路径(文件或者目录)不存在,则递归创建目录save_path
        with DLProgre
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值