2016-12-23 2 views
0

Hallo Ich habe folgende Liste:Wie erhalten Sie die repräsentativsten Funktionen im folgenden tfidf-Modell?

listComments = ["comment1","comment2","comment3",...,"commentN"] 

ich ein TFIDF vectorizer erstellt ein Modell aus meiner Kommentare zu erhalten, wie folgt:

tfidf_vectorizer = TfidfVectorizer(min_df=10,ngram_range=(1,3),analyzer='word') 
tfidf = tfidf_vectorizer.fit_transform(listComments) 

Um nun mehr über mein Modell undestand Ich möchte die repräsentativsten Funktion nutzen zu können, habe ich versucht:

print("these are the features :",tfidf_vectorizer.get_feature_names()) 
print("the vocabulary :",tfidf_vectorizer.vocabulary_) 

und diese mir eine Liste von Worten zu geben, dass ich denke, dass mein Modell verwendet für die ve ctorization:

these are the features : ['10', '10 days', 'red', 'car',...] 

the vocabulary : {'edge': 86, 'local': 96, 'machine': 2,...} 

Jedoch habe ich einen Weg finden, möchte die 30 repräsentativsten Funktion nutzen zu können, meine ich die Worte, die die höchsten Werte in meinem TFIDF Modell in die Worte mit dem höchsten inversen frecuency las ich erreicht die Dokumentation, aber ich war nicht in der Lage, diese Methode zu finden Ich schätze wirklich Hilfe mit diesem Problem, danke im Voraus,

Antwort

1

Wenn Sie eine Liste des Vokabulars in Bezug auf IDF-Ergebnisse erhalten möchten, können Sie das idf_ Attribut und argsort verwenden es.

# create an array of feature names 
feature_names = np.array(tfidf_vectorizer.get_feature_names()) 

# get order 
idf_order = tfidf_vectorizer.idf_.argsort()[::-1] 

# produce sorted idf word 
feature_names[idf_order] 

Wenn Sie eine sortierte Liste von Tfidf-Scores für jedes Dokument erhalten möchten, würden Sie eine ähnliche Sache tun.

# get order for all documents based on tfidf scores 
tfidf_order = tfidf.toarray().argsort()[::-1] 

# produce words 
feature_names[tfidf_order] 
+0

danke für die Unterstützung, die ich wirklich schätze, – neo33

Verwandte Themen