我正在对IMDB电影数据集进行情感分析,以训练出一个模型来预测已经给出的评论。
我已经创建并加载了单词袋(它是一个SVMlight文件)作为稀疏矩阵。下面的代码显示了如何加载数据。 每行都有一个评论,其中包含字数。
在X中保存了字数,而y包含了从1到10的相应电影等级。例如,如果您打印(y-train [2]),则得到9。
对于我的任务,我们只想预测电影的评分是负数还是正数,而不是确切的值。因此,我需要在y中更改等级,其中等级> 5为正(大概= 1),而<= 5为负(= 0)。 我正在努力改变这些价值观。
我尝试将常规FOR循环与IF一起使用,但这不起作用。我是Python的初学者,因此对于任何数据可能都不正确
##How the data is loaded
@mem.cache
def get_data_train():
data_train = load_svmlight_file("labeledBowtrain.feat")
return data_train[0], data_train[1]
X_train, y_train = get_data_train()
##My pretty crappy for loop
for i in y_train2:
if y_train2 >=5:
y_train2=1
else:
y_train2=0
那会导致错误消息: “ ValueError:具有多个元素的数组的真值不明确。请使用a.any()或a.all()”
我真的不知道该怎么做。谢谢:)