一种问答社区的答案推荐方法和装置与流程

文档序号:21363770发布日期:2020-07-04 04:38阅读:280来源:国知局
一种问答社区的答案推荐方法和装置与流程

本发明涉及软件工程技术领域,尤其涉及一种问答社区的答案推荐方法和装置。



背景技术:

随着问答社区的快速发展,越来越多的互联网用户通过问答社区获取进行提问并获得所需信息,从而问答社区中存在大量问题。然而,在问答社区中存在大量的重复问题,并通过社区中级别高的用户手动将重复问题关闭,导致用户非常费时费力。因此,利用自动检测问答社区中是否存在重复问题,并且可以快速准确的找出重复问题,受到了越来越多的重视。

问答社区中重复问题检测的问题,致力于解决问答社区中存在大量重复问题没有被发现以及影响用户访问社区获取有效信息的效果,帮助问答社区中提出的新问题检测是否有重复问题存在,避免提出重复问题并且可以提高找到重复问题的准确性,同时解决了问答社区中手动标注重复问题的用户费时费力的问题。目前针对问答社区进行重复问题检测的研究,一是通过利用问题之间的相似性进行检测重复问题,包括主题相似性、标题相似性、内容相似性、标签相似性等特征。二是通过利用抽取问题对的实体、词项之间的覆盖率等特征。

此外,随着问答社区的流量不断提高,同时访问一个问答社区的用户也不断增加。因此,存在多个用户同时或在同一问答社区采样周期内提出相同问题的概率也不断增加,然而目前的重复问题检测仅能够将新提出的问题与问答社区的数据库中的历史问题进行比较,来确定该新提出的问题是否是重复问题。因为问答社区对问题进行采样周期为半天、一天或更长时间,所以无法及时检测到多个用户在该采样周期内所提出的问题的重复性而存在漏检问题。相应地,也就无法使提出问题的用户在第一时间获得答案,用户体验差。

现有技术存在的以下缺点:

1、无法使提出问题的用户在第一时间获得准确的答案,用户体验差。

2、现有技术中选取的问题的标题、内容和标签,进行问题对之间相似度计算,没有充分考虑文本之间的语义信息,导致检测重复问题的准确率较低;

3、目前的检测方法,是手动地或者通过现有检测方法,逐个问题地进行检测,然后逐个问题关闭重复问题,因此,现有技术的检测方法效率低以及准确率较低;以及

4、现有的检测方法都是新问题与数据库中的历史问题之间是否重复问题的检测,而无法检测到多个用户同时或在同一问答社区采样周期内提出的重复问题而导致漏检。



技术实现要素:

鉴于上述的分析,本发明实施例旨在提供一种问答社区的答案推荐方法和装置,用以解决现有的问答社区无法使提出问题的用户在第一时间获得准确的答案以及用户体验差等的问题。

一方面,本发明实施例提供了一种问答社区的答案推荐方法,包括:获取采样周期内的多个待定问题;对所述多个待定问题的重复性进行批量检测,其中,所述多个待定问题的重复性包括所述多个待定问题与所述问答社区数据库中的多个样本问题之间的重复性和所述多个待定问题之间的重复性;当所述待定问题与所述样本问题重复时,将与所述待定问题重复的所述样本问题的答案推荐给用户;以及当没有检测到所述待定问题与所述样本问题重复而检测到所述多个待定问题重复时,对所述多个待定问题根据重复性进行分类;以及将分类的重复待定问题中时间最早的待定问题作为标准样本问题存储在所述问答社区数据库中并将所述标准样本问题的答案推荐给提出所述重复待定问题的所有用户。

上述技术方案的有益效果如下:本发明实施例提供的问答社区的答案推荐方法能够对多个待定问题与问答社区数据库中的多个样本问题之间的重复性进行检测并将重复的样本问题的答案推荐给用户;能够对同一采样周期内对多个待定问题之间的重复性进行检测,及时更新问答社区数据库并将答案及时推荐给用户,提升了问题推荐效率和准确性。

基于上述方法的进一步改进,在获取采样周期内的多个待定问题之前,还包括基于问答社区数据库中的多个样本问题构建深度学习分类模型,其中,构建所述深度学习分类模型包括:从问答社区中获取样本问题数据并从每个问题中提取问题的标题属性、内容属性和标签属性;根据所述样本问题数据构建多个问题对,其中,所述多个问题对包括重复问题对和非重复问题对;利用词嵌入方法将每个问题对转换为特征向量形式以获得特征向量矩阵;以及通过训练构建所述深度学习分类模型,其中,将所述特征向量矩阵为深度学习分类模型的输入。

上述进一步改进方案的有益效果是:本发明实施例通过词嵌入方法将重复问题检测转换为深度学习领域的分类问题,大幅提升了检测检测准确性。从而提高了重复问题的检测速度,进而提高了检测效率。

基于上述方法的进一步改进,利用词嵌入方法将每个问题对转换为词向量形式以获得特征向量矩阵包括:利用所述词嵌入方法将所述每个问题对中的m个单词分别转换为词向量x1、x2、…xm,其中,所述词向量的维度为n;以及通过整合所述词向量x1、x2、…xm获得特征向量矩阵,所述特征向量矩阵为m×n特征向量矩阵,其中,m、n均为大于1的整数。

基于上述方法的进一步改进,所述深度学习分类模型为长短期记忆网络模型lstm,其中,所述长短期记忆网络模型lstm考虑语义信息对所述多个待定问题的重复性进行批量检测包括:将所述多个待定问题中的任一问题与所述多个样本问题进行配对以构建多个第一待定问题对;将所述多个待定问题中的任一问题与所述多个待定问题中的剩余问题进行配对以构建多个第二待定问题对;从所述多个样本问题中选取的任一个重复问题对作为标准重复问题对;利用所述词嵌入方法获得多个第一待定问题对的第一特征向量矩阵、多个第二待定问题对的第二特征向量矩阵、和所述多个标准重复问题对的第三特征向量矩阵;分别计算所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵的概率分布,以获得所述概率分布的第一集合,其中,所述第一特征向量矩阵的概率分布为第一子集合以及所述第二特征向量矩阵和所述第三特征向量矩阵的概率分布为第二子集合;对所述第一子集合和所述第二子集合中的概率分布从大到小分别进行排序以构成所述概率分布的第二集合和第三集合;以及根据所述概率分布的第二集合判断所述第一待定问题对的重复性以及根据所述概率分布的第三集合判断所述第二待定问题对的重复性。

上述进一步改进方案的有益效果是:长短期记忆网络模型lstm根据语义信息对多个待定问题之间是否重复进行批量检测,不仅提高了检测准确性而且提高了检测效率。

基于上述方法的进一步改进,根据所述概率分布的第二集合判断所述第一待定问题对的重复性以及根据所述概率分布的所述第三集合判断所述第二待定问题对的重复性包括:从所述概率分布的第二集合中选取预测为重复的问题对并作为第四集合;从所述概率分布的第三集合中选取预测为重复的问题对并作为第五集合;将所述标准重复问题对与所述第五集合中的问题对进行比较,以确定所述第五集合中是否包括所述标准重复问题对;以及当确定所述第五集合中包括所述标准重复问题对时,所述第五集合中的问题对为重复问题对。

上述进一步改进方案的有益效果是:在对多个问题对进行批量检测时,通过标准重复问题对来验证检测的正确性,从而提高了检测准确性。

基于上述方法的进一步改进,分别计算所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵的概率分布包括:设置每个时间步骤在先前隐藏状态的忘记门、输入门和输出门;根据所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵计算当前时间步骤的所述忘记门和所述输入门;根据所述忘记门、所述输入门和所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵计算当前记忆细胞;根据所述当前记忆细胞和所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵获得所述当前时间步骤的输出门;根据所述当前记忆细胞和所述当前时间步骤的输出门获得当前隐藏状态;以及基于所述当前隐藏状态利用softmax函数计算所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵的概率分布。

基于上述方法的进一步改进,分别计算所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵的概率分布:根据以下公式,分别计算所述当前时间步骤t时的所述忘记门ft和所述输入门gt:

ft=σ(wxgxt+wlglt-1+ccgct-1+bf),gt=σ(wxfxt+wlflt-1+ccfct-1+bg),其中,σ(x)=1/(1+e-x),w为权重、l为隐藏状态,c为记忆细胞,b为偏向函数,xt为所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵;根据以下公式利用所述忘记门ft和所述输入门gt计算当前记忆细胞ct:ct=ftct-1+gttanh(wxcxt+wlclt-1+bc);根据以下公式利用所述当前记忆细胞ct计算所述当前时间步骤t时的输出门ot:ot=σ(wxoxt+wlolt-1+wcoct+bo);根据以下公式利用所述当前记忆细胞ct和所述输出门ot计算当前隐藏状态lt:lt=ottanh(ct),其中,tanh(x)=(ex-e-x)/(ex+e-x);根据以下公式利用所述当前隐藏状态lt计算所述第一特征向量矩阵、所述第二特征向量矩阵和所述第三特征向量矩阵的概率分布p:p=softmax(u·lt+b),其中,

∑isoftmax(xi)=1,在二分类方法中,k=2。

另一方面,本发明实施例提供了一种问答社区的答案推荐方法,包括:获取模块,用于获取采样周期内的多个待定问题;检测模块,用于对所述多个待定问题的重复性进行批量检测,其中,所述多个待定问题的重复性包括所述多个待定问题与所述问答社区数据库中的多个样本问题之间的重复性和所述多个待定问题之间的重复性;判断推荐模块,用于当所述待定问题与所述样本问题重复时,将与所述待定问题重复的所述样本问题的答案推荐给用户;以及分类模块,用于当没有检测到所述待定问题与所述样本问题重复而检测到所述多个待定问题重复时,对所述多个待定问题根据重复性进行分类;以及存储推荐模块,用于将分类的重复待定问题中时间最早的待定问题作为标准样本问题存储在所述问答社区数据库中并将所述标准样本问题的答案推荐给提出所述重复待定问题的所有用户。

基于上述装置的进一步改进,模型构建模块,用于在获取采样周期内的多个待定问题之前,基于问答社区数据库中的多个样本问题构建深度学习分类模型,其中,构建所述深度学习分类模型包括:获取子模块,用于从问答社区中获取样本问题数据并从每个问题中提取问题的标题属性、内容属性和标签属性;问题对构建子模块,用于根据所述样本问题数据构建多个问题对,其中,所述多个问题对包括重复问题对和非重复问题对;转换子模块,用于利用词嵌入方法将每个问题对转换为特征向量形式以获得特征向量矩阵;以及训练子模块,用于通过训练构建所述深度学习分类模型,其中,将所述特征向量矩阵为深度学习分类模型的输入。

基于上述装置的进一步改进,所述转换子模块还用于:利用所述词嵌入方法将所述每个问题对中的m个单词分别转换为词向量x1、x2、…xm,其中,所述词向量的维度为n;以及通过整合所述词向量x1、x2、…xm获得特征向量矩阵,所述特征向量矩阵为m×n特征向量矩阵,其中,m、n均为大于1的整数。

与现有技术相比,本发明至少可实现如下有益效果之一:

1、根据两种新问题的重复性检测,能够及时将答案推荐给用户,减少了用户等待周期,提升了问题推荐的效率和准确性进而提高了用户体验。

2、重复问题检测步骤通过词嵌入方法将重复问题检测转换为深度学习领域的分类问题,并且长短期记忆网络模型lstm根据语义信息对重复问题进行检测,大幅度提高了检测准确性;

3、利用所述深度学习分类模型对多个待定问题之间是否重复进行批量检测,大幅度提高了重复问题的检测速度,从而提高了检测效率;以及

4、能够检测到多个用户在同一采样周期内提出的重复问题,解决了现有问题中的漏检问题。

5、在对多个问题对进行批量检测时,通过标准重复问题对来验证检测的正确性,从而进一步提供了检测准确性。

本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为根据本发明实施例的问答社区的答案推荐方法的流程图;

图2为根据本发明实施例的构建深度学习分类模型的流程图;

图3为根据本发明实施例的对多个待定问题的重复性进行批量检测的流程图;以及

图4为根据本发明实施例的重复问题检测步骤的框图;

图5为根据本发明实施例的问答社区的答案推荐装置的框图;以及

图6为问答社区中的重复问题对的示图。

附图标记:

502-获取模块;504-检测模块;506-判断推荐模块;508-分类模块;

510-存储推荐模块

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。

本发明的一个具体实施例,公开了一种问答社区的答案推荐方法。如图1所示,问答社区的答案推荐方法包括:在步骤s102中,获取采样周期内的多个待定问题;在步骤s104中,对多个待定问题的重复性进行批量检测,其中,多个待定问题的重复性包括多个待定问题与问答社区数据库中的多个样本问题之间的重复性和多个待定问题之间的重复性;在步骤s106中,当待定问题与样本问题重复时,将与待定问题重复的样本问题的答案推荐给用户;以及在步骤s108中,当没有检测到待定问题与样本问题重复而检测到多个待定问题重复时,对多个待定问题根据重复性进行分类;以及在步骤s110中,将分类的重复待定问题中时间最早的待定问题作为标准样本问题存储在问答社区数据库中并将标准样本问题的答案推荐给提出重复待定问题的所有用户。

与现有技术相比,本发明实施例提供的问答社区的答案推荐方法能够对多个待定问题与问答社区数据库中的多个样本问题之间的重复性进行检测并将重复的样本问题的答案推荐给用户;能够对同一采样周期内对多个待定问题之间的重复性进行检测,及时更新问答社区数据库并将答案及时推荐给用户,提升了问题推荐效率和准确性。

下文中,将参照图1至图3对问答社区的答案推荐方法进行详细描述。

根据本实施例的问答社区的答案推荐方法包括基于问答社区数据库中的多个样本问题构建深度学习分类模型。如图2所示,构建深度学习分类模型包括:在步骤s202中,从问答社区中获取样本问题数据并从每个问题中提取问题的标题属性、内容属性和标签属性。构建深度学习分类模型还包括:在步骤s204中,根据样本问题数据构建多个问题对,其中,多个问题对包括重复问题对和非重复问题对。具体地,当构建深度学习分类模型时,样本问题数据包括2m个重复问题和n个非重复问题时,其中,前m个问题分别地是后m个问题的重复问题,即,前m个问题中的任一个问题是后m个问题中的对应一个的重复问题。具体地,根据标题标记(duplicate)进行配对以构成重复问题对,即,第1个问题与第m+1个问题构成第1个重复问题对;第2个问题与第m+2个问题构成第2个重复问题对;…第m个问题与第2m个问题构成第m个重复问题对。n个非重复问题指的是其中的任一个问题与其他n-1个问题均不重复,而且与2m个问题也不重复,因此将m个重复问题对中的任一个问题与n个非重复问题分别配对以构建n个非重复问题对。可选地,通过2m个重复问题构成重复问题对和非重复问题对,具体地,第i个问题与第m+i个问题构成重复问题对,并且第i个问题与其他2m-2个问题均不重复时,因此第i个问题与其他2m-2个非重复问题对或者第i个问题与后m个问题中的剩余m-1个问题构成m-1个非重复问题对。优选地,构建相同数量的重复问题对和非重复问题对,以有利于构建深度学习分类模型。可选地,构建不同数量的重复问题对和非重复问题对。

在步骤s206中,利用词嵌入方法将每个问题对转换为特征向量形式以获得特征向量矩阵;具体地,利用词嵌入方法将每个问题对转换为词向量形式以获得特征向量矩阵包括:利用词嵌入方法将每个问题对中的m个单词分别转换为词向量x1、x2、…xm,其中,词向量的维度为n,具体地,词的字母数量,例如,单词“word”的维度为4;以及通过整合词向量x1、x2、…xm获得特征向量矩阵,特征向量矩阵为m×n特征向量矩阵,其中,m、n均为大于1的整数。

构建深度学习分类模型还包括:在步骤s208中,通过训练构建深度学习分类模型,其中,将特征向量矩阵为深度学习分类模型的输入。具体地,深度学习分类模型为长短期记忆网络模型lstm,深度学习分类模型为长短期记忆网络模型lstm(longshort-termmemory),其中,长短期记忆网络模型lstm根据语义信息对多个待定问题是否重复进行批量检测。

本发明实施例通过词嵌入方法将重复问题检测转换为深度学习领域的分类问题,大幅提升了检测检测准确性。从而提高了重复问题的检测速度,进而提高了检测效率。

根据本实施例的问答社区的答案推荐方法还包括:在步骤s102中,获取采样周期内的多个待定问题。随着网站流量的不断增加,使用问答社区的用户也越来越多,因此,用户在同一采样周期内提出的新问题也更容易堆积。新问题是待定问题,也就是说,在用户提出的新问题但还没有确定是否是重复问题时,将这种新问题称为待定问题。在本实施例中,问答社区的管理人员可以获取采样周期内的多个待定问题。在步骤s104中,对多个待定问题的重复性进行批量检测,其中,多个待定问题的重复性包括多个待定问题与问答社区数据库中的多个样本问题之间的重复性和多个待定问题之间的重复性。这里的样本问题为存储在数据库中的标准样本问题,其是经过重复性测试以后,将时间最早的问题作为标准样本问题存储在数据库中,而其他与标准样本问题重复的问题被关闭而不存储在数据库中。在具体实施例中,新提出的多个问题中的任一个需要通过检测确定是否与预先存储在问答社区数据库中的多个样本问题之间重复,并且还需要通过检测确定是否与新提出的多个问题中的剩余问题之间重复。

具体地,深度学习分类模型为长短期记忆网络模型lstm,其中,长短期记忆网络模型lstm考虑语义信息对多个待定问题的重复性进行批量检测。如图3所示,对多个待定问题的重复性进行批量检测包括:在步骤s302中,将多个待定问题中的任一问题与多个样本问题进行配对以构建多个第一待定问题对;在步骤s304中,将多个待定问题中的任一问题与多个待定问题中的剩余问题进行配对以构建多个第二待定问题对;在步骤s306中,从多个样本问题中选取的任一个重复问题对作为标准重复问题对;在步骤s308中,利用词嵌入方法获得多个第一待定问题对的第一特征向量矩阵、多个第二待定问题对的第二特征向量矩阵、和多个标准重复问题对的第三特征向量矩阵。在本实施例中,根据检测目的构建待定问题对,其中,检测目的包括检测待定问题与样本问题数据之间是否重复;以及检测待定问题之间是否重复。当构建第一待定问题对时,样本问题数据中2m个重复问题中的前m个问题分别与一个待定问题配对为m个第一待定问题对。因此,将待定问题中的任一个问题分别与前m个问题构成m个待定问题对,最终构成q×m个问题对,这样构成的第一待定问题对用于检测待定问题与样本问题数据之间是否重复。当构建第二待定问题对时,将第1个待定问题与其他待定问题配对为q-1个待定问题对,因此,将待定问题中的任一个与其他待定问题配对为q-1个待定问题对,这样构成的待测问对能够用于检测待定问题之间是否重复。

长短期记忆网络模型lstm考虑语义信息对多个待定问题的重复性进行批量检测还包括在步骤s310中,分别计算第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵的概率分布,以获得概率分布的第一集合,其中,第一特征向量矩阵的概率分布为第一子集合以及第二特征向量矩阵和第三特征向量矩阵的概率分布为第二子集合。

具体地,分别计算第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵的概率分布(参见步骤以上s310)包括:设置每个时间步骤在先前隐藏状态的忘记门、输入门和输出门;根据第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵计算当前时间步骤的忘记门和输入门;根据忘记门、输入门和第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵计算当前记忆细胞;根据当前记忆细胞和第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵获得当前时间步骤的输出门;根据当前记忆细胞和当前时间步骤的输出门获得当前隐藏状态;以及基于当前隐藏状态利用softmax函数计算第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵的概率分布。

具体地,分别计算第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵的概率分布(参见步骤以上s310)包括:根据以下公式,分别计算当前时间步骤t时的忘记门ft和输入门gt:

ft=σ(wxgxt+wlglt-1+ccgct-1+bf),

gt=σ(wxfxt+wlflt-1+ccfct-1+bg),

其中,σ(x)=1/(1+e-x),w为权重、l为隐藏状态,c为记忆细胞,b为偏向函数,xt为第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵;

根据以下公式利用忘记门ft和输入门gt计算当前记忆细胞ct:

ct=ftct-1+gttanh(wxcxt+wlclt-1+bc);

根据以下公式利用当前记忆细胞ct计算当前时间步骤t时的输出门ot:ot=σ(wxoxt+wlolt-1+wcoct+bo);

根据以下公式利用当前记忆细胞ct和输出门ot计算当前隐藏状态lt:

lt=ottanh(ct),其中,tanh(x)=(ex-e-x)/(ex+e-x);

根据以下公式利用当前隐藏状态lt计算第一特征向量矩阵、第二特征向量矩阵和第三特征向量矩阵的概率分布p:

p=softmax(u·lt+b),其中,∑isoftmax(xi)=1,在二分类方法中,k=2。

长短期记忆网络模型lstm考虑语义信息对多个待定问题的重复性进行批量检测还包括在步骤s312中,对第一子集合和第二子集合中的概率分布从大到小分别进行排序以构成概率分布的第二集合和第三集合;以及在步骤s314中,根据概率分布的第二集合判断第一待定问题对的重复性以及根据概率分布的第三集合判断第二待定问题对的重复性。

具体地,根据概率分布的第二集合判断第一待定问题对的重复性以及根据概率分布的第三集合判断第二待定问题对的重复性(参见步骤s314)包括:从概率分布的第二集合中选取预测为重复的问题对并作为第四集合;从概率分布的第三集合中选取预测为重复的问题对并作为第五集合;将标准重复问题对与第五集合中的问题对进行比较,以确定第五集合中是否包括标准重复问题对;以及当确定第五集合中包括标准重复问题对时,第五集合中的问题对为重复问题对。因此,本实施例能够在检测多个待定问题对的同时,通过标准重复问题对验证检测的正确性,从而提供了检测准确率。

问答社区的答案推荐方法还包括:在步骤s106中,当待定问题与样本问题重复时,将与待定问题重复的样本问题的答案推荐给用户;以及在步骤s108中,当没有检测到待定问题与样本问题重复而检测到多个待定问题重复时,对多个待定问题根据重复性进行分类;以及在步骤s110中,将分类的重复待定问题中时间最早的待定问题作为标准样本问题存储在问答社区数据库中并将标准样本问题的答案推荐给提出重复待定问题的所有用户。具体地,当用户提出的新问题,通过检测确定在问答社区的数据库中存在与其重复的样本问题时,则将该样本问题的答案直接推荐给用户,而无需等待其他用户的答案。当用户提出的新问题,通过检测在问答社区的数据库中不存在与其重复的样本问题时,则进一步检测与同一采样周期内其他用户提出的新问题是否重复进行检测。当确定与其他用户提出的新问题重复时,根据检测结果对新问题进行分类,并选取时间最早的新问题作为标准样本问题存储在问答社区的数据库中,在存储的问题已经有答案或者提供答案的第一时间,将这个问题的答案推荐给提出这个问题的用户和提出与这个问题重复的问题的用户。

问答社区的答案推荐方法在向用户推荐答案之前,需要利用长短期记忆网络模型lstm对待定问题的重复性进行检测。下文中,参照图4和图6以具体示例的方式对检测待定问题的重复性对基于深度学习的重复问题检测步骤进行详细描述。

对待定问题的重复性进行检测的具体步骤如下:

(一)基于深度学习模型构建重复问题检测模型,所述重复问题检测模型三个步骤,其步骤如下:

步骤1,从问答社区中获取样本问题数据,抽取每个样本问题的标题属性、内容属性和标签属性,例如,图6中示出了每个问题的标题、内容和标签;根据所述样本问题数据构建重复问题对和非重复问题对,图6中示出了一个重复问题对,每个重复问题对包括主问题和重复问题,其中,较早提出的问题为主问题,较晚提出的问题为重复问题。在具体示例中,重复问题对中的主问题可以与除了该重复问题对之外的其他问题构成多个非重复问题对。例如,10个问题中,第1个问题为主问题,第2个问题为主问题的重复问题,因此,第1个问题和第2个问题构成重复问题对,第1个问题与第3个至第10个问题构成8个非重复问题对。

步骤2,利用词嵌入方法(wordembeddings)将每个样本问题转换成词向量表示形式,并利用词嵌入方式将其转换成词向量形式;其中,每个问题对的文本长度为m,即,每个问题对的词数量,每个词的维度为n,即,每个词的有n个字母,每个问题对被表示为得到一个m×n的特征向量矩阵;

步骤3,将重复问题的检测问题转换为深度学习领域的分类问题,将步骤2获得的特征向量矩阵作为深度学习分类模型的输入,通过训练得到深度学习分类模型。

(二)利用深度学习分类模型进行问题的重复性检测步骤,包括:

步骤4,利用长短期记忆网络模型检测重复问题,其主要包括以下几个步骤:

1)利用步骤2获得第一待定问题对、第二待定问题对和标准重复问题对的特征向量矩阵;

2)设置每个时间步骤在前一个隐藏状态的三个门,其分别为忘记门(forgetgate)、输入门(inputgate)和输出门(outputgate);

3)在一个当前的时间步骤t,ft表示为在时间步骤t时的forgetgate,其公式为:ft=σ(wxgxt+wlglt-1+ccgct-1+bf),gt表示为在时间步骤时的inputgate,其公式为:gt=σ(wxfxt+wlflt-1+ccfct-1+bg),其中,σ(x)=1/(1+e-x);

4)利用步骤3)中得到的ft和gt,得到当前记忆细胞ct,其公式为:ct=ftct-1+gttanh(wxcxt+wlclt-1+bc),其中,tanh(x)=(ex-e-x)/(ex+e-x);

5)利用步骤4)中得到的ct,得到时间步骤t时的forgetgate,其公式为:ot=σ(wxoxt+wlolt-1+wcoct+bo),其中,ot表示在时间步骤t时的outputgate;xt为第一待定问题对、第二待定问题对和标准重复问题对的特征向量矩阵。

6)利用步骤4)中得到的ct和步骤5)中得到的ot,得到当前隐藏状态lt,其公式为:lt=ottanh(ct);

7)利用softmax函数计算得到第一待定问题对、第二待定问题对和标准重复问题对的概率分布p,其公式为:p=softmax(u·lt+b),其中,∑isoftmax(xi)=1,本方法是二分类方法,则k=2,

其中,wxg为时间步骤xt时输入门的权重;wlg为隐藏状态的输入门的权重;wxf为时间步骤xt时忘记门的权重;wlf为隐藏状态的忘记门的权重;wxc为时间步骤xt时记忆细胞的权重;wlc为隐藏状态的记忆细胞的权重;wxo为时间步骤xt时输出门的权重;wlo为隐藏状态的输出门的权重;lt-1为先前隐藏状态;ct-1为先前记忆细胞;ct为当前记忆细胞;bf为忘记门的偏向参数;bg为输入门的偏向参数;bc为记忆细胞的偏向参数;bo为输出门的偏向参数;u和b为参数。

步骤7,根据步骤4、步骤5和步骤6得到的问题对的概率分布,并分别对其进行降序排序,检测排序前n个问题对中是否是待定问题与其对应的重复问题的匹配对,并确定排序前n个问题对中是否包括标准重复问题对。

本发明的优点和积极效果在于:(1)本方法直观、简单、有效,同时解决了现有方法在提出新问题时检测重复问题时缺乏充分考虑文本之间的语义信息,导致检测的准确性不高等问题;(2)本方法利用深度学习模型,进行问题对的分类训练,找到更合适、更有效地深度学习模型进行重复问题检测,从而能够更好地提高重复问题检测的准确性。(3)深度学习分类模型通过基于深度学习方法进行问题的重复性检测,并且与现有的检测方式进行评估,实验验证了本发明的检测步骤实现的有效性和可用性。

本发明结合stackoverflow问答社区为例来说明重复问题对。stackoverflow是一个与计算机编程技术问答社区。用户可以在问答社区中发布问题、回答问题、浏览历史的问题和回答、以及评论问题和回答等。如图6所示,为本发明在stackoverflow问答社区中一个重复问题对的例子。在图6中,展示了两个关于“howtocombinepathsinjava?”话题的问题。提问者novicer最早提出的关于该话题的问题,而提问者geo在后期又提出类似的问题。该问题被级别较高的用户发现,并将其标记为较早问题的重复问题,在该问题的标题上会标记“[duplicate]”,并将该重复问题从问答社区中关闭,保留以前存在的问题,使得问答社区的信息更加有效以及净化社区。每个问题都包括三个文本属性,其分别为问题标题、内容和标签。现有技术中针对当前问答社区中涌现的大量重复问题,使得用户花费很长时间和精力进行检测,并且仍然有需要重复问题没有被检测出来,导致了手工检测重复问题费时费力以及准确率低的问题。本实施例可以较好地解决上述问题,使得基于深度学习的重复问题检测步骤能够应用到stackoverflow问答社区中,对新提出的问题自动检测是否存在重复问题。

将重复问题检测的问题转化为深度学习的分类问题,利用深度学习对样本问题数据进行训练。根据问题的标题、内容和标签属性构建问题对,基于深度学习模型进行问题的重复性检测,进而建立答案推荐方法。

图4示出了问题的重复性检测的总体框架。该框架由两个阶段构成,其包括模型的创建阶段和重复问题的检测阶段。详细步骤描述如下:

步骤1:在stackoverflow问答社区(参见图6)中获取样本问题数据;

步骤2:对样本问题数据进行预处理,获取每个问题的标题、内容和标签,对文本信息进行去掉停顿词等操作,并构建问题对,其中构建的问题对包括重复问题对和非重复问题对;

步骤3:利用词嵌入方法将步骤2中构建的问题转化成特征向量形式;

步骤4:构建二分类的重复问题检测的深度学习分类模型,其中,1表示重复问题对,0表示非重复问题对;

步骤5:基于lstm深度学习进行问题的重复性检测;

步骤6:根据步骤5中得到的深度学习模型进行样本问题对的训练,从而训练得到深度学习分类模型;

步骤7:根据步骤6中得到深度学习分类模型,对给定的新问题检测重复问题,利用训练得到的深度学习分类模型进行预测,得到多个新问题对和标准历史问题对分类为1的重复问题对,并获得其概率分布,并根据概率值进行从大到小排序,预测前n个排序中是否存在被给定问题的重复问题。还利用训练得到的深度学习分类模型进行预测,得到多个新问题对分类为1的重复问题对,并获得其概率分布,并根据概率值进行从大到小排序,预测前n个排序中是否存在标准重复问题。

本发明的问答社区中问题的重复性检测步骤,一方面,基于问答社区获取的检测重复问题的相关信息数据较全面,包括问题的标签、内容和标签属性数据,根据样本问题数据进行重复问题对和非重复问题对构建,并根据这些样本问题对的文本形式利用词嵌入方法将其转换为特征向量矩阵形式,从而作为深度学习模型的输入,通过利用深度学习模型训练,可以提高重复问题检测的准确性;另一方面,利用深度学习模型可以更加重复地考虑问题属性的语义信息,能够自动检测重复问题。

本发明的一个具体实施例,公开了一种问答社区的答案推荐装置,包括:获取模块502,用于获取采样周期内的多个待定问题;检测模块504,用于对多个待定问题的重复性进行批量检测,其中,多个待定问题的重复性包括多个待定问题与问答社区数据库中的多个样本问题之间的重复性和多个待定问题之间的重复性;判断推荐模块506,用于当待定问题与样本问题重复时,将与待定问题重复的样本问题的答案推荐给用户;以及

分类模块508,用于当没有检测到待定问题与样本问题重复而检测到多个待定问题重复时,对多个待定问题根据重复性进行分类;以及

存储推荐模块510,用于将分类的重复待定问题中时间最早的待定问题作为标准样本问题存储在问答社区数据库中并将标准样本问题的答案推荐给提出重复待定问题的所有用户。

问答社区的答案推荐装置还包括模型构建模块,用于在获取采样周期内的多个待定问题之前,基于问答社区数据库中的多个样本问题构建深度学习分类模型,其中,构建深度学习分类模型包括:获取子模块,用于从问答社区中获取样本问题数据并从每个问题中提取问题的标题属性、内容属性和标签属性;问题对构建子模块,用于根据样本问题数据构建多个问题对,其中,多个问题对包括重复问题对和非重复问题对;转换子模块,用于利用词嵌入方法将每个问题对转换为特征向量形式以获得特征向量矩阵;以及训练子模块,用于通过训练构建深度学习分类模型,其中,将特征向量矩阵为深度学习分类模型的输入。

具体地,转换子模块还用于:利用词嵌入方法将每个问题对中的m个单词分别转换为词向量x1、x2、…xm,其中,词向量的维度为n;以及通过整合词向量x1、x2、…xm获得特征向量矩阵,特征向量矩阵为m×n特征向量矩阵,其中,m、n均为大于1的整数。

问答社区的答案推荐装置还包括多个其他模块,由于问答社区的答案推荐装置与问答社区的答案推荐方法相对应,所以为了避免赘述,省略了多个其他模块的详细描述。

与现有技术相比,本发明至少可实现如下有益效果之一:

1、根据两种问题的重复性检测,能够及时将答案推荐给用户,减少了用户等待周期,提升了问题推荐的效率和准确性进而提高了用户体验。

2、问题的重复性检测步骤通过词嵌入方法将重复问题检测转换为深度学习领域的分类问题,并且长短期记忆网络模型lstm根据语义信息对重复问题进行检测,大幅度提高了检测准确性;

3、利用所述深度学习分类模型对多个待定问题之间是否重复进行批量检测,大幅度提高了重复问题的检测速度,从而提高了检测效率;以及

4、能够检测出多个用户在同一采样周期内提出的重复问题,解决了现有问题中的漏检问题。

5、在对多个问题对进行批量检测时,通过标准重复问题对来验证检测的正确性,从而进一步提供了检测准确性。

本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

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