考虑多参考因素的StackOverflow重复问题检测方法与流程

文档序号:17374661发布日期:2019-04-12 23:10阅读:275来源:国知局
考虑多参考因素的Stack Overflow重复问题检测方法与流程

本发明涉及重复问题检测技术领域,具体而言,尤其涉及一种考虑多参考因素的stackoverflow重复问题检测方法。



背景技术:

随着it技术的普遍应用和网络的普及,技术人员在遇到相关问题时,习惯在网络上发帖提问。随之而来的是技术相关提问网站的兴起,stackoverflow便是其中的一个。stackoverflow是一个基于众包思想的技术问答网站,用户在遇到it相关的问题时,可以再网站上进行提问,描述自己遇到的相关问题,同时也可以贴出自己的代码。对于提出的问题,网站上的所有用户都可以进行解答。这样一来用户往往可以在网站上解决自己遇到的相关问题。但是这种模式下的网站也会遇到一些问题,例如用户间往往会遇到相同问题,在进行提问时可能提出内容相同的问题,这些问题存在的意义较小,浪费了网站的资源影响了网站的运行。对于这部分重复问题,网站现有的手段是对重复问题进行手动标记,网站上高荣誉值的用户可以对问题进行标记,网站的工作人员对标记的问题进行判断是否重复和是否删除。

目前一些研究人员试图解决stackoverflow重复检测问题,夏鑫等人于计算机科学技术学报中的multi-factorduplicatequestiondetectioninstackoverflow一文中首次对stackoverflow中的重复问题检测进行研究,提出了duppredictor工具,考虑描述,标题,标签和主题间相似度。m.ahasanuzzaman于miningduplicatequestionsinstackoverflow提出dupe工具进行重复检测,应用wordnet和命名实体识别工具同时结合逻辑回归模型进行重复问题检测。weiemmazhang于detectingduplicatepostsinprogrammingqacommunitiesvialatentsemanticsandassociationrules提出pcqadup工具,除了考虑文本信息以外进行关联对开发作为相似度的一个度量标准。

上述提到的重复问题检测时都考虑到多种参考因素,对于要考虑的多种参考因素主要分为使用分类算法和分配权重两种方法来进行组合利用。其中使用分类的方法时,要进行分类器训练,使用数据集中大部分数据才能保证效果,对数据集的大小有一定的要求,另外数据集变化时需要重新训练分类器,另外属性较多时往往需要更长的计算时间。而在分配权重方法中,虽然训练集数据较少,参数分布较为稳定,但求解参数使用贪婪算法,存在参数未能求解最优的情况,另外该方法中考虑因素较少,考虑不全面。



技术实现要素:

根据上述提出的技术问题,而提供一种考虑多参考因素的stackoverflow重复问题检测方法。

本发明采用的技术手段如下:

一种考虑多参考因素的stackoverflow重复问题检测方法,包括如下步骤:

s1、从stackoverflow历史问题数据集中挑选出重复问题与正常问题构建数据集,从数据集中筛选出本身包含参考信息并且原问题非空的重复问题作为有效重复问题,所述参考信息包括:描述、标题、标签信息,所述正常问题包括重复问题的原问题;

s2、对数据集中有效重复问题和正常问题各中各参考信息进行预处理,将各参考信息转化为向量形式;

s3、计算预处理后的有效重复问题与正常问题间各参考信息的相似度;

s4、对预设数量的一部分有效重复问题构建训练集,通过人工蜂群算法计算各参考信息所占权重,并通过添加问题的召回率和排名信息的目标函数判断权重分配的优劣,得到相似度模型;

s5、将预设数量的另一部分有效重复问题构建的测试集输入相似度模型中,对测试集中的每个重复问题和正常问题进行相似度计算,获取n个相似度分数最高的重复问题,进而判断获取的n个重复问题是否包含原问题,如果包含则为成功召回。

进一步地,所述步骤s2中,所述预处理包括:对数据集中的问题进行分词、词干化和去停用词处理。

进一步地,所述步骤s3中,计算各参考信息的相似度具体为:

计算标题相似度作为第一参考因素,通过余弦相似度来计算有效重复问题与正常问题间标题单词向量之间的相似程度,其中向量中的每一元素为该词汇在标题中的出现频率,对于转换后的向量采用余弦相似度计算相似度;

计算描述相似度作为第二参考因素,通过余弦相似度来计算有效重复问题与正常问题间描述单词向量之间的相似程度,其中向量中的每一元素为该词汇在标题中的出现频率,对于转换后的向量采用余弦相似度计算相似度;

计算标签相似度作为第三参考因素,其中,无需通过步骤s2的预处理,直接提取有效重复问题与正常问题间标签单词组成向量采用余弦相似度计算相似度。

进一步地,所述参考信息还包括:计算主题相似度作为第四参考因素,对于有效重复问题与正常问题的描述和标题部分采用lda主题模型算法进行处理获得主题向量,选取概率最大的主题作为有效重复问题的分类信息,比较分类信息是否相同判断相似性。

进一步地,所述参考信息还包括:对有效重复问题与正常问题的描述与标题进行交叉比较,将得到的交叉相似度作为第五和第六参考因素。

进一步地,所述步骤s4中,改进后的人工蜂群算法基于传统abc算法进行改进,其具体为:

输入各参考信息的相似度,设定改进后的人工蜂群算法,包括:初始蜂群数目,迭代次数,最大搜索限制。

1)根据式(1)初始化种群解xi,i=1,2,…,sn:

xij=xmin,j+rand(0,1)(xmax,j-xmin,j)(1)

i为初始化解的数目,j为向量的维度,即参考因素的数量,xi为求解的参数向量;

2)计算种群中各蜜蜂的适应值,其中,适应度选择总体的召回问题数量;

3)cycle=1;

4)repeat;

5)雇佣蜂根据式(2)产生新的解vi并计算适应值:

vij=xij+φij(xij-xkj)(2)

其中,φ表示0~1的随机数,k表示另外一个解;

6)根据召回问题数量作为第一次比较因素,对召回问题数量相同的两组解进一步比较排序信息,召回问题以相似度排序,排名靠前给与一个高分,通过总的分数进行比较反映解的优劣,式(3)为排名信息计算公式,n为召回的问题数量,ranki为每个问题的排名信息:

7)根据适应度大小即召回问题数量来计算选择蜜源xi的概率pi:

8)观察蜂根据概率pi选择蜜源xi,根据(2)式在该蜜源附近产生新的蜜源vi,并计算新蜜源vi的适应值;

9)观察蜂根据贪心算法选择蜜源;

10)决定是否存在需要放弃的蜜源,如果存在,根据(1)式随机产生一个蜜源代替它;

11)cycle=cycle+1

12)untilcycle=mcn,

13)输出效果最佳的参数向量。

较现有技术相比,本发明具有以下优点:

本发明提供的技术方案通过对问题进行处理和比较获取各参考信息相似度,充分利用问题本身的各部分信息。采用改进后的人工蜂群算法来确定参数,保证参数求解的正确性。仅使用少部分问题进行训练,减少计算量,保证模型的稳定性。

基于上述理由本发明可在重复问题检测技术领域广泛推广。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种考虑多参考因素的stackoverflow重复问题检测方法流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

如图1所示,本发明提供了一种考虑多参考因素的stackoverflow重复问题检测方法,其特征在于,包括:如下步骤:

s1、从stackoverflow历史问题数据集中挑选出重复问题与正常问题构建数据集,从数据集中筛选出本身包含参考信息并且原问题非空的重复问题作为有效重复问题,所述参考信息包括:描述、标题、标签信息,所述正常问题包括重复问题的原问题;

所述预处理包括:对数据集中的问题进行分词、词干化和去停用词处理。

s2、对数据集中有效重复问题和正常问题各中各参考信息进行预处理,将各参考信息转化为向量形式;

s3、计算预处理后的有效重复问题与正常问题间各参考信息的相似度;

计算各参考信息的相似度具体为:

计算标题相似度作为第一参考因素,通过余弦相似度来计算有效重复问题与正常问题间标题单词向量之间的相似程度,其中向量中的每一元素为该词汇在标题中的出现频率,对于转换后的向量采用余弦相似度计算相似度;

计算描述相似度作为第二参考因素,通过余弦相似度来计算有效重复问题与正常问题间描述单词向量之间的相似程度,其中向量中的每一元素为该词汇在标题中的出现频率,对于转换后的向量采用余弦相似度计算相似度;

计算标签相似度作为第三参考因素,其中,无需通过步骤s2的预处理,直接提取有效重复问题与正常问题间标签单词组成向量采用余弦相似度计算相似度。

所述参考信息还包括:计算主题相似度作为第四参考因素,对于有效重复问题与正常问题的描述和标题部分采用lda主题模型算法进行处理获得主题向量,选取概率最大的主题作为有效重复问题的分类信息,比较分类信息是否相同判断相似性。

所述参考信息还包括:对有效重复问题与正常问题的描述与标题进行交叉比较,将得到的交叉相似度作为第五和第六参考因素。

s4、对预设数量的一部分有效重复问题构建训练集,通过人工蜂群算法计算各参考信息所占权重,并通过添加问题的召回率和排名信息的目标函数判断权重分配的优劣,得到相似度模型;

所述步骤s4中,改进后的人工蜂群算法基于传统abc算法进行改进,其具体为:

输入各参考信息的相似度,设定改进后的人工蜂群算法,包括:初始蜂群数目,迭代次数,最大搜索限制。

1)根据式(1)初始化种群解xi,i=1,2,…,sn:

xij=xmin,j+rand(0,1)(xmax,j-xmin,j)(1)

i为初始化解的数目,j为向量的维度,即参考因素的数量,本实施例的维度为6,xi为求解的参数向量;

2)计算种群中各蜜蜂的适应值,其中,适应度选择总体的召回问题数量;

3)cycle=1;

4)repeat;

5)雇佣蜂根据式(2)产生新的解vi并计算适应值:

vij=xij+φij(xij-xkj)(2)

其中,φ表示0~1的随机数,k表示另外一个解;

6)根据召回问题数量作为第一次比较因素,对召回问题数量相同的两组解进一步比较排序信息,召回问题以相似度排序,排名靠前给与一个高分,通过总的分数进行比较反映解的优劣,式(3)为排名信息计算公式,n为召回的问题数量,ranki为每个问题的排名信息:

7)根据适应度大小即召回问题数量来计算选择蜜源xi的概率pi:

8)观察蜂根据概率pi选择蜜源xi,根据(2)式在该蜜源附近产生新的蜜源vi,并计算新蜜源vi的适应值;

9)观察蜂根据贪心算法选择蜜源;

10)决定是否存在需要放弃的蜜源,如果存在,根据(1)式随机产生一个蜜源代替它;

11)cycle=cycle+1

12)untilcycle=mcn,

13)输出效果最佳的参数向量。

s5、将预设数量的另一部分有效重复问题构建的测试集输入相似度模型中,对测试集中的每个重复问题和正常问题进行相似度计算,获取n个相似度分数最高的重复问题,进而判断获取的n个重复问题是否包含原问题,如果包含则为成功召回。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1