關(guān) 慧,劉萍萍,盛靖媛
(沈陽化工大學(xué),遼寧 沈陽 110000)
相關(guān)研究表明,大約80%的需求是相互依賴的忽略需求依賴,對(duì)項(xiàng)目的成功有不利的影響。近年來,許多研究探索了基于機(jī)器學(xué)習(xí)的需求依賴提取。Deshpande等人使用NLP和ML方法提取依賴關(guān)系。Samer等人分析了小型工業(yè)數(shù)據(jù)集,并使用潛在語義分析提取了依賴類型。Priyadi等人提出了一種針對(duì)軟件需求規(guī)格說明文檔的需求依賴圖建模方法,以及判斷需求之間的相似性、精細(xì)化和約束關(guān)系的方法。Arora等人應(yīng)用NLP自動(dòng)識(shí)別需求語句的組成短語,計(jì)算短語之間的相似度得分,輸出語法和語義相似度函數(shù)來判斷需求之間的關(guān)系。
本文基于深度學(xué)習(xí)技術(shù),提出了一種基于自然語言編寫的需求文本的系統(tǒng)依賴關(guān)系提取方法。首先,構(gòu)建需求命名實(shí)體識(shí)別模型,將最能表達(dá)需求語義的詞提取為實(shí)體;其次,構(gòu)建需求實(shí)體關(guān)系提取模型,提取需求實(shí)體之間的關(guān)系;然后根據(jù)需求實(shí)體關(guān)系提取需求依賴關(guān)系;最后利用多個(gè)數(shù)據(jù)集對(duì)該方法進(jìn)行了評(píng)估。
近年來,使用機(jī)器學(xué)習(xí)方法進(jìn)行需求依賴關(guān)系提取時(shí),通常是基于大量高質(zhì)量的需求依賴關(guān)系標(biāo)注文本進(jìn)行的。這就導(dǎo)致在缺少標(biāo)注文本時(shí)進(jìn)行需求依賴關(guān)系提取的難度增加。因此本文提出了一個(gè)可以在缺少需求依賴關(guān)系文本的情況下進(jìn)行需求依賴關(guān)系自動(dòng)提取的方法,總體流程如圖1所示。
圖1 需求依賴實(shí)體關(guān)系的識(shí)別和提取過程
首先,對(duì)需求文本進(jìn)行預(yù)處理。使用自然語言處理技術(shù)將需求文本中的語句按照“?!边M(jìn)行分割;然后,用特殊符號(hào)
表1 命名實(shí)體標(biāo)記
BiLSTM-CRF模型是由雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(BiLSTM)和條件隨機(jī)場(chǎng)(CRF)組成的命名實(shí)體識(shí)別模型。BiLSTM能夠有效表達(dá)輸入向量特征在上下文中的意義,并預(yù)測(cè)相應(yīng)的標(biāo)簽概率。CRF層可以學(xué)習(xí)序列標(biāo)簽的約束,并通過傳遞特征來考慮輸出標(biāo)簽之間的順序,以保證預(yù)測(cè)結(jié)果的有效性。該方法使用Glove方法將需求文本進(jìn)行向量表示,然后輸入到BiLSTM-CRF模型中進(jìn)行預(yù)測(cè),形成需求實(shí)體集,用于后續(xù)的需求實(shí)體關(guān)系提取。需求實(shí)體處理過程如圖2所示。
圖2 需求實(shí)體處理流程
經(jīng)過需求實(shí)體提取后,形成了需求文本實(shí)體集entity={Subject, Predicate, Object},Subject={,, ...,S},Predicate={,, ...,P},Object={,, ...,O},見表2所列。
表2 需求實(shí)體
1.3.1 需求依賴關(guān)系
需求之間存在各種類型的依賴關(guān)系,如需要、相似性、影響、沖突、業(yè)務(wù)相關(guān)性、演化、價(jià)值、成本、細(xì)化、包含、部分細(xì)化和不相關(guān)性。目前基于機(jī)器學(xué)習(xí)的依賴提取的研究大多是研究需求的基本依賴關(guān)系,即需求是依賴關(guān)系還是獨(dú)立關(guān)系。在此基礎(chǔ)上,一些學(xué)者對(duì)需求語句的相似度、精細(xì)化、約束關(guān)系等進(jìn)行了研究。本文自動(dòng)提取了相似、細(xì)化、需要、調(diào)用和沖突五種需求關(guān)系。以上關(guān)系的非正式定義如下:
(1)相似:如果需求和需要完成相同的行動(dòng)或目標(biāo),那么和存在相似關(guān)系。
(2)細(xì)化:如果需求是對(duì)需求的補(bǔ)充或是詳細(xì)說明,那么和存在細(xì)化關(guān)系。
(3)需要:如果需求需要在實(shí)現(xiàn)的情況下才能實(shí)現(xiàn),那么和存在需要關(guān)系。
(4)調(diào)用:如果需求需要在之后實(shí)現(xiàn),那么和存在調(diào)用關(guān)系。
(5)沖突:如果需求和不能同時(shí)實(shí)現(xiàn),則和有沖突關(guān)系。
1.3.2 需求實(shí)體關(guān)系
需求依賴可以由謂語觸發(fā),因此謂語可以很好地表達(dá)需求語句之間的依賴關(guān)系。但是僅僅依靠謂語關(guān)系來判斷需求相關(guān)性,將會(huì)得到許多錯(cuò)誤的結(jié)果,從而影響研究。因此,本文不僅考慮謂詞實(shí)體之間的語義關(guān)系,還考慮主語、賓語實(shí)體之間的語義關(guān)系。通過判斷需求語句中的主-謂-賓實(shí)體關(guān)系,可以識(shí)別出需求依賴關(guān)系。例如,如果兩個(gè)需求語句中的兩個(gè)謂語實(shí)體存在相似關(guān)系,并且主語實(shí)體和賓語實(shí)體也具有相似關(guān)系,則可以將需求語句判定為相似關(guān)系。需求實(shí)體存在的關(guān)系見表3所列。
表3 需求實(shí)體關(guān)系
1.3.3 需求實(shí)體關(guān)系提取
Word2Vec-CNN模型由分布式詞向量表示(Word2Vec)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)組成。模型的輸入是實(shí)體集,輸出是兩個(gè)實(shí)體之間的對(duì)應(yīng)關(guān)系。對(duì)于輸入實(shí)體集,Word2Vec可以用上下文語義的向量表示實(shí)體集,提高了CNN模型的泛化能力。CNN模型可以通過學(xué)習(xí)數(shù)據(jù)集中的規(guī)則進(jìn)行訓(xùn)練。然后,對(duì)實(shí)體進(jìn)行了對(duì)應(yīng)的預(yù)測(cè)。本文將需求實(shí)體集輸入Word2Vec模型進(jìn)行向量表示。最后,將向量輸入到CNN模型中,輸出實(shí)體關(guān)系。該模型處理的需求實(shí)體集可以形成需求實(shí)體關(guān)系集,關(guān)系集可用于后續(xù)提取需求實(shí)體關(guān)系。需求實(shí)體關(guān)系提取過程如圖3所示。
圖3 實(shí)體關(guān)系提取過程
如果兩個(gè)需求之間存在依賴關(guān)系,那么兩個(gè)需求的謂語之間必須存在某種關(guān)系。但是,如果這兩個(gè)需求之間的關(guān)系直接由謂語的關(guān)系決定,就會(huì)出現(xiàn)一定的語義缺失,導(dǎo)致判斷結(jié)果不準(zhǔn)確。因此,本文通過獲取兩個(gè)需求語句之間的主謂賓實(shí)體詞之間的關(guān)系以及實(shí)體之間的關(guān)系判斷需求依賴關(guān)系。關(guān)系判斷方法如下:
(1)判斷謂語實(shí)體之間是否存在已定義的關(guān)系。如果謂語之間不存在一定的關(guān)系,那么需求語句之間不存在依賴關(guān)系。
(2)如果謂語之間存在定義的關(guān)系,則接下來判斷主語之間是否有一定的關(guān)系。如果主語之間沒有一定的關(guān)系,那么辨別主語與賓語之間是否存在一定的關(guān)系。如果有,則此需求具有依賴關(guān)系;如果沒有,則需求之間不存在依賴關(guān)系。
(3)如果主語之間存在一定的關(guān)系,那么辨別賓語之間是否存在一定的關(guān)系。如果沒有關(guān)系,那么需求是獨(dú)立的。
(4)在謂語、主語均存在一定關(guān)系的情況下如果賓語之間存在一定的關(guān)系,則需求之間存在依賴關(guān)系。
本實(shí)驗(yàn)使用的樣本數(shù)據(jù)為德保羅大學(xué)MSC學(xué)生作為學(xué)期項(xiàng)目開發(fā)的PROMISE和來自公共數(shù)據(jù)集的PURE,并使用文獻(xiàn)[5]和文獻(xiàn)[15]中的需求文本進(jìn)行對(duì)比驗(yàn)證,以證明所提方法的有效性。
為了證明該方法的可行性,本文采用的評(píng)價(jià)標(biāo)準(zhǔn)為:準(zhǔn)確率、召回率、F1-score。
2.2.1 需求實(shí)體識(shí)別
利用BiLSTM-CRF模型進(jìn)行實(shí)驗(yàn),將需求文本標(biāo)記為主語、謂語和賓語三種實(shí)體類型,然后將標(biāo)記的數(shù)據(jù)集輸入模型進(jìn)行訓(xùn)練。實(shí)驗(yàn)中使用的BiLSTM模型是一個(gè)size為100、dropout rate為0.5的單層BiLSTM。將dropout rate設(shè)置為0.5的原因是dropout rate越高,準(zhǔn)確率越低;dropout rate越低,時(shí)間效率越低。實(shí)驗(yàn)結(jié)果見表4所列。
表4 需求實(shí)體識(shí)別結(jié)果
從表4可以看出,BiLSTM-CRF模型的平均準(zhǔn)確率和召回率都在80%以上,證明該方法能夠有效區(qū)分需求文本中的主謂賓實(shí)體。但是,與其他主語實(shí)體和賓語實(shí)體相比,謂詞實(shí)體的正確率和召回率都相對(duì)較低。這是因?yàn)榇蠖鄶?shù)謂語實(shí)體是由動(dòng)詞構(gòu)成的,而動(dòng)詞的時(shí)態(tài)、人稱和上下文會(huì)影響其語義,從而對(duì)謂語實(shí)體的提取產(chǎn)生不利影響。
2.2.2 需求實(shí)體關(guān)系提取
使用Word2Vec-CNN模型進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)基于需求實(shí)體集定義不同的實(shí)體關(guān)系,并構(gòu)建實(shí)體關(guān)系數(shù)據(jù)集;然后將需求數(shù)據(jù)輸入Word2Vec-CNN模型進(jìn)行訓(xùn)練。在實(shí)驗(yàn)中,選擇“size=2,step=1”滑動(dòng)窗口生成句子,即每個(gè)句子包含要求文本中的兩個(gè)句子。將每個(gè)句子中出現(xiàn)的實(shí)體排列組合為候選實(shí)體對(duì),然后對(duì)每個(gè)樣本進(jìn)行向量化,提取5個(gè)向量作為模型的輸入。實(shí)驗(yàn)結(jié)果見表5所列。
表5 需求實(shí)體關(guān)系提取結(jié)果
從表5可以看出,該模型的平均準(zhǔn)確率和召回率都在85%以上,在PROMISE數(shù)據(jù)集上準(zhǔn)確率甚至達(dá)到91%,證明了該模型在提取需求依賴方面的有效性。
為了驗(yàn)證模型的有效性,使用文獻(xiàn)[5]和文獻(xiàn)[15]中的數(shù)據(jù)集進(jìn)行比較。Deshpande等人利用弱監(jiān)督學(xué)習(xí)對(duì)未標(biāo)記數(shù)據(jù)生成偽標(biāo)簽,解決了所需文本缺乏標(biāo)記數(shù)據(jù)集的問題,從而提高了機(jī)器學(xué)習(xí)的準(zhǔn)確性,識(shí)別了相似、需要、或、異或等需求關(guān)系。通過本文方法對(duì)文獻(xiàn)[15]中使用的數(shù)據(jù)集進(jìn)行實(shí)體識(shí)別和關(guān)系提取,并根據(jù)依賴類型進(jìn)行依賴關(guān)系提取。實(shí)驗(yàn)結(jié)果見表6所列。
表6 本文方法與文獻(xiàn)[15]的對(duì)比結(jié)果
從表6可知,平均準(zhǔn)確率和召回率均在85%以上,說明該方法是有效的。雖然準(zhǔn)確率較高,但召回率普遍較低,這說明目前的方法在處理需求依賴方面存在一定的缺陷。主要原因是,在提取需求依賴實(shí)體時(shí),Glove的向量表示方法對(duì)一些不熟悉的需求詞無效,導(dǎo)致提取實(shí)體不準(zhǔn)確,出現(xiàn)一些錯(cuò)誤。
Atas等人使用TF-IDF方法利用n-gram、POS-tag和“require”作為三個(gè)向量特征;通過網(wǎng)格搜索為每個(gè)分類器識(shí)別出最適合的特征組合;將特征組合輸入到分類器(包括樸素貝葉斯、線性支持向量機(jī)、k近鄰和隨機(jī)森林),以自動(dòng)識(shí)別需求依賴中的“需求”關(guān)系。另外,通過本文方法對(duì)文獻(xiàn)[16]中使用的數(shù)據(jù)集進(jìn)行實(shí)體識(shí)別和關(guān)系提取。實(shí)驗(yàn)結(jié)果見表7所列。
表7 本文方法與文獻(xiàn)[5]的比較結(jié)果
從表7可知,準(zhǔn)確率和召回率均在85%以上,說明該方法是有效的。雖然具有較高的準(zhǔn)確性,但實(shí)驗(yàn)中的召回率較低,主要是因?yàn)樵趯?shí)驗(yàn)中使用的文本是從德國英語翻譯而來,有一些語義和句子不準(zhǔn)確,導(dǎo)致了一些語義錯(cuò)誤產(chǎn)生。
本文采用實(shí)體識(shí)別和實(shí)體關(guān)系提取的方法,實(shí)現(xiàn)了需求依賴關(guān)系的自動(dòng)提取。首先,利用BiLSTM-CRF模型識(shí)別需求文本的實(shí)體;然后,將識(shí)別出的需求實(shí)體輸入到CNN模型中進(jìn)行關(guān)系識(shí)別,提取需求依賴關(guān)系;最后,通過實(shí)驗(yàn)系統(tǒng)驗(yàn)證了該方法的有效性。本文提出的方法具有以下優(yōu)點(diǎn):(1)該方法在一定程度上解決了需求依賴文本缺乏標(biāo)注而難以自動(dòng)提取需求依賴關(guān)系的問題;(2)基于命名實(shí)體識(shí)別方法,解決了自然語言文本的模糊性問題;(3)建立需求實(shí)體關(guān)系,可以根據(jù)需求定義不同的關(guān)系,提取不同的需求依賴關(guān)系。
本文的方法雖然在一定程度上實(shí)現(xiàn)了需求依賴關(guān)系的自動(dòng)提取,但仍存在一些不足。需求實(shí)體和實(shí)體關(guān)系的構(gòu)建需要一定的人工成本。實(shí)驗(yàn)中使用的數(shù)據(jù)集越多,所需的人力資源就越多。今后將在這方面展開研究,改進(jìn)關(guān)系提取模型,進(jìn)一步提高實(shí)驗(yàn)的準(zhǔn)確性和效率。