實戰04 似是而非,概率大小——樸素貝葉斯
阿新 • • 發佈:2019-01-10
樸素貝葉斯決策論的核心思想:選擇高概率對應的類別。
貝葉斯概率:先驗概率 和後驗概率
貝葉斯準則:
一 本章的核心是:
利用條件概率來分類
如果 那麼屬於類別c1
如果 那麼屬於類別c2
二 使用python進行文字分類
1 準備資料:從文字中構建詞向量
- 詞表(wordList)
[
[‘my’, ‘dog’, ‘has’, ‘flea’, ‘problems’, ‘help’, ‘please’],-------------(文件1)
[‘maybe’, ‘not’, ‘take’, ‘him’, ‘to’, ‘dog’, ‘park’, ‘stupid’],-----------(文件2)
… …------------------------------------------------------------------(文件 n)
] - 總詞表(vocabList)
[‘my’, ‘dog’, ‘has’, ‘flea’, ‘problems’, ‘help’, ‘please’,‘maybe’, ‘not’, ‘take’, ‘him’, ‘to’, ‘park’, ‘stupid’…] (無重複單詞) - 詞向量 [0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,…](長度取決於vocabList)(setOfWords2Vec, bagOfWords2Vec)
詞矩陣 trainMat - 類別標籤集 classVec = [0,1,0,1,0,1](#1表示侮辱性文字,0表示正常言論)
- 以上詞表中的文件與類別標籤中的元素一一對應。
- 文件中的每個單詞與詞向量中的元素一一對應。
三 改進分類器
- “連乘為0”問題 =》 所有詞的出現數初始為1,分母初始為2
- “下溢位”問題 =》取對數 log、
- 計算時忽略分母
- 停用詞
- 優化切分器
四 收集資料:匯入RSS源
使用python 下載文字,可用RSS。
安裝了anaconda的使用者,可以直接在anaconda prompt 中使用以下命令列:
conda install feedparser
conda list
沒有安裝anaconda的使用者,百度Universal Feed Parser找到相應的下載頁面,使用
python setup.py install
使用feedparser:
import feedparser
ny=feedparser.parse(‘http://www.nasa.gov/rss/dyn/image_of_the_day.rss’)
ny[‘entries’]
len(ny[‘entries’])