基于SVM的中文垃圾短信識別方法研究_第1頁
基于SVM的中文垃圾短信識別方法研究_第2頁
基于SVM的中文垃圾短信識別方法研究_第3頁
基于SVM的中文垃圾短信識別方法研究_第4頁
基于SVM的中文垃圾短信識別方法研究_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

.1.2訓(xùn)練模型利用訓(xùn)練數(shù)據(jù)集和支持向量機(jī)算法進(jìn)行模型訓(xùn)練,模型將基于輸入特征推斷短信是否屬于垃圾短信。通過調(diào)整模型參數(shù)與結(jié)構(gòu),模型在訓(xùn)練數(shù)據(jù)集上展現(xiàn)出令人滿意的表現(xiàn),但僅僅在訓(xùn)練數(shù)據(jù)集上表現(xiàn)出色并不能充分驗(yàn)證模型的泛化能力,因此,必須使用測試數(shù)據(jù)集來驗(yàn)證模型的性能。在評估模型時(shí),通常要關(guān)注評估指標(biāo)。模型的準(zhǔn)確率是指分類正確的短信數(shù)量與總短信數(shù)量之比,這一指標(biāo)反映了模型在整個(gè)分類任務(wù)中的執(zhí)行效果;召回率即為識別出的垃圾短信數(shù)量與實(shí)際存在的垃圾短信總量之比,用于評估模型在識別垃圾短信方面的效能;F1值則是一個(gè)綜合了精確率和召回率的評價(jià)指標(biāo),F(xiàn)1值越高,表示模型在精確率和召回率上的表現(xiàn)都越好,即模型在預(yù)測正樣本時(shí)既準(zhǔn)確又全面。通過對這些評估指標(biāo)進(jìn)行細(xì)致分析,可對模型在測試數(shù)據(jù)集上的綜合表現(xiàn)進(jìn)行全面評估。若模型在測試集上的表現(xiàn)不盡如人意,可著眼于調(diào)整參數(shù)、嘗試不同核函數(shù),或者優(yōu)化特征提取方法等多種途徑,以期提升模型的整體性能水平。因此,模型的訓(xùn)練與評估在構(gòu)建基于SVM的中文垃圾短信識別系統(tǒng)中扮演關(guān)鍵角色。通過合理的數(shù)據(jù)集劃分、模型訓(xùn)練和性能評估,可確保模型具備較高的分類和泛化能力,以在實(shí)際應(yīng)用中取得良好的識別結(jié)果。具體代碼如下:(1)訓(xùn)練線性支持向量機(jī)(LinearSVC)模型deftrain():stop_word_file=stop_list_pathMsg_to_features=MsgToWordFeatures(stop_word_file=stop_word_file)ham_words=Msg_to_features.get_Msg_words(normData_path)spam_words=Msg_to_features.get_Msg_words(spamData_path)print('正常短信數(shù)量',len(ham_words))print('垃圾短信數(shù)量',len(spam_words))all_Msg=[]all_Msg.extend(ham_words)all_Msg.extend(spam_words)print('總短信數(shù)量:',len(all_Msg))words_to_matrix=Msg_to_features.text_to_feature_matrix(all_Msg)joblib.dump(words_to_matrix,Dict_path)label_matrix=np.zeros((len(all_Msg),1))label_matrix[0:len(ham_words),:]=1x_train,x_test,y_train,y_test=train_test_split(words_to_matrix,label_matrix,test_size=0.2,random_state=42)svm_model=LinearSVC(loss='hinge',dual=True)svm_model.fit(x_train,y_train)joblib.dump(svm_model,svm_model_path)y_prab=svm_model.predict(x_test)get_metrics(true_labels=y_test,predicted_labels=y_prab)(2)評估指標(biāo)defget_metrics(true_labels,predicted_labels):print('準(zhǔn)確率:',np.round(metrics.accuracy_score(true_labels,predicted_labels),2))print('精度:',np.round(metrics.precision_score(true_labels,predicted_labels,),2))print('召回率:',np.round(metrics.recall_score(true_labels,predicted_labels,),2))print('F1得分:',np.round(metrics.f1_score(true_labels,predicted_labels,),2))5.2實(shí)驗(yàn)結(jié)果與分析5.2.1實(shí)驗(yàn)結(jié)果(1)指標(biāo)值本實(shí)驗(yàn)采用準(zhǔn)確率、精度、召回率和F1值作為評估指標(biāo),對基于SVM的中文垃圾短信識別方法的模型性能進(jìn)行了評估。以下是實(shí)驗(yàn)結(jié)果:表5.1模型評估指標(biāo)值A(chǔ)ccuracyPrecisionRecallF1-Score0.970.990.950.97從實(shí)驗(yàn)結(jié)果可以看出,模型在準(zhǔn)確率和精度方面表現(xiàn)良好,達(dá)到了95%以上的準(zhǔn)確率及精確率。這意味著模型能夠正確地將垃圾短信和非垃圾短信進(jìn)行分類;其次,在召回率方面達(dá)到了95%。召回率是指正確識別為垃圾短信的數(shù)量占所有垃圾短信數(shù)量的比例,由此可見模型能夠高效地識別出大部分的垃圾短信;最后,模型在F1值方面也表現(xiàn)優(yōu)異,達(dá)到了97%。(2)C值的選擇在支持向量機(jī)中,參數(shù)C的取值至關(guān)重要,它控制了模型在訓(xùn)練數(shù)據(jù)集上的擬合程度。圖5.2C值的選擇圖5.2對比了不同C值下LinearSVC的分類效果,可以看出C值越大時(shí),分界線會盡可能的將每一個(gè)數(shù)據(jù)點(diǎn)正確分類。當(dāng)C值較小時(shí),模型對錯(cuò)誤分類的容忍度較高,傾向于選擇更簡單的決策邊界。這可能導(dǎo)致模型在訓(xùn)練數(shù)據(jù)上的性能不是最優(yōu),但可能具有更好的泛化能力,即對新數(shù)據(jù)的分類效果更穩(wěn)定。然而,過小的C值也可能導(dǎo)致模型過于簡單,無法充分捕捉數(shù)據(jù)的復(fù)雜結(jié)構(gòu),從而導(dǎo)致分類效果不佳。隨著C值的增大,模型對錯(cuò)誤分類的容忍度逐漸降低,模型會努力將更多的數(shù)據(jù)點(diǎn)正確分類。這時(shí),決策邊界更加復(fù)雜,盡可能地將每一個(gè)數(shù)據(jù)點(diǎn)都正確劃分到相應(yīng)的類別中,這種趨勢在LinearSVC中尤為明顯,因?yàn)榫€性分類器是通過找到一條直線(或超平面)來分隔不同類別的樣本。隨著C值的增大,這條直線會不斷調(diào)整其位置和斜率,以更好地適應(yīng)數(shù)據(jù)的分布。然而,過大的C值也可能導(dǎo)致模型過擬合。當(dāng)C值過大時(shí),模型會過于關(guān)注訓(xùn)練數(shù)據(jù)中的噪聲和異常值,導(dǎo)致決策邊界過于復(fù)雜,失去了對新數(shù)據(jù)的泛化能力。5.2.2結(jié)果分析(1)特征提取的有效性實(shí)驗(yàn)結(jié)果表明,通過提取詞頻特征,能夠有效地表示短信內(nèi)容,從而提高SVM模型的分類性能。且能夠捕捉短信的文本信息和統(tǒng)計(jì)特性,有助于區(qū)分垃圾短信和正常短信。(2)SVM模型的優(yōu)越性SVM利用最優(yōu)超平面對不同類別的樣本進(jìn)行分隔,對于非線性可分?jǐn)?shù)據(jù)表現(xiàn)出顯著的處理能力。此外,SVM模型還展現(xiàn)出出色的泛化性能,在未知數(shù)據(jù)上仍能保持良好的分類效果。(3)參數(shù)選擇的影響正則化參數(shù)C的選擇對SVM模型的性能具有重要影響。通過交叉驗(yàn)證確定最優(yōu)參數(shù)組合,可以進(jìn)一步提高模型的分類性能。然而,參數(shù)選擇也是一個(gè)復(fù)雜的過程,需要綜合考慮多個(gè)因素,如數(shù)據(jù)集的特點(diǎn)、計(jì)算資源等。5.3中文垃圾短信識別系統(tǒng)設(shè)計(jì)5.3.1用戶界面與交互工具在設(shè)計(jì)中文垃圾短信識別系統(tǒng)的界面時(shí),注重布局與分區(qū)的合理性,明確劃分導(dǎo)入短信、識別短信和輸入短信等功能區(qū)域。功能按鈕設(shè)計(jì)醒目易用,點(diǎn)擊導(dǎo)入按鈕即可選擇并導(dǎo)入短信數(shù)據(jù),隨后點(diǎn)擊識別按鈕進(jìn)行識別。同時(shí),界面提供了提示和反饋,在識別完成后清晰展示識別結(jié)果。在視覺風(fēng)格上,采用清新舒適的色彩搭配和直觀易懂的圖標(biāo),營造出友好易用的界面。此外,還注重交互邏輯的簡潔明了和易用性,減少不必要的操作步驟并提供錯(cuò)誤提示。最后,考慮到個(gè)性化設(shè)置和功能擴(kuò)展的需求,系統(tǒng)還預(yù)留了足夠的自定義空間和擴(kuò)展性。(1)主界面。如圖5.2顯示系統(tǒng)的主要功能和操作選項(xiàng)。包括導(dǎo)入短信、識別短信、輸入短信等功能按鈕,提供狀態(tài)提示,如識別結(jié)果等。關(guān)鍵代碼如下:defretranslateUi(self,MainWindow):_translate=QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow","MainWindow"))self.predcitButton.setText(_translate("MainWindow","識別短信"))self.importFileButton.setText(_translate("MainWindow","導(dǎo)入短信"))self.MsgEdit.setPlaceholderText(_translate("MainWindow","請輸入短信正文,或?qū)攵绦盼谋?))self.whiteLabel.setText(_translate("MainWindow","白名單短信"))self.blackLabel.setText(_translate("MainWindow","黑名單短信"),) 圖5.2主界面(2)短信上傳與識別界面。提供文件上傳功能,支持用戶上傳包含短信的文本文件,提供識別短信的選項(xiàng)。代碼的關(guān)鍵部分在于獲取用戶輸入的短信內(nèi)容,使用機(jī)器學(xué)習(xí)模型對短信進(jìn)行預(yù)測,并根據(jù)預(yù)測結(jié)果執(zhí)行不同的操作(如將短信添加到黑名單或白名單,并更新短信列表)。同時(shí),代碼還包括對用戶輸入的檢查,以確保在執(zhí)行預(yù)測之前用戶已經(jīng)輸入了有效的短信內(nèi)容。關(guān)鍵代碼如下:a.短信內(nèi)容獲取content=str(self.MsgEdit.toPlainText())b.短信預(yù)測result=msg_predict(content,self.words_to_matrix,self.svm_model)c.結(jié)果處理與反饋根據(jù)result的值(True表示正常短信,F(xiàn)alse表示垃圾短信),代碼執(zhí)行不同的操作:如果result為False(即預(yù)測為垃圾短信):QMessageBrmation(self.window(),'提示','此短信為垃圾短信,已自動加入到黑名單',QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)content=re.sub(r'[\t\s]*','',content)withopen(blackMsg_path+str(self.blackIndex)+'.txt','w+',)asf:f.write(content)self.initMsgList()通過QMessageBox彈出一個(gè)信息框告知用戶短信已被識別為垃圾短信并自動加入黑名單。之后,使用正則表達(dá)式移除短信內(nèi)容中的制表符和空格,然后將處理后的短信內(nèi)容寫入指定路徑的文件中。最后調(diào)用self.initMsgList()方法。同理,如果result為True(即預(yù)測為正常短信),則執(zhí)行以下代碼:QMessageBrmation(self.window(),'提示','此短信為正常短信,已自動加入到白名單',QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)content=re.sub(r'[\t\s]*','',content)withopen(whiteMsg_path+str(self.whiteIndex)+'.txt','w+',)asf:f.write(content)self.initMsgList()d.進(jìn)行輸入檢查(a) (b)圖5.3輸入檢查(a),識別結(jié)果(b)(3)識別結(jié)果修改與刪除界面。提供編輯、刪除和重新標(biāo)記短信的選項(xiàng)。根據(jù)用戶在黑名單或白名單列表上的右鍵點(diǎn)擊位置,系統(tǒng)將即時(shí)生成并展示一個(gè)上下文菜單。菜單中的每個(gè)動作都綁定了特定的方法,以便執(zhí)行不同的操作,如發(fā)送短信到另一個(gè)列表或刪除短信,在刪除短信時(shí),通過彈出警告框來確認(rèn)用戶的操作,并安全地刪除相應(yīng)的文件。關(guān)鍵代碼如下:a.上下文菜單的顯示與動作綁定defshowContextMenu(self,position):popMenu=QMenu(self)sendAct=QAction("發(fā)送到黑名單",self)delAct1=QAction("刪除此短信",self)ifself.whitelist.itemAt(position):popMenu.addAction(sendAct)popMenu.addAction(delAct1)sendAct.triggered.connect(self.send1)delAct1.triggered.connect(self.DeleteWhitelistItem)popMenu.exec_(self.whitelist.mapToGlobal(position))self.initMsgList()showContextMenu2方法和showContextMenu方法同理。利用showContextMenu和showContextMenu2兩個(gè)方法,根據(jù)用戶在黑名單或白名單列表上的右鍵點(diǎn)擊位置顯示上下文菜單。如果點(diǎn)擊位置上有項(xiàng)(即短信條目),菜單會顯示“發(fā)送到黑名單/白名單”和“刪除此短信”兩個(gè)選項(xiàng)。這些動作分別綁定了到self.send1,self.send2,self.DeleteWhitelistItem,和self.DeleteblacklistItem方法。b.刪除短信條目的確認(rèn)與操作defDeleteWhitelistItem(self):reply=QMessageBox.warning(self,'警告','確定刪除此短信嗎?',QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)ifreply==QMessageBox.Yes:msg=self.whitelist.currentItem().text()fileNameBegin=msg.split('.')[0]whiteFiles=os.listdir(whiteMsg_path)forfileinwhiteFiles:iffile.split('.')[0]==fileNameBegin:os.remove(os.path.join(whiteMsg_path,file))self.initMsgList()DeleteWhitelistItem方法是刪除白名單中短信條目的關(guān)鍵部分。首先彈出一個(gè)QMessageBox警告框,詢問用戶是否確定要?jiǎng)h除短信。如果用戶點(diǎn)擊“是”(QMessageBox.Yes),則執(zhí)行刪除操作。DeleteblacklistItem方法原理同DeleteWhitelistItem方法一樣。圖5.4編輯、刪除和重新標(biāo)記短信5.3.2測試目標(biāo)(1)識別準(zhǔn)確性測試首先驗(yàn)證SVM模型在區(qū)分正常短信和垃圾短信時(shí)的準(zhǔn)確率,確保模型能夠有效地識別出垃圾短信。其次測試模型在不同類型的垃圾短信(如詐騙、色情、廣告等)上的識別效果,以評估模型的泛化能力。(2)性能效率測試測試SVM模型在處理大量短信數(shù)據(jù)時(shí)的處理速度,確保系統(tǒng)能夠在短時(shí)間內(nèi)完成識別任務(wù);并對模型在資源消耗方面的表現(xiàn)進(jìn)行評估,包括內(nèi)存占用和CPU使用率,以驗(yàn)證系統(tǒng)在有限資源下的穩(wěn)定運(yùn)行性能。(3)易用性測試測試系統(tǒng)的用戶界面是否友好,是否易于操作和理解。評估系統(tǒng)在使用過程中是否提供足夠的幫助和提示,以便用戶能夠輕松地完成短信識別任務(wù)。(4)可維護(hù)性測試為了便于后續(xù)的新特征添加或模型改進(jìn),需對系統(tǒng)的可擴(kuò)展性進(jìn)行測試,以保證集成與調(diào)整的便捷性。同時(shí),亦應(yīng)對系統(tǒng)的穩(wěn)定性進(jìn)行評估,以確保在長期運(yùn)行中維持良好的識別性能。5.3.3測試環(huán)境(1)硬件方面硬件環(huán)境是測試系統(tǒng)運(yùn)行的物質(zhì)基礎(chǔ),包括服務(wù)器、存儲設(shè)備、網(wǎng)絡(luò)設(shè)備等。這些硬件設(shè)備需要滿足測試系統(tǒng)的性能要求,確保系統(tǒng)能夠穩(wěn)定運(yùn)行并快速處理大量短信數(shù)據(jù)。本系統(tǒng)選擇windows10的操作系統(tǒng),內(nèi)存滿足SVM模型訓(xùn)練要求。(2)軟件方面編程采用Python語言,該語言被認(rèn)定為機(jī)器學(xué)習(xí)領(lǐng)域的首選之一,主要因其內(nèi)建豐富的機(jī)器學(xué)習(xí)庫及工具,例如scikit-learn、numpy等,這些庫提供SVM算法實(shí)現(xiàn)和數(shù)據(jù)處理等功能。6總結(jié)基于SVM的中文垃圾短信識別方法是一種有效且廣泛應(yīng)用的文本分類技術(shù)。這種方法結(jié)合了SVM(支持向量機(jī))算法的強(qiáng)大分類能力和中文垃圾短信的特定特征,以實(shí)現(xiàn)對垃圾短信的準(zhǔn)確識別。首先,該方法的核心在于特征提取。通過提取短信中的N-gram特征、詞頻特征、詞性特征以及情感分析特征等,我們可以獲得豐富的信息,用于訓(xùn)練SVM模型。這些特征不僅考慮了短信的詞匯和語法信息,還融入了語義和情感因素,從而提高了模型的分類性能。其次,SVM算法的選擇對于識別效果至關(guān)重要。在中文垃圾短信識別中,我們可以選擇適當(dāng)?shù)暮撕瘮?shù)(如線性核、多項(xiàng)式核或RBF核)和參數(shù)設(shè)置,以適應(yīng)短信數(shù)據(jù)的特性。通過調(diào)整參數(shù),進(jìn)一步提升模型的性能。在模型訓(xùn)練與評估階段,持續(xù)監(jiān)控模型的性能,并根據(jù)實(shí)際情況進(jìn)行必要的調(diào)整和優(yōu)化。同時(shí),保持?jǐn)?shù)據(jù)的完整性和安全性,確保模型的可靠性和穩(wěn)定性。本系統(tǒng)仍存在很多的不足。SVM模型中的參數(shù)調(diào)優(yōu)是一個(gè)復(fù)雜且耗時(shí)的過程。選擇合適的核函數(shù)、調(diào)整懲罰系數(shù)C和核函數(shù)參數(shù)gamma等都需要通過交叉驗(yàn)證和網(wǎng)格搜索等方法進(jìn)行大量實(shí)驗(yàn)。但本系統(tǒng)中核函數(shù)里具體的參數(shù)沒有去設(shè)定,而是采用系統(tǒng)的默認(rèn)值??偟膩碚f,基于SVM的中文垃圾短信識別方法通過提取豐富的特征、選擇合適的SVM算法以及進(jìn)行模型優(yōu)化與部署,實(shí)現(xiàn)了對垃圾短信的準(zhǔn)確識別。這種方法在實(shí)際應(yīng)用中具有較高的性能和泛化能力,為打擊垃圾短信提供了有效的技術(shù)支持。然而,隨著技術(shù)的發(fā)展和垃圾短信形式的不斷變化,我們還需要不斷探索新的特征提取方法和算法優(yōu)化策略,以進(jìn)一步提高識別效果。

參考文獻(xiàn)[1]劉誠,陳曦,吳文波.垃圾短信分析及治理技術(shù)研究[J].廣東通信技術(shù),2022,42(6):5.[2]劉國香,張鈞鋒,LIU,等.垃圾短信分類方式的探討[J].滄州師范??茖W(xué)校學(xué)報(bào),2011.DOI:CNKI:SUN:CSZX.0.2011-04-042.[3]湯庸,謝逸,余敦輝.基于SVM和KNN的垃圾短信分類算法研究[J].計(jì)算機(jī)科學(xué),2012,39(11):200-203.[4]龔壘.基于支持向量機(jī)的垃圾短信過濾方法研究[D].河南理工大學(xué),2011.DOI:CNKI:CDMD:2.1011.106933.[5]蔣盛益,陽娣莎.基于核函數(shù)選擇的SVM垃圾短信過濾[J].計(jì)算機(jī)工程,2011,37(16):176-178.[6]楊丹丹.基于支持向量機(jī)的垃圾短信監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué)[2024-04-11].DOI:CNKI:CDMD:2.1016.091427.[7]梁廳.基于深度學(xué)習(xí)的垃圾短信識別方法研究[J].成都理工大學(xué),2019.[8]劉廣明.機(jī)器學(xué)習(xí)中的兩階段特征選擇方法研究[D].哈爾濱理工大學(xué),2015.DOI:10.7666/d.D709309.[9]宗成慶.統(tǒng)計(jì)自然語言處理[M].清華大學(xué)出版社,2013.[10]于洪霞.基于SVM的中文垃圾郵件過濾[D].哈爾濱工程大學(xué)[2024-04-11].DOI:10.7666/d.y1808631.[11]祝慶榮.基于SVM算法的垃圾信息過濾相關(guān)技術(shù)研究[D].華南理工大學(xué),2009.DOI:10.7666/d.Y1594730.[12]馬楠.基于內(nèi)容的垃圾短信過濾技術(shù)研究[D].北京郵電大學(xué),2014.[13]周志華.《機(jī)器學(xué)習(xí)》[J].中國民商,2016,03(No.21):93-93.D

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論