web-dev-qa-db-ja.com

AttributeError:TFIDFとCountVectorizerで 'int'オブジェクトに 'lower'属性がありません

エントリーメッセージのさまざまなクラスを予測して、ペルシャ語に取り組みました。 TfidfとNaive-Bayesを使用して、入力データを分類しました。これが私のコードです:

import pandas as pd
df=pd.read_Excel('dataset.xlsx')
col=['label','body']
df=df[col]
df.columns=['label','body']
df['class_type'] = df['label'].factorize()[0]
class_type_df=df[['label','class_type']].drop_duplicates().sort_values('class_type')
class_type_id = dict(class_type_df.values)
id_to_class_type = dict(class_type_df[['class_type', 'label']].values)
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer()
features=tfidf.fit_transform(df.body).toarray()
classtype=df.class_type
print(features.shape)
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.naive_bayes import MultinomialNB 
X_train,X_test,y_train,y_test=train_test_split(df['body'],df['label'],random_state=0)
cv=CountVectorizer()
X_train_counts=cv.fit_transform(X_train)
tfidf_transformer=TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
clf = MultinomialNB().fit(X_train_tfidf, y_train)
print(clf.predict(cv.transform(["خريد و فروش لوازم آرايشي از بانه"])))

しかし、上記のコードを実行すると、次の例外がスローされますが、出力に「ads」クラスが表示されるはずです。

トレースバック(最新の呼び出しは最後):ファイル ".../multiclass-main.py"、27行目、X_train_counts = cv.fit_transform(X_train)ファイル "...\sklearn\feature_extraction\text.py"、1012行目、in fit_transform self.fixed_vocabulary_)ファイル "... sklearn\feature_extraction\text.py"、922行目、_count_vocab in analyze(doc)の機能:ファイル "... sklearn\feature_extraction\text.py"、308行目、tokenize(preprocess(self.decode(doc)))、stop_words)ファイル "... sklearn\feature_extraction\text.py"、256行目、戻りラムダx:strip_accents(x.lower())AttributeError: ' int 'オブジェクトには' lower '属性がありません

このプロジェクトでTfidfとCountVectorizerを使用するにはどうすればよいですか?

4
hadi javanmard

lowercase = False

cv = CountVectorizer(lowercase=False)
0
hamed baziyad