一种短文本相似度计算方法及装置与流程

文档序号:12176971阅读:224来源:国知局
一种短文本相似度计算方法及装置与流程

本发明实施例涉及文本处理技术领域,尤其涉及一种短文本相似度计算方法及装置。



背景技术:

文本相似度是指不同文本之间的语义关联程度,文本相似度的确定是文本挖掘和文本检索的核心工作之一。随着互联网技术的不断发展,出现了大量的短信息流,这些信息的数量巨大,但是长度一般都很短,此类信息多被称为短文本,具体的,短文本是指长度非常短,一般在200个字符以内的文本,例如常见的通过移动通信网络发出的手机短消息,通过即时通信软件发出的即时消息,网络日志的评论、互联网新闻的评论等等。当前计算短文本相似度的方法主要是基于传统的词袋模型,通过文本中含有的词来计算文本的相似度,此类方法,对于长文本的相似度计算效果显著,但短文本中,由于短文本一般长度都非常短,样本特征非常稀疏,很难准确地抽取有效的语言特征,且短文本实时性特别强,数量异常庞大,对短文本的处理相对于长文本处理具有更高的效率要求;短文本语言表达简洁,错误拼写、不规范用户和噪音比较多,可利用的信息有限,词语稀疏严重,采用长文本的相似度计算方法处理短文本的相似度的效果就会下降。



技术实现要素:

有鉴于此,本发明提出一种短文本相似度计算方法及装置,解决了短文本相似度计算中词语稀疏问题,防止语义的过度泛化,提高了相似度计算的准确率和召回率。

第一方面,本发明实施例提供了一种短文本相似度计算方法,所述方法包括:获取输入的第一文本串信息和第二文本串信息;根据所述第一文本串信息和所述第二文本串信息,获取所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息;对所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权,得到所述第一文本串与所述第二文本串的相似度。

进一步的,根据所述第一文本串信息和所述第二文本串信息,分别获取所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息包括:根据所述第一文本串信息和所述第二文本串信息,计算所述第一文本串与所述第二文本串字级别的重合分数、词级别的重合分数、次序分数和语义分数。

进一步的,在计算所述词级别的重合分数之前,还包括:去除停用词,利用分词算法对所述第一文本串和所述第二文本串进行分词。

进一步的,所述计算所述第一文本串与所述第二文本串的次序分数包括:计算所述第一文本串和所述第二文本串的编辑距离,得到所述第一文本串与所述第二文本串的次序分数。

进一步的,在计算所述第一文本串与所述第二文本串的语义分数之前,还包括:训练获取词向量模型。

进一步的,对所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权,得到所述第一文本串与所述第二文本串的相似度包括:分别根据各字重合信息、词重合信息、次序信息和语义信息对应的预设权重,将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度;或者,通过机器学习方式学习各字重合信息、词重合信息、次序信息和语义信息对应的权重,并根据学习得到的对应的权重将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度。

第二方面,本发明实施例提供了一种短文本相似度计算装置,所述装置包括:获取单元,用于获取输入的第一文本串信息和第二文本串信息;计算单元,与所述获取单元相连,用于根据所述第一文本串信息和所述第二文本串信息,获取所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息;加权单元,与所述计算单元相连,用于对所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权,得到所述第一文本串与所述第二文本串的相似度。

进一步的,所述加权单元具体用于根据所述第一文本串信息和所述第二文本串信息,计算所述第一文本串与所述第二文本串字级别的重合分数、词级别的重合分数、次序分数和语义分数。

进一步的,所述装置还包括:分词单元,与所述获取单元和计算单元相连,用于在计算所述词级别的重合分数之前,去除停用词,利用分词算法对所述第一文本串和所述第二文本串进行分词。

进一步的,所述装置还包括:次序分数计算单元,与所述获取单元和计算单元相连,用于计算所述第一文本串和所述第二文本串的编辑距离,得到所述第一文本串与所述第二文本串的次序分数。

进一步的,所述装置还包括:词向量获取单元,与所述获取单元和计算单元相连,用于在计算所述第一文本串与所述第二文本串的语义分数之前,训练获取词向量模型。

进一步的,所述加权单元还用于,分别根据各字重合信息、词重合信息、次序信息和语义信息对应的预设权重,将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度;或者,通过机器学习方式学习各字重合信息、词重合信息、次序信息和语义信息对应的权重,并根据学习得到的对应的权重将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度。

本发明实施例中,通过获取输入的第一文本串和第二文本串的字重合信息、词重合信息、次序信息和语义信息,然后对该字重合信息、词重合信息、次序信息和语义信息进行加权,计算第一文本串和第二文本串的相似度。解决了短文本相似度计算中词语稀疏问题,防止语义的过度泛化,提高了相似度计算的准确率和召回率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明实施例一中的一种短文本相似度计算方法的流程图;

图2是本发明实施例二中的一种短文本相似度计算方法的流程图;

图3是本发明实施例四中的一种短文本相似度计算装置的结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。另外还需要说明的是,为了便于说明,以下实施例中示出了与本发明相关的示例,这些示例仅作为说明本发明实施例的原理所用,并不作为对本发明实施例的限定,同时,这些示例的具体数值会根据不同的应用环境和装置或者组件的参数不同而不同。

本发明实施例的短文本相似度计算方法及装置可以运行于安装有Windows(微软公司开发的操作系统平台)、Android(谷歌公司开发的用于便携式可移动智能设备的操作系统平台)、iOS(苹果公司开发的用于便携式可移动智能设备的操作系统平台)、Windows Phone(微软公司开发的用于便携式可移动智能设备的操作系统平台)等操作系统的终端中,该终端可以是台式机、笔记本电脑、移动电话、掌上电脑、平板电脑、数码相机、数码摄像机等等中的任意一种。

实施例一

图1是本发明实施例一中的一种短文本相似度计算方法的流程图,该方法用于计算短文本的相似度,该方法可以由具有文档处理功能的装置来执行,该装置可以由软件和/或硬件方式实现,例如典型的是用户终端设备,例如手机、电脑等。本实施例中,正确率=提取出的正确信息条数/提取出的信息条数,召回率=提取出的正确信息条数/样本中的正确信息条数。文本相似度正确率为计算得到的正确结果数量与计算得到的正确结果数量与错误结果数量的总和之比,文本相似度召回率为计算得到的正确结果数量与占所有正确结果的文本数量之比。本实施例中的短文本相似度计算方法包括:步骤S110、步骤S120和步骤S130。

步骤S110,获取输入的第一文本串信息和第二文本串信息。

具体的,用户输入需要处理的第一文本串和第二文本串,获得各文本串的信息。可选的,第一文本串信息可以包括但不限于第一文本串的名称、第一文本串的内容和第一文本串的长度等;第二文本串信息可以包括但不限于第二文本串的名称、第二文本串的内容和第二文本串的长度等。例如:第一文本串的名称可以是S1,第二文本串的名称可以是S2。

步骤S120,根据所述第一文本串信息和所述第二文本串信息,获取所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息。

具体的,对第一文本串信息和第二文本串信息进行处理,获得第一文本串和第二文本串的字重合信息、词重合信息、次序信息和语义信息。可选的,字重合信息可以包括但不限于:第一文本串和第二文本串中字的重合个数、第一文本串和第二文本串中字义重合的字个数、重合的字分别在第一文本串和第二文本串中的位置以及字义重合的字分别在第一文本串和第二文本串中的位置;词重合信息可以包括但不限于:第一文本串和第二文本串中词的重合个数、第一文本串和第二文本串中词义重合的词个数、重合的词分别在第一文本串和第二文本串中的位置以及词义重合的词分别在第一文本串和第二文本串中的位置;次序信息包括但不限于文本串中的字或词在文本串中的次序以及从一个文本串变换到另一个文本串需要变换的字或词的次序;语义信息包括但不限于文本串的语义分数。

步骤S130,对所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权,得到所述第一文本串与所述第二文本串的相似度。

具体的,文本相似度是指不同文本之间的语义关联程度,综合考虑第一文本串和第二文本串的字重合信息、词重合信息、次序信息和语义信息,对其进行加权,计算得到第一文本和第二文本的相似度。

优选的,获取输入的第一文本串信息和第二文本串信息之后,在根据所述第一文本串信息和所述第二文本串信息,在获取所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息之前,还包括:对所述第一文本串信息和第二文本串信息进行预处理。

具体的,预处理包括但不限于,全半角统一成半角,大小写字母统一成小写,数字统一成阿拉伯数字,英文词形统一成词根等。可选的,“我喜欢Shakespeare的【哈姆雷特】”,统一为“我喜欢shakespeare的[哈姆雷特]”;“工商银行”和“工行”统一为“工商银行”;“二〇〇八”统一为“2008”;“does、do、doing和did”统一为“do”。

本发明实施例中,通过获取输入的第一文本串和第二文本串的字重合信息、词重合信息、次序信息和语义信息,然后对该字重合信息、词重合信息、次序信息和语义信息进行加权,计算第一文本串和第二文本串的相似度。解决了短文本相似度计算中词语稀疏问题,防止语义的过度泛化,提高了相似度算法的准确率和召回率。

实施例二

图2是本发明实施例二中的一种短文本相似度计算方法的流程图,本实施例在实施例一的基础上,进一步解释了步骤S120,根据所述第一文本串信息和所述第二文本串信息,获取所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息包括:根据所述第一文本串信息和所述第二文本串信息,计算所述第一文本串与所述第二文本串字级别的重合分数、词级别的重合分数、次序分数和语义分数。步骤S120中,计算所述第一文本串与所述第二文本串的次序分数包括:计算所述第一文本串和所述第二文本串的编辑距离,得到所述第一文本串与所述第二文本串的次序分数。在步骤S120中,在计算所述词级别的重合分数之前,还包括,去除停用词,利用分词算法对所述第一文本串和所述第二文本串进行分词。在步骤S120中,在计算所述第一文本串与所述第二文本串的语义分数之前,还包括:训练获取词向量模型。具体的,本实施例中的短文本相似度计算方法包括:步骤S210、步骤S220、步骤S230、步骤S2401、步骤S2402、步骤S2403和步骤S250。

步骤S210,获取输入的第一文本串信息和第二文本串信息。

步骤S220,计算第一文本串和第二文本串的字级别的重合分数。

具体的,根据获取的输入的第一文本串信息和第二文本串信息,对第一文本串和第二文本串分别进行命名,第一文本串命名为S1,第二文本串命名为S2。Lo_score代表第一文本串S1和第二文本串S2的字级别的重合分数,Length代表返回文本串中字的个数,则Lo_score=2*共有的字的个数/[Length(S1)+Length(S2)]。可选的,第一文本串S1为:我喜欢喝咖啡啊,第二文本串S2为:我爱喝拿铁呀,共有的字的个数为2,为“我”和“喝”,Length(S1)=7,Length(S2)=6,Lo_score=2*2/(6+7)=4/13。

步骤S230,去除停用词,利用分词算法对所述第一文本串和所述第二文本串进行分词。

具体的,在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为停用词。停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表,通过该停用词表去除停用词。优选的,停用词表中包括但不限于标点符号、数学符号及汉语中的助词和虚词等,如“着、了、的、啊、呀、哟”等。

可选的,第一文本串S1为:我喜欢喝咖啡啊,第二文本串S2为:我爱喝拿铁呀。去除停用词之后如下,第一文本串S1为:我喜欢喝咖啡,第二文本串S2为:我爱喝拿铁。

利用现有的分词算法,对第一文本串S1和第二文本串S2进行分词,需要注意的是,为保证计算结果的准确性,应选择同一分词算法分别对第一文本串S1和第二文本串S2分别进行分词。可选的,该分词算法可以选为最短路径法,最短路径法用于计算一个节点到其他所有节点的最短路径,主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。对第一文本串S1和第二文本串S2分词结果为,第一文本串S1:我喜欢喝咖啡,第二文本串S2,我爱喝拿铁。

步骤S2401,计算第一文本串和第二文本串的词级别的重合分数。

具体的,Wo_score代表第一文本串S1和第二文本串S2的词级别的重合分数,Count代表返回文本串中词的个数,则Wo_score=2*共有的词的个数/[Count(S1)+Count(S2)]。可选的,第一文本串S1:我喜欢喝咖啡,第二文本串S2:我爱喝拿铁,根据步骤S230,对第一文本串S1和第二文本串S2进行去除停用词和分词操作后,结果为,第一文本串S1:我喜欢喝咖啡,第二文本串S2:我爱喝拿铁。共有的词的个数为2,为“我”和“喝”,Count(S1)=4,Count(S2)=4,Wo_score=2*2/(4+4)=1/2。

步骤S2402,,计算所述第一文本串和所述第二文本串的编辑距离,得到所述第一文本串与所述第二文本串的次序分数。

具体的,编辑距离(Edit Distance),又称Levenshtein距离,是指两个文本串之间,由一个文本串转成另一个文本串所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。

Ed_score代表次序分数,Edit_Distance代表编辑距离,Maximum_Length代表第一文本串和第二文本串的最大长度。可选的,本发明实施例中使用归一化的编辑距离,即对编辑距离进行归一化处理。第一文本串S1为:我喜欢和咖啡啊,第二文本串S2为:我爱喝拿铁呀,Edit_Distance(S1,S2)=5,Maximum_Length(S1,S2)=7,ed_score=1-5/7=2/7。

步骤S2403,训练获取词向量模型,通过该词向量模型获取第一文本串的词向量表示和第二文本串的词向量表示,从而获得第一文本串和第二文本串的语义分数。

具体的,词向量是把文本数字化的一种表示,即每个文本有唯一的与其对应的数字表示,将机器学习的问题转化成对文本串数字化的表示进行处理。词向量的模型通过大规模的训练预料获得,该训练语料可以是维基百科。可选的,向量维度为100维,训练算法可以是word2vec算法,word2vec算法是矩阵分解的模型,简单的说,矩阵刻画了每个词和其上下文的词的集合的相关情况算法。通过词向量模型获取第一文本串的词向量表示和第二文本串的词向量表示,从而获得第一文本和第二文本的语义分数。

首先,对第一文本串S1中的每个词通过词向量模型取得该词的向量表示,然后对所有的词向量进行累加,并对得到的向量进行归一化操作。Vector(词语)为该词语的向量表示,Normalized为对词语的向量表示进行归一化操作,Vector_S1为文本串S1的归一化向量表示,W2v_score为第一文本串和第二文本串的语义分数。可选的,第一文本串S1:我喜欢喝咖啡,得到Vector_S1=Normalized(Vector(我)+Vector(喜欢)+Vector(喝)+Vector(咖啡))。其次,对第二文本串S2中的每个词通过词向量模型取得该词的向量表示,然后对所有的词向量进行累加,并对得到的向量进行归一化操作。可选的,第二文本串S2:我爱喝拿铁,得到Vector_S2=Normalized(Vector(我)+Vector(爱)+Vector(喝)+Vector(拿铁))。最后,计算Vector_S1和Vector_S2的语义分数,W2v_score=cosin(Vector_S1,Vector_S2)

步骤S250,对所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权,得到所述第一文本串与所述第二文本串的相似度。

具体的,对第一文本串与第二文本串字级别的重合分数Lo_score、词级别的重合分数Wo_score、次序分数Ed_score和语义分数W2v_score进行加权,得到第一文本串和第二文本串的相似度。

本发明实施例通过计算第一文本串和第二文本串字级别的重合分数、词级别的重合分数、次序分数和语义分数,然后对其进行加权处理,计算第一文本串和第二文本串的相似度。综合考虑了词形、次序和词义来判断相似度,避免了单一计算方法造成的误差,提高了短文本相似度计算的准确度和召回率。

实施例三

本实施例是在实施例一和实施例二的基础上,进一步解释了步骤S130,所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序分数和语义分数进行加权,得到所述第一文本串与所述第二文本串的相似度包括:分别根据各字重合信息、词重合信息、次序信息和语义信息对应的预设权重,将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和词向量信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度;或者,通过机器学习方式学习各字重合信息、词重合信息、次序信息和语义信息对应的权重,并根据学习得到的对应的权重将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度。

具体的,得到实施例二中第一文本串与第二文本串字级别的重合分数Lo_score、词级别的重合分数Wo_score、次序分数Ed_score和语义分数W2v_score之后,需要对这四个分数进行加权,加权的方式可以有两种:

a.分别根据各字重合信息、词重合信息、次序信息和语义信息对应的预设权重,将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度。

可选的,手动设定每个分数的权重,通过测试手动调节各权重以达到对于特定应用的最佳效果,Final_score代表文本相似度。优选的,权重可以按以下方式设置,该组权重设定中,语义分数所占权重最大,为0.5,其次是字级别重合分数,为0.25,最后是词级别重合分数和词序分数,分别为0.125。加权结果用相似度分数Final_score表示,Final_score的表达式为:Final_score=0.25*Lo_score+0.125*(Wo_score+Ed_score)+0.5*W2v_score。权重属于[0,1]区间内,权重越大代表重要程度越高。相似度分数Final_score属于[0,1]区间内,相似度分数越大代表两个文本串的相似度越高。

b.通过机器学习方式学习各字重合信息、词重合信息、次序信息和语义信息对应的权重,并根据学习得到的对应的权重将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度。

通过机器学习方式学习各字重合信息、词重合信息、次序信息和语义信息对应的权重。首先需要构建训练集合,构建方法可以通过a中的手动设定权重的算法训练出一批正例和反例用于训练。可选的,Final_score<0.6的用来提取反例,即相似度小于0.6的被认为是不相似,Final_score>0.85的用来提出正例,即相似度大于0.85的被认为是相似。其次,基于上述分析结果提取的正例和反例组成训练集合,根据该训练集合,将问题作为一个二分类问题利用支持向量机或逻辑回归算法等分类模型进行训练,以获取各字重合信息、词重合信息、次序信息和语义信息的权重。最后,将任意输入的两个短文本串,基于上述训练好的模型,分别计算第一文本串与第二文本串字级别的重合分数Lo_score、词级别的重合分数Wo_score、次序分数Ed_score和语义分数W2v_score,将上述四个分数输入训练好的模型进行相似度的计算。

本发明实施例通过对第一文本串与第二文本串字级别的重合分数Lo_score、词级别的重合分数Wo_score、次序分数Ed_score和语义分数W2v_score的权重加权,通过手动设定或机器学习的方法得到上述四个分数的权重,获得了更加准确的权重大小。

实施例四

图3是本发明实施例四中的一种短文本相似度计算装置的结构图。该装置适用于执行本发明实施例一至三中提供的短文本相似度计算方法,该装置具体包括:获取单元410、计算单元420和加权单元430。

获取单元410,用于获取输入的第一文本串信息和第二文本串信息。

计算单元420,与获取单元410相连,用于根据所述第一文本串信息和所述第二文本串信息,获取所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息。

加权单元430,与计算单元420相连,用于对所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权,得到所述第一文本串与所述第二文本串的相似度。

进一步的,加权单元430具体用于根据所述第一文本串信息和所述第二文本串信息,计算所述第一文本串与所述第二文本串字级别的重合分数、词级别的重合分数、次序分数和语义分数。

进一步的,所述装置还包括分词单元440。

分词单元440,与获取单元410和计算单元420相连,用于在计算所述词级别的重合分数之前,去除停用词,利用分词算法对所述第一文本串和所述第二文本串进行分词。

进一步的,所述装置还包括次序分数计算单元450。

词序分数计算单元450,与获取单元410和计算单元420相连,用于计算所述第一文本串和所述第二文本串的编辑距离,得到所述第一文本串与所述第二文本串的次序分数。

进一步的,所述装置还包括词向量模型获取单元460。

词向量模型获取单元460,与获取单元410和计算单元420相连,用于在计算所述第一文本串与所述第二文本串的语义分数之前,训练获取词向量模型。

进一步的,加权单元430还用于分别根据各字重合信息、词重合信息、次序信息和语义信息对应的预设权重,将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度;或者,通过机器学习方式学习各字重合信息、词重合信息、次序信息和语义信息对应的权重,并根据学习得到的对应的权重将所述第一文本串与所述第二文本串的字重合信息、词重合信息、次序信息和语义信息进行加权运算,得到所述第一文本串与所述第二文本串的相似度。

本发明实施例中,通过获取输入的第一文本串和第二文本串的字重合信息、词重合信息、次序信息和语义信息,然后对该字重合信息、词重合信息、次序信息和语义信息进行加权,计算第一文本串和第二文本串的相似度。解决了短文本相似度计算中词语稀疏问题,防止语义的过度泛化,提高了相似度算法的准确率和召回率。

显然,本领域技术人员应该明白,上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1