tfidfvectorizer tfidftransformer spanish ngrams example countvectorizer python nlp scikit-learn tokenize n-gram

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