貝葉斯分類代碼.doc

貝葉斯分類代碼.doc

ID:59130443

大?。?40.50 KB

頁數(shù):7頁

時間:2020-09-12

貝葉斯分類代碼.doc_第1頁
貝葉斯分類代碼.doc_第2頁
貝葉斯分類代碼.doc_第3頁
貝葉斯分類代碼.doc_第4頁
貝葉斯分類代碼.doc_第5頁
資源描述:

《貝葉斯分類代碼.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Python運(yùn)行下——貝葉斯分類代碼最近在網(wǎng)站上謾罵的人比較多,想寫一個語義分類器,讓電腦自動屏蔽那些罵人的評論,怎么辦呢?這就用到了一個機(jī)器學(xué)習(xí)的算法——貝葉斯文本分類器。這個算法很有用處,可以讓電腦識別人類語言,如果加上一點(diǎn)心理學(xué)的知識,可以讓電腦理解人類的文章并讓電腦判斷作者的個性特征,這就復(fù)雜了,現(xiàn)在我們先做一個簡單的示范。1.首先是需要一個樣本集,用于訓(xùn)練文本分類器:這里面用到了一個分詞算法【cs.perse】,其實(shí)是一個機(jī)械分詞算法,cs.py文件的代碼粘貼在最下面。2.下面的函數(shù)利用樣本創(chuàng)建一個詞表

2、,也就是所有詞的集合1.下面的函數(shù)將一個詞表轉(zhuǎn)換成詞向量2.訓(xùn)練樣本得到臟話/非臟話的詞分布概率3.利用貝葉斯條件概率,計算輸入的一句話到底是不是罵人的話,如果是罵人的話,就返回1,否則返回01.最后測試一下【'fuckyou!motherfucker!'】這句話,輸出結(jié)果為:1##########以下是cs.py文件的代碼#####################coding:utf8importtimeimportpandasaspdimportstringdefload_words(dic_file='./

3、Freq/SogouLabDic.dic'):??t=time.time()??word_dic={}??first_word_dic={}??forlineinopen(dic_file):????line=unicode(line,'utf8').split()????word=line[0]????word_len=line[1]????sex=line[2]iflen(line)==3elseNone????first_word_dic.setdefault(word[0],[])????first_wo

4、rd_dic[word[0]].append(word)????word_dic[word]=(word_len,sex)??forfirst_word,wordsinfirst_word_dic.items():????word_dic[first_word]=sorted(words,key=lambdax:len(x),reverse=False)??print'load_wordstime:',time.time()-t??returnfirst_word_dic,word_dicfirst_word_d

5、ic,word_dic=load_words()model_dic={??'letters':string.ascii_letters,??'digits':string.digits,??'punctuation':string.punctuation,??}defmatch_ascii(i,sentence):??result=''??foriinrange(i,len(sentence)):????ifnotsentence[i]instring.ascii_letters:break????result+

6、=sentence[i]??returnresultdefmatch_word(i,sentence,first_word_dic=first_word_dic):??first_word=sentence[i]??ifnotfirst_word_dic.has_key(first_word):????iffirst_wordinstring.ascii_letters:??????returnmatch_ascii(i,sentence)????return''??words=first_word_dic[fi

7、rst_word]??forwordinwords:????ifsentence[i:i+len(word)]==word:??????returnword??returnfirst_worddefperse(sentence):??ifsentence:????words=[]????i=0????whilei

8、ed_word)??????i+=len(matched_word)????returnwordsif__name__=='__main__':??sentence=u'我曾經(jīng)跨過山和abddfdf大海!互,聯(lián)網(wǎng)詞語搭配關(guān)系庫來自于對SOGOU搜索引擎所索引到的中文互聯(lián)網(wǎng)語料的統(tǒng)計分析,統(tǒng)計所進(jìn)行的時間是2006年10月,涉及到的互聯(lián)網(wǎng)語料規(guī)模在1億頁面以上。涉及到的搭配

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。