python 記号 SklearnのCountVectorizerからTfidfTransformerへの移行




vectorizer features (2)

この行

X = vectorizer(TEXT)

ベクタライザの出力を生成しません(これは例外を発生させるものです。それはTfIdf自体とは関係ありません)、あなたはfit_transformを呼び出すことになっています。 さらに、次の呼び出しも間違っています。 データはfit_transformではなく、 fit_transform引数として渡す必要があります。

X = vectorizer.fit_transform(TEXT)
transformer = TfidfTransformer()
X = transformer.fit_transform(X)

私はsklearnで膨大な量のテキストデータを処理しています。 まず、テキストのコンテキスト(単語数)をベクトル化し、TfidfTransformerを実行する必要があります。 私はCountVectorizerからの出力をTfidfTransformerの入力に持っていないような次のコードを持っています。

TEXT = [data[i].values()[3] for i in range(len(data))]

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer

vectorizer = CountVectorizer(min_df=0.01,max_df = 2.5, lowercase = False, stop_words = 'english')

X = vectorizer(TEXT)
transformer = TfidfTransformer(X)
X = transformer.fit_transform()

このコードを実行すると、次のエラーが発生します。

Traceback (most recent call last):
File "nlpQ2.py", line 27, in <module>
X = vectorizer(TEXT)
TypeError: 'CountVectorizer' object is not callable

私はテキストをベクトル化して、それがマトリックスになっていると思った。私が逃した遷移のステップはあるのだろうか? ありがとうございました!!


パイプラインを探しているかもしれません。おそらくこのようなものでしょう:

pipeline = Pipeline([
    ('vect', CountVectorizer()),
    ('tfidf', TfidfTransformer()),
])

または

pipeline = make_pipeline(CountVectorizer(), TfidfTransformer())

このパイプラインで、通常の操作( fitfit_transformなど)を実行します。

この例も参照してください。





tf-idf