[发明专利]一种文本差异性的计算方法及装置有效
申请号: | 201710108271.2 | 申请日: | 2017-02-27 |
公开(公告)号: | CN106897258B | 公开(公告)日: | 2020-05-29 |
发明(设计)人: | 刘姝 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F40/194 | 分类号: | G06F40/194 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文本 差异性 计算方法 装置 | ||
本发明公开了一种文本差异性的计算方法及装置,该方法包括:将待比较的多个字符串进行分解,获取每个字符串对应的多个子字符串;将多个字符串各自对应的多个子字符串进行对比,获取一个或多个差异子字符串组;其中,差异子字符串组为多个字符串各自对应的一个相互存在差异的子字符串的组合;将差异子字符串组通过文本差异性算法进行差异计算,获取每个差异子字符串组对应的子差异值;将全部子差异值求和,获取多个字符串的差异值;本发明通过将多个字符串各自分解的多个子字符串进行对比,可以提取出带比较的字符串中存在差异的子字符串,避免了对复杂的长的字符串的直接计算操作,降低了文本差异性算法的运算时间复杂度,提升了用户体验。
技术领域
本发明涉及自然语言处理领域,特别涉及一种文本差异性的计算方法及装置。
背景技术
在自然语言处理中,经常会涉及对文本中多个字符串的处理,如统计不同字符串的差异。目前用于计算文本差异性的文本差异性算法主要有编辑距离算法(LD),最长公共子序列(LCS),Needleman-Wunsch算法等。编辑距离算法,是目前用来计算两个字符串的相似度比较流行的算法,可以如图1 所示。设有两个字符串A和B,字符串差异计算就是统计一个字符串A转换为另一个字符串B过程中所添加、删除或修改操作的最少次数。
现有技术中的文本差异性算法,如编辑距离算法,一般基于动态规划的思想,将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解,完成一次编辑距离算法的时间复杂度为O(m*n)(m 为字符串A长度,n为字符串B长度)。而在实际自然语言处理应用中,随着对问题的精确度要求越来越高,处理数据规模会越来越大,从而会导致计算文本差异性算法的运算时间复杂度急剧增加。因此,如何降低计算文本差异性算法的运算时间复杂度,提高文本差异性算法的计算性能,是现今急需解决的问题。
发明内容
本发明的目的是提供一种文本差异性的计算方法及装置,以通过将问题二次分解,降低文本差异性算法的运算时间复杂度,提高文本差异性算法的计算性能。
为解决上述技术问题,本发明提供一种文本差异性的计算方法,包括:
将待比较的多个字符串进行分解,获取每个所述字符串对应的多个子字符串;
将多个所述字符串各自对应的多个子字符串进行对比,获取一个或多个差异子字符串组;其中,所述差异子字符串组为多个所述字符串各自对应的一个相互存在差异的子字符串的组合;
将所述差异子字符串组通过文本差异性算法进行差异计算,获取每个所述差异子字符串组对应的子差异值;
将全部所述子差异值求和,获取多个所述字符串的差异值。
可选的,所述将多个所述字符串各自对应的多个子字符串进行对比,获取一个或多个差异子字符串组,包括:
通过Hash函数,将每个所述字符串对应的多个所述子字符串进行Hash 计算,生成Hash表;其中,所述Hash表包括对应的所述字符串中每个所述子字符串对应的Hash值和每个所述Hash值与对应的所述子字符串的位置的对应关系;
通过多个所述字符串各自对应的所述Hash表的对比,获取一个或多个所述差异子字符串组;其中,所述差异子字符串组包括多个所述字符串各自对应的位置相同但所述Hash值不同的一个所述子字符串。
可选的,所述将待比较的多个字符串进行分解,获取每个所述字符串对应的多个子字符串,包括:
将每个所述字符串以逗号或句号进行分割,获取每个所述字符串对应的多个所述子字符串。
可选的,所述将每个所述字符串以逗号或句号进行分割,获取每个所述字符串对应的多个所述子字符串之前,还包括:
判断每个所述字符串是否达到预设长度;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710108271.2/2.html,转载请声明来源钻瓜专利网。