基于BERT+MLP的文本情感分析任務(wù)
1 相關(guān)介紹
1.1 文本情感分析
文本情感分析又被稱為意見挖掘,主要是對(duì)文字內(nèi)容進(jìn)行情感分析,希冀獲得其蘊(yùn)藏的情感極性,可廣泛應(yīng)用于輿情監(jiān)測(cè)、電商評(píng)價(jià)分析等領(lǐng)域。文本情感分析本質(zhì)為分類任務(wù)。
1.2 BERT
BERT是一個(gè)基于自注意力機(jī)制實(shí)現(xiàn)的文本預(yù)訓(xùn)練模型,是自然語(yǔ)言處理領(lǐng)域近年來(lái)最重要的工作之一。BERT及其后續(xù)改進(jìn)型深刻改變了深度學(xué)習(xí)在自然語(yǔ)言處理各項(xiàng)任務(wù)的處理方法,已經(jīng)成為大規(guī)模遷移學(xué)習(xí)的典型代表。BERT具體實(shí)現(xiàn)與解析有很多優(yōu)秀文章進(jìn)行了詳細(xì)說(shuō)明,本文在此不再贅述。
1.3 MLP
一個(gè)簡(jiǎn)單的全連接線性分類層,主要是對(duì)BERT的輸出進(jìn)行維度變換,實(shí)現(xiàn)文本分類的標(biāo)簽預(yù)測(cè)。
2 具體實(shí)現(xiàn)
本文核心是從始至終構(gòu)建一個(gè)BERT+MLP的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行文本情感分析,具體的細(xì)節(jié)在后續(xù)文章進(jìn)行介紹,本文不再贅述。
2.1 依賴包安裝
安裝pytorch與transformers。在終端(命令行窗口)切換到虛擬環(huán)境,執(zhí)行以下命令。(假設(shè)已經(jīng)安裝了conda等虛擬環(huán)境,如果有同學(xué)不會(huì)安裝conda環(huán)境的話,后續(xù)再出一個(gè)Anaconda或者M(jìn)iniconda的安裝配置教程)
torch包是一個(gè)深度學(xué)習(xí)的主流框架pytorch,transformers是Huggingface[2]開發(fā)的一個(gè)加載預(yù)訓(xùn)練模型和數(shù)據(jù)集的包,tqdm是一個(gè)顯示進(jìn)度條的包。
2.2 導(dǎo)入包
導(dǎo)入后續(xù)需要使用的包和類。
2.3?配置路徑與全局常量
將數(shù)據(jù)集、模型等路徑與Batch_Size、Hidden_Size等全局常量放前面,方便后續(xù)的更改與操作。常量命名建議全部大寫,以便與變量進(jìn)行區(qū)分。此處路徑根據(jù)自己實(shí)際情況進(jìn)行配置,數(shù)據(jù)集在文章最后。
2.4?定義Dataset與DataLoader進(jìn)行數(shù)據(jù)讀取
Dataset與DataLoader是pytorch用來(lái)讀取與迭代數(shù)據(jù)集的類。想了解數(shù)據(jù)處理完之后格式的同學(xué)可以看本小節(jié)代碼最后一段。
2.5?加載分詞器與預(yù)訓(xùn)練模型
使用AutoTokenizer與AutoModel加載分詞器與預(yù)訓(xùn)練模型,BERT模型還可以使用BertTokenizer與BertModel進(jìn)行加載,但為了方便更換預(yù)訓(xùn)練模型,個(gè)人更喜歡使用AutoTokenizer與AutoModel。
2.6?構(gòu)建BERT+MLP模型
自定義神經(jīng)網(wǎng)絡(luò)模型,繼承torch.nn.Module類。神經(jīng)網(wǎng)絡(luò)模型可以自由定義,但須包含__init__初始化與forward兩個(gè)方法。
2.7?實(shí)例化BERT+MLP模型、優(yōu)化器與損失函數(shù)
將構(gòu)建好的BERT+MLP模型進(jìn)行實(shí)例化,加載優(yōu)化器與定義損失函數(shù)。優(yōu)化器用于訓(xùn)練時(shí)對(duì)模型參數(shù)進(jìn)行更新優(yōu)化。
2.8?定義其他內(nèi)容
2.9?定義訓(xùn)練函數(shù)
定義函數(shù)用于模型訓(xùn)練,每2個(gè)批量保存一次損失,每100個(gè)批量進(jìn)行一次損失輸出,每1個(gè)epoch進(jìn)行一次驗(yàn)證集驗(yàn)證。
2.10?定義驗(yàn)證函數(shù)
用于每個(gè)epoch的驗(yàn)證集驗(yàn)證。
2.11?定義結(jié)果保存函數(shù)
用于將訓(xùn)練數(shù)據(jù)保存為文本文件,方便后續(xù)繪圖。
2.12?訓(xùn)練與保存
3 實(shí)驗(yàn)數(shù)據(jù)
https://github.com/lxssg1231/ChnSenticorpgithub.com/lxssg1231/ChnSenticorp
參考
^1?https://arxiv.org/abs/1810.04805
^2?https://huggingface.co/