資料探勘 文字分類(二)蒐集中文語料庫與ICTCLAS分詞
在上一篇部落格中簡單介紹了實驗環境和流程,這一篇我們繼續。
第一步,下載搜狗中文語料庫。連結:http://www.sogou.com/labs/dl/c.html
我們下載24M大小的精簡版(tar.gz格式)
下載完了,解壓縮,放到做本次實驗的目錄裡存好。(這不廢話嘛!)
開啟語料庫看下,它一共是9類,每類由編號為10到1999大約1900篇txt檔案構成。
手動將每一類的1900篇文章分開,分成兩份,一份存為訓練集,一份存為測試集。
我們點選上圖中的分類編碼對照表(txt格式)可以看每一類對應的中文分類。
第二步就是下載中科院張華平博士的漢語詞法分析系統ICTCLAS了。連結:http://ictclas.nlpir.org/downloads
我們開啟下載包,進入這個路徑:20140926175340_ICTCLAS2014\ICTCLAS2014\sample\pythonsample
這時pythonsample目錄下是這樣的:
根據readme提示將data資料夾拷到pythonsample目錄下:
然後我們就可以將pythonsample資料夾整個拷到我們做這個實驗的目錄中了。
第三步,嘗試分詞。
我們用python自帶的IDLE開啟pythonsample中的nipir.py檔案。安裝python環境參考廖雪峰老師的網站:http://www.liaoxuefeng.com
開啟以後,發現示例檔案的最下方分詞舉例是這樣的:
也就是說,示例分詞是要把"Big News: @解放日報 [最右]【呼市鐵路局原副局長被判死緩 最頭痛藏錢】2013年12月底,呼市鐵路局原副局長馬俊飛..."這段話做分詞。我們跑下試試,看看分詞效果。
調出命令列介面,進入pythonsample資料夾,執行nlpir.py。(我的pythonsample資料夾就在桌面上)。如圖:
第一次嘗試執行的時候,可能會報作業系統位數不匹配的錯,如下:
我們大概知道,肯定是作業系統位數的問題,常用的windows系統就是32位或者64位,我們根據提示去看看nlpir.py檔案第14行:
第14行是把libFile 指向nipir目錄下的NLPIR64.dll,我們開啟nlpir目錄,發現裡邊既有NLPIR64.dll又有NLPIR32.dll。這樣我們只需把第14行的64改為32,然後跑跑試試。
分詞成功了,但是輸出結果是亂碼。python的編碼問題困擾了很多人哈,因為我也是初學,對編碼理解的也不深,不過這個問題我們可以先解決,編碼問題以後有時間再深入研究。
解決辦法:將下面兩行程式碼貼到nlpir.py檔案頂端。
import sys
type = sys.getfilesystemencoding()然後在檔案最下方將print (s)改為print s.decode('utf-8').encode(type),如圖:
然後,我們在去嘗試執行nlpir.py。
OK! 成功啦!很開心有木有!!