• 
    

    
    

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

      Stack Overflow系統(tǒng)的特征融合答案推薦策略

      2019-08-14 10:02:22趙逢禹
      計算機應用與軟件 2019年8期
      關(guān)鍵詞:語料檢索標簽

      萬 杰 趙逢禹 劉 亞

      (上海理工大學光電信息與計算機工程學院 上海 200093)

      0 引 言

      Stack Overflow是一個程序開發(fā)與計算機技術(shù)交流社區(qū),當開發(fā)人員遇到的疑惑、報錯,在中文資料中找不到解決方案時,在Stack Overflow中通常能比較快速地找到相應的解決方案。Stack Overflow經(jīng)歷了多年的發(fā)展,社區(qū)問答系統(tǒng)中積累了千萬條的問題和答案,形成了龐大的語料集。如何有效地利用這些歷史資源,幫助用戶輕松、準確地找到最接近用戶查詢的問題所對應的最佳答案是Stack Overflow面臨的重要問題。

      基于Stack Overflow語料集已經(jīng)有許多研究成果。Huang等[1]提出了一種文本總結(jié)技術(shù),通過對Stack Overflow問答討論中的信息進行總結(jié)、提煉和歸類,從而能夠幫助開發(fā)人員確定更適合某個項目的工具或技術(shù)。Xia等[2]提出了一種基于文本處理和文本分類技術(shù)來預測刪除Stack Overflow中問題質(zhì)量很差的問題。

      Stack Overflow中的搜索機制是一個基于Lucene的Elasticsearch搜索引擎,它提供了一個分布式多用戶能力的全文搜索功能。當用戶提交一個問題時,首先對問題進行分詞,然后提取問題中的關(guān)鍵詞,對問題進行構(gòu)造句法依存樹,將自然語言問題轉(zhuǎn)化為邏輯語義問題,進一步抽取問題中的特征與語料庫中的答案進行匹配,顯示出與用戶提交的問題相關(guān)度高的問題。但是Stack Overflow只對問題的標題進行了分析與提取,忽略了問題的描述信息和問題標簽信息,導致推薦的準確率降低。

      關(guān)于社區(qū)問答系統(tǒng)中答案的推薦策略問題的研究可以劃分為三個方面:(1) 基于主題模型的答案推薦;(2) 基于機器學習的推薦;(3) 基于問句詞的表面信息的答案推薦。

      基于主題模型的答案推薦方面,張成等[3]提出了一種基于概率潛在語義分析(PLSA)的社區(qū)問答自動選擇答案的方法,并根據(jù)答案與問題之間的相似性對候選答案進行排序。Riahi等[4]使用兩種統(tǒng)計主題模型為一個新發(fā)布的問題找到專家,從而為用戶提供正確的答案。

      基于機器學習的推薦是另一個研究熱點,Li等[5]在biLSTM之上建立了卷積神經(jīng)網(wǎng)絡(CNN)結(jié)構(gòu),使用該結(jié)構(gòu)將查詢和答案映射到它們對應的分布向量,學習查詢和答案之間的語義相似性,對答案重新排名;文獻[6]使用基于bigram散列和TF-IDF匹配的搜索組件與訓練有素的多層遞歸神經(jīng)網(wǎng)絡模型相結(jié)合,以檢索出維基百科中與問題匹配的答案;文獻[7]基于文本和元數(shù)據(jù)特征建立了一個預測模型,用來預測一個新問題的用戶意圖,使得系統(tǒng)能夠識別類似的問題,推薦相關(guān)的答案。

      第三種研究思路是基于問句詞的表面信息進行答案推薦,Berger等[8]通過學習多種統(tǒng)計的方法從大量的候選答案中找到問題答案。Jijkoun[9]使用無監(jiān)督學習的方法從Web上獲取FQA網(wǎng)頁,再自動從收集的頁面中提取問題與答案,然后采用向量空間模型檢索問答對回答用戶的問題。Riezle等[10]采用統(tǒng)計機器翻譯(SMT)技術(shù)來提高問句的檢索性能問題。

      本文針對Stack Overflow只對問題的標題進行了分析與提取,忽略了問題的描述信息和問題標簽信息,導致推薦的準確率降低問題,提出了一種特征融合的答案推薦策略(Feature integration answer recommendation strategy,FIARS)。該推薦策略主要研究了問題標題相似度、問題描述相似度、問題標簽等基于文本的相似度,進一步分析了語義相似度,最后返回與用戶查詢對應的答案信息。

      1 FIARS答案推薦策略概述

      Stack Overflow中存在大量的“問題與答案”語料。當一個用戶提出新的問題時,如何為用戶推薦最優(yōu)答案是本文研究的目的。本文首先對“問題與答案”語料集進行預處理,根據(jù)用戶新問題標題與標簽,計算與語料集中問題的相似度,得到問題標題與標簽相似候選集;進一步計算新問題描述和候選集中各問題描述相似度,篩選出問題描述相似候選集;最后利用問題特征詞的語義信息,計算用戶問題與語料集中各問題的語義相似度,得到基于語義相似的檢索候選集,從語義相似的檢索候選集中提取出答案返回給用戶。

      由于Stack Overflow中存在大量的相似問題與答案信息,如何給出與用戶搜索的新問題最相關(guān)的問題與答案信息是本文關(guān)注的焦點。圖1所示為FIARS問題答案推薦模型的處理流程,該處理流程主要包括以下5步。

      第1步:對“問題與答案”語料集進行預處理。從Stack Overflow網(wǎng)站中抽取“問題與答案”語料集,對該語料集建立問題索引和答案索引。在建立索引時,僅對有答案的問題建立問題索引與答案索引,即確保索引中每個問題都有一個答案。其次從每個問題中提取問題標題、問題描述、問題標簽和答案信息,然后對問題中的標題、描述和答案進行去停用詞和詞干化操作,對答案進行去重。

      第2步:篩選出與新問題相似度較高的問題標題與標簽相似候選集。對于用戶提出的新問題計算新問題和語料集中歷史問題的問題標題相似度、問題標簽相似度,并基于問題標題相似度和問題標簽相似度,篩選出與新問題相似度較高的問題標題與標簽相似候選集,得到初步檢索結(jié)果S1。

      第3步:篩選出問題描述相似候選集。進一步計算新問題和初步檢索結(jié)果S1中各問題描述相似度,篩選出問題描述相似候選集,得到第二次檢索結(jié)果S2。

      第4步:篩選出最終檢索結(jié)果。對第二次檢索結(jié)果S2使用WordNet作為語義資源,首先使用WordNet提供的最短接口函數(shù)計算詞語的語義相似度,利用問題特征詞的語義信息,計算用戶問題與語料集中各問題的語義相似度,得到最終檢索結(jié)果S3。

      第5步:根據(jù)最終檢索結(jié)果的問題索引,從問題對應的答案索引中提取出答案返回給用戶。

      圖1 FIARS策略流程圖

      2 關(guān)鍵技術(shù)

      特征融合的答案推薦策略的關(guān)鍵技術(shù)主要包含建立索引、基于文本相似度的檢索模型和基于語義相似度的檢索模型3個部分。

      2.1 建立索引

      為了提高檢索的效率,先對語料集的問題標簽建立索引,當問題標簽相同時,再對問題標題中的特征詞建立索引。

      在建立索引時,僅對語料集中有答案的問題建立索引,這可以確保每個問題至少對應于一個答案。對于用戶提交的任意一個問題q,使用特征融合答案推薦策略,得到最終檢索結(jié)果S3,根據(jù)最終檢索結(jié)果的問題索引,從問題對應的答案索引中提取出答案并返回給用戶。

      2.2 文本相似度計算

      在Stack Overflow中,用戶提交的問題包含很多文本信息,例如提交者、問題標題、問題描述、問題標簽和評論。在特征融合答案推薦策略中,需要計算用戶問題與Stack Overflow中語料集中已存在問題的標題、標簽和描述信息文本相似度。

      2.2.1文本相似度計算

      對于文本1和文本2,首先從文本中提取詞袋分別表示為TextBag1和TextBag2,然后消除兩個詞袋中的重復單詞得到包含v個單詞的并集TextBagu,根據(jù)向量空間模型(VSM)[11],將兩個文本分別用兩個向量TextVec1和TextVec2表示:TextVec1=(wt1,1,wt1,2,…,wt1,v)和TextVec2=(wt2,1,wt2,2,…,wt2,v),權(quán)重wtt,i表示文本t中的第i個詞的頻率,計算如下:

      其中:分子是兩個向量TextVec1和TextVec2的點積運算,計算公式如下:

      TextVec1·TextVec2=wt1,1×wt2,1+wt1,2×wt2,2+

      …+wt1,v×wt2,v

      (3)

      |TextVec1|和|TextVec2|分別表示兩個向量的大小,|TextVec1|的計算公式如下:

      2.2.2標題相似度

      對于問題Q1和Q2,首先將從標題中提取的詞袋分別表示為TitleBagQ1和TitleBagQ2,然后消除兩個詞袋中的重復的單詞得到包含v個單詞的并集TitleBagu,根據(jù)空間向量模型(VSM)[11],將兩個標題分別用兩個向量TitleVecQ1和TitleVecQ2表示:TitleVecQ1=(wtQ1,1,wtQ1,2,…,wtQ1,v)和TitleVecQ2=(wtQ2,1,wtQ2,2,…,wtQ2,v)。權(quán)重wtq,i表示問題q標題中的第i個詞的頻率。通過式(2)計算兩個標題之間的相似度,用TitleVecQ1、TitleVecQ2來表示兩個標題余弦相似度[11]。

      對于一個用戶提交的新問題nq和歷史問題hq,可以用式(2)來計算它們標題相似度,表示為TitleSim(nq,hq)。

      2.2.3標簽相似度

      用戶為新問題添加標簽時,可以添加多個標簽項。對于問題Q1和問題Q2,首先將兩個問題的標簽項分別放在TagSetQ1和TagSetQ2中,然后合并TagSetQ1和TagSetQ2并消除重復的詞,得到包含v個標簽項的并集TagSetu。將兩個標簽集分別用兩個向量TagVecQ1和TagVecQ2表示:TagVecQ1=(wgQ1,1,wgQ1,2,…,wgQ1,v)和TagVecQ2=(wgQ2,1,wgQ2,2,…,wgQ2,v)。權(quán)重wgq,i表示問題q標簽中的第i個詞的頻率,計算如下:

      對于一個用戶提交的新問題nq和歷史問題hq,用TagSim(nq,hq)來表示它們的標簽相似度。

      2.2.4問題相似度計算

      根據(jù)用戶提交的新問題和歷史問題的標題相似度、標簽相似度,綜合計算問題相似度的得分。得到問題內(nèi)容相似度的得分SimScore(nq,hq),計算公式如下所示:

      SimScore(nq,hq)=αTitleSim(nq,hq)+

      (1-α)TagSim(nq,hq)

      (6)

      其中:TitleSim(nq,hq)、TagSim(nq,hq)可以由式(2)計算得到。

      2.2.5描述相似度

      對于問題Q1和Q2,首先將從描述中提取的詞袋分別表示為DesBagQ1和DesBagQ2,然后消除兩個詞袋中的重復的單詞得到包含v個單詞的并集DesBagu,根據(jù)空間向量模型,將兩個描述分別用兩個向量DesVecQ1和DesVecQ2表示:DesVecQ1=(wdQ1,1,wdQ1,2,…,wdQ1,v)和DesVecQ2=(wdQ2,1,wdQ2,2,…,wdQ2,v)。權(quán)重wdq,i表示問題q描述中的第i個詞的頻率。通過計算兩個向量DesVecQ1和DesVecQ2的余弦相似度[11]來衡量兩個描述的相似度。

      對于一個用戶提交的新問題nq和歷史問題hq,用DesSim(nq,hq)來表示它們的描述相似度。

      2.3 基于語義相似度的計算

      為了提高檢索的精確度,給用戶提交的問題提供更準確的答案推薦,在問題標簽、問題標題和問題描述相似度的基礎(chǔ)上進行了語義相似度計算,需要計算用戶問題與Stack Overflow中語料集中已存在問題標題的語義相似度。

      該模型使用WordNet作為語義資源,WordNet中兩個單詞之間的距離越近,它們之間的語義相似性越大,反之,語義相似性越小。對于給定兩個特征詞w1和w2,使用WordNet提供的最短接口函數(shù)來獲得兩個同義詞之間的最短路徑,然后歸一化得到兩個特征詞之間的語義相似度,其語義相似度公式如下:

      式中:Sim(w1,w2)表示w1和w2之間的語義相似度,dis(w1,w2)表示W(wǎng)ordNet中w1和w2語義的最短距離。

      對于給定問題標題T1和歷史問題標題T2,采用二分圖[12]的方法計算兩個標題之間的相似度。其計算公式如下:

      (9)

      3 實 驗

      3.1 語料集數(shù)據(jù)

      Stack Overflow是一個與編程相關(guān)的IT技術(shù)問答網(wǎng)站。通過下載MSR 2015站提供的最新的關(guān)于Stack Overflow內(nèi)容的官方數(shù)據(jù),由Stack Exchange在Internet Archive提供。這些數(shù)據(jù)包括問題標題、問題答案、問題標簽、問題描述等相關(guān)信息。為了不影響實驗結(jié)果和保持數(shù)據(jù)的平衡性,在這里我們選取2014年1月到2015年2月的熱門度靠前的10個標簽項的相關(guān)信息,除去沒有答案的問題,共有27 639個問題標題和12 477個問題答案。在有答案的問題中,23 426個問題有最佳答案。

      實驗前,先使用WVTool工具對數(shù)據(jù)進行預處理。將2013年2月以后的包含最佳答案的問題作為測試用例集,其中包含2 254個問題。

      3.2 實驗的評測指標

      本文主要通過Top-k準確率來對實驗結(jié)果進行分析。通過對比和分析實驗結(jié)果,驗證FIARS策略的有效性。

      Top-k準確率表示算法推薦的前k個答案的準確性。當k越小,Top-k越大時,推薦算法的推薦效果越好。本文中選擇k值為1、3、5和10。例如,Ar={a,b,c,d,e},Ac={a,c,f,b,e,d},則Top-1、Top-3、Top-5、Top-10準確率依次為100%、66.7%、80%和100%。

      3.3 實驗及結(jié)果分析

      實驗1特征融合驗證。

      對于問題相似度中a的取值,因為問題標題和問題標簽對于問題相似度的計算同等重要,所以本文選取a值為0.5。

      在過去的研究中,新問題答案推薦只根據(jù)問題標題信息進行模糊匹配,忽略問題標簽、問題描述和問題標題語義信息。我們通過是否考慮問題的特征融合進行對比,分析Top-k的變化,驗證特征融合對答案推薦的影響。實驗結(jié)果如表1所示。

      表1 是否考慮特征融合答案推薦結(jié)果對比 %

      由表1可以看出,考慮特征融合的答案推薦準確率高于不考慮特征融合。只根據(jù)標題進行模糊匹配,丟失了問題的大量信息,導致準確率大大降低。

      實驗2FIARS策略與其他答案推薦模型對比。

      為了驗證FIARS策略對答案推薦的有效性,采用兩種不同的推薦方法與本文提出的FIARS策略方法進行對比,具體對比方法如下:

      (1) PLSA[3]。利用PLSA模型計算每個用戶的興趣主題分布,并且綜合問題答案之間的相似度和用戶與問題主題分布領(lǐng)域的相似度對答案進行推薦。

      (2) hypernym[5]。在biLSTM之上建立了卷積神經(jīng)網(wǎng)絡結(jié)構(gòu),使用該結(jié)構(gòu)將查詢和答案映射到它們對應的分布向量,學習查詢和答案之間的語義相似性,對答案重新排名。

      (3) FIARS。本文所提策略。

      根據(jù)以上方法進行實驗,實驗結(jié)果如表2所示。

      表2 各種方法的Top-k準確率對比 %

      由表2可以看出,采用各種方法得出FIARS策略的Top-k準確率最高,本文策略在Stack Overflow系統(tǒng)上Top-10準確率達到66.94%,而hypernym和PLSA在Top-10的準確率低于FIARS策略。說明考慮問題標題、問題描述、問題標簽和語義能夠有效地提高推薦準確率。

      由以上實驗結(jié)果可以看出,本文提出的FIARS策略較之已有方法更有效,推薦的準確率更高。

      4 結(jié) 語

      本文提出了Stack Overflow系統(tǒng)的特征融合答案推薦策略。該策略綜合問題標題、問題標簽、問題描述和語義為問題推薦答案。實驗結(jié)果表明,該策略能夠有效地為用戶提交的問題推薦答案,達到用戶問題快速、準確解決的目的。在今后的工作中,將會把FIARS策略應用到其他的社區(qū)問答系統(tǒng)中,例如知乎、百度知道、Yahoo Answers,進一步驗證FIARS策略的有效性。雖然本文提出的策略能有效地彌補其他模型中缺少語義信息的不足,但是在使用WordNet提取語義信息的過程中效率低,所以未來的工作就是要提高提取語義信息的效率,使用基于機器學習構(gòu)建語義網(wǎng)絡。

      猜你喜歡
      語料檢索標簽
      2019年第4-6期便捷檢索目錄
      無懼標簽 Alfa Romeo Giulia 200HP
      車迷(2018年11期)2018-08-30 03:20:32
      不害怕撕掉標簽的人,都活出了真正的漂亮
      海峽姐妹(2018年3期)2018-05-09 08:21:02
      基于語料調(diào)查的“連……都(也)……”出現(xiàn)的語義背景分析
      專利檢索中“語義”的表現(xiàn)
      專利代理(2016年1期)2016-05-17 06:14:36
      標簽化傷害了誰
      華語電影作為真實語料在翻譯教學中的應用
      基于多進制查詢樹的多標簽識別方法
      計算機工程(2015年8期)2015-07-03 12:20:27
      《苗防備覽》中的湘西語料
      國內(nèi)外語用學實證研究比較:語料類型與收集方法
      肃宁县| 贵溪市| 屏东县| 衡山县| 满洲里市| 信丰县| 汾阳市| 尼勒克县| 罗田县| 温泉县| 吉首市| 客服| 桦南县| 郓城县| 揭阳市| 彭州市| 封开县| 平乐县| 松潘县| 湟源县| 阿巴嘎旗| 澎湖县| 黄陵县| 镇康县| 汶川县| 甘南县| 怀柔区| 神木县| 栾川县| 旅游| 苗栗县| 新邵县| 寻乌县| 开远市| 东乌| 普陀区| 南汇区| 九台市| 玛多县| 义马市| 兰州市|