vectorizer sklearn scikit learn idf feature engineering python scikit-learn

python - sklearn - CountVectorizer ignorando ''I''



tf idf python scikit learn (1)

¿Por qué CountVectorizer en sklearn ignora el pronombre "I"?

ngram_vectorizer = CountVectorizer(analyzer = "word", ngram_range = (2,2), min_df = 1) ngram_vectorizer.fit_transform([''HE GAVE IT TO I'']) <1x3 sparse matrix of type ''<class ''numpy.int64''>'' ngram_vectorizer.get_feature_names() [''gave it'', ''he gave'', ''it to'']


El tokenizador predeterminado considera solo palabras de 2 caracteres (o más).

Puede cambiar este comportamiento pasando un token_pattern apropiado a su CountVectorizer .

El patrón predeterminado es (ver la firma en los documentos ):

''token_pattern'': u''(?u)//b//w//w+//b''

Puede obtener un CountVectorizer que no suelte palabras de una letra cambiando el valor predeterminado, por ejemplo:

from sklearn.feature_extraction.text import CountVectorizer ngram_vectorizer = CountVectorizer(analyzer="word", ngram_range=(2,2), token_pattern=u"(?u)//b//w+//b",min_df=1) ngram_vectorizer.fit_transform([''HE GAVE IT TO I'']) print(ngram_vectorizer.get_feature_names())

Lo que da:

[''gave it'', ''he gave'', ''it to'', ''to i'']