《自然語(yǔ)言處理技術(shù)》高階案例基于網(wǎng)格搜索與LightGBM的情感分類V1.0_第1頁(yè)
《自然語(yǔ)言處理技術(shù)》高階案例基于網(wǎng)格搜索與LightGBM的情感分類V1.0_第2頁(yè)
《自然語(yǔ)言處理技術(shù)》高階案例基于網(wǎng)格搜索與LightGBM的情感分類V1.0_第3頁(yè)
《自然語(yǔ)言處理技術(shù)》高階案例基于網(wǎng)格搜索與LightGBM的情感分類V1.0_第4頁(yè)
《自然語(yǔ)言處理技術(shù)》高階案例基于網(wǎng)格搜索與LightGBM的情感分類V1.0_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《自然語(yǔ)言處理技術(shù)》《自然語(yǔ)言處理技術(shù)》項(xiàng)目4基于SVM實(shí)現(xiàn)新聞文本分類——基于網(wǎng)格搜索與LightGBM的情感分類學(xué)習(xí)目標(biāo)掌握使用網(wǎng)格搜索(GridSearchCV)在模型調(diào)優(yōu)中的方法和原理。學(xué)習(xí)LightGBM模型的基本原理和使用方法。了解情感分類任務(wù)的基本步驟,包括數(shù)據(jù)準(zhǔn)備、特征提取和模型訓(xùn)練。熟悉在Python環(huán)境下使用scikit-learn和LightGBM庫(kù)進(jìn)行數(shù)據(jù)處理和模型訓(xùn)練的方法。增強(qiáng)學(xué)生運(yùn)用情感分類技術(shù)分析和改進(jìn)社會(huì)現(xiàn)象、提升人際關(guān)系和心理健康的意識(shí)。培養(yǎng)學(xué)生自主思考、分析問(wèn)題的能力,激發(fā)創(chuàng)新思維,增強(qiáng)對(duì)情感分類技術(shù)的理解和運(yùn)用能力。案例要求對(duì)原始文本數(shù)據(jù)進(jìn)行清洗和預(yù)處理。使用TF-IDF提取特征。劃分訓(xùn)練集和測(cè)試集。使用LightGBM模型進(jìn)行情感分類任務(wù)。將使用網(wǎng)格搜索方法對(duì)LightGBM模型的參數(shù)進(jìn)行調(diào)優(yōu)。使用準(zhǔn)確率和混淆矩陣等指標(biāo)對(duì)模型在測(cè)試集上的性能進(jìn)行評(píng)估。案例內(nèi)容本案例將通過(guò)使用網(wǎng)格搜索優(yōu)化支持向量機(jī)(SVM)參數(shù),并使用LightGBM模型對(duì)情感分類任務(wù)進(jìn)行預(yù)測(cè)。這個(gè)過(guò)程將幫助學(xué)生熟悉情感分類任務(wù)的基本流程,提高學(xué)生在實(shí)際應(yīng)用中解決問(wèn)題的能力。同時(shí),案例還將涉及到文本數(shù)據(jù)預(yù)處理、特征提取和模型評(píng)估等關(guān)鍵環(huán)節(jié),使學(xué)生更深入地理解自然語(yǔ)言處理技術(shù)在情感分析領(lǐng)域的應(yīng)用。此外,本案例還將教授如何利用網(wǎng)格搜索調(diào)整模型參數(shù)以提高模型性能,使學(xué)生能夠熟練地運(yùn)用這種方法優(yōu)化自己的機(jī)器學(xué)習(xí)項(xiàng)目。在學(xué)習(xí)完本案例后,學(xué)生將具備在實(shí)際項(xiàng)目中開展情感分類任務(wù)的基本技能,并能夠靈活地運(yùn)用所學(xué)知識(shí)解決其他自然語(yǔ)言處理問(wèn)題。案例步驟數(shù)據(jù)預(yù)處理首先,在這個(gè)步驟中,將對(duì)原始文本數(shù)據(jù)進(jìn)行清洗和預(yù)處理,以便后續(xù)的特征工程和模型訓(xùn)練,如REF_Ref97729893\h代碼41所示。代碼STYLEREF1\s4SEQ代碼\*ARABIC\s11數(shù)據(jù)預(yù)處理importpandasaspdimportreimportjiebafromsklearn.feature_extraction.textimportTfidfVectorizerimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportKMeansfromsklearn.manifoldimportTSNEfromsklearn.metricsimportsilhouette_scorefromsklearn.metricsimportdavies_bouldin_scoreplt.rcParams['font.family']='SimHei'defclean_text(text):#使用正則表達(dá)式去除特殊符號(hào)、數(shù)字和英文字符returnre.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*():;《)《》“”’‘[\]]","",text)#讀取數(shù)據(jù)data=pd.read_csv("酒店評(píng)價(jià).CSV")print('評(píng)價(jià)內(nèi)容:\n',data.head())comments=data['review']labels=data['label']print('評(píng)論形狀為:\n',comments.shape)print('標(biāo)簽形狀為:\n',labels.shape)#清洗評(píng)論數(shù)據(jù)clean_comments=[]foriinrange(len(comments)):clean_comments.append(clean_text(str(comments[i])))data['cleaned_text']=clean_commentsprint('清洗文本后的評(píng)價(jià)內(nèi)容:\n',data['cleaned_text'].head())#對(duì)清洗后的新聞文本進(jìn)行分詞seg_comments=[]foriinrange(len(clean_comments)):seg_list_exact=jieba.cut(clean_comments[i],cut_all=True)result_list=[]forwordinseg_list_exact:result_list.append(word)seg_comments.append("".join(result_list))data['seg_texts']=seg_commentsprint('清洗后的評(píng)價(jià)內(nèi)容分詞結(jié)果:\n',data['seg_texts'].head())#使用with語(yǔ)句和open函數(shù)以只讀模式('r')打開名為'stopwords.txt'的停用詞表文件,指定文件編碼為'utf-8'withopen("stopwordsHIT.txt","r",encoding="utf-8")asf:#使用文件對(duì)象的readlines方法將文件內(nèi)容逐行讀取到一個(gè)名為stopwords的列表中stopwords=f.readlines()#遍歷停用詞列表,使用strip方法去除每個(gè)停用詞的換行符,得到一個(gè)新的停用詞列表stopwords=[word.strip()forwordinstopwords]#使用列表推導(dǎo)式過(guò)濾分詞結(jié)果seg_words中的停用詞#只保留不在停用詞列表stopwords中的詞filtered_words=[wordforwordindata['seg_texts']ifwordnotinstopwords]filtered_words.append('')data['filtered_words']=filtered_wordsprint('清洗后的評(píng)價(jià)內(nèi)容分詞去除停用詞的結(jié)果:\n',data['filtered_words'].head())運(yùn)行REF_Ref97729893\h代碼41,得到數(shù)據(jù)預(yù)處理結(jié)果如下。評(píng)價(jià)內(nèi)容:labelreview01距離川沙公路較近,但是公交指示不對(duì),如果是"蔡陸線"的話,會(huì)非常麻煩.建議用別的路線.房間較...11商務(wù)大床房,房間很大,床有2M寬,整體感覺經(jīng)濟(jì)實(shí)惠不錯(cuò)!21早餐太差,無(wú)論去多少人,那邊也不加食品的。酒店應(yīng)該重視一下這個(gè)問(wèn)題了。房間本身很好。31賓館在小街道上,不大好找,但還好北京熱心同胞很多~賓館設(shè)施跟介紹的差不多,房間很小,確實(shí)挺小...41CBD中心,周圍沒(méi)什么店鋪,說(shuō)5星有點(diǎn)勉強(qiáng).不知道為什么衛(wèi)生間沒(méi)有電吹風(fēng)評(píng)論形狀為:(7766,)標(biāo)簽形狀為:(7766,)清洗文本后的評(píng)價(jià)內(nèi)容:0距離川沙公路較近但是公交指示不對(duì)如果是蔡陸線的話會(huì)非常麻煩建議用別的路線房間較為簡(jiǎn)單1商務(wù)大床房房間很大床有2M寬整體感覺經(jīng)濟(jì)實(shí)惠不錯(cuò)2早餐太差無(wú)論去多少人那邊也不加食品的酒店應(yīng)該重視一下這個(gè)問(wèn)題了房間本身很好3賓館在小街道上不大好找但還好北京熱心同胞很多賓館設(shè)施跟介紹的差不多房間很小確實(shí)挺小但加上低價(jià)...4CBD中心周圍沒(méi)什么店鋪說(shuō)5星有點(diǎn)勉強(qiáng)不知道為什么衛(wèi)生間沒(méi)有電吹風(fēng)Name:cleaned_text,dtype:object清洗后的評(píng)價(jià)內(nèi)容分詞結(jié)果:0距離川沙公路較近但是公交指示不對(duì)如果是蔡陸線的話會(huì)非常麻煩...1商務(wù)大床房房間很大床有2M寬整體整體感感覺經(jīng)濟(jì)實(shí)惠不錯(cuò)2早餐太差無(wú)論去多少人那邊也不加食品的酒店應(yīng)該重視一下這個(gè)問(wèn)題...3賓館在小街街道上不大不大好大好好找但還好北京熱心同胞很多賓館...4CBD中心周圍沒(méi)什么什么店鋪說(shuō)5星有點(diǎn)勉強(qiáng)不知知道為什么什么衛(wèi)...Name:seg_texts,dtype:object清洗后的評(píng)價(jià)內(nèi)容分詞去除停用詞的結(jié)果:0距離川沙公路較近但是公交指示不對(duì)如果是蔡陸線的話會(huì)非常麻煩...1商務(wù)大床房房間很大床有2M寬整體整體感感覺經(jīng)濟(jì)實(shí)惠不錯(cuò)2早餐太差無(wú)論去多少人那邊也不加食品的酒店應(yīng)該重視一下這個(gè)問(wèn)題...3賓館在小街街道上不大不大好大好好找但還好北京熱心同胞很多賓館...4CBD中心周圍沒(méi)什么什么店鋪說(shuō)5星有點(diǎn)勉強(qiáng)不知知道為什么什么衛(wèi)...Name:filtered_words,dtype:object特征工程在這個(gè)步驟中,把預(yù)處理后的文本數(shù)據(jù)轉(zhuǎn)換為能夠輸入模型的數(shù)值特征,如REF_Ref97730183\h代碼42所示。代碼STYLEREF1\s4SEQ代碼\*ARABIC\s12特征工程fromsklearn.feature_extraction.textimportTfidfVectorizer#創(chuàng)建TF-IDF矩陣vectorizer=TfidfVectorizer()X=vectorizer.fit_transform(data['filtered_words'])y=data['label']print('TF-IDF矩陣形狀:\n',X.shape)print('TF-IDF矩陣:\n',X)運(yùn)行REF_Ref97730183\h代碼42,得到TF-IDF矩陣如下。TF-IDF矩陣形狀:(7766,28095)TF-IDF矩陣:(0,21577) 0.2088247755559063(0,25117) 0.37479894990582946(0,25116) 0.277791081400368(0,13798) 0.06234790735793674(0,24893) 0.27599276652514204(0,6334) 0.19933201662078567(0,12581) 0.15158805694606362(0,27911) 0.22711002510282347(0,27137) 0.11121353384678381(0,20388) 0.16774834331812577(0,10664) 0.13869010897558562(0,2416) 0.2695060367289079(0,14510) 0.28164689507771007(0,5324) 0.22456481965876685(0,4431) 0.12326316349842538(0,5394) 0.29907440033732363(0,11903) 0.37479894990582946(0,24851) 0.1927572445190959(1,2656) 0.13104443524616333(1,11052) 0.3465952681569489(1,22026) 0.345464544279169(1,13626) 0.17127796673855947(1,15351) 0.3878920619299232(1,15349) 0.2997868916074471(1,399) 0.5718039474512759: :(7763,16181) 0.18970679758326137(7763,26051) 0.048681390063842936(7763,10664) 0.10963000540653557(7763,14510) 0.22263267985129895(7764,10127) 0.34029427313932126(7764,10126) 0.3338703978392045(7764,20774) 0.2968940764602244(7764,15744) 0.34029427313932126(7764,10647) 0.24433933137794286(7764,4101) 0.2644850259484859(7764,5547) 0.2732246470803082(7764,5546) 0.1534754449868039(7764,2289) 0.15873844573113788(7764,3298) 0.20932887069927394(7764,10399) 0.19696730200514148(7764,13730) 0.12109185511536755(7764,23903) 0.16864286558671218(7764,22071) 0.17254699282000238(7764,25411) 0.15231457043102115(7764,19211) 0.14556487094005094(7764,4186) 0.15945695838776797(7764,11036) 0.15820757610973313(7764,7846) 0.10225641387250765(7764,26051) 0.06343864984714885(7764,15743) 0.22563036277151494劃分訓(xùn)練集和測(cè)試集這個(gè)步驟,將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,以便評(píng)估模型的性能,如REF_Ref97741940\h代碼43所示。代碼STYLEREF1\s4SEQ代碼\*ARABIC\s13劃分訓(xùn)練集和測(cè)試集fromsklearn.model_selectionimporttrain_test_splitX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)LightGBM模型預(yù)測(cè)這個(gè)步驟,將使用LightGBM模型進(jìn)行情感分類任務(wù),使用默認(rèn)參數(shù),并對(duì)模型進(jìn)行測(cè)試,如REF_Ref100677394\h代碼44所示。代碼STYLEREF1\s4SEQ代碼\*ARABIC\s14默認(rèn)參數(shù)LightGBM模型importlightgbmasLGBMClassifierfromsklearn.metricsimportaccuracy_score,confusion_matrixclf=lgb.LGBMClassifier()clf.fit(X_train,y_train)y_pred=clf.predict(X_test)#計(jì)算準(zhǔn)確率accuracy=accuracy_score(y_test,y_pred)print("Accuracy:\n{:.2f}%".format(accuracy*100))#輸出混淆矩陣confusion_mat=confusion_matrix(y_test,y_pred)print("混淆矩陣為:\n",confusion_mat)#繪制混淆矩陣圖r_c=list(clf.predict(X_test))r_t=list(y_test)guess=r_c#Y_labelfact=r_t#Yt_labelclasses=list(set(fact))classes.sort()confusion=confusion_matrix(guess,fact)plt.imshow(confusion,cmap=plt.cm.Wistia)indices=range(len(confusion))plt.rcParams['font.sans-serif']=['SimHei']plt.xticks(indices,classes,rotation=90)plt.yticks(indices,classes)plt.colorbar()plt.xlabel('預(yù)測(cè)')plt.ylabel('實(shí)際')forfirst_indexinrange(len(confusion)):forsecond_indexinrange(len(confusion[first_index])):plt.text(first_index,second_index,confusion[first_index][second_index])plt.show()運(yùn)行REF_Ref100677394\h代碼44,得到模型預(yù)測(cè)結(jié)果如下,混淆矩陣圖如REF_Ref134035675\h圖41所示。。Accuracy:85.46%混淆矩陣為:[[334145][81994]]圖STYLEREF1\s4SEQ圖\*ARABIC\s11模型預(yù)測(cè)結(jié)果使用網(wǎng)格搜索進(jìn)行模型調(diào)優(yōu)這個(gè)步驟,使用網(wǎng)格搜索方法對(duì)LightGBM模型的參數(shù)進(jìn)行調(diào)優(yōu),以提高模型在測(cè)試集上的性能,如REF_Ref133953943\h代碼45所示。代碼STYLEREF1\s4SEQ代碼\*ARABIC\s15使用網(wǎng)格搜索進(jìn)行模型調(diào)優(yōu)fromsklearn.model_selectionimportGridSearchCV#設(shè)置參數(shù)網(wǎng)格param_grid={'num_leaves':[50,100],'learning_rate':[0.01,0.1],'num_iterations':[100,200]}#初始化模型lgbm_classifier=LGBMClassifier(boosting_type='gbdt',n_jobs=-1)#進(jìn)行網(wǎng)格搜索grid_search=GridSearchCV(lgbm_classifier,param_grid,cv=5,scoring='accuracy')grid_search.fit(X_train,y_train)#輸出最佳參數(shù)組合print("Bestparametersfound:",grid_search.best_params_)運(yùn)行REF_Ref133953943\h代碼45,得到優(yōu)化后的最佳參數(shù)如下。優(yōu)化后的最佳參數(shù):{'learning_rate':0.1,'num_iterations':200,'num_leaves':50}模型評(píng)估這個(gè)步驟將使用準(zhǔn)確率和混淆矩陣等指標(biāo)對(duì)模型在測(cè)試集上的性能進(jìn)行評(píng)估,如REF_Ref133953958\h代碼46所示。代碼STYLEREF1\s4SEQ代碼\*ARABIC\s16模型評(píng)估#使用最佳參數(shù)組合重新訓(xùn)練模型best_model=grid_search.best_estimator_#預(yù)測(cè)測(cè)試集y_pred=best_model.predict(X_test)#計(jì)算準(zhǔn)確率accuracy=accuracy_score(y_test,y_

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論