梁仁華 彭 鑫 Zhenchang Xing 趙文耘
1(復旦大學軟件學院 上海 201203) 2(上海市數據科學重點實驗室 上海 201203) 3(澳大利亞國立大學計算機科學研究院 堪培拉 2615)
基于知識抽取的軟件問答網站搜索優化設計
梁仁華1,2彭 鑫1,2Zhenchang Xing3趙文耘1,2
1(復旦大學軟件學院 上海 201203)2(上海市數據科學重點實驗室 上海 201203)3(澳大利亞國立大學計算機科學研究院 堪培拉 2615)
軟件問答網站基于關鍵詞的搜索機制往往并不能很好地幫助用戶找到問題的答案。眾多的返回結果造成信息迷航,用戶需要花費額外的時間來篩選出自己所需要的信息。針對這種情況,基于Stack Overflow提供的文本信息,提出通過文本主題聚類結合多刻面技術的方法。對搜索結果以及鏈接關系等信息進行知識抽取,幫助用戶理解搜索結果的主題以及方向。設計一種力導引加樹形布局的可視化模型對知識進行表達。實現了一個基于Web的動態交互可視化工具,基本達到了解決信息迷航,幫助用戶定位問題答案的搜索優化目的。
知識抽取 文本主題聚類 多刻面 可視化 軟件問答網站
軟件問答網站是一種基于用戶知識分享行為的交互網站。其獨特的可交互性及社交化吸引了越來越多的人們。以軟件領域的大型問答網站——Stack Overflow為例,截止到2017年1月,Stack Overflow上已發布了13 085 624個帖子,涉及到程序員在軟件領域中遇到的各類問題,受到眾多程序員的關注。當我們想在軟件問答網站上發布一個帖子時,首先想到的是搜索是否已有人發布了類似問題的帖子,方便我們找到現有的答案。然而軟件問答網站基于關鍵詞的搜索機制往往并不能很好地幫助用戶找到問題的答案。眾多的返回結果造成信息迷航,一旦用戶輸入的關鍵詞不準確或者不夠概括問題的核心,用戶就需要花費更多的時間來篩選出自己所需要的信息,無法高效地找到與自己問題最相似的帖子。而且對于用戶來說,準確地輸入能描述問題的核心關鍵詞也并不是一件易事。
面對這種情況,研究人員提出了多種方法來優化軟件問答網站的搜索機制。Barua等人在文獻[1]中用基于主題識別的算法挖掘了程序員在Stack Overflow上所關心的重要主題,幫助用戶找到合適的主題社區,縮小搜索范圍。Wei Wang等人在文獻[2]中提出了一種基于社交網絡分析以及主題挖掘的方法來幫助定義與應用程序編程接口(API)設計的相關問題的主題描述。該方法可以推薦給API設計者與自己問題更相關的帖子。上述研究對于搜索優化都能起到一定的效果。但是,推薦主題社區的方法返回的搜索結果數量還是較多,不利于用戶理解某個主題內部的內容。API信息提取相對單一,并不能解決所有的問題。
針對上述問題,本文提出了一種搜索優化方法。該方法結合文本主題聚類和多刻面技術,對基于關鍵詞搜索的返回結果進行知識抽取。本文選取被廣泛使用的軟件問答網站——Stack Overflow的站內數據進行分析。在文本主題聚類中,將Stack Overflow中表示鏈接行為的Linked信息加入到主題抽取中,形成更多的帖子聚類來幫助用戶理解搜索結果的主題以及方向。在多刻面技術分析中,定義了刻面信息,并針對用戶主動選擇的不合理性,用層次聚類的方法自動分析多刻面的分類結果。最后設計了一種將主題聚類和刻面信息應用于力導引加樹形布局的可視化模型。最終實現了一個基于Web的動態交互可視化工具,基本達到了解決信息迷航,幫助用戶方便、快速地理解搜索結果以及定位問題答案的搜索優化目的。
1.1 文本聚類算法
文本聚類算法是一種根據輸入的文本信息進行聚類以及定義各個聚類主題的算法。早期的文本聚類算法大都基于數據而劃分。如K-means算法,是一種基于距離的聚類算法。這種算法能很好的對文本數據進行處理,但是有一個顯著的問題,即對聚類主題的產生。針對如何產生幫助用戶理解的聚類主題問題,Zamir等人在文獻[4]中提出了后綴樹聚類算法(STC)。該算法生成了一個基于輸入文本的廣義后綴樹,并通過廣義后綴樹統計高頻單詞和短語作為基本聚類,之后對基本聚類進行合并,最終形成聚類結果。相對于先生成聚類再生成聚類主題的STC算法,Stanislaw Osinski等人在文獻[5]中提出了一種基于奇異值分解的聚類算法(Lingo)。Lingo算法先提取聚類主題,再將各個文本分配到不同的聚類中去,最終形成聚類。相較于STC算法,Lingo算法產生的聚類主題具有更多的描述,本文主要采用Lingo聚類算法。
1.2 Stack Overflow相關研究
近年來Stack Overflow的相關研究中,對于發帖問題的相關性研究越來越多。而Stack Overflow的Linked信息記錄了用戶自主地對相同或相關問題進行鏈接的行為。因此,Linked信息擁有反映帖子之間文本相似性以及語義關系的作用也吸引了眾多研究者的關注。Yun Zhang等人在文獻[6]中實現了一個在Stack Overflow上查找相同問題的工具DupPredictor。該工具通過用戶輸入問題的tag、title等信息查找是否存在相同的問題,幫助網站管理員人工進行Duplicate和Linked信息的補充。Deheng Ye等人在文獻[7]中結合Linked信息對軟件工程知識的相關性進行了研究,得到了卷積神經網絡(CNN)模型,并用于對Stack Overflow上兩個帖子是否是相同問題的判定。而Dasha Bogdanova等人在文獻[8]中,通過對問題的文本信息進行分析,提取出基于Wikipedia的軟件領域詞匯,并使用支持向量機(SVM)和CNN模型對問題的相似性進行判斷。與這些抽取知識來判斷問題相關性以及相同性的工作相比,我們主要基于具有Linked關系的帖子的文本相似性進行主題聚類,提取帖子的主題詞,來幫助用戶更好地理解搜索結果。
1.3 可視化布局
數據可視化是一種將圖形、圖像等可視化方法應用于傳統數據的分析或者解釋的技術。它可以聚焦并且形象化地展示數據信息中的核心部分,有助于人們快速的獲得以及理解數據信息。文本數據可視化大都針對詞匯、主題等信息進行可視化布局。如PNNL(Pacific Northwest National Laboratory)開發的IN-SPIRETM[9]是基于文本主題抽取的可視化工具。該工具提出了兩種可視化布局,一種是3D地勢圖,基于距離的遠近定義文本間的相似度,并把相近的文本形成山峰;另一種是平面上的星云圖來展示聚類的文本相似程度以及離散形態。另外,還有一些針對層次化聚類結果繪制的樹狀圖、金字塔圖等可視化布局。這些研究工作大都基于靜態數據的可視化分析,交互手段相對單一。我們主要根據主題聚類結果以及多刻面信息,使用力導引加以樹形布局,動態地從橫向擴展、垂直深入兩種交互方式展示聚類結果的可視化信息。
文本主題聚類可以根據搜索結果的帖子內容提取出相關主題。這些主題作為知識抽取的結果,可以很好地區分出不同帖子集合的內容,但是還是會產生帖子數目相對較多的聚類,不利于用戶快速理解某個聚類中帖子的內容。而多刻面技術是基于帖子內容的不同特征,定義出一些基本刻面詞來對知識進行表達,之后分析每個帖子的文本內容,抽取出刻面信息來特征化每個帖子。這種方法能很好地對文本進行分類,但是對用戶查找合適搜索結果的有效性主要基于用戶對刻面的選擇。用戶選出的刻面組合往往并不能很好地劃分搜索結果集合,返回的搜索結果數目會出現過多或者過少的狀況。針對上述情況,我們提出了文本主題聚類與多刻面技術相結合的知識抽取方法,在文本主題聚類的基礎上,對每個聚類結果進行多刻面分析并對刻面信息進行層次聚類,幫助用戶更好地理解搜索結果,快速地尋找合適的搜索答案。
文本主題聚類結合多刻面技術的可視化設計如圖1所示。我們首先對Stack Overflow上所有帖子的文本信息利用全文搜索引擎——Lucene建立了文本索引。用戶輸入關鍵詞,我們用Lucene進行關鍵詞搜索得到搜索結果,并返回了包含帖子各部分的文本信息。之后,我們將這些搜索結果的文本信息進行數據預處理,對搜索結果進行主題聚類,在這個過程中,我們采取的文本聚類算法是Lingo算法。然后對每個聚類結果進行多刻面分析。最后,我們將這些聚類信息和刻面信息用力導引加以樹形結構的布局進行可視化,并實現了多種交互手段。在文本顯示方面主要有兩種方式:一種是橫向擴展,基于Linked信息,對某個聚類中的所有帖子找到與之有Linked關系的相關帖子,進行再聚類;另一種是垂直深入,對某個聚類中的帖子進行多刻面分析。該可視化布局可以更方便地使用戶理解搜索結果,并能通過這些交互模式快速地找到相關答案。

圖1 可視化模型概述
2.1 文本主題聚類
主題聚類之前對數據的操作主要有數據預處理和數據選取兩方面,應用聚類算法的數據除了根據關鍵詞返回的搜索結果,還包括基于這些搜索結果擴展出的Linked信息。本文選取的文本主題聚類算法是Lingo算法。
2.1.1 數據預處理
本文從Stack Exchange網站上得到Stack Overflow的數據源。首先將帖子的原始數據中title、tag、body等文本信息用Lucene建立索引。之后,根據用戶輸入的關鍵詞用Lucene進行搜索。本文設置搜索結果的最大數目為10 000。由于用戶往往希望短時間內對搜索結果有一定的理解,過多的文本信息會對用戶篩選符合的帖子產生干擾,所以將返回的搜索結果中與關鍵詞匹配度最高的300個搜索結果,用于下一步聚類操作。這些搜索結果作為聚類的輸入,需要提取有含義的聚類主題詞,所以對這些搜索結果中每個帖子的title、tag和body等文本信息進行了如下幾步操作:(1)分詞:以非字母字符作為分割符號進行詞匯的分析和分割,并去除如標點符號等一些無意義的特殊字符。(2)去除停用詞:文本描述中經常出現一些常見詞,但是并無太大價值,例如“the”、“a”等詞語,這些字詞被稱作停用詞。(3)詞根化:出于語法上不同語境的要求,在文本描述時通常會用一個詞的不同形態進行表達。比如implement、implements和implementing。另外,文本中也存在許多意思相近的同源詞,比如history、historic和historical。詞根化可以統一文本內容的描述,減少表達形式的變化。本文使用MIT的計算機科學與人工智能實驗室開發的WordNet和jwi工具對文本信息進行去除停用詞和詞根化操作。
2.1.2 Linked信息
只根據搜索結果的文本信息進行主題聚類的結果有時不能很好地表達文本信息的含義。而Stack Overflow上的Linked信息基于用戶自主地對相同或相關問題進行鏈接的行為,具有描述帖子之間文本相似性以及語義上的關系的作用。用每個帖子擴展出的有Linked關系的帖子進行文本聚類,可以聚類出更反映文本信息中心的主題詞,幫助用戶理解帖子的文本內容以及搜索方向。對于由主題聚類產生的每個聚類,本文用廣度優先算法選取至多與該聚類中的帖子有Linked關系的300個帖子進行再聚類,作為該聚類擴展出的聚類結果。每個聚類的擴展過程如下:聚類中的所有帖子作為初始層,依次遍歷初始層的每個帖子,選取所有與之有Linked關系的帖子,去除冗余帖子,作為下一層。重復迭代,直到選取出300個帖子或者下一層中不存在沒被選取過的帖子。如果最后一層的帖子數目與之前所有帖子數目相加超出300個,最后一層的帖子按與搜索關鍵詞的文本相似度排序,選取相似度最高的帖子,直到數目達到300個。
2.1.3 Lingo算法
Lingo算法來自于開源聚類項目Carrot2,是一種基于奇異值分解(SVD)的聚類算法[5]。主要步驟分為聚類特征提取、歸納聚類標記以及聚類內容挖掘。本文使用了Carrot2提供的jar包中的Lingo算法。根據實際結果,設置了desiredClusterCountBase參數的值為12。該參數可以很好地控制聚類的個數,根據輸入的文本個數的大小,產生合適的聚類數量,數值越大,產生的聚類數量越多。相較于STC算法,Lingo算法提供的每個聚類的主題詞長度更長,描述更加準確,并能產生帖子數目少但主題相關度高的聚類。本文用關鍵詞搜索返回的結果進行初始聚類,之后對每個聚類基于Linked關系提供擴展聚類。
2.2 多刻面技術
刻面是一種對資源進行描述的術語,一個刻面代表資源的一種特征。多刻面技術可以根據刻面信息對資源進行特征抽取并進行分類[3]。本文引用了復旦大學軟件工程實驗室的刻面分類工作中的刻面定義以及基于每個帖子內容提取出的刻面信息[10]。表1為前述工作中的刻面定義,每個大類中列舉了該類刻面集合的所有刻面詞。

表1 刻面信息
然而,傳統的應用多刻面技術進行搜索優化的方法依賴于用戶對刻面信息的選擇。當用戶選擇出一組刻面信息時,我們再對搜索結果進行劃分,選取出包含這組刻面信息的搜索結果。這種交互模式就會產生如下問題:
(1) 刻面組合的合理性:用戶無法確定哪些刻面是作為答案的帖子中會出現的,一旦選擇的刻面組合不合理,就會丟失這部分可以作為答案的帖子,對搜索的有效性和正確性都會產生影響。
(2) 刻面組合對分類的影響:用戶并不知道刻面組合對于搜索結果的完整分類情況,當選擇一些刻面時,可能這些刻面共同出現在搜索結果中的頻率較高,造成返回的分類結果數目較多,不利于用刻面來劃分搜索結果。
針對上述情況,本文用層次聚類的方法自動分析多刻面的分類結果,使用戶掌握刻面劃分下的完整分類情況。相較于將分類結果按文本陳列的方式顯示,層次聚類可以將相近的刻面類別聚在一起,條理清晰地按樹形結構顯示刻面的不同劃分結果。本文主要采取自底向上的凝聚方式進行聚類。算法將主題聚類中產生的某個聚類中的所有帖子作為輸入,最終構造出層次聚類的樹形結構。算法首先將輸入中的所有帖子,按照具有完全相同刻面信息的帖子歸入一類的方法,將這些分類結果作為初始聚類節點,并將刻面信息作為這些聚類的文本描述。之后計算節點之間文本相似度,即刻面重合的個數,選取其中相似度最高的兩個節點合并。如果重合刻面與所有聚類節點的文本描述均不同,則生成一個新的聚類節點,將重合刻面作為這個聚類的文本描述,被選取的兩個節點作為這個聚類的子節點;如果重合刻面與某個聚類節點的文本描述相同,則將這兩個節點作為該聚類節點的子節點;如果重合刻面為這兩個節點中的其中一個,則將另一個節點作為該節點的子節點。所有子節點將不被作為下一輪的聚類節點。重復上述合并聚類節點的過程,直到剩下一個節點,或者搜索節點之間沒有重復刻面信息停止。最終將剩下的所有聚類節點作為根節點的子節點,形成層次聚類樹。
算法1層次聚類算法
輸入:某個聚類中的所有帖子Posts
輸出:層次聚類結構樹Tree
Class Node{
String description;
List
List
}
Function cluster(Posts)
1. 將Posts按刻面信息分類,每一類用Node對象表示,添加到List
2. While(TreeNode.size > 1)
3. 在TreeNode中選取重復刻面長度最大的兩個
不同節點N1,N2;
4. if repeatFacet.length == 0 then break;
5. end if
6. if repeatFacet == N1.description then
7. N1.children.add(N2);TreeNode.remove(N2);continue;
8. end if
9. if repeatFacet == N2.description then
10. N2.children.add(N1);TreeNode.remove(N1);continue;
11. end if
12. for everyNode in TreeNode
13. flag = false;
14. if everyNode.description == repeatFacet then
15. everyNode.children.add(N1);
everyNode.children.add(N2);
flag = true;break;
16. end if
17. end for
18. if(!flag) then
19. new Node n;n.description = repeatFacet;
n.children.add(N1);n.children.add(N2);
TreeNode.add(n);
20. end if
21. TreeNode.remove(N1);TreeNode.remove(N2);
22. end while
23. new Node Tree;Tree.addAll(TreeNode);
end Function
2.3 布局設計
本文設計的文本主題聚類以及多刻面層次聚類模型均可以用樹形結構來表達。傳統的樹形可視化布局,在層與層之間父子節點的距離以及每層之間兄弟節點的距離都是統一的,而本文聚類結果中每個節點的大小用于表示聚類中帖子的數目大小。所以用于表示聚類節點的面積大小大都不相同,用傳統的樹形布局來可視化會造成界面覆蓋,節點之間相互遮掩的狀況出現。因此,本文在樹形布局基礎上加入了力導引布局來實現可視化模型,力導引布局可以通過設定不同節點間的作用力來改變節點間的距離。其中力導引布局主要基于d3.js的force布局來實現。布局針對文本主題聚類和多刻面層次聚類采取如下兩種交互手段來展示聚類結果。
2.3.1 橫向擴展
該方式主要用來展示文本主題聚類的結果。如圖2所示:節點ClusterResults表示根節點,其子節點展示了基于關鍵詞搜索而返回的帖子的主題聚類結果。當單擊某個子節點時,根據該子節點內的所有帖子找到具有Linked關系的至多300個帖子再次進行聚類,這些聚類結果作為該子節點的兒子節點。新生成的這些節點作為擴展節點也可根據Linked關系再次進行擴展聚類。

圖2 橫向擴展布局模型
2.3.2 垂直深入
該方式主要用來展示多刻面層次聚類的結果。如圖3所示:該布局通過雙擊圖2中的節點來得到。其中Cluster表示圖2中被雙擊的節點信息。根據層次聚類結果,Cluster代表樹形結構的根節點,其余節點為聚類中產生的中間節點和初始時的根據刻面信息分類所產生的節點,與層次聚類產生的樹結構相對應。樹中邊的文本信息為父節點到子節點時增加的差異刻面信息。其中:無文本信息節點表示該節點只代表層次聚類產生的中間節點,并沒有帖子的刻面信息為該聚類的刻面描述。

圖3 垂直深入布局模型
兩種布局中,節點上的文本信息為該節點的聚類結果主題詞,括號部分的數字為該節點中包含的帖子的個數。節點的大小與該節點包含的帖子數目的大小成正比。節點的顏色表示節點中所有帖子與用戶輸入的搜索關鍵詞的相似度平均值,顏色越深代表相似度越高。鼠標停在某個節點時,界面上同時會顯示該節點中含有的所有帖子的title,點擊title可以跳轉到Stack Overflow上相應的帖子界面。兩種布局均支持拖拽和縮放功能。
本節以一個問題的場景實例,來分析用戶如何通過本文的工具來找到Stack Overflow中可以解決該問題的帖子的過程。并設計了實驗來分析本工具是否可以幫助用戶方便、快速地理解搜索結果并定位問題答案。
3.1 可視化模型實例
實例問題的場景描述如下:用戶在本地新建了一個Git庫,但是想忽略一些文件修改的追蹤信息。他對Git版本控制工具并不太了解,于是想在Stack Overflow上進行相關搜索。針對該問題,用戶首先在圖4中的搜索框中輸入關鍵詞,例如:“how to ignore changes in git”。之后點擊“Analysis”按鈕,工具會對搜索結果進行初始文本主題聚類分析,返回結果見圖5。用戶將鼠標擱置在某個聚類時,界面右側會顯示該聚類中所有帖子的title信息,選取title可以跳轉到相應的Stack Overflow上帖子的網頁。當用戶對某一聚類感興趣時,可以通過單擊該聚類節點查看基于Linked信息的擴展聚類結果。如在圖5中單擊“New Git”聚類節點后擴展出的子節點。也可以直接查看該聚類內部的多刻面分析結果,如圖6是雙擊圖5中“Git Gitignore”聚類節點后得到的可視化結果。此時,用戶可以根據邊上的刻面信息,通過路徑逐步找到存在的刻面組合,定位帖子的方向。通過這兩種交互手段,用戶可以快速地理解搜索結果主題,定位搜索方向,最終找到合適的答案。

圖4 搜索界面實例

圖5 文本主題聚類實例

圖6 多刻面分析實例
3.2 實驗分析
本節先設計了一個對比實驗來分析工具的有效性,并在完成對比實驗后提出了一些驗證性問題幫助我們分析。
實驗方法為選取10位來自復旦大學軟件學院的學生,這些學生均有使用Stack Overflow的經歷。實驗選取5人一組,兩組學生分別使用工具和Stack Overflow來完成5個軟件領域的相關問題。這些問題均有詳細的場景描述,并且難易程度不等。通過分析實驗過程,得到如表2的實驗結果。

表2 實驗結果
通過表2可以看出:使用工具的學生比使用Stack Overflow的學生完成問題的平均時間短,答對問題的個數也有所提高,說明工具可以快速幫助用戶找到問題的答案。而使用工具的學生輸入關鍵詞的次數的減少,表明工具可以幫助用戶理解搜索結果的主題和方向,用戶可以根據聚類得出的主題詞以及多刻面信息來減少自己主動修正關鍵詞信息的行為。
在完成對比試驗后,我們又設計了一些驗證性問題詢問用工具解決問題的5名學生。問題如下:
(1) 是否覺得工具易于理解,可用性好?
(2) 主題聚類效果如何?聚類主題詞是否對用戶搜索方向有幫助?
(3) 層次聚類刻面信息是否比自主選擇更好?
(4) 可視化界面是否比文字列表效果更好?
(5) 有什么建議對該工具?
其中問題1、問題2,所有的學生均表示工具可用性好,相較于Stack Overflow的搜索機制,工具更能幫助自己找到答案并且效率較高。問題3中,4位同學表示聚類效果不錯,對搜索方向有幫助。但是剩下的1位同學表示聚類主題詞中有一小部分不利于理解,主題詞不具有突出性。問題4中,5位同學表示可視化界面效果更優,但是其中2位同學表示多刻面中文本選擇界面跟可視化界面共存應該效果更好。針對問題5,參與學生對以上4個問題進行了總結,提出了聚類算法中對于主題詞的選取應該更貼近于軟件領域詞匯,與語義相結合;多刻面的自動分析與用戶選擇相結合可以更高效定位問題答案等意見。
本文提出了一個基于知識抽取的軟件問答網站搜索優化方法,并針對Stack Overflow中的數據,設計了一個文本主題聚類和多刻面技術相結合的可視化工具。通過實驗表明:該工具基本解決了Stack Overflow上現有的關鍵詞搜索機制造成的信息迷航問題,并達到了幫助用戶理解搜索結果的主題以及方向的搜索優化目的。
[1] Barua A, Thomas W, Hassan E. What are developers talking about? an analysis of topics and trends in stack overflow[J]. Empirical Software Engineering, 2014, 19(3):619-654.
[2] Wang W, Malik H, Godfrey M W. Recommending posts concerning api issues in developer Q&A sites[C]// Proceedings of 12th Working Conference on Mining Software Repositories (MSR), 2015:224-234.
[3] Hearst M A. Clustering versus faceted categories for information exploration[J]. Communications of the Acm, 2006, 49(4):59-61.
[4] Zamir O, Etzioni O. Web document clustering: a feasibility demonstration[C]// Proceedings of the 21st annual international ACM SIGIR conference on Research and development in information retrieval. ACM, 1998:46-54.
[5] Osiński S, Stefanowski J, Weiss D. Lingo: Search Results Clustering Algorithm Based on Singular Value Decomposition[M]// Intelligent Information Processing and Web Mining. Springer Berlin Heidelberg, 2004:359-368.
[6] Zhang Y, Lo D, Xia X, et al. Multi-factor duplicate question detection in stack overflow[J]. Journal of Computer Science and Technology, 2015, 30(5):981-997.
[7] Ye D. On domain knowledge organization and extraction in software engineering[D]. Singapore:Nanyang Technological University, 2016.
[8] Bogdanova D, Santos C N D, Barbosa L, et al. Detecting semantically equivalent questions in online user forums[C]// Proceedings of the 19th Conference on Computational Natural Language Learning(CoNLL). Beijing, China, 2015:123-131.
[9] IN-SPIRETMVisual Document Analysis[EB/OL]. 2008-06-12. http://in-spire.pnl.gov/.
[10] Jiang Q, Peng X, Yang J, et al. Searching StackOverflow questions with multi-faceted categorization[R]. 復旦大學軟件工程實驗室技術報告,2017.
OPTIMALDESIGNONSOFTWAREQ&AWEBSITESEARCHBASEDONKNOWLEDGEEXTRACTION
Liang Renhua1,2Peng Xin1,2Zhenchang Xing3Zhao Wenyun1,2
1(SoftwareSchool,FudanUniversity,Shanghai201203,China)2(ShanghaiKeyLaboratoryofDataScience,Shanghai201203,China)3(ResearchSchoolofComputerScience,AustralianNationalUniversity,Canberra2615,Australia)
The search mechanism of software Q&A website based on keywords can’t help users find answers very well. Numerous returns result in information loss, and users are required to spend extra time filtering out the information they need. In this situation, a method of text topic clustering and multi-faceted techniques is proposed based on text information provided by stack overflow. Knowledge extraction on search results and links helped users understand the topic and direction of the search results. And a visualization model was designed to express knowledge based on force and tree layout. A dynamic interactive visualization tool based on Web was implemented, which basically achieved the goal in solving information loss and helped users to locate the answers to questions.
Knowledge extraction Text topic clustering Multi-faceted Visualization Software Q&A website
2017-03-07。國家自然科學基金項目(61370079)。梁仁華,碩士生,主研領域:軟件演化可視化,領域搜索。彭鑫,教授。Zhenchang Xing,高級講師。趙文耘,教授。
TP311
A
10.3969/j.issn.1000-386x.2017.12.014