【发布时间】:2018-04-07 00:09:03
【问题描述】:
我正在开发一个自动分类项目,首先要分离 csv 文件 train_data.csv 和 new_data.csv。
我正在使用来自本地网络驱动器的文件路径来分类到正确的类别。句子很短,所以我决定跳过蒸汽和停用词删除,只运行分类器来预测类别。在测试阶段取得良好的结果,准确率约为 81%,现在使用真实数据。
我的结果应该是 CSV 文件,其中包含 3 列文件路径、预测类别和特定值的“很高兴”% 准确度。
这是我的代码,现在它生成的空列应该是预测值。
# coding: utf-8
# In[24]:
import pandas as pd
data = pd.read_csv('train_data.csv',encoding='latin1', dtype={'SourcePath': str}, )
# In[25]:
import numpy as np
numpy_array = data.as_matrix()
X_train = numpy_array[:, 0]
Y_train = numpy_array[:, 1]
# In[26]:
data.head()
# In[27]:
data_test = pd.read_csv('new_data.csv',encoding='latin1', dtype={'SourcePath': str}, )
data_test.DocumentType=data_test.DocumentType.astype(str)
# In[28]:
data_test.head()
# In[29]:
numpy_array = data_test.as_matrix()
X_test = numpy_array[:, 0]
Y_test = numpy_array[:, 1]
# In[30]:
print(X_test)
# In[31]:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.pipeline import Pipeline
from sklearn.linear_model import SGDClassifier
text_clf_svm = Pipeline([('vect', CountVectorizer(stop_words='english')), ('tfidf', TfidfTransformer()),
('clf-svm', SGDClassifier(loss='hinge', penalty='l2',alpha=1e-3, max_iter=5, random_state=42))])
text_clf_svm = text_clf_svm.fit(X_train, Y_train)
predicted_svm = text_clf_svm.predict(X_test)
np.mean(predicted_svm == Y_test)
pd.concat([pd.Series(X_test),pd.Series(Y_test)],axis=1)
data.to_csv('outpoot2.csv')
【问题讨论】:
标签: python scikit-learn text-classification