推荐系统安装包遇到的坑

2,143 阅读1分钟

目录

  • gensim安装
  • pickle使用
  • Anaconda安装TensorFlow

1.gensim安装的坑

gensim依赖包:Numpy、SciPy、six、smart-open,由于gensim和这些依赖包的版本不兼容的问题,所以在安装过程中会出现一系列的问题。

第一种方法

去这个网站 直接下载numpy、scipy、gensim这些安装包,然后执行安装命名pip install XXX 即可(大部分人说这个方法可行)

第二种方法

那我可能是少部分人,所以我就最后选择用Anaconda安装,由于之前安装了Anaconda的环境,所以我就直接pip install gensim也就成功了

2.pickle使用的坑

  • 如果你用的是Python2,这个时候直接用cPickle也就没啥事了
  • 如果刚好你是Python3,这时候坑就比较多了。

bug1

运行下面的代码:

import pickle as pickle
f = open("popular_song.pkl","rb")
song_dic = pickle.load()

报错:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)

处理方法:其实说到底就是个编码问题啦

方法一:
song_dic = pickle.load(f, encoding='iso-8859-1')
方法二:
song_dic = pickle.load(f, encoding='bytes')
方法三:
song_dic = pickle.load(f, encoding='utf-8')

我一般就用bytes,毕竟还得把song_dic读出来,方便转
for song in list(song_dic.keys())[:10]:
    print(str(song,'utf-8'), str(song_dic[song],'utf-8'))

3.Anaconda安装TensorFlow

>>> conda create -n tensorflow python=3.5
>>> activate tensorflow
>>> pip install --upgrade --ignore-installed tensorflow

测试TensorFlow安装是否成功

>>> import tensorflow as tf
>>> hello = tf.constant('hello')
>>> se = tf.Session()
>>> print(se.run(hello))
b'hello'