机器学习实战——过滤垃圾邮件改正

在“程序清单4-5,文件解析及完整的垃圾邮件测试函数”代码中应将里面的setOfWords2Vec改为bagOfWords2VecMN

错误:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte sequence

那是因为书上的下面这两行代码有点问题:
wordList = textParse(open('email/spam/%d.txt' % i).read()
wordList = textParse(open('email/ham/%d.txt' % i).read()
需要将上面的代码更为下面这两行:
wordList = textParse(open('email/spam/%d.txt' % i, "rb").read().decode('GBK','ignore') )
wordList = textParse(open('email/ham/%d.txt' % i,  "rb").read().decode('GBK','ignore') )

因为有可能文件中存在类似“�”非法字符。

在运行程序清单中代码时候出现错误:

del(trainingSet[randIndex])
TypeError: 'range' object doesn't support item deletion
将代码del(trainingSet[randIndex])上面第4行代码trainingSet = range(50)改为:
trainingSet = list(range(50))
因为是python3中range不返回数组对象,而是返回range对象  

运行<程序清单4-6 RSS源分类器及高频词去除函数>出现错误。
这些问题前面都已经遇到过了,轻车熟路。

AttributeError: 'dict' object has no attribute 'iteritems'
#将代码中的iteritems更改为items就好了

TypeError: 'range' object doesn't support item deletion
#将此行代码上面的第三行代码中的trainingSet = range(2*minLen)更改为
#trainingSet = list(range(2*minLen))就好了。

运行<程序清单4-7 最具表征性的词汇显示函数>时,如果用书上的
if p0V[i] > -6.0和if p1V[i] > -6.0时候则打印出来的非常长。将-6.0更改为大一些,则好一些,比



链接:https://www.jianshu.com/p/9eea9af8529b
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值