一种面向用户查询意图的汉语句子相似度分层计算方法及装置制造方法

文档序号:6620455阅读:196来源:国知局
一种面向用户查询意图的汉语句子相似度分层计算方法及装置制造方法
【专利摘要】本发明提供了一种面向用户查询意图的汉语句子相似度分层计算方法及装置,通过采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子,再采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子,最后采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子。至此,得到数据集中的所有相似句子。本发明计算简洁,效果良好,可以有效解决关键词差异大、长度长、句子结构复杂等问题。
【专利说明】—种面向用户查询意图的汉语句子相似度分层计算方法及装置

【技术领域】
[0001]本发明属于汉语句子相似度计算【技术领域】,尤其涉及一种面向用户查询意图的汉语句子相似度分层计算方法及装置。

【背景技术】
[0002]相似度计算是自然语言处理领域的基础工作,应用背景广泛。根据处理对象的不同,可以分为词相似度计算、句子相似度计算以及篇章相似度计算。其中句子相似度计算在信息检索、机器翻译、问答系统以及自动文摘等应用领域中的效能直接影响着应用系统的整体性能。因此,目前仍有众多学者热衷于不断改进句子相似度的计算方法。
[0003]目前的句子相似度计算方法主要有基于编辑距离的句子相似度计算方法,基于本体词典或知网语义的句子相似度计算方法,基于语义依存的句子相似度计算方法等等。
[0004]编辑距离,也称Levenshtein distance,是常用的句子相似度计算方法之一。通过计算一个句子转换成另一个句子的最小编辑操作数,来判定两个句子是否相似。其中编辑操作包括“删除”、“插入”和“替换”。若两个句子的编辑距离越小,则两个句子越相似。文献1(车万翔,刘挺,秦兵等.基于改进编辑距离的中文相似句子检索[J].高级技术通讯,2004.7,14(7): 15-19)基于编辑距离思想,以及汉语中单个字往往不具备意义的特点,提出改进的编辑距离计算句子相似度算法,以词为单位计算编辑距离,同时融入Hownet和《同义词词林》两个语义资源。文献2(吕学强,任飞亮,黄志丹等.句子相似模型和最相似句子查找算法[J].东北大学学报(自然科学版),2003.6,24(6):531-534)从词形、词序两方面计算句子相似度,文献3 (杨思春等.一种改进的句子相似度计算模型[J].电子科技大学学报,2006.12,35(6):956-959)在文献2的基础上对关键词的抽取方法进行改进,考虑同义词的情况,准确率有所提高。
[0005]文献I提出的改进编辑距离计算句子相似度算法,虽然考虑了中文语言的特点,并融入语义信息,但是,由于目前中文分词的效果并不理想,不同的语境下一个词有时可以识别出来,有时却不能,分词的不准确势必会带来编辑距离结果的误差。这势必会影响计算相似度的准确率。文献2和文献3提出的句子相似度计算方法,虽然准确率有所提高,但是对于长度较长、结构较为复杂的句子效果仍不理想。


【发明内容】

[0006]本发明的目的在于提供一种面向用户查询意图的汉语句子相似度分层计算方法及装置,旨在克服中文分词效果不理想的问题,同时解决对于关键词差异大、长度长、句子结构复杂的句子计算相似度效果不理想的问题,通过分层计算的思想,提高相似度计算的准确性,提升本方案的实用价值。
[0007]本发明是这样实现的,一种面向用户查询意图的汉语句子相似度分层计算方法,包括以下步骤:
[0008]S1、采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;
[0009]S2、采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;
[0010]S3、采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子。
[0011]优选地,在步骤SI中,所述去除句末标点的编辑距离句子相似度算法具体包括:计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子。
[0012]优选地,在步骤S2中,所述基于关键词特征和语义特征的句子相似度算法具体包括:采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似。
[0013]优选地,在步骤S2中,所述剩余关键词是指一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合。
[0014]优选地,在步骤S2中,所述剩余关键词词数与已标注的相似句子对之间的关系具体包括以下规则:
[0015]规则1:经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的;
[0016]规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
[0017]规则3:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
[0018]规则4:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的。
[0019]优选地,在步骤S3中,所述面向用户意图的句子相似度算法具体包括:
[0020]根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集;
[0021]对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度;
[0022]使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度。
[0023]优选地,在步骤S3中,所述用户提问子句集的构建方法具体包括:初始子句集为空,首先根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;再将任意长度的连续的若干子句构成一个子句,并入子句集中;最后将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集。
[0024]优选地,在步骤S3中,所述子句和问题集中问题的相似性的判断具体为:
[0025]规则5:将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的。
[0026]本发明进一步提供了一种面向用户查询意图的汉语句子相似度分层计算装置,包括:
[0027]—级相似度确定模块,用于采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;
[0028]二级相似度确定模块,用于采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;
[0029]三级相似度确定模块,用于采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子;其中,
[0030]所述一级相似度确定模块、二级相似度确定模块以及三级相似度确定模块依次连接。
[0031]优选地,所述一级相似度确定模块包括一级算法模块,用于计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子。
[0032]优选地,所述二级相似度确定模块包括二级算法模块,用于采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似。
[0033]优选地,所述二级相似度确定模块还包括剩余关键词集合模块,用于将一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合;其中,
[0034]所述剩余关键词集合模块与二级算法模块连接。
[0035]优选地,所述二级相似度确定模块还包括用于对剩余关键词词数与已标注的相似句子对之间的关系设定具体规则的关系规则设定模块,所述关系规则设定模块设定规则具体包括:
[0036]规则1:用于经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的;
[0037]规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
[0038]规则3模块:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
[0039]规则4模块:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的;其中,
[0040]所述关系规则设定模块分别与剩余关键词集合模块和二级算法模块连接。
[0041 ] 优选地,所述三级相似度确定模块包括三级算法模块,所述三级算法模块包括:
[0042]提问子句集转换模块,用于根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集;
[0043]子句集处理模块,用于对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度;
[0044]替换模块,用于使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度;其中,
[0045]所述一级算法模块、二级算法模块以及三级算法模块中的提问子句集转换模块、子句集处理模块、替换模块依次连接。
[0046]优选地,所述提问子句集转换模块包括:
[0047]拆分集中模块,用于在初始子句集为空时,根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;
[0048]子句并入模块,用于将任意长度的连续的若干子句构成一个子句,并入子句集中;
[0049]提问整句并入模块,用于将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集;其中,
[0050]所述拆分集中模块、子句并入模块、提问整句并入模块以及子句集处理模块依次连接。
[0051]优选地,所述三级算法模块还包括相似性判断模块,用于将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的;其中,所述相似性判断模块与子句集处理模块连接。
[0052]本发明克服现有技术的不足,提供一种面向用户查询意图的汉语句子相似度分层计算方法及装置,采用Microsoft visual stud12010开发环境实现,语言采用C#。本系统共分为3个模块,分别实现本方案设计的三个算法。具体的句子相似度分层计算流程如图1所示。由图1可得,本方案包括三个模块,分别采用三种算法:去除句末标点的编辑距离句子相似度算法、基于关键词特征和语义特征的句子相似度算法、面向用户意图的句子相似度算法。通过三种不同的算法,处理三种不同类型的数据,即构成句子的字符基本一致、构成句子的关键词基本一致、构成句子的关键词相差较大三类数据,计算句子相似度,逐步提升本方案的实用价值。具体做法为:首先采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子。其次采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子。最后采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子。至此,得到数据集中的所有相似句子。也就是说,3个模块之间是串行的,各个模块处理的数据都是仍不确定是否是相似的句子,已经确定为相似的或者不相似的句子是不参与后续计算的。
[0053]在本发明中,最主要的关键技术点在于:
[0054](I)本发明采用分层计算的思想,将数据分成三大类,即构成句子的字符基本一致、构成句子的关键词基本一致、构成句子的关键词相差较大三类数据,针对不同类型的数据设计不同的算法,并且逐次使用不同算法计算句子相似性。
[0055](2)本发明去除句末标点的编辑距离句子相似度算法主要针对字符基本一致的句子,将句子去除句末标点,再按照编辑距离算法计算两个句子的编辑距离,设定编辑距离小于等于2的句子为相似的。其中去除句末标点的操作和阈值的设定,都使得该算法更符合人们的日常语言习惯,可以有效改善句子相似度计算的准确率。
[0056](3)本发明基于关键词特征和语义特征的句子相似度算法主要针对关键词基本一致的句子,具体计算方法为:首先计算两个句子的剩余关键词列表,最后根据统计分析得出的四条规则计算其句子相似性。其中,剩余关键词是指一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合。
[0057](4)本发明面向用户意图的句子相似度算法主要针对关键词相差较大的句子,采用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度。具体做法是:首先,根据标点符号切分用户提问,构建用户提问子句集;其次对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表;最后根据制定的规则计算用户提问和问题集中该问题的相似性。算法利用了自然标注,也就是用户提问中的标点符号,考虑了查询意图,解决传统办法计算一个长句与一个短句之间的相似度值不能反映语义层面相似度的问题。

【专利附图】

【附图说明】
[0058]图1是本发明中汉语句子相似度分层计算流程图;
[0059]图2是本发明实施例中面向用户查询意图的汉语句子相似度分层计算方法的步骤流程图;
[0060]图3是本发明中去除句末标点的编辑距离句子相似度计算方法流程图;
[0061]图4是本发明中基于关键词特征和语义特征的句子相似度算法流程图;
[0062]图5是本发明中计算剩余关键词列表流程图;
[0063]图6是本发明中面向用户意图的句子相似度算法流程图;
[0064]图7是本发明实施例中面向用户查询意图的汉语句子相似度分层计算装置的结构示意图。

【具体实施方式】
[0065]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0066]一种面向用户查询意图的汉语句子相似度分层计算方法,如图1和图2所示,包括以下步骤:
[0067]S1、采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子
[0068]在步骤SI中,去除句末标点的编辑距离句子相似度计算方法流程如图3所示,其中,去除句末标点的编辑距离句子相似度算法是指在计算两个句子的相似度时,忽略其句末的标点符号,因为句末标点通常用于表达语气,对于判别句子相似度是不具有意义的。具体方案为:将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定哪些句子为相似的。本方案中阈值设置为2,这是考虑到人们在描述问题时往往偏向使用一些无关真正需求的介词,或者对于同一事物存在不同表述,所以将编辑距离小于等于2的句子对视为相似的,即允许有两次或两次以下的编辑操作次数。
[0069]S2、采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子
[0070]在步骤S2中,基于关键词特征和语义特征的句子相似度算法流程如图4所示,其中,基于关键词特征和语义特征的句子相似度算法是指采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似。其中,剩余关键词是指一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合。
[0071]本算法通过分析剩余关键词总词数与相似句子之间的关系,共制定了四条规则,分别为:
[0072]规则1:经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的。
[0073]规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的。
[0074]规则3:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的。
[0075]规则4:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的。
[0076]本算法的具体做法为:首先计算两个句子的剩余关键词列表,再根据上述四条规则计算其句子相似性。
[0077]在本发明实施例中,计算剩余关键词列表流程如图5所示。
[0078]S3、采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子
[0079]在步骤S3中,面向用户意图的句子相似度算法流程如图6所示,其中,面向用户意图的句子相似度算法是指利用用户提问中的标点符号,将用户提问转换成用户提问子句集,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度。使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度。
[0080]其中用户提问子句集的构建方法是:初始子句集为空,首先根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;再将任意长度的连续的若干子句构成一个子句,并入子句集中;最后将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集。
[0081]由于子句所包含的关键词个数相对完整问题句的关键词个数较少,所以提出规则5来判断子句和问题集中问题的相似性。
[0082]规则5:将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的。
[0083]本算法的具体做法是:首先,根据标点符号切分用户提问,构建用户提问子句集;其次对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表;最后根据规则5计算用户提问和问题集中该问题的相似性。
[0084]本发明利用分层计算的思想,充分考虑了语句比较计算过程中待比较语句之间的各种特征组成,从而使相似度的计算更加简洁,并且取得好的效果。此外,本发明基于编辑距离算法,通过突出其考虑字符串与字符串之间的顺序的特点,采用去除句末标点的编辑距离句子相似度算法,以字为处理单元快速识别基本一致的句子,克服中文分词效果不理想的问题。最后,本发明提出的基于关键词特征和语义特征的句子相似度算法和面向用户意图的句子相似度算法,兼顾了同义词和否定词等语义特征,同时考虑了查询请求和查询意图之间的关系,可以有效解决关键词差异大、长度长、句子结构复杂等问题。
[0085]本发明进一步提供了一种面向用户查询意图的汉语句子相似度分层计算装置,如图6所示,包括:
[0086]一级相似度确定模块1,用于采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;
[0087]二级相似度确定模块2,用于采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;
[0088]三级相似度确定模块3,用于采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子;其中,
[0089]所述一级相似度确定模块1、二级相似度确定模块2以及三级相似度确定模块3依次连接。
[0090]在本发明实施例中,更具体的,所述一级相似度确定模块I包括一级算法模块,用于计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子;
[0091]所述二级相似度确定模块2包括二级算法模块,用于采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似;
[0092]所述三级相似度确定模块3包括三级算法模块,所述三级算法模块包括:
[0093]提问子句集转换模块,用于根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集;
[0094]子句集处理模块,用于对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度;
[0095]替换模块,用于使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度;其中,
[0096]所述一级算法模块、二级算法模块以及三级算法模块中的提问子句集转换模块、子句集处理模块、替换模块依次连接。
[0097]在本发明实施例中,更具体的,所述二级相似度确定模块2还包括剩余关键词集合模块,用于将一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合;其中,所述剩余关键词集合模块与二级算法模块连接。
[0098]在本发明实施例中,更具体的,所述二级相似度确定模块2还包括用于对剩余关键词词数与已标注的相似句子对之间的关系设定具体规则的关系规则设定模块,所述关系规则设定模块23设定规则具体包括:
[0099]规则1:用于经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的;
[0100]规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
[0101]规则3模块:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
[0102]规则4模块:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的;其中,
[0103]所述关系规则设定模块分别与剩余关键词集合模块和二级算法模块连接。
[0104]在本发明实施例中,更具体的,所述提问子句集转换模块包括:
[0105]拆分集中模块,用于在初始子句集为空时,根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;
[0106]子句并入模块,用于将任意长度的连续的若干子句构成一个子句,并入子句集中;
[0107]提问整句并入模块,用于将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集;其中,
[0108]所述拆分集中模块、子句并入模块、提问整句并入模块以及子句集处理模块依次连接。
[0109]在本发明实施例中,更具体的,所述三级算法模块还包括相似性判断模块,用于将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的;其中,所述相似性判断模块与子句集处理模块连接。
[0110]本发明实施例中的面向用户查询意图的汉语句子相似度分层计算装置与上述面向用户查询意图的汉语句子相似度分层计算方法相对应,具有相同的原理和有益效果,以上述方法解释本实施例装置,在此不再赘述。
[0111]相比于现有技术的缺点和不足,本发明具有以下有益效果:
[0112](I)本发明利用分层计算的思想,充分考虑了语句比较计算过程中待比较语句之间的各种特征组成,从而使相似度的计算更加简洁,并且取得好的效果。
[0113](2)本发明基于编辑距离算法,通过突出其考虑字符串与字符串之间的顺序的特点,采用去除句末标点的编辑距离句子相似度算法,以字为处理单元快速识别基本一致的句子,克服中文分词效果不理想的问题。
[0114](3)本发明提出的基于关键词特征和语义特征的句子相似度算法和面向用户意图的句子相似度算法,兼顾了同义词和否定词等语义特征,同时考虑了查询请求和查询意图之间的关系,可以有效解决关键词差异大、长度长、句子结构复杂等问题。
[0115]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种面向用户查询意图的汉语句子相似度分层计算方法,其特征在于包括以下步骤: 51、采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子; 52、采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子; 53、采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子。
2.如权利要求1所述的面向用户查询意图的汉语句子相似度分层计算方法,其特征在于,在步骤SI中,所述去除句末标点的编辑距离句子相似度算法具体包括:计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子; 在步骤S2中,所述基于关键词特征和语义特征的句子相似度算法具体包括:采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似; 在步骤S3中,所述面向用户意图的句子相似度算法具体包括: 根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集; 对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度; 使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度。
3.如权利要求2所述的面向用户查询意图的汉语句子相似度分层计算方法,其特征在于,在步骤S2中,所述剩余关键词是指一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合。
4.如权利要求3所述的面向用户查询意图的汉语句子相似度分层计算方法,其特征在于,在步骤S2中,所述剩余关键词词数与已标注的相似句子对之间的关系具体包括以下规则: 规则1:经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的; 规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于O,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的; 规则3:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于O,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的; 规则4:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的。
5.如权利要求2所述的面向用户查询意图的汉语句子相似度分层计算方法,其特征在于,在步骤S3中,所述用户提问子句集的构建方法具体包括:初始子句集为空,首先根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;再将任意长度的连续的若干子句构成一个子句,并入子句集中;最后将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集; 在步骤S3中,所述子句和问题集中问题的相似性的判断具体为: 规则5:将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于O,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的。
6.一种面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,包括: 一级相似度确定模块,用于采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;二级相似度确定模块,用于采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;三级相似度确定模块,用于采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子;其中, 所述一级相似度确定模块、二级相似度确定模块以及三级相似度确定模块依次连接。
7.如权利要求6所述的面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,所述一级相似度确定模块包括一级算法模块,用于计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子; 所述二级相似度确定模块包括二级算法模块,用于采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似; 所述三级相似度确定模块包括三级算法模块,所述三级算法模块包括: 提问子句集转换模块,用于根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集; 子句集处理模块,用于对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度; 替换模块,用于使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度;其中, 所述一级算法模块、二级算法模块以及三级算法模块中的提问子句集转换模块、子句集处理模块、替换模块依次连接。
8.如权利要求7所述的面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,所述二级相似度确定模块还包括剩余关键词集合模块,用于将一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合;其中, 所述剩余关键词集合模块与二级算法模块连接。
9.如权利要求8所述的面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,所述二级相似度确定模块还包括用于对剩余关键词词数与已标注的相似句子对之间的关系设定具体规则的关系规则设定模块,所述关系规则设定模块设定规则具体包括: 规则1:用于经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的; 规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于O,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的; 规则3模块:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于O,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的; 规则4模块:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的;其中, 所述关系规则设定模块分别与剩余关键词集合模块和二级算法模块连接。
10.如权利要求9所述的面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,所述提问子句集转换模块包括: 拆分集中模块,用于在初始子句集为空时,根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中; 子句并入模块,用于将任意长度的连续的若干子句构成一个子句,并入子句集中; 提问整句并入模块,用于将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集;其中, 所述拆分集中模块、子句并入模块、提问整句并入模块以及子句集处理模块依次连接; 所述三级算法模块还包括相似性判断模块,用于将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的;其中,所述相似性判断模块与子句集处理模块连接。
【文档编号】G06F17/27GK104133812SQ201410341855
【公开日】2014年11月5日 申请日期:2014年7月17日 优先权日:2014年7月17日
【发明者】张仰森, 李景玉 申请人:北京信息科技大学, 张仰森
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1