python - spanish - tfidftransformer
¿Cómo se usa CountVectorizerand() de sklearn para obtener ngrams que incluyan cualquier puntuación como tokens separados? (1)
Yo uso sklearn.feature_extraction.text.CountVectorizer para calcular n-grams. Ejemplo:
import sklearn.feature_extraction.text # FYI http://scikit-learn.org/stable/install.html
ngram_size = 4
string = ["I really like python, it''s pretty awesome."]
vect = sklearn.feature_extraction.text.CountVectorizer(ngram_range=(ngram_size,ngram_size))
vect.fit(string)
print(''{1}-grams: {0}''.format(vect.get_feature_names(), ngram_size))
productos:
4-grams: [u''like python it pretty'', u''python it pretty awesome'', u''really like python it'']
La puntuación se elimina: ¿cómo incluirlos como tokens separados?
Debe especificar un tokenizador de palabras que considere cualquier puntuación como un token separado al crear la instancia sklearn.feature_extraction.text.CountVectorizer , utilizando el parámetro tokenizer
.
Por ejemplo, nltk.tokenize.TreebankWordTokenizer
trata la mayoría de los signos de puntuación como tokens separados:
import sklearn.feature_extraction.text
from nltk.tokenize import TreebankWordTokenizer
ngram_size = 4
string = ["I really like python, it''s pretty awesome."]
vect = sklearn.feature_extraction.text.CountVectorizer(ngram_range=(ngram_size,ngram_size), /
tokenizer=TreebankWordTokenizer().tokenize)
print(''{1}-grams: {0}''.format(vect.get_feature_names(), ngram_size))
productos:
4-grams: [u"''s pretty awesome .", u", it ''s pretty", u''i really like python'',
u"it ''s pretty awesome", u''like python , it'', u"python , it ''s",
u''really like python ,'']