2

次の例は、Sklearn 20 ニュースグループ データを使用して分類器をトレーニングする方法を示しています。

>>> from sklearn.feature_extraction.text import TfidfVectorizer 
>>> categories = ['alt.atheism', 'talk.religion.misc', 'comp.graphics', 'sci.space']
>>> newsgroups_train = fetch_20newsgroups(subset='train', ... categories=categories) 
>>> vectorizer = TfidfVectorizer() >>> vectors = vectorizer.fit_transform(newsgroups_train.data) 
>>> vectors.shape (2034, 34118)

ただし、使用したい独自のラベル付きコーパスがあります。

自分のデータの tfidfvector を取得した後、このような分類器をトレーニングしますか?

classif_nb = nltk.NaiveBayesClassifier.train(vectorizer)

要約すると、20 個のニュースグループの代わりに自分のコーパスを使用するにはどうすればよいでしょうか。次に、TFIDFVectorized コーパスを使用して分類器をトレーニングするにはどうすればよいですか?

ありがとう!

4

2 に答える 2

8

コメントからの質問に対処するため。いくつかの分類タスクで tfidf 表現を操作する基本的なプロセス全体:

  1. ベクトライザーをトレーニング データに適合させ、変数に保存します。これを tfidf と呼びます
  2. data = tfidf.transform(...) を使用して、トレーニング データ (ラベルなし、テキストのみ) を変換します
  3. some_classifier.fit( data, labels ) を使用してモデル (分類子) を適合させます。ここで、ラベルはデータ内のドキュメントと同じ順序です。
  4. テスト中に、新しいデータに対して tfidf.transform( ... ) を使用し、モデルの予測を確認します
于 2013-10-30T07:53:37.877 に答える