2017-10-28 68 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

如果你想得到一個合理的好答案,請不要發佈你的數據集的快照。你是否希望我們爲你複製文本?看看這裏的一些方向:[好問題](https://stackoverflow.com/help/how-to-ask) – skrubber

+0

首先,除tf-idf外,您還可以通過其他方式從文本中提取功能。 –

+0

我正在嘗試與gridsearchcv,但它需要很多時間fit.Can你建議我,我應該使用@VivekKumar特徵提取方法 –

回答

-1

嘗試使用樸素貝葉斯分類器的屏幕截圖。它通常適用於大多數文本分類問題。

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/17768861) – JulienD

相關問題