论文部分内容阅读
在软件复用过程中,软件资源的质量是开发者选择复用资源的重要参考依据。随着Intemet技术的发展,越来越多的开发人员会在使用了软件资源之后将自己的使用感受以评论的形式发布到互联网上,也习惯从Internet上查找自己所不熟悉的软件资源的评论来判断软件资源的质量。本文将包含软件资源质量信息的评论称为软件质量评论(以下简称软件评论或评论)。这些软件评论以自然语言的形式广泛分布在Internet上,且数量非常庞大。软件开发人员查找和阅读这些评论信息会花费大量的时间和精力。为此,需要一种自动化的软件评论搜集、分析机制,帮助开发者高效获取其需要的软件评论信息,并基于这些评论来辅助评估软件资源的质量。 基于上述目标,本文对如何收集评论信息、如何获得评论的情感倾向、如何挖掘评论中谈及的质量信息三个问题进行了分析研究,提出了一种基于Internet的软件评论收集与软件质量信息挖掘的解决方案,该方案包括: (1)采取通用搜索引擎收集和特定站点收集相结合的方法开发基于Internet的软件评论搜索引擎,从而为软件资源收集相关的文本评论。虽然目前Internet上存在大量的软件评论,但是相对整个Internet上的海量信息,这些评论只占非常小的一部分。因此,需要一种有效的方法从海量信息中准确的为软件资源收集评论信息。首先,本文选择Google作为通用搜索引擎,使用模拟浏览器的方式来为软件资源收集相关信息。由于收集到的相关信息中同时包含描述信息和评论信息,本文使用一种基于机器学习的方法从相关信息中分离出软件评论。另外,软件评论搜索引擎还从一些典型的软件资源托管站点抓取评论。由于这些站点的页面结构是己知的,本文直接根据评论在页面中的位置设计相应的爬虫程序来抓取资源的评论信息。 (2)提出了一种基于机器学习的方法来对软件评论的情感倾向进行分析。一般来说,软件开发人员会在评论中表达自己的情感倾向(软件资源的好、坏等)。分析和获得这种情感倾向,将有助于分析、获得一个软件资源的信誉(reputation)。为此,本文总结了软件评论的特点,利用机器学习的方法对软件的情感进行分析。在机器学习的特征选择方面,本文不仅选择评论的词语特征,还选择评论的一些结构特征(如长度等)。经过验证,选择这些特征对软件资源的评论进行分析,准确率和召回率均可达到92%。 (3)提出了一种基于软件评论来分析软件资源质量属性的方法。在复用过程中,软件开发人员通常会关注软件资源具体的质量属性上。例如这个软件资源的文档是否充分、是否可靠等。为此,本文针对复用过程中用户关注的软件质量属性进行了调研,并基于McCall模型和ISO9126质量模型总结了用户最关注的七个质量属性的集合,继而提出了一种从相关评论中挖掘软件质量信息的方法。具体的,本文根据评论的特点,将评论分为整体性评论和具体性评论两类。对于整体性评论,采用统计学方法卡方统计量(Chi-Square Statistic)来进行质量信息挖掘:针对具体性评论,采用细粒度的依存语法来进行分析,从而基于对评论的语法结构来提取评论中所包含的软件质量信息。 根据上述方案,本文设计并实现了一个软件质量评论信息挖掘工具。本文对该工具的设计和实现进行了详细的介绍,对工具中的技术难点、核心算法和关键模块进行了详细的描述。实验表明,本文工具可以有效的为软件资源收集和获取相关的评论信息,并基于这些评论中挖掘出用户关注的软件质量属性。