'列表'对象没有属性' lower'

时间:2018-06-02 18:10:29

标签: python machine-learning training-data data-fitting multinomial

我正在尝试使用此模型但我收到错误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))

我认为模型错了吗?还有其他方法吗?

0 个答案:

没有答案
相关问题