我对机器学习这个领域还比较新。我正在尝试进行情感分析预测。
“Type”列包含推文的情感(正面、负面或中性,用0、1和2表示)。“Tweet”列包含推文内容。
我正在尝试预测一组新推文的情感,分类为0、1和2。
当我编写这里给出的代码时,我遇到了维度不匹配的错误。
import pandas as pdtrain_tweets = pd.read_csv("tweets_type.csv")from sklearn.model_selection import train_test_splity = train_tweets.TypeX= train_tweets.Tweettrain_X, test_X, train_y, test_y = train_test_split(X, y, random_state=1)from sklearn.feature_extraction.text import CountVectorizervect = CountVectorizer()vect.fit(train_X)train_X_dtm = vect.transform(train_X)test_X_dtm = vect.transform(test_X)test_X_dtmfrom sklearn.naive_bayes import MultinomialNBnb = MultinomialNB()%time nb.fit(train_X_dtm, train_y)# make class predictions for X_test_dtmy_pred_class = nb.predict(test_X_dtm)# calculate accuracy of class predictionsfrom sklearn import metricsfrom sklearn.metrics import classification_report, confusion_matrixmetrics.accuracy_score(test_y, y_pred_class)march_tweets = pd.read_csv("march_data.csv")X=march_tweets.Tweetvect.fit(X)train_new_dtm = vect.transform(X)new_pred_class = nb.predict(train_new_dtm)
我得到的错误在这里:
如果你能帮我解决这个问题,我将非常感激。
回答:
看起来我犯了一个错误,在已经拟合了train_X之后又去拟合X。我发现一旦模型已经拟合,就没有必要重复进行拟合。所以我删除了这行代码,结果一切正常工作。
vect.fit(X)