def

基于CNN的电影推荐系统

末鹿安然 提交于 2021-02-19 07:49:51
从深度学习卷积神经网络入手,基于 Github 的开源项目来完成 MovieLens 数据集的电影推荐系统。 什么是推荐系统呢? 什么是推荐系统呢?首先我们来看看几个常见的推荐场景。 如果你经常通过豆瓣电影评分来找电影,你会发现下图所示的推荐: 如果你喜欢购物,根据你的选择和购物行为,平台会给你推荐相似商品: 在互联网的很多场景下都可以看到推荐的影子。因为推荐可以帮助用户和商家满足不同的需求: 对用户而言:找到感兴趣的东西,帮助发现新鲜、有趣的事物。 对商家而言:提供个性化服务,提高信任度和粘性,增加营收。 常见的推荐系统主要包含两个方面的内容,基于用户的推荐系统(UserCF)和基于物品的推荐系统(ItemCF)。两者的区别在于,UserCF 给用户推荐那些和他有共同兴趣爱好的用户喜欢的商品,而 ItemCF 给用户推荐那些和他之前喜欢的商品类似的商品。这两种方式都会遭遇冷启动问题。 下面是 UserCF 和 ItemCF 的对比: CNN 是如何应用在文本处理上的? 提到卷积神经网络(CNN),相信大部分人首先想到的是图像分类,比如 MNIST 手写体识别,CAFRI10 图像分类。CNN 已经在图像识别方面取得了较大的成果,随着近几年的不断发展,在文本处理领域,基于文本挖掘的文本卷积神经网络被证明是有效的。 首先,来看看 CNN 是如何应用到 NLP 中的

Python笔试面试题目及答案

拜拜、爱过 提交于 2021-02-19 06:56:15
1.is 和==的区别? is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象。是否指向同一个内存地址 == : 比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法 2.python中内置的数据结构有几种? 4种 列表 字典 字符串 集合 元祖 3.Python中变量的作用域?(变量查找顺序) 函数作用域的LEGB顺序 1.什么是LEGB? L: local 函数内部作用域 E: enclosing 函数内部与内嵌函数之间 G: global 全局作用域 B: build-in 内置作用 python在函数里面的查找分为4种,称之为LEGB,也正是按照这是顺序来查找的 4. python新式类和经典类的区别 在Python 2及以前的版本中,由任意内置类型派生出的类,都属于“新式类”,都会获得所有“新式类”的特性; 反之,不由任意内置类型派生出的类,则称之为“经典类”。 “新式类”和“经典类”的区分在Python 3之后就已经不存在, 在Python 3.x之后的版本,因为所有的类都派生自内置类型object(即使没有显示的继承object类型),即所有的类都是“新式类”。 5.super函数的具体用法和场景 https://python3-cookbook.readthedocs.io/zh_CN/latest/c08/p07_calling

django-重写User模型

独自空忆成欢 提交于 2021-02-19 06:37:13
User模型有很多功能,验证什么的,重写需要满足下面的功能(基本上写注释的地方都是需要的) 开始: 创建一个重写user的app, 记得注册app startapp newauth from django.db import models from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager, User # AbstractBaseUser封装了密码加密存储, PermissionsMixin封装了各种n对n关系,ex:user and permission class UserManager(BaseUserManager): """ 实现User的 object功能 """ def _create_user(self, telephone, username, password, ** kwargs): user = self.model(telephone=telephone, username=username, ** kwargs) user.set_password(password) user.save() return user    # 创建普通用户 def create_user(self, telephone, username,

Django 重写用户模型

二次信任 提交于 2021-02-19 05:58:48
AUTH_USER_MODEL = 'myapp.MyUser' django——重写用户模型 Django内建的User模型可能不适合某些类型的项目。例如,在某些网站上使用邮件地址而不是用户名作为身份的标识可能更合理。 1.修改配置文件,覆盖默认的User模型 Django允许你通过修改setting.py文件中的 AUTH_USER_MODEL 设置覆盖默认的User模型,其值引用一个自定义的模型。 上面的值表示Django应用的名称(必须位于INSTALLLED_APPS中)和你想使用的User模型的名称。 注意: 1.在创建任何迁移或者第一次运行 manager.py migrate 前设置 AUTH_USER_MODEL 。 设置AUTH_USER_MODEL对你的数据库结构有很大的影响。它改变了一些会使用到的表格,并且会影响到一些外键和多对多关系的构造。在你有表格被创建后更改此设置是不被 makemigrations 支持的,并且会导致你需要手动修改数据库结构,从旧用户表中导出数据,可能重新应用一些迁移。 警告 : 1.确保 AUTH_USER_MODEL 引用的模型在所属app中第一个迁移文件中被创建 由于Django的可交换模型的动态依赖特性的局限,你必须确保 AUTH_USER_MODEL 引用的模型在所属app中第一个迁移文件中被创建(通常命名为 0001

django扩展用户模型继承AbstractBaseUser

假如想象 提交于 2021-02-19 05:52:35
自带的用户模型,AbstractUser还是有些缺陷,比如,first_name、last_name这些字段不想要。所以,要自定义字段,需要重写AbstractUser. 因为class AbstractUser(AbstractBaseUser, PermissionsMixin), 所以重写的时候也需要同时继承AbstractBaseUser, PermissionsMixin 1、app01/models.py里面自定义User模型 from django.db import models from django.contrib.auth.models import BaseUserManager, AbstractBaseUser, PermissionsMixin class UserManager(BaseUserManager): def _create_user(self , telephone, username, password, ** kwargs): if not telephone: raise ValueError( " 必须要传递手机号码! " ) if not password: raise ValueError( " 必须要传递密码 " ) user = self.model( telephone = telephone, username=

2-Python基础语法-内存管理-运算符-程序控制

為{幸葍}努か 提交于 2021-02-19 05:52:22
[toc] 1 Python 基础语法 所有语言都有它自己规定的格式,Python也不例外,下面从几个方面来了解。 1.1 注释 在Python中主要的使用的注释方式是#号,当然在某些情况下三对单引号也是可以的,比如在函数中可以作为函数的说明。 num =int(input('>>>: ')) # 输入一个数字 if num >= 1000: # 条件判断 if num >= 10000: # 大于10000 print('5') # 打印5位 else: '''否则''' print('4') '''打印4''' else: if num >= 100: print('3') elif num >= 10: print('2') else: print('1') 1.2 缩进 C语言使用的是花括号来表示层级关系,但是看起来不简洁, 挺难看 ,而Python使用的是缩进的方式表示层级关系,并且约定 4个空格 为一个层级。 1.3 续行 当我们一行的代码超过了一屏显示的长度以后,多数情况下为了直观,我们会另起一行,接着些,在Python中在行尾使用 \ 标识续行,但如果在表达式或者某一段代码中使用了括号,那么Python认为括号内是一个整体,内部跨行不需要使用 \ 。 1.4 标识符 很多时候,我们写代码的过程中会对我们需要的数据进行存储并命名,方便后续使用,这个命名被称为标识符

Spark 学习(四)RDD自定义分区和缓存

爷,独闯天下 提交于 2021-02-19 05:52:01
一,简介 二,自定义分区规则   2.1 普通的分组TopN实现   2.2 自定义分区规则TopN实现 三,RDD的缓存   3.1 RDD缓存简介   3.2 RDD缓存方式 正文 一,简介    在之前的文章中,我们知道RDD的有一个特征:就是一组分片(Partition),即数据集的基本组成单位。对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就会采用默认值。默认值就是程序所分配到的CPU Core的数目。这个分配的规则我们是可以自己定制的。同时我们一直在讨论Spark快,快的方式有那些方面可以体现,RDD缓存就是其中的一个形式,这里将对这两者进行介绍。 二,自定义分区规则   分 组求TopN的方式有多种,这里进行简单的几种。这里尊卑一些数据: 点击下载   2.1 普通的分组TopN实现    实现思路一:先对数据进行处理,然后聚合。最后进行分组排序。 package cn.edu360.sparkTwo import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object SubjectTopNone { def main(args: Array[String]): Unit =

Python基础——列表

旧城冷巷雨未停 提交于 2021-02-19 05:49:52
字符串列表 说明: 列表相当于其他语言的数组。可以用以下两种方式定义列表: name = [ ' honda ' , ' yamaha ' , ' suzuki ' ] bicycles = list( ' trek ' , ' cannondale ' , ' redline ' , ' specialized ' ) 列表的索引从0开始,用-1表示最后一项,而-2表示倒数第二项,以此类推例如: print (name[0]) # 'honda' print (name[-1]) # 'suzuki' 方法和函数: 方法: def append(self, p_object): # 无返回值,添加一个对象到最后 """ L.append(object) -> None -- append object to end """ pass def clear(self): # 无返回值,删除列表中所有项 """ L.clear() -> None -- remove all items from L """ pass def copy(self): # 返回一个浅复制列表 """ L.copy() -> list -- a shallow copy of L """ return [] def count(self, value): # 返回整数——参数value在列表中的个数 """

[LeetCode] 803. Bricks Falling When Hit 打击砖块掉落

拥有回忆 提交于 2021-02-19 02:39:33
We have a grid of 1s and 0s; the 1s in a cell represent bricks. A brick will not drop if and only if it is directly connected to the top of the grid, or at least one of its (4-way) adjacent bricks will not drop. We will do some erasures sequentially. Each time we want to do the erasure at the location (i, j), the brick (if it exists) on that location will disappear, and then some other bricks may drop because of that erasure. Return an array representing the number of bricks that will drop after each erasure in sequence. Example 1: Input: grid = [[1,0,0,0],[1,1,1,0]] hits = [[1,0]] Output: [2]

restapi(0)- 平台数据维护,写在前面

a 夏天 提交于 2021-02-19 01:46:01
在云计算的推动下,软件系统发展趋于平台化。云平台系统一般都是分布式的集群系统,采用大数据技术。在这方面akka提供了比较完整的开发技术支持。我在上一个系列有关CQRS的博客中按照实际应用的要求对akka的一些开发技术进行了介绍。CQRS模式着重操作流程控制,主要涉及交易数据的管理。那么,作为交易数据产生过程中发挥验证作用的一系列基础数据如用户信息、商品信息、支付类型信息等又应该怎样维护呢?首先基础数据也应该是在平台水平上的,但数据的采集、维护是在系统前端的,比如一些web界面。所以平台基础数据维护系统是一套前后台结合的系统。对于一个开放的平台系统来说,应该能够适应各式各样的前端系统。一般来讲,平台通过定义一套api与前端系统集成是通用的方法。这套api必须遵循行业标准,技术要普及通用,这样才能支持各种异类前端系统功能开发。在这些要求背景下,相对gRPC, GraphQL来说,REST风格的http集成模式能得到更多开发人员的接受。 在有关CQRS系列博客里,我以akka-http作为系统集成工具的一种,零星地针对实际需要对http通信进行了介绍。在restapi这个系列里我想系统化的用akka-http构建一套完整的,REST风格数据维护和数据交换api,除CRUD之外还包括网络安全,文件交换等功能。我的计划是用akka-http搭建一个平台数据维护api的REST-CRUD框架