vectorizer tfidfvectorizer spanish scikit learn idf hashingvectorizer fit countvectorizer python scikit-learn vectorization tf-idf

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