我正在尝试使用python和django构建一个电影推荐器Web应用程序。我正在尝试使用命令来拍摄电影的描述并创建一个信息检索系统,以允许用户找到键入一些相关单词的电影。然后将该tf-idf模型与初始推荐系统模型(基于CF项和对数似然比)一起保存在Django缓存中。
加载数据的命令是
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
答案 0 :(得分:0)
json.dumps为newrow变量生成一个字符串。然后,您尝试将序列化的变量写入numpy数组。
据我所知,numpy数组仅限于声明的类型(如果你没有显式地提供一个,则隐式),所以当你用浮点数初始化数组时,代码会尝试输入你的字符串var newrow到浮点值 - 由于您没有传入表示数字的字符串而是传递数字的字符串而失败。
答案 1 :(得分:0)
微小的改变给了很棒的结果。改变了
$("div[id^=page]").each(function() {
var match = this.id.match(/\d+$/)[0];
$(this).load('cards/' + match + '.html');
});
到
moviedata.array=json.dumps(vec_tfidf[m].toarray()[0].tolist())"