ICTCLAS

该分词系统的主要思想是先通过CHMM(层叠形马尔可夫模型)进行分词,通过分层,既增加了分词的准确性,又保证了分词的效率。基本思路是:先进行原子切分,然后在此基础上进行N-最短路径粗切分,找到前N个最符合的切分结果,生成二元分词表,然后生成分词结果,接着进行词性标注并完成主要分词步骤。

CHI算法:

初始情况下,该特征项集合包含所有该类中出现的词。对个每个词,计算词和类别的统计

其中,N为文档总数,C为某一特定的类别,t表示特定的词条,A表示属于t的文档频数,B表示不属于c类的但是包含t的文档频数,C表示属于c但是不属于t的文档频数,D是既不包含t也不属于c类的文档频数。

分别计算次词条对各个类别的CHI值,取最大值。

选取高于某阈值的词条作为特征值,精简向量表示。

libSVM

LIBSVM是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。

【1】数据预处理:对训练集的预处理包括分词,取名词,去停用词等步骤;

【2】特征提取与表达:对文本进行如上所示的预处理之后,留下的词语仍然不能较典型的代表每个具体的类,然后对其进行CHI处理并建立数据词典。CHI 的中心思想是通过分析特征词与类别之间的关系,一个对某类有分类价值的特征词,应该在该类各个文档中均匀分布出现的次数较多,并且只在该类中出现的次数较多。

【3】将训练集住转化为libSVM所支持的格式:

  [label] [idex1]:[value1] [index2]:[value2] ...

  即 [l类别标号] [特征1]:[特征值] [特征2]:[特征值] ...

【4】同样,对测试集也进行分词,取名词,去停用词,CHI处理,并最终表达为所需要的向量的形式

【5】对训练集和数据集进行归一化是必要的,因为适当的scale有利于参数的选取和建svm模型的速度,生成文件trainscale和testscale,

【6】测试过程:第一次用默认的参数,进行svm预测,得到结果只有如图所示的49.76%。

【7】实验结果与性能评估:在本次试验中,共使用训练集10000篇,测试集10000篇,。通过多次实验得到最好的参数c=780时,得到整个试验中最高的准确率82.11%。

【8】其中,准确率最高的是第七类99.11308%,最低的是第八类57.3590%,召回率最高的是第四类93.1%,最低的是第九类66.1%。

【注】svm-scale有两点好处,第一点是加快训练速度,第二点是比没归一化前同样的条件训练出来的模型准确率更高。

wenbenfenlei的更多相关文章

随机推荐

  1. Samba服务器配置

    Samba服务器配置流程: (1)安装samba服务器先用#rpm -ivh samba-列出与samba有关的rpm包然后选择第一个包,用tab键补齐文件名 (2)创建新用户和其密码#useradd ...

  2. 回归树|GBDT|Gradient Boosting|Gradient Boosting Classifier

    已经好久没写了,正好最近需要做分享所以上来写两篇,这篇是关于决策树的,下一篇是填之前SVM的坑的. 参考文献: http://stats.stackexchange.com/questions/545 ...

  3. Table

    Table tb = new Table();TableRow r = new TableRow(); TableCell c = new TableCell();c.Text = "Sta ...

  4. 关于学习angularJS 的 心里路程(二)

    这一次主要的学习内容是 ng-route(本次的项目由于种种原因吧,我们采用了ui-router,而不是原生的ng-route) * 配置路由. * 注意这里采用的是ui-router这个路由,而不是 ...

  5. Solr5.4.0部署到Tomcat

    所用工具 下载 solr 5.4.0 版本:http://www.apache.org/dyn/closer.lua/lucene/solr/5.4.0 下载 Tomcat(6以上版本),另外可以根据 ...

  6. JSON.parse和eval的区别

    JSON.parse和eval的区别 JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是Jav ...

  7. javascript数据结构-链表

    gihtub博客地址 链表 是一种物理存储单元上非连续.非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每 ...

  8. SQL语句 分页实现

    1 通过sql实现分页. select top 5 * from judgeorder where id  not in (select top 10 id from judgeorder order ...

  9. preparestatement可以避免注入

    之所以PreparedStatement能防止注入,是因为它把单引号转义了,变成了\',这样一来,就无法截断SQL语句,进而无法拼接SQL语句,基本上没有办法注入了. 不使用这个,我们一般做查询或更新 ...

  10. unlink和close关系

    今天看到nginx用文件锁实现互斥的实现方案时,发现,unlink文件后还可需用fd,很是纳闷!于是搜索到此文,并自测了下,涨姿势了~分享给大家~ 原理: 每一个文件,都可以通过一个struct st ...