数据和工具

1. glove:http://nlp.stanford.edu/projects/glove/

2. 书单数据:待审核

代码

# -*- coding: utf-8 -*-from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import numpy as np
from scipy import stats
import sys
import os
import math
import json
import heapq#VecFile = './models/fasttext_model_0804_09_cbow.vec'
VecFile = '../glove/vectors.txt'class minHeap():def __init__(self, k):self._k = kself._heap = []def add(self, item):if len(self._heap) < self._k:self._heap.append(item)heapq.heapify(self._heap)else:if item > self._heap[0]:self._heap[0] = itemheapq.heapify(self._heap)def get_min(self):if len(self._heap) > 0:return self._heap[0]else:return -2def get_all(self):return self._heapdef similarity(v1, v2):n1 = np.linalg.norm(v1)n2 = np.linalg.norm(v2)return np.dot(v1, v2) / n1 / n2def load_vectors(input_file=VecFile):vectors = {}with open(VecFile) as fopen:fopen.readlines()for line in fopen:line_list = line.strip().split()movie_name = line_list[0]vec = np.array([float(_) for _ in line_list[1:]], dtype=float)if not movie_name in vectors:vectors[movie_name] = vecreturn vectorsdef topk_like(cur_movie_name, k=5, print_log=False):global vectorsmin_heap = minHeap(k)like_candidates = []#logger.debug('vecotrs size=%d' % (len(vectors)))#logger.debug('cur_movie_name %s, %s' % (cur_movie_name, type(cur_movie_name)))if cur_movie_name not in vectors.keys():print(cur_movie_name+" not in vector")return []cur_vec = vectors[cur_movie_name]if print_log:print('%s top %d likes:' % (cur_movie_name, k))for movie_name, vec in vectors.items():if movie_name == cur_movie_name:continuesim = similarity(cur_vec, vec)if len(like_candidates) < k or sim > min_heap.get_min():min_heap.add(sim)like_candidates.append((movie_name, sim))if print_log:for t in sorted(like_candidates, reverse=True, key=lambda _:_[1])[:k]:print('\t%s %f' % (t[0],t[1]))return sorted(like_candidates, reverse=True, key=lambda _:_[1])[:k]vectors = load_vectors(VecFile)if __name__ == '__main__':movie_names = [u'追风筝的人', u'看见', u'长尾理论', u'从0到1']for movie_name in movie_names:topk_like(movie_name, print_log=True)#generate_movie_topk_like_result('./output/leancloud_movie_fasttext.json', k=25)

效果

追风筝的人 top 5 likes:HTML 0.433426陆小凤传奇 0.423955百年孤独 0.408164战胜华尔街 0.403829沉默的大多数 0.390571
看见 top 5 likes:雪山飞狐 0.418104鹿鼎记(全五册) 0.407155概念力 0.405503梦里花落知多少 0.377425股票大作手操盘术 0.353401
长尾理论 top 5 likes:怪诞行为学 0.664615全球32位顶尖广告文案的写作之道 0.460249人人都是产品经理 0.429592傲慢与偏见 0.412715七堂极简物理课 0.357686
从0到1 top 5 likes:创业维艰 0.696322浪潮之巅 0.477051诛仙 0.358522Scikit-Learn 0.354489Book 0.334162

根据书单来制作item2vec相关推荐

  1. 有没有书单视频制作软件?制作书单四步完成

    有没有书单视频制作软件?一些爱读书的小伙伴们,应该对于书单视频并不陌生.很多时候我们入坑一本书都是因为看到了这本书的书单,然后被其中的内容所吸引.那么问题来了,如何制作书单视频呢?这听上去难度系数有点 ...

  2. 抖音视频剪辑书单号的新创作方向

    抖音视频剪辑书单号的新创作方向,以前很多抖音视频书单号基本套路都是通过剪辑影视电影或电视剧,再加上文案的方式创作视频,但随着平台对版权侵权的打击,影视剪辑基本都有侵权问题,这就给书单号制作造成了严重的 ...

  3. 爆火书单视频怎么制作?实用制作教程来了

    爆火书单视频怎么制作?不知道大家在平时刷短视频的时候,有没有刷到一些书单视频.通常我们通过一个视频就被种草了一本书.这样的一种方式让原本枯燥无味的阅读更为有趣,同时我们也可以和他人交流阅读感想.那么书 ...

  4. 怎么制作书单视频?一款好用的制作软件教程

    怎么制作书单视频?大家在日常生活中有没有刷到一些好书.美词美句的推荐视频呢?这样的视频主要是向大家介绍分享一些好书推荐单,大家在看到视频的时候就可以种草自己喜欢的书籍.那么问题来了,这样的视频如何制作 ...

  5. 怎么制作书单视频?免费制作书单视频软件分享

    怎么制作书单视频呢?书单视频是一种通过视频形式介绍一系列的创意方式,它包括封面.作者.简介.文字内容等信息.近年来,随着网络视频的普及和流行,书单视频在网络上越来越受欢迎,成为了一种流行的文化现象.大 ...

  6. 1024 大促书单丨神券在手,快乐我有

    //    把闸拉了,今天谁也别想加班!  // 又是一年1024,又是一年程序员节 这嘴上说着"今天不加班" 肉体却被牢牢封印在电脑前的日子何时是个头 擦掉泪水,生活还要继续 博 ...

  7. 小白学python买什么书-书单狗 篇一:小白学Python,到底要看多少书?

    书单狗 篇一:小白学Python,到底要看多少书? 2020-07-06 10:52:23 130点赞 1939收藏 76评论 比起Linux,Python的学习资料真的是浩如烟海,即使对于小白来讲, ...

  8. 现在做抖音书单挣钱吗?

    首先题主要明白,书单是怎么来赚钱的. 说到底还是以淘宝客的形式来变现,除了书单号以外,包括养生号.音乐号.情感号等,其实都是相同的变现模式,所以理论上来说,只要抖音还可以做,那么书单号就依然能够玩下去 ...

  9. redis深度历险:核心原理与应用实践_送你一份Redis书单,以后使用缓存的问题不用再问我啦!...

    点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书! ​ 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,很多程序员都可以通过使 ...

  10. 2019年开发者必读!20位阿里技术大牛们帮你列了一份经典书单!...

    导读:寒冬中,最值得投资的是学习,是增厚的知识储备.下面就是20位阿里技术大牛们为我们推荐的经典书籍.书籍类型涉及技术.管理.哲学等方面,希望这些书籍陪伴你度过这个漫长的寒冬.书单之外,还有成长感悟. ...

最新文章

  1. java postdelayed_你真的懂Handler.postDelayed()的原理吗?
  2. Hibernate关联关系映射
  3. (七)webStorage使用实例——webStorage作为简易数据库来使用
  4. mysql 设计两个主键都不可重复_18个MySQL面试题剖析(答案解析),听说身为程序员的你还没掌握...
  5. 巴斯光年探险阿里聚安全攻防挑战赛!决战12月28日!
  6. 信息学奥赛一本通 1168:大整数加法 | OpenJudge NOI 1.6 10:大整数加法
  7. python程序如何发布
  8. SQL注入之MYSQL注入
  9. 相机变换AND正交投影AND透视投影
  10. 怎么设置计算机升级更新失败怎么办,windows update更新失败怎么办,教您windows update更新失败怎么办...
  11. css文字长度实现宽度自适应、显示三行超出省略号
  12. GIC/ITS代码分析(1)MADT表
  13. MODIS标准数据产品分级
  14. 两个单词之间的编辑距离
  15. Mac微信更新 可备份手机聊天记录
  16. 小米云备份的正确打开方式,你学会了吗
  17. 鸡啄米之VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)
  18. 程序设计基石与实践之实现数字七段显示与发扑克牌问题
  19. message from server: Host 'DESKTOP-QIR7OV5' is not allowed to connect to this MySQL server问题
  20. win10 系统自带画图工具 mspaint

热门文章

  1. 软件中级设计师备考笔记考前记忆
  2. vivado程序固化到flash
  3. DirectX11参考资料之美
  4. 基于深度学习的小目标检测方法的调查和性能评估
  5. CSS固定定位(position: fixed;/background-attachment: fixed;)
  6. 纯css动画效果--animate的应用
  7. 一文读懂反向传播算法原理
  8. 老人步履蹒跚,警惕骨关节炎
  9. 环境保护设施运营组织服务认证 认证专业分类及运营设施范围
  10. 移植u-boot到树莓派