機(jī)器學(xué)習(xí)實(shí)戰(zhàn)Py3.x填坑記—樸素貝葉斯

沒辦法,雖讓Py2.x和Py3.x是兩種不同的語(yǔ)言呢,不可避免擼這章的時(shí)候還是出現(xiàn)問題。

在“程序清單4-5,文件解析及完整的垃圾郵件測(cè)試函數(shù)”代碼中應(yīng)將里面的setOfWords2Vec改為bagOfWords2VecMN

錯(cuò)誤:

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

那是因?yàn)闀系南旅孢@兩行代碼有點(diǎn)問題:
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') )

因?yàn)橛锌赡芪募写嬖陬愃啤?”非法字符。

在運(yùn)行程序清單中代碼時(shí)候出現(xiàn)錯(cuò)誤:

del(trainingSet[randIndex])
TypeError: 'range' object doesn't support item deletion
將代碼del(trainingSet[randIndex])上面第4行代碼trainingSet = range(50)改為:
trainingSet = list(range(50))
因?yàn)槭莗ython3中range不返回?cái)?shù)組對(duì)象,而是返回range對(duì)象  

運(yùn)行<程序清單4-6 RSS源分類器及高頻詞去除函數(shù)>出現(xiàn)錯(cuò)誤。
這些問題前面都已經(jīng)遇到過(guò)了,輕車熟路。

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))就好了。

運(yùn)行<程序清單4-7 最具表征性的詞匯顯示函數(shù)>時(shí),如果用書上的
if p0V[i] > -6.0和if p1V[i] > -6.0時(shí)候則打印出來(lái)的非常長(zhǎng)。將-6.0更改為大一些,則好一些,比如-5.4。

出現(xiàn)問題進(jìn)行搜索參考博客:
[機(jī)器學(xué)習(xí)&數(shù)據(jù)挖掘]樸素貝葉斯數(shù)學(xué)原理
TypeError: cannot use a string pattern on a bytes-like object解決方法
處理UnicodeDecodeError: ‘XXX' codec can't decode bytes in position...的問題
python3中報(bào)錯(cuò):TypeError: 'range' object doesn't support item deletion

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容