Я не уверен, что это правильное место, но точность моего теста всегда составляет около .40, в то время как я могу довести точность своего тренировочного набора до 1.0. Я пытаюсь провести анализ настроений в твиттере Трампа, я комментировал каждый твит с положительной, отрицательной или нейтральной полярностью. Я хочу быть в состоянии предсказать полярность новых данных на основе моей модели. Я пробовал разные модели, но SVM, кажется, дает мне высочайшую точность теста. Я не уверен в том, почему моя точность модели данных так низка, но буду признателен за любую помощь или направление.
trump = pd.read_csv("trump_data.csv", delimiter = ";")
#drop all nan values
trump = trump.dropna()
trump = trump.rename(columns = {"polarity,,,":"polarity"})
#print(trump.columns)
def tokenize(text):
ps = PorterStemmer()
return [ps.stem(w.lower()) for w in word_tokenize(text)
X = trump.text
y = trump.polarity
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = .2, random_state = 42)
svm = Pipeline([('vectorizer', TfidfVectorizer(stop_words=stopwords.words('english'),
tokenizer=tokenize)), ('svm', SGDClassifier(loss='hinge', penalty='l2',alpha=1e-3,
random_state=42,max_iter=5, tol=None))])
svm.fit(X_train, y_train)
model = svm.score(X_test, y_test)
print("The svm Test Classification Accuracy is:", model )
print("The svm training set accuracy is : {}".format(naive.score(X_train,y_train)))
y_pred = svm.predict(X)
Это пример одной из строк в текстовом столбце набора данных
". @ Repbilljohnson съезд должен активизировать и отменить дискриминационный президент Трампа #eo запрет #immigrants & #refugees # oxfam4refugees"
Набор данных