器學(xué)習(xí)新聞文本分類系統(tǒng)的畢設(shè)全攻略:從數(shù)據(jù)處理到答辯避坑)
每年到這個(gè)時(shí)候都會有一大批計(jì)算機(jī)專業(yè)的同學(xué)開始為畢業(yè)設(shè)計(jì)發(fā)愁而“基于機(jī)器學(xué)習(xí)新聞文本分類系統(tǒng)”絕對是出鏡率最高的題目之一。熱詞搜索里經(jīng)常能看到“計(jì)算機(jī)畢設(shè)選題”“機(jī)器學(xué)習(xí)期末復(fù)習(xí)”“頭歌機(jī)器學(xué)習(xí)答案”這些條目說明大家都在找一條能快速上手、又不容易翻車的路線。作為一個(gè)帶過不少同學(xué)踩過坑的過來人我今天就把這個(gè)畢設(shè)題目掰開揉碎了講清楚從選題邏輯、數(shù)據(jù)集處理、模型對比到論文寫作和答辯注意事項(xiàng)一次性講透。先說結(jié)論這個(gè)題目非常適合作為本科畢設(shè)因?yàn)樗y度適中、可展示性強(qiáng)、論文好寫而且背后涉及的知識點(diǎn)覆蓋了機(jī)器學(xué)習(xí)課程的核心內(nèi)容。但越經(jīng)典的題目越容易做得平庸很多人的論文就是“跑幾個(gè)模型、貼幾張圖”最后答辯被老師一問就卡殼。所以這篇博文的目標(biāo)很明確讓你不只是“做完”而是真正理解整個(gè)系統(tǒng)能講清楚每個(gè)技術(shù)決策背后的理由無論是寫論文還是答辯都能游刃有余。1. 項(xiàng)目整體設(shè)計(jì)與技術(shù)選型思路1.1 畢設(shè)選題的價(jià)值與隱藏風(fēng)險(xiǎn)新聞文本分類為什么能成為畢設(shè)常青樹因?yàn)樗瑫r(shí)滿足了好畢設(shè)的幾個(gè)關(guān)鍵條件數(shù)據(jù)集公開易得、任務(wù)目標(biāo)清晰、技術(shù)路線成熟、可視化結(jié)果直觀。老師看到這個(gè)題目不會擔(dān)心你做不出來但你也不能因此就掉以輕心。這個(gè)題目最大的隱藏風(fēng)險(xiǎn)在于“同質(zhì)化嚴(yán)重”。十個(gè)選這個(gè)題目的同學(xué)可能有八個(gè)人的系統(tǒng)界面長得差不多用的模型都是樸素貝葉斯加SVM那三板斧連論文的圖表風(fēng)格都驚人相似。我在評審的時(shí)候看到過不少這樣的論文創(chuàng)新性幾乎為零只是把開源代碼換了個(gè)皮。要想在眾多相似題目中脫穎而出你需要在以下幾個(gè)方向上做出差異化數(shù)據(jù)集選擇用英文數(shù)據(jù)集還是中文數(shù)據(jù)集是新聞主題分類還是情感分類、特征工程策略傳統(tǒng)TF-IDF還是結(jié)合詞向量、模型組合方式是否做模型融合或集成學(xué)習(xí)、系統(tǒng)功能設(shè)計(jì)是否包含用戶上傳、實(shí)時(shí)預(yù)測、可視化展示等完整閉環(huán)。哪怕只在一個(gè)維度上做深論文的檔次就會明顯不一樣。1.2 系統(tǒng)功能模塊與架構(gòu)設(shè)計(jì)根據(jù)我見過的大部分高分畢設(shè)一個(gè)完整的新聞文本分類系統(tǒng)通常包含以下核心模塊數(shù)據(jù)管理模塊負(fù)責(zé)數(shù)據(jù)集的加載、清洗、緩存和版本管理文本預(yù)處理模塊執(zhí)行分句、分詞、去停用詞、文本清洗等操作特征工程模塊實(shí)現(xiàn)TF-IDF、詞頻統(tǒng)計(jì)、詞向量等文本表示方法模型訓(xùn)練模塊封裝多種分類算法支持訓(xùn)練、驗(yàn)證和模型持久化預(yù)測評估模塊提供單條/批量預(yù)測接口計(jì)算評估指標(biāo)并生成報(bào)告可視化展示模塊將統(tǒng)計(jì)結(jié)果、混淆矩陣、分類報(bào)告等以圖表形式展示W(wǎng)eb交互模塊提供簡潔的前端頁面讓用戶輸入文本并得到分類結(jié)果技術(shù)架構(gòu)上我推薦分為三層數(shù)據(jù)層負(fù)責(zé)原始數(shù)據(jù)存取算法層封裝預(yù)處理和模型邏輯應(yīng)用層提供交互界面。這樣分層的好處是每一層可以獨(dú)立替換和測試寫論文時(shí)也能清晰地畫出系統(tǒng)架構(gòu)圖答辯時(shí)講解起來邏輯會順暢很多。編程語言和框架方面我建議直接用Python加scikit-learn。理由很簡單生態(tài)成熟、社區(qū)資源多、遇到問題搜得到答案而且你的導(dǎo)師大概率也熟悉這套組合。對于Web界面如果時(shí)間充??梢杂肍lask或者FastAPI做一個(gè)小型應(yīng)用如果時(shí)間緊做一個(gè)簡單的命令行交互加matplotlib可視化也完全足夠。2. 數(shù)據(jù)集構(gòu)建與文本預(yù)處理實(shí)操2.1 數(shù)據(jù)來源選擇與清洗策略新聞分類數(shù)據(jù)集的來源主要有三個(gè)公開數(shù)據(jù)集如THUCNews、搜狗新聞?wù)Z料庫、Kaggle上的新聞數(shù)據(jù)集、自己寫爬蟲爬取。對于畢設(shè)來說我強(qiáng)烈推薦使用公開數(shù)據(jù)集原因很簡單你自己的爬蟲數(shù)據(jù)質(zhì)量難以保證而且標(biāo)注成本和法律風(fēng)險(xiǎn)都不低。THUCNews是目前國內(nèi)高校做中文文本分類最常用的數(shù)據(jù)集之一按類別劃分了體育、娛樂、家居、房產(chǎn)、教育、時(shí)尚、游戲、科技、財(cái)經(jīng)、社會、時(shí)尚等十多個(gè)類別每個(gè)類別有數(shù)萬條樣本。但完整版的數(shù)據(jù)量比較大大概幾個(gè)GB很多同學(xué)會選擇使用其子集或采樣版本來做實(shí)驗(yàn)這樣訓(xùn)練速度更快對硬件要求也低一些。拿到原始數(shù)據(jù)后第一件要做的事不是立刻建模而是仔細(xì)檢查數(shù)據(jù)質(zhì)量。我在處理數(shù)據(jù)時(shí)發(fā)現(xiàn)了不少編碼混亂的樣本有些是爬蟲抓取時(shí)的殘留標(biāo)簽比如HTML標(biāo)簽、換行符有些是繁體字和簡體字混用還有一些是同一新聞被重復(fù)入樣。這些臟數(shù)據(jù)如果不清理干凈后面無論用什么模型效果都會大打折扣。我的清洗流程一般是這樣的先用正則表達(dá)式去除HTML標(biāo)簽和特殊符號然后把全角字符統(tǒng)一轉(zhuǎn)成半角接著過濾掉文本長度過短比如少于20個(gè)字符的樣本最后用集合操作做去重。做去重的時(shí)候要小心不要只比對完全相同的文本還要考慮近乎重復(fù)的情況比如同一篇新聞只改了標(biāo)題或者只改了開頭的幾個(gè)字。2.2 中文分詞與停用詞處理細(xì)節(jié)中文文本和英文文本的一個(gè)顯著區(qū)別是沒有天然的空格分隔符所以分詞是中文NLP任務(wù)中不可跳過的一步。目前最常用的分詞工具是jieba分詞它支持精確模式、全模式和搜索引擎模式對于畢業(yè)設(shè)計(jì)級別的任務(wù)來說精度已經(jīng)足夠。我這里給出一段示例代碼展示了從原始文本到分詞語句的完整流程import jieba import re def clean_text(text): # 去除HTML標(biāo)簽 text re.sub(r[^], , text) # 去除URL text re.sub(rhttp[s]?://\S, , text) # 去除特殊符號和數(shù)字保留中文字符 text re.sub(r[^\u4e00-\u9fa5], , text) return text def segment_text(text): text clean_text(text) words jieba.lcut(text.strip()) return .join(words) # 示例 sample 中國隊(duì)在奧運(yùn)會上奪得金牌舉國歡慶。 print(segment_text(sample)) # 輸出: 中國 隊(duì) 在 奧運(yùn)會 上 奪得 金牌 舉國 歡慶 。分詞完成后還需要做停用詞過濾。停用詞指的是“的、了、是、在、和”這類出現(xiàn)頻率極高但對于分類任務(wù)沒有太多區(qū)分度的虛詞和功能詞以及標(biāo)點(diǎn)符號。網(wǎng)絡(luò)上有現(xiàn)成的中文停用詞表比如百度停用詞表、哈工大停用詞表可以直接下載使用。有些同學(xué)會問停用詞過濾之后準(zhǔn)確率一定會提升嗎答案是“不一定”。因?yàn)橛行┩S迷~在特定類別的文本中其實(shí)是有區(qū)分度的。但從工程經(jīng)驗(yàn)來看過濾停用詞通常能讓特征維度減少10%-30%訓(xùn)練速度明顯加快而準(zhǔn)確率幾乎不受影響所以在畢設(shè)中默認(rèn)做停用詞過濾是穩(wěn)妥的選擇。2.3 樣本分布分析與數(shù)據(jù)劃分拿到數(shù)據(jù)后首先要分析每個(gè)類別的樣本數(shù)量分布。這一步非常重要因?yàn)樗苯記Q定了后面模型評估策略的選擇。我見過不少同學(xué)拿到數(shù)據(jù)什么都不看直接喂給模型結(jié)果因?yàn)槟硞€(gè)類別樣本太少模型對這個(gè)類別幾乎不學(xué)習(xí)最后平均準(zhǔn)確率看上去還行但看混淆矩陣就露餡了。如果數(shù)據(jù)分布嚴(yán)重不均衡你需要在論文里明確說明并采取相應(yīng)的策略。常見的處理方式包括對少數(shù)類進(jìn)行過采樣如SMOTE算法、對多數(shù)類進(jìn)行欠采樣、或者在計(jì)算損失時(shí)給少數(shù)類樣本賦予更高的權(quán)重。對于本科畢設(shè)來說最簡單也最有效地方式是直接說明情況然后選擇F1值而不是準(zhǔn)確率作為主要評估指標(biāo)。數(shù)據(jù)劃分的基本原則是保證訓(xùn)練集、驗(yàn)證集和測試集的類別分布與原始數(shù)據(jù)集大致一致。用train_test_split函數(shù)時(shí)設(shè)置stratify參數(shù)為標(biāo)簽列就能實(shí)現(xiàn)分層采樣。一般建議按6:2:2或者7:2:1的比例劃分。劃分完成后務(wù)必在論文中記錄下每個(gè)集合的具體樣本數(shù)這些數(shù)據(jù)是實(shí)驗(yàn)章節(jié)的重要素材。3. 特征工程與分類模型對比實(shí)驗(yàn)3.1 TF-IDF特征表示的原理與參數(shù)選擇文本數(shù)據(jù)不能直接輸入機(jī)器學(xué)習(xí)模型必須轉(zhuǎn)換成數(shù)值向量。最經(jīng)典的方法就是詞袋模型加TF-IDF加權(quán)。TF詞頻表示某個(gè)詞在文檔中出現(xiàn)的次數(shù)IDF逆文檔頻率衡量這個(gè)詞在整個(gè)語料庫中的稀有程度兩者相乘就得到每個(gè)詞的權(quán)重。TF-IDF的直觀含義是如果一個(gè)詞在當(dāng)前文檔中出現(xiàn)次數(shù)多但在其他文檔中出現(xiàn)次數(shù)少那么這個(gè)詞對當(dāng)前文檔的區(qū)分能力強(qiáng)應(yīng)該賦予更高的權(quán)重。這就像我們在判斷一個(gè)人的職業(yè)時(shí)“算法”這個(gè)詞比“工作”這個(gè)詞更有信息量。特征維度是直接影響模型效果和訓(xùn)練速度的關(guān)鍵參數(shù)。我建議先用TfidfVectorizer的默認(rèn)參數(shù)跑一輪觀察特征數(shù)量然后根據(jù)經(jīng)驗(yàn)調(diào)整max_features。通常設(shè)置5000到20000之間是比較合理的區(qū)間。特征太少會丟失信息特征太多會引入噪聲并顯著增加訓(xùn)練時(shí)間。from sklearn.feature_extraction.text import TfidfVectorizer vectorizer TfidfVectorizer(max_features10000, ngram_range(1, 2), # 同時(shí)考慮單個(gè)詞和相鄰雙詞 sublinear_tfTrue) # 用1log(tf)對詞頻進(jìn)行壓縮 X_train_tfidf vectorizer.fit_transform(train_texts) X_test_tfidf vectorizer.transform(test_texts)這里有一個(gè)容易被忽視的點(diǎn)fit_transform只應(yīng)該在訓(xùn)練集上調(diào)用transform才是用在測試集上的。因?yàn)镮DF的計(jì)算依賴整個(gè)語料庫的統(tǒng)計(jì)信息必須用訓(xùn)練集的統(tǒng)計(jì)信息去轉(zhuǎn)換測試集否則會造成信息泄露導(dǎo)致測試結(jié)果虛高。3.2 四種經(jīng)典分類模型的對比分析新聞文本分類領(lǐng)域有四個(gè)繞不開的基礎(chǔ)模型我按推薦程度排序逐一說明邏輯回歸是我首推的模型沒有之一。它在高維稀疏的TF-IDF特征上表現(xiàn)優(yōu)異訓(xùn)練速度快模型可解釋性強(qiáng)輸出的每個(gè)特征權(quán)重都能對應(yīng)到一個(gè)具體的詞這對論文中的結(jié)果分析非常有利。你完全可以展示“體育類新聞中權(quán)重最高的20個(gè)詞”這種細(xì)節(jié)非常加分。樸素貝葉斯是文本分類的經(jīng)典之作理論基礎(chǔ)是貝葉斯定理加上特征條件獨(dú)立假設(shè)。雖然“特征獨(dú)立”這個(gè)假設(shè)在真實(shí)文本中幾乎不成立但它在新聞分類任務(wù)中的表現(xiàn)卻出奇地好尤其是在特征維度高、數(shù)據(jù)量相對不足時(shí)。MultinomialNB是文本分類最常用的變體適合處理TF-IDF這類計(jì)數(shù)型特征。支持向量機(jī)在傳統(tǒng)機(jī)器學(xué)習(xí)時(shí)代是文本分類的王者其核心思想是在特征空間中找到一個(gè)最大間隔超平面來分隔不同類別。非線性SVM在小樣本上的表現(xiàn)好但訓(xùn)練復(fù)雜度較高。即使是線性SVMLinearSVC在TF-IDF特征上依然能取得非常好的效果。要說缺點(diǎn)是訓(xùn)練時(shí)候內(nèi)存占用大且模型的可解釋性不如邏輯回歸直觀。隨機(jī)森林屬于集成學(xué)習(xí)中的Bagging方法通過構(gòu)建多棵決策樹并投票來決定最終分類結(jié)果。它在很多表格數(shù)據(jù)任務(wù)中表現(xiàn)優(yōu)秀但在高維稀疏的文本特征上往往不如前面三個(gè)模型。原因在于決策樹對稀疏特征的切分效率不高而且容易過擬合。不過把它加入對比實(shí)驗(yàn)是有意義的能說明你做過充分的模型選型比較。3.3 實(shí)驗(yàn)方案設(shè)計(jì)與結(jié)果評估做對比實(shí)驗(yàn)不是簡單地把四個(gè)模型各跑一遍就算完事而是需要一套可復(fù)現(xiàn)的實(shí)驗(yàn)方案。我建議的執(zhí)行流程是先確定統(tǒng)一的訓(xùn)練集和測試集劃分然后在訓(xùn)練集上用交叉驗(yàn)證為每個(gè)模型搜索關(guān)鍵超參數(shù)最后用測試集評估并記錄結(jié)果。評估指標(biāo)方面對于多分類任務(wù)常用的有宏平均F1Macro-F1和加權(quán)平均F1Weighted-F1。宏平均F1對每個(gè)類別一視同仁如果某個(gè)小類別的表現(xiàn)差宏平均F1的降幅會非常明顯加權(quán)平均F1則考慮了各類別的樣本量。我在論文中一般兩種都展示然后以宏平均F1為主要對比參考這樣更能體現(xiàn)模型在不同類別上的均衡表現(xiàn)。混淆矩陣是論文中最有說服力的可視化工具之一。通過混淆矩陣可以直觀地看到哪些類別容易被混淆比如“娛樂”和“時(shí)尚”這兩個(gè)類別因?yàn)槲谋局黝}相近經(jīng)常出現(xiàn)互相誤判的情況。分析混淆矩陣得出的結(jié)論可以直接寫進(jìn)論文的實(shí)驗(yàn)分析部分這段分析會讓老師覺得你是真的理解了模型的局限而不是僅僅會調(diào)包。4. 模型調(diào)優(yōu)策略與常見問題排查4.1 交叉驗(yàn)證與網(wǎng)格搜索的配合使用交叉驗(yàn)證的作用是更穩(wěn)定地評估模型性能防止因?yàn)槟骋淮闻既坏臄?shù)據(jù)劃分導(dǎo)致評估偏差。最常用的是K折交叉驗(yàn)證K-Fold一般取K5或K10。將訓(xùn)練集分成K份每次用K-1份訓(xùn)練、1份驗(yàn)證輪流進(jìn)行K次最后取平均值。網(wǎng)格搜索GridSearchCV則是把關(guān)鍵超參數(shù)的候選值組成網(wǎng)格逐一嘗試組合并找出最優(yōu)參數(shù)。以邏輯回歸為例主要調(diào)優(yōu)的參數(shù)是正則化系數(shù)C它控制著模型復(fù)雜度與過擬合風(fēng)險(xiǎn)之間的平衡。C值越小正則化強(qiáng)度越大模型越簡單C值越大模型越容易過擬合。下面是使用網(wǎng)格搜索對邏輯回歸調(diào)優(yōu)的代碼示例from sklearn.model_selection import GridSearchCV from sklearn.linear_model import LogisticRegression param_grid { C: [0.1, 1, 10, 100], solver: [liblinear] } lr LogisticRegression(max_iter1000) grid_search GridSearchCV(lr, param_grid, cv5, scoringf1_macro) grid_search.fit(X_train_tfidf, train_labels) print(最佳參數(shù):, grid_search.best_params_) print(最佳得分:, grid_search.best_score_)調(diào)參的過程一定要寫進(jìn)論文里包括你嘗試了哪些參數(shù)范圍、最終選定了哪些參數(shù)值、以及參數(shù)變化對模型性能的影響趨勢。這種“探索過程”比直接列出最終參數(shù)更有價(jià)值因?yàn)樗w現(xiàn)了你真正理解了模型的機(jī)理。4.2 中文編碼問題與內(nèi)存爆炸實(shí)錄中文文本處理最頭疼的問題之一就是編碼。我最開始跑實(shí)驗(yàn)的時(shí)候讀完數(shù)據(jù)直接分詞結(jié)果控制臺輸出的全是亂碼模型準(zhǔn)確率異常地低。排查了半天才發(fā)現(xiàn)是文件讀取時(shí)沒有指定UTF-8編碼系統(tǒng)用了默認(rèn)的GBK來解碼導(dǎo)致文本全部亂套。用pandas讀取CSV文件時(shí)務(wù)必加上encodingutf-8或者encodingutf-8-sig參數(shù)。后者會自動(dòng)處理帶BOM字節(jié)順序標(biāo)記的文件頭這是很多中文CSV文件常見的坑。如果文件編碼是GBK的可以用encodinggbk或者errorsignore來容錯(cuò)讀取。另一個(gè)常見問題是內(nèi)存爆炸。TF-IDF在默認(rèn)參數(shù)下會把所有詞的IDF都算出來特征維度可能高達(dá)幾十萬甚至上百萬中間過程會占用大量內(nèi)存。如果電腦配置一般訓(xùn)練的時(shí)候內(nèi)存條直接拉滿電腦卡死是常有的事。解決辦法就是在初始化TfidfVectorizer時(shí)設(shè)置max_features把特征維度控制在合理范圍內(nèi)。4.3 模型結(jié)果不理想的五個(gè)排查方向當(dāng)模型效果不理想時(shí)很多同學(xué)的第一反應(yīng)是換更復(fù)雜的模型但98%的情況下問題不出在模型上。按照我的經(jīng)驗(yàn)排查順序應(yīng)該是數(shù)據(jù)質(zhì)量、預(yù)處理流程、特征表示、模型超參數(shù)、代碼邏輯。這五個(gè)環(huán)節(jié)中任何一個(gè)出了問題模型效果都會受影響。數(shù)據(jù)質(zhì)量方面重點(diǎn)檢查是否存在標(biāo)簽錯(cuò)誤、重復(fù)樣本、類別極端不均衡。預(yù)處理方面檢查分詞是否正確、停用詞是否過濾、中文數(shù)字和英文單詞是否被誤殺。特征表示方面檢查TF-IDF參數(shù)是否合理比如min_df設(shè)定的最小文檔頻率是否過高或過低。模型超參數(shù)方面檢查正則化強(qiáng)度、迭代次數(shù)是否足夠。代碼邏輯方面最容易犯的錯(cuò)誤就是測試集和訓(xùn)練集的向量化方式不一致導(dǎo)致維度不匹配。我自己調(diào)試時(shí)有一個(gè)習(xí)慣每次只改一個(gè)變量記錄下結(jié)果變化用表格整理出來。比如先固定數(shù)據(jù)調(diào)模型A的C參數(shù)再固定模型換特征提取方式。這樣做的好處是不會把多個(gè)變量攪在一起出了問題能迅速定位到是哪個(gè)環(huán)節(jié)導(dǎo)致的。5. 論文寫作結(jié)構(gòu)與答辯避坑指南5.1 論文結(jié)構(gòu)與圖表體系搭建本科畢設(shè)論文一般需要五章左右我推薦的章節(jié)結(jié)構(gòu)是這樣的第一章緒論介紹背景、意義、國內(nèi)外研究現(xiàn)狀、論文組織結(jié)構(gòu)第二章相關(guān)技術(shù)介紹機(jī)器學(xué)習(xí)基礎(chǔ)、文本表示方法、分類算法原理第三章系統(tǒng)需求分析與總體設(shè)計(jì)系統(tǒng)功能模塊、流程設(shè)計(jì)、開發(fā)環(huán)境第四章系統(tǒng)實(shí)現(xiàn)與實(shí)驗(yàn)分析數(shù)據(jù)獲取與處理、模型訓(xùn)練、實(shí)驗(yàn)結(jié)果可視化第五章總結(jié)與展望總結(jié)工作、指出不足、展望未來改進(jìn)方向。很多同學(xué)在第二章“相關(guān)技術(shù)介紹”上花大量篇幅抄教材這是大忌。老師一眼就能看出你是從哪本書上復(fù)制過來的而且這部分內(nèi)容重復(fù)率高查重時(shí)最容易出問題。我的建議是技術(shù)介紹部分一定要結(jié)合自己的系統(tǒng)來描述比如介紹TF-IDF時(shí)要說明你在本系統(tǒng)中如何使用這個(gè)方法來處理新聞文本而不是干巴巴地列公式。實(shí)驗(yàn)分析部分是整個(gè)論文最核心的章節(jié)需要包含這幾類圖表數(shù)據(jù)集類別分布圖、文本長度分布圖、TF-IDF特征維度與模型準(zhǔn)確率的折線圖、四個(gè)模型性能對比柱狀圖、最優(yōu)模型的混淆矩陣熱力圖。這些圖表可以借助matplotlib和seaborn繪制圖表風(fēng)格要統(tǒng)一坐標(biāo)軸要標(biāo)注清楚每個(gè)圖都要有文字分析。5.2 論文查重降重與寫作技巧新聞文本分類這個(gè)題目的論文查重率普遍偏高因?yàn)橄嚓P(guān)的中文文獻(xiàn)太多了。想要降低查重率比較有效的方法是改變表述方式、用自己的實(shí)際實(shí)驗(yàn)數(shù)據(jù)填充內(nèi)容、減少教科書式定義的大段引用。以TF-IDF的定義為例教科書里通常會寫“TF-IDF是一種用于信息檢索與文本挖掘的常用加權(quán)技術(shù)用以評估一字詞對于一個(gè)文件集或一個(gè)語料庫中的其中一份文件的重要程度”。如果你換一個(gè)角度用自己在系統(tǒng)中的實(shí)際操作來描述“本系統(tǒng)在計(jì)算特征權(quán)重時(shí)引入了TF-IDF方法核心思想是某個(gè)詞語在當(dāng)前新聞中出現(xiàn)的頻率越高同時(shí)在所有新聞樣本中出現(xiàn)的頻率越低則它對于區(qū)分這條新聞所屬類別的能力越強(qiáng)?!边@樣不僅降低了查重率還給老師留下了“你確實(shí)理解這個(gè)概念”的印象。數(shù)據(jù)和實(shí)驗(yàn)結(jié)果部分可以放心大膽地寫詳細(xì)這部分是基于你自己的實(shí)驗(yàn)得出的不存在查重問題。相反描述得越細(xì)致論文的整體可信度越高。5.3 答辯常見提問與準(zhǔn)備素材答辯是畢設(shè)的最后一關(guān)也是最容易暴露出問題的環(huán)節(jié)。根據(jù)我多年的經(jīng)驗(yàn)老師最喜歡問的問題集中在數(shù)據(jù)、特征和模型選擇這三個(gè)方面。下面列出幾條高頻問題和參考的解答思路“為什么選擇這個(gè)數(shù)據(jù)集數(shù)據(jù)量多大類別是否均衡”——回答要聚焦在數(shù)據(jù)集來源、規(guī)模、適用性上說明你評估過多個(gè)數(shù)據(jù)集后最終選它的理由?!癟F-IDF的缺點(diǎn)是什么有沒有考慮使用詞向量”——你可以承認(rèn)TF-IDF忽略了詞的順序和語義信息但解釋說在畢設(shè)的資源和時(shí)間范圍內(nèi)TF-IDF已經(jīng)能達(dá)到較好的基準(zhǔn)效果并將word2vec、BERT等方法列為未來改進(jìn)方向。這種“承認(rèn)不足說明權(quán)衡指出方向”的答題套路最穩(wěn)?!八膫€(gè)模型里為什么邏輯回歸效果最好請從數(shù)據(jù)特征和模型原理的角度分析”——這道題考察的是深度理解。你可以從“TF-IDF特征是高維稀疏的邏輯回歸對該類特征有良好的適應(yīng)性且樣本量足夠大使得線性模型能捕捉到足夠的模式”這個(gè)方向展開。“如果新來了一條長度非常短的新聞你的系統(tǒng)還能準(zhǔn)確分類嗎為什么”——這題是看你對系統(tǒng)局限性的認(rèn)知。短文本往往缺乏足夠的特征詞TF-IDF向量會非常稀疏加上停用詞過濾后甚至可能只剩一兩個(gè)詞分類準(zhǔn)確率自然會下降。這種誠實(shí)的回答加上一點(diǎn)改進(jìn)思路比硬說“沒問題”要加分得多。為了讓答辯更從容建議在答辯前準(zhǔn)備一份20分鐘左右的演示流程先簡要介紹背景和意義3分鐘再講系統(tǒng)架構(gòu)與功能5分鐘然后現(xiàn)場演示預(yù)測效果5分鐘最后展示并分析實(shí)驗(yàn)結(jié)果7分鐘。整套流程走下來老師會感覺到你的項(xiàng)目是完整且扎實(shí)的。6. 總結(jié)畢設(shè)做完后我的一些實(shí)際感受坦白說每年帶同學(xué)做這類題目我最深的感受是真正讓同學(xué)拉開差距的不是誰用的模型更高端而是誰把基礎(chǔ)工作做得更扎實(shí)。能清楚講出自己每一步在做什么、為什么這么做比單純調(diào)一個(gè)BERT模型拿98%的準(zhǔn)確率要重要得多。如果在本科階段把新聞文本分類這個(gè)項(xiàng)目完整做完你對機(jī)器學(xué)習(xí)的理解會有一個(gè)質(zhì)的提升——不再只是會調(diào)包跑代碼而是能看懂一個(gè)模型從數(shù)據(jù)到?jīng)Q策的完整鏈路。這個(gè)過程鍛煉出來的數(shù)據(jù)處理能力、實(shí)驗(yàn)設(shè)計(jì)能力、結(jié)果分析能力和論文寫作能力比論文本身更有價(jià)值。如果你正在為這個(gè)題目熬夜調(diào)參或者看著別人的開源代碼不知道怎么改不妨回到數(shù)據(jù)本身從數(shù)據(jù)里找答案。很多所謂的效果瓶頸其實(shí)都是數(shù)據(jù)或預(yù)處理環(huán)節(jié)的小問題。先把地基筑牢房子才能蓋得穩(wěn)。希望這篇文章能幫你少走一些彎路做出一份讓自己滿意、也讓老師認(rèn)可的作品。