Obtenez la sélection des noms de TFIDF Vectorizer
Je suis en utilisant python et je veux obtenir le TFIDF représentation pour un grand corpus de données, j'utilise le code suivant pour convertir les documents dans leur TFIDF forme.
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'])
Ici, j'ai passer un paramètre max_features
. Le vectorizer sélectionnera les meilleures fonctionnalités et de retourner une scipy sparse matrix. Le problème est que je ne sais pas quelles sont les caractéristiques d'obtenir sélectionnés et comment mapper ces noms de fonction de retour à la scipy matrice-je obtenir? En gros pour n
fonctions sélectionnées à partir de la m
nombre de documents, je veux un m x n
de la matrice avec les fonctions sélectionnées comme les noms de colonne, au lieu de leur integer id. Comment puis-je y arriver?
OriginalL'auteur Clock Slave | 2017-03-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
tfidf_vectorizer.get_feature_names()
. Cela permettra d'imprimer les noms de fonction sélectionné (sélectionnés) à partir des documents de base.Vous pouvez également utiliser
tfidf_vectorizer.vocabulary_
attribut pour obtenir un dict qui mappe les noms de leurs indices, mais ne seront pas triées. Le tableau deget_feature_names()
seront triés par index.vocabulary_
attribut est pour le vectorizer pas la transformation de la matrice.oui, c'était une faute de frappe.
ne get_feature_names() a un paramètre pour que nous puissions avoir une idée?
Quel genre de aperçu? get_feature_names() retournera un tableau de mots utilisés dans le vocabulaire.
Vous pouvez utiliser le découpage sur les tableaux comme
arr[:5]
à l'émission top 5 des valeurs. Son juste un tableau, vue comme vous le souhaitez.OriginalL'auteur Vivek Kumar
utilisation
tfidf_vectorizer.vocabulary_
, ce qui donne une correspondance entre les caractéristiques (conditions de retour pour les indices)tfidf_df.vocabulary_
me donne un attribut d'erreur. Cependant, je peux obtenir les caractéristiques sur l'utilisation detfidf_vectorizer.vocabulary_
, c'Est que ce que vous vouliez dire?oui. tfidf_vectorizer
oui je l'ai modifié afin de refléter le changement, mais il regarde l'aide de
get_feature_names()
est une bien meilleure solution.OriginalL'auteur orsonady