that are considered here is an example on the toy data we used earlierin[ ]print("bards_words:\ {}format(bards_words)out[ ]bards_words['the fool doth think he is wise,''but the wise man knows himself to be fool'the default is to create one feature per sequence of tokens that is at least one token long and at most one token longor in other words exactly one token long (single tokens are also called unigrams)in[ ]cv countvectorizer(ngram_range=( )fit(bards_wordsprint("vocabulary size{}format(len(cv vocabulary_))print("vocabulary:\ {}format(cv get_feature_names())out[ ]vocabulary size vocabulary['be''but''doth''fool''he''himself''is''knows''man''the''think''to''wise'to look only at bigrams--that isonly at sequences of two tokens following each other--we can set ngram_range to ( )in[ ]cv countvectorizer(ngram_range=( )fit(bards_wordsprint("vocabulary size{}format(len(cv vocabulary_))print("vocabulary:\ {}format(cv get_feature_names())out[ ]vocabulary size vocabulary['be fool''but the''doth think''fool doth''he is''himself to''is wise''knows himself''man knows''the fool''the wise''think he''to be''wise man'using longer sequences of tokens usually results in many more featuresand in more specific features there is no common bigram between the two phrases in bard_words working with text data