Python:从列表创建术语文档矩阵

Python: Creating Term Document Matrix from list

所以我想在一些文档上训练朴素贝叶斯算法,如果我有字符串形式的文档,下面的代码就可以 运行。但问题是我经历了一系列预处理步骤的字符串,这些步骤更多的是停用词删除、词形还原等,而是有一些自定义转换 returns ngrams 列表,其中 n 可以 [1,2 ,3] 取决于文本的上下文。 所以现在因为我有 ngram 列表而不是表示文档的字符串,所以我很困惑如何表示与 CountVectorizer 的输入相同。 有什么建议吗?

可以将 docs 作为字符串类型的文档数组正常工作的代码。

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)

您应该将所有预处理步骤组合到预处理器和分词器函数中,请参阅 scikit-learn 本身的 section 4.2.3.10 and CountVectorizer description from scikit-learn docs. For example of such tokenizers/transformers see related question of src code