2017-08-21 22 views
3

私のテキストデータの一部にsklearnのTfidfVectorizer()を使用して、各機能(単語)の用語頻度を知っています。私の現在のコードは、私が最も高く(またはその逆)、たとえば、TOP10に最低から「X_traintfidf」内の各用語のTF-IDF値をソートし、これらのソートされたTFを作りたい場合はTfidfVectorizerの出力をtf-idfでソートする(最低から最高、またはその逆)

from sklearn.feature_extraction.text import TfidfVectorizer 
tfidf = TfidfVectorizer(analyzer='word', stop_words = 'english') 

# fit_transform on training data 
X_traintfidf = tfidf.fit_transform(X_train) 

次-idf値を2つのSeriesオブジェクトにランキングすると、コードの最後の行からどのように進めるべきですか?

ありがとうございます。

私は同様のthreadを読んでいましたが、それを行う方法を理解できませんでした。多分、誰かがそのスレッドに表示されているヒントをここの質問に結びつけることができます。

答えて

0

fit_transform()の後には、get_feature_names()メソッドを通じて既存の語彙にアクセスできます。あなたはこれを行うことができます:

terms = tfidf.get_feature_names() 

# sum tfidf frequency of each term through documents 
sums = X_traintfidf.sum(axis=0) 

# connecting term to its sums frequency 
data = [] 
for col, term in enumerate(terms): 
    data.append((term, sums[0,col])) 

ranking = pd.DataFrame(data, columns=['term','rank']) 
print(ranking.sort_values('rank',inplace=True, ascending=False)) 
関連する問題