掌桥专利:专业的专利平台
掌桥专利
首页

匹配文本去重方法、装置、电子设备

文献发布时间:2023-06-19 09:43:16


匹配文本去重方法、装置、电子设备

技术领域

本申请实施例涉及计算机技术领域,特别是涉及一种匹配文本去重方法、装置、电子设备及计算机可读存储介质。

背景技术

基于查询词的搜索引导、推荐等领域中,搜索后台通常会根据查询文本召回若干与所述查询文本匹配的文本,用于在前端展示给用户,以丰富召回的查询内容和引导用户执行搜索操作等。搜索后台召回的与所述查询文本匹配的文本通常是根据平台用户的历史搜索记录基于语义相似、文本相似等策略进行匹配后召回的,因此,召回的文本中会存在与当前查询文本语义相同单表达方式不一的情况。例如召回的匹配文本中会存在:“红烧肉怎么做”、“红烧肉菜谱”一类文本的查询数据。即基于历史搜索词库对用户搜索进行引导时,会存在匹配文本语义重复的问题。匹配文本语义重复会导致在有限的空间内展示的匹配文本列表中,展示给用户的整体信息量少。因此,需要对匹配文本进行去重处理。

现有技术中常用的匹配文本进行去重处理方法是将匹配文本进行分词处理得到分词词组,之后计算每个分词的哈希值,并根据每个分词的哈希值计算加权数字串,分别作为各匹配文本的哈希签名,最后,通过计算哈希签名的距离,确定两个文本是否重复,从而实现匹配文本的去重处理。现有技术中的匹配文本去重处理方法在短文本去重处理场景中误判率高,并且应用场景有限。

可见,现有技术中的匹配文本去重处理方法还需要改进。

发明内容

本申请实施例提供一种匹配文本去重方法,有助于提升匹配文本去重处理的准确度。

为了解决上述问题,第一方面,本申请实施例提供了一种匹配文本去重方法,包括:

获取待处理的匹配文本列表;

根据所述匹配文本列表中每个文本分别构造与所述文本对应的节点,并基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边,得到文本联通图;

对所述文本联通图中包括的所有子联通图进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识;

对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理。

第二方面,本申请实施例提供了一种匹配文本去重装置,包括:

匹配文本列表获取模块,用于获取待处理的匹配文本列表;

文本联通图构造模块,用于根据所述匹配文本列表中每个文本分别构造与所述文本对应的节点,并基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边,得到文本联通图;

图染色处理模块,用于对所述文本联通图中包括的所有子联通图进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识;

去重处理模块,用于对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理。

第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的匹配文本去重方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的匹配文本去重方法的步骤。

本申请实施例公开的匹配文本去重方法,通过获取待处理的匹配文本列表;根据所述匹配文本列表中每个文本分别构造与所述文本对应的节点,并基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边,得到文本联通图;对所述文本联通图中包括的所有子联通图进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识;对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理,有助于提升匹配文本去重处理的准确度。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

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

图1是本申请实施例一的匹配文本去重方法流程图;

图2是本申请实施例一的匹配文本去重方法中联通图示意图;

图3是本申请实施例一中去重前匹配文本列表展示效果示意图;

图4是本申请实施例一中去重后匹配文本列表展示效果示意图;

图5是本申请实施例二的匹配文本去重装置结构示意图之一;

图6是本申请实施例二的匹配文本去重装置结构示意图之二;

图7示意性地示出了用于执行根据本申请的方法的电子设备的框图;以及

图8示意性地示出了用于保持或者携带实现根据本申请的方法的程序代码的存储单元。

具体实施方式

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

实施例一

本申请实施例公开的一种匹配文本去重方法,如图1所示,所述方法包括:步骤110至步骤140。

步骤110,获取待处理的匹配文本列表。

本申请实施例中所述的匹配文本列表,可以为搜索场景中根据用户当前输入查询文本由后台服务器召回的与所述查询文本匹配的文本的列表,也可以其他场景中与以确定的目标文本匹配的文本的列表。所述匹配文本列表中的各文本与同一个文本匹配。例如,在搜索场景中,用户输入查询文本“宫保鸡丁”,后台服务器召回的匹配文本列表中包括文本:“宫保鸡丁饭”、“宫保鸡丁怎么做”、“怎么做宫保鸡丁好吃”、“宫保鸡丁做法”等,可见,匹配文本列表中包括的文本:“宫保鸡丁饭”、“宫保鸡丁怎么做”、“怎么做宫保鸡丁好吃”、“宫保鸡丁做法”都与入查询文本“宫保鸡丁”匹配。

在不同应用场景中,可以采用该应用场景中的现有技术获取待处理的匹配文本列表,本申请实施例中不再一一例举。本申请对获取待处理的匹配文本列表的具体实施方式不做限定。

本申请的一些实施例中,获取的匹配文本列表是按照与所述匹配文本列表中文各文本共同匹配的目标文本的匹配度由高到低的顺序从前向后排列的。例如,用户输入查询文本“宫保鸡丁”时,后台服务器首先确定各历史查询文本与所述用户输入查询文本的匹配度,之后,将匹配度满足预设匹配度条件的历史查询文本按照匹配度由高到低的顺序,从前向后进行排列,生成匹配文本列表。

本申请的一些实施例中,获取的匹配文本列表中每个文本还携带点击率或推荐得分。例如,用户输入查询文本“宫保鸡丁”时,后台服务器首先确定各历史查询文本与所述用户输入查询文本的匹配度,之后,将匹配度满足预设匹配度条件的历史查询文本加入到匹配文本列表中,同时,在所述匹配文本列表中记录每个文本的点击率或推荐得分。

后台服务器确定各历史查询文本与所述用户输入查询文本的匹配度的具体实施方式参见现有技术,本实施例中不再赘述。后台服务器确定各历史查询文本的推荐得分和点击率的具体实施方式参见现有技术,本实施例中不再赘述。

步骤120,根据所述匹配文本列表中每个文本分别构造与所述文本对应的节点,并基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边,得到文本联通图。

接下来,根据所述匹配文本列表构造文本联通图。

首先,根据所述匹配文本列表中每个文本分别构造所述文本联通图的一个节点,并存储每个节点与文本的对应关系。

所述文本联通图中的边用于表示该边连接的两个节点对应的文本具备相似性。本申请的一些实施例中,随机为所述匹配文本列表中的每个文本初始化一个唯一标识,并在该文本对应的节点中存储所述唯一标识,从而建立节点与唯一标识的对应关系。

然后,基于所述匹配文本列表中每两个文本之间的相似性,构造这两个文本对应的节点之间的边,即根据所述匹配文本列表中每两个文本之间的相似性,确定是否在这两个文本对应的节点之间构造一条边,连接这两个文本对应的节点。

本申请的一些实施例中,所述基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边的步骤,包括:基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边的步骤,包括:确定俩俩所述文本是否满足至少一个预设相似度条件;响应于所述俩俩所述文本之间的相似度满足至少一个所述预设相似度条件,构造连接所述俩俩所述文本对应的节点的一条边;其中,所述预设相似度条件包括:两个文本中包含的知识实体集合相同、两个文本之间编辑距离小于预设距离阈值、两个文本之间的语义相似度得分大于预设相似度得分阈值。

本申请具体实施时,文本相似性存在多种情况。例如有,语义相同描述方式不同的情况,具体的,例如“北新泾附近麻将馆”和“北新泾附近棋牌室”。这两条文本的字面相似度并不高,但实际语义是相同的。又例如,

还有字面极为相似,但语义不同的情况,具体的,例如:“中山公园附近牛肉”和“中山公园附近牛肉面”。因此,单纯的基于文本编码进行匹配,将会导致相似性判断错误。又例如,文本"中山公园美食"和"中山公园附近美食",从字面上判断存在差别,但语义是相同的。针对上述类似问题,本申请实施例中,可以预先设置多种相似度条件,只要两个文本满足其中一种相似度条件,即可认为这两个文本具备相似性,即可在这两个文本对应的节点之间构造一条边。

下面分别阐述针对不同预设相似度条件的判断方案。

第一种预设相似度条件:两个文本中包含的知识实体集合相同。

本申请的一些实施例中,所述确定俩俩所述文本是否满足至少一个预设相似度条件,包括:确定俩俩所述文本分别包含的知识实体集合;响应于俩俩所述文本分别包含的所述知识实体集合相同,确定俩俩所述文本满足所述两个文本中包含的知识实体集合相同的预设相似度条件。

例如,对于文本A和B,首先确定文本A中包括的知识实体集合D

在具体应用场景中,经常会出现用户表述次序颠倒的重复文本,例如,“中山公园附近火锅”和“火锅中山公园附近”。采用本申请实施例中基于知识实体集合判断相似性的方法,可以有效识别出两个文本具备相似性。例如,通过知识实体识别,可以确定文本“中山公园附近火锅”和“火锅中山公园附近”中包括的知识实体集合均为{中山公园、附近、火锅},即这两条文本拥有相同的知识实体集合,则可以认为这两条文本满足预设相似度条件,可以构造一条边连接这两条文本对应的节点。

第二种预设相似度条件:两个文本之间编辑距离小于预设距离阈值。

本申请的一些实施例中,所述确定俩俩所述文本是否满足至少一个预设相似度条件,包括:确定俩俩所述文本之间的编辑距离;响应于所述编辑距离小于预设距离阈值,确定所述俩俩所述文本满足所述两个文本之间编辑距离小于预设距离阈值的预设相似度条件。

例如,对于文本A和B,首先确定文本A和文本B之间的编辑距离D

本申请的一些实施例中,所述确定俩俩所述文本之间的编辑距离,包括:综合俩俩所述文本之间的Levenshtein编辑距离和Jaro-Winkler编辑距离,作为所述俩俩所述文本之间的编辑距离。例如,在确定文本A和文本B的编辑距离时,首先分别确定文本A和文本B之间的Levenshtein编辑距离D

Levenshtein编辑距离用于表示文本A转换为文本B需要的单字符转换的最小数量,而Jaro-Winkler编辑距离在表示文本A转换为文本B需要的单字符转换的最小数量的同时,突出了两个文本共同前缀的长度。在推荐引导业务场景下,前缀表示更加重要。而Jaro-Winkler编辑距离能够更加突出前缀的重要性,即如果两条文本的前几个字符相同,则这两条文本会有更高的相似性。Jaro-Winkler编辑距离越小,两条文本越相似。

例如,对于给定的两条文本S

本申请实施例中,通过引入Levenshtein编辑距离来限制文本A修改为文本B所需的单字符转换数量,通过引入Jaro-Winkler编辑距离来限制文本A修改为文本B所需的单字符转换数量和共同前缀长度,通过综合文本之间的Levenshtein编辑距离和Jaro-Winkler编辑距离进行相似性判断,提升相似性判断的准确度。

在具体应用场景中,经常会出现用户字面表述不同但语义相同的重复文本,例如,“中山公园美食”和“中山公园附近美食”。在采用本申请实施例中基于编辑距离判断相似性的方法时,分别确定“中山公园美食”和“中山公园附近美食”之间的Levenshtein编辑距离为D

计算两条文本之间的Levenshtein编辑距离参见现有技术中,本申请实施例中不再赘述。

第三种预设相似度条件:两个文本之间的语义相似度得分大于预设相似度得分阈值。

本申请的一些实施例中,所述确定俩俩所述文本是否满足至少一个预设相似度条件,包括:确定俩俩所述文本之间的语义相似度得分;响应于所述语义相似度得分大于预设相似度得分阈值,确定所述俩俩所述文本满足所述两个文本之间的语义相似度得分大于预设相似度得分阈值的预设相似度条件。

例如,对于文本A和B,首先确定文本A和文本B的语义相似度得分,之后,比较语义相似度得分是否大于预设相似度得分阈值,如果文本A和文本B的语义相似度得分大于预设相似度得分阈值,则认为文本A和B满足上述第三种预设相似度条件,可以构造一条边连接这两条文本对应的节点。本申请的一些实施例中,可以通过预先训练的BERT模型确定文本A和文本B的语义相似度得分。用于识别输入文本语义相似度得分的BERT模型的具体训练方式,参见现有技术,本申请实施例中不再赘述。

在具体应用场景中,经常会出现字面相似而语义不同(如“中山公园附近牛肉”和“中山公园附近牛肉面”)的情况,和字面不同而语义相同(如“北新泾附近麻将馆”和“北新泾附近棋牌室”)的情况,采用本申请实施例中基于语义判断相似性的方法,可以有效识别出两个文本具备相似性。

本申请的一些实施例中,可以分别将两个文本与上述每种预设相似度条件进行对比判断,最后,只要满足一种预设相似度条件,即可认为这两个文本具备相似性。本申请的另一些实施例中,也可以按照一定的预设相似度条件顺序依次判断两个文本是否满足当前预设相似度条件,若满足,即可认为这两个文本具备相似性,不必再与其他种预设相似度条件进行对比判断。

通过执行上述步骤,即可得到所述匹配文本列表对应的文本联通图。由于所述匹配文本列表中的文本之间有些具有相似性,有些不具备相似性,具备相似性的文本对应的节点通过边连接起来形成了一个个子联通图,而与其他文本不具备相似性的文本对应的节点则是孤立的,这样,所述文本联通图中就包括多个子联通图,在每个子联通图中,一条边上连接的两个节点具备相似性。

步骤130,对所述文本联通图中包括的所有子联通图进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识。

本申请的一些实施例中,对所述文本联通图中包括的所有子联通图进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识,包括:将所述文本联通图中包括的所有子联通图拆分为有边连接的节点对的集合;将所述集合中的节点对随机存储至分布式部署的计算处理设备;通过所述计算处理设备对本地存储的所述节点对进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识。例如,将所述文本联通图中的所有子联通图按照边进行拆分,每条边连接的两个节点组成一个节点对,可以得到若干节点对的集合。之后,可以将得到的集合中的所有节点对均匀地随机发送至分布式部署的两台或多台计算处理设备,之后,通过每台计算处理设备对各自接收到的节点对进行染色处理,将每个节点对染色处理为具有相同的唯一标识,并进一步将包含同一节点的节点对染色处理为具有相同的唯一标识,从而将每个子联通图中的节点染色处理为具有相同的唯一标识,不同子联通图中的节点的唯一标识不同。本申请的一些实施例中,分布式部署的两台或多台计算处理设备基于Spark框架进行节点对染色处理。通过将节点对发送到分布式计算处理设备中进行染色处理,充分利用并行处理资源,可以提升文本去重的速度,对于海量数据而言,意义重大。

本申请的一些实施例中,所述基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边之前,还包括:为所述匹配文本列表中每个文本分别初始化一个唯一标识。在获取到所述匹配文本列表之后,首先为所述匹配文本列表中每个文本分别初始化一个唯一标识(如一个唯一的数值),之后,在根据所述匹配文本列表构建文本联通图时,将每个节点与该节点对应的文本的唯一标识对应,例如,在每个节点中分别存储该节点对应的文本的唯一标识。

由于子联通图中会存在例如“密室逃脱”->“密室逃脱徐”->“密室逃脱徐家”->“密室逃脱徐家汇”这样的子连通图,进行染色处理后,会将文本“密室逃脱”和文本“密室逃脱徐家汇”染色为相同的唯一标识,从而导致在执行去重处理时将文本“密室逃脱”和文本“密室逃脱徐家汇”误判为重复文本。为了解决这种问题,本申请具体实施时,可以设置执行染色处理的最大迭代次数,以限制进行相似判断的文本长度。以前述子联通图举例,将最大迭代次数设置为小于3时,就不会执行将文本“密室逃脱”和文本“密室逃脱徐家汇”对应的节点染色处理为对应同一个唯一标识,从而能够避免“密室逃脱”与“密室逃脱徐家汇”相似的误判。

本申请的一些实施例中,所述通过所述计算处理设备对本地存储的所述节点对进行染色处理,包括:通过所述计算处理设备对本地存储的各所述节点对迭代执行相应轮次的染色处理,其中,所述染色处理包括:将所述节点对中各节点的唯一标识设置为该节点对中各节点的唯一标识的最小值;或者,将所述节点对中各节点的唯一标识设置为该节点对中各节点的唯一标识的最大值;所述相应轮次小于或等于所述文本联通图中任意两个节点间最短路径最大值,且小于预设迭代次数阈值。以预设迭代次数阈值被设置为4次为例,对于图2所示的文本联通图,各节点间最短路径的最大值为4,则最终将最多执行4轮迭代染色,即文本的最大相似阶数被限制为4,从而降低前缀相同或相似文本的误判率。

具体举例而言,图2所示的文本联通图将拆分得到5个节点对,A-B、A-C、B-C、C-D、D-E,假设这5个节点分别对应的唯一标识为数字1至5,可以将节点表示为:A(1)-B(2)、A(1)-C(3)、B(2)-C(3)、C(3)-D(4)、D(4)-E(5)。以染色处理为:将所述节点对中各节点的唯一标识设置为该节点对中各节点的唯一标识的最小值为例,在计算机执行第一次染色处理时,这5个节点对被染色处理后得到的结果为:A(1)-B(1)、A(1)-C(1)、B(2)-C(2)、C(3)-D(3)、D(4)-E(4),第二次染色处理后,这5个节点对被染色处理得到的结果为:A(1)-B(1)、A(1)-C(1)、B(1)-C(1)、C(3)-D(3)、D(4)-E(4);第三次染色处理后,这5个节点对被染色处理得到的结果为:A(1)-B(1)、A(1)-C(1)、B(1)-C(1)、C(1)-D(1)、D(4)-E(4);第四次染色处理后,这5个节点对被染色处理得到的结果为:A(1)-B(1)、A(1)-C(1)、B(1)-C(1)、C(1)-D(1)、D(1)-E(1)。即计算机会根据上一次节点对中的染色处理结果,进行下一轮染色处理,共执行4轮。

如果将预设迭代次数阈值设置为3为例,仍以图2所示的文本联通图为例,因为各节点间最短路径的最大值为4,则最终将执行3轮迭代染色处理,即节点E将不会被染色处理,节点E对应的文本将不会被认为与节点A、B、C和D具备相似性。

步骤140,对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理。

在确定了所述匹配文本列表中具有相同的唯一标识的所述文本之后,具有相同的唯一标识的所述文本可以认为是重复文本,需要进行去重处理。具体的,可以按照一定的指标对文本进行去重处理。本申请实施例中所述的预设指标可以选自以下任意一项:点击率、推荐得分、列表排序位置,本申请的其他实施例中,还可以选用其他指标作为对文本进行去重处理的依据,本申请实施例中不再一一例举。

下面结合3个例子说明按照上述预设指标对文本去重处理的具体技术方案。

例如,本申请的一些实施例中,所述匹配文本列表中每个所述文本包括:该文本匹配的点击率,所述对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理,包括:将所述匹配文本列表中具有相同的唯一标识的所述文本中,点击率非最大点击率的所述文本,从所述匹配文本列表中移除。点击率通常可以有效地反应文本的热度,在搜索推荐应用中,用户通常会选择点击率较高的搜索结果。因此,本申请的一些实施例中,在获取匹配文本列表时,同时获取所述匹配文本列表中每个文本的点击率,在文本去重处理时,对于所述匹配文本列表中被染色处理为具有相同的唯一标识的文本,仅保留点击率最高的文本,删除其他文本,从而实现对所述匹配文本列表中的文本进行去重处理。

例如,当用户输入查询文本“宫保鸡丁”时,用户输入查询文本“宫保鸡丁”,后台服务器召回的匹配文本列表中包括文本:“宫保鸡丁饭”、“宫保鸡丁怎么做”、“怎么做宫保鸡丁好吃”、“宫保鸡丁做法”等匹配文本,如图3所示。经过基于匹配文本列表中包括的文本构件文本联通图,并进行染色处理后,如果文本“宫保鸡丁怎么做”、“怎么做宫保鸡丁好吃”、“宫保鸡丁做法”被染色处理为相同的唯一标识,在向用户展示查询文本“宫保鸡丁”的推荐搜索结果时,将仅推荐文本“宫保鸡丁怎么做”、“怎么做宫保鸡丁好吃”、“宫保鸡丁做法”中点击率最高的一个(如“宫保鸡丁做法”),而不展示另外两个。对图3中所示的匹配文本列表去重处理后的效果,如图4所示。有图4可见,相同语义的推荐结果仅展示一条,避免在推荐结果中出现冗余信息,同时,可以节省出展示空间展示更多多元化的信息,也提高了展示资源的利用率。

又例如,所述匹配文本列表中每个所述文本包括:该文本匹配的推荐得分,所述对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理,包括:将所述匹配文本列表中具有相同的唯一标识的所述文本中,所述推荐得分非最大推荐得分的所述文本,从所述匹配文本列表中移除。推荐得分是推荐引擎按照预设策略根据查询输入计算的召回结果的推荐得分,通常,推荐得分越高表示该召回结果与所述用户匹配度越高。因此,本申请的一些实施例中,在获取匹配文本列表时,同时获取所述匹配文本列表中每个文本的推荐得分,在文本去重处理时,对于所述匹配文本列表中被染色处理为具有相同的唯一标识的文本,仅保留推荐得分最高的文本,删除其他文本,从而实现对所述匹配文本列表中的文本进行去重处理。

例如,当用户输入查询文本“宫保鸡丁”时,用户输入查询文本“宫保鸡丁”,后台服务器召回的匹配文本列表中包括文本:“宫保鸡丁饭”、“宫保鸡丁怎么做”、“怎么做宫保鸡丁好吃”、“宫保鸡丁做法”等匹配文本,经过基于匹配文本列表中包括的文本构件文本联通图,并进行染色处理后,如果文本“宫保鸡丁怎么做”、“怎么做宫保鸡丁好吃”、“宫保鸡丁做法”被染色处理为相同的唯一标识,在向用户展示查询文本“宫保鸡丁”的推荐搜索结果时,将仅推荐文本“宫保鸡丁怎么做”、“怎么做宫保鸡丁好吃”、“宫保鸡丁做法”中推荐得分最高的一个(如“宫保鸡丁做法”),而不展示另外两个。

再例如,所述匹配文本列表中所述文本是有序排列的(如按照匹配度由高到低的顺序从前向后排列、按照推荐得分由高到低的顺序从前向后排列),所述对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理,包括:将所述匹配文本列表中具有相同的唯一标识的所述文本中,除第一个所述文本以外的所述文本,从所述匹配文本列表中移除。通常,后台服务器返回的匹配文本列表中的文本是按照预设策略排序的,例如,按照与查询文本的匹配度由高到低的顺序从前向后排序、按照推荐得分由高到低的顺序从前向后排序。在文本去重处理时,对于所述匹配文本列表中被染色处理为具有相同的唯一标识的文本,仅保留首个文本(即匹配度最高或推荐得分最高的文本),删除其他文本,从而实现对所述匹配文本列表中的文本进行去重处理。

本申请实施例公开的匹配文本去重方法,通过获取待处理的匹配文本列表;根据所述匹配文本列表中每个文本分别构造与所述文本对应的节点,并基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边,得到文本联通图;对所述文本联通图中包括的所有子联通图进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识;对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理,有助于提升匹配文本去重处理的准确度。以搜索推荐应用场景为例,本申请实施例公开的匹配文本去重方法通过基于文本相似性和图染色技术标识重复文本,并基于标识结果对推荐文本进行去重处理,不受文本长度限制,适用领域更广,去重效果更好。

进一步的,通过对推荐的匹配文本进行去重处理,可以减少展示给用户的冗余信息,提升用户获取信息的效率和展示资源的利用效率。

更进一步的,本申请实施例公开的匹配文本去重方法通过结合多种相似度条件进行文本的相似度判断,构建文本联通图的边,扩大了匹配文本去重处理适用的场景,提升了方法的鲁棒性,有助于提升文本去重处理的准确度。

另一方面,通过基于匹配文本列表构建文本联通图,然后,将边连接的节点拆分为节点对进行分布式染色处理,充分利用系统的并行处理能力,在对于海量匹配文本的去重处理时,可以显著提升文本去重处理速度。另外,通过设置染色处理的最大迭代次数,可以调整文本的最大相似阶数,实现误判率可控。

实施例二

本申请实施例公开的一种匹配文本去重装置,如图5所示,所述装置包括:

匹配文本列表获取模块510,用于获取待处理的匹配文本列表;

文本联通图构造模块520,用于根据所述匹配文本列表中每个文本分别构造与所述文本对应的节点,并基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边,得到文本联通图;

图染色处理模块530,用于对所述文本联通图中包括的所有子联通图进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识;

去重处理模块540,用于对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理。

本申请的一些实施例中,所述基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边,包括:

确定俩俩所述文本是否满足至少一个预设相似度条件;

响应于所述俩俩所述文本之间的相似度满足至少一个所述预设相似度条件,构造连接所述俩俩所述文本对应的节点的一条边;其中,所述预设相似度条件包括:两个文本中包含的知识实体集合相同、两个文本之间编辑距离小于预设距离阈值、两个文本之间的语义相似度得分大于预设相似度得分阈值。

本申请的一些实施例中,所述确定俩俩所述文本是否满足至少一个预设相似度条件,包括:

确定俩俩所述文本分别包含的知识实体集合;

响应于俩俩所述文本分别包含的所述知识实体集合相同,确定俩俩所述文本满足所述两个文本中包含的知识实体集合相同的预设相似度条件。

本申请的一些实施例中,所述确定俩俩所述文本是否满足至少一个预设相似度条件,包括:

确定俩俩所述文本之间的编辑距离;

响应于所述编辑距离小于预设距离阈值,确定所述俩俩所述文本满足所述两个文本之间编辑距离小于预设距离阈值的预设相似度条件。

本申请的一些实施例中,所述确定俩俩所述文本之间的编辑距离,包括:

综合俩俩所述文本之间的Levenshtein编辑距离和Jaro-Winkler编辑距离,作为所述俩俩所述文本之间的编辑距离。

本申请的一些实施例中,所述确定俩俩所述文本是否满足至少一个预设相似度条件,包括:

确定俩俩所述文本之间的语义相似度得分;

响应于所述语义相似度得分大于预设相似度得分阈值,确定所述俩俩所述文本满足所述两个文本之间的语义相似度得分大于预设相似度得分阈值的预设相似度条件。

本申请的一些实施例中,所述图染色处理模块530进一步用于:

将所述文本联通图中包括的所有子联通图拆分为有边连接的节点对的集合;

将所述集合中的节点对随机存储至分布式部署的计算处理设备;

通过所述计算处理设备对本地存储的所述节点对进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识。

本申请的一些实施例中,如图6所示,所述装置还包括:

唯一标识设置模块550,用于为所述匹配文本列表中每个文本分别初始化一个唯一标识;

相应的,所述通过所述计算处理设备对本地存储的所述节点对进行染色处理,包括:

通过所述计算处理设备对本地存储的各所述节点对迭代执行相应轮次的染色处理,其中,所述染色处理包括:将所述节点对中各节点的唯一标识设置为该节点对中各节点的唯一标识的最小值;或者,将所述节点对中各节点的唯一标识设置为该节点对中各节点的唯一标识的最大值;所述相应轮次小于或等于所述文本联通图中任意两个节点间最短路径最大值,且小于预设迭代次数阈值。

本申请的一些实施例中,如图6所示,所述去重处理模块540进一步包括以下任意一个子模块:

第一去重处理子模块5401,用于在所述匹配文本列表中每个所述文本包括:该文本匹配的点击率时,将所述匹配文本列表中具有相同的唯一标识的所述文本中,点击率非最大点击率的所述文本,从所述匹配文本列表中移除;

第二去重处理子模块5402,用于在所述匹配文本列表中每个所述文本包括:该文本匹配的推荐得分时,将所述匹配文本列表中具有相同的唯一标识的所述文本中,所述推荐得分非最大推荐得分的所述文本,从所述匹配文本列表中移除;

第三去重处理子模块5403,用于在所述匹配文本列表中所述文本为有序排列时,将所述匹配文本列表中具有相同的唯一标识的所述文本中,除首个所述文本以外的所述文本,从所述匹配文本列表中移除。

本申请实施例公开的匹配文本去重装置,用于实现本申请实施例一中所述的匹配文本去重方法,装置的各模块的具体实施方式不再赘述,可参见方法实施例相应步骤的具体实施方式。

本申请实施例公开的匹配文本去重装置,通过获取待处理的匹配文本列表;根据所述匹配文本列表中每个文本分别构造与所述文本对应的节点,并基于俩俩所述文本之间的相似性构造所述俩俩所述文本对应的节点之间的边,得到文本联通图;对所述文本联通图中包括的所有子联通图进行染色处理,将每个所述子联通图中的节点所对应的文本处理为具有相同的唯一标识;对所述匹配文本列表中具有相同的唯一标识的所述文本,按照预设指标进行去重处理,有助于提升匹配文本去重处理的准确度。以搜索推荐应用场景为例,本申请实施例公开的匹配文本去重方法通过基于文本相似性和图染色技术标识重复文本,并基于标识结果对推荐文本进行去重处理,不受文本长度限制,适用领域更广,去重效果更好。

进一步的,通过对推荐的匹配文本进行去重处理,可以减少展示给用户的冗余信息,提升用户获取信息的效率和展示资源的利用效率。

更进一步的,本申请实施例公开的匹配文本去重方法通过结合多种相似度条件进行文本的相似度判断,构建文本联通图的边,扩大了匹配文本去重处理适用的场景,提升了方法的鲁棒性,有助于提升文本去重处理的准确度。

另一方面,通过基于匹配文本列表构建文本联通图,然后,将边连接的节点拆分为节点对进行分布式染色处理,充分利用系统的并行处理能力,在对于海量匹配文本的去重处理时,可以显著提升文本去重处理速度。另外,通过设置染色处理的最大迭代次数,可以调整文本的最大相似阶数,实现误判率可控。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本申请提供的一种匹配文本去重方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其一种核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的电子设备中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

例如,图7示出了可以实现根据本申请的方法的电子设备。所述电子设备可以为PC机、移动终端、个人数字助理、平板电脑等。该电子设备传统上包括处理器710和存储器720及存储在所述存储器720上并可在处理器710上运行的程序代码730,所述处理器710执行所述程序代码730时实现上述实施例中所述的方法。所述存储器720可以为计算机程序产品或者计算机可读介质。存储器720可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器720具有用于执行上述方法中的任何方法步骤的计算机程序的程序代码730的存储空间7201。例如,用于程序代码730的存储空间7201可以包括分别用于实现上面的方法中的各种步骤的各个计算机程序。所述程序代码730为计算机可读代码。这些计算机程序可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。所述计算机程序包括计算机可读代码,当所述计算机可读代码在电子设备上运行时,导致所述电子设备执行根据上述实施例的方法。

本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一所述的匹配文本去重方法的步骤。

这样的计算机程序产品可以为计算机可读存储介质,该计算机可读存储介质可以具有与图7所示的电子设备中的存储器720类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩存储在所述计算机可读存储介质中。所述计算机可读存储介质通常为如参考图8所述的便携式或者固定存储单元。通常,存储单元包括计算机可读代码730’,所述计算机可读代码730’为由处理器读取的代码,这些代码被处理器执行时,实现上面所描述的方法中的各个步骤。

本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本申请的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 匹配文本去重方法、装置、电子设备
  • 文本去重方法、装置、电子设备及计算机可读存储介质
技术分类

06120112269344