一种用于全媒体审读的文本相似度比对方法及装置与流程

文档序号:26705687发布日期:2021-09-18 03:54阅读:127来源:国知局
1.本公开涉及数据处理
技术领域
:,尤其涉及一种用于全媒体审读的文本相似度比对方法及装置。
背景技术
::2.随着互联网的发展,网络中数据量与日俱增,网络中存在大量的文本,通过对文本之间进行相似度比对以解决实际问题。以报网微端等媒体网络中的报刊资讯为例,通过搜集报刊资讯的文本信息,并在不同的报刊资讯之间进行相似度比对,例如,将特定报刊与主流媒体所发布的报刊进行比对,从而达到对特定报刊审读的目的。3.目前已知的文本相似度比对方式中,通常采用单一模型对文本之间的相似度进行比对,而且现有的字符串匹配算法中,受到单字节或单个汉字模式串对其它模式串匹配速度的影响,导致匹配速度降低;另外,模式串中字符串的数量对匹配效率的影响也比较大。4.基于现有技术,需要提供一种能够提升文本相似度比对过程中文本匹配的效率,提高文本相似度比对结果准确性的文本相似度比对方案。技术实现要素:5.有鉴于此,本公开实施例提供了一种用于全媒体审读的文本相似度比对方法及装置,以解决现有技术存在的字符串匹配速度较低,文本相似度比对结果的准确性较差的问题。6.本公开实施例的第一方面,提供了一种用于全媒体审读的文本相似度比对方法,包括:根据预先配置的词库生成模式串,对模式串执行分组操作,以便生成第一模式串数组和第二模式串数组;其中,每个模式串对应词库中的一个关键词;基于第一模式串数组和第二模式串数组,利用预先配置的字符串匹配算法执行匹配操作,确定与关键词相匹配的待比对文本;在基于待比对文本进行全媒体审读时,将待比对文本以及待比对文本对应的关键词作为参数,利用文本相似度算法对待比对文本进行相似度比对。7.本公开实施例的第二方面,提供了一种用于全媒体审读的文本相似度比对装置,包括:分组模块,被配置为根据预先配置的词库生成模式串,对模式串执行分组操作,以便生成第一模式串数组和第二模式串数组;其中,每个模式串对应词库中的一个关键词;匹配模块,被配置为基于第一模式串数组和第二模式串数组,利用预先配置的字符串匹配算法执行匹配操作,确定与关键词相匹配的待比对文本;比对模块,被配置为在基于待比对文本进行全媒体审读时,将待比对文本以及待比对文本对应的关键词作为参数,利用文本相似度算法对待比对文本进行相似度比对。8.本公开实施例的第三方面,提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法的步骤。9.本公开实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。10.本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:11.通过根据预先配置的词库生成模式串,对模式串执行分组操作,以便生成第一模式串数组和第二模式串数组;其中,每个模式串对应词库中的一个关键词;基于第一模式串数组和第二模式串数组,利用预先配置的字符串匹配算法执行匹配操作,确定与关键词相匹配的待比对文本;在基于待比对文本进行全媒体审读时,将待比对文本以及待比对文本对应的关键词作为参数,利用文本相似度算法对待比对文本进行相似度比对,能够提升文本相似度比对过程中字符串的匹配效率,并提高文本相似度比对结果的准确性。附图说明12.为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。13.图1是本公开实施例在一种实际应用场景下的文本相似度比对流程示意图;14.图2是本公开实施例提供的用于全媒体审读的文本相似度比对方法的流程示意图;15.图3是本公开实施例提供的优化后的wm算法的实现流程示意图;16.图4是本公开实施例提供的用于全媒体审读的文本相似度比对装置的结构示意图;17.图5是本公开实施例提供的电子设备的结构示意图。具体实施方式18.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本公开实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本公开。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本公开的描述。19.文本相似度比对在互联网领域具有广泛应用,例如通过对海量的文本进行相似度比对,可以达到文本去重的目的。在本公开实施例中文本相似度比对的目的在于查找相似的文本,比如将文本a作为标准文本或者对标文本,通过将文本b与文本a之间进行比对,就能够发现文本b中存在的问题,从而对文本b的后续处理产生指导意义。下面以媒体报刊领域为例,对文本相似度比对的实际应用情况进行说明,具体可以包括以下内容:20.为进一步推动全媒体内容质量、编辑质量、出版质量的提升;并且,为了加强对报网微端信息的智能化审核和客观评价,建立了智能审读系统。智能审读系统通过汇聚报网微端的海量新闻资讯,集中展示,便于社内记者和编辑进行审读。智能审读系统包括在线审读的功能。[0021][0022][0023]比读是指与其他主流媒体的新闻稿件内容进行比较,找出差距。稿源是指稿件的来源,这里指稿件的原创媒体名称。[0024]关键词特指单个媒体在制作使用索引时,所用到的词汇。关键词搜索是网络搜索索引主要方法之一,就是访问者希望了解的产品、服务和公司等的具体名称用语。这里的关键词是指通过有监督方法及语料库技术或者半监督方法和无监督方法等人工智能技术手段提取稿件新闻中的重要信息词语。[0025]摘要又称概要、内容提要,意思是摘录要点或摘录下来的要点。摘要是以提供文献内容梗概为目的,不加评论和补充解释,简明、确切地记述文献重要内容的短文。其基本要素包括研究目的、方法、结果和结论。具体地讲就是研究工作的主要对象和范围,采用的手段和方法,得出的结果和重要的结论,有时也包括具有情报价值的其它重要的信息。[0026]对标分析又叫标杆管理(benchmarking),也称基准管理。是指一个组织瞄准一个比其绩效更高的组织进行比较,以便取得更好的绩效,不断超越自己,超越标杆,追求卓越,组织创新和流程再造的过程。这里的对标分析主要针对主流媒体,如人民日报社、经济日报社等。[0027]目前常规的媒体资讯审读通常采取传统手工的办法进行,即通过人工的方式对每一篇报刊资讯按照规范进行审读,这种审读方式无法高效精准的提升全媒体的内容质量、编辑质量和出版质量,因此智能化审读是迫切需要解决的问题。[0028]下面结合附图对本公开实施例在适用场景下的文本相似度比对过程进行说明。图1本公开实施例提供的在一种实际应用场景下的文本相似度比对流程示意图。如图1示,该文本相似度比对过程主要包括以下内容:[0029]本公开实施例是以媒体资讯中的报刊、新闻、资讯等文本内容的审读作为实际应用场景来描述的,在实际应用中,首先获取报网微端等媒体中的报刊资讯(以下也称为报刊新闻或报刊文本)数据信息,并加载预先配置的词库;利用词库中的关键词与报刊资讯数据进行匹配,展示每篇报刊资讯及其对应的关键词,例如:获取到的报刊新闻的标题为“应对病毒变异,灭活疫苗广谱性更好”,该报刊新闻所匹配到的关键词包括:变异、疫苗、接种、灭活疫苗、病毒变异等。在报刊资讯与关键词匹配完成之后,加载报刊资讯对应的文本数据,通过为每篇报刊资讯匹配确定的关键词,计算报刊文本之间的距离,根据计算得到的距离判断两两报刊文本之间的相似度并展示相似度结果。[0030]本公开实施例基于特定算法,从审读速度和资源消耗等方面进行深度分析,抽取审读关键要素,结合wm、海明码等算法的优点并优化算法,构架了以多模式算法结合进行相似比对为核心的智能审读流程。基于本公开实施例的相似度比对算法,能够实现目标报刊文本与对标报刊文本之间的智能化相似度比对,极大的提高了审读的精准度和工作效率。[0031]需要说明的是,影响算法性能的主要因素包括:符号集合的规模、模式串的长度、模式串集合的规模、模式串中符号的分布规律、文本符号序列中各个符号的分布规律等。由于在中文语料的情形下,wm算法在检测速度和内存消耗等方面具有明显优势,因此,本公开实施例的字符串匹配过程使用的是wm算法,并且基于改进后的wm算法实现字符串匹配。[0032]图2是本公开实施例提供的用于全媒体审读的文本相似度比对方法的流程示意图。图2的文本相似度比对方法可以由服务器执行。如图2所示,该文本相似度比对方法具体可以包括:[0033]s201,根据预先配置的词库生成模式串,对模式串执行分组操作,以便生成第一模式串数组和第二模式串数组;其中,每个模式串对应词库中的一个关键词;[0034]s202,基于第一模式串数组和第二模式串数组,利用预先配置的字符串匹配算法执行匹配操作,确定与关键词相匹配的待比对文本;[0035]s203,在基于待比对文本进行全媒体审读时,将待比对文本以及待比对文本对应的关键词作为参数,利用文本相似度算法对待比对文本进行相似度比对。[0036]具体地,本公开实施例是在中文语料的场景下实现的,但应当理解的是,本公开实施例在英文、日文等其他语言场景下依然适用。本公开实施例针对的待比对文本可以是通过报网微端等渠道所获取到的多途径稿源的全媒体报刊资讯对应的文本,报网微端包括但不限于:报纸、网站、微博、微信、app等。[0037]在wm算法中,由于wm算法采用了字符块技术,增大了主串和模式串不匹配的可能性,从而增加了直接跳跃的机会,模式串可以认为是一种字符块,模式串可以存储在wm算法中的位移表(shift表)中,shift表存储在处理文本中每个大小为b的字符块时要移动的距离。例如,在一实施例中,以下每个字符串均可以认为是一种模式串,比如,模式串a、模式串ab、模式串aba、模式串abab等,将上述模式串后的字母替换为汉字,即对应中文预料的模式串。[0038]wm算法是对bm算法的延伸继承,用bm算法的核心框架,wm算法将多个模式合并为一个模式来考虑,要求所有模式的长度相同,每次考虑一块大小为b的字符而不是一个字符。wm算法在计算时需要以下参数:字符串长度最小的模式串的长度,字符块长度,当前扫描过程中长度为b的模式串子串,文本串,文本串总长度,模式串集合,模式串的数目,以及前缀长度等。[0039]根据本公开实施例提供的技术方案,通过根据预先配置的词库生成模式串,对模式串执行分组操作,以便生成第一模式串数组和第二模式串数组;其中,每个模式串对应词库中的一个关键词;基于第一模式串数组和第二模式串数组,利用预先配置的字符串匹配算法执行匹配操作,确定与关键词相匹配的待比对文本;将待比对文本以及待比对文本对应的关键词作为参数,利用文本相似度算法对待比对文本进行相似度比对,能够提升文本相似度比对过程中字符串的匹配效率,并提高文本相似度比对结果的准确性。[0040]在一些实施例中,在根据预先配置的词库生成模式串之前,还包括:获取多个待比对文本,从待比对文本中提取出关键词并形成第一关键词集合;根据预先存储的关键词生成第二关键词集合,基于第一关键词集合和第二关键词集合生成词库;其中,关键词中包含至少一个字符。[0041]具体地,可以通过报网微端来获取网络中的报刊资讯,将获取到的报刊资讯所对应的文本作为待比对文本,待比对文本可以是txt、doc等作为格式后缀的文本。词库中存储的是关键词,词库中的关键词主要从以下两个方面来获取,第一方面,对待比对文本中的关键词进行提取,将提取出来的关键词组合成第一关键词集合;第二方面,在历史审读过程中会产生大量的关键词,这些关键词存储在智能审读系统对应的数据库中,基于这些历史审读所沉淀出来的关键词,将其组合成为第二关键词集合。之后,将第一关键词集合和第二关键词集合组合在一起形成词库。在实际应用中,这里的关键词可以包括一些核心词汇、重点词汇、敏感词汇等。[0042]在一些实施例中,根据预先配置的词库生成模式串,包括:获取词库中的关键词,将词库中的每一个关键词对应的字符串作为一个模式串。[0043]具体地,由于词库中包含若干个关键词,每个关键词中都包含至少一个字符,因此,可以认为一个关键词对应一个字符串,如前文,在本公开实施例中,模式串可以认为是关键词所对应的字符串,因此,可以将词库中每一个关键词对应的字符串视为一个模式串。[0044]在一些实施例中,对模式串执行分组操作,以便生成第一模式串数组和第二模式串数组,包括:根据模式串所对应的字符个数,对模式串执行分组操作,具体地,当模式串所对应的字符个数小于或等于预设阈值时,将模式串存储到第一模式串数组中;当模式串所对应的字符个数大于预设阈值时,将模式串存储到第二模式串数组中。[0045]具体地,在确定wm算法需要用到的模式串之后,将模式串分成两组,在进行模式串的分组操作时,可以基于模式串的长度进行分组,模式串的长度也可以理解为模式串中对应字符的个数,下面结合具体实施例对模式串的分组过程进行详细说明,具体可以包括以下内容:[0046]对于n个模式串,如果当前第k个模式串有k<n,且模式串长度≤2(即模式串长度小于等于2个字符的长度),则将该模式串存入模式串数组shortarray(即第一模式串数组)中;当模式串长度>2(即模式串长度大于2个字符的长度),将该模式串存入模式串数组longarray(即第二模式串数组)中。[0047]进一步地,在上述实施例中,预设阈值对应的数值为2,通过将阈值设置为2个字符长度,可以将模式串划分为短模式串数组和长模式串数组,之后,基于这两个模式串数组选择改进前或者改进后的wm算法进行匹配。模式串分组可以是在执行wm算法之前进行的操作,以下实施例中将基于分组后的模式串以及基于这种分组所带来的对wm算法的改进,对利用wm算法实现字符串与待比对文本之间的匹配过程进行详细说明。[0048]根据本公开实施例提供的技术方案,通过对模式串进行分组,再基于分组后的模式串利用wm算法对文本进行两次匹配,可以降低短字符串对其他字符串的影响,从而提高字符串匹配的效率。[0049]在一些实施例中,字符串匹配算法采用wm多模式匹配算法;基于第一模式串数组和第二模式串数组,利用预先配置的字符串匹配算法执行匹配操作,包括:对第一模式串数组和第二模式串数组所组成的模式串集合进行预处理,得到第一位移表、第二位移表、哈希表和前缀表;根据第一位移表、第二位移表、哈希表和前缀表,将模式串与待比对文本中的字符串逐一进行匹配;根据匹配结果确定与待比对文本中的字符串相匹配的一个或多个模式串。[0050]具体地,首先对改进前的wm多模式匹配算法(简称wm算法)的字符串匹配过程及原理进行介绍,具体包括以下内容:[0051]wm算法分为两部分:预处理阶段和匹配阶段。[0052]其中,在预处理阶段中,对模式串集合进行预处理生成shifttable(位移表),hashtable(哈希表)和prefixtable(前缀表)这三个表格。shift表用来存储在处理文本中每个大小为b的字符块时要移动的距离。hash表用来存储匹配窗口内尾块字符散列值相同的模式串。prefix表用来存储匹配窗口内首块字符散列值相同的模式串。当要移动的移动距离是0的时候,hash表和prefix表将被使用,以决定哪些模式串是候选的,在确定了候选的模式串后,查找prefix表开始逐项匹配。在对模式串进行匹配的时候就是利用这三个表完成文本的扫描和寻找匹配的过程。[0053]假设模式集合p中最短的模式长度为m,那么,后面仅仅考虑所有模式的前m个字符组成的模式串,即要求所有匹配的模式长度相等。为了加快比较速度,对长为m的串进行分组,以b个长度的字符串为基本单位,每次比较长度为b的字串,对于b的选取,算法给出了指导公式来计算出一个合适的b值:b=logc2m,这里m=k*m,k是模式串的数目,而c表示字符集的大小。[0054]设x=x1...xb为文本t中待比较的长度为b的子串,通过哈希函数映射得到一个索引值index,以该索引值作为偏移得到shift表中的值,该值决定读到当前子串x后可以跳过的位数。[0055]设当前比较的文本字串x的哈希值为h,如果shift[h]=0,说明可能产生了匹配,那么需要进一步判断。于是,用该h值作为索引,查找hash表找到hash[h],它存储的是指针,指向两个单独的表:一个是模式链表(属于哈希表中的表);另一个是prefix表,模式链表中存放的是后b个字符的哈希值同为h的所有模式;prefix表存储的是模式链表中每个模式的前缀哈希值,它有利于进一步减少实际比较的次数,因为往往有不少模式具有相同后缀。这样具有相同后缀的模式就指向哈希表的同一表项,从而需要逐一比较每个可能的模式,增加了比较的负担,通过引入前缀哈希值的比较能够加速处理。对于待比较的长度为m的串,如果其长度为b的前缀与模式的前缀的哈希值也相同,则再将相应的文本串与符合的模式逐一进行比较,最终判定是否完全匹配。[0056]预处理阶段结束后,将会完成对上述三个表的构建。下面执行匹配阶段的操作,匹配从文本的第m个字符开始,文本的扫描从左向右;对模式的匹配是从模式的后面向前进行的,即从右向左,每次扫描b个字符tm‑b+1...tm,步骤如下:[0057]1)计算这b个字符的哈希值,得到h;[0058]2)查找shift表找到shift[h],如果大于0,则根据这个值向后移动文本相应的长度,并转到1;[0059]3)计算当前指针往左的m个字符串长度为b的前缀哈希值;[0060]4)查哈希表,找到hashl[h]的指针p,遍历模式链表,找到前缀哈希值也相同的模式串;再将文本串和模式串逐一比较,判断是否匹配,如果匹配,则输出匹配模式串,并将文本向后移动一位,转到1,直到文本结束。[0061]wm算法的时间复杂度平均情况是o(bn/m),b是块字符长度,n是文本长度,m是最短模式长度。该算法对最短模式的长度敏感,shift函数的最大值受最短模式长度限制,如果最短模式长度较短,则移动位的值不可能很大,匹配速度较慢。[0062]进一步地,下面结合具体实施例对本公开wm算法的优化原理及过程进行说明,具体可以包括以下内容:[0063]在wm算法中,如果ti+m‑b...ti+m‑1不出现在模式尾部,意味着当前文本不匹配任何一条模式,并根据shift表移动相应的距离,设为s1=shift[hash(ti+m‑b...ti+m‑1)]。由于移动的最大距离为m‑b+1,因而ti+m会出现在下次比较的窗口中。因此,在不产生匹配时,可以考虑根据ti+m在模式中的出现情况来移动相应的距离。如果根据ti+m‑b+1...ti+m这b个字符串在模式中的出现位置能移动s2的距离(s2=shift[hash(ti+m‑b+1...ti+m)]+1)。那么,其中一种方法是考虑根据s1和s2中的较大的一个来移动,即s=max(s1,s2)。显然,这时最大的移动距离为m‑b+2,比原先的最大移动距离多了一个字节。针对这种改变,扫描窗口也从原来的m个字节宽变为m+1个字节宽。[0064]此外,在wm算法中使用指导公式来计算b=logc2m,m=k*m,c=|∑|,并推荐b=2或者3。当模式数量较多或者m较大时,使用b=3固然可以在一定程度上加快比较过程,但是另一方面,也相当于扩大了映射前的集合(从c2扩大到c3),从而增加了hash函数中冲突的概率,也即增加了前缀比较和字符串比较的次数。另外,b从2增加到3时,最大移动距离也将减少1个字节。这些都限制了匹配速度的提升空间。[0065]针对这种情况,通过不增加分组长度,即仍然取b=2,同时采用双后缀比较的方式在不改变映射集合大小的情况下加快匹配过程。具体做法是:在比较ti+m‑b...ti+m‑1后产生匹配的情况下,再比较ti+m‑b‑2...ti+m‑b‑1与模式的倒数第四、第三两个字节的子串是否匹配,若不匹配,则当前比较过程结束,根据一定规则向右移动模式,若产生匹配,则再继续下面的过程。[0066]由于在匹配过程中当m较大时采用双后缀比较,因而除了需要构建原有的shift、hash、prefix三个表之外,还需要构建另一个位移表shift2,它的构建方式与shift表类似,可以通过把模式串的后两个字节去掉后来构建得到shift2。[0067]在一些实施例中,将第一模式串数组中的最后两个字符去除后构建得到第一位移表;在将模式串与待比对文本中的字符串逐一进行匹配时,将待比对文本中的每两个字符与第一模式串数组中的模式串进行比较。[0068]具体地,下面结合具体实施例对本公开改进优化后的wm算法的实现过程进行说明,具体可以包括以下内容:[0069](1)对于n个模式串,如果当前第k个模式串有k<n,转第(2)步,否则转第(4)步;[0070](2)计算该模式串的长度l(pat[k]),如果模式串长度≤2,则将该模式串存入模式串数组shortarray;如果模式串长度>2,则将该模式串存入模式串数组longarray;[0071](3)k+1,转第(1)步;[0072](4)对于数组shortarray中的模式串,用优化后的wm算法对文本进行匹配;[0073](5)对于数组longarray中的模式串,用优化前的wm算法对文本进行匹配。[0074]下面结合附图对本公开实施例中优化后的wm算法的实现流程进行说明。图3本公开实施例提供的优化后的wm算法的实现流程示意图。如图3示,该优化后的wm算法的实现过程主要包括以下内容:[0075]匹配从文本的第m个字符开始,文本的扫描从左向右;对模式的匹配是从模式的后面向前进行的,即从右向左。每次比较在长为m+1的窗口内进行,按如下步骤匹配:[0076]①计算ti+m‑b...ti+m‑1这b个字符的hash值,得到h;[0077]②查shift表找到s1=shift[h]:如果大于0,计算ti+m‑b+1...ti+m这b个字节的hash值h2,并查shift表得到s2=shift[h2]+1,取s=max(s1,s2),根据这个值向后移动文本相应的长度,并转到①;否则继续;[0078]③计算ti...ti+1这2个字符串前缀hash值;[0079]④查找hash表,找到hash[h]的指针p,遍历模式链表,找到前缀hash值也相同的模式串;再将文本串和模式串逐一比较,判断是否匹配。如果匹配,则输出匹配模式串,并将文本向后移动一位,转①,直到文本结束。[0080]根据本公开实施例提供的技术方案,通过对wm算法中原来的匹配和跳跃机制进行改进,在原来的shift、hash、prefix三个表之外,通过对模式串分组并基于分组后的模式串集合构建了四个表,即shift1、shift2、hash、prefix,对于长度不同的模式串选择优化前后的wm算法进行匹配。优化后的wm算法一方面降低了当多模式串匹配中出现单字节或单个汉字模式串时,对其它模式串匹配速度的影响,从而提升了文本匹配的速度;另一方面,从匹配的可能性来讲,文本中的两个字节(汉字)与某模式串的最后两个字节(汉字)匹配的可能性将比文本中的一个字节(汉字)与某模式串的最后一个字节(汉字)匹配的可能性要小得多。[0081]通过以上实施例对wm算法的改进以及利用改进后的wm算法进行文本匹配的过程进行了详细介绍,为了实现文本之间的相似度比对,还需要采用文本相似度算法对匹配关键词后的文本做进一步地比对。[0082]在一些实施例中,文本相似度算法采用海明码算法;将待比对文本以及待比对文本对应的关键词作为参数,利用文本相似度算法对待比对文本进行相似度比对,包括:对待比对文本进行分词,并对分词后的结果进行过滤,得到过滤后的分词;根据预设的权重规则为过滤后的分词以及关键词添加权重,并基于添加权重后的过滤后的分词和关键词计算两个待比对文本之间的海明距离,根据海明距离判断待比对文本之间的相似度。[0083]具体地,在对待比对文本进行分词之后,将文本分词后的标点符号、超频词汇等进行过滤,根据每个分词的词性为其添加权重,其中,预设的权重规则可以包括根据不同词汇的词性、分词属性、重要程度等配置的权重分值,例如将名词的权重设为2。在实际应用中,除了为过滤后的每个分词添加权重之外,还可以为关键词和标题添加权重,在添加权重时遵循关键词和标题为主,分词为辅的原则配置权重。[0084]进一步地,在本公开实施例中,在为分词、关键词和标题添加权重之后,将每篇文章对应的上述分词、关键词、标题以及权重作为参数输入到海明码算法中,计算文章之间的相似度(以海明距离作为相似度的值),并将相似度倒序打分,将分高的列为相似文章。[0085]下面结合具体实施例,对海明码算法的原理及实现过程进行详细说明,具体可以包括以下内容:[0086]设有n位信息码,k位校验码,则必须满足:2^k>=n+k,例如:n=8,因为2^3<8+3,2^4>8+4,所以k=4.8位信息码可用d1~d8表示,4位校验码用p1~p4表示。海明码用h1~h12表示,则有:h1~h12=p1p2d1p3d2d3d4p4d5d6d7d8。也就是校验码放在以下位置上:1,2,4,8,依次类推。h1~h12分别用和数等于其下标的校验码校验,如:h3(即d1)用p1、p2(3=1+2)校验,h7(即d4)用p1、p2、p4(7=1+2+4)校验。因为1=1,2=2,3=1+2,4=4,5=1+4,6=2+4,7=1+2+4,8=8,9=1+8,10=2+8,11=1+2+8,12=4+8所以用偶校验时:[0087]p1(h1)=d1xord2xord4xord5xord7[0088]p2(h2)=d3xord4xord6xord7[0089]p3(h4)=d3xord4xord8[0090]p4(h8)=d6xord7xord8[0091]奇校验时取反即可,其中,xor表示异或。接收端可以由各校验码做异或运算得知哪位出错。[0092]海明(hamming)研究了用冗余数据位来检测和纠正代码差错的理论和方法。按照海明的理论,可以在数据代码上添加若干冗余位组成码字,码字之间的海明距离是一个码字变成另一个码字时必须改变的最小位数。海明用数学分析的方法说明了海明距离的几何意义,n位的码字可以用/2维空间的超立方体的一个顶点来表示,两个码字之间的海明距离就是超立方体的两个对应顶点之间的一条边,而且这是两顶点(从而两个码字)之间的最短距离,出错的位数小于这个距离都可以被判断为就近的码字。这就是海明码纠错的原理,它用码位的增加(因而通信量的增加)来换取正确率的提高。按照海明的理论,纠错编码就是把所有合法的码字尽量安排在n维超立方体的顶点上,使得任一对码字之间的距离尽可能大。如果任意两个码字之间的海明距离是d,则所有少于等于d‑1位的错误都可以检查出来,所有少于d/2位的错误都可以纠正。如果对于m位的数据,增加k位冗余位,则组成n=m+k位的纠错码。对于2m个有效码字中的每一个,都有n个无效但可以纠错的码字,这些可纠错的码字与有效码字的距离是1,含单个出错位。这样,对于一个有效的消息总共有n+1个可识别的码字。这n+1个码字相对于其他2m‑1个有效消息的距离都大于1。这意味着总共有2m(n+1)个有效的或是可777纠错的码字。显然这个数应小于等于码字的所有可能的个数,即2n。于是,有2m(n+1)<2n因为n=m+k,得出m+k+1<2k对于给定的数据位阴,上式给出了k的下界,即要纠正单个错误,k必须取的最小值。[0093]根据本公开实施例提供的技术方案,如果只根据分词以及分词权重来计算相似度的话,将会导致相似度结果不够准确,本公开实施例通过使用关键词进行纠准,将关键词以及关键词权重一起作为文本相似度算法的输入,利用海明码算法计算每两个文本数据之间的相似度系数,通过设定相似度系数的下限,来得到与目标文本相近的相似文章。本公开实施例提高了文本相似度比对结果的准确性和精度,使相似度比对结果更加具有指导意义,提高了工作效率。[0094]下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。[0095]图4是本公开实施例提供的用于全媒体审读的文本相似度比对装置的结构示意图。如图4所示,该文本相似度比对装置包括:[0096]分组模块401,被配置为根据预先配置的词库生成模式串,对模式串执行分组操作,以便生成第一模式串数组和第二模式串数组;其中,每个模式串对应词库中的一个关键词;[0097]匹配模块402,被配置为基于第一模式串数组和第二模式串数组,利用预先配置的字符串匹配算法执行匹配操作,确定与关键词相匹配的待比对文本;[0098]比对模块403,被配置为在基于待比对文本进行全媒体审读时,将待比对文本以及待比对文本对应的关键词作为参数,利用文本相似度算法对待比对文本进行相似度比对。[0099]在一些实施例中,图4的生成模块400在根据预先配置的词库生成模式串之前,获取多个待比对文本,从待比对文本中提取出关键词并形成第一关键词集合;根据预先存储的关键词生成第二关键词集合,基于第一关键词集合和第二关键词集合生成词库;其中,关键词中包含至少一个字符。[0100]在一些实施例中,图4的分组模块401获取词库中的关键词,将词库中的每一个关键词对应的字符串作为一个模式串。[0101]在一些实施例中,图4的分组模块401根据模式串所对应的字符个数,对模式串执行分组操作,具体地,当模式串所对应的字符个数小于或等于预设阈值时,将模式串存储到第一模式串数组中;当模式串所对应的字符个数大于预设阈值时,将模式串存储到第二模式串数组中。[0102]在一些实施例中,字符串匹配算法采用wm多模式匹配算法;图4的匹配模块402对第一模式串数组和第二模式串数组所组成的模式串集合进行预处理,得到第一位移表、第二位移表、哈希表和前缀表;根据第一位移表、第二位移表、哈希表和前缀表,将模式串与待比对文本中的字符串逐一进行匹配;根据匹配结果确定与待比对文本中的字符串相匹配的一个或多个模式串。[0103]在一些实施例中,图4的匹配模块402将第一模式串数组中的最后两个字符去除后构建得到第一位移表;在将模式串与待比对文本中的字符串逐一进行匹配时,将待比对文本中的每两个字符与第一模式串数组中的模式串进行比较。[0104]在一些实施例中,文本相似度算法采用海明码算法;图4的比对模块403对待比对文本进行分词,并对分词后的结果进行过滤,得到过滤后的分词;根据预设的权重规则为过滤后的分词以及关键词添加权重,并基于添加权重后的过滤后的分词和关键词计算两个待比对文本之间的海明距离,根据海明距离判断待比对文本之间的相似度。[0105]应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。[0106]图5是本公开实施例提供的电子设备5的结构示意图。如图5所示,该实施例的电子设备5包括:处理器501、存储器502以及存储在该存储器502中并且可以在处理器501上运行的计算机程序503。处理器501执行计算机程序503时实现上述各个方法实施例中的步骤。或者,处理器501执行计算机程序503时实现上述各装置实施例中各模块/单元的功能。[0107]示例性地,计算机程序503可以被分割成一个或多个模块/单元,一个或多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本公开。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在电子设备5中的执行过程。[0108]电子设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备5可以包括但不仅限于处理器501和存储器502。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如,电子设备还可以包括输入输出设备、网络接入设备、总线等。[0109]处理器501可以是中央处理单元(centralprocessingunit,cpu),也可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field‑programmablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。[0110]存储器502可以是电子设备5的内部存储单元,例如,电子设备5的硬盘或内存。存储器502也可以是电子设备5的外部存储设备,例如,电子设备5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器502还可以既包括电子设备5的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及电子设备所需的其它程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。[0111]所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0112]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。[0113]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。[0114]在本公开所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。[0115]作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0116]另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0117]集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本公开实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read‑onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。[0118]以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围,均应包含在本公开的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1