Skip to content

CNTexas/NaiveBayesTextClassifier

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Naive Bayes Chinese Text Classifier

Build Status

利用朴素贝叶斯算法进行中文文本的分类。

运行环境

python 2.7

依赖包: pynlpir, numpy

数据集

使用搜狗文本分类语料库,完整数据集共10个类别,每个类别8000个新闻文本。

本文选取了其中8个类别,每个类别分别选取2000,8000进行训练。其中80%作为训练集、 20%作为测试集。

由于完整数据集比较大,本目录下的data只包含了一个非常小的数据集,每个类别50个文本。

过程

对中文文本首先要进行分词,采用的是NLPIR汉语分词系统(使用python中pynlpir)。然后进行去停用词、低频词。

由于训练时间不长,对结果影响不大,没有进行其他降维处理。

朴素贝叶斯文本分类中,有两个模型,多项式模型和伯努利模型。两个模型分别是基于单词粒度和文本粒度的。我们代码中采用和实现的是多项式模型。

训练时间consumu time : 4308.61800003s

结果

(1)每个类别2000文本时

Car Economy Health IT Sports Travel Sum
Car 356 6 4 6 2 26 400
Economy 9 336 18 25 0 12 400
Health 1 5 377 14 0 3 400
IT 3 4 51 304 0 38 400
Sports 0 1 0 6 388 5 400
Travel 6 2 4 5 0 383 400
Sum 375 354 454 360 390 467 2400

准确率和召回率

precision(%) recall(%)
Car 94.93 89
Economy 94.92 84
Health 83.04 94.25
IT 84.44 76
Sports 99.49 97
Travel 82.01 95.75
average 89.81 89.33

(2)每个类别8000文本时

Car Economy Health IT Sports Travel Sum
Car 1465 35 9 18 5 68 1600
Economy 88 1295 71 91 1 54 1600
Health 9 22 1501 38 1 29 1600
IT 10 47 93 1369 5 76 1600
Sports 3 18 4 50 1480 45 1600
Travel 10 11 36 17 9 1517 1600
Sum 1585 1428 1714 1583 1501 1789 9600
precision(%) recall(%)
Car 92.42 91.56
Economy 90.68 80.94
Health 87.57 93.81
IT 86.48 85.56
Sports 98.6 92.5
Travel 84.8 94.81
average 90.09 89.86

可以看到每个类别的使用的文本数量2000or8000,对准确率和召回率影响并不是很大,均在90%左右。

About

Naive Bayes Chinese Text Classifier

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%