最近在看機器學習的書籍和視頻,主要有:
統(tǒng)計學習方法 李航
西瓜書 周志華
python機器學習實戰(zhàn)
機器學習算法原理與編程實戰(zhàn) 鄭捷(本文主要參看這本書拂玻,有代碼酸些,不過做本文做了稍微修改,環(huán)境為Python3+Scikit-learn)
文本分類步驟
文本分類顧名思義就是將文本分為幾個類別纺讲,主要步驟有以下幾個:
- 語料選擇擂仍,得有已經(jīng)標記好的語料
- 預處理,除去噪聲熬甚,如:HTML標簽逢渔,格式轉換,句子邊界
- 中文分詞乡括,將文章分割成一個個詞語肃廓,并去掉(的,是诲泌,在...)停用詞
- 構建詞向量空間盲赊,統(tǒng)計詞頻(TF),生成每個文本的詞向量空間
- 分類器敷扫,使用算法訓練分類器
- 結果評價
語料選擇
選擇是鄭捷書上的那個哀蘑,就是小語料,下載地址 ,不過需要注冊葵第。下載完畢可以看到如下的格式:
Paste_Image.png
可以看到有10類文本绘迁,計算機200指的是計算機類別的200篇文本。
預處理
這一步主要是針對測試數(shù)據(jù)卒密,測試數(shù)據(jù)格式和來源不明確缀台,有可能亂碼,或者有HTML標簽等哮奇,用python去除HTML標簽膛腐,后面具體用代碼表明。
中文分詞
中文分詞就是將一句話拆分為各個詞語鼎俘,中文分詞在不同語境中歧義比較大哲身,不像英文分詞那么簡單,所以分詞在NLP中是很重要的贸伐。
- 原型:今天天氣很好律罢!
- 分詞:今天、天氣、很误辑、好、歌逢!
分詞方法一般很多巾钉,都是基于概率模型,方法有CRF(條件隨機場)秘案,HMM(隱馬爾可夫模型)等砰苍。本人只是用C++寫過HMM分詞,是基于字標注的阱高,準確率還可以吧赚导。
當然現(xiàn)在都有分詞工具了,如中科院分詞赤惊,哈工大分詞吼旧,python jieba分詞等,可以直接調用未舟,此處就直接用別人的了---jieba分詞