• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于系統(tǒng)模型的用戶評論中非功能需求的自動分類

      2022-11-09 07:12:44李雪瑩王田路
      電子學(xué)報 2022年9期
      關(guān)鍵詞:機(jī)器向量分類

      李雪瑩,王田路,梁 鵬,王 翀

      (武漢大學(xué)計算機(jī)學(xué)院,湖北武漢 430072)

      1 引言

      隨著移動設(shè)備的迅速普及,移動應(yīng)用程序和應(yīng)用商店在人們?nèi)粘I钪械膽?yīng)用越來越廣泛.移動應(yīng)用庫中包含了大量的用戶評論,這些用戶評論包含用戶需求、系統(tǒng)故障以及使用體驗等信息,被認(rèn)為是獲取需求的重要來源.抽取、識別和分類存在于用戶評論中的需求,不僅可以幫助開發(fā)人員維護(hù)現(xiàn)有系統(tǒng),還能快速、準(zhǔn)確地定位新的用戶需求,從而添加現(xiàn)有系統(tǒng)缺乏的功能.然而,移動應(yīng)用商店每天都有海量的用戶評論產(chǎn)生,人工處理大量自然語言文本需要耗費(fèi)極大的人力和時間成本,從而使得從用戶評論中快速有效識別和分類需求成為挑戰(zhàn)問題.

      目前從用戶評論中獲取需求的相關(guān)研究主要關(guān)注軟件系統(tǒng)功能方面的需求.然而,最近的需求工程領(lǐng)域工業(yè)調(diào)研(Naming the Pain in Requirements Engineerin,NaPiRE)結(jié)果表明,“不清楚/無法度量”的非功能需求是涉眾在開發(fā)過程中最棘手的問題之一[1].用戶評論中的非功能需求與軟件質(zhì)量密切相關(guān),在軟件系統(tǒng)的開發(fā)和維護(hù)過程中起到關(guān)鍵作用.將非功能需求進(jìn)行分類,可以幫助開發(fā)者更好地理解系統(tǒng)的非功能需求并發(fā)現(xiàn)系統(tǒng)中存在的主要質(zhì)量問題.

      Broy[2,3]提出根據(jù)結(jié)構(gòu)化的系統(tǒng)模型對需求進(jìn)行分類.該方法根據(jù)是否描述了系統(tǒng)的行為屬性,將需求分為行為型需求和表示型需求.Eckhardt[4]認(rèn)為基于Broy提出的系統(tǒng)模型能夠?qū)π枨筮M(jìn)行有效的分類.該系統(tǒng)模型提供了明確清晰的系統(tǒng)概念,可以根據(jù)系統(tǒng)屬性精準(zhǔn)地指定需求類別,使需求的表示更加具體和準(zhǔn)確.

      基于上述研究背景,本文的主要關(guān)注點是:基于系統(tǒng)模型將移動應(yīng)用用戶評論中的非功能需求自動分類為行為型需求和表示型需求.Lu等人[5]基于ISO/IEC 25010(International Organization for Standardization/International Electrotechnical Commission)軟件質(zhì)量需求標(biāo)準(zhǔn)[6],已對4000條iBooks和WhatsApp用戶評論進(jìn)行了分類,最終得到了1278條非功能需求用戶評論.本文以上述1278條非功能需求用戶評論為數(shù)據(jù)集,從系統(tǒng)模型的角度出發(fā),通過人工標(biāo)注的方式將非功能需求分類為行為型需求和表示型需求.之后,分別使用了機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí)算法對人工標(biāo)記得到的數(shù)據(jù)集進(jìn)行自動分類.最后,評估和比較了機(jī)器學(xué)習(xí)模型和深度學(xué)習(xí)模型在自動分類非功能需求時的性能和時間消耗.本文的主要貢獻(xiàn)包括3個方面:(1)提供了基于系統(tǒng)模型將非功能需求標(biāo)記為“行為型需求”和“表示型需求”的實驗數(shù)據(jù)集[7],為這類研究提供了公共數(shù)據(jù);(2)將機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí)算法應(yīng)用于基于系統(tǒng)模型的非功能需求自動分類,分別得到了性能最優(yōu)的機(jī)器學(xué)習(xí)模型組合(SVM與TF-IDF組合)和深度學(xué)習(xí)模型組合(TextCNN(Text Convolutional Neural Networks)與Word2Vec組合);(3)評估和比較了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)在將非功能需求自動分類時的性能和時間消耗差異,為非功能需求的自動分類提供了最佳方法和使用建議.

      2 相關(guān)工作

      2.1 需求分類的方式

      軟件需求分類是需求工程領(lǐng)域的重要任務(wù)之一.最常見的分類方法是將需求分為功能需求和非功能需求.盡管很多研究采納了這種分類方式,但是因為“非功能需求”的定義較為模糊,對于什么是“非功能需求”以及如何獲取、記錄和驗證它們,需求工程界尚未達(dá)成共識[8].Glinz[8]指出,將需求分類為功能需求和非功能需求,將會導(dǎo)致定義問題、分類問題和表示問題.為了解決上述問題,作者提出應(yīng)該基于“關(guān)注點”將需求分為功能需求、性能需求、特定質(zhì)量需求和約束.此外,很多研究關(guān)注非功能需求的分類.最常用的非功能需求分類是ISO/IEC 25010[6]標(biāo)準(zhǔn)中的質(zhì)量模型定義的8大類質(zhì)量特性類別.然而該標(biāo)準(zhǔn)中對非功能需求進(jìn)行分類存在以下問題:(1)非功能需求通常沒有被量化,不易測試;(2)在產(chǎn)品規(guī)劃過程中沒有考慮非功能需求;(3)項目中主要關(guān)注功能需求,非功能需求通常不被記錄;(4)該分類過于抽象,難以為開發(fā)者的分類需求提供指導(dǎo)[4].盡管存在多種非功能需求的分類方式,但非功能需求沒有被集成到軟件開發(fā)過程中,且缺乏一種普遍接受的方式來提取、記錄和分析非功能需求[4].

      2.2 需求的自動分類方法

      還有一些研究使用自動化方法對需求進(jìn)行分類.Abad等人[9]使用決策樹(Decision Tree,DT)將需求分為功能需求和非功能需求.還使用LDA(Latent Dirichlet Allocation)、K-means、樸素貝葉斯(Na?ve Bayes,NB)等方法將非功能需求進(jìn)一步分類為可用性、可維護(hù)性、性能.結(jié)果表明,NB分類器在對非功能需求進(jìn)行分類時表現(xiàn)最好.Li等人[10]使用k-Nearest Neighbor、NB、SVM將需求分類為安全性、可靠性、性能、系統(tǒng)接口等子類別.結(jié)果表明,SVM在對需求進(jìn)行分類時表現(xiàn)最好.

      2.3 用戶評論分類

      目前有很多研究使用自動化方法對用戶評論進(jìn)行分類.Stanik等人[11]分別使用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方法將用戶評論分類為問題報告、詢問評論和無關(guān)評論.結(jié)果表明,機(jī)器學(xué)習(xí)模型與深度學(xué)習(xí)模型在分類用戶評論時性能相當(dāng).Lu等人[5]將用戶評論分為非功能需求(可靠性、可用性、可移植性和性能)、功能需求以及其 他.作 者 將BoW(Bag-of-Words)、TF-IDF(Term Frequency-Inverse Document Frequency)、CHI2(Chi Squared)和AUR-BoW(Augmented User Reviews-Bagof-Words)與NB、J48和Bagging結(jié)合對用戶評論進(jìn)行分類.其中,AUR-BoW針對訓(xùn)練集中的用戶評論,利用與評論相似的詞語對用戶評論進(jìn)行擴(kuò)展,將擴(kuò)展后的句子作為BoW的輸入.研究結(jié)果表明,AUR-BoW與Bagging結(jié)合起來的分類效果最佳.Jha等人[12]從用戶評論中提取非功能需求并將其分為可靠性、可用性、性能和可支持性,使用NB和SVM對非功能需求進(jìn)行分類.結(jié)果表明,SVM的性能優(yōu)于NB分類器的性能.

      在本文中,我們從系統(tǒng)模型的視角對非功能需求進(jìn)行分類,并在第3節(jié)對使用的技術(shù)進(jìn)行了詳細(xì)的介紹.

      3 相關(guān)理論和技術(shù)

      3.1 基于系統(tǒng)模型的非功能需求分類

      Broy[2,3]提出了一種基于結(jié)構(gòu)化的系統(tǒng)模型對需求進(jìn)行分類的方法.在系統(tǒng)模型中,系統(tǒng)由接口(Interface)、體系結(jié)構(gòu)(Architecture)和狀態(tài)(State)3個基本視圖構(gòu)成,并將接口行為作為主要概念.系統(tǒng)的行為屬性包括系統(tǒng)接口上的行為以及接口行為在體系結(jié)構(gòu)和狀態(tài)轉(zhuǎn)換方面的內(nèi)部行為(例如點擊系統(tǒng)交互界面的響應(yīng)時間),系統(tǒng)的非行為屬性則關(guān)注系統(tǒng)在語法構(gòu)成上和技術(shù)層面上的表示、描述、構(gòu)造、實現(xiàn)和執(zhí)行方式(例如系統(tǒng)實現(xiàn)要求使用的編程語言).基于系統(tǒng)模型的需求分類方法根據(jù)需求是否描述了系統(tǒng)的行為屬性,將其分為“行為型需求”和“表示型需求”.其中“行為型需求”不僅包含了傳統(tǒng)意義上的功能需求,還包含了描述系統(tǒng)行為的質(zhì)量需求;“表示型需求”包含從語法構(gòu)成和技術(shù)層面關(guān)注系統(tǒng)表示、描述、構(gòu)造、實現(xiàn)和執(zhí)行方式的質(zhì)量需求.圖1給出了基于系統(tǒng)模型對非功能需求用戶評論進(jìn)行分類的具體方法.

      圖1 基于系統(tǒng)模型的非功能需求分類

      基于系統(tǒng)模型將需求分類,為需求分類提供了新的視角,打破了實踐中功能需求與非功能需求的分離[4].從實踐角度來看,這種分類方法使得非功能需求可以像功能需求一樣被提取、分析和記錄.Eckhardt[4]基于Broy提出的分類模型對非功能需求進(jìn)行了分類.結(jié)果表明,大多數(shù)所謂的“非功能需求”實際上像功能需求一樣都描述了系統(tǒng)的行為,因此被定義為“非功能需求”并不合適.王田路等人發(fā)現(xiàn)[13],在用戶評論的非功能需求中超過70%的非功能需求描述了系統(tǒng)的行為,因此它們在本質(zhì)上不能被統(tǒng)一認(rèn)為是“非功能”的.

      為了解決傳統(tǒng)需求分類存在的問題,本文基于Broy提出的系統(tǒng)模型對需求進(jìn)行分類.本文首先基于傳統(tǒng)的需求分類模型從用戶評論中提取非功能需求評論.之后基于系統(tǒng)模型的需求分類方法,根據(jù)用戶評論是否描述了系統(tǒng)的行為屬性,將其分類為“行為型需求”和“表示型需求”,來幫助我們進(jìn)一步理解非功能需求的本質(zhì).需要說明的是,本文沒有關(guān)注用戶評論中的功能需求,原因是在基于系統(tǒng)模型的需求分類方式中,認(rèn)為功能需求屬于“行為型需求”.表1提供了用戶評論句子中“行為型需求”和“表示型需求”的示例(更多分類實例,可參見本文的實驗數(shù)據(jù)集[7]).在王田路等人前期人工標(biāo)注和分析工作的基礎(chǔ)上[13],本文結(jié)合機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域的分類算法實現(xiàn)了基于系統(tǒng)模型對用戶評論中非功能需求的自動分類.該自動分類方法可以輔助需求工程師和系統(tǒng)涉眾了解和分析用戶評論中非功能需求的本質(zhì)以及非功能需求所描述的系統(tǒng)屬性.

      表1 用戶評論中行為型需求和表示型需求的示例

      3.2 文本特征提取技術(shù)

      BoW被廣泛應(yīng)用在文本分類任務(wù)中.該模型根據(jù)語料庫所有文檔中的單詞構(gòu)造一個無序字典,將字詞在文檔中出現(xiàn)的頻率作為文檔特征.TF-IDF用來評估某一字詞對于某個文檔集合或語料庫中的一個文檔的重要程度.如果某字詞在一個文檔中頻率出現(xiàn),在其他文檔中很少出現(xiàn),則認(rèn)為此字詞具有很好的類別區(qū)分能力,適合用來分類.

      3.3 監(jiān)督式機(jī)器學(xué)習(xí)

      監(jiān)督式機(jī)器學(xué)習(xí)算法接受已知的輸入數(shù)據(jù)集合(訓(xùn)練集)和已知的對數(shù)據(jù)的響應(yīng)(輸出),然后訓(xùn)練一個模型,為新輸入數(shù)據(jù)的響應(yīng)生成合理的預(yù)測.Jha等人使用機(jī)器學(xué)習(xí)算法對需求進(jìn)行自動分類時[12],結(jié)果表明SVM的性能優(yōu)于NB.Abad[9]等人在使用LDA、Kmeans、NB等方法對非功能需求分類時,結(jié)果表明NB的表現(xiàn)最好.為了確定表現(xiàn)最好的分類器,我們選擇和比較了文本分類領(lǐng)域具有代表性的監(jiān)督式機(jī)器學(xué)習(xí)算法NB、LR、DT、RF和SVM.通過學(xué)習(xí)已標(biāo)記的訓(xùn)練集分別訓(xùn)練5種分類器模型,再將訓(xùn)練好的模型應(yīng)用到測試集中,以實現(xiàn)對非功能需求的自動分類.

      3.4 詞嵌入技術(shù)

      Word2Vec[14]是詞嵌入(Word Embedding)的方式之一.它使用無監(jiān)督方法,通過學(xué)習(xí)和訓(xùn)練文本,可以把對文本內(nèi)容的處理簡化為向量運(yùn)算,使用詞向量的方式表征詞語的語義信息.使用Word2Vec工具訓(xùn)練得到的詞向量可以有效度量詞語與詞語之間的相似性.FastText[15]用于從大規(guī)模語料庫中學(xué)習(xí)單詞的高維向量表示.Word2Vec沒有考慮單詞的內(nèi)部結(jié)構(gòu),直接學(xué)習(xí)整個單詞的詞向量.而FastText首先計算子串的詞向量,最后將單詞所有子串的詞向量組合得到單詞的詞向量.因此FastText能夠識別未出現(xiàn)在語料庫中的單詞.

      3.5 神經(jīng)網(wǎng)絡(luò)模型

      通過多層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)數(shù)據(jù)的特征,深度學(xué)習(xí)將數(shù)據(jù)轉(zhuǎn)換為有利于分類任務(wù)的更高效的數(shù)字表示形式.卷積神經(jīng)網(wǎng)絡(luò)(Conventional Neural Network,CNN)是深度學(xué)習(xí)領(lǐng)域代表性的算法模型,CNN由輸入層、卷積層、激活函數(shù)、池化層和全連接層組成,通過反向傳播算法進(jìn)行參數(shù)優(yōu)化.TextCNN模型[16]是代表性的CNN網(wǎng)絡(luò)結(jié)構(gòu),與傳統(tǒng)的CNN相比,TextCNN在結(jié)構(gòu)上無明顯變化.其流程是:先將文本分詞,通過詞嵌入(Word Embedding)得到詞向量,將詞向量進(jìn)行卷積、池化操作,最后將輸出外接到Softmax層做n分類.RCNN模型[17]將單詞的上下文信息和單詞本身的向量進(jìn)行整合以得到該單詞的詞向量.其流程是:首先通過詞嵌入得到詞向量.然后使用一個具有循環(huán)結(jié)構(gòu)的隱藏層捕獲單詞的上下文信息,重新計算單詞向量.再對詞向量進(jìn)行池化操作,以捕獲文本的關(guān)鍵單詞.最后將輸出外接到Softmax層做n分類.CharCNN[18]模型將文本作為一種原始字符級信號來處理.其流程是:首先將一系列編碼字符作為輸入,使用one-hot編碼對字符進(jìn)行向量化操作.將文本用字符向量表示,再用字符向量得到文檔向量.之后對文檔向量進(jìn)行卷積、池化操作后,將輸出外接到全連接層做n分類.本文分別使用Word2Vec和FastText模型將單詞轉(zhuǎn)化為詞向量,作為TextCNN和RCNN模型的輸入.CharCNN本身基于字符計算向量,因此無需以Word2Vec和FastText詞向量作為輸入.

      4 研究設(shè)計

      4.1 研究目標(biāo)與研究問題

      本文的研究目標(biāo)是:基于系統(tǒng)模型,將移動應(yīng)用用戶評論中的非功能需求自動分類為行為型需求和表示型需求.為了實現(xiàn)該目標(biāo),我們使用了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法,并提出了以下5個研究問題(Research Question,RQ).

      RQ1:機(jī)器學(xué)習(xí)模型中,在將用戶評論中的非功能需求自動分類為行為型需求和表示型需求時,哪種特征提取技術(shù)(TF-IDF、BoW)表現(xiàn)更好?

      在自動分類任務(wù)中,文本通常被表示為數(shù)字向量.不同的特征提取技術(shù)關(guān)注的重點和使用的算法通常不同,因此可能導(dǎo)致不同的分類效果.本文使用BoW和TF-IDF來提取文本特征.此RQ的目的是找到適合本文自動分類任務(wù)的特征提取技術(shù).

      RQ2:在將用戶評論中的非功能需求自動分類為行為型需求和表示型需求時,哪種機(jī)器學(xué)習(xí)方法(NB、LR、DT、RF、SVM)性能最好?

      不同的分類方法在相同的分類任務(wù)中,可能導(dǎo)致不同的分類性能.不同的機(jī)器學(xué)習(xí)算法適用于不同的分類場景.本文使用5種常用的分類器進(jìn)行實驗.此RQ的目的是找到在本文的自動分類任務(wù)中,獲得最佳性能的分類器.

      RQ3:深度學(xué)習(xí)模型中,在將用戶評論中的非功能需求自動分類為行為型需求和表示型需求時,哪種詞嵌入模型(Word2Vec、FastText)表現(xiàn)更好?

      深度學(xué)習(xí)模型的輸入為詞嵌入或字符嵌入.不同詞嵌入技術(shù)在計算詞向量時依據(jù)的算法是有差異的.Word2Vec和FastText被廣泛應(yīng)用于自然語言處理任務(wù)中.此RQ的目的是找到適合本文自動分類任務(wù)的詞向量技術(shù).

      RQ4:在將用戶評論中的非功能需求自動分類為行為型需求和表示型需求時,哪種深度學(xué)習(xí)模型(TextCNN、RCNN、CharCNN)表現(xiàn)最好?

      不同的深度學(xué)習(xí)模型結(jié)構(gòu)有所差異,可能導(dǎo)致不同的分類性能.TextCNN和RCNN模型基于單詞表示文本,CharCNN模型利用字符表示文本.本文使用3種流行的深度學(xué)習(xí)算法進(jìn)行實驗.此RQ的目的是,找到在本文的自動分類任務(wù)中,獲得最佳性能的深度學(xué)習(xí)模型.

      RQ5:在將用戶評論中的非功能需求自動分類為行為型需求和表示型需求時,從性能和時間消耗2個維度比較機(jī)器學(xué)習(xí)模型與深度學(xué)習(xí)模型,哪種模型表現(xiàn)更好?

      深度學(xué)習(xí)模型已被應(yīng)用于自然語言處理領(lǐng)域,在文本分類任務(wù)中都表現(xiàn)出了非常好的性能.本文使用TextCNN和RCNN模型以及CharCNN模型自動將非功能需求進(jìn)行分類.此RQ的目的是,從性能和時間消耗2個維度綜合評估和比較機(jī)器學(xué)習(xí)模型和深度學(xué)習(xí)模型在自動分類非功能需求時的表現(xiàn)差異.

      研究問題(RQs)間的關(guān)聯(lián):RQ1和RQ2關(guān)注機(jī)器學(xué)習(xí)算法中,不同階段使用不同技術(shù)導(dǎo)致的分類結(jié)果的性能差異.RQ1比較不同的特征提取技術(shù)的性能差異.RQ2則重在關(guān)注不同分類器的性能差異.RQ3和RQ4關(guān)注深度學(xué)習(xí)算法中,不同階段使用不同技術(shù)所導(dǎo)致的分類結(jié)果的性能差異.RQ3比較不同詞向量模型初始化詞嵌入層時的性能差異.RQ4則關(guān)注不同深度學(xué)習(xí)模型本身的性能差異.RQ5從性能和時間消耗2個維度綜合比較了機(jī)器學(xué)習(xí)模型和深度學(xué)習(xí)模型在分類非功能需求時的性能差異.

      4.2 數(shù)據(jù)收集

      本文所用的數(shù)據(jù)來源于App Store和Google Play中閱讀類和通訊類的2個移動應(yīng)用程序iBooks和WhatsApp.選擇這2個移動應(yīng)用程序的原因有以下2點:(1)這2個移動應(yīng)用擁有大量的活躍用戶,且其中的用戶評論規(guī)模非常龐大,可以為本研究提供豐富的數(shù)據(jù);(2)這2個移動應(yīng)用主要用于在線閱讀和信息交流,沒有涉及比較專業(yè)的領(lǐng)域,涵蓋的用戶類型較為廣泛,因此在對其用戶評論標(biāo)記時不需要研究人員具備某些專業(yè)領(lǐng)域的知識,從而使標(biāo)記得到的分類結(jié)果更加可靠.

      我們在之前的工作[6]中收集了iBooks和WhatsApp中的用戶評論,將其分割為單個句子.隨后從每個移動應(yīng)用中隨機(jī)選取2000條評論,基于ISO/IEC 25010軟件質(zhì)量需求標(biāo)準(zhǔn)將其人工標(biāo)注為功能需求和非功能需求.最終,識別了1278條“非功能需求”用戶評論,這1278條“非功能需求”用戶評論將作為本文的數(shù)據(jù)集.

      本文將1278條非功能需求進(jìn)行人工標(biāo)記.具體分為以下2個步驟:(1)預(yù)標(biāo)記.從1278條評論中隨機(jī)抽取50條作為預(yù)實驗數(shù)據(jù),由3位作者分別標(biāo)記這些數(shù)據(jù),將50條評論分類為行為型需求和表示型需求,最后3位作者一起討論和解決預(yù)標(biāo)記過程中產(chǎn)生的分歧.該過程的目的是使3位作者對基于系統(tǒng)模型進(jìn)行需求分類的理解達(dá)成共識;(2)正式標(biāo)記.在對本文分類任務(wù)達(dá)成一致理解后,由第1、2作者分別獨(dú)立標(biāo)記其余的1228條非功能需求用戶評論.使用Cohen’s Kappa系數(shù)[19]計算2位作者分類結(jié)果的一致性,該值約為0.86,表明2人在對用戶評論的非功能需求進(jìn)行分類標(biāo)記時的結(jié)果比較一致.最后,由第3作者瀏覽前2位作者的標(biāo)記結(jié)果,3位作者一起討論和解決標(biāo)記結(jié)果中存在的分歧,就數(shù)據(jù)集的標(biāo)記結(jié)果達(dá)成一致.

      最終,我們在1278條非功能需求中識別了899條行為型需求和379條表示型需求.我們將數(shù)據(jù)集劃分為訓(xùn)練集(1022條,占80%)、驗證集(128條,占10%)和測試集(128條,占10%).本文的數(shù)據(jù)集已在線提供[7].

      4.3 實驗步驟

      本文使用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)對非功能需求進(jìn)行分類.圖2和圖3分別展示了使用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法進(jìn)行非功能需求分類的過程及每個步驟所使用的技術(shù).在深度學(xué)習(xí)算法中,由于Word2Vec和FastText在訓(xùn)練詞向量時,不需要有標(biāo)簽的數(shù)據(jù)集,因此我們將收集到的所有用戶評論(來自iBooks的6696條原始用戶評論和來自WhatsApp的4400條原始用戶評論)作為語料庫訓(xùn)練Word2Vec和FastText詞向量.在訓(xùn)練字符向量時,我們基于文獻(xiàn)[18]提供的69個字符來計算one-hot編碼,以此得到字符向量.本文根據(jù)經(jīng)驗選取常用的數(shù)值以確定TextCNN、RCNN和CharCNN模型的主要參數(shù).3個模型的主要參數(shù)分別如表2、表3和表4所示.

      表4 CharCNN模型的主要超參數(shù)

      圖2 使用機(jī)器學(xué)習(xí)算法進(jìn)行非功能需求自動分類的過程

      圖3 使用深度學(xué)習(xí)算法進(jìn)行非功能需求自動分類的過程

      表2 TextCNN模型的主要超參數(shù)

      表3 RCNN模型的主要超參數(shù)

      我們將行為型需求類別作為正類,表示型需求類別作為負(fù)類.因此,精確率(Precision)指的是使用本文的分類模型得到的行為需求類別的用戶評論中真正屬于行為型需求類別的比例.召回率(Recall)指的是使用本文的分類模型得到的真正屬于行為型需求類別的非功能需求,占數(shù)據(jù)集中行為型需求類別的非功能需求的比例.F1-score是精確率和召回率的加權(quán)調(diào)和平均值,當(dāng)F1-score值較高時,一般說明分類模型的分類效果較好.式(1)~(3)分別給出了精確率、召回率和F1-score的計算公式.

      其中,TP(True Positive)表示被分類模型標(biāo)記為行為型需求的非功能需求中,實際屬于行為型需求的評論數(shù)量.FP(False Positive)為被標(biāo)記為行為型需求的非功能需求中,實際不屬于行為型需求的評論數(shù)量.FN(False Negative)表示被分類模型標(biāo)記為表示型需求的非功能需求中,實際不屬于表示型需求的評論數(shù)量.

      4.4 實驗環(huán)境

      實驗環(huán)境配置為Intel(R)Core(TM)i5-7200U CPU以及8 GB RAM的-臺式計算機(jī),運(yùn)行Windows 10(64位)操作系統(tǒng).本文使用NLTK工具(版本號3.4.5)進(jìn)行分詞,并刪除了長度小于等于3的單詞.在機(jī)器學(xué)習(xí)算法中使用scikit-learn工具(版本號0.22.1)提供的特征提取技術(shù)和分類器算法(默認(rèn)參數(shù))進(jìn)行實驗.在深度學(xué)習(xí)算法中使用gensim庫(版本號3.8.1)提供的詞嵌入模型訓(xùn)練詞向量,并使用Tensorflow框架(版本號1.14.0)構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型.本文使用的NLTK工具、scikit-learn工具、gemsim庫以及Tensorflow框架均基于Python語言.

      5 結(jié)果與分析

      為了回答3.1節(jié)中提出的研究問題,我們計算了由機(jī)器學(xué)習(xí)模型(如表5所示)和深度學(xué)習(xí)模型(如表6所示)處理測試集后得到的精確率、召回率和F1-score.

      表5 使用機(jī)器學(xué)習(xí)模型對用戶評論中的非功能需求進(jìn)行分類的結(jié)果

      表6 使用深度學(xué)習(xí)模型對用戶評論中的非功能需求進(jìn)行分類的結(jié)果

      RQ1:我們計算和比較了5種機(jī)器學(xué)習(xí)算法分別與TF-IDF和BoW結(jié)合時得到的F1-score值,結(jié)果如圖4所示.結(jié)果顯示,除了SVM分類器外,其他所有分類器在與BoW結(jié)合時得到的F1-score值,均比與TF-IDF結(jié)合得到的F1-score值高.SVM分類器與TF-IDF組合得到了最高的F1-score,但僅比與BoW組合得到的F1-score高0.05.

      圖4 不同機(jī)器學(xué)習(xí)算法與TF-IDF和BoW組合得到的F1-score值的對比結(jié)果

      RQ1結(jié)論:整體上可以認(rèn)為,在將用戶評論中的非功能需求自動分類為表示型需求和行為型需求時,簡單的BoW技術(shù)比TF-IDF技術(shù)表現(xiàn)更好.這表明,在需求分類任務(wù)的特征提取階段,研究人員應(yīng)該優(yōu)先選擇表現(xiàn)更好的BoW技術(shù).但是仍然需要關(guān)注使用TF-IDF技術(shù)是否能夠得到更好的性能.

      RQ2:我們計算和比較了5種機(jī)器學(xué)習(xí)模型自動分類后得到的精確率、召回率和F1-score,結(jié)果如表5所示.結(jié)果顯示,所有分類器都有較好的分類性能,精確率、召回率和F1-score值幾乎都在0.9以上(DT與TFIDF組合的結(jié)果除外).圖5顯示,5種分類器與TF-IDF組合時,SVM獲得了最佳精確率(0.941)、召回率(0.990)和F1-score(0.965).DT獲 得 了 最 低 召 回 率(0.867)和F1-score(0.899).這表明,在需求分類自動分類任務(wù)中,使用TF-IDF特征提取技術(shù)時,應(yīng)優(yōu)先考慮SVM分類器.圖6顯示,5種分類器與BoW組合時,SVM和LR獲得了最佳F1-score(0.960).SVM獲得了最佳召回率(0.980),且與LR(0.979)僅相差0.01.而NB獲得了最高的精確率(0.989).圖6與圖5中的結(jié)果相似的是,DT獲得了最低的F1-score(0.944).這表明,在需求自動分類任務(wù)中,在使用BoW特征提取技術(shù),應(yīng)優(yōu)先考慮SVM和LR分類器.同時也應(yīng)關(guān)注使用NB是否能夠得到更好的性能.

      圖5 不同機(jī)器學(xué)習(xí)算法與TF-IDF組合時得到的精確率、召回率和F1-score值的對比結(jié)果

      圖6 不同機(jī)器學(xué)習(xí)算法與BoW組合時得到的精確率、召回率和F1-score值的對比結(jié)果

      RQ2結(jié)論:整體上看,SVM與TF-IDF組合得到了最佳召回率(0.990)和最佳F1-score(0.965),而NB與BoW組合獲得了最高精確率(0.989).此外,不管是與TFIDF還是與BoW組合,DT分類器都得到了最低F1-score.因此,我們認(rèn)為在將用戶評論中的非功能需求分類為表示型需求和行為型需求時,SVM分類器整體性能最好.

      RQ3:我們計算了TextCNN、RCNN分別與2種詞向量組合后得到的F1-score值,結(jié)果如圖7所示.實驗結(jié)果顯示,無論是TextCNN還是RCNN,與Word2Vec組合獲得F1-score值均高于與FastText組合得到的F1-score.

      圖7 不同深度學(xué)習(xí)算法與Word2Vec和FastText組合得到的F1-score值的對比結(jié)果

      RQ3結(jié)論:整體上來看,在將非功能需求分類為表示型需求和行為型需求時,Word2Vec模型比FastText模型表現(xiàn)更好.

      RQ4:我們計算了TextCNN、RCNN模型分別與Word2Vec、FastText組合,以及CharCNN模型的精確率、召回率和F1-score,結(jié)果如表6所示.圖8顯示了TextCNN和RCNN分別與Word2Vec組合和CharCNN 3個模型的精確率、召回率和F1-score值的對比結(jié)果.結(jié)果顯示,TextCNN與Word2Vec組合的精確率(0.950)、召回率(0.969)和F1-score(0.959)均高于其他2個深度學(xué)習(xí)模型.圖9顯示了TextCNN和RCNN分別與Fast-Text組合和CharCNN 3個模型得到的精確率、召回率和F1-score值的對比結(jié)果.結(jié)果顯示,TextCNN與FastText組合的精確率(0.989)和F1-score(0.941)高于其他2個模型,RCNN與FastText組合獲得了最高召回率(1.000).

      RQ4結(jié)論:整體上看,TextCNN與FastText組合獲得了最高精確率(0.989),RCNN與FastText組合獲得了最高召回率(1.000),TextCNN與Word2Vec組合獲得了最高F1-score(0.959).盡管RCNN與FastText組合獲得了最高的召回率(1.000),卻是以所有模型中最低的精確率(0.766)為代價的.結(jié)合圖8和圖9,我們認(rèn)為在將非功能需求分類為表示型需求和行為型需求時,TextCNN模型整體性能最好.但也應(yīng)該注意到,當(dāng)關(guān)注召回率時,RCNN與FastText組合是非常不錯的選擇.

      圖8 TextCNN與Word2Vec組 合、RCNN與Word2Vec組 合、CharCNN得到的精確率、召回率和F1-score值的對比結(jié)果

      圖9 TextCNN與FastText組合、RCNN與FastText組合、CharCNN得到的精確率、召回率和F1-score值的對比結(jié)果

      RQ5:我們比較了2類模型中獲得最高F1-score組合的精確率、召回率和F1-score,結(jié)果如圖10所示.結(jié)果顯示,SVM與TF-IDF的召回率(0.990)和F1-score(0.965)值 比TextCNN與Word2Vec組 合 的 值 高.TextCNN與Word2Vec得到的精確率(0.950)比SVM與TF-IDF得到的精確率高(0.941).很多研究表明,相較于機(jī)器學(xué)習(xí)模型,CNN有更好的分類效果.根據(jù)我們的比較結(jié)果,機(jī)器學(xué)習(xí)模型得到了較高的召回率和F1-score.深度學(xué)習(xí)模型的分類效果沒有明顯的優(yōu)勢,可能的原因有:(1)本文實驗的數(shù)據(jù)集規(guī)模較小;(2)深度學(xué)習(xí)模型存在通過進(jìn)一步調(diào)節(jié)參數(shù)來達(dá)到更好分類效果的可能性.

      圖10 SVM與TF-IDF組合、TextCNN與Word2Vec組合得到的精確率、召回率和F1-score值的對比結(jié)果

      我們還計算和比較了所有機(jī)器學(xué)習(xí)組合與深度學(xué)習(xí)組合的時間消耗(建模耗時和模型預(yù)測耗時),結(jié)果如表7、表8和表9所示.其中,機(jī)器學(xué)習(xí)的建模耗時為完成圖2中步驟1~4所需的時間,深度學(xué)習(xí)建模耗時為完成圖3中步驟1~3所需的時間.模型預(yù)測耗時分別為完成圖2和圖3中最后一個步驟所需的時間.在機(jī)器學(xué)習(xí)算法中,建模耗時最長的是RF與BoW組合(994 ms),建模耗時最短的是DT與BoW組合(514 ms).所有機(jī)器學(xué)習(xí)算法的模型預(yù)測耗時不超過20 ms.我們注意到,機(jī)器學(xué)習(xí)算法在與TF-IDF組合時的建模耗時普遍比與BoW組合時的建模耗時長(RF除外),而模型預(yù)測耗時幾乎一致.可能的原因是計算BoW向量比計算TF-IDF向量簡單,同時也從時間消耗角度驗證了RQ1的回答“簡單的BoW技術(shù)比TF-IDF技術(shù)表現(xiàn)更好”.

      表7 機(jī)器學(xué)習(xí)算法的建模耗時(Bt)以及模型預(yù)測耗時(Pt) ms

      表8 深度學(xué)習(xí)算法(TextCNN、RCNN)的建模耗時(Bt)以及模型預(yù)測耗時(Pt) ms

      表9 深度學(xué)習(xí)算法(CharCNN)的建模耗時(Bt)以及模型預(yù)測耗時(Pt)ms

      在深度學(xué)習(xí)算法中,CharCNN模型的建模耗時最長(514391 ms)且模型預(yù)測耗時也最長(85078 ms).TextCNN和RCNN與FastText組合 的 建模 耗時,比 與Word2Vec組合耗時長了約40000到50000 ms.可能的原因是FastText詞向量考慮了單詞的內(nèi)部結(jié)構(gòu),而Word2Vec計算1個完整單詞的詞向量.但在模型測試時,TextCNN和RCNN與FastText組合的預(yù)測耗時,比與Word2Vec組合耗時短100到10000 ms.TextCNN分別與Word2Vec、FastText組合的建模耗時是所有深度學(xué)習(xí)模型中耗時最短的,模型預(yù)測耗時也是最短的.可能的原因是TextCNN直接使用了預(yù)訓(xùn)練的詞向量進(jìn)行建模,RCNN在預(yù)訓(xùn)練詞向量的基礎(chǔ)上重新計算了詞向量,CharCNN則基于文本字符計算文本向量,因此這2個模型比TextCNN模型消耗更多的建模時間.這從時間消耗角度驗證了RQ4的回答“深度學(xué)習(xí)模型中,TextCNN模型整體性能最好”.

      在時間消耗方面,深度學(xué)習(xí)模型耗時較長,主要有2個原因:(1)在特征提取階段,機(jī)器學(xué)習(xí)模型通過1278條用戶評論計算向量值,而深度學(xué)習(xí)模型則通過11096條用戶評論計算詞向量和字符向量;(2)深度學(xué)習(xí)模型需要學(xué)習(xí)的參數(shù)比機(jī)器學(xué)習(xí)模型要多,因此建模耗時和模型預(yù)測耗時比機(jī)器學(xué)習(xí)模型耗時要長.

      RQ5結(jié)論:整體上,機(jī)器學(xué)習(xí)模型完成1次分類的時間僅需500~1000 ms,深度學(xué)習(xí)模型耗時100000~200000 ms,約為機(jī)器學(xué)習(xí)模型耗時的200倍.無論在召回率、F1-score的比較上,還是在時間消耗的比較上,機(jī)器學(xué)習(xí)模型都優(yōu)于深度學(xué)習(xí)模型,尤其是2者在耗時上的巨大差距.因此我們認(rèn)為,在將非功能需求分類為表示型需求和行為型需求時,機(jī)器學(xué)習(xí)模型比深度學(xué)習(xí)模型表現(xiàn)更好,并且在需求文本分類的分類應(yīng)用中應(yīng)首先嘗試機(jī)器學(xué)習(xí)模型,在性能相當(dāng)?shù)那闆r下,應(yīng)優(yōu)先使用耗時更少的機(jī)器學(xué)習(xí)模型,在使用深度學(xué)習(xí)模型時,需要從性能和時間消耗維度對其進(jìn)行整體收益評估.

      6 結(jié)果的效度與局限性

      本文依據(jù)文獻(xiàn)[20]中的效度分析準(zhǔn)則,從構(gòu)造效度、內(nèi)部效度、外部效度和可靠性討論對本研究結(jié)論有效性的可能威脅,并介紹我們?yōu)榫徑膺@些威脅所采取的措施.

      6.1 構(gòu)造效度分析

      構(gòu)造效度關(guān)注理論構(gòu)造是否能被正確地解釋和度量.本文的潛在威脅是人工分類過程中決定每條非功能需求類別時的個人主觀性.為了減少這類威脅,人工分類的過程由3人共同完成(軟件工程領(lǐng)域碩士生和教師),在正式分類之前,3人首先隨機(jī)選取了50條用戶評論句子進(jìn)行預(yù)分類,對于存在分歧意見的用戶評論句子,3人通過討論最終達(dá)成一致意見.正式分類由參與預(yù)分類的2名碩士生先單獨(dú)進(jìn)行分類標(biāo)記,有不同分類意見時與第3人(教師)討論,并最終在分類結(jié)果上達(dá)成一致.另一項潛在威脅是基于本研究所使用的用戶評論是否能夠得出合理的結(jié)論,為了減少該威脅,我們通過隨機(jī)抽取的方式從移動應(yīng)用中選取用戶評論樣本數(shù)據(jù)作為本研究的數(shù)據(jù)集.

      6.2 內(nèi)部效度分析

      內(nèi)部效度關(guān)注研究結(jié)果是否可以由本研究數(shù)據(jù)得出,以及是否有其它影響結(jié)果的因素未考慮到.本文的內(nèi)部效度威脅是機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí)算法是否存在過擬合或欠擬合.為了減輕這種威脅的影響,我們使用2種特征提取技術(shù)與5種機(jī)器學(xué)習(xí)算法進(jìn)行組合,并使用2種基于詞嵌入的深度學(xué)習(xí)算法和1種基于字符向量的深度學(xué)習(xí)算法,最后評估和對比了所有組合的性能和時間消耗.在當(dāng)前的數(shù)據(jù)規(guī)模下,結(jié)果表明,在對非功能需求分類進(jìn)行分類時,機(jī)器學(xué)習(xí)模型比深度學(xué)習(xí)模型在性能和時間消耗方面表現(xiàn)更好.但不能確定在數(shù)據(jù)集規(guī)模更大時,是否仍能得到與本文一致的結(jié)果,需要通過進(jìn)一步實驗來研究.

      6.3 外部效度分析

      外部效度指研究結(jié)果在多大程度上可適用于其它數(shù)據(jù)集和環(huán)境.本文對2個常用的移動應(yīng)用的用戶評論進(jìn)行非功能需求分類,通過應(yīng)用類別和平臺環(huán)境的多樣性來減少研究數(shù)據(jù)對外部效度產(chǎn)生的威脅.但是必須承認(rèn)本研究中采用的移動應(yīng)用類別數(shù)量有限,因此不能確定在使用其它類別應(yīng)用程序(例如教育類)的用戶評論進(jìn)行非功能需求分類時,結(jié)果是否一致.此外,本文數(shù)據(jù)來源于國外的移動應(yīng)用的英文用戶評論,因此尚無法保證在對中文的用戶評論使用相同的研究方法時能夠得到相同的研究結(jié)果.

      6.4 可靠性分析

      可靠性指如果其他研究人員重復(fù)本研究是否會得到相同或相似的結(jié)果.本文的人工分類標(biāo)記過程由3名軟件工程領(lǐng)域研究人員共同完成,并明確了分類標(biāo)記過程,以盡可能地減少個人偏見對分類結(jié)果的影響.此外,本文提供了研究使用的數(shù)據(jù)集[7],說明了實驗步驟和參數(shù)設(shè)置,給出了實驗環(huán)境,供其他研究人員使用和驗證本研究工作,提升了本研究結(jié)果的可重復(fù)性.需要說明的是,本文基于國外的移動應(yīng)用的用戶評論進(jìn)行研究,研究結(jié)果尚未與應(yīng)用的開發(fā)團(tuán)隊進(jìn)行確認(rèn),因此尚無法確定研究結(jié)果對這2個應(yīng)用未來的更新迭代所產(chǎn)生的影響.

      7 總結(jié)

      本文根據(jù)Broy[2]等人提出的系統(tǒng)模型,將iBooks和WhatsApp 2個應(yīng)用程序的1278條非功能需求用戶評論人工標(biāo)注為行為型需求和表示型需求.并使用了機(jī)器學(xué)習(xí)與深度學(xué)習(xí)算法進(jìn)行分類.在使用機(jī)器學(xué)習(xí)進(jìn)行分類時,將TF-IDF和BoW技術(shù)分別與NB、LR、DT、RF以及SVM進(jìn)行組合.在使用深度學(xué)習(xí)進(jìn)行分類時,將Word2Vec、FastText分別與TextCNN、RCNN相結(jié)合,并構(gòu)建和訓(xùn)練了基于字符向量的CharCNN深度學(xué)習(xí)模型.我們使用上述所有組合將1278條非功能需求分類為行為型需求和表示型需求,最后對所有組合的分類性能和時間消耗進(jìn)行評估,其中在性能方面我們計算和比較了所有組合的精確率、召回率和F1-score.結(jié)果表明,在將非功能需求分類為行為型需求和表示型需求時(其中第1到第5點分別對應(yīng)RQ1到RQ5的結(jié)果,第6點為綜合結(jié)果):

      (1)在機(jī)器學(xué)習(xí)模型中,簡單的BoW技術(shù)比TFIDF技術(shù)在特征提取方面表現(xiàn)更好.

      (2)在機(jī)器學(xué)習(xí)模型中,SVM分類器的整體性能最好.

      (3)在深度學(xué)習(xí)模型中,Word2Vec模型比FastText模型在計算詞向量方面表現(xiàn)更好.

      (4)在深度學(xué)習(xí)模型中,TextCNN的整體性能最好.

      (5)在性能和時間消耗2個維度上,機(jī)器學(xué)習(xí)模型比深度學(xué)習(xí)模型表現(xiàn)更好.

      (6)TF-IDF與SVM組 合 得 到 了 最 佳F1-score(0.965),BoW與NB組合、FastText與TextCNN組合獲得了最高精確率(0.989),F(xiàn)astText與RCNN組合獲得了最高召回率(1.000).

      基于本文的研究結(jié)果,我們計劃從以下5個方面來改進(jìn)我們的工作:

      (1)本文機(jī)器學(xué)習(xí)模型使用了默認(rèn)參數(shù),深度學(xué)習(xí)模型根據(jù)經(jīng)驗選取了常用的數(shù)值以確定主要參數(shù),未來我們計劃通過實驗來確定這些模型的最佳參數(shù),并將嘗試更多其它主流的分類算法進(jìn)行非功能需求的自動分類實驗,如DCNN(Dynamic Convolutional Neural Network)、HAN(Hierarchical Attention Networks)等.

      (2)本研究數(shù)據(jù)集來自應(yīng)用商店中2個類別的應(yīng)用程序,為了提高研究結(jié)果的通用性以及自動分類效果的外部效度,我們擬在數(shù)據(jù)集中增加移動應(yīng)用類別的數(shù)量.

      (3)本研究數(shù)據(jù)集規(guī)模可能會影響自動分類算法的訓(xùn)練效果,進(jìn)一步影響分類效果.我們計劃標(biāo)記更多數(shù)量的移動應(yīng)用用戶評論句子,以減少對外部效度的威脅.

      (4)將本文的研究結(jié)果與iBooks和WhatsApp應(yīng)用的開發(fā)團(tuán)隊進(jìn)行確認(rèn),進(jìn)一步提升本文研究結(jié)果的可靠性.

      (5)本文基于兩個國外的移動應(yīng)用的英文用戶評論進(jìn)行非功能需求自動分類的研究,我們也計劃利用國內(nèi)開發(fā)的移動應(yīng)用的中文用戶評論進(jìn)行研究,提升研究結(jié)果的通用性、自動分類效果的外部效度以及研究結(jié)果的可靠性.

      猜你喜歡
      機(jī)器向量分類
      機(jī)器狗
      向量的分解
      機(jī)器狗
      分類算一算
      聚焦“向量與三角”創(chuàng)新題
      分類討論求坐標(biāo)
      未來機(jī)器城
      電影(2018年8期)2018-09-21 08:00:06
      數(shù)據(jù)分析中的分類討論
      教你一招:數(shù)的分類
      向量垂直在解析幾何中的應(yīng)用
      霍城县| 新平| 丰县| 宜君县| 大理市| 平遥县| 会宁县| 湘西| 娄底市| 武平县| 砚山县| 琼海市| 象州县| 辽阳县| 达尔| 利辛县| 岗巴县| 江城| 武穴市| 贡嘎县| 苍南县| 北辰区| 葵青区| 日喀则市| 杭锦后旗| 天门市| 井研县| 怀仁县| 广元市| 普安县| 余姚市| 盐边县| 清徐县| 湖北省| 哈巴河县| 饶阳县| 宝丰县| 高州市| 启东市| 集安市| 安吉县|