Python機器學習項目化教程(微課視頻版)課件 第16章 深度學習垃圾郵件分類_第1頁
Python機器學習項目化教程(微課視頻版)課件 第16章 深度學習垃圾郵件分類_第2頁
Python機器學習項目化教程(微課視頻版)課件 第16章 深度學習垃圾郵件分類_第3頁
Python機器學習項目化教程(微課視頻版)課件 第16章 深度學習垃圾郵件分類_第4頁
Python機器學習項目化教程(微課視頻版)課件 第16章 深度學習垃圾郵件分類_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第16章綜合案例分析:垃圾郵件分類目錄CONTENTS16.1文本預處理16.2中文垃圾郵件分類算法及實現16.3本章小結16.1文本預處理學習基礎學習認知能力信息素養(yǎng)高為了將該問題轉換為分類問題,需要處理這些文本信息,將其轉化為分類問題所要求的特征空間和標簽空間,從而選擇合適的機器學習方法進行參數學習,然后對郵件進行分類。中文文本經過分詞之后,仍然是非結構化的,為方便計算機處理,必須轉換為機器可識別的格式,同時盡可能保留文本的原有語義信息,就需要進行文本表示。0102中文分詞(ChineseWordSegmentation)是處理中文自然語言問題的第一步工作,它指的是將一個漢字序列切分成一個個單獨的詞。16.1文本預處理中文分詞1.基于規(guī)則的分詞基于規(guī)則的分詞方法也稱為機械分詞方法,主要借助于詞典工具,將語句中的每個字符串與詞典中的詞進行逐一匹配,找到則切分,否則不切分。常用的幾種機械分詞方法如下: 正向最大匹配法。 逆向最大匹配法。 雙向最大匹配法。16.1文本預處理16.1.1非參數估計與參數估計defcut_words(self,text):dic=['計算機','程序','設計','藝術']whiletext_length>start_i:forword_lengthinrange(self.words_size+start_i,start_i,-1):word=text[start_i:word_length]ifwordindic:start_i=word_length-1breakstart_i=start_i+1result.append(word)returnresult16.1文本預處理(2)逆向最大匹配defcut_words(self,text):size=self.word_sizewhilecobegin<coend:whilesize>0:seg_word=text[coend-size:coend]ifseg_wordinself.dic:coend-=sizeout.append(seg_word)size=self.word_sizebreakelse:#匹配失敗

size-=116.1文本預處理(3)雙向最大匹配雙向最大匹配算法的原理就是結合正向最大匹配算法和逆向最大匹配算法的分詞結果,選擇正確的分詞方式。選擇的原則是:: 在兩個分詞結果中,如果切分后詞的數量不同,則選擇數量較少的那個作為分詞結果。 分詞后,如果詞的數量相同,則分為兩種情況來處理:若分詞結果相同,則返回任意一個。若分詞結果不同,則返回分詞為單字的數量較少的那個;若詞為單字的數量也相同,則任意返回一個。16.1文本預處理2.基于統(tǒng)計的分詞方法(1)建立統(tǒng)計語言模型目前主要采用n元語言模型(n-gram),這種模型結構簡單、直接,但同時也因為數據缺乏而必須采取平滑算法。由長度為n個詞構成句子s的概率為:16.1文本預處理下面通過一個簡單的例子說明HMM模型的訓練過程。16.1文本預處理狀態(tài)轉移概率矩陣A:觀測轉移矩陣B:16.1文本預處理(2)利用維特比算法求解狀態(tài)序列時刻t狀態(tài)為i的所有單個路徑中概率最大值為,其公式表示為:16.1文本預處理3.目前的分詞系統(tǒng)與語料庫Jieba有3種分詞方式:精確模式、全模式、搜索模式。importjiebas='人工智能實驗室總監(jiān)'s_list=jieba.cut(s,cut_all=False)print('精確模式:','/'.join(s_list))s_list=jieba.cut(s,cut_all=True)print('全模式:','/'.join(s_list))s_list=jieba.cut_for_search(s)print('搜索模式:','/'.join(s_list))精確模式:人工智能/實驗室/總監(jiān)全模式:人工/人工智能/智能/實驗/實驗室/總監(jiān)搜索模式:人工/智能/人工智能/實驗/實驗室/總監(jiān)16.1文本預處理2.向量空間模型TF-IDF(termfrequent-inversedocumentfrequency,詞頻-逆文檔頻率)表示每個詞語(特征)在文本中的權重,其中詞頻通過用一個詞在一篇文檔中出現的次數來表示該詞的重要性,IDF用一個詞在多少個文檔中出現來表示該詞在文檔中的區(qū)分度。16.1文本預處理3.概率模型pLSA(ProbabilisticLatentSemanticAnalysis,淺層概率語義分析)、LDA(LatentDirichletAllocation,隱含狄利克雷分布)等語義模型來實現。pLSA和LDA是通過概率手段計算潛在主題與word、document之間的關系,這種方法也稱為主題模型,其核心公式為:16.2中文垃圾郵件分類算法及實現1.讀取數據正常郵件保存在ham_data.txt文件中,垃圾郵件保存在spam_data.txt文件中。frame1=pd.DataFrame(ham_txt)frame2=pd.DataFrame(spam_txt)frame1.insert(1,'class',np.ones(len(ham_txt)))frame2.insert(1,'class',np.zeros(len(spam_txt)))frame=pd.concat([frame1,frame2])frame.head()16.2中文垃圾郵件分類算法及實現2.郵件文本數據的可視化在對郵件進行分類之前,我們可以通過對分詞后的兩類文本數據進行詞云展示,觀察它們的差異情況。ham_txt_processed=remove_stopwords(ham_txt)#去除正常郵件中的停用詞

spam_txt_processed=remove_stopwords(spam_txt)#去除垃圾郵件中的停用詞

show_wordcloud("".join(ham_txt_processed))#正常郵件的詞云顯示show_wordcloud("".join(spam_txt_processed))#垃圾郵件的詞云顯示16.2中文垃圾郵件分類算法及實現3.貝葉斯模型訓練在建立貝葉斯模型對郵件數據訓練之前,需要先對數據樣本進行劃分,我們利用train_test_split()函數將數據按8:2劃分為訓練集和測試集,即80%為訓練集,20%為測試集。train,test,train_label,test_label=train_test_split(frame.text,frame.label,test_size=0.2)CV=CountVectorizer()TF=TfidfTransformer()train_tfidf=TF.fit_transform(CV.fit_transform(train))16.2中文垃圾郵件分類算法及實現4.貝葉斯模型測試與評估。test_tfidf=TF.transform(CV.transform(test))pre=model_gaussian.predict(test_tfidf.toarray())print(metrics.classification_report(test_label,pre))16.2中文垃圾郵件分類算法及實現svm=SVC(kernel='linear',C=0.5,random_state=0)model_svc=svm.fit(train_tfidf,trainlabel)pre2=model_svc.predict(test_tfidf.toarray())print(metrics.classification_report(testlabel,pre2))16.2中文垃圾郵件分類算法及實現16.2中文垃圾郵件分類算法及實現16.2中文垃圾郵件分類算法及實

溫馨提示

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

評論

0/150

提交評論