大學(xué)畢業(yè)了!!上來感嘆一下!并拿出自己的畢業(yè)設(shè)計(jì)分享一下。
這個(gè)小東西是用了一個(gè)星期完成的。BUG肯定不少,大家湊合著看一下吧。感覺有趣的就拿去玩玩。
說說基本思路。
1.對(duì)文件進(jìn)行分詞處理
2.通過統(tǒng)計(jì)訓(xùn)練文檔當(dāng)中的詞頻方差,構(gòu)造評(píng)判矩陣
3.之后在構(gòu)造待分類文檔的評(píng)判向量
4.用評(píng)判向量和構(gòu)造矩陣相乘,選出最接近的分類。
具體地方法大家可以參考一下這篇論文:《基于模糊理論的網(wǎng)頁過濾算法的實(shí)現(xiàn)》
上圖:

主界面

結(jié)果文件

訓(xùn)練文檔的目錄結(jié)構(gòu)
程序文件:
http://www.namipan.com/d/db9717e2153a1bc504dc597fee9ac32e92b428fcc4fe3900其實(shí)正確率還可以進(jìn)一步提高的。以后有興趣的時(shí)候再來重寫一下這個(gè)程序吧。
總結(jié):
我盡力優(yōu)化了這個(gè)程序的速度。但還是不理想。
ICTCLAS分詞系統(tǒng)的效率低是其中一個(gè)重要原因。
我使用了stlsoft中的aoto_buffer來優(yōu)化內(nèi)存的分配。
使所有的string在內(nèi)存當(dāng)中只存在一份拷貝。
map和vector容器永遠(yuǎn)只存放string*
無法解決的問題:
我想在一個(gè)double數(shù)組中存放1/N,2/N,3/N......N/N,以便后來使用。
我覺得這些常量應(yīng)當(dāng)能在編譯時(shí)期確定。但是不知道如何通過定義宏來表示這些數(shù)值。
搞的我最后不得不啟動(dòng)一個(gè)線程來專門計(jì)算這些值。
有興趣的郵件聯(lián)系啊~!
posted on 2009-06-12 21:38
HIT@ME 閱讀(1399)
評(píng)論(2) 編輯 收藏 引用