다음 코드를 사용하여 분류했습니다. 나는 가변 정확도가 55 %에서 60 %가되었다. 85 % -90 %까지 정확도를 높이고 싶습니다. 저는 8 가지 카테고리로 분류됩니다. 정확성을 높이려면 어떤 단계를 거쳐야합니다.어떤 분류자를 사용하면 텍스트 분류의 정확도를 높일 수 있습니까?
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import Pipeline
from nltk import word_tokenize
from textblob import TextBlob
cov = pd.read_csv("F:/kipro/ml/dataset.csv",
names = ["Complaint", "target"])
cov.dropna()
s=pd.factorize(cov['target'])
cov['tarname']=s[0]
msk = np.random.rand(len(cov)) < 0.8
train = cov[msk]
test = cov[~msk]
train.dropna()
test.dropna()
y_train, y_test = train.tarname, test.tarname
def tokens(message):
return TextBlob(message).words
def lemmas(message):
message=message.lower()
words = TextBlob(message).words
return [word.lemma for word in words]
text_clf = Pipeline([('vect', CountVectorizer(analyzer=lemmas)),
('tfidf', TfidfTransformer()),
('clf-svm', SGDClassifier())
,])
text_clf = text_clf.fit(train['Complaint'].values.astype('U'),train['tarname'])
predicted = text_clf.predict(test['Complaint'].values.astype('U'))
x=np.mean((y_test==predicted))*100
print(x)
여기 enter image description here
합리적으로 좋은 답변을 원하시면 pls는 데이터 세트의 스냅 샷을 게시하지 않습니다. 우리가 당신을 위해 텍스트를 재현하기를 원하십니까? 여기에서 어떤 방향을보십시오 : [좋은 질문] ( – skrubber
) 시작하려면 tf-idf 외에도 다른 방법으로 텍스트의 피쳐를 추출 할 수 있습니다. –
gridsearchcv로 시도했지만 맞는 시간이 많이 걸렸습니다. 어떤 기능 추출 방법을 사용해야합니까? @VivekKumar –