fit_transform()後のベクトルを、numpy.save
で保存。
下記のソースコードで新しい対象のデータをtransform()
するために、ベクトルをnumpy.load
して
います。
その後に、新しいデータをtransform()
したいのですが、AttributeError: transform not found
のエラーが立ちます。
bag = vect.transform(text1)
のコードが悪いのでしょうか?
ベクトル化したデータをどう使ってtransformして良いのか不明で・・・
ご教授いただけないでしょうか?
python
1import csv 2import numpy as np 3import MeCab 4import numpy 5import scipy.sparse.csr 6from sklearn.feature_extraction.text import CountVectorizer 7 8 9# MeCab による単語への分割関数 (名詞のみ残す) 10def split_text_only_noun(text): 11 tagger = MeCab.Tagger() 12 13 words = [] 14 for c in tagger.parse(text).splitlines()[:-1]: 15 surface, feature = c.split('\t') 16 pos = feature.split(',')[0] 17 if pos == '名詞': 18 words.append(surface) 19 # if pos == '動詞': 20 # words.append(surface) 21 return ' '.join(words) 22 23#bags = count.fit_transform(docs1)したデータをnumpy.save('my_vector',bags.toarray())で保存 24#上記データをロード 25vect = scipy.sparse.csr.csr_matrix(numpy.load('my_vector.npy')) 26 27# 予測用テキスト読み込み 28text1 = [] 29with open('clubthai.csv') as f: 30 reader = csv.reader(f) 31 print(reader) 32 for row in reader: 33 text = np.array(row) 34 print(text) 35 36 for textx in text: 37 # 分かち書きして配列に保存 38 tx = split_text_only_noun(textx) 39 text1.append(tx) 40print(text1) 41 42bag = vect.transform(text1) 43 44print(bag.toarray()) 45 46# 予測用テキストbow保存 47with open("create_text2.csv", "a", newline='', encoding="utf-8") as wf: 48 writer = csv.writer(wf, lineterminator="\n") 49 writer.writerows(bag.toarray()) 50
あなたの回答
tips
プレビュー