霍建光
關(guān)鍵詞:BERT 模型;推薦;文本情感分析;分類
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)02-0050-03
1 引言
互聯(lián)網(wǎng)技術(shù)的快速發(fā)展已經(jīng)影響了人們工作、生活的方方面面。目前整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)量越來越多,呈現(xiàn)出信息多樣化、信息化擴(kuò)散快及類型多等特點(diǎn)[1]。整個(gè)數(shù)據(jù)的類型包括文本數(shù)據(jù)、視頻數(shù)據(jù)、文件數(shù)據(jù)等內(nèi)容,這些數(shù)據(jù)有些是結(jié)構(gòu)化的、有些是非結(jié)構(gòu)化的。為了能夠獲取相關(guān)數(shù)據(jù)信息,文章可以通過爬蟲的方式來確定主題,以此獲取針對性的業(yè)務(wù)數(shù)據(jù)信息。
隨著技術(shù)的提升以及市場的完善,人們越來越多地使用網(wǎng)絡(luò)平臺(tái)進(jìn)行購物、購票、出行等日?;顒?dòng)。另外,人們也增加了視頻平臺(tái)的使用時(shí)間。在這些活動(dòng)之中,不論是日常活動(dòng)還是娛樂活動(dòng),難以避免地會(huì)出現(xiàn)眾多來自用戶主觀性的、帶有情感色彩的評(píng)論[2]。這些評(píng)論并非活動(dòng)中產(chǎn)生的贅余,而是一種寶貴的資源,它直觀表現(xiàn)出對某一事物的偏好,網(wǎng)絡(luò)平臺(tái)運(yùn)營者如果能根據(jù)用戶的喜好進(jìn)行推薦,則會(huì)大大促進(jìn)用戶的消費(fèi)意愿,增加客戶黏性。而若是能夠提前對用戶評(píng)論進(jìn)行情感的分類,則能提升分析的效率。
對企業(yè)而言,各大社交平臺(tái)網(wǎng)站充滿了各種各樣的用戶評(píng)論,其中不乏過激的、惡意煽動(dòng)的負(fù)面評(píng)論。敗壞社區(qū)風(fēng)氣,而舉報(bào)惡意評(píng)論的功能需要用戶手動(dòng)完成,不確定性高,而且效率低下。該系統(tǒng)可以幫助企業(yè)快速分辨出負(fù)面評(píng)論,再加以處理的效率隨之提高;對個(gè)人而言,想要得知一個(gè)視頻評(píng)論是正面評(píng)論還是負(fù)面評(píng)論居多并非一件容易的事,尤其是評(píng)論數(shù)量巨大的情況下,該系統(tǒng)可以分辨并展示出正面評(píng)論,中性評(píng)論和負(fù)面評(píng)論的數(shù)量,幫助用戶更全面客觀地了解人們對一個(gè)視頻的評(píng)價(jià)[3]。
目前在學(xué)術(shù)界,文本情感分析的方式主要有三種,這三種方法技術(shù)路線不同,分別采用深度學(xué)習(xí)、情感詞典與傳統(tǒng)機(jī)器學(xué)習(xí)的方式與方法進(jìn)行處理[4]。傳統(tǒng)機(jī)器學(xué)習(xí)方法的優(yōu)點(diǎn)在于方法容易實(shí)現(xiàn)且總體計(jì)算工作量小,但是缺點(diǎn)也很明顯,需要專業(yè)人員完成技術(shù)特征的分析與提取,總體算法的泛化能力弱;采用情感詞典的方式進(jìn)行實(shí)現(xiàn),主要優(yōu)點(diǎn)在于方法實(shí)現(xiàn)簡單,但是總體需要耗費(fèi)大量物力人力來完成整個(gè)情感詞典的構(gòu)建。以此方式能夠看出傳統(tǒng)的機(jī)器學(xué)習(xí)方法與情感詞典都需要花費(fèi)大的人力與物力完成分析與計(jì)算過程。而基于深度學(xué)習(xí)的方法能夠有效彌補(bǔ)這兩種方法的不足,對整個(gè)特征進(jìn)行自動(dòng)提取并加以分析與處理,有效提升整個(gè)本文情感分析的準(zhǔn)確性。
2 關(guān)鍵技術(shù)
2.1 Python 爬蟲
目前常用的網(wǎng)絡(luò)爬蟲方式為聚焦爬蟲[5],第一步需要設(shè)置爬蟲的主題,在這個(gè)基礎(chǔ)之上與主題無關(guān)的信息不被抓取,而保留整個(gè)鏈接之中有用的信息,接著根據(jù)一定的搜索策略尋找下一個(gè)鏈接。和通用爬蟲相比,聚焦爬蟲極大地節(jié)省了硬件和網(wǎng)絡(luò)資源,并且增加鏈接評(píng)價(jià)模塊和內(nèi)容評(píng)價(jià)模塊,評(píng)價(jià)的重要性不同,鏈接的訪問順序也不同。
2.2 BERT模型
1)BERT簡介
在整個(gè)語言特征模型的處理之中[6],目前常用的模型為BERT,這個(gè)模型的全稱為Bidirectional? Encod?er Representation from Transformers,此模型主要特點(diǎn)在于采用新的MLM 方法進(jìn)行語言表征的分析與處理。這樣的處理方式與以往采用單一或者將兩個(gè)語言模型進(jìn)行簡單的拼接有著本質(zhì)的差異。
2)BERT優(yōu)點(diǎn)
在整個(gè)訓(xùn)練詞向量的處理之中,以往采用的方式主要是GloVe方法或者Word2Vec方法,這些方法是靜態(tài)編碼的處理方式,若是在不同的上下文環(huán)境處理之中,即使這個(gè)單詞是單一的,此時(shí)這個(gè)模型對于語義的處理也是不同,準(zhǔn)確率有待提升。
對訓(xùn)練詞向量采用BERT模型的時(shí)候,整個(gè)預(yù)訓(xùn)練的處理采用MLM雙向Transformers模型進(jìn)行,主要工作目標(biāo)是生成雙向的語言表征。這個(gè)處理是深層的,采用預(yù)處理方式訓(xùn)練之后,需要增加一個(gè)輸出層進(jìn)行處理,能夠有效提升整個(gè)詞語的分類處理,整個(gè)過程之中并不需要對總體結(jié)構(gòu)進(jìn)行修改與處理。
3)BERT處理過程
在整個(gè)BERT模型的分析與處理之中,其主要工作目標(biāo)是完成語言模型的訓(xùn)練與處理操作,其在以往傳統(tǒng)的方法之中進(jìn)行了處理,其主要作用是確定句子語義之間的相互與處理,整個(gè)模型對應(yīng)的處理結(jié)構(gòu)如圖1所示。
在整個(gè)BERT的分析與處理之中,整個(gè)模型架構(gòu)分為輸出層、編碼層與輸入層三層的方式進(jìn)行處理,在這個(gè)模型之中,若是句子的意思相近,則其在空間之中的距離是相近的,整個(gè)對文字理解與句子之間的向量操作是類似的。
BERT模型的處理之中,整個(gè)輸入分為三個(gè)部分,第一部分是位置向量;第二部分是分段向量;第三部分是詞向量,這三種向量主要針對詞語的三個(gè)方面進(jìn)行處理,位置向量主要的作用是確定詞語的位置,這個(gè)詞語的開頭與結(jié)尾使用CLS、SEP進(jìn)行標(biāo)記;對當(dāng)前詞語的編碼主要通過詞向量進(jìn)行標(biāo)注,詞語在整個(gè)句子之中的位置通過分段向量來表示。在整個(gè)BERT模型的處理之中,關(guān)鍵核心的部分為雙向Transformer編碼層,這一部分主要的作用是對語言之中的特征進(jìn)行提取與分析,這一個(gè)操作主要采用的是Encoder特征抽取器,特征抽取器主要的結(jié)構(gòu)示意圖如圖2所示。
從圖2整個(gè)Encoder的結(jié)構(gòu)示意圖中可以看出,其主要包括多個(gè)處理部分,如前饋神經(jīng)網(wǎng)絡(luò)、求和與歸一化、自注意力處理機(jī)制等內(nèi)容。整個(gè)特征抽取器處理的重要部分就是這個(gè)自注意力的管理機(jī)制,其能夠去除整個(gè)距離限制的影響因素,而主要考慮詞語之間的關(guān)系,整個(gè)處理機(jī)制效率高,針對上百個(gè)詞語也能夠快速完成詞語上下文、左右文等方面關(guān)系的分析挖掘與雙向標(biāo)志。
3 業(yè)務(wù)需求分析
在整個(gè)模型的實(shí)驗(yàn)與分析之中,第一步主要的任務(wù)是將模型的程序進(jìn)行實(shí)現(xiàn),主要通過程序框圖的方式進(jìn)行展現(xiàn),對整個(gè)系統(tǒng)實(shí)現(xiàn)流程進(jìn)行闡述,以此來給出用戶登錄系統(tǒng)之后進(jìn)行情感分析算法的運(yùn)行與處理,并將最后的處理結(jié)果進(jìn)行展現(xiàn)。詳細(xì)系統(tǒng)的處理流程如圖3所示。
程序框圖是進(jìn)行程序設(shè)計(jì)的最基本依據(jù)。系統(tǒng)開始先對用戶是否已有賬號(hào)進(jìn)行判斷,沒有賬號(hào)則進(jìn)行注冊,再進(jìn)行登陸,檢測到現(xiàn)有賬號(hào)則直接登錄,接著用戶輸入BV號(hào),系統(tǒng)進(jìn)行預(yù)測,向用戶返回結(jié)果。在整個(gè)程序的處理之中,從BERT模型的分析之中能夠看出,其關(guān)鍵處理部分是自身的注意力機(jī)制,具體此機(jī)制的示意圖如圖4所示。
在整個(gè)注意力機(jī)制的處理之中,其主要輸入的數(shù)據(jù)信息來源于BLSTM層,后者的輸出相當(dāng)于注意力層的輸入,后續(xù)需要對這些不同的詞向量進(jìn)行賦權(quán)操作,整個(gè)權(quán)值的大小與情感極性的分類息息相關(guān),以此完成最終分類的確定,后續(xù)需要完成的處理為soft?max歸一化的操作。
4 模型實(shí)驗(yàn)與分析
4.1 深度學(xué)習(xí)過程
1)實(shí)驗(yàn)環(huán)境
對整個(gè)模型的程序流程處理過程闡述過后,后續(xù)需要對整個(gè)過程進(jìn)行實(shí)現(xiàn),第一步需要完成模型實(shí)驗(yàn)環(huán)境的配置,具體配置信息如表1。
在整個(gè)環(huán)境的配置處理之中,主要采用的開發(fā)環(huán)境為IDEA,主要采用的開發(fā)語言為Java,以此完成整個(gè)模型的處理操作。
2)數(shù)據(jù)集
數(shù)據(jù)集為chnsenticorp中文情感分析評(píng)論語料。chnsenticorp分為四類:
ChnSentiCorp_htl_ba_2000:2000 條視頻評(píng)論re?view,label均衡。
ChnSentiCorp_htl_ba_4000:4000 條視頻評(píng)論re?view,label均衡。
ChnSentiCorp_htl_ba_6000:6000 條視頻評(píng)論re?view,label均衡。
ChnSentiCorp_htl_unba_10000:7000條,只有pos。
3)評(píng)價(jià)指標(biāo)
本文實(shí)驗(yàn)效果的評(píng)價(jià)指標(biāo)為準(zhǔn)確率Acc,在整個(gè)模型的處理過程之中,需要完成這些視頻評(píng)論的分析與處理,需要確定整個(gè)評(píng)論過程之中的積極評(píng)論、消極評(píng)論與中性評(píng)論的內(nèi)容,并將這些評(píng)論數(shù)量在整個(gè)評(píng)論過程之中對應(yīng)的比例進(jìn)行闡述。
4)數(shù)據(jù)預(yù)處理
每一段評(píng)論都單獨(dú)在一個(gè)txt文件中,首先將其整合在一個(gè)txt文件中,每條評(píng)論占一行,再人工對每條評(píng)論進(jìn)行標(biāo)注,標(biāo)簽-1表示負(fù)面文本,標(biāo)簽0表示中性文本,標(biāo)簽1表示正面文本,總共標(biāo)注約2000條,將其中約200條提出作為驗(yàn)證集,訓(xùn)練集:驗(yàn)證集=9:1,然后將訓(xùn)練集和驗(yàn)證集文件轉(zhuǎn)化成tsv格式。
5)BERT模型處理過程
BERT模型代碼分為幾個(gè)部分:classifier.py開始固定種子并進(jìn)行微調(diào)訓(xùn)練,configs.py確定了參數(shù)的設(shè)置,其中包括訓(xùn)練集和驗(yàn)證集的讀取路徑、隨機(jī)種子數(shù),確定了batch_size=8,learning_rate=1e-05,epoch=5,dropout=0.3等超參數(shù)設(shè)置,model.py負(fù)責(zé)將BERT模型的輸出,一個(gè)768維的張量轉(zhuǎn)化為3維的輸出,代表了評(píng)論屬于正面評(píng)論、中性評(píng)論、負(fù)面評(píng)論的可能性,read_data.py負(fù)責(zé)讀取數(shù)據(jù),test_code.py負(fù)責(zé)將測試用的數(shù)據(jù)代入模型運(yùn)行得出結(jié)果,檢測模型的準(zhǔn)確率。
4.2 模型訓(xùn)練結(jié)果
1)處理結(jié)果模型訓(xùn)練后會(huì)生成一個(gè)json 文件,記錄訓(xùn)練結(jié)果。
{"micro/precision": 0.95, "micro/recall": 0.95, "mi?cro/f1": 0.9500000000000001, "macro/precision": 0.9340801538006507, "macro/recall": 0.8945502053004852,"macro/f1": 0.9121639784946236, "samples/precision":0.95, "samples/recall": 0.95, "samples/f1": 0.95, "accu?racy": 0.95, "labels/f1": {" -1": 0.96875, "0":0.7999999999999999, "1": 0.967741935483871}, "la?bels/precision": {" -1": 0.9489795918367347, "0":0.875, "1": 0.9782608695652174}, "labels/recall": {" -1": 0.9893617021276596, "0": 0.7368421052631579, "1": 0.9574468085106383}, "loss": 0.6011847257614136}
其中可以看到模型準(zhǔn)確率為95%,判斷負(fù)面文本的概率是98.93%,正面文本的概率是95.74%,中性文本的概率為73.68%。
2)模型算法分析
在整個(gè)算法的分析過程之中,為了驗(yàn)證整個(gè)處理模型的準(zhǔn)確性,進(jìn)行實(shí)驗(yàn)的分析與對比,整個(gè)實(shí)驗(yàn)分為兩種:第一個(gè)實(shí)驗(yàn)需要完成不同云聯(lián)模型的對比實(shí)驗(yàn);第二個(gè)實(shí)驗(yàn)需要將本系統(tǒng)采用的BERT實(shí)現(xiàn)的方法與其他方法進(jìn)行分析與對比。
在第一個(gè)實(shí)驗(yàn)的處理之中,由前文可以了解,目前語言的預(yù)訓(xùn)練采用的方法有BERT、GloVe、Word2Vec,這些不同的訓(xùn)練模型在針對同一個(gè)任務(wù)進(jìn)行處理的時(shí)候,對這些實(shí)驗(yàn)進(jìn)行分析與對比,同時(shí)記錄每一個(gè)訓(xùn)練模型的實(shí)驗(yàn)結(jié)果,這些結(jié)果如表2所示。
從表2可以看出,將三者的處理結(jié)果進(jìn)行對比,總體BERT模型在整個(gè)處理過程之中能夠?qū)υ~語的上下文進(jìn)行提煉與管理,總體感情分類任務(wù)處理的效率與準(zhǔn)確率會(huì)更高。為了確定整個(gè)BERT模型處理的準(zhǔn)確性,需要對其文本情感分析有效性進(jìn)行確認(rèn),核心的工作內(nèi)容是完成準(zhǔn)確率的計(jì)算,具體計(jì)算的結(jié)果如表3所示。
從中能夠看出本文采用的BERT方法相比機(jī)器學(xué)習(xí)與RNN等方法來說,總體準(zhǔn)確率較高,具備良好的處理效果。
5 結(jié)論
雖然評(píng)論數(shù)據(jù)僅限制在了bilibili視頻平臺(tái),但仍然有眾多的視頻分類包括音樂、舞蹈、游戲、知識(shí)、運(yùn)動(dòng)、生活等,這需要龐大的數(shù)據(jù)集進(jìn)行訓(xùn)練,而目前的數(shù)據(jù)集并沒有達(dá)到要求,也因此提供了管理員更新深度學(xué)習(xí)模型的功能,希望之后能收集到足夠多的數(shù)據(jù)進(jìn)行訓(xùn)練。
每個(gè)視頻平臺(tái)的前端頁面結(jié)構(gòu)不同,爬取策略也會(huì)不同。為了方便起見,該系統(tǒng)目前僅限制在bilibili 視頻平臺(tái)進(jìn)行爬取,希望之后可以針對不同的視頻平臺(tái)都可以進(jìn)行視頻評(píng)論的獲取。