文本挖掘tmSVM开源项目集成libSVM和liblinear包含Python和Java两种版本带PDF源码参考文档简介文本挖掘无论在学术界还是在工业界都有很广泛的应用场景。
而文本分类是文本挖掘中一个非常重要的手段与技术。
现有的分类技术都已经非常成熟,SVM、KNN、DecisionTree、AN、NB在不同的应用中都展示出较好的效果,前人也在将这些分类算法应用于文本分类中做出许多出色的工作。
但在实际的商业应用中,仍然有很多问题没有很好的解决,比如文本分类中的高维性和稀疏性、类别的不平衡、小样本的训练、Unlabeled样本的有效利用、如何选择最佳的训练样本等。
这些问题都将导致curveofdimension、过拟合等问题。
这个开源系统的目的是集众人智慧,将文本挖掘、文本分类前沿领域效果非常好的算法实现并有效组织,形成一条完整系统将文本挖掘尤其是文本分类的过程自动化。
该系统提供了Python和Java两种版本。
主要特征该系统在封装libsvm、liblinear的基础上,又增加了特征选择、LSA特征抽取、SVM模型参数选择、libsvm格式转化模块以及一些实用的工具。
其主要特征如下:封装并完全兼容*libsvm、liblinear。
基于Chi*的featureselection见feature_selection基于LatentSemanticAnalysis的featureextraction见feature_extraction支持Binary,Tf,log(tf),Tf*Idf,tf*rf,tf*chi等多种特征权重见feature_weight文本特征向量的归一化见Normalization利用交叉验证对SVM模型参数自动选择。
见SVM_model_selection支持macro-average、micro-average、F-measure、Recall、Precision、Accuracy等多种评价指标见evaluation_measure支持多个SVM模型同时进行模型预测采用python的csc_matrix支持存储大稀疏矩阵。
引入第三方分词工具自动进行分词将文本直接转化为libsvm、liblinear所支持的格式。
使用该系统可以做什么对文本自动做SVM模型的训练。
包括Libsvm、Liblinear包的选择,分词,词典生成,特征选择,SVM参数的选优,SVM模型的训练等都可以一步完成。
利用生成的模型对未知文本做预测。
并返回预测的标签以及该类的隶属度分数。
可自动识别libsvm和liblinear的模型。
自动分析预测结果,评判模型效果。
计算预测结果的F值、召回率、准确率、Macro,Micro等指标,并会计算特定阈值、以及指定区间所有阈值下的相应指标。
分词。
对文本利用mmseg算法对文本进行分词。
特征选择。
对文本进行特征选择,选择最具代表性的词。
SVM参数的选择。
利用交叉验证方法对SVM模型的参数进行识别,可以指定搜索范围,大于大数据,会自动选择子集做粗粒度的搜索,然后再用全量数据做细粒度的搜索,直到找到最优的参数。
对libsvm会选择c,g(gamma),对与liblinear会选择c。
对文本直接生成libsvm、liblinear的输入格式。
libsvm、liblinear以及其他诸如weka等数据挖掘软件都要求数据是具有向量格式,使用该系统可以生成这种格式:labelindex:valueSVM模型训练。
利用libsvm、liblinear对模型进行训练。
利用LSA对进行FeatureExtraction*,从而提高分类效果。
开始使用QuickStart里面提供了方便的使用指导如何使用该系统可以在命令行(Linux或cmd中)中直接使用,也可以在程序通过直接调用源程序使用。
在程序中使用。
#将TMSVM系统的路径加入到Python搜索路径中importsyssys.path.insert(0,yourPath+"\tmsvm\src")importtms#对data文件夹下的binary_seged.train文件进行训练。
tms.tms_train(“../data/binary_seged.train”)#利用已经训练好的模型,对对data文件夹下的binary_seged.test文件预测tms.tms_predict(“../data/binary_seged.test”,”../model/tms.config”)#对预测的结果进行分析,评判模型的效果tms.tms_analysis(“../tms.result”)在命令行中调用#对data文件夹下的binary_seged.train文件进行训练。
$pythonauto_train.py[options]../data/binary_seged.train#利用已经训练好的模型,对对data文件夹下的binary_seged.test文件预测pythonpredict.py../data/binary_seged.train../model/tms.config#对预测的结果进行分析,评判模型的效果$pythonresult_anlaysis.py../tms.result上面的调用方式都是使用系统中默认的参数,更具体、灵活的参数见程序调用接口输入格式labelvalue1[value2]其中label是定义的类标签,如果是binaryclassification,建议positive样本为1,negative样本为-1。
如果为multi-classification。
label可以是任意的整数。
其中value为文本内容。
label和value以及value1和value2之间需要用特殊字符进行分割,如”\t”模型输出模型结果会放在指定保存路径下的“model”文件夹中,里面有3个文件,默认情况下为dic.key、tms.model和tms.config。
其中dic.key为特征选择后的词典;
tms.model为训练好的SVM分类模型;tms.config为模型的配置文件,里面记录了模型训练时使用的参数。
临时文件会放在“temp”文件夹中。
里面有两个文件:tms.param和tms.train。
其中tms.param为SVM模型参数选择时所实验的参数。
tms.train是供libsvm和liblinear训练器所使用的输入格式。
源程序说明src:即该系统的源代码,提供了5个可以在Linux下可以直接调用的程序:auto_train.py、train.py、predict.py为在Linux下通过命令行调用的接口。
tms.py为在程序中调用的主文件,直接通过importtms即可调用系统的所有函数。
其他文件为程序中实现各个功能的文件。
lsa_src:LSA模型的源程序。
dependence:系统所依赖的一些包。
包括libsvm、liblinear、Pymmseg在Linux32位和64位以及windows下的支持包(dll,so文件)。
tools:提供的一些有用的工具,包括result_analysis.py等。
java:java版本的模型预测程序,项目重要更新日志2012/09/21针对linux下的bug进行修正。
重新生成win和linux版本的。
2012/03/08增加stem模块,并修正了几个Bug。
2011/11/22tmsvm正式发布。
联系方式邮箱:zhzhl202@163.comThanks本系统引用了libsvm、liblinear的包,非常感谢Chih-JenLin写出这么优秀的软件。
本系统还引用了Pymmseg,非常感谢pluskid能为mmseg写出Python下可以直接使用的程序从最初的想法萌生到第一版上线,中间试验了很多算法,最终因为效果不好删掉了很多代码,在这期间得到了许多人的帮助,非常感谢杨铮、江洋、敏知、施平等人的悉心指导。
特别感谢丽红一直以来的默默支持。
2023/2/8 18:37:14 3.39MB 文本挖掘 tmSVM libSVM 支持向量机
1
完整可运行的python代码。
数据过滤,清洗,分割,特征选择,训练词向量模型,测试等等,每行都有正文,真实的数据集超过20w条,是个不错的nlp入门例子。
2020/10/20 5:30:22 79.61MB python nlp 情感分析 用户评论
1
遥感处理软件,内置常见的机器学习算法随机森林和支持向量机,随机森林算法可以输出特征重要性,RFE_SVM可以进行特征选择,同时内置农业、土壤、水体行业使用模块
1
运用改进的SFLA进行疾病诊断的高维生物医学数据特征选择
2020/11/16 19:47:07 128KB 研究论文
1
《模式识别(第四版)》是2010年电子工业出版社出版的图书,作者是西奥多里蒂斯。
本书由模式识别领域的两位顶级专家合著,全面阐述了模式识别的基础理论、最新方法、以及各种应用。
作 者:(希)SergiosTheodoridis/(希)KonstantinosKoutroumbas,李晶皎等译第1章导论1.1模式识别的重要性1.2特征、特征向量和分类器1.3有监督、无监督和半监督学习1.4MATLAB程序1.5本书的内容安排第2章基于贝叶斯决策理论的分类器2.1引言2.2贝叶斯决策理论2.3判别函数和决策面2.4正态分布的贝叶斯分类2.5未知概率密度函数的估计2.6最近邻规则2.7贝叶斯网络习题MATLAB编程和练习参考文献第3章线性分类器3.1引言3.2线性判别函数和决策超平面3.3感知器算法3.4最小二乘法3.5均方估计的回顾3.6逻辑识别3.7支持向量机习题MATLAB编程和练习参考文献第4章非线性分类器4.1引言4.2异或问题4.3两层感知器4.4三层感知器4.5基于训练集准确分类的算法4.6反向传播算法4.7反向传播算法的改进4.8代价函数选择4.9神经网络大小的选择4.10仿真实例4.11具有权值共享的网络4.12线性分类器的推广4.13线性二分法中1维空间的容量4.14多项式分类器4.15径向基函数网络4.16通用逼近4.17概率神经元网络4.18支持向量机:非线性格况4.19超越SVM的范例4.20决策树4.21合并分类器4.22合并分类器的增强法4.23类的不平衡问题4.24讨论习题MATLAB编程和练习参考文献第5章特征选择5.1引言5.2预处理5.3峰值现象5.4基于统计假设检验的特征选择5.5接收机操作特性(ROC)曲线5.6类可分性测量5.7特征子集的选择5.8最优特征生成5.9神经网络和特征生成/选择5.10推广理论的提示5.11贝叶斯信息准则习题MATLAB编程和练习参考文献第6章特征生成I:线性变换6.1引言6.2基本向量和图像6.3Karhunen-Loève变换6.4奇异值分解6.5独立成分分析6.6非负矩阵因子分解6.7非线性维数降低6.8离散傅里叶变换(DFT)6.9离散正弦和余弦变换6.10Hadamard变换6.11Haar变换6.12回顾Haar展开式6.13离散时间小波变换(DTWT)6.14多分辨解释6.15小波包6.16二维推广简介6.17应用习题MATLAB编程和练习参考文献第7章特征生成II7.1引言7.2区域特征7.3字符形状和大小的特征7.4分形概述7.5语音和声音分类的典型特征习题MATLAB编程和练习参考文献第8章模板匹配8.1引言8.2基于最优路径搜索技术的测度8.3基于相关的测度8.4可变形的模板模型8.5基于内容的信息检索:相关反馈习题MATLAB编程和练习参考文献第9章上下文相关分类9.1引言9.2贝叶斯分类器9.3马尔可夫链模型9.4Viterbi算法9.5信道均衡9.6隐马尔可夫模型9.7状态驻留的HMM9.8用神经网络训练马尔可夫模型9.9马尔可夫随机场的讨论习题MATLAB编程和练习参考文献第10章监督学习:尾声10.1引言10.2误差计算方法10.3探讨有限数据集的大小10.4医学图像实例研究10.5半监督学习习题参考文献第11章聚类:基本概念11.1引言11.2近邻测度习题参考文献第12章聚类算法I:顺序算法12.1引言12.2聚类算法的种类12.3顺序聚类算法12.4BSAS的改进12.5两个阈值的顺序方法12.6改进阶段12.7神经网络的实现习题MATLAB编程和练习参考文献第13章聚类算法II:层次算法13.1引言13.2合并算法13.3cophenetic矩阵13.4分裂算法13.5用于大数据集的层次算法13.6最佳聚类数的选择习题MATLAB编程和练习参考文献第14章聚类算法III:基于函数最优方法14.1引言14.2混合分解方法14.3模糊聚类算法14.4可能性聚类14.5硬聚类算法14.6向量量化附录习题MATLAB编程和练习参考文献第15
2016/1/18 19:48:46 95.69MB 模式识别
1
《模式识别(第四版)》是2010年电子工业出版社出版的图书,作者是西奥多里蒂斯。
本书由模式识别领域的两位顶级专家合著,全面阐述了模式识别的基础理论、最新方法、以及各种应用。
作 者:(希)SergiosTheodoridis/(希)KonstantinosKoutroumbas,李晶皎等译第1章导论1.1模式识别的重要性1.2特征、特征向量和分类器1.3有监督、无监督和半监督学习1.4MATLAB程序1.5本书的内容安排第2章基于贝叶斯决策理论的分类器2.1引言2.2贝叶斯决策理论2.3判别函数和决策面2.4正态分布的贝叶斯分类2.5未知概率密度函数的估计2.6最近邻规则2.7贝叶斯网络习题MATLAB编程和练习参考文献第3章线性分类器3.1引言3.2线性判别函数和决策超平面3.3感知器算法3.4最小二乘法3.5均方估计的回顾3.6逻辑识别3.7支持向量机习题MATLAB编程和练习参考文献第4章非线性分类器4.1引言4.2异或问题4.3两层感知器4.4三层感知器4.5基于训练集准确分类的算法4.6反向传播算法4.7反向传播算法的改进4.8代价函数选择4.9神经网络大小的选择4.10仿真实例4.11具有权值共享的网络4.12线性分类器的推广4.13线性二分法中1维空间的容量4.14多项式分类器4.15径向基函数网络4.16通用逼近4.17概率神经元网络4.18支持向量机:非线性格况4.19超越SVM的范例4.20决策树4.21合并分类器4.22合并分类器的增强法4.23类的不平衡问题4.24讨论习题MATLAB编程和练习参考文献第5章特征选择5.1引言5.2预处理5.3峰值现象5.4基于统计假设检验的特征选择5.5接收机操作特性(ROC)曲线5.6类可分性测量5.7特征子集的选择5.8最优特征生成5.9神经网络和特征生成/选择5.10推广理论的提示5.11贝叶斯信息准则习题MATLAB编程和练习参考文献第6章特征生成I:线性变换6.1引言6.2基本向量和图像6.3Karhunen-Loève变换6.4奇异值分解6.5独立成分分析6.6非负矩阵因子分解6.7非线性维数降低6.8离散傅里叶变换(DFT)6.9离散正弦和余弦变换6.10Hadamard变换6.11Haar变换6.12回顾Haar展开式6.13离散时间小波变换(DTWT)6.14多分辨解释6.15小波包6.16二维推广简介6.17应用习题MATLAB编程和练习参考文献第7章特征生成II7.1引言7.2区域特征7.3字符形状和大小的特征7.4分形概述7.5语音和声音分类的典型特征习题MATLAB编程和练习参考文献第8章模板匹配8.1引言8.2基于最优路径搜索技术的测度8.3基于相关的测度8.4可变形的模板模型8.5基于内容的信息检索:相关反馈习题MATLAB编程和练习参考文献第9章上下文相关分类9.1引言9.2贝叶斯分类器9.3马尔可夫链模型9.4Viterbi算法9.5信道均衡9.6隐马尔可夫模型9.7状态驻留的HMM9.8用神经网络训练马尔可夫模型9.9马尔可夫随机场的讨论习题MATLAB编程和练习参考文献第10章监督学习:尾声10.1引言10.2误差计算方法10.3探讨有限数据集的大小10.4医学图像实例研究10.5半监督学习习题参考文献第11章聚类:基本概念11.1引言11.2近邻测度习题参考文献第12章聚类算法I:顺序算法12.1引言12.2聚类算法的种类12.3顺序聚类算法12.4BSAS的改进12.5两个阈值的顺序方法12.6改进阶段12.7神经网络的实现习题MATLAB编程和练习参考文献第13章聚类算法II:层次算法13.1引言13.2合并算法13.3cophenetic矩阵13.4分裂算法13.5用于大数据集的层次算法13.6最佳聚类数的选择习题MATLAB编程和练习参考文献第14章聚类算法III:基于函数最优方法14.1引言14.2混合分解方法14.3模糊聚类算法14.4可能性聚类14.5硬聚类算法14.6向量量化附录习题MATLAB编程和练习参考文献第15
2016/1/18 19:48:46 95.69MB 模式识别
1
首先产生若干种群(特征子集),然后用PSO算法对特征及参数进行优化。
在UCI标准数据集上进行的仿真实验表明,该算法可无效地找出合适的特征子集及LS-SVM参数,且与基于遗传算法的最小二乘支持向量机算法(GALS-SVM)和传统的LS-SVM算法相比具有较好的分类效果。
2020/7/14 17:04:21 256KB LS-SVM
1
首先产生若干种群(特征子集),然后用PSO算法对特征及参数进行优化。
在UCI标准数据集上进行的仿真实验表明,该算法可无效地找出合适的特征子集及LS-SVM参数,且与基于遗传算法的最小二乘支持向量机算法(GALS-SVM)和传统的LS-SVM算法相比具有较好的分类效果。
2016/6/20 2:21:45 256KB LS-SVM
1
FEAST算法是特征选择算法的一种,全称叫aFEAtureSelectionToolboxforCandMATLAB算法,FEAST提供了基于共同信息的滤波特征选择算法的实现,通过特征选择,可以协助我们筛选出有用的特征,减少模型训练时间。
函数已经打包好,在matlab中直接调用即可,输入想要的特征个数,会自动返回最优的特征,并且会有一个从优到劣的排序。
这是2017年更新的最新版本v2.0.0的全部源代码。
2017/3/16 12:55:22 80KB matlab 特征选择 feast 信号分析
1
针对海面背景舰船目标单一波段图像识别率低的问题,提出了一种基于卷积神经网络(CNN)的融合识别方法。
该方法提取可见光、中波红外和长波红外3个波段舰船目标特征进行融合识别。
模型次要分为3个步骤:通过设计的6层CNN,同时对三波段图像进行特征提取;利用基于互信息的特征选择方法对串联的三波段特征向量按照重要性进行排序,并按照图像清晰度评价指标选取固定长度的特征向量作为目标识别依据;通过额外的2个全连接层和输出层进行回归训练。
采用自建的三波段舰船图像数据库进行模型的训练和测试,共包含6类目标,5000余张图像。
实验结果表明,本文方法识别率达到84.5%,与单波段识别方法相比有明显提升。
1
共 48 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡