最近在看機器學習的書籍和視頻,主要有:
統(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分詞