0

私は現在、かなり些細な感情分類プログラムに取り組んでいます。トレーニングフェーズではすべてがうまくいきます。しかし、私はCountVectorizerを使用して、目に見えない単語を含むテキストの新しい文字列をテストするのに問題があります。CountVectorizerの読み書きボキャブラリー

このため、私はテストフェーズでベクトル化のためのルックアップボキャブラリを書こうとしています。しかし、パラメータとして渡すためのボキャブラリオブジェクトを作成して取得する方法はわかりません。次のように

私の二つの方法は、現在表示されます。

def trainingVectorTransformation (messages): 
    #--> ReviewText to vectors  
    vect = CountVectorizer(analyzer=split_into_lemmas).fit(messages['reviewText']) 

    messages_bow = vect.transform(messages['reviewText']) 

    feature_list = vect.get_feature_names() 
    #NOT SURE HOW TO CREATE VOCABULARY 
    with open("vocab.txt", "w") as text_file: 
     text_file.write(str(feature_list)) 

    tfidf_transformer = TfidfTransformer().fit(messages_bow) 


    messages_tfidf = tfidf_transformer.transform(messages_bow) 
    return messages_tfidf 

def testingVectorTransformation (messages): 
    #--> ReviewText to vectors 
    #NOT SURE HOW TO READ THE CREATED VOCABULARY AND USE IT APPROPRIATELY 
    txt = open("vocab.txt") 
    vocabulary = txt.read() 


    vect = CountVectorizer(analyzer=split_into_lemmas, vocabulary = vocabulary).fit(messages['reviewText']) 

    messages_bow = vect.transform(messages['reviewText']) 

    tfidf_transformer = TfidfTransformer().fit(messages_bow) 

    messages_tfidf = tfidf_transformer.transform(messages_bow) 
    return messages_tfidf 

誰が正しく、私はそれを非常に感謝し、語彙を作成して使用する方法についてのアドバイスを持っている場合。

答えて

0

シリアライザを使用してベクタライザのコピーを保存する必要があります。テストフェーズでピックルして読み込みます。あなたはまた、使用して単語を取得することができ、vocabulary_はトレーニングであなたが

を変換するだけではなくvect.fit_transformを呼び出す必要があり、詳細はまた、あなたのコードを見て

ためhereを参照してください属性

関連する問題