python - spanish - tfidfvectorizer
Una transiciĆ³n de CountVectorizer a TfidfTransformer en sklearn (2)
Estoy procesando una gran cantidad de datos de texto en sklearn. Primero necesito vectorizar el contexto del texto (conteos de palabras) y luego realizar un TfidfTransformer. Tengo el siguiente código que no parece tomar la salida de CountVectorizer a la entrada de TfidfTransformer.
TEXT = [data[i].values()[3] for i in range(len(data))]
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
vectorizer = CountVectorizer(min_df=0.01,max_df = 2.5, lowercase = False, stop_words = ''english'')
X = vectorizer(TEXT)
transformer = TfidfTransformer(X)
X = transformer.fit_transform()
Cuando ejecuto este código, obtengo este error:
Traceback (most recent call last):
File "nlpQ2.py", line 27, in <module>
X = vectorizer(TEXT)
TypeError: ''CountVectorizer'' object is not callable
Pensé que había vectorizado el texto y ahora está en una matriz. ¿Hay algún paso de transición que me haya pasado por alto? ¡¡Gracias!!
Esta línea
X = vectorizer(TEXT)
no produce el resultado del vectorizador (y este es el que plantea la excepción, no tiene nada que ver con TfIdf mismo), se supone que fit_transform
llamar a fit_transform
. Además, tu próxima llamada también es incorrecta. Tienes que pasar los datos como un argumento para fit_transform
, no para el constructor.
X = vectorizer.fit_transform(TEXT)
transformer = TfidfTransformer()
X = transformer.fit_transform(X)
Probablemente estés buscando una tubería , tal vez algo como esto:
pipeline = Pipeline([
(''vect'', CountVectorizer()),
(''tfidf'', TfidfTransformer()),
])
o
pipeline = make_pipeline(CountVectorizer(), TfidfTransformer())
En esta canalización, realice las operaciones regulares (por ej., fit_transform
, fit_transform
, etc.).
Ver este ejemplo también