У объекта 'list' нет атрибута 'lower' - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь соответствовать этой модели, но я получаю ошибку AttributeError: 'list' object has no attribute 'lower'.Я знаю, что lower можно применить только к str, но я не могу понять, как решить эту проблему.

X и Y - двоичные векторы для каждого текста в обучающем и тестовом наборе.Это списки, содержащие целые числа 0 и 1.

Так, например, X и Y могут выглядеть так:

X = [[1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 1], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, ], [1, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
Y = ['pos', 'pos', 'pos', 'neg', 'neg', 'neg', 'neg', 'neg']

Это мой код:

Y = ["pos"] * len(train_pos_vec) + ["neg"] * len(train_neg_vec)
X = train_pos_vec + train_neg_vec
text_clf = Pipeline([('vect', CountVectorizer(analyzer='word',
                                                  ngram_range=(1, 1),
                                                  stop_words='english')),
                         ('tfidf', TfidfTransformer()),
                         ('clf', MultinomialNB(alpha=.01))])

text_clf = text_clf.fit(X, Y)
predicted = text_clf.predict(X_test)
print("Unigram Accuracy : {}% \n".format(np.mean(predicted == Y_test) * 100))

Я правильно подхожу к модели?Есть ли другой способ?

...