朴素贝叶斯分类(下):如何对文档进行分类?

本文介绍了如何使用朴素贝叶斯进行文档分类,重点讨论了sklearn中的TF-IDF值计算以及如何创建TfidfVectorizer类。文章还详细阐述了分类的各个模块,包括分词、停用词处理、计算单词权重,以及生成和使用朴素贝叶斯分类器的过程,并给出了计算准确率的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

朴素贝叶斯分类(下):如何对文档进行分类?

朴素贝叶斯分类最适合的场景是文本分类、情感分析和垃圾邮件识别,其中情感分析和垃圾邮件识别都是通过文本来进行判断,三个场景基本都是文本分类,所以朴素贝叶斯常用于自然语言处理NLP的工具

使用朴素贝叶斯做文档分类:

sklearn机器学习包

sklearn提供了3个朴素贝叶斯分类算法,分别是高斯朴素贝叶斯、多项式朴素贝叶斯、伯努利朴素贝叶斯

根据特征变量的不同选择不同的算法:

  • 高斯朴素贝叶斯:特征变量是连续变量,符合高斯分布,比如人的身高、物体长度
  • 多项式朴素贝叶斯:特征变量是离散变量,符合多项分布,在文档分类中特征变量体现在一个单词出现的次数或者是单词的TF-IDF值等
  • 伯努利朴素贝叶斯:特征变量是布尔变量,符合0/1分布,在文档分类中特征是单词是否出现

伯努利朴素贝叶斯是以文件为粒度,如果该单词在某文件中出现了即为1,否则为0,而多项式朴素贝叶斯是以单词为粒度,会计算在某个文件中的具体次数,而高斯朴素贝叶斯适合处理特征变量是连续变量,且符合正态分布(高斯分布)的情况,比如身高、体重这种自然界的现象就比较适合用高斯朴素贝叶斯来处理,而文本分类是使用多项式朴素贝叶斯或者伯努利朴素贝叶斯。

TF-IDF值

TF-IDF是一个统计方法,用来评估某个词语对于一个文件集或文档库中的其中一份文件的重要程度

词频TF计算了一个单词在文档中出现的次数,认为一个单词的重要性和它在文档中出现的次数呈正比

逆向文档频率IDF,指一个单词在文档中的区分度,认为一个单词出现在的文档数越少,就越能通过这个单词把该文档和其他文档区分开,IDF越大就代表该单词的区分度越大

TF-IDF就是词频TF和逆向文档频率IDF的乘积,这样这个单词在一个文档中出现的次数多且很少出现在其他文档中,这样的单词适合用于分类

img

img

IDF中可能有些单词不会存在文档中,为了避免分母为0 所以统一给单词出现的文档数都+1

TF-IDF=TF*IDF更准确的对文档进行分类,比如“我”这种高频单词,所以TF词频高,但是IDF很低,整体的TF-IDF不高

例子:假设一个文件夹中一共有10篇文档,其中一篇文档有1000个单词,“this”单词出现了20次,“bayes”出现了5次,“this”在所有文档中均出现过,而“bayes”只在2篇文档中出现过,所以针对“this”,词频TF值为:20/1000=0.02,逆向文档频率IDF=log(10/10+1)=-0.0414,所以TF-IDF=-8.28e-4,针对“bayes”的词频TF=5/1000=0.005,IDF=log(10/2+1)=0.5229,TF-IDF=2.61e-3,所以“bayes”比“this”做区分要好

如何求TF-IDF?

在sklearn中直

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值