我正在测试基于SVD模型的推荐器。TypeError:列表索引必须是整数,而不是Python中的元组SVD模型
这里是我的测试代码:但我下面运行它后得到一个错误信息
import sys
from sys import argv
import csv
import recsys.algorithm
recsys.algorithm.VERBOSE = True
from recsys.algorithm.factorize import SVD
from recsys.datamodel.data import Data
likes = []
with open('/Users/xps13mynotebook/Desktop/w2v/likes.tsv', 'r') as f:
for line in f.readlines():
username,user_likes = line.strip().split('\t')
likes.append((username,user_likes))
data = Data()
VALUE = 1.0
for username in likes:
for user_likes in likes[username]:
data.add_tuple((VALUE, username, user_likes)) # Tuple format is: <value, row, column>
svd = SVD()
svd.set_data(data)
k = 5
svd.compute(k=k, min_values=3, pre_normalize=None, mean_center=False, post_normalize=True)
svd.similar('sheila')
错误:
TypeError Traceback (most recent call last)
<ipython-input-30-913000ff4e0e> in <module>()
10 VALUE = 1.0
11 for username in likes:
---> 12 for user_likes in likes[username]:
13 data.add_tuple((VALUE, username, user_likes)) # Tuple format is: <value, row, column>
14
TypeError: list indices must be integers, not tuple
无法理解你的代码...它不是indented..use likes.username而不是喜欢[usernsame] – SumanKalyan