资源简介
简易有效的文本分类

代码片段和文件信息
from sklearn import svm metrics
from sklearn.datasets import load_svmlight_file
import sys
# 返回precision recall f1 accuracy
def getScores( true_classes pred_classes average):
precision = metrics.precision_score( true_classes pred_classes average=average )
recall = metrics.recall_score( true_classes pred_classes average=average )
f1 = metrics.f1_score( true_classes pred_classes average=average )
accuracy = metrics.accuracy_score( true_classes pred_classes )
return precision recall f1 accuracy
# 命令行: python classEval.py 语料名 文件类型(lda bow等等)
corpus = sys.argv[1]
filetype = sys.argv[2]
# (可选)可指定只使用一部分特征
# selected feature dimensions can be specified in the last argument as:
# 1-400 (starting from 1)
if len(sys.argv) > 3:
dims = sys.argv[3].split(“-“)
dims[0] = int(dims[0]) - 1
dims[1] = int(dims[1])
else:
dims = None
# 按照模板,拿到training和test文件名
if corpus == ‘20news‘:
train_file = “20news-train-11314.svm-%s.txt“ %filetype
test_file = “20news-test-7532.svm-%s.txt“ %filetype
else:
train_file = “reuters-train-5770.svm-%s.txt“ %filetype
test_file = “reuters-test-2255.svm-%s.txt“ %filetype
# 加载training和test文件的特征
train_features_sparse true_train_classes = load_svmlight_file(train_file)
test_features_sparse true_test_classes = load_svmlight_file(test_file)
# 缺省加载为稀疏矩阵。转化为普通numpy array
train_features = train_features_sparse.toarray()
test_features = test_features_sparse.toarray()
print “Train: %dx%d. Test: %dx%d“ %( tuple( train_features.shape + test_features.shape ) )
if dims:
train_features = train_features[ : dims[0]:dims[1] ]
test_features = test_features[ : dims[0]:dims[1] ]
print “Choose only features %d-%d“ %( dims[0]+1 dims[1] )
else:
train_features = train_features[ : : ]
test_features = test_features[ : : ]
# 线性SVM,L1正则
model = svm.LinearSVC(penalty=‘l1‘ dual=False)
# 在training文件上训练
print “Training...“
model.fit( train_features true_train_classes )
print “Done.“
# 在test文件上做预测
pred_train_classes = model.predict( train_features )
pred_test_classes = model.predict( test_features )
# 汇报结果
print metrics.classification_report(true_train_classes pred_train_classes digits=3)
print metrics.classification_report(true_test_classes pred_test_classes digits=3)
for average in [‘micro‘ ‘macro‘]:
train_precision train_recall train_f1 train_acc = getScores( true_train_classes pred_train_classes average )
print “Train Prec (%s average): %.3f recall: %.3f F1: %.3f Acc: %.3f“ %( average
train_precision train_recall train_f1 train_acc )
test_precision test_recall test_f1 test_acc = getScores( true_test_classes pred_test_classes average )
print “Test Prec (%s average): %.3f recall: %.3f F1: %.3f Acc: %.3f“ %( average
test_precision test_recall test_f1 test_acc )
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-27 17:39 lda_classifier\
文件 3055 2017-02-27 17:39 lda_classifier\classEval.py
文件 7381 2017-02-27 17:39 lda_classifier\corpusLoader.py
文件 4563 2017-02-27 17:39 lda_classifier\ldaExp.py
文件 795 2017-02-27 17:39 lda_classifier\README.md
相关资源
- LDA 人脸识别
- 基于蚁群算法优化SVM的瓦斯涌出量预
- 基于模糊聚类和SVM的瓦斯涌出量预测
- FinalData v2.01.1028 绿色版
- LDAP比较好的教程,符IBM-TDS相关
- 基于CAN总线与ZigBee的瓦斯实时监测及
- SVM-Light资料,使用说明
- 果蝇算法融合SVM的开采沉陷预测模型
- BoW|Pyramid BoW+SVM进行图像分类
- 基于libsvm的图像分割代码
- 基于SVM及两类运动想象的多通道特征
- 小波包和SVM在轴承故障识别中的应用
- 林智仁教授最新版本LibSVM工具箱
- 台湾林教授的支持向量机libsvm
- 新闻分类语料
- libsvm-3.20
- 1998年1月-6月人民日报语料库
- 7种支持向量机SVM工具包
- A Practical Guide to Support Vector Classifica
- libSVM的代码详细解析,注释非常详细
- 台湾林志恒的LIBSVM的中文简体说明文
- SVM算法-回归拟合程序.zip
- Ldap Browser
- Qt 多线程连接数据库——数据库
- 基于Grid-Search_PSO优化SVM回归预测矿井
- 新冒落带高度算法FOA-SVM预计模型
- 官方最新版本libsvm-3.23
- 基于PCA和SVM的个性化睡眠分期研究
- NLPCC2014 微博情感分析样例数据
- 基于svm四种工具箱
评论
共有 条评论