Skip to content

使用Spark NaiveBayes 实现中文文本分类 use spark NaiveBayes for text classification

Notifications You must be signed in to change notification settings

Maweiming/SparkTextClassifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

SparkTextClassifier

使用Spark NaiveBayes 实现中文文本分类

   测试数据是我们自己用爬虫抓取的,自己练手也可以用搜狗实验室的数据集(http://www.sogou.com/labs/resource/list_news.php)    朴素贝叶斯分类效果不是很好 数据量大的时候准确率差不多80%,有条件可以试试tensorflow用CNN+RNN+word2vec 我们线上的准确率98%

0、DataFactory.java

0、读取 classPath -> data -> NewsData 目录下的数据 (通过文件夹分类) 
1、读取 classPath -> data -> stopWord.txt文件
2、移除停用词
3、把数据分词
4、分割数据(分为测试数据和训练数据)
5、写入数据到 classPath -> data 目录下的 data-test.txt 和 data-train.txt 文件中
6、保存标签数据到 classPath -> models ->  labels.txt 文件中

1、NaiveBayesTrain.java

0、读取 classPath -> data -> data-train.txt 文件
1、训练模型...
2、保存模型到 classPath -> models -> category-4 目录
3、保存tf文件到  classPath -> models -> tf 目录
4、保存idf文件到  classPath -> models -> idf 目录

2、NaiveBayesTest.java

0、加载模型 
1、加载tf、idf
2、读取 classPath -> data -> data-test.txt 文件
3、对数据进行打分

目录结构

-resources
    --data
        ---NewsData             语料目录
        ---data-test.txt        测试数据
        ---data-train.txt       训练数据
        ---stopWord.txt         停用词
    ---models
        ---category-4      模型目录
        ---idf             idf文件
        ---tf              tf文件
        ---labels.txt      标签数据

测试集训练结果

=======================================================
Summary
-------------------------------------------------------
Correctly Classified Instances          :      786	   98.7437%
Incorrectly Classified Instances        :       10	    1.2563%
Total Classified Instances              :      796
===================================

About

使用Spark NaiveBayes 实现中文文本分类 use spark NaiveBayes for text classification

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages