我有些困惑如何在Python的scikit-learn库中使用ngrams,特别是在CountVectorizer中ngram_range
参数的工作方式。
运行以下代码:
from sklearn.feature_extraction.text import CountVectorizer
vocabulary = ['hi ', 'bye', 'run away']
cv = CountVectorizer(vocabulary=vocabulary, ngram_range=(1, 2))
print cv.vocabulary_
给我:
{'hi ': 0, 'bye': 1, 'run away': 2}
我原本错误地认为我会得到单个词和双词组合,就像这样:
{'hi ': 0, 'bye': 1, 'run away': 2, 'run': 3, 'away': 4}
我正在使用这里的文档:http://scikit-learn.org/stable/modules/feature_extraction.html
显然,我对如何使用ngrams有严重的误解。也许参数没有起作用,或者我对实际的bigram有一些概念上的问题!我被卡住了。如果有人能给我建议,我会非常感激。
更新:
我已经意识到我的错误。我曾以为ngram_range
将影响词汇表,而不是语料库。
ngram_range
。我的解决方案是事先手动将我的词汇向量化,包括2-gram...除非你有其他推荐的方法? - tumultous_rooster