首页> 中国专利> 一种智能问答系统中答案抽取方法

一种智能问答系统中答案抽取方法

摘要

本发明公开了一种智能问答系统中答案抽取方法,具体处理步骤如下:101)用户表示数据的建立步骤、102)数据处理步骤、103)答案抽取步骤;本发明对提取高质量专业的对应答案提供了可能,其数据获取更合理、精准,答案融合更科学、充分,并尽可能考虑各种可能的一种智能问答系统中答案抽取方法。

著录项

  • 公开/公告号CN112328768A

    专利类型发明专利

  • 公开/公告日2021-02-05

    原文格式PDF

  • 申请/专利权人 青岛科技大学;

    申请/专利号CN202011271342.9

  • 申请日2020-11-13

  • 分类号G06F16/332(20190101);G06F16/33(20190101);G06F40/211(20200101);G06F40/242(20200101);G06F40/289(20200101);G06N3/00(20060101);

  • 代理机构33283 杭州天昊专利代理事务所(特殊普通合伙);

  • 代理人赵志鹏

  • 地址 266061 山东省青岛市崂山区松岭路99号

  • 入库时间 2023-06-19 09:49:27

说明书

技术领域

本发明涉及文本提取技术领域,更具体的说,它涉及一种智能问答系统中答案抽取方法。

背景技术

智能问答系统允许用户利用自然语言的形式自由输入提问内容,系统能自动分析用户问题,并向用户返回一个精确、简洁的答案。相对于传统的答案获取方式,智能问答系统可为用户提供更加便捷的知识获取服务,将是未来智能化发展中人机交互的主要方式。无论是检索式还是生成式的智能问答系统,问答语料库都是系统中必不可少的一部分,为整个系统提供数据基础。实践证明问答语料库的质量将直接影响问答系统的性能。

某石化安全工程研究院因业务发展,亟需构建一个面向化工领域的智能问答系统。但是面向化工领域的问答语料库匮乏,人工构建需投入大量的人力物力,且建设周期长。因此利用化工领域问答社区中的问答信息,研究答案抽取技术,自动构建高质量的问答语料成为主要研究方向。

答案抽取技术是问答系统中非常重要的一环,问答社区中问答是由用户产生的,由于缺乏控制措施,再加上问答社区中的用户在知识水平上的局限性和自身的主观性,导致问答社区中的答案存在可靠性低、冗余度高等问题。在问答社区中,最佳答案一般通过用户给予或点赞来获得,但是对于问答社区中的单一答案通常只是涵盖了完整答案的一部分,并不能完全满足用户的提问需求,这使问答社区中的许多答案片面、不完备。故怎么从答案中抽取出相应的子句并合成高质量的,用户满意的答案,是重点要解决的问题。

发明内容

本发明为从问答社区中提取高质量专业的对应答案提供了可能,其数据获取更合理、精准,答案融合更科学、充分,并尽可能考虑各种可能的一种智能问答系统中答案抽取方法。

本发明的技术方案如下:

一种智能问答系统中答案抽取方法,具体处理步骤如下:

101)用户表示数据的建立步骤:设定一个异质信息网络G=(V,E),其包含对象集合V和连接集合E,一个根据该异质网络生成的元路径p:

其中,n

元路径的序列中包括用户节点和问题节点,去除元路径序列中的问题节点;设定游走路径的长度阈值,游走路径将重复遵循元路径的模式直到达到预定义的长度阈值,完成用户表示数据的建立;

102)数据处理步骤:将问答数据进行文本特征提取,并对其中答案的质量进行预测;答案的质量预测采用因子分解机,通过两两特征组合,将特征与特征之间的关联联系起来,构建交叉项特征,以此来判断问答数据的匹配价值,提高数据处理模型的效果;

设定预测答案质量的训练模型数据D=(X,y),其中,X∈R

因子分解机能够对输入数据集D=(X,y)不同特征间的交互进行分解建模,其d阶交互模型表示为如下公式:

其中,模型参数w

因子分解机的损失函数定义如下:

其中,σ表示的是阶跃函数sigmoid:

所以损失函数对对应权重的值的梯度为:

103)答案抽取步骤:将步骤102)处理得到的问答数据匹配价值进行排序得到候选答案集,并对候选答案集根据匹配价值的高低进行排序,融合其中匹配价值最高的三条得到问答数据匹配价值更高的答案,将其作为最终问题的答案推送给提问者;其中,融合答案首先进行答案分句,形成多个子句,从子句中得到该子句的文本向量,选取文本向量中正类子句进行融合。

进一步的,步骤101)中的元路径的模式包括如下:

元路径1:

元路径2:

游走路径对异质信息网络中的每个用户节点u,构造出在所有用户序列中基于达到长度阈值的游走路径的共现邻域N

max∑

其中,f:V→R

进一步的,文本特征提取包括文本静态特征提取和用户静态特征提取;文本静态特征提取包括汉字个数、平均句长、词语占比和领域词占比,其相关定义如下:

汉字个数为一个答案中中文文字的个数,该特征反应的是用户对答案最直观的感受;

平均句长为计算答案子句的平均中文文本长度,

词语占比为词语个数与中文文本长度的比值,

领域词占比为领域词语个数与中文文本长度的比值,其中领域词语个数为答案文本中出现的化工领域词个数;

用户静态特征提取包括论坛中记录的用户的个人信息和使用数据,其具体包括用户id、邮箱状态、空间访问量、好友数、回帖数、发言奖励状态、视频认证、性别、相册数等。

进一步的,文本特征提取还包括文本向量生成,其基于加权词向量生成文本向量,包括分词、词向量表示、文本向量表示三个步骤,具体如下:

201)分词步骤:通过Jieba中文分词工具并结合安全工程研究院专家构建化工领域词典,提高Jieba中文分词工具准确率;

202)词向量表示步骤:对于问题或答案中的句子集合Q,对每一个句子分词后,利用word2vector算法来学习,将描述中的每一个词语c映射为一个N

其中,ω

203)文本向量表示步骤:通过如下方法衡量问答对中出现的词语的重要性,其计算公式如下:

K(c,Q

其中,TF(c,Q

计算问答文本中每个词语c的值,从而得到词语c在问题和答案文本中的权重大小K(c,Q

其中,sen_vec表示文本向量,m表示文本中词语的个数,ω

进一步的,步骤103)融合答案过程中包括过滤冗余子句和句子排序;

过滤冗余子句使用余弦相似度来衡量两个子句之间的语义相似度,具体余弦相似度衡量公式如下:

其中,x

由此得到任意两个答案子句间的余弦相似度构建子句相似度矩阵,矩阵形式如下:

其中,n为子句个数,a

寻找冗余子句过程的具体代码判断过程如下:

(1.1)设定相似度阈值为k,初始化相似度矩阵,并标记矩阵中每行为true;

(1.2)For i=1;i

(1.3)if相似度矩阵第i行为true,继续下一步;如果为false则跳转到步骤1.2;

(1.4)将相似度矩阵第i行中所有取值>k的列对应的子句放入列表List

(1.5)查找List

(1.6)将来自最高匹配价值答案的子句追加到result列表,如匹配价值并列,则任选其中之一;

(1.7)将List

句子排序包括编码、适应度和融合衍生;

编码将通过过滤冗余子句的一个问题的所有候选答案子句,按其所在答案匹配价值的降序和各子句在原答案中的先后次序排序,然后进行十进制编码;每个子句在所在答案中均有一个相对的位置关系,由此将候选子句间的先后关系定义为一个句子排序模板;通过任意两个答案子句间的前后关系概率值,构建先后关系概率矩阵,矩阵形式如下:

其中,n为子句个数,a

适应度,将n个子句构成的序列中,相邻两个子句的先后关系概率值求累加和得到适应度,具体适应度公式如下:

其中,a

融合衍生,随机生成n个句子的排序序列;再对种群中的子句序列进行适应度从大到小排序,设定子句序列选择概率与其适应度成正比,从所有子句序列中参照排序序列随机选择x个保留;

接着随机选择两个子句序列,再随机选择一段子句序列进行交换;若交叉引起子句序列冲突,则保持交换的子句段不变,取得冲突子句在交换段内的位置,将交换段外的冲突子句替换为另一子句序列对应位置的子句;

设定变异率,按照该设定对选定变异的子句序列,随机取三个整数,满足1

具体逻辑代码过程如下:

(2.1)生成句子排序模板,生成句子先后关系概率矩阵;

(2.2)设定种群个数q=n*(n-1),初始化种群;

(2.3)删除与句子排序模板冲突的子句序列;

(2.4)if当前种群个数p=q,跳转至步骤2.6;

(2.5)随机生成q-p个子句序列,将其增加到种群中,跳转至步骤2.3;

(2.6)计算种群中各子句序列的适应度,并按将序排列;

(2.7)对种群进行融合衍生操作;

(2.8)删除与句子排序模板冲突的子句序列;

(2.9)如果种群个数p=0,则跳转至步骤2.2;

(2.10)如果前后两轮最优子句序列的适应度值的绝对差<0.001或者循环次数>1000,则输出本轮最佳子句序列,排序结束;或者进入下一步;

(2.11)保留最优的min(p,q)个子句序列,跳转至步骤2.4继续。

本发明相比现有技术优点在于:

本发明通过采用两种元路径构建的社区网络上所发现社区的重叠模块度值,要明显高于采用单一元路径即同构网络上所发现的社区重叠模块度值,因此采用的两条元路径为筛选条件所构建的异质信息网络能够更好地体现出用户之间的真实关系。本文构建的预测模型在海川化工论坛数据集上的答案质量预测效果、答案子句预测效果,远远优于其他预测方法,更多更好的考虑了文本的特性。

附图说明

图1为异质信息网络用户表示图;

图2为同质信息网络用户表示图;

图3为本发明的答案质量预测匹配价值流程图;

图4为本发明答案抽取过程流程图。

具体实施方式

下面结合附图和具体实施方式对本发明进一步说明,文中未描述或未详细说明的部分均可采用常规技术手段进行实现。

如图1至图4所示,一种智能问答系统中答案抽取方法,具体处理步骤如下:

101)用户表示数据的建立步骤:设定一个异质信息网络G=(V,E),其包含对象集合V和连接集合E,同时,相关的有类型映射函数f:V→A和连接映射函数g:E→R。A和R表示预定义的对象集合和连接集合,同时|V|+|R|>2。还设定一个根据该异质网络生成的元路径p:

其中,P为游走路径即为相应概率,说明了第t个节点是v,第t+1个节点是x的概率。p为元路径,n

元路径的序列中包括用户节点和问题节点,去除元路径序列中的问题节点;设定游走路径的长度阈值,游走路径将重复遵循元路径的模式直到达到预定义的长度阈值,完成用户表示数据的建立。

具体以海川化工论坛为数据基础,其用户规模大且用户特征数据类型丰富,利用异质信息网络进行用户表示数据的建立,对问答社区用户进行向量表示,不仅能避免大量的特征工程,还可以对不同类型的用户特征进行有效融合。假设问答社区中有如下的用户间问答关系,见表1:

表1社区用户间问答关系表

Tab.2-1Relationship table of Q&A among community users

对用户进行表示学习,因此传统的同构网络节点类型为用户,边为用户间的问答关系,可构造同质信息网络如图2所示,从中可知用户与用户间的边代表用户间有问答关系,但是无法表示哪些用户回答过同一个问题,故同质信息网络无法完整表示表1中的信息。异质信息网络能捕获多个类型的对象,并增加了元路径的概念,因而能更好地模拟真实世界。图中两类节点分别用用户i和问答j命名,提问关系用实线边表示,回答关系用虚线边表示。一个用户可以提问多个问题也可以回答多个问题。提问用户与问题之间是一对一的联系,回答用户与问题之间是多对多的联系。

元路径的模式包括如下:

元路径1:

元路径2:

元路径1体现的用户和问题间的交互形式是,问题左边的用户为提问者,右边的用户为回答者,即一个用户提问问题,该问题被其他用户回答。问题右边的用户将继续作为提问者再提问问题,从而使序列继续下去。

元路径2体现的用户和问题间的交互形式是,问题左边的用户是该问题的回答者,右边的用户也是该问题的回答者,即一个问题左右两边的用户同时回答过该问题。问题右边的用户继续做为另一问题的回答者,从而使序列继续下去。

以图1的异质信息网络为例,根据设计的元路径1,可以得到如下n条序列:

序列1:用户1-问题b-用户2-问题c-用户3-问题d-用户8;

序列2:用户2-问题c-用户1-问题b-用户3-问题d-用户10;

…………

序列n:用户1-问题a-用户2-问题c-用户3-问题d-用户11;

以图1的异质信息网络为例,根据设计的元路径2,可以得到如下m条序列:

序列n+1:用户4-问题b-用户6-问题c-用户8-问题d-用户10;

序列n+2:用户5-问题a-用户7-问题b-用户6-问题c-用户9;

…………

序列n+m:用户3-问题c-用户9-问题d-用户8-问题c-用户6;

上面得到的元路径序列中包括用户和问题两类节点,但本方案只关注用户的向量表示,因此需要去掉元路径序列中的问题类型节点。以图1的异质信息网络为例,根据本方案设计的元路径1、元路径2采集得到的n+m个序列经过类型约束和过滤后,可以得到如下n+m条同质节点序列:

序列1:用户1-用户2-用户3-用户8;

序列2:用户2-用户1-用户3-用户10;

…………

序列n:用户1-用户2-用户3-用户11;

序列n+1:用户4-用户6-用户8-用户10;

序列n+2:用户5-用户7-用户6-用户9;

…………

序列n+m:用户3-用户9-用户8-用户6;

分析上面的n+m条节点序列不难发现,由元路径2采集的序列很难出现在图2所构建的同构网络中,这样证明了本方案构建的异质信息网络比同构网络甚至原始的异构信息网络拥有更强的数据异质性建模能力。

游走路径对异质信息网络中的每个用户节点u,构造出在所有用户序列中基于达到长度阈值的游走路径的共现邻域N

max∑

其中,f:V→R

通过以重叠模块度作为评价指标,在三种以不同用户表示数据建立的网络对同一个社区问答数据进行比对,得到如表2所示结果:

表2-4真实数据集上的对比实验结果

其重叠模块度越大代表社会划分效果越好。通过对比表2中的实验结果不难发现,在采用两种元路径构建的社区网络上所发现社区的重叠模块度值,要明显高于采用单一元路径即同构网络上所发现的社区重叠模块度值,本方案采用的两条元路径为筛选条件所构建的异质信息网络能够更好地体现出用户之间的真实关系。

102)数据处理步骤:将问答数据进行文本特征提取,并对其中答案的质量进行预测;答案的质量预测采用因子分解机,通过两两特征组合,将特征与特征之间的关联联系起来,构建交叉项特征,以此来判断问答数据的匹配价值,提高数据处理模型的效果。具体过程如图3所示:

其中,文本特征提取包括文本静态特征提取、用户静态特征提取、文本向量生成;文本静态特征提取包括汉字个数、平均句长、词语占比和领域词占比,其相关定义如下:

汉字个数为一个答案中中文文字的个数,该特征反应的是用户对答案最直观的感受;

平均句长为计算答案子句的平均中文文本长度,

词语占比为词语个数与中文文本长度的比值,

领域词占比为领域词语个数与中文文本长度的比值,其中领域词语个数为答案文本中出现的化工领域词个数;

用户静态特征提取包括论坛中记录的用户的个人信息和使用数据,其具体包括用户id、邮箱状态、空间访问量、好友数、回帖数、发言奖励状态、视频认证、性别、相册数等。

文本向量生成,其基于加权词向量生成文本向量,包括分词、词向量表示、文本向量表示三个步骤,具体如下:

201)分词步骤:通过Jieba中文分词工具并结合安全工程研究院专家构建化工领域词典,提高Jieba中文分词工具准确率。

202)词向量表示步骤:对于问题或答案中的句子集合Q,对每一个句子分词后,利用word2vector算法来学习,将描述中的每一个词语c映射为一个N

其中,ω

203)文本向量表示步骤:通过如下方法衡量问答对中出现的词语的重要性,其计算公式如下:

K(c,Q

其中,TF(c,Q

计算问答文本中每个词语c的值,从而得到词语c在问题和答案文本中的权重大小K(c,Q

其中,sen_vec表示文本向量,m表示文本中词语的个数,ω

因为对少量高质量的候选答案集进行答案抽取,比对一个问题全部答案集进行答案抽取准确率要高。而在正常的问答社区中有超过三分之一的问题答案没有财富信息作为匹配价值。为了更好的对这些问题进行答案抽取,需要构建预测答案质量的训练模型数据,为没有财富的问题答案预测财富作为匹配价值,实现对答案的质量进行预测,进而筛选出高质量的答案为后续的答案抽取提供答案候选集。

设定预测答案质量的训练模型数据D=(X,y),其中,X∈R

因子分解机能够对输入数据集D=(X,y)不同特征间的交互进行分解建模,其d阶交互模型表示为如下公式:

其中,模型参数w

因子分解机的损失函数表示预测值与真实值之间的损失,具体定义如下:

其中,m是表示有m个实例,公式表示每个实例都对应一个预测值和一个真实值,分别结算两个的损失最后求和;

σ表示的是阶跃函数sigmoid具体如下:

所以损失函数带入阶跃函数sigmoid后对对应权重的值的梯度为:

为了验证本文构建的答案质量预测模型的有效性,本文训练了Wide&Deep、BERT+LSTM、BERT+CNN模型,不同模型在测试集上的预测效果见表3:

表3不同算法之间的准确率、MSE、EVS对比

Topn准确率:预测结果按降序排序,前Topn个样本中,预测正确的样本数m与n的比值记为Topn准确率。选出top3的答案是为答案抽取获取候选集,选出top1的答案是为后续步骤的答案抽取做准备,本方案认为积分高的答案及好的答案中的句子质量更高。故本方案选出top1的答案中的句子作为答案抽取中计算相似度的基准。

MSE:指标计算的是拟合数据和原始数据对应样本点的误差的平方和的均值,其值越小说明拟合效果越好。

EVS:为解释回归模型的方差得分,其值取值范围是[0,1],越接近于1说明自变量越能解释因变量的方差变化,值越小则说明效果越差。

分析表3可知,本文构建的预测模型在海川化工论坛数据集上的答案质量预测效果,远远优于其他三种预测算法。

103)答案抽取步骤:将步骤102)处理得到的问答数据匹配价值进行排序得到候选答案集,并对候选答案集根据匹配价值的高低进行排序,融合其中匹配价值最高的三条得到问答数据匹配价值更高的答案,将其作为最终问题的答案推送给提问者;其中,融合答案首先进行答案分句,形成多个子句,从子句中得到该子句的文本向量,选取文本向量中正类子句进行融合。本方案之所以不只选top1,是因为单个答案的知识不完备性。选择top3而不选更多答案有两个原因:一是因为化工领域专家随机抽取了500个海川化工论坛中的问题,通过人工答案抽取构建了问题最佳答案。通过将问题最佳答案与财富值最高的top10答案进行对比,统计出绝大多数问题的答案都可以在top3中找到。二是因为引入的候选答案个数越多,答案抽取算法处理的子句个数就越多,不仅增加了算法运行时间,还会导致更大的累积误差。

具体处理过程如图4所示,其中融合答案过程中包括过滤冗余子句和句子排序。对于候选答案集合已在前面步骤中说明。

过滤冗余子句使用余弦相似度来衡量两个子句之间的语义相似度,具体余弦相似度衡量公式如下:

其中,x

由此得到任意两个答案子句间的余弦相似度构建子句相似度矩阵,矩阵形式如下:

其中,n为子句个数,a

寻找冗余子句过程的具体代码判断过程如下:

(1.1)设定相似度阈值为k,初始化相似度矩阵,并标记矩阵中每行为true;

(1.2)For i=1;i

(1.3)if相似度矩阵第i行为true,继续下一步;如果为false则跳转到步骤1.2;

(1.4)将相似度矩阵第i行中所有取值>k的列对应的子句放入列表List

(1.5)查找List

(1.6)将来自最高匹配价值答案的子句追加到result列表,如匹配价值并列,则任选其中之一;

(1.7)将List

寻找冗余子句的代码中有一个参数k,且k的取值将直接影响非冗余子句的计算结果。关于k值的设定,采用如下处理流程:

(1)由某安全工程研究院的专家对500个问题中的语义重复子句进行标注;

(2)构建语义重复子句对;

(3)计算语义重复子句对的余弦相似度

(4)求得余弦相似度均值是0.8922,标准差为0.092。

(5)取k为均值-标准差即0.8。

句子排序包括编码、适应度和融合衍生。

编码将通过过滤冗余子句的一个问题的所有候选答案子句,按其所在答案匹配价值的降序和各子句在原答案中的先后次序排序,然后进行十进制编码;每个子句在所在答案中均有一个相对的位置关系,由此将候选子句间的先后关系定义为一个句子排序模板;通过任意两个答案子句间的前后关系概率值,构建先后关系概率矩阵,矩阵形式如下:

其中,n为子句个数,a

适应度,将n个子句构成的序列中,相邻两个子句的先后关系概率值求累加和得到适应度,具体适应度公式如下:

其中,a

融合衍生,随机生成n个句子的排序序列;再对种群中的子句序列进行适应度从大到小排序,设定子句序列选择概率与其适应度成正比,从所有子句序列中参照排序序列随机选择x个保留;

接着随机选择两个子句序列,再随机选择一段子句序列进行交换;若交叉引起子句序列冲突,则保持交换的子句段不变,取得冲突子句在交换段内的位置,将交换段外的冲突子句替换为另一子句序列对应位置的子句;

设定变异率,按照该设定对选定变异的子句序列,随机取三个整数,满足1

具体逻辑代码过程如下:

(2.1)生成句子排序模板,生成句子先后关系概率矩阵;

(2.2)设定种群个数q=n*(n-1),初始化种群;

(2.3)删除与句子排序模板冲突的子句序列;

(2.4)if当前种群个数p=q,跳转至步骤2.6;

(2.5)随机生成q-p个子句序列,将其增加到种群中,跳转至步骤2.3;

(2.6)计算种群中各子句序列的适应度,并按将序排列;

(2.7)对种群进行融合衍生操作;

(2.8)删除与句子排序模板冲突的子句序列;

(2.9)如果种群个数p=0,则跳转至步骤2.2;

(2.10)如果前后两轮最优子句序列的适应度值的绝对差<0.001或者循环次数>1000,则输出本轮最佳子句序列,排序结束;或者进入下一步;

(2.11)保留最优的min(p,q)个子句序列,跳转至步骤2.4继续。

为了验证本方案构建的答案抽取模型的有效性,训练了Wide&Deep模型,不同模型在测试集上的预测效果见表4:

表4-4不同算法之间的准确率、MSE、EVS对比

分析表4可知,本文构建的预测模型在海川化工论坛数据集上的答案子句预测效果,远远优于Wide&Deep预测算法。

综上,本方案通过采用两种元路径构建的社区网络上所发现社区的重叠模块度值,要明显高于采用单一元路径即同构网络上所发现的社区重叠模块度值,因此采用的两条元路径为筛选条件所构建的异质信息网络能够更好地体现出用户之间的真实关系。构建的预测模型在海川化工论坛数据集上的答案质量预测效果、答案子句预测效果,远远优于其他预测方法,更多更好的考虑了文本的特性。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号