首页> 中国专利> 面向Web的VSM分类器训练、OSSP页面识别及OSS资源提取方法

面向Web的VSM分类器训练、OSSP页面识别及OSS资源提取方法

摘要

本发明提供了面向Web的VSM分类器训练、OSSP页面识别及OSS资源提取方法。其中,VSM分类器训练方法包括:基于OSSP页面识别特征向量,用初始样本集训练VSM分类器;所述OSSP页面识别特征向量是:在软件版本控制管理关键词、邮件列表关键词、Bug跟踪关键词、开发者列表关键词、证书关键词、修改日志关键词、任务列表关键词,以及软件控制管理命令中选取其中7项或选择全部8项作为分量而组成的VSM分类器特征向量。OSSP页面识别方法则是根据所训练出的VSM分类器识别出Web页面是否为OSSP页面。OSS资源提取方法则是在所识别出的OSSP页面中查找OSS资源并将其下载到本地。本发明能够显著提高面向Web的OSSP页面识别的精确度;够提高OSS资源搜索和下载的完备性;能够更准确地获取OSS资源。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-03

    授权

    授权

  • 2014-01-22

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20101215

    实质审查的生效

  • 2012-07-04

    公开

    公开

说明书

技术领域

本发明涉及Web文档分类和Web页面信息提取技术领域,具体地说, 本发明涉及VSM分类器训练方法、OSSP(开源软件主页)页面识别方法 及OSS(开源软件)资源提取方法。

背景技术

一、OSS简介

开源软件英文为Open Source Software,缩写为OSS。自1983年自由 软件运动发起,开源软件的拥护者一直倡导着“自由、参与、奉献和协作” 的精神,这种精神吸引着大批精英投身其中,逐渐形成了自由软件联盟 (FSF)、开放源码促进会(OSI)等多个组织。

开源软件经历了近三十年的发展,在全球形成了庞大的规模,以Linux 为龙头的开源软件迅猛增长,同时也逐渐形成了类似Sourceforge的开源软 件协同开发联盟(OSSF),每个联盟中的软件项目数从几十个几百个到几 十万个不等,这样的联盟数目还在不断的增加中。

二、OSS资源的搜索方法

目前,各大开源软件联盟一般都内嵌有专用搜索引擎,从而方便了用 户或OSS开发者查找自己所需的OSS资源(主要是源代码)。然而,这种 专用搜索引擎往往只能用于一个开源软件联盟内部的搜索,信息量十分有 限,所返回搜索结果不够完备。

另外,现有技术中还可以使用通用搜索引擎(比如Google)在海量的 Web页面中搜索OSS资源。以Google为例,输入开源软件的关键词,Google 会返回搜索结果列表,用户可以通过浏览搜索结果列表来获取OSS资源。 这种做法所返回搜索结果较为完备,然而,使用通用搜索引擎返回的结果 往往夹杂大量的不含有OSS资源的Web页面,因此,用户必须浏览大量 的页面来寻找所要的软件,使用十分不便。因此当前迫切需要能够同时提 高搜索完备性和准确性的OSS资源搜索的解决方案。

三、现有的基于机器学习的文本分类技术

现有技术中,存在一种基于机器学习的文本分类技术,该技术可以应 用于网页分类。然而,基于机器学习的文本分类技术用于OSSP页面识别, 会存在以下缺陷:

1、OSSP页面不同于普通Web页面,不能简单地依据词频来选取关 键词。比如对识别OSSP页面相当有价值的SVN、Git、CVS、License等 词在OSSP页面中的词频可能并不高,有时甚至可能只出现一次。这样, 经典的文本分类方法中,一些与OSS无关的但词频较大的词可能会被作为 主要特征输入基于机器学习的分类器,进而导致识别结果精确度偏低。

2、在海量的Web页面中,存在大量的与OSS相关的页面,比如简介 某一OSS的页面,这类相关页面的具有OSSP页面的很多特征,但缺乏代 码版本控制库的入口,也就是说用户不能从这类OSS相关页面中获取源代 码。容易理解,经典的文本分类方法中,可能将大量的OSS相关页面误判 为OSSP页面,这也使得识别结果精确度大大降低。

综上所述,当前迫切需要一种高精确度的面向Web的OSSP页面识别 方法及OSS资源提取方法。

发明内容

本发明的目的是提供一种高精确度的面向Web的VSM分类器训练方 法、OSSP页面识别方法及OSS资源提取方法。

为实现上述目的,本发明提供了一种VSM分类器训练方法,该方法 基于OSSP页面识别特征向量,用初始样本集训练VSM分类器;所述OSSP 页面识别特征向量是:在软件版本控制管理关键词、邮件列表关键词、bug 跟踪关键词、开发者列表关键词、证书关键词、修改日志关键词、任务列 表关键词,以及软件控制管理命令中选取其中7项或选择全部8项作为分 量而组成的VSM分类器特征向量。

本发明还提供了一种面向Web的OSSP页面识别方法,包括下列步 骤(如图1所示):

1)基于OSSP页面识别特征向量,用初始样本集训练VSM分类器;所 述OSSP页面识别特征向量是:在软件版本控制管理关键词、邮件列表关 键词、bug跟踪关键词、开发者列表关键词、证书关键词、修改日志关键 词、任务列表关键词,以及软件控制管理命令中选取其中7项或选择全部 8项作为分量而组成的VSM分类器特征向量;

2)对每个待识别Web页面,分别提取每个Web页面的OSSP页面识别 特征向量,然后用训练过的VSM分类器识别出该Web页面是否为OSSP页 面。

本发明还提供了一种面向Web的OSS资源提取方法,包括下列步骤:

1)根据上述的面向Web的OSSP页面识别方法识别出Web页面中的 OSSP页面;

2)在所识别出的OSSP页面中查找OSS资源并将其下载到本地。

与现有技术相比,本发明具有下列技术效果:

1、本发明能够显著提高面向Web的OSSP页面识别的精确度;

2、本发明能够提高OSS资源搜索和下载的完备性;

3、本发明能够更准确地获取OSS资源。

附图说明

图1示出了本发明实施例1的面向Web的OSSP页面识别方法的流程 图;

图2示出了本发明实施例2的面向Web的OSS资源提取方法的流程 图。

具体实施方式

为更好地阐述本发明,首先介绍OSS和OSSP页面的定义,以及现有 的基于机器学习的文本分类技术。

①、OSS和OSSP页面的定义

开放源码促进会(OSI)对OSS的定义如下(包括10个方面):

1、自由再发行

许可证不能限制任何团体销售或赠送软件,软件可以是几个不同来源 的程序集成后的软件发行版中的其中一个原件。许可证不能要求对这样的 销售收取许可证费或其他费用。

2、程序源代码

程序必须包含源代码。必须允许发行版在包含编译形式的同时也包含 程序源代码。当产品以某种形式发行时没有包含源代码,必须非常醒目的 告知用户,如何通过Internet免费的下载源代码。源代码必须是以当程序 员修改程序时优先选用的形式提供。故意地扰乱源代码是不允许的。以预 处理程序或翻译器这样的中间形式作为源代码也是不允许的。

3、派生程序

许可证必须允许更改或派生程序。必须允许这些程序按与初始软件相 同的许可证发行。

4、作者源代码的完整性

只有当许可证允许在程序开发阶段,为了调整程序的目的将“修补文 件”的发行版与源代码一起发行时,许可证才能限制源代码以更改后的形 式发行。许可证必须明确地允许按更改后的源代码所建立的程序发行。许 可证可以要求派生的程序使用与初始软件不同的名称或版本号。

5、不歧视个人或团体

许可证必须不得歧视任何个人或者团体。

6、不歧视领域内的尝试

许可证不能限制任何人尝试将程序应用于某个特定的领域。例如不能 限制程序应用于商业领域,或者应用于遗传研究。

7、许可证发行

附属于程序的权力必须适用于所有的程序分销商,而不需要这些团体 之间再附加其他额外的许可证。

8、许可证不能特制某个产品

如果程序是某软件的某一发行版中的一部分,附属于该程序的权力不 是必须依赖于这一发行版。如果程序是从某一发行版中摘录出来的,使用 或发行时用的都是那个程序的许可证,分销程序的所有团体都应拥有与初 始软件版所允许的所有权力。

9、许可证不能排斥其他软件

许可证不能限制随该许可证软件一起发行的其他软件。例如,许可证 不能要求所有与之一起发行的其他软件都是开源软件。

10、许可证必须是技术中立的

许可证不能建立在任何个人技术或者接口风格的基础上。

以上定义非常复杂,实际上,本领域技术人员可以简单地从是否具有 License和源代码这两个方面来判断一个软件资源是否是OSS资源。本发 明中,只要一个软件资源同时具有License和源代码,即判定其为OSS资 源。每一个OSS资源一般都具有相应的开源软件开发社区主页,为方便描 述,本文中将开源软件开发社区主页称为OSSP。容易理解,如果能够利 用学习机从海量的Web页面中识别出哪些是OSSP页面,那么OSS资源 的搜索就能同时在效率和完备性两个方面获得显著提高。在本发明中, OSSP页面是指提供了代码版本控制库的入口,能够下载和上传OSS源代 码的页面。基于这一定义,在构造初始样本集时,本领域的普通技术人员 能够直观地且唯一地判断出一个web页面是否是OSSP页面。

②、现有的基于机器学习的文本分类技术

现有技术中,存在一种基于机器学习的文本分类技术,该技术可以应 用于网页分类。下面简要介绍一种经典的文本分类方法,该文本分类主要 包括以下几个步骤:

文本表示→训练样本集的建立→训练分类器→分类预测。

文本表示最主要的方法就是向量空间表示模型(Vector Space Model, VSM),现有技术中,主要以词(或词组)作为项,以项的频率为基础计算权重, 每个文本d都可以表示为由词和词频对组成的向量, d={(t1,w1d),(t2,w2d),…,(tn,wnd)}。

训练样本集就是有限的一个由文本向量和文本类属组成的集合,其表现 形式如表1

表1

  Term1   Term2 ...... 类别 文本1   Term1在文档1中的词频   Term2在文档1中的词频 ...... 体育 文本2   Term1在文档2中的词频   Term2在文档2中的词频 ...... 音乐 ......   ......   ...... ...... ......

目前,基于机器学习的分类器主要有:SVM、Bayes、线性分类、决策树 及k-NN等方法,SVM具有扎实的理论基础,在许多应用领域比大多数其 他的算法更精准,尤其在处理高维数据时;另外,很多研究人员认为SVM 可能是解决文本分类问题最为准确的算法,所以一般选择SVM为主要的分 类器。

SVM分类器的主要工作原理(最简单的情况):SVM是一个线性的学习 系统,主要用于二值分类问题。训练样本集为{(X1,y1),(X2,y2),…,(Xn,yn)},其 中Xi=(xi1,xi2,…,xir)是一个r维的输入向量,yi是Xi的类属标记。比如,对于 表来说,文本1的输入向量为X1=(w11,w21,…,wr1),类属标记为 yi∈{体育,音乐}。

SVM就是寻找一个线性函数(1)

f(X)=<W·X>+b          (1)

如果f(Xi)>0那么Xi被赋予正类,否则被赋予负类,即(2)

对于表来说,如果f(X1)>0说明文本1分类为y1=体育;f(X2)<0说明文 本2分类为y2=音乐。

结合上述分析,可以看出,将上述经典的文本分类方法用于OSSP页 面识别,会存在以下缺陷:

1、OSSP页面不同于普通Web页面,不能简单地依据词频来选取关 键词。比如对识别OSSP页面相当有价值的SVN、Git、CVS、License等 词在OSSP页面中的词频可能并不高,有时甚至可能只出现一次。这样, 经典的文本分类方法中,一些与OSS无关的但词频较大的词可能会被作为 主要特征输入基于机器学习的分类器,进而导致识别结果精确度偏低。

2、在海量的Web页面中,存在大量的与OSS相关的页面,比如简介 某一OSS的页面,这类相关页面的具有OSSP页面的很多特征,但缺乏代 码版本控制库的入口,也就是说用户不能从这类OSS相关页面中获取源代 码。容易理解,经典的文本分类方法中,可能将大量的OSS相关页面误判 为OSSP页面,这也使得识别结果精确度大大降低。

下面结合具体实施例对本发明作进一步地描述。

实施例1

根据本发明的一个实施例,提供了一种基于VSM(向量空间表示模型) 分类器的面向Web的OSSP页面识别方法,该方法包括下列步骤:

1)选取一组关键词作为VSM分类器的特征向量;

2)基于步骤1)的特征向量,用初始样本集训练VSM分类器;

3)用训练过的VSM分类器进行web页面识别。

本实施例还提供了相应的OSS资源提取方法,该方法是根据上述步骤 1)2)3)识别出OSSP页面,然后在该OSSP页面查找OSS资源(如源代 码),并将其下载到本地存储设备。

下面分别介绍上述各个步骤。

一、关键词选取

在步骤1)中,VSM分类器的特征向量由一组不同类型的关键词组成。 本实施例中,关键词按类型分为:软件版本控制管理关键词、邮件列表关 键词、Bug跟踪关键词、开发者列表关键词、证书关键词、修改日志关键 词和任务列表关键词。

其中,软件版本控制管理关键词包括SVN、Git或CVS。只要一个 Web页面中含有SVN、Git、CVS中任一个词,即可判断该web页面具有 软件版本控制管理关键词;否则判断该Web页面不具有软件版本控制管理 关键词。

邮件列表关键词包括Mailing Lists、Mail_List或Email_List。只要一个 Web页面中含有Mailing Lists、Mail_List或Email_List中任一个词,即可判 断该Web页面具有邮件列表关键词;否则判断该Web页面不具有邮件列表 关键词。

Bug跟踪关键词包括Bug Trackers、Issue Tracker或Bug Report。只要一 个Web页面中含有Bug Trackers、Issue Tracker、Bug Report中任一个词,即 可判断该Web页面具有Bug跟踪关键词;否则判断该Web页面不具有Bug 跟踪关键词。

开发者列表关键词包括Developer List、Member List、Project Memberlist、 Blogger List、View Members或Author。只要一个Web页面中含有Developer List、Member List、Project Memberlist、Blogger List、View Members、Author 中任一个词,即可判断该Web页面具有开发者列表关键词;否则判断该Web 页面不具有开发者列表关键词。

证书关键词包括GPL、Apache License、BSD License、MIT license、 Mozilla Public License、Common Development and Distribution License或 Eclipse Public License。只要一个Web页面中含有GPL、Apache License、BSD License、MIT License、Mozilla Public License、Common Development and Distribution License、Eclipse Public License中任一个词,即可判断该Web页 面具有证书关键词;否则判断该Web页面不具有证书关键词。

修改日志关键词包括Change Log、Commit Log、Update Log。只要一个 Web页面中含有Change Log、Commit Log、Update Log中任一个词,即可 判断该Web页面具有修改日志关键词;否则判断该Web页面不具有修改日 志关键词。

任务列表关键词包括task lists。

二、VSM分类器的训练

在步骤2)中,以已知的开源软件协同开发联盟(OSSF)的OSSP页 面为基础构建初始训练样本集。初始训练样本集中,对于一个OSSP页面, 与其对应的VSM特征向量为:(软件版本控制管理关键词,邮件列表关键 词,Bug跟踪关键词,开发者列表关键词,证书关键词,修改日志关键词, 任务列表关键词)。每个关键词的值为“0”或“1”,分别表示该OSSP页面不 具有或具有对应类型的关键词。而VSM分类器的输出值也为“0”或“1”,分 别表示“否”或“是”OSSP页面。

为增加VSM分类器的精确度,可以在初始训练样本集中进一步增加已 被人工识别的Web页面。按照前文所述的定义,提供了代码版本控制库的 入口,能够下载和上传OSS源代码的页面,即可认为是OSSP页面。基于 该定义,本领域的普通技术人员能够直观地且唯一地判断出一个Web页面 是否是OSSP页面。

具体地,通过本领域普通技术人员按照OSSP页面定义对100个典型的 与OSS相关的Web页面进行判定,得出其是否是OSSP页面,最终形成以 是否包含软件版本控制管理关键词,邮件列表关键词,Bug跟踪关键词, 开发者列表关键词,证书关键词,修改日志关键词,任务列表关键词为属 性,以是否是OSSP页面为类属的训练样本集。

将初始训练样本集中的每个OSSP页面或非OSSP的Web页面的VSM 特征向量输入VSM分类器,同时将OSSP页面或非OSSP的Web页面的所 对应的VSM输出值也赋予VSM分类器,从而得到经过初始训练的VSM分 类器。

三、web页面的识别

在步骤3)中,对于每个待识别的Web页面,计算机分别检索该Web 页面中是否具有软件版本控制管理关键词、邮件列表关键词、Bug跟踪关 键词、开发者列表关键词、证书关键词、修改日志关键词和任务列表关键 词,从而得出该Web页面所对应的VSM特征向量。将该VSM特征向量输 入训练过的VSM分类器,得出VSM输出值,如果VSM输出值为“1”时, 该Web页面是OSSP页面,如果VSM输出值为“0”时,该Web页面不是OSSP 页面。

当VSM输出值为“1”时,可以进一步将当前Web页面的VSM特征向量 及其VSM输出值加入训练样本集,以便对VSM分类其作进一步的训练, 以进一步提高识别的精确度。

上述实施例以OSSP页面文本中的关键词作为特征训练分类器。然而, 仅使用文本中的关键词,可能会出现假阳性的问题。比如简介某一OSS 的页面,这类相关页面具有OSSP页面的很多特征,但缺乏代码版本控制 库的入口,也就是说用户不能从这类OSS相关页面中获取源代码,因此这 类Web页面并不是OSSP页面。而仅使用文本中的关键词作为特征向量进 行识别时,有可能将大量简介性质的页面误判为OSSP页面。因此,本发 明还提供了优选实施例,该优选实施例与前面的实施例基本一致,区别是 采用了不同的VSM特征向量。在优选实施例中,VSM特征向量除了关键词 外,还包括OSSP页面结构特征。OSSP页面结构特征包括软件控制管理命 令。在优选实施例中,VSM特征向量中增加一个元素--软件控制管理命令。 根据web页面是否具有软件控制管理命令来决定VSM特征向量中对应于的 软件控制管理命令的值是“1”还是“0”。该优选实施例的其余部分与前述的第 一个实施例完全一致,这里不再赘述。

该优选实施例中,软件控制管理命令包括:第一次下载的命令、下载 服务器上最新的更新的命令、检出某个修订版本的命令、添加被跟踪文件 的命令、删除被跟踪文件的命令或者提交更改的命令。即只要一个Web 页面中含有第一次下载的命令、下载服务器上最新的更新的命令、检出 某个修订版本的命令、添加被跟踪文件的命令、删除被跟踪文件的命 令、提交更改的命令中任一个命令,即可判断该Web页面具有软件控制管 理命令;否则判断该Web页面不具有软件控制管理命令。

进一步地,OSSP页面的软件控制管理命令包括:(包含目前主流的三 种控制管理软件-svn、cvs、git的常用命令)

(1)第一次下载,包括源码和版本库:

对于SVN控制管理软件,该命令为:

svn checkout http://path/to/repo repo_name

对于CVS控制管理软件,该命令为:

cvs checkout project_Lname

对于Git控制管理软件,该命令为:

git-clone\git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\linux-2.6

(2)下载服务器上最新的更新

对于SVN控制管理软件,该命令为:

svn update[-r rev]PATH

对于CVS控制管理软件,该命令为:

cvs update

对于Git控制管理软件,该命令为:

git-pull git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

(3)检出某个修订版本

对于SVN控制管理软件,该命令为:

svn checkout-r<rev>

对于CVS控制管理软件,该命令为:

cvs checkout-r rel-1-0 tc

对于Git控制管理软件,该命令为:

git reset-hard-r<rev>

(4)添加被跟踪文件

对于SVN控制管理软件,该命令为:

svn add PATH...

对于CVS控制管理软件,该命令为:

cvs add new_file

对于Git控制管理软件,该命令为:

git-add Documentation/Sandwiches

(5)删除被跟踪文件

对于SVN控制管理软件,该命令为:

svn delete PATH

对于CVS控制管理软件,该命令为:

cvs rm file_name

对于Git控制管理软件,该命令为:

git rm/path/to/file Svn8.Com

(6)提交更改

对于SVN控制管理软件,该命令为:

svn status-v PATH

对于CVS控制管理软件,该命令为:

cvs commit-m″write some comments here″file_name

对于Git控制管理软件,该命令为:

git commit

除了上述实施例外,本发明的VSM特征向量还可以采用其它组合方 式。比如,可以从软件版本控制管理关键词、邮件列表关键词、Bug跟踪 关键词、开发者列表关键词、证书关键词、修改日志关键词和任务列表关 键词以及软件控制管理命令中选择任意7项组成VSM特征向量。

VSM分类器可以选择SVM、Bayes、线性分类、决策树或k-NN等分 类器,其中,适合二值分类的方法有SVM和决策树,而本上述实施例属于 二值分类的范畴,所以可选的分类器为SVM和决策树。

下面给出本发明的一些实际测试数据。

测试样本集说明:本发明的测试样本集与分类器的训练样本集构造方 法一样,都是通过本领域普通技术人员按照OSSP页面定义对100个典型的 与OSS相关的Web页面进行判定,得出其是否是OSSP页面,最终形成以 是否包含软件版本控制管理关键词,邮件列表关键词,Bug跟踪关键词, 开发者列表关键词,证书关键词,修改日志关键词,任务列表关键词为属 性,以是否是OSSP页面为类属的样本集合。

实验条件说明:

硬件配置:SONY NW系列(CPU:双核2.1G,内存:4G)

软件配置:操作系统为WIN7,编译运行环境为Eclipse Java EE IDE for Web Developers,数据库为MySQL 5.0.89。

精确度的定义如表2所示:

表2

注:TP:本来为正例,被正确的分类为正例的数目(true positive)

    FN:本来为正例,被错误的分类为反例的数目(false negative)

    FP:本来为反例,被错误的分类为正例的数目(false positive)

    TN:本来为反例,被正确的分类为反例的数目(true negative)

不同分类器使用本发明方法产生的分类效果如表3所示:

表3

从表3中可以看出,无论是基于SVM分类器还是决策树分类器,本 发明相对于传统的基于机器学习的文本分类技术的方法均由显著提高。

实施例2

本实施例提供了一种自动的智能的OSS资源提取方法,该方法从开源软 件联盟的网页出发,通过游走于页面上的各种链接,学习页面及链接的特征, 自动、高效的识别OSSP页面,最终将OSS资源提取出来,存储到本地数据 库。本实施例中,所述的OSS资源可以是OSS信息,OSS信息包括软件名称、 开发社区入口地址、开发团队入口地址、邮件列表入口地址、Bug列表入口 地址、代码版本控制系统入口地址。

如图2所示,本实施例的OSS信息提取方法包括以下步骤:

步骤1、录入各大开源软件联盟网址,将他们存入链接缓冲队列(种子 链接列表)。

步骤2、自动读取队列中一条未读链接,分析链接指向的网页,根据网 页中不同的链接类型游走,判断游走路径中出现的web页面是否是OSSP页 面,并捕获所识别出的OSSP页面,最终形成一个OSSP网页集合,同时更新 链接缓冲队列。其中OSSP页面的识别方法与实施例1一致,这里不再赘述。 在识别出新的OSSP页面时,可将该OSSP页面存入OSSP学习样本集,以不断 训练分类器。

步骤3、自动分析OSSP网页集合中的每一个OSSP页面,识别OSS的相关 属性,提取每一个OSSP网页对应的OSS信息。OSS信息包括软件名称、开发 社区入口地址、开发团队入口地址、邮件列表入口地址、Bug列表入口地址、 代码版本控制系统入口地址。

步骤4、将提取的OSS信息存入数据库表,数据库表的字段包括<软件名 称,开发社区入口地址,开发团队入口地址,邮件列表入口地址,Bug列表 入口地址,代码版本控制系统入口地址>。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限 制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员 应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发 明技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号