石玉敬,陳 超,鄒 昆,趙亞蛟,華傳健,何 滄
(凱德技術長沙股份有限公司,長沙 410003)
需求分析工作是需求工程的研究以及其應用中的重中之重,同時體系需求工程的研究也是目前體系工程研究的關鍵,需求是系統(tǒng)或者體系為解決問題或完成目標所必須滿足的條件或能力。文獻[1]重點針對網絡信息體系等重難點問題的研究思路進行了探討,在體系需求工程關鍵技術上有一定的突破。文獻[2]提出了裝備體系需求論證的研究框架,能夠在理論方法上為裝備體系需求論證和頂層設計提供支撐。文獻[3]利用UML(unified modeling language)對裝備體系需求工程建模技術進行研究,結果表明該方法更適合進行需求描述。從上文可知,在需求分析之前的一個重要任務就是將一條條隱藏在非結構化文本中的需求條目全部抽取出來,如果忽略掉某些需求可能會導致整個項目的失敗,因此需求的提取成功與否是需求分析乃至需求工程能夠順利進行下去的關鍵。
相較于軟件開發(fā)中的其他語句,需求的描述通常分散甚至隱含在不同語句、段落、文檔之中,同時某些非需求條目與軟件需求十分相似,導致它們之間難以辯別,因此需求相對來說不易被提取。而面對海量的非結構化文本,通過人工提取的方法付出的人力、時間和經濟的成本太大,并且可能會出現(xiàn)疏漏的地方。所以,將需求抽取的工作進行一定程度的自動化,即在需求分析軟件中添加一個對需求條目進行識別和分類的功能,對需求分析過程的效率和質量能夠有巨大的提升。同時目前對于需求抽取的研究成果較少,因此本研究將基于深度學習模型探究更有效的需求抽取方法并解決工業(yè)界實際案例需求。
由于需求分析的重要性,自動化的需求文本分析工具一直是需求工程領域的研究熱點。而目前的主流研究方法是將需求提取當成文本分類任務,主要的需求分類方法有三種:基于規(guī)則和詞性的分類方法[4]、基于傳統(tǒng)機器學習的分類方法[5]和基于深度學習的分類方法[6]。基于規(guī)則和詞性的分類方法除了要求對語言學參與規(guī)則制定之外,同時還需要領域內專家進行輔助,不僅需要大量時間來制定規(guī)則模型,而且模板的泛化能力較差,如果用于其他領域,抽取結果往往不盡人意,因此該方法逐漸被其他兩種方法取代。文獻[7]提出了一種基于支持向量機(support vector machine,SVM)的需求分類方法,能夠較為不錯地對功能需求和非功能需求進行分類。文獻[8]使用用戶評論作為數(shù)據(jù)集對比四種分類技術和三種傳統(tǒng)機器學習算法組成的十二種組合方法的分類性能,最后挑選出最適合作需求分類的方法。文獻[9]基于詞性規(guī)則和依存句法規(guī)則結合特征提取和分類的方法將安全關鍵軟件需求實現(xiàn)自動分類,與其他方法相比,準確率有了明顯的提升。由此可見基于傳統(tǒng)機器學習的方法能有效對需求進行分類,但是傳統(tǒng)機器學習模型需要手動構建離散變量特征值作為模型的輸入,由于人工輸入存在一定的主觀性和局限性,在一定程度上影響分類的準確性,隨著硬件的更新和算法的突破,基于深度學習的分類方法已經成為大勢所趨。文獻[10]采用深度學習特征提取和分類技術,提出一種基于BERT(bidirectional encoder representation from transformers)模型和長短期記憶網絡LSTM(long short term memory)相結合進行文本分類的BERT-LSTM 網絡模型進行需求分類,最終結果與其他方法相比達到了最佳。文獻[11]使用基于提示學習的BERT 模型,將K分類選擇問題轉化為二分判斷問題,獲得了最佳的分類結果。文獻[12]將Word2vec 向量與卷積神經網絡TextCNN 相結合,實驗結果證明深度學習的方法要明顯優(yōu)于其他方法。
由上文可知,目前有關于需求抽取和需求分類的研究大都集中在軟件需求上面,而關于需求抽取的研究成果極少,同時需求的提取難度相對較高。因此,本研究將構建首個中文需求抽取語料庫,并且提出一種基于深度學習的需求抽取方法,同時對比目前的主流文本分類方法探究更適合工業(yè)界實際的需求抽取方法。
1.2.1 BERT模型
BERT[13]是一種Transformer 的多層雙向編碼器,其本質是通過神經網絡特有的結構進行訓練得到BERT 模型,基于預先訓練好的BERT 模型能夠完成絕大部分自然語言處理任務。這是因為BERT模型的訓練語料包括維基百科和圖書語料庫,規(guī)格十分龐大。同時BERT模型是一個“深度雙向”的模型,這意味著BERT 模型能夠獲取文本中上下文的信息,這也能確保BERT模型能夠完整地提取到文本信息。
BERT 使用輸入掩碼和基于Transformer 的片段標記,將大量的無標簽文本轉化為一個引導式學習問題。輸入掩碼用于引導模型根據(jù)上下文判斷當前單詞是否合適,而片段標簽則用于判斷下一句話是否連貫。其網絡結構模型如圖1所示。

圖1 BERT網絡結構
RoBERTa-wwm[14]模型是BERT 模型的變種,RoBERTa-wwm 與BERT 相比主要有兩方面提升,首先是RoBERTa 預訓練模型與BERT 相比具有動態(tài)Mask、取消NSP 任務、設置更大的batchsize訓練、更多的訓練數(shù)據(jù)、更長的訓練時間等優(yōu)化策略,因此泛化能力更強;其次是Ro-BERTa 使用基于全詞掩碼的中文訓練方式,該訓練方式可以有效提高預訓練模型效果。
1.2.2 BiLSTM 模型
長短期記憶網絡(long short-term memory network,LSTM)在1997 年被提出,LSTM[15]結構內部有三個門:輸入門、遺忘門和輸出門。遺忘門決定從神經網絡的單元狀態(tài)中丟棄哪些信息,輸入門決定在單元狀態(tài)中存儲哪些新信息,輸出門根據(jù)過濾后的新單元狀態(tài)決定輸出值。輸出層根據(jù)過濾后的新細胞狀態(tài)決定輸出的值。BiLSTM(bi-directional long short-term memory)[16]在網絡結構上與LSTM 網絡類似,主要由前向LSTM 和后向LSTM 組成,相較于單向的LSTM模型,BiLSTM 算法能夠學習到更多的上下文信息。BiLSTM的網絡模型如圖2所示。

圖2 BiLSTM網絡模型
1.2.3 BERT-BiLSTM 模型
BERT-BiLSTM 模型的構建流程首先是將BERT預訓練模型輸出的文本向量輸入到BiLSTM層進一步做特征提取,在BiLSTM 層中將雙向加權向量進行全連接處理,輸出層由全連接層和Softmax 組成,Softmax函數(shù)接收到新輸出的向量之后對文本進行分類操作。BERT-BiLSTM網絡模型結構如圖3所示。研究所用模型是將BERT-BiLSTM模型中的BERT 替換為RoBERTa-wwm,通過RoBERTa-wwm 的優(yōu)勢提高需求抽取的準確性。

圖3 BERT-BiLSTM 網絡模型結構
由于目前缺少中文軟件需求的數(shù)據(jù)集,因此該研究的數(shù)據(jù)集主要來源于凱德股份的需求池、需求規(guī)格說明書以及網絡上有關需求工程研究的博客和文檔等一系列需求相關的文檔。其中需求條目和非需求條目的數(shù)量見表1。同時該研究將數(shù)據(jù)集中的80%作為訓練集,20%作為訓練集。

表1 需求條目數(shù)量表
該研究用于評價需求抽取效果的評價指標為精確率(Precision)、召回率(Recall)和F1 值(F1-mesure)。其具體公式見式(1)~式(3)。
其中:TP表示真陽性(true positive,TP);FP表示假陽性(false positive,F(xiàn)P);TN表示真陰性(true negatives,TN);FN表示假陽性(false negative,F(xiàn)N)。
實驗采用的BERT模型為BERT-Base-Chinese版本,RoBERTa-wwm 版本為RoBERTa-wwm-ext-Chinese,實驗相關超參數(shù)設置見表2。

表2 實驗超參數(shù)取值
研究選取了幾種主流的深度學習的分類方法作為基準模型來評估本方法的有效性,主要包括TextCNN、BERT、BiLSTM、BERT-BiLSTM。各模型在需求條目數(shù)據(jù)集上的分類效果見表3。

表3 需求抽取效果對比
由上文的分類效果對比可得,研究構建的模型在各方面皆優(yōu)于當前文本分類主流的幾種算法,由此可見本研究算法的優(yōu)越性。
對比表3 中的結果可以看出,TextCNN 模型相較BiLSTM 模型F值提升了1.49 個百分點,這是由于TextCNN 擅長捕獲更短的序列信息,Bi-LSTM擅長捕獲更長的序列信息,而數(shù)據(jù)集中大部分需求條目都是字符長度較短的句子,因此BiLSTM 無法最大程度發(fā)揮自身的長處,導致準確率不如TextCNN。而BERT 模型屬于預訓練模型,模型一開始就能更好地理解文本,同時Transformer 的雙向特征能夠使模型更容易學習到前后文信息,因此F值相較TextCNN 提升了1.61 個百分點。BERT 和BiLSTM 都能夠很好地提取到字符特征,因此這兩個模型的組合能夠對詞向量做進一步處理,使得需求抽取的效果更佳,因此BERT-BiLSTM 相較BERT 的F值提升了4.73 個百分點。RoBERTa-wwm-BiLSTM 模型效果是所有算法中表現(xiàn)最出色的,這是因為RoBERTa-wwm 與BERT 相比具有的兩大優(yōu)勢,這兩大優(yōu)勢能夠讓RoBERTa-wwm 有更好的表現(xiàn)。所以RoBERTa-wwm-BiLSTM 模型的最終效果要明顯優(yōu)于其他需求抽取模型。
隨著需求工程研究逐漸深入,需求分析等任務的研究同樣進行得如火如荼,而在進行這些研究之前將需求抽取出來對于需求工程的研究進展有很大的積極意義。但是需求條目相較于其他語句和其他分類任務難度較大,且目前也沒有需求條目公開的中文訓練集。這導致需求工程的研究在工業(yè)界和學術界的進展都十分緩慢。
因此本研究首先基于凱德股份數(shù)據(jù)庫以及網絡上的有關于需求工程研究的博客和文檔,構建首個中文需求抽取數(shù)據(jù)庫,再針對需求條目描述提出了一種RoBERTa-wwm-BiLSTM 抽取方法,并對其效果進行了實際測試。結果表明其精確率、召回率和F值依次達到94.74%、93.33%和93.65%,說明該方法與目前主流的分類方法相比有了比較明顯的提升,是比較適合在工業(yè)界進行需求抽取的一種方法。該研究所構建語料庫和所提方法能夠為之后需求抽取的研究打下基礎,同時為其他需求抽取任務甚至其它文本分類任務提供借鑒。
盡管本研究取得了一定的成果,但是也存在一定的不足,后續(xù)研究將會繼續(xù)擴大需求抽取的數(shù)據(jù)集,針對工業(yè)界的特點,在算法層面上提高需求抽取的速度和準確率,最后與凱德股份開發(fā)的KD-DSP 凱德數(shù)字體系工程平臺進行結合,研發(fā)出更強大的體系工程平臺。