Bag of Words (BOW) vs N-gram (sklearn CountVectorizer) - 文本文档分类

Tal*_*kus 5 python feature-extraction n-gram feature-selection scikit-learn

据我所知,在 Bag Of Words 方法中,特征是一组单词及其在文档中的频率计数。另一方面,N-grams,例如unigrams也完全一样,只是没有考虑单词出现的频率。

我想使用 sklearn 和 CountVectorizer 来实现 BOW 和 n-gram 方法。

对于 BOW,我的代码如下所示:

CountVectorizer(ngram_range=(1, 1), max_features=3000)
Run Code Online (Sandbox Code Playgroud)

是否足以将“二进制”参数设置为 True 以执行 n-gram 特征选择?

CountVectorizer(ngram_range=(1, 1), max_features=3000, binary=True)
Run Code Online (Sandbox Code Playgroud)

n-gram 相对于 BOW 方法的优势是什么?

Dan*_*adi 2

如果将ngram_range参数设置为 (m, n),那么它将成为 N-gram 实现。