我正在尝试使用python和django构建电影推荐程序web应用程序。我试图使用一个命令来拍摄电影的描述,并创建一个信息检索系统,以允许用户找到输入相关单词的电影。然后将此tf-idf模型与初始推荐系统模型(基于CF项目和对数似然比)一起保存在Django缓存中。推荐系统:ValueError at /无法将字符串转换为float:
负载数据的命令是
python manage.py load_data --input=plots.csv --nmaxwords=30000 --umatrixfile=umatrix.csv
终端错误
File "/home/anthra/server_movierecsys/books_recsys_app/management/commands/load_data.py", line 80, in handle
matr[0]=newrow
ValueError: could not convert string to float: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
plot.csv截图
的代码如下:
个matr = np.empty([1,ndims])
titles = []
cnt=0
for m in xrange(nmovies):
moviedata = MovieData()
moviedata.title=tot_titles[m]
moviedata.description=tot_textplots[m]
moviedata.ndim= ndims
moviedata.array=json.dumps(vec_tfidf[m].toarray()[0].tolist())
moviedata.save()
newrow = moviedata.array
if cnt==0:
matr[0]=newrow
else:
matr = np.vstack([matr, newrow])
titles.append(moviedata.title)
cnt+=1
感谢。任何想法如何解决问题 – Sumi
我不太确定为什么你要序列化那里的数据。你可以在该行执行其他调用,将结果保存为newrow,然后只有json.dumps该变量。 – jkm