• 
    

    
    

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

      ?

      軟件開發(fā)中的情感狀態(tài)分析研究綜述

      2020-05-14 07:45:00趙海燕徐英杰陳慶奎
      關(guān)鍵詞:開發(fā)人員工具情緒

      趙海燕,徐英杰,陳慶奎,曹 健

      1(上海市現(xiàn)代光學(xué)系統(tǒng)重點實驗室,光學(xué)儀器與系統(tǒng)教育部工程研究中心,上海理工大學(xué)光電信息與計算機(jī)工程學(xué)院,上海 200093)

      2(上海交通大學(xué) 計算機(jī)科學(xué)與技術(shù)系,上海 200030)

      E-mail:750960480@qq.com

      1 引 言

      目前許多的研究都證實了在軟件開發(fā)領(lǐng)域,開發(fā)人員可以從中體會到各種各樣的情緒[1-4].情感、情緒是復(fù)雜心理活動的結(jié)果.心理學(xué)和神經(jīng)科學(xué)的許多研究表明,情緒與許多認(rèn)知過程密切相關(guān).例如,Pessoa的研究表明[5],情感和認(rèn)知過程使用了許多相同的基本神經(jīng)回路,它們之間存在著相互作用.而由于軟件開發(fā)本質(zhì)上是一種復(fù)雜的認(rèn)知行為同時也是一種社交活動,開發(fā)人員需要互相合作,協(xié)同工作[6].因此在軟件開發(fā)這樣的任務(wù)中,情緒會影響工作表現(xiàn),對于生產(chǎn)力,創(chuàng)造力,軟件質(zhì)量,團(tuán)隊關(guān)系和工作滿意度會產(chǎn)生較大的影響[7-9].

      近年來針對軟件開發(fā)中的情感的研究越來越多,學(xué)術(shù)界每年召開SEmotion WorkShop學(xué)術(shù)研討會專門探討關(guān)于軟件開發(fā)情感的研究,而在Mining Software Repositories Working Conference上也有許多關(guān)于軟件社區(qū)中情感的研究.

      關(guān)于軟件開發(fā)中情感的分析,目前有些情感分析任務(wù)采用的是調(diào)查訪談的方法[10-13],這些研究針對于在現(xiàn)實的開發(fā)活動中的某些問題,比如開發(fā)者會議的成功是否會影響開發(fā)人員的情感,進(jìn)而對整個團(tuán)隊產(chǎn)生影響,以及不幸福感、憤怒對于軟件開發(fā)的影響.隨著web 2.0的火熱,在如今的開發(fā)團(tuán)隊中,團(tuán)隊成員可能分布于世界的各個角落,通過各種社交媒體進(jìn)行溝通,以及一些像GitHub這樣的開源社區(qū)、Stack Overflow為代表的技術(shù)問答網(wǎng)站的蓬勃發(fā)展,都產(chǎn)生了大量的關(guān)于軟件開發(fā)的文本信息,如Issue Comments,Commits Comments,技術(shù)問答網(wǎng)站中帖子和在線郵件列表等內(nèi)容.文本的情感分析,或意見挖掘最初是一種用于提取在線發(fā)布的短文本(例如電影評論,商品評價,微博和推特)中的情感極性被開發(fā)出來的,通過分析文本給出當(dāng)前文本的極性,積極或者消極,從而試圖挖掘出這些文本創(chuàng)建者的一些想法[14].所以許多研究者根據(jù)軟件開發(fā)領(lǐng)域的特點,改進(jìn)或建立了許多新的文本情感分析的工具或方法,從而將文本情感分析應(yīng)用到軟件開發(fā)領(lǐng)域中來.這些研究中發(fā)現(xiàn),在開源社區(qū)中的情緒確實對于軟件開發(fā)的質(zhì)量,效率等方面有著一定的影響[1,15-18].因此從這些文本中提取出針對一個軟件開發(fā)團(tuán)隊,或某一款軟件的,或某一個軟件開發(fā)社區(qū)的一種情感的狀態(tài),可以協(xié)助改進(jìn)一些工具或使用一些新的方法來提高軟件工程中的開發(fā)效率,軟件質(zhì)量,軟件維護(hù)等方面.

      本文在分析情感分析技術(shù)的現(xiàn)狀的基礎(chǔ)上、對軟件開發(fā)中的情感特點,情感分析的一些主流工具、主要方法、目前已有的實證研究,以及情感對于軟件開發(fā)的影響進(jìn)行了總結(jié)和分析.最后,對于軟件開發(fā)情感分析一些存在的問題和未來的發(fā)展趨勢進(jìn)行了展望.

      2 情感分析的現(xiàn)狀

      對于文本的情感分析目前主要分為三個級別:文本級別,句子級別,子句級別.其中文本級別代表整個文本整體的情感傾向,句子級別表示一句句子的情感傾向,而子句級別就表示一個短語或一個詞組的情感傾向.情感分析常用的方法有兩大類:基于詞匯的方法和基于機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的方法.情感分析的主要任務(wù)有:二分類的情感極性分析,細(xì)粒度的情緒識別以及情緒強(qiáng)度分析.

      2.1 情感分析任務(wù)

      針對情感分析任務(wù),情感極性分析是情感分析的基本任務(wù)[19],簡單來說就是通過分析將文本分為:積極,消極,有時候可以有中性這以類別,但總體而言還是一個二元的分類方法.它在商品評論,電影評論的分析方面已經(jīng)得到了廣泛的應(yīng)用.另一個與情感極性分析相類似的是情緒一致性檢測,這是一種針對兩條文本來分析它們在情緒上的一致性,也就是它們是否表達(dá)了相同或相似的情緒.對于二元分類的一個提升就是添加對不同情感的強(qiáng)烈程度.在判斷完情感的類別后,根據(jù)情感的強(qiáng)度給出一個相應(yīng)的評分,這就是情緒強(qiáng)度分析也是對情感極性分析的一個提高.

      多模態(tài)融合情感分析,是近幾年新提出的一個概念.研究人員試圖通過視頻,語音,圖片,文本等多種資料,并將從不同資料中提取的特征融合起來,進(jìn)行綜合的情感分析.

      2.2 基于詞匯的方法

      基于詞匯的情感分析是一種非常流行而且使用簡單的方法,有著許多的優(yōu)點[20],首先需要一個預(yù)先標(biāo)注過的情緒詞典,里面有例如 “happy”,“fear”,“sad” 這樣的詞匯,不同的詞匯給予不同的情感標(biāo)注,積極情緒或消極情緒.也能夠識別一些程度副詞如(very),或者某些否定結(jié)構(gòu),例如not happy.綜合這些特征,然后對文本中情感進(jìn)行判別.當(dāng)然這一模式也有著一些的不足之處.它對于一些語法上復(fù)雜的短語識別會產(chǎn)生錯誤.其次這種方法需要一個可靠而一致的情感詞典[20],而人類社會的語言是十分復(fù)雜的,包含了許許多多的綜合信息,一個情感詞典很難涵蓋到很多不同的方面,因此對于想要挖掘出這其中的語義信息是很困難的.而且由于語料庫源決定了詞匯親緣概率往往偏向于特定類型的文本.這使得開發(fā)可重用的、獨立于領(lǐng)域的泛化模型變得困難[21].

      2.3 基于機(jī)器學(xué)習(xí)的方法

      基于機(jī)器學(xué)習(xí)的情感分析方法主要分為基于傳統(tǒng)的機(jī)器學(xué)習(xí)算法和基于深度學(xué)習(xí)這兩部分.而傳統(tǒng)的機(jī)器學(xué)習(xí)算法通常以有監(jiān)督學(xué)習(xí)為主,而基于深度學(xué)習(xí)的算法則會使用一些半監(jiān)督或弱監(jiān)督的方法.

      機(jī)器學(xué)習(xí)的情感分析的流程主要是:對文本預(yù)處理完成之后,將文本進(jìn)行向量化,讓文本轉(zhuǎn)換為可以用于計算的向量,主要方法有詞袋模型,TF-IDF,word2vec等.其中詞袋模型又稱為One-hot representation是一種統(tǒng)計某個詞在一份文檔中出現(xiàn)次數(shù)的算法;TF-IDF是一種統(tǒng)計學(xué)方法,用以評估字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度;word2vec是一個淺層的神經(jīng)網(wǎng)絡(luò)用于輸出詞向量.在得到文本的數(shù)值向量后,利用機(jī)器學(xué)習(xí)方法來對分類器進(jìn)行訓(xùn)練.主流的一些分類方法有樸素貝葉斯(NB),支持向量機(jī)(SVM),最大熵(ME),RFC,GNB,決策樹,邏輯斯蒂回歸等.而進(jìn)行這些機(jī)器學(xué)習(xí)的前提是需要一個很大的有標(biāo)注的訓(xùn)練文本來對模型進(jìn)行訓(xùn)練才能保證精度,這對于預(yù)先的準(zhǔn)備工作有著很高的要求.另外機(jī)器學(xué)習(xí)學(xué)習(xí)方法的弊端是對于語義的理解有些糟糕,因此對于句子或短語的分類并不是很準(zhǔn)確.

      隨著深度學(xué)習(xí)在圖像處理領(lǐng)域的火熱,深度學(xué)習(xí)在情感分析中也有良好的表現(xiàn)[22].這種方法與機(jī)器學(xué)習(xí)有類似之處,同樣需要通過一些特征提取方法將文本向量化,區(qū)別在于最后提取出的特征是通過一些神經(jīng)網(wǎng)絡(luò)來進(jìn)行訓(xùn)練,而不是機(jī)器學(xué)習(xí)算法.深度學(xué)習(xí)的優(yōu)點在于,這些算法不需要很多的手工標(biāo)注的數(shù)據(jù)集,它們會自動學(xué)習(xí)數(shù)據(jù)集中的復(fù)雜特征,但需要的是龐大的數(shù)據(jù)量,才能有良好的表現(xiàn)[23].現(xiàn)在的一些研究已經(jīng)證明了,深度學(xué)習(xí)在情感分析方面,特別是微博,商品評論,電影評論方面,較傳統(tǒng)方法有了一定的提高[24].目前在情感分析中主流都是采用循環(huán)神經(jīng)網(wǎng)絡(luò),例如:RNN,LSTM,GRU等,也有一些研究使用卷積神經(jīng)網(wǎng)絡(luò)CNN,還有一部分研究將卷積神經(jīng)網(wǎng)絡(luò)與循環(huán)神經(jīng)網(wǎng)絡(luò)疊加一起進(jìn)行情感分析[25].

      3 針對軟件工程領(lǐng)域的情感分析工具

      目前的一些研究除了使用機(jī)器學(xué)習(xí)的方法之外,有一部份采用了SentiStrength[26]來進(jìn)行情感的極性分析與評分[18,27,28].SentiStrength是基于詞典的一種工具,可以處理短的非正式文本,包括縮寫、增強(qiáng)詞和表情符號.每個消極情感詞匯的得分從-2到-5不等,這代表了它的極性.同樣,積極情感詞匯的得分在+2到+5之間,而中性詞匯的得分為±1.通過輸入一個句子,它會計算其中的情感詞的得分,最終將它們的和輸出,代表整個句子的得分.

      還有其他的一些情感分析工具,比如Stanford開發(fā)的斯坦福情感分析工具、NLTK等.但這些工具由于原本是針對商品評論、推特、微博等短文本所構(gòu)建的,并且各種的軟件開發(fā)社區(qū)中文本的特殊性,相比于微博、推特等社交媒體文本,這些關(guān)于軟件開發(fā)的文本會包含更多的技術(shù)領(lǐng)域的詞語,包含一些代碼段.這些專業(yè)性的詞語,可能與平時所表達(dá)的含義有所不同.因此在分析軟件工程領(lǐng)域的文本信息時,原有的一些工具的精度是無法得到保證的[29,30][19,20].因而,為了分析的精確性,一些專為軟件工程領(lǐng)域開發(fā),或改進(jìn)的工具應(yīng)運(yùn)而生,包括了SentiStrength-SE[31],SentiCR[32],SentiSW[33],Senti4SD[34],EmoTxt[35]等.它們的主要信息如表1所示.

      表1 軟件工程領(lǐng)域情感分析工具

      其中SentiStrength-SE[31]是基于SentiStrength的一種基于詞匯的情感分析工具,主要是用于識別情感的極性.它使用了來自JIRA這個問題跟蹤系統(tǒng)的Issue Comments中抽取的5,992條數(shù)據(jù),利用手工標(biāo)注情感極性的方式建立了一個數(shù)據(jù)集用于測試,并根據(jù)Islam等[27]之前的研究搜集了一個巨大的數(shù)據(jù)集,包含了Github中50個開源項目的490k commit messages,從中提取針對軟件開發(fā)領(lǐng)域的情感詞匯,還通過一些預(yù)處理和提高否定詞識別率,最終提高情感極性判別的準(zhǔn)確率,提高了SentiStrength在軟件工程領(lǐng)域的不足.

      Senti4SD[34]主要基于機(jī)器學(xué)習(xí),使用了Stack Overflow中的4423個帖子.首先對它們的內(nèi)容進(jìn)行預(yù)處理,最后使用均勻抽樣將樣本分成均勻的三份,分別是積極,消極,中性,總共4800條.其次作者用StackOverflow中的數(shù)量為20M的帖子數(shù)據(jù)建立了一個分布的語義模型(DSM),這主要是利用word2vec去把文本中的詞進(jìn)行向量化,以便計算一些相似度.并從基于詞匯的特征、基于關(guān)鍵字的特征和語義特征這三個方面來提高情感分析的準(zhǔn)確率.最后作者使用了SVM的方法來訓(xùn)練這個分類器.對于同一StackOverflow的數(shù)據(jù),它比SentiStrength降低了把中性情感誤分成負(fù)性情感的情況.

      SentiCR[32]是一個基于監(jiān)督學(xué)習(xí)的情緒分類工具,主要被用于分析Code review comments中的情緒.作者手工標(biāo)注了2000條review comments 作為訓(xùn)練集,并用這個訓(xùn)練集測試了現(xiàn)有的7個情感分析工具發(fā)現(xiàn)結(jié)果并不理想.因此,作者根據(jù)軟件工程領(lǐng)域的一些特點,對數(shù)據(jù)集進(jìn)行了一些特定的處理,并比較了ADB,DT,GBT,NB,RF,MLPC,SGD,SVC這幾種不同的機(jī)器學(xué)習(xí)算法的效果,最終發(fā)現(xiàn)GBT的精度和召回率是最高的.

      SentiSW[33]是一種實體級的情感分析工具,主要使用機(jī)器學(xué)習(xí)的方法進(jìn)行情感分析以及一種基于規(guī)則的實體識別.作者從10個GitHub流行項目中的231,732個issue comments中選取3000條數(shù)據(jù)進(jìn)行手工標(biāo)注作為數(shù)據(jù)集,并設(shè)計了一個實體級別的情感分類工具,這種實體識別是為了分辨文本中的情感表達(dá)是針對人還是事物的.首先通過預(yù)處理將數(shù)據(jù)集中的噪聲去除,比如去除URL、將縮寫詞擴(kuò)展,然后使用了TF-IDF與Doc2vec這兩個將文本向量化的方法對文本進(jìn)行向量化操作,前者是一個統(tǒng)計學(xué)的方法,后者則是在Word2vec上添加了段落向量的一種新版本.接著橫向比較了6種機(jī)器學(xué)習(xí)方法的精度與召回率,發(fā)現(xiàn)隨機(jī)梯度提升樹GBT的表現(xiàn)最好.最后使用基于規(guī)則實體識別來辨別issue comment中情感所針對的對象是人還是項目,并輸出(情感,對象)的元組作為結(jié)果.

      EmoTxt[35]是一個由支持向量機(jī)(SVM)訓(xùn)練而成的分類器,采用了StackOverflow中4800個帖子作為訓(xùn)練集,能夠區(qū)分Joy、Love、Sadness、Anger、Surprise、Fear多種情感.

      除了這些工具之外,Daviti等[7]構(gòu)建了一個識別憤怒的分類器,因為他們認(rèn)為,檢測憤怒可能有助于支持遇到困難的開發(fā)人員,有助于軟件社區(qū)的管理和有助于對項目的推薦和優(yōu)化改進(jìn).

      另外,針對以上的這些工具,一些研究者們對它們進(jìn)行了比較評價.一項對于情感分析工具的基準(zhǔn)研究[36]分析比較了SentiStrength,Senti4SD,SentiStrength-SE,改進(jìn)的工具的表現(xiàn)都要優(yōu)于SentiStrength,這表明根據(jù)軟件開發(fā)領(lǐng)域開發(fā)的工具確實提高了分類精度.當(dāng)使用其他的數(shù)據(jù)集來測試時,例如Code Review和Java libraries,雖然精度有所下降,但還在接受范圍內(nèi).不過也有研究表明對于他們所運(yùn)用的數(shù)據(jù)集,以上的一大部分工具都不能達(dá)到可接受的精度要求[37].因此在軟件工程中可靠的情緒分析是有可能的,但仍舊有許多的不足之處.

      3.1 軟件工程領(lǐng)域情感分析相關(guān)的數(shù)據(jù)集

      目前在軟件工程領(lǐng)域情感分析相關(guān)的數(shù)據(jù)集主要有,由Ortu等[38]發(fā)布的JIRA倉庫數(shù)據(jù)集,主要從the Apache Software Foundation、 Spring、 JBoss 和 CodeHaus,這四個社區(qū)中獲取Issue Tracking System的相關(guān)數(shù)據(jù).其中包含了超過1000個項目,以及70多萬的Issue reports和2百萬Issue comments.作者將issue劃分為漏洞、升級、功能請求這三部分,并將它們都存入了SQL類型的數(shù)據(jù)庫中.

      后來作者在這個數(shù)據(jù)集的基礎(chǔ)上,又發(fā)布了一個包含2000條issue comments 和 4000多個句子的數(shù)據(jù)集,并且手工標(biāo)注了這些句子中開發(fā)者所包含的情感,例如愛、快樂、驚喜、憤怒、失望、害怕等.這些數(shù)據(jù)又被分為三組,分別包含392條comments、1600條comments、以及4000個句子,并分別由16名、3名、3名志愿者進(jìn)行數(shù)據(jù)標(biāo)注.在對392條comments數(shù)據(jù)的標(biāo)注時發(fā)現(xiàn)在所有情感中愛、快樂、悲傷是得到最少出現(xiàn)分歧的.因此后面兩組都只從愛、快樂、悲傷中選取標(biāo)簽,同時發(fā)現(xiàn)數(shù)據(jù)中中性情感的占比很高,達(dá)到了43.4%.最后一組4000條句子,進(jìn)行了更細(xì)粒度的標(biāo)注.

      然而由于在軟件工程領(lǐng)域的情感分析還處于一個起步階段,暫時沒有得到公認(rèn)的數(shù)據(jù)集,許多研究處于自身的需要,更多地還是重新進(jìn)行數(shù)據(jù)的收集與標(biāo)注,來滿足研究的需求.

      3.2 軟件開發(fā)相關(guān)文本數(shù)據(jù)與傳統(tǒng)情感分析數(shù)據(jù)的區(qū)別

      傳統(tǒng)的社會媒體數(shù)據(jù),例如,微博,推特,商品評論等,與軟件開發(fā)相關(guān)的文本相比較.第一,就文本的內(nèi)容而言,傳統(tǒng)社會媒體數(shù)據(jù),包羅萬象,有許許多多不同的主題,而在軟件開發(fā)中的文本所圍繞的主題只是關(guān)于軟件開發(fā)這一領(lǐng)域的.第二,其中蘊(yùn)含的情感信息相比而言,通常類似商品評論這樣的數(shù)據(jù)所表現(xiàn)的情感是比較明顯的.而軟件開發(fā)相關(guān)的文本數(shù)據(jù),現(xiàn)有的一些研究發(fā)現(xiàn)其中包含更多的中性情感.第三,在文本的長度上,微博這樣的數(shù)據(jù),由于其本身的限制通常都是很短的文本(小于140字),而在軟件開發(fā)中則沒有這樣的限制,所以文本的篇幅跨度較大.這也對情感分析方法的選擇產(chǎn)生了影響.第四,由于軟件開發(fā)的領(lǐng)域特殊性,文本通常會包含許多代碼,以及在軟件開發(fā)中常見的詞匯,然而這些詞匯與其一般的含義有所不同,所表達(dá)的情感也有很大的區(qū)別,因此假如使用以傳統(tǒng)的社會媒體數(shù)據(jù)所建立的模型來預(yù)測軟件開發(fā)相關(guān)的文本,這會使得預(yù)測精度的下降.

      4 關(guān)于軟件工程領(lǐng)域的情感分析實證研究

      在軟件開發(fā)中的情感分析的情感理論方面,主要是參考了心理學(xué)上的兩個情感框架,一個是基本情緒理論,是離散的框架,也就是把情感分成快樂,傷心,憤怒等不同的基本情緒,這也是應(yīng)用最多的一種,還有一種情感的維度理論,認(rèn)為情感在大腦中是連續(xù)的而不是離散的,許多研究者認(rèn)為情感至少是二維,提出了效價-喚醒模型(Valence-Arousal)[39],認(rèn)為情感包含了效價與喚醒兩個方面,效價被定義為快樂或悲傷的程度,而喚醒被定義為一種主觀狀態(tài)的感覺激活或失活,而情感就是這兩者的混合.這也被一部分研究所使用[3].目前的許多研究大多描述性地分析軟件開發(fā)中的各種文本資料所包含的情感信息.例如,GitHub中的Commit comments[15,16,27],Pull requests[16],Commit logs[17],Code review,Issue comments[40],JRIA中的Issue comments,Apache中的mailing lists[18],以及一些其他的IT文本數(shù)據(jù)[41].這些研究選取不同的數(shù)據(jù)集,主要以開源社區(qū)中的文本信息為主,通過一些情感分析工具,一些機(jī)器學(xué)習(xí)的文本分類算法,來提取文本中的情感信息.另一些研究將目光放在情感對于軟件開發(fā)的影響,例如Issue Fixing的效率,Debugging的速度,不同情緒的開發(fā)人員的是否有效率上的差別,以及良好的團(tuán)隊氛圍與軟件的質(zhì)量是否存在聯(lián)系等等.

      4.1 軟件開發(fā)中的情感現(xiàn)狀及影響情感的因素

      已經(jīng)有許多研究就目前軟件開發(fā)中的情感的現(xiàn)狀做了很多描述性的分析,從情感極性在整個數(shù)據(jù)集中所占的比例,以及積極情緒與消極情緒所表達(dá)的程度.由于情感分析的基礎(chǔ)是基于心理學(xué)上兩種不同的情感框架,即情感是離散的以及效價-喚醒模型,因而研究中也主要從分類與采用VAD(Valence,Arousal,Dominance)評價模式這兩個方面來進(jìn)行的.除了基本的情感理論的不同之外,目前的研究還分析了軟件開發(fā)中情感的影響因素,主要從不同的文本來源,文本發(fā)布者的身份,項目所使用的語言,日期或者時間,關(guān)于不同話題的Issues,不同的開發(fā)任務(wù)(bug fix,Refactoring等),這些方面來探究它們對情感存在著什么樣的影響.

      4.1.1 角色的角度

      從用戶角度來看,Ortu等[40]認(rèn)為用戶類型的不同對情感存在一定的影響,他們將Github中Issue的評論者分為兩種類型,純粹的評論者和同時是貢獻(xiàn)者的評論者.作者稱前者為評論者后者為用戶.根據(jù)研究結(jié)果,他們發(fā)現(xiàn),評論者發(fā)表在Issue中的評論相比于用戶的更不禮貌也包含更多的消極情緒,以及評論者表達(dá)的情緒更少,而他們交流時的興奮、情感和支配水平更高.這也說明不同用戶類型,不同的立場之間所表達(dá)的情感會存在某些差異.

      4.1.2 主題的角度

      Pletea等[16]則針對關(guān)于GitHub上關(guān)于安全的Commits和pull request,從話題的角度出發(fā),分析安全話題與其他的話題之間在情感上的不同之處.他們利用了提取關(guān)鍵字與聚類的方法從文本中提取了話題,并使用NLTK來分析情感的極性.對結(jié)果進(jìn)行分析后,作者發(fā)現(xiàn)比起非安全主題的話題,與安全相關(guān)的話題表現(xiàn)出更多消極情緒,或者說表現(xiàn)得更加情緒化.Islam等[16]根據(jù)軟件開發(fā)中的不同任務(wù)種類,比如Bug-fixing,Energy-Aware,New feature,Refactoring,來分析它們對情感的影響,發(fā)現(xiàn)在energy-aware方面積極情緒與消極情緒大致相當(dāng),在Bug-fixing和refactoring方面積極情緒要遠(yuǎn)遠(yuǎn)高于消極情緒,而New feature則恰恰相反.與Lazar等[17]研究不同的是,Islam并沒有發(fā)現(xiàn)在日期方面情緒有存在不同之處.最后還分析得出開發(fā)者在情緒較好的時候會傾向于發(fā)表更長的評論.

      4.1.3 時間的角度

      Lazar等[17]從7年時間里的大約28466個GitHub projects中提取出commits logs.通過SentiStrength分析得出大約74%的commits都是中性情感,7.19%的是積極的,剩余18.05%的是消極的.但作者在分析之前沒有進(jìn)行預(yù)處理,文本中包含的代碼塊,url地址可能導(dǎo)致結(jié)果中增加了很多中性成分.另外作者還根據(jù)提交的日期來作為影響情感的因素,按照周一到周日,進(jìn)行比較分析,發(fā)現(xiàn)周二有著更多消極情緒,對于前五名的大項目周三周四有最多的消極情緒.以及發(fā)現(xiàn)了文件修改數(shù)量與情緒之間呈正相關(guān)變化.

      4.1.4 團(tuán)隊的角度

      Tourani等[18]的早期研究分析識別并評估開發(fā)團(tuán)隊中的痛苦或快樂.他們在Apache軟件基金會選取了兩個最成功、最成熟的項目的郵件列表,并對其進(jìn)行了情感分析.他們發(fā)現(xiàn),用戶和開發(fā)者的郵件列表會帶來正面和負(fù)面的情緒,而情感分析工具對電子郵件信息的準(zhǔn)確性并不高,因為與tweet或發(fā)布的評論相比,它們的篇幅相對較長.Guzman等[15]以開源項目中的commit comments 為數(shù)據(jù)集,從項目使用的語言,時間與日期,團(tuán)隊的分布程度以及項目的認(rèn)可度這四個方面來分析,主要采用了SentiStrength這一工具來為情感打分,并使用Wilcoxon秩和檢驗進(jìn)行統(tǒng)計分析.情感得分在這些數(shù)據(jù)集中相對接近中性,這可能由于評論是關(guān)于技術(shù)為主,帶有的情感不是很豐富.最終作者得出,Java語言包含更多的消極情感,在一周中周一的評論表現(xiàn)出更多的消極情緒,在一天的各個時間段中,下午的comments相比于傍晚的要更加積極.另外,研究也發(fā)現(xiàn)一個項目參與的開發(fā)者越多,comments中包含的積極情緒也會增加.而Karl等[42]從項目持續(xù)時間對情感的影響這一角度來研究隨著項目的不斷深入,整個團(tuán)隊的情感是否會產(chǎn)生變化,以及領(lǐng)導(dǎo)者的情緒,項目參與的人數(shù)與項目的大小也會不會對情感產(chǎn)生影響.結(jié)果顯示,隨著時間的持續(xù),團(tuán)隊的積極情緒出現(xiàn)下降,這一趨勢在項目周期的中間時得到延緩,但在項目接近尾聲時又會加劇.領(lǐng)導(dǎo)者的情感表現(xiàn)出的積極性越多,項目的積極情緒下降的趨勢就會變得更小.

      4.2 情感對軟件開發(fā)的影響

      情感對于人的行為活動存在著很多方面的影響,這一點在許多心理學(xué)的研究中已經(jīng)被證實了,而軟件開發(fā)活動也同樣受到情感的影響.從目前的研究來看情感對軟件開發(fā)的影響主要集中在效率,質(zhì)量,團(tuán)隊氛圍,開發(fā)者的行為這幾個方面.

      從效率角度,Ortu等[4]分析情感與issues解決時間兩者之間的關(guān)系,從Jira issue中選取了一些項目的Issue comments,從joy,love,sadness,anger這幾個方面來進(jìn)行分析.結(jié)果表明,情感對issues解決時間的確存在著顯著的影響,積極情緒越多,issues的解決時間越短,消極情緒越多,issues解決時間越久,Ortu等[43]又在另一項研究中選取了14個開源軟件項目進(jìn)行分析,發(fā)現(xiàn)禮貌對于Issues的解決時間也存在著影響,有禮貌的Issue解決時間要低于不禮貌的Issue;禮貌與項目的吸引力、開發(fā)者粘性之間存在正相關(guān),issue中表達(dá)更禮貌的項目,通常給開發(fā)者留下積極的情緒,表現(xiàn)出更大的吸引力.Graziotin等[44]調(diào)查了軟件開發(fā)人員的情感狀態(tài)、創(chuàng)造力和分析解決問題的技能之間的關(guān)系.研究者從VAD情感維度的理論的角度出發(fā),采用了兩份問卷SAM(自我情感評估問卷)和自我工作生產(chǎn)力評估問卷,對開發(fā)人員進(jìn)行施測,從而得到開發(fā)人員在Valence、Arousal、Dominance上的得分以及生產(chǎn)力的得分.進(jìn)行數(shù)據(jù)分析后發(fā)現(xiàn)軟件開發(fā)人員的情感狀態(tài)與他們自我評估的生產(chǎn)力呈正相關(guān) .

      從團(tuán)隊氛圍的角度來看,Garcia等[45]采用GENTOO社區(qū)(一個Linux社區(qū))的Bug報告和郵件列表中的數(shù)據(jù),分析了情感在開發(fā)者的活躍度中所扮演的角色.作者首先調(diào)查了與一個核心開發(fā)者Alice離開有關(guān)的情感因素,發(fā)現(xiàn)她與開發(fā)者之間的郵件內(nèi)容比其他人的更加消極,而且在Alice離開之后,對社區(qū)產(chǎn)生了很多負(fù)面的影響.然后進(jìn)一步推廣到所有的開發(fā)者中,分析開發(fā)者的情緒表達(dá)與其個體不活動的時間間隔之間的關(guān)系,發(fā)現(xiàn)了在產(chǎn)生某種情感表達(dá)之后,開發(fā)人員會有動機(jī)減退的情況出現(xiàn),從而可以根據(jù)一個開發(fā)者在他最后的信息中表達(dá)的情緒來估計他什么時候變得不活躍.還有研究認(rèn)為情感信任對分布式開發(fā)團(tuán)隊存在影響,信任是軟件項目的基礎(chǔ),特別是在分布式的情況下,同時認(rèn)為情感信任是分布式軟件協(xié)作成功的預(yù)測因子,推測在分布式項目中,之前的pull-request注釋中的情感性詞匯量越大,當(dāng)前的pull請求被接受的機(jī)會就越大,但其沒有進(jìn)行進(jìn)一步的實驗證實[46].

      從工作表現(xiàn)方面,也可以說是質(zhì)量方面,Khan等[47]對開發(fā)人員進(jìn)行了兩種不同的實驗,通過讓開發(fā)人員觀看影片以此引發(fā)特定的情緒,接著進(jìn)行debugging的測試,以及先進(jìn)行一些體育鍛煉,然后做算法演算任務(wù),并測試他們的表現(xiàn)與情緒狀態(tài).結(jié)果表明情感的效價(Valence)不同狀態(tài)對Debugging任務(wù)的影響確實存在的,在觀看低喚起和高喚起的視頻剪輯后,結(jié)果也有顯著差異;在體育鍛煉后,程序員的喚醒度和效價都有顯著提高,與此同時,他們的任務(wù)表現(xiàn)也有所改善.而在軟件開發(fā)過程中對質(zhì)量的把控也是十分重要的,F(xiàn)rancisco Jurado等[48]建議在軟件開發(fā)過程中,引入情緒分析技術(shù),以識別和監(jiān)視開發(fā)人員在issues和tickets中編寫的文本中的潛在情緒.因此作者分析了9個著名的項目的數(shù)據(jù),發(fā)現(xiàn)在這些資料中確實存在在潛在的情緒表達(dá).所以作者認(rèn)為這些信息可以用來分析開發(fā)過程,監(jiān)測開發(fā)過程中的情感特征.

      5 分析與展望

      綜上所述,不難看出如今在軟件開發(fā)領(lǐng)域的情感分析研究已經(jīng)有了一定的成果,從很多角度來分析了軟件開發(fā)中的情感現(xiàn)狀,不過仍有一些可以探索的方向.目前,許多研究人員開發(fā)了針對軟件工程領(lǐng)域定制的情感分析工具,也有一部分研究分析了情感對軟件開發(fā)的影響.這些工具在某些數(shù)據(jù)集上有著良好的表現(xiàn),但有研究指出在另一些數(shù)據(jù)集上進(jìn)行測試時的表現(xiàn)是遠(yuǎn)低于預(yù)期,這表明了目前在軟件工程領(lǐng)域的情感分析的工具或方法上還有很大的提高空間.因此,對于未來的研究方向,主要從以下幾個方面來闡述.

      5.1 軟件工程領(lǐng)域情感分析面臨的挑戰(zhàn)

      目前對于軟件開發(fā)中情感狀態(tài)的分析,大多數(shù)都是采用極性分類的辦法.然而有研究認(rèn)為[49],由于情感是非常復(fù)雜的,如果只是單一的情感極性是不足以挖掘出開發(fā)人員的情感的,僅僅是情感中的一個維度.除此之外,現(xiàn)有的一些軟件開發(fā)領(lǐng)域情感分析工具,它們有著良好的內(nèi)部效度,而在外部效度上會相對較差,也就是說雖然都是與軟件開發(fā)相關(guān)的文本,但以StackOverflow數(shù)據(jù)所開發(fā)的工具,在Github數(shù)據(jù)中的表現(xiàn)不一定能達(dá)到它原本的水準(zhǔn)[34].還有當(dāng)采用機(jī)器學(xué)習(xí)方法訓(xùn)練情感分析的模型時,可能會遇到過擬合所導(dǎo)致的在訓(xùn)練集上表現(xiàn)良好而在測試集上表現(xiàn)糟糕的情況.這些就是軟件開發(fā)領(lǐng)域情感分析所需要克服的困難.

      5.2 軟件開發(fā)中情感分析研究展望

      5.2.1 對軟件開發(fā)進(jìn)行更精確的情感分析

      目前而言,情感分析方法主要是基于詞典和機(jī)器學(xué)習(xí)的方法,也有了許多針對軟件工程領(lǐng)域的情感分析工具,但總體上的效果還有很大的提升空間.但在其他領(lǐng)域的情感分析使用深度學(xué)習(xí)技術(shù)有著不錯的表現(xiàn),而且也已經(jīng)廣泛得到應(yīng)用.最近Achyudh Ram等[25]建立了一種CNN與LSTM相結(jié)合的深度網(wǎng)絡(luò)對5個不同的關(guān)于軟件開發(fā)的數(shù)據(jù)集進(jìn)行情感分析,相對于傳統(tǒng)的機(jī)器學(xué)習(xí)算法和一些基于詞典的情感分析工具,深度網(wǎng)絡(luò)的確有著一定的優(yōu)勢,不過作者也提出,使用深度學(xué)習(xí)技術(shù)也是有一定的前提條件的,例如數(shù)據(jù)集的大小,數(shù)據(jù)集的內(nèi)容的分布情況等.因此在接下來的研究中,可以將基于深度學(xué)習(xí)的情感分析方法應(yīng)用在軟件工程的數(shù)據(jù)集上.

      5.2.2 對軟件開發(fā)進(jìn)行更深入的情感分析

      當(dāng)擁有更精確的情感分析工具后,挖掘出更多的信息來源,才能更深入地進(jìn)行情感分析.一些社交媒體文本情感分析研究認(rèn)為emoji表情符號,文字表情等信息包含情感信息,并將它們與文本一起進(jìn)行分析.而在軟件開發(fā)領(lǐng)域,Clase等[50]提取了Apache和Mozilla的Issue comments中的表情符號,他們發(fā)現(xiàn)在Apache和Mozilla的開發(fā)人員大多時候使用表情符號來表達(dá)喜悅,部分表達(dá)悲傷或驚訝,這也說明了開發(fā)人員確實存在有沮喪的情緒,同時研究者也表示這僅僅是對于表情符號研究的第一步工作,未來可以與一些情感分析工具,或者其他的情感分析技術(shù)相結(jié)合.除了這種文本信息之外,多模態(tài)的情感分析目前也逐漸得到關(guān)注,這不同于傳統(tǒng)的文本情感分析,它能夠綜合例如音頻,視頻,文本等許多信息來進(jìn)行情感分析.在某些軟件開發(fā)領(lǐng)域或者相關(guān)的社交媒體上可能可以獲取得到相應(yīng)的音頻、視頻、圖片等資料,來進(jìn)行多模態(tài)情感分析.

      5.2.3 對軟件開發(fā)進(jìn)行更廣泛的情感分析

      最后,不僅僅要從各個開源項目的角度來分析情感,也可以從一個更寬廣的范圍的分析,例如整個項目社區(qū)的氛圍,不僅僅是GitHub這種大型的社區(qū),或者Jira這樣的ITS系統(tǒng),還有一些其他的社區(qū)也值得被關(guān)注,比如各種Ubuntu、Gentoo等等.進(jìn)行這樣的橫向比較之外,我們將來也可以更多地做一些縱向分析,嘗試了解項目中情感在一個時間跨度上的變化,F(xiàn)erreira等[51]分析了Linux內(nèi)核開發(fā)郵件列表中情感隨著時間的流逝,是否產(chǎn)生了某種改變.或許能從中觀察出一個項目,或者一個社區(qū)的發(fā)展與演變的過程,這一過程又是否與情感之間存在某種聯(lián)系.

      6 總 結(jié)

      情感與軟件開發(fā)之間的關(guān)系是十分緊密的,同時開源社區(qū)的興起帶來了海量的資料,因而,近年來研究者基于這些巨大的數(shù)據(jù)量,利用各種情感分析技術(shù)對軟件開發(fā)過程中的情感狀態(tài)進(jìn)行了分析,盡管這一領(lǐng)域取得了很大進(jìn)展,由于軟件開發(fā)的特殊性,情感分析工具在軟件工程中的使用效果依舊需要提高.另一方面,情感對軟件開發(fā)過程具有廣泛的影響,好的情感狀態(tài)對提高軟件開發(fā)的效率、質(zhì)量、軟件社區(qū)的氛圍、管理、軟件團(tuán)隊的交流、協(xié)作、開發(fā)者的積極性、粘性等方面都能起到幫助.因此,探索影響情感狀態(tài)的因素以及如何利用情感的調(diào)控來提升軟件開發(fā)過程具有重要的研究價值.目前的研究剛剛起步,亟待深化.

      猜你喜歡
      開發(fā)人員工具情緒
      波比的工具
      波比的工具
      Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
      小情緒
      小情緒
      小情緒
      “巧用”工具
      讀者(2017年18期)2017-08-29 21:22:03
      讓W(xué)indows 10進(jìn)入開發(fā)者模式
      電腦迷(2015年12期)2015-04-29 23:22:51
      后悔了?教你隱藏開發(fā)人員選項
      電腦愛好者(2015年6期)2015-04-03 01:20:56
      情緒認(rèn)同
      辉南县| 任丘市| 策勒县| 文水县| 稻城县| 西乡县| 定兴县| 威远县| 乌鲁木齐县| 密山市| 白山市| 克什克腾旗| 乃东县| 呈贡县| 博乐市| 阿合奇县| 同仁县| 金塔县| 翼城县| 诏安县| 南昌市| 台北市| 萨嘎县| 宁明县| 青州市| 尚志市| 龙海市| 合作市| 雅江县| 镇江市| 博客| 东城区| 资阳市| 迁安市| 观塘区| 柘城县| 舟山市| 南京市| 马尔康县| 温州市| 平远县|