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

文档序号:14303709阅读:133来源:国知局
文本相似度计算方法及装置与流程

本发明实施例涉及文本处理以及人机会话技术领域,并且更具体地,涉及一种文本相似度计算方法及装置。



背景技术:

目前,业务问题自动问答系统已经广泛应用于银行的客服系统、网络购物的客服系统以及通信行业的客服系统等诸多方面,其能够自动为客户提出的业务问题提供答案,提高了服务效率,同时能够避免人工回答客户提出的业务问题,有效节省了人力资源以及人工成本。

业务问题自动问答系统会将客户提出的业务问题划分到相应的类别中,之后根据业务问题的类别自动给出一个统一的标准答案,因此,如何将业务问题准确划分到对应的类别中至关重要,关系到业务问题自动问答系统回答业务问题的准确度。

现有的技术方案中,利用业务问题与问答库中预先存储的预定问题的相似度来进行的类别划分,具体地,计算业务问题与每个预定问题的相似度,选取相似度最高的预定问题的类别作为业务问题的类别。由于不管是业务问题,还是预定问题都有以文本的形式存在,因此在对业务问题进行类别划分时,是利用计算文本之间的相似度的方法来实现的。

计算两个文本之间的相似度时,首先实现计算一个文本中每个词汇与另一个文本的相似度,之后计算所有词汇与另一文本的相似度的和,即得到了两个文本的相似度。其中,一个文本中某一词汇与另一文本的相似度,根据该词汇在其所属文本中出现的次数以及该词汇在另一文本中出现的次数计算得到。可见现有技术方案在计算本文相似度时,只能处理两个文本中存在相同词汇的情况。不同的个体有不同的表达方式,同一个意思也可以用不同的词汇表达出来,那么对于同一个意义的文本就可能出现多种多样的表达方式,只利用相同的词汇来确定两个文本的相似度会严重降低文本相似度计算的准确性,在利用文本相似度的计算方法对客户提出的业务问题进行分类时,会严重影响分类的准确性。

综上,如何精确计算文本之间的相似度是目前亟待解决的问题。



技术实现要素:

本发明实施例提供一种文本相似度计算方法及装置,其能够利用词向量的最大余弦相似度计算相关的两个文本的相似度,由于词向量包含对应词汇的上下文信息,因此词向量的余弦相似度能够反映对应的词汇的意义相似程度,那么利用余弦相似度计算得到的两个文本的相似度就能够准确反映两个文本的意义相似程度,即利用余弦相似度能够提高文本相似度计算的准确性。

第一方面,提供了一种文本相似度计算方法,所述方法包括如下步骤:

利用第一词向量训练模型,对第一文本及第二文本中的所有词汇处理得到所有词汇的词向量,其中所述词向量中包含对应词汇的上下文关系;

根据词汇对应的词向量,计算所述第一文本中各词汇与所述第二文本中各词汇的余弦相似度,根据所述第一文本中各词汇对应的最大余弦相似度,计算该词汇与所述第二文本的相似度;根据所述第一文本中各词汇与所述第二文本的相似度,计算得到所述第一文本与所述第二文本的相似度。

结合第一方面,在第一种可能的实现方式中,所述第一文本中一词汇与所述第二文本的相似度利用如下公式计算:

其中,

上面公式中,qi表示所述第一文本中的一个词汇,d表示所述第二文本,r(qi,d)表示所述第一文本中的词汇qi与第二文本d的相似度;si表示所述词汇qi对应的最大余弦相似度;k1、k2、b表示调节因子,dl表示所述第一文本的长度,avgdl表示所述第一文本的平均长度;qf表示所述词汇qi在所述第一文本中出现的次数。

结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一文本为当前提出的业务问题,第二文本为问答系统的问答库中存储的标准问题。

结合第一方面,在第三种可能的实现方式中,所述第一词向量训练模型利用如下步骤得到:

获取若干个第三文本以及若干个第四文本;其中,所述第三文本是与所述第一文本或第二文本业务相关的文本,第四文本为所述第一文本出现的特定的应用场景下,实际产生的文本;

计算每个所述第三文本与每个所述第四文本的相似度;确定每个所述第三文本对应的最大相似度,并选取所述最大相似度超过预定阀值的所述第三文本;

利用选取得到的所述第三文件训练得到所述第一词向量训练模型。

结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第三文本与所述第四文本的相似度利用如下步骤计算:

获取第二词向量训练模型;其中,所述第二词向量训练模型利用开放文本训练得到,利用所述第二词向量训练模型处理得到的词向量包含对应词汇的上下文关系;

利用所述第二词向量训练模型对所述第三文本及第四文本中的所有词汇处理得到所有词汇的词向量;

根据词汇对应的词向量,计算第三文本中各词汇与第四文本中各词汇的余弦相似度,根据第三文本中各词汇对应的最大余弦相似度,计算该词汇与第四文本的相似度;根据第三文本各词汇与第四文本的相似度,计算得到所述第三文本与所述第四文本的相似度。

结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述方法在计算每个所述第三文本与每个所述第四文本的相似度之前,还包括如下步骤:

去除所述第三文本以及所述第四文本中的停用词以及预定符号。第二方面,提供了一种文本相似度计算装置,所述装置包括:

词向量确定模块,用于利用第一词向量训练模型,对第一文本及第二文本中的所有词汇处理得到所有词汇的词向量,其中所述词向量中包含对应词汇的上下文关系;

余弦相似度计算模块,用于根据词汇对应的词向量,计算所述第一文本中各词汇与所述第二文本中各词汇的余弦相似度;

文本相似度计算模块,用于根据所述第一文本中各词汇对应的最大余弦相似度,计算该词汇与所述第二文本的相似度,并根据所述第一文本中各词汇与所述第二文本的相似度,计算得到所述第一文本与所述第二文本的相似度。

结合第二方面,在第一种可能的实现方式中,所述文本相似度计算模块包括词汇相似度计算子模块,所述词汇相似度计算子模块用于利用如下公式计算所述第一文本中一词汇与所述第二文本的相似度:

其中,

上面公式中,qi表示所述第一文本中的一个词汇,d表示所述第二文本,r(qi,d)表示所述第一文本中的词汇qi与第二文本d的相似度;si表示所述词汇qi对应的最大余弦相似度;k1、k2、b表示调节因子,dl表示所述第一文本的长度,avgdl表示所述第一文本的平均长度;qf表示所述词汇qi在所述第一文本中出现的次数。

结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一文本为当前提出的业务问题,第二文本为问答系统的问答库中存储的标准问题。

结合第二方面,在第三种可能的实现方式中,所述装置还包括词向量模型训练模块,用于通过训练得到所述第一词向量训练模型;

所述词向量模型训练模块包括:

训练文本获取子模块,用于获取若干个第三文本以及若干个第四文本;其中,所述第三文本是与所述第一文本或第二文本业务相关的文本,第四文本为所述第一文本出现的特定的应用场景下,实际产生的文本;

训练文本选取子模块,用于计算每个所述第三文本与每个所述第四文本的相似度,确定每个所述第三文本对应的最大相似度,并选取所述最大相似度超过预定阀值的所述第三文本;

训练子模块,用于利用选取得到的所述第三文件训练得到所述第一词向量训练模型。

在本发明实施例的上述技术方案中,利用第一词向量训练模型对两个文本中词汇进行训练,得到每个词汇对应的词向量,之后计算两个词向量的余弦相似度,最后利用词向量的最大余弦相似度计算两个文本的相似度,由于词向量包含对应词汇的上下文信息,因此两个词向量的余弦相似度能够反映对应的词汇的意义相似程度,那么利用余弦相似度计算得到的两个文本的相似度就能够准确反映两个文本的意义相似程度,即利用余弦相似度能够提高文本相似度计算的准确性,从而客服了现有技术中只能利用相同的词汇来确定两个文本的相似度所带来的局限性。

附图说明

为了更清楚的说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性的示出了根据本发明一实施例的文本相似度计算方法的流程图。

图2示意性的示出了根据本发明再一实施例的文本相似度计算方法的流程图。

图3示意性的示出了根据本发明又一实施例的文本相似度计算方法的流程图。

图4示意性的示出了根据本发明又一实施例的文本相似度计算方法的流程图。

图5示意性的示出了根据本发明一实施例的文本相似度计算装置的框图。

图6示意性的示出了根据本发明再一实施例的文本相似度计算装置的框图。

图7示意性的示出了根据本发明又一实施例的文本相似度计算装置的框图

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

一种文本相似度计算方法,如图1所示,该方法包括如下步骤:

110、利用第一词向量训练模型,对第一文本及第二文本中的所有词汇处理得到所有词汇的词向量,其中词向量中包含对应词汇的上下文关系;

这里的第一词向量训练模型是能够通过训练得到包含上下文关系的词向量的模型,例如第一词向量训练模型是word2vec模型。这里的词汇的上下文关系指的是与该词汇意义相似的词汇,或是在该词汇出现的场景中,容易出现的所有词汇。

本实施例的第一文本和第二文本均包含多个词汇,但是本发明对第一文本和第二文本所包含的词汇的数量并不进行限定,例如第一文本或第二文本只包括一个词汇。

120、根据词汇对应的词向量,计算第一文本中各词汇与第二文本中各词汇的余弦相似度,根据第一文本中各词汇对应的最大余弦相似度,计算该词汇与第二文本的相似度;根据第一文本中各词汇与第二文本的相似度,计算得到第一文本与第二文本的相似度。

应当说明的是,第一文本中的一词汇对应的最大余弦相似度为该词汇与第二文本中所有词汇的余弦相似度中的最大的余弦相似度。

应当说明的是,在得到第一文本中的每个词汇与第二文本的相似度之后,计算第一文本中所有词汇与第二文本的相似度的和,即可得到第一文本与第二文本的相似度。

词向量包含对应词汇的上下文关系,两个词向量的余弦相似度能够反映对应的词汇的意义相似程度。本实施例的方法利用第一文本中的每个词汇对应的最大余弦相似度,计算每个词汇与第二文本的相似度,能够得到每个词汇与第二文本的最大相似度,并且不受第二文本中是否存在对应词汇的限制。即利用最大余弦相似度能够更准确的反映第一文本中的每个词汇与第二文本的相似程度,同时避免了使用词汇在第二文本中出现的次数计算两个文本的相似度,客服了只能计算具有相同词汇的两个文本的相似度的缺陷。

具体地,本实施例中,第一文本和第二文本的相似度,可以利用下面的公式计算得到:

式中,score(q,d)表示第一文本q与第二文本d的相似度,wi表示第一文本中某一词汇qi的权重,r(qi,d)表示某一词汇qi与第二文本d的相似度,n表示第一文本中词汇的数量。

其中,某一词汇qi的权重wi可以预先指定一个数值,也可以利用下面的公式计算得到:

式中,idf(qi)表示某一词汇qi的权重,n表示第二文本的数量,应当说明的是在实际应用中,可能需要分别计算一个第一文本与多个第二文本的相似度,这里的n就代表第二文本的数量,n(qi)表示包含词汇qi的第二文本的数量。本实施例中,第二文本只有一个,n的取值就是1。如果第二文本中包含词汇qi,那么n(qi)取值为1,如果第二文本中不包含词汇qi,那么n(qi)取值为0。

词汇qi与第二文本d的相似度利用如下公式计算得到:

其中,

上面两个公式中,si表示词汇qi对应的最大余弦相似度;k1、k2、b均表示调节因子,一般k1=2,k2=1,b=0.75;qf表示词汇qi在第一文本中出现的次数,本实施例中qf取值为1,在时间应用场景中,qf的取值一般是1;dl表示第一文本的长度,avgdl表示所有第一文本的平均长度,在实际的应用场景中可能需要计算多个第一文本与其他文本的相似度,这里的多个第一文本是在一个特定场景中可能出现的所有文本。本实施例中只有一个第一文本,所以avgdl等于dl。

综上,第一文本和第二文本的相似度利用如下公式计算得到:

对于上面公式中的si,具体的选取过程如下:

第一文本为:马儿在路上跑,第二文本为“鱼儿在水中游”,词汇“马儿”与词汇“鱼儿”,“水中”,“游”的余弦相似度分别为0.8、0.5、0.6,那么取0.8作为si的值。

本实施例的文本相似度计算方法,利用第一文本中每个词汇与对应的最大余弦相似度计算文本之间的相似度。由于余弦相似度的值越大表明两个词向量越相似,或者说余弦相似度越大表明两个词向量对应的两个词汇的意义越相近、相似程度越高,那么分别包括两个词汇的两个文本的相似程度也越高,因此利用余弦相似度能够准确地计算文本之间的相似度,而不受是否具有相同词汇的影响。

将上述实施例中的方法应用于问答系统中,第一文本为客户当前提出的业务问题,第二文本为问答系统的问答库中存储的标准问题,即背景技术中的预定问题。将上述实施例中的方法应用于问答系统中后,可以精确的计算得到第一文本与每个第二文本的相似度,与第一文本相似度最大的第二文本的类别即为第一文本的类别,至此确定了第一文本的类别,根据第一文本的类别即可为第一文本提供相关的信息,例如为第一文本对应的业务问题提供标准答案,可以实现精准快速的实现对大量问题的分类。

在一个实施例中,如图2所示,第一词向量训练模型利用如下步骤得到:

210、获取若干个第三文本以及若干个第四文本;其中,第三文本是与第一文本或第二文本业务相关的文本,第四文本为第一文本出现的特定的应用场景下,实际产生的文本;

这里的第三文本可以通过外界爬取得到。第四文本是在第一文本出现的特定的应用场景下,实际产生的另一小部分文本。可见第三文本和第四文本与第一文本存在相关性,利用这些文本训练得到的第一词向量训练模型能够更准确的对第一文本中的词汇进行训练,从而得到更加合理的词向量。

220、计算每个第三文本与每个第四文本的相似度;确定每个第三文本对应的最大相似度,并选取最大相似度超过预定阀值的第三文本;

此步骤中计算第三文本和第四文本的相似度,可以利用现有技术中任何一种文本相似度的计算方法来计算,本发明实施例对此并不进行限定。当然,第三文本和第四文本的相似度也可以利用上面个实施例中文本相似度的计算方法来计算,具体的计算过程这不再进行赘述。

此步骤中,第三文本对应的最大相似度为该第三文本与每个第四文本的相似度中最大的相似度。

230、利用选取得到的第三文件训练得到第一词向量训练模型。

本实施中,利用最大相似度选取可以用来进行模型训练的第三文本,实现了在业务相关文本中进一步筛选与第一本文本或第四文本相关性好的文本的目的,那么用筛选出来的第三文本进行模型训练,必然得到更合适于训练第一文本中词汇的模型,使其在后续的对第一文本中的词汇进行训练时,准确度提高,相应的利用其训练得到的词向量计算文本间的相似度时的准确度,即能够提高计算得到的第一文本与其他文本的相似度的准确性。

在一个实施例中,如图3所示,第三文本与第四文本的相似度利用如下步骤计算:

310、获取第二词向量训练模型;其中,第二词向量训练模型利用开放文本训练得到,利用第二词向量训练模型处理得到的词向量包含对应词汇的上下文关系;

这里的第二词向量训练模型可以有任何的文本训练得到,本发明对训练第二词向量训练模型的文本不做限定。第二词向量训练模型可以是一个word2vec模型。

第三文本包括1个或多个的词汇;第四文本包括1个或多个词汇;

320、利用第二词向量训练模型对第三文本及第四文本中的所有词汇处理得到所有词汇的词向量;

330、根据词汇对应的词向量,计算第三文本中各词汇与第四文本中各词汇的余弦相似度,根据第三文本中各词汇对应的最大余弦相似度,计算该词汇与第四文本的相似度;根据第三文本各词汇与第四文本的相似度,计算得到第三文本与第四文本的相似度。

本实施例对于第三文本与第四文本的相似度的计算,与上述第一个实施中计算第一文本和第二文本的相似度的方法相同,具体的计算过程这不再进行赘述。

本实施例中,在计算每个第三文本与每个第四文本的相似度之前,还包括去除第三文本以及第四文本中的停用词以及预定符号的步骤。其中预定符号包括但不限于是标点符号。此步骤去除了没有作用的停用词和符号,可以提高下一步处理的效率,并且能够提高训练的得到的词向量的准确性。

下面以电话问答系统为背景,再对本发明的文本相似度计算方法进行具体介绍。第一文本即电话问答系统中客户提出的业务问题,这里将业务问题定义为业务文本。第二文本即存储在该电话问答系统的问答库中的预定的业务问题,或标准问题,这里将预定的业务问题定义为预定文本。问答库用于存储该电话问答系统中的预定的业务问题、对应于每个预定的业务问题的分类,以及每一类业务问题的答案。第三文本即通过外界爬取得到的当前问答系统的一些业务相关文本。第四文本即当前电话问答系统实际出现的一小部分业务问题,将这部分业务问题定义为种子文本。

如图4所示,本实施例的文本相似度计算方法包括以下步骤:

步骤一、获取若干条开放文本,并利用这些开放文本进行训练,得到一个word2vec模型,即上面实施例中的第二词向量训练模型。这里的开放文本可以是任何的文本。

此步骤中,包括对开放文本去除停用词和预定符号的步骤。

步骤二、获取若干条业务相关文本,以及若干条种子文本;

步骤三、利用上述第一个实施例中的相似度计算方法以及步骤一得到的word2vec模型,计算每个业务相关文本与每个种子文本的相似度,得到若干个相似度集合,一个相似度集合包括同一个业务相关文本与每个种子文本的相似度;

步骤四、选取每个相似度集合中的最大相似度,得到每个业务相关文本的训练参数;选取超过预定阀值的训练参数对应的业务相关文本,得到用于训练模型的文本;

步骤五、利用步骤四得到的用于训练模型的文本,通过训练得到一个word2vec模型,即上面实施例中的第一词向量训练模型;

本步骤中的word2vec模型便不再是用开放文本训练出来的,而是与业务相关的业务相关文本,能更准确的表达之后用户提出的业务文本和问答库中的预定文本的相似度。

步骤六、利用上述第一个实施例中的相似度计算方法以及步骤五得到的word2vec模型,计算每个业务文本与每个预定文本的相似度,为每个业务文本选取与其相似度最高的预定文本,并将选取的预定文本的类别作为对应的业务文本的类别,最后利用该电话问答系统的问答库,根据确定的类别,为每个业务文本提供答案,即为每个客户提出的业务问题提供答案。

本实施例中的文本相似度计算方法,引入了word2vec模型,考虑了上下文之间的关系,能够处理词汇的语义相关性,克服了现有技术方案中只能计算有相同词汇的两个文本的相似度的缺陷,适合用于短文本的相似度的计算。在本实施例的方案中,仅仅用一小批种子文本,就在业务相关文本中召回了一大批与种子文本相似度极高的文本,进而训练得到一个word2vec模型,提高了利用该word2vec模型训练得到的词向量在语意表达的表现能力。本实施例的方法引入了外界相关领域的知识,在文本相似度的计算中,取得了很高的准确度。

对应于上述实施例的文本相似度计算方法,本发明实施例还提供了一种文本相似度计算装置,如图5所示,该装置包括:

词向量确定模块,用于利用第一词向量训练模型,对第一文本及第二文本中的所有词汇处理得到所有词汇的词向量,其中词向量中包含对应词汇的上下文关系;

余弦相似度计算模块,用于根据词汇对应的词向量,计算第一文本中各词汇与第二文本中各词汇的余弦相似度;

文本相似度计算模块,用于根据第一文本中各词汇对应的最大余弦相似度,计算该词汇与第二文本的相似度,并根据第一文本中各词汇与第二文本的相似度,计算得到第一文本与第二文本的相似度。

在一个实施例中,如图6所示,文本相似度计算模块包括词汇相似度计算子模块,词汇相似度计算子模块用于利用如下公式计算第一文本中一词汇与第二文本的相似度:

其中,

上面公式中,qi表示第一文本中的一个词汇,d表示第二文本,r(qi,d)表示第一文本中的词汇qi与第二文本d的相似度;si表示词汇qi对应的最大余弦相似度;k1、k2、b表示调节因子,dl表示第一文本的长度,avgdl表示第一文本的平均长度;qf表示词汇qi在第一文本中出现的次数。

在一个实施例中,如图7所示,文本相似度计算装置还包括词向量模型训练模块,用于通过训练得到第一词向量训练模型;

词向量模型训练模块包括:

训练文本获取子模块,用于获取若干个第三文本以及若干个第四文本;其中,第三文本是与第一文本或第二文本业务相关的文本,第四文本为第一文本出现的特定的应用场景下,实际产生的文本;

训练文本选取子模块,用于计算每个第三文本与每个第四文本的相似度,确定每个第三文本对应的最大相似度,并选取最大相似度超过预定阀值的第三文本;

训练子模块,用于利用选取得到的第三文件训练得到第一词向量训练模型。

本发明实施中的文本相似度计算装置,对第一文本中的词汇以及第二文本中的词汇进行训练,得到对应的词向量,之后利用词向量计算第一文本中的每个词汇对与第二文本中每个词汇的对应的余弦相似度,最后利用最大的余弦相似度计算第一文本中的每个词汇与第二文本的相似度,第一文本中所有词汇与第二文本的相似度的和即为第一文本与第二文本的相似度。由于词向量包含对应词汇的上下文信息,两个词向量的余弦相似度反映两个词汇的意义相似程度,因此利用余弦相似度计算文本相似度能够准确的计算意义相关的两个文本的相似度,而不受是否存在相同词汇的影响。

本发明实施例中的装置是与本发明实施例中的方法对应的产品,本发明实施例中的方法的每一个步骤均由本发明实施例中的装置的部件完成,因此对于相同的部分不再进行赘述。

本发明的上述实施例是利用python实现的,主要用到的库包括gensim、jieba、re、pandas库。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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