В документации CountVectorizer предусмотрено, что по умолчанию token_pattern
принимает токены из 2 или более буквенно-цифровых символов. Если вы хотите изменить это, передайте свое собственное регулярное выражение
В вашем случае добавьте token_pattern = "^[a-zA-Z]{3,7}$"
к опциям CountVectorizer
Редактировать
Регулярное выражение, которое следует использовать: [a-zA-Z]{3,7}
. Смотрите пример ниже -
doc1 = ["Elon Musk is genius", "Are you mad", "Constitutional Ammendments in Indian Parliament",\
"Constitutional Ammendments in Indian Assembly", "House of Cards", "Indian House"]
from sklearn.feature_extraction.text import CountVectorizer
regex1 = '[a-zA-Z]{3,7}'
vectorizer = CountVectorizer(analyzer='word', stop_words = 'english', token_pattern = regex1)
vectorizer1 = vectorizer.fit_transform(doc1)
vectorizer.vocabulary_
Результаты -
{u'ammendm': 0,
u'assembl': 1,
u'cards': 2,
u'constit': 3,
u'elon': 4,
u'ent': 5,
u'ents': 6,
u'genius': 7,
u'house': 8,
u'indian': 9,
u'mad': 10,
u'musk': 11,
u'parliam': 12,
u'utional': 13}