Estoy usando python y quiero obtener la representación TFIDF para un gran corpus de datos, estoy usando el siguiente código para convertir los documentos en su forma TFIDF.
from sklearn.feature_extraction.text import TfidfVectorizer tfidf_vectorizer = TfidfVectorizer( min_df=1, # min count for relevant vocabulary max_features=4000, # maximum number of features strip_accents='unicode', # replace all accented unicode char # by their corresponding ASCII char analyzer='word', # features made of words token_pattern=r'\w{1,}', # tokenize only words of 4+ chars ngram_range=(1, 1), # features made of a single tokens use_idf=True, # enable inverse-document-frequency reweighting smooth_idf=True, # prevents zero division for unseen words sublinear_tf=False) tfidf_df = tfidf_vectorizer.fit_transform(df['text']) Aquí paso un parámetro max_features . El vectorizador seleccionará las mejores características y devolverá una matriz dispersa scipy. El problema es que no sé qué características se están seleccionando y ¿cómo mapeo esos nombres de características a la matriz scipy que obtengo? Básicamente, para las n características seleccionadas de la m cantidad de documentos, quiero una matriz mxn con las características seleccionadas como nombres de columna en lugar de sus ID enteros. ¿Cómo logro esto?
Puede usar tfidf_vectorizer.get_feature_names() . Esto imprimirá los nombres de características seleccionados (términos seleccionados) de los documentos sin procesar.
También puede usar el atributo tfidf_vectorizer.vocabulary_ para obtener un dictado que asignará los nombres de las funciones a sus índices, pero no se ordenará. La matriz de get_feature_names() se ordenará por índice.
use tfidf_vectorizer.vocabulary_ , esto proporciona un mapeo de las características (términos de regreso a los índices)