版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
AI實(shí)驗(yàn):用樸素貝葉斯算法實(shí)現(xiàn)文本分類學(xué)院:計(jì)算機(jī)科學(xué)與工程學(xué)院班級:03計(jì)聯(lián)組別:第二組姓名:學(xué)號:指導(dǎo)老師:一、實(shí)驗(yàn)內(nèi)容:1.?dāng)?shù)據(jù)采集1)下載CornellUniversity,WashingtonUniversity,WisconsinUniversityandTexasUniversity計(jì)算機(jī)專業(yè)和化學(xué)專業(yè)的教授個人網(wǎng)頁、學(xué)生個人網(wǎng)頁和課程網(wǎng)頁2)預(yù)處理數(shù)據(jù)2.實(shí)現(xiàn)樸素貝葉斯算法。3.實(shí)驗(yàn)結(jié)果1)按專業(yè)分類的準(zhǔn)確性(2組)2)打印出每類中概率值最高的20個詞,并分析它們的不同之處3)修改程序,使得在計(jì)算字概率時,可以從詞匯表中去掉概率最高的N個字(從訓(xùn)練集中選)。當(dāng)N取30、50、100、300、500、1000時比較分類器的準(zhǔn)確性,畫圖說明4)計(jì)算字概率時采用如下公式:where,Cisacategory,ECisthesetofalltrainingexampleslabelledasC,c(w;EC)isthecountsofwordwinEC,ands(EC)=∑c(wi;EC)isthetotalcountsofallthewordsinEC.m取[10,|V|]范圍的至少5個值,學(xué)習(xí)分類器,比較分類器的準(zhǔn)確性,畫圖說明。二、實(shí)驗(yàn)步驟1.?dāng)?shù)據(jù)采集本次實(shí)驗(yàn)的數(shù)據(jù)采集由我們兩個班共4個組的同學(xué)分工完成,本組負(fù)責(zé)收集WashingtonUniversity的相關(guān)網(wǎng)頁。本組用“OfflineExplorerEnterprise”這個國外的軟件先將WashingtonUniversity的站內(nèi)的相關(guān)頁面下載下來,然后將里面的無關(guān)的鏈接刪除,得到與該校有關(guān)的頁面。由于在下載后,里面有些文件夾內(nèi)存在一些pdf文件,考慮到無法讀取該類文件,所以也將它們刪去。最后只剩.html文件。組長將這些資料分發(fā)給我們,由我們這些組員整理,再發(fā)回給他。預(yù)處理數(shù)據(jù)時先篩選掉無關(guān)的網(wǎng)頁,然后將有效網(wǎng)頁以學(xué)校名->專業(yè)->課程(教授或?qū)W生)->網(wǎng)頁分類存放。網(wǎng)頁命名基本原則是四個組統(tǒng)一安排的,該原則是按網(wǎng)頁的URL命名,考慮到網(wǎng)頁已按文件夾分類好,不存在重名的問題,所以一部分網(wǎng)頁保留原名(下載名)。本實(shí)驗(yàn)的網(wǎng)頁文件放在”AIHtmlResource”文件夾里,清單如下所示ChemistryComputerScienceCornellUniversity155237WashingtonUniversity179WisconsinUniversity187219用于測試的網(wǎng)頁放在”test_for_chem”和”test_for_cs”兩個文件夾里,這些文件都是從搜集到的文件里面隨機(jī)抽取的,清單如下所示:test_for_chemtest_for_cs文件個數(shù)86872.程序代碼☆平臺:WindowsXP☆開發(fā)語言:JAVA☆開發(fā)工具:JDK+JCreator本實(shí)驗(yàn)的代碼共包括5個java文件,清單如下所示:功能說明Artificial.java主類,提供輸出和對結(jié)果進(jìn)行統(tǒng)計(jì)的功能Analyze.java提供分析字符串功能,分割單詞并生成單詞集HtmlFilter.java過濾網(wǎng)頁中的標(biāo)簽,為進(jìn)行分類做準(zhǔn)備keyAndCount.java提供存放單詞及其概率的結(jié)構(gòu)keyAndCountobject.java提供存放單詞token的結(jié)構(gòu)object主要功能函數(shù)說明如下:類Artificial 在此類中,定義了一個靜態(tài)字符串?dāng)?shù)組,用于存放停止詞publicstaticfinalString[]ENGLISH_STOP_WORDS={"a","an","and","are","am","as","at","be","but","by","for","i","if","in","into","is","it","do","no","not","of","on","or","s","such","t","that","the","their","then","there","these","they","this","to","was","will","with","nbsp","pm","td","dropitem","dropdown","hover","drophead","td","you","your"}; 定義了一個函數(shù),它調(diào)用了其他類的函數(shù),同時生成一個哈希表,用于對結(jié)果進(jìn)行統(tǒng)計(jì),此函數(shù)首先將文本進(jìn)行預(yù)處理,將當(dāng)中的有用的文本提取出來,再存入哈希表內(nèi),同時進(jìn)行了統(tǒng)計(jì),用于下一步的處理publicstaticvoidLoadfileAndStat(Filefile,Vectorvt,intkind) 定義了一個函數(shù),用于對哈希表進(jìn)行排序,這樣可以方便提取出頻率最高的單詞,方便以后的處理.此函數(shù)采用的是快速排序算法publicstaticvoidQuickSort(Vectorvt,intleft,intright)類Analyze在此類中定義了一個函數(shù)analyze,它的功能是對單詞進(jìn)行提取,并存入一個向量中,當(dāng)中的提取過程是:首先對字符的編碼進(jìn)行判斷,如果有用就保存下來,無用就將其刪除;然后將這些字符以詞為單位存入向量中。類HtmlFilter此類只定義了一個構(gòu)造函數(shù)HtmlFilter。此函數(shù)的功能是刪除網(wǎng)頁中的標(biāo)簽和腳本語言.它的算法是,每次讀一行文本,如果出現(xiàn)”<”號,則忽略此號到”>”之間的內(nèi)容,也就是去除了標(biāo)簽.而對于腳本語言的去除,就是去除”{”號和”}”號之間的內(nèi)容.當(dāng)然,這里面也存在一些不足.因?yàn)槟_本語言里面的函數(shù)名無法去.如果要做到盡善盡美,則會使程序非常復(fù)雜.考慮到腳本語言的函數(shù)調(diào)用頻率不會很高,對分類不會產(chǎn)生太大的影響,所以不進(jìn)行處理,以免影響速度.3.實(shí)驗(yàn)方法在Artificial類當(dāng)中定義了兩個全局靜態(tài)整數(shù)N和m,其中N用于去除概率最高的N個字,m對應(yīng)于公式中的m,用于讓結(jié)果變得更加平滑。實(shí)驗(yàn)時只要改變這兩個變量,就可以得出不同的結(jié)果,然后對這些結(jié)果進(jìn)行統(tǒng)計(jì)就行了。4.實(shí)驗(yàn)結(jié)果在所有chemistry文件中,頻率最高的20個單詞是{intrinsic,chemistry,fortran,chem,use,course,intrinsics,code,information,style,kind,section,name,program,gnu,function,integer,time,see,type}在所有computerscience文件中,頻率最高的20個單詞是{course,cs,computer,programming,class,lecture,information,systems,science,homework,students,data,from,may,topics,introduction,design,due,cps,problem}對文件夾test_for_chem的運(yùn)行結(jié)果如下所示m=10m=100m=500m=1000m=3000N=00.94040.94050.94050.94050.9405N=300.71430.73810.73810.73810.7381N=500.91670.91670.91670.91670.9167N=1000.60710.60710.60710.58330.5833N=3000.17860.16670.16670.16670.1548N=5000.21430.20240.20240.20240.1667N=10000.11900.11900.11900.11900.1071對文件夾test_for_cs的運(yùn)行結(jié)果如下所示m=10m=100m=500m=1000m=3000N=00.96250.96250.96250.96250.9625N=300.95000.95000.95000.95000.9500N=500.92500.95000.95000.96250.9750N=1000.85000.90000.90000.91250.9125N=3000.67500.75000.83750.85000.9125N=5000.46250.62500.81250.85000.9000N=10000.51250.63750.81250.86250.9125實(shí)驗(yàn)結(jié)果用條狀圖表示,結(jié)果如下所示:對文件夾test_for_chem的測試結(jié)果如下曲線圖所示:對文件夾test_for_cs的測試結(jié)果如下曲線圖所示5.結(jié)果分析從上面的幾張圖可以看出,對于不同的m值,曲線的形狀的變化并不大,只是改變了曲線某些結(jié)點(diǎn)的值;而在同一個m中,隨著N的變大,曲線先向下凸,再上升,然后下降。由于時間和能力所限,實(shí)驗(yàn)中也存在著不少的不足,從所有的圖可以看出,在N取30至50時,準(zhǔn)確率是最高的,而隨著N的繼續(xù)增大,會出現(xiàn)減少而又增大的現(xiàn)象,顯然,這是不合實(shí)際的.這可能是因?yàn)閿?shù)據(jù)的選取上出了差錯,或者是因?yàn)榉椒ㄉ铣隽藛栴}。在這里,樸素貝葉斯算法的準(zhǔn)確性并沒有達(dá)到理想的要求。AIchem.m文件的源代碼functionAIchem()x=[0,30,50,100,300,500,1000];ya=[0.9404,0.7143,0.9167,0.6071,0.1786,0.2143,0.1190];yb=[0.9404,0.7143,0.9167,0.6071,0.1667,0.2024,0.1190];yc=[0.9404,0.7143,0.9167,0.6071,0.1667,0.2024,0.1190];yd=[0.9404,0.7143,0.9167,0.5833,0.1667,0.2024,0.1190];ye=[0.9404,0.7143,0.9167,0.5833,0.1548,0.1667,0.1071];aa=polyfit(x,ya,2);bb=polyfit(x,yb,2);cc=polyfit(x,yc,2);dd=polyfit(x,yd,2);ee=polyfit(x,ye,2);x1=[0:10:1000];y1=aa(3)+aa(2)*x1+aa(1)*x1.^2;y2=bb(3)+bb(2)*x1+bb(1)*x1.^2;y3=cc(3)+cc(2)*x1+cc(1)*x1.^2;y4=dd(3)+dd(2)*x1+dd(1)*x1.^2;y5=ee(3)+ee(2)*x1+ee(1)*x1.^2;subplot(5,1,1);plot(x1,y1,'-r');title('m=10');subplot(5,1,2);plot(x1,y2,'-r');title('m=100');subplot(5,1,3);plot(x1,y3,'-r');title('m=500');subplot(5,1,4);plot(x1,y4,'-r');title('m=1000');subplot(5,1,5);plot(x1,y5,'-r');title('m=3000');附錄:AIcs.m文件的源代碼functionAIcs()x=[0,30,50,100,300,500,1000];ya=[0.9625,0.9500,0.9250,0.8500,0.6750,0.4625,0.5125];yb=[0.9625,0.9500,0.9500,0.9000,0.7500,0.6250,0.6375];yc=[0.9625,0.9500,0.9500,0.9000,0.8375,0.8125,0.8125];yd=[0.9625,0.9500,0.9625,0.9125,0.8500,0.8500,0.8625];ye=[0.9625,0.9500,0.9750,0.9125,0.9125,0.9000,0.9125];aa=polyfit(x,ya,2);bb=polyfit(x,yb,2);cc=polyfit(x,yc,2);dd=polyfit(x,yd,2);ee=polyfit(x,ye,2);x1=[0:10:1000];y1=aa(3)+aa(2)*x1+aa(1)*x1.^2;y2=bb(3)+bb(2)*x1+bb(1)*x1.^2;y3=cc(3)+cc(2)*x1+cc(1)*x1.^2;y4=dd(3)+dd(2)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村農(nóng)田水利施工協(xié)議范本
- 知識產(chǎn)權(quán)保護(hù)保證金協(xié)議書
- 電子商務(wù)合同審批規(guī)則
- 股票質(zhì)押追加協(xié)議三篇
- 鐵路橋梁維修工程招標(biāo)合同三篇
- 聯(lián)學(xué)共建活動協(xié)議書(2篇)
- 保潔人員務(wù)工合同范例
- 甘肅防水施工簽訂合同范例
- 廠房設(shè)計(jì)合同范例
- 自動冰箱出租合同范例
- 高壓開關(guān)柜試驗(yàn)報告(完)
- 特困人員生活自理能力評估表
- 預(yù)拌混凝土企業(yè)質(zhì)量管理體系·程序文件
- 外國人換發(fā)或補(bǔ)發(fā)永久居留證件申請表樣本
- 塔吊安裝旁站監(jiān)理記錄表(示范稿)
- GCC認(rèn)證對整車的一般要求
- OBD-II標(biāo)準(zhǔn)故障代碼表
- 施工現(xiàn)場類安全隱患排查清單表
- 采購項(xiàng)目組織履約、驗(yàn)收方案、程序、辦法
- 送貨單(三聯(lián)針式打印)
- pdca循環(huán)在護(hù)理教學(xué)中的應(yīng)用學(xué)習(xí)教案
評論
0/150
提交評論