任務(wù): 使用Weka完成一個(gè)簡(jiǎn)單的文本分類試驗(yàn),原始數(shù)據(jù)是文本,訓(xùn)練文本和測(cè)試文本的內(nèi)容都描述了籃球運(yùn)動(dòng)和谷歌地球的情況随橘,分類標(biāo)簽要求關(guān)于籃球運(yùn)動(dòng)為yes,谷歌地球的標(biāo)簽為no。
訓(xùn)練文本:train.txt測(cè)試文本:test.txt
一:準(zhǔn)備工作####
1.首先,我用文本編輯器(EmEditor)分別打開訓(xùn)練文本和測(cè)試文本,將其另存為csv格式.
2.用Excel打開剛剛csv后綴的兩個(gè)文件...在訓(xùn)練集train中插入首行,加入兩列的列名,分別為text和label.在訓(xùn)練集里根據(jù)描述內(nèi)容判斷其為yes或者為no...在測(cè)試集里只插入首行,填上第一列和第二列列名text與label...保存..
二:數(shù)據(jù)導(dǎo)入weka進(jìn)行文本分類###
1.用weka分別打開處理好的csv文件...##如果打開為亂碼,請(qǐng)用方法解決:打開weka文件,,找到RunWeka.ini,,將其里的fileEncoding修改為fileEncoding=cp936...###
2.將文件打開后,我們發(fā)現(xiàn)屬性類型為Nominal.第一步經(jīng)過filter里的nominaltoString將其改變?yōu)镾tring類型..
注意兩點(diǎn): (1)將第一列屬性改變?yōu)镾tring,
(2)下方選擇noclass
附圖
第二步再次經(jīng)過filter,使用StringToWordVector過濾器,對(duì)其進(jìn)行預(yù)處理.將文本分割...
3.將兩個(gè)文件進(jìn)行相同預(yù)處理后,保存成arff格式.打開train.arff,,使用classify算法對(duì)其分類.注意三點(diǎn):
(1).我們用Supplied test set的方式加載測(cè)試集,點(diǎn)擊set,然后open file,將test.arff加載進(jìn)去,,在open file下方選擇class為label.
(2)第一步完成之后,,在start上方選擇label.最后點(diǎn)擊start..
(3)在result list中將鼠標(biāo)放在剛剛出現(xiàn)的分類名稱上,右擊,然后選擇visualize classifier errors ,將其保存成arff格式,(我保存為graph.arff)
附圖:
三:呈現(xiàn)結(jié)果###
將上面保存的graph.arff用weka打開,點(diǎn)擊editor,即可看到我們對(duì)測(cè)試文本進(jìn)行分類的結(jié)果.
附圖: