基于知识抽取的软件问答网站搜索优化设计

2018-01-03 01:54梁仁华ZhenchangXing赵文耘
计算机应用与软件 2017年12期
关键词:帖子聚类可视化

梁仁华 彭 鑫 Zhenchang Xing 赵文耘

1(复旦大学软件学院 上海 201203) 2(上海市数据科学重点实验室 上海 201203) 3(澳大利亚国立大学计算机科学研究院 堪培拉 2615)

基于知识抽取的软件问答网站搜索优化设计

梁仁华1,2彭 鑫1,2Zhenchang Xing3赵文耘1,2

1(复旦大学软件学院 上海 201203)2(上海市数据科学重点实验室 上海 201203)3(澳大利亚国立大学计算机科学研究院 堪培拉 2615)

软件问答网站基于关键词的搜索机制往往并不能很好地帮助用户找到问题的答案。众多的返回结果造成信息迷航,用户需要花费额外的时间来筛选出自己所需要的信息。针对这种情况,基于Stack Overflow提供的文本信息,提出通过文本主题聚类结合多刻面技术的方法。对搜索结果以及链接关系等信息进行知识抽取,帮助用户理解搜索结果的主题以及方向。设计一种力导引加树形布局的可视化模型对知识进行表达。实现了一个基于Web的动态交互可视化工具,基本达到了解决信息迷航,帮助用户定位问题答案的搜索优化目的。

知识抽取 文本主题聚类 多刻面 可视化 软件问答网站

0 引 言

软件问答网站是一种基于用户知识分享行为的交互网站。其独特的可交互性及社交化吸引了越来越多的人们。以软件领域的大型问答网站——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.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地势图,基于距离的远近定义文本间的相似度,并把相近的文本形成山峰;另一种是平面上的星云图来展示聚类的文本相似程度以及离散形态。另外,还有一些针对层次化聚类结果绘制的树状图、金字塔图等可视化布局。这些研究工作大都基于静态数据的可视化分析,交互手段相对单一。我们主要根据主题聚类结果以及多刻面信息,使用力导引加以树形布局,动态地从横向扩展、垂直深入两种交互方式展示聚类结果的可视化信息。

2 聚类及多刻面可视化设计

文本主题聚类可以根据搜索结果的帖子内容提取出相关主题。这些主题作为知识抽取的结果,可以很好地区分出不同帖子集合的内容,但是还是会产生帖子数目相对较多的聚类,不利于用户快速理解某个聚类中帖子的内容。而多刻面技术是基于帖子内容的不同特征,定义出一些基本刻面词来对知识进行表达,之后分析每个帖子的文本内容,抽取出刻面信息来特征化每个帖子。这种方法能很好地对文本进行分类,但是对用户查找合适搜索结果的有效性主要基于用户对刻面的选择。用户选出的刻面组合往往并不能很好地划分搜索结果集合,返回的搜索结果数目会出现过多或者过少的状况。针对上述情况,我们提出了文本主题聚类与多刻面技术相结合的知识抽取方法,在文本主题聚类的基础上,对每个聚类结果进行多刻面分析并对刻面信息进行层次聚类,帮助用户更好地理解搜索结果,快速地寻找合适的搜索答案。

文本主题聚类结合多刻面技术的可视化设计如图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 p;

List children;

}

Function cluster(Posts)

1. 将Posts按刻面信息分类,每一类用Node对象表示,添加到List TreeNode 中

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上相应的帖子界面。两种布局均支持拖拽和缩放功能。

3 可视化模型实例及实验

本节以一个问题的场景实例,来分析用户如何通过本文的工具来找到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个问题进行了总结,提出了聚类算法中对于主题词的选取应该更贴近于软件领域词汇,与语义相结合;多刻面的自动分析与用户选择相结合可以更高效定位问题答案等意见。

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

猜你喜欢
帖子聚类可视化
基于CiteSpace的足三里穴研究可视化分析
自然资源可视化决策系统
思维可视化
自然资源可视化决策系统
数种基于SPSS统计工具的聚类算法效率对比
面向WSN的聚类头选举与维护协议的研究综述
改进K均值聚类算法
暴力老妈
基于Spark平台的K-means聚类算法改进及并行化实现
高手是这样拍马屁的