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

你好,我是黄申。
你平时应该见过手机 App 推送的新闻吧?你有没有觉得这些 App 的推荐算法很神奇?它们竟然可以根据你的喜好来推荐新闻。想要实现这些推荐算法,有一个非常重要的步骤就是给新闻分类。可是,新闻头条这种综合性的平台,需要处理的新闻都是海量的,我们不可能完全靠人工手动处理这些事情。这个时候,我们就要用到计算机技术,来对文本进行自动分类。
上一节,我给你介绍了如何利用朴素贝叶斯方法,教会计算机进行最基本的水果分类。基于水果分类,今天我们继续深入分类这个话题,告诉你如何利用自然语言处理和朴素贝叶斯方法,对新闻这种长篇文本进行分类。
文本分类系统的基本框架
想要实现一个完整的文本分类系统,我们通常需要进行这些步骤:
1. 采集训练样本
对于每个数据对象,我们必须告诉计算机,它属于哪个分类。上一节的水果案例里,我们给每个水果打上“苹果”“甜橙”和“西瓜”的标签,这就是采集训练样本。
同样,我们可以给每一篇新闻打上标签,也就是说,我们首先要分辨某条新闻是什么类型的,比如是政治的、军事的、财经的、体育的,还是娱乐的等等。这一点非常关键,因为分类标签就相当于计算机所要学习的标准答案,其质量高低直接决定了计算机的分类效果。此外,我们也可以在一开始就预留一些训练样本,专门用于测试分类的效果。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员的数学基础课》,新⼈⾸单¥68
《程序员的数学基础课》,新⼈⾸单¥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)
932 - qinggeouyeP(政治|美国电影) = P(政治|美国) · P(政治|电影) = [ P(美国|政治) · P(政治) / P(美国) ] · [ P(电影|政治) · P(政治) / P(电影) ] = [ 0.0028% · 20% / 0.0028% ] · [ ... · 20% / 0.0032% ] “美国电影”属于其它文本分类同理。
作者回复: 是的👌
26 - gaoch有没有代码实现方法可以参考的?
作者回复: 一般Python或者Spark的机器学习包都有这类的实现,你可以参考。你也可以按照本文的思路实现一个基本版本
3 - 南边文章分类的例子,有两个独立性假设,一个是朴素贝叶斯算法,针对文章分类概率和单词词频概率两个维度的独立性假设,另一个是在自然语言处理阶段,对每个单词的独立性假设,这两种假设都简化了算法的复杂性,虽然如果单词量很多的话,计算量也不小,但是相对有联动的概率影响情况,已经好很多了
作者回复: 没错
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)
22 - Ray请教一下,中文 NLP 除了 jieba 之外还有其他好的分词工具推荐吗?
作者回复: 有好几款,包括中科院出的,上网可以查到一些。不过没有一款最好的,各有优劣
1 - 冰冷的梦p(c,f1,f2) = p(c,f1)*p(c,f2)这两个相等是怎么推出来的?
作者回复: 我想你说的是p(c|f1,f2) = p(c|f1)*p(c|f2) ?
41 - zhaimy第一张表的先验概率应该是词频/总词频,而不是数量相除吧?比如政治,应该是726898/2837891,而非20%
作者回复: 第一张表是指分类出现的概率,因此是以文章为单位来计算的。
1 - 老师,可能我太菜,不会算。也许不是直接带公式吧。比如P(美国|军事),根据条件概率公式=P(美国*军事)/P(军事)。我不知道美国和军事是否应该看做独立。我就算了第一个P(政治|美国电影),那个P(电影|政治)我取了第三个表中出现政治所有概率求和取平均值。算的0.07125%
作者回复: 嗯,以此类推到其他类就可以了
1 - 孙旗上面的算法只考虑了待预测分类的文本每个词是否出现,比如待预测文档内容是"中国航母",分词后套用公式可以得出他的分类建议。 但是实际应用上,这个文档内容有可能是这样的:"中国航母,中国导弹,中国核弹,中国制造" 这里中国这个单词不止出现了一次,还要根据上述公式,拆分为: P(政治|中国)*P(政治|航母)*P(政治|导弹)*P(政治|核弹)*P(政治|制造) 来计算么?这样的计算方式合理么,或者有可以将文档各个单词出现次数也考虑进去的分类方法么?
作者回复: 这里所考虑的,tfidf机制有所涉及,不过那不是概率模型。朴素贝叶斯可以考虑次数,就是累乘
归属地:美国
收起评论