CN104133812B - 一种面向用户查询意图的汉语句子相似度分层计算方法及装置 - Google Patents
一种面向用户查询意图的汉语句子相似度分层计算方法及装置 Download PDFInfo
- Publication number
- CN104133812B CN104133812B CN201410341855.0A CN201410341855A CN104133812B CN 104133812 B CN104133812 B CN 104133812B CN 201410341855 A CN201410341855 A CN 201410341855A CN 104133812 B CN104133812 B CN 104133812B
- Authority
- CN
- China
- Prior art keywords
- sentence
- similarity
- word
- user
- clause
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种面向用户查询意图的汉语句子相似度分层计算方法及装置,通过采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子,再采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子,最后采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子。至此,得到数据集中的所有相似句子。本发明计算简洁,效果良好,可以有效解决关键词差异大、长度长、句子结构复杂等问题。
Description
技术领域
本发明属于汉语句子相似度计算技术领域,尤其涉及一种面向用户查询意图的汉语句子相似度分层计算方法及装置。
背景技术
相似度计算是自然语言处理领域的基础工作,应用背景广泛。根据处理对象的不同,可以分为词相似度计算、句子相似度计算以及篇章相似度计算。其中句子相似度计算在信息检索、机器翻译、问答系统以及自动文摘等应用领域中的效能直接影响着应用系统的整体性能。因此,目前仍有众多学者热衷于不断改进句子相似度的计算方法。
目前的句子相似度计算方法主要有基于编辑距离的句子相似度计算方法,基于本体词典或知网语义的句子相似度计算方法,基于语义依存的句子相似度计算方法等等。
编辑距离,也称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的基础上对关键词的抽取方法进行改进,考虑同义词的情况,准确率有所提高。
文献1提出的改进编辑距离计算句子相似度算法,虽然考虑了中文语言的特点,并融入语义信息,但是,由于目前中文分词的效果并不理想,不同的语境下一个词有时可以识别出来,有时却不能,分词的不准确势必会带来编辑距离结果的误差。这势必会影响计算相似度的准确率。文献2和文献3提出的句子相似度计算方法,虽然准确率有所提高,但是对于长度较长、结构较为复杂的句子效果仍不理想。
发明内容
本发明的目的在于提供一种面向用户查询意图的汉语句子相似度分层计算方法及装置,旨在克服中文分词效果不理想的问题,同时解决对于关键词差异大、长度长、句子结构复杂的句子计算相似度效果不理想的问题,通过分层计算的思想,提高相似度计算的准确性,提升本方案的实用价值。
本发明是这样实现的,一种面向用户查询意图的汉语句子相似度分层计算方法,包括以下步骤:
S1、采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;
S2、采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;
S3、采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子。
优选地,在步骤S1中,所述去除句末标点的编辑距离句子相似度算法具体包括:计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子。
优选地,在步骤S2中,所述基于关键词特征和语义特征的句子相似度算法具体包括:采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似。
优选地,在步骤S2中,所述剩余关键词是指一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合。
优选地,在步骤S2中,所述剩余关键词词数与已标注的相似句子对之间的关系具体包括以下规则:
规则1:经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的;
规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则3:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则4:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的。
优选地,在步骤S3中,所述面向用户意图的句子相似度算法具体包括:
根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集;
对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度;
使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度。
优选地,在步骤S3中,所述用户提问子句集的构建方法具体包括:初始子句集为空,首先根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;再将任意长度的连续的若干子句构成一个子句,并入子句集中;最后将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集。
优选地,在步骤S3中,所述子句和问题集中问题的相似性的判断具体为:
规则5:将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的。
本发明进一步提供了一种面向用户查询意图的汉语句子相似度分层计算装置,包括:
一级相似度确定模块,用于采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;
二级相似度确定模块,用于采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;
三级相似度确定模块,用于采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子;其中,
所述一级相似度确定模块、二级相似度确定模块以及三级相似度确定模块依次连接。
优选地,所述一级相似度确定模块包括一级算法模块,用于计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子。
优选地,所述二级相似度确定模块包括二级算法模块,用于采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似。
优选地,所述二级相似度确定模块还包括剩余关键词集合模块,用于将一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合;其中,
所述剩余关键词集合模块与二级算法模块连接。
优选地,所述二级相似度确定模块还包括用于对剩余关键词词数与已标注的相似句子对之间的关系设定具体规则的关系规则设定模块,所述关系规则设定模块设定规则具体包括:
规则1:用于经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的;
规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则3模块:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则4模块:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的;其中,
所述关系规则设定模块分别与剩余关键词集合模块和二级算法模块连接。
优选地,所述三级相似度确定模块包括三级算法模块,所述三级算法模块包括:
提问子句集转换模块,用于根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集;
子句集处理模块,用于对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度;
替换模块,用于使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度;其中,
所述一级算法模块、二级算法模块以及三级算法模块中的提问子句集转换模块、子句集处理模块、替换模块依次连接。
优选地,所述提问子句集转换模块包括:
拆分集中模块,用于在初始子句集为空时,根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;
子句并入模块,用于将任意长度的连续的若干子句构成一个子句,并入子句集中;
提问整句并入模块,用于将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集;其中,
所述拆分集中模块、子句并入模块、提问整句并入模块以及子句集处理模块依次连接。
优选地,所述三级算法模块还包括相似性判断模块,用于将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的;其中,所述相似性判断模块与子句集处理模块连接。
本发明克服现有技术的不足,提供一种面向用户查询意图的汉语句子相似度分层计算方法及装置,采用Microsoft visual studio2010开发环境实现,语言采用C#。本系统共分为3个模块,分别实现本方案设计的三个算法。具体的句子相似度分层计算流程如图1所示。由图1可得,本方案包括三个模块,分别采用三种算法:去除句末标点的编辑距离句子相似度算法、基于关键词特征和语义特征的句子相似度算法、面向用户意图的句子相似度算法。通过三种不同的算法,处理三种不同类型的数据,即构成句子的字符基本一致、构成句子的关键词基本一致、构成句子的关键词相差较大三类数据,计算句子相似度,逐步提升本方案的实用价值。具体做法为:首先采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子。其次采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子。最后采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子。至此,得到数据集中的所有相似句子。也就是说,3个模块之间是串行的,各个模块处理的数据都是仍不确定是否是相似的句子,已经确定为相似的或者不相似的句子是不参与后续计算的。
在本发明中,最主要的关键技术点在于:
(1)本发明采用分层计算的思想,将数据分成三大类,即构成句子的字符基本一致、构成句子的关键词基本一致、构成句子的关键词相差较大三类数据,针对不同类型的数据设计不同的算法,并且逐次使用不同算法计算句子相似性。
(2)本发明去除句末标点的编辑距离句子相似度算法主要针对字符基本一致的句子,将句子去除句末标点,再按照编辑距离算法计算两个句子的编辑距离,设定编辑距离小于等于2的句子为相似的。其中去除句末标点的操作和阈值的设定,都使得该算法更符合人们的日常语言习惯,可以有效改善句子相似度计算的准确率。
(3)本发明基于关键词特征和语义特征的句子相似度算法主要针对关键词基本一致的句子,具体计算方法为:首先计算两个句子的剩余关键词列表,最后根据统计分析得出的四条规则计算其句子相似性。其中,剩余关键词是指一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合。
(4)本发明面向用户意图的句子相似度算法主要针对关键词相差较大的句子,采用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度。具体做法是:首先,根据标点符号切分用户提问,构建用户提问子句集;其次对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表;最后根据制定的规则计算用户提问和问题集中该问题的相似性。算法利用了自然标注,也就是用户提问中的标点符号,考虑了查询意图,解决传统办法计算一个长句与一个短句之间的相似度值不能反映语义层面相似度的问题。
附图说明
图1是本发明中汉语句子相似度分层计算流程图;
图2是本发明实施例中面向用户查询意图的汉语句子相似度分层计算方法的步骤流程图;
图3是本发明中去除句末标点的编辑距离句子相似度计算方法流程图;
图4是本发明中基于关键词特征和语义特征的句子相似度算法流程图;
图5是本发明中计算剩余关键词列表流程图;
图6是本发明中面向用户意图的句子相似度算法流程图;
图7是本发明实施例中面向用户查询意图的汉语句子相似度分层计算装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一种面向用户查询意图的汉语句子相似度分层计算方法,如图1和图2所示,包括以下步骤:
S1、采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子
在步骤S1中,去除句末标点的编辑距离句子相似度计算方法流程如图3所示,其中,去除句末标点的编辑距离句子相似度算法是指在计算两个句子的相似度时,忽略其句末的标点符号,因为句末标点通常用于表达语气,对于判别句子相似度是不具有意义的。具体方案为:将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定哪些句子为相似的。本方案中阈值设置为2,这是考虑到人们在描述问题时往往偏向使用一些无关真正需求的介词,或者对于同一事物存在不同表述,所以将编辑距离小于等于2的句子对视为相似的,即允许有两次或两次以下的编辑操作次数。
S2、采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子
在步骤S2中,基于关键词特征和语义特征的句子相似度算法流程如图4所示,其中,基于关键词特征和语义特征的句子相似度算法是指采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似。其中,剩余关键词是指一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合。
本算法通过分析剩余关键词总词数与相似句子之间的关系,共制定了四条规则,分别为:
规则1:经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的。
规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的。
规则3:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的。
规则4:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的。
本算法的具体做法为:首先计算两个句子的剩余关键词列表,再根据上述四条规则计算其句子相似性。
在本发明实施例中,计算剩余关键词列表流程如图5所示。
S3、采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子
在步骤S3中,面向用户意图的句子相似度算法流程如图6所示,其中,面向用户意图的句子相似度算法是指利用用户提问中的标点符号,将用户提问转换成用户提问子句集,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度。使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度。
其中用户提问子句集的构建方法是:初始子句集为空,首先根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;再将任意长度的连续的若干子句构成一个子句,并入子句集中;最后将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集。
由于子句所包含的关键词个数相对完整问题句的关键词个数较少,所以提出规则5来判断子句和问题集中问题的相似性。
规则5:将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的。
本算法的具体做法是:首先,根据标点符号切分用户提问,构建用户提问子句集;其次对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表;最后根据规则5计算用户提问和问题集中该问题的相似性。
本发明利用分层计算的思想,充分考虑了语句比较计算过程中待比较语句之间的各种特征组成,从而使相似度的计算更加简洁,并且取得好的效果。此外,本发明基于编辑距离算法,通过突出其考虑字符串与字符串之间的顺序的特点,采用去除句末标点的编辑距离句子相似度算法,以字为处理单元快速识别基本一致的句子,克服中文分词效果不理想的问题。最后,本发明提出的基于关键词特征和语义特征的句子相似度算法和面向用户意图的句子相似度算法,兼顾了同义词和否定词等语义特征,同时考虑了查询请求和查询意图之间的关系,可以有效解决关键词差异大、长度长、句子结构复杂等问题。
本发明进一步提供了一种面向用户查询意图的汉语句子相似度分层计算装置,如图6所示,包括:
一级相似度确定模块1,用于采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;
二级相似度确定模块2,用于采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;
三级相似度确定模块3,用于采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子;其中,
所述一级相似度确定模块1、二级相似度确定模块2以及三级相似度确定模块3依次连接。
在本发明实施例中,更具体的,所述一级相似度确定模块1包括一级算法模块,用于计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子;
所述二级相似度确定模块2包括二级算法模块,用于采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似;
所述三级相似度确定模块3包括三级算法模块,所述三级算法模块包括:
提问子句集转换模块,用于根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集;
子句集处理模块,用于对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度;
替换模块,用于使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度;其中,
所述一级算法模块、二级算法模块以及三级算法模块中的提问子句集转换模块、子句集处理模块、替换模块依次连接。
在本发明实施例中,更具体的,所述二级相似度确定模块2还包括剩余关键词集合模块,用于将一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合;其中,所述剩余关键词集合模块与二级算法模块连接。
在本发明实施例中,更具体的,所述二级相似度确定模块2还包括用于对剩余关键词词数与已标注的相似句子对之间的关系设定具体规则的关系规则设定模块,所述关系规则设定模块23设定规则具体包括:
规则1:用于经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的;
规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则3模块:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则4模块:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的;其中,
所述关系规则设定模块分别与剩余关键词集合模块和二级算法模块连接。
在本发明实施例中,更具体的,所述提问子句集转换模块包括:
拆分集中模块,用于在初始子句集为空时,根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;
子句并入模块,用于将任意长度的连续的若干子句构成一个子句,并入子句集中;
提问整句并入模块,用于将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集;其中,
所述拆分集中模块、子句并入模块、提问整句并入模块以及子句集处理模块依次连接。
在本发明实施例中,更具体的,所述三级算法模块还包括相似性判断模块,用于将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的;其中,所述相似性判断模块与子句集处理模块连接。
本发明实施例中的面向用户查询意图的汉语句子相似度分层计算装置与上述面向用户查询意图的汉语句子相似度分层计算方法相对应,具有相同的原理和有益效果,以上述方法解释本实施例装置,在此不再赘述。
相比于现有技术的缺点和不足,本发明具有以下有益效果:
(1)本发明利用分层计算的思想,充分考虑了语句比较计算过程中待比较语句之间的各种特征组成,从而使相似度的计算更加简洁,并且取得好的效果。
(2)本发明基于编辑距离算法,通过突出其考虑字符串与字符串之间的顺序的特点,采用去除句末标点的编辑距离句子相似度算法,以字为处理单元快速识别基本一致的句子,克服中文分词效果不理想的问题。
(3)本发明提出的基于关键词特征和语义特征的句子相似度算法和面向用户意图的句子相似度算法,兼顾了同义词和否定词等语义特征,同时考虑了查询请求和查询意图之间的关系,可以有效解决关键词差异大、长度长、句子结构复杂等问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种面向用户查询意图的汉语句子相似度分层计算方法,其特征在于包括以下步骤:
S1、采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;
S2、采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;
S3、采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子。
2.如权利要求1所述的面向用户查询意图的汉语句子相似度分层计算方法,其特征在于,在步骤S1中,所述去除句末标点的编辑距离句子相似度算法具体包括:计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子;
在步骤S2中,所述基于关键词特征和语义特征的句子相似度算法具体包括:采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似;
在步骤S2中,所述剩余关键词词数与已标注的相似句子对之间的关系具体包括以下规则:
规则1:经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的;
规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则3:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则4:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的:
在步骤S3中,所述面向用户意图的句子相似度算法具体包括:
根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集;
对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度;
使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度。
3.如权利要求2所述的面向用户查询意图的汉语句子相似度分层计算方法,其特征在于,在步骤S2中,所述剩余关键词是指一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合。
4.如权利要求3所述的面向用户查询意图的汉语句子相似度分层计算方法,其特征在于,在步骤S3中,所述用户提问子句集的构建方法具体包括:初始子句集为空,首先根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;再将任意长度的连续的若干子句构成一个子句,并入子句集中;最后将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集;
在步骤S3中,所述子句和问题集中问题的相似性的判断具体为:
规则5:将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的。
5.一种面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,包括:
一级相似度确定模块,用于采用去除句末标点的编辑距离句子相似度算法对数据集进行相似度计算,确定一部分满足阈值的句子为相似句子;
二级相似度确定模块,用于采用基于关键词特征和语义特征的句子相似度算法,对数据集中的非相似句子进行相似度计算,从而再次确定一部分满足阈值的句子为相似句子;
三级相似度确定模块,用于采用面向用户意图的句子相似度算法,对数据集中的非相似句子进行句子相似度计算,确定一部分满足阈值的句子为相似句子,至此得到数据集中的所有相似句子;其中,
所述一级相似度确定模块、二级相似度确定模块以及三级相似度确定模块依次连接。
6.如权利要求5所述的面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,所述一级相似度确定模块包括一级算法模块,用于计算两个句子的相似度时,忽略其句末的标点符号,将去除句末标点的句子按照基于字符的编辑距离句子相似度算法计算其句子的编辑距离,再根据设定的阈值判定相似句子;
所述二级相似度确定模块包括二级算法模块,用于采用关键词特征,将句子转换成关键词列表形式,再兼顾同义词特征、否定词特征,总结分析经过对比消解后的剩余关键词词数与已标注的相似句子对之间呈现的规律,最后判定符合规律的句子是否句子相似;
所述二级相似度确定模块还包括用于对剩余关键词词数与已标注的相似句子对之间的关系设定具体规则的关系规则设定模块,所述关系规则设定模块设定规则具体包括:
规则1:用于经过剩余关键词列表计算后,若用户提问句子与问题集中某一句子的剩余关键词词数之和小于等于1,且剩余关键词中不包含否定词时,则用户提问句子与问题集中的某一个句子是相似的;
规则2:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于0,问题集中某一句子的剩余关键词词数等于2,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则3模块:经过剩余关键词列表计算后,若用户提问句子的剩余关键词词数等于2,问题集中某一句子的剩余关键词词数等于0,且剩余关键词中不包含否定词,则用户提问句子与问题集中某一句子是相似的;
规则4模块:经过剩余关键词列表计算后,若用户提问句子和问题集中某一句子的剩余关键词中含有的否定词为奇数时,则用户提问句子与问题集中某一句子是不相似的;其中,
所述关系规则设定模块分别与剩余关键词集合模块和二级算法模块连接;
所述三级相似度确定模块包括三级算法模块,所述三级算法模块包括:
提问子句集转换模块,用于根据标点符号切分用户提问,利用用户提问中的标点符号,将用户提问转换成用户提问子句集;
子句集处理模块,用于对用户提问子句集中每一个元素计算其与问题集中某问题的剩余列表,计算子句集中每一个元素与计算机存储的问题集中问题的句子相似度;
替换模块,用于使用子句集中元素与问题集中某个问题的最大相似度代替用户提问与这个问题的句子相似度;其中,
所述一级算法模块、二级算法模块以及三级算法模块中的提问子句集转换模块、子句集处理模块、替换模块依次连接。
7.如权利要求6所述的面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,所述二级相似度确定模块还包括剩余关键词集合模块,用于将一个句子经过分词、去除停用词、修改错别字、大写字母转换成小写字母、中文数字转换成阿拉伯数字、关键词对比消减、同义词对比消减和否定词对比消减后余留的关键词集合;其中,
所述剩余关键词集合模块与二级算法模块连接。
8.如权利要求7所述的面向用户查询意图的汉语句子相似度分层计算装置,其特征在于,所述提问子句集转换模块包括:
拆分集中模块,用于在初始子句集为空时,根据标点符号将用户提问拆分成若干个子句,将这些子句并入子句集中;
子句并入模块,用于将任意长度的连续的若干子句构成一个子句,并入子句集中;
提问整句并入模块,用于将用户提问的整句并入子句集中,至此构建成一个完整的用户提问子句集;其中,
所述拆分集中模块、子句并入模块、提问整句并入模块以及子句集处理模块依次连接;
所述三级算法模块还包括相似性判断模块,用于将用户提问子句集中某一子句与问题集中某一问题进行剩余关键词列表计算,若子句的剩余关键词词数等于0,问题的剩余关键词词数小于等于1,则用户提问与问题集中该问题是相似的;其中,所述相似性判断模块与子句集处理模块连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410341855.0A CN104133812B (zh) | 2014-07-17 | 2014-07-17 | 一种面向用户查询意图的汉语句子相似度分层计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410341855.0A CN104133812B (zh) | 2014-07-17 | 2014-07-17 | 一种面向用户查询意图的汉语句子相似度分层计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133812A CN104133812A (zh) | 2014-11-05 |
CN104133812B true CN104133812B (zh) | 2017-03-08 |
Family
ID=51806491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410341855.0A Active CN104133812B (zh) | 2014-07-17 | 2014-07-17 | 一种面向用户查询意图的汉语句子相似度分层计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104133812B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10460034B2 (en) * | 2015-01-28 | 2019-10-29 | Mitsubishi Electric Corporation | Intention inference system and intention inference method |
CN105005554A (zh) * | 2015-06-30 | 2015-10-28 | 北京信息科技大学 | 一种词汇语义相关度的计算方法 |
CN106502987B (zh) * | 2016-11-02 | 2019-08-09 | 广东惠禾科技发展有限公司 | 一种基于种子句子的句子模板召回的方法和设备 |
CN106997376B (zh) * | 2017-02-28 | 2020-12-08 | 浙江大学 | 一种基于多级特征的问题和答案句子相似度计算方法 |
CN108170679B (zh) * | 2017-12-28 | 2021-09-03 | 中国联合网络通信集团有限公司 | 基于计算机可识别自然语言描述的语义匹配方法及系统 |
CN108509416B (zh) * | 2018-03-20 | 2022-10-11 | 京东方科技集团股份有限公司 | 句意识别方法及装置、设备和存储介质 |
CN110245219A (zh) * | 2019-04-25 | 2019-09-17 | 义语智能科技(广州)有限公司 | 一种基于自动扩展问答数据库的问答方法及设备 |
CN110706807B (zh) * | 2019-09-12 | 2021-02-12 | 北京四海心通科技有限公司 | 一种基于本体语义相似度的医学问答方法 |
CN112052693A (zh) * | 2020-09-15 | 2020-12-08 | 科大讯飞股份有限公司 | 机器翻译效果评测方法、装置、设备及存储介质 |
CN115329883B (zh) * | 2022-08-22 | 2023-05-09 | 桂林电子科技大学 | 一种语义相似度处理方法、装置、系统以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1641633A (zh) * | 2005-01-07 | 2005-07-20 | 清华大学 | 基于成熟工艺文档的工艺术语提取、规律分析和重用方法 |
CN101847141A (zh) * | 2010-06-03 | 2010-09-29 | 复旦大学 | 中文词语语义相似度度量方法 |
CN103020283A (zh) * | 2012-12-27 | 2013-04-03 | 华北电力大学 | 一种基于背景知识的动态重构的语义检索方法 |
CN103617192A (zh) * | 2013-11-07 | 2014-03-05 | 北京奇虎科技有限公司 | 一种数据对象的聚类方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1702651A (zh) * | 2004-05-24 | 2005-11-30 | 富士通株式会社 | 特定类型信息文件的识别方法和装置 |
-
2014
- 2014-07-17 CN CN201410341855.0A patent/CN104133812B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1641633A (zh) * | 2005-01-07 | 2005-07-20 | 清华大学 | 基于成熟工艺文档的工艺术语提取、规律分析和重用方法 |
CN101847141A (zh) * | 2010-06-03 | 2010-09-29 | 复旦大学 | 中文词语语义相似度度量方法 |
CN103020283A (zh) * | 2012-12-27 | 2013-04-03 | 华北电力大学 | 一种基于背景知识的动态重构的语义检索方法 |
CN103617192A (zh) * | 2013-11-07 | 2014-03-05 | 北京奇虎科技有限公司 | 一种数据对象的聚类方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104133812A (zh) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104133812B (zh) | 一种面向用户查询意图的汉语句子相似度分层计算方法及装置 | |
CN109408642B (zh) | 一种基于距离监督的领域实体属性关系抽取方法 | |
CN109522418B (zh) | 一种半自动的知识图谱构建方法 | |
CN108681574B (zh) | 一种基于文本摘要的非事实类问答答案选择方法及系统 | |
Furlan et al. | Semantic similarity of short texts in languages with a deficient natural language processing support | |
CN104881402A (zh) | 中文网络话题评论文本语义倾向分析的方法及装置 | |
CN104050256A (zh) | 基于主动学习的问答方法及采用该方法的问答系统 | |
WO2010055967A1 (en) | System for extracting ralation between technical terms in large collection using a verb-based pattern | |
CN108073571B (zh) | 一种多语言文本质量评估方法及系统、智能文本处理系统 | |
CN109614620B (zh) | 一种基于HowNet的图模型词义消歧方法和系统 | |
Atoum et al. | Efficient hybrid semantic text similarity using WordNet and a corpus | |
CN111694927B (zh) | 一种基于改进词移距离算法的文档自动评阅方法 | |
CN106445921A (zh) | 利用二次互信息的中文文本术语抽取方法 | |
Duh et al. | POS tagging of dialectal Arabic: a minimally supervised approach | |
Curran | Supersense tagging of unknown nouns using semantic similarity | |
CN111597349B (zh) | 一种基于人工智能的轨道交通规范实体关系自动补全方法 | |
CN110321434A (zh) | 一种基于词义消歧卷积神经网络的文本分类方法 | |
De Marneffe et al. | Aligning semantic graphs for textual inference and machine reading | |
CN104572619A (zh) | 智能机器人交互系统在投融资领域的应用 | |
CN112528640A (zh) | 一种基于异常子图检测的领域术语自动抽取方法 | |
Zhao et al. | ECNU: using traditional similarity measurements and word embedding for semantic textual similarity estimation | |
Khoufi et al. | Statistical-based system for morphological annotation of Arabic texts | |
Zhang | Research on the optimizing method of question answering system in natural language processing | |
Kölbl et al. | Keyword Extraction in German: Information-theory vs. Deep Learning. | |
Boufrida et al. | Automatic rules extraction from medical texts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |