科技制作樸素貝葉斯文本分類系統(tǒng)_第1頁(yè)
科技制作樸素貝葉斯文本分類系統(tǒng)_第2頁(yè)
科技制作樸素貝葉斯文本分類系統(tǒng)_第3頁(yè)
科技制作樸素貝葉斯文本分類系統(tǒng)_第4頁(yè)
科技制作樸素貝葉斯文本分類系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、龍?jiān)莅楣手萍贾谱髡n程設(shè)計(jì)報(bào)告方案名稱基于樸素貝葉斯算法的文本分類系統(tǒng)學(xué) 院網(wǎng)絡(luò)與信息安全學(xué)院專 業(yè) 網(wǎng)絡(luò)工程學(xué)生姓名*15180*目錄 TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document 第一章 方案背景與意義 1 HYPERLINK l bookmark6 o Current Document 方案背景1 HYPERLINK l bookmark10 o Current Document 方案意義2 HYPERLINK l bookmark12 o Current Document 第二章方案原理2 HYPERLINK l b

2、ookmark14 o Current Document 數(shù)學(xué)原理2 HYPERLINK l bookmark16 o Current Document 樸素貝葉斯算法原理2 HYPERLINK l bookmark18 o Current Document 改進(jìn)方法3 HYPERLINK l bookmark20 o Current Document 第三章方案基本流程4 HYPERLINK l bookmark22 o Current Document 文本分類的流程4 HYPERLINK l bookmark24 o Current Document 數(shù)據(jù)清洗4 HYPERLINK l

3、bookmark26 o Current Document 中文切詞4 HYPERLINK l bookmark28 o Current Document 刪除停用詞4 HYPERLINK l bookmark30 o Current Document 文本向量化表小 5 HYPERLINK l bookmark42 o Current Document 文本特征選擇 6 HYPERLINK l bookmark44 o Current Document 特征權(quán)重計(jì)算 6 HYPERLINK l bookmark46 o Current Document 構(gòu)造分類器模型 7 HYPERLINK

4、 l bookmark48 o Current Document 分類器效果測(cè)試7 HYPERLINK l bookmark50 o Current Document 第四章方案實(shí)現(xiàn)過(guò)程及結(jié)果8 HYPERLINK l bookmark52 o Current Document 數(shù)據(jù)集選擇8 HYPERLINK l bookmark54 o Current Document 中文分詞9 HYPERLINK l bookmark56 o Current Document 數(shù)據(jù)集變量表示9 HYPERLINK l bookmark58 o Current Document 結(jié)構(gòu)化表示-向量空間模型

5、 10 HYPERLINK l bookmark60 o Current Document 構(gòu)建分類器11 HYPERLINK l bookmark62 o Current Document 提升分類器性能12 HYPERLINK l bookmark64 o Current Document 第五章實(shí)驗(yàn)總結(jié)與收獲13 HYPERLINK l bookmark40 o Current Document 附錄14第一章方案背景與意義方案背景近現(xiàn)代以來(lái)電子信息技術(shù)的高速發(fā)展以及國(guó)家對(duì)網(wǎng)絡(luò)的建設(shè)使得越來(lái)越多的人可 以接觸到互聯(lián)網(wǎng),特別是近幾年移動(dòng)互聯(lián)網(wǎng)的爆發(fā)更是使每年產(chǎn)生的數(shù)據(jù)信息量呈指數(shù) 級(jí)增長(zhǎng)。

6、2004年,全球數(shù)據(jù)信息總量是 30EB,隨后,2005年則達(dá)到了 50EB, 2006年 達(dá)至IJ了 161EB,到2015年,居然達(dá)到了驚人的7900EB,到2020年,將達(dá)到44000EB。 信息的存儲(chǔ)方法也由過(guò)去的紙質(zhì)存儲(chǔ)變?yōu)楝F(xiàn)在的電子信息存儲(chǔ),面對(duì)如此海量的信息, 用戶如何從海量數(shù)據(jù)中快速獲得目標(biāo)數(shù)據(jù)就顯得尤為重要。企業(yè)將大量數(shù)據(jù)進(jìn)行快速精確的分類更有利于獲取商業(yè)利益。由此誕生了通過(guò)算法來(lái)自動(dòng)進(jìn)行文本分類的方法。全球數(shù)據(jù)總量-IJVIf1,意味著 先驗(yàn)概率被增強(qiáng),事件A的發(fā)生的可能性變大;如果可能性函數(shù)” *乘擔(dān)魏勢(shì)厘阿洛現(xiàn)ft連捱始構(gòu)如閨粕火J*粒*供電控制城佐I圖4.1計(jì)算機(jī)類別

7、下一個(gè)文本的分詞結(jié)果曙身廨魏為嘉善I75 g130175 -TOO-晝分噠露 趣fl曙身廨魏為嘉善I75 g130175 -TOO-晝分噠露 趣fl佛電:第 犍美國(guó)泰025 孫75 M125.50 175弘 IdC 10 JOI MO 3t0 捐。 4M、丁一 ,J:,*譴工論z t 美國(guó)逐壁軻:魅髓修 殂刑關(guān)系.弗. 一改治京體制改革野眄;武衿嬖巖辰& 國(guó)泰 型露衣展上/忍懼W即 XO ISO 2X雪 030020400圖4.2圖4.2軍事類文本詞云圖4.3政治類文本詞云數(shù)據(jù)集變量表示現(xiàn)在為止數(shù)據(jù)是以一個(gè)個(gè)txt文本的形式存放在各類別文件夾中,不方便程序使用10因此我們需要將所有的數(shù)據(jù)表示為

8、變量并保存在一個(gè)文件中,這樣后續(xù)就不用每次都遍歷所有文件。我們采用的是 ScikkLearn庫(kù)中的Bunch數(shù)據(jù)結(jié)構(gòu)來(lái)表示這兩個(gè)數(shù)據(jù)集。Bunch相當(dāng)于Python中的字典,可以將數(shù)據(jù)一條一條的顯示出來(lái)。如下圖直觀表示:fteranivesabcltoncents.artE n_COT IS 5/25 -50 0;25 -50 75 1002&150 175 200 -爭(zhēng)時(shí)復(fù)卬期號(hào):所以軍譚興州 紈一 二5;由心屎刊頁(yè)號(hào)索嚷 .:因此布醵逐思二事? 如J=Fr*h . ,皿中用十.I F- - IF 也 卓:江往,ME :I. g .,J:5UI三其比14川、送鏈詞比2原千期號(hào)原刊頁(yè)號(hào)也 文獻(xiàn)

9、號(hào)刃匾文出處三,但是W器陰疝巷k融,卻牌 Td050 1JOO 150200 2SD 3003S0400圖4.5 一類文本包含大量無(wú)用的詞構(gòu)建分類器構(gòu)建分類器階段我使用的樸素貝葉斯分類器,關(guān)于樸素貝葉斯算法的原理前文都有論述。MultinomialNB會(huì)根據(jù)訓(xùn)練集的權(quán)重矩陣和標(biāo)簽進(jìn)行訓(xùn)練,然后根據(jù)測(cè)試集的權(quán) 重矩陣進(jìn)行預(yù)測(cè)輸出預(yù)測(cè)標(biāo)簽。將預(yù)測(cè)后的結(jié)果存儲(chǔ)在result.csv文件中,并用1表示分類正確,0表示分類錯(cuò)誤,部分結(jié)果如圖 4.6所示。預(yù)測(cè)出后將預(yù)測(cè)標(biāo)簽與實(shí)際標(biāo)簽 進(jìn)行對(duì)比即可算出精確度、召回率、F值等評(píng)估分類器性能的參數(shù)??梢?jiàn)第一次分類的 效果并不理想,F(xiàn)值僅為0.910,因此需要對(duì)

10、相關(guān)參數(shù)進(jìn)行修改,分詞的結(jié)果和TF-IDF的 閾值等都對(duì)分類效果有很大的影響。12文件名實(shí)際美機(jī)預(yù)利類別是杳一隹珅/corpus/iest corojs-Ccmoutef/C19-ConipuierOQDl,cCIS-CompilerCia-ComputsrL,ccrpus/tesL_corp-Computei/C19ConiputerOOOZ.MC19ComputetCl9 com DU 以L/cor pus/ lesLco r d/ J19 -ComDutei/ClS ConiputerOOJ4,(C19ComputerC19-Computer1.corpus/ttsLcofp us_se

11、g/C19 - Compuler/Cl 9- Com pu t-rOD36.txtC19-ComputerCl?Cumputi1.cc r pui. lesLco r dg/ DIS - Cl r 11 p u Le i /Cl 9 - C ui n p u ter 003 8 .LxlC19-CoinpLtt;rC19-Computer1.ccrpus/lesLcor/js_seg/219-CcrnpjteI/C19-ComputerOOL0.:1C19-CompLterCl 9-Computer1.ccrp ji_se-Ccmputer/Cl9- ComputrQQL2.XQ9-Conip

12、utefCl 3-Computer1.corpus/test corp Ji seg/ - Cc mputer/C19- ComnputerOC 14.?xt019-ComputefC19-Computer1/cotpus/tct_corpJ5_seg/C19 Computer/Cl9 Computi:rOCL6.D(t匚 19 Com peterCl3 Cornputcr1.corpustest_conpJj_3tg/C15 Computcr/C19 ComputrOOlO.tCl9 CcmptterCl9 Computer1ycorputest-Corpusjeg/ClQ - Comput

13、er/ClS - Cdmputer0020.txtCl9 ComputerCl9 Computer1.ccrpu&-test_corpjs_seg/ 219 Ccmputmi7C.g-tcmpiJtmr002ZEtCIS CcmpLterC19- Computer1.ccrpu=/ te5t corrj5jeQ/C19 Ccmputer/C 19 - Cemput5rOQ24Cl 9-ComputerCig-Compute1.ccrpus test corojs seg/ J19-Ccmputer/C19-Cornput5r0026.7XtC19-ComputeFC19-Computer1co

14、rpus/test. co rpg /二總-Comp uter/Cl 9-Conn puterOC 2S.o(tC19 -ComputetC19-Computer1corpus. te&t_corpJi_seq/C19-Computer/C19= ComputerOC3D.(tCl S - Cem p uterC13-Computer1.ccrpu邑, teLcomhrg/219-Computer/Cl-CoiTipu恰 1roe32一Cl 9-ComputerC19-Computer1.ccrputest.corpj&_seg/219-Ccmputer/C 19-CcmputrOO3L乂Cl

15、-ComputerC13-Computer./ccypus/te5t_COpu suseg/d-Comp uter/Cl 9 - Corn puterC036-MCl 9-ComputerCl J-Computer17 corpug/tegt_r(Mpu_seg/Cl& Computer/Cl 9 - Camput?rOO38 TxtC19-ComputerCignSmpute1圖4.6部分分類結(jié)果截圖提升分類器性能第一次預(yù)測(cè)結(jié)果的F1值為0.91,準(zhǔn)確率為0.921,召回率為0.917,我們可以嘗試 通過(guò)調(diào)試參數(shù)進(jìn)一步提升分類效果。影響準(zhǔn)確率的參數(shù)主要有分類器部分的alpha值以及tf-id

16、f模型構(gòu)建階段的max_df或min_df,分詞效果的好壞對(duì)結(jié)果的影響也很大,因此如果對(duì)結(jié)果要求很高的話盡量選擇自己構(gòu)建分詞庫(kù)。通常情況下alpha值設(shè)置越小,迭代次數(shù)越多,精確率越高,通過(guò)實(shí)驗(yàn)比較,當(dāng)alpha值設(shè)為0.0005, max_df設(shè)為0.8時(shí), 分類器表現(xiàn)效果最好,準(zhǔn)確率達(dá)到 0.932,召回率達(dá)到0.931, F值為0.930,表現(xiàn)效果 相比最初要好一些。在TidfVectorizer中配置的n-gram也會(huì)提高分類器效果,ngram-range 表示詞組切分的長(zhǎng)度范圍,通過(guò)設(shè)置ngram-range=(1,2而使得分類效果進(jìn)一步提升,設(shè)置n-gram會(huì)使模型參數(shù)變得很大,分

17、類速度也會(huì)降低,但是會(huì)提升一定的準(zhǔn)確率。準(zhǔn) 確率為0.943,召回率為0.942, F1值為0.939。顯然,此時(shí)分類器的表現(xiàn)效果良好,分 類結(jié)果報(bào)告如表4.1所示。除此之外,如果還需要提升分類效果可以自定義分詞庫(kù)。由 結(jié)果可以觀察出當(dāng)某一類文本數(shù)量較少時(shí),這一類的召回率就偏低,從而導(dǎo)致 F1值偏 低。13表4.1樸素貝葉斯算法分類報(bào)告1.precision recall f1-score support2.3.C19-Computer0.9920.9720.98213574.C23-Mine1.0000.2650.419345.C29-Transport0.9230.6100.735596.

18、C31-Enviornment0.9850.9470.96612187.C32-Agriculture0.9130.9580.93510228.C34-Economy0.9020.9490.92516019.C35-Law0.8390.5000.6275210.C36-Medical0.9440.3210.4795311.C37-Military0.8600.5660.6837612.C38-Politics0.9130.9580.935102613.C39-Sports0.9580.9700.964125414.15.avg / total 0.9430.9420.9397752第五章實(shí)驗(yàn)總

19、結(jié)與收獲這次科技制作主要研究了利用樸素貝葉斯算法對(duì)中文進(jìn)行分類,并且對(duì)于英文文本 分類和中文文本分類的區(qū)別進(jìn)行了相關(guān)介紹。首先對(duì)樸素貝葉斯公式進(jìn)行了推導(dǎo),闡述 了利用樸素貝葉斯算法進(jìn)行文本分類的數(shù)學(xué)原理。 接著第三章詳細(xì)研究了文本分類的各 個(gè)關(guān)鍵技術(shù)過(guò)程,包括分詞方法和向量空間模型以及特征權(quán)重的計(jì)算方法等。在深入研 究了樸素貝葉斯算法原理和相關(guān)的文本分類技術(shù)后,用Python語(yǔ)言對(duì)復(fù)旦大學(xué)數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn)操作,并且對(duì)實(shí)驗(yàn)進(jìn)行改進(jìn)。最終對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析對(duì)比,表明在使用樸 素貝葉斯算法進(jìn)行文本分類時(shí),優(yōu)點(diǎn)是不僅算法簡(jiǎn)單,計(jì)算復(fù)雜度小,而且可以達(dá)到很 好的分類效果,缺點(diǎn)是文本必須要滿足條件獨(dú)立性假

20、設(shè),這在實(shí)際中是不成立的。本次完成的文本分類系統(tǒng)可以對(duì)中文文本進(jìn)行分類, 可以應(yīng)用在很多有需求的領(lǐng)域, 因此本次的實(shí)驗(yàn)具有很好的實(shí)際意義。14附錄文本實(shí)驗(yàn)部分所用主要代碼及結(jié)果如下:1.導(dǎo)入訓(xùn)練集和測(cè)試集import sys14附錄文本實(shí)驗(yàn)部分所用主要代碼及結(jié)果如下:1.導(dǎo)入訓(xùn)練集和測(cè)試集import sysimport osdiri = ./corpus/train_corpusdir2 = ./corpus/test_corpusdef getNum(dir):dirs = os.listdir(dir)num = 0for item in dirs:num = num+len(os.li

21、stdir(dir+ /+item)return numprint (訓(xùn)練集文檔數(shù):,getNum(dir1)print (測(cè)試集文檔數(shù):,getNum(dir2)13訓(xùn)練集文檔數(shù):773814 測(cè)試集文檔數(shù):77522.中文分詞階段1.去掉一些停用詞、數(shù)字、特殊符號(hào)def rm_tokens(words, stopword_path):words_list = list(words)stwlist = readfile(stopword_path).decode().splitlines()for i in range(words_list._len_():-1:word = words_l

22、istiif len(word) = 1: #去除單個(gè)字符words_list.pop(i)elif word = : # 去除空字符words_list.pop(i)elif word in stwlist: # 去除停用詞words_list.pop(i)return words_listdef corpus_segment(corpus_path,seg_path,stopword_path):import recatelist = os.listdir(corpus_path)print(分詞中.”)for mydir in catelist:class_path = corpus_p

23、ath+mydir+/seg_dir = seg_path+mydir+/if not os.path.exists(seg_dir):15os.makedirs(seg_dir)file_list = os.listdir(class_path)for file_name in file_list:file_path = class_path+file_name #txt 文件的路徑content = readfile(file_path)ri = a-zA-Z0-9 !#$%&()*+,-./:; ; ? () , =。 ?、 ?”“ ! 八|+content=re.sub(r1, , c

24、ontent.decode()content = content.replace(rn , ).strip() #刪除換行content_seg = jieba.cut(content)content_seg = rm_tokens(content_seg,stopword_path)savefile(seg_dir+file_name, .join(content_seg).encode(utf-8)print (分詞結(jié)束)建Bunch對(duì)象結(jié)構(gòu)import picklefrom sklearn.datasets.baseimport Bunchdef corpus2Bunch(wordbag

25、_path,seg_path):catelist = os.listdir(seg_path)print(構(gòu)建文本對(duì)象開(kāi)始.)bunch = Bunch(target_name = ,label = ,filenames = ,contents =)bunch.target_name.extend(catelist)for mydir in catelist:class_path = seg_path + mydir + /file_list = os.listdir(class_path)for file_name in file_list:fullname = class_path + f

26、ile_namebunch.label.append(mydir)bunch.filenames.append(fullname)bunch.contents.append(readfile(fullname)with open(wordbag_path, wb) as file_obj:pickle.dump(bunch,file_obj)print (構(gòu)建文本對(duì)象結(jié)束)4.構(gòu)建TF-IDF模型#向量空間模型from sklearn.feature_extraction.text import TfidfVectorizerdef vector_space(stopword_path,bun

27、ch_path,space_path,train_tfidf_path = None):stpwrdlst = readfile(stopword_path).splitlines()bunch = readbunchobj(bunch_path)tfidfspace = Bunch(target_name =bunch.target_name,label = bunch.label,filenames = bunch.filenames,tdm =,vocab ulary=)16if train_tfidf_path is not None:trainbunch = readbunchobj(train_tfidf_path)tfidfspace.vocabulary = trainbunch.vocabularyvectorizer = TfidfVectorizer(ngram_range=(1,2),stop_words = stpwrdlst,sublinear_tf=True,max_df=0.5,vocabulary = trainbunch.vocabulary)tfi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論