基于svm的中文文本自动分类系统

      今天刚改完成了软件工程的大作业展示,即:基于内容的文本分类系统,使用libsvm 进行分类。在百度谷歌了很久之后,发现很少有这样的源码可以下载,本人便想着写完之后上传上去。

      首先介绍一下流程:

      1.先使用中科院的分词器ICTLAS对训练集进行分词

     2.将所有的词构建成一个字典,以label item的形式,后面svm要用到。如:1 中国

3.提取特征词,由于并不是每个词都是有用的,因此要提取出特征词,主要提取名词,动词,动名词,和用户自定义的词。由于采用了中科院的分词算法,分词结果有词性标注,一个正则表达式就可以提取出来。

4.计算文档的TF-IDF,这个很简单,我采用的是最简单的一种计算方法,有兴趣可以去计算难一点的。

5.将每个训练集的分词结果转换成libsvm 的语料格式,红色框框的是 类标号(对每个分类设置一个标号)后面的是词项(label):词频(tf-idf),如下图。

基于svm的中文文本自动分类系统_第1张图片

6.对数据进行缩放,缩放至0-1之间,采用libsvm里面自带的缩放工具,不过我改了一些入口参数,可以将缩放后的结果保存到文件中,原来代码里没有,我的代码里面有注释,

7.采用libsvm生成模型,可以直接调用libsvm里面的包

8.允许用户输入测试集,然后调用生成的模型进行预测

9.将分类结果导出到文件夹中,每个分类建立一个文件夹,文件夹下面就是测试的文件,如图:

基于svm的中文文本自动分类系统_第2张图片

生成模型的运行步骤如下(我代码里已经有生成过的模型,不过你想要重新生成的话机这样子做):

基于svm的中文文本自动分类系统_第3张图片

接下来让大家看一下软件运行效果图:


基于svm的中文文本自动分类系统_第4张图片基于svm的中文文本自动分类系统_第5张图片



基于svm的中文文本自动分类系统_第6张图片


以上便是整个分类的结果,代码我放到了csdn上,训练集也放在了csdn上,先说明整个是一个完整的项目,我要得积分会比较高,项目源码10分,训练集语料8分,

源代码:http://download.csdn.net/detail/yinchuandong2/6795083

语料库:http://download.csdn.net/detail/yinchuandong2/7669989(新上传的,大家可以下载,)

我的博客:http://www.yinchuandong.com/

你可能感兴趣的:(算法)