程序员的数学基础课
黄申
LinkedIn 资深数据科学家
83374 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 58 讲
导读 (1讲)
基础思想篇 (18讲)
程序员的数学基础课
15
15
1.0x
00:00/00:00
登录|注册

23 | 文本分类:如何区分特定类型的新闻?

基于统计和机器学习
基于字符串匹配
同义词和扩展词
停用词
取词干和归一化
分词
同义词和扩展词
停用词
取词干和归一化
分词
实时分类预测
训练模型
预处理自然语言
采集训练样本
思考题
总结
运用朴素贝叶斯模型
基于自然语言的预处理
文本分类系统的基本框架
如何用朴素贝叶斯方法区分特定类型的新闻?

该思维导图由 AI 生成,仅供参考

你好,我是黄申。
你平时应该见过手机 App 推送的新闻吧?你有没有觉得这些 App 的推荐算法很神奇?它们竟然可以根据你的喜好来推荐新闻。想要实现这些推荐算法,有一个非常重要的步骤就是给新闻分类。可是,新闻头条这种综合性的平台,需要处理的新闻都是海量的,我们不可能完全靠人工手动处理这些事情。这个时候,我们就要用到计算机技术,来对文本进行自动分类。
上一节,我给你介绍了如何利用朴素贝叶斯方法,教会计算机进行最基本的水果分类。基于水果分类,今天我们继续深入分类这个话题,告诉你如何利用自然语言处理和朴素贝叶斯方法,对新闻这种长篇文本进行分类。

文本分类系统的基本框架

想要实现一个完整的文本分类系统,我们通常需要进行这些步骤:

1. 采集训练样本

对于每个数据对象,我们必须告诉计算机,它属于哪个分类。上一节的水果案例里,我们给每个水果打上“苹果”“甜橙”和“西瓜”的标签,这就是采集训练样本。
同样,我们可以给每一篇新闻打上标签,也就是说,我们首先要分辨某条新闻是什么类型的,比如是政治的、军事的、财经的、体育的,还是娱乐的等等。这一点非常关键,因为分类标签就相当于计算机所要学习的标准答案,其质量高低直接决定了计算机的分类效果。此外,我们也可以在一开始就预留一些训练样本,专门用于测试分类的效果。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了利用朴素贝叶斯方法对新闻进行分类的基本原理和方法。首先,文章讨论了构建文本分类系统的基本框架,包括采集训练样本、预处理自然语言、训练模型和实时分类预测。其中,预处理自然语言包括分词、取词干和归一化以及停用词的处理。其次,文章强调了文本数据的重要属性以及如何提取特征,介绍了词包模型和分词的方法。此外,还介绍了中文分词的两种主流模型:基于字符串匹配和基于统计和机器学习。文章强调了朴素贝叶斯方法和文本处理的结合,以及如何使用建好的字典统计朴素贝叶斯方法所需的数据。最后,通过朴素贝叶斯模型进行文本的分类,文章提供了详细的技术指导和示例。整体而言,本文深入浅出地介绍了利用朴素贝叶斯方法对新闻进行分类的关键步骤和技术特点,为读者提供了清晰的技术指导。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员的数学基础课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(20)

  • 最新
  • 精选
  • 冰冷的梦
    老师,我觉得这个p(c|fi,fj) = p(c|fi) * p(c|fj)怪怪的,这个是怎么推导的啊?

    作者回复: 这里是假设f1和f2相互独立,所以有p(c|f1,f2)=p(c,f1,f2)/(p(f1,f2))=(p(c,f1)p(c,f2))/(p(f1)p(f2))=p(c|f1)p(c|f2)

    2019-03-07
    9
    32
  • qinggeouye
    P(政治|美国电影) = P(政治|美国) · P(政治|电影) = [ P(美国|政治) · P(政治) / P(美国) ] · [ P(电影|政治) · P(政治) / P(电影) ] = [ 0.0028% · 20% / 0.0028% ] · [ ... · 20% / 0.0032% ] “美国电影”属于其它文本分类同理。

    作者回复: 是的👌

    2019-03-04
    2
    6
  • gaoch
    有没有代码实现方法可以参考的?

    作者回复: 一般Python或者Spark的机器学习包都有这类的实现,你可以参考。你也可以按照本文的思路实现一个基本版本

    2019-10-28
    3
  • 南边
    文章分类的例子,有两个独立性假设,一个是朴素贝叶斯算法,针对文章分类概率和单词词频概率两个维度的独立性假设,另一个是在自然语言处理阶段,对每个单词的独立性假设,这两种假设都简化了算法的复杂性,虽然如果单词量很多的话,计算量也不小,但是相对有联动的概率影响情况,已经好很多了

    作者回复: 没错

    2019-11-28
    2
  • 冰冷的梦
    老师,上一个问题是基于这个“这里是假设f1和f2相互独立,所以有p(c|f1,f2)=p(c,f1,f2)/(p(f1,f2))=(p(c,f1)p(c,f2))/(p(f1)p(f2))=p(c|f1)p(c|f2)”,中间的等式:p(c,f1,f2)/(p(f1,f2))=(p(c,f1)p(c,f2))/(p(f1)p(f2))这个等式成立的话我理解的是p(c,f1,f2) = p(c,f1)*p(c,f2)应该是成立的,这个是怎么推导的?

    作者回复: 你可以这么理解,如果f1和f2独立,那么f1不会影响f2的概率分布,包括联合概率p(c,f)和条件概率p(c|f)

    2019-03-12
    2
    2
  • Ray
    请教一下,中文 NLP 除了 jieba 之外还有其他好的分词工具推荐吗?

    作者回复: 有好几款,包括中科院出的,上网可以查到一些。不过没有一款最好的,各有优劣

    2019-11-19
    1
  • 冰冷的梦
    p(c,f1,f2) = p(c,f1)*p(c,f2)这两个相等是怎么推出来的?

    作者回复: 我想你说的是p(c|f1,f2) = p(c|f1)*p(c|f2) ?

    2019-03-08
    4
    1
  • zhaimy
    第一张表的先验概率应该是词频/总词频,而不是数量相除吧?比如政治,应该是726898/2837891,而非20%

    作者回复: 第一张表是指分类出现的概率,因此是以文章为单位来计算的。

    2019-02-15
    1
  • 老师,可能我太菜,不会算。也许不是直接带公式吧。比如P(美国|军事),根据条件概率公式=P(美国*军事)/P(军事)。我不知道美国和军事是否应该看做独立。我就算了第一个P(政治|美国电影),那个P(电影|政治)我取了第三个表中出现政治所有概率求和取平均值。算的0.07125%

    作者回复: 嗯,以此类推到其他类就可以了

    2019-02-06
    1
  • 孙旗
    上面的算法只考虑了待预测分类的文本每个词是否出现,比如待预测文档内容是"中国航母",分词后套用公式可以得出他的分类建议。 但是实际应用上,这个文档内容有可能是这样的:"中国航母,中国导弹,中国核弹,中国制造" 这里中国这个单词不止出现了一次,还要根据上述公式,拆分为: P(政治|中国)*P(政治|航母)*P(政治|导弹)*P(政治|核弹)*P(政治|制造) 来计算么?这样的计算方式合理么,或者有可以将文档各个单词出现次数也考虑进去的分类方法么?

    作者回复: 这里所考虑的,tfidf机制有所涉及,不过那不是概率模型。朴素贝叶斯可以考虑次数,就是累乘

    2022-07-20归属地:美国
收起评论
显示
设置
留言
20
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部