2017-10-28 3 views
-2

다음 코드를 사용하여 분류했습니다. 나는 가변 정확도가 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

+0

합리적으로 좋은 답변을 원하시면 pls는 데이터 세트의 스냅 샷을 게시하지 않습니다. 우리가 당신을 위해 텍스트를 재현하기를 원하십니까? 여기에서 어떤 방향을보십시오 : [좋은 질문] ( – skrubber

+0

) 시작하려면 tf-idf 외에도 다른 방법으로 텍스트의 피쳐를 추출 할 수 있습니다. –

+0

gridsearchcv로 시도했지만 맞는 시간이 많이 걸렸습니다. 어떤 기능 추출 방법을 사용해야합니까? @VivekKumar –

답변

-1

이 나이브 베이 즈 분류를 사용해보십시오 데이터 세트의 내 스크린 샷입니다. 일반적으로 대부분의 텍스트 분류 문제에 적용됩니다.

+0

이 질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. - [리뷰에서] (리뷰/저품절 포스트/17768861) – JulienD