python --利用朴素贝叶斯进行文本分类

本文介绍了如何利用python实现朴素贝叶斯进行文本分类。从分类目标出发,详细讲解了朴素贝叶斯分类器的工作原理,结合jieba进行中文文本的分词处理,并给出了具体的代码示例。实验结果显示分类准确率约98%,适用于初步的文本分类任务。
摘要由CSDN通过智能技术生成

python --利用朴素贝叶斯进行文本分类

一,分类目标

寻找文本的某些特征,然后根据这些特征将文本归为某个类。
使用监督式机器学习方法对文本进行分类:首先假设已经有分好类的N篇文档:(d1,c1)、(d2,c2)、(d3,c3)……(dn,cn)
di表示第i篇文档,ci表示第i个类别。目标是:寻找一个分类器,这个分类器能够:当丢给它一篇新文档d,它就输出d (最有可能)属于哪个类别。

二、朴素贝叶斯分类器

朴素贝叶斯分类器是一个概率分类器。假设现有的类别C={c1,c2,……cm}。给定一篇文档d,文档d最有可能属于哪个类呢?这个问题用数学公式表示如下:
$P(Y,X) = P(Y|X)P(X)=P(X|Y)P(Y) $

其中P ( Y ) P(Y)P(Y)叫做先验概率,P ( Y ∣ X ) P(Y|X)P(Y∣X)叫做后验概率,P ( Y , X ) P(Y,X)P(Y,X)叫做联合概率。
在机器学习的视角下,我们把X XX理解成**“具有某特征”,把Y YY理解成“类别标签”(一般机器学习问题中都是X=>特征, Y=>结果对吧)。在最简单的二分类问题(是与否判定)下,我们将Y YY理解成“属于某类**”的标签。

三、jieba切词

jieba分词属于概率语言模型分词。概率语言模型分词的任务是:在全切分所得的所有结果中求某个切分方案S,使得P(S)最大。

jieba支持三种分词模式:
全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
精确模式,试图将句子最精确地切开,适合文本分析;
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

jeiba分词过程:
生成全切分词图:根据trie树对句子进行全切分,并且生成一个邻接链表表示的词图(DAG),查词典形成切分词图的主体过程如下所示:

for(int i=0;i<len;){
   
    boolean match = dict.getMatch(sentence, i,
wordMatch);//到词典中查询
    if (match) {
   // 已经匹配上
        for (String word:wordMatch.values)
{
   //把查询到的词作为边加入切分词图中
            j = i+word.length();
            g.addEdge(new CnToken(i, j, 10, word)<
  • 5
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值