【Python机器学习】朴素贝叶斯——使用朴素贝叶斯过滤垃圾邮件

使用朴素贝叶斯解决一些现实生活中的问题时,需要先从文本内容中得到字符串列表,然后生成词向量。

使用朴素贝叶斯对电子邮件进行分类的过程:

1、收集数据:提供文本文件

2、准备数据:将文本文件解析成词条向量

3、分析数据:检查词条确保解析的正确性

4、训练算法

5、测试算法:构建一个新的测试函数来计算文档集的错误率

6、使用算法:构建一个完整的程序对一组文档进行分类,输出错分的文档。

准备数据:切分文本

对于一个文本字符串,可以使用Python的string.split()方法将其切分。但是这种方法下,标点符号也会被当成词的一部分。可以使用正则表达式来切分句子,其中分隔符是除单词、数字外的任意字符串。比如:

import re

mySent='This book is the best book on Python on M.L. I have ever laid eyes upon.'
regEx=re.compile('\\W')
listOfTokens=regEx.split(mySent)
print(listOfTokens)

现在得到了一系列词组成的词表,但是里面的空字符串需要去掉。可以计算每个字符串的长度,只返回长度大于0的字符串,并且,句子的第一个单词是大写的,如果目的是句子查找,那么这个特点会很有用,但是这里的文本只看出词袋,所以我们希望所有词的形式都是统一的:

print([tok.lower() for tok in listOfTokens if len(tok)>0])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值