在 sklearn 中运行 MultinomialNB 之前,我正在对文本输入进行规范化,如下所示:
vectorizer = TfidfVectorizer(max_df=0.5, stop_words='english', use_idf=True)
lsa = TruncatedSVD(n_components=100)
mnb = MultinomialNB(alpha=0.01)
train_text = vectorizer.fit_transform(raw_text_train)
train_text = lsa.fit_transform(train_text)
train_text = Normalizer(copy=False).fit_transform(train_text)
mnb.fit(train_text, train_labels)
不幸的是,MultinomialNB 不接受在 LSA 阶段创建的非负值。有什么想法可以解决这个问题吗?