王心儀,程劍鋒,劉育君
(1.中國鐵道科學(xué)研究院 研究生部,北京 100081;2.中國鐵道科學(xué)研究院集團有限公司 通信信號研究所,北京 100081)
列車超速防護(ATP,Automatic Train Protection)系統(tǒng)是保障高速鐵路運輸安全的關(guān)鍵設(shè)備,其安全性和功能性是高速鐵路信號系統(tǒng)列車控制的核心。ATP 車載設(shè)備在研發(fā)過程中,要進行大量的仿真測試,須先將測試案例按照測試場景進行分類,便于測試人員編寫測試序列,利于后續(xù)問題的查找和分析。目前,ATP 車載設(shè)備測試案例采用人工分類方式,依靠測試人員的經(jīng)驗及對案例的理解,使得案例分類具有較大差異。因此,亟需設(shè)計一種方法,實現(xiàn)測試案例自動分類,便于測試的流程化作業(yè)。
實現(xiàn)測試案例文本分類的核心,在于對文本特征詞的篩選及分類器的選擇。在研究分類的過程中,莊媛等人[1]利用詞頻—逆文檔頻率(TF-IDF,Term Frequency-Inverse Document Frequency)算法計算Web 服務(wù)質(zhì)量受位置、時間等環(huán)境因素影響的權(quán)重,結(jié)合樸素貝葉斯分類器算法,與基于經(jīng)典假設(shè)檢驗的SPRT (Sequential Probability Ratio)方法進行對比,實現(xiàn)了Web 服務(wù)質(zhì)量的有效監(jiān)控;周小燕[2]考慮了特征受到類內(nèi)和類間分布的影響,引入集中度和分散度,對TF-IDF 算法進行優(yōu)化,結(jié)合LDA (Latent Dirichlet Allocation)主題模型得到的主題個數(shù)及隨機森林函數(shù)確定的屬性子集,實現(xiàn)用戶影評的分類;李新琴等人[3]采用ADASYN (Adaptive Synthetic Sampling)數(shù)據(jù)合成法對鐵路信號道岔設(shè)備故障樣本進行處理,選擇TF-IDF 算法實現(xiàn)特征詞提取,集成BiGRU 和BiLSTM 兩個神經(jīng)網(wǎng)絡(luò),得到故障診斷模型,實現(xiàn)信號設(shè)備的故障分類;許麗等人[4]采用向量空間模型對網(wǎng)絡(luò)熱點新聞信息進行處理,利用TFIDF 算法,結(jié)合樸素貝葉斯分類器,實現(xiàn)根據(jù)提案內(nèi)容推薦熱點信息,但隨著測試樣本的增多,穩(wěn)定性和準(zhǔn)確性都有所降低;王麗等人[5]研究了TF-IDF 和Word2vec 算法提取新聞文本關(guān)鍵詞的優(yōu)缺點,利用KNN (K-Nearest Neighbor)算法,實現(xiàn)新聞數(shù)據(jù)分類,但不同類別的分類效果差異較大;景麗等人[6]針對特征詞提取不全面等問題,對TF-IDF 算法的特征項分布和位置因素進行了優(yōu)化,結(jié)合帶有注意力機制的LSTM 卷積網(wǎng)絡(luò)分類模型,實現(xiàn)了更精確的數(shù)據(jù)分類,但存在時間復(fù)雜度較大的問題。
本文針對鐵路ATP 車載設(shè)備測試案例,選擇TFIDF 算法對測試案例文本描述進行預(yù)處理和特征詞提取,依據(jù)選取的特征詞權(quán)重結(jié)合樸素貝葉斯算法作為測試案例的分類方法,提高分類效率及準(zhǔn)確性。
目前,CTCS-3 (Chinese Train Control System Level 3)級列車運行控制(簡稱:列控)車載系統(tǒng)采用 C2/C3 一體化設(shè)計,設(shè)備的子系統(tǒng)間為分布式結(jié)構(gòu)[7]。ATP 車載設(shè)備主要結(jié)構(gòu)如圖1所示,包括車載安全計算機、人機交互界面(DMI,Driver Machine Interface)、應(yīng)答器信息傳輸模塊(BTM,Balise Transmission Module)、司法紀(jì)錄單元(JRU,Juridical Recording Unit)、軌道電路讀取器(TCR,Track Circuit Reader)等,圖中箭頭表示信息的傳遞方向。ATP 作為CTCS-3 級列控系統(tǒng)的車載關(guān)鍵設(shè)備及列車自動控制系統(tǒng)的核心[8],能夠?qū)⒌孛孳壍离娐?、?yīng)答器、無線閉塞中心 (RBC,Radio Block Center)等傳送來的聯(lián)鎖設(shè)備信息、線路信息、距離位置信息等轉(zhuǎn)換為控車數(shù)據(jù),生成控車曲線,在列車運行時監(jiān)控列車運行速度,保障列車的安全間隔,并與車輛系統(tǒng)接口實現(xiàn)信息交互,JRU 通過以太網(wǎng)向動態(tài)監(jiān)測系統(tǒng)(DMS,Dynamic Monitoring System)提供相關(guān)車載數(shù)據(jù)。
圖1 ATP 車載設(shè)備主要結(jié)構(gòu)
ATP 車載設(shè)備在投入使用前若存在設(shè)計問題,極易引發(fā)重大事故,造成不可挽回的損失。因此,設(shè)備的研發(fā)需經(jīng)歷多場景、多輪次的測試,才能保障其安全性,降低在現(xiàn)場使用時發(fā)生故障的概率,確保行車安全。車載設(shè)備的測試不僅包括各項設(shè)計功能實現(xiàn)程度的檢測,還包括運用過程中出現(xiàn)故障的分析處理。常規(guī)的仿真測試主要分為功能性測試和特殊場景下的故障測試。為保障測試的全面性及系統(tǒng)性,需要測試人員根據(jù)系統(tǒng)測試需求,規(guī)范編寫測試案例。
在遇到系統(tǒng)變更、故障分析等情況時,測試人員可查找現(xiàn)有的測試案例進行驗證和分析。ATP 車載設(shè)備功能復(fù)雜,測試案例數(shù)目較多,依據(jù)ATP 的運營場景和功能需求等進行測試案例分類,便于后續(xù)分析工作的開展。通常將ATP 車載設(shè)備CTCS-3級測試案例按照中國國家鐵路集團有限公司(簡稱:國鐵集團)發(fā)布的《CTCS-3 級列控系統(tǒng)測試案例》進行分類,包括制動測試、通信會話管理、控車曲線、應(yīng)答器鏈接信息處理、無線消息接收、自動過分相、版本檢查、前方軌道空閑(TAF,Track Ahead Free)信息接收和使用、DMI 顯示、緊急停車消息、故障處理等。
在進行測試案例分類前,需要對案例文本進行分詞處理,具體測試案例文本如表1所示。利用Python 中現(xiàn)有的jieba 分詞庫對測試案例文本進行分詞(分詞方法見文獻[4]所述)。將文本進行精確分詞,便于計算機準(zhǔn)確獲取文本中的詞語。
表1 測試案例文本示例
在利用TF-IDF 算法獲取特征詞在全部特征詞中的權(quán)重值之前,要將利用jieba 分詞處理后的測試案例語句與停用詞庫進行比較,過濾無意義的詞。去掉停用詞后,可在一定程度上降低特征詞的維度,增強分類的確定性。
TF-IDF 算法是篩選文章特征詞的一種方法,該方法可評估前文選取的詞在文檔中是否具有代表性。如果一個詞在本篇文章中出現(xiàn)的頻率很高,在其他文章中出現(xiàn)頻率相對較低,則該詞即為本文的特征詞。上述關(guān)系可用公式(1)表示[5]。
其中,TF為進行歸一化后的詞頻,公式為
逆文件頻率IDF表示在詞頻的基礎(chǔ)上,賦予每個特征詞的權(quán)重,公式為
貝葉斯算法適用于目標(biāo)變量個數(shù)較多的情況,是表達不確定問題的有效模型之一。樸素貝葉斯算法在給定屬性相互獨立的情況下,簡化了貝葉斯算法的復(fù)雜度[9]。本文選擇該算法實現(xiàn)測試案例的分類,即依據(jù)算法得到特征詞與預(yù)測分類間存在關(guān)系概率的大小,選擇測試案例適合的分類。
假設(shè)文檔集H中有 |C|個類別,其中,第k個類別表示為Ck(1 ≤k≤|C|);n為特征詞總數(shù);p(ωm|Ck)表示在類別Ck文檔中出現(xiàn)特征詞ωm(1 ≤m≤n)的概率;q為文檔總數(shù);Hi(1 ≤i≤q)表示文檔集H中第i個文檔;ωim表示第i個文檔中第m個特征詞;結(jié)合文獻[10]得到樸素貝葉斯算法分類公式為
傳統(tǒng)的樸素貝葉斯分類方法沒有考慮不同類別的特征詞權(quán)重不同的情況,本文利用TF-IDF 算法得到的權(quán)重對其改進。
為簡化表達式,設(shè)變量l=im,對于Hi中的特征詞 ωl,其特征權(quán)重計算公式為
根據(jù)公式(2)和公式(3)可得到
其中,N(Hi,ωl)表示特征詞 ωl在文檔Hi中出現(xiàn)的次數(shù);t表示全部特征詞在文檔中出現(xiàn)的次數(shù)總和;M(Hi,ωl)是Hi中含有該特征詞的文檔數(shù)目。因此,文本Hi中的特征詞 ωl的特征權(quán)重W(Hi,ωl)為
將公式(7)引入公式(4)可得到加權(quán)的樸素貝葉斯算法分類公式為
將篩選出的特征詞及權(quán)重帶入公式(8),結(jié)合已有的訓(xùn)練數(shù)據(jù),得到優(yōu)化后的分類結(jié)果。
本實驗在Windows 操作平臺下運行,采用 Python編程語言編寫。本文選取了20 個測試案例類型的2001條測試案例,對TF-IDF 加權(quán)樸素貝葉斯的分類方法進行驗證,部分測試案例如表2所示。隨機選取1500 條案例作為訓(xùn)練數(shù)據(jù),501 條案例作為驗證數(shù)據(jù),訓(xùn)練樣本與驗證樣本的比例大致為3∶1。
表2 案例類型與文本詳情節(jié)選
具體實驗參數(shù)設(shè)置如下:jieba 分詞處理后文檔選定的特征詞數(shù)量topK=300,返回特征詞權(quán)重with-Weight=True,特征詞數(shù)目選取max_features=300,測試案例比例test_size=0.25。
本文利用jieba 分詞得到的訓(xùn)練詞庫示例如圖2所示,利用TF-IDF 算法得到的特征詞及其對應(yīng)的權(quán)值示例如圖3所示,選取權(quán)值較大的前300 個詞進行貝葉斯分類,得到測試案例的分類結(jié)果,測試案例分類流程如圖4所示。
圖2 利用jieba 分詞得到的訓(xùn)練詞庫示例
圖3 利用TF-IDF 算法得到的特征詞及其對應(yīng)權(quán)值示例
圖4 測試案例分類流程
4.2.1 分類結(jié)果分析
本文采用文獻[11]提到的準(zhǔn)確率、召回率及F1值作為判斷分類有效性的指標(biāo)。利用傳統(tǒng)樸素貝葉斯分類方法和TF-TDF 加權(quán)的樸素貝葉斯分類方法實現(xiàn)測試分類,其各自結(jié)果對應(yīng)的指標(biāo)變化如圖5、圖6、圖7所示。
從圖5、圖6、圖7可看出,相比于傳統(tǒng)算法,利用加權(quán)后的樸素貝葉斯算法得到的分類效果較好,對應(yīng)的評價指標(biāo)總體水平呈現(xiàn)提升的趨勢。如果用人工方式實現(xiàn)上述測試案例的分類,需要近3 天的時間,利用本算法僅需幾秒,從工作時間的對比可看出本算法顯著提高了工作效率。
圖5 準(zhǔn)確率指標(biāo)變化情況
圖6 召回率指標(biāo)變化情況
圖7 F1 值變化情況
4.2.2 分類指標(biāo)對比
依據(jù)文獻[12]提及的準(zhǔn)確度、宏平均及加權(quán)平均指標(biāo),結(jié)合表3得到的結(jié)果可發(fā)現(xiàn),在測試案例數(shù)目相同的情況下,利用TF-IDF 加權(quán)的樸素貝葉斯算法的加權(quán)平均值與傳統(tǒng)的樸素貝葉斯算法的加權(quán)平均值相比,準(zhǔn)確率指標(biāo)有6%的提升,召回率指標(biāo)有2%的提升,F(xiàn)1 值有3%的提升。實驗證明了基于TF-IDF 加權(quán)的樸素貝葉斯算法分類的有效性與準(zhǔn)確性。
表3 分類報告對比
本文以實驗室現(xiàn)有列控車載設(shè)備CTCS-3 實際生產(chǎn)數(shù)據(jù)為測試案例,選擇了基于文本挖掘的測試案例分類方法,利用TF-IDF 算法實現(xiàn)了高速鐵路列控車載設(shè)備CTCS-3 級案例中的特征詞及對應(yīng)權(quán)重的篩選,將得到的權(quán)重結(jié)合樸素貝葉斯算法實現(xiàn)了測試案例自動分類,相比于傳統(tǒng)的人工分類法顯著提高了分類效率及準(zhǔn)確性。
實驗結(jié)果表明,本文方法可為高速鐵路ATP 車載設(shè)備測試人員分類測試案例提供有力支撐,具有很強的實用性。后續(xù)將針對樸素貝葉斯分類器性能受屬性關(guān)系影響的問題開展進一步的研究。