0

質問分類にscikit-learnを使用しています。私はこのコードを持っている:TfidfVectorizerとSelectPercentileは何を返しますか?

how serfdom develop leav russia ? 

(0, 5270) 0.499265751002 
(0, 3555) 0.473352969263 
(0, 1856) 0.449852125968 
(0, 5433) 0.569476725713 

[ 0. 0. 0. ..., 0. 0. 0.] 
6743 

最初の質問は、tfidfVectorizerで返される行列は何を意味するのである:次のような結果が生成さ

print(features[0], '\n') 

vectorizer = TfidfVectorizer(sublinear_tf=True, max_df=0.5, 
          stop_words='english') 

features = vectorizer.fit_transform(features) 

print(features[0], '\n') 
selector = SelectPercentile(f_classif, percentile=100) 
selector.fit(features, labels) 
features = selector.transform(features).toarray() 

print(features[0]) 
print(len(features[0]), '\n') 

? sklearnのドキュメントには、

が含まれています。用語とドキュメントを返します。 これはfitに続くtransformに相当しますが、より効率的に実装されます。ウィキペディアから

:文書が条件と何回、彼らが現れる含ま

ショー。

行列のウィキペディアの例は単純ですが、戻り値はまったく異なるようです。

次はSelectPercentile機能は、与えられた割合に応じて、最も重要な機能のリストを返す必要があります:

を選択した機能にXを減らします。

なぜ6743の機能が得られますか? :D

P .:プログラムは89%の精度で動作するようです。

編集:私はPythonと機械学習には新しいので、im fiveのように説明してください。

+0

クロス投稿:http://stats.stackexchange.com/q/245928あなたが詳細に全体のTf-IDFを説明し、以下のリンクを、参照している場合

これは、より便利になります/ 2921、http://stackoverflow.com/q/40595936/781723複数のサイトに同じ質問を投稿しないでください(http://meta.stackexchange.com/q/64068)。誰も時間を無駄にすることなく、それぞれのコミュニティは答えに正直な打撃を与えるべきです。 –

答えて

1

私たちのコンピュータは数字(彼らが理解できる唯一の言語)で動作します。 テキストを処理/解析するには、そのテキストを数値に変換する方法が必要です。 TfIdf(用語頻度 - 文書周波数の逆数)はそのような方法の1つです。

用語頻度(Tf)は、ドキュメント内の単語の頻度に基づいて、ドキュメント内の単語の重要度を示します。しかし、意味的に非常に重要な言葉の頻度が低いということは、可能性があります。この問題を解決するために、「Inverse Document Frequency」(Idf)を使用します。

https://janav.wordpress.com/2013/10/27/tf-idf-and-cosine-similarity/

関連する問題