Я немного смущен тем, как использовать ngrams в библиотеке scikit-learn в Python, в частности, как аргумент ngram_range
работает в CountVectorizer.
Запуск этого кода:
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. Возможно, аргумент не имеет никакого эффекта или у меня есть некоторые концептуальные проблемы с тем, что представляет собой настоящий биграмм! Я в тупике. Если кто-нибудь даст мне совет, чтобы бросить мне дорогу, я был бы благодарен.
UPDATE:
Я понял глупость моих путей. У меня создалось впечатление, что ngram_range
повлияет на словарь, а не на корпус.