999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Stack Overflow系統的特征融合答案推薦策略

2019-08-14 10:02:22趙逢禹
計算機應用與軟件 2019年8期
關鍵詞:語義用戶策略

萬 杰 趙逢禹 劉 亞

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

0 引 言

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

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

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

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

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

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

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

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

1 FIARS答案推薦策略概述

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

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

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

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

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

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

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

圖1 FIARS策略流程圖

2 關鍵技術

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

2.1 建立索引

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

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

2.2 文本相似度計算

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

2.2.1文本相似度計算

對于文本1和文本2,首先從文本中提取詞袋分別表示為TextBag1和TextBag2,然后消除兩個詞袋中的重復單詞得到包含v個單詞的并集TextBagu,根據向量空間模型(VSM)[11],將兩個文本分別用兩個向量TextVec1和TextVec2表示:TextVec1=(wt1,1,wt1,2,…,wt1,v)和TextVec2=(wt2,1,wt2,2,…,wt2,v),權重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,根據空間向量模型(VSM)[11],將兩個標題分別用兩個向量TitleVecQ1和TitleVecQ2表示:TitleVecQ1=(wtQ1,1,wtQ1,2,…,wtQ1,v)和TitleVecQ2=(wtQ2,1,wtQ2,2,…,wtQ2,v)。權重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)。權重wgq,i表示問題q標簽中的第i個詞的頻率,計算如下:

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

2.2.4問題相似度計算

根據用戶提交的新問題和歷史問題的標題相似度、標簽相似度,綜合計算問題相似度的得分。得到問題內容相似度的得分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,根據空間向量模型,將兩個描述分別用兩個向量DesVecQ1和DesVecQ2表示:DesVecQ1=(wdQ1,1,wdQ1,2,…,wdQ1,v)和DesVecQ2=(wdQ2,1,wdQ2,2,…,wdQ2,v)。權重wdq,i表示問題q描述中的第i個詞的頻率。通過計算兩個向量DesVecQ1和DesVecQ2的余弦相似度[11]來衡量兩個描述的相似度。

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

2.3 基于語義相似度的計算

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

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

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

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

(9)

3 實 驗

3.1 語料集數據

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

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

3.2 實驗的評測指標

本文主要通過Top-k準確率來對實驗結果進行分析。通過對比和分析實驗結果,驗證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 實驗及結果分析

實驗1特征融合驗證。

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

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

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

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

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

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

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

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

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

根據以上方法進行實驗,實驗結果如表2所示。

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

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

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

4 結 語

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

猜你喜歡
語義用戶策略
例談未知角三角函數值的求解策略
語言與語義
我說你做講策略
高中數學復習的具體策略
數學大世界(2018年1期)2018-04-12 05:39:14
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
“上”與“下”語義的不對稱性及其認知闡釋
現代語文(2016年21期)2016-05-25 13:13:44
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
認知范疇模糊與語義模糊
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 午夜福利免费视频| 99久久亚洲综合精品TS| 亚洲精品综合一二三区在线| 欧美成人精品在线| 国产精品99久久久久久董美香| 成年人福利视频| 女人av社区男人的天堂| 欧美性久久久久| 国产杨幂丝袜av在线播放| 亚洲av无码人妻| 免费在线国产一区二区三区精品| 国产精品午夜福利麻豆| 美女内射视频WWW网站午夜 | 91免费国产高清观看| 成人一区专区在线观看| 亚洲精品自拍区在线观看| 久久精品亚洲中文字幕乱码| 91免费国产在线观看尤物| 热思思久久免费视频| 91国内外精品自在线播放| 国产精品久久久久久久久久98 | 国产精品网拍在线| 四虎国产精品永久一区| 好吊日免费视频| 第一区免费在线观看| 干中文字幕| 亚洲欧美另类专区| 国产微拍精品| 波多野结衣中文字幕久久| 精品丝袜美腿国产一区| 国产91无码福利在线 | 日韩视频免费| 日韩精品高清自在线| 国产美女精品一区二区| 热久久这里是精品6免费观看| 国产麻豆福利av在线播放| 国产亚洲精品yxsp| 亚洲中文字幕久久无码精品A| 欧美69视频在线| 人妻一区二区三区无码精品一区| 久久久久国产精品熟女影院| 久久久久国产精品嫩草影院| 成人小视频网| 中文字幕在线观看日本| 老司机久久精品视频| 2020最新国产精品视频| 亚洲精品无码不卡在线播放| av天堂最新版在线| 国产在线拍偷自揄观看视频网站| 国产精品福利在线观看无码卡| 一本大道AV人久久综合| 欧美午夜在线播放| 激情综合图区| 孕妇高潮太爽了在线观看免费| 成人午夜天| 日本一区二区三区精品国产| 在线国产毛片| 91热爆在线| 亚洲日韩精品无码专区97| 亚洲男人天堂久久| 亚洲国产精品一区二区高清无码久久| 日韩色图在线观看| 精品一区二区无码av| 中文字幕亚洲另类天堂| 欧美日韩中文字幕在线| 毛片网站免费在线观看| 啪啪啪亚洲无码| 99re精彩视频| 欧美黑人欧美精品刺激| 丰满少妇αⅴ无码区| 亚洲成人www| 国产精品三区四区| 国产精品无码AV片在线观看播放| 欧美成人a∨视频免费观看| 中文字幕 欧美日韩| 国产在线小视频| 日韩免费成人| 国产成人一区免费观看| 久久99热这里只有精品免费看| 亚洲成a人片77777在线播放| 亚洲美女久久| 久久精品66|