首页> 中国专利> 基于上下文相关性的对话话题分割方法和系统

基于上下文相关性的对话话题分割方法和系统

摘要

本发明公开了一种基于上下文信息的对话话题分割方法和系统,所述方法包括:采集多轮对话数据,对其进行随机抽样获取训练数据集;对所述训练数据集进行向量化处理,得到所述训练数据集相应的语料向量空间;对所述语料向量空间整理为句子序列;计算相邻句子之间的相关性;根据相邻句子之间的相关性识别多轮对话数据的话题边界,形成话题分割模型,实现多轮对话数据的话题分割。本发明的话题分割方法具有测试准确度高、可靠性强且稳定的有益效果。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-29

    授权

    授权

  • 2018-01-09

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

    实质审查的生效

  • 2017-12-15

    公开

    公开

说明书

技术领域

本发明涉及数据挖掘领域,具体为基于对话上下文中词语和句子的相关性构建对话话题追踪系统。

背景技术

人机对话系统的核心任务就是根据历史对话信息生成应答语句。而完成该任务的关键是话题追踪。话题追踪负责检测整个对话过程中的话题转变,实现话题分割,在系统生成应答语句过程中能够根据当前话题生成相关语句或话题引导语句,使对话系统不会出现“所答非所问”。话题分割的依据当然是对话系统中聊天内容,它为查找和生成应答语句提供非常的重要参考。但是,这些历史对话语料信息有其自身的特殊性,有些聊天语句很短,有些聊天语句中的指代过于严重,有些聊天语句不符合标准的语言规范等等。目前,依据聊天语料进行话题分割的工作是基于相似度、边界和概率图模型等方法实现的,计算过程中通过计算对话句子上下文之间的相似度来判定话题的边界。而忽略了上下文的相关性关系。相似度虽然能在一定程度上计算出上下文的语义关系,但是文本前后句子的关系除了相似关系还有上下位分等级的关系和相关关系。相似关系并不是相关关系,概念不一致。相似性表示词汇具有某种可替代性,有某些相同内涵特征或者属性特征;相关性表示词汇语义上具有某种相互依赖、相互影响的特征。在聊天语料话题分割任务中,确定话题分割点时以句子内容之间的相关性作为判断依据,比以相似性做判断,会有更高的准确性和合理性。目前,基于开放域文本相关度进行对话系统的话题追踪,通过计算上下文中词语和句子的相关度代替已有方法使用的词汇相似度来判定话题边界,检测话题转移的方法尚未出现。

因此,如何将上下文的相关性引入话题分割,提高话题分割的准确性和合理性,是目前本领域技术人员迫切解决的技术问题。

发明内容

为克服上述现有技术的不足,本发明提供了一种基于上下文相关性的对话话题追踪系统。在语义空间中构建词语相关性,基于对话系统上下文的词语相关性,计算上下文中句子的相关性,再依据句子之间的相关性识别对话系统中话题的边界,判断话题转移概率并进行话题划分。具有测试准确度高、可靠性强且稳定的有益效果。

为实现上述目的,本发明采用如下技术方案:

一种基于上下文信息的对话话题分割方法,包括以下步骤:

步骤1:采集多轮对话数据,对其进行随机抽样获取训练数据集;

步骤2:对所述训练数据集进行向量化处理,得到所述训练数据集相应的语料向量空间;

步骤3:对所述语料向量空间整理为句子序列;

步骤4:计算相邻句子之间的相关性;

步骤5:根据相邻句子之间的相关性识别多轮对话数据的话题边界,形成话题分割模型,实现多轮对话数据的话题分割。

所述步骤2中所述向量化处理采用Word2Vec工具。

所述步骤4具体包括:

步骤4.1:根据所述句子序列,以句子对作为滑窗的基本单位,获取相邻句子对;

步骤4.2:对获取的每一组相邻句子对,分别进行关键词提取;具体地,本实施例采用TF-IDF算法或过滤规则;

步骤4.3:计算两个句子中所有关键词之间的相关性;具体地,假设相邻两个句子分别为S1和S2,将S2中的每一个词语与S1中的所有词语进行相关性计算;

步骤4.4:计算相邻句子对之间的相关性,具体方法为:设S1和S2为相邻两个句子,将S2中的某个关键词与S1中的所有关键词相关性的最大值作为该关键词与句子S1的相关性,S2中所有关键词与句子S1的相关性的均值作为S1和S2两个句子的相关性。

所述步骤4.3具体包括:

步骤4.3.1:构造目标词语wj的Huffman编码;

步骤4.3.2:将所述Huffman编码与语料向量空间中目标词语wj的词向量相结合,得到新的词向量空间;

步骤4.3.3:获取词语wj的Huffman编码路径序列C;

步骤4.3.4:对于任意需要计算与词语wj的相关性的词语wi,计算词语wi词向量与编码路径序列上节点的相关性;

步骤4.3.5:求得词语wi词向量在各个节点相关性后,将整条路径上计算得出的相关性相乘,得到两个词语的似然概率,即两个词语的相关性。

所述词语wi词向量与编码路径序列上节点的相关性计算公式为:

式中,i表示词语wi在语料向量空间中的词向量,θ表示编码路径序列上的节点向量,c∈C,表示wi的词向量到目标词向量路径上节点的编码序列,T表示转置。

所述步骤5中识别多轮对话数据的话题边界包括:判断句子序列中每相邻句子对的相关性是否大于阈值,若大于,则需要设置分割点。

所述方法还包括步骤6:采用验证数据集对所述话题分割模型进行测试,所述验证数据集是通过对采集的所述多轮对话数据进行随机抽样获取的。

所述方法还包括步骤7:基于人工标注和话题分割模型,进行话题跟踪,所述人工标注用来标注是否存在话题转移。

根据本发明的第二方面,本发明提供了一种基于上下文信息的对话话题分割系统,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行以下处理:

步骤1:采集多轮对话数据,对其进行随机抽样获取训练数据集;

步骤2:对所述训练数据集进行向量化处理,得到所述训练数据集相应的语料向量空间;

步骤3:对所述语料向量空间整理为句子序列;

步骤4:计算相邻句子之间的相关性;

步骤5:根据相邻句子之间的相关性识别多轮对话数据的话题边界,形成话题分割模型,实现多轮对话数据的话题分割。

根据本发明的第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,用于基于上下文信息的对话话题分割,该程序被处理器执行时执行以下步骤:

步骤1:采集多轮对话数据,对其进行随机抽样获取训练数据集;

步骤2:对所述训练数据集进行向量化处理,得到所述训练数据集相应的语料向量空间;

步骤3:对所述语料向量空间整理为句子序列;

步骤4:计算相邻句子之间的相关性;

步骤5:根据相邻句子之间的相关性识别多轮对话数据的话题边界,形成话题分割模型,实现多轮对话数据的话题分割。

与现有技术相比,本发明的有益效果是:

本发明提供了一种基于开放域上下文相关度的对话话题追踪系统。通过计算上下文中词语的相关度代替已有方法使用的词汇相似度,构建语义空间中的词语相关性,基于该词语相关性,计算上下文中句子的相关性,再依据句子之间的相关性识别对话系统中的话题边界,判断话题转移概率,进行话题划分。具有测试准确度高、可靠性强且稳定的有益效果。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1本发明完整流程图;

图2多轮对话语料库特征图;

图3训练数据集中的数据样例图;

图4不同阈值在测试集上的准确率影响图;

图5三种方法的准确率对比图;

图6三种方法的召回率对比图;

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

实施例一

本实施例提供了一种基于上下文相关性的对话话题分割方法,包括以下步骤:

步骤1:采集多轮对话数据,对其进行随机抽样获取训练数据集;

步骤2:对所述训练数据集进行向量化处理,得到所述训练数据集相应的语料向量空间;

步骤3:对所述语料向量空间整理为句子序列;

步骤4:计算相邻句子之间的相关性;

步骤5:根据相邻句子之间的相关性识别多轮对话数据的话题边界,形成话题分割模型。

可选地,还包括步骤6:采用验证数据集对所述话题分割模型进行测试。所述验证数据集是通过对采集的所述多轮对话数据进行随机抽样获取的。

可选地,还包括步骤7:基于所述人工标注和话题分割模型,进行话题跟踪。

各步骤中涉及的内容具体如下:

1、多轮对话数据采集、抽样和向量化处理

本发明使用多个领域的800万篇文章训练得到中、英文平衡语料库,其中还包含了常见英文词汇。其中包含微博及豆瓣讨论组的多轮对话数据,语料库的数据量、对话轮数等具体信息如图2所示。

进一步地,还对所述多轮对话数据随机抽样获得了验证数据集,用于后续模型的测试。本实施例对语料库进行随机采样,最终使用50万组对话构成训练集,2.5万组对话构成验证集,1000组对话构成测试集。

实验中使用的词向量空间,是用使用Google的Word2Vec进行训练,向量维度为256维,训练时设置窗口大小为10,最小词频限制为64。

为了实现后续话题追踪,本实施例还对所述训练数据集是否存在话题转移进行人工标注。

2、词语相关性定义

假设相邻两个句子分别为S1和S2,将S2中的每一个词语与S1中的所有词语进行相关性计算。具体地,计算关键词之间相关性的方法为:

首先定义词语之间的相关性,用于定义词语x与词语y的相关性,即用词语x与词语y之间的信息熵来表示词语x与y之间关系的不确定性程度;

相似性量化并不是面向相关关系的,概念不一致。相似性表示词汇具有某种可替代性,有某些相同内涵特征或者属性特征;相关性表示词汇语义上具有某种相互依赖、相互影响的特征。本发明认为,在聊天语料话题分割任务中,确定话题分割点时,以句子内容之间的相关性作为判断依据,比以相似性做判断,会有更高的准确性和合理性。本文采用词汇相关度计算代替其他方法使用的词汇相似度计算。

在相关性计算中,信息熵可以用来表示词语关系的不确定性程度,单个词语x的信息熵计算如公式(1)所示,式中P(x)表示词语x出现的概率。

词语x与词语y的信息熵则如式(2)所示,即计算在已知词语x情况下再获得词语y的信息熵,其中P(x,y)用来计算在开放域语料上两个词语的共现概率,本发明在后面计算词语相关性分析中借鉴了这种思想。另外,一些其他方法,如协方差和SVD计算方法,都存在计算量大和语料规模需求量大的问题,不太适合用于开放域文本的相关性计算。

S(Y|X)=S{P(x,y)}-S{P(x)}(2)

词语相关性表示两个词的互相关联程度,即从一个词关联到另一个词的概率,也可表示两个词出现在同一句话或相邻两句话中的概率,如公式(3)所示。

Correlation(wi,wj)=P(wj|wi)(3)

上式中wi和wj表示需要计算相关性的两个词语。

所述词语相关性包括以下步骤:

(1)构造目标词语wj的Huffman编码;

(2)将HuffmanSoftmax模型的编码与语料向量空间中目标词wj的词向量相结合,得到新的词向量空间;所述词向量空间既包含词语在句子中的位置信息,又可以快速索引;

(3)计算所述词向量空间中所有上下文词语之间的相关性。

本发明借鉴Word2Vec框架的Skip-Gram思路训练词向量得到大规模语料的向量空间,再通过Huffman Softmax模型关联训练得到新的词向量空间,用于计算最终的似然概率。因为新的词向量空间不仅需要保持原词向量空间的信息,同时还要记录原向量中词语在句子中的位置信息,也需要支持快速索引,这是原来普通的One-hot模型词向量空间中无法计算的。词语相关性计算包含3个步骤:

第1步:获取词语wj的Huffman编码路径序列C;

第2步:对于任意需要计算相关性的词语wi,计算其词向量与编码路径上的节点的相关性,即计算出整个路径上的各个节点的相关性概率,计算过程如公式(4)所示:

式中i表示输入的词向量,θ表示节点向量,其中c∈C,表示源向量wi到目标词wj向量路径上节点的编码序列。

第3步:求得目标词语向量在各个节点的预测概率后,将整条路径上计算得出的概率相乘,得到两个词语的似然概率,计算过程如公式(5)所示:

上式中,i表示词语wi在向量空间中的向量,j表示词语wj的向量表示,α是一个需要训练的超参数,表示路径上的距离惩罚系数,用于平衡不同距离上的词语对预测概率的影响,具体计算过程如算法1所示。通过该算法计算得到两个词语的似然概率,代表这两个词语同时出现的概率,即两个词语的相关性。

训练数据集中已经人工对对话数据是否存在话题转移做了标注,数据样例如图3所示,第一列标签就是对话对应的标注,标签为1的表示句子描述内容属于同一话题,标签为0的表示出现话题转移,前后内容不连贯。黑斜体字表示可能出现话题转移的位置。

3、句子相关性定义

本发明是基于词语相关性信息计算上下文句子相关性。包括以下步骤:

(1)对所述语料向量空间的句子进行关键词提取;具体地,本实施例根据TF-IDF算法或过滤规则获取句子的关键词。

(2)根据所述相关性定义模块的结果,计算两个句子中所有关键词语的相关性;

(3)计算相邻句子之间的相关性,具体方法为:设S1和S2为相邻两个句子,将S2中的某个关键词与S1中的所有关键词相关性的最大值作为该关键词与句子S1的相关性,S2中所有关键词与句子S1的相关性的均值作为S1和S2两个句子的相关性。

具体地,考虑到口语对话中句子内容的随意性和复杂性,为了降低不规范文本对概率计算的影响,取一个词对应的相关性最大值作为该词与句子S1的相关性,计算公式如式(6)所示。

上式中,m和n分别表示句子S1与S2分词后所包含词语的个数,wi与wj分别代表句子S1与S2中的词,max(·)表示取集合中最大概率值。两个句子的相关性则用各个词的相关性均值表示。

4、话题分割模型

根据所述句子相关性模块得到的上下文中句子之间的相关性,识别对话系统中的话题边界,形成话题分割模型。具体包括:

(1)将训练数据集相应的多轮对话数据整理为句子序列;

为了将语句相关性计算融入对话系统的话题分割,需要完成如下步骤:首先将多轮对话数据整理为句子序列DT={S1,S2…Sn}。

(2)计算句子序列中每相邻句子对的相关性;

以句子对作为滑窗的基本单位,做句子相关性判断,模拟两个人在对话。

(3)判断句子序列中每相邻句子对的相关性是否大于阈值,若大于,则需要设置分割点。

本发明通过训练获得话题分割的阈值,即经过多次试验,根据实验结果(准确率和召回率)获得的一个相对合理的阈值σ;通过公式(7)判断句子中间是否需要设置分割点。

式中Si与Si+1是句子序列DT中前后相邻两个句子,Corr(·)用于计算两个句子的整体相关性,σ为训练得到的分割阈值,seg(·)表示计算输入的两句话中间是否存在分割点。若结果为1,则存在分割点;否则不存在分割点。过程如算法2所示,向分割检测函数输入连续待分割的句子之后就可以判断中间是否需要设置分割点。

实施例二

本实施例的目的是提供一种基于基于上下文信息的对话话题分割系统。

为了实现上述目的,本发明采用如下一种技术方案:

一种基于上下文信息的对话话题分割系统,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行以下处理:

步骤1:采集多轮对话数据,对其进行随机抽样获取训练数据集;

步骤2:对所述训练数据集进行向量化处理,得到所述训练数据集相应的语料向量空间;

步骤3:对所述语料向量空间整理为句子序列;

步骤4:计算相邻句子之间的相关性;

步骤5:根据相邻句子之间的相关性识别多轮对话数据的话题边界,形成话题分割模型,实现多轮对话数据的话题分割。

实施例三

本实施例的目的是提供一种计算机可读存储介质。

为了实现上述目的,本发明采用如下一种技术方案:

一种计算机可读存储介质,其上存储有计算机程序,用于基于上下文信息的对话话题分割,该程序被处理器执行时执行以下步骤:

步骤1:采集多轮对话数据,对其进行随机抽样获取训练数据集;

步骤2:对所述训练数据集进行向量化处理,得到所述训练数据集相应的语料向量空间;

步骤3:对所述语料向量空间整理为句子序列;

步骤4:计算相邻句子之间的相关性;

步骤5:根据相邻句子之间的相关性识别多轮对话数据的话题边界,形成话题分割模型,实现多轮对话数据的话题分割。

以上实施例二和实施例三中,各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。

实验结果

为了测试不同边界分割阈值对对话中话题分割准确率的影响,选择在训练集上准确率较高的三个精确到个位的分割阈值在测试集上进行了测试,测试结果如图4所示。

从图中可以看出:第一,在阈值为24.0时准确率达到0.544,而另外的两个阈值的准确率则在0.515到0.530范围内波动。第二:分割阈值需要判断所有对话是否出现了话题转移,数据集中存在部分话题转移不是特别明确的一些对话,造成所有阈值的准确率在某一部分数据集上准确率都有所下降,如在数据量为400时,准确率都上升说明对话中出现了明显的话题转移,而数据量为800时,准确率都下降,说明对话中没有明显的话题转移。第三,准确率最高的分割阈值波动频繁但趋于稳定,与其他阈值的准确率在整体趋势上保持一致性。

为了验证本发明分割模型的效果,将其与两种其他现有模型的准确率和召回率进行比较。其中其他两种模型为随机分割模型,以及结合了TFI-DF的TextTiling模型。

在模型对比实验中,本文选择了3个对比模型:随机分割模型,结合了TF-IDF的TextTiling模型和本发明模型。随机分割模型中,本文参考已有工作的处理方式,得分的获取并不是完全随机分割的处理方法,而是在随机过程中添加了部分先验知识。先验知识的作用是通过训练集中正样本的高频词对测试集句子中的关键词进行约束。另一个对比模型在经典TextTiling方法做了改进,在分割计算过程中融合了上下句文本中词语的TF-IDF特征信息。实验采用10这交叉验证,使用三个方法在测试数据集上进行测试,实验的结果如图5所示。

从图中可以看出三方面结果:首先,三个方法的准确率都高于50%,说明随机分割方法中的先验知识在判断分割点时候也起到了一定的作用;其次,随着数据量的增加TextTiling方法和相关性方法都有大幅波动。经过对实验数据分析发现这些波动是由数据中的较短文本造成的,类似“怎么”、“谢谢”、“好的”、“可以”等极短的文本会对分割阈值判断分割边界准确性造成较大影响。再次,本文的相关性计算方法比利用文本相似性的TextTiling准确率高出2%。相关性方法的准确率比TextTiling方法的准确率高,是因为相关性方法在处理相关性计算时采用了最大采样方法,以尽可能放大关键词之间的相关性,同时减小低频词、新词和专业词汇的相关性对句子整体相关性的影响,增加了方法的鲁棒性。而TextTiling算法中的所有词都会参与运算,结果中会包含多组相似性为0的结果,不能消除短词语对相似性计算准确度的影响,造成句子之间的相似性会有较大的偏差。作者song的模型是文献所述目前性能最高的模型,但是因为缺少数据和程序而无法复现,其文章中给出话题分割任务中的准确率为0.521,而本文提出的相关性计算方法的准确率能达到0.54,好于song模型的准确率。

本文还在比较不同方法准确率基础上,比较了方法的召回率,召回率的比较结果如图6所示。图中可以看出:首先,本发明的相关性方法的召回率最高;其次,基于TextTiling的方法和随机方法的召回率表现出小幅波动,而且本发明方法开始的波动较大,说明本方法能识别出大部分需要分割的数据。这一部分也是分割阈值准确率波动到最高的数据段,说明分割阈值同时影响了准确率和召回率。但是当数据量达到600之后,召回率基本趋于稳定,和准确率趋势是一致。

本发明的话题分割方法,基于对话系统上下文的词语相关性,计算上下文中句子的相关性,再依据句子之间的相关性识别对话系统中话题的边界,进行话题划分,具有测试准确度高、可靠性强且稳定的有益效果,从而后续的话题跟踪准确度也有所提高。

本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号