文本挖掘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
支持checkbox焦点代码voidSetIsChecked(bool?value,boolupdateChildren,boolupdateParent){if(value==_isChecked)return;_isChecked=value;if(updateChildren&&_isChecked.HasValue){foreach(TreeItemchildinchildren){child.SetIsChecked(_isChecked,true,false);}}if(updateParent&&parent!=null){parent.VerifyCheckState();}this.OnPropertyChanged("IsChecked");}
2023/1/18 0:44:08 103KB wpf treeview checkbox
1
什么是redis?Redis是用C语言开发的一个开源的高功能键值对(key-value)数据库。
它通过提供多种键值数据类型来适应不同场景下的存储需求。
目前为止Redis支持的键值数据类型如下:1.字符串类型2.散列类型3.列表类型4.集合类型5.有序集合类型redis的应用场景1.缓存(数据查询、短连接、新闻内容、商品内容等等)。
(最多使用)2.分布式集群架构中的session分离。
3.聊天室的在线好友列表。
4.任务队列。
(秒杀、抢购、12306等等)5.应用排行榜。
6.网站访问统计。
2021/7/27 3:15:03 204.72MB redis集 docker
1
合适elementui的全国城市三级联动json数据,包含编码,{ value:'110000', label:'北京市', children:[{ value:'110100', label:'北京市', children:[ {value:'110101',label:'东城区'}, {value:'110102',label:'西城区'}, {value:'110105',label:'朝阳区'}, {value:'110106',label:'丰台区'}, {value:'110107',label:'石景山区'}, {value:'110108',label:'海淀区'}, {value:'110109',label:'门头沟区'}, {value:'110111',label:'房山区'}, {value:'110112',label:'通州区'}, {value:'110113',label:'顺义区'}, {value:'110114',label:'昌平区'}, {value:'110115',label:'大兴区'}, {value:'110116',label:'怀柔区'}, {value:'110117',label:'平谷区'}, {value:'110118',label:'密云区'}, {value:'110119',label:'延庆区'} ] }] }
2015/4/18 22:19:06 178KB 全国城市数据 city elementui 三级联动
1
RedGateKegen注册机全系列破解详情请参见http://www.cnblogs.com/VAllen/archive/2012/09/26/SQLCompare.html摘要预览:RedGate双全(全软件全版)破解,本软件可以兼容所有版本和所有平台的RedGate软件,包括最新的ReflectorVS插件。
附件引用:ReflectorProCrack.exe是对应ReflectorAddin,启动这个程序,会自动的启动vs,版本会从高多低。
RedGateKeyCrack.exe是算号器和激活,使用激活的时候,请先断掉外网网络。
RedGateCrack.exe是对RedGate所有版本的破解补丁,使用这个前,请修改RedGateCrack.config。
使用方法引用:安装原版程序,将RedGateCrack.exe和RedGateCrack.config解压到安装的目录下,修改RedGateCrack.config下的value值,这个value值就是RedGate的原程序。
断开外网,然后启动RedGateCrack.exe,在程序激动的对话框中,输入使用RedGateKeyCrack.exe生成的序列号,点激活,大概等几秒钟,程序会提示网络错误,这时候点击手动激活,将手动激活的代码复制到RedGateKeyCrack.exe右边的输入框中,然后点一下GenActiveKey。
RedGateKegen注册机全系列破解详情请参见http://www.cnblogs.com/VAllen/archive/2012/09/26/SQLCompare.html
2018/7/24 2:28:43 26KB Red Gate
1
RedGateKegen注册机全系列破解详情请参见http://www.cnblogs.com/VAllen/archive/2012/09/26/SQLCompare.html摘要预览:RedGate双全(全软件全版)破解,本软件可以兼容所有版本和所有平台的RedGate软件,包括最新的ReflectorVS插件。
附件引用:ReflectorProCrack.exe是对应ReflectorAddin,启动这个程序,会自动的启动vs,版本会从高多低。
RedGateKeyCrack.exe是算号器和激活,使用激活的时候,请先断掉外网网络。
RedGateCrack.exe是对RedGate所有版本的破解补丁,使用这个前,请修改RedGateCrack.config。
使用方法引用:安装原版程序,将RedGateCrack.exe和RedGateCrack.config解压到安装的目录下,修改RedGateCrack.config下的value值,这个value值就是RedGate的原程序。
断开外网,然后启动RedGateCrack.exe,在程序激动的对话框中,输入使用RedGateKeyCrack.exe生成的序列号,点激活,大概等几秒钟,程序会提示网络错误,这时候点击手动激活,将手动激活的代码复制到RedGateKeyCrack.exe右边的输入框中,然后点一下GenActiveKey。
RedGateKegen注册机全系列破解详情请参见http://www.cnblogs.com/VAllen/archive/2012/09/26/SQLCompare.html
2019/10/2 11:43:28 26KB Red Gate
1
这个里面的都是测试数据,总共得分5分。
从控制台输入,不能从文件中读取。
实现了基本功能,加分项目都没有去实现,没有函数数组这些的实现。
这是用C++语言写的,新建parser类别要选C++,其他对于VS的配置和C语言一样。
for语句用的是枚举所有情况,你可以自行修改。
对预备工作中自然语言描述的简化C编译器的语言特性的语法,设计上下文无关文法进行描述借助Yacc工具实现语法分析器考虑语法树的构造:1.语法树数据结构的设计:节点类型的设定,不同类型节点应保存哪些信息,多叉树的实现方式2.实现辅助函数,完成节点创建、树创建等功能3.利用辅助函数,修改上下文无关文法,设计翻译模式4.修改Yacc程序,实现能构造语法树的分析器考虑符号表处理的扩充1.完成语法分析后,符号表项应添加哪些标识符的属性,保存语法分析的结果2.如何扩充符号表数据结构,Yacc程序如何与Lex程序交互,正确填写符号表项以一个简单的C源程序验证你的语法分析器,可以文本方式输出语法树结构,以节点编号输出父子关系,来验证分析器的正确性,如下例:main(){ inta,b; if(a==0) a=b+1;}可能的输出为:0:TypeSpecifier,integer,Children:1:IDDeclaration,symbol:aChildren:2:IDDeclaration,symbol:bChildren:3:VarDeclaration,Children:0124:IDDeclaration,symbol:aChildren:5:ConstDeclaration,value:0,Children:6:Expr,op:==,Children:457:IDDeclaration,symbol:aChildren:8:IDDeclaration,symbol:bChildren:9:ConstDeclaration,value:1,Children:10:Expr,op:+,Children:8911:Expr,op:=,Children:71012:ifstatement,Children:61113:compoundstatement,Children:3 12
2015/5/4 5:41:12 3.77MB LEX YACC 南开 王刚
1
Memcached缓存技术,kye-value型,进步访问速度。
并支持分布式等
2020/8/4 11:18:58 3.25MB Memcached
1
Redis是一个Key-Value存储系统。
和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,Redis支持各种不同方式的排序。
与memcached一样,为了保证效率,数据都是缓存在内存中。
区别的是Redis会周期性的把更新的数据写入磁盘或者把修正操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
2015/6/15 2:13:27 2.58MB redis
1
用于PDE的PETScPETSc作为非线性PDE的求解器“PETSc是一套数据结构和例程,用于通过偏微分方程建模的科学应用程序的可扩展(并行)处理方案”[请参见::]编译中假设您已使用指定的gcc和g++编译器正确安装了PETSc。
转到CMakeLists.txt并为gcc和g++编译器更改第9行和第17行。
转到FindPETSc.cmake,并将行26/27更改为PETSC_DIR和PETSC_ARCH。
在根目录下,输入cmake.然后,输入make或make-j运行输入文件PETSc选项样式用于输入文件,例如-option_nameoption_value。
参见例如input/HeatCond1D.i键入./PETScSolver<input_file_name>来运行输入文件。
例如,。
./PETScSolver
2021/8/23 7:11:43 40KB CMake
1
共 70 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡