Я делаю анализ настроений набора данных фильма IMDB, чтобы обучить модель, предсказывающую предоставленный обзор.
Я уже создал и загрузил пакет слов (это файл SVMlight) в виде разреженной матрицы. Код ниже показывает, как данные загружаются.
В каждой строке есть один отзыв с количеством слов.
В X сохранено количество слов, а в y указан соответствующий рейтинг фильма от 1 до 10. Например, если вы печатаете (y-train [2]), вы получаете 9.
Для моего задания мы хотим предсказать, будет ли рейтинг фильма отрицательным или положительным, а не точное значение. Поэтому мне нужно изменить рейтинг по оси y, где рейтинг> 5 положительный (поэтому, вероятно, = 1), а <= 5 отрицательный (= 0).
Я изо всех сил пытаюсь изменить эти ценности. </p>
Я пытался использовать обычный цикл 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 ()»
Я действительно не знаю, как идти дальше. Спасибо:)