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'']