所以我想在一些文档上训练朴素贝叶斯算法,如果我有字符串形式的文档,下面的代码就可以运行了。但问题是我已经经历了一系列预处理步骤,其中更多的是停用词删除,词形还原等,而是有一些自定义转换返回ngrams列表,其中n可以[1,2,3]取决于在文本的背景下。 所以现在因为我有ngram列表而不是表示文档的字符串,我很困惑如何表示与CountVectorizer的输入相同。 有什么建议吗?
适用于docs的代码,作为string类型的文档数组。
count_vectorizer = CountVectorizer(binary='true')
data = count_vectorizer.fit_transform(docs)
tfidf_data = TfidfTransformer(use_idf=False).fit_transform(data)
classifier = BernoulliNB().fit(tfidf_data,op)
答案 0 :(得分:1)
您应该将所有预处理步骤合并到预处理器和标记器功能中,请参阅scikit-learn文档中的section 4.2.3.10和CountVectorizer description。例如,这种标记器/变换器请参见related question的src code scikit-learn本身。