陳浩天,劉曉東,2
(1.武漢郵電科學(xué)研究院,湖北武漢 430070;2.武漢虹旭信息技術(shù)有限責(zé)任公司,湖北 武漢 430070)
截止到2021 年上半年,船舶領(lǐng)域的語料庫基本缺失,無法在互聯(lián)網(wǎng)、圖書館等公共資源區(qū)域有效獲得船舶領(lǐng)域的相關(guān)語料,也就無法實(shí)現(xiàn)船舶工況點(diǎn)自動(dòng)匹配。
現(xiàn)有的文本自動(dòng)匹配方法研究如傳統(tǒng)的知識(shí)工程分類[4],對(duì)時(shí)間維度消耗大,不滿足最后的自動(dòng)化處理需求;基于深度學(xué)習(xí)進(jìn)行分類處理[8]的算法在處理時(shí)對(duì)語料要求很大,模型的效果很大程度取決于語料的好壞,人們常用的Logistic算法以及SVM算法[11]都是如此。隨著詞向量的提出,深度學(xué)習(xí)算法逐漸進(jìn)入人們的視野,CBOW 模型[12]以及Skip-Gram 模型都能很好地對(duì)分布式詞向量模型進(jìn)行分類。
為了驗(yàn)證改進(jìn)C-fattext 算法在實(shí)驗(yàn)中可以提升效率,文中針對(duì)改進(jìn)C-fasttext 算法和在分類中常用的樸素貝葉斯算法、支持向量機(jī)算法和原始fasttext算法進(jìn)行對(duì)比,力求達(dá)到實(shí)驗(yàn)預(yù)期指標(biāo)。
傳統(tǒng)分類步驟大致可以分為四步,即文本獲取、文本預(yù)處理、特征詞提取、分類器選擇。
1.1.1 文本獲取
在船舶領(lǐng)域,目前,互聯(lián)網(wǎng)、圖書館等場(chǎng)所無法獲取有效的船舶資源,這為獲取語料造成了極大的影響,文中通過網(wǎng)絡(luò)爬蟲獲取大量船舶網(wǎng)站的新聞數(shù)據(jù)以及試驗(yàn)數(shù)據(jù),加上公司內(nèi)部船舶資料、船長提供的手冊(cè)資料等,將這些資料結(jié)合成為一個(gè)龐大的語料庫,進(jìn)而轉(zhuǎn)換為純文本語料庫。
1.1.2 文本預(yù)處理
在文本獲取中得到大量文本數(shù)據(jù)后,不能直接使用原始數(shù)據(jù)進(jìn)行后續(xù)實(shí)驗(yàn),原始文本數(shù)據(jù)中包含了大量垃圾信息與噪聲,這些垃圾信息與噪聲對(duì)后續(xù)需要進(jìn)行的分類工作沒有任何幫助,甚至在一定程度會(huì)起到相反的作用,對(duì)分類的速度、準(zhǔn)確率造成不同程度的干擾,導(dǎo)致試驗(yàn)分類結(jié)果不佳。因此,使用分詞、去停用詞、同義詞轉(zhuǎn)換等方法處理文本信息。
一個(gè)工況點(diǎn)的主要內(nèi)容可以由其特征詞匯決定,通過這些特征詞匯完成工況點(diǎn)分類。目前特征提取算法已經(jīng)呈現(xiàn)多元化發(fā)展,例如TF-IDF(Term Frequency-Inverse Document Frequency,詞頻-逆文本頻率指數(shù))算法、TextRank 算法(基于圖的用于關(guān)鍵詞抽取和文檔摘要的排序算法)、互信息算法、信息熵算法等,這些算法都能滿足特征提取需求。文中選用TF-IDF 算法實(shí)現(xiàn)工況點(diǎn)分類任務(wù)的特征詞提取。
文中使用fasttext 分類器,fasttext 分類器采用分層softmax 提高訓(xùn)練速度,在大量文本中取得更好的評(píng)分效果,其因速度快、準(zhǔn)確率高而被廣泛應(yīng)用在文本分類領(lǐng)域。
詞頻TF 表示文本某個(gè)詞在前文本中出現(xiàn)的次數(shù)或者頻率,計(jì)算公式為:
逆文檔頻率IDF 代表一個(gè)詞在詞庫中出現(xiàn)的詞條的頻率:
TF-IDF 算法的核心思路為詞頻和逆文檔頻率的乘積:
為了避免因?yàn)槭褂肐DF 逆文檔頻率直接表示文本外部特征帶來的負(fù)面影響,可以在分詞之后,將處于設(shè)備部分,并且出現(xiàn)可以直接代表分類結(jié)果的詞匯,直接匹配上分類結(jié)果。例如,在分類“主機(jī)”類別時(shí),形如“No.1 主機(jī)轉(zhuǎn)速”在分詞之后會(huì)出現(xiàn)“主機(jī)”詞匯,可以直接將此工況點(diǎn)分類至“主機(jī)”類別中;在后續(xù)通過模型訓(xùn)練出類別后,可以使用此規(guī)則得到的結(jié)果直接覆蓋,提升因?yàn)槟P驼`差、參數(shù)設(shè)計(jì)不合理等因素造成的分類失誤。
在傳統(tǒng)的TF-IDF 算法中,增加一個(gè)能夠表示船舶的特定工況點(diǎn)庫,如果待對(duì)比工況點(diǎn)數(shù)據(jù)出現(xiàn)在此特定工況點(diǎn)庫中,則記錄系數(shù)ci,表示工況點(diǎn)中是否出現(xiàn)了符合特定工況的情況。如果出現(xiàn)在特定工況點(diǎn)庫中,則按照工況點(diǎn)中記錄的ci系數(shù)同式(3)中的Wi,j相乘,同時(shí)需要考慮到特征詞在同一類別,但不同文章之間的分布情況。在傳統(tǒng)的TFIDF 算法中,如果一個(gè)詞匯在某類別的文章中和另外一個(gè)詞匯出現(xiàn)在此類別的文章中的次數(shù)是相同的,則這兩個(gè)詞匯會(huì)獲得相同的TF-IDF 系數(shù)。然而,可能前面的詞匯在同種文章中的分布是均勻的,后者卻在小部分文章中大量出現(xiàn),那么前者詞匯的系數(shù)應(yīng)當(dāng)大于后者的系數(shù)。為了解決上述可能出現(xiàn)的情形,同步對(duì)對(duì)式(3)進(jìn)行更新,新增類內(nèi)系數(shù)aci,計(jì)算如下:
式中,tfij表示詞j在文檔i中的頻率,N表示文檔總數(shù)目,nj表示詞j出現(xiàn)的總文檔數(shù),nci表示詞j在類別c文檔中出現(xiàn)的文檔數(shù)目。通過對(duì)輸入文本的每個(gè)詞都進(jìn)行更改后的TF-IDF 算法計(jì)算,將其命名為C-TF-IDF 算法。
另外,單純添加一個(gè)系數(shù)仍然無法避免低頻詞條刪除問題,因?yàn)樵趬嚎s文檔時(shí),低頻向量詞條可能會(huì)被刪除,這樣就可能會(huì)忽略掉出現(xiàn)頻率不高,但是代表性、專業(yè)性很強(qiáng)的詞匯,使得改進(jìn)的C-TF-IDF算法性能在某些情況下大打折扣。
為使得對(duì)權(quán)重的處理更加合理,使用歸一化處理,以達(dá)到簡化計(jì)算的目的。使用歸一化作用于每個(gè)詞向量,標(biāo)準(zhǔn)化高頻詞匯和低頻詞匯權(quán)重,避免出現(xiàn)某詞匯出現(xiàn)次數(shù)過多或者過少而產(chǎn)生分布失衡的現(xiàn)象,同時(shí)也避免出現(xiàn)詞頻相差過大而影響分類效果。如此更改對(duì)權(quán)重的處理將更加有意義,再結(jié)合fasttext 算法,將C-fasttext 算法進(jìn)行更新。
C-fasttext 算法的計(jì)算步驟如下:
1)規(guī)則索引;
2)語料庫的收集以及文本預(yù)處理;
3)在原始詞序列中增加N-gram 特征;
4)使用創(chuàng)新后的C-TF-IDF 算法計(jì)算單個(gè)工況點(diǎn)結(jié)果aij;
5)根據(jù)得到的結(jié)果aij對(duì)目標(biāo)工況點(diǎn)權(quán)重進(jìn)行更新迭代計(jì)算;
6)進(jìn)行模型運(yùn)算。
fasttext 算法原理從word2vec 順延而來,它們都擁有CBOW 模型類似的結(jié)構(gòu),即分為三層:①輸入層,主要為文本詞向量的輸入、特征的輸入等;②隱藏層,進(jìn)行相關(guān)參數(shù)計(jì)算、迭代;③輸出層,與word2cev不同的是,fasttext 算法是通過上下文預(yù)測(cè)類別,其輸出的是最終判斷的類別可能性。
fasttext 算法可以理解為帶監(jiān)督的分類模型,輸入的數(shù)據(jù)可以認(rèn)為是帶有參數(shù)系數(shù)的詞向量信息,在輸入之前加入一層憑借層,此層的主要作用是將得到的信息整合,刪除無用信息,保證數(shù)據(jù)的完整性與可靠程度。憑借層網(wǎng)絡(luò)拓?fù)鋱D如圖1 所示。
圖1 憑借層網(wǎng)絡(luò)拓?fù)鋱D
由于文中的應(yīng)用領(lǐng)域?yàn)榇邦I(lǐng)域,結(jié)合前文對(duì)于算法的改進(jìn),最終選擇的損失函數(shù)是交叉熵?fù)p失函數(shù):
一個(gè)批次中的損失函數(shù)計(jì)算公式如式(7)所示:
式中,yi表示實(shí)際類別的標(biāo)記,表示模型預(yù)測(cè)的類別標(biāo)記。
可以得出改進(jìn)后fasttext 算法實(shí)現(xiàn)流程如圖2所示。
圖2 改進(jìn)后fasttext算法實(shí)現(xiàn)流程圖
文中試驗(yàn)環(huán)境為本地Windows10 家庭版操作系統(tǒng),Intel Core i5 處理器,使用的語言為Python3.7,實(shí)驗(yàn)采用的評(píng)判指標(biāo)為文本分類準(zhǔn)確率、召回率、F值,用于對(duì)比顯示結(jié)果。
實(shí)驗(yàn)使用數(shù)據(jù)集為船舶領(lǐng)域數(shù)據(jù)庫中已經(jīng)擁有的2 123 條工況點(diǎn)數(shù)據(jù),驗(yàn)證數(shù)據(jù)集為新船中選取的1 000 條工況點(diǎn),訓(xùn)練集中數(shù)據(jù)格式如圖3 所示。
圖3 訓(xùn)練集數(shù)據(jù)格式
在自然語言領(lǐng)域,通常使用三種評(píng)估指標(biāo),分別為準(zhǔn)確率、召回率和F 值。
準(zhǔn)確率:準(zhǔn)確率表示模型預(yù)測(cè)為正樣本且實(shí)際為正樣本的比例,計(jì)算公式為:
召回率:召回率表示模型準(zhǔn)確預(yù)測(cè)為正樣本的數(shù)量占所有正樣本數(shù)量的比例,計(jì)算公式為:
F 值:可以理解為P和R的加權(quán)調(diào)和平均,計(jì)算公式為:
為驗(yàn)證改進(jìn)的C-fasttext算法的分類能力,使用實(shí)驗(yàn)數(shù)據(jù)進(jìn)行測(cè)試,同時(shí)選擇樸素貝葉斯算法、SVM 算法、傳統(tǒng)fasttext算法同改進(jìn)的C-fasttext算法進(jìn)行對(duì)比。
為了數(shù)據(jù)能夠更加直觀顯示,使用折線圖表示不同類別工況點(diǎn)數(shù)目,如圖4 所示。
圖4 不同類別工況點(diǎn)數(shù)目
圖4 表明,在船舶領(lǐng)域中,六大主要類別出現(xiàn)概率差距不大,沒有出現(xiàn)某種類別過多或者過少的情況,其中壓載類工況點(diǎn)數(shù)目少是因?yàn)閴狠d類一般出現(xiàn)在其他類別的輔助類中,原始數(shù)據(jù)中單獨(dú)出現(xiàn)壓載類的情況并不多。在數(shù)據(jù)集中,每個(gè)類別占有總數(shù)據(jù)的比例為:主機(jī)類26.45%,艙室類18.14%,鍋爐類9.85%,氣缸類10.40%,壓載類5.03%,電力類30.12%。在分類判決中,實(shí)際還有一個(gè)其他類,其他類擁有出現(xiàn)極少或者特殊情況的工況點(diǎn),在分類階段暫時(shí)剔除,以免對(duì)分類結(jié)果產(chǎn)生影響。
圖5 給出了改進(jìn)C-fasttext 算法在船舶領(lǐng)域六大類中的分類結(jié)果。
圖5 改進(jìn)C-fasttext算法分類結(jié)果圖
四種分類方法準(zhǔn)確率結(jié)果如圖6 所示。
圖6 四種分類方法準(zhǔn)確率結(jié)果圖
由圖6 可知,文中提出的改進(jìn)C-fasttext 算法準(zhǔn)確率最高,高達(dá)91.59%;傳統(tǒng)的fasttext 分類算法的平均準(zhǔn)確率也處于領(lǐng)先地位,為88.27%;支持向量機(jī)算法處在較低水平,準(zhǔn)確率只有59.98%;樸素貝葉斯方法在準(zhǔn)確率上達(dá)到76.19%??梢钥闯觯瑢?duì)比樸素貝葉斯算法、支持向量機(jī)算法和原始fasttext 算法,改進(jìn)C-fasttext 算法在二分類任務(wù)中獲得了較好的評(píng)分,說明改進(jìn)是成功的。
在錯(cuò)誤控制方面,隨機(jī)抽取100 條數(shù)據(jù),查看分類結(jié)果,發(fā)現(xiàn)誤報(bào)率為3%,語料覆蓋率為97%,滿足最初控制誤報(bào)率不超過5%、語料庫覆蓋率超過95%的需求,得出基于fasttext 的船舶工況點(diǎn)分類研究算法滿足項(xiàng)目要求結(jié)論。
為解決船舶領(lǐng)域工況點(diǎn)對(duì)比分類問題,提出基于fasttext 的改進(jìn)C-fasttext 算法,對(duì)特征提取方法中的TF-IDF 算法做出改進(jìn),使其在權(quán)重設(shè)置上更加符合工況點(diǎn)分類要求;對(duì)fasttext 算法在輸入層做出創(chuàng)新,指出其在應(yīng)用于工況點(diǎn)分類中的不足之處,提出的C-fasttext 算法在原有基礎(chǔ)之上進(jìn)行了改進(jìn),從而節(jié)省大量人力資源,匹配準(zhǔn)確率為91.59%,語料覆蓋率為97%,提出的C-fasttext 算法能夠完善對(duì)工況點(diǎn)的分類效果,滿足需求。